Timeline
Jan 6, 2022:
- 10:41 PM Changeset in webkit [287740] by
-
- 2 edits1 add in trunk/LayoutTests
[GLIB] Unreviewed test gardening, emit baseline for accessibility/accessibility-node-memory-management.html
https://bugs.webkit.org/show_bug.cgi?id=209102
- platform/glib/TestExpectations:
- 8:56 PM Changeset in webkit [287739] by
-
- 15 edits in trunk/Source/WebCore
Ensure that the scrolling thread always commits layer position changes to reduce scrolling stutters (v2)
https://bugs.webkit.org/show_bug.cgi?id=234937
Reviewed by Tim Horton.
Refine the logic added in r286932, which tries to ensure that the scrolling thread commits a
layer position change in cases where the main thread is also in the middle of a commit.
The condition used in r286932 forced a layer position change if the scroll position had
changed from the scroll position at the last display refresh. Tracing shows that this isn't
always correct, so, instead, use ThreadedScrollingTree's "desynchronized" state as the
signal to force a position change. We can thus remove the code related to maintaining
scrollPositionAtLastDisplayRefresh.
However, towards the end of a momentum scroll, when there isn't an event on every display
refresh, this caused too many forced commits. So make two changes to reduce the frequency of
going into the desynchronized state here:
- Not every display refresh triggers a rendering update. So tell ThreadedScrollingTree, via RenderingUpdateScheduler, Page and ScrollingCoordinatorMac if a rendering update was scheduled. ThreadedScrollingTree::displayDidRefreshOnScrollingThread() uses this knowledge to avoid scheduling the delayed rendering update detection timer.
- Not every rendering update results in a CA commit, yet the code assumed this. Fix by having ScrollingTreeMac::didCompleteRenderingUpdate() check to see if a CA transaction is active. This stops waitForRenderingUpdateCompletionOrTimeout() waiting for a signal that never comes and thus timing out.
- page/Page.cpp:
(WebCore::Page::scheduledRenderingUpdate):
- page/Page.h:
- page/RenderingUpdateScheduler.cpp:
(WebCore::RenderingUpdateScheduler::scheduleRenderingUpdate):
- page/scrolling/ScrollingCoordinator.h:
(WebCore::ScrollingCoordinator::scheduledRenderingUpdate):
- page/scrolling/ScrollingTree.h:
(WebCore::ScrollingTree::isScrollingTreeMac const):
(WebCore::ScrollingTree::WTF_REQUIRES_LOCK):
- page/scrolling/ScrollingTreeScrollingNode.cpp:
(WebCore::ScrollingTreeScrollingNode::updateScrollPositionAtLastDisplayRefresh): Deleted.
- page/scrolling/ScrollingTreeScrollingNode.h:
- page/scrolling/ThreadedScrollingTree.cpp:
(WebCore::ThreadedScrollingTree::scheduledRenderingUpdate):
(WebCore::ThreadedScrollingTree::willStartRenderingUpdate):
(WebCore::ThreadedScrollingTree::didCompleteRenderingUpdate):
(WebCore::ThreadedScrollingTree::displayDidRefreshOnScrollingThread):
(WebCore::ThreadedScrollingTree::isScrollingSynchronizedWithMainThread):
(WebCore::ThreadedScrollingTree::didCompletePlatformRenderingUpdate): Deleted.
(WebCore::ThreadedScrollingTree::storeScrollPositionsAtLastDisplayRefresh): Deleted.
- page/scrolling/ThreadedScrollingTree.h:
(WebCore::ThreadedScrollingTree::WTF_GUARDED_BY_LOCK):
- page/scrolling/mac/ScrollingCoordinatorMac.h:
- page/scrolling/mac/ScrollingCoordinatorMac.mm:
(WebCore::ScrollingCoordinatorMac::scheduledRenderingUpdate):
(WebCore::ScrollingCoordinatorMac::didCompletePlatformRenderingUpdate):
- page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
(WebCore::ScrollingTreeFrameScrollingNodeMac::repositionScrollingLayers):
- page/scrolling/mac/ScrollingTreeMac.h:
- page/scrolling/mac/ScrollingTreeMac.mm:
(ScrollingTreeMac::didCompleteRenderingUpdate):
(ScrollingTreeMac::didCompletePlatformRenderingUpdate):
- 8:54 PM Changeset in webkit [287738] by
-
- 6 edits1 add in trunk
preparePatchpointForExceptions needs to handle tuples
https://bugs.webkit.org/show_bug.cgi?id=234909
Reviewed by Yusuke Suzuki.
JSTests:
Add support to the builder to have functions return tuples.
- wasm/Builder.js:
(const._normalizeFunctionSignature):
(const._maybeRegisterType):
- wasm/Builder_WebAssemblyBinary.js:
(const.emitters.Type):
- wasm/stress/exception-throw-from-function-returning-tuple.js: Added.
(import.Builder.from.string_appeared_here.import.as.assert.from.string_appeared_here.testCatchWithExceptionThrownFromFunctionReturningTuple):
Source/JavaScriptCore:
We got the offsets wrong when building a stackmap in B3IRGenerator
for exception sites. We need to index into StackmapGenerationParams
differently from indexing into the patchpoint's children. StackmapGenerationParams
reserves its first N entries for the N return values. The patchpoint's
children contains no results though, so we don't need to account for
the number of return values when indexing into the children() vector
of the PatchpointValue. To make this code simpler, we keep track of the
number of live values we need when throwing. These values are both
at the end of StackmapGenerationParams and at the end of the children()
vector. So we just look at the last "number of live values" in both
vectors to get the correct ValueRep and correct type. The code for
calls also didn't account for the fact that call arguments will be
appended after the live values we're building into a stackmap. This
patch fixes that code to always put the live values last.
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::PatchpointExceptionHandle::generate const):
(JSC::Wasm::B3IRGenerator::preparePatchpointForExceptions):
- 8:28 PM Changeset in webkit [287737] by
-
- 49 edits2 deletes in trunk/Source
Move linkedOnOrAfter() to WTF
https://bugs.webkit.org/show_bug.cgi?id=234942
Reviewed by Darin Adler.
Source/WebCore:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSDOMWindowCustom.cpp:
- bindings/js/JSWindowProxy.cpp:
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
- page/Quirks.cpp:
- page/SecurityOrigin.cpp:
- platform/Timer.cpp:
(WebCore::shouldSuppressThreadSafetyCheck):
- platform/cocoa/VersionChecks.h: Removed.
- platform/cocoa/VersionChecks.mm: Removed.
- platform/graphics/cocoa/FontCacheCoreText.cpp:
- platform/network/DataURLDecoder.cpp:
- testing/js/WebCoreTestSupport.cpp:
Source/WebKit:
- NetworkProcess/WebStorage/ios/LocalStorageDatabaseTrackerIOS.mm:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::willPerformHTTPRedirection):
- NetworkProcess/cocoa/NetworkProcessCocoa.mm:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
(WebKit::configurationForSessionID):
- Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::AuxiliaryProcess::platformInitialize):
- Shared/Cocoa/CompletionHandlerCallChecker.mm:
(WebKit::shouldThrowExceptionForDuplicateCompletionHandlerCall):
- Shared/Cocoa/DefaultWebBrowserChecks.mm:
(WebKit::determineITPState):
- Shared/Cocoa/WebKit2InitializeCocoa.mm:
(WebKit::InitializeWebKit2):
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
(WebKit::defaultCSSOMViewScrollingAPIEnabled):
(WebKit::defaultPassiveWheelListenersAsDefaultOnDocument):
(WebKit::defaultWheelEventGesturesBecomeNonBlocking):
(WebKit::defaultOfflineWebApplicationCacheEnabled):
- UIProcess/API/C/WKPage.cpp:
(WKPageReload):
- UIProcess/API/Cocoa/WKWebView.mm:
(shouldAllowPictureInPictureMediaPlayback):
(shouldAllowSettingAnyXHRHeaderFromFileURLs):
(shouldRequireUserGestureToLoadVideo):
(shouldRestrictBaseURLSchemes):
(-[WKWebView _initializeWithConfiguration:]):
(-[WKWebView _setupPageConfiguration:]):
(-[WKWebView reload]):
(-[WKWebView takeSnapshotWithConfiguration:completionHandler:]):
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(defaultShouldDecidePolicyBeforeLoadingQuickLookPreview):
(-[WKWebViewConfiguration init]):
- UIProcess/API/Cocoa/WKWebsiteDataStore.mm:
(-[WKWebsiteDataStore init]):
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _computedObscuredInset]):
- UIProcess/API/mac/WKWebViewMac.mm:
(-[WKWebView _web_dragDestinationActionForDraggingInfo:]):
- UIProcess/Cocoa/WebProcessPoolCocoa.mm:
- UIProcess/Inspector/mac/WKInspectorViewController.mm:
(-[WKInspectorViewController inspectorWKWebViewReload:]):
- UIProcess/RemoteLayerTree/RemoteScrollingCoordinatorProxy.cpp:
(WebKit::RemoteScrollingCoordinatorProxy::hasScrollableOrZoomedMainFrame const):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::maybeInitializeSandboxExtensionHandle):
(WebKit::WebPageProxy::makeViewBlankIfUnpaintedSinceLastLoadCommit):
- UIProcess/WebProcessPool.cpp:
(WebKit::WebProcessPool::createWebPage):
- UIProcess/WebProcessProxy.cpp:
(WebKit::isMainThreadOrCheckDisabled):
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _commonInitializationWithProcessPool:configuration:]):
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView _shouldUseContextMenus]):
(applicationIsKnownToIgnoreMouseEvents):
- UIProcess/ios/WKScrollView.mm:
(-[WKScrollView _systemContentInset]):
- UIProcess/ios/WKStylusDeviceObserver.mm:
(-[WKStylusDeviceObserver start]):
(-[WKStylusDeviceObserver stop]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::desktopClassBrowsingRecommended):
- WebProcess/cocoa/WebProcessCocoa.mm:
Source/WebKitLegacy/mac:
- DefaultDelegates/WebDefaultUIDelegate.mm:
(-[WebDefaultUIDelegate webView:dragDestinationActionMaskForDraggingInfo:]):
- Misc/WebDownload.mm:
(shouldCallOnNetworkThread):
- Misc/WebIconDatabase.mm:
(+[WebIconDatabase sharedIconDatabase]):
- WebView/WebPreferencesDefaultValues.mm:
(WebKit::defaultAllowsPictureInPictureMediaPlayback):
(WebKit::defaultJavaScriptCanOpenWindowsAutomatically):
(WebKit::defaultPassiveTouchListenersAsDefaultOnDocument):
(WebKit::defaultRequiresUserGestureToLoadVideo):
(WebKit::defaultWebSQLEnabled):
(WebKit::defaultShouldRestrictBaseURLSchemes):
(WebKit::defaultShouldConvertInvalidURLsToBlank):
(WebKit::defaultPassiveWheelListenersAsDefaultOnDocument):
(WebKit::defaultWheelEventGesturesBecomeNonBlocking):
- WebView/WebView.mm:
(needsLaBanquePostaleQuirks):
Source/WTF:
Move linkedOnOrAfter() and the associated SDKVersion enum to WTF from WebCore.
This precedes a series of patches that will adopt it in WTF and JavaScriptCore,
and then replace the underlying mechanism with a slightly more flexible one.
- wtf/cocoa/RuntimeApplicationChecksCocoa.cpp:
(WTF::linkedOnOrAfter):
- wtf/cocoa/RuntimeApplicationChecksCocoa.h:
- 5:02 PM Changeset in webkit [287736] by
-
- 8 edits in branches/safari-612.4.9.0-branch/Source
Versioning.
WebKit-7612.4.9.0.1
- 4:42 PM Changeset in webkit [287735] by
-
- 1 copy in tags/Safari-612.4.9.1.1
Tag Safari-612.4.9.1.1.
- 4:36 PM Changeset in webkit [287734] by
-
- 2 edits in branches/safari-612.4.9.1-branch/Source/WebKit
Cherry-pick r287651. rdar://problem/86338105
Fix the build
- Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebWheelEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:36 PM Changeset in webkit [287733] by
-
- 10 edits in branches/safari-612.4.9.1-branch/Source
Cherry-pick r287641. rdar://problem/86338105
Momentum Event Dispatcher: Momentum tails may get truncated if the duration runs longer than the system's
https://bugs.webkit.org/show_bug.cgi?id=234535
<rdar://problem/86338105>
Reviewed by Simon Fraser.
Source/WebKit:
Currently, synthetic momentum dispatch is strictly tied to the duration
of the real platform momentum phase, which has two unfortunate implications:
- if our phase runs shorter than the platform phase, we'll keep dispatching zero-delta events until the platform momentum ends
- more importantly, if our phase runs longer, it will be abruptly terminated when the platform momentum ends
In practice, our synthetic phase is very close in duration to the system one,
so the impact is minimal. But, to be safe, disentagle the two durations,
using a new bit from the platform to determine if the system momentum phase
was interrupted by the user (e.g. by tapping the trackpad) or naturally,
and ignoring the ended event in the natural case, allowing synthetic
events to continue being dispatched.
- Shared/WebWheelEvent.cpp: (WebKit::WebWheelEvent::WebWheelEvent): (WebKit::WebWheelEvent::encode const): (WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h: (WebKit::WebWheelEvent::momentumEndType const):
- Shared/WebWheelEventCoalescer.cpp: (WebKit::WebWheelEventCoalescer::coalesce): Plumb momentumEndType along on WebWheelEvent. Platforms that don't provide information about the interruption reason will always say Unknown.
- Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebWheelEvent): Only bother looking up the CGEvent/IOHIDEvent once, and extract all relevant details in one go.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::handleWheelEvent): Don't interrupt the synthetic momentum phase if the momentum-ended event comes from the natural end of the deceleration instead of an interruption (or an unknown reason).
Keep track of whether we're in the middle of a platform momentum phase
that we chose (at momentum-begin time) to override. When deciding
whether to eat an incoming event, take *both* this new bit and whether
we are currently in the middle of a synthetic phase into account. It
is important to continue eating incoming events in the case where
the synthetic phase ended early (soactive
became false) but the
platform phase continues.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Adjust some logging wording to be more precise.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
Make this log public so that the curve value is visible in logs.
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
Make consumeDeltaForCurrentTime inform the client via an optional when
we are at the end of the delta table.
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
Stop the synthetic momentum phase as soon as we run out of deltas.
(WebKit::MomentumEventDispatcher::computeNextDelta):
- WebProcess/WebPage/MomentumEventDispatcher.h:
Source/WTF:
- wtf/PlatformHave.h: Add a HAVE for kIOHIDEventScrollMomentumInterrupted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287641 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 4:34 PM Changeset in webkit [287732] by
-
- 8 edits in branches/safari-612.4.9.1-branch/Source
Versioning.
WebKit-7612.4.9.1.1
- 4:18 PM Changeset in webkit [287731] by
-
- 73 edits in trunk/Source
Add a helper function that returns the value of a std::optional<T> or constructs T if needed
https://bugs.webkit.org/show_bug.cgi?id=234865
Reviewed by Darin Adler.
Source/WebCore:
Use
valueOrDefault
where appropriate. See WTF/ChangeLog for more details.
- Modules/applepay/paymentrequest/ApplePayPaymentHandler.cpp:
(WebCore::convert):
(WebCore::ApplePayPaymentHandler::didAuthorizePayment):
- Modules/mediastream/MediaStreamTrack.cpp:
(WebCore::MediaStreamTrack::applyConstraints):
- Modules/mediastream/RTCIceCandidate.cpp:
(WebCore::RTCIceCandidate::create):
- Modules/webdatabase/SQLTransaction.cpp:
(WebCore::SQLTransaction::executeSql):
- Modules/webxr/WebXRBoundedReferenceSpace.cpp:
(WebCore::WebXRBoundedReferenceSpace::updateIfNeeded):
- dom/Document.cpp:
- html/BaseDateAndTimeInputType.cpp:
(WebCore::BaseDateAndTimeInputType::setupDateTimeChooserParameters):
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::handleClick):
- html/canvas/CanvasRenderingContext2DBase.cpp:
(WebCore::CanvasRenderingContext2DBase::isPointInPathInternal):
(WebCore::CanvasRenderingContext2DBase::isPointInStrokeInternal):
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::build):
- layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:
(WebCore::Layout::LineBoxVerticalAligner::computeLineBoxLogicalHeight const):
- layout/formattingContexts/table/TableFormattingContext.cpp:
(WebCore::Layout::TableFormattingContext::setUsedGeometryForCells):
- loader/DocumentLoader.cpp:
- loader/FrameLoader.cpp:
- loader/PolicyChecker.cpp:
- loader/ResourceLoader.cpp:
- loader/SubresourceLoader.cpp:
- loader/cache/CachedResource.cpp:
- loader/cache/CachedResourceLoader.cpp:
- page/EventHandler.cpp:
(WebCore::EventHandler::updateSelectionForMouseDrag):
(WebCore::EventHandler::lastKnownMousePosition const):
(WebCore::EventHandler::handleMouseMoveEvent):
(WebCore::EventHandler::handleMouseReleaseEvent):
(WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const):
(WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad):
(WebCore::EventHandler::fakeMouseMoveEventTimerFired):
(WebCore::EventHandler::hoverTimerFired):
- page/FrameView.cpp:
(WebCore::FrameView::setLayoutViewportOverrideRect):
- page/Page.cpp:
(WebCore::Page::sampledPageTopColor const):
- page/mac/EventHandlerMac.mm:
(WebCore::EventHandler::targetPositionInWindowForSelectionAutoscroll const):
- page/scrolling/ScrollingTreeLatchingController.cpp:
(WebCore::ScrollingTreeLatchingController::nodeDidHandleEvent):
- platform/graphics/ShadowBlur.cpp:
(WebCore::ShadowBlur::calculateLayerBoundingRect):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::naturalSize):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::setVisibleAndCoverageRects):
- platform/graphics/transforms/TransformState.cpp:
(WebCore::TransformState::mappedPoint const):
(WebCore::TransformState::mapQuad const):
(WebCore::TransformState::flattenWithTransform):
- platform/network/ResourceRequestBase.cpp:
(WebCore::ResourceRequestBase::systemPreviewInfo const):
- platform/network/ResourceResponseBase.cpp:
(WebCore::ResourceResponseBase::filter):
(WebCore::ResourceResponseBase::sanitizeHTTPHeaderFieldsAccordingToTainting):
- rendering/PaintInfo.h:
(WebCore::PaintInfo::applyTransform):
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::relativePositionOffset const):
- rendering/RenderGrid.cpp:
(WebCore::RenderGrid::computeAutoRepeatTracksCount const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateLayerPositions):
(WebCore::RenderLayer::paintLayerByApplyingTransform):
- rendering/RenderView.cpp:
(WebCore::RenderView::layout):
- rendering/svg/LegacyRenderSVGRoot.cpp:
(WebCore::LegacyRenderSVGRoot::nodeAtPoint):
- rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::nodeAtFloatPoint):
- rendering/svg/RenderSVGForeignObject.cpp:
(WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
- rendering/svg/RenderSVGImage.cpp:
(WebCore::RenderSVGImage::nodeAtFloatPoint):
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::clippedOverflowRect const):
(WebCore::RenderSVGRoot::absoluteRects const):
(WebCore::RenderSVGRoot::absoluteQuads const):
- rendering/svg/RenderSVGShape.cpp:
(WebCore::RenderSVGShape::nodeAtFloatPoint):
- rendering/svg/RenderSVGText.cpp:
(WebCore::RenderSVGText::nodeAtFloatPoint):
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::clipContextToCSSClippingArea):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::clipToImageBuffer):
- svg/SVGAnimateMotionElement.cpp:
(WebCore::SVGAnimateMotionElement::calculateToAtEndOfDurationValue):
(WebCore::SVGAnimateMotionElement::calculateFromAndToValues):
(WebCore::SVGAnimateMotionElement::calculateFromAndByValues):
- svg/SVGToOTFFontConversion.cpp:
(WebCore::SVGToOTFFontConverter::processGlyphElement):
(WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):
- svg/properties/SVGPropertyTraits.h:
(WebCore::SVGPropertyTraits<FloatPoint>::fromString):
(WebCore::SVGPropertyTraits<FloatRect>::fromString):
- testing/Internals.cpp:
(WebCore::Internals::frameIdentifier const):
(WebCore::Internals::pageIdentifier const):
- workers/service/server/SWScriptStorage.cpp:
(WebCore::SWScriptStorage::SWScriptStorage):
Source/WebCore/PAL:
Use
valueOrDefault
where appropriate. See WTF/ChangeLog for more details.
- pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.cpp:
(PAL::WebGPU::ComputePassEncoderImpl::setBindGroup):
- pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.cpp:
(PAL::WebGPU::RenderBundleEncoderImpl::setBindGroup):
- pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp:
(PAL::WebGPU::RenderPassEncoderImpl::setBindGroup):
Source/WebKit:
Use
valueOrDefault
where appropriate. See WTF/ChangeLog for more details.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::scheduleResourceLoad):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::ensureSWServer):
- NetworkProcess/cache/NetworkCacheFileSystem.cpp:
(WebKit::NetworkCache::fileTimes):
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::NetworkStorageManager):
- UIProcess/Automation/SimulatedInputDispatcher.cpp:
(WebKit::SimulatedInputDispatcher::transitionInputSourceToState):
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::loadRequest):
- UIProcess/WebPageProxy.h:
- UIProcess/WebProcessProxy.h:
(WebKit::WebProcessProxy::registrableDomain const):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
- WebProcess/Network/WebLoaderStrategy.cpp:
(WebKit::WebLoaderStrategy::loadResource):
(WebKit::WebLoaderStrategy::scheduleLoad):
(WebKit::WebLoaderStrategy::scheduleLoadFromNetworkProcess):
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::convertFromPDFViewToRootView const):
(WebKit::PDFPlugin::boundsOnScreen const):
(WebKit::PDFPlugin::geometryDidChange):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScriptInFrameInScriptWorld):
- WebProcess/cocoa/VideoFullscreenManager.mm:
(WebKit::VideoFullscreenManager::didEnterFullscreen):
Source/WTF:
Add a new helper function that returns the value of a given
std::optional<Type>
if it exists, and otherwise
constructs and returnsType { }
. Currently, the alternative to this is writing out theType { }
in full when
passing in an argument tovalue_or
; using this avoids some redundancy and makes the expression a bit easier to
read.
- wtf/StdLibExtras.h:
(WTF::valueOrDefault):
- 4:06 PM Changeset in webkit [287730] by
-
- 1 copy in branches/safari-612.4.9.3-branch
New branch.
- 4:06 PM Changeset in webkit [287729] by
-
- 1 copy in branches/safari-612.4.9.2-branch
New branch.
- 4:06 PM Changeset in webkit [287728] by
-
- 1 copy in branches/safari-612.4.9.1-branch
New branch.
- 4:06 PM Changeset in webkit [287727] by
-
- 1 copy in branches/safari-612.4.9.0-branch
New branch.
- 3:57 PM Changeset in webkit [287726] by
-
- 1 copy in tags/Safari-612.4.9
Tag Safari-612.4.9.
- 3:56 PM Changeset in webkit [287725] by
-
- 1 delete in tags/Safari-612.4.9
Delete tag.
- 3:50 PM Changeset in webkit [287724] by
-
- 3 edits2 adds in trunk
REGRESSION(r281389): Text wraps unnecessarily within intrinsically-sized elements when using certain fonts and the inner HTML of the element contains a new line that is not preceded by a space
https://bugs.webkit.org/show_bug.cgi?id=232939
<rdar://problem/85254819>
Reviewed by Alan Bujtas.
Source/WebCore:
We need newline characters to have the same width as space characters for 2 reasons:
- Our code implicitly depends on it. We have places where we measure a newline character in one place,
and then later realize that we shouldn't have included its with so we subtract out the width of
the space character. (For more information, read the comments of this bugzilla bug.) This assumes
that the width of the newline character is equal to the width of the space character.
- We need it for correctness. Even if WebKit was entirely consistent about measuring the width of
newline characters, we don't want to have the width of an element depend on the width of the
newline character in the font. Every other browser forces newline characters to have the same
width as space characters. And, even if we weren't concerned about compatibility (we are),
we'd be producing bogus results because font designers aren't incentivized to put any meaningful
values in their fonts for the width of a newline character, since no software actually uses it.
Luckily, we already have our "charactersTreatedAsSpace" infrastructure, so we can just tweak it to have
it set characters which are treated as space, but aren't the tab character, to have the same width as
the space character.
Test: fast/text/newline-width.html
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::advanceInternal):
LayoutTests:
The div:before { position: absolute; } is necessary to trigger this bug; I assume it's necessary to
opt-out of IFC.
- fast/text/newline-width-expected.html: Added.
- fast/text/newline-width.html: Added.
- 3:42 PM Changeset in webkit [287723] by
-
- 2 edits in trunk/Tools
[GLIB] Make API test initialize localstorage to ensure the database file is created
https://bugs.webkit.org/show_bug.cgi?id=234891
Reviewed by Michael Catanzaro.
Changes needed after 245553@main/r287418 changed the localstorage
behavior to avoid creating an empty database file when reading empty
databases.
- TestWebKitAPI/Tests/WebKitGLib/TestWebsiteData.cpp:
(testWebsiteDataConfiguration):
- 3:42 PM Changeset in webkit [287722] by
-
- 1 copy in tags/Safari-612.4.9
Tag Safari-612.4.9.
- 3:41 PM Changeset in webkit [287721] by
-
- 1 copy in tags/Safari-612.4.8.1.1
Tag Safari-612.4.8.1.1.
- 3:39 PM Changeset in webkit [287720] by
-
- 15 edits in trunk/Source
Separate "linked-on-or-{before, after}-everything" override from the SDK version
https://bugs.webkit.org/show_bug.cgi?id=234930
Reviewed by Wenson Hsieh.
Source/WebCore:
- platform/cocoa/VersionChecks.mm:
(WebCore::linkedOnOrAfter):
Make use of the new bit instead of checking for Safari's bundle identifier.
- testing/js/WebCoreTestSupport.cpp:
(WebCoreTestSupport::setLinkedOnOrAfterEverythingForTesting):
Adopt the new bit.
Source/WebKit:
- Shared/AuxiliaryProcess.h:
- Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::AuxiliaryProcess::platformInitialize):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.h:
(WebKit::XPCServiceInitializer):
- Shared/EntryPointUtilities/Cocoa/XPCService/XPCServiceEntryPoint.mm:
(WebKit::XPCServiceInitializerDelegate::getLinkedOnOrAfterOverride):
Plumb the LOA override optional through process initialization (just like
we do for SDK version, because linkedOnOrAfter() is used VERY early in
JavaScriptCore initialization).
- UIProcess/API/Cocoa/WKProcessPool.mm:
(+[WKProcessPool _setLinkedOnOrBeforeEverythingForTesting]):
(+[WKProcessPool _setLinkedOnOrAfterEverythingForTesting]):
(+[WKProcessPool _setLinkedOnOrAfterEverything]):
- UIProcess/API/Cocoa/WKProcessPoolPrivate.h:
Expose non-testing SPI for Safari to opt in to "linked-on-or-after-everything"
so that we can (eventually) stop using a bundle identifier check.
- UIProcess/Launcher/cocoa/ProcessLauncherCocoa.mm:
(WebKit::ProcessLauncher::launchProcess):
- UIProcess/WebProcessPool.cpp:
Initialize the LOA override using the same logic we previously used in linkedOnOrAfter().
Source/WTF:
- wtf/cocoa/RuntimeApplicationChecksCocoa.cpp:
(WTF::linkedOnOrAfterOverrideValue):
(WTF::setLinkedOnOrAfterOverride):
(WTF::linkedOnOrAfterOverride):
- wtf/cocoa/RuntimeApplicationChecksCocoa.h:
Add an explicit optional bit for "this application should pretend to be
linked on or {after, before} everything" instead of just overriding the
SDK version. This is a prerequisite for getting rid of applicationSDKVersion(),
which will happen in a future patch.
This is in WTF because linkedOnOrAfter() is going to move here in a
future patch as well.
- 3:18 PM Changeset in webkit [287719] by
-
- 2 edits in trunk/Tools
[EWS] Support pull-requests in ConfigureBuild
https://bugs.webkit.org/show_bug.cgi?id=234848
<rdar://problem/87094989>
Reviewed by Dewei Zhu.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin.pr_url): Map pull-request number to URL.
(GitHubMixin.get_pull_request_number): Check if the event triggering
this was a pull_request, and the specified branch can be mapped to a
pull-request.
(ConfigureBuild.start): Add pull-request details.
(ConfigureBuild.add_pr_details): Ditto.
Canonical link: https://commits.webkit.org/245802@main
- 3:00 PM Changeset in webkit [287718] by
-
- 4 edits in trunk
[PlayStation] Fix build break after r287698
https://bugs.webkit.org/show_bug.cgi?id=234931
Unreviewed build fix
.:
- Source/cmake/OptionsPlayStation.cmake: Workaround for not having u8string for gtest.
Source/WTF:
- wtf/PlatformHave.h: Use MISSING_STD_FILESYSTEM_PATH_CONSTRUCTOR on PlayStation
- 2:31 PM Changeset in webkit [287717] by
-
- 3 edits2 deletes in branches/safari-612-branch
Revert "Apply patch. rdar://problem/87124847"
This reverts commit r287709.
- 1:02 PM Changeset in webkit [287716] by
-
- 2 edits in trunk
[MSVC] Suppress new warnings C5054 and C5055 introduced by /permissive-
https://bugs.webkit.org/show_bug.cgi?id=234929
Reviewed by Ross Kirsling.
After 245790@main enabled C++20 which implicitly enabled
/permissive- switch, WinCairo builds emit a lot of new compilation
warnings.
- Source/cmake/OptionsMSVC.cmake: Suppress the warnings.
- 1:01 PM Changeset in webkit [287715] by
-
- 6 edits in trunk/Source
Microphone device filtering heuristic is too harsh
https://bugs.webkit.org/show_bug.cgi?id=234596
<rdar://problem/86803287>
Reviewed by Eric Carlson.
Source/WebCore:
When audio capture happens, there are more audio devices and some audio devices get an input stream for echo cancellation.
We add an API to disable that filtering which is used when capture is not done in the process where audio enumeration is done.
A longer term solution should look at doing this filtering in all cases.
Manually tested in Safari and Minibrowser.
- WebCore.xcodeproj/project.pbxproj:
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.cpp:
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.h:
Source/WebKit:
- UIProcess/WebPageProxy.cpp:
Disable filtering if audio capture happens in GPUProcess.
- 12:51 PM Changeset in webkit [287714] by
-
- 3 edits in trunk/Source/WebCore
A gentle momentum scroll into an edge sometimes fails to rubberband, stopping abruptly
https://bugs.webkit.org/show_bug.cgi?id=234896
Reviewed by Tim Horton.
During the momentum phase of a scroll gesture we can hit the edge and try to determine that
we should start a rubberband animation. If, at this time, we happen to be at the edge, then
we'd fail to start the animation and the momentum would appear to stop abruptly.
Two fixes were needed. First,
ScrollingEffectsController::startRubberBandAnimationIfNecessary() looks at whether we're
currently stretched, but we might be passing through the edge on the way into a rubberband,
so also need to check for a stretch force.
Second, ScrollAnimationRubberBand needs to not stop prematurely if, in its first callback,
it's still at the edge even though it's animating into a rubberband. The easy fix here is to
just avoid completion during the first few frames.
I was unable to make a reliable layout test for this.
- platform/mac/ScrollAnimationRubberBand.mm:
(WebCore::ScrollAnimationRubberBand::serviceAnimation):
- platform/mac/ScrollingEffectsController.mm:
(WebCore::ScrollingEffectsController::startRubberBandAnimationIfNecessary):
- 12:32 PM Changeset in webkit [287713] by
-
- 1 copy in tags/Safari-613.1.12.1.3
Tag Safari-613.1.12.1.3.
- 12:21 PM Changeset in webkit [287712] by
-
- 22 edits2 adds2 deletes in trunk
Unprefix -webkit-print-color-adjust CSS property
https://bugs.webkit.org/show_bug.cgi?id=201098
Reviewed by Darin Adler.
color-adjust is also a deprecated shorthand that just contains print-color-adjust.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
Source/WebCore:
- animation/CSSPropertyAnimation.cpp:
(WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
Source/WebInspectorUI:
- UserInterface/Models/CSSKeywordCompletions.js:
LayoutTests:
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- fast/css/getComputedStyle/resources/property-names.js:
- fast/css/print-color-adjust-expected.txt: Added.
- fast/css/print-color-adjust.html: Added.
- fast/css/webkit-color-adjust-expected.txt: Removed.
- fast/css/webkit-color-adjust.html: Removed.
- 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/ios/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- platform/ios/svg/css/getComputedStyle-basic-expected.txt:
- svg/css/getComputedStyle-basic-expected.txt:
- webgl/webgl-oom-paint-document-no-crash.html:
- 12:13 PM Changeset in webkit [287711] by
-
- 3 edits2 adds in trunk
ReadableStream::lock should check whether there is an exception when getting ReadableStreamDefaultReader private constructor
https://bugs.webkit.org/show_bug.cgi?id=234890
Source/WebCore:
Reviewed by Frédéric Wang and Mark Lam.
Do in ReadableStream::lock like we are doing when getting ReadableStream private constructor in ReadableStream::create.
For that reason, introduce a invokeConstructor utility function.
Test: streams/readable-stream-lock-after-worker-terminates-crash.html
- bindings/js/ReadableStream.cpp:
LayoutTests:
Reviewed by Frédéric Wang.
- streams/readable-stream-lock-after-worker-terminates-crash-expected.txt: Added.
- streams/readable-stream-lock-after-worker-terminates-crash.html: Added.
- 12:04 PM Changeset in webkit [287710] by
-
- 3 edits2 adds in trunk
REGRESSION(r285618):A crash may happen when calculating the color-interpolation of a referenced SVG filter
https://bugs.webkit.org/show_bug.cgi?id=234918
rdar://86928631
Reviewed by Simon Fraser.
Source/WebCore:
When building a referenced SVGFilter, the color-interpolation property
of the effect element is needed. If the effect element does not have a
renderer, we fallback to the computed style property value. And if the
SVG filter is inside an <iframe> which has media queries, a Document::
updateLayout() will be forced. Building the SVGFilter should not invoke
an updateLayout() since this may not be safe and out of order.
Test: css3/filters/reference-filter-color-interpolation-update-layout.html
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::colorInterpolationForElement):
LayoutTests:
- css3/filters/reference-filter-color-interpolation-update-layout-expected.txt: Added.
- css3/filters/reference-filter-color-interpolation-update-layout.html: Added.
- 12:01 PM Changeset in webkit [287709] by
-
- 3 edits2 adds in branches/safari-612-branch
Apply patch. rdar://problem/87124847
- 11:59 AM Changeset in webkit [287708] by
-
- 3 edits in trunk/Source/WebCore
Remove Animation::operator=
https://bugs.webkit.org/show_bug.cgi?id=234915
Reviewed by Yusuke Suzuki.
This doesn't seem to be required, so let's remove it.
- platform/animation/Animation.cpp:
(WebCore::Animation::operator=): Deleted.
- platform/animation/Animation.h:
- 11:57 AM Changeset in webkit [287707] by
-
- 17 edits in trunk
[Web Animations] inserting a rule within a @keyframes rule should update animations
https://bugs.webkit.org/show_bug.cgi?id=234895
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
- web-platform-tests/css/css-animations/KeyframeEffect-setKeyframes.tentative-expected.txt:
Source/WebCore:
Using the CSSOM, it is possible to insert or delete rules within an @keyframes rule.
In fact, there are two WPT that check this behavior with the getKeyframes() and
setKeyframes() methods.
This would not have any effect until now because when we consider whether to invalidate
animations in Styleable::updateCSSAnimations(), we look at the previous and current
AnimationList and don't see any difference because we look, as far as keyframes are
concerned, at the @keyframes name but not at the keyframes content.
Now, when a rule is added or deleted from an @keyframes rule using the CSSOM, we notify
the Document using the new keyframesRuleDidChange() method, which in turn checks all
CSSAnimation objects applied to elements in that document using that @keyframes rule
and notifies them of the change by calling keyframesRuleDidChange().
This clears the keyframes on the associated KeyframeEffect, invalidates the target
and sets a flag on the ElementAnimationRareData that this element is pending update
to its CSS Animations' keyframe such that during the next call
Styleable::updateCSSAnimations() we force the update even if the previous and current
AnimationList look identical.
During that next call to Styleable::updateCSSAnimations(), we will call into the new
CSSAnimation::updateKeyframesIfNeeded() which will re-compute the keyframes based on the
current set of rules within the @keyframes rule.
The final piece of work required is to track when setKeyframes() is called on the effect
that updates to the @keyframes rule should no longer apply since they keyframes were overriden
by the Web Animations API. This is done by setting an additional flag in
CSSAnimation::effectKeyframesWereSetUsingBindings().
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::effectKeyframesWereSetUsingBindings):
(WebCore::CSSAnimation::keyframesRuleDidChange):
(WebCore::CSSAnimation::updateKeyframesIfNeeded):
- animation/CSSAnimation.h:
- animation/ElementAnimationRareData.h:
(WebCore::ElementAnimationRareData::cssAnimationsDidUpdate):
(WebCore::ElementAnimationRareData::keyframesRuleDidChange):
(WebCore::ElementAnimationRareData::hasPendingKeyframesUpdate const):
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::keyframesRuleDidChange):
- animation/KeyframeEffect.h:
- css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::didMutateRules):
(WebCore::CSSStyleSheet::RuleMutationScope::RuleMutationScope):
(WebCore::CSSStyleSheet::RuleMutationScope::~RuleMutationScope):
- css/CSSStyleSheet.h:
- dom/Document.cpp:
(WebCore::Document::keyframesRuleDidChange):
- dom/Document.h:
- dom/Element.cpp:
(WebCore::Element::cssAnimationsDidUpdate):
(WebCore::Element::keyframesRuleDidChange):
(WebCore::Element::hasPendingKeyframesUpdate const):
- dom/Element.h:
- style/Styleable.cpp:
(WebCore::Styleable::updateCSSAnimations const):
- style/Styleable.h:
(WebCore::Styleable::keyframesRuleDidChange const):
- 11:47 AM Changeset in webkit [287706] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r287651. rdar://problem/86338105
Fix the build
- Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebWheelEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:47 AM Changeset in webkit [287705] by
-
- 10 edits in branches/safari-612-branch/Source
Cherry-pick r287641. rdar://problem/86338105
Momentum Event Dispatcher: Momentum tails may get truncated if the duration runs longer than the system's
https://bugs.webkit.org/show_bug.cgi?id=234535
<rdar://problem/86338105>
Reviewed by Simon Fraser.
Source/WebKit:
Currently, synthetic momentum dispatch is strictly tied to the duration
of the real platform momentum phase, which has two unfortunate implications:
- if our phase runs shorter than the platform phase, we'll keep dispatching zero-delta events until the platform momentum ends
- more importantly, if our phase runs longer, it will be abruptly terminated when the platform momentum ends
In practice, our synthetic phase is very close in duration to the system one,
so the impact is minimal. But, to be safe, disentagle the two durations,
using a new bit from the platform to determine if the system momentum phase
was interrupted by the user (e.g. by tapping the trackpad) or naturally,
and ignoring the ended event in the natural case, allowing synthetic
events to continue being dispatched.
- Shared/WebWheelEvent.cpp: (WebKit::WebWheelEvent::WebWheelEvent): (WebKit::WebWheelEvent::encode const): (WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h: (WebKit::WebWheelEvent::momentumEndType const):
- Shared/WebWheelEventCoalescer.cpp: (WebKit::WebWheelEventCoalescer::coalesce): Plumb momentumEndType along on WebWheelEvent. Platforms that don't provide information about the interruption reason will always say Unknown.
- Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebWheelEvent): Only bother looking up the CGEvent/IOHIDEvent once, and extract all relevant details in one go.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::handleWheelEvent): Don't interrupt the synthetic momentum phase if the momentum-ended event comes from the natural end of the deceleration instead of an interruption (or an unknown reason).
Keep track of whether we're in the middle of a platform momentum phase
that we chose (at momentum-begin time) to override. When deciding
whether to eat an incoming event, take *both* this new bit and whether
we are currently in the middle of a synthetic phase into account. It
is important to continue eating incoming events in the case where
the synthetic phase ended early (soactive
became false) but the
platform phase continues.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Adjust some logging wording to be more precise.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
Make this log public so that the curve value is visible in logs.
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
Make consumeDeltaForCurrentTime inform the client via an optional when
we are at the end of the delta table.
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
Stop the synthetic momentum phase as soon as we run out of deltas.
(WebKit::MomentumEventDispatcher::computeNextDelta):
- WebProcess/WebPage/MomentumEventDispatcher.h:
Source/WTF:
- wtf/PlatformHave.h: Add a HAVE for kIOHIDEventScrollMomentumInterrupted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287641 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:44 AM Changeset in webkit [287704] by
-
- 2 edits in trunk/Source/WebCore
Replace WTFMove + clear with std::exchange for AXObjectCache notification queues.
https://bugs.webkit.org/show_bug.cgi?id=234919
<rdar://problem/87194936>
Reviewed by Chris Fleizach.
Code clean up, per Darin Adler's comment in
https://bugs.webkit.org/show_bug.cgi?id=234355.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::notificationPostTimerFired):
(WebCore::AXObjectCache::passwordNotificationPostTimerFired):
- 11:41 AM Changeset in webkit [287703] by
-
- 2 edits in branches/safari-612.4.8.1-branch/Source/WebKit
Cherry-pick r287651. rdar://problem/86338105
Fix the build
- Shared/ios/WebIOSEventFactory.mm: (WebIOSEventFactory::createWebWheelEvent):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287651 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:41 AM Changeset in webkit [287702] by
-
- 10 edits in branches/safari-612.4.8.1-branch/Source
Cherry-pick r287641. rdar://problem/86338105
Momentum Event Dispatcher: Momentum tails may get truncated if the duration runs longer than the system's
https://bugs.webkit.org/show_bug.cgi?id=234535
<rdar://problem/86338105>
Reviewed by Simon Fraser.
Source/WebKit:
Currently, synthetic momentum dispatch is strictly tied to the duration
of the real platform momentum phase, which has two unfortunate implications:
- if our phase runs shorter than the platform phase, we'll keep dispatching zero-delta events until the platform momentum ends
- more importantly, if our phase runs longer, it will be abruptly terminated when the platform momentum ends
In practice, our synthetic phase is very close in duration to the system one,
so the impact is minimal. But, to be safe, disentagle the two durations,
using a new bit from the platform to determine if the system momentum phase
was interrupted by the user (e.g. by tapping the trackpad) or naturally,
and ignoring the ended event in the natural case, allowing synthetic
events to continue being dispatched.
- Shared/WebWheelEvent.cpp: (WebKit::WebWheelEvent::WebWheelEvent): (WebKit::WebWheelEvent::encode const): (WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h: (WebKit::WebWheelEvent::momentumEndType const):
- Shared/WebWheelEventCoalescer.cpp: (WebKit::WebWheelEventCoalescer::coalesce): Plumb momentumEndType along on WebWheelEvent. Platforms that don't provide information about the interruption reason will always say Unknown.
- Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebWheelEvent): Only bother looking up the CGEvent/IOHIDEvent once, and extract all relevant details in one go.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::handleWheelEvent): Don't interrupt the synthetic momentum phase if the momentum-ended event comes from the natural end of the deceleration instead of an interruption (or an unknown reason).
Keep track of whether we're in the middle of a platform momentum phase
that we chose (at momentum-begin time) to override. When deciding
whether to eat an incoming event, take *both* this new bit and whether
we are currently in the middle of a synthetic phase into account. It
is important to continue eating incoming events in the case where
the synthetic phase ended early (soactive
became false) but the
platform phase continues.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Adjust some logging wording to be more precise.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
Make this log public so that the curve value is visible in logs.
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
Make consumeDeltaForCurrentTime inform the client via an optional when
we are at the end of the delta table.
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
Stop the synthetic momentum phase as soon as we run out of deltas.
(WebKit::MomentumEventDispatcher::computeNextDelta):
- WebProcess/WebPage/MomentumEventDispatcher.h:
Source/WTF:
- wtf/PlatformHave.h: Add a HAVE for kIOHIDEventScrollMomentumInterrupted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287641 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:38 AM Changeset in webkit [287701] by
-
- 8 edits in branches/safari-612.4.8.1-branch/Source
Versioning.
WebKit-7612.4.8.1.1
- 11:19 AM Changeset in webkit [287700] by
-
- 1 copy in branches/safari-612.4.8.1-branch
New branch.
- 10:58 AM Changeset in webkit [287699] by
-
- 5 edits in trunk/Source
Always assume Safari is "linked-on-or-after" any SDK version
https://bugs.webkit.org/show_bug.cgi?id=234914
Reviewed by Aditya Keerthi.
Source/WebCore:
- platform/cocoa/VersionChecks.h:
- platform/cocoa/VersionChecks.mm:
(WebCore::linkedOnOrAfter):
Remove the AssumeSafariIsAlwaysLinkedOnAfter::No mechanism, which no longer
has any clients.
Source/WebKit:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView _initializeWithConfiguration:]):
Get rid of this special-case AssumeSafariIsAlwaysLinkedOnAfter::No,
from r244203, because we no longer target versions of macOS that
ship with versions of Safari that require this special case.
- 10:14 AM Changeset in webkit [287698] by
-
- 59 edits in trunk
Start using C++20
https://bugs.webkit.org/show_bug.cgi?id=233963
Reviewed by Yusuke Suzuki.
.:
- Source/cmake/OptionsCommon.cmake:
- Source/cmake/WebKitCompilerFlags.cmake:
Source/bmalloc:
- Configurations/Base.xcconfig:
Source/JavaScriptCore:
- Configurations/Base.xcconfig:
- Configurations/JavaScriptCore.xcconfig:
- DerivedSources.make:
- heap/Heap.cpp:
(JSC::Heap::addCoreConstraints):
- runtime/CachedTypes.cpp:
- runtime/LiteralParser.h:
- shell/PlatformPlayStation.cmake:
Source/ThirdParty:
- gtest/xcode/Config/General.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/Base.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/Base.xcconfig:
- Source/webrtc/rtc_base/system/no_unique_address.h:
Source/WebCore:
- Configurations/Base.xcconfig:
- DerivedSources.make:
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::IOSurface::ensurePlatformContext):
- platform/ios/wak/WebCoreThread.mm:
Source/WebCore/PAL:
- Configurations/Base.xcconfig:
Source/WebGPU:
- Configurations/Base.xcconfig:
Source/WebInspectorUI:
- Configurations/Base.xcconfig:
Source/WebKit:
- Configurations/Base.xcconfig:
- PlatformMac.cmake:
- UIProcess/API/Cocoa/WKWebViewConfiguration.mm:
(-[WKWebViewConfiguration _setInlineMediaPlaybackRequiresPlaysInlineAttribute:]):
Source/WebKitLegacy:
- PlatformMac.cmake:
Source/WebKitLegacy/mac:
- Configurations/Base.xcconfig:
- Configurations/WebKitLegacy.xcconfig:
- MigrateHeaders.make:
Source/WTF:
- Configurations/Base.xcconfig:
- wtf/DisallowCType.h:
- wtf/FileSystem.cpp:
(WTF::FileSystemImpl::toStdFileSystemPath):
(WTF::FileSystemImpl::fromStdFileSystemPath):
- wtf/PlatformHave.h:
- wtf/VectorTraits.h:
- wtf/text/StringOperators.h:
Tools:
- DumpRenderTree/DerivedSources.make:
- DumpRenderTree/mac/Configurations/Base.xcconfig:
- MiniBrowser/Configurations/Base.xcconfig:
- MobileMiniBrowser/Configurations/Base.xcconfig:
- TestWebKitAPI/Configurations/Base.xcconfig:
- TestWebKitAPI/Tests/WTF/Expected.cpp:
(TestWebKitAPI::NonCopyable::NonCopyable):
- TestWebKitAPI/Tests/WTF/URLParser.cpp:
(TestWebKitAPI::TEST_F):
- WebKitTestRunner/Configurations/Base.xcconfig:
- WebKitTestRunner/DerivedSources.make:
- lldb/lldbWebKitTester/Configurations/Base.xcconfig:
- 10:04 AM Changeset in webkit [287697] by
-
- 2 edits in trunk/Source/WebCore
Prevent reentrancy in -[WebCoreThemeView window]
https://bugs.webkit.org/show_bug.cgi?id=234258
<rdar://85927756>
Reviewed by Wenson Hsieh.
Prevent reentrancy in
-[WebCoreThemeView window]
by eagerly
initializing the window (whenWebCoreThemeView
is created).
WebCoreThemeView
is already only created once per process (as a
static variable inThemeMac::ensuredView
), so a static variable
for the window is unnecessary.
- platform/mac/ThemeMac.mm:
(-[WebCoreThemeView init]):
(-[WebCoreThemeView window]):
- 9:51 AM Changeset in webkit [287696] by
-
- 2 edits in trunk/LayoutTests
Tighten test expectation for imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html
Unreviewed.
- TestExpectations: Test passes fine in Release -this is an assertion issue in Debug.
- 9:25 AM Changeset in webkit [287695] by
-
- 2 edits in branches/safari-613.1.12.1-branch/Source/WebKit
Cherry-pick r287648. rdar://problem/86870109
[iOS][WP] Unable to consume mach extension
https://bugs.webkit.org/show_bug.cgi?id=234889
<rdar://86870109>
Reviewed by Brent Fulgham.
The WebContent process on iOS is unable to consume mach extensions to the frontboard service.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287648 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:25 AM Changeset in webkit [287694] by
-
- 5 edits in branches/safari-613.1.12.1-branch/Source/WebKit
Cherry-pick r287616. rdar://problem/85990387
[macCatalyst][GPUP][NetworkProcess] Block WindowServer connections
https://bugs.webkit.org/show_bug.cgi?id=234432
<rdar://problem/85990387>
Reviewed by Brent Fulgham.
Block WindowServer connections on macCatalyst.
- GPUProcess/mac/GPUProcessMac.mm: (WebKit::GPUProcess::initializeProcess):
- NetworkProcess/mac/NetworkProcessMac.mm: (WebKit::NetworkProcess::initializeProcess):
- Shared/Cocoa/AuxiliaryProcessCocoa.mm: (WebKit::AuxiliaryProcess::setApplicationIsDaemon):
- WebAuthnProcess/mac/WebAuthnProcessMac.mm: (WebKit::WebAuthnProcess::initializeProcess):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287616 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:21 AM Changeset in webkit [287693] by
-
- 28 edits2 deletes in trunk
Drop implementation for COOP / COEP violation reporting
https://bugs.webkit.org/show_bug.cgi?id=234899
Reviewed by Geoffrey Garen.
Source/WebCore:
Drop implementation for COOP / COEP violation reporting. The implementation was based on an outdated version of the specification
and has never shipped. Many COOP/COEP reporting tests are also flaky.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- loader/CrossOriginEmbedderPolicy.cpp:
(WebCore::contextURLForReport): Deleted.
(WebCore::sendCOEPPolicyInheritenceViolation): Deleted.
(WebCore::sendCOEPCORPViolation): Deleted.
- loader/CrossOriginEmbedderPolicy.h:
- loader/CrossOriginOpenerPolicy.cpp:
(WebCore::enforceResponseCrossOriginOpenerPolicy):
(WebCore::doCrossOriginOpenerHandlingOfResponse):
(WebCore::crossOriginOpenerPolicyValueToEffectivePolicyString): Deleted.
(WebCore::sendViolationReportWhenNavigatingToCOOPResponse): Deleted.
(WebCore::sendViolationReportWhenNavigatingAwayFromCOOPResponse): Deleted.
- loader/CrossOriginOpenerPolicy.h:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::willSendRequest):
(WebCore::DocumentLoader::doCrossOriginOpenerHandlingOfResponse):
(WebCore::DocumentLoader::responseReceived):
- loader/PingLoader.cpp:
(WebCore::PingLoader::sendReportToEndpoint): Deleted.
- loader/PingLoader.h:
- loader/ReportingEndpointsCache.cpp: Removed.
(WebCore::ReportingEndpointsCache::Endpoint::Endpoint): Deleted.
(WebCore::ReportingEndpointsCache::Endpoint::hasExpired const): Deleted.
(WebCore::ReportingEndpointsCache::create): Deleted.
(WebCore::ReportingEndpointsCache::addEndpointsFromResponse): Deleted.
(WebCore::ReportingEndpointsCache::addEndpointsFromReportToHeader): Deleted.
(WebCore::ReportingEndpointsCache::addEndpointFromDictionary): Deleted.
(WebCore::ReportingEndpointsCache::endpointURL const): Deleted.
- loader/ReportingEndpointsCache.h: Removed.
- page/Page.cpp:
- page/Page.h:
(WebCore::Page::reportingEndpointsCache): Deleted.
- page/PageConfiguration.cpp:
- page/PageConfiguration.h:
Source/WebKit:
Drop implementation for COOP / COEP violation reporting. The implementation was based on an outdated version of the specification
and has never shipped. Many COOP/COEP reporting tests are also flaky.
- NetworkProcess/NetworkLoadChecker.cpp:
(WebKit::performCORPCheck):
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::shouldInterruptNavigationForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::shouldInterruptWorkerLoadForCrossOriginEmbedderPolicy):
(WebKit::NetworkResourceLoader::doCrossOriginOpenerHandlingOfResponse):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
(WebKit::WebPage::sendCOEPPolicyInheritenceViolation): Deleted.
(WebKit::WebPage::sendCOEPCORPViolation): Deleted.
(WebKit::WebPage::sendViolationReportWhenNavigatingToCOOPResponse): Deleted.
(WebKit::WebPage::sendViolationReportWhenNavigatingAwayFromCOOPResponse): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::WebProcess):
- WebProcess/WebProcess.h:
(WebKit::WebProcess::webSocketChannelManager):
(WebKit::WebProcess::reportingEndpointsCache): Deleted.
LayoutTests:
Skip all COOP / COEP reporting tests instead of marking individual tests as flaky or failing.
- TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 9:15 AM Changeset in webkit [287692] by
-
- 3 edits in trunk/Source/WebCore
Drop unnecessary data member in WorkerThreadableLoader
https://bugs.webkit.org/show_bug.cgi?id=234907
Reviewed by Youenn Fablet.
Drop unnecessary data member in WorkerThreadableLoader. It is unused and holding a strong
reference to the WorkerGlobalScope for an extended period of time can lead to issues such
as Bug 230109.
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
- loader/WorkerThreadableLoader.h:
- 9:15 AM Changeset in webkit [287691] by
-
- 3 edits2 adds in branches/safari-613.1.12.1-branch
Cherry-pick r287417. rdar://problem/86841302
REGRESSION(Containment) nullptr deref in RenderBox::styleDidChange
https://bugs.webkit.org/show_bug.cgi?id=234647
<rdar://86841302>
Reviewed by Simon Fraser.
Source/WebCore:
Do not try to propagate the writing mode to the RenderView unless we are attached to one.
Test: fast/dynamic/document-elment-renderer-null-crash.html
- rendering/RenderBox.cpp: (WebCore::RenderBox::styleDidChange):
LayoutTests:
- fast/dynamic/document-elment-renderer-null-crash-expected.txt: Added.
- fast/dynamic/document-elment-renderer-null-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287417 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:06 AM Changeset in webkit [287690] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.3
- 9:00 AM Changeset in webkit [287689] by
-
- 4 edits in trunk/Source/WebCore
Potential high CPU usage on macrumors.com
https://bugs.webkit.org/show_bug.cgi?id=234867
<rdar://85382450>
Reviewed by Geoffrey Garen.
The issue would occur when a suspended EventLoopTaskGroup had pending tasks and was getting marked
as ready to stop. The "ready to stop" concept was introduced in r269227 so that we would only stop
event loop groups for a given origin once all groups in that origin are ready to stop. This was so
that promises from detached iframes could resolve when scripted from another frame. The bug here
was that an EventLoopTaskGroup could move from "Suspended" state (a mode in which its tasks are not
executed) and into a "ReadyToStop" state (a mode in which its tasks are executed until all groups
in its origin are ready to stop). As a result, we would take a EventLoopGroup out of suspended
state unintentionally. This was causing a rescheduling loop in DeferredPromise::callFunction()
which would cause high CPU usage. Because activeDOMObjectsAreSuspended() returns true,
callFunction() would not call the JS function and would instead schedule a task on the event loop
to do so. The exception here is that the event loop group is suspended too and thus the scheduled
task will not run until the ActiveDOMObjects (and the event loop group) get resumed (i.e. page is
restored from the back/forward cache). However, due to the bug above, the event loop group was
unexpected NOT suspended and would run the scheduled task on the next runloop iteration and
callFunction() would just keep rescheduling itself in a loop.
To address the issue, we now cancel all tasks in the group and stop it permanently when its state
moves from "suspended" to "ready to stop". The state moves from "suspended" to "ready to stop"
when a CachedPage gets destroyed. As this point, the tasks in this group will never run since
we're suspended and we'll never get out of suspension (ready to stop).
- bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::callFunction):
- dom/EventLoop.cpp:
(WebCore::EventLoop::resumeGroup):
(WebCore::EventLoop::run):
(WebCore::EventLoop::clearAllTasks):
- dom/EventLoop.h:
(WebCore::EventLoopTaskGroup::markAsReadyToStop):
(WebCore::EventLoopTaskGroup::isStoppedPermanently const):
(WebCore::EventLoopTaskGroup::isSuspended const):
(WebCore::EventLoopTaskGroup::isStoppedPermanently): Deleted.
(WebCore::EventLoopTaskGroup::isSuspended): Deleted.
- 8:40 AM Changeset in webkit [287688] by
-
- 10 edits in trunk/LayoutTests/imported/w3c
REGRESSION (r287323): [iOS] 9 imported/w3c/web-platform-tests/css/css-transforms tests consistently failing
https://bugs.webkit.org/show_bug.cgi?id=234908
<rdar://problem/87172770>
Reviewed by Simon Fraser.
Adjust WPT trasnform reference test fuzziness for iOS. In some cases the reference
matches more closely and in other cases slightly less closely.
- web-platform-tests/css/css-transforms/2d-rotate-001.html:
- web-platform-tests/css/css-transforms/css-skew-002.html:
- web-platform-tests/css/css-transforms/rotate_45deg.html:
- web-platform-tests/css/css-transforms/rotate_x_45deg.html:
- web-platform-tests/css/css-transforms/rotate_y_45deg.html:
- web-platform-tests/css/css-transforms/skew-test1.html:
- web-platform-tests/css/css-transforms/transform-percent-008.html:
- web-platform-tests/css/css-transforms/ttwf-transform-skewx-001.html:
- web-platform-tests/css/css-transforms/ttwf-transform-skewy-001.html:
- 8:35 AM Changeset in webkit [287687] by
-
- 11 edits in trunk/Source/WebCore
Content Filtering should be using SharedBuffer instead of copying its data
https://bugs.webkit.org/show_bug.cgi?id=234713
rdar://problem/86947433
Reviewed by Youenn Fablet.
We can directly construct the NSData used by ParentalControlsContentFilter
and NetworkExtensionContentFilter from the SharedBuffer.
No change in observable behaviour.
- loader/ContentFilter.cpp:
(WebCore::ContentFilter::continueAfterDataReceived):
- loader/ContentFilter.h:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::dataReceived):
- platform/PlatformContentFilter.h:
- platform/cocoa/NetworkExtensionContentFilter.h:
- platform/cocoa/NetworkExtensionContentFilter.mm:
(WebCore::NetworkExtensionContentFilter::addData):
- platform/cocoa/ParentalControlsContentFilter.h:
- platform/cocoa/ParentalControlsContentFilter.mm:
(WebCore::ParentalControlsContentFilter::addData):
- testing/MockContentFilter.cpp:
(WebCore::MockContentFilter::addData):
- testing/MockContentFilter.h:
- 8:23 AM Changeset in webkit [287686] by
-
- 2 edits22 adds in trunk/Tools
[webkitbugspy] Initial library commit
https://bugs.webkit.org/show_bug.cgi?id=234400
<rdar://problem/86585683>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitbugspy/MANIFEST.in: Added.
- Tools/Scripts/libraries/webkitbugspy/README.md: Added.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py: Added.
(Tracker): Bugzilla implementation of generic isssue tracker.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py: Added.
(Tracker): GitHub implementation of generic isssue tracker.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py: Added.
(Issue): Dynamically fetched generic Issue object referencing parent Tracker.
(Issue.Comment): Issue comment including author and timestamp.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/init.py: Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/base.py: Added.
(Base): Base class for mocking http based issue trackers.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py: Added.
(Bugzilla): Partial mock of Bugzilla webserver.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/data.py: Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py: Added.
(GitHub): Partial mock of GitHub webserver.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/init.py: Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py: Added.
(TestBugzilla):
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py: Added.
(TestGitHub):
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/user_unittest.py: Added.
(TestUser):
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py: Added.
(Tracker): Generic base of all issue trackers.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/user.py: Added.
(User): User object tied to specific tracker.
(User.Encoder): User JSON encoder.
(User.Mapping): Mapping of user alias to User object.
- Tools/Scripts/webkitpy/test/main.py:
(main): Add webkitbugspy to subdirectories to be tested.
Canonical link: https://commits.webkit.org/245782@main
- 7:57 AM Changeset in webkit [287685] by
-
- 1 edit1 add in trunk/Source/bmalloc
[PlayStation] Fix non-ninja PlayStation build after r285853
https://bugs.webkit.org/show_bug.cgi?id=234922
Unreviewed build fix.
- PlatformPlayStation.cmake: Added. For MSVS playstatino builds, compile as C++ to
avoid issues with the standard set being invalid.
- 7:31 AM Changeset in webkit [287684] by
-
- 173 edits in trunk/Source
Have CachedRawResourceClient and related networking actors use SharedBuffer.
https://bugs.webkit.org/show_bug.cgi?id=232424
rdar://84744687
Reviewed by Youenn Fablet.
Source/WebCore:
We modify all didReceiveData and related methods so that they no longer
use uint8_t*/int and instead use SharedBuffer.
We do the same for any intermediaries used by the various didReceiveData
implementations.
This will facilitate moving networking off the main thread in the GPU
process and allows to remove several memory allocations and copies at the
process boundaries.
We can now consider transfer the underlying SharedMemory created in
the network process all the way to the GPU process.
Fly-by fix: change FragmentedSharedBuffer type to SharedBuffer when appropriate.
No change in observable behaviour. Covered by all existing tests.
- Modules/fetch/FetchBodyConsumer.cpp:
(WebCore::FetchBodyConsumer::append):
- Modules/fetch/FetchBodyConsumer.h:
- Modules/fetch/FetchBodyOwner.cpp:
(WebCore::FetchBodyOwner::blobChunk):
- Modules/fetch/FetchBodyOwner.h:
- Modules/fetch/FetchLoader.cpp:
(WebCore::FetchLoader::didReceiveData):
- Modules/fetch/FetchLoader.h:
- Modules/fetch/FetchLoaderClient.h:
(WebCore::FetchLoaderClient::didReceiveData):
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::BodyLoader::didReceiveData):
(WebCore::FetchResponse::consumeChunk):
- Modules/fetch/FetchResponse.h:
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::dataReceived):
- Modules/model-element/HTMLModelElement.h:
- Modules/streams/ReadableStreamSink.h:
- fileapi/FileReaderLoader.cpp:
(WebCore::FileReaderLoader::didReceiveData):
- fileapi/FileReaderLoader.h:
- inspector/InspectorInstrumentation.cpp:
(WebCore::InspectorInstrumentation::didReceiveDataImpl):
- inspector/InspectorInstrumentation.h:
(WebCore::InspectorInstrumentation::didReceiveData):
- inspector/NetworkResourcesData.cpp:
(WebCore::NetworkResourcesData::ResourceData::appendData):
(WebCore::NetworkResourcesData::maybeAddResourceData):
- inspector/NetworkResourcesData.h:
- inspector/agents/InspectorNetworkAgent.cpp:
(WebCore::InspectorNetworkAgent::didReceiveResponse):
(WebCore::InspectorNetworkAgent::didReceiveData):
(WebCore::InspectorNetworkAgent::interceptRequestWithResponse):
- inspector/agents/InspectorNetworkAgent.h:
- loader/ContentFilter.cpp:
(WebCore::ContentFilter::deliverResourceData):
- loader/ContentFilterClient.h:
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::finishedLoading):
(WebCore::DocumentLoader::continueAfterContentPolicy):
(WebCore::DocumentLoader::commitLoad):
(WebCore::DocumentLoader::commitData):
(WebCore::DocumentLoader::dataReceived):
(WebCore::DocumentLoader::maybeCreateArchive):
(WebCore::DocumentLoader::maybeFinishLoadingMultipartContent):
(WebCore::DocumentLoader::dataReceivedThroughContentFilter):
- loader/DocumentLoader.h:
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::dataReceived):
(WebCore::DocumentThreadableLoader::didReceiveData):
(WebCore::DocumentThreadableLoader::didFinishLoading):
(WebCore::DocumentThreadableLoader::loadRequest):
- loader/DocumentThreadableLoader.h:
- loader/DocumentWriter.cpp:
(WebCore::DocumentWriter::addData):
- loader/DocumentWriter.h:
- loader/EmptyClients.cpp:
(WebCore::EmptyFrameLoaderClient::committedLoad):
- loader/EmptyFrameLoaderClient.h:
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::willLoadMediaElementURL):
(WebCore::FrameLoader::commitProvisionalLoad):
(WebCore::FrameLoader::loadResourceSynchronously):
(WebCore::FrameLoader::loadedResourceFromMemoryCache):
- loader/FrameLoaderClient.h:
- loader/MediaResourceLoader.cpp:
(WebCore::MediaResource::dataReceived):
- loader/MediaResourceLoader.h:
- loader/NetscapePlugInStreamLoader.cpp:
(WebCore::NetscapePlugInStreamLoader::didReceiveData):
- loader/NetscapePlugInStreamLoader.h:
- loader/ResourceLoadNotifier.cpp:
(WebCore::ResourceLoadNotifier::didReceiveData):
(WebCore::ResourceLoadNotifier::dispatchDidReceiveData):
(WebCore::ResourceLoadNotifier::sendRemainingDelegateMessages):
- loader/ResourceLoadNotifier.h:
- loader/ResourceLoader.cpp:
(WebCore::ResourceLoader::loadDataURL):
(WebCore::ResourceLoader::addBuffer):
(WebCore::ResourceLoader::didReceiveData):
(WebCore::ResourceLoader::didReceiveBuffer):
- loader/ResourceLoader.h:
- loader/SubresourceLoader.cpp:
(WebCore::SubresourceLoader::didReceiveBuffer):
- loader/SubresourceLoader.h:
- loader/SubstituteResource.h:
(WebCore::SubstituteResource::append):
- loader/ThreadableLoaderClient.h:
(WebCore::ThreadableLoaderClient::didReceiveData):
- loader/ThreadableLoaderClientWrapper.h:
(WebCore::ThreadableLoaderClientWrapper::didReceiveData):
- loader/WorkerThreadableLoader.cpp:
(WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
- loader/WorkerThreadableLoader.h:
- loader/appcache/ApplicationCacheHost.cpp:
(WebCore::ApplicationCacheHost::mainResourceDataReceived):
- loader/appcache/ApplicationCacheHost.h:
- loader/appcache/ApplicationCacheResource.cpp:
(WebCore::ApplicationCacheResource::deliver):
- loader/appcache/ApplicationCacheResourceLoader.cpp:
(WebCore::ApplicationCacheResourceLoader::dataReceived):
- loader/appcache/ApplicationCacheResourceLoader.h:
- loader/cache/CachedImage.cpp:
(WebCore::CachedImage::updateBufferInternal):
(WebCore::CachedImage::updateBuffer):
(WebCore::CachedImage::updateData):
- loader/cache/CachedImage.h:
- loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::calculateIncrementalDataChunk const):
(WebCore::CachedRawResource::updateBuffer):
(WebCore::CachedRawResource::updateData):
(WebCore::CachedRawResource::finishLoading):
(WebCore::CachedRawResource::notifyClientsDataWasReceived):
(WebCore::CachedRawResource::didAddClient):
- loader/cache/CachedRawResource.h:
- loader/cache/CachedRawResourceClient.h:
(WebCore::CachedRawResourceClient::dataReceived):
- loader/cache/CachedResource.cpp:
(WebCore::CachedResource::updateData):
- loader/cache/CachedResource.h:
- loader/ios/LegacyPreviewLoader.h:
- loader/ios/LegacyPreviewLoader.mm:
(WebCore::LegacyPreviewLoader::didReceiveData):
(WebCore::LegacyPreviewLoader::previewConverterDidReceiveData):
- page/EventSource.cpp:
(WebCore::EventSource::didReceiveData):
- page/EventSource.h:
- platform/SharedBuffer.cpp:
(WebCore::FragmentedSharedBuffer::takeData): Update due to DataSegmentVectorEntry::segment being const
(WebCore::FragmentedSharedBuffer::forEachSegmentAsSharedBuffer const): Add convenience method.
(WebCore::SharedBuffer::SharedBuffer):
(WebCore::SharedBufferDataView::SharedBufferDataView):
(WebCore::SharedBufferDataView::createSharedBuffer const):
- platform/SharedBuffer.h: Make DataSegmentVectorEntry::segment const.
(WebCore::SharedBuffer::create):
(WebCore::SharedBuffer::SharedBuffer):
- platform/graphics/PlatformMediaResourceLoader.h:
(WebCore::PlatformMediaResourceClient::dataReceived):
- platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
(WebCore::WebCoreAVCFResourceLoader::dataReceived):
- platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.h:
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::CachedResourceMediaLoader::dataReceived):
(WebCore::PlatformResourceMediaLoader::dataReceived):
- platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
(CachedResourceStreamingClient::dataReceived):
- platform/network/ResourceHandleClient.cpp:
(WebCore::ResourceHandleClient::didReceiveBuffer):
- platform/network/ResourceHandleClient.h:
(WebCore::ResourceHandleClient::didReceiveData):
- platform/network/SynchronousLoaderClient.cpp:
(WebCore::SynchronousLoaderClient::didReceiveData):
- platform/network/SynchronousLoaderClient.h:
- platform/network/cocoa/RangeResponseGenerator.mm:
(WebCore::RangeResponseGenerator::giveResponseToTaskIfBytesInRangeReceived):
- platform/network/cocoa/WebCoreNSURLSession.h:
- platform/network/cocoa/WebCoreNSURLSession.mm:
(WebCore::WebCoreNSURLSessionDataTaskClient::dataReceived):
(-[WebCoreNSURLSessionDataTask resource:receivedData:]):
- platform/network/curl/CurlCacheManager.cpp:
(WebCore::CurlCacheManager::didReceiveData):
- platform/network/curl/CurlCacheManager.h:
- platform/network/curl/CurlDownload.cpp:
(WebCore::CurlDownload::curlDidReceiveData):
- platform/network/curl/CurlDownload.h:
- platform/network/curl/CurlMultipartHandle.cpp:
(WebCore::CurlMultipartHandle::didReceiveData):
- platform/network/curl/CurlMultipartHandle.h:
- platform/network/curl/CurlMultipartHandleClient.h:
- platform/network/curl/CurlRequest.cpp:
(WebCore::CurlRequest::didReceiveData):
(WebCore::CurlRequest::didReceiveDataFromMultipart):
- platform/network/curl/CurlRequest.h:
- platform/network/curl/CurlRequestClient.h:
- platform/network/curl/CurlResourceHandleDelegate.cpp:
(WebCore::CurlResourceHandleDelegate::curlDidReceiveData):
- platform/network/curl/CurlResourceHandleDelegate.h:
- platform/network/curl/CurlStream.cpp:
(WebCore::CurlStream::tryToReceive):
- platform/network/curl/CurlStream.h:
- platform/network/curl/SocketStreamHandleImpl.h:
- platform/network/curl/SocketStreamHandleImplCurl.cpp:
(WebCore::SocketStreamHandleImpl::didReceiveData):
- platform/network/ios/LegacyPreviewLoaderClient.h:
(WebCore::LegacyPreviewLoaderClient::didReceiveData):
- platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
(-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveData:lengthReceived:]):
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::dataChanged):
- workers/WorkerFontLoadRequest.cpp:
(WebCore::WorkerFontLoadRequest::didReceiveData):
- workers/WorkerFontLoadRequest.h:
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::didReceiveData):
- workers/WorkerScriptLoader.h:
- workers/service/context/ServiceWorkerFetch.h:
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::didReceiveData):
- xml/XMLHttpRequest.h:
Source/WebKit:
- GPUProcess/media/RemoteMediaResource.cpp:
(WebKit::RemoteMediaResource::dataReceived):
- GPUProcess/media/RemoteMediaResource.h:
- NetworkProcess/Downloads/PendingDownload.h:
- NetworkProcess/NetworkCORSPreflightChecker.cpp:
(WebKit::NetworkCORSPreflightChecker::didReceiveData):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp:
(WebKit::NetworkLoad::didReceiveData):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/NetworkLoadClient.h:
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::didReceiveBuffer):
(WebKit::NetworkResourceLoader::sendBuffer):
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/PingLoad.cpp:
(WebKit::PingLoad::didReceiveData):
- NetworkProcess/PingLoad.h:
- NetworkProcess/PreconnectTask.cpp:
(WebKit::PreconnectTask::didReceiveBuffer):
- NetworkProcess/PreconnectTask.h:
- NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:
(WebKit::ServiceWorkerDownloadTask::didReceiveData):
- NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.h:
- NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.messages.in:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
(WebKit::ServiceWorkerFetchTask::didReceiveData):
(WebKit::ServiceWorkerFetchTask::loadBodyFromPreloader):
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
- NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:
(WebKit::ServiceWorkerNavigationPreloader::didReceiveBuffer):
- NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.h:
- NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.cpp:
(WebKit::ServiceWorkerSoftUpdateLoader::didReceiveBuffer):
- NetworkProcess/ServiceWorker/ServiceWorkerSoftUpdateLoader.h:
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.cpp:
(WebKit::NetworkCache::SpeculativeLoad::didReceiveBuffer):
- NetworkProcess/cache/NetworkCacheSpeculativeLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
(WebKit::NetworkDataTaskCocoa::didReceiveData):
- NetworkProcess/curl/NetworkDataTaskCurl.cpp:
(WebKit::NetworkDataTaskCurl::curlDidReceiveData):
- NetworkProcess/curl/NetworkDataTaskCurl.h:
- Platform/IPC/SharedBufferCopy.h:
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::MediaFormatReader::didParseTracks):
- Shared/mac/MediaFormatReader/MediaFormatReader.h:
- UIProcess/WebURLSchemeTask.cpp:
(WebKit::WebURLSchemeTask::didReceiveData):
- UIProcess/WebURLSchemeTask.h:
- WebProcess/GPU/media/RemoteMediaResourceProxy.cpp:
(WebKit::RemoteMediaResourceProxy::dataReceived):
- WebProcess/GPU/media/RemoteMediaResourceProxy.h:
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveData):
(WebKit::WebResourceLoader::didReceiveResource):
- WebProcess/Network/WebResourceLoader.h:
- WebProcess/Network/WebResourceLoader.messages.in:
- WebProcess/Plugins/PDF/PDFPlugin.h:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::PDFPluginStreamLoaderClient::didReceiveData):
(WebKit::PDFPlugin::streamDidReceiveData):
(WebKit::PDFPlugin::manualStreamDidReceiveData):
- WebProcess/Plugins/Plugin.h:
- WebProcess/Plugins/PluginView.cpp:
(WebKit::PluginView::Stream::didReceiveData):
(WebKit::PluginView::manualLoadDidReceiveData):
(WebKit::PluginView::redeliverManualStream):
- WebProcess/Plugins/PluginView.h:
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveData):
(WebKit::WebServiceWorkerFetchTaskClient::didReceiveBlobChunk):
(WebKit::WebServiceWorkerFetchTaskClient::continueDidReceiveResponse):
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::committedLoad):
- WebProcess/WebCoreSupport/WebFrameLoaderClient.h:
- WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.cpp:
(WebKit::WebPreviewLoaderClient::didReceiveData):
- WebProcess/WebCoreSupport/ios/WebPreviewLoaderClient.h:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/WebURLSchemeHandlerProxy.cpp:
(WebKit::WebURLSchemeHandlerProxy::taskDidReceiveData):
- WebProcess/WebPage/WebURLSchemeHandlerProxy.h:
- WebProcess/WebPage/WebURLSchemeTaskProxy.cpp:
(WebKit::WebURLSchemeTaskProxy::didReceiveData):
- WebProcess/WebPage/WebURLSchemeTaskProxy.h:
Source/WebKitLegacy:
- WebCoreSupport/PingHandle.h:
Source/WebKitLegacy/mac:
- WebCoreSupport/WebFrameLoaderClient.h:
- WebCoreSupport/WebFrameLoaderClient.mm:
(WebFrameLoaderClient::committedLoad):
(WebFrameLoaderClient::createPreviewLoaderClient):
- WebView/WebFrame.mm:
(-[WebFrame _commitData:]):
Source/WebKitLegacy/win:
- WebCoreSupport/WebFrameLoaderClient.cpp:
(WebFrameLoaderClient::committedLoad):
- WebCoreSupport/WebFrameLoaderClient.h:
- 6:33 AM Changeset in webkit [287683] by
-
- 4 edits in trunk
Ensure that the top layer is always anchored to the RenderView
https://bugs.webkit.org/show_bug.cgi?id=231292
<rdar://problem/83941854>
Reviewed by Simon Fraser.
Source/WebCore:
A fixed positioned block level box is not necessarily anchored to the RenderView (see canContainFixedPositionObjects).
This patch ensures that we skip those ancestors and return the RenderView as the containing block for the top layer content.
https://fullscreen.spec.whatwg.org/#new-stacking-layer
"If the top layer position property computes to fixed, its containing block is the viewport, and the initial containing block otherwise."
- rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlock const):
(WebCore::containerForElement):
LayoutTests:
- TestExpectations: offsetFromAncestorContainer expects no transformed renderer in-between the
dialog and the RenderView's layer. It will go away with the layer re-parenting work.
- 5:41 AM Changeset in webkit [287682] by
-
- 3 edits1 add in trunk/Source/WebInspectorUI
Web Inspector:
shape-outside
description doesn't make sense
https://bugs.webkit.org/show_bug.cgi?id=234675
<rdar://problem/87036546>
Reviewed by Devin Rousso.
Add the ability to overwrite CSS documentation obtained from the upstream data source
with information sourced from a local JSON file.
- Scripts/update-inspector-css-documentation:
- UserInterface/External/CSSDocumentation/CSSDocumentation-overrides.json: Added.
Local JSON file with fields to overwrite specific data.
- UserInterface/External/CSSDocumentation/CSSDocumentation.js:
Update description for
shape-outside
CSS property.
- 5:03 AM Changeset in webkit [287681] by
-
- 4 edits in trunk/Source/WebCore
length argument passed to didReceiveData can never be negative.
https://bugs.webkit.org/show_bug.cgi?id=234916
rdar://problem/87190340
Reviewed by Youenn Fablet.
Signed int argument will be removed in bug 232424.
No change in observable behaviour. Covered by existing tests.
- inspector/agents/InspectorNetworkAgent.cpp:
- workers/WorkerScriptLoader.cpp:
(WebCore::WorkerScriptLoader::didReceiveData):
- xml/XMLHttpRequest.cpp:
(WebCore::XMLHttpRequest::didReceiveData):
- 3:41 AM Changeset in webkit [287680] by
-
- 7 edits4 adds in branches/safari-612-branch
Apply patch. rdar://problem/87125345
- 2:50 AM Changeset in webkit [287679] by
-
- 2 edits in trunk/Source/WebCore
WorkerMessagePortChannelProvider::takeAllMessagesForPort should guarantee execution of the takeMessagePort callback
https://bugs.webkit.org/show_bug.cgi?id=234883
<rdar://86708232>
Reviewed by Alex Christensen.
In case we enqueue a worker task, and before the task is executed, the worker is terminated,
the task will not be executed and will be destroyed in worker thread.
Instead, we should make sure to execute the callback in main thread.
Introduce MainThreadCompletionHandler for that purpose.
Covered by existing tests.
- dom/messageports/WorkerMessagePortChannelProvider.cpp:
(WebCore::MainThreadCompletionHandler::MainThreadCompletionHandler):
(WebCore::MainThreadCompletionHandler::~MainThreadCompletionHandler):
(WebCore::MainThreadCompletionHandler::complete):
(WebCore::WorkerMessagePortChannelProvider::takeAllMessagesForPort):
- 2:46 AM Changeset in webkit [287678] by
-
- 16 edits in trunk
computed style for transition longhand properties is wrong
https://bugs.webkit.org/show_bug.cgi?id=234880
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-transitions/parsing/transition-delay-computed-expected.txt:
- web-platform-tests/css/css-transitions/parsing/transition-duration-computed-expected.txt:
- web-platform-tests/css/css-transitions/parsing/transition-property-computed-expected.txt:
- web-platform-tests/css/css-transitions/parsing/transition-timing-function-computed-expected.txt:
- web-platform-tests/css/css-transitions/transition-delay-001-expected.txt:
- web-platform-tests/css/css-transitions/transition-duration-001-expected.txt:
Source/WebCore:
We had two issues in the way we treated animation lists.
First, we would always output the filled-in values in the computed style, which
meant that settinganimation-name: one, two; animation-duration: 1s
would yield
1s, 1s
instead of just1s
for animation-duration. So we now maintain a bit
on Animation to indicate whether a given value was set for filling and
ComputedStyleExtractor::addValueForAnimationPropertyToList() can now query it
before adding this value when returning the computed style.
Second, in RenderStyle::adjustTransitions(), we would mistakenly try to remove entries
if we found a transition-property repeated. However, this is valid so we remove the
code related to this entirely.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::addValueForAnimationPropertyToList):
- platform/animation/Animation.cpp:
(WebCore::Animation::Animation):
- platform/animation/Animation.h:
(WebCore::Animation::clearDelay):
(WebCore::Animation::clearDirection):
(WebCore::Animation::clearDuration):
(WebCore::Animation::clearFillMode):
(WebCore::Animation::clearIterationCount):
(WebCore::Animation::clearPlayState):
(WebCore::Animation::clearProperty):
(WebCore::Animation::clearTimingFunction):
(WebCore::Animation::fillDelay):
(WebCore::Animation::fillDirection):
(WebCore::Animation::fillDuration):
(WebCore::Animation::fillFillMode):
(WebCore::Animation::fillIterationCount):
(WebCore::Animation::fillPlayState):
(WebCore::Animation::fillProperty):
(WebCore::Animation::fillTimingFunction):
(WebCore::Animation::isDelayFilled const):
(WebCore::Animation::isDirectionFilled const):
(WebCore::Animation::isDurationFilled const):
(WebCore::Animation::isFillModeFilled const):
(WebCore::Animation::isIterationCountFilled const):
(WebCore::Animation::isPlayStateFilled const):
(WebCore::Animation::isPropertyFilled const):
(WebCore::Animation::isTimingFunctionFilled const):
- platform/animation/AnimationList.cpp:
(WebCore::AnimationList::fillUnsetProperties):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::adjustTransitions):
LayoutTests:
This test was incorrect since it assumed that filled-in values in animation lists
would be part of the computed style. We update the expectation and add other properties
that weren't being tested.
- animations/fill-unset-properties-expected.txt:
- animations/fill-unset-properties.html:
- 2:29 AM Changeset in webkit [287677] by
-
- 31 edits3 moves in trunk/Source/WebCore
[LBSE] Rename RenderSVGShape -> LegacyRenderSVGShape
https://bugs.webkit.org/show_bug.cgi?id=234877
Reviewed by Rob Buis.
Following the established procedure: rename RenderSVGShape -> LegacyRenderSVGShape.
In a follow-up patch RenderSVGShape will be reintroduced for LBSE, inheriting from
RenderSVGModelObject instead of LegacyRenderSVGModelObject.
Covered by existing tests, no change in behaviour.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::supportsPath const):
(WebCore::AccessibilityRenderObject::elementPath const):
- accessibility/AccessibilitySVGElement.cpp:
(WebCore::AccessibilitySVGElement::computeAccessibilityIsIgnored const):
(WebCore::AccessibilitySVGElement::determineAccessibilityRole):
- rendering/RenderObject.h:
(WebCore::RenderObject::isLegacySVGShape const):
(WebCore::RenderObject::isSVGShapeOrLegacySVGShape const):
- rendering/RenderTreeAsText.cpp:
(WebCore::write):
- rendering/svg/LegacyRenderSVGModelObject.cpp:
(WebCore::isGraphicsElement):
- rendering/svg/LegacyRenderSVGShape.cpp: Renamed from Source/WebCore/rendering/svg/RenderSVGShape.cpp.
(WebCore::LegacyRenderSVGShape::LegacyRenderSVGShape):
(WebCore::LegacyRenderSVGShape::updateShapeFromElement):
(WebCore::LegacyRenderSVGShape::isEmpty const):
(WebCore::LegacyRenderSVGShape::fillShape const):
(WebCore::LegacyRenderSVGShape::strokeShape const):
(WebCore::LegacyRenderSVGShape::shapeDependentStrokeContains):
(WebCore::LegacyRenderSVGShape::shapeDependentFillContains const):
(WebCore::LegacyRenderSVGShape::fillContains):
(WebCore::LegacyRenderSVGShape::strokeContains):
(WebCore::LegacyRenderSVGShape::layout):
(WebCore::LegacyRenderSVGShape::nonScalingStrokePath const):
(WebCore::LegacyRenderSVGShape::setupNonScalingStrokeContext):
(WebCore::LegacyRenderSVGShape::nonScalingStrokeTransform const):
(WebCore::LegacyRenderSVGShape::shouldGenerateMarkerPositions const):
(WebCore::LegacyRenderSVGShape::fillShape):
(WebCore::LegacyRenderSVGShape::strokeShape):
(WebCore::LegacyRenderSVGShape::fillStrokeMarkers):
(WebCore::LegacyRenderSVGShape::paint):
(WebCore::LegacyRenderSVGShape::addFocusRingRects):
(WebCore::LegacyRenderSVGShape::isPointInFill):
(WebCore::LegacyRenderSVGShape::isPointInStroke):
(WebCore::LegacyRenderSVGShape::getTotalLength const):
(WebCore::LegacyRenderSVGShape::getPointAtLength const):
(WebCore::LegacyRenderSVGShape::nodeAtFloatPoint):
(WebCore::markerForType):
(WebCore::LegacyRenderSVGShape::markerRect const):
(WebCore::LegacyRenderSVGShape::calculateObjectBoundingBox const):
(WebCore::LegacyRenderSVGShape::calculateStrokeBoundingBox const):
(WebCore::LegacyRenderSVGShape::updateRepaintBoundingBox):
(WebCore::LegacyRenderSVGShape::strokeWidth const):
(WebCore::LegacyRenderSVGShape::hasSmoothStroke const):
(WebCore::LegacyRenderSVGShape::drawMarkers):
(WebCore::LegacyRenderSVGShape::createPath const):
(WebCore::LegacyRenderSVGShape::processMarkerPositions):
- rendering/svg/LegacyRenderSVGShape.h: Renamed from Source/WebCore/rendering/svg/RenderSVGShape.h.
(WebCore::LegacyRenderSVGShape::setNeedsShapeUpdate):
(WebCore::LegacyRenderSVGShape::hasPath const):
(WebCore::LegacyRenderSVGShape::path const):
(WebCore::LegacyRenderSVGShape::clearPath):
(WebCore::LegacyRenderSVGShape::hasNonScalingStroke const):
- rendering/svg/LegacyRenderSVGShapeInlines.h: Renamed from Source/WebCore/rendering/svg/RenderSVGShapeInlines.h.
(WebCore::LegacyRenderSVGShape::graphicsElement const):
- rendering/svg/RenderSVGEllipse.cpp:
(WebCore::RenderSVGEllipse::RenderSVGEllipse):
(WebCore::RenderSVGEllipse::updateShapeFromElement):
(WebCore::RenderSVGEllipse::fillShape const):
(WebCore::RenderSVGEllipse::strokeShape const):
(WebCore::RenderSVGEllipse::shapeDependentStrokeContains):
(WebCore::RenderSVGEllipse::shapeDependentFillContains const):
- rendering/svg/RenderSVGEllipse.h:
- rendering/svg/RenderSVGPath.cpp:
(WebCore::RenderSVGPath::RenderSVGPath):
(WebCore::RenderSVGPath::updateShapeFromElement):
(WebCore::RenderSVGPath::strokeShape const):
(WebCore::RenderSVGPath::shapeDependentStrokeContains):
- rendering/svg/RenderSVGPath.h:
- rendering/svg/RenderSVGRect.cpp:
(WebCore::RenderSVGRect::RenderSVGRect):
(WebCore::RenderSVGRect::rectElement const):
(WebCore::RenderSVGRect::updateShapeFromElement):
(WebCore::RenderSVGRect::fillShape const):
(WebCore::RenderSVGRect::strokeShape const):
(WebCore::RenderSVGRect::shapeDependentStrokeContains):
(WebCore::RenderSVGRect::shapeDependentFillContains const):
- rendering/svg/RenderSVGRect.h:
- rendering/svg/RenderSVGResource.h:
(WebCore::RenderSVGResource::postApplyResource):
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
(WebCore::RenderSVGResourceClipper::calculateClipContentRepaintRect):
(WebCore::RenderSVGResourceClipper::hitTestClipContent):
- rendering/svg/RenderSVGResourceContainer.cpp:
(WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):
- rendering/svg/RenderSVGResourceFilter.h:
- rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::RenderSVGResourceGradient::postApplyResource):
- rendering/svg/RenderSVGResourceGradient.h:
- rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::postApplyResource):
- rendering/svg/RenderSVGResourcePattern.h:
- rendering/svg/RenderSVGResourceSolidColor.cpp:
(WebCore::RenderSVGResourceSolidColor::postApplyResource):
- rendering/svg/RenderSVGResourceSolidColor.h:
- rendering/svg/SVGInlineTextBox.cpp:
(WebCore::SVGInlineTextBox::releasePaintingResource):
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
(WebCore::SVGRenderSupport::layoutChildren):
(WebCore::SVGRenderSupport::applyStrokeStyleToContext):
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeStyle):
(WebCore::operator<<):
(WebCore::write):
- rendering/svg/SVGRenderTreeAsText.h:
- svg/SVGGeometryElement.cpp:
(WebCore::SVGGeometryElement::getTotalLength const):
(WebCore::SVGGeometryElement::getPointAtLength const):
(WebCore::SVGGeometryElement::isPointInFill):
(WebCore::SVGGeometryElement::isPointInStroke):
- svg/SVGLineElement.cpp:
(WebCore::SVGLineElement::svgAttributeChanged):
- 2:23 AM Changeset in webkit [287676] by
-
- 2 edits in trunk/Source/WebKit
ServiceWorkerNavigationPreloader::didComplete should make sure to call its bodyCallback
https://bugs.webkit.org/show_bug.cgi?id=234884
Reviewed by Alex Christensen.
Covered by existing tests.
- NetworkProcess/ServiceWorker/ServiceWorkerNavigationPreloader.cpp:
Call to responseCallback may destroy the ServiceWorkerNavigationPreloader.
To make sure to call its bodyCallback, we move it in the stack before calling responseCallback.
- 1:29 AM Changeset in webkit [287675] by
-
- 7 edits2 adds in trunk
"ReadableStream uploading is not supported" when fetch()ing a Request that has been logged to console
https://bugs.webkit.org/show_bug.cgi?id=203617
<rdar://problem/56772045>
Reviewed by Alex Christensen.
Source/WebCore:
Keep the underlying body even if a stream is created.
This allows to fetch the request even if request.body is accessed.
Test: http/wpt/fetch/fetch-request-with-stream-body.html
- Modules/beacon/NavigatorBeacon.cpp:
- Modules/fetch/FetchBody.cpp:
- Modules/fetch/FetchBody.h:
- Modules/fetch/FetchBodyOwner.h:
LayoutTests:
- http/wpt/fetch/fetch-request-with-stream-body-expected.txt: Added.
- http/wpt/fetch/fetch-request-with-stream-body.html: Added.
Jan 5, 2022:
- 9:51 PM Changeset in webkit [287674] by
-
- 3 edits2 adds in trunk
Text-decoration color not changing back after input blur with outline removed
https://bugs.webkit.org/show_bug.cgi?id=234800
<rdar://problem/87145636>
Reviewed by Antti Koivisto.
Source/WebCore:
This patch fixes the case when a decoration type of style value changes on the input
element (e.g. text-decoration-color) and the inner renderer does not get notified through the usual styleDidChange
flow because the property is non-inherited.
Test: fast/forms/dynamic-text-decoration-change.html
- rendering/RenderTextControl.cpp:
(WebCore::RenderTextControl::styleDidChange):
LayoutTests:
- fast/forms/dynamic-text-decoration-change-expected.html: Added.
- fast/forms/dynamic-text-decoration-change.html: Added.
- 8:40 PM Changeset in webkit [287673] by
-
- 3 edits2 adds in trunk
[GPU Process] Small ImageBuffers cause the web process to crash
https://bugs.webkit.org/show_bug.cgi?id=232470
<rdar://problem/84626560>
Reviewed by Tim Horton.
Source/WebKit:
The problem is when the (floating point) size < 1x1, but the size*resolution is >= 1x1.
In this situation, calculateSafeBackendSize() is correctly determining that this
isn't a zero-sized ImageBuffer, but when we go to actually pass the size to the GPU
process, we call this:
IntSize logicalSize() const override { return IntSize(m_parameters.logicalSize); }
So, the logical size gets truncated down to 0, and then the GPU process fails to allocate
the ImageBuffer, and then the web process blocks on the GPU process indefinitely, and then
eventually times out and then crashes. I'm going to deal with that last step (the crash
itself) in a secondary patch - if the web process doesn't hear from the GPU process, it
shouldn't crash.
This patch simply exposes a floatLogicalSize() function on ImageBuffer, so we can get
the full-fidelity logical size to pass that to the GPU process.
This patch is just enough to stop WebKit from crashing. I'm going to continue looking into this bug in
https://bugs.webkit.org/show_bug.cgi?id=225377.
Test: compositing/device-pixel-image-buffer-hidpi.html
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
LayoutTests:
- compositing/device-pixel-image-buffer-hidpi-expected.html: Added.
- compositing/device-pixel-image-buffer-hidpi.html: Added.
- 7:54 PM Changeset in webkit [287672] by
-
- 1 edit2 adds in trunk/LayoutTests
border radii may have missing values
https://bugs.webkit.org/show_bug.cgi?id=234866
Patch by Brandon Stewart <Brandon> on 2022-01-05
Reviewed by Antti Koivisto.
Add test to verify behavior of CSS border radii.
- fast/css/border-radius-invalid-pair-expected.txt: Added.
- fast/css/border-radius-invalid-pair.html: Added.
- 7:08 PM Changeset in webkit [287671] by
-
- 6 edits1 add in trunk
Modal container observer should detect and suppress elements that prevent user interaction
https://bugs.webkit.org/show_bug.cgi?id=234695
Reviewed by Tim Horton.
Source/WebCore:
Add support for additionally detecting and hiding viewport-constrained elements whose sole (apparent) purpose
is to prevent the user from interacting with the rest of the page, after suppressing a detected modal
container. See comments below for more details.
Test: ModalContainerObservation.HideUserInteractionBlockingElement
- page/ModalContainerObserver.cpp:
(WebCore::ModalContainerObserver::setContainer):
When setting (and hiding) a detected modal container, queue an internal task to try and identify an element
underneath the modal container that may be preventing user interaction with the rest of the page (note that this
must be queued as an async task because it may trigger layout, unlikeupdateModalContainerIfNeeded
). See below
for more information.
(WebCore::ModalContainerObserver::hideUserInteractionBlockingElementIfNeeded):
Implement a simple heuristic to detect elements that block user interaction after the modal container has been
hidden. To do this, we hit-test five locations relative to the absolute rect for fixed-position elements: one
hit-test in the center of the rect, and 4 more near all of the corners (shifted by 1px towards the center).
If all 5 hit-tests find the same viewport-constrained element with no rendered children that isn't also the
document or body element, we flag it as them_userInteractionBlockingElement
and hide it during style
adjustment in the same way as the modal container (see below).
(WebCore::ModalContainerObserver::revealModalContainer):
- page/ModalContainerObserver.h:
(WebCore::ModalContainerObserver::shouldHide const):
Add
m_userInteractionBlockingElement
and hide both the modal container as well as this new element during
style adjustment.
Tools:
Add an API test (as well as a new test page) to exercise the fix.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/modal-container-with-overlay.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
(TestWebKitAPI::TEST):
- 6:57 PM Changeset in webkit [287670] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Layers: add reference page button
https://bugs.webkit.org/show_bug.cgi?id=234901
Reviewed by Patrick Angle.
- UserInterface/Views/Layers3DContentView.js:
(WI.Layers3DContentView.prototype.initialLayout):
- UserInterface/Views/Layers3DContentView.css:
(.content-view.layers-3d .reference-page-link-container): Added.
- 6:55 PM Changeset in webkit [287669] by
-
- 5 edits in trunk
Refactor computed style code for transition-property and the transition shorthand
https://bugs.webkit.org/show_bug.cgi?id=234872
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Rebaseline some test output.
- web-platform-tests/css/css-pseudo/first-letter-allowed-properties-expected.txt:
- web-platform-tests/css/css-pseudo/first-line-allowed-properties-expected.txt:
Source/WebCore:
There's no reason for the "transition-property" and "transition" properties to be
handled any differently to any other "transition-" property or the "animation"
shorthand.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::animationShorthandValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::transitionPropertyValue): Deleted.
- 6:51 PM Changeset in webkit [287668] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(287556): Domain name not shown in Activity Monitor
https://bugs.webkit.org/show_bug.cgi?id=234903
Reviewed by Brent Fulgham.
After r287556, domain names are no longer shown in Activity Monitor. The Networking process is responsible for setting
process information on behalf of the WebContent process. Before r287556, this worked because a connection to the associated
mach service was established before entering the sandbox. After r287556 we explicitly need to allow access to the service,
since the sandbox has been applied when process information is set. In practice, access to the service was already allowed
before, since an open connection to the service was established before entering the sandbox.
- NetworkProcess/mac/com.apple.WebKit.NetworkProcess.sb.in:
- 6:28 PM Changeset in webkit [287667] by
-
- 2 edits in trunk/Source/WebCore
[ Monterey Debug arm64 ] ASSERTION FAILED: result == &worker ./workers/service/server/SWServer.cpp(837) : void WebCore::SWServer::workerContextTerminated(WebCore::SWServerWorker &)
https://bugs.webkit.org/show_bug.cgi?id=233219
<rdar://problem/85478756>
Reviewed by Darin Adler.
The crash would occur when we get notified by the service worker process that a given service worker
was terminated right after we've determined that we no longer needed a given service worker process
and called markAllWorkersForRegistrableDomainAsTerminated(). This race would cause
SWServer::workerContextTerminated() to get called twice for the same worker. During the second call,
we would retrieve a null worker from the HashMap and hit the assertion. I updated the call to ignore
the call to workerContextTerminated() if the worker was already removed from the HashMap and added
an assertion to make sure we've already marked the service worker as "not running" in this case.
No new tests, covered by existing API test that is flakily crashing in debug.
- workers/service/server/SWServer.cpp:
(WebCore::SWServer::workerContextTerminated):
- 6:16 PM Changeset in webkit [287666] by
-
- 2 edits in trunk/Source/WebCore
Fix Windows and Linux builds
https://bugs.webkit.org/show_bug.cgi?id=234405
- platform/ThemeTypes.h:
Missing semicolon.
- 6:12 PM Changeset in webkit [287665] by
-
- 2 edits in trunk/Source/WTF
Change version number for HAVE_RSA_PSS_OID
https://bugs.webkit.org/show_bug.cgi?id=234904
<rdar://86646280>
Reviewed by Alex Christensen.
- wtf/PlatformHave.h:
- 6:09 PM Changeset in webkit [287664] by
-
- 2 edits in trunk/Source/WebKit
[iOS][WP] Allow syscall used on process launch
https://bugs.webkit.org/show_bug.cgi?id=234898
<rdar://86914492>
Reviewed by Brent Fulgham.
Allow syscall used on WebContent process launch on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 5:39 PM Changeset in webkit [287663] by
-
- 24 edits3 adds4 deletes in trunk
Remove unneeded webkit specific CSS attribute for Image Control Menu.
https://bugs.webkit.org/show_bug.cgi?id=234405
Reviewed by Darin Adler.
Source/WebCore:
Test: fast/images/mac/image-controls-basic.html
We do not actually need a specific CSS attribute to achieve the image control menu,
so we should remove it to keep WebKit specific clutter out of our CSS implementation
and we should keep track of the presence of the image control menu fully internally.
Doing this also exposed several issues, including the fact that we had already run out
of space for the storing of the ControlPart in RenderStyle. Also added a check to make
sure that will not happen again.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
- css/CSSProperties.json:
- css/CSSValueKeywords.in:
- css/parser/CSSParserIdioms.cpp:
(WebCore::isValueAllowedInMode):
- dom/mac/ImageControlsMac.cpp:
(WebCore::ImageControlsMac::isInsideImageControls):
- dom/mac/ImageControlsMac.h:
- html/HTMLImageElement.cpp:
(WebCore::HTMLImageElement::parseAttribute):
(WebCore::HTMLImageElement::setAttachmentElement):
(WebCore::HTMLImageElement::updateImageControls):
- html/HTMLImageElement.h:
- html/shadow/mac/imageControlsMac.css:
(div#image-controls button#image-controls-button):
- platform/ThemeTypes.h:
- rendering/HitTestResult.cpp:
(WebCore::HitTestResult::nodeForImageData const):
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::autoAppearanceForElement const):
- rendering/RenderTheme.h:
(WebCore::RenderTheme::isImageControl const):
- rendering/RenderThemeMac.h:
- rendering/RenderThemeMac.mm:
(WebCore::RenderThemeMac::isImageControl const):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::setAppearance):
(WebCore::RenderStyle::setEffectiveAppearance):
- rendering/style/StyleRareNonInheritedData.h:
- testing/Internals.cpp:
(WebCore::Internals::hasImageControls const):
- testing/Internals.h:
- testing/Internals.idl:
LayoutTests:
We need to move this test to be a mac specific one, as it now has mac specific
test harnessing (using hasImageControls) and it is testing a feature that is only on mac.
Also changed the test to be resistent to the async nature of adding
the shadow dom elements, and checking the shadow dom directly rather than the resulting layout,
which is prone to pixel errors.
- TestExpectations:
- fast/images/image-controls-basic-expected.txt:
- fast/images/image-controls-basic.html: Removed.
- fast/images/mac/image-controls-basic-expected.txt: Added.
- fast/images/mac/image-controls-basic.html: Added.
- platform/mac-catalina/fast/images/image-controls-basic-expected.txt: Removed.
- platform/mac/TestExpectations:
- platform/mac/fast/images/image-controls-basic-expected.txt: Removed.
- 5:21 PM Changeset in webkit [287662] by
-
- 2 edits in trunk/LayoutTests
[selectors] :focus-visible not matching on accessKey focus after focusing something via mouse
https://bugs.webkit.org/show_bug.cgi?id=234077
Unreviewed test gardening.
- platform/ios/TestExpectations: Disable test for iOS since it relies upon mouse events.
- 5:06 PM Changeset in webkit [287661] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: Audit: reference page button is not vertically aligned with Audit version text
https://bugs.webkit.org/show_bug.cgi?id=234900
Reviewed by Patrick Angle.
- UserInterface/Views/AuditNavigationSidebarPanel.css:
(.content-view.tab.audit .content-view .reference-page-link-container):
- 4:49 PM Changeset in webkit [287660] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r285521):
errors
provided toApplePaySession.prototype.completeCouponCodeChange
are ignored
https://bugs.webkit.org/show_bug.cgi?id=234893
<rdar://problem/86780827>
Reviewed by Tim Horton.
- Platform/cocoa/PaymentAuthorizationPresenter.mm:
(WebKit::PaymentAuthorizationPresenter::completeCouponCodeChange):
Make sure to actually set theerrors
of thePKPaymentRequestCouponCodeUpdate
using the
errors
insideApplePayShippingMethodUpdate
. This was accidentally removed in r285521.
- 4:25 PM Changeset in webkit [287659] by
-
- 2 edits in trunk
[EWS] Add Commit Queue and EWS GitHub usernames
https://bugs.webkit.org/show_bug.cgi?id=234905
<rdar://problem/87169628>
Reviewed by Ryan Haddad.
- metadata/contributors.json:
Canonical link: https://commits.webkit.org/245756@main
- 3:55 PM Changeset in webkit [287658] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r287609?): imported/w3c/web-platform-tests/css/cssom/css-style-attr-decl-block.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=234906
Unreviewed test gardening.
- TestExpectations: Mark test as failing.
- 3:48 PM Changeset in webkit [287657] by
-
- 3 edits in trunk/LayoutTests
[ MacOS EWS ] imported/w3c/web-platform-tests/html/dom/idlharness.https.html is flaky failing
https://bugs.webkit.org/show_bug.cgi?id=229831
<rdar://problem/82694768>
Unreviewed, rebaseline test and unskip.
- platform/mac-wk2/TestExpectations:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 3:44 PM Changeset in webkit [287656] by
-
- 3 edits in trunk/LayoutTests
[ iOS ] imported/w3c/web-platform-tests/html/dom/idlharness.https.html is flaky failing after rebaselining
https://bugs.webkit.org/show_bug.cgi?id=230407
<rdar://problem/83242343>
Unreviewed, rebaseline test on iOS and unskip it.
- platform/ios-wk2/TestExpectations:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 3:35 PM Changeset in webkit [287655] by
-
- 5 edits in trunk/LayoutTests
[ iOS Debug ] imported/w3c/web-platform-tests/html/dom/idlharness.worker.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=231030
<rdar://problem/83727147>
Unreviewed, skip test in debug since it is slow and may flakily time out otherwise.
- TestExpectations:
- platform/glib/TestExpectations:
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- 3:21 PM Changeset in webkit [287654] by
-
- 7 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r287110. rdar://problem/87124750
Clean-up: Adopt Page::forEachDocument in some missed spots
https://bugs.webkit.org/show_bug.cgi?id=234324
<rdar://problem/85443831>
Reviewed by Darin Adler.
Switch manual loops to our 'forEachDocument' style in a few places that were missed
in earlier refactoring.
No change in behavior.
- history/BackForwardCache.cpp: (WebCore::setBackForwardCacheState)
- page/EventHandler.cpp: (WebCore::removeDraggedContentDocumentMarkersFromAllFramesInPage):
- page/Frame.cpp: (WebCore::Frame::orientationChanged):
- page/Page.cpp: (WebCore::Page::~Page): (WebCore::Page::forEachDocumentFromMainFrame): Added. (WebCore::Page::forEachDocument): Use new method. (WebCore::Page::forEachFrameFromMainFrame): Added. (WebCore::Page::windowScreenDidChange): (WebCore::Page::userAgentChanged):
- page/ios/FrameIOS.mm: (WebCore::Frame::dispatchPageHideEventBeforePause): (WebCore::Frame::dispatchPageShowEventBeforeResume):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287110 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:02 PM Changeset in webkit [287653] by
-
- 10 edits in trunk/Source
Move more SDK checks to linkedOnOrAfter()
https://bugs.webkit.org/show_bug.cgi?id=234875
Reviewed by Sam Weinig.
Source/WebCore:
- html/MediaElementSession.cpp:
(WebCore::MediaElementSession::requiresFullscreenForVideoPlayback const):
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::makeCrossOriginAccessRequest):
- platform/Timer.cpp:
(WebCore::shouldSuppressThreadSafetyCheck):
- platform/cocoa/VersionChecks.h:
Source/WebKit:
- Shared/WebPreferencesDefaultValues.cpp:
(WebKit::defaultCSSOMViewScrollingAPIEnabled):
Source/WebKitLegacy/mac:
- WebView/WebPreferencesDefaultValues.mm:
(WebKit::defaultJavaScriptCanOpenWindowsAutomatically):
- WebView/WebView.mm:
(needsLaBanquePostaleQuirks):
- 1:58 PM Changeset in webkit [287652] by
-
- 138 edits5 adds in trunk/Source/ThirdParty/ANGLE
Roll ANGLE to aabfe8747d 12-17-2021
https://bugs.webkit.org/show_bug.cgi?id=234523
Reviewed by Kenneth Russell.
The changelog has been removed to improve readability.
The following ANGLE commits were merged:
aabfe8747 Metal: Use the context device to Texture::resize
34ea81111 Reland "Vulkan: Don't expose MSRTT on SwiftShader"
624e3c3d5 Fix dangerous use of AutoObjCPtr after ownership identity change
4a148e9d9 Revert "Vulkan: Suppress VUID-vkCmdDraw-blendEnable"
ede0b8b71 Avoid ANGLE_MTL_AUTORELEASE inside ASSERT, it leaks on Release
cb4f441c8 Roll vulkan-deps from 39f3a18bdfbe to 5568048d205e (8 revisions)
2f78b48db Roll Chromium from 14ca75d254a5 to 81decb7250e1 (191 revisions)
001221f0e Metal: upstream fix from WebKit for texture leak.
dca434bdc Roll Chromium from 3f6c88f5581a to 14ca75d254a5 (401 revisions)
b9f2d9cc1 Use text expectations to skip a test
6c894e829 Vulkan: Replace BufferVk::getBufferAndOffset() with getBuffer()
f2736f6dc Tests: Add My Talking Tom Friends trace.
a93a3930b Vulkan: Track enabled in VertexArray
83a670ab0 Vulkan: Implement BufferPool using VMA's virtual allocator
836797166 Vulkan: Dirty vertex buffers if default attrib values changed
543f5750f (origin/chromium/4771) Vulkan: Disable protected memory for ARM
c7446ac42 Add support for GL_MESA_framebuffer_flip_y 1/*
60383b41e Tests: Add Dota Underlords trace.
f26687a03 Tests: Add My Talking Tom 2 trace.
438de17ee Roll vulkan-deps from a8221eed5970 to 39f3a18bdfbe (5 revisions)
e7413adff system_utils_posix: Check for SEGV_MAPERR si_code.
6e5fd8165 Support more ImageLayout in ConvertImageLayoutToGLImageLayout
b26bb13ab Metal: Remove references to xfbActiveUnpaused uniform
bb5bab031 Roll Chromium from 2dae07eeb163 to 3f6c88f5581a (414 revisions)
c4d434b91 Metal: Enable OES_fbo_render_mipmap
670679918 Metal: Fix Webkit warnings in ANGLE build
bda493258 Add guards for 64 bit types on 32bit systems
e7c9dbb88 Skip SimpleStateChangeTestES3.OutOfBoundsByteAttribute on Pixel4 GLES
89e11878b Vulkan: Fix the UAF issue with BufferData
ee1d3cf74 Metal: Integrate Metal Binary Shader generation
3e7e2758f Metal: Fix macOS ANGLE build on Catalina (10.15) SDK
05a44dd24 Vulkan: Set content undefined on eglSwapBuffers
26fa0fe68 Tests: Add Asphalt 9 trace
5275f487e Vulkan: Disable async command queue with Vulkan SCBs
feb599ad8 Invalidate EGL handles during eglTerminate
32e23bb9d Expand WebGLCompressedTextureAvailabilityTest
d6b9a2597 end2end_tests: Add SwS + AsyncQueue testing.
a0eb6146c Update warning message for invalid include
cac81f077 Return full error info when opening a library with dlopen
90c3038e5 Vulkan: Fix desc set updates with Vulkan SCBs
8419f4fcd Roll vulkan-deps from c03890076954 to a8221eed5970 (2 revisions)
db367bd71 Roll Chromium from 0c0a3654694f to 2dae07eeb163 (450 revisions)
bfc7f09ae Revert "Upgrade restricted traces to new trace format."
800c6971c Modified buffer fallback format to smaller storage format
709d87278 Revert "Trace Tests: Remove auto-generated code."
3da54250b Skip MultithreadingTest.MultiContextDrawWithSwapBuffers
7f1a0f89b Switch to non-deprecated bbagent, remove defunct experiments.
9d49d8438 Add WebGLCompressedTextureAvailabilityTest
- 1:58 PM Changeset in webkit [287651] by
-
- 2 edits in trunk/Source/WebKit
Fix the build
- Shared/ios/WebIOSEventFactory.mm:
(WebIOSEventFactory::createWebWheelEvent):
- 1:44 PM Changeset in webkit [287650] by
-
- 9 edits in branches/safari-612-branch/Source/JavaScriptCore
Cherry-pick r287421. rdar://problem/84260429
2021-12-23 Mark Lam <mark.lam@apple.com>
Make DeferredWorkTimer::addPendingWork() return a Ticket.
https://bugs.webkit.org/show_bug.cgi?id=234628
rdar://84260429
Reviewed by Yusuke Suzuki.
- Make Ticket a unique token instead of the JSObject* target object. The Ticket is now a pointer to the TicketData in the pending work list.
- Instead of taking a Ticket argument, DeferredWorkTimer::addPendingWork() now
takes a JSObject*
target
argument explicitly, and returns the Ticket for the added TicketData instead.
All the relevant DeferredWorkTimer APIS already take a Ticket as an argument.
This ensures that addPendingWork() is called before we start doing work with
these APIs (especially scheduleWorkSoon()).
- Previously, addPendingWork() will only save one instance of TicketData for a given JSObject* key. With this patch, we'll register a new TicketData instance for every call to addPendingWork(), and return a unique Ticket for it.
This is needed because it may be possible for 2 different clients to call
addPendingWork() and scheduleWorkSoon() with the same target JSObject* but with
different sets of dependencies.
Secondly, even is the both sets of dependencies are identical, a client may
call addPendingWork() and scheduleWorkSoon() with the same JSObject* target
more than once because it intended to schedule more than 1 task to run.
Note that DeferredWorkTimer::doWork() consumes the corresponding TicketData
(i.e. removes it from the m_pendingTickets list) for each task as it is run.
To ensure that the dependencies for each task is protected, we'll either need
to ref count the TicketData for the same target object (and hold off on removing
it from the list), or we'll need to register a different TicketData instance
for each task. Ref counting can solve the second issue above, but does not
solve the first. So, this patch goes with the more generic solution to allow
each task to have its own TicketData instance (and, its own unique Ticket).
- Previously, if the client cancels pending work, we would remove the TicketData immediately from the m_pendingTickets list. This opens up an opportunity for the same TicketData memory to be re-allocated by another client. This, in turn, would make the Ticket token not unique and potentially allow a cancelled ticket to be reused before DeferredWorkTimer::doWork() is called.
This patch changes DeferredWorkTimer::cancelPendingWork() to only clear the
contents of the TicketData instead. TicketData::scriptExecutionOwner being
null is used as an indication that the ticket has been cancelled. Since the
TicketData itself is not "freed" yet, all TicketData will remain unique until
DeferredWorkTimer::doWork().
Consequently, DeferredWorkTimer::doWork() will now check for cancelled tickets
and remove them from the m_pendingTickets list.
- JSFinalizationRegistry was previously calling DeferredWorkTimer::hasPendingWork() to check if it has already scheduled a task, so as not to reschedule again until after the previously scheduled task has been run. This does not play nice with the new Ticket API, because this hasPendingWork() check needs to be done before calling addPendingWork(), and hence, the Ticket is not available yet.
Fortunately, JSFinalizationRegistry should know if it has already scheduled
a task itself. This patch adds a m_hasAlreadyScheduledWork flag to
JSFinalizationRegistry that can be used for this check instead.
- jsc.cpp: (JSC_DEFINE_HOST_FUNCTION):
- runtime/DeferredWorkTimer.cpp: (JSC::DeferredWorkTimer::TicketData::TicketData): (JSC::DeferredWorkTimer::TicketData::vm): (JSC::DeferredWorkTimer::TicketData::cancel): (JSC::DeferredWorkTimer::doWork): (JSC::DeferredWorkTimer::addPendingWork): (JSC::DeferredWorkTimer::hasPendingWork): (JSC::DeferredWorkTimer::hasDependancyInPendingWork): (JSC::DeferredWorkTimer::cancelPendingWork):
- runtime/DeferredWorkTimer.h: (JSC::DeferredWorkTimer::TicketData::target):
- runtime/JSFinalizationRegistry.cpp: (JSC::JSFinalizationRegistry::finalizeUnconditionally):
- runtime/JSFinalizationRegistry.h:
- wasm/WasmStreamingCompiler.cpp: (JSC::Wasm::StreamingCompiler::StreamingCompiler): (JSC::Wasm::StreamingCompiler::~StreamingCompiler): (JSC::Wasm::StreamingCompiler::didComplete): (JSC::Wasm::StreamingCompiler::fail): (JSC::Wasm::StreamingCompiler::cancel):
- wasm/WasmStreamingCompiler.h:
- wasm/js/JSWebAssembly.cpp: (JSC::JSWebAssembly::webAssemblyModuleValidateAsync): (JSC::instantiate): (JSC::compileAndInstantiate): (JSC::JSWebAssembly::webAssemblyModuleInstantinateAsync):
- 1:36 PM Changeset in webkit [287649] by
-
- 1 copy in tags/Safari-613.1.12.1.2
Tag Safari-613.1.12.1.2.
- 1:36 PM Changeset in webkit [287648] by
-
- 2 edits in trunk/Source/WebKit
[iOS][WP] Unable to consume mach extension
https://bugs.webkit.org/show_bug.cgi?id=234889
<rdar://86870109>
Reviewed by Brent Fulgham.
The WebContent process on iOS is unable to consume mach extensions to the frontboard service.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 1:11 PM Changeset in webkit [287647] by
-
- 7 edits4 deletes in branches/safari-612-branch
Revert "Cherry-pick r287353. rdar://problem/87125345"
This reverts commit r287633.
- 12:08 PM Changeset in webkit [287646] by
-
- 2 edits in trunk/Source/WebKit
NetworkRTCProvider::attributedBundleIdentifierFromPageIdentifier should check for m_connection
https://bugs.webkit.org/show_bug.cgi?id=234845
<rdar://82120356>
Reviewed by Eric Carlson.
NetworkRTCProvider may call attributedBundleIdentifierFromPageIdentifier in a background thread,
which will then hop to main thread to get its session.
NetworkRTCProvider might have been closed when getting to main thread so we need to check m_connection.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
(WebKit::NetworkRTCProvider::attributedBundleIdentifierFromPageIdentifier):
- 11:59 AM Changeset in webkit [287645] by
-
- 1 copy in tags/Safari-613.1.12.3
Tag Safari-613.1.12.3.
- 11:54 AM Changeset in webkit [287644] by
-
- 4 edits in branches/safari-613.1.12-branch/Source/ThirdParty
Cherry-pick r287642. rdar://problem/87072368
REGRESSION (r287382): libANGLE is built into a wrong location on iOS
https://bugs.webkit.org/show_bug.cgi?id=234857
Reviewed by Saam Barati.
Reverted to the prior logic to compute INSTALL_PATH. Then added an optional prefix
for the alternate root framework location.
Source/ThirdParty/ANGLE:
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/libwebrtc.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287642 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:52 AM Changeset in webkit [287643] by
-
- 9 edits in branches/safari-613.1.12-branch/Source
Versioning.
WebKit-7613.1.12.3
- 11:42 AM Changeset in webkit [287642] by
-
- 4 edits in trunk/Source/ThirdParty
REGRESSION (r287382): libANGLE is built into a wrong location on iOS
https://bugs.webkit.org/show_bug.cgi?id=234857
Reviewed by Saam Barati.
Reverted to the prior logic to compute INSTALL_PATH. Then added an optional prefix
for the alternate root framework location.
Source/ThirdParty/ANGLE:
- Configurations/ANGLE-dynamic.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/libwebrtc.xcconfig:
- 11:29 AM Changeset in webkit [287641] by
-
- 10 edits in trunk/Source
Momentum Event Dispatcher: Momentum tails may get truncated if the duration runs longer than the system's
https://bugs.webkit.org/show_bug.cgi?id=234535
<rdar://problem/86338105>
Reviewed by Simon Fraser.
Source/WebKit:
Currently, synthetic momentum dispatch is strictly tied to the duration
of the real platform momentum phase, which has two unfortunate implications:
- if our phase runs shorter than the platform phase, we'll keep dispatching zero-delta events until the platform momentum ends
- more importantly, if our phase runs longer, it will be abruptly terminated when the platform momentum ends
In practice, our synthetic phase is very close in duration to the system one,
so the impact is minimal. But, to be safe, disentagle the two durations,
using a new bit from the platform to determine if the system momentum phase
was interrupted by the user (e.g. by tapping the trackpad) or naturally,
and ignoring the ended event in the natural case, allowing synthetic
events to continue being dispatched.
- Shared/WebWheelEvent.cpp:
(WebKit::WebWheelEvent::WebWheelEvent):
(WebKit::WebWheelEvent::encode const):
(WebKit::WebWheelEvent::decode):
- Shared/WebWheelEvent.h:
(WebKit::WebWheelEvent::momentumEndType const):
- Shared/WebWheelEventCoalescer.cpp:
(WebKit::WebWheelEventCoalescer::coalesce):
Plumb momentumEndType along on WebWheelEvent. Platforms that don't
provide information about the interruption reason will always say Unknown.
- Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebWheelEvent):
Only bother looking up the CGEvent/IOHIDEvent once, and extract all
relevant details in one go.
- WebProcess/WebPage/MomentumEventDispatcher.cpp:
(WebKit::MomentumEventDispatcher::handleWheelEvent):
Don't interrupt the synthetic momentum phase if the momentum-ended event
comes from the natural end of the deceleration instead of an interruption
(or an unknown reason).
Keep track of whether we're in the middle of a platform momentum phase
that we chose (at momentum-begin time) to override. When deciding
whether to eat an incoming event, take *both* this new bit and whether
we are currently in the middle of a synthetic phase into account. It
is important to continue eating incoming events in the case where
the synthetic phase ended early (soactive
became false) but the
platform phase continues.
(WebKit::MomentumEventDispatcher::dispatchSyntheticMomentumEvent):
(WebKit::MomentumEventDispatcher::didEndMomentumPhase):
Adjust some logging wording to be more precise.
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
Make this log public so that the curve value is visible in logs.
(WebKit::MomentumEventDispatcher::consumeDeltaForCurrentTime):
Make consumeDeltaForCurrentTime inform the client via an optional when
we are at the end of the delta table.
(WebKit::MomentumEventDispatcher::displayWasRefreshed):
Stop the synthetic momentum phase as soon as we run out of deltas.
(WebKit::MomentumEventDispatcher::computeNextDelta):
- WebProcess/WebPage/MomentumEventDispatcher.h:
Source/WTF:
- wtf/PlatformHave.h:
Add a HAVE for kIOHIDEventScrollMomentumInterrupted.
- 11:19 AM Changeset in webkit [287640] by
-
- 4 edits in branches/safari-613.1.12.1-branch
Cherry-pick r287609. rdar://problem/85917218
Unreviewed, reverting r285915.
https://bugs.webkit.org/show_bug.cgi?id=234873
causes crashes
Reverted changeset:
"border-radius inline style should serialize with valid
syntax"
https://bugs.webkit.org/show_bug.cgi?id=183994
https://commits.webkit.org/r285915
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287609 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:19 AM Changeset in webkit [287639] by
-
- 11 edits in branches/safari-613.1.12.1-branch
Cherry-pick r287377. rdar://problem/86829012
WebsiteDataStore::excludeDirectoryFromBackup should set attribute for existing directories
https://bugs.webkit.org/show_bug.cgi?id=234404
Reviewed by Youenn Fablet.
Source/WebKit:
createDirectoryAtURL returning false means directory cannot be created, but the cause can be that directory
already exists; so we should set exclude attribute on the directory no matter createDirectoryAtURL returns true
or false. Also, we can use existing FileSystem functions.
API test: WKWebView.LocalStorageDirectoryExcludedFromBackup
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm: (WebKit::WebsiteDataStore::excludeDirectoryFromBackup): Deleted.
- UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStore.h:
Source/WTF:
- wtf/FileSystem.cpp: (WTF::FileSystemImpl::excludeFromBackup): (WTF::FileSystemImpl::canExcludeFromBackup): Deleted.
- wtf/FileSystem.h:
- wtf/cocoa/FileSystemCocoa.mm: (WTF::FileSystemImpl::excludeFromBackup):
- wtf/mac/FileSystemMac.mm: (WTF::FileSystem::canExcludeFromBackup): Deleted. (WTF::FileSystem::excludeFromBackup): Deleted.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/LocalStoragePersistence.mm: (TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287377 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:19 AM Changeset in webkit [287638] by
-
- 5 edits in branches/safari-613.1.12.1-branch
Cherry-pick r285827. rdar://problem/85917218
Revert r285235
https://bugs.webkit.org/show_bug.cgi?id=233142
Unreviewed.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-backgrounds/parsing/border-radius-valid-expected.txt:
Source/WebCore:
Causes crash with simple repro
<div id=t style="border-radius: unset"></div>
<script>
t.style.borderRadius;
</script>
- css/StyleProperties.cpp: (WebCore::StyleProperties::getPropertyValue const): (WebCore::StyleProperties::borderRadiusValue const): Deleted.
- css/StyleProperties.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285827 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:09 AM Changeset in webkit [287637] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.2
- 10:27 AM Changeset in webkit [287636] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: revert-layer should be autocompleted
https://bugs.webkit.org/show_bug.cgi?id=234646
Reviewed by Devin Rousso.
- UserInterface/Controllers/CSSManager.js:
- UserInterface/Models/CSSKeywordCompletions.js:
- 10:21 AM Changeset in webkit [287635] by
-
- 3 edits2 adds in branches/safari-612-branch
Cherry-pick r287593. rdar://problem/86910670
"canceled" wheel events to non-zero deltas cause scrolling jumps in PDFs and CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=234825
Reviewed by Tim Horton.
Source/WebKit:
On some macOS versions, interrupting a momentum scroll via a two-finger tap on the trackpad can
result in the following sequence of wheel events: momentumPhase:end -> phase:mayBegin -> phase:cancelled,
and that last canceled event can have non-zero deltas (rdar://86653042).
Protect against this by zeroing out the deltas for cancelled wheel events when constructing WebEvents
from NSEvents. Code in Element::dispatchWheelEvent() ensures that we don't dispatch wheel events with
zero deltas to script, fixing CodeMirror.
Jumps only affected PDFs (and scrollable selects) because those are the code paths that don't go via
ScrollingEffectsController, which already ignores Cancelled events.
Test: fast/scrolling/mac/canceled-event-with-non-zero-deltas.html
- Shared/mac/WebEventFactory.mm: (WebKit::WebEventFactory::createWebWheelEvent):
LayoutTests:
- fast/scrolling/mac/canceled-event-with-non-zero-deltas-expected.txt: Added.
- fast/scrolling/mac/canceled-event-with-non-zero-deltas.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287593 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:21 AM Changeset in webkit [287634] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r287578. rdar://problem/86228553
Momentum Event Dispatcher: Disable noisy logging
https://bugs.webkit.org/show_bug.cgi?id=234178
<rdar://problem/86228553>
Reviewed by Wenson Hsieh.
- WebProcess/WebPage/MomentumEventDispatcher.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287578 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:21 AM Changeset in webkit [287633] by
-
- 7 edits4 adds in branches/safari-612-branch
Cherry-pick r287353. rdar://problem/87125345
Use requester when calling updateRequestAndAddExtraFields
https://bugs.webkit.org/show_bug.cgi?id=234507
<rdar://problem/85049490>
Reviewed by Brent Fulgham.
Source/WebCore:
In case of navigation loads, the requester is the fetch request client.
As such, it should be the one used to determine whether the request is cross-origin is not.
Pass the requester to updateRequestAndAddExtraFields to do the correct computation.
Validate that some request fields are now correctly observed in service workers.
Test: http/wpt/service-workers/navigation-iframe-site.https.html
- loader/FrameLoader.cpp:
- loader/FrameLoader.h:
- testing/ServiceWorkerInternals.cpp:
- testing/ServiceWorkerInternals.h:
- testing/ServiceWorkerInternals.idl:
LayoutTests:
- http/wpt/service-workers/navigation-iframe-site-worker.js: Added.
- http/wpt/service-workers/navigation-iframe-site.https-expected.txt: Added.
- http/wpt/service-workers/navigation-iframe-site.https.html: Added.
- http/wpt/service-workers/resources/navigation-iframe-site-frame.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287353 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:21 AM Changeset in webkit [287632] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r287313. rdar://problem/87124922
IPC streams should not accept 0-length stream buffers
https://bugs.webkit.org/show_bug.cgi?id=234552
<rdar://79725420>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2021-12-21
Reviewed by Antti Koivisto.
Make decoding 0-length stream buffers fail. These buffers are not useful.
No new tests, tests need additional implementation, will be added
in subsequent commits.
- Platform/IPC/StreamConnectionBuffer.cpp: (IPC::StreamConnectionBuffer::StreamConnectionBuffer): (IPC::StreamConnectionBuffer::decode):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287313 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:21 AM Changeset in webkit [287631] by
-
- 3 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r287286. rdar://problem/87124952
Don't include SVGImageForContainers in allCachedSVGImages
https://bugs.webkit.org/show_bug.cgi?id=234364
Patch by Matt Woodrow <Matt Woodrow> on 2021-12-20
Reviewed by Dean Jackson.
- loader/cache/CachedImage.cpp: (WebCore::CachedImage::image const): (WebCore::CachedImage::hasSVGImage const): (WebCore::CachedImage::image): Deleted.
- loader/cache/CachedImage.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287286 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:21 AM Changeset in webkit [287630] by
-
- 2 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r287240. rdar://problem/86026618
Fix pointer to blob data in BlobResourceHandle::readDataSync()
<https://webkit.org/b/234459>
<rdar://86026618>
Reviewed by Chris Dumez.
- platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::readDataSync):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287240 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:21 AM Changeset in webkit [287629] by
-
- 2 edits in branches/safari-612-branch/Source/WebCore
Cherry-pick r287048. rdar://problem/87125012
Adhere to DisplayList iterator's API contract in MemoryDisplayList::~InMemoryDisplayList()
https://bugs.webkit.org/show_bug.cgi?id=234264
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-12-14
Reviewed by Myles C. Maxfield.
The client is not adhearing to the DisplayList Iterator's API contract in MemoryDisplayList::~InMemoryDisplayList():
"Part of the iterator's API contract is that if the item is nullopt, you're not allowed to keep
iterating - doing this will lead to an infinite loop."
Here we now do so by breaking out of iteration if the item is nullopt.
- platform/graphics/displaylists/InMemoryDisplayList.cpp: (WebCore::DisplayList::InMemoryDisplayList::~InMemoryDisplayList):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287048 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:21 AM Changeset in webkit [287628] by
-
- 15 edits in branches/safari-612-branch
Cherry-pick r287039. rdar://problem/85015428
Move FTP disabling from NetworkLoad::start to NetworkDataTask::NetworkDataTask
https://bugs.webkit.org/show_bug.cgi?id=234280
Source/WebKit:
<rdar://85015428>
Reviewed by Brady Eidson.
A NetworkLoad synchronously failing has caused several issues.
This issue is when a WKDownload is prevented in this way, we don't have a WKDownload in the UI process yet,
and we haven't assigned it an identifier in the network process yet either, so we dereference null and send
unreceived messages in many places. To fix this issue, I move the FTP check to the NetworkDataTask constructor
like we do with blocked port checks and invalid URL checks. I also found that there is a race condition with
CFNetwork also failing to load an empty FTP URL, so we need to prevent us from asking CFNetwork to start a load
for which we have scheduled a failure.
Covered by an API test which used to hit all the horrible failures and now passes reliably.
- NetworkProcess/NetworkCORSPreflightChecker.cpp: (WebKit::NetworkCORSPreflightChecker::wasBlockedByDisabledFTP):
- NetworkProcess/NetworkCORSPreflightChecker.h:
- NetworkProcess/NetworkDataTask.cpp: (WebKit::NetworkDataTask::NetworkDataTask): (WebKit::NetworkDataTask::scheduleFailure):
- NetworkProcess/NetworkDataTask.h:
- NetworkProcess/NetworkLoad.cpp: (WebKit::NetworkLoad::start): (WebKit::NetworkLoad::wasBlockedByDisabledFTP):
- NetworkProcess/NetworkLoad.h:
- NetworkProcess/PingLoad.cpp: (WebKit::PingLoad::wasBlockedByDisabledFTP):
- NetworkProcess/PingLoad.h:
- NetworkProcess/cocoa/NetworkDataTaskCocoa.mm: (WebKit::NetworkDataTaskCocoa::resume):
- Shared/WebErrors.cpp: (WebKit::ftpDisabledError):
- Shared/WebErrors.h:
Tools:
Reviewed by Brady Eidson.
- TestWebKitAPI/Tests/WebKitCocoa/Download.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:21 AM Changeset in webkit [287627] by
-
- 6 edits in branches/safari-612-branch
Cherry-pick r286940. rdar://problem/85388372
Implement step 17 of main fetch algorithm
https://bugs.webkit.org/show_bug.cgi?id=234140
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-csp.https.html:
- web-platform-tests/service-workers/service-worker/resources/fetch-csp-iframe.html.sub.headers:
Source/WebCore:
The step was implemented for non DocumentThreadableLoader resources, we need to also do the same step within DocumentThreadableLoader.
Covered by existing updated tests.
- loader/DocumentThreadableLoader.cpp:
- loader/DocumentThreadableLoader.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286940 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287626] by
-
- 3 edits1 add in branches/safari-612-branch
Cherry-pick r286283. rdar://problem/87125362
[JSC] jumpForTypedArrayOutOfBounds should use asAnyInt since it uses isAnyInt
https://bugs.webkit.org/show_bug.cgi?id=233610
rdar://85820476
Reviewed by Saam Barati.
JSTests:
- stress/anyint-index.js: Added. (foo):
Source/JavaScriptCore:
Since we are using isAnyInt, then we should use asAnyInt. asUInt32 will crash
if the value is double AnyInt etc.
- dfg/DFGSpeculativeJIT.cpp: (JSC::DFG::SpeculativeJIT::jumpForTypedArrayOutOfBounds):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286283 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287625] by
-
- 3 edits1 add in branches/safari-612-branch
Cherry-pick r286275. rdar://problem/87125258
[JSC] slice should be aware of TerminationException
https://bugs.webkit.org/show_bug.cgi?id=233593
rdar://85823844
Reviewed by Mark Lam.
JSTests:
- stress/slice-termination-exception.js: Added. (async infiniteLoop):
Source/JavaScriptCore:
Since termination exception can happen at any time, assertNoException is wrong.
- runtime/ArrayPrototype.cpp: (JSC::JSC_DEFINE_HOST_FUNCTION):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286275 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287624] by
-
- 4 edits1 add in branches/safari-612-branch
Cherry-pick r286249. rdar://problem/87124979
[JSC] private name operation should use RETURN_IF_EXCEPTION
https://bugs.webkit.org/show_bug.cgi?id=233577
rdar://85813869
Reviewed by Mark Lam.
JSTests:
- stress/termination-error-in-private-name.js: Added. (C):
Source/JavaScriptCore:
Because of TerminatedExecutionError, error can be thrown at any time.
- jit/JITOperations.cpp: (JSC::JSC_DEFINE_JIT_OPERATION): (JSC::putPrivateNameOptimize): (JSC::putPrivateName):
- llint/LLIntSlowPaths.cpp: (JSC::LLInt::LLINT_SLOW_PATH_DECL):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286249 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287623] by
-
- 6 edits1 add in branches/safari-612-branch
Cherry-pick r286228. rdar://problem/87125189
[JSC] GetTypedArrayLengthAsInt52 can get Array::Generic ArrayMode
https://bugs.webkit.org/show_bug.cgi?id=233571
rdar://85812164
Reviewed by Mark Lam.
JSTests:
- stress/get-typed-array-length-as-int52-generic.js: Added. (foo.bar): (foo):
Source/JavaScriptCore:
If speculation is not populated enough, then GetTypedArrayLengthAsInt52 can get Array::Generic.
In that case, we should convert it to Array::ForceExit as it is done in GetArrayLength.
And blessArrayOperation inserts ForceOSRExit. So GetTypedArrayLengthAsInt52 won't be compiled.
- dfg/DFGClobberize.h: (JSC::DFG::clobberize):
- dfg/DFGFixupPhase.cpp: (JSC::DFG::FixupPhase::fixupNode):
- dfg/DFGSpeculativeJIT64.cpp: (JSC::DFG::SpeculativeJIT::compileGetTypedArrayLengthAsInt52):
- ftl/FTLLowerDFGToB3.cpp: (JSC::FTL::DFG::LowerDFGToB3::compileGetTypedArrayLengthAsInt52):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286228 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287622] by
-
- 2 edits in branches/safari-612-branch/JSTests
Cherry-pick r286153. rdar://problem/87124911
Skip new stress test get-array-length-reuse.js if memory-limited
https://bugs.webkit.org/show_bug.cgi?id=233299
rdar://85502079
Patch by Michael Catanzaro <Michael Catanzaro> on 2021-11-24
Reviewed by Yusuke Suzuki.
- stress/get-array-length-reuse.js:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286153 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287621] by
-
- 3 edits1 add in branches/safari-612-branch
Cherry-pick r285978. rdar://problem/87124911
[JSC] TypedArray GetArrayLength should not use Reuse
https://bugs.webkit.org/show_bug.cgi?id=233299
rdar://85502079
Reviewed by Robin Morisset.
JSTests:
- stress/get-array-length-reuse.js: Added. (foo):
Source/JavaScriptCore:
We should not perform OSR exit after assigning a value to a reused register, otherwise,
OSR exit cannot recover the proper value. Now TypedArray GetArrayLength can perform
OSR exit after loading a length, so we should not use reused register for length.
- dfg/DFGSpeculativeJIT.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285978 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287620] by
-
- 3 edits2 adds in branches/safari-612-branch
Cherry-pick r285710. rdar://problem/87125070
REGRESSION(r285624) Using revert keyword with a css variable hits assert
https://bugs.webkit.org/show_bug.cgi?id=233031
rdar://85332271
Reviewed by Tim Horton.
Source/WebCore:
Test: fast/selectors/variable-revert-crash.html
- style/StyleBuilderState.h:
Default initialization set the variable to a value that is not in the enumeration.
LayoutTests:
- fast/selectors/variable-revert-crash-expected.txt: Added.
- fast/selectors/variable-revert-crash.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285710 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287619] by
-
- 2 edits in branches/safari-612-branch/Source/WebKit
Cherry-pick r285431. rdar://problem/87124705
WKSyntheticTapGestureRecognizer's action targets should be weak pointers
https://bugs.webkit.org/show_bug.cgi?id=232812
Reviewed by Tim Horton.
Make WKSyntheticTapGestureRecognizer robust against the case where it outlives its WKContentView, by making its
"reset", "gesture identified", and "gesture failed" targets weak pointers instead of raw pointers.
- UIProcess/ios/WKSyntheticTapGestureRecognizer.mm: (-[WKSyntheticTapGestureRecognizer lastTouchedScrollView]):
Drive-by fix: we can also make
_lastTouchedScrollView
use the weak ivar attribute instead of WeakObjCPtr,
now that weak is enabled in WebKit2.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@285431 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287618] by
-
- 4 edits in branches/safari-612-branch
Cherry-pick r284980. rdar://problem/84223894
Fix CARingBuffer mix mode
https://bugs.webkit.org/show_bug.cgi?id=232427
Source/WebCore:
Reviewed by Eric Carlson.
Like done for Copy, we need to use the destination offset to write data properly.
Covered by API test.
- platform/audio/cocoa/CARingBuffer.cpp:
Tools:
<rdar://problem/84747657>
Reviewed by Eric Carlson.
- TestWebKitAPI/Tests/WebCore/CARingBuffer.cpp:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@284980 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:20 AM Changeset in webkit [287617] by
-
- 8 edits in branches/safari-612-branch/Source/ThirdParty/libwebrtc
Cherry-pick r283610. rdar://problem/83435926
ObjectiveC WebRTC frame buffers are autoreleased late, especially on Debug builds
https://bugs.webkit.org/show_bug.cgi?id=231162
Reviewed by David Kilzer.
Instead of waiting for the autorelease pool to release these objects, we explicitly release them by calling close.
This ensures that pixel buffers get released very quickly.
- Source/webrtc/sdk/WebKit/WebKitEncoder.mm:
- Source/webrtc/sdk/objc/api/video_frame_buffer/RTCNativeI420Buffer+Private.h:
- Source/webrtc/sdk/objc/api/video_frame_buffer/RTCNativeI420Buffer.mm:
- Source/webrtc/sdk/objc/base/RTCI420Buffer.h:
- Source/webrtc/sdk/objc/base/RTCVideoFrameBuffer.h:
- Source/webrtc/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.h:
- Source/webrtc/sdk/objc/components/video_frame_buffer/RTCCVPixelBuffer.mm:
- Source/webrtc/sdk/objc/native/src/objc_frame_buffer.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@283610 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:10 AM Changeset in webkit [287616] by
-
- 5 edits in trunk/Source/WebKit
[macCatalyst][GPUP][NetworkProcess] Block WindowServer connections
https://bugs.webkit.org/show_bug.cgi?id=234432
<rdar://problem/85990387>
Reviewed by Brent Fulgham.
Block WindowServer connections on macCatalyst.
- GPUProcess/mac/GPUProcessMac.mm:
(WebKit::GPUProcess::initializeProcess):
- NetworkProcess/mac/NetworkProcessMac.mm:
(WebKit::NetworkProcess::initializeProcess):
- Shared/Cocoa/AuxiliaryProcessCocoa.mm:
(WebKit::AuxiliaryProcess::setApplicationIsDaemon):
- WebAuthnProcess/mac/WebAuthnProcessMac.mm:
(WebKit::WebAuthnProcess::initializeProcess):
- 7:48 AM Changeset in webkit [287615] by
-
- 2 edits in trunk/Source/WebKit
[macOS][WP] Block sandbox access to syscall
https://bugs.webkit.org/show_bug.cgi?id=234846
<rdar://problem/87093120>
Reviewed by Brent Fulgham.
Block sandbox access to syscall which only is needed on MacCatalyst.
- WebProcess/com.apple.WebProcess.sb.in:
- 7:41 AM Changeset in webkit [287614] by
-
- 4 edits in trunk/Tools
Running layout tests sometimes throws an AssertionError in python2.7/multiprocessing
https://bugs.webkit.org/show_bug.cgi?id=234487
Reviewed by Simon Fraser.
- Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Scripts/libraries/webkitcorepy/webkitcorepy/task_pool.py:
(_BiDirectionalQueue.send): Log failed queue put.
- 3:26 AM Changeset in webkit [287613] by
-
- 9 edits2 adds in trunk
MediaRecorder should support the bitsPerSecond option
https://bugs.webkit.org/show_bug.cgi?id=234784
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/mediacapture-record/MediaRecorder-bitrate.https-expected.txt:
Source/WebCore:
In case bitsPerSecond is set, we now compute audioBitsPerSecond and videoBitsPerSecond value according to it.
We set audioBitsPerSecond to a tenth of bitsPerSecond and set videoBitsPerSecond to the remaining available bandwidth.
We then use minimum values of 8kbps for audio and 80kbps for video.
As per spec, we compute these values at creation, start and stop times.
We introduce dedicated class members for audio and video bitrates, similarly to the spec defining corresponding slots.
Test: http/wpt/mediarecorder/MediaRecorder-bitrate.html
- Modules/mediarecorder/MediaRecorder.cpp:
- Modules/mediarecorder/MediaRecorder.h:
- platform/mediarecorder/MediaRecorderPrivate.cpp:
- platform/mediarecorder/MediaRecorderPrivate.h:
- platform/mediarecorder/MediaRecorderPrivateAVFImpl.cpp:
LayoutTests:
- http/wpt/mediarecorder/MediaRecorder-bitrate-expected.txt: Added.
- http/wpt/mediarecorder/MediaRecorder-bitrate.html: Added.
- 2:46 AM Changeset in webkit [287612] by
-
- 19 edits10 adds in trunk
Fetch using FormData with file doesn't go through Service Worker
https://bugs.webkit.org/show_bug.cgi?id=187461
<rdar://problem/41975544>
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/fetch/api/response/response-consume-expected.txt:
- web-platform-tests/fetch/api/response/response-consume-stream.any-expected.txt:
- web-platform-tests/fetch/api/response/response-consume-stream.any.worker-expected.txt:
Source/WebCore:
Add support for reading formData based bodies through streams or regular methods like text.
For that purpose, we add FormDataConsumer which allows serializing form datas that may contain files or blobs.
Add the ability to load blobs from BlobLoader using the internal URL (stored in FormData) in lieu of passing a blob object.
Enable fetch events for form data based fetch events.
Test: http/wpt/service-workers/form-data-upload.html
- Modules/fetch/FetchBody.cpp:
- Modules/fetch/FetchBody.h:
- Modules/fetch/FetchBodyConsumer.cpp:
- Modules/fetch/FetchBodyConsumer.h:
- Modules/fetch/FormDataConsumer.cpp: Added.
- Modules/fetch/FormDataConsumer.h: Added.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- fileapi/BlobLoader.h:
- fileapi/FileReaderLoader.cpp:
- fileapi/FileReaderLoader.h:
- workers/service/context/ServiceWorkerFetch.cpp:
LayoutTests:
In addition to adding a test to http/wpt/fetch/request-consume-stream.html, we fix the other tests that should all be passing.
Add http/wpt/service-workers/form-data-upload.html and translate exiting http/tests scripts for the WPT server.
- http/wpt/fetch/request-consume-stream-expected.txt:
- http/wpt/fetch/request-consume-stream.html:
- http/wpt/service-workers/form-data-upload-expected.txt: Added.
- http/wpt/service-workers/form-data-upload-worker.js: Added.
- http/wpt/service-workers/form-data-upload.html: Added.
- http/wpt/service-workers/resources/create-temp-file-iframe.html: Added.
- http/wpt/service-workers/resources/reset-temp-file.py: Added.
- http/wpt/service-workers/resources/temp-file-utils.js: Added.
- http/wpt/service-workers/resources/touch-temp-file.py: Added.
- http/wpt/service-workers/resources/write-temp-file.py: Added.
- 2:35 AM Changeset in webkit [287611] by
-
- 20 edits3 copies6 adds2 deletes in trunk
Make sure secure websocket connections in service workers can trigger authentication challenge callbacks
https://bugs.webkit.org/show_bug.cgi?id=234809
<rdar://85888177>
Reviewed by Chris Dumez.
Source/WebCore:
- dom/Document.h:
Source/WebKit:
In case we are not using fast server trust evaluation, we are going to the UIProcess to check certificates.
This is an issue for web socket loads triggered for service workers that have an invalid certificate.
Before the patch, the challenge was not provided a top origin, so the default action would be triggered by UIProcess.
To make sure this is working as expected, we now always pass the origin if it is the same as the top origin for web socket challenges.
This makes sure we get a page with the same top origin and the challenge callback is called on the page.
Covered by updated tests.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/NetworkSession.cpp:
- NetworkProcess/NetworkSession.h:
- NetworkProcess/NetworkSocketChannel.cpp:
- NetworkProcess/NetworkSocketChannel.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.h:
- NetworkProcess/cocoa/NetworkSessionCocoa.mm:
- NetworkProcess/cocoa/WebSocketTaskCocoa.h:
- NetworkProcess/cocoa/WebSocketTaskCocoa.mm:
- NetworkProcess/soup/NetworkSessionSoup.cpp:
- NetworkProcess/soup/NetworkSessionSoup.h:
- WebProcess/Network/WebSocketChannel.cpp:
LayoutTests:
- http/tests/workers/service/serviceworker-websocket.https-expected.txt:
- http/tests/workers/service/serviceworker-websocket.https.html:
- platform/gtk/http/tests/workers/service/serviceworker-websocket.https-expected.txt: Copied from LayoutTests/http/tests/workers/service/serviceworker-websocket.https-expected.txt.
- platform/ios-wk2/http/tests/workers/service/serviceworker-websocket.https-expected.txt: Removed.
- platform/mac-bigsur-wk2/http/tests/workers/service/serviceworker-websocket.https-expected.txt: Copied from LayoutTests/http/tests/workers/service/serviceworker-websocket.https-expected.txt.
- platform/mac-catalina-wk2/http/tests/workers/service/serviceworker-websocket.https-expected.txt: Copied from LayoutTests/http/tests/workers/service/serviceworker-websocket.https-expected.txt.
- 2:01 AM Changeset in webkit [287610] by
-
- 11 edits in trunk
Change offsetParent to match spec change
https://bugs.webkit.org/show_bug.cgi?id=161788
<rdar://problem/28230510>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/content-visibility/content-visibility-038-expected.txt: Rebase test that fails differently now.
- web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties-containing-block-expected.txt: Ditto.
- web-platform-tests/css/cssom-view/offsetParent_element_test.html: Increase the test coverage for this test case.
- web-platform-tests/svg/extensibility/foreignObject/containing-block-expected.txt: Part of this test now passes.
Source/WebCore:
No new tests. This is covered by new test statements in web-platform-tests/css/cssom-view/offsetParent_element_test.html.
- rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetParent const): Update the offsetParent algorithm to return all elements
that create containing blocks for absolutely positioned items and not just positioned elements.
LayoutTests:
- fast/clip/hit-test-with-clip-path.html: Rewrite this test to use getBoundingClientRect.
- fast/forms/resources/common.js:
(searchCancelButtonPosition): Ditto.
- fast/forms/search-transformed.html: Ditto.
- 1:52 AM Changeset in webkit [287609] by
-
- 6 edits in trunk
Unreviewed, reverting r285915.
https://bugs.webkit.org/show_bug.cgi?id=234873
causes crashes
Reverted changeset:
"border-radius inline style should serialize with valid
syntax"
https://bugs.webkit.org/show_bug.cgi?id=183994
https://commits.webkit.org/r285915
- 12:41 AM Changeset in webkit [287608] by
-
- 6 edits1 add in trunk
Tighten ServiceWorkerRegistrationKey::fromDatabaseKey
https://bugs.webkit.org/show_bug.cgi?id=234838
Reviewed by Chris Dumez.
Source/WebCore:
Add missing input validation checks.
Covered by API test.
In addition, validate that the registration key matches the other database fields.
- workers/service/ServiceWorkerRegistrationKey.cpp:
- workers/service/ServiceWorkerRegistrationKey.h:
- workers/service/server/RegistrationDatabase.cpp:
(WebCore::RegistrationDatabase::importRecords):
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebCore/ServiceWorkerRoutines.cpp: Added.
- 12:24 AM Changeset in webkit [287607] by
-
- 5 edits2 adds in trunk
WebPageProxy::requestUserMediaPermissionForSpeechRecognition should return early in case of no capture devices
https://bugs.webkit.org/show_bug.cgi?id=234837
<rdar://87055505>
Reviewed by Chris Dumez.
Source/WebKit:
Test: fast/speechrecognition/start-recognition-without-devices.html
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestUserMediaPermissionForSpeechRecognition):
LayoutTests:
- fast/speechrecognition/start-recognition-without-devices-expected.txt: Added.
- fast/speechrecognition/start-recognition-without-devices.html: Added.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- 12:22 AM Changeset in webkit [287606] by
-
- 4 edits in trunk
CSS
transform
property should take into account transform reference box
https://bugs.webkit.org/show_bug.cgi?id=234144
<rdar://problem/86630206>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-transforms/transform-percent-009-expected.txt:
Source/WebCore:
No new tests. This is covered by the existing WPT test:
web-platform-tests/css/css-transforms/transform-percent-009.html
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::computedTransform): Use the transform reference box when computing the
computed transform instead of always using the border box. This function is
modified to take in a RenderElement to avoid casting. All callers pass a RenderElement.
- 12:02 AM Changeset in webkit [287605] by
-
- 2 edits in trunk/Tools
[Win][DumpRenderTree] dumpHistoryItem leaks a SafeArray
https://bugs.webkit.org/show_bug.cgi?id=234870
Reviewed by Darin Adler.
r23462 added the following code.
if (arrPtr && SUCCEEDED(::SafeArrayUnlock(arrPtr)))
::SafeArrayDestroy(arrPtr);
However, the array wasn't locked. SafeArrayUnlock always failed.
Thus, SafeArrayDestroy wasn't called.
- DumpRenderTree/win/DumpRenderTree.cpp:
(dumpHistoryItem): Don't use SafeArrayUnlock. Fixed a typo 'arrary'.
Jan 4, 2022:
- 11:52 PM Changeset in webkit [287604] by
-
- 4 edits4 adds in trunk
Protect frame from destruction in HTMLMediaElement::setupAndCallJS
https://bugs.webkit.org/show_bug.cgi?id=234259
Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-04
Reviewed by Darin Adler.
Source/WebCore:
Test: http/tests/media/media-element-frame-destroyed-crash.html
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::setupAndCallJS): Protect the frame before executing the JS code,
so that it is not destroyed before its associated ScriptController.
LayoutTests:
Add non-regression test, embedded in multiple iframes to make regression easily reproducible.
- http/conf/mime.types: Ensure that ts files are served with MIME type video/mp2t as that's required
to make the non-regression test work properly.
- http/tests/media/media-element-frame-destroyed-crash-expected.txt: Added.
- http/tests/media/media-element-frame-destroyed-crash.html: Added.
- http/tests/media/resources/empty.ts: Added.
- http/tests/media/resources/media-element-frame-destroyed-crash-subframe.html: Added.
- 11:33 PM Changeset in webkit [287603] by
-
- 3 edits in trunk/Source/WebCore
RenderStyle::transitionForProperty() is unused
https://bugs.webkit.org/show_bug.cgi?id=234860
Reviewed by Dean Jackson.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::transitionForProperty const): Deleted.
- rendering/style/RenderStyle.h:
- 11:03 PM Changeset in webkit [287602] by
-
- 10 edits2 deletes in trunk
WPT test css/css-transitions/parsing/transition-shorthand.html has failures
https://bugs.webkit.org/show_bug.cgi?id=234856
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progressions, all tests in css/css-transitions/parsing/transition-shorthand.html now pass.
- web-platform-tests/css/css-transitions/parsing/transition-shorthand-expected.txt:
Source/WebCore:
Parse the "transition" shorthand the same way we parse the "animation" shorthand
and teach ComputedStyleExtractor::addValueForAnimationPropertyToList() about
"transition-property" so that it correctly returns a CSSValue for it.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::addValueForAnimationPropertyToList):
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumeAnimationShorthand):
LayoutTests:
This historical test transitions/transitions-parsing.html is wrong and WPT has exhaustive
coverage for parsing of transition properties, so let's remove it.
Rebaselining some other tests.
- fast/css/shorthand-mismatched-list-crash-expected.txt:
- fast/css/shorthand-mismatched-list-crash.html:
- fast/css/transform-inline-style-expected.txt:
- fast/css/transform-inline-style-remove-expected.txt:
- transitions/transitions-parsing-expected.txt: Removed.
- transitions/transitions-parsing.html: Removed.
- 6:03 PM Changeset in webkit [287601] by
-
- 1 copy in tags/Safari-613.1.12.1.1
Tag Safari-613.1.12.1.1.
- 5:26 PM Changeset in webkit [287600] by
-
- 2 edits in trunk/Source/WebKit
ASSERTION FAILED: pathnames.size() == sandboxExtensionsHandleArray.size() in WebKit::WebPlatformStrategies::getPathnamesForType()
https://bugs.webkit.org/show_bug.cgi?id=234851
rdar://87100377
Reviewed by Darin Adler.
The new API test added r287547 (WKAttachmentTestsMac.InsertNonExistentImageFileAsAttachment) exercises inserting
a nonexistent file as a "progress" attachment element when the WebKit attachment API is enabled. This test is
the first on macOS that attempts to paste file paths pointing to nonexistent files on disk, and so it hits an
existing assertion due to the number of sandbox extensions opened underneathgetPasteboardPathnamesForType()
not matching the number of file paths found on the pasteboard.
This assertion is benign, since we do not expect to be able to read from the missing file path in the web
process, so it's expected that we don't have a corresponding sandbox extension for missing files. To address
this, we adjustWebPasteboardProxy::getPasteboardPathnamesForType()
such that it always returns an equal
number of path names and pathnames. Each missing path name simply corresponds to aSandboxExtension::Handle
with a nullm_sandboxExtension
, which is skipped in the web process upon consumption.
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::getPasteboardPathnamesForType):
- 5:04 PM Changeset in webkit [287599] by
-
- 4 edits in trunk/LayoutTests
[WPE] fast/scrolling/rtl-scrollbars-alternate-body-dir-attr-does-not-update-scrollbar-placement-2.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=212959
Unreviewed test gardening.
This test is no longer flakey for WPE. Updated test expectations.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 5:02 PM Changeset in webkit [287598] by
-
- 4 edits in trunk/LayoutTests
[GTK] media/video-as-img-output-pts.html test is flaky timeout
https://bugs.webkit.org/show_bug.cgi?id=224112
Reviewed by Philippe Normand.
Refactored test to make it similar to other Media test (i.e
media/video-page-visibility-restriction.html).
- media/video-as-img-output-pts-expected.txt:
- media/video-as-img-output-pts.html:
- platform/glib/TestExpectations:
- 4:48 PM Changeset in webkit [287597] by
-
- 15 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- platform/wincairo/fast/css/text-overflow-input-expected.txt:
- platform/wincairo/fast/dom/52776-expected.txt:
- platform/wincairo/fast/dom/HTMLElement/bdo-expected.txt:
- platform/wincairo/fast/inline-block/003-expected.txt:
- platform/wincairo/fast/text/fixed-pitch-control-characters-expected.txt:
- platform/wincairo/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
- platform/wincairo/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
- platform/wincairo/fast/text/international/bidi-layout-across-linebreak-expected.txt:
- platform/wincairo/fast/text/international/bidi-neutral-run-expected.txt:
- platform/wincairo/fast/text/international/bidi-override-expected.txt:
- platform/wincairo/fast/text/text-letter-spacing-expected.txt:
- platform/wincairo/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
- 4:20 PM Changeset in webkit [287596] by
-
- 33 edits in trunk/Source/JavaScriptCore
[JSC] Remove m_calleeSaveRegisters from CodeBlock::JITData and rename it to BaselineJITData
https://bugs.webkit.org/show_bug.cgi?id=234555
Reviewed by Saam Barati.
This patch removes m_calleeSaveRegisters from CodeBlock::JITData, and moving it to each JITCode.
This is reasonable since m_calleeSaveRegisters information belongs to JITCode, not CodeBlock.
And in LLInt, Baseline, and DFG cases, m_calleeSaveRegisters is the same. So we do not have this
field in these JITCode. Only FTL can have m_calleeSaveRegisters.
By removing m_calleeSaveRegisters from CodeBlock::JITData, now it only includes Baseline JIT related
data. So this patch renames CodeBlock::JITData to BaselineJITData.
We also use TrailingArray for BaselineJITData so that we can remove one level indirection when loading
JITConstantPool from JITData.
- bytecode/CodeBlock.cpp:
(JSC::CodeBlock::setupWithUnlinkedBaselineCode):
(JSC::CodeBlock::~CodeBlock):
(JSC::CodeBlock::propagateTransitions):
(JSC::CodeBlock::finalizeJITInlineCaches):
(JSC::CodeBlock::getICStatusMap):
(JSC::CodeBlock::findStubInfo):
(JSC::CodeBlock::resetBaselineJITData):
(JSC::CodeBlock::stronglyVisitStrongReferences):
(JSC::CodeBlock::calleeSaveSpaceAsVirtualRegisters):
(JSC::CodeBlock::findPC):
(JSC::CodeBlock::ensureJITDataSlow): Deleted.
(JSC::CodeBlock::setCalleeSaveRegisters): Deleted.
(JSC::CodeBlock::resetJITData): Deleted.
(JSC::CodeBlock::calleeSaveRegisters const): Deleted.
- bytecode/CodeBlock.h:
(JSC::CodeBlock::offsetOfBaselineJITData):
(JSC::CodeBlock::baselineJITData):
(JSC::CodeBlock::calleeSaveSpaceAsVirtualRegisters):
(JSC::CodeBlock::JITData::offsetOfJITConstantPool): Deleted.
(JSC::CodeBlock::ensureJITData): Deleted.
(JSC::CodeBlock::offsetOfJITData): Deleted.
(JSC::CodeBlock::baselineJITConstantPool): Deleted.
- bytecode/Repatch.cpp:
(JSC::linkPolymorphicCall):
- dfg/DFGJITCompiler.h:
(JSC::DFG::JITCompiler::emitRestoreCalleeSaves):
(JSC::DFG::JITCompiler::emitSaveCalleeSaves):
- dfg/DFGOSREntry.cpp:
(JSC::DFG::prepareOSREntry):
- dfg/DFGOSRExit.cpp:
(JSC::DFG::OSRExit::compileExit):
- dfg/DFGOSRExitCompilerCommon.cpp:
(JSC::DFG::calleeSaveSlot):
(JSC::DFG::reifyInlinedCallFrames):
(JSC::DFG::adjustAndJumpToTarget):
- dfg/DFGPlan.cpp:
(JSC::DFG::Plan::compileInThreadImpl):
- dfg/DFGSpeculativeJIT32_64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::emitCall):
- dfg/DFGStackLayoutPhase.cpp:
(JSC::DFG::StackLayoutPhase::run):
- ftl/FTLCompile.cpp:
(JSC::FTL::compile):
- ftl/FTLJITCode.h:
(JSC::FTL::JITCode::calleeSaveRegisters const):
- ftl/FTLLowerDFGToB3.cpp:
(JSC::FTL::DFG::LowerDFGToB3::compileCompareStrictEq):
- ftl/FTLOSRExitCompiler.cpp:
(JSC::FTL::compileStub):
- interpreter/StackVisitor.cpp:
(JSC::StackVisitor::Frame::calleeSaveRegistersForUnwinding):
- jit/AssemblyHelpers.cpp:
(JSC::AssemblyHelpers::executableFor):
(JSC::AssemblyHelpers::emitSaveOrCopyLLIntBaselineCalleeSavesFor):
- jit/AssemblyHelpers.h:
(JSC::AssemblyHelpers::emitSaveThenMaterializeTagRegisters):
(JSC::AssemblyHelpers::emitSaveCalleeSavesFor): Deleted.
(JSC::AssemblyHelpers::emitRestoreCalleeSavesFor): Deleted.
(JSC::AssemblyHelpers::emitSaveCalleeSaves): Deleted.
(JSC::AssemblyHelpers::emitRestoreCalleeSaves): Deleted.
- jit/BaselineJITCode.h:
- jit/CallFrameShuffleData.cpp:
- jit/CallFrameShuffleData.h:
- jit/JIT.cpp:
(JSC::JIT::privateCompileMainPass):
(JSC::JIT::emitMaterializeMetadataAndConstantPoolRegisters):
(JSC::JIT::emitSaveCalleeSaves):
(JSC::JIT::compileAndLinkWithoutFinalizing):
- jit/JIT.h:
- jit/JITCode.cpp:
(JSC::JITCode::calleeSaveRegisters const):
- jit/JITCode.h:
- jit/JITInlines.h:
(JSC::JIT::loadConstant):
- jit/JITOpcodes.cpp:
(JSC::JIT::emit_op_catch):
- jit/RegisterAtOffsetList.cpp:
(JSC::RegisterAtOffsetList::dfgCalleeSaveRegisters):
- jit/RegisterAtOffsetList.h:
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::LLINT_SLOW_PATH_DECL):
- llint/LowLevelInterpreter.asm:
- tools/VMInspector.cpp:
(JSC::VMInspector::dumpRegisters):
- 4:19 PM Changeset in webkit [287595] by
-
- 9 edits in trunk
Unreviewed, reverting r287374.
Caused assertion failures on Monterey
Reverted changeset:
"Re-enable CustomDisplayName and DefaultDisplayName API tests
on Monterey"
https://bugs.webkit.org/show_bug.cgi?id=234613
https://commits.webkit.org/r287374
- 3:49 PM Changeset in webkit [287594] by
-
- 2 edits in branches/safari-613.1.12.1-branch/Source/WebKit
Cherry-pick r287413. rdar://problem/86808395
Allow a necessary syscall in the WebContent sandbox
https://bugs.webkit.org/show_bug.cgi?id=234641
<rdar://problem/86808395>
Reviewed by Alan Bujtas.
Telemetry and testing logs indicate that we need to allow
'SYS_memorystatus_control' in our WebContent sandbox.
We allow this in all other sandboxes, so this was likely an oversight.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287413 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:48 PM Changeset in webkit [287593] by
-
- 3 edits2 adds in trunk
"canceled" wheel events to non-zero deltas cause scrolling jumps in PDFs and CodeMirror
https://bugs.webkit.org/show_bug.cgi?id=234825
Reviewed by Tim Horton.
Source/WebKit:
On some macOS versions, interrupting a momentum scroll via a two-finger tap on the trackpad can
result in the following sequence of wheel events: momentumPhase:end -> phase:mayBegin -> phase:cancelled,
and that last canceled event can have non-zero deltas (rdar://86653042).
Protect against this by zeroing out the deltas for cancelled wheel events when constructing WebEvents
from NSEvents. Code in Element::dispatchWheelEvent() ensures that we don't dispatch wheel events with
zero deltas to script, fixing CodeMirror.
Jumps only affected PDFs (and scrollable selects) because those are the code paths that don't go via
ScrollingEffectsController, which already ignores Cancelled events.
Test: fast/scrolling/mac/canceled-event-with-non-zero-deltas.html
- Shared/mac/WebEventFactory.mm:
(WebKit::WebEventFactory::createWebWheelEvent):
LayoutTests:
- fast/scrolling/mac/canceled-event-with-non-zero-deltas-expected.txt: Added.
- fast/scrolling/mac/canceled-event-with-non-zero-deltas.html: Added.
- 3:31 PM Changeset in webkit [287592] by
-
- 4 edits in trunk
Use ICU instead of relying on hard-coded string equality checks in ModalContainerControlClassifier
https://bugs.webkit.org/show_bug.cgi?id=234677
Reviewed by Tim Horton.
Source/WebKit:
Followup to r287420 - use ICU to check for more strings that resemble either the lowercase or uppercase letter
"x", rather than relying on a hard-coded set of symbols. Note that ICU's "confusables" list currently does not
consider both ✖ and ✕ to be lookalikes to the letter "x"; since these symbols are actually known to appear in
modal containers on several websites, we'll still need to check for these two symbols separately.
Test: ModalContainerObservation.ClassifyMultiplySymbol
- UIProcess/Cocoa/ModalContainerControlClassifier.mm:
(WebKit::SpoofChecker::~SpoofChecker):
Add a helper class that wraps calls to
uspoof_areConfusableUTF8
, and also ensures balanced calls to
uspoof_open
anduspoof_close
when creating a new ICU spoof checker. Use this in the
WKModalContainerClassifierInput class below to check for more types of strings that look like the letter "x".
(WebKit::SpoofChecker::areConfusable):
(WebKit::SpoofChecker::checker):
(-[WKModalContainerClassifierInput initWithTokenizer:rawInput:]):
Tools:
Augment the existing API test so that it additionally tests a symbol ("small roman numeral ten") that would not
have been covered as one of the three hard-coded symbol strings in the earlier fix.
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
(TestWebKitAPI::TEST):
- 3:05 PM Changeset in webkit [287591] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] fast/text/combining-mark-paint.html is failing (complex text)
https://bugs.webkit.org/show_bug.cgi?id=234834
Reviewed by Antti Koivisto.
Apparently it's perfectly valid to have zero width unicode character (e.g. macron) and
still affect the line height.
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::fallbackFontsForRunWithIterator):
- 2:51 PM Changeset in webkit [287590] by
-
- 9 edits in trunk
Web Inspector: Sources: expanding a grouping of blackboxed call frames should be persistent
https://bugs.webkit.org/show_bug.cgi?id=234614
<rdar://problem/86989232>
Reviewed by Patrick Angle.
Source/WebInspectorUI:
If the developer has explicitly decided to show blackboxed call frames, we should respect
that decision. Requiring them to re-expand after _every_ debugger action is very hostile.
So long as the blackboxed call frames remain the same we should persist the expansion. Only
if the location of those blackboxed frames changes should we re-collapse.
- UserInterface/Controllers/DebuggerManager.js:
(WI.DebuggerManager):
(WI.DebuggerManager.prototype.rememberBlackboxedCallFrameGroupToAutoExpand): Added.
(WI.DebuggerManager.prototype.shouldAutoExpandBlackboxedCallFrameGroup): Added.
(WI.DebuggerManager.prototype._didResumeInternal):
- UserInterface/Views/BlackboxedGroupTreeElement.js:
(WI.BlackboxedGroupTreeElement.prototype.expand):
Keep a list of blackboxed call frame groupings that have been expanded by the developer.
Use this list to decide whether "new" blackboxed call frame grouping should be auto-expanded
by default (i.e. if everyWI.CallFrame
is identical with something in the list). Clear the
list when resuming, as we're only trying to keep expanded blackboxed call frame groupings
within the same call stack (i.e. while stepping).
- UserInterface/Base/Utilities.js:
(Array.prototype.groupBy): Deleted.
- UserInterface/Views/ThreadTreeElement.js:
(WI.ThreadTreeElement.prototype.refresh):
Remove the customArray.prototype.groupBy
since it's no longer needed (and there's now a
builtin function with the same name). Instead, just keep an index of the first blackboxed
call frame and iterate until either the end of the call stack or a non-blackboxed call frame
is found,slice
ing from the saved index to the current item to make a blackboxed call
frame group. If that blackboxed call frame group should be auto-expanded (see above), create
aWI.CallFrameTreeElement
for each blackboxed call frame instead of oneWI.BlackboxedGroupTreeElement
.
- UserInterface/Models/CallFrame.js:
(WI.CallFrame.prototype.isEqual): Added.
Add a convenience function to compare twoWI.CallFrame
. Right now it just looks at the
WI.SourceCodeLocation
, since for most purposes that's really how one would identify a
WI.CallFrame
(i.e. it's probably more important to know "is this the same spot in code"
as opposed to "do we have the samethis
object").
LayoutTests:
- inspector/unit-tests/array-utilities.html:
- inspector/unit-tests/array-utilities-expected.txt:
Remove the custom
Array.prototype.groupBy
since it's no longer needed (and there's now a
builtin function with the same name).
- 2:14 PM Changeset in webkit [287589] by
-
- 2 edits in trunk/Source/WebKit
[iOS][WP] Add telemetry for syscall violations
https://bugs.webkit.org/show_bug.cgi?id=234859
Reviewed by Brent Fulgham.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 1:58 PM Changeset in webkit [287588] by
-
- 5 edits in trunk
ModalContainerObserver should search for text in subframes
https://bugs.webkit.org/show_bug.cgi?id=234446
rdar://86897770
Reviewed by Tim Horton.
Source/WebCore:
Adds support for detecting modal containers when the search term is embedded inside a subframe in the top
document. To do this, we make a few adjustments to ModalContainerObserver, detailed in the comments below. This
supports both scenarios in which (1) a subframe that has not yet loaded is added to the top document and then
later gains occurrences of the search term, and (2) a subframe that already contains the search term in rendered
text is made visible inside the top document.
Test: ModalContainerObservation.ModalContainerInSubframe
- page/ModalContainerObserver.cpp:
(WebCore::ModalContainerObserver::isNeededFor):
Install a ModalContainerObserver for child documents in the case where the parent document already has a modal
container observer that is waiting for this frame to finish its first visually non-empty layout (see the comment
inModalContainerObserver::updateModalContainerIfNeeded()
, below).
(WebCore::containsMatchingText):
Pull out logic for searching all text renderer descendants underneath a given renderer into a separate helper
function.
(WebCore::ModalContainerObserver::searchForModalContainerOnBehalfOfFrameOwnerIfNeeded):
Used for a ModalContainerObserver in a child frame to notify the ModalContainerObserver in the parent document
when the child document has finished layout. If this child document's owner element is one of the elements in
m_frameOwnersAndContainersToSearchAgain
, we invalidate the corresponding viewport-constrained container that
we've previously searched (i.e. by removing it fromm_elementsToIgnoreWhenSearching
) and re-search the
container.
(WebCore::ModalContainerObserver::updateModalContainerIfNeeded):
Make a couple of adjustments:
- For modal container observers that are not in the top document: delegate the modal container update out
to the parent document's modal container observer, by calling the helper method above.
- For modal container observers that are in the top document: add logic to search content in subframes
inside of viewport-constrained containers as a fallback in the case where the search term does not
appear in content at the top document.
(WebCore::ModalContainerObserver::setContainer):
Pull out logic for tracking the currently detected modal container into a separate helper method that takes
the modal container element, as well as the frame owner element where we observed the search term (or null if
the search term was observed in the top document).
(WebCore::ModalContainerObserver::container const):
(WebCore::ModalContainerObserver::frameOwnerForControls const):
Replace
m_container
with astd::pair
containing the current modal container (i.e. what is currently just
m_container
, as well as a weak pointer to the associated frame owner element where we discovered the search
term). We use astd::pair
here because these two elements should always be set and cleared out in tandem.
(WebCore::ModalContainerObserver::collectClickableElementsTimerFired):
(WebCore::ModalContainerObserver::revealModalContainer):
Replace uses of
m_container
with thecontainer()
method.
(WebCore::ModalContainerObserver::collectClickableElements):
If a frame owner element is set, use the subframe's content document element as the container for collecting
clickable controls instead of using the actual modal container element in the top document.
- page/ModalContainerObserver.h:
(WebCore::ModalContainerObserver::shouldHide const):
Use
container()
instead ofm_container
.
Tools:
Add an API test to exercise the change. See WebCore/ChangLog for more details.
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
(TestWebKitAPI::TEST):
- 1:44 PM Changeset in webkit [287587] by
-
- 4 edits in trunk/Tools
[git-webkit] Open closed pull-request when running pr (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=232765
<rdar://problem/85084318>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest.main): Log found pull-request instead of undefined candidates.
Canonical link: https://commits.webkit.org/245716@main
- 1:42 PM Changeset in webkit [287586] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Add icon for collapsed blackboxed section
https://bugs.webkit.org/show_bug.cgi?id=219806
<rdar://problem/72240360>
Reviewed by Patrick Angle.
- UserInterface/Views/BlackboxedGroupTreeElement.css:
(.tree-outline .item.blackboxed-group .icon):
(@media (prefers-color-scheme: dark) .tree-outline .item.blackboxed-group .icon):
UseHide.svg#black
andHide.svg#white
.
- UserInterface/Images/TypeIcons.svg:
Remove
#Blackboxed-dark
and#Blackboxed-light
.
- 1:38 PM Changeset in webkit [287585] by
-
- 2 edits in trunk/Source/JavaScriptCore
[PlayStation] Fix non-ninja build of zydis
https://bugs.webkit.org/show_bug.cgi?id=234854
Unreviewed build fix
- PlatformPlayStation.cmake: Set Zycore.c as CXX
- 1:34 PM Changeset in webkit [287584] by
-
- 3 edits in trunk/Source/WebKit
CrashTracer: com.apple.WebKit.Networking at com.apple.WebKit: WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess
https://bugs.webkit.org/show_bug.cgi?id=234852
<rdar://problem/87068976>
Reviewed by Brent Fulgham.
Return early if a sqlite statement is null or fails to bind because this
will cause a crash when trying to step. Even in cases where it won't
crash, we should not continue in the function because this may have
undefined behavior.
- NetworkProcess/Classifier/ResourceLoadStatisticsDatabaseStore.cpp:
(WebKit::ResourceLoadStatisticsDatabaseStore::cookieAccess):
(WebKit::ResourceLoadStatisticsDatabaseStore::getThirdPartyDataForSpecificFirstPartyDomains const):
(WebKit::ResourceLoadStatisticsDatabaseStore::clearUserInteraction):
(WebKit::ResourceLoadStatisticsDatabaseStore::includeTodayAsOperatingDateIfNecessary):
(WebKit::ResourceLoadStatisticsDatabaseStore::insertExpiredStatisticForTesting):
- NetworkProcess/PrivateClickMeasurement/PrivateClickMeasurementDatabase.cpp:
(WebKit::PCM::Database::earliestTimesToSend):
- 1:29 PM Changeset in webkit [287583] by
-
- 34 edits4 copies4 moves in trunk/LayoutTests
[WPE] Update test baselines after recent LFC-related changes.
https://bugs.webkit.org/show_bug.cgi?id=234853
Unreviewed test gardening.
This updates WPE test baselines to account for the changes in
r283550, r283875, r284303, r286107, r286133, r286848, r286928, r287453, r287482, and r287485.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-04
- platform/gtk/fast/backgrounds/border-radius-split-background-expected.txt: Copied from LayoutTests/platform/glib/fast/backgrounds/border-radius-split-background-expected.txt.
- platform/gtk/fast/backgrounds/border-radius-split-background-image-expected.txt: Copied from LayoutTests/platform/glib/fast/backgrounds/border-radius-split-background-image-expected.txt.
- platform/gtk/fast/borders/border-image-outset-split-inline-expected.txt: Copied from LayoutTests/platform/glib/fast/borders/border-image-outset-split-inline-expected.txt.
- platform/gtk/fast/borders/border-styles-split-expected.txt: Copied from LayoutTests/platform/glib/fast/borders/border-styles-split-expected.txt.
- platform/wpe/fast/backgrounds/border-radius-split-background-expected.txt: Renamed from LayoutTests/platform/glib/fast/backgrounds/border-radius-split-background-expected.txt.
- platform/wpe/fast/backgrounds/border-radius-split-background-image-expected.txt: Renamed from LayoutTests/platform/glib/fast/backgrounds/border-radius-split-background-image-expected.txt.
- platform/wpe/fast/block/basic/016-expected.txt:
- platform/wpe/fast/borders/bidi-012-expected.txt:
- platform/wpe/fast/borders/border-image-outset-split-inline-expected.txt: Renamed from LayoutTests/platform/glib/fast/borders/border-image-outset-split-inline-expected.txt.
- platform/wpe/fast/borders/border-styles-split-expected.txt: Renamed from LayoutTests/platform/glib/fast/borders/border-styles-split-expected.txt.
- platform/wpe/fast/borders/rtl-border-04-expected.txt:
- platform/wpe/fast/borders/rtl-border-05-expected.txt:
- platform/wpe/fast/box-shadow/basic-shadows-expected.txt:
- platform/wpe/fast/css/first-line-text-decoration-expected.txt:
- platform/wpe/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
- platform/wpe/fast/css/text-overflow-ellipsis-bidi-expected.txt:
- platform/wpe/fast/css/text-overflow-input-expected.txt:
- platform/wpe/fast/dom/52776-expected.txt:
- platform/wpe/fast/dom/HTMLElement/bdo-expected.txt:
- platform/wpe/fast/inline-block/003-expected.txt:
- platform/wpe/fast/text/cg-fallback-bolding-expected.txt:
- platform/wpe/fast/text/firstline/001-expected.txt:
- platform/wpe/fast/text/fixed-pitch-control-characters-expected.txt:
- platform/wpe/fast/text/format-control-expected.txt:
- platform/wpe/fast/text/in-rendered-text-rtl-expected.txt:
- platform/wpe/fast/text/international/bidi-L2-run-reordering-expected.txt:
- platform/wpe/fast/text/international/bidi-LDB-2-CSS-expected.txt:
- platform/wpe/fast/text/international/bidi-LDB-2-HTML-expected.txt:
- platform/wpe/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
- platform/wpe/fast/text/international/bidi-european-terminators-expected.txt:
- platform/wpe/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
- platform/wpe/fast/text/international/bidi-layout-across-linebreak-expected.txt:
- platform/wpe/fast/text/international/bidi-listbox-expected.txt:
- platform/wpe/fast/text/international/bidi-menulist-expected.txt:
- platform/wpe/fast/text/international/bidi-neutral-run-expected.txt:
- platform/wpe/fast/text/international/bidi-override-expected.txt:
- platform/wpe/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
- platform/wpe/fast/text/text-letter-spacing-expected.txt:
- platform/wpe/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt:
- platform/wpe/http/tests/misc/acid3-expected.txt:
- platform/wpe/tables/mozilla/core/bloomberg-expected.txt:
- 1:25 PM Changeset in webkit [287582] by
-
- 14 edits2 deletes in trunk/Source/JavaScriptCore
[JSC] Remove JSWebAssemblyCalleeGroup cell
https://bugs.webkit.org/show_bug.cgi?id=234780
Reviewed by Saam Barati.
This cell is not observable to users. And this cell just holds Wasm-to-JS stubs,
but it is the same to all memory modes. Thus, we should just generate it in VM-linked
Wasm::Module (it means, we should have it in JSWebAssemblyModule), and we do not need
to have / allocate JSWebAssemblyCalleeGroup cell.
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- heap/Heap.cpp:
(JSC::Heap::Heap):
(JSC::Heap::finalizeUnconditionalFinalizers):
(JSC::Heap::deleteAllCodeBlocks):
- heap/Heap.h:
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- wasm/WasmBinding.h:
- wasm/js/JSWebAssemblyCalleeGroup.cpp: Removed.
- wasm/js/JSWebAssemblyCalleeGroup.h: Removed.
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::visitChildrenImpl):
(JSC::JSWebAssemblyInstance::finalizeCreation):
- wasm/js/JSWebAssemblyInstance.h:
- wasm/js/JSWebAssemblyModule.cpp:
(JSC::JSWebAssemblyModule::createStub):
(JSC::JSWebAssemblyModule::visitChildrenImpl):
(JSC::JSWebAssemblyModule::clearJSCallICs):
(JSC::JSWebAssemblyModule::finalizeUnconditionally):
(JSC::JSWebAssemblyModule::generateWasmToJSStubs):
(JSC::JSWebAssemblyModule::calleeGroup): Deleted.
(JSC::JSWebAssemblyModule::setCalleeGroup): Deleted.
- wasm/js/JSWebAssemblyModule.h:
- wasm/js/WebAssemblyModuleConstructor.cpp:
- wasm/js/WebAssemblyWrapperFunction.h:
- 12:59 PM Changeset in webkit [287581] by
-
- 2 edits in trunk
clang-format: Change SpaceAfterTemplateKeyword to false
https://bugs.webkit.org/show_bug.cgi?id=234655
Reviewed by Don Olmstead.
Bug 183302 added the initial .clang-format file which were
including SpaceAfterTemplateKeyword:true. However, even though it
is undocumented, typical WebKit code is using a style having no
space ater thetemplate
keyword.
- .clang-format:
- 11:21 AM Changeset in webkit [287580] by
-
- 2 edits in trunk/Tools
Re-disable WKInspectorExtensionDelegate.ExtensionTabNavigatedCallbacks API test in debug builds
https://bugs.webkit.org/show_bug.cgi?id=232857
I enabled it with an unrelated change and it is timing out, so re-disable it.
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionDelegate.mm:
(TEST):
- 11:14 AM Changeset in webkit [287579] by
-
- 2 edits in trunk/Source/WebKit
Partial revert of https://trac.webkit.org/changeset/287371/webkit
RS by John Wilander.
Keep logging in for test debugging purposes.
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::setPrivateClickMeasurementAppBundleIDForTesting):
- 11:09 AM Changeset in webkit [287578] by
-
- 2 edits in trunk/Source/WebKit
Momentum Event Dispatcher: Disable noisy logging
https://bugs.webkit.org/show_bug.cgi?id=234178
<rdar://problem/86228553>
Reviewed by Wenson Hsieh.
- WebProcess/WebPage/MomentumEventDispatcher.h:
- 10:29 AM Changeset in webkit [287577] by
-
- 8 edits in branches/safari-612-branch/Source
Versioning.
WebKit-7612.4.9
- 10:21 AM Changeset in webkit [287576] by
-
- 42 edits5 copies in branches/safari-613.1.12.1-branch
Cherry-pick r287574. rdar://problem/86855896
[Cocoa] Hang in AVTrackPrivateAVFObjCImpl::bitrate()
https://bugs.webkit.org/show_bug.cgi?id=234753
Reviewed by Eric Carlson.
Source/WebCore:
In r286908, WebCore added new queries onto existing AVAssetTrack objects; however, querying
those properties will block if data for those properties is not yet available. The media element
could block moving to the HAVE_METADATA state until those properties are fully loaded, however
this might regress PLT, so instead, we will check the load state of those properties before returning
values.
However, to make the properties exposed through VideoTrackConfiguration.idl/AudioTrackConfiguration.idl
dynamic, changes need to be signaled and propagated upward through the layers between AVAssetTrack and
the DOM. Rather than make individual notifications for each property in a Configuration struct, make one
notification that handles any change to the Configuration struct at all and push that upward to clients.
Since these properties are being grouped together at a lower-level, they do not need to be tracked
individually, and Video/AudioTrackConfigurationInit can just be aliased to a platform-defined struct.
- html/track/AudioTrack.cpp: (WebCore::AudioTrack::configurationChanged): (WebCore::AudioTrack::updateConfigurationFromPrivate):
- html/track/AudioTrack.h:
- html/track/AudioTrackConfiguration.h: (WebCore::AudioTrackConfiguration::setState): (): Deleted.
- html/track/VideoTrack.cpp: (WebCore::VideoTrack::configurationChanged): (WebCore::VideoTrack::updateConfigurationFromPrivate):
- html/track/VideoTrack.h:
- html/track/VideoTrackConfiguration.h: (WebCore::VideoTrackConfiguration::setState): (WebCore::VideoTrackConfiguration::colorSpace const): (WebCore::VideoTrackConfiguration::setColorSpace): (WebCore::VideoTrackConfiguration::VideoTrackConfiguration): (): Deleted.
- platform/graphics/AudioTrackPrivate.h: (WebCore::AudioTrackPrivate::configuration const): (WebCore::AudioTrackPrivate::setConfiguration): (WebCore::AudioTrackPrivate::codec const): Deleted. (WebCore::AudioTrackPrivate::setCodec): Deleted. (WebCore::AudioTrackPrivate::sampleRate const): Deleted. (WebCore::AudioTrackPrivate::setSampleRate): Deleted. (WebCore::AudioTrackPrivate::numberOfChannels const): Deleted. (WebCore::AudioTrackPrivate::setNumberOfChannels): Deleted. (WebCore::AudioTrackPrivate::bitrate const): Deleted. (WebCore::AudioTrackPrivate::setBitrate): Deleted.
- platform/graphics/AudioTrackPrivateClient.h:
- platform/graphics/PlatformVideoColorSpace.h: (WebCore::operator==): (WebCore::operator!=):
- platform/graphics/VideoTrackPrivate.h: (WebCore::VideoTrackPrivate::configuration const): (WebCore::VideoTrackPrivate::setConfiguration): (WebCore::VideoTrackPrivate::codec const): Deleted. (WebCore::VideoTrackPrivate::setCodec): Deleted. (WebCore::VideoTrackPrivate::width const): Deleted. (WebCore::VideoTrackPrivate::setWidth): Deleted. (WebCore::VideoTrackPrivate::height const): Deleted. (WebCore::VideoTrackPrivate::setHeight): Deleted. (WebCore::VideoTrackPrivate::colorSpace const): Deleted. (WebCore::VideoTrackPrivate::setColorSpace): Deleted. (WebCore::VideoTrackPrivate::framerate const): Deleted. (WebCore::VideoTrackPrivate::setFramerate): Deleted. (WebCore::VideoTrackPrivate::bitrate const): Deleted. (WebCore::VideoTrackPrivate::setBitrate): Deleted.
- platform/graphics/VideoTrackPrivateClient.h:
- platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h: (WebCore::AVTrackPrivateAVFObjCImpl::setVideoTrackConfigurationObserver): (WebCore::AVTrackPrivateAVFObjCImpl::setAudioTrackConfigurationObserver):
- platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm: (WebCore::assetTrackConfigurationKeyNames): (WebCore::AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl): (WebCore::AVTrackPrivateAVFObjCImpl::initializeAssetTrack): (WebCore::AVTrackPrivateAVFObjCImpl::videoTrackConfiguration const): (WebCore::AVTrackPrivateAVFObjCImpl::audioTrackConfiguration const):
- platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm: (WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC): (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): (WebCore::AudioTrackPrivateAVFObjC::audioTrackConfigurationChanged):
- platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp: (WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC): (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack): (WebCore::VideoTrackPrivateAVFObjC::videoTrackConfigurationChanged):
- platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm: (WebCore::VideoTrackPrivateMediaSourceAVFObjC::resetPropertiesFromTrack):
- platform/graphics/cocoa/VideoTrackPrivateWebM.cpp: (WebCore::VideoTrackPrivateWebM::VideoTrackPrivateWebM): (WebCore::VideoTrackPrivateWebM::updateConfiguration):
- platform/graphics/cocoa/VideoTrackPrivateWebM.h:
Source/WebKit:
Propagate changes to TrackConfigurations upwards from the GPU process -> WebContent process.
- GPUProcess/media/AudioTrackPrivateRemoteConfiguration.h: (WebKit::AudioTrackPrivateRemoteConfiguration::encode const): (WebKit::AudioTrackPrivateRemoteConfiguration::decode):
- GPUProcess/media/RemoteAudioTrackProxy.cpp: (WebKit::RemoteAudioTrackProxy::configuration): (WebKit::RemoteAudioTrackProxy::configurationChanged):
- GPUProcess/media/RemoteAudioTrackProxy.h:
- GPUProcess/media/RemoteVideoTrackProxy.cpp: (WebKit::RemoteVideoTrackProxy::configuration):
- GPUProcess/media/RemoteVideoTrackProxy.h:
- GPUProcess/media/TrackPrivateRemoteConfiguration.h: (WebKit::TrackPrivateRemoteConfiguration::encode const): (WebKit::TrackPrivateRemoteConfiguration::decode):
- GPUProcess/media/VideoTrackPrivateRemoteConfiguration.h: (WebKit::VideoTrackPrivateRemoteConfiguration::encode const): (WebKit::VideoTrackPrivateRemoteConfiguration::decode):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/AudioTrackPrivateRemote.cpp: (WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote): (WebKit::AudioTrackPrivateRemote::updateConfiguration):
- WebProcess/GPU/media/AudioTrackPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp: (WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack): (WebKit::MediaPlayerPrivateRemote::remoteAudioTrackConfigurationChanged): (WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack): (WebKit::MediaPlayerPrivateRemote::remoteVideoTrackConfigurationChanged):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
- WebProcess/GPU/media/VideoTrackPrivateRemote.cpp: (WebKit::VideoTrackPrivateRemote::VideoTrackPrivateRemote): (WebKit::VideoTrackPrivateRemote::updateConfiguration):
- WebProcess/GPU/media/VideoTrackPrivateRemote.h: (WebKit::VideoTrackPrivateRemote::create):
LayoutTests:
Now that these properties are dynamic, test them with
testExpectedEventually
.
- media/track/audio-track-configuration.html:
- media/track/video-track-alternate-groups-expected.txt:
- media/track/video-track-configuration.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287574 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:10 AM Changeset in webkit [287575] by
-
- 2 edits in trunk/Source/JavaScriptCore
WebAssembly i32.atomic.wait timeout value incorrectly interpreted by factor 1000
https://bugs.webkit.org/show_bug.cgi?id=234833
Reviewed by Michael Saboff.
Wasm atomics' timeout should be interpreted as nanoseconds.
- wasm/WasmOperations.cpp:
(JSC::Wasm::wait):
- 10:08 AM Changeset in webkit [287574] by
-
- 42 edits5 copies in trunk
[Cocoa] Hang in AVTrackPrivateAVFObjCImpl::bitrate()
https://bugs.webkit.org/show_bug.cgi?id=234753
Reviewed by Eric Carlson.
Source/WebCore:
In r286908, WebCore added new queries onto existing AVAssetTrack objects; however, querying
those properties will block if data for those properties is not yet available. The media element
could block moving to the HAVE_METADATA state until those properties are fully loaded, however
this might regress PLT, so instead, we will check the load state of those properties before returning
values.
However, to make the properties exposed through VideoTrackConfiguration.idl/AudioTrackConfiguration.idl
dynamic, changes need to be signaled and propagated upward through the layers between AVAssetTrack and
the DOM. Rather than make individual notifications for each property in a Configuration struct, make one
notification that handles any change to the Configuration struct at all and push that upward to clients.
Since these properties are being grouped together at a lower-level, they do not need to be tracked
individually, and Video/AudioTrackConfigurationInit can just be aliased to a platform-defined struct.
- html/track/AudioTrack.cpp:
(WebCore::AudioTrack::configurationChanged):
(WebCore::AudioTrack::updateConfigurationFromPrivate):
- html/track/AudioTrack.h:
- html/track/AudioTrackConfiguration.h:
(WebCore::AudioTrackConfiguration::setState):
(): Deleted.
- html/track/VideoTrack.cpp:
(WebCore::VideoTrack::configurationChanged):
(WebCore::VideoTrack::updateConfigurationFromPrivate):
- html/track/VideoTrack.h:
- html/track/VideoTrackConfiguration.h:
(WebCore::VideoTrackConfiguration::setState):
(WebCore::VideoTrackConfiguration::colorSpace const):
(WebCore::VideoTrackConfiguration::setColorSpace):
(WebCore::VideoTrackConfiguration::VideoTrackConfiguration):
(): Deleted.
- platform/graphics/AudioTrackPrivate.h:
(WebCore::AudioTrackPrivate::configuration const):
(WebCore::AudioTrackPrivate::setConfiguration):
(WebCore::AudioTrackPrivate::codec const): Deleted.
(WebCore::AudioTrackPrivate::setCodec): Deleted.
(WebCore::AudioTrackPrivate::sampleRate const): Deleted.
(WebCore::AudioTrackPrivate::setSampleRate): Deleted.
(WebCore::AudioTrackPrivate::numberOfChannels const): Deleted.
(WebCore::AudioTrackPrivate::setNumberOfChannels): Deleted.
(WebCore::AudioTrackPrivate::bitrate const): Deleted.
(WebCore::AudioTrackPrivate::setBitrate): Deleted.
- platform/graphics/AudioTrackPrivateClient.h:
- platform/graphics/PlatformVideoColorSpace.h:
(WebCore::operator==):
(WebCore::operator!=):
- platform/graphics/VideoTrackPrivate.h:
(WebCore::VideoTrackPrivate::configuration const):
(WebCore::VideoTrackPrivate::setConfiguration):
(WebCore::VideoTrackPrivate::codec const): Deleted.
(WebCore::VideoTrackPrivate::setCodec): Deleted.
(WebCore::VideoTrackPrivate::width const): Deleted.
(WebCore::VideoTrackPrivate::setWidth): Deleted.
(WebCore::VideoTrackPrivate::height const): Deleted.
(WebCore::VideoTrackPrivate::setHeight): Deleted.
(WebCore::VideoTrackPrivate::colorSpace const): Deleted.
(WebCore::VideoTrackPrivate::setColorSpace): Deleted.
(WebCore::VideoTrackPrivate::framerate const): Deleted.
(WebCore::VideoTrackPrivate::setFramerate): Deleted.
(WebCore::VideoTrackPrivate::bitrate const): Deleted.
(WebCore::VideoTrackPrivate::setBitrate): Deleted.
- platform/graphics/VideoTrackPrivateClient.h:
- platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
(WebCore::AVTrackPrivateAVFObjCImpl::setVideoTrackConfigurationObserver):
(WebCore::AVTrackPrivateAVFObjCImpl::setAudioTrackConfigurationObserver):
- platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
(WebCore::assetTrackConfigurationKeyNames):
(WebCore::AVTrackPrivateAVFObjCImpl::AVTrackPrivateAVFObjCImpl):
(WebCore::AVTrackPrivateAVFObjCImpl::initializeAssetTrack):
(WebCore::AVTrackPrivateAVFObjCImpl::videoTrackConfiguration const):
(WebCore::AVTrackPrivateAVFObjCImpl::audioTrackConfiguration const):
- platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
(WebCore::AudioTrackPrivateAVFObjC::AudioTrackPrivateAVFObjC):
(WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack):
(WebCore::AudioTrackPrivateAVFObjC::audioTrackConfigurationChanged):
- platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
(WebCore::VideoTrackPrivateAVFObjC::VideoTrackPrivateAVFObjC):
(WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack):
(WebCore::VideoTrackPrivateAVFObjC::videoTrackConfigurationChanged):
- platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.h:
- platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
(WebCore::VideoTrackPrivateMediaSourceAVFObjC::resetPropertiesFromTrack):
- platform/graphics/cocoa/VideoTrackPrivateWebM.cpp:
(WebCore::VideoTrackPrivateWebM::VideoTrackPrivateWebM):
(WebCore::VideoTrackPrivateWebM::updateConfiguration):
- platform/graphics/cocoa/VideoTrackPrivateWebM.h:
Source/WebKit:
Propagate changes to TrackConfigurations upwards from the GPU process -> WebContent process.
- GPUProcess/media/AudioTrackPrivateRemoteConfiguration.h:
(WebKit::AudioTrackPrivateRemoteConfiguration::encode const):
(WebKit::AudioTrackPrivateRemoteConfiguration::decode):
- GPUProcess/media/RemoteAudioTrackProxy.cpp:
(WebKit::RemoteAudioTrackProxy::configuration):
(WebKit::RemoteAudioTrackProxy::configurationChanged):
- GPUProcess/media/RemoteAudioTrackProxy.h:
- GPUProcess/media/RemoteVideoTrackProxy.cpp:
(WebKit::RemoteVideoTrackProxy::configuration):
- GPUProcess/media/RemoteVideoTrackProxy.h:
- GPUProcess/media/TrackPrivateRemoteConfiguration.h:
(WebKit::TrackPrivateRemoteConfiguration::encode const):
(WebKit::TrackPrivateRemoteConfiguration::decode):
- GPUProcess/media/VideoTrackPrivateRemoteConfiguration.h:
(WebKit::VideoTrackPrivateRemoteConfiguration::encode const):
(WebKit::VideoTrackPrivateRemoteConfiguration::decode):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/GPU/media/AudioTrackPrivateRemote.cpp:
(WebKit::AudioTrackPrivateRemote::AudioTrackPrivateRemote):
(WebKit::AudioTrackPrivateRemote::updateConfiguration):
- WebProcess/GPU/media/AudioTrackPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::addRemoteAudioTrack):
(WebKit::MediaPlayerPrivateRemote::remoteAudioTrackConfigurationChanged):
(WebKit::MediaPlayerPrivateRemote::addRemoteVideoTrack):
(WebKit::MediaPlayerPrivateRemote::remoteVideoTrackConfigurationChanged):
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/MediaPlayerPrivateRemote.messages.in:
- WebProcess/GPU/media/VideoTrackPrivateRemote.cpp:
(WebKit::VideoTrackPrivateRemote::VideoTrackPrivateRemote):
(WebKit::VideoTrackPrivateRemote::updateConfiguration):
- WebProcess/GPU/media/VideoTrackPrivateRemote.h:
(WebKit::VideoTrackPrivateRemote::create):
LayoutTests:
Now that these properties are dynamic, test them with
testExpectedEventually
.
- media/track/audio-track-configuration.html:
- media/track/video-track-alternate-groups-expected.txt:
- media/track/video-track-configuration.html:
- 10:05 AM Changeset in webkit [287573] by
-
- 2 edits in trunk/Tools
Re-enable URLSchemeHandler.Leaks1 API test
https://bugs.webkit.org/show_bug.cgi?id=234625
Reviewed by Darin Adler.
The test seems to not time out any more. I think it has been fixed without re-enabling the test.
- TestWebKitAPI/Tests/WebKitCocoa/WKURLSchemeHandler-leaks.mm:
(TEST):
- 9:35 AM Changeset in webkit [287572] by
-
- 2 edits in branches/safari-613.1.12.1-branch/Source/WebCore
Cherry-pick r287158. rdar://problem/86837893
Add an experimental VideoTrackConfiguration class and accessor on VideoTrack
https://bugs.webkit.org/show_bug.cgi?id=230841
<rdar://problem/83837876>
Reviewed by Eric Carlson.
Follow up patch to address post-review comments.
Darin pointed out that CFStringCompare() is likely more expensive than
CFEqual() as the former determines order as well as equality, and a
safeCFEqual() already exists. And while safeCFEqual() has different
behavior than the safeCFStringEquals() lambda when passed two null values,
in every case where safeCFStringEquals() is used, the first parameter has
already been nil-checked. So safeCFStringEquals() is unnecessary and
safeCFEqual() should be used instead.
- platform/graphics/avfoundation/FormatDescriptionUtilities.cpp: (WebCore::colorSpaceFromFormatDescription):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287158 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:35 AM Changeset in webkit [287571] by
-
- 2 edits in branches/safari-613.1.12.1-branch/Source/WebCore
Cherry-pick r286953. rdar://problem/86837893
Unreviewed build fix; add a convenience function to safely compare possibly null CFStringRefs.
- platform/graphics/avfoundation/FormatDescriptionUtilities.cpp: (WebCore::presentationSizeFromFormatDescription): (WebCore::colorSpaceFromFormatDescription):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286953 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:31 AM Changeset in webkit [287570] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.1
- 9:14 AM Changeset in webkit [287569] by
-
- 1 copy in branches/safari-613.1.12.1-branch
New branch.
- 8:11 AM Changeset in webkit [287568] by
-
- 7 edits in trunk
[Web Animations] changing the timing of a transition such that it's finished should no longer have it marked as running
https://bugs.webkit.org/show_bug.cgi?id=234823
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progression.
- web-platform-tests/css/css-transitions/CSSTransition-effect.tentative-expected.txt:
Source/WebCore:
Many factors could contribute to an animation entering its finished state. In case it's a transition,
we must remove it from the list of running transitions immediately, so we add a new virtual method when
the finished state is entered such that CSSTransition can implement this method and do the necessary
cleanup.
- animation/CSSTransition.cpp:
(WebCore::CSSTransition::animationDidFinish):
- animation/CSSTransition.h:
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::updateFinishedState):
- animation/WebAnimation.h:
(WebCore::WebAnimation::animationDidFinish):
- 7:52 AM Changeset in webkit [287567] by
-
- 5 edits1 add in trunk
Unreviewed, reverting r283546.
https://bugs.webkit.org/show_bug.cgi?id=234844
Causes bad scrolling behavior on Discourse pages
Reverted changeset:
"[css-position-sticky] scrollIntoView should not take into
account sticky positioning offsets"
https://bugs.webkit.org/show_bug.cgi?id=230689
https://commits.webkit.org/r283546
- 7:27 AM Changeset in webkit [287566] by
-
- 2 edits in trunk/Source/WebCore
[GTK][a11y] Take into account the active descendant when setting focus related states with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234751
Reviewed by Joanmarie Diggs.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::state const):
- 7:10 AM Changeset in webkit [287565] by
-
- 3 edits in trunk/Source/WebCore
[GTK][a11y] Ensure ATSPI wrappers are destroyed in the main thread
https://bugs.webkit.org/show_bug.cgi?id=234808
Reviewed by Joanmarie Diggs.
Sometimes they can be destroyed in the a11y thread, since we keep a reference when unregistering the objects.
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityRootAtspi.h:
- 7:09 AM Changeset in webkit [287564] by
-
- 2 edits in trunk/Source/WebCore
[GTK][a11y] Use invalid as role for detached objects in ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234835
Reviewed by Joanmarie Diggs.
We are using unknown by mistake.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::role const):
- 5:29 AM Changeset in webkit [287563] by
-
- 6 edits2 adds in trunk
[selectors] :focus-visible not matching on accessKey focus after focusing something via mouse
https://bugs.webkit.org/show_bug.cgi?id=234077
<rdar://problem/86572561>
Reviewed by Antti Koivisto.
Source/WebCore:
This patch adds Element::focusForBindings() to differentitate when this is called from JavaScript.
If that's the case it pass a new FocusTrigger::Bindings value to Element::focus(),
so we can differentiate when this was called from some internal code or from JavaScript.
When Element::focus() has been called internally, we always want to show the focus ring
(thus pass FocusVisibility::Visible). However when it's called from a script
we'll set it to Visible or Invisible depending on if the previously focused element
was focused via mouse click or not (this is needed to pass
the css/selectors/focus-visible-script-focus-* tests from WPT repository).
Test: fast/selectors/focus-visible-accesskey.html
- dom/Element.cpp:
(WebCore::Element::focus):
(WebCore::Element::focusForBindings):
- dom/Element.h:
(WebCore::Element::focusForBindings):
- dom/FocusOptions.h:
- html/HTMLOrForeignElement.idl:
LayoutTests:
Writing an internal test as WPT tests for this don't work due to webkit.org/b/234139.
- fast/selectors/focus-visible-accesskey-expected.txt: Added.
- fast/selectors/focus-visible-accesskey.html: Added.
- 5:05 AM Changeset in webkit [287562] by
-
- 2 edits in trunk/Source/bmalloc
[PAS] constant-logical-operand clang warnings
https://bugs.webkit.org/show_bug.cgi?id=234814
Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-04
Reviewed by Martin Robinson.
- libpas/src/libpas/pas_config_prefix.h: Use double exclamation marks in declarations to
force the compiler to interpret them as booleans and avoid constant-logical-operand
warnings.
Jan 3, 2022:
- 9:58 PM Changeset in webkit [287561] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, fix build failure
https://bugs.webkit.org/show_bug.cgi?id=232723
- runtime/ArrayPrototype.cpp:
(JSC::toLocaleString):
- 9:12 PM Changeset in webkit [287560] by
-
- 6 edits4 adds in trunk
Array.prototype.toLocaleString does not respect deletion of Object.prototype.toLocaleString
https://bugs.webkit.org/show_bug.cgi?id=232723
Reviewed by Alexey Shvayka.
JSTests:
- ChakraCore/test/Array/toLocaleString.baseline-jsc:
- stress/array-tolocalestring-delete-tolocalestring.js: Added.
(shouldThrow):
- stress/array-tolocalestring-empty-separator.js: Added.
(shouldBe):
- stress/array-tolocalestring-options.js: Added.
(shouldBe):
- stress/array-tolocalestring-undefined-null.js: Added.
(shouldBe):
(shouldBe.toLocaleString):
Source/JavaScriptCore:
This patch implements ECMA402 Array.prototype.toLocaleString[1]. The new implementation invokes "toLocaleString"
method for each elements.
[1]: https://tc39.es/ecma402/#sup-array.prototype.tolocalestring
- runtime/ArrayPrototype.cpp:
(JSC::toLocaleString):
(JSC::JSC_DEFINE_HOST_FUNCTION):
(JSC::slowJoin):
- 6:55 PM Changeset in webkit [287559] by
-
- 4 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening, remove pending test failures filed under webkit.org/b/208292
https://bugs.webkit.org/show_bug.cgi?id=208292
Removed from GTK test expectations:
imported/w3c/web-platform-tests/IndexedDB/fire-error-event-exception.html
imported/w3c/web-platform-tests/IndexedDB/fire-success-event-exception.html
Removed from WPE test expectations:
imported/w3c/web-platform-tests/IndexedDB/interleaved-cursors-small.html
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 5:36 PM Changeset in webkit [287558] by
-
- 3 edits2 adds in trunk
[LFC][IFC] Incorrect word-spacing gaps when logical order != visual order (bidi)
https://bugs.webkit.org/show_bug.cgi?id=234826
Reviewed by Antti Koivisto.
Source/WebCore:
Add missing condition from the (rtl) word-spacing patch, where we don't merge
adjacent text runs when word-spacing is not 0 and the run is a word-separator.
(we can't merge a whitespace run with a non-whitepace run and expect that the word-spacing
margin is always on the left side (visual reordering)).
Test: fast/text/simple-bidi-word-spacing.html
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::appendTextContent):
LayoutTests:
- fast/text/simple-bidi-word-spacing-expected.html: Added.
- fast/text/simple-bidi-word-spacing.html: Added.
- 5:06 PM Changeset in webkit [287557] by
-
- 5 edits3 adds in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=234832
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-03
- platform/glib/http/wpt/push-api/pushManager.any-expected.txt:
- platform/glib/http/wpt/push-api/pushManager.any.serviceworker-expected.txt:
- platform/glib/imported/w3c/web-platform-tests/css/css-cascade/idlharness-expected.txt: Added.
- platform/glib/imported/w3c/web-platform-tests/css/css-cascade/layer-rules-cssom-expected.txt: Added.
- platform/gtk/TestExpectations:
- platform/gtk/fast/repaint/focus-ring-repaint-expected.txt:
- platform/gtk/fast/text/bidi-reverse-runs-crash-expected.txt: Added. Platform-specific baseline for GTK due to lack of LFC integration support.
- 4:04 PM Changeset in webkit [287556] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Initialize sandbox before initializing WebKit process
https://bugs.webkit.org/show_bug.cgi?id=234827
Reviewed by Brent Fulgham.
The sandbox should be initialized as early as possible in WebKit processes.
- Shared/AuxiliaryProcess.cpp:
(WebKit::AuxiliaryProcess::initialize):
- 3:46 PM Changeset in webkit [287555] by
-
- 2 edits in trunk/Source/WebKit
[PlayStation] Build fix after r287552
https://bugs.webkit.org/show_bug.cgi?id=234828
Unreviewed build fix.
Needed WebCore prefixing on SRGBA.
- UIProcess/API/C/playstation/WKPagePrivatePlayStation.cpp:
- 1:49 PM Changeset in webkit [287554] by
-
- 6 edits in trunk
Unreviewed, reverting r287550.
https://bugs.webkit.org/show_bug.cgi?id=234829
Reverted changeset:
"[Web Animations] changing the effect of a transition should
no longer have it marked as running"
https://bugs.webkit.org/show_bug.cgi?id=234823
https://commits.webkit.org/r287550
- 1:47 PM Changeset in webkit [287553] by
-
- 2 edits in trunk/LayoutTests/imported/w3c
Unreviewed test gardening, this test progressed in the way it fails but the test expectation
wasn't updated.
- web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:
- 10:56 AM Changeset in webkit [287552] by
-
- 56 edits in trunk
Add resolved/unresolved color type accessors to require users to be explicit about whether they will handle missing/none color components
https://bugs.webkit.org/show_bug.cgi?id=234798
Reviewed by Antti Koivisto.
Source/WebCore:
In preparation for adding support for missing / powerless color components, this change changes the API
of color types (e.g. SRGBA<float>, OKLab<float>, etc) to require an extra step before users can access
the component values, forcing the user to choose whether they want to handle the missing / powerless color
components (the unresolved state) or have them converted to the value they should use for rendering (the
resolved state).
To do this, color types no longer expose their components publicly, but rather, only allow access to them
via new subclasses, ResolvedColorType<ColorType> and UnresolvedColorType<ColorType>. Theses subclasses
expose the components publicly via using directives.
To keep the API consistent (and keep generic contexts simpler), color types using both float and uint8_t
require the use of resolved() / unresolved() to access components, but for uint8_t, there is no actual
resolution that happens, as there is no way to encode the missing / powerless concept in them.
One tricky thing having a more complex hierarchy of color types is that generic functions parameterized
on the input color type can no longer assume the input and output types will be the same (for instance,
if you call colorWithOverriddenAlpha() with a ResolvedColorType<Lab<float>> it will not necessarily
return a ResolvedColorType<Lab<float>>) so a few generic functions have had their explicit return types
replaced with deduced (auto) return types to avoid this (additionally, a CanonicalColorType<> type trait
was added if one needs to be specific for something like template specialization purposes).
Since there is no way to add missing / powerless components yet, there is no actual behavior change, but
this lays the foundation for adding that in a follow up.
As this change was already touching most uses of the toSRGBALossy<> function on Color, I also took the
opportunity to replace all its uses with the generic toColorTypeLossy<SRGBA<>>.
- platform/graphics/ColorModels.h:
(WebCore::resolvedColor):
(WebCore::unresolvedColor):
(WebCore::resolveColorComponents):
(WebCore::ResolvedColorType::resolved const):
(WebCore::ResolvedColorType::unresolved const):
(WebCore::ResolvedColorType::ResolvedColorType):
(WebCore::ResolvedColorType::resolve):
(WebCore::UnresolvedColorType::unresolved const):
(WebCore::UnresolvedColorType::UnresolvedColorType):
(WebCore::asColorComponents):
(WebCore::get):
Adds ResolvedColorType and UnresolvedColorType generic types. They both inherit from
the helper type ExposedColorType which is specialized for each color model and does
the work of exposing the components via public 'using ColorType::componentName'. These
types also have overrides of the new resolved()/unresolved() member functions on color
types (well, only unresolved() for UnresolvedColorType) to allow generic code to not
care about whether it already has resolved or unresolved color type, and just use the
accessor it wants without worrying about duplicated resolution.
Since asColorComponents() can only be called with exposed color types, those functions
have been moved here from ColorTypes.h to make their relationship more clear. We also
reduced the number of these overloads as we now just have one per color model (we previously
had one per color type).
Also took the opportunity to merge ExtendedRGBModel and RGBModel into a single type
parameterized by an RGBBoundedness enum. This allowed fewer ExposedColorType specializations
and asColorComponents() overloads (and to remove some uses of UsesExtendedRGBModel<>).
One unfortunate side effect of the more complex type hierarchy is that we no longer get
destructuring for free, so to add that back, a generic get<> overload is added as well
as the required std::tuple_size/std::tuple_element specializations of ResolvedColorType
and UnresolvedColorType (the most derived class must be used for specializations, so
a single ExposedColorType specialization was not possible).
- platform/graphics/ColorTypes.h:
(WebCore::makeFromComponents):
(WebCore::makeFromComponentsClamping):
(WebCore::makeFromComponentsClampingExceptAlpha):
(WebCore::assertInRange):
(WebCore::ColorWithAlphaHelper::colorWithAlphaByte const):
(WebCore::operator==):
(WebCore::RGBAType::resolved const):
(WebCore::RGBAType::unresolved const):
(WebCore::Lab::resolved const):
(WebCore::Lab::unresolved const):
(WebCore::LCHA::resolved const):
(WebCore::LCHA::unresolved const):
(WebCore::OKLab::resolved const):
(WebCore::OKLab::unresolved const):
(WebCore::OKLCHA::resolved const):
(WebCore::OKLCHA::unresolved const):
(WebCore::HSLA::resolved const):
(WebCore::HSLA::unresolved const):
(WebCore::HWBA::resolved const):
(WebCore::HWBA::unresolved const):
(WebCore::XYZA::resolved const):
(WebCore::XYZA::unresolved const):
(WebCore::PackedColor::RGBA::RGBA):
(WebCore::PackedColor::ARGB::ARGB):
(WebCore::asColorComponents): Deleted.
Makes the component memebers of each color type protected, so that only
the ResolvedColorType and UnresolvedColorType derived types can access
and re-expose them. To access those, resolved() and unresolved() member
functions were added to make it easy, but explicit.
Also added a new type trait helper, CanonicalColorType<> which will return
the base/canonical name for a color type. For example:
CanonicalColorType<SRGBA<float>> == SRGBA<float>
CanonicalColorType<ResolvedColorType<SRGBA<float>>> == SRGBA<float>
CanonicalColorType<UnresolvedColorType<SRGBA<float>>> == SRGBA<float>
This makes it easier for generic code to not care whether it is paramterized used
the base/canonical type or one of the derived ones.
- platform/graphics/ColorSpace.h:
- platform/graphics/Color.cpp:
(WebCore::Color::lightened const):
(WebCore::Color::darkened const):
(WebCore::Color::lightness const):
(WebCore::Color::toResolvedColorComponentsInColorSpace const):
(WebCore::Color::colorSpaceAndResolvedColorComponents const):
(WebCore::Color::toColorComponentsInColorSpace const): Deleted.
(WebCore::Color::colorSpaceAndComponents const): Deleted.
- platform/graphics/Color.h:
(WebCore::Color::isOpaque const):
(WebCore::Color::isVisible const):
(WebCore::Color::alphaByte const):
(WebCore::Color::alphaAsFloat const):
(WebCore::Color::asInline const):
(WebCore::Color::toSRGBALossy const): Deleted.
Add resolution where needed, but keep the components unresolved for storage in
the OutOfLineComponents object. Also updates some names of functions that return
ColorComponents that they explicitly return resolved color components. If need
variants that return unresolved components, we can add them as necessary since
the storage remains unresolved.
- platform/graphics/ColorComponents.h:
Add operator/=(T) to make some code in PageColorSampler.cpp much simpler.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::colorValue const):
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::colorValue const):
Switch to toColorTypeLossy.
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::value):
- accessibility/atk/WebKitAccessibleInterfaceText.cpp:
(getAttributeSetForAccessibilityObject):
- accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::textAttributes const):
- accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
(-[WebAccessibilityObjectWrapper accessibilityColorStringValue]):
- css/DeprecatedCSSOMRGBColor.h:
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::mixColorComponentsUsingColorInterpolationMethod):
- editing/cocoa/DataDetection.mm:
(WebCore::DataDetection::detectContentInRange):
- platform/graphics/ColorBlending.cpp:
(WebCore::blendSourceOver):
(WebCore::blendWithWhite):
(WebCore::blend):
(WebCore::blendWithoutPremultiply):
- platform/graphics/ColorConversion.cpp:
(WebCore::convertToPolarForm):
(WebCore::convertToRectangularForm):
(WebCore::calculateHSLHue):
(WebCore::SRGBA<float>>::convert):
(WebCore::HSLA<float>>::convert):
(WebCore::HWBA<float>>::convert):
(WebCore::Lab<float>>::convert):
(WebCore::WhitePoint::D50>>::convert):
(WebCore::OKLab<float>>::convert):
(WebCore::WhitePoint::D65>>::convert):
(WebCore::convertAndResolveColorComponents):
(WebCore::convertColorComponents): Deleted.
- platform/graphics/ColorConversion.h:
(WebCore::ColorConversion::handleToFloatConversion):
(WebCore::ColorConversion::handleToByteConversion):
(WebCore::ColorConversion::toLinearEncoded):
(WebCore::ColorConversion::toGammaEncoded):
(WebCore::ColorConversion::toExtended):
(WebCore::ColorConversion::toBounded):
(WebCore::ColorConversion::handleMatrixConversion):
- platform/graphics/ColorInterpolation.h:
(WebCore::interpolateColorComponents):
- platform/graphics/ColorLuminance.h:
(WebCore::relativeLuminance):
- platform/graphics/ColorUtilities.cpp:
(WebCore::premultiplied):
(WebCore::unpremultiplied):
(WebCore::premultipliedFlooring):
(WebCore::premultipliedCeiling):
- platform/graphics/ColorSerialization.cpp:
(WebCore::serializationUsingColorFunction):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
- platform/graphics/ColorUtilities.h:
(WebCore::colorByModifingEachNonAlphaComponent):
(WebCore::colorWithOverriddenAlpha):
(WebCore::invertedColorWithOverriddenAlpha):
(WebCore::isBlack):
(WebCore::isWhite):
- platform/graphics/ca/cocoa/PlatformCAAnimationCocoa.mm:
(WebCore::PlatformCAAnimationCocoa::setFromValue):
(WebCore::PlatformCAAnimationCocoa::setToValue):
(WebCore::PlatformCAAnimationCocoa::setValues):
- platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
(PlatformCAAnimationWin::setFromValue):
(PlatformCAAnimationWin::setToValue):
(PlatformCAAnimationWin::setValues):
- platform/graphics/cairo/CairoUtilities.cpp:
(WebCore::setSourceRGBAFromColor):
- platform/graphics/cairo/GradientCairo.cpp:
(WebCore::addColorStopRGBA):
(WebCore::setCornerColorRGBA):
- platform/graphics/cg/ColorCG.cpp:
(WebCore::convertToCGCompatibleComponents):
(WebCore::createCGColor):
- platform/graphics/cg/GradientRendererCG.cpp:
(WebCore::GradientRendererCG::makeGradient const):
(WebCore::GradientRendererCG::Shading::shadingFunction):
(WebCore::GradientRendererCG::makeShading const):
- platform/graphics/cpu/arm/filters/FELightingNEON.h:
(WebCore::FELighting::platformApplyNeon):
- platform/graphics/filters/FilterOperation.cpp:
(WebCore::BasicColorMatrixFilterOperation::transformColor const):
(WebCore::BasicComponentTransferFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::transformColor const):
(WebCore::InvertLightnessFilterOperation::inverseTransformColor const):
- platform/graphics/filters/FilterOperations.cpp:
(WebCore::FilterOperations::transformColor const):
(WebCore::FilterOperations::inverseTransformColor const):
- platform/graphics/filters/software/FELightingSoftwareApplier.cpp:
(WebCore::FELightingSoftwareApplier::applyPlatform):
- platform/graphics/filters/software/FEMorphologySoftwareApplier.h:
(WebCore::FEMorphologySoftwareApplier::makeColorComponentsfromPixelValue):
- platform/graphics/gtk/ColorGtk.cpp:
(WebCore::Color::operator GdkRGBA const):
- platform/graphics/texmap/TextureMapperGL.cpp:
(WebCore::TextureMapperGL::drawBorder):
(WebCore::TextureMapperGL::drawNumber):
(WebCore::prepareFilterProgram):
(WebCore::TextureMapperGL::drawSolidColor):
(WebCore::TextureMapperGL::clearColor):
- platform/graphics/win/ColorDirect2D.cpp:
(WebCore::Color::operator D2D1_COLOR_F const):
(WebCore::Color::operator D2D1_VECTOR_4F const):
- platform/graphics/win/GradientDirect2D.cpp:
(WebCore::Gradient::createBrush):
- platform/graphics/win/GraphicsContextDirect2D.cpp:
(WebCore::GraphicsContextDirect2D::colorWithGlobalAlpha const):
- rendering/RenderTheme.cpp:
(WebCore::RenderTheme::datePlaceholderTextColor const):
- rendering/RenderThemeIOS.mm:
(WebCore::shouldUseConvexGradient):
- svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
(WebCore::SVGAnimationColorFunction::animate):
Add calls to resolved() to access components. Some of these (particularlly in serialization, conversion and
interpolation related calls) will need to be converted to use unresolved() eventually, but first they will
need to handle the NaN case properly.
- page/PageColorSampler.cpp:
(WebCore::colorDifference):
(WebCore::averageColor):
(WebCore::PageColorSampler::sampleTop):
Rework code a bit to use modern WebKit idioms (std::array, Span, ColorComponents).
Source/WebKit:
Replace uses of Color::toSRGBALossy<>() with Color::toColorTypeLossy<SRGBA<>>() and add
calls to resolved() to access color components.
- UIProcess/API/C/playstation/WKPagePrivatePlayStation.cpp:
(drawPageBackground):
- UIProcess/API/wpe/WebKitColor.cpp:
(webkitColorFillFromWebCoreColor):
- UIProcess/gtk/ViewGestureControllerGtk.cpp:
(WebKit::ViewGestureController::beginSwipeGesture):
- WebProcess/WebPage/RemoteLayerTree/PlatformCAAnimationRemote.mm:
(WebKit::animationValueFromKeyframeValue):
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::getDocumentBackgroundColor):
Tools:
- TestWebKitAPI/Tests/WebCore/ColorTests.cpp:
(TestWebKitAPI::TEST):
Replace uses of Color::toSRGBALossy<>() with Color::toColorTypeLossy<SRGBA<>>() and add
calls to resolved() to access color components. Also update to new name of colorSpaceAndComponents(),
colorSpaceAndResolvedColorComponents().
- TestWebKitAPI/Tests/WebCore/cocoa/TestGraphicsContextGLCocoa.mm:
(TestWebKitAPI::changeContextContents):
Replace unnecessary use of colorSpaceAndComponents() with the more common toColorTypeLossy<WebCore::SRGBA<float>>().resolved().
- 10:49 AM Changeset in webkit [287551] by
-
- 10 edits2 moves in trunk
[:has() pseudo-class] Style invalidation for :valid and :invalid
https://bugs.webkit.org/show_bug.cgi?id=234815
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/has-with-pseudo-class-expected.txt: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-pseudo-class-expected.txt.
- web-platform-tests/css/selectors/invalidation/has-with-pseudo-class.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/selectors/invalidation/has-pseudo-class.html.
Source/WebCore:
Use PseudoClassChangeInvalidation for accurate and :has() supporting style invalidation.
Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-with-pseudo-class.html
- html/FormAssociatedElement.cpp:
(WebCore::FormAssociatedElement::computeValidity const):
(WebCore::FormAssociatedElement::isValid const): Deleted.
- html/FormAssociatedElement.h:
- html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::addInvalidDescendant):
(WebCore::HTMLFieldSetElement::removeInvalidDescendant):
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::updateWillValidateAndValidity):
(WebCore::HTMLFormControlElement::isValidFormControlElement const):
(WebCore::HTMLFormControlElement::updateValidity):
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::registerInvalidAssociatedFormControl):
(WebCore::HTMLFormElement::removeInvalidAssociatedFormControlIfNeeded):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::computeValidity const):
(WebCore::HTMLInputElement::isValid const): Deleted.
- html/HTMLInputElement.h:
- html/ValidityState.idl:
- 10:49 AM Changeset in webkit [287550] by
-
- 6 edits in trunk
[Web Animations] changing the effect of a transition should no longer have it marked as running
https://bugs.webkit.org/show_bug.cgi?id=234823
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progression.
- web-platform-tests/css/css-transitions/CSSTransition-effect.tentative-expected.txt:
Source/WebCore:
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::setEffect):
- animation/DeclarativeAnimation.h:
- animation/WebAnimation.h:
- 10:45 AM Changeset in webkit [287549] by
-
- 8 edits in trunk
[Web Animations] calling setKeyframes() on a running CSS Transition has no immediate effect
https://bugs.webkit.org/show_bug.cgi?id=234818
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-animations/animation-base-response-004-expected.txt:
- web-platform-tests/css/css-cascade/revert-val-010-expected.txt:
- web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:
- web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-context-filling-expected.txt:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/setKeyframes-expected.txt:
Source/WebCore:
We must mark the target as dirty if setKeyframes() is called.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::processKeyframes):
- 10:40 AM Changeset in webkit [287548] by
-
- 6 edits in trunk
[Web Animations] reversing factor should be computed before canceling the previous transition
https://bugs.webkit.org/show_bug.cgi?id=234821
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-transitions/CSSTransition-currentTime.tentative-expected.txt:
- web-platform-tests/css/css-transitions/CSSTransition-effect.tentative-expected.txt:
- web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:
Source/WebCore:
We would always compute the transition reversing factor to 1.0 since we would cancel the
previously-running transition prior to getting its computed progress.
- style/Styleable.cpp:
(WebCore::updateCSSTransitionsForStyleableAndProperty):
- 10:27 AM Changeset in webkit [287547] by
-
- 4 edits in trunk
Undownloaded iCloud Photos are inserted as broken images when attachment element is enabled
https://bugs.webkit.org/show_bug.cgi?id=234803
rdar://82318259
Reviewed by Darin Adler.
Source/WebCore:
Currently, when inserting file paths via paste or drop that correspond to undownloaded files in iCloud Drive,
we show a generic empty file as the file preview, with "Zero Bytes" as the attachment subtitle when the
attachment element is enabled (i.e., Mail compose when using WebKit2). Even worse, for undownloaded image files,
we'll attempt to insert them as broken images.
Mail handles this scenario by detecting that we've dropped an undownloaded attachment, downloads the attachment,
and eventually updates the attachment element with the downloaded data. In the meantime, however, it's not ideal
for WebKit to represent the attachment that is still being downloaded as a broken image or empty file.
To address this, make a slight adjustment to detect that the file we're inserting is not locally available and
render it as an attachment element with progress="0". The client is then expected to update this progress as the
download is taking place, and update the attachment data once it's complete.
Test: WKAttachmentTestsMac.InsertNonExistentImageFileAsAttachment
- editing/cocoa/WebContentReaderCocoa.mm:
(WebCore::attachmentForFilePath):
Tools:
Add a new API test to exercise the change. See WebCore/ChangeLog for more information.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(nonexistentFilePath):
(TestWebKitAPI::TEST):
- 9:46 AM Changeset in webkit [287546] by
-
- 4 edits1 add in trunk
[JSC] Fix Intl.PluralRules.selectRange input validation
https://bugs.webkit.org/show_bug.cgi?id=234817
Reviewed by Alexey Shvayka.
JSTests:
- stress/intl-pluralrules-select-range-validate-inputs.js: Added.
(shouldThrow):
(Intl.PluralRules.prototype.selectRange.shouldThrow):
Source/JavaScriptCore:
Add specified argument validation[1] to Intl.PluralRules.selectRange.
[1]: https://tc39.es/proposal-intl-numberformat-v3/out/pluralrules/proposed.html#sec-intl.pluralrules.prototype.selectrange
- runtime/IntlPluralRules.cpp:
(JSC::IntlPluralRules::selectRange const):
- runtime/IntlPluralRulesPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 9:00 AM Changeset in webkit [287545] by
-
- 15 edits in trunk
[JSC] Update UCD to Unicode 14.0.0
https://bugs.webkit.org/show_bug.cgi?id=234811
Reviewed by Sam Weinig.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
This is yearly update of UCD data.
- ucd/CaseFolding.txt:
- ucd/DerivedBinaryProperties.txt:
- ucd/DerivedCoreProperties.txt:
- ucd/DerivedNormalizationProps.txt:
- ucd/PropList.txt:
- ucd/PropertyAliases.txt:
- ucd/PropertyValueAliases.txt:
- ucd/ScriptExtensions.txt:
- ucd/Scripts.txt:
- ucd/UnicodeData.txt:
- ucd/emoji-data.txt:
- yarr/generateYarrUnicodePropertyTables.py:
- 8:50 AM Changeset in webkit [287544] by
-
- 4 edits2 adds in trunk
[JSC] Read-modify-write operation's second put-to-scope should not throw error if binding does not exist
https://bugs.webkit.org/show_bug.cgi?id=234813
Reviewed by Alexey Shvayka.
JSTests:
- stress/global-object-read-modify-write-remove-at-get-strict.js: Added.
(shouldThrow):
- stress/global-object-read-modify-write-remove-at-get.js: Added.
(shouldBe):
- test262/expectations.yaml:
Source/JavaScriptCore:
This patch fixes a bug throwing RefereceError when read-modify-write's read operation removes binding from object.
Throwing error should happen only when evaluating it under strict mode.
- bytecompiler/NodesCodegen.cpp:
(JSC::PostfixNode::emitResolve):
(JSC::PrefixNode::emitResolve):
(JSC::ReadModifyResolveNode::emitBytecode):
(JSC::ShortCircuitReadModifyResolveNode::emitBytecode):
- 8:31 AM Changeset in webkit [287543] by
-
- 7 edits in trunk
[JSC] Fix length of Intl.NumberFormat.formatRange and Intl.PluralRules.selectRange
https://bugs.webkit.org/show_bug.cgi?id=234806
Reviewed by Alexey Shvayka.
JSTests:
- stress/intl-numberformat-format-range-v3.js:
(nf.formatRange.nf.formatRangeToParts.methods.forEach):
- stress/intl-pluralrules-selectrange.js:
Source/JavaScriptCore:
These length's numbers are wrong. This patch fixes them.
- runtime/IntlNumberFormatPrototype.cpp:
(JSC::IntlNumberFormatPrototype::finishCreation):
- runtime/IntlPluralRulesPrototype.cpp:
(JSC::IntlPluralRulesPrototype::finishCreation):
- 8:26 AM Changeset in webkit [287542] by
-
- 3 edits in trunk/LayoutTests
Clean up TestExpectations for imported WPT CSS transforms tests
https://bugs.webkit.org/show_bug.cgi?id=234820
Unreviewed.
- TestExpectations:
- platform/glib/TestExpectations:
- 7:46 AM Changeset in webkit [287541] by
-
- 380 edits3 copies5 moves314 adds29 deletes in trunk/JSTests
[JSC] Update test262
https://bugs.webkit.org/show_bug.cgi?id=234807
Reviewed by Alexey Shvayka.
- test262/config.yaml:
- test262/expectations.yaml:
- test262/test262-Revision.txt:
- 7:43 AM Changeset in webkit [287540] by
-
- 6 edits in trunk/Source/WebCore
PseudoClassChangeInvalidation should allow multiple pseudo classes as argument
https://bugs.webkit.org/show_bug.cgi?id=234810
Reviewed by Alan Bujtas.
It is common to invalidate multiple pseudo-classes together (say :disabled and :enabled).
- dom/Element.cpp:
(WebCore::Element::setFocus):
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::setAncestorDisabled):
(WebCore::HTMLFormControlElement::parseAttribute):
- html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::parseAttribute):
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute):
- style/PseudoClassChangeInvalidation.h:
(WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):
- 6:54 AM Changeset in webkit [287539] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Take grapheme clusters into account at TextUtil::breakWord
https://bugs.webkit.org/show_bug.cgi?id=234805
Reviewed by Antti Koivisto.
userPerceivedCharacterBoundaryAlignedIndex -> ubrk_preceding
nextUserPerceivedCharacterIndex -> ubrk_following
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::breakWord): This average character estimation does not work well with character clusters.
- 6:01 AM Changeset in webkit [287538] by
-
- 5 edits2 adds in trunk/Source/WebCore
[LBSE] Begin layer-aware RenderSVGModelObject implementation
https://bugs.webkit.org/show_bug.cgi?id=234524
Reviewed by Rob Buis.
Begin implementing RenderSVGModelObject - the base class for most graphics
primitives in SVG (path / rect / circle / image / ...) for the LBSE.
In the legacy engine, RenderSVGImage / RenderSVGShape / RenderSVGContainer inherit
from LegacyRenderSVGModelObject, which in turn inherits from RenderElement. The SVG
<text> / <foreignObject> renderers inherit from their existing "HTML counterparts"
e.g. RenderSVGBlock from RenderBlockFlow, or RenderSVGInline from RenderInline.
This has historical reasons: When SVG text rendering was prototyped in WebCore, a goal was to
re-use the existing HTML/CSS text rendering code whenever possible. Therefore the SVG text
renderers were modelled in the terminology of HTML/CSS: A natural choice is to treat a SVG
<text> element as a CSS "block-level element" and <tspan> / <textPath> / <tref> / ...
elements as CSS "inline elements". These design choices from almost two decades ago, are
the reason for the unnecessary confusing SVG inheritance structure. Furthermore we explicitly
disable layer support in all SVG classes that indirectly inherit from RenderLayerModelObject.
However for LBSE we do want SVG to participate in the layer tree.
Therefore let RenderSVGModelObject inherit from RenderLayerModelObject. This turns
RenderLayerModelObject into the common base-class for all SVG renderers in LBSE.
The price for the layer support is that all SVG renderers need to be able to answer questions
in HTML/CSS language (what's your 'border box rect'? do you have visual overflow? etc.).
Finding consistent definitions/mappings was a tedious job, that is fully solved in LBSE and
will be upstreamed in pieces. This patch is one main piece of the work.
If we forget about the legacy engine, the inheritance structure now looks like the following:
+ RenderObject
+ RenderElement
| + RenderLayerModelObject
| + RenderBoxModelObject
| | + RenderBox
| | | + RenderReplaced (CSS "replaced" elements)
| | | | + RenderSVGRoot (outermost <svg> element)
| | | |
| | | + RenderBlock (CSS "block-level" elements)
| | | + RenderBlockFlow
| | | + RenderSVGBlock (HTML/SVG glue code)
| | | + RenderSVGForeignObject (<foreignObject> element)
| | | + RenderSVGText (<text> element)
| | |
| | + RenderInline (CSS "inline" elements)
| | + RenderSVGInline (HTML/SVG glue code)
| | + RenderSVGTSpan (<tspan> element)
| | + RenderSVGTextPath (<textPath> element)
| |
| + RenderSVGModelObject
| + RenderSVGContainer
| | + RenderSVGHiddenContainer (<defs> / <g> with 'display: none' / <symbol> elements)
| | | + RenderSVGResourceContainer
| | | + RenderSVGResourceClipper (<clipPath> element)
| | | + RenderSVGResourceFilter (<filter> element)
| | | + RenderSVGResourceFilterPrimitive
| | | + RenderSVGResourceGradient
| | | | + RenderSVGResourceLinearGradient (<linearGradient> element)
| | | | + RenderSVGResourceRadialGradient (<radialGradient> element)
| | | |
| | | + RenderSVGResourceMarker (<marker> element)
| | | + RenderSVGResourceMasker (<masker> element)
| | | + RenderSVGResourcePattern (<pattern> element)
| | | + RenderSVGResourceSolidColor
| | |
| | + RenderSVGTransformableContainer (<a> / <g> / <switch> / <use> elements)
| |
| + RenderSVGImage (<image> element)
| + RenderSVGShape (<rect> / <circle> / <path> ... elements)
| + RenderSVGEllipse
| + RenderSVGPath
| + RenderSVGRect
|
+ RenderText (#text nodes in HTML)
+ RenderSVGInlineText (#text nodes in SVG)
This is way less confusing then the previous version of the SVG render tree.
Covered by existing tests, no change in behaviour.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderLayerModelObject.cpp:
(WebCore::RenderLayerModelObject::computeVisibleRectInSVGContainer const):
(WebCore::RenderLayerModelObject::mapLocalToSVGContainer const):
- rendering/RenderLayerModelObject.h:
- rendering/svg/RenderSVGModelObject.cpp: Added.
(WebCore::RenderSVGModelObject::RenderSVGModelObject):
(WebCore::RenderSVGModelObject::updateFromStyle):
(WebCore::RenderSVGModelObject::borderBoxRectInFragmentEquivalent const):
(WebCore::RenderSVGModelObject::overflowClipRect const):
(WebCore::RenderSVGModelObject::clippedOverflowRect const):
(WebCore::RenderSVGModelObject::computeVisibleRectInContainer const):
(WebCore::RenderSVGModelObject::pushMappingToContainer const):
(WebCore::RenderSVGModelObject::outlineBoundsForRepaint const):
(WebCore::RenderSVGModelObject::absoluteRects const):
(WebCore::RenderSVGModelObject::absoluteQuads const):
(WebCore::RenderSVGModelObject::willBeDestroyed):
(WebCore::RenderSVGModelObject::styleDidChange):
(WebCore::RenderSVGModelObject::mapAbsoluteToLocalPoint const):
(WebCore::RenderSVGModelObject::mapLocalToContainer const):
(WebCore::RenderSVGModelObject::offsetFromContainer const):
(WebCore::RenderSVGModelObject::addFocusRingRects):
(WebCore::RenderSVGModelObject::shouldPaintSVGRenderer const):
(WebCore::intersectsAllowingEmpty):
(WebCore::isGraphicsElement):
(WebCore::RenderSVGModelObject::checkIntersection):
(WebCore::RenderSVGModelObject::checkEnclosure):
(WebCore::RenderSVGModelObject::applyTransform const):
- rendering/svg/RenderSVGModelObject.h: Added.
(WebCore::RenderSVGModelObject::element const):
(WebCore::RenderSVGModelObject::borderBoxRectEquivalent const):
(WebCore::RenderSVGModelObject::contentBoxRectEquivalent const):
(WebCore::RenderSVGModelObject::frameRectEquivalent const):
(WebCore::RenderSVGModelObject::visualOverflowRectEquivalent const):
(WebCore::RenderSVGModelObject::applyTopLeftLocationOffsetEquivalent const):
(WebCore::RenderSVGModelObject::layoutRect const):
(WebCore::RenderSVGModelObject::setLayoutRect):
(WebCore::RenderSVGModelObject::setLayoutLocation):
(WebCore::RenderSVGModelObject::paintingLocation const):
(WebCore::RenderSVGModelObject::layoutLocation const):
(WebCore::RenderSVGModelObject::layoutLocationOffset const):
(WebCore::RenderSVGModelObject::layoutSize const):
(WebCore::RenderSVGModelObject::overflowClipRectForChildLayers):
- 5:51 AM Changeset in webkit [287537] by
-
- 4 edits in trunk/Source/WebCore
Refactor code creating css values and lists for animation and transition properties
https://bugs.webkit.org/show_bug.cgi?id=234812
Reviewed by Antti Koivisto.
For bug 234792 we exposed a series of static functions on ComputedStyleExtractor to share
code between CSSPropertyParser.cpp and CSSComputedStyleDeclaration.cpp for the creation of
CSS values for CSS Animations properties. Darin suggested some refactoring as part of the
review of that bug which was even more appropriate following the fix for bug 234785.
We now expose a single ComputedStyleExtractor::addCSSValueForAnimationPropertyToList()
static method to add the CSSValue for a given animation or transition CSS property to
a CSS list, providing an optional Animation to read the value from that, otherwise
using the default value.
This allowed initially for shorter code in CSSPropertyParser::consumeAnimationShorthand()
and animationShorthandValue(). Looking at ComputedStyleExtractor::valueForPropertyInStyle(),
there were more opportunities to share code and so valueListForAnimationOrTransitionProperty()
was added as well.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForAnimationDuration):
(WebCore::valueForAnimationDelay):
(WebCore::valueForAnimationIterationCount):
(WebCore::valueForAnimationDirection):
(WebCore::valueForAnimationFillMode):
(WebCore::valueForAnimationPlayState):
(WebCore::valueForAnimationName):
(WebCore::valueForAnimationTimingFunction):
(WebCore::ComputedStyleExtractor::addCSSValueForAnimationPropertyToList):
(WebCore::valueListForAnimationOrTransitionProperty):
(WebCore::animationShorthandValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::ComputedStyleExtractor::valueForAnimationDuration): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationDelay): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationIterationCount): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationDirection): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationFillMode): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationPlayState): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationName): Deleted.
(WebCore::delayValue): Deleted.
(WebCore::durationValue): Deleted.
(WebCore::ComputedStyleExtractor::valueForAnimationTimingFunction): Deleted.
(WebCore::timingFunctionValue): Deleted.
- css/CSSComputedStyleDeclaration.h:
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumeAnimationShorthand):
- 4:49 AM Changeset in webkit [287536] by
-
- 3 edits in trunk/Tools
A manual test was imported with the WPT css-transforms test suite
https://bugs.webkit.org/show_bug.cgi?id=234245
Reviewed by Youenn Fablet.
- Scripts/webkitpy/w3c/test_parser.py:
(TestParser.analyze_test): Manual tests may also be reference tests and these
should not be imported.
- Scripts/webkitpy/w3c/test_parser_unittest.py:
(test_analyze_manual_reference_wpt_test): Add a test for this situation.
- 3:55 AM Changeset in webkit [287535] by
-
- 6 edits in trunk
Support the "animation" shorthand property in the computed style
https://bugs.webkit.org/show_bug.cgi?id=234785
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-animations/computed-style-animation-parsing-expected.txt:
- web-platform-tests/css/css-animations/parsing/animation-computed-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
Source/WebCore:
There is an existing WPT for the "animation" shorthand in the computed style which we
used to fail because we would simply not do any work to return the longhands compiled
into a list. It seems that the CSS WG, per https://github.com/w3c/csswg-drafts/issues/2529,
is moving in the direction of specifying what happens with shorthands in computed style,
so we're adding support for the "animation" shorthand.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::animationShorthandValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- 2:00 AM Changeset in webkit [287534] by
-
- 11 edits in trunk
"animation" shorthand should list all longhand values when serializing
https://bugs.webkit.org/show_bug.cgi?id=234792
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Mark 20 new WPT progressions.
- web-platform-tests/css/css-animations/parsing/animation-shorthand-expected.txt:
- web-platform-tests/css/css-animations/parsing/animation-valid-expected.txt:
- web-platform-tests/css/css-animations/style-animation-parsing-expected.txt:
Source/WebCore:
Currently we omit any initial value when serializing the "animation" shorthand. However,
the CSS Animations spec says:
Note that order is also important within each animation definition for distinguishing
<keyframes-name> values from other keywords. When parsing, keywords that are valid for
properties other than animation-name whose values were not found earlier in the shorthand
must be accepted for those properties rather than for animation-name. Furthermore, when
serializing, default values of other properties must be output in at least the cases
necessary to distinguish an animation-name that could be a value of another property,
and may be output in additional cases.
Both Firefox and Chrome always include all longhand values when querying the inline style,
such that <div style="animation: none"> yields "0s ease 0s 1 normal none running none" for
element.style.animation. Currently, Safari only outputs "none".
When parsing the "animation" shorthand in consumeAnimationShorthand(), we now fill in initial
values as if they were explicitly set to their initial value, for instance duration is set to
"0s".
To do this, we refactored code in CSSComputedStyleDeclaration.cpp that dealt with the creation
of CSSValue from various values exposed on Animation such that it may be called from within
CSSPropertyParser.cpp.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForAnimationDuration):
(WebCore::ComputedStyleExtractor::valueForAnimationDelay):
(WebCore::ComputedStyleExtractor::valueForAnimationIterationCount):
(WebCore::ComputedStyleExtractor::valueForAnimationDirection):
(WebCore::ComputedStyleExtractor::valueForAnimationFillMode):
(WebCore::ComputedStyleExtractor::valueForAnimationPlayState):
(WebCore::ComputedStyleExtractor::valueForAnimationName):
(WebCore::delayValue):
(WebCore::durationValue):
(WebCore::ComputedStyleExtractor::valueForAnimationTimingFunction):
(WebCore::timingFunctionValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
(WebCore::createTimingFunctionValue): Deleted.
- css/CSSComputedStyleDeclaration.h:
- css/parser/CSSPropertyParser.cpp:
(WebCore::CSSPropertyParser::consumeAnimationShorthand):
LayoutTests:
Add the initial longhand values for some non-WPT tests that expected them to be
absent in the shorthand serialization.
- fast/css/longhand-overrides-shorthand-prefixing.html:
- fast/css/transform-inline-style-remove-expected.txt:
- 1:21 AM Changeset in webkit [287533] by
-
- 5 edits in trunk/Source/WebCore
AX: web process crash with isolated tree mode enabled
https://bugs.webkit.org/show_bug.cgi?id=234739
<rdar://problem/86983058>
Reviewed by Chris Fleizach.
It can happen that a new node being added is removed by AXIsolatedObject constructor when initializing
ComputedLabel property, because AccessibilityObject::computedLabel() calls updateBackingStore() that can trigger
a layout. We don't really need ComputedLabel property for isolated objects because AccessibilityObject::computedLabel()
is only used by the inspector that uses AccessibilityObject directly.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData): Remove ComputedLabel property initialization.
(WebCore::AXIsolatedObject::computedLabel): Assert if called.
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::createSubtree): Add an assert to ensure the wrapper is still valid after AXIsolatedObject::create().
- accessibility/isolatedtree/AXIsolatedTree.h:
- 12:17 AM Changeset in webkit [287532] by
-
- 19 edits1 add in trunk
FetchRequest.clone does not need to be called with the current context
https://bugs.webkit.org/show_bug.cgi?id=234515
Reviewed by Darin Adler.
Source/WebCore:
Make FetchRequest, FetchResponse and FetchBodyOwner take a ScriptExecutionContext* instead of a ScriptExecutionContext&.
This allows cloning FetchRequest and FetchResponse with the context of the original request or response.
Update call site, as well as for AbortSignal.
For FetchResponse, we did a change to throw in case of cloning FetchResponse on a stopped context.
It appeared that Firefox is not doing that, and Chrome is only doing that in some specific cases.
For that reason, it is better to go back to our previous behavior of not throwing.
To ease testing, we add an internals API to check whether a request/response is linked to a closed context.
Covered by updated tests.
- Modules/cache/DOMCache.cpp:
- Modules/fetch/FetchBodyOwner.cpp:
- Modules/fetch/FetchBodyOwner.h:
- Modules/fetch/FetchRequest.cpp:
- Modules/fetch/FetchRequest.h:
- Modules/fetch/FetchRequest.idl:
- Modules/fetch/FetchResponse.cpp:
- Modules/fetch/FetchResponse.h:
- dom/AbortController.cpp:
- dom/AbortSignal.cpp:
- dom/AbortSignal.h:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
- testing/ServiceWorkerInternals.cpp:
LayoutTests:
- http/wpt/fetch/clone-realm-expected.txt:
- http/wpt/fetch/clone-realm.html:
- http/wpt/fetch/resources/clone-realm-iframe.html: Added.
Jan 2, 2022:
- 11:39 PM Changeset in webkit [287531] by
-
- 7 edits1 add in trunk
[JSC] Use emitPutProperty / emitGetPropertyValue consistently to handle private names in edge cases
https://bugs.webkit.org/show_bug.cgi?id=234794
Reviewed by Alexey Shvayka.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
This patch consistently uses emitPutProperty / emitGetPropertyValue so that we handle private names
in edge cases.
- bytecompiler/NodesCodegen.cpp:
(JSC::TaggedTemplateNode::emitBytecode):
(JSC::ForInNode::emitLoopHeader):
(JSC::ForOfNode::emitBytecode):
(JSC::AssignmentElementNode::bindValue const):
- 10:30 PM Changeset in webkit [287530] by
-
- 3 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening, update baseline for imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window.html
https://bugs.webkit.org/show_bug.cgi?id=207258
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/html/infrastructure/safe-passing-of-structured-data/transfer-errors.window-expected.txt:
- 9:52 PM Changeset in webkit [287529] by
-
- 12 edits2 adds in trunk
Access key should work on focusable element.
https://bugs.webkit.org/show_bug.cgi?id=72359
Reviewed by Darin Adler.
Source/WebCore:
Elements that have "accesskey" attribute and are focusable should be focused when you use the access key,
this is happening for some elements but not all.
To fix the issue this patch moves accessKeyAction() implementation from some subclasses to HTMLElement,
which makes us match other browsers.
This patch changes the behavior for HTMLAnchorElement, as it was not focused before, but that matches other browsers too.
Test: fast/dom/accesskey-focus-element.html
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::accessKeyAction): Deleted.
- html/HTMLAnchorElement.h:
- html/HTMLButtonElement.cpp:
(WebCore::HTMLButtonElement::accessKeyAction): Deleted.
- html/HTMLButtonElement.h:
- html/HTMLElement.cpp:
(WebCore::HTMLElement::accessKeyAction):
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::accessKeyAction): Deleted.
- html/HTMLSelectElement.h:
LayoutTests:
Add new test to check the behavior of accesskey on focusable and not focusable DIV, together with other elements
like INPUT, SELECT and A.
Update expectations for fast/forms/access-key.html test, as now more elements are focused than before.
Apart from that we had to modify accessibility/mac/search-predicate-visited-links.html as that was pressing a link
and the link is now focused.
This will make us also pass css/selectors/focus-visible-024.html from WPT, but that test cannot run properly on WebKit
due to webkit.org/b/234139.
- accessibility/mac/search-predicate-visited-links.html: Update test due to change of behavior.
- fast/dom/accesskey-focus-element-expected.txt: Added.
- fast/dom/accesskey-focus-element.html: Added.
- fast/forms/access-key-expected.txt: Update expectations.
- platform/ios/TestExpectations: Skip new accesskey test.
- 9:40 PM Changeset in webkit [287528] by
-
- 2 edits2 adds in trunk/LayoutTests
[GTK] Unreviewed test gardening, emit baseline for imported/w3c/web-platform-tests/css/selectors/focus-visible-002.html
https://bugs.webkit.org/show_bug.cgi?id=224967
- platform/gtk/TestExpectations:
- platform/gtk/imported/w3c/web-platform-tests/css/selectors/focus-visible-002-expected.txt: Added.
- 7:43 PM Changeset in webkit [287527] by
-
- 2 edits in trunk/Source/WebCore
[GTK] Unreviewed build fix after r287519
https://bugs.webkit.org/show_bug.cgi?id=234802
- layout/integration/InlineIteratorInlineBox.cpp:
(WebCore::InlineIterator::firstInlineBoxFor):
(WebCore::InlineIterator::firstRootInlineBoxFor):
- 6:22 PM Changeset in webkit [287526] by
-
- 2 edits in trunk/LayoutTests
[WPE] [Debug] Unreviewed test gardening, remove WebXR tests failures no longer crashing
https://bugs.webkit.org/show_bug.cgi?id=225379
- platform/wpe/TestExpectations:
- 4:49 PM Changeset in webkit [287525] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Add ASSERT(middle >= left && middle < right) to TextUtil::breakWord
https://bugs.webkit.org/show_bug.cgi?id=234801
Reviewed by Antti Koivisto.
Before adding support for surrogate pairs, the implicit integral flooring guaranteed that
(left + right) / 2 always produced a middle point where left >= middle and middle < right.
With introducing surrogate pair support, the middle point may end up being equal to the right position.
(when the (left + right) / 2 falls right in the middle of a surrogate pair, we advance the index
to the _end_ of the pair (and later we adjust it by calling U16_SET_CP_START)).
In this patch, we revert this behavior back so that the middle point is always < right.
We also make sure that left/right/middle are all fall on cluster boundary by calling nextUserPerceivedCharacterIndex.
This patch is also in preparation for introducing grapheme cluster support.
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::breakWord):
- 3:42 PM Changeset in webkit [287524] by
-
- 6 edits in trunk
LayoutTests/imported/w3c:
[Web Animations] getKeyframes() should handle multiple 0% and 100% keyframes
https://bugs.webkit.org/show_bug.cgi?id=234799
Reviewed by Dean Jackson.
Mark a WPT progression.
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
Source/WebCore:
[Web Animations] getKeyframes() should handle multiple keyframes for the same offset
https://bugs.webkit.org/show_bug.cgi?id=234799
Reviewed by Dean Jackson.
A @keyframes rule may specify multiple keyframes for the same offset. We currently have support
for merging such keyframes into consolidated keyframes in Style::Resolver::keyframeStylesForAnimation()
but WPT shows that it's lacking since it doesn't account for animation-timing-function. Indeed, we
need to be careful not to merge keyframes with the same offset but a different timing function.
So we now use a std::pair<> using an offset and a timing function to compute de-duplicated keyframes.
But this showed an issue with StepsTimingFunction::operator== where we would not return true for
steps(1) and steps(1, end) since we only checked for equality for the optional keyword and did not
account for the default "end" value should the keyword not be explicit.
This ensured we correctly de-duplicated keyframes accounting for not only the offset but also
the timing function. But this then highlighted a different issue which was that our getKeyframes()
only ever expected one keyframe respectively for the 0% or 100% offsets when filling in implicit
values, which we'd just added support for in bug 234795.
So in KeyframeEffect::getKeyframes() we now compile a list of properties not explicitly specified
on any of the 0% or 100% keyframes and, as we process the first of a 0% or 100% keyframe, we set
the implicit properties.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
- platform/animation/TimingFunction.h:
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::keyframeStylesForAnimation):
- 1:37 PM Changeset in webkit [287523] by
-
- 2 edits in trunk/LayoutTests
[iOS] Rebaselining after r287519.
Unreviewed.
- platform/ios/fast/table/table-continuation-outline-paint-crash-expected.txt:
- 12:19 PM Changeset in webkit [287522] by
-
- 6 edits1 add in trunk
[WebKit2] Camera continuity is disabled in richly editable content
https://bugs.webkit.org/show_bug.cgi?id=234773
rdar://46323417
Reviewed by Darin Adler.
Source/WebKit:
-[WKWebView validRequestorForSendType:returnType:]
currently never returns a nonnull result when the given
send type is nil, becauseWebViewImpl::validRequestorForSendAndReturnTypes
only setsisValidSendType
to
anything other than false ifsendType
is nonnull. Instead of doing this, we should match legacy WebKit
behavior by treating the send type as "valid" if it's nil.
Test: NSResponderTests.ValidRequestorForReturnTypes
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::validRequestorForSendAndReturnTypes):
Source/WebKitLegacy/mac:
Drive-by fix: add a missing
ALLOW_DEPRECATED_DECLARATIONS_END
for the unbalanced BEGIN declaration.
- WebView/WebHTMLView.mm:
(+[WebHTMLView _insertablePasteboardTypes]):
Tools:
Add an API test to verify that the result of
-validRequestorForSendType:returnType:
isn't alwaysnil
in the
case where there is no send type.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/mac/NSResponderTests.mm: Added.
(TestWebKitAPI::TEST):
- 11:05 AM Changeset in webkit [287521] by
-
- 2 edits in trunk/Source/WebCore
Followup to r287494
https://bugs.webkit.org/show_bug.cgi?id=234747
rdar://85899879
Reviewed by Darin Adler.
Use
auto
instread ofRefPtr
when storing the result ofenclosingImageElement()
in a few places; this
method already returns aRefPtr
.
- html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::updateAttributes):
(WebCore::HTMLAttachmentElement::updateEnclosingImageWithData):
- 10:48 AM Changeset in webkit [287520] by
-
- 10 edits in trunk/Source/WebCore
[LFC][Integration] RenderBlockFlow::containsNonZeroBidiLevel should use iterator
https://bugs.webkit.org/show_bug.cgi?id=234796
Reviewed by Alan Bujtas.
Also rename Line::first/lastRun -> Line::first/lastLeafBox for consistency and accuracy.
- editing/VisibleUnits.cpp:
(WebCore::startPositionForLine):
(WebCore::endPositionForLine):
(WebCore::previousLinePosition):
(WebCore::nextLinePosition):
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks const):
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::firstLeafBox const):
(WebCore::InlineIterator::Line::lastLeafBox const):
(WebCore::InlineIterator::Line::closestRunForLogicalLeftPosition const):
(WebCore::InlineIterator::Line::selectionState const):
(WebCore::InlineIterator::Line::firstSelectedBox const):
(WebCore::InlineIterator::Line::lastSelectedBox const):
(WebCore::InlineIterator::Line::firstRun const): Deleted.
(WebCore::InlineIterator::Line::lastRun const): Deleted.
- layout/integration/InlineIteratorLine.h:
- layout/integration/InlineIteratorLineLegacyPath.h:
(WebCore::InlineIterator::LineIteratorLegacyPath::firstLeafBox const):
(WebCore::InlineIterator::LineIteratorLegacyPath::lastLeafBox const):
(WebCore::InlineIterator::LineIteratorLegacyPath::firstRun const): Deleted.
(WebCore::InlineIterator::LineIteratorLegacyPath::lastRun const): Deleted.
- layout/integration/InlineIteratorLineModernPath.h:
(WebCore::InlineIterator::LineIteratorModernPath::firstLeafBox const):
(WebCore::InlineIterator::LineIteratorModernPath::lastLeafBox const):
(WebCore::InlineIterator::LineIteratorModernPath::firstRun const): Deleted.
(WebCore::InlineIterator::LineIteratorModernPath::lastRun const): Deleted.
- layout/integration/InlineIteratorLogicalOrderTraversal.h:
(WebCore::InlineIterator::leafBoxesInLogicalOrder):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::containsNonZeroBidiLevel const):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
- style/InlineTextBoxStyle.cpp:
(WebCore::minLogicalTopForTextDecorationLine):
(WebCore::maxLogicalBottomForTextDecorationLine):
- 10:30 AM Changeset in webkit [287519] by
-
- 14 edits in trunk
[LFC][Integration] Support outlines
https://bugs.webkit.org/show_bug.cgi?id=234766
Reviewed by Alan Bujtas.
Source/WebCore:
Outlines should not require legacy line layout.
- layout/integration/InlineIteratorInlineBox.cpp:
(WebCore::InlineIterator::firstInlineBoxFor):
(WebCore::InlineIterator::firstRootInlineBoxFor):
Add iterator support for getting inline boxes from renderer.
- layout/integration/InlineIteratorInlineBox.h:
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForRenderInlineChild):
(WebCore::LayoutIntegration::canUseForLineLayoutWithReason):
- layout/integration/LayoutIntegrationCoverage.h:
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::firstInlineBoxFor const):
(WebCore::LayoutIntegration::LineLayout::firstRootInlineBox const):
(WebCore::LayoutIntegration::LineLayout::paint):
Support outline painting.
- layout/integration/LayoutIntegrationLineLayout.h:
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::paintObject):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
Port to use iterator.
- rendering/RenderInline.cpp:
(WebCore::RenderInline::paintOutline):
Port to use iterator.
LayoutTests:
- fast/repaint/focus-ring-repaint-expected.txt:
- platform/ios/fast/table/table-continuation-outline-paint-crash-expected.txt:
- platform/mac/fast/table/table-continuation-outline-paint-crash-expected.txt:
- 9:59 AM Changeset in webkit [287518] by
-
- 4 edits in trunk
[Web Animations] getKeyframes() should ensure that all properties are present on 0% and 100% keyframes
https://bugs.webkit.org/show_bug.cgi?id=234795
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark a WPT progressions.
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
Source/WebCore:
Keyframes at 0% and 100% may not explicitly specify properties animated on intermediate keyframes, so
in the case of such keyframes, we must ensure we output the non-animated value for properties not
explicitly specified on the keyframe style.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
- 8:12 AM Changeset in webkit [287517] by
-
- 6 edits in trunk
[Web Animations] getKeyframes() should return an empty object when there are no animatable properties in @keyframes rule
https://bugs.webkit.org/show_bug.cgi?id=234793
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark a new WPT progression.
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
Source/WebCore:
If the keyframes for an animation result from a declarative source, let's not output any data if none of the properties
are animatable.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
- rendering/style/KeyframeList.cpp:
(WebCore::KeyframeList::containsAnimatableProperty const):
- rendering/style/KeyframeList.h:
- 7:38 AM Changeset in webkit [287516] by
-
- 7 edits in trunk/Source/JavaScriptCore
Remove unused AbstractMacroAssembler::repatchJumpToNop() function
https://bugs.webkit.org/show_bug.cgi?id=234777
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-02
Reviewed by Yusuke Suzuki.
Remove the unused AbstractMacroAssembler::repatchJumpToNop() function,
along with the underlying relinkJumpToNop() functions on ISA-specific
assembler classes.
- assembler/ARM64Assembler.h:
(JSC::ARM64Assembler::relinkJumpToNop): Deleted.
- assembler/ARMv7Assembler.h:
(JSC::ARMv7Assembler::relinkJumpToNop): Deleted.
- assembler/AbstractMacroAssembler.h:
(JSC::AbstractMacroAssembler::repatchJumpToNop): Deleted.
- assembler/MIPSAssembler.h:
(JSC::MIPSAssembler::relinkJumpToNop): Deleted.
- assembler/RISCV64Assembler.h:
(JSC::RISCV64Assembler::relinkJumpToNop): Deleted.
- assembler/X86Assembler.h:
(JSC::X86Assembler::relinkJumpToNop): Deleted.
- 7:07 AM Changeset in webkit [287515] by
-
- 2 edits in trunk/Source/WebCore
InlineTextItems should never split inside surrogate pairs
https://bugs.webkit.org/show_bug.cgi?id=234791
Reviewed by Antti Koivisto.
This check was added (r285016) to handle the case if the start position in TextUtil::breakWord is
inside a surrogate pair. However we should never have surrogate pairs split across InlineTextItems.
This incorrect state was caused by the bogus "let's keep the first character on the current line" logic
-which could also lead to a visually broken rendering.
(Note that fast/text/word-break-letter-spacing-utf16-surrogates.html passes without the early return)
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::breakWord):
(WebCore::Layout::TextUtil::firstUserPerceivedCharacterLength):
- 7:05 AM Changeset in webkit [287514] by
-
- 4 edits2 adds in trunk
[LFC][IFC] Nested inline box continuation fails to omit margin/border/padding start/end values
https://bugs.webkit.org/show_bug.cgi?id=234789
Reviewed by Antti Koivisto.
Source/WebCore:
Nested inline boxes inside continuation do not have block parents. It's sufficient to check
for the continuation bits.
Test: fast/inline/unexpected-start-end-decoration-with-nested-continuation.html
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::updateInlineBoxDimensions):
LayoutTests:
- fast/inline/unexpected-start-end-decoration-with-nested-continuation-expected.html: Added.
- fast/inline/unexpected-start-end-decoration-with-nested-continuation.html: Added.
- 2:32 AM Changeset in webkit [287513] by
-
- 9 edits in trunk/Source/JavaScriptCore
[RISCV64] Make DFG, FTL, B3, WASM buildable on CPU(RISCV64)
https://bugs.webkit.org/show_bug.cgi?id=234775
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-02
Reviewed by Yusuke Suzuki.
Enable building DFG, FTL, B3 and WASM subsystems on 64-bit RISC-V.
Necessary guards and missing bits are added to make things buildable,
but actual enabling of these features at build-time is left for later.
Even when enabled at build-time in the future, there'll likey be open
issues that will require disabling different features at run-time.
MacroAssemblerRISCV64::setCarry() no-op method is added for now. Carry
flag retrieval isn't exactly possible on RISC-V, so the uses of it will
have to be addressed some other way.
The patchpointScratchRegister value is defined for CPU(RISCV64). As
on ARM64, the value matches MacroAssemblerRISCV64::dataTempRegister.
In B3, we follow ARM64 in the pinned extended-offset-address use and
stack argument lowering.
in WASM, we can again mirror ARM64 around LLInt callee registers and
slots as well as executing the epilogue of a OSR-entry callee.
- assembler/MacroAssembler.h: Provide lea64() for CPU(RISCV64) as well.
- assembler/MacroAssemblerRISCV64.h:
- b3/B3Common.cpp:
(JSC::B3::pinnedExtendedOffsetAddrRegister):
- b3/air/AirLowerStackArgs.cpp:
(JSC::B3::Air::lowerStackArgs):
- jit/GPRInfo.h:
- wasm/WasmCallee.cpp:
(JSC::Wasm::LLIntCallee::calleeSaveRegisters):
- wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
- wasm/WasmOperations.cpp:
(JSC::Wasm::doOSREntry):
- 1:12 AM Changeset in webkit [287512] by
-
- 4 edits in trunk/Source/JavaScriptCore
[RISCV64] Enable building LLInt WebAssembly via the riscv64 offlineasm backend
https://bugs.webkit.org/show_bug.cgi?id=234776
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-02
Reviewed by Yusuke Suzuki.
Sprinkle RISCV64 conditions around WebAssembly.asm as appropriate.
For division, we can reuse the divi(s)/divq(s) instructions already
available in offlineasm. RISC-V additionally provides remainder
instructions, so the necessary offlineasm instructions are added
and used for RISCV64.
In the offlineasm riscv64 backend, the division and remainder
instruction handling is improved to properly cover signed and unsigned
variants. For other instructions used in LLint WebAssembly
implementation like left or right rotation, trailing- or leading-zero
counting, order-based floating-point comparison, load-reserved and
store-conditional operations, the riscv64WASMPlaceholder helper is used
to generate an ebreak instruction that will halt the program at runtime
but will not throw a build-time error. Proper implementations will be
provided once WebAssembly support on RISCV64 is taken up.
- llint/WebAssembly.asm:
- offlineasm/instructions.rb:
- offlineasm/riscv64.rb:
- 1:07 AM Changeset in webkit [287511] by
-
- 3 edits in trunk/Source/JavaScriptCore
[RISCV64] Get testmasm building for CPU(RISCV64)
https://bugs.webkit.org/show_bug.cgi?id=234774
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-02
Reviewed by Yusuke Suzuki.
Add missing MacroAssemblerRISCV64 methods used in testmasm. Placeholders
are used for now, proper implementations will be introduced later.
In testmasm itself, we avoid testing the condition-flags register values
since, like on MIPS, that register isn't available on RISC-V.
- assembler/MacroAssemblerRISCV64.h:
- assembler/testmasm.cpp:
(JSC::testProbeModifiesStackPointer):
(JSC::testProbeModifiesStackValues):
- 12:20 AM Changeset in webkit [287510] by
-
- 18 edits74 adds3 deletes in trunk
[JSC] Replace UDIS86 with Zydis
https://bugs.webkit.org/show_bug.cgi?id=234765
Reviewed by Michael Saboff.
Source/JavaScriptCore:
UDIS86 is not updated from 2014. Since it is missing relatively new SIMD opcodes,
we cannot disassemble these opcodes when implementing Wasm SIMD.
This patch replaces UDIS86 with Zydis, which is actively developed and used in
SpiderMonkey too. It is under MIT license.
This patch imports Zydis v3.2.1.
- Import header and C files of Zydis and Zycore in a flattened manner.
- Add directory names to the files (e.g.
Zydis/Decoder.c
=>ZydisDecoder.c
) to make it easy to build in JSC build. - Replace header includes from
#include <Zydis/XXX.h>
to#include "ZydisXXX.h"
. - Fix compile errors with our stricter compiler flags.
- Remove Zycore API files and ZycoreArgParse.[hc] since they are not used.
We didn't add files to Sources.txt since unified builds do not support C files currently.
Source/WTF:
- wtf/PlatformEnable.h: