Timeline
Jan 24, 2022:
- 11:13 PM Changeset in webkit [288543] by
-
- 5 edits2 adds in trunk
REGRESSION(r282320): [Cocoa] User-installed fonts don't work in the GPU Process (in WKWebView)
https://bugs.webkit.org/show_bug.cgi?id=235449
<rdar://problem/84958961>
Reviewed by Darin Adler.
Source/WebCore/PAL:
- pal/spi/cf/CoreTextSPI.h:
Source/WebKit:
The reason for this bug was I was misusing kCTFontOptionsSystemUIFont. I thought this flag just
meant "allow the creation of system fonts" but it turns out it means something more subtle than
that. Instead of unconditionally specifying this flag, we should just pull out the options field
from the source font (which will include that flag if the font was a system font) and use that
instead.
Test: fast/text/user-installed-canvas.html
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<Ref<WebCore::Font>>::encodePlatformData):
(IPC::createCTFont):
(IPC::ArgumentCoder<Ref<WebCore::Font>>::decodePlatformData):
LayoutTests:
- fast/text/user-installed-canvas-expected.html: Added.
- fast/text/user-installed-canvas.html: Added.
- 11:00 PM Changeset in webkit [288542] by
-
- 8 edits in trunk
A sandboxed document should not reuse its service worker client ID
https://bugs.webkit.org/show_bug.cgi?id=235310
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt:
Source/WebCore:
Create a new identifier when the current identifier, already exposed to service workers, cannot be reused.
Covered by updated test.
- dom/Document.cpp:
- dom/Document.h:
- dom/ScriptExecutionContext.cpp:
- dom/ScriptExecutionContext.h:
- loader/DocumentLoader.cpp:
- 10:15 PM Changeset in webkit [288541] by
-
- 89 edits in trunk
Rename Vector and FixedVector::findMatching to findIf to match stl naming.
https://bugs.webkit.org/show_bug.cgi?id=234864
rdar://87424746
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
- bytecompiler/NodesCodegen.cpp:
(JSC::ArrayPatternNode::emitDirectBinding):
Source/WebCore:
- Modules/async-clipboard/Clipboard.cpp:
(WebCore::Clipboard::getType):
- Modules/async-clipboard/ClipboardItemBindingsDataSource.cpp:
(WebCore::ClipboardItemBindingsDataSource::getType):
(WebCore::ClipboardItemBindingsDataSource::collectDataForWriting):
- Modules/cache/DOMCacheStorage.cpp:
(WebCore::DOMCacheStorage::match):
(WebCore::DOMCacheStorage::has):
(WebCore::DOMCacheStorage::findCacheOrCreate):
(WebCore::DOMCacheStorage::doOpen):
(WebCore::DOMCacheStorage::doRemove):
- Modules/highlight/Highlight.cpp:
(WebCore::Highlight::addToSetLike):
- Modules/mediacontrols/MediaControlsHost.cpp:
(WebCore::MediaControlsHost::showMediaControlsContextMenu):
- Modules/mediarecorder/MediaRecorder.cpp:
(WebCore::MediaRecorder::trackEnded):
- Modules/mediastream/RTCController.cpp:
(WebCore::RTCController::shouldDisableICECandidateFiltering):
- Modules/mediastream/RTCPeerConnection.cpp:
(WebCore::RTCPeerConnection::setConfiguration):
(WebCore::RTCPeerConnection::getOrCreateIceTransport):
(WebCore::RTCPeerConnection::getOrCreateDtlsTransport):
- Modules/mediastream/RTCRtpSFrameTransformer.cpp:
(WebCore::RTCRtpSFrameTransformer::decryptFrame):
- Modules/webaudio/AudioNode.cpp:
(WebCore::AudioNode::checkNumberOfChannelsForInput):
- Modules/webaudio/AudioParamTimeline.cpp:
(WebCore::AudioParamTimeline::cancelAndHoldAtTime):
- Modules/webaudio/IIRFilterNode.cpp:
(WebCore::IIRFilterNode::create):
- Modules/webauthn/fido/U2fCommandConstructor.cpp:
(fido::isConvertibleToU2fRegisterCommand):
- Modules/webxr/WebXRInputSourceArray.cpp:
(WebCore::WebXRInputSourceArray::handleAddedOrUpdatedInputSources):
- Modules/webxr/WebXRSession.cpp:
(WebCore::WebXRSession::cancelAnimationFrame):
- Modules/webxr/WebXRSystem.cpp:
(WebCore::WebXRSystem::ensureImmersiveXRDeviceIsSelected):
- accessibility/AXObjectCache.cpp:
(WebCore::appendIfNotContainsMatching):
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::shouldEmitSignal):
- dom/DataTransfer.cpp:
(WebCore::DataTransfer::types const):
- dom/DataTransferItemList.cpp:
(WebCore::removeStringItemOfLowercasedType):
- dom/Document.cpp:
(WebCore::Document::addPendingScrollEventTarget):
(WebCore::Document::updateIntersectionObservations):
- dom/EventPath.cpp:
(WebCore:: const):
- dom/MutationObserver.cpp:
(WebCore::MutationObserver::enqueueSlotChangeEvent):
- html/BaseTextInputType.cpp:
(WebCore::BaseTextInputType::patternMismatch const):
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::cancelVideoFrameCallback):
- html/shadow/DateTimeEditElement.cpp:
(WebCore::DateTimeEditElement::fieldIndexOf const):
(WebCore::DateTimeEditElement::focusedFieldElement const):
(WebCore::DateTimeEditElement::didBlurFromField):
- html/track/InbandDataTextTrack.cpp:
(WebCore::InbandDataTextTrack::findIncompleteCue):
- inspector/InspectorCanvas.cpp:
(WebCore::InspectorCanvas::indexForData):
- inspector/agents/WebDebuggerAgent.cpp:
(WebCore::WebDebuggerAgent::didAddEventListener):
(WebCore::WebDebuggerAgent::willRemoveEventListener):
- layout/floats/FloatingState.cpp:
(WebCore::Layout::FloatingState::append):
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::layoutBoxForRenderer):
(WebCore::LayoutIntegration::BoxTree::rendererForLayoutBox):
- loader/DocumentLoader.cpp:
(WebCore::DocumentLoader::startIconLoading):
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::isObserving const):
- page/ModalContainerObserver.cpp:
(WebCore::ModalContainerObserver::collectClickableElementsTimerFired):
- page/ResizeObserver.cpp:
(WebCore::ResizeObserver::observe):
- page/scrolling/ScrollLatchingController.cpp:
(WebCore::ScrollLatchingController::removeLatchingStateForTarget):
- page/scrolling/ScrollSnapOffsetsInfo.cpp:
(WebCore::hasCompatibleSnapArea):
- page/scrolling/ScrollingTreeNode.cpp:
(WebCore::ScrollingTreeNode::removeChild):
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::preferredImageMIMETypeForEncoding):
- platform/PasteboardCustomData.cpp:
(WebCore::PasteboardCustomData::addOrMoveEntryToEnd):
(WebCore::PasteboardCustomData::hasSameOriginCustomData const):
- platform/cocoa/PasteboardCocoa.mm:
(WebCore::Pasteboard::fileContentState):
- platform/encryptedmedia/CDMProxy.cpp:
(WebCore::KeyStore::containsKeyID const):
(WebCore::KeyStore::add):
- platform/graphics/DisplayRefreshMonitorManager.cpp:
(WebCore::DisplayRefreshMonitorManager::findMonitorForDisplayID const):
- platform/graphics/HEVCUtilities.cpp:
(WebCore::createHEVCCodecParametersString):
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::mediaEngine):
(WebCore::MediaPlayer::nextMediaEngine):
- platform/graphics/avfoundation/objc/CDMInstanceFairPlayStreamingAVFObjC.mm:
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForKeyIDs const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForRequest const):
(WebCore::CDMInstanceFairPlayStreamingAVFObjC::sessionForGroup const):
(WebCore::CDMInstanceSessionFairPlayStreamingAVFObjC::updateLicense):
- platform/graphics/ca/GraphicsLayerCA.cpp:
(WebCore::GraphicsLayerCA::animationIsRunning const):
(WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
(WebCore::GraphicsLayerCA::isRunningTransformAnimation const):
- platform/graphics/coretext/FontCoreText.cpp:
(WebCore::Font::isProbablyOnlyUsedToRenderIcons const):
- platform/graphics/egl/GLContextEGL.cpp:
(WebCore::GLContextEGL::getEGLConfig):
- platform/graphics/gstreamer/GStreamerRegistryScanner.cpp:
(WebCore::GStreamerRegistryScanner::isContentTypeSupported const):
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
(WebCore::CoordinatedGraphicsLayer::shouldHaveBackingStore const):
- platform/gtk/PasteboardGtk.cpp:
(WebCore::Pasteboard::fileContentState):
- platform/mediastream/CaptureDevice.h:
(WebCore::haveDevicesChanged):
- platform/mediastream/MediaConstraints.h:
(WebCore::NumericConstraint::valueForDiscreteCapabilityValues const):
- platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp:
(WebKitMediaStreamObserver::didRemoveTrack):
- platform/mediastream/mac/AVVideoCaptureSource.mm:
(WebCore::AVVideoCaptureSource::generatePresets):
- platform/network/HTTPHeaderMap.cpp:
(WebCore::HTTPHeaderMap::getUncommonHeader const):
(WebCore::HTTPHeaderMap::setUncommonHeader):
(WebCore::HTTPHeaderMap::add):
(WebCore::HTTPHeaderMap::contains const):
(WebCore::HTTPHeaderMap::get const):
(WebCore::HTTPHeaderMap::set):
- platform/xr/openxr/OpenXRExtensions.cpp:
(PlatformXR::OpenXRExtensions::isExtensionSupported const):
- plugins/PluginData.h:
(WebCore::isSupportedPlugin):
Source/WebKit:
- GPUProcess/media/RemoteCDMFactoryProxy.cpp:
(WebKit::factoryForKeySystem):
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::findRootNetworkActivity):
(WebKit::NetworkConnectionToWebProcess::findNetworkActivityTracker):
- NetworkProcess/cache/CacheStorageEngineCache.cpp:
(WebKit::CacheStorage::Cache::storeRecords):
(WebKit::CacheStorage::Cache::put):
(WebKit::CacheStorage::Cache::remove):
(WebKit::CacheStorage::Cache::removeFromRecordList):
(WebKit::CacheStorage::Cache::updateRecordToDisk):
- NetworkProcess/cache/CacheStorageEngineCaches.cpp:
(WebKit::CacheStorage::Caches::find):
(WebKit::CacheStorage::Caches::remove):
(WebKit::CacheStorage::Caches::hasActiveCache const):
(WebKit::CacheStorage::Caches::dispose):
- Shared/mac/MediaFormatReader/MediaFormatReader.cpp:
(WebKit::MediaFormatReader::didProvideMediaData):
- UIProcess/API/glib/WebKitWebView.cpp:
(webkit_web_view_remove_frame_displayed_callback):
- UIProcess/Cocoa/WebPasteboardProxyCocoa.mm:
(WebKit::WebPasteboardProxy::PasteboardAccessInformation::grantAccess):
(WebKit::WebPasteboardProxy::PasteboardAccessInformation::accessType const):
- UIProcess/UserMediaPermissionRequestProxy.cpp:
(WebKit::setDeviceAsFirst):
- UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm:
(WebKit::LocalAuthenticator::makeCredential):
(WebKit::LocalAuthenticator::getAssertion):
(WebKit::LocalAuthenticator::deleteDuplicateCredential const):
- UIProcess/WebAuthentication/fido/CtapAuthenticator.cpp:
(WebKit::CtapAuthenticator::continueGetNextAssertionAfterResponseReceived):
- UIProcess/ios/DragDropInteractionState.mm:
(WebKit::DragDropInteractionState::defaultDropPreview const):
(WebKit::BlockPtr<void):
- UIProcess/mac/DisplayLink.cpp:
(WebKit::DisplayLink::setPreferredFramesPerSecond):
- UIProcess/mac/WebContextMenuProxyMac.mm:
(WebKit::WebContextMenuProxyMac::getContextMenuFromItems):
- UIProcess/mac/WebDataListSuggestionsDropdownMac.mm:
(shouldShowDividersBetweenCells):
- WebProcess/Automation/WebAutomationSessionProxy.cpp:
(WebKit::WebAutomationSessionProxy::computeElementLayout):
- WebProcess/UserContent/WebUserContentController.cpp:
(WebKit::WebUserContentController::addUserScriptMessageHandlerInternal):
(WebKit::WebUserContentController::addUserScriptInternal):
(WebKit::WebUserContentController::addUserStyleSheetInternal):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::requestTextRecognition):
- WebProcess/WebProcess.cpp:
(WebKit::checkDocumentsCaptureStateConsistency):
Source/WTF:
Also rename reverseFindMatching to reverseFindIf.
See https://bugs.webkit.org/show_bug.cgi?id=234855#c3 and
https://en.cppreference.com/w/cpp/algorithm/find.
- wtf/FixedVector.h:
(WTF::FixedVector<T>::findIf const):
(WTF::FixedVector<T>::find const):
(WTF::FixedVector<T>::findMatching const): Deleted.
- wtf/Vector.h:
(WTF::Malloc>::findIf const):
(WTF::Malloc>::find const):
(WTF::Malloc>::reverseFindIf const):
(WTF::Malloc>::findMatching const): Deleted.
(WTF::Malloc>::reverseFindMatching const): Deleted.
Tools:
- TestWebKitAPI/Tests/WTF/FixedVector.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/Vector.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/MediaLoading.mm:
(TestWebKitAPI::parseUserAgent):
- WebKitTestRunner/TestController.cpp:
(WTR::TestController::closeOtherPage):
- 10:09 PM Changeset in webkit [288540] by
-
- 9 edits in trunk
Re-enable CustomDisplayName and DefaultDisplayName API tests on Monterey
https://bugs.webkit.org/show_bug.cgi?id=234613
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-24
Reviewed by Brady Eidson.
Source/WebKit:
When we introduced setting the display name from the network process,
we didn't update the tests to get the information from the process that can access it.
- NetworkProcess/NetworkConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.messages.in:
- NetworkProcess/mac/NetworkConnectionToWebProcessMac.mm:
(WebKit::NetworkConnectionToWebProcess::updateActivePages):
(WebKit::NetworkConnectionToWebProcess::getProcessDisplayName):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::getProcessDisplayName):
- WebProcess/WebProcess.h:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::auditTokenForSelf):
(WebKit::WebProcess::updateProcessName):
(WebKit::WebProcess::getProcessDisplayName):
(WebKit::WebProcess::updateActivePages):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/DisplayName.mm:
(TestWebKitAPI::TEST):
- 9:48 PM Changeset in webkit [288539] by
-
- 3 edits in trunk/Source/WebCore
Expand RefPtr / Ref use in FrameLoader
https://bugs.webkit.org/show_bug.cgi?id=235551
rdar://87986840
Reviewed by Mark Lam.
Apply Ref / RefPtr instead of taking SerializedScriptValue*.
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::loadInSameDocument):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
- loader/FrameLoader.h:
- 9:38 PM Changeset in webkit [288538] by
-
- 10 edits in trunk
[JSC] Enable Array#groupBy and Array#groupByToMap
https://bugs.webkit.org/show_bug.cgi?id=235549
Reviewed by Ross Kirsling.
JSTests:
- stress/unscopables.js:
Source/JavaScriptCore:
- runtime/OptionsList.h:
LayoutTests:
- inspector/model/remote-object-get-properties-expected.txt:
- js/Object-getOwnPropertyNames-expected.txt:
- js/array-unscopables-properties-expected.txt:
- js/script-tests/Object-getOwnPropertyNames.js:
- js/script-tests/array-unscopables-properties.js:
- 9:13 PM Changeset in webkit [288537] by
-
- 4 edits in trunk/Source/JavaScriptCore
Remove VM::stringCache
https://bugs.webkit.org/show_bug.cgi?id=235536
Reviewed by Sam Weinig.
We consult VM::stringCache when creating a JSString, but since
bug 142115 we never insert anything into it.
Removing this results in almost-significant improvements in the VueJS,
Vanilla-ES2015, and jQuery sub-tests of Speedometer 2 (of 0.5-2%,
0.03 <= p <= 0.05), and an almost significant 0.2% improvement in the
overall score (p = 0.06).
- runtime/JSString.cpp:
(JSC::jsStringWithCacheSlowCase):
- runtime/VM.cpp:
(JSC::VM::VM):
- runtime/VM.h:
- 8:59 PM Changeset in webkit [288536] by
-
- 5 edits in trunk/Source/WebCore
REGRESSION (r286932): Fixed position elements jiggle sometimes (Twitter, Facebook)
https://bugs.webkit.org/show_bug.cgi?id=235543
<rdar://87981122>
Reviewed by Tim Horton.
In r286932 we ensure that the scrolling layer's position gets committed in the scrolling
thread to reduce stutters. However, we also have to do the same for fixed and sticky
layers, because they need to committed in synchrony with the scrolling layer.
Also change some 'override' to 'final' and add locking annotations.
- page/scrolling/cocoa/ScrollingTreeFixedNode.h:
- page/scrolling/cocoa/ScrollingTreeFixedNode.mm:
(WebCore::ScrollingTreeFixedNode::applyLayerPositions):
- page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.h:
- page/scrolling/cocoa/ScrollingTreeStickyNodeCocoa.mm:
(WebCore::ScrollingTreeStickyNodeCocoa::applyLayerPositions):
- 7:44 PM Changeset in webkit [288535] by
-
- 1 copy in tags/Safari-613.1.14.1.7
Tag Safari-613.1.14.1.7.
- 7:41 PM Changeset in webkit [288534] by
-
- 9 edits in branches/safari-613.1.14.1-branch/Source
Versioning.
WebKit-7613.1.14.1.7
- 7:21 PM Changeset in webkit [288533] by
-
- 3 edits1 delete in trunk/Source/WebInspectorUI
Web Inspector: Network: give the Ignore Caches button a label so it's more visible and immediately understandable
https://bugs.webkit.org/show_bug.cgi?id=235539
Reviewed by Patrick Angle.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get navigationItems):
(WI.NetworkTableContentView.prototype._resourceCachingDisabledSettingChanged):
- Localizations/en.lproj/localizedStrings.js:
- UserInterface/Images/IgnoreCaches.svg: Deleted.
- 6:14 PM Changeset in webkit [288532] by
-
- 4 edits in trunk/Source
Unreviewed, fix non-unified build after r288458
Source/JavaScriptCore:
- runtime/DeferredWorkTimer.h:
Source/WebCore:
- fileapi/FileReaderLoaderClient.h:
- 5:57 PM Changeset in webkit [288531] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r288441. rdar://problem/87707090
AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>
Addressing post commit comments.
Reviewed by Eric Carlson and Geoff Garen.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm: Fixed the release logging.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288441 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288530] by
-
- 6 edits1 copy1 add in branches/safari-613-branch
Cherry-pick r288429. rdar://problem/86612099
Position:fixed layers shouldn't allocate a backing buffer if all children are offscreen.
https://bugs.webkit.org/show_bug.cgi?id=235420
<rdar://86612099>
Patch by Matt Woodrow <Matt Woodrow> on 2022-01-23
Reviewed by Simon Fraser and Darin Adler.
Source/WebCore:
Adds a bounds intersection check to isPaintDestinationForDescendantLayers,
so that we can exclude descendants that definitely won't draw anything into
the compositing layer. Uses a conservative check, which gives up if there are
any transforms in the ancestor chain.
Test: compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html
- rendering/RenderLayerBacking.cpp: (WebCore::intersectsWithAncestor): (WebCore::RenderLayerBacking::isPaintDestinationForDescendantLayers const):
LayoutTests:
Adds a test that has a viewport sized position:fixed element (with compositing
layer), and a single child which is entirely offscreen. Tests that we correctly
determine that we don't need a backing store for the layer.
- compositing/backing/no-backing-for-offscreen-children-of-position-fixed-expected.txt: Added.
- compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288429 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288529] by
-
- 2 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r288415. rdar://problem/87904254
REGRESSION(r280887) broke some svg based chart content repaint
https://bugs.webkit.org/show_bug.cgi?id=235483
<rdar://87904254>
Unreviewed, reverting r280887.
- svg/SVGSVGElement.cpp: (WebCore::SVGSVGElement::svgAttributeChanged):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288415 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288528] by
-
- 13 edits in branches/safari-613-branch/Source
Cherry-pick r288389. rdar://problem/85405320
Disable CFURLCache in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=234988
<rdar://problem/87619196>
Reviewed by Geoffrey Garen.
Source/WebCore:
_CFURLStorageSessionCopyCache can be slow (see rdar://85418732) and UI process may kill network process for
being unresponsive. Since WebKit does not use CFURLCache, we should disable it to avoid the hang.
- platform/network/NetworkStorageSession.h:
- platform/network/cf/NetworkStorageSessionCFNet.cpp: (WebCore::NetworkStorageSession::createCFStorageSessionForIdentifier):
- platform/network/cocoa/NetworkStorageSessionCocoa.mm: (WebCore::createPrivateStorageSession):
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp: (WebKit::NetworkProcess::newTestingSession): (WebKit::NetworkProcess::ensureSession):
Source/WebKitLegacy:
- WebCoreSupport/NetworkStorageSessionMap.cpp: (NetworkStorageSessionMap::ensureSession):
Source/WTF:
- wtf/PlatformHave.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288389 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288527] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r288386. rdar://problem/87822314
[iOS][WP] Allow access to CFNetwork prefs
https://bugs.webkit.org/show_bug.cgi?id=235457
<rdar://87822314>
Reviewed by Brent Fulgham.
Allow access to CFNetwork prefs on internal builds.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288386 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288526] by
-
- 3 edits in branches/safari-613-branch/Source/WebInspectorUI
Cherry-pick r288385. rdar://problem/87851989
Web Inspector: Make alignment editor accessible
https://bugs.webkit.org/show_bug.cgi?id=235395
<rdar://problem/87851989>
Reviewed by Patrick Angle.
Make alignment editor icons focusable, and annotate elements so VoiceOver could correctly read what is selected.
- UserInterface/Views/AlignmentEditor.css: (.alignment-editor .glyph:focus): (.alignment-editor .glyph:not(:focus-visible)):
- UserInterface/Views/AlignmentEditor.js: (WI.AlignmentEditor): (WI.AlignmentEditor.prototype.set alignment): (WI.AlignmentEditor.prototype._removePreviouslySelected): (WI.AlignmentEditor.prototype._updateSelected):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288385 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288525] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r288375. rdar://problem/76403140
[macOS][GPUP] Add access to IOKit property
https://bugs.webkit.org/show_bug.cgi?id=235450
<rdar://76403140>
Reviewed by Brent Fulgham.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288375 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288524] by
-
- 8 edits2 adds in branches/safari-613-branch
Cherry-pick r288336. rdar://problem/86558157
REGRESSION (r284136): A slight horizontal rubberband kills scroll momentum
https://bugs.webkit.org/show_bug.cgi?id=234384
Reviewed by Tim Horton.
Source/WebCore:
ScrollAnimationRubberBand subtly changed the behavior of the rubberband animation on the
axis that is not the rubberbanding axis. Because it converged on m_targetOffset, it always
resulted in no offset on that axis.
Fix by restoring the behavior from before r284136, which applies the rubberbanding as a
delta from the current offset and no longer uses m_targetOffset, which is removed. It's a
bit surprising that this rubberband animation drives a vertical scroll when the gesture is
primarily horizontal (normally we'd clamp these deltas to be purely horizontal), but people
are used to this behavior so restore it.
Test: fast/scrolling/mac/j-shaped-scroll-rubberband.html
- platform/ScrollAnimation.h:
- platform/ScrollingEffectsController.cpp: (WebCore::ScrollingEffectsController::overscrollAmount): (WebCore::ScrollingEffectsController::scrollOffset):
- platform/ScrollingEffectsController.h:
- platform/mac/ScrollAnimationRubberBand.h:
- platform/mac/ScrollAnimationRubberBand.mm: (WebCore::ScrollAnimationRubberBand::startRubberBandAnimation): (WebCore::ScrollAnimationRubberBand::serviceAnimation): (WebCore::ScrollAnimationRubberBand::debugDescription const):
- platform/mac/ScrollingEffectsController.mm: (WebCore::ScrollingEffectsController::startRubberBandAnimation): (WebCore::ScrollingEffectsController::startRubberBandAnimationIfNecessary):
LayoutTests:
- fast/scrolling/mac/j-shaped-scroll-rubberband-expected.txt: Added.
- fast/scrolling/mac/j-shaped-scroll-rubberband.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288336 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288523] by
-
- 3 edits3 adds in branches/safari-613-branch
Cherry-pick r288304. rdar://problem/87836459
[:has() pseudo-class] Ignore :visited inside :has()
https://bugs.webkit.org/show_bug.cgi?id=235404
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/has-visited-expected.html: Added.
- web-platform-tests/css/selectors/has-visited-ref.html: Added.
- web-platform-tests/css/selectors/has-visited.html: Added.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/selectors/has-visited.html
- css/SelectorChecker.cpp: (WebCore::SelectorChecker::matchHasPseudoClass const):
Make this more similar to :is/:not():
Use the current SelectorChecker with a different context rather than a nested SelectorChecker.
Use matchRecursively.
Setup the functional pseudo-class bits for the context.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288304 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288522] by
-
- 3 edits2 adds in branches/safari-613-branch
Cherry-pick r288303. rdar://problem/87836127
[:has pseudo-class] Support :has(:not(foo))
https://bugs.webkit.org/show_bug.cgi?id=235399
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/has-with-not-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-with-not.html: Added.
Source/WebCore:
This already works except for a filter bug.
Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-with-not.html
- style/HasSelectorFilter.h: (WebCore::Style::HasSelectorFilter::reject const):
We shouldn't reject a selector if we have a null key.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288303 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288521] by
-
- 3 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r288275. rdar://problem/87707090
AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>
Reviewed by Eric Carlson.
Sometimes the defaultInput is not available, in which case it is good to resort to the previous default device if available.
This fix prevents the following case to happen:
- We start rendering WebRTC audio on some output, say AirPods
- We start capturing microphone, but the default microphone is not the AirPods one (while it probably should, this is not always the case).
- We migrate audio rendering to VPIO which will output audio to the same device as the input microphone if feasible (typically builtin speaker).
- Audio is now flowing on builtin speaker instead of AirPods.
Manually tested.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288275 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288520] by
-
- 3 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r288269. rdar://problem/86943871
Grant access to GlobalPreferences and GlobalPreferences_m uniformly
https://bugs.webkit.org/show_bug.cgi?id=235387
<rdar://problem/86943871>
Reviewed by Per Arne Vollan.
We should allow access to GlobalPreferences_m.plist in the places where we currently
allow GlobalPreferences.plist. We are inconsistent about this in our sandboxes, and
telemetry shows that we need to provide access.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288269 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288519] by
-
- 12 edits in branches/safari-613-branch
Cherry-pick r288266. rdar://problem/87804395
Web Inspector: fully blackboxed stack traces don't show the right top call frame
https://bugs.webkit.org/show_bug.cgi?id=235381
Reviewed by Patrick Angle.
Source/WebInspectorUI:
- UserInterface/Models/StackTrace.js:
(WI.StackTrace):
(WI.StackTrace.fromPayload):
(WI.StackTrace.prototype.get firstNonNativeNonAnonymousNotBlackboxedCallFrame):
Only assign to
firstNonNativeNonAnonymousCallFrameonce. Drive-by: Don't re-fetch the blackbox data for theWI.SourceCodeof theWI.CallFrame. Drive-by: Combine optional parameters into anoptions = {}for current code cleanliness
and greater flexibility for future changes.
- UserInterface/Models/CallFrame.js: (WI.CallFrame): (WI.CallFrame.fromDebuggerPayload): (WI.CallFrame.fromPayload):
- UserInterface/Views/ThreadTreeElement.js:
(WI.ThreadTreeElement.prototype.refresh):
Drive-by: Combine optional parameters into an
options = {}for current code cleanliness
and greater flexibility for future changes.
- UserInterface/Views/CallFrameTreeElement.js: (WI.CallFrameTreeElement): (WI.CallFrameTreeElement.prototype.onattach):
- UserInterface/Views/CallFrameView.js:
(WI.CallFrameView):
Drive-by: Don't re-fetch the blackbox data for the
WI.SourceCodeof theWI.CallFrame.
LayoutTests:
- inspector/model/stack-trace.html:
- inspector/model/stack-trace-expected.txt:
- inspector/debugger/resources/async-stack-trace-test.js: (TestPage.registerInitializer.window.getAsyncStackTrace):
- inspector/debugger/resources/log-active-stack-trace.js: (TestPage.registerInitializer.window.getActiveStackTrace):
- inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js:
(TestPage.registerInitializer.window.getAsyncStackTrace):
Drive-by: Adopt new
WI.StackTraceconstructor arguments format.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288266 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288518] by
-
- 6 edits in branches/safari-613-branch/Source/bmalloc
Cherry-pick r288265. rdar://problem/87842725
[libpas] Disable PAS_ASSERT on Darwin ARM64 (not in ARM64E)
https://bugs.webkit.org/show_bug.cgi?id=235349
Reviewed by Saam Barati.
We have several weak devices which only have ARM64 (not ARM64E).
And in such a weak device, PAS_ASSERT affects on performance.
By disabling PAS_ASSERT, we got 0.5% improvement in PLT in iPhone 6S.
- libpas/src/libpas/pas_config.h:
- libpas/src/libpas/pas_config_prefix.h:
- libpas/src/libpas/pas_internal_config.h:
- libpas/src/libpas/pas_platform.h:
- libpas/src/libpas/pas_utils.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288265 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:56 PM Changeset in webkit [288517] by
-
- 27 edits in branches/safari-613-branch
Cherry-pick r288264. rdar://problem/87745419
Align our qualified name validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=201699
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
- web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
- web-platform-tests/dom/nodes/Document-createElementNS-expected.txt: Rebaseline WPT tests now that more checks are passing.
Source/WebCore:
Align our qualified name validation with the latest specification:
No new tests, rebaselined existing tests.
- dom/Document.cpp: (WebCore::isValidNameStart): (WebCore::isValidNamePart):
LayoutTests:
- dom/xhtml/level3/core/canonicalform06-expected.txt:
- dom/xhtml/level3/core/infoset06-expected.txt:
- dom/xhtml/level3/core/infoset07-expected.txt:
- dom/xhtml/level3/core/wellformed01-expected.txt:
- dom/xhtml/level3/core/wellformed02-expected.txt:
- dom/xhtml/level3/core/wellformed03-expected.txt:
- dom/xhtml/level3/core/wellformed04-expected.txt: Rebaseline outdated imported tests.
- fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
- fast/dom/DOMImplementation/createDocument-namespace-err.html:
- fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
- fast/dom/Document/createAttributeNS-namespace-err.html:
- fast/dom/Document/createElement-invalid-names-expected.txt:
- fast/dom/Document/createElement-invalid-names.html:
- fast/dom/Document/createElementNS-namespace-err-expected.txt:
- fast/dom/Document/createElementNS-namespace-err.html:
- fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
- fast/dom/Element/setAttributeNS-namespace-err.html:
- fast/dom/dataset-expected.txt:
- fast/dom/dataset-xhtml-expected.txt:
- fast/dom/dataset-xhtml.xhtml:
- fast/dom/dataset.html: Update and rebaseline outdated WebKit tests.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288264 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288516] by
-
- 9 edits2 adds2 deletes in branches/safari-613-branch
Cherry-pick r288245. rdar://problem/85878291
Limit the deprecated CSSOMPrimitiveValue to formerly standardized unit types
https://bugs.webkit.org/show_bug.cgi?id=233651
<rdar://problem/85878291>
Reviewed by Darin Adler.
Source/WebCore:
This removes support, and makes it clear that these deprecated APIs shouldn't be exposing
anything more modern than what is standardized in DOM Level 2 Style. Hopefully this avoids
others in future adding support for new units.
Other changes included as they are necessary to make improved test not assert.
Test: fast/css/CSSPrimitiveValue-modern-length.html
- css/CSSUnits.cpp: (WebCore::unitCategory): Ensure this is complete for all units. (WebCore::canonicalUnitTypeForCategory): Ensure this is complete for all unit categories.
- css/DeprecatedCSSOMPrimitiveValue.cpp: (WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const): Remove post-DOM Level 2 Style values. (WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const): Remove post-DOM Level 2 Style values. (WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue const): Add comment.
- css/DeprecatedCSSOMPrimitiveValue.h: Remove post-DOM Level 2 Style constants.
- css/DeprecatedCSSOMPrimitiveValue.idl: Remove post-DOM Level 2 Style constants.
- css/CSSPrimitiveValue.cpp: (WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor. (WebCore::CSSPrimitiveValue::doubleValueInternal const): Handle std::optional return.
- css/CSSPrimitiveValue.h: (WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor.
- page/PrintContext.cpp: (WebCore::PrintContext::computedPageMargin): Handle std::optional return.
LayoutTests:
Updated/moved test to cover all modern length units, not just ic.
- fast/css/CSSPrimitiveValue-ic-expected.txt: Removed.
- fast/css/CSSPrimitiveValue-ic.html: Removed.
- fast/css/CSSPrimitiveValue-modern-length-expected.txt: Added.
- fast/css/CSSPrimitiveValue-modern-length.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288245 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288515] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r288238. rdar://problem/87272534
WebsiteDataStore.cpp uses switch statements for WebKit::ProcessAccessType enum that fall through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234986
<rdar://problem/87272534>
Reviewed by Darin Adler.
Clean up / clarify processAccessType logic in WebsiteDataStore.cpp.
- UIProcess/WebsiteData/WebsiteDataStore.cpp: (WebKit::computeNetworkProcessAccessTypeForDataFetch): (WebKit::computeWebProcessAccessTypeForDataFetch): (WebKit::WebsiteDataStore::fetchDataAndApply): (WebKit::computeNetworkProcessAccessTypeForDataRemoval): (WebKit::computeWebProcessAccessTypeForDataRemoval): (WebKit::WebsiteDataStore::removeData):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288238 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288514] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r288232. rdar://problem/87265153
WebKit::DownloadProxy::publishProgress() falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234975
<rdar://problem/87265153>
Reviewed by Darin Adler.
- UIProcess/Downloads/DownloadProxy.cpp: (WebKit::DownloadProxy::publishProgress): Let's not send the IPC if we failed to create the handle since the recipient code early returns when the handle is invalid.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288232 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288513] by
-
- 8 edits2 adds in branches/safari-613-branch
Cherry-pick r288180. rdar://problem/84440841
Loupe sometimes flips to the bottom of the page when dragging the end of a selection to the top of a page with selection flipping.
https://bugs.webkit.org/show_bug.cgi?id=235220
Reviewed by Tim Horton.
Source/WebCore:
Test: fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html
When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.
- platform/graphics/FloatPoint.cpp: (WebCore::FloatPoint::constrainedWithin const):
- platform/graphics/FloatPoint.h:
- platform/graphics/IntPoint.cpp: (WebCore::IntPoint::constrainedWithin const):
- platform/graphics/IntPoint.h:
Source/WebKit:
When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.
- WebProcess/WebPage/ios/WebPageIOS.mm: (WebKit::rangeForPointInRootViewCoordinates):
LayoutTests:
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow-expected.txt: Added.
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288180 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288512] by
-
- 7 edits in branches/safari-613-branch
Cherry-pick r288111. rdar://problem/87699260
[:has() pseudo-class] Disallow nested :has()
https://bugs.webkit.org/show_bug.cgi?id=235231
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative-expected.txt:
- web-platform-tests/css/selectors/has-basic-expected.txt:
- web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
Source/WebCore:
Nested case ':has(:has(foo))' adds no meaningful capability and would complicate invalidation.
See https://github.com/w3c/csswg-drafts/issues/6952 for more details.
- css/parser/CSSSelectorParser.cpp: (WebCore::CSSSelectorParser::consumePseudo):
Also set m_resistDefaultNamespace like other logical combination pseudo-classes.
- css/parser/CSSSelectorParser.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288111 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288511] by
-
- 5 edits4 adds in branches/safari-613-branch
Cherry-pick r288107. rdar://problem/87425066
REGRESSION(r281389): using font-variant-ligatures causes Unicode bidi isolation control characters to render
https://bugs.webkit.org/show_bug.cgi?id=235053
<rdar://problem/87425066>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-text/white-space/default-ignorable-complex-expected.html: Added.
- web-platform-tests/css/css-text/white-space/default-ignorable-complex.html: Added.
- web-platform-tests/css/css-text/white-space/default-ignorable-expected.html: Added.
- web-platform-tests/css/css-text/white-space/default-ignorable.html: Added.
Source/WebCore:
The spec says (https://drafts.csswg.org/css-text-3/#white-space-processing)
unsupported Default_ignorable characters must be ignored for text rendering.
Previously, we were handling this by mapping the characters to the zero width space character. r281389 changed
that to be more faithful to the original string (and not do the mapping). One somewhat unexpected result of
this patch was that, now that we're not mapping these code points to the zero width space character, fewer fonts
on the system will support those code points. It became much more common for no font at all to support the code
point in question. r281389 handled the situation where the code points were supported by a font but shouldn't be
rendered, but didn't handle the case where the code points *weren't* supported by any fonts (in the complex text
codepath). This patch updates that path to handle it.
This patch also replaces our previous hardcoded list of Default_ignorable characters with the proper call to ICU
to check the Unicode property. It does this in both the fast text codepath and the simple text codepath, to make
sure they match.
Tests: imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable-complex.html
imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable.html
- platform/graphics/ComplexTextController.cpp: (WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
- platform/graphics/WidthIterator.cpp: (WebCore::WidthIterator::applyCSSVisibilityRules):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288107 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288510] by
-
- 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE
Cherry-pick r288105. rdar://problem/87656387
REGRESSION (r286603): rx::ProgramMtl::getSpecializedShader() leaks MTLFunctionConstantValues object due early return when an error occurs in ANGLE_TRY() macro
<https://webkit.org/b/235281>
<rdar://problem/87656387>
Reviewed by Darin Adler.
- src/libANGLE/renderer/metal/ProgramMtl.mm: (rx::ProgramMtl::getSpecializedShader):
- Use mtl::AutoObjCObj<> to release MTLFunctionConstantValues object on early return.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288105 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288509] by
-
- 4 edits2 adds in branches/safari-613-branch
Cherry-pick r288099. rdar://problem/86586969
Layered @import rules in <style> should be preloaded
https://bugs.webkit.org/show_bug.cgi?id=234094
<rdar://problem/86586969>
Reviewed by Dean Jackson.
Source/WebCore:
Test: http/tests/loading/preload-css-import-layer.html
- html/parser/CSSPreloadScanner.cpp: (WebCore::CSSPreloadScanner::tokenize): (WebCore::hasValidImportConditions): (WebCore::CSSPreloadScanner::emitRule):
- html/parser/CSSPreloadScanner.h:
Allow @import rule containing layer condition to be preloaded.
LayoutTests:
- http/tests/loading/preload-css-import-layer-expected.txt: Added.
- http/tests/loading/preload-css-import-layer.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288099 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288508] by
-
- 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE
Cherry-pick r288097. rdar://problem/87653812
Follow-up: REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>
Unreviewed follow-up fix from Bug 235281, Comment #5.
- src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMetalDeviceMatchingAttribute):
- Remove unneeded calls to .get().
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288097 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288507] by
-
- 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE
Cherry-pick r288074. rdar://problem/87653812
REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>
Reviewed by Darin Adler.
- src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::getMetalDeviceMatchingAttribute):
- Make use of mtl::adoptObjCObj<> so these objects are relaseed when the method returns.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288074 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288506] by
-
- 4 edits in branches/safari-613-branch
Cherry-pick r288039. rdar://problem/79220540
[iOS] Occasional crash under -[UITargetedPreview initWithView:parameters:target:] when focusing form controls
https://bugs.webkit.org/show_bug.cgi?id=235248
rdar://79220540
Reviewed by Tim Horton and Aditya Keerthi.
Source/WebKit:
It's possible for
-resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:to return anilsnapshot
view in the case where a screen update has not been performed yet (among other scenarios). In the case where
UIKit returnsnilwhen we're creating the targeted preview for the context menu when focusing a select element
or file input, we'll crash due to an Objective-C exception in the initializer of UITargetedPreview. Mitigate
this by falling back to an empty UIView after requesting the snapshot view to make our code robust against this
scenario.
Test: KeyboardInputTests.DoNotCrashWhenFocusingSelectWithoutViewSnapshot
- UIProcess/ios/WKContentViewInteraction.mm: (createFallbackTargetedPreview):
Tools:
Add an API test that exercises the crash by forcing
-resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:
to return nil via swizzling.
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm: (TestWebKitAPI::nilResizableSnapshotViewFromRect): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288039 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288505] by
-
- 4 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r288034. rdar://problem/86341944
REGRESSION: ARKit example loads a page full of random symbols instead of a 3D model
https://bugs.webkit.org/show_bug.cgi?id=235254
Reviewed by Tim Horton.
When we enabled the ModelDocument support, we disabled the ContentProvider path.
This was a mistake - it has to be a runtime check.
- UIProcess/API/Cocoa/WKPreferences.mm: Expose the ModelDocumentEnabled WebPreference so that it can be read from a WKWebViewConfiguration. (-[WKPreferences _setModelDocumentEnabled:]): (-[WKPreferences _modelDocumentEnabled]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Rather than the compile-time test, check the WebPreferences to see if ModelDocument is disabled. (-[WKWebViewContentProviderRegistry initWithConfiguration:]):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288034 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288504] by
-
- 4 edits2 adds in branches/safari-613-branch
Cherry-pick r288025. rdar://problem/83407577
gl.texImage2D upload of getUserMedia streams via <video> element fails
https://bugs.webkit.org/show_bug.cgi?id=230617
<rdar://problem/83407577>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-14
Reviewed by Youenn Fablet.
Source/WebCore:
Fix MSE camera to WebGL texture uploads.
Partially revert r280963 for Cocoa MediaPlayer implementatations
that do not have nativeImageForCurrentTime / pixelBufferForCurrentTime.
Turns out MSE does not have these implemented, so currently fall back
to the painting path.
Test: fast/mediastream/getUserMedia-to-canvas.html
- html/canvas/WebGLRenderingContextBase.cpp: (WebCore::WebGLRenderingContextBase::videoFrameToImage):
LayoutTests:
- fast/mediastream/getUserMedia-to-canvas-expected.txt: Added.
- fast/mediastream/getUserMedia-to-canvas.html: Added. Add a test to test getting video frame to 2DContext and WebGL canvas elements.
- webrtc/routines.js: Add a function to assert that ImageData contains the simulated mock camera image. This is useful in verifying that the image is exactly as expected. The test tests only the default orientation. Later changes will update the test to address the camera rotation.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288025 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288503] by
-
- 3 edits2 adds in branches/safari-613-branch
Cherry-pick r288015. rdar://problem/84617690
[LFC][IFC] Incorrect root inline box position when non-empty atomic inline level child box has height: 0px
https://bugs.webkit.org/show_bug.cgi?id=235218
<rdar://84617690>
Reviewed by Antti Koivisto.
Source/WebCore:
Even if the atomic inline level box itself does not stetch the line box, it may still affect the root inline box position
through baseline "syncing" (This is mostly the case with 0 tall boxes as (non-empty) atomic inline boxes in general stretch the line box).
Test: fast/block/line-layout/non-empty-inline-block-with-zero-height.html
- layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp: (WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):
LayoutTests:
- fast/block/line-layout/non-empty-inline-block-with-zero-height-expected.html: Added.
- fast/block/line-layout/non-empty-inline-block-with-zero-height.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288015 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288502] by
-
- 8 edits2 adds in branches/safari-613-branch
Cherry-pick r288012. rdar://problem/87397176
[:has() pseudo-class] Avoid O(n2) in style invalidation with repeated DOM mutations
https://bugs.webkit.org/show_bug.cgi?id=234842
<rdar://problem/87397176>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/has-complexity-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-complexity.html: Added.
Source/WebCore:
Use invalidation selectors to check if a given mutation needs :has() invalidation.
Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-complexity.html
- css/SelectorChecker.cpp: (WebCore::SelectorChecker::checkOne const):
- css/SelectorChecker.h:
- style/ChildChangeInvalidation.cpp: (WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):
Invalidate only if the invalidation ruleset has an invalidation selector that matches
the added/removed element. Even in that case we only need to invalidate if that selector
has not already matched within this parent.
As we don't have persistent state that would remember what already matched accross multiple
mutations, approximate this by checking if the closest sibling matched.
(WebCore::Style::ChildChangeInvalidation::invalidateForHasBeforeMutation):
(WebCore::Style::ChildChangeInvalidation::invalidateForHasAfterMutation):
- style/ChildChangeInvalidation.h:
LayoutTests:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288012 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:55 PM Changeset in webkit [288501] by
-
- 5 edits in branches/safari-613-branch
Cherry-pick r288010. rdar://problem/87557846
Expose way to encode CTAP commands with only the hash of ClientDataJSON
https://bugs.webkit.org/show_bug.cgi?id=235191
<rdar://problem/87557846>
Reviewed by Brent Fulgham.
Source/WebKit:
CTAP command encoding covered by existing tests (see CtapRequestTest) and the SPI
in new API tests.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:]): (+[_WKWebAuthenticationPanel encodeGetAssertionCommandWithClientDataHash:options:userVerificationAvailability:]):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST): Tests for new SPIs.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288010 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:54 PM Changeset in webkit [288500] by
-
- 8 edits in branches/safari-613-branch/Source/WebCore
Cherry-pick r287973. rdar://problem/87533906
[:has() pseudo-class] Collect invalidation selectors for child invalidation
https://bugs.webkit.org/show_bug.cgi?id=235103
Reviewed by Dean Jackson.
Collect selectors we can use to test if :has status actually changed before invalidating.
This patch doesn't yet use the the selector.
- style/ChildChangeInvalidation.cpp: (WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):
Use the pseudo class invalidation keys for looking up :has selectors too
instead of having a custom mechanism for doing the same thing.
- style/PseudoClassChangeInvalidation.cpp: (WebCore::Style::makePseudoClassInvalidationKeys):
- style/PseudoClassChangeInvalidation.h:
- style/RuleFeature.cpp: (WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
Always return a selector for consistency.
(WebCore::Style::makePseudoClassInvalidationKey):
(WebCore::Style::RuleFeatureSet::collectFeatures):
(WebCore::Style::RuleFeatureSet::add):
(WebCore::Style::RuleFeatureSet::clear):
(WebCore::Style::RuleFeatureSet::shrinkToFit):
- style/RuleFeature.h:
- style/StyleScopeRuleSets.cpp: (WebCore::Style::ScopeRuleSets::collectFeatures const): (WebCore::Style::ScopeRuleSets::hasPseudoClassInvalidationRuleSets const): (WebCore::Style::ScopeRuleSets::tagInvalidationRuleSets const): Deleted.
We don't need keep around tag rule sets anymore.
- style/StyleScopeRuleSets.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287973 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:54 PM Changeset in webkit [288499] by
-
- 2 edits in branches/safari-613-branch/Source/WTF
Cherry-pick r287941. rdar://problem/87472589
[JSC] Enable libpas jit-heap when libpas is enabled
https://bugs.webkit.org/show_bug.cgi?id=235042
Reviewed by Filip Pizlo.
Previously, we enabled jit-heap only in ARM64 macOS.
We should enable it when libpas is enabled.
- wtf/PlatformUse.h:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287941 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:54 PM Changeset in webkit [288498] by
-
- 6 edits in branches/safari-613-branch
Cherry-pick r287934. rdar://problem/86578732
Web Inspector: Unhandled exception when moving cursor mid-token after receiving CSS property name completions
https://bugs.webkit.org/show_bug.cgi?id=234393
<rdar://problem/86578732>
Reviewed by Patrick Angle.
Source/WebInspectorUI:
A faulty check for mid-token completions in
WI.CSSKeywordCompletions.forPartialPropertyName(), which are still
unsupported, prevented an early return and completions were provided unexpectedly. This had knock-on effects in
WI.SpreadsheetTextFieldwhich is not set up to handle cases where the caret is placed within the completion query.
Calculating the adjusted caret position could return a negative index and throw an unhandled exception.
Web Inspector does not currently explicitly support mid-token completions. See https://webkit.org/b/227157
The implementation of fuzzy matching for CSS completions in https://webkit.org/b/234092
means that, unhindered, the completion provider for CSS property names _can_ return mid-token completions.
Typing a query likemargin, then moving the caret to the beginning and correcting tos|marginwill return
completions like[s]croll-[margin]. Accepting the completion results in a malformedSpreadsheetTextField.value
by concatenation within the prefix itself. As the user types mid-token, the prefix becomes ambiguous.
Fixing the condition in
WI.CSSKeywordCompletions.forPartialPropertyName()now inhibits unintentional
mid-token completions when fuzzy matching is enabled.
- UserInterface/Models/CSSKeywordCompletions.js: (WI.CSSKeywordCompletions.forPartialPropertyName):
- UserInterface/Views/SpreadsheetTextField.js: (WI.SpreadsheetTextField.prototype._showSuggestionsView):
LayoutTests:
- inspector/unit-tests/css-keyword-completions-expected.txt:
- inspector/unit-tests/css-keyword-completions.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287934 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:54 PM Changeset in webkit [288497] by
-
- 7 edits2 adds in branches/safari-613-branch
Cherry-pick r287922. rdar://problem/87455957
[LFC][IFC] Incorrect negative margin handling (both left/right) with RTL inline base direction
https://bugs.webkit.org/show_bug.cgi?id=235095
Reviewed by Antti Koivisto.
Source/WebCore:
The simplified negative margin handling on inline boxes does not work well with RTL inline base direction.
With LTR direction, we could just treat the negative left margin value (which pulls content to the left)
as part the "logical width" (may resulting in negative width values) and let this shorter width pull
the the adjoining content.
However this setup produces incorrect box positions when the inline base direction is RTL.
In this patch, we switch over to a more correct inline box positioning where the negative margin
affects the logical left while it does not make the run shorter anymore.
Test: fast/inline/rtl-negative-margins.html
- layout/formattingContexts/inline/InlineLine.cpp: (WebCore::Layout::Line::appendInlineBoxStart): (WebCore::Layout::Line::appendNonReplacedInlineLevelBox):
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp: (WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
- layout/formattingContexts/inline/InlineLineBuilder.cpp: (WebCore::Layout::LineBuilder::layoutInlineContent):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp: (WebCore::Layout::InlineDisplayLineBuilder::build const):
LayoutTests:
- fast/inline/rtl-negative-margins-expected.html: Added.
- fast/inline/rtl-negative-margins.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287922 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:54 PM Changeset in webkit [288496] by
-
- 5 edits1 copy in branches/safari-613-branch
Cherry-pick r287878. rdar://problem/85359803
::backdrop pseudo element should react to associated element event listeners
https://bugs.webkit.org/show_bug.cgi?id=233072
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
Update test expectations.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt:
Source/WebCore:
Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events.html
We now append the ::backdrop renderer as a child of the top layer element, rather than a sibling of the
top layer element. This gets hit testing working properly for free.
We used to append the ::backdrop renderer as a sibling to get the proper layout, but this is no longer
necessary after r287683 and r287845.
- rendering/updating/RenderTreeUpdaterGeneratedContent.cpp: (WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):
LayoutTests:
iOS failure is due to WPT test_driver actions being unsupported.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287878 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:54 PM Changeset in webkit [288495] by
-
- 3 edits in branches/safari-613-branch/Source/WebInspectorUI
Cherry-pick r287870. rdar://problem/86543279
Web Inspector: Increase padding around icons in Alignment editor
https://bugs.webkit.org/show_bug.cgi?id=234036
<rdar://problem/86543279>
Reviewed by Devin Rousso.
Increase margin and padding around the icons, making the icons more visually appealing
and easier to distinguish and from each other.
- UserInterface/Images/AlignContentStretch.svg: The gap between rectangles was only 0.5px. Increase it to 2px.
- UserInterface/Views/AlignmentEditor.css: (.alignment-editor .glyph): (.alignment-editor .glyph:not(:first-child)): (.alignment-editor .glyph.selected): (.alignment-editor .glyph.selected:active): (.alignment-editor .glyph:not(:last-child)): Deleted. (.alignment-editor .glyph.selected + .glyph): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287870 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:54 PM Changeset in webkit [288494] by
-
- 4 edits in branches/safari-613-branch
Cherry-pick r287835. rdar://problem/87338875
[Web Animations] getKeyframes() for a CSS Animation should not use computed style for keyframes (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235028
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
Source/WebCore:
In bug 235008, we already improved the situtation by reading from the StyleProperties
associated with the StyleRuleKeyframe for CSS Animations. We're now taking the next
step by reading from the matching rules for the provided element.
There is one remaining case where we use the computed style: when the CSSValue uses
a CSS variable. To fix the css/css-animations/KeyframeEffect-getKeyframes.tentative.html
WPT entirely, we'll need to be able to substitute those in the output.
- animation/KeyframeEffect.cpp: (WebCore::KeyframeEffect::getKeyframes):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287835 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:23 PM Changeset in webkit [288493] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (iOS 15): HTMLAudioElement fails to load new audio when device is locked or safari is in background
https://bugs.webkit.org/show_bug.cgi?id=229688
<rdar://problem/82554226>
Unreviewed, adress post-review feedback.
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::updateSessionState):
- 5:11 PM Changeset in webkit [288492] by
-
- 10 edits in trunk
Web Inspector: [Flexbox] Add instrumentation/protocol bits for flex layout containers
https://bugs.webkit.org/show_bug.cgi?id=235454
Reviewed by Devin Rousso.
Source/JavaScriptCore:
- inspector/protocol/CSS.json:
Source/WebCore:
Added tests in inspector/css/nodeLayoutContextTypeChanged.html.
Add instrumentation to RenderFlexibleBox to observe elements becoming/ceasing to be flex containers. We only
instrument RenderFlexibleBox created with an Element, not a Document, since all anonymous nodes will have their
document passed, which means we would attempt to track multiple different nodes against the same document,
resulting in unexpected results. Conversely, we only instrument in the destructor for non-anonymous nodes.
- inspector/agents/InspectorCSSAgent.cpp:
(WebCore::InspectorCSSAgent::layoutContextTypeForRenderer):
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::RenderFlexibleBox):
(WebCore::RenderFlexibleBox::~RenderFlexibleBox):
Source/WebInspectorUI:
- UserInterface/Models/DOMNode.js:
LayoutTests:
- inspector/css/nodeLayoutContextTypeChanged-expected.txt:
- inspector/css/nodeLayoutContextTypeChanged.html:
- 5:07 PM Changeset in webkit [288491] by
-
- 1 copy in tags/Safari-613.1.14.41.2
Tag Safari-613.1.14.41.2.
- 5:05 PM Changeset in webkit [288490] by
-
- 9 edits in branches/safari-613.1.14.41-branch/Source
Versioning.
WebKit-7613.1.14.41.2
- 5:02 PM Changeset in webkit [288489] by
-
- 2 edits in trunk/Source/WebCore
[iOS] Avoid calling IOSurfaceGetPropertyMaximum
https://bugs.webkit.org/show_bug.cgi?id=235526
<rdar://85128431>
Reviewed by Simon Fraser and Darin Adler.
There should be no need to call IOSurfaceGetPropertyMaximum on iOS, since the return value will exceed the hardcoded maximum.
- platform/graphics/cocoa/IOSurface.mm:
(WebCore::maxSurfaceDimensionCA):
(WebCore::computeMaximumSurfaceSize):
- 4:51 PM Changeset in webkit [288488] by
-
- 1 copy in tags/Safari-613.1.14.3.2
Tag Safari-613.1.14.3.2.
- 4:48 PM Changeset in webkit [288487] by
-
- 1 copy in tags/Safari-613.1.14.2.4
Tag Safari-613.1.14.2.4.
- 4:48 PM Changeset in webkit [288486] by
-
- 1 copy in tags/Safari-613.1.14.1.6
Tag Safari-613.1.14.1.6.
- 4:48 PM Changeset in webkit [288485] by
-
- 1 copy in tags/Safari-613.1.14.0.5
Tag Safari-613.1.14.0.5.
- 4:45 PM Changeset in webkit [288484] by
-
- 9 edits in branches/safari-613.1.14.3-branch/Source
Versioning.
WebKit-7613.1.14.3.2
- 4:43 PM Changeset in webkit [288483] by
-
- 9 edits in branches/safari-613.1.14.2-branch/Source
Versioning.
WebKit-7613.1.14.2.4
- 4:38 PM Changeset in webkit [288482] by
-
- 9 edits in branches/safari-613.1.14.0-branch/Source
Versioning.
WebKit-7613.1.14.0.5
- 4:35 PM Changeset in webkit [288481] by
-
- 9 edits in branches/safari-613.1.14.1-branch/Source
Versioning.
WebKit-7613.1.14.1.6
- 4:22 PM Changeset in webkit [288480] by
-
- 9 edits in releases/WebKitGTK/webkit-2.34
Merge r288379 - Build failure with g++ 12: std::exchange undefined
https://bugs.webkit.org/show_bug.cgi?id=235445
Patch by Mike Gorse <mgorse@suse.com> on 2022-01-21
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
- API/JSRetainPtr.h: Include <utility>
Source/WebCore:
- platform/graphics/x11/XUniqueResource.h: Include <utility>
Source/WTF:
- wtf/CompletionHandler.h: Include <utility>
- wtf/MallocPtr.h: Ditto
Tools:
- ImageDiff/ImageDiff.cpp: Include <utility>
- 4:22 PM WebKitGTK/2.34.x edited by
- (diff)
- 4:19 PM Changeset in webkit [288479] by
-
- 5 edits in trunk/Tools
[EWS] Support pull request in AnaylzePatch
https://bugs.webkit.org/show_bug.cgi?id=235411
<rdar://problem/87839638>
Reviewed by Aakash Jain.
- CISupport/ews-build/factories.py:
(Factory.init): Rename AnalyzePatch to AnalyzeChange.
- CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps): Rename AnalyzePatch to AnalyzeChange.
- CISupport/ews-build/steps.py:
(AnalyzeChange): Renamed from AnalyzePatch.
(AnalyzeChange._get_patch): Create a parseable string including the files changed.
(CheckChangeRelevance): Renamed from CheckPatchRelevance.
(FindModifiedLayoutTests): Inherit from AnalyzeChange.
(AnalyzePatch): Renamed to AnalyzeChange.
(CheckPatchRelevance): Renamed to CheckChangeRelevance.
- CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/246362@main
- 4:07 PM Changeset in webkit [288478] by
-
- 4 edits in trunk
Regression (r286936): SessionStorage data is not cleared when deleting website data by modification time
https://bugs.webkit.org/show_bug.cgi?id=235542
Reviewed by Chris Dumez.
Source/WebKit:
The old behavior before r286936 is to delete SessionStorage data regardless of the modifiedSince parameter.
r286936 made it check modifiedSince and perform deleteion when modifiedSince time is -Walltime::infinity. This
patch corrects it by deleting SessionStorage data when modifiedSince time is in the past.
API test: SessionStorage.ClearByModificationTime
- NetworkProcess/storage/OriginStorageManager.cpp:
(WebKit::OriginStorageManager::StorageBucket::deleteData):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/SessionStorage.mm:
(TEST):
- 3:47 PM Changeset in webkit [288477] by
-
- 4 edits in trunk
[macOS] Update Pasteboard::read to prioritize native representations over TIFF
https://bugs.webkit.org/show_bug.cgi?id=190101
rdar://44879244
Reviewed by Ryosuke Niwa.
Source/WebCore:
Currently on macOS, when pasting image data from the pasteboard into richly editable elements, we attempt to
read the image data by checking a hard-coded list of types; in order, these are: TIFF, PDF, PNG, and finally
JPEG. Since AppKit automatically provides TIFF as an available type for compatibility when writing non-TIFF
image data to the pasteboard, this means that WebKit automatically transcodes all images to TIFF when pasting
images in editable areas.
This leads to unexpected behavior in Mail compose when using the continuity camera to insert images, since all
drawings and photos end up being inserted as (often much larger) TIFF files instead of JPEG and PNG,
respectively. To address this, we adjustPasteboard::readto prioritize image formats in the hard-coded list
above that were written directly to the pasteboard by the copier (i.e. without transcoding) before reading from
the remaining types that were added to the pasteboard by the system (and thus require extra transcoding).
In the case where only PNG and JPEG data was written to the pasteboard by the copier, this means we'll read
images as PNG and JPEG data directly. If TIFF was explicitly written as an image format to the pasteboard, this
patch will preserve existing behavior by reading the image data as TIFF.
Note that this existing logic for reading images directly into web content is an existing privacy risk, since
AppKit's pasteboard code preserves all metadata properties when transcoding between image formats. In the
future, we should add a step here to strip out as much metadata as possible here, with an allow-list of metadata
properties that are essential to preserving image fidelity (e.g. orientation).
See: <https://webkit.org/b/235534> for more details.
Test: WKAttachmentTests.PastingPreservesImageFormat
- platform/mac/PasteboardMac.mm:
(WebCore::Pasteboard::read):
Refactor this logic so that we first try to read any natively written image formats that happen to be one of
("TIFF", "PDF", "PNG", "JPEG"), before trying to read any other types that would otherwise require transcoding.
Tools:
Add a cross-platform API test to verify that when using the client-side attachments, pasted image data of
varying formats (PDF, JPEG, PNG) are read in their original form. See WebCore/ChangeLog for more details. This
test currently passes on iOS but fails on macOS, where both the PNG and JPEG images are transcoded and read as
TIFF.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(testJPEGFileURL):
(testJPEGData):
(platformCopyPDF):
(platformCopyJPEG):
(TestWebKitAPI::TEST):
Drive-by fix: also remove a JavaScript evaluation in a nearby test that could only result in an exception (and
was probably accidentally left there while writing the test).
- 3:20 PM Changeset in webkit [288476] by
-
- 10 edits in trunk/Source
[JSC][32bit] Fix regexp crash on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=234476
Reviewed by Yusuke Suzuki.
This patch fixes several regexp crashes on ARMv7 due to an incorrect
offset to retrieve the 5th argument from the stack: in ARMv7, only
4 arguments are passed via registers r0-r3i, and any other argument is
placed on the stack, however, YarrJIT was trying to get the 5th arg
from a fixed offset, so because the generateEnter() method pushed
register into the stack, the offset was wrong. This patch fixes how
the offset is calculated for MIPS and ARMv7.
This patch also introduces some small changes:
- Added static_asserts that the YarrJIT calls do indeed have 5 arguments
and that the 5th argument has the type that we expect (MatchingContextHolder*).
- Removed an unnecessary pointer from the MatchingContextHolder
constructor.
- Fixed some warnings in the YarrJIT code here and there.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):
- runtime/RegExpInlines.h:
(JSC::RegExp::matchInline):
- yarr/YarrJIT.cpp:
- yarr/YarrMatchingContextHolder.h:
(JSC::Yarr::MatchingContextHolder::MatchingContextHolder):
- 3:02 PM Changeset in webkit [288475] by
-
- 4 edits2 adds in trunk/Source/WebKit
Soft link ARKit in a separate ARKitSoftLink file
https://bugs.webkit.org/show_bug.cgi?id=235532
Patch by Ada Chan <adachan@apple.com> on 2022-01-24
Reviewed by Tim Horton.
- Shared/Cocoa/ARKitSoftLink.h: Added.
- Shared/Cocoa/ARKitSoftLink.mm: Added.
- SourcesCocoa.txt:
- UIProcess/Cocoa/SystemPreviewControllerCocoa.mm:
- WebKit.xcodeproj/project.pbxproj:
- 2:54 PM Changeset in webkit [288474] by
-
- 5 edits in trunk/Tools
[EWS] Use github.head.sha instead of revision
https://bugs.webkit.org/show_bug.cgi?id=235521
<rdar://problem/87970427>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/events.py:
(Events.buildFinishedGitHub): Use github.head.sha instead of revision.
(Events.stepStartedGitHub): Ditto.
- Tools/CISupport/ews-build/master.cfg: Extract github.head.sha from hook.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin._is_pr_obsolete): Use github.head.sha instead of revision.
(ConfigureBuild.add_pr_details): Ditto.
(ValidateChange.validate_github): Ditto.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/246357@main
- 2:51 PM Changeset in webkit [288473] by
-
- 31 edits2 adds in trunk
[JSC] Support import assertion syntax
https://bugs.webkit.org/show_bug.cgi?id=235312
Reviewed by Ross Kirsling.
JSTests:
- modules/import-meta-syntax.js:
(shouldThrow):
- stress/import-syntax.js:
- stress/modules-syntax-error.js:
- stress/modules-syntax-import-assertion-error.js: Added.
(shouldThrow):
- stress/modules-syntax-import-assertion.js: Added.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/css-module-worker-test-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/css-module/import-css-module-dynamic-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/dynamic-import-with-assertion-argument.any-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/import-assertions/dynamic-import-with-assertion-argument.any.worker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/charset-bom.any-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/charset-bom.any.worker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.any-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/invalid-content-type.any.worker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/json-module-service-worker-test.https-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/non-object.any.worker-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/repeated-imports.any-expected.txt:
- web-platform-tests/html/semantics/scripting-1/the-script-element/json-module/repeated-imports.any.worker-expected.txt:
- web-platform-tests/service-workers/service-worker/dedicated-worker-service-worker-interception.https-expected.txt:
- web-platform-tests/workers/dedicated-worker-parse-error-failure-expected.txt:
- web-platform-tests/workers/modules/dedicated-worker-options-credentials-expected.txt:
Source/JavaScriptCore:
This patch adds syntax support for import assertion[1].
This does not add the actual feature propagating import assertion
to the module request yet.
[1]: https://github.com/tc39/proposal-import-assertions
- bytecompiler/NodesCodegen.cpp:
(JSC::ImportNode::emitBytecode):
- parser/ASTBuilder.h:
(JSC::ASTBuilder::createImportExpr):
(JSC::ASTBuilder::createImportAssertionList):
(JSC::ASTBuilder::appendImportAssertion):
(JSC::ASTBuilder::createImportDeclaration):
(JSC::ASTBuilder::createExportAllDeclaration):
(JSC::ASTBuilder::createExportNamedDeclaration):
- parser/NodeConstructors.h:
(JSC::ImportNode::ImportNode):
(JSC::ImportDeclarationNode::ImportDeclarationNode):
(JSC::ExportAllDeclarationNode::ExportAllDeclarationNode):
(JSC::ExportNamedDeclarationNode::ExportNamedDeclarationNode):
- parser/Nodes.h:
- parser/Parser.cpp:
(JSC::Parser<LexerType>::parseImportAssertions):
(JSC::Parser<LexerType>::parseImportDeclaration):
(JSC::Parser<LexerType>::parseExportDeclaration):
(JSC::Parser<LexerType>::parseMemberExpression):
- parser/Parser.h:
- parser/SyntaxChecker.h:
(JSC::SyntaxChecker::createImportExpr):
(JSC::SyntaxChecker::createImportAssertionList):
(JSC::SyntaxChecker::appendImportAssertion):
(JSC::SyntaxChecker::createImportDeclaration):
(JSC::SyntaxChecker::createExportAllDeclaration):
(JSC::SyntaxChecker::createExportNamedDeclaration):
- runtime/JSGlobalObjectFunctions.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/OptionsList.h:
- 2:47 PM Changeset in webkit [288472] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WTF
Merge r288459 - REGRESION(r288200): [GTK][WPE] Build broken on Ubuntu 18.04
https://bugs.webkit.org/show_bug.cgi?id=235401
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24
Reviewed by Adrian Perez de Castro.
This implements WTF_CRASH_UNDER_CONSTEXPR_CONTEXT() properly for compatibility with older
compilers.
- wtf/Assertions.h:
- 2:47 PM Changeset in webkit [288471] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WTF
Merge r288460 - Build failure with GCC 12: no matching function for call to 'end(LChar [7])'
https://bugs.webkit.org/show_bug.cgi?id=235458
Unreviewed. Just need to #include <string> here.
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24
- wtf/text/IntegerToStringConversion.h:
- 2:33 PM Changeset in webkit [288470] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: Network: move filtering checkboxes into a single gear-with-contextmenu to save space
https://bugs.webkit.org/show_bug.cgi?id=235538
Reviewed by Patrick Angle.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
(WI.NetworkTableContentView.prototype.get navigationItems):
(WI.NetworkTableContentView.prototype.get filterNavigationItems):
(WI.NetworkTableContentView.prototype.closed):
(WI.NetworkTableContentView.prototype._changeCollection):
(WI.NetworkTableContentView.prototype._updateOtherFiltersNavigationItemState): Added.
(WI.NetworkTableContentView.prototype._handleOtherFiltersNavigationItemContextMenu): Added.
(WI.NetworkTableContentView.prototype._handleClearNetworkOnNavigateChanged): Renamed from_handleClearNetworkOnNavigateChanged.
(WI.NetworkTableContentView.prototype._handleGroupMediaRequestsByDOMNodeChanged): Renamed from_handleGroupMediaRequestsByDOMNodeCheckedDidChange.
- UserInterface/Views/NetworkTableContentView.css:
(.network-other-filters-button > .glyph): Added.
(.network-other-filters-button:active > .glyph): Added.
(.network-other-filters-button.active > .glyph): Added.
(.network-other-filters-button.active:active > .glyph): Added.
- Localizations/en.lproj/localizedStrings.js:
- 2:31 PM Changeset in webkit [288469] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Network: collapse type filter scope bar into a single button to save space
https://bugs.webkit.org/show_bug.cgi?id=235537
Reviewed by Patrick Angle.
- UserInterface/Views/NetworkTableContentView.js:
(WI.NetworkTableContentView):
- UserInterface/Views/NetworkTableContentView.css:
(.network-type-filter-scope-bar.default-item-selected:not(:hover)): Added.
(.network-type-filter-scope-bar.default-item-selected:hover): Added.
- 2:31 PM Changeset in webkit [288468] by
-
- 2 edits in trunk/Tools/Scripts/libraries/webkitscmpy/webkitscmpy
Incorrect pull-request url printed by git-webkit
https://bugs.webkit.org/show_bug.cgi?id=235513
Reviewed by Jonathan Bedard.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.PRGenerator.PullRequest):
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
Canonical link: https://commits.webkit.org/246353@main
- 2:22 PM Changeset in webkit [288467] by
-
- 1 copy in tags/Safari-613.1.14.1.5
Tag Safari-613.1.14.1.5.
- 2:05 PM Changeset in webkit [288466] by
-
- 9 edits2 adds in trunk
REGRESSION (iOS 15): HTMLAudioElement fails to load new audio when device is locked or safari is in background
https://bugs.webkit.org/show_bug.cgi?id=229688
<rdar://problem/82554226>
Reviewed by Jer Noble.
Source/WebCore:
An iOS application loses its NowPlaying status as soon as the AudioSession category
is set to Ambient, and it can only get it back again by changing the category
to Playback *and* starting playback. When an application is in the background, however,
it can't start playback unless it *already* has NowPlaying status. So, ipso facto,
background playback will always fail once the category is set to Ambient.
If an AudioSession's category is set to Playback when it is activated, it will
interrupt another application playing audio, activate Bluetooth routes, etc.
This means WebKit has to relinquish Playback when a page is unable to produce audio
because AVFoundation automatically activates the audio session when playback starts
- even if the AVPlayer is muted or has no audio.
To allow pages that were playing audio when WebKit went into the background to
continue to play after switching urls or activating another media element, add a
grace period when switch from Playback to Ambient.
Test: media/audio-session-category.html
- platform/audio/cocoa/MediaSessionManagerCocoa.mm:
(WebCore::MediaSessionManagerCocoa::updateSessionState):
Source/WebKit:
- WebProcess/GPU/media/RemoteAudioSession.cpp:
(WebKit::RemoteAudioSession::category const): Return the most recently set category
on all platforms so it is possible to test.
LayoutTests:
- fast/mediasession/metadata/audio-track-enabled.html: Wait longer for the audio session
category to be reset.
- media/audio-session-category-expected.txt: Added.
- media/audio-session-category.html: Added.
- platform/gtk/TestExpectations: Skip new test.
- platform/mac-wk1/TestExpectations: Skip new test, MediaStream isn't supported
on WK1.
- 2:02 PM Changeset in webkit [288465] by
-
- 71 edits in trunk
[CSS Container Queries] Basic parsing support for container-type property
https://bugs.webkit.org/show_bug.cgi?id=235514
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt:
- web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt:
- web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt:
- web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt:
- web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/conditional-container-status-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-type-computed-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-type-parsing-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-basic-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-computational-independence-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-selection-expected.txt:
- web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt:
- web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt:
- web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt:
- web-platform-tests/css/css-contain/container-queries/display-none-expected.txt:
- web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt:
- web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt:
- web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt:
- web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt:
- web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width-expected.txt:
- web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt:
- web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt:
- web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt:
- web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt:
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt:
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt:
- web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt:
- web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt:
- web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt:
- web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt:
- web-platform-tests/css/css-contain/container-queries/style-change-in-container-expected.txt:
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt:
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt:
- web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt:
- web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt:
- web-platform-tests/css/css-contain/container-queries/transition-style-change-event-expected.txt:
- web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt:
- web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic-expected.txt:
- web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt:
Source/WebCore:
Parse 'container-type' with values 'none', 'size' and 'inline-size.
https://drafts.csswg.org/css-contain-3/#container-type
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator ContainerType const):
- css/CSSProperties.json:
- css/CSSValueKeywords.in:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::containerType const):
(WebCore::RenderStyle::setContainerType):
(WebCore::RenderStyle::initialContainerType):
- rendering/style/RenderStyleConstants.h:
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
- rendering/style/StyleRareNonInheritedData.h:
- 1:55 PM WebKitGTK/2.34.x edited by
- (diff)
- 1:40 PM Changeset in webkit [288464] by
-
- 9 edits in trunk/Source/ThirdParty/libwebrtc
Cherry-pick WebRTC 235826 change
https://bugs.webkit.org/show_bug.cgi?id=235510
<rdar://87884184>
Reviewed by Eric Carlson.
Cherry-picking above fixing for compliance.
- Source/webrtc/media/engine/webrtc_media_engine.cc:
- Source/webrtc/media/engine/webrtc_media_engine.h:
- Source/webrtc/media/engine/webrtc_media_engine_unittest.cc:
- Source/webrtc/media/engine/webrtc_video_engine.cc:
- Source/webrtc/media/engine/webrtc_video_engine.h:
- Source/webrtc/media/engine/webrtc_voice_engine.cc:
- Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map.cc:
- Source/webrtc/modules/rtp_rtcp/source/rtp_header_extension_map_unittest.cc:
- 1:12 PM Changeset in webkit [288463] by
-
- 5 edits in trunk/Source/WebCore
file.stream() is slow and CPU-bound
https://bugs.webkit.org/show_bug.cgi?id=235448
Reviewed by Alex Christensen.
We introduce a ReadAsBinaryChunks mode to prevent storing the whole file in memory.
Use this in Blob stream implementation.
The new implementation is much faster for big files given it does not need to keep in memory the whole file.
Covered by existing tests.
- fileapi/Blob.cpp:
- fileapi/FileReaderLoader.cpp:
- fileapi/FileReaderLoader.h:
- fileapi/FileReaderLoaderClient.h:
- 1:11 PM Changeset in webkit [288462] by
-
- 5 edits in trunk
[ iOS Release ] fast/mediastream/mediaElement-gc.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=231601
<rdar://problem/84158942>
Reviewed by Eric Carlson.
Source/WebCore:
Covered by existing test.
- testing/Internals.cpp:
Looking at https://build.webkit.org/results/Apple-iOS-15-Simulator-Debug-WK2-Tests/r287831%20(1192)/fast/mediastream/mediaElement-gc-pretty-diff.html,
we can see the number of media elements is 2 while the test has created only 1 element.
We update Internals.mediaElementCount to only count elements of the current document
LayoutTests:
- fast/mediastream/mediaElement-gc.html: add more precise checks to get better error information if test continues to be flaky.
- platform/ios-wk2/TestExpectations:
- 12:33 PM Changeset in webkit [288461] by
-
- 3 edits in trunk/Source/ThirdParty/libwebrtc
Reject large number of WebRTC audio channels
https://bugs.webkit.org/show_bug.cgi?id=235511
Reviewed by Eric Carlson.
Cherry-picking WebRTC upstream fix for compliance.
- Source/webrtc/pc/webrtc_sdp.cc:
- Source/webrtc/pc/webrtc_sdp_unittest.cc:
- 12:28 PM Changeset in webkit [288460] by
-
- 2 edits in trunk/Source/WTF
Build failure with GCC 12: no matching function for call to 'end(LChar [7])'
https://bugs.webkit.org/show_bug.cgi?id=235458
Unreviewed. Just need to #include <string> here.
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24
- wtf/text/IntegerToStringConversion.h:
- 12:13 PM Changeset in webkit [288459] by
-
- 2 edits in trunk/Source/WTF
REGRESION(r288200): [GTK][WPE] Build broken on Ubuntu 18.04
https://bugs.webkit.org/show_bug.cgi?id=235401
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-24
Reviewed by Adrian Perez de Castro.
This implements WTF_CRASH_UNDER_CONSTEXPR_CONTEXT() properly for compatibility with older
compilers.
- wtf/Assertions.h:
- 12:01 PM Changeset in webkit [288458] by
-
- 7 edits in trunk
Add FixedVector::clear(), contains(), find(), and findMatching().
https://bugs.webkit.org/show_bug.cgi?id=234855
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Use FixedVector instead of Vector in DeferredWorkTimer::TicketData now that
the needed APIs have been added.
- runtime/DeferredWorkTimer.h:
Source/WTF:
- wtf/FixedVector.h:
(WTF::FixedVector::clear):
(WTF::FixedVector<T>::contains const):
(WTF::FixedVector<T>::findMatching const):
(WTF::FixedVector<T>::find const):
Tools:
Added new tests for FixedVector. Also added the ClearContainsAndFind test to
Vector since it is missing these tests.
- TestWebKitAPI/Tests/WTF/FixedVector.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WTF/Vector.cpp:
(TestWebKitAPI::TEST):
- 11:19 AM Changeset in webkit [288457] by
-
- 1 copy in tags/Safari-613.1.14.0.4
Tag Safari-613.1.14.0.4.
- 11:17 AM Changeset in webkit [288456] by
-
- 9 edits in branches/safari-613.1.14.1-branch/Source
Versioning.
WebKit-7613.1.14.1.5
- 11:14 AM Changeset in webkit [288455] by
-
- 9 edits in branches/safari-613.1.14.0-branch/Source
Versioning.
WebKit-7613.1.14.0.4
- 11:09 AM Changeset in webkit [288454] by
-
- 2 edits in trunk/Source/WebCore
Pass the Document through bindings to KeyframeEffect::setKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=235503
Unreviewed build fix, I had a merge issue when landing r288452.
- animation/KeyframeEffect.idl:
- 11:01 AM Changeset in webkit [288453] by
-
- 2 edits in trunk/Source/WebCore
Fix macOS build after r288442
Unreviewed build fix.
- DerivedSources-output.xcfilelist: Add the new IDL file to derived sources.
- 10:41 AM Changeset in webkit [288452] by
-
- 5 edits in trunk/Source/WebCore
Pass the Document through bindings to KeyframeEffect::setKeyframes()
https://bugs.webkit.org/show_bug.cgi?id=235503
Reviewed by Sam Weinig.
We're making a similar change as part of bug 232086 for getKeyframes()
after a suggestion from Darin during review. Since the bindings code
can guarantee a Document for these bindings-exposed methods, we might
as well use it rather than obtain the Document through the global object.
- animation/KeyframeEffect.cpp:
(WebCore::processKeyframeLikeObject):
(WebCore::processIterableKeyframes):
(WebCore::processPropertyIndexedKeyframes):
(WebCore::KeyframeEffect::create):
(WebCore::KeyframeEffect::setBindingsKeyframes):
(WebCore::KeyframeEffect::setKeyframes):
(WebCore::KeyframeEffect::processKeyframes):
- animation/KeyframeEffect.h:
- animation/KeyframeEffect.idl:
- dom/Element.cpp:
(WebCore::Element::animate):
- 9:44 AM Changeset in webkit [288451] by
-
- 6 edits in trunk/Source
Simplify accesses to SystemVersion.plist
https://bugs.webkit.org/show_bug.cgi?id=234306
Reviewed by Alexey Proskuryakov.
Source/WebCore:
No new tests since no behavior change is expected.
- platform/cocoa/SystemVersion.mm:
(WebCore::createSystemMarketingVersion):
Read the SystemVersion.plist file using _CFCopySystemVersionDictionary()
rather than by manually constructing the path and initializing the dictionary.
Source/WebCore/PAL:
- pal/spi/cf/CFUtilitiesSPI.h:
Forward declare _kCFSystemVersionProductUserVisibleVersionKey, used
by WebCore's SystemVersion.mm
Source/WebKit:
No new tests since no behavior change is expected.
- UIProcess/Inspector/mac/WebInspectorUIProxyMac.mm:
(WebKit::WebInspectorUIProxy::infoForLocalDebuggable):
Use _CFCopySystemVersionDictionary() to locate and load the
SystemVersion.plist file rather than doing that all manually.
(WebKit::systemVersionPlist): Deleted.
- 9:38 AM Changeset in webkit [288450] by
-
- 2 edits in trunk/Source/WebCore
Remove customElements when transitioning documents
https://bugs.webkit.org/show_bug.cgi?id=222727
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-24
Reviewed by Ryosuke Niwa.
Remove customElements when transitioning documents
of Window since the old document may be gone.
Test: fast/js-promise/js-promise-invalid-context-access.html
- page/DOMWindow.cpp:
(WebCore::DOMWindow::didSecureTransitionTo):
(WebCore::DOMWindow::ensureCustomElementRegistry):
- 9:36 AM Changeset in webkit [288449] by
-
- 16 edits in trunk/LayoutTests
Add pixel tolerance to some compositing tests
https://bugs.webkit.org/show_bug.cgi?id=235462
Reviewed by Darin Adler.
Add pixel tolerance to tests whose output is slightly different when accelerated drawing
is enabled in the iOS simulator, for bug 231828.
- compositing/clipping/border-radius-async-overflow-non-stacking.html:
- compositing/geometry/css-clip-oversize.html:
- compositing/geometry/scroller-with-clipping-and-foreground-layers.html:
- compositing/overlap-blending/children-opacity-huge.html:
- compositing/overlap-blending/children-opacity-no-overlap.html:
- compositing/patterns/direct-pattern-compositing-add-text.html:
- compositing/patterns/direct-pattern-compositing-contain.html:
- compositing/patterns/direct-pattern-compositing-cover.html:
- compositing/patterns/direct-pattern-compositing-padding.html:
- compositing/patterns/direct-pattern-compositing-position.html:
- compositing/patterns/direct-pattern-compositing-size.html:
- compositing/patterns/direct-pattern-compositing.html:
- compositing/reflections/nested-reflection-opacity2.html:
- compositing/reflections/opacity-in-reflection.html:
- compositing/scrolling/async-overflow-scrolling/border-radius-on-scroll-container.html:
- 8:22 AM Changeset in webkit [288448] by
-
- 2 edits in trunk/Source/WebCore
[GTK][a11y] Do not expose the slider thumb to ATs with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235487
Reviewed by Adrian Perez de Castro.
We expose the slider as a whole but not its value indicator.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
- 8:21 AM Changeset in webkit [288447] by
-
- 3 edits in trunk/Source/WebCore
[GTK][a11y] Only consider links as replaced objects when iterating with EmitsObjectReplacementCharacters
https://bugs.webkit.org/show_bug.cgi?id=235474
Reviewed by Adrian Perez de Castro.
We don't want to consider links replaced objects in other cases.
- editing/TextIterator.cpp:
(WebCore::isRendererReplacedElement): Add TextIteratorBehaviors parameter to check if
EmitsObjectReplacementCharacters is present.
(WebCore::TextIterator::advance): Pass m_behaviors to isRendererReplacedElement().
(WebCore::SimplifiedBackwardsTextIterator::advance): Ditto.
(WebCore::isInsideReplacedElement): Add TextIteratorBehaviors parameter and pass it to isRendererReplacedElement().
(WebCore::resolveCharacterRange): Pass behaviors to isInsideReplacedElement().
- editing/TextIterator.h:
(WebCore::isRendererReplacedElement): Add optional parameter TextIteratorBehaviors.
- 8:20 AM Changeset in webkit [288446] by
-
- 3 edits in trunk/Source/WebCore
[GTK][a11y] Do not use heap allocated timers in AccessibilityAtspi
https://bugs.webkit.org/show_bug.cgi?id=235473
Reviewed by Adrian Perez de Castro.
It was needed to ensure they were constructed in the ax thread, but they are now always created in the main
thread, so they can be created once in the constructor.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::AccessibilityAtspi):
(WebCore::AccessibilityAtspi::addClient):
(WebCore::AccessibilityAtspi::removeClient):
(WebCore::AccessibilityAtspi::addToCacheIfPending):
(WebCore::AccessibilityAtspi::addAccessible):
(WebCore::AccessibilityAtspi::cacheClearTimerFired):
(WebCore::AccessibilityAtspi::scheduleCacheUpdate): Deleted.
- accessibility/atspi/AccessibilityAtspi.h:
- 8:19 AM Changeset in webkit [288445] by
-
- 2 edits in trunk/Source/WebCore
[GTK][a11y] Emit children-changed:remove signal even for ignored objects with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235472
Reviewed by Adrian Perez de Castro.
We are returning early in case the object is ignored, but that could change, so if an object is not initially
ignored and is registered we still need to emit children-changed:remove signal when destroyed to ensure the
atspi cache is updated.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::childRemoved):
- 8:18 AM Changeset in webkit [288444] by
-
- 2 edits in trunk/Tools
[GTK][a11y] Test accessibility/url-test.html fails with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235486
Reviewed by Darin Adler.
Ensure we don't remove the fragment id of URL when removing the base path.
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::AccessibilityUIElement::url):
- 8:13 AM Changeset in webkit [288443] by
-
- 2 edits in trunk/Tools
Allow configuring multiple user credentials on ews
https://bugs.webkit.org/show_bug.cgi?id=235301
Reviewed by Jonathan Bedard.
- Tools/CISupport/ews-build/master.cfg:
Canonical link: https://commits.webkit.org/246332@main
- 8:05 AM Changeset in webkit [288442] by
-
- 34 edits3 copies25 adds in trunk
[Shadow Realms] Use WebCore module loaders for shadow realm importValue
https://bugs.webkit.org/show_bug.cgi?id=234155
Patch by Joseph Griego <jgriego@igalia.com> on 2022-01-24
Reviewed by Darin Adler.
Source/JavaScriptCore:
Add hook for creating the new realm object for shadow realms, since
importValue requires the cooperation of the module loading logic to work
right.
- API/JSAPIGlobalObject.cpp:
- jsc.cpp:
- runtime/JSGlobalObject.cpp:
- runtime/JSGlobalObject.h:
(JSC::JSGlobalObject::deriveShadowRealmGlobalObject):
- runtime/ShadowRealmConstructor.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/ShadowRealmObject.cpp:
(JSC::ShadowRealmObject::create):
- runtime/ShadowRealmObject.h:
Source/WebCore:
Introduces a new ShadowRealmGlobalScope that serves as the
implementation of a global object for code running in a shadow realm--to
implement the requirements of JS(DOM)GlobalObject, it simply delegates
all methods to the incubating (enclosing) realm, with the exception of
methods related to module loading, for which it uses a custom
ScriptModuleLoader configured to use the appropriate global object when
evaluating module code.
Also requires some adjustment to the IDL-driven code generation--the
current draft spec requires that the global object for the shadow realm
be an ordinary object--ShadowRealmGlobalScope is opted out of codegen
for producing a custom prototype, but can still have APIs included as
properties if they are marked asExposed=ShadowRealmorExposed=*
Tests: js/ShadowRealm-evaluate.html
js/ShadowRealm-importValue.html
js/ShadowRealm-worker.html
- CMakeLists.txt:
- DerivedSources.make:
- Sources.txt:
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSDOMGlobalObject::scriptExecutionContext const):
(WebCore::scriptModuleLoader):
(WebCore::JSDOMGlobalObject::deriveShadowRealmGlobalObject):
- bindings/js/JSDOMGlobalObject.h:
- bindings/js/JSDOMWindowBase.cpp:
- bindings/js/JSRemoteDOMWindowBase.cpp:
- bindings/js/JSShadowRealmGlobalScopeBase.cpp: Added.
(WebCore::JSShadowRealmGlobalScopeBase::JSShadowRealmGlobalScopeBase):
(WebCore::JSShadowRealmGlobalScopeBase::finishCreation):
(WebCore::JSShadowRealmGlobalScopeBase::visitChildrenImpl):
(WebCore::JSShadowRealmGlobalScopeBase::scriptExecutionContext const):
(WebCore::JSShadowRealmGlobalScopeBase::incubating const):
(WebCore::JSShadowRealmGlobalScopeBase::destroy):
(WebCore::JSShadowRealmGlobalScopeBase::supportsRichSourceInfo):
(WebCore::JSShadowRealmGlobalScopeBase::shouldInterruptScript):
(WebCore::JSShadowRealmGlobalScopeBase::shouldInterruptScriptBeforeTimeout):
(WebCore::JSShadowRealmGlobalScopeBase::javaScriptRuntimeFlags):
(WebCore::JSShadowRealmGlobalScopeBase::scriptExecutionStatus):
(WebCore::JSShadowRealmGlobalScopeBase::reportViolationForUnsafeEval):
(WebCore::JSShadowRealmGlobalScopeBase::queueMicrotaskToEventLoop):
(WebCore::toJS):
- bindings/js/JSShadowRealmGlobalScopeBase.h: Added.
(WebCore::JSShadowRealmGlobalScopeBase::subspaceFor):
(WebCore::JSShadowRealmGlobalScopeBase::wrapped const):
(WebCore::JSShadowRealmGlobalScopeBase::incubating):
(WebCore::toJS):
- bindings/js/JSWorkerGlobalScopeBase.cpp:
- bindings/js/JSWorkletGlobalScopeBase.cpp:
- bindings/js/ScriptModuleLoader.cpp:
(WebCore::ScriptModuleLoader::shadowRealmLoader const):
(WebCore::ScriptModuleLoader::evaluate):
- bindings/js/ScriptModuleLoader.h:
- bindings/js/WebCoreJSClientData.cpp:
(WebCore::JSVMClientData::JSVMClientData):
- bindings/js/WebCoreJSClientData.h:
- bindings/scripts/CodeGeneratorJS.pm:
(IsDOMGlobalObject):
(ShouldUseOrdinaryObjectPrototype):
(GenerateHeader):
(GenerateRuntimeEnableConditionalStringForExposed):
(GenerateImplementation):
(GeneratePrototypeDeclaration):
(GenerateConstructorHelperMethods):
- bindings/scripts/preprocess-idls.pl:
- bindings/scripts/test/ShadowRealmGlobalScopeConstructors.idl: Added.
- bindings/scripts/test/SupplementalDependencies.dep:
- dom/PromiseRejectionEvent.idl:
- dom/ScriptExecutionContext.h:
(WebCore::ScriptExecutionContext::isShadowRealmGlobalScope const):
- page/ShadowRealmGlobalScope.cpp: Copied from Source/JavaScriptCore/runtime/ShadowRealmObject.h.
(WebCore::ShadowRealmGlobalScope::tryCreate):
(WebCore::ShadowRealmGlobalScope::ShadowRealmGlobalScope):
(WebCore::ShadowRealmGlobalScope::moduleLoader):
(WebCore::ShadowRealmGlobalScope::wrapper):
(WebCore::ShadowRealmGlobalScope::~ShadowRealmGlobalScope):
- page/ShadowRealmGlobalScope.h: Copied from Source/JavaScriptCore/runtime/ShadowRealmObject.h.
(WebCore::ShadowRealmGlobalScope::self):
- page/ShadowRealmGlobalScope.idl: Copied from Source/JavaScriptCore/runtime/ShadowRealmObject.h.
Tools:
- Scripts/webkitpy/bindings/main.py:
(BindingsTests.generate_supplemental_dependency):
(BindingsTests.main):
LayoutTests:
Improve test coverage a bit for shadow realms, especially running
nested, in worker contexts, or in iframes.
- js/ShadowRealm-evaluate-expected.txt: Added.
- js/ShadowRealm-evaluate.html: Added.
- js/ShadowRealm-importValue-expected.txt: Added.
- js/ShadowRealm-importValue.html: Added.
- js/ShadowRealm-worker-expected.txt: Added.
- js/ShadowRealm-worker.html: Added.
- js/script-tests/ShadowRealm-evaluate.js: Added.
(assert_closed_opener):
(promise_test.async t):
- js/script-tests/ShadowRealm-importValue.js: Added.
(wrappedLog):
(promise_test.async t):
- js/script-tests/example-module.js: Added.
(check):
(log_equal):
(check_nested):
(setValue):
- js/script-tests/shadow-realm-worker.js: Added.
(assert_equals):
(async test):
(async await):
- 8:03 AM Changeset in webkit [288441] by
-
- 2 edits in trunk/Source/WebCore
AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>
Addressing post commit comments.
Reviewed by Eric Carlson and Geoff Garen.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
Fixed the release logging.
- 8:02 AM Changeset in webkit [288440] by
-
- 6 edits2 adds in trunk
[Model] Add testing coverage for camera API
https://bugs.webkit.org/show_bug.cgi?id=233643
Reviewed by Dean Jackson.
Source/WebCore:
Test: model-element/model-element-camera.html
We reject the promise returned by the getCamera() and setCamera() methods
with an Exception so that we can correctly test this behavior. We also make
the keys on HTMLModelElementCamera be required to reject incomplete objects.
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::getCamera):
(WebCore::HTMLModelElement::setCamera):
- Modules/model-element/HTMLModelElementCamera.idl:
LayoutTests:
Add a new test that exercises the getCamera() and setCamera() methods.
These are currently skipped in OpenSource and will be enabled on internal bots.
- model-element/model-element-camera-expected.txt: Added.
- model-element/model-element-camera.html: Added.
- platform/ios/TestExpectations:
- platform/mac/TestExpectations:
- 7:37 AM Changeset in webkit [288439] by
-
- 2 edits in trunk/Source/WebCore
Reconfiguring the CoreAudioSharedUnit should take into account that there is a speaker sample producer
https://bugs.webkit.org/show_bug.cgi?id=235397
<rdar://problem/87819949>
Reviewed by Eric Carlson and Geoff Garen.
Address post-commit comments.
Introduce a boolean to make high priority thread callbacks no-ops when reconfiguring the audio unit.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
- 6:26 AM Changeset in webkit [288438] by
-
- 63 edits264 adds in trunk/LayoutTests
[CSS Container Queries] Import WPT tests
https://bugs.webkit.org/show_bug.cgi?id=235508
Reviewed by Alexey Shvayka.
LayoutTests/imported/w3c:
Import css/css-contain/container-queries and also update css/css-contain.
- resources/resource-files.json:
- web-platform-tests/css/css-contain/contain-content-001.html:
- web-platform-tests/css/css-contain/contain-content-002.html:
- web-platform-tests/css/css-contain/contain-content-003.html:
- web-platform-tests/css/css-contain/contain-content-004.html:
- web-platform-tests/css/css-contain/contain-content-011.html:
- web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-fieldset-ref.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-legend-ref.html: Added.
- web-platform-tests/css/css-contain/contain-layout-baseline-001.html:
- web-platform-tests/css/css-contain/contain-layout-breaks-002.html:
- web-platform-tests/css/css-contain/contain-layout-cell-001.html:
- web-platform-tests/css/css-contain/contain-layout-cell-002.html:
- web-platform-tests/css/css-contain/contain-layout-formatting-context-margin-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-layout-ifc-022.html:
- web-platform-tests/css/css-contain/contain-layout-ignored-cases-ib-split-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-layout-ignored-cases-no-principal-box-003-ref.html: Added.
- web-platform-tests/css/css-contain/contain-layout-overflow-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-layout-overflow-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-layout-size-003.html:
- web-platform-tests/css/css-contain/contain-layout-suppress-baseline-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-layout-suppress-baseline-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-022.html:
- web-platform-tests/css/css-contain/contain-paint-023.html:
- web-platform-tests/css/css-contain/contain-paint-024.html:
- web-platform-tests/css/css-contain/contain-paint-047.html:
- web-platform-tests/css/css-contain/contain-paint-048.html:
- web-platform-tests/css/css-contain/contain-paint-baseline-001.html:
- web-platform-tests/css/css-contain/contain-paint-cell-001.html:
- web-platform-tests/css/css-contain/contain-paint-cell-002.html:
- web-platform-tests/css/css-contain/contain-paint-clip-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-clip-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-clip-003-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-clip-004-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-clip-006-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-clip-011.html:
- web-platform-tests/css/css-contain/contain-paint-clip-012.html:
- web-platform-tests/css/css-contain/contain-paint-clip-013.html:
- web-platform-tests/css/css-contain/contain-paint-clip-014.html:
- web-platform-tests/css/css-contain/contain-paint-clip-015.html:
- web-platform-tests/css/css-contain/contain-paint-clip-016.html:
- web-platform-tests/css/css-contain/contain-paint-clip-017.html:
- web-platform-tests/css/css-contain/contain-paint-clip-018.html:
- web-platform-tests/css/css-contain/contain-paint-clip-019.html:
- web-platform-tests/css/css-contain/contain-paint-containing-block-absolute-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-containing-block-fixed-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-formatting-context-float-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-formatting-context-margin-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-ifc-011.html:
- web-platform-tests/css/css-contain/contain-paint-ignored-cases-ib-split-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-ignored-cases-internal-table-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-ignored-cases-no-principal-box-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-containing-block-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-ignored-cases-ruby-stacking-and-clipping-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-size-001.html:
- web-platform-tests/css/css-contain/contain-paint-size-002.html:
- web-platform-tests/css/css-contain/contain-paint-size-003.html:
- web-platform-tests/css/css-contain/contain-paint-stacking-context-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-paint-table-001.html:
- web-platform-tests/css/css-contain/contain-paint-table-002.html:
- web-platform-tests/css/css-contain/contain-size-021.html:
- web-platform-tests/css/css-contain/contain-size-023.html:
- web-platform-tests/css/css-contain/contain-size-025.html:
- web-platform-tests/css/css-contain/contain-size-027.html:
- web-platform-tests/css/css-contain/contain-size-041.html:
- web-platform-tests/css/css-contain/contain-size-042.html:
- web-platform-tests/css/css-contain/contain-size-051.html:
- web-platform-tests/css/css-contain/contain-size-052.html:
- web-platform-tests/css/css-contain/contain-size-056.html:
- web-platform-tests/css/css-contain/contain-size-061.html:
- web-platform-tests/css/css-contain/contain-size-062.html:
- web-platform-tests/css/css-contain/contain-size-063.html:
- web-platform-tests/css/css-contain/contain-size-baseline-001.html:
- web-platform-tests/css/css-contain/contain-size-block-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-block-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-block-003-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-block-004-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-button-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-fieldset-003-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-fieldset-004-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-flex-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-grid-005-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-inline-block-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-inline-block-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-inline-block-003-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-inline-block-004-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-inline-flex-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-monolithic-001.html:
- web-platform-tests/css/css-contain/contain-size-multicol-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-multicol-003-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-multicol-004-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-replaced-003-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-replaced-004-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-replaced-005-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-replaced-006-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-select-elem-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-select-elem-002-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-select-elem-003-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-select-elem-004-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-select-elem-005-ref.html: Added.
- web-platform-tests/css/css-contain/contain-size-table-caption-001-ref.html: Added.
- web-platform-tests/css/css-contain/contain-strict-001.html:
- web-platform-tests/css/css-contain/contain-strict-002.html:
- web-platform-tests/css/css-contain/contain-strict-003.html:
- web-platform-tests/css/css-contain/contain-strict-011.html:
- web-platform-tests/css/css-contain/contain-style-baseline-001.html:
- web-platform-tests/css/css-contain/contain-style-counters-001.html:
- web-platform-tests/css/css-contain/contain-style-counters-002.html:
- web-platform-tests/css/css-contain/contain-style-counters-003.html:
- web-platform-tests/css/css-contain/contain-style-counters-004.html:
- web-platform-tests/css/css-contain/contain-style-counters-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/animation-container-size-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/animation-container-size.html: Added.
- web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/animation-container-type-dynamic.html: Added.
- web-platform-tests/css/css-contain/container-queries/animation-nested-animation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/animation-nested-animation.html: Added.
- web-platform-tests/css/css-contain/container-queries/animation-nested-transition-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/animation-nested-transition.html: Added.
- web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/aspect-ratio-feature-evaluation.html: Added.
- web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/at-container-parsing.html: Added.
- web-platform-tests/css/css-contain/container-queries/auto-scrollbars-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/auto-scrollbars.html: Added.
- web-platform-tests/css/css-contain/container-queries/backdrop-invalidation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/backdrop-invalidation.html: Added.
- web-platform-tests/css/css-contain/container-queries/change-display-in-container-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/change-display-in-container-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/change-display-in-container.html: Added.
- web-platform-tests/css/css-contain/container-queries/chrome-legacy-skip-recalc-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/chrome-legacy-skip-recalc.html: Added.
- web-platform-tests/css/css-contain/container-queries/conditional-container-status-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/conditional-container-status.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-computed.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-for-shadow-dom.tentative.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-inheritance.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-name-computed-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-name-computed.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-name-invalidation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-name-invalidation.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-name-parsing.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-parsing.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-selection-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-selection.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-size-invalidation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-size-invalidation.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-change-chrome-legacy-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-computed-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-computed.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-containment-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-containment.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-invalidation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-invalidation.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-layout-invalidation.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-parsing-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-type-parsing.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-animation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-animation.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-basic-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-basic.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-computational-independence-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-computational-independence.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-invalidation.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-selection-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-selection.html: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-typed-om-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/container-units-typed-om.html: Added.
- web-platform-tests/css/css-contain/container-queries/counters-flex-circular-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/counters-flex-circular.html: Added.
- web-platform-tests/css/css-contain/container-queries/counters-in-container-dynamic-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/counters-in-container-dynamic.html: Added.
- web-platform-tests/css/css-contain/container-queries/counters-in-container-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/counters-in-container.html: Added.
- web-platform-tests/css/css-contain/container-queries/counters-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/display-contents-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/display-contents.html: Added.
- web-platform-tests/css/css-contain/container-queries/display-in-container-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/display-in-container-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/display-in-container.html: Added.
- web-platform-tests/css/css-contain/container-queries/display-none-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/display-none.html: Added.
- web-platform-tests/css/css-contain/container-queries/fieldset-legend-change-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/fieldset-legend-change-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/fieldset-legend-change.html: Added.
- web-platform-tests/css/css-contain/container-queries/flex-in-columns-000-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/flex-in-columns-001-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/flex-in-columns-002-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/flex-in-columns-003-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/focus-inside-content-visibility-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic.html: Added.
- web-platform-tests/css/css-contain/container-queries/font-relative-units-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/font-relative-units.html: Added.
- web-platform-tests/css/css-contain/container-queries/get-animations-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/get-animations.html: Added.
- web-platform-tests/css/css-contain/container-queries/grid-in-columns-000-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/grid-in-columns-001-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/grid-in-columns-002-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/grid-in-columns-003-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/iframe-invalidation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/iframe-invalidation.html: Added.
- web-platform-tests/css/css-contain/container-queries/ineligible-containment-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/ineligible-containment.html: Added.
- web-platform-tests/css/css-contain/container-queries/inline-multicol-inside-container-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/inline-size-and-min-width.html: Added.
- web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/inline-size-bfc-floats.html: Added.
- web-platform-tests/css/css-contain/container-queries/inline-size-containment-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/inline-size-containment-vertical-rl.html: Added.
- web-platform-tests/css/css-contain/container-queries/inline-size-containment.html: Added.
- web-platform-tests/css/css-contain/container-queries/inline-with-columns-000-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/inline-with-columns-001-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/input-column-group-container-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/multicol-inside-container-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/multicol-inside-container.html: Added.
- web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/orthogonal-wm-container-query.html: Added.
- web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/percentage-padding-orthogonal.html: Added.
- web-platform-tests/css/css-contain/container-queries/pseudo-container-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-001-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-001.html: Added.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-002.tentative.html: Added.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/pseudo-elements-003.tentative.html: Added.
- web-platform-tests/css/css-contain/container-queries/query-content-box-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/query-content-box.html: Added.
- web-platform-tests/css/css-contain/container-queries/query-evaluation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/query-evaluation.html: Added.
- web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/reattach-container-with-dirty-child.html: Added.
- web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/resize-while-content-visibility-hidden.html: Added.
- web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/size-container-no-principal-box.html: Added.
- web-platform-tests/css/css-contain/container-queries/size-feature-evaluation-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/size-feature-evaluation.html: Added.
- web-platform-tests/css/css-contain/container-queries/style-change-in-container-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/style-change-in-container.html: Added.
- web-platform-tests/css/css-contain/container-queries/support/cq-testcommon.js: Added.
(assert_implements_container_queries):
- web-platform-tests/css/css-contain/container-queries/support/w3c-import.log: Added.
- web-platform-tests/css/css-contain/container-queries/svg-layout-root-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/table-in-columns-000-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/table-in-columns-001-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/table-in-columns-002-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/table-in-columns-003-crash.html: Added.
- web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/table-inside-container-changing-display.html: Added.
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop-ref.html: Added.
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-backdrop.html: Added.
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-container.html: Added.
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/top-layer-dialog.html: Added.
- web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/top-layer-nested-dialog.html: Added.
- web-platform-tests/css/css-contain/container-queries/transition-scrollbars-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/transition-scrollbars.html: Added.
- web-platform-tests/css/css-contain/container-queries/transition-style-change-event-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/transition-style-change-event.html: Added.
- web-platform-tests/css/css-contain/container-queries/unsupported-axis-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/unsupported-axis.html: Added.
- web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/viewport-units-dynamic.html: Added.
- web-platform-tests/css/css-contain/container-queries/viewport-units-expected.txt: Added.
- web-platform-tests/css/css-contain/container-queries/viewport-units.html: Added.
- web-platform-tests/css/css-contain/container-queries/w3c-import.log: Added.
- web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal-expected.html: Added.
- web-platform-tests/css/css-contain/container-queries/whitespace-update-after-removal.html: Added.
- web-platform-tests/css/css-contain/content-visibility/container-focus-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/container-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/container-with-child-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/container-with-pos-children-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-003-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-004-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-019-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-020-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-021-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-022-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-023-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-024-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-025-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-027-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-032-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-033-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-034-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-042-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-049-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-058-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-059-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-064-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-074-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-075-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-076-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-078-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-079-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-with-top-layer-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/inline-container-with-child-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/positioned-container-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/spacer-and-container-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/spacer-and-container-scrolled-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/spacer-with-top-layer-ref.html: Added.
- web-platform-tests/css/css-contain/content-visibility/w3c-import.log:
- web-platform-tests/css/css-contain/w3c-import.log:
LayoutTests:
- 6:08 AM Changeset in webkit [288437] by
-
- 2 edits in trunk/Source/WebCore
Fix non-unified build after r288432
Unreviewed non-unified build fix.
No new tests needed.
- platform/graphics/filters/software/FEImageSoftwareApplier.cpp: Do not use #pragma once
in an implementation file, add missing inclusion of the GraphicsContext.h header.
- 5:58 AM Changeset in webkit [288436] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Display builders should flip coords for writing mode
https://bugs.webkit.org/show_bug.cgi?id=235498
Reviewed by Antti Koivisto.
Display boxes/lines all have visual geometries. This patch flips their coords when they
are inside a block with vertical writing mode.
This is in preparation for enabling vertical writing mode for IFC.
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::flipLogicalRectToVisualForWritingMode):
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.h:
- layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:
(WebCore::Layout::InlineDisplayLineBuilder::build const):
- 4:41 AM Changeset in webkit [288435] by
-
- 3 edits in trunk/Source/WebCore
MediaStream canvas.captureStream() playback to LocalSampleBufferDisplayLayer is flaky
https://bugs.webkit.org/show_bug.cgi?id=230623
<rdar://problem/83668578>
Reviewed by Kimmo Kinnunen.
There are a few issues when creating the video element, setting the srcObject and playing it right away.
The first thing is that we try to render the video element while thinking that it might be video accelerated
(it is always the case for MediaStreamTrack based tracks), but the video element is asynchronously updating whether it is accelerated.
Following what other MediaPlayerPrivate are doing, when MediaPlayerPrivateMediaStreamAVFObjC has set up its video layers,
we schedule a call to renderingModeChanged which will trigger a relayout.
We also ensure, when the layer is fully initialized to set all values (bounds, hide states) as otherwise, this might be lost on GPUProcess
which currently does not register a RemoteSampleBufferDisplayLayer at the time the corresponding IPC message is received.
The additional issue is in the case the MediaStreamTrack source only generates one frame for some time.
In that case, and if the frame is enqueueud while setting up the video layers, we were not rendering this frame.
To fix this, when the video layers are ready, we reenqueue the last video frame as neeeded.
Manually tested.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
- 3:52 AM Changeset in webkit [288434] by
-
- 11 edits7 adds in trunk
texImage2d fails to set same video frame to multiple textures
https://bugs.webkit.org/show_bug.cgi?id=203148
<rdar://problem/56436745>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-24
Reviewed by Darin Adler.
Source/WebCore:
WebGL optimizes repeated video uploads to same texture, due to this being
usual practice among pages. Reason is that there are no API to know when the
video frame updates.
The algorithm was:
- If the IOSurface is the same as in the last call
- If the texture contents has not changed since we last modified this texture then skip the upload.
However, this logic skips errorneously if the "last call" updates some other texture.
Fix and test the above.
There are other issues for the current algorithm. This patch fixes some other theoretical ones:
- If the texture is deleted and new one gets assigned the same texture id and the content seed would clash
- Video was uploaded to a different level
The previous implementation was keeping per-texture seed value map in the context
(GraphicsContextGLANGLE) and per-teture seed value map in the texture upload helper
(GraphicsContextGLCVCocoa) and last uploaded IOSurface seed in the upload helper (not per
texture).
The implementation in this patch keeps per-texture known content description in the texture
upload helper and invalidates this when each texture changes. The known content description
is the parameter list of the texture upload call.
Test: webgl/pending/conformance/textures/misc/tex-image-video-repeated.html
- platform/graphics/GraphicsContextGLState.h:
(WebCore::GraphicsContextGLState::setBoundTexture):
- platform/graphics/angle/GraphicsContextGLANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::texImage2D):
(WebCore::GraphicsContextGLANGLE::texSubImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexImage2D):
(WebCore::GraphicsContextGLANGLE::compressedTexSubImage2D):
(WebCore::GraphicsContextGLANGLE::texStorage2D):
(WebCore::GraphicsContextGLANGLE::texStorage3D):
(WebCore::GraphicsContextGLANGLE::texImage2DDirect):
(WebCore::GraphicsContextGLANGLE::framebufferTexture2D):
(WebCore::GraphicsContextGLANGLE::createTexture):
(WebCore::GraphicsContextGLANGLE::deleteTexture):
(WebCore::GraphicsContextGLANGLE::invalidateKnownTextureContent):
(WebCore::GraphicsContextGLANGLE::textureSeed): Deleted.
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.h:
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::invalidateKnownTextureContent):
- platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:
(WebCore::GraphicsContextGLCVCocoa::TextureContent::operator== const):
(WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture):
(WebCore::GraphicsContextGLCVCocoa::invalidateKnownTextureContent):
- platform/graphics/cv/GraphicsContextGLCVCocoa.h:
LayoutTests:
Add a test for testing the bug in which some video texture uploads
were skipped errorneously.
- webgl/pending/conformance/textures/misc/tex-image-video-repeated.html: Added.
- webgl/pending/conformance/textures/misc/tex-image-video-repeated-expected.txt: Added.
- webgl/pending/resources/webgl_test_files/conformance/textures/misc/tex-image-video-repeated.html: Added.
- 2:59 AM Changeset in webkit [288433] by
-
- 37 edits1 copy in trunk
[Web Animations] add support for animation-composition CSS property
https://bugs.webkit.org/show_bug.cgi?id=232086
<rdar://problem/84508394>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Mark WPT progressions and import one ::marker WPT test that wasn't imported originally with bug 235443.
- web-platform-tests/css/css-animations/CSSAnimation-effect.tentative-expected.txt:
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
- web-platform-tests/css/css-animations/parsing/animation-composition-computed.tentative-expected.txt:
- web-platform-tests/css/css-animations/parsing/animation-composition-valid.tentative-expected.txt:
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties.html:
- web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
Source/WebCore:
Add support for the "animation-composition" property from the CSS Animations Level 2 specification.
This property sets the "composite" property on the animation's effect and is overridden by use of
the Web Animations API to set that property.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- animation/CSSAnimation.cpp:
(WebCore::CSSAnimation::syncPropertiesWithBackingAnimation):
(WebCore::CSSAnimation::setBindingsEffect):
(WebCore::CSSAnimation::effectCompositeOperationWasSetUsingBindings):
- animation/CSSAnimation.h:
- animation/CompositeOperation.cpp: Added.
(WebCore::toCompositeOperation):
- animation/CompositeOperation.h:
- animation/CompositeOperationOrAuto.h:
(WebCore::toCompositeOperationOrAuto):
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getBindingsKeyframes):
(WebCore::KeyframeEffect::getKeyframes):
(WebCore::KeyframeEffect::bindingsComposite const):
(WebCore::KeyframeEffect::setBindingsComposite):
- animation/KeyframeEffect.h:
- animation/KeyframeEffect.idl:
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForAnimationComposition):
(WebCore::ComputedStyleExtractor::addValueForAnimationPropertyToList):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSProperties.json:
- css/CSSToStyleMap.cpp:
(WebCore::CSSToStyleMap::mapAnimationCompositeOperation):
- css/CSSToStyleMap.h:
- css/CSSValueKeywords.in:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeAnimationValue):
(WebCore::CSSPropertyParser::parseSingleValue):
- platform/animation/Animation.cpp:
(WebCore::Animation::Animation):
- platform/animation/Animation.h:
(WebCore::Animation::clearCompositeOperation):
(WebCore::Animation::fillCompositeOperation):
(WebCore::Animation::isCompositeOperationFilled const):
- platform/animation/AnimationList.cpp:
(WebCore::AnimationList::fillUnsetProperties):
- style/PropertyAllowlist.cpp:
(WebCore::Style::isValidMarkerStyleProperty):
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::styleForKeyframe):
(WebCore::Style::Resolver::keyframeStylesForAnimation):
LayoutTests:
Update existing tests to account for the new "animation-composition" CSS property.
- animations/fill-unset-properties-expected.txt:
- animations/fill-unset-properties.html:
- platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- 12:58 AM Changeset in webkit [288432] by
-
- 30 edits1 copy2 moves1 add in trunk/Source
[GPU Process] [Filters] Move FEImage to the 'platform' directory
https://bugs.webkit.org/show_bug.cgi?id=234109
rdar://86608573
Reviewed by Darin Adler.
Source/WebCore:
Move FEImageSoftwareApplier to separate source and header files. Make all
the filter applier concrete classes be final and make their overridden
'apply()' method be private and final.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/coreimage/FEColorMatrixCoreImageApplier.h:
- platform/graphics/coreimage/FEComponentTransferCoreImageApplier.h:
- platform/graphics/coreimage/SourceGraphicCoreImageApplier.h:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
- platform/graphics/filters/FEImage.cpp: Renamed from Source/WebCore/svg/graphics/filters/SVGFEImage.cpp.
(WebCore::FEImage::create):
(WebCore::FEImage::FEImage):
(WebCore::FEImage::calculateImageRect const):
(WebCore::FEImage::createSoftwareApplier const):
(WebCore::FEImage::externalRepresentation const):
- platform/graphics/filters/FEImage.h: Renamed from Source/WebCore/svg/graphics/filters/SVGFEImage.h.
(WebCore::FEImage::encode const):
(WebCore::FEImage::decode):
- platform/graphics/filters/software/FEBlendSoftwareApplier.h:
- platform/graphics/filters/software/FEColorMatrixSoftwareApplier.h:
- platform/graphics/filters/software/FEComponentTransferSoftwareApplier.h:
- platform/graphics/filters/software/FECompositeSoftwareApplier.h:
- platform/graphics/filters/software/FEConvolveMatrixSoftwareApplier.h:
- platform/graphics/filters/software/FEDisplacementMapSoftwareApplier.h:
(WebCore::FEDisplacementMapSoftwareApplier::byteOffsetOfPixel): Deleted.
- platform/graphics/filters/software/FEDropShadowSoftwareApplier.h:
- platform/graphics/filters/software/FEFloodSoftwareApplier.h:
- platform/graphics/filters/software/FEGaussianBlurSoftwareApplier.h:
- platform/graphics/filters/software/FEImageSoftwareApplier.cpp: Added.
(WebCore::FEImageSoftwareApplier::apply const):
- platform/graphics/filters/software/FEImageSoftwareApplier.h: Copied from Source/WebCore/platform/graphics/coreimage/SourceGraphicCoreImageApplier.h.
- platform/graphics/filters/software/FELightingSoftwareApplier.h:
(WebCore::FELightingSoftwareApplier::AlphaWindow::topLeft const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::left const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottomLeft const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::top const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::center const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::bottom const): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTop): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setCenter): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottom): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setTopRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::setBottomRight): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::shiftRow): Deleted.
(WebCore::FELightingSoftwareApplier::AlphaWindow::shift): Deleted.
- platform/graphics/filters/software/FEMergeSoftwareApplier.h:
- platform/graphics/filters/software/FEMorphologySoftwareApplier.h:
(WebCore::FEMorphologySoftwareApplier::pixelArrayIndex): Deleted.
(WebCore::FEMorphologySoftwareApplier::makePixelValueFromColorComponents): Deleted.
(WebCore::FEMorphologySoftwareApplier::makeColorComponentsfromPixelValue): Deleted.
- platform/graphics/filters/software/FEOffsetSoftwareApplier.h:
- platform/graphics/filters/software/FETileSoftwareApplier.h:
- platform/graphics/filters/software/FETurbulenceSoftwareApplier.h:
(WebCore::FETurbulenceSoftwareApplier::PaintingData::random): Deleted.
(WebCore::FETurbulenceSoftwareApplier::smoothCurve): Deleted.
(WebCore::FETurbulenceSoftwareApplier::linearInterpolation): Deleted.
- platform/graphics/filters/software/SourceAlphaSoftwareApplier.h:
- platform/graphics/filters/software/SourceGraphicSoftwareApplier.h:
- rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
- svg/SVGFEImageElement.cpp:
- svg/SVGFEImageElement.h:
Source/WebKit:
- Platform/IPC/FilterReference.h:
Jan 23, 2022:
- 11:32 PM Changeset in webkit [288431] by
-
- 1 copy in tags/Safari-613.1.14.2.3
Tag Safari-613.1.14.2.3.
- 11:28 PM Changeset in webkit [288430] by
-
- 9 edits in branches/safari-613.1.14.2-branch/Source
Versioning.
WebKit-7613.1.14.2.3
- 8:48 PM Changeset in webkit [288429] by
-
- 6 edits1 copy1 add in trunk
Position:fixed layers shouldn't allocate a backing buffer if all children are offscreen.
https://bugs.webkit.org/show_bug.cgi?id=235420
<rdar://86612099>
Patch by Matt Woodrow <Matt Woodrow> on 2022-01-23
Reviewed by Simon Fraser and Darin Adler.
Source/WebCore:
Adds a bounds intersection check to isPaintDestinationForDescendantLayers,
so that we can exclude descendants that definitely won't draw anything into
the compositing layer. Uses a conservative check, which gives up if there are
any transforms in the ancestor chain.
Test: compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html
- rendering/RenderLayerBacking.cpp:
(WebCore::intersectsWithAncestor):
(WebCore::RenderLayerBacking::isPaintDestinationForDescendantLayers const):
LayoutTests:
Adds a test that has a viewport sized position:fixed element (with compositing
layer), and a single child which is entirely offscreen. Tests that we correctly
determine that we don't need a backing store for the layer.
- compositing/backing/no-backing-for-offscreen-children-of-position-fixed-expected.txt: Added.
- compositing/backing/no-backing-for-offscreen-children-of-position-fixed.html: Added.
- 6:07 PM Changeset in webkit [288428] by
-
- 2 edits in trunk/Source/WebCore
Fix "componet" typo in just-landed patch.
- platform/graphics/ColorInterpolation.h: I suggested Sam change a name
to interpolateComponentWithoutAccountingForNaN, but mispelled it "componet".
Fixing it here.
- 4:57 PM Changeset in webkit [288427] by
-
- 10 edits in trunk
Support interpolating colors with missing/none components via color-mix()
https://bugs.webkit.org/show_bug.cgi?id=235496
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update color-mix() tests to include test cases that use 'none' components.
- web-platform-tests/css/css-color/parsing/color-mix-computed-expected.txt:
- web-platform-tests/css/css-color/parsing/color-mix-computed.html:
- web-platform-tests/css/css-color/parsing/color-mix-valid-expected.txt:
- web-platform-tests/css/css-color/parsing/color-mix-valid.html:
Source/WebCore:
Adds support for interpolating colors that have a missing/none component. Currently,
the only way for a color to have a missing/none component is for it to be specified
explicitly by the user (e.g. hsl(none 20% 40%)), but the interpolation implementation
is agnostic to how the color was created so will work once there is automatic creation
of missing/none components on conversion for powerless components.
This change only enables the new interpolation behavior for color-mix(), by replacing
a call of colorType.resolved() with colorType.unresolved(), support for other interpolation
use cases will follow.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::mixColorComponentsUsingColorInterpolationMethod):
Replace resolved() with unrersolved() to allow NaN values through to interpolation.
- platform/graphics/ColorInterpolation.cpp:
(WebCore::fixupHueComponentsPriorToInterpolation):
(WebCore::interpolateColors):
Move non-templated version of interpolateColors to the implementation file as it generates
a lot of code and there is little reason to believe it would be useful to inline it.
- platform/graphics/ColorInterpolation.h:
(WebCore::interpolateComponent):
(WebCore::interpolateComponentAccountingForNaN):
(WebCore::interpolateHue):
(WebCore::interpolateAlphaPremulitplied):
(WebCore::interpolateComponentUsingPremultipliedAlpha):
(WebCore::interpolateAlphaUnpremulitplied):
(WebCore::interpolateComponentUsingUnpremultipliedAlpha):
(WebCore::interpolateColorComponents):
(WebCore::preInterpolationNormalizationForComponent): Deleted.
(WebCore::preInterpolationNormalization): Deleted.
(WebCore::postInterpolationNormalizationForComponent): Deleted.
(WebCore::postInterpolationNormalization): Deleted.
(WebCore::interpolateColors): Deleted.
Replace existing interpolation implementation which separated each component into pre/interpolate/post
steps, with one that does all three steps at once and now also supports missing components. Removing
the steps made the overall algorithm is easier to understand a couples premulitplication and unpremultiplication
much closer together.
- platform/graphics/ColorTypes.h:
(WebCore::constexprIsNaN):
Update comment to include missing word.
- 4:55 PM Changeset in webkit [288426] by
-
- 18 edits in trunk/Source/WebCore
Improve FourCC to use more inlining, fix incorrect mix of WEBCORE_EXPORT on entire class with inline functions
https://bugs.webkit.org/show_bug.cgi?id=235461
Reviewed by Sam Weinig.
- WebCore.xcodeproj/project.pbxproj: Added FourCC.cpp. Because of
unified sources it was compiled, but because it was not in the project
various Xcode features would not work.
- platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.cpp:
Added some explicitly non-inlined exported functions. These need to
be exported because they are used in TestWebKitAPI tests and we
want to export the functions rather than the vtable pointer.
- platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:
Stop using WEBCORE_EXPORT on whole classes that contain inline
functions, and instead use it on individual functions.
- platform/graphics/FourCC.cpp:
(WebCore::FourCC::fromString): Take a StringView instead of String.
Removed unnecessary allocation of a temporary CString for the result
of String::ascii.
(WebCore::FourCC::string const): Rename from toString to string and
changed the return type to std::array instead of String.
- platform/graphics/FourCC.h: Made all the constructors constexpr.
Changed the string literal constructor to just work with 4-character
strings. The old one was a template for any length string, but then
asserted it was 4 characters long, which is a roundabout way to do it.
- platform/graphics/HEVCUtilities.cpp:
(WebCore::parseHEVCDecoderConfigurationRecord): Take FourCC instead
of const FourCC&. Also removed unnecessary explicit conversion to
FourCC since four character strings.
- platform/graphics/HEVCUtilities.h: Ditto.
- platform/graphics/avfoundation/ISOFairPlayStreamingPsshBox.h:
Removed unneeded WEBCORE_EXPORT on these classes.
- platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
(WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Removed
unnecesary calls to toString, logging can handle FourCC without it.
Also removed unneeded type casts to size_t.
- platform/graphics/avfoundation/objc/AVAssetTrackUtilities.mm:
(WebCore::contentTypesToCodecs): Removed unnecessary allocation of
a String by using StringView for the substring.
- platform/graphics/cocoa/HEVCUtilitiesCocoa.mm:
(WebCore::validateHEVCParameters): Added an explicit cast to String
since FourCC::fromString now takes a StringView. Sadly there's not
a trivial way to do this without allocating a String.
- platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:
(WebCore::GraphicsContextGLCVCocoa::copyVideoSampleToTexture):
Since FourCC::string now returns a std::array with a C-style
null-terminated string, use it instead of calling toString and
then utf8. Cleaner and also much more efficient.
- platform/graphics/iso/ISOBox.cpp: Moved constructors and
destructors so they are no longer inlined so there is no need to
export the vtable.
(WebCore::ISOBox::peekBox): Removed unnecessary initialization
of FourCC since they are zero by default.
- platform/graphics/iso/ISOBox.h: Removed WEBCORE_EXPORT of
the entire class, since that's not fully compatible with a class
with inline functions (warning is done by check-webkit-style).
Put WEBCORE_EXPORT on individual functions instead. Also use some
more constexpr, removed unneeded FourCC initialization since it is
zero by default, and use FourCC, not const FourCC& for return value.
- platform/graphics/iso/ISOOriginalFormatBox.h: Removed unneeded
FourCC initialization since it is zero by default.
- platform/graphics/iso/ISOSchemeTypeBox.h: Ditto.
- platform/graphics/iso/ISOVTTCue.cpp: Moved constructors and
destructors so they are no longer inlined so there is no need to
export the vtable.
(WebCore::ISOWebVTTCue::parse): Use PRIu64 instead of casting
to size_t, no need to rely on the relationship between type sizes.
- platform/graphics/iso/ISOVTTCue.h: Removed WEBCORE_EXPORT of
the entire class, since that's not fully compatible with a class
with inline functions (warning is done by check-webkit-style).
Put WEBCORE_EXPORT on individual functions instead.
- 3:10 PM Changeset in webkit [288425] by
-
- 4 edits2 adds in trunk
AX Isolated Tree Mode: Re-compute AXPropertyName::IsEnabled when a node experiences AXDisabledStateChanged
https://bugs.webkit.org/show_bug.cgi?id=235295
Reviewed by Chris Fleizach.
Source/WebCore:
Test: accessibility/dynamic-attribute-changes-should-update-isenabled.html
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::updateIsolatedTree):
Re-compute AXPropertyName::IsEnabled when receiving an AXDisabledStateChanged notification.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperty):
Handle requests for AXPropertyName::IsEnabled updates.
LayoutTests:
This patch adds a test verifying that AXPropertyName::IsEnabled is re-computed when an
object's disabled state changes.
- accessibility/dynamic-attribute-changes-should-update-isenabled-expected.txt: Added.
- accessibility/dynamic-attribute-changes-should-update-isenabled.html: Added.
- 1:50 PM Changeset in webkit [288424] by
-
- 16 edits3 adds4 deletes in trunk
[Model] Add load and error events to distinguish resource load from model readiness
https://bugs.webkit.org/show_bug.cgi?id=233706
rdar://85922697
Reviewed by Chris Dumez and Dean Jackson.
Source/WebCore:
Test: model-element/model-element-error-and-load-events.html
Prior to this patch, <model> elements had a "ready" promise which resolved once the resource had been loaded.
However, this promise should be used when the <model> is fully ready, and this is done on macOS and iOS asynchronously
after the resource has been loaded by the supporting ARQL framework. So we need a way to monitor success or failure of
the resource load specifically.
To that end, and matching the <img> element, we dispatch "load" and "error" events on <model> elements and add a
"complete" property to indicate whether the resource is loaded.
Meanwhile, the "ready" promise is now resolved when the model is fully loaded by the supporting framework, indicating
that further APIs are safe to use.
Since creating the support ARQL object for macOS and iOS also requires the <model> element's renderer being available,
we opt into "custom style resolve callbacks" so that we may implement didAttachRenderers() on HTMLModelElement and keep
track of renderer availability before attempting to create the ModelPlayer.
- Modules/model-element/HTMLModelElement.cpp:
(WebCore::HTMLModelElement::HTMLModelElement):
(WebCore::HTMLModelElement::create):
(WebCore::HTMLModelElement::setSourceURL):
(WebCore::HTMLModelElement::didAttachRenderers):
(WebCore::HTMLModelElement::notifyFinished):
(WebCore::HTMLModelElement::modelDidChange):
(WebCore::HTMLModelElement::createModelPlayer):
(WebCore::HTMLModelElement::didFinishLoading):
(WebCore::HTMLModelElement::didFailLoading):
(WebCore::HTMLModelElement::activeDOMObjectName const):
(WebCore::HTMLModelElement::virtualHasPendingActivity const):
- Modules/model-element/HTMLModelElement.h:
- Modules/model-element/HTMLModelElement.idl:
Tools:
Use the "load" event instead of the "ready" promise for this test which only requires monitoring
the <model> resource being loaded.
- TestWebKitAPI/Tests/ios/DragAndDropTestsIOS.mm:
(TestWebKitAPI::TEST):
LayoutTests:
Remove existing tests around resource loading and recreate them in terms of "load" and "error"
events in model-element/model-element-error-and-load-events.html and in terms of the ready
promise in model-element/model-element-ready.html.
Other tests using model.ready for other purposes are also rewritten using events.
- model-element/model-element-contents-layer-updates-with-clipping.html:
- model-element/model-element-contents-layer-updates.html:
- model-element/model-element-error-and-load-events-expected.txt: Added.
- model-element/model-element-error-and-load-events.html: Added.
- model-element/model-element-graphics-layers-opacity.html:
- model-element/model-element-graphics-layers.html:
- model-element/model-element-ready-expected.txt:
- model-element/model-element-ready-load-aborted-expected.txt: Removed.
- model-element/model-element-ready-load-aborted.html: Removed.
- model-element/model-element-ready-load-failed-expected.txt: Removed.
- model-element/model-element-ready-load-failed.html: Removed.
- model-element/model-element-ready.html:
- model-element/resources/model-element-test-utils.js: Added.
(const.createModelAndSource):
- platform/ios-simulator/TestExpectations:
- platform/mac/TestExpectations:
- 1:21 PM Changeset in webkit [288423] by
-
- 3 edits2 adds in trunk
m_lastStyleChangeEventStyle null ptr deref for accelerated CSS Animation with no duration and an implicit keyframe
https://bugs.webkit.org/show_bug.cgi?id=235394
<rdar://problem/87701738>
Reviewed by Antti Koivisto.
Source/WebCore:
Test: webanimations/accelerated-animation-without-duration-crash.html
In r287827, the fix for bug 235014, we stopped filling implicit keyframes for CSS Animations at creation
time such that the output of getKeyframes() would correctly account for the missing keyframes. This meant
that we have to fill in those implicit keyframes when running an accelerated animation before we pass it
on to GraphicsLayer.
We would always use the value stored by lastStyleChangeEventStyle() with an assert that this value was
never null. However, in the case of an animation that is not relevant, such as a CSS Animation with no
duration, we've never had a chance to set that style since Style::TreeResolver::createAnimatedElementUpdate()
would not see any "relevant" (a term defined by the Web Animations specification to specify an animation
that has an effect on its target) animations.
We now use the renderer's style as a fallback, which is guaranteed to be defined at this stage.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::applyPendingAcceleratedActions):
LayoutTests:
New test, created by Gabriel Nava Marino, that creates an accelerated animation with no
duration and with implicit keyframes that would crash prior to this patch.
- webanimations/accelerated-animation-without-duration-crash-expected.txt: Added.
- webanimations/accelerated-animation-without-duration-crash.html: Added.
- 11:27 AM Changeset in webkit [288422] by
-
- 2 edits in trunk/Source/WebCore
[GStreamer] C++20 warnings
https://bugs.webkit.org/show_bug.cgi?id=235493
Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-23
Reviewed by Darin Adler.
Fix ambiguous-reversed-operator warnings. In C++20 comparison operators (like a == b) need
to be declared const, so that reverse comparisons (like b == a) also work as intended.
- platform/graphics/gstreamer/GStreamerCommon.h:
(GstIteratorAdaptor::iterator::operator== const):
(GstIteratorAdaptor::iterator::operator!= const):
(GstIteratorAdaptor::iterator::operator==): Deleted.
(GstIteratorAdaptor::iterator::operator!=): Deleted.
- 10:43 AM Changeset in webkit [288421] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] InlineFormattingContext::computeGeometryForLineContent should always return the line logical rect
https://bugs.webkit.org/show_bug.cgi?id=235494
Reviewed by Antti Koivisto.
The return rect of computeGeometryForLineContent (based on the display line) is input to the next line's
initial rect and therefore it is supposed to be logical (in general, layout should strictly use logical coords).
This is in preparation for supporting vertical writing mode.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/formattingContexts/inline/InlineFormattingGeometry.cpp:
(WebCore::Layout::InlineFormattingGeometry::flipVisualRectToLogicalForWritingMode):
- layout/formattingContexts/inline/InlineFormattingGeometry.h:
- 8:59 AM Changeset in webkit [288420] by
-
- 4 edits in trunk
[forms] Prevent contenteditable anchors from being stuck
https://bugs.webkit.org/show_bug.cgi?id=235438
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update 1 WPT test expectation file as the test is now passing.
- web-platform-tests/html/semantics/forms/the-input-element/anchor-active-contenteditable-expected.txt:
Source/WebCore:
Anchors can be stuck in the :active state if contenteditable is enabled before
:active is removed. With this patch setActive() can remove :active during
contenteditable in order to prevent anchors from navigating during contenteditable.
This is an import of Chromium CL at
https://chromium-review.googlesource.com/c/chromium/src/+/2595978
- html/HTMLAnchorElement.cpp:
(WebCore::HTMLAnchorElement::setActive):
- 8:50 AM Changeset in webkit [288419] by
-
- 2 edits in trunk/Source/WebCore
AX: Refactor near-duplicate AXObjectCache::updateIsolatedTree implementations
https://bugs.webkit.org/show_bug.cgi?id=235481
Reviewed by Chris Fleizach.
AXObjectCache::updateIsolatedTree(AXCoreObject&, AXNotification) and
AXObjectCache::updateIsolatedTree(const Vector<std::pair<RefPtr<AXCoreObject>, AXNotification>>&)
duplicate a lot of code, and make it possible to forget to add new
notification handling in one place or the other. This patch refactors
this by making the single-object versions of this method defer to the
multiple-object version by wrapping the single change in a Vector.
No tests added because there is no behavior change.
- accessibility/AXObjectCache.cpp:
(WebCore::appendIfNotContainsMatching):
Moved this function above updateIsolatedTree methods. No other change.
(WebCore::AXObjectCache::updateIsolatedTree):
- 8:25 AM Changeset in webkit [288418] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] LineLayout::contentLogicalHeight should always return the logical height
https://bugs.webkit.org/show_bug.cgi?id=235488
Reviewed by Antti Koivisto.
The display boxes/lines always have visual geometries and in case of vertical writing mode it means that the
content stretches in horiztonal direction (left to right/right to left).
This is in preparation for supporting vertical writing mode.
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::contentLogicalHeight const):
(WebCore::LayoutIntegration::LineLayout::adjustForPagination):
- layout/integration/LayoutIntegrationLineLayout.h:
(WebCore::LayoutIntegration::LineLayout::isPaginated const):
- 6:48 AM Changeset in webkit [288417] by
-
- 5 edits in trunk
[LFC][IFC] Enable unicode-bidi: plaintext for IFC
https://bugs.webkit.org/show_bug.cgi?id=235429
Reviewed by Antti Koivisto.
Source/WebCore:
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):
- layout/integration/LayoutIntegrationCoverage.h:
LayoutTests:
- platform/mac/fast/text/international/unicode-bidi-plaintext-in-textarea-expected.txt:
Jan 22, 2022:
- 9:20 PM Changeset in webkit [288416] by
-
- 22 edits1 copy in trunk/Source
Add PushSubscriptionIdentifier
https://bugs.webkit.org/show_bug.cgi?id=234797
Reviewed by Darin Adler.
Source/WebCore:
This adds a PushSubscriptionIdentifier to each PushSubscription. Implementation-wise, it
will be the rowid if the subscription in the subscription database. We need this so that
PushSubscription.unsubscribe only unsubscribes from the given subscription. Currently it
unsubscribes from any active subscription associated with the subscription's service worker
scope.
No new tests. I plan on adding a test for this case in an API test which will work with real
PushSubscription objects when I submit the patch that implements the subscription business
logic in webpushd. The current layout tests only work with fake PushSubscription objects
that aren't connected to webpushd.
- Headers.cmake:
- Modules/push-api/PushSubscription.cpp:
(WebCore::PushSubscription::unsubscribe):
- Modules/push-api/PushSubscriptionData.cpp:
(WebCore::PushSubscriptionData::isolatedCopy const):
- Modules/push-api/PushSubscriptionData.h:
(WebCore::PushSubscriptionData::encode const):
(WebCore::PushSubscriptionData::decode):
webpushd only supports modern decoding and we need to send this object to it, so use modern decoding.
- Modules/push-api/PushSubscriptionIdentifier.h:
- WebCore.xcodeproj/project.pbxproj:
- testing/Internals.cpp:
(WebCore::Internals::createPushSubscription):
- testing/ServiceWorkerInternals.cpp:
(WebCore::ServiceWorkerInternals::createPushSubscription):
- workers/service/SWClientConnection.h:
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::unsubscribeFromPushService):
- workers/service/ServiceWorkerContainer.h:
- workers/service/ServiceWorkerRegistration.cpp:
(WebCore::ServiceWorkerRegistration::unsubscribeFromPushService):
- workers/service/ServiceWorkerRegistration.h:
- workers/service/WorkerSWClientConnection.cpp:
(WebCore::WorkerSWClientConnection::unsubscribeFromPushService):
- workers/service/WorkerSWClientConnection.h:
Source/WebKit:
Pass the subscription identifier in the PushSubscription.unsubscribe call to guarantee that
we only unsubscribe from the given subscription.
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
(WebKit::WebSWServerConnection::unsubscribeFromPushService):
- NetworkProcess/ServiceWorker/WebSWServerConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerConnection.messages.in:
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::unsubscribeFromPushService):
- WebProcess/Storage/WebSWClientConnection.h:
- 9:01 PM Changeset in webkit [288415] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION(r280887) broke some svg based chart content repaint
https://bugs.webkit.org/show_bug.cgi?id=235483
<rdar://87904254>
Unreviewed, reverting r280887.
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::svgAttributeChanged):
- 8:37 PM Changeset in webkit [288414] by
-
- 2 edits in trunk/LayoutTests
[iOS] Unreviewed gardering
- platform/ios/TestExpectations: blank selection.
- 7:38 PM Changeset in webkit [288413] by
-
- 2 edits in trunk/Source/WebCore
REGRESSION (Safari 15?): Blob videos slow to pause, affects CBS and CNN
https://bugs.webkit.org/show_bug.cgi?id=234066
Reviewed by Jer Noble.
MediaPlayerPrivateMediaSourceAVFObjC::playInternal()calls[m_synchronizer setRate:],
which will make the return value ofMediaPlayerPrivateMediaSourceAVFObjC::paused()change
from true to false. But it won't push the newpausedvalue back to the Web process.
RemoteMediaPlayerProxy::play()does callsendCachedState()after calling
m_player->play(), but becauseMediaPlayerPrivateMediaSourceAVFObjC::playInternal()is not
called in the same run loop,sendCachedState()won't send back the updatedpausedvalue either.
In most cases, this is not an issue, because other member functions of
RemoteMediaPlayerProxy
will callsendCachedState()to push the updatedpausedvalue back to the Web process later.
However, we did find some videos need thepausedvalue to be pushed back the Web process
in a timely manner.
No new tests, manually tested.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
- 5:03 PM Changeset in webkit [288412] by
-
- 18 edits2 adds in trunk/Source
[GPU Process] Add the class 'SourceImage' to represent variants of image
https://bugs.webkit.org/show_bug.cgi?id=235467
Reviewed by Cameron McCormack.
Source/WebCore:
Before the existence of GPUProcess we used to do some drawing on an
ImageBuffer, get a NativeImage from the ImageBuffer and then use this
NativeImage. With GPUProces, this will require bouncing the NativeImage
between WebProcess and GPUProcess at least two times. To make this scenario
efficient, a new class called 'SourceImage' will be introduced. The purpose
of this class is to provide a new level of abstraction for the images
such that no conversion is needed before the actual use.
Replace FEImage::SourceImage with a new class named 'SourceImage'. Let
the new class handle the encoding and decoding and the conversion from
NativeImage to ImageBuffer and vice versa.
Make Recorder::recordResourceUse() returns a boolean which indicates
whether the resource can be cached for later replay or not.
- Headers.cmake:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/Image.h:
(WebCore::Image::nativeImageForCurrentFrame):
(WebCore::Image::preTransformedNativeImageForCurrentFrame):
- platform/graphics/SourceImage.cpp: Added.
(WebCore::SourceImage::SourceImage):
(WebCore::SourceImage::nativeImageIfExists const):
(WebCore::SourceImage::nativeImage):
(WebCore::SourceImage::imageBufferIfExists const):
(WebCore::SourceImage::imageBuffer):
(WebCore::SourceImage::imageIdentifier const):
- platform/graphics/SourceImage.h: Added.
(WebCore::SourceImage::encode const):
(WebCore::SourceImage::decode):
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawFilteredImageBuffer):
(WebCore::DisplayList::Recorder::drawImageBuffer):
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/displaylists/DisplayListRecorderImpl.cpp:
(WebCore::DisplayList::RecorderImpl::recordResourceUse):
- platform/graphics/displaylists/DisplayListRecorderImpl.h:
- svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::filterEffect const):
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame): Deleted.
- svg/graphics/SVGImage.h:
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::calculateImageRect const):
(WebCore::FEImageSoftwareApplier::apply const):
- svg/graphics/filters/SVGFEImage.h:
(WebCore::FEImage::encode const):
(WebCore::FEImage::decode):
Source/WebKit:
Provide a new recordResourceUse() for the SourceImage.
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::recordResourceUse):
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
- 4:00 PM Changeset in webkit [288411] by
-
- 6 edits1 add in trunk
[JSC] Relax Date.parse requirement
https://bugs.webkit.org/show_bug.cgi?id=235468
Reviewed by Darin Adler.
JSTests:
- stress/date-relaxed-separator.js: Added.
(shouldBe):
Source/WTF:
While the spec does not require accepting 't' / ' ' separator, ISO 8601 accepts it.
This is because ECMA262's Date format is *not* ISO 8601 (it is called simplification
of ISO 8601[1]).
This patch relaxes this strictness to accept more formats, which can be accepted in
the other engines too.
[1]: https://tc39.es/ecma262/#sec-date-time-string-format
- wtf/DateMath.cpp:
(WTF::parseES5DateFromNullTerminatedCharacters):
LayoutTests:
- js/date-parse-test-expected.txt:
- js/script-tests/date-parse-test.js:
- 2:58 PM Changeset in webkit [288410] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Add InlineDisplay::Box::isHorizontal
https://bugs.webkit.org/show_bug.cgi?id=235482
Reviewed by Antti Koivisto.
This is in preparation for supporting vertical writing mode.
- layout/formattingContexts/inline/display/InlineDisplayBox.h:
(WebCore::InlineDisplay::Box::isHorizontal const):
- layout/integration/InlineIteratorBoxModernPath.h:
(WebCore::InlineIterator::BoxModernPath::isHorizontal const):
- 2:57 PM Changeset in webkit [288409] by
-
- 3 edits2 adds in trunk
REGRESSION (r288069): Bits of selection left after deselecting on bugzilla page
https://bugs.webkit.org/show_bug.cgi?id=235466
<rdar://87902230>
Reviewed by Darin Adler.
Source/WebCore:
Undo the incorrect dynamicDowncast change.
This code reads (perhaps confusingly at first sight):
return is<RenderView>(containingBlock) ? nullptr : containingBlock;
while the dynamicDowncast is meant to shorten code like this:
return is<RenderView>(containingBlock) ? containingBlock : nullptr;
Test: fast/text/incorrect-deselection-across-multiple-elements.html
- rendering/SelectionRangeData.cpp:
(WebCore::containingBlockBelowView):
LayoutTests:
- fast/text/incorrect-deselection-across-multiple-elements-expected.txt: Added.
- fast/text/incorrect-deselection-across-multiple-elements.html: Added. Use indexOf because
while the repaint rect area is always the same, the rects order may vary.
- 2:20 PM Changeset in webkit [288408] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Use content direction for the first "unicode-paragraph" when "unicode-bidi: plaintext" is present
https://bugs.webkit.org/show_bug.cgi?id=235452
Reviewed by Antti Koivisto.
This makes the /css/css-writing-modes/bidi-plaintext-br-* tests pass (not enabled yet).
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
- 2:14 PM Changeset in webkit [288407] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Alignment logic should take the line specific direction (which may be different from the root direction)
https://bugs.webkit.org/show_bug.cgi?id=235460
Reviewed by Antti Koivisto.
This makes the the /html/dom/elements/global-attributes/dir_auto-* tests pass (not enabled yet).
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::build):
- 12:55 PM Changeset in webkit [288406] by
-
- 4 edits in trunk/Source/WebKit
Skip installing webpushd in STP and downlevel builds
https://bugs.webkit.org/show_bug.cgi?id=235464
<rdar://87425138>
Patch by Elliott Williams <Elliott Williams> on 2022-01-22
Reviewed by Brady Eidson.
We can't ship webpushd as part of STP or builds made for previous versions of macOS. This
change adjusts build settings to skip installing webpushd and its launchd plist outside of a
non-relocatable production build environment.
As a consequence, webpushd will not _install_ in development builds (where all build
products are relocatable). It will continue to build and be runnable from the build
products directory.
- Configurations/BaseTarget.xcconfig: Add WK_SKIP_INSTALL_WEBPUSHD to determine whether to
skip installation.
- Configurations/webpushd.xcconfig: Set SKIP_INSTALL based on WK_SKIP_INSTALL_WEBPUSHD.
- WebKit.xcodeproj/project.pbxproj: Skip installing launchd plists when
WK_SKIP_INSTALL_WEBPUSHD=YES.
- 10:17 AM Changeset in webkit [288405] by
-
- 3 edits in trunk/Source/WebCore
Create ancestry of isolated objects instead of generating the entire subtree for an ancestor.
https://bugs.webkit.org/show_bug.cgi?id=235389
<rdar://problem/87803473>
Reviewed by Chris Fleizach.
AXIsolatedTree::updateChildren may be called for an AXObject that has no
corresponding IsolatedObject. That is the case of empty canvas and some
empty div elements. In those cases we were generating the subtree of the
first available ancestor in the isolated tre. This can be expensive
because in some cases the immediate exisiting ancestor was the webarea,
causing the re-generation of the entire isolated tree. With this patch,
only the IsolatedObjects that are missing in the isolated tree are added
to the tree.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::nodeChangeForObject):
(WebCore::AXIsolatedTree::queueChanges):
The above two methods are added to avoid coude duplication and to be
able to decouple the creation of new isolated objects from the addition
of those objects to the isolated tree.
(WebCore::AXIsolatedTree::createSubtree):
(WebCore::AXIsolatedTree::updateChildren):
- accessibility/isolatedtree/AXIsolatedTree.h:
- 9:26 AM Changeset in webkit [288404] by
-
- 3 edits2 deletes in trunk
[CSS Cascade Layers] Enable CSSImportRule.layerName for WebKitGTK
https://bugs.webkit.org/show_bug.cgi?id=235455
Reviewed by Darin Adler.
Source/WebCore:
Bug 231340 added support for CSSImportRule.layerName, but CMakeLists.txt
wasn't listing CSSImportRule+Layer.idl
So the attribute was not there when running WebKitGTK, built with CMake.
Tests: imported/w3c/web-platform-tests/css/css-cascade/idlharness.html
imported/w3c/web-platform-tests/css/css-cascade/layer-rules-cssom.html
- CMakeLists.txt: link missing css/CSSImportRule+Layer.idl
LayoutTests:
Expect the tests to pass.
- platform/glib/imported/w3c/web-platform-tests/css/css-cascade/idlharness-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/css/css-cascade/layer-rules-cssom-expected.txt: Removed.
- 1:31 AM Changeset in webkit [288403] by
-
- 9 edits in trunk
[GTK][a11y] Stop registering the tree when clients are connected with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235313
Reviewed by Adrian Perez de Castro.
Source/WebCore:
That was needed with the isolated tree mode, now we can go back to register objects on demand.
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::platformPerformDeferredCacheUpdate):
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::addClient):
(WebCore::AccessibilityAtspi::parentChanged):
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::cacheClearTimerFired):
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::isTreeRegistered const): Deleted.
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::embedded):
(WebCore::AccessibilityRootAtspi::child const):
(WebCore::AccessibilityRootAtspi::childAdded):
(WebCore::registerSubtree): Deleted.
(WebCore::AccessibilityRootAtspi::registerTree): Deleted.
(WebCore::AccessibilityRootAtspi::didUnregisterTree): Deleted.
- accessibility/atspi/AccessibilityRootAtspi.h:
Tools:
- TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(testDocumentLoadEvents): Now we don't get the initial event from previous document web because it happens
before the first client is connected.
Jan 21, 2022:
- 11:39 PM Changeset in webkit [288402] by
-
- 6 edits6 adds in trunk/LayoutTests/imported/w3c
Update css/css-animation WPT following animation-composition testing updates
https://bugs.webkit.org/show_bug.cgi?id=235443
Unreviewed WPT import and rebaseline.
- web-platform-tests/css/css-animations/CSSAnimation-effect.tentative-expected.txt:
- web-platform-tests/css/css-animations/CSSAnimation-effect.tentative.html:
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative.html:
- web-platform-tests/css/css-animations/parsing/animation-composition-computed.tentative-expected.txt: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-computed.tentative.html: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-invalid.tentative-expected.txt: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-invalid.tentative.html: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-valid.tentative-expected.txt: Added.
- web-platform-tests/css/css-animations/parsing/animation-composition-valid.tentative.html: Added.
- web-platform-tests/css/css-animations/parsing/w3c-import.log:
- 10:03 PM Changeset in webkit [288401] by
-
- 11 edits in trunk/Source
Unreviewed, reverting r288400.
https://bugs.webkit.org/show_bug.cgi?id=235470
broke ARM64E build
Reverted changeset:
"[JSC][32bit] Fix regexp crash on ARMv7"
https://bugs.webkit.org/show_bug.cgi?id=234476
https://commits.webkit.org/r288400
- 8:58 PM Changeset in webkit [288400] by
-
- 10 edits in trunk/Source
[JSC][32bit] Fix regexp crash on ARMv7
https://bugs.webkit.org/show_bug.cgi?id=234476
Reviewed by Yusuke Suzuki.
This patch fixes several regexp crashes on ARMv7 due to an incorrect
offset to retrieve the 5th argument from the stack: in ARMv7, only
4 arguments are passed via registers r0-r3i, and any other argument is
placed on the stack, however, YarrJIT was trying to get the 5th arg
from a fixed offset, so because the generateEnter() method pushed
register into the stack, the offset was wrong. This patch fixes how
the offset is calculated for MIPS and ARMv7.
This patch also introduces some small changes:
- Added static_asserts that the YarrJIT calls do indeed have 5 arguments
and that the 5th argument has the type that we expect (MatchingContextHolder*).
- Removed an unnecessary pointer from the MatchingContextHolder
constructor.
- Fixed some warnings in the YarrJIT code here and there.
- dfg/DFGSpeculativeJIT64.cpp:
(JSC::DFG::SpeculativeJIT::compileRegExpTestInline):
- runtime/RegExpInlines.h:
(JSC::RegExp::matchInline):
- yarr/YarrJIT.cpp:
- yarr/YarrMatchingContextHolder.h:
(JSC::Yarr::MatchingContextHolder::MatchingContextHolder):
- 7:03 PM Changeset in webkit [288399] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed, follow-up after r288066
https://bugs.webkit.org/show_bug.cgi?id=235271
- runtime/DatePrototype.cpp:
(JSC::applyToNumberToOtherwiseIgnoredArguments):
(JSC::fillStructuresUsingDateArgs):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
(JSC::applyToNumbersToTrashedArguments): Deleted.
- 6:22 PM Changeset in webkit [288398] by
-
- 1 copy in tags/Safari-613.1.14.5.1
Tag Safari-613.1.14.5.1.
- 6:18 PM Changeset in webkit [288397] by
-
- 10 edits2 adds in branches/safari-613.1.14.5-branch/Source/ThirdParty/libwebrtc
Cherry-pick r288391. rdar://problem/87829404
WebKit fails to build - error: 'webrtc/rtc_base/network.h' file not found
https://bugs.webkit.org/show_bug.cgi?id=235459
Reviewed by Mark Lam.
We needed to create symlinks from the standard location to the SYSTEM_CONTENT_PATH location.
This is needed for both the include files and archive libraries.
- Configurations/boringssl.xcconfig:
- Configurations/libsrtp.xcconfig:
- Configurations/libvpx.xcconfig:
- Configurations/libwebm.xcconfig:
- Configurations/libwebrtc.xcconfig:
- Configurations/libyuv.xcconfig:
- Configurations/opus.xcconfig:
- Configurations/usrsctp.xcconfig:
- Scripts: Added.
- Scripts/create-symlink-to-altroot.sh: Added.
- libwebrtc.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288391 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 6:13 PM Changeset in webkit [288396] by
-
- 9 edits in branches/safari-613.1.14.5-branch/Source
Versioning.
WebKit-7613.1.14.5.1
- 6:13 PM Changeset in webkit [288395] by
-
- 4 edits in trunk
GraphicsContextStateChange logging doesn't dump shadow color
https://bugs.webkit.org/show_bug.cgi?id=235428
Reviewed by Wenson Hsieh.
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContextStateChange::dump const):
Add shadowColor property to the things we dump on ShadowChange.
- 5:59 PM Changeset in webkit [288394] by
-
- 9 edits in branches/safari-613.1.14.41-branch/Source
Revert "Versioning."
This reverts commit r288393.
- 5:58 PM Changeset in webkit [288393] by
-
- 9 edits in branches/safari-613.1.14.41-branch/Source
Versioning.
WebKit-7613.1.14.5.1
- 5:48 PM Changeset in webkit [288392] by
-
- 1 copy in branches/safari-613.1.14.5-branch
New branch.
- 5:38 PM Changeset in webkit [288391] by
-
- 10 edits2 adds in trunk/Source/ThirdParty/libwebrtc
WebKit fails to build - error: 'webrtc/rtc_base/network.h' file not found
https://bugs.webkit.org/show_bug.cgi?id=235459
Reviewed by Mark Lam.
We needed to create symlinks from the standard location to the SYSTEM_CONTENT_PATH location.
This is needed for both the include files and archive libraries.
- Configurations/boringssl.xcconfig:
- Configurations/libsrtp.xcconfig:
- Configurations/libvpx.xcconfig:
- Configurations/libwebm.xcconfig:
- Configurations/libwebrtc.xcconfig:
- Configurations/libyuv.xcconfig:
- Configurations/opus.xcconfig:
- Configurations/usrsctp.xcconfig:
- Scripts: Added.
- Scripts/create-symlink-to-altroot.sh: Added.
- libwebrtc.xcodeproj/project.pbxproj:
- 5:23 PM Changeset in webkit [288390] by
-
- 9 edits in trunk/Source/WebCore
AX: Move Mac subrole logic to new subrolePlatformString AXCoreObject interface method
https://bugs.webkit.org/show_bug.cgi?id=235414
Reviewed by Chris Fleizach.
This patch moves most of the Mac subrole logic to a new AXCoreObject interface
method, subrolePlatformString (matching the naming of rolePlatformString).
This allows us to cache a new AXPropertyName::SubrolePlatformString
property in isolated tree objects.
This fixes accessibility/mac/subroles-for-formatted-groups.html in isolated
tree mode because this test exercised thebackingObject->isStyleFormatGroup()codepath,
which in turn tried to compare AtomStrings off the main-thread, which won't work
(the string comparisons will unexpectedly not match).
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::subrolePlatformString const):
Added.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
- accessibility/isolatedtree/AXIsolatedObject.h:
- accessibility/isolatedtree/AXIsolatedTree.h:
Add new AXPropertyName::SubrolePlatformString property.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
Initialize new AXPropertyName::subrolePlatformString.
- accessibility/mac/AccessibilityObjectMac.mm:
(WebCore::AccessibilityObject::subrolePlatformString const):
Added.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper isEmptyGroup]):
Added.
(-[WebAccessibilityObjectWrapper subrole]):
Defer to subrolePlatformString for determining all subroles except AXEmptyGroup.
- 5:01 PM Changeset in webkit [288389] by
-
- 13 edits in trunk/Source
Disable CFURLCache in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=234988
<rdar://problem/87619196>
Reviewed by Geoffrey Garen.
Source/WebCore:
_CFURLStorageSessionCopyCache can be slow (see rdar://85418732) and UI process may kill network process for
being unresponsive. Since WebKit does not use CFURLCache, we should disable it to avoid the hang.
- platform/network/NetworkStorageSession.h:
- platform/network/cf/NetworkStorageSessionCFNet.cpp:
(WebCore::NetworkStorageSession::createCFStorageSessionForIdentifier):
- platform/network/cocoa/NetworkStorageSessionCocoa.mm:
(WebCore::createPrivateStorageSession):
Source/WebCore/PAL:
- pal/spi/cf/CFNetworkSPI.h:
Source/WebKit:
- NetworkProcess/NetworkProcess.cpp:
(WebKit::NetworkProcess::newTestingSession):
(WebKit::NetworkProcess::ensureSession):
Source/WebKitLegacy:
- WebCoreSupport/NetworkStorageSessionMap.cpp:
(NetworkStorageSessionMap::ensureSession):
Source/WTF:
- wtf/PlatformHave.h:
- 4:41 PM Changeset in webkit [288388] by
-
- 2 edits in trunk/Source/WebCore
imported/w3c/web-platform-tests/css/css-color/parsing/color-valid.html fails in debug
Reviewed by Sam Weinig.
- platform/graphics/ColorTypes.h:
(WebCore::assertInRange):
We want to *ignore* NaN alpha, like for the other channels. The conditional was backwards.
- 4:29 PM Changeset in webkit [288387] by
-
- 12 edits in trunk/Source/WebKit
Inject Launch Services database before NSApplication is initialized
https://bugs.webkit.org/show_bug.cgi?id=235186
<rdar://87468788>
Reviewed by Chris Dumez.
To avoid the main thread getting stuck, the Launch Services database should be injected before NSApplication
is initialized, since the initialization now depends on the database. To make sure also prewarmed WebContent
processes are receiving the Launch Services database, the WebsiteDataStore method
sendNetworkProcessXPCEndpointToProcess is moved to the class NetworkProcessProxy, since prewarmed processes
will not have a data store initially. This allows us to simplify the code, since we are no longer depending
on having a Website data store before sending the XPC endpoint.
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::didFinishLaunching):
- UIProcess/WebsiteData/Cocoa/WebsiteDataStoreCocoa.mm:
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess):
(WebKit::WebsiteDataStore::sendNetworkProcessXPCEndpointToProcess const): Deleted.
- UIProcess/WebsiteData/WebsiteDataStore.h:
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformDidReceiveLoadParameters):
- WebProcess/cocoa/LaunchServicesDatabaseManager.h:
- WebProcess/cocoa/LaunchServicesDatabaseManager.mm:
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 4:21 PM Changeset in webkit [288386] by
-
- 2 edits in trunk/Source/WebKit
[iOS][WP] Allow access to CFNetwork prefs
https://bugs.webkit.org/show_bug.cgi?id=235457
<rdar://87822314>
Reviewed by Brent Fulgham.
Allow access to CFNetwork prefs on internal builds.
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in:
- 3:40 PM Changeset in webkit [288385] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Make alignment editor accessible
https://bugs.webkit.org/show_bug.cgi?id=235395
<rdar://problem/87851989>
Reviewed by Patrick Angle.
Make alignment editor icons focusable, and annotate elements so VoiceOver could correctly read what is selected.
- UserInterface/Views/AlignmentEditor.css:
(.alignment-editor .glyph:focus):
(.alignment-editor .glyph:not(:focus-visible)):
- UserInterface/Views/AlignmentEditor.js:
(WI.AlignmentEditor):
(WI.AlignmentEditor.prototype.set alignment):
(WI.AlignmentEditor.prototype._removePreviouslySelected):
(WI.AlignmentEditor.prototype._updateSelected):
- 3:30 PM Changeset in webkit [288384] by
-
- 2 edits in trunk/Tools
[EWS] Support pull-requests in ValidateChange (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=234861
<rdar://problem/87114299>
Unreviewed follow-up fix.
- Tools/CISupport/ews-build/steps.py:
(GitHubMixin.fetch_data_from_url_with_authentication): Fix authentication call.
Canonical link: https://commits.webkit.org/246281@main
- 3:10 PM WebKitGTK/2.34.x edited by
- (diff)
- 2:49 PM Changeset in webkit [288383] by
-
- 2 edits in trunk/Tools
[EWS] Avoid extra network request from buildbot to github
https://bugs.webkit.org/show_bug.cgi?id=235417
<rdar://problem/87846222>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/events.py:
(GitHubEventHandlerNoEdits._get_commit_msg): Return empty string.
Canonical link: https://commits.webkit.org/246280@main
- 2:18 PM Changeset in webkit [288382] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test resource change.
Change this alpha PNG image to use a simple color with alpha, rather than a gradient,
so that when the image is stretched it doesn't result in small pixel diffs in test
results.
- compositing/resources/simple_image.png:
- 1:59 PM Changeset in webkit [288381] by
-
- 3 edits in trunk/Source/bmalloc
[libpas] Follow-up after r288339
https://bugs.webkit.org/show_bug.cgi?id=235423
Changed the type names.
- libpas/src/libpas/pas_allocation_callbacks.c:
- libpas/src/libpas/pas_allocation_callbacks.h:
- 1:51 PM Changeset in webkit [288380] by
-
- 3 edits in trunk/LayoutTests
REGRESSION (r286944?): web-platform-tests/html/semantics/text-level-semantics/the-a-element/a-download-click tests have become flaky failures
https://bugs.webkit.org/show_bug.cgi?id=234410
Unreviewed test gardening. Adding expectations due to negative impact on EWS.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 1:47 PM Changeset in webkit [288379] by
-
- 9 edits in trunk
Build failure with g++ 12: std::exchange undefined
https://bugs.webkit.org/show_bug.cgi?id=235445
Patch by Mike Gorse <mgorse@suse.com> on 2022-01-21
Reviewed by Michael Catanzaro.
Source/JavaScriptCore:
- API/JSRetainPtr.h: Include <utility>
Source/WebCore:
- platform/graphics/x11/XUniqueResource.h: Include <utility>
Source/WTF:
- wtf/CompletionHandler.h: Include <utility>
- wtf/MallocPtr.h: Ditto
Tools:
- ImageDiff/ImageDiff.cpp: Include <utility>
- 1:38 PM Changeset in webkit [288378] by
-
- 1 copy in tags/Safari-613.1.14.41.1
Tag Safari-613.1.14.41.1.
- 1:32 PM Changeset in webkit [288377] by
-
- 1 edit in branches/safari-613.1.14.41-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj
Revert "Apply patch. rdar://problem/86298747"
This reverts commit r288231
- 1:29 PM Changeset in webkit [288376] by
-
- 9 edits in branches/safari-613.1.14.41-branch/Source
Versioning.
WebKit-7613.1.14.41.1
- 1:25 PM Changeset in webkit [288375] by
-
- 2 edits in trunk/Source/WebKit
[macOS][GPUP] Add access to IOKit property
https://bugs.webkit.org/show_bug.cgi?id=235450
<rdar://76403140>
Reviewed by Brent Fulgham.
- GPUProcess/mac/com.apple.WebKit.GPUProcess.sb.in:
- 1:19 PM Changeset in webkit [288374] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Add MacroAssemblerRISCV64 branch-testing operations
https://bugs.webkit.org/show_bug.cgi?id=235442
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-21
Reviewed by Yusuke Suzuki.
Implement MacroAssemblerRISCV64 branch-testing operations. The branching
instructions being intentionally simple in RISC-V, and with no status
register, scratch register has to be used to hold the testing result
and perform a branch based on its value. This will disallow use of these
implementations from Air, but that has to be address inside Air itself.
When performing tests for values that are smaller than 64 bits in width,
the tested value is zero-extended or, when necessary, loaded as an
unsigned value, to impose zeroed upper bits that eliminate masking
values that are too wide or get sign-extended when used as immediates.
Post-masking, these shorter-width values still have to be sign-extended
to accommodate branch instructions that are used when testing
signedness.
The test result value is then passed on, along with the desired
condition, to the new branchTestFinalize() helper method that finally
generates the appropriate branch.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::branchTest8):
(JSC::MacroAssemblerRISCV64::branchTest16):
(JSC::MacroAssemblerRISCV64::branchTest32):
(JSC::MacroAssemblerRISCV64::branchTest64):
(JSC::MacroAssemblerRISCV64::branchPtr):
(JSC::MacroAssemblerRISCV64::branchTestFinalize):
- 1:18 PM Changeset in webkit [288373] by
-
- 1 copy in branches/safari-613.1.14.41-branch
New branch.
- 1:13 PM Changeset in webkit [288372] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Add MacroAssemblerRISCV64 operations for bitfield, zero-counting, byte-swapping operations
https://bugs.webkit.org/show_bug.cgi?id=235439
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-21
Reviewed by Yusuke Suzuki.
Add MacroAssemblerRISCV64 implementations that cover unsigned bitfield,
leading-zero, trailing-zero and byte-swapping operations. All these
operations are not supported in base RISC-V specifications. There are
extensions currently being ratified that will introduce more useful
instructions, but until then more verbose implementations will have
to be used.
For the unsigned bitfield operations, the desired result is achieved
through shifting and masking. Scratch registers are only needed in
case of the mask immediate being too large, but that will be properly
handled by the higher-level JITs. For other operations covered in this
patch we have to use scratch registers and custom loops to implement
the necessary behavior.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::extractUnsignedBitfield32):
(JSC::MacroAssemblerRISCV64::extractUnsignedBitfield64):
(JSC::MacroAssemblerRISCV64::insertUnsignedBitfieldInZero32):
(JSC::MacroAssemblerRISCV64::insertUnsignedBitfieldInZero64):
(JSC::MacroAssemblerRISCV64::countLeadingZeros32):
(JSC::MacroAssemblerRISCV64::countLeadingZeros64):
(JSC::MacroAssemblerRISCV64::countTrailingZeros32):
(JSC::MacroAssemblerRISCV64::countTrailingZeros64):
(JSC::MacroAssemblerRISCV64::byteSwap16):
(JSC::MacroAssemblerRISCV64::byteSwap32):
(JSC::MacroAssemblerRISCV64::byteSwap64):
- 1:07 PM Changeset in webkit [288371] by
-
- 4 edits in trunk
[LFC][IFC] Inline boxes with collapsible content only should not be considered opaque bidi items
https://bugs.webkit.org/show_bug.cgi?id=235447
Reviewed by Antti Koivisto.
Source/WebCore:
We don't normally submit inline boxes with content to ubidi re-ordering since their content drives the visual
position unless they are empty. While empty inline boxes do not usually produce visual artifacts (except ones with decoration)
they still need to be able to answer "bounding box" type of questions.
So in order to have geometry generated for inline boxes, they either
1, need to have some content so that while processing their content, we also compute their geometries
2, have to participate in ubidi's visual re-ordering so that they show up in the visual list (which is the input to the display box create function)
This patch treats inline boxes with fully collapsible content empty so that they fall into group #2.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):
LayoutTests:
- 1:02 PM Changeset in webkit [288370] by
-
- 1 edit1 move in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/dom/events/focus-event-document-move.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=235150
<rdar://problem/87524787>
Unreviewed, re-land iOS baseline in the correct location. The behaviour difference is expected as it involves mouse events.
- platform/ios/imported/w3c/web-platform-tests/dom/events/focus-event-document-move-expected.txt: Renamed from LayoutTests/platform/ios/imported/w3c/dom/events/focus-event-document-move-expected.txt.
- 1:01 PM Changeset in webkit [288369] by
-
- 1 copy in branches/safari-613.1.13.1-branch
New branch.
- 12:30 PM Changeset in webkit [288368] by
-
- 2 edits in trunk/Tools
[EWS] Use token when processing hook
https://bugs.webkit.org/show_bug.cgi?id=235383
<rdar://problem/87791577>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/master.cfg:
Canonical link: https://commits.webkit.org/246270@main
- 10:54 AM Changeset in webkit [288367] by
-
- 2 edits in trunk/Tools
[EWS] ConfigureBuild should display PR information instead of ValidateChange
https://bugs.webkit.org/show_bug.cgi?id=235377
<rdar://problem/87853245>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(GitHub):
(GitHub.commit_url): Convert a sha and repository to clickable commit url.
(ConfigureBuild._addToLog): Added.
(ConfigureBuild.add_pr_details): Print link to pull request, commit being
tested and author of change.
(ValidateChange.validate_github): Move links to ConfigureBuild.
Canonical link: https://commits.webkit.org/246269@main
- 10:31 AM Changeset in webkit [288366] by
-
- 5 edits in trunk/Tools
[webkitscmpy] Stop killing finished processes
https://bugs.webkit.org/show_bug.cgi?id=235427
<rdar://problem/87887233>
Rubber-stamped by Aakash Jain.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/git.py:
(Git.Cache.populate): Check if process has finished before killing it.
(Git.commits): Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/local/svn.py:
(Svn.Cache.populate): Check if process has finished before killing it.
(Svn.commits): Ditto.
Canonical link: https://commits.webkit.org/246268@main
- 9:14 AM Changeset in webkit [288365] by
-
- 1 copy in tags/Safari-612.4.9.1.7
Tag Safari-612.4.9.1.7.
- 9:10 AM Changeset in webkit [288364] by
-
- 8 edits in branches/safari-612.4.9.1-branch/Source
Versioning.
WebKit-7612.4.9.1.7
- 8:11 AM Changeset in webkit [288363] by
-
- 3 edits in trunk/Source/JavaScriptCore
Fix build when using Visual Studio 2022
https://bugs.webkit.org/show_bug.cgi?id=235440
Reviewed by Antti Koivisto.
It doesn't like having a switch with a default but no cases.
This is cleaner with if statements anyways.
Also make members const because I can.
- jit/JITCode.cpp:
(JSC::JITCode::calleeSaveRegisters const):
- jit/JITCode.h:
- 7:08 AM Changeset in webkit [288362] by
-
- 6 edits2 adds in trunk
WPT version of css/css-cascade/parsing/layer-import-parsing.html crashes with nullptr
https://bugs.webkit.org/show_bug.cgi?id=235434
rdar://87832940
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/parsing/layer-import-parsing.html:
Update to WPT version.
Source/WebCore:
Test: fast/css/insert-import-rule-crash.html
- css/StyleRuleImport.cpp:
(WebCore::StyleRuleImport::setCSSStyleSheet):
Null check the parent stylesheet. It can be null if the rule has been removed.
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::startLoadingDynamicSheet):
Also fix a debug assert in addPendingSheet, this can get called multiple times.
LayoutTests:
- fast/css/insert-import-rule-crash-expected.txt: Added.
- fast/css/insert-import-rule-crash.html: Added.
- 5:11 AM Changeset in webkit [288361] by
-
- 13 edits in trunk
[CMake] Cannot link libTestRunnerInjectedBundle.so in non unified build
https://bugs.webkit.org/show_bug.cgi?id=226088
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
- wasm/js/JSWebAssemblyModule.h: Add missing header
Source/WebCore:
Covered by existing tests.
- inspector/InspectorController.cpp:
(WebCore::InspectorController::isUnderTest const): Defining it.
- inspector/InspectorController.h: Export isUnderTest().
- loader/SubresourceIntegrity.h: Add missing header.
- platform/gtk/ValidationBubbleGtk.cpp: Ditto.
- svg/graphics/filters/SVGFEImage.h: Ditto.
- testing/Internals.cpp:
(WebCore::Internals::mediaSessionState): Cast new enum to the WebCore
one.
- testing/Internals.h: Redefine MediaSessionState as a new enum
instead of aliasing to avoid redefinitions of
convertEnumerationToString in non-unified builds.
- workers/WorkerConsoleClient.h:
Tools:
- WebKitTestRunner/CMakeLists.txt: Pull WebCore as dependency for
WTR/WTRInjectedBundle
- 3:05 AM Changeset in webkit [288360] by
-
- 1 copy in releases/WPE WebKit/webkit-2.34.4
WPE WebKit 2.34.4
- 3:03 AM Changeset in webkit [288359] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Unreviewed. Update OptionsWPE.cmake and NEWS for the 2.34.4 release
.:
- Source/cmake/OptionsWPE.cmake: Bump version numbers.
Source/WebKit:
- wpe/NEWS: Add release notes for 2.34.4
- 2:36 AM Changeset in webkit [288358] by
-
- 10 edits1 delete in trunk
element.scrollIntoView() sometimes doesn't scroll
https://bugs.webkit.org/show_bug.cgi?id=42593
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/cssom-view/scrollIntoView-horizontal-partially-visible-expected.txt:
Source/WebCore:
No new tests. This is covered by existing WPT tests.
For some operations which scroll to a rectangle, if an object is more than
32 pixels onscreen, it's not considered onscreen. This was originally used
to prevent unnecessary scrolling while tabbing through form fields, but is
no longer used for that in the majority of cases. Instead, the behavior affects
the calls to Element.focus(), Element.scrollIntoView(), and navigations to
anchor elements.
While navigation to anchor elements and calls to Element.focus() offer more
flexibility to the user agent, this behavior is not spec-compliant with
scrollIntoView(). This change adds a flag to ScrollAlignment to turn it off.
It could be that, in the future, the behavior for focus() is specified more
thoroughly, which might mean extending this fix.
- dom/Element.cpp:
(WebCore::Element::scrollIntoView): Turn off the legacy horizontal visibility threshold.
(WebCore::Element::scrollIntoViewIfNeeded): Ditto.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::getRectToExpose const): Use the new setting in ScrollAlignment
and also rework the code to use the new methods on ScrollAlignment.
- rendering/ScrollAlignment.h:
(WebCore::ScrollAlignment::getVisibleBehavior const): Converted this to a method to match
the new ones.
(WebCore::ScrollAlignment::getPartialBehavior const): Ditto.
(WebCore::ScrollAlignment::getHiddenBehavior const): Ditto.
(WebCore::ScrollAlignment::disableLegacyHorizontalVisibilityThreshold): Added.
(WebCore::ScrollAlignment::legacyHorizontalVisibilityThresholdEnabled const): Added.
(WebCore::ScrollAlignment::getVisibleBehavior): Deleted.
(WebCore::ScrollAlignment::getPartialBehavior): Deleted.
(WebCore::ScrollAlignment::getHiddenBehavior): Deleted.
LayoutTests:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-empty-inline-expected.txt: Removed.
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/getBoundingClientRect-shy-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-empty-inline-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom-view/offsetTopLeft-leading-space-inline-expected.txt:
- 2:25 AM Changeset in webkit [288357] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Garden fast/mediastream/getUserMedia-to-canvas-*.html failure for WPE
https://bugs.webkit.org/show_bug.cgi?id=235396
Unreviewed gardnening.
Move fast/mediastream/getUserMedia-to-canvas-*.html failures to glib
to suppress also WPE failures.
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-21
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 1:41 AM Changeset in webkit [288356] by
-
- 5 edits in trunk/Source
Fix AppleWin build with newer MSVC
https://bugs.webkit.org/show_bug.cgi?id=235431
Reviewed by Alex Christensen.
Source/WebCore:
- platform/graphics/ca/win/PlatformCALayerWin.cpp:
(printLayer):
Source/WebKitLegacy/win:
- WebDownloadCFNet.cpp:
(WebDownload::cancelForResume):
- WebKitQuartzCoreAdditions/CAD3DRenderer.cpp:
(WKQCA::CAD3DRenderer::resetD3DDevice):
- 1:25 AM Changeset in webkit [288355] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations:
- 12:32 AM Changeset in webkit [288354] by
-
- 28 edits1 copy3 adds in trunk
Support in-process testing of IPC messages
https://bugs.webkit.org/show_bug.cgi?id=231674
<rdar://84189314>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-21
Reviewed by Brent Fulgham.
Source/WebKit:
Add IPCTester service to UI, GPU, Network, Authn process.
The service can be used to send random messages to the processes.
Test: ipc/start-message-testing.html
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- GPUProcess/GPUConnectionToWebProcess.cpp:
(WebKit::GPUConnectionToWebProcess::dispatchMessage):
(WebKit::GPUConnectionToWebProcess::dispatchSyncMessage):
- GPUProcess/GPUConnectionToWebProcess.h:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::didReceiveMessage):
(WebKit::NetworkConnectionToWebProcess::didReceiveSyncMessage):
- NetworkProcess/NetworkConnectionToWebProcess.h:
- Platform/IPC/Connection.cpp:
(IPC::Connection::dispatchIncomingMessageForTesting):
(IPC::Connection::dispatchMessage):
(IPC::CompletionHandler<void):
Remove asserts from takeAsyncReplyHandler, they're already present
in the caller. The caller can filter them based on the testing flag,
allowing testing without asserts.
- Platform/IPC/Connection.h:
- Platform/IPC/Decoder.cpp:
(IPC::Decoder::create):
(IPC::Decoder::Decoder):
(IPC::Decoder::~Decoder):
- Platform/IPC/Decoder.h:
- Platform/IPC/cocoa/ConnectionCocoa.mm:
(IPC::createMessageDecoder):
- Platform/IPC/unix/ConnectionUnix.cpp:
(IPC::Connection::processMessage):
- Platform/IPC/win/ConnectionWin.cpp:
(IPC::Connection::readEventHandler):
- Shared/IPCTester.cpp: Added.
(WebKit::messageTestDriver):
(WebKit::runMessageTesting):
(WebKit::IPCTester::~IPCTester):
(WebKit::IPCTester::startMessageTesting):
(WebKit::IPCTester::stopMessageTesting):
(WebKit::IPCTester::stopIfNeeded):
- Shared/IPCTester.h: Added.
- Shared/IPCTester.messages.in: Copied from Source/WebKit/WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in.
- Sources.txt:
- UIProcess/LegacySessionStateCodingNone.cpp:
(WebKit::decodeLegacySessionState):
- UIProcess/WebProcessPool.cpp:
- UIProcess/WebProcessPool.h:
- UIProcess/WebProcessProxy.cpp:
(WebKit::WebProcessProxy::shouldSendPendingMessage):
- WebAuthnProcess/WebAuthnConnectionToWebProcess.cpp:
(WebKit::WebAuthnConnectionToWebProcess::dispatchMessage):
(WebKit::WebAuthnConnectionToWebProcess::dispatchSyncMessage):
- WebAuthnProcess/WebAuthnConnectionToWebProcess.h:
- WebAuthnProcess/WebAuthnConnectionToWebProcess.messages.in:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/WebPage/IPCTestingAPI.cpp:
(WebKit::IPCTestingAPI::JSMessageListener::didReceiveMessage):
(WebKit::IPCTestingAPI::JSMessageListener::willSendMessage):
LayoutTests:
done-ipc-fuzizng
- TestExpectations:
- ipc/start-message-testing.html: Added.
Jan 20, 2022:
- 10:38 PM Changeset in webkit [288353] by
-
- 3 edits in trunk/LayoutTests
Partially garden [iOS] Triage failing LayoutTests in the storage/indexeddb directory
https://bugs.webkit.org/show_bug.cgi?id=181752
rdar://36590081
Patch by Jon Lee <jonlee554@gmail.com> on 2022-01-20
Reviewed by Simon Fraser.
Some of the tests always pass now. Update expectations.
- gpu-process/TestExpectations:
- platform/ios/TestExpectations:
- 10:15 PM Changeset in webkit [288352] by
-
- 59 edits in trunk/Source
[Cocoa] Accelerated filters are enabled by the wrong setting
https://bugs.webkit.org/show_bug.cgi?id=235376
Reviewed by Simon Fraser.
Source/WebCore:
This patch does the following:
- Delete the setting AcceleratedFiltersEnabled since it has not been enabled by any port.
- Delete CoreImageAcceleratedFilterRenderEnabled from the experimental features list because CoreImage filters are not ready to be run in the layout tests.
- Add AcceleratedFiltersEnabled as an internal feature and use it to enable CoreImage filters for Cocoa ports. and SourceGraphic::createApplier().
- Use "Accelerated" instead of using "CoreImage" in the methods of Filter and FilterEffect. The implementation of these methods will be guarded by #if USE(CORE_IMAGE) for Cocoa ports.
- Split the method createApplier() to two methods: createSoftwareApplier() and createAcceleratedApplier() and make FilterEffect::createApplier() decide which one to call.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- css/CSSFilterImageValue.cpp:
(WebCore::CSSFilterImageValue::image):
- page/Page.cpp:
(WebCore::Page::acceleratedFiltersEnabled const):
- page/Page.h:
- page/Settings.yaml:
- platform/graphics/coreimage/FEColorMatrixCoreImageApplier.h:
- platform/graphics/coreimage/FEComponentTransferCoreImageApplier.h:
- platform/graphics/coreimage/SourceGraphicCoreImageApplier.h:
- platform/graphics/filters/FEBlend.cpp:
(WebCore::FEBlend::createSoftwareApplier const):
(WebCore::FEBlend::createApplier const): Deleted.
- platform/graphics/filters/FEBlend.h:
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::resultIsAlphaImage const):
(WebCore::FEColorMatrix::supportsAcceleratedRendering const):
(WebCore::FEColorMatrix::createAcceleratedApplier const):
(WebCore::FEColorMatrix::createSoftwareApplier const):
(WebCore::FEColorMatrix::supportsCoreImageRendering const): Deleted.
(WebCore::FEColorMatrix::createApplier const): Deleted.
- platform/graphics/filters/FEColorMatrix.h:
- platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::supportsAcceleratedRendering const):
(WebCore::FEComponentTransfer::createAcceleratedApplier const):
(WebCore::FEComponentTransfer::createSoftwareApplier const):
(WebCore::FEComponentTransfer::supportsCoreImageRendering const): Deleted.
(WebCore::FEComponentTransfer::createApplier const): Deleted.
- platform/graphics/filters/FEComponentTransfer.h:
- platform/graphics/filters/FEComposite.cpp:
(WebCore::FEComposite::createSoftwareApplier const):
(WebCore::FEComposite::createApplier const): Deleted.
- platform/graphics/filters/FEComposite.h:
- platform/graphics/filters/FEConvolveMatrix.cpp:
(WebCore::FEConvolveMatrix::createSoftwareApplier const):
(WebCore::FEConvolveMatrix::createApplier const): Deleted.
- platform/graphics/filters/FEConvolveMatrix.h:
- platform/graphics/filters/FEDisplacementMap.cpp:
(WebCore::FEDisplacementMap::createSoftwareApplier const):
(WebCore::FEDisplacementMap::createApplier const): Deleted.
- platform/graphics/filters/FEDisplacementMap.h:
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::createSoftwareApplier const):
(WebCore::FEDropShadow::createApplier const): Deleted.
- platform/graphics/filters/FEDropShadow.h:
- platform/graphics/filters/FEFlood.cpp:
(WebCore::FEFlood::createSoftwareApplier const):
(WebCore::FEFlood::createApplier const): Deleted.
- platform/graphics/filters/FEFlood.h:
- platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::createSoftwareApplier const):
(WebCore::FEGaussianBlur::createApplier const): Deleted.
- platform/graphics/filters/FEGaussianBlur.h:
- platform/graphics/filters/FELighting.cpp:
(WebCore::FELighting::createSoftwareApplier const):
(WebCore::FELighting::createApplier const): Deleted.
- platform/graphics/filters/FELighting.h:
- platform/graphics/filters/FEMerge.cpp:
(WebCore::FEMerge::createSoftwareApplier const):
(WebCore::FEMerge::createApplier const): Deleted.
- platform/graphics/filters/FEMerge.h:
- platform/graphics/filters/FEMorphology.cpp:
(WebCore::FEMorphology::createSoftwareApplier const):
(WebCore::FEMorphology::createApplier const): Deleted.
- platform/graphics/filters/FEMorphology.h:
- platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::createSoftwareApplier const):
(WebCore::FEOffset::createApplier const): Deleted.
- platform/graphics/filters/FEOffset.h:
- platform/graphics/filters/FETile.cpp:
(WebCore::FETile::createSoftwareApplier const):
(WebCore::FETile::createApplier const): Deleted.
- platform/graphics/filters/FETile.h:
- platform/graphics/filters/FETurbulence.cpp:
(WebCore::FETurbulence::createSoftwareApplier const):
(WebCore::FETurbulence::createApplier const): Deleted.
- platform/graphics/filters/FETurbulence.h:
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::createApplier const):
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::createAcceleratedApplier const):
- platform/graphics/filters/FilterFunction.h:
(WebCore::FilterFunction::supportsAcceleratedRendering const):
(WebCore::FilterFunction::supportsCoreImageRendering const): Deleted.
- platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::createSoftwareApplier const):
(WebCore::SourceAlpha::createApplier const): Deleted.
- platform/graphics/filters/SourceAlpha.h:
- platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::supportsAcceleratedRendering const):
(WebCore::SourceGraphic::createAcceleratedApplier const):
(WebCore::SourceGraphic::createSoftwareApplier const):
(WebCore::SourceGraphic::createApplier const): Deleted.
- platform/graphics/filters/SourceGraphic.h:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
(WebCore::CSSFilter::supportsAcceleratedRendering const):
(WebCore::CSSFilter::supportsCoreImageRendering const): Deleted.
- rendering/CSSFilter.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::calculateClipRects const):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
- svg/graphics/filters/SVGFEImage.cpp:
(WebCore::FEImage::createSoftwareApplier const):
(WebCore::FEImage::createApplier const): Deleted.
- svg/graphics/filters/SVGFEImage.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::supportsAcceleratedRendering const):
(WebCore::SVGFilter::supportsCoreImageRendering const): Deleted.
- svg/graphics/filters/SVGFilter.h:
Source/WTF:
Delete ENABLE_CORE_IMAGE_ACCELERATED_FILTER_RENDER and use USE_CORE_IMAGE
instead since CoreImage is only used for filters right now. Besides
CoreImage filters will be enabled by the internal feature control flag
AcceleratedFiltersEnabled.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- Scripts/Preferences/WebPreferencesInternal.yaml:
- wtf/PlatformEnableCocoa.h:
- 8:54 PM Changeset in webkit [288351] by
-
- 2 edits in trunk/LayoutTests
It looks like word-break-break-all-008.html still fails on Catalina.
Unreviewed.
- platform/mac/TestExpectations:
- 8:18 PM Changeset in webkit [288350] by
-
- 4 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations:
- platform/ios-simulator/TestExpectations:
- platform/ios-wk2/TestExpectations:
- 7:58 PM Changeset in webkit [288349] by
-
- 2 edits in trunk/Tools
[GTK] API test /webkit/WebKitWebsiteData/cache is flaky
https://bugs.webkit.org/show_bug.cgi?id=188113
Unreviewed test gardening.
It has been passing consistently for a long time. Sometimes failing
consistently too, but when there are regressions.
- TestWebKitAPI/glib/TestExpectations.json:
- 7:51 PM Changeset in webkit [288348] by
-
- 3 edits in trunk/LayoutTests
media/video-src-blob-using-open-panel.html now always passes.
rdar://problem/32715902
Gardening. Unreviewed.
- gpu-process/TestExpectations:
- platform/ios/TestExpectations:
- 7:47 PM Changeset in webkit [288347] by
-
- 5 edits in trunk/LayoutTests
WPT progressions after r288070 (complex font codepath for IFC)
Unreviewed.
Patch by Alan Bujtas <Alan Bujtas> on 2022-01-20
- TestExpectations:
- platform/mac/TestExpectations:
- 7:18 PM Changeset in webkit [288346] by
-
- 3 edits in trunk/LayoutTests
WPT progressions after r288070 (complex font codepath for IFC)
Unreviewed.
- TestExpectations:
- platform/mac/TestExpectations:
- 7:09 PM Changeset in webkit [288345] by
-
- 18 edits4 copies2 adds in trunk
Add SPI for passing around and getting details about
WebCore::CSSStyleDeclarationin injected bundle code
https://bugs.webkit.org/show_bug.cgi?id=235386
<rdar://problem/87566737>
Reviewed by Tim Horton.
Source/WebKit:
Test: WebKit.WKWebProcessPlugInCSSStyleDeclarationHandle
- WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.h:
- WebProcess/InjectedBundle/DOM/InjectedBundleCSSStyleDeclarationHandle.cpp:
(WebKit::InjectedBundleCSSStyleDeclarationHandle::getOrCreate):
(WebKit::InjectedBundleCSSStyleDeclarationHandle::coreCSSStyleDeclaration): Added.
Expose a way to get the relatedWebCore::CSSStyleDeclaration(fortoJS).
Add a method that returns the string value for a given property name.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInCSSStyleDeclarationHandle.h: Added.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInCSSStyleDeclarationHandleInternal.h: Added.
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInCSSStyleDeclarationHandle.mm: Added.
(-[WKWebProcessPlugInCSSStyleDeclarationHandle dealloc]):
(+[WKWebProcessPlugInCSSStyleDeclarationHandle cssStyleDeclarationHandleWithJSValue:inContext:]):
(-[WKWebProcessPlugInCSSStyleDeclarationHandle _cssStyleDeclarationHandle]):
(-[WKWebProcessPlugInCSSStyleDeclarationHandle _apiObject]):
Add ObjC SPI for manipulatingWebCore::CSSStyleDeclaration(in the injected bundle).
- WebProcess/WebPage/WebFrame.h:
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::jsWrapperForWorld):
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.h:
- WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInFrame.mm:
(-[WKWebProcessPlugInFrame jsCSSStyleDeclarationForCSSStyleDeclarationHandle:inWorld:]): Added.
Add methods for converting from ObjC SPI wrappers ofWebCore::CSSStyleDeclarationto JS.
- Shared/Cocoa/APIObject.mm:
(API::Object::newObject):
Add support for automatic conversion ofWKBundleCSSStyleDeclarationRefto ObjC (above).
- PlatformMac.cmake:
- SourcesCocoa.txt:
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/cocoa/WebProcessCocoa.mm:
Drive-by: Unified sources fixes.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/BundleCSSStyleDeclarationHandleProtocol.h: Added.
- TestWebKitAPI/Tests/WebKitCocoa/BundleCSSStyleDeclarationHandle.mm: Added.
(-[BundleCSSStyleDeclarationHandleRemoteObject verifyStyle:]):
(TEST.WebKit.WKWebProcessPlugInCSSStyleDeclarationHandle):
- TestWebKitAPI/Tests/WebKitCocoa/BundleCSSStyleDeclarationHandlePlugIn.mm: Added.
(-[BundleCSSStyleDeclarationHandlePlugIn webProcessPlugIn:didCreateBrowserContextController:]):
(-[BundleCSSStyleDeclarationHandlePlugIn webProcessPlugInBrowserContextController:didFinishDocumentLoadForFrame:]):
- TestWebKitAPI/SourcesCocoa.txt:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/CookiePrivateBrowsing.mm:
(-[CookiePrivateBrowsingDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TEST.WebKit.CookiePrivateBrowsing):
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
- TestWebKitAPI/Tests/WebKitCocoa/RestoreSessionStateWithoutNavigation.mm:
(-[SessionStateDelegate webView:didFinishNavigation:]):
(TestWebKitAPI::createSessionStateData):
Drive-by: Unified sources fixes.
- 7:00 PM Changeset in webkit [288344] by
-
- 3 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations: Remove failure expectations on media tests that are passing on iOS.
- platform/ios/TestExpectations:
- 6:58 PM Changeset in webkit [288343] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Implement TextUtil::directionForTextContent
https://bugs.webkit.org/show_bug.cgi?id=235392
Reviewed by Antti Koivisto.
Let's check with ubidi_getBaseDirection what the content direction is. We use this
direction value to drive the line based "content alignment".
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::directionForTextContent):
- 6:43 PM Changeset in webkit [288342] by
-
- 13 edits in trunk/Source/bmalloc
[libpas] medium directory lookup should bail if begin_index is zero to catch races with expendable memory decommit (cherry pick 434465bfb8e0c285d6763cf6aa0e04982199f824)
https://bugs.webkit.org/show_bug.cgi?id=235280
Reviewed by Yusuke Suzuki.
I've been seeing crashes in pas_segregated_heap_ensure_allocator_index where the directory that is
passed to the function doesn't match the size. The most likely reason why this is happening is that
the medium directory lookup raced with expendable memory decommit and returned the wrong directory.
To figure out how this happens, I added a bunch of tests to ExpendableMemoryTests. This change
includes various small fixes (like removing assertions) that were found by doing such testing, and it
also includes a test and a change that I think exactly catches what is going on:
- Expendable memory is decommitted so that the medium lookup sees begin_index == 0, but end_index still has its original value. This will cause it to return a tuple that is for a too-large size class.
- Some other thread rematerializes the expendable memory right after the medium lookup finishes, but before it loads the directory.
- The medium lookup finally loads the directory from the tuple, and now sees a non-NULL directory, so it thinks that everything is fine.
This race barely "works" since:
- Any other field in the medium tuple being zero would cause the medium lookup to fail, which would then cause a slow path that rematerializes expendable memory under a lock.
- Rematerialization of expendable memory adjusts the mutation count, so this race would only go undetected if the rematerialization happened after the medium lookup search but before when the medium lookup loads the directory.
The solution is to just have the medium lookup fail if begin_index == 0. Begin_index can never
legitimately be zero, because there's no way that a size class would want to be responsible for both
index 0 (i.e. the zero-byte object) and objects big enough to require medium lookup.
This adds new tests. While running those new tests, I found and fixed two other bugs:
- Recomputation of the index_to_small_allocator_index table subtly mishandles the cached_index case. Previously, it was only special-casing it only when the directory was not participating in lookup tables at all, but actually it needs to special-case it anytime that the directory doesn't otherwise think that it should set the entry at cached_index.
- Expendable memory commit/decommit was playing fast-and-loose with version numbers. This fixes it so that there is a global monotonically increasing version number.
- libpas/src/libpas/bmalloc_heap.c:
(bmalloc_flex_heap_ref_get_heap):
(bmalloc_auxiliary_heap_ref_get_heap):
(bmalloc_get_heap):
- libpas/src/libpas/bmalloc_heap.h:
- libpas/src/libpas/pas_expendable_memory.c:
(pas_expendable_memory_state_version_next):
(pas_expendable_memory_construct):
(pas_expendable_memory_commit_if_necessary):
(scavenge_impl):
(pas_expendable_memory_scavenge):
- libpas/src/libpas/pas_expendable_memory.h:
- libpas/src/libpas/pas_scavenger.c:
(handle_expendable_memory):
(scavenger_thread_main):
(pas_scavenger_decommit_expendable_memory):
(pas_scavenger_fake_decommit_expendable_memory):
- libpas/src/libpas/pas_scavenger.h:
- libpas/src/libpas/pas_segregated_heap.c:
(medium_directory_tuple_for_index_impl):
(pas_segregated_heap_medium_directory_tuple_for_index):
(pas_segregated_heap_medium_allocator_index_for_index):
(recompute_size_lookup):
(rematerialize_size_lookup_set_medium_directory_tuple):
(pas_segregated_heap_ensure_allocator_index):
(check_size_lookup_recomputation_set_medium_directory_tuple):
(check_size_lookup_recomputation_dump_directory):
(check_size_lookup_recomputation):
(check_size_lookup_recomputation_if_appropriate):
(pas_segregated_heap_ensure_size_directory_for_size):
- libpas/src/libpas/pas_segregated_heap.h:
- libpas/src/libpas/pas_segregated_size_directory.h:
(pas_segregated_size_directory_get_tlc_allocator_index):
- libpas/src/libpas/pas_try_allocate_primitive.h:
(pas_try_allocate_primitive_impl_casual_case):
(pas_try_allocate_primitive_impl_inline_only):
- libpas/src/test/ExpendableMemoryTests.cpp:
(std::testRage):
(std::testRematerializeAfterSearchOfDecommitted):
(std::testBasicSizeClass):
(addExpendableMemoryTests):
- libpas/src/test/TestHarness.cpp:
(RuntimeConfigTestScope::RuntimeConfigTestScope):
- 6:39 PM Changeset in webkit [288341] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening.
- gpu-process/TestExpectations:
- 6:11 PM Changeset in webkit [288340] by
-
- 3 edits in trunk/Source/bmalloc
Make bmalloc work better with various MallocStackLogging modes
https://bugs.webkit.org/show_bug.cgi?id=235425
Reviewed by Yusuke Suzuki.
This conditionalizes the way system malloc is used depending on the exact value of the
MallocStackLogging environment variable:
- If the mode is "vm" or "vmlite", then we don't need to use system malloc at all, since those logging modes only intercept syscalls.
- If the mode is "lite", then we should use the default malloc zone (rather than our custom "WebKit Using System Malloc" zone), since the lite mode only intercepts allocations from the default zone.
Before this change, the lite mode didn't capture bmalloc/FastMalloc callstacks, which made
it less useful than it should have been.
- bmalloc/DebugHeap.cpp:
(bmalloc::shouldUseDefaultMallocZone):
(bmalloc::DebugHeap::DebugHeap):
- bmalloc/Environment.cpp:
(bmalloc::isMallocEnvironmentVariableImplyingSystemMallocSet):
(bmalloc::Environment::computeIsDebugHeapEnabled):
- 5:36 PM Changeset in webkit [288339] by
-
- 3 edits in trunk/Source/bmalloc
[libpas] Ensure pas_allocation_callback and pas_deallocation_callback are initialized as NULL
https://bugs.webkit.org/show_bug.cgi?id=235423
Reviewed by Mark Lam.
Some compiler options cause link-failure when we do not explicitly initialize these variables
in the C file (but it is not necessary strictly speaking). This patch cleans up and initializes
them with NULL.
- libpas/src/libpas/pas_allocation_callbacks.c:
- libpas/src/libpas/pas_allocation_callbacks.h:
- 5:35 PM Changeset in webkit [288338] by
-
- 1 copy in tags/Safari-613.1.14.2.2
Tag Safari-613.1.14.2.2.
- 5:33 PM Changeset in webkit [288337] by
-
- 9 edits in branches/safari-613.1.14.2-branch/Source
Versioning.
WebKit-7613.1.14.2.2
- 5:23 PM Changeset in webkit [288336] by
-
- 8 edits2 adds in trunk
REGRESSION (r284136): A slight horizontal rubberband kills scroll momentum
https://bugs.webkit.org/show_bug.cgi?id=234384
Reviewed by Tim Horton.
Source/WebCore:
ScrollAnimationRubberBand subtly changed the behavior of the rubberband animation on the
axis that is not the rubberbanding axis. Because it converged on m_targetOffset, it always
resulted in no offset on that axis.
Fix by restoring the behavior from before r284136, which applies the rubberbanding as a
delta from the current offset and no longer uses m_targetOffset, which is removed. It's a
bit surprising that this rubberband animation drives a vertical scroll when the gesture is
primarily horizontal (normally we'd clamp these deltas to be purely horizontal), but people
are used to this behavior so restore it.
Test: fast/scrolling/mac/j-shaped-scroll-rubberband.html
- platform/ScrollAnimation.h:
- platform/ScrollingEffectsController.cpp:
(WebCore::ScrollingEffectsController::overscrollAmount):
(WebCore::ScrollingEffectsController::scrollOffset):
- platform/ScrollingEffectsController.h:
- platform/mac/ScrollAnimationRubberBand.h:
- platform/mac/ScrollAnimationRubberBand.mm:
(WebCore::ScrollAnimationRubberBand::startRubberBandAnimation):
(WebCore::ScrollAnimationRubberBand::serviceAnimation):
(WebCore::ScrollAnimationRubberBand::debugDescription const):
- platform/mac/ScrollingEffectsController.mm:
(WebCore::ScrollingEffectsController::startRubberBandAnimation):
(WebCore::ScrollingEffectsController::startRubberBandAnimationIfNecessary):
LayoutTests:
- fast/scrolling/mac/j-shaped-scroll-rubberband-expected.txt: Added.
- fast/scrolling/mac/j-shaped-scroll-rubberband.html: Added.
- 5:13 PM Changeset in webkit [288335] by
-
- 2 edits in trunk/Source/WebKit
ReplayCGDisplayListsIntoBackingStore often results in compositing layers with black backgrounds
https://bugs.webkit.org/show_bug.cgi?id=235424
Reviewed by Simon Fraser.
No new tests, covered by many existing tests when run in this mode.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::applyBackingStoreToLayer):
Since we use CA-driven painting when ReplayCGDisplayListsIntoBackingStore
is enabled, we need to tell CA whether or not our backing store needs
an alpha channel before invalidating and painting into the layer.
- 5:01 PM Changeset in webkit [288334] by
-
- 2 edits in trunk/Source/WebCore
AXCoreObject::childrenIDs can be simplified and more efficient by using map
https://bugs.webkit.org/show_bug.cgi?id=235418
Reviewed by Darin Adler.
Follow-up to address Darin's comment at
https://bugs.webkit.org/show_bug.cgi?id=235384#c8.
No tests added because there's no behavior change.
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::childrenIDs):
Use map instead of for-loop for simplicity and efficiency through
map's use of uncheckedAppend and reserveInitialCapacity.
- 4:34 PM Changeset in webkit [288333] by
-
- 3 edits in trunk/Source/WebKit
[WebAuthn] Support all valid FIDO NFC tag types
https://bugs.webkit.org/show_bug.cgi?id=234616
rdar://85871173
Reviewed by Darin Adler.
This patch modifies a check when looking for FIDO nfc tags
to support all valid FIDO tag types.
Tested using physical NFC tags provided for this bug.
- Platform/spi/Cocoa/NearFieldSPI.h:
- UIProcess/WebAuthentication/Cocoa/NfcConnection.mm:
(WebKit::NfcConnection::didDetectTags):
- 4:17 PM Changeset in webkit [288332] by
-
- 9 edits in trunk/Source/WebCore
[LFC][IFC] Add LineContent::inlineBaseDirection to support line based inline direction
https://bugs.webkit.org/show_bug.cgi?id=235391
Reviewed by Antti Koivisto.
In this patch we introduce the line based inline base direction. With "unicode-bidi: plaintext" each line can have its own
base direction depending on the content on the line.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computeGeometryForLineContent):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::toString): Unfortunately we have to rebuild the text content part of the line here.
(WebCore::Layout::LineBuilder::layoutInlineContent):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
- layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:
(WebCore::Layout::InlineDisplayLineBuilder::build const):
- layout/formattingContexts/inline/display/InlineDisplayLineBuilder.h:
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::directionForTextContent):
- layout/formattingContexts/inline/text/TextUtil.h:
- 3:48 PM Changeset in webkit [288331] by
-
- 1 copy in releases/WebKitGTK/webkit-2.34.4
WebKitGTK 2.34.4
- 3:41 PM Changeset in webkit [288330] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Unreviewed. Update OptionsGTK.cmake and NEWS for the 2.34.4 release
.:
- Source/cmake/OptionsGTK.cmake: Bump version numbers.
Source/WebKit:
- gtk/NEWS: Add release notes for 2.34.4
- 3:41 PM Changeset in webkit [288329] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r288305 - [JSC] Add section directive in MacroAssemblerX86Common asm blocks
https://bugs.webkit.org/show_bug.cgi?id=235406
Patch by Joseph Griego <jgriego@igalia.com> on 2022-01-20
Reviewed by Yusuke Suzuki.
These asm blocks aren't in a function body so they need a .text
directive to prevent them from being included in some arbitrary section
(say, an inline function's section) by happenstance, which was happening
in the WPE build without UnifiedSources.
- assembler/MacroAssemblerX86Common.cpp:
- 3:41 PM Changeset in webkit [288328] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r288324 - Non-unified build fails due to forward declaration in JavaScriptCore/jit/JITStubRoutine.h
https://bugs.webkit.org/show_bug.cgi?id=235409
Unreviewed non-unified build fix.
- jit/JITStubRoutine.h:
- 3:09 PM Changeset in webkit [288327] by
-
- 2 edits in trunk/Source/WebCore
[macOS] Various tests hit debug assertions under
SearchBuffer::searchafter system ICU changes
https://bugs.webkit.org/show_bug.cgi?id=235413
rdar://87423185
Reviewed by Darin Adler.
After upgrading the system ICU version to ICU 70, many layout tests that attempt to use TextIterator on macOS
(e.g. tests inaccessibility/mac) hit debug assertions underneathWebCore::SearchBuffer::search; this is
because ICU now emitsU_USING_DEFAULT_WARNINGas the error code when callingusearch_next(), instead of
U_ZERO_ERROR, like it did in previous versions.
This warning is propagated due to ICU falling back to the root locale (
kRootLocaleName) when creating an
icu::BreakIterator, and appears to be benign. We can address this by relaxing the debug assertion in this
method to just check that the error code indicates success (i.e. "warning, or no error"), rather than strictly
being equal toU_ZERO_ERROR.
- editing/TextIterator.cpp:
(WebCore::SearchBuffer::search):
- 2:32 PM Changeset in webkit [288326] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Add "previous line ends with a line break" flag to PreviousLine
https://bugs.webkit.org/show_bug.cgi?id=235405
Reviewed by Antti Koivisto.
This is in preparation for supporting unicode-bidi: plaintext where we need to know if the previous line ends in a line break or not.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- 2:10 PM Changeset in webkit [288325] by
-
- 2 edits in trunk/PerformanceTests
[WinCairo] Unreviewed performance test gardening.
- Skipped:
Skip various IndexedDB timeouts.
- 2:06 PM Changeset in webkit [288324] by
-
- 2 edits in trunk/Source/JavaScriptCore
Non-unified build fails due to forward declaration in JavaScriptCore/jit/JITStubRoutine.h
https://bugs.webkit.org/show_bug.cgi?id=235409
Unreviewed non-unified build fix.
- jit/JITStubRoutine.h:
- 2:04 PM Changeset in webkit [288323] by
-
- 1 edit1 add in trunk/LayoutTests
Mark range boundary point containers
https://bugs.webkit.org/show_bug.cgi?id=233462
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-20
Reviewed by Darin Adler.
Add test that should have been part of r287131. Caught by Adrian.
- fast/dom/Range/delete-contents-crash.html: Added.
- 1:36 PM Changeset in webkit [288322] by
-
- 2 edits in trunk/Tools
[ews] Load credentials from passwords.json in master.cfg (Follow-up)
https://bugs.webkit.org/show_bug.cgi?id=235296
Reviewed by Aakash Jain.
- CISupport/ews-build/master.cfg:
(load_password): Define default value.
Canonical link: https://commits.webkit.org/246234@main
- 1:26 PM Changeset in webkit [288321] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r288293. rdar://problem/87777915
Prevent empty folders being created during install builds
rdar://87777915
Patch by Elliott Williams <Elliott Williams> on 2022-01-20
Reviewed by Brady Eidson.
The "Copy Daemon Plists" script phase has output files which aren't always written to. Since
Xcode mkdir-p's these output directories, it ends up creating an empty directory under some
circumstances. Fix by removing these declared outputs: since this script is install-only
and executes quickly, it's not really a problem to have it run redundantly.
Once we use XCBuild everywhere, it can be rewritten as a Copy Files phase.
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288293 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [288320] by
-
- 4 edits4 adds in branches/safari-613-branch
Cherry-pick r288078. rdar://problem/87662271
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [288319] by
-
- 2 edits in branches/safari-613-branch/Source/WebKit
Cherry-pick r287997. rdar://problem/87274541
Sometimes cannot scroll after using internal trackpad
https://bugs.webkit.org/show_bug.cgi?id=235206
<rdar://problem/87274541>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::didStartMomentumPhase): (WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
- WebProcess/WebPage/MomentumEventDispatcher.h: We store std::optional<ScrollingAccelerationCurve> in a map, but then when looking at whether we have a curve (to decide whether or not to even use MomentumEventDispatcher), we check if the map has *any* value for the given page... even an unengaged optional. To fix, check if the optional is engaged.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:26 PM Changeset in webkit [288318] by
-
- 4 edits in branches/safari-613-branch
Cherry-pick r287957. rdar://problem/87327557
[WebAuthn] Fix freebie call without user gesture not being given
https://bugs.webkit.org/show_bug.cgi?id=235078
rdar://87327557
Reviewed by Brent Fulgham.
Source/WebKit:
This logic was previously always requiring a user gesture. The desired
behavior of giving pages a single "freebie" webauthn call without gesture
was lost in a refactor.
Tested manually on iOS device with webauthn.me.
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::processingUserGesture):
Tools:
Updated API test to reflect user gesture freebie.
- TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-no-mock.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 1:18 PM Changeset in webkit [288317] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] LineBuilder::layoutInlineContent should take PreviousLine
https://bugs.webkit.org/show_bug.cgi?id=235403
Reviewed by Antti Koivisto.
Let's pass in a PreviousLine struct to LineBuilder::layoutInlineContent instead of individual variables about the previous line.
This is in preparation for supporting unicode-bidi: plaintext where we need to know if the previous line ends in a line break or not.
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::lineLayout):
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthForConstraint const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::computedIntrinsicWidth):
(WebCore::Layout::LineBuilder::initialize):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- 1:11 PM Changeset in webkit [288316] by
-
- 9 edits1 copy in trunk
[XCBuild] Build via the workspace with USE_WORKSPACE=YES
https://bugs.webkit.org/show_bug.cgi?id=235385
rdar://87489695
Patch by Elliott Williams <Elliott Williams> on 2022-01-20
Reviewed by Alexey Proskuryakov.
.:
Experimental XCBuild support is available by passing USE_WORKSPACE=YES to Make. This is
roughly equivalent to opening WebKit.xcworkspace and building a scheme in the IDE.
A workspace build is only one
xcodebuildinvocation, in contrast with the traditional
recursive-Make build that iterates through each project directory. As a result, workspace
builds are faster: the build system can schedule targets from different projects to build
simultaneously, and there's lower xcodebuild overhead.
Workspaces build _schemes_, which are a collection of targets. By default, Make looks for a
scheme whose name matches the source directory (Source/WebCore => build scheme "WebCore").
Makefiles can customize this by setting SCHEME.
At this time, there is no guarantee of correctness when building with USE_WORKSPACE=YES, and
workspace builds are not checked by builders.
- Makefile: Use workspace logic when USE_WORKSPACE=YES
- Makefile.shared: xcodebuild invocation logic for workspace builds
- Source/Makefile: Use workspace logic and set custom SCHEME name
- WebKit.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: Use XCBuild for workspace
builds
- WebKit.xcworkspace/xcshareddata/xcschemes/All Modules.xcscheme: Added, to correspond with
the top-level Makefile
- WebKit.xcworkspace/xcshareddata/xcschemes/All Source.xcscheme: Let XCBuild determine build
order
- WebKit.xcworkspace/xcshareddata/xcschemes/All Tools.xcscheme: Let XCBuild determine build
order
Tools:
- Makefile: Use workspace logic and set custom SCHEME name
- 12:48 PM Changeset in webkit [288315] by
-
- 33 edits1 copy6 adds2 deletes in trunk
Implement WebGL GPU buffer texture upload path for Cocoa getUserMedia camera streams
https://bugs.webkit.org/show_bug.cgi?id=235233
<rdar://problem/87601762>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-20
Reviewed by Youenn Fablet.
Source/WebCore:
Make full texture uploads from MediaStream camera captures use CVPixelBuffers
instead of reading the pixels back.
Implement MediaPlayerInterface::pixelBufferForCurrentTime() for
MediaPlayerPrivateMediaSourceAVFObjC.
Rename functions from pixelBuffer... to videoSample...
Use new type MediaSampleVideoFrame instead of CVPixelBuffer.
MediaSampleVideoFrame contains also the frame orientation. The
orientation is needed as the camera might capture the image
with a rotation or a flip.
To avoid ifdefs, the new API videoSampleForCurrentTime exists
for all platforms, but is currently called only by Cocoa.
Also the type MediaSampleVideoFrame exists for all platforms
but has the frame contents implementation only for Cocoa.
Tested by
fast/mediastream/getUserMedia-to-canvas-1.html
fast/mediastream/getUserMedia-to-canvas-2.html
Currently the "mirrored" part is tested manually, WebKit
does not request mirrored camera image so it is dead code.
- Headers.cmake:
- SourcesCocoa.txt:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/MediaPlayer.cpp:
(WebCore::MediaPlayer::videoSampleForCurrentTime):
(WebCore::MediaPlayer::pixelBufferForCurrentTime): Deleted.
- platform/graphics/MediaPlayer.h:
- platform/graphics/MediaPlayerPrivate.h:
(WebCore::MediaPlayerPrivateInterface::copyVideoTextureToPlatformTexture):
(WebCore::MediaPlayerPrivateInterface::videoSampleForCurrentTime):
(WebCore::MediaPlayerPrivateInterface::pixelBufferForCurrentTime): Deleted.
- platform/graphics/MediaSampleVideoFrame.h: Added.
(WebCore::MediaSampleVideoFrame::orientation const):
(WebCore::MediaSampleVideoFrame::pixelBuffer const):
(WebCore::MediaSampleVideoFrame::operator== const):
(WebCore::MediaSampleVideoFrame::encode const):
(WebCore::MediaSampleVideoFrame::decode):
- platform/graphics/avfoundation/MediaSampleVideoFrameAVF.mm: Added.
(WebCore::MediaSampleVideoFrame::MediaSampleVideoFrame):
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::videoSampleForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::videoSampleForCurrentTime):
(WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pixelBufferForCurrentTime): Deleted.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::videoOrientation):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleForCurrentTime):
- platform/graphics/cocoa/GraphicsContextGLCocoa.mm:
(WebCore::GraphicsContextGLCocoa::copyTextureFromMedia):
- platform/graphics/cv/GraphicsContextGLCV.h:
- platform/graphics/cv/GraphicsContextGLCVCocoa.cpp:
(WebCore::GraphicsContextGLCVCocoa::GraphicsContextGLCVCocoa):
(WebCore::GraphicsContextGLCVCocoa::copyVideoFrameToTexture):
(WebCore::GraphicsContextGLCVCocoa::copyPixelBufferToTexture): Deleted.
- platform/graphics/cv/GraphicsContextGLCVCocoa.h:
Source/WebKit:
Rename functions from pixelBuffer... to videoFrame.
Send new type MediaPlayerVideoFrame instead of CVPixelBuffer.
MediaPlayerVideoFrame contains also the frame orientation.
- GPUProcess/graphics/RemoteGraphicsContextGL.cpp:
(WebKit::RemoteGraphicsContextGL::copyTextureFromMedia):
- GPUProcess/media/RemoteMediaPlayerProxy.cpp:
(WebKit::RemoteMediaPlayerProxy::invalidate):
(WebKit::RemoteMediaPlayerProxy::videoFrameForCurrentTimeIfChanged):
- GPUProcess/media/RemoteMediaPlayerProxy.h:
- GPUProcess/media/RemoteMediaPlayerProxy.messages.in:
- GPUProcess/media/cocoa/RemoteMediaPlayerProxyCocoa.mm:
(WebKit::RemoteMediaPlayerProxy::pixelBufferForCurrentTimeIfChanged): Deleted.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.cpp:
(WebKit::MediaPlayerPrivateRemote::videoFrameForCurrentTime):
(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.
- WebProcess/GPU/media/MediaPlayerPrivateRemote.h:
- WebProcess/GPU/media/cocoa/MediaPlayerPrivateRemoteCocoa.mm:
(WebKit::MediaPlayerPrivateRemote::pixelBufferForCurrentTime): Deleted.
LayoutTests:
- fast/mediastream/getUserMedia-to-canvas.html:
- webrtc/routines.js:
Test camera image rotations in the test.
- 12:34 PM Changeset in webkit [288314] by
-
- 5 edits in trunk/Tools
[EWS] Add CheckOutPullRequest step
https://bugs.webkit.org/show_bug.cgi?id=235157
<rdar://problem/87487209 >
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/factories.py:
(Factory.init): Add CheckOutPullRequest step.
(StyleFactory.init): Ditto.
(WatchListFactory.init): Ditto.
- Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps): Add CheckOutPullRequest step.
- Tools/CISupport/ews-build/steps.py:
(ApplyPatch.doStepIf): Only run step if a patch is provided.
(ApplyPatch.hideStepIf): Only display step if a patch was provided.
(ApplyPatch.getResultSummary): Add SKIPPED description.
(CheckOutPullRequest):
(CheckOutPullRequest.init):
(CheckOutPullRequest.doStepIf): Only run step if a pull request is provided.
(CheckOutPullRequest.hideStepIf): Only display step if a pul request was provided.
(CheckOutPullRequest.run): Configure new remote, fetch remote and checkout pull request
branch from the newly configured remote.
(CheckOutPullRequest.getResultSummary):
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/246230@main
- 12:02 PM Changeset in webkit [288313] by
-
- 3 edits in trunk/Source/WebCore
AXIsolatedTree::updateChildren childrenIDs and children local variables could get out of sync
https://bugs.webkit.org/show_bug.cgi?id=235384
Reviewed by Andres Gonzalez.
In AXIsolatedTree::updateChildren, we have this:
const auto& axChildren = axAncestor->children();
auto axChildrenIDs = axAncestor->childrenIDs();
Because the current version of AXCoreObject::childrenIDs
always updates the underlying children if necessary, these
two variables could get out of sync if childrenIDs actually
performs an update after we already got children().
This patch changes childrenIDs to have the same interface as
children() by adding abool updateChildrenIfNecessaryparameter,
and using childrenIDs(false) in the above method.
- accessibility/AccessibilityObjectInterface.h:
(WebCore::AXCoreObject::childrenIDs):
Add updateChildrenIfNecessary parameter to match AXCoreObject::children(bool).
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateChildren):
- 11:48 AM Changeset in webkit [288312] by
-
- 18 edits1 copy in trunk/Tools
[webkitbugspy] Support automated comments
https://bugs.webkit.org/show_bug.cgi?id=235371
<rdar://problem/87783426>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/bugzilla.py:
(Tracker.user): Add potential credentials to requests.
(Tracker.credentials): Explicitly call credentials from webkitcorepy.
(Tracker._login_arguments): Create login query from credentials.
(Tracker.me): Return user based on credentials.
(Tracker.populate): Add potential credentials to requests.
(Tracker.add_comment): Add comment to bugzilla issue.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
(Tracker.me): Return user based on credentials.
(Tracker.add_comment): Add comment to GitHub issue.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/issue.py:
(Issue.add_comment): Base class.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/base.py:
(Base.add): We don't want to edit the original list of comments.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py:
(Bugzilla.init): Add optional Environment mock.
(Bugzilla.enter): Enter Environment mock.
(Bugzilla.exit): Exit Environment mock.
(Bugzilla._user): Use jsonlib instead of json.
(Bugzilla._user_for_credentials): Convert a credential string into
a User object.
(Bugzilla._issue): Use jsonlib instead of json.
(Bugzilla._see_also): Ditto.
(Bugzilla._comments): Ditto.
(Bugzilla._post_comment): Update mock issue database with posted comment.
(Bugzilla.request): Add credentials to each request, handle comment POST request.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:
(GitHub.init): Add optional Environment mock.
(GitHub.enter): Enter Environment mock.
(GitHub.exit): Exit Environment mock.
(GitHub._post_comment): Update mock issue database with posted comment.
(GitHub.request): Handle comment POST request.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py:
(AppleDirectoryQuery.user_entry_for_attribute_value): Map AppleConnect username
to user.
(RadarModel.CollectionProperty.init): Pass parent model in.
(RadarModel.CollectionProperty.add): Add an element to the collection.
(RadarModel.init): Pass self into CollectionProperty.
(RadarModel.commit_changes): Update mock issue database with issue contents.
(RadarClient.init): Accept authentication_strategy.
(Radar.AuthenticationStrategySystemAccount.init): Save username.
(Radar.AuthenticationStrategySystemAccount.username): Return username.
(Radar.AuthenticationStrategySPNego.username): Assume username from environment.
(Radar.DiagnosisEntry): Moved from RadarModel.DiagnosisEntry.
(Radar.transform_user): Add AppleConnect email.
(Radar.init): Pass authentication_strategy to RadarClient.
(RadarModel.DiagnosisEntry): Moved to Radar.DiagnosisEntry.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py:
(Tracker.user): Support queries by AppleConnect username.
(Tracker.me): Use authentication to determine the logged in user.
(Tracker.add_comment): Add comment to Radar.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/bugzilla_unittest.py:
(TestBugzilla.test_reference_parse): Use add_comment.
(TestBugzilla.test_me): Added.
(TestBugzilla.test_add_comment): Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/github_unittest.py:
(TestGitHub.test_watcher_parse): Use add_comment.
(TestGitHub.test_reference_parse): Ditto.
(TestGitHub.test_me): Added.
(TestGitHub.test_add_comment): Added.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py:
(TestRadar): Renamed from TestGitHub.
(TestRadar.test_reference_parse): Use add_comment.
(TestRadar.test_me): Added.
(TestRadar.test_add_comment): Added.
(TestGitHub): Renamed TestRadar.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py:
(Tracker.me): Added.
(Tracker.add_comment): Added.
- Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/init.py: Export mock environment, bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/mocks/environment.py: Added.
(Environment): Mock os.environ and reset credential cache.
Canonical link: https://commits.webkit.org/246228@main
- 11:16 AM Changeset in webkit [288311] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r288215 - Null check m_progressTracker in clearProvisionalLoad
https://bugs.webkit.org/show_bug.cgi?id=233063
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-19
Reviewed by Alex Christensen.
Source/WebCore:
Null check m_progressTracker in clearProvisionalLoad.
Test: fast/frames/contentFrame-disconnecting-crash.html
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::clearProvisionalLoad):
LayoutTests:
- platform/mac/fast/frames/contentFrame-disconnecting-crash-expected.txt: Added.
- platform/mac/fast/frames/contentFrame-disconnecting-crash.html: Added.
- 11:12 AM Changeset in webkit [288310] by
-
- 2 edits in trunk/Tools
[ iOS15 ] TestWebKitAPI.WebKit.ServerTrust and TestWebKitAPI.WebKit.FastServerTrust tests timing out
https://bugs.webkit.org/show_bug.cgi?id=231320
<rdar://80352256>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-20
Reviewed by Chris Dumez.
SecTrustCopyCertificateChain returns a CFArrayRef of SecCertificateRef, not CFData.
- TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
(verifyCertificateAndPublicKey):
(TestWebKitAPI::TEST):
- 11:12 AM Changeset in webkit [288309] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed PlayStation / clang-cl build fix following r288298.
clang for Windows (< v10.0.0) cannot destructure a const class.
See also r261572, r254471, r249524, etc.
- NetworkProcess/storage/StorageAreaBase.cpp:
(WebKit::StorageAreaBase::notifyListenersAboutClear):
(WebKit::StorageAreaBase::dispatchEvents const):
- 11:08 AM Changeset in webkit [288308] by
-
- 4 edits3 adds in releases/WebKitGTK/webkit-2.34
Merge r288052 - null ptr deref in WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor()
https://bugs.webkit.org/show_bug.cgi?id=233463
Patch by Frederic Wang <fwang@igalia.com> on 2022-01-14
Reviewed by Wenson Hsieh.
Source/WebCore:
One line of ReplaceSelectionCommand::moveNodeOutOfAncestor() assumes that the pointer
ancestor.parentNode() is non-null. However, the call to removeNode(node) just before can
lead to arbitrary tree mutations that leaves the ancestor orphan, causing a nullptr deref.
This patch mitigates that issue by exiting early if that situation happens.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): Exit early if the ancestor
is no longer connected.
LayoutTests:
Add non-regression test.
- editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash-expected.txt: Added.
- editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html: Added.
- editing/execCommand/resources/paste-as-quotation-disconnected-paragraph-ancestor-crash-iframe.html: Added.
- platform/win/TestExpectations: Skip test on windows, as the test seems to shift expectations with text output
of other execCommand tests.
- 10:43 AM Changeset in webkit [288307] by
-
- 60 edits34 adds2 deletes in trunk
Callback functions / interfaces should use global object of its _value_ for errors and lifecycle
https://bugs.webkit.org/show_bug.cgi?id=232387
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
Import WPT tests from https://github.com/web-platform-tests/wpt/pull/32449.
The remaining failures are due to unrelated spec compat issue with calling cross-realm ProxyObject / JSBoundFunction.
- web-platform-tests/dom/events/EventListener-handleEvent-cross-realm-expected.txt: Added.
- web-platform-tests/dom/events/EventListener-handleEvent-cross-realm.html: Added.
- web-platform-tests/dom/events/resources/empty-document.html: Added.
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-expected.txt:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context-expected.txt:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html:
- web-platform-tests/dom/traversal/support/TreeWalker-acceptNode-filter-cross-realm-subframe.html: Removed.
- web-platform-tests/dom/traversal/support/empty-document.html: Added.
- web-platform-tests/domxpath/resolver-callback-interface-cross-realm-expected.txt: Added.
- web-platform-tests/domxpath/resolver-callback-interface-cross-realm.html: Added.
- web-platform-tests/domxpath/resources: Added.
- web-platform-tests/domxpath/resources/empty-document.html: Added.
- web-platform-tests/domxpath/resources/invalid_namespace_test.js: Added.
Source/WebCore:
This is a re-land of r288197 with an IntersectionObserver fixed to rely on its
associated document rather than m_callback's context for time origin as per spec [3].
Before this change, _relevant_ global object was used a) to throw errors in when
invoking callback function / interface, which isn't correct [1], and b) to call
canInvokeCallback() on (lifecycle), which doesn't match other browsers and not
quite useful: _relevant_ event loop stops if document is detached.
This patch:
- Removes [SkipCallbackInvokeCheck] extended attribute, while ensuring DOM traversal doesn't crash, which aligns WebKit with other browsers.
- Invokes canInvokeCallback() on the global object of _value_, which matches
Gecko but not Blink, which uses _incumbent_ realm to determine if callback
can still be invoked (doesn't make much sense to me).
- Throws callback invocation errors (e.g. non-callable method, revoked Proxy) in the global object of _value_, which matches the spec [1] and Blink, but not Gecko, which uses _current_ realm (of the method that was passed callback's _value_) to throw TypeErrors in.
That doesn't make much sense to me either: "registering" a callback and invoking
it could happen in different realms.
The spec on this is worded quite trickily (yet I think I've figured it out):
ECMA's "throw a TypeError exception" uses "running execution context" [2]
to create an object in, which is switched to the realm of _value_ per [1].
AudioWorklet changes are unobservable as worklets can't acquire a cross-realm method.
It's also nicer not to pass JSCallbackDataStrong around.
This patch fixes only JSCallbackData-based callback interfaces / functions, and not
the JSEventListener, which would also benefit from a similar change.
[1] https://webidl.spec.whatwg.org/#ref-for-prepare-to-run-script
[2] https://tc39.es/ecma262/#sec-ecmascript-function-objects-call-thisargument-argumentslist (step 4)
[3] https://w3c.github.io/IntersectionObserver/#dom-intersectionobserverentry-time
Tests: fast/dom/callback-function-detached-frame-intersection-observer.html
fast/dom/callback-function-detached-frame-mutation-observer.html
fast/dom/callback-function-detached-frame-performance-observer.html
fast/dom/callback-function-detached-frame-raf.html
fast/dom/callback-function-detached-frame-resize-observer.html
fast/dom/callback-function-detached-frame-to-blob.html
fast/dom/callback-interface-detached-frame-node-filter.html
fast/dom/callback-interface-detached-frame-xpathnsresolver.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html
imported/w3c/web-platform-tests/dom/events/EventListener-handleEvent-cross-realm.html
imported/w3c/web-platform-tests/domxpath/resolver-callback-interface-cross-realm.html
imported/w3c/web-platform-tests/intersection-observer/timestamp.html
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::registerProcessor):
(WebCore::AudioWorkletGlobalScope::createProcessor):
- Modules/webaudio/AudioWorkletProcessor.cpp:
(WebCore::AudioWorkletProcessor::create):
(WebCore::AudioWorkletProcessor::AudioWorkletProcessor):
(WebCore::AudioWorkletProcessor::process):
(WebCore::AudioWorkletProcessor::setProcessCallback):
- Modules/webaudio/AudioWorkletProcessor.h:
(WebCore::AudioWorkletProcessor::processCallbackWrapper):
- bindings/js/JSAudioWorkletProcessorCustom.cpp:
(WebCore::JSAudioWorkletProcessor::visitAdditionalChildren):
- bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
- bindings/js/JSCallbackData.h:
(WebCore::JSCallbackData::~JSCallbackData):
(WebCore::JSCallbackDataStrong::JSCallbackDataStrong):
(WebCore::JSCallbackDataStrong::invokeCallback):
(WebCore::JSCallbackDataWeak::JSCallbackDataWeak):
(WebCore::JSCallbackDataWeak::invokeCallback):
(WebCore::JSCallbackData::globalObject): Deleted.
(WebCore::JSCallbackData::JSCallbackData): Deleted.
- bindings/js/JSDOMConvertCallbacks.h:
(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):
- bindings/js/JSDOMConvertXPathNSResolver.h:
(WebCore::Converter<IDLInterface<XPathNSResolver>>::convert):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowInstanceFunction_openDatabaseBody):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
(JSValueToNativeDOMConvertNeedsGlobalObject):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/*: Updated.
- bindings/scripts/test/TestCallbackInterface.idl:
- dom/NodeFilter.idl:
- dom/Traversal.cpp:
(WebCore::NodeIteratorBase::acceptNode):
- page/IntersectionObserver.h:
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::nowTimestamp const):
- workers/WorkerOrWorkletGlobalScope.h:
- worklets/PaintWorkletGlobalScope.cpp:
(WebCore::PaintWorkletGlobalScope::registerPaint):
- xml/CustomXPathNSResolver.idl:
LayoutTests:
- fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
- fast/dom/Geolocation/callback-to-deleted-context.html:
- fast/dom/Geolocation/resources/callback-to-deleted-context-inner1.html:
Aligns test assertions with behavior of Blink and Gecko.
- fast/dom/Geolocation/disconnected-frame-expected.txt:
- fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
- fast/dom/Geolocation/disconnected-frame-permission-denied.html:
- fast/dom/Geolocation/disconnected-frame.html:
Aligns tests assertions with their initial descriptions.
While other browsers don't call error callback for a disconnected frame,
it seems like a useful thing to do.
- fast/events/detached-svg-parent-window-events-expected.txt:
- fast/events/detached-svg-parent-window-events.html:
Aligns test assertion with other browsers.
There is no reason why eval() wouldn't throw an error given the <iframe> is connected.
- fast/frames/resources/wrong-global-object.html: Removed.
- fast/frames/frame-window-as-callback-expected.txt:
- fast/frames/frame-window-as-callback.html:
Aligns test assertions with the spec and Blink / Gecko.
- fast/dom/callback-function-detached-frame-intersection-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-intersection-observer.html: Added.
- fast/dom/callback-function-detached-frame-mutation-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-mutation-observer.html: Added.
- fast/dom/callback-function-detached-frame-performance-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-performance-observer.html: Added.
- fast/dom/callback-function-detached-frame-raf-expected.txt: Added.
- fast/dom/callback-function-detached-frame-raf.html: Added.
- fast/dom/callback-function-detached-frame-resize-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-resize-observer.html: Added.
- fast/dom/callback-function-detached-frame-to-blob-expected.txt: Added.
- fast/dom/callback-function-detached-frame-to-blob.html: Added.
- fast/dom/callback-interface-detached-frame-node-filter-expected.txt: Added.
- fast/dom/callback-interface-detached-frame-node-filter.html: Added.
- fast/dom/callback-interface-detached-frame-xpathnsresolver-expected.txt: Added.
- fast/dom/callback-interface-detached-frame-xpathnsresolver.html: Added.
- fast/dom/resources/callback-function-detached-frame-common.js: Added.
- fast/dom/resources/callback-function-detached-frame-intersection-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-mutation-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-performance-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-raf-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-resize-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-to-blob-iframe.html: Added.
- fast/dom/resources/callback-interface-detached-frame-node-filter-iframe.html: Added.
- fast/dom/resources/callback-interface-detached-frame-xpathnsresolver-iframe.html: Added.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
IntersectionObserver / ResizeObserver are not enabled on these platforms.
- 10:26 AM Changeset in webkit [288306] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening of GPU Process bots
- gpu-process/TestExpectations:
- 10:18 AM Changeset in webkit [288305] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Add section directive in MacroAssemblerX86Common asm blocks
https://bugs.webkit.org/show_bug.cgi?id=235406
Patch by Joseph Griego <jgriego@igalia.com> on 2022-01-20
Reviewed by Yusuke Suzuki.
These asm blocks aren't in a function body so they need a .text
directive to prevent them from being included in some arbitrary section
(say, an inline function's section) by happenstance, which was happening
in the WPE build without UnifiedSources.
- assembler/MacroAssemblerX86Common.cpp:
- 10:14 AM Changeset in webkit [288304] by
-
- 3 edits3 adds in trunk
[:has() pseudo-class] Ignore :visited inside :has()
https://bugs.webkit.org/show_bug.cgi?id=235404
Reviewed by Sam Weinig.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/has-visited-expected.html: Added.
- web-platform-tests/css/selectors/has-visited-ref.html: Added.
- web-platform-tests/css/selectors/has-visited.html: Added.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/selectors/has-visited.html
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::matchHasPseudoClass const):
Make this more similar to :is/:not():
Use the current SelectorChecker with a different context rather than a nested SelectorChecker.
Use matchRecursively.
Setup the functional pseudo-class bits for the context.
- 10:09 AM Changeset in webkit [288303] by
-
- 3 edits2 adds in trunk
[:has pseudo-class] Support :has(:not(foo))
https://bugs.webkit.org/show_bug.cgi?id=235399
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/has-with-not-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-with-not.html: Added.
Source/WebCore:
This already works except for a filter bug.
Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-with-not.html
- style/HasSelectorFilter.h:
(WebCore::Style::HasSelectorFilter::reject const):
We shouldn't reject a selector if we have a null key.
- 10:06 AM Changeset in webkit [288302] by
-
- 2 edits in trunk/Source/WebCore
Reconfiguring the CoreAudioSharedUnit should take into account that there is a speaker sample producer
https://bugs.webkit.org/show_bug.cgi?id=235397
Reviewed by Eric Carlson.
Manually tested.
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
When using VPIO to render speaker samples, we might have to reconfigure the VPIO unit to take into account the speaker format.
In that case, we might have a speaker sample producer and we should not stop the audio unit if getting samples from the producer at the same time.
To prevent this, we set the producer temporarily, stop the audio unit, then set back the producer.
- 9:55 AM Changeset in webkit [288301] by
-
- 1 copy in tags/Safari-613.1.14.11.1
Tag Safari-613.1.14.11.1.
- 9:53 AM Changeset in webkit [288300] by
-
- 2 edits in branches/safari-613.1.14.11-branch/Source/WebKit
Cherry-pick r288293. rdar://problem/87777915
Prevent empty folders being created during install builds
rdar://87777915
Patch by Elliott Williams <Elliott Williams> on 2022-01-20
Reviewed by Brady Eidson.
The "Copy Daemon Plists" script phase has output files which aren't always written to. Since
Xcode mkdir-p's these output directories, it ends up creating an empty directory under some
circumstances. Fix by removing these declared outputs: since this script is install-only
and executes quickly, it's not really a problem to have it run redundantly.
Once we use XCBuild everywhere, it can be rewritten as a Copy Files phase.
- WebKit.xcodeproj/project.pbxproj:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288293 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:27 AM Changeset in webkit [288299] by
-
- 9 edits in branches/safari-613.1.14.11-branch/Source
Versioning.
WebKit-7613.1.14.11.1
- 9:24 AM Changeset in webkit [288298] by
-
- 27 edits1 copy in trunk/Source
Make LocalStorage prewarming async
https://bugs.webkit.org/show_bug.cgi?id=235236
Reviewed by Chris Dumez.
Source/WebCore:
- page/DOMWindow.cpp:
(WebCore::DOMWindow::prewarmLocalStorageIfNecessary):
- page/Frame.cpp:
(WebCore::Frame::didPrewarmLocalStorage): Deleted.
(WebCore::Frame::mayPrewarmLocalStorage const): Deleted.
- page/Frame.h:
- storage/StorageArea.h:
(WebCore::StorageArea::prewarm):
- storage/StorageType.h:
Source/WebKit:
StorageAreaMap in web process needs to sync with a remote StorageArea in network process before it performs any
Web Storage operation. To connect to remote StorageArea, StorageAreaMap currently sends out two sync messages:
- ConnectTo*StorageArea: for getting the remote StorageAreaIdentifier
- getValues: for getting the content of StorageArea
We can merge these two messages into one message: ConnectToStorageAreaSync, and return both remote
StorageAreaIdentifier and content in its reply. This way, web process will not be blocked twice.
To reduce the wait time for connecting to a local StorageArea, we would prewarm LocalStorage by creating its
StorageAreaMap ahead and making it connected (r247555), but we don't actually need StorageAreaMap to be ready
for operation at this time. Therefore, a new async message ConnectToStorageArea is added to be used for
prewarming.
If LocalStorage is used immediately after prewarming, a StorageAreaMap may send ConnectToStorageAreaSync before
receiving the reply of ConnectToStorageArea. In this case, StorageAreaMap would handle ConnectToStorageAreaSync
reply before ConnectToStorageArea reply (due to the priority of sync message), and also before other async
messages (DispatchStorageEvent / ClearCache) that are sent from network process earlier before the sync reply.
To solve this, we use a message identifier to indicate the order of messages sent from network process, so
StorageAreaMap can ignore previous messages when it is already synced with a more recent version of StorageArea.
- NetworkProcess/WebStorage/StorageArea.cpp:
(WebKit::StorageArea::clear):
(WebKit::StorageArea::dispatchEvents const):
- NetworkProcess/storage/LocalStorageManager.cpp:
(WebKit::LocalStorageManager::connectToLocalStorageArea):
(WebKit::LocalStorageManager::connectToTransientLocalStorageArea):
- NetworkProcess/storage/LocalStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.cpp:
(WebKit::NetworkStorageManager::connectToStorageArea):
(WebKit::NetworkStorageManager::connectToStorageAreaSync):
(WebKit::NetworkStorageManager::connectToLocalStorageArea): Deleted.
(WebKit::NetworkStorageManager::connectToTransientLocalStorageArea): Deleted.
(WebKit::NetworkStorageManager::connectToSessionStorageArea): Deleted.
(WebKit::NetworkStorageManager::getValues): Deleted.
- NetworkProcess/storage/NetworkStorageManager.h:
- NetworkProcess/storage/NetworkStorageManager.messages.in:
- NetworkProcess/storage/SessionStorageManager.cpp:
(WebKit::SessionStorageManager::connectToSessionStorageArea):
- NetworkProcess/storage/SessionStorageManager.h:
- NetworkProcess/storage/StorageAreaBase.cpp:
(WebKit::StorageAreaBase::nextMessageIdentifier):
(WebKit::StorageAreaBase::StorageAreaBase):
(WebKit::StorageAreaBase::addListener):
(WebKit::StorageAreaBase::notifyListenersAboutClear):
(WebKit::StorageAreaBase::dispatchEvents const):
- NetworkProcess/storage/StorageAreaBase.h:
- Scripts/webkit/messages.py:
(types_that_cannot_be_forward_declared):
(headers_for_type):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Network/NetworkProcessConnection.cpp:
(WebKit::NetworkProcessConnection::didReceiveMessage):
- WebProcess/WebProcess.cpp:
(WebKit::WebProcess::networkProcessConnectionClosed):
(WebKit::WebProcess::registerStorageAreaMap):
(WebKit::WebProcess::unregisterStorageAreaMap):
(WebKit::WebProcess::storageAreaMap const):
- WebProcess/WebProcess.h:
- WebProcess/WebStorage/StorageAreaImpl.cpp:
(WebKit::StorageAreaImpl::prewarm):
(WebKit::StorageAreaImpl::incrementAccessCount): Deleted.
(WebKit::StorageAreaImpl::decrementAccessCount): Deleted.
(WebKit::StorageAreaImpl::closeDatabaseIfIdle): Deleted.
- WebProcess/WebStorage/StorageAreaImpl.h:
- WebProcess/WebStorage/StorageAreaMap.cpp:
(WebKit::StorageAreaMap::StorageAreaMap):
(WebKit::StorageAreaMap::~StorageAreaMap):
(WebKit::StorageAreaMap::setItem):
(WebKit::StorageAreaMap::removeItem):
(WebKit::StorageAreaMap::clear):
(WebKit::StorageAreaMap::ensureMap):
(WebKit::StorageAreaMap::dispatchStorageEvent):
(WebKit::StorageAreaMap::clearCache):
(WebKit::StorageAreaMap::sendConnectMessage):
(WebKit::StorageAreaMap::connectSync):
(WebKit::StorageAreaMap::connect):
(WebKit::StorageAreaMap::didConnect):
(WebKit::StorageAreaMap::disconnect):
- WebProcess/WebStorage/StorageAreaMap.h:
- WebProcess/WebStorage/StorageAreaMap.messages.in:
- WebProcess/WebStorage/StorageAreaMapIdentifier.h: Added.
- 9:16 AM Changeset in webkit [288297] by
-
- 1 copy in branches/safari-613.1.14.11-branch
New branch.
- 9:04 AM Changeset in webkit [288296] by
-
- 5 edits in trunk/Source/WebKit
Disable fallback path to WebRTC platform sockets
https://bugs.webkit.org/show_bug.cgi?id=235402
Reviewed by Eric Carlson.
We should not fallback to the legacy WebRTC socket code path in Cocoa ports.
Instead, if we cannot create the corresponding sockets (in case of ssltcp candidates for instance),
we mark the socket as closed.
Minor refactoring to show that NetworkRTCUDPSocketCocoa code path should always be successful.
Manually tested on meet.google.com which can make use of ssltcp candidates.
- NetworkProcess/webrtc/NetworkRTCProvider.cpp:
- NetworkProcess/webrtc/NetworkRTCProvider.h:
- NetworkProcess/webrtc/NetworkRTCTCPSocketCocoa.mm:
- NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm:
- 8:59 AM Changeset in webkit [288295] by
-
- 1 copy in tags/Safari-613.1.12.1.12
Tag Safari-613.1.12.1.12.
- 8:48 AM Changeset in webkit [288294] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.12
- 8:37 AM Changeset in webkit [288293] by
-
- 2 edits in trunk/Source/WebKit
Prevent empty folders being created during install builds
rdar://87777915
Patch by Elliott Williams <Elliott Williams> on 2022-01-20
Reviewed by Brady Eidson.
The "Copy Daemon Plists" script phase has output files which aren't always written to. Since
Xcode mkdir-p's these output directories, it ends up creating an empty directory under some
circumstances. Fix by removing these declared outputs: since this script is install-only
and executes quickly, it's not really a problem to have it run redundantly.
Once we use XCBuild everywhere, it can be rewritten as a Copy Files phase.
- WebKit.xcodeproj/project.pbxproj:
- 8:01 AM Changeset in webkit [288292] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287867 - null ptr deref in WebCore::LayoutIntegration::LineLayout::collectOverflow()
https://bugs.webkit.org/show_bug.cgi?id=234654
<rdar://problem/86571571>
Reviewed by Antti Koivisto.
Source/WebCore:
needsLayout() check in invalidateLineLayoutPath is insufficient for modern line layout.
m_lineLayout = std::monostate() does not only destroy the line layout object but it also nukes all the IFC geometries.
It is equivalent to having all the child boxes dirty, since in order to re-generate the geometry information,
we have to layout _all_ the boxes (note that nuking the legacy line layout object does not destroy the inline tree).
The bug here is that needsLayout() returns true for cases (e.g. posChildNeedsLayout) when
while the geometry is all gone, we are going to take a special layout codepath which expects pre-computed geometries.
Test: fast/block/line-layout/line-layout-collect-overflow-crash.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
LayoutTests:
- fast/block/line-layout/line-layout-collect-overflow-crash-expected.txt: Added.
- fast/block/line-layout/line-layout-collect-overflow-crash.html: Added.
- 7:58 AM Changeset in webkit [288291] by
-
- 7 edits in trunk/Source/WebCore
Address post-landing review comments from Darin.
Reviewed by Antti Koivisto and Darin Adler.
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator UnicodeBidi const):
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::handleEnterExitBidiContext):
(WebCore::Layout::buildBidiParagraph):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxStart):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxEnd):
- rendering/LegacyInlineIterator.h:
(WebCore::notifyObserverEnteredObject):
(WebCore::notifyObserverWillExitObject):
- rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::initialUnicodeBidi):
- 7:55 AM Changeset in webkit [288290] by
-
- 4 edits7 adds in releases/WebKitGTK/webkit-2.34
Merge r287812 - null ptr deref in WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange
https://bugs.webkit.org/show_bug.cgi?id=234862
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-08
Reviewed by Darin Adler.
Source/WebCore:
ModifySelectionListLevelCommand::appendSiblingNodeRange loops through nodes assuming
existence of siblings, which is not guaranteed, and can result in nullptr deref. Instead,
check for node existence as part of loop condition, and change raw pointer usage to RefPtr.
This addresses the crash but results in ASSERT(isEndOfParagraph(endOfParagraphToMove))
failing in CompositeEditCommand::moveParagraph. We modify WebCore::findEndOfParagraph
to check for HTMLBRElement nodes to avoid unexpectedly changing the AnchorType.
Test: http/tests/lists/list-new-parent-no-sibling-append.html
- editing/ModifySelectionListLevel.cpp:
(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeBefore):
(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeAfter):
(WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange):
- editing/VisibleUnits.cpp:
(WebCore::findEndOfParagraph):
LayoutTests:
- http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
- http/tests/lists/list-new-parent-no-sibling-append.html: Added.
- platform/gtk/http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
- platform/win/http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
- 7:49 AM Changeset in webkit [288289] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r287667 - [ 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):
- 7:46 AM Changeset in webkit [288288] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r287428 - Simplify test for startOfLastParagraph in InsertListCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=234600
Patch by Frederic Wang <fwang@igalia.com> on 2021-12-24
Reviewed by Darin Adler.
Current test is !startOfLastParagraph.deepEquivalent().anchorNode()->isConnected(). It could
be replaced with the less verbose startOfLastParagraph.isOrphan() which is equivalent to
startOfLastParagraph.deepEquivalent().isOrphan() and so to the condition
startOfLastParagraph.deepEquivalent().anchorNode() &&
!startOfLastParagraph.deepEquivalent().anchorNode()->isConnected(). A difference can only
happen for a page where anchorNode() is a null pointer. In such a test case exists, then it
is already crashing with a null ptr deref anyway.
No new tests, behavior essentially unchanged.
- editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Use startOfLastParagraph.isOrphan().
- 7:41 AM Changeset in webkit [288287] by
-
- 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r287410 - [GStreamer] MediaPlayerPrivateGStreamer mishandles failure to create WebKitTextCombiner
https://bugs.webkit.org/show_bug.cgi?id=233230
Patch by Philippe Normand <pnormand@igalia.com> on 2021-12-23
Reviewed by Michael Catanzaro.
Gracefully fail when the subenc plugin is not available. It is optional, we should not
assert or crash if it's not found. Two warnings are logged already when it's not found.
- platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
(WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
- 7:39 AM Changeset in webkit [288286] by
-
- 2 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287354 - null ptr deref in DocumentTimeline::animate
https://bugs.webkit.org/show_bug.cgi?id=234260
Patch by Frédéric Wang <fwang@igalia.com> on 2021-12-22
Reviewed by Darin Adler.
Source/WebCore:
Test: webanimations/document-timeline-animate-crash.html
- animation/DocumentTimeline.cpp:
(WebCore::DocumentTimeline::animate): If the WeakPtr m_document was destroyed, throw a
TypeError exception so that the call to WebAnimation::create won't cause a null ptr deref.
LayoutTests:
Add non-regression test.
- webanimations/document-timeline-animate-crash-expected.txt: Added.
- webanimations/document-timeline-animate-crash.html: Added.
- 7:39 AM Changeset in webkit [288285] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287194 - null ptr deref in WebCore::findPlaceForCounter
https://bugs.webkit.org/show_bug.cgi?id=234375
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-12-17
Reviewed by Alan Bujtas.
Source/WebCore:
Test: fast/css/counters/findPlaceForCounter-parent-renderer-crash.html
When the current renderer's element is an HTML document and root of the tree, parentOrPseudoHostElement can return a nullptr,
so we need to check for nullptr before trying to access the renderer() of the Element pointer it returns.
- rendering/RenderCounter.cpp:
(WebCore::findPlaceForCounter):
LayoutTests:
- fast/css/counters/findPlaceForCounter-parent-renderer-crash-expected.txt: Added.
- fast/css/counters/findPlaceForCounter-parent-renderer-crash.html: Added.
- 6:55 AM Changeset in webkit [288284] by
-
- 2 edits in trunk
[WinCairo] Make USE_CF conditional on ENABLE_WEBKIT_LEGACY
https://bugs.webkit.org/show_bug.cgi?id=235393
Reviewed by Fujii Hironori.
CoreFoundation is used heavily in WebKitLegacy on Windows and won't compile without it.
Modern WebKit doesn't have this requirement so tie CoreFoundation usage to whether
WebKitLegacy is being used.
- Source/cmake/OptionsWinCairo.cmake:
- 6:13 AM Changeset in webkit [288283] by
-
- 7 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287131 - Mark range boundary point containers
https://bugs.webkit.org/show_bug.cgi?id=233462
Patch by Rob Buis <rbuis@igalia.com> on 2021-12-16
Reviewed by Darin Adler.
Source/WebCore:
Mark range boundary point containers as unreachable for gc.
Test: fast/dom/Range/delete-contents-crash.html
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- bindings/js/JSRangeCustom.cpp: Added.
(WebCore::JSRange::visitAdditionalChildren):
- dom/Range.cpp:
(WebCore::Range::visitNodesConcurrently const):
- dom/Range.h:
- dom/Range.idl:
LayoutTests:
- fast/dom/Range/delete-contents-crash-expected.txt: Added.
- fast/dom/Range/delete-contents-crash.html: Added.
- 5:53 AM Changeset in webkit [288282] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r287118 - null ptr deref in WebCore::ApplyStyleCommand::applyRelativeFontStyleChange
https://bugs.webkit.org/show_bug.cgi?id=234312
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-12-15
Reviewed by Chris Dumez.
Source/WebCore:
In some situations calling ApplyStyleCommand::nodeFullySelected forces layout in a
way that disconnects the element. In this situation, we now break out of iteration.
We also add an isOrphan() check in ApplyStyleCommand::applyInlineStyle given
the possibility of this scenario.
Test: fast/editing/apply-relative-font-style-change-crash-004.html
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
(WebCore::ApplyStyleCommand::applyInlineStyle):
LayoutTests:
- TestExpectations:
- fast/editing/apply-relative-font-style-change-crash-004-expected.txt: Added.
- fast/editing/apply-relative-font-style-change-crash-004.html: Added.
- 5:53 AM Changeset in webkit [288281] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r287017 - Null pointer crash in FetchResponse::clone
https://bugs.webkit.org/show_bug.cgi?id=234236
<rdar://86327601>
Reviewed by Alex Christensen.
From the log, we are most probably getting a null globalObject from a ScriptExecutionContext in FetchResponse::clone.
This may happen in case the document is navigated away but we still execute some code for it.
Add a null check to ensure we do not crash.
- Modules/fetch/FetchResponse.cpp:
(WebCore::FetchResponse::clone):
- 5:35 AM Changeset in webkit [288280] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r286866 - nullptr deref in ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=234018
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-12-10
Reviewed by Alan Bujtas.
Source/WebCore:
Test: fast/rendering/floating-object-renderer-crash.html
When destroying a given renderer, we first remove floats and out-of-flow positioned objects
from their containing block before detaching the renderer from the tree. We do this by obtaining
the renderer’s outermost block containing a floating object and recursively marking all siblings
and descendants for layout.
The criteria for continuing down the list of children require the current block to contain floats
or be able to shrink to avoid floats. However, we can have a scenario where the current child block
doesn’t have a float, but one of its descendants does. In this case, although we should continue to
that descendant and remove the float, we do not.
The proposal in this patch will instead check whether the child block contains a float, or any of its descendants do.
If so we should continue traversing towards that descendant.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::subtreeContainsFloat const):
(WebCore::RenderBlockFlow::subtreeContainsFloats const):
(WebCore::RenderBlockFlow::markAllDescendantsWithFloatsForLayout):
- rendering/RenderBlockFlow.h:
LayoutTests:
- fast/rendering/floating-object-renderer-crash-expected.txt: Added.
- fast/rendering/floating-object-renderer-crash.html: Added.
- 4:54 AM Changeset in webkit [288279] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r286827 - Stack-overflow crash in WebCore::RenderBox::computeLogicalHeight()
https://bugs.webkit.org/show_bug.cgi?id=233460
Reviewed by Sergio Villar Senin and Darin Adler.
Source/WebCore:
Like flexibleBox item, deprecatedFlexibleBox item should call clearOverridingContentSize if
it is positioned. Otherwise, RenderReplaced::computeAspectRatioInformationForRenderBox might call
itself recursively.
Test: fast/css/deprecated-flex-box-with-min-content-crashes.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::styleDidChange):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::isDisplayFlexibleOrGridBoxIncludingDeprecated const):
(WebCore::RenderStyle::isDisplayDeprecatedFlexibleBox):
LayoutTests:
- fast/css/deprecated-flex-box-with-min-content-crashes-expected.txt: Added.
- fast/css/deprecated-flex-box-with-min-content-crashes.html: Added.
- 4:37 AM Changeset in webkit [288278] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r286553 - Null check in shouldUseBreakElement
https://bugs.webkit.org/show_bug.cgi?id=229275
Patch by Rob Buis <rbuis@igalia.com> on 2021-12-06
Reviewed by Ryosuke Niwa.
Source/WebCore:
Need to null check node in shouldUseBreakElement.
Also bail out early in InsertLineBreakCommand::doApply
in case position is not editable.
Test: editing/execCommand/insert-line-break-crash.html
- editing/InsertLineBreakCommand.cpp:
(WebCore::InsertLineBreakCommand::shouldUseBreakElement):
(WebCore::InsertLineBreakCommand::doApply):
LayoutTests:
- editing/execCommand/insert-line-break-crash-expected.txt: Added.
- editing/execCommand/insert-line-break-crash.html: Added.
- 4:37 AM Changeset in webkit [288277] by
-
- 4 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r286531 - Fix parentNode in CompositeEditCommand::splitTreeToNode
https://bugs.webkit.org/show_bug.cgi?id=230710
Patch by Rob Buis <rbuis@igalia.com> on 2021-12-04
Reviewed by Ryosuke Niwa.
Source/WebCore:
Fix parentNode handling in CompositeEditCommand::splitTreeToNode and
also a few more IndentOutdentCommand methods to support the test case.
Test: editing/execCommand/outdent-cut-crash.html
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs):
- editing/IndentOutdentCommand.cpp:
(WebCore::IndentOutdentCommand::indentIntoBlockquote): do not call positionInParentAfterNode
if insertNodeBefore failed.
(WebCore::IndentOutdentCommand::outdentParagraph): need to check for null positions
before calling moveParagraphs.
LayoutTests:
- editing/execCommand/outdent-cut-crash-expected.txt: Added.
- editing/execCommand/outdent-cut-crash.html: Added.
- 2:00 AM Changeset in webkit [288276] by
-
- 2 edits in trunk/Tools
[JSC] Further unification in run-jsc-stress-tests
https://bugs.webkit.org/show_bug.cgi?id=234343
Reviewed by Jonathan Bedard.
Extend defaultRunCfg to be able to omit a subset of the test
modes and change defaultNoNoLLIntRun, defaultNoEagerRun and
defaultNoSamplingProfilerRun to call into it.
When defaultNoNoLLIntRun was added in https://commits.webkit.org/176404@main,
it was a verbatim copy of defaultRun, except for the NoLLInt test
modes. It hasn't diverged further, so after this patch, the set of
tests executed remains the same.
When defaultNoEagerRun was added in https://commits.webkit.org/150033@main,
it was intended to be the same as defaultRun, minus the eager modes. It
hasn't been kept in sync, so this change results in few more testing modes for
the tests explicitly using defaultNoEagerRun.
defaultNoSamplingProfilerRun was ignoring quick mode and was dropping
runFTLNoCJITValidate when added in https://commits.webkit.org/171769@main.
This patch enables more test modes for the handful of tests that use
defaultNoSamplingProfilerRun.
- Scripts/run-jsc-stress-tests:
- 12:36 AM Changeset in webkit [288275] by
-
- 3 edits in trunk/Source/WebCore
AVAudioSessionCaptureDeviceManager is not always computing the right default input device
https://bugs.webkit.org/show_bug.cgi?id=235362
<rdar://87707090>
Reviewed by Eric Carlson.
Sometimes the defaultInput is not available, in which case it is good to resort to the previous default device if available.
This fix prevents the following case to happen:
- We start rendering WebRTC audio on some output, say AirPods
- We start capturing microphone, but the default microphone is not the AirPods one (while it probably should, this is not always the case).
- We migrate audio rendering to VPIO which will output audio to the same device as the input microphone if feasible (typically builtin speaker).
- Audio is now flowing on builtin speaker instead of AirPods.
Manually tested.
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.h:
- platform/mediastream/ios/AVAudioSessionCaptureDeviceManager.mm:
- 12:31 AM Changeset in webkit [288274] by
-
- 5 edits1 delete in releases/WebKitGTK/webkit-2.34
Merge r288219 - [ResourceTiming] nextHopProtocol is exposed regardless of Timing-Allow-Origin
https://bugs.webkit.org/show_bug.cgi?id=235294
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-19
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/resource-timing/nextHopProtocol-is-tao-protected.https-expected.txt:
Source/WebCore:
Covered by an existing WPT test that starts passing.
This was recently fixed in Chromium in https://chromium-review.googlesource.com/c/chromium/src/+/3354335
- page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::nextHopProtocol const):
- 12:18 AM Changeset in webkit [288273] by
-
- 8 edits in releases/WebKitGTK/webkit-2.34
Merge r286299 - ServiceWorkerContainer does not respond well to network process crash
https://bugs.webkit.org/show_bug.cgi?id=233626
Reviewed by Chris Dumez.
Source/WebCore:
Add a boolean to SWClientConnection to identify whether connection is closed.
ServiceWorkerContainer will retrieve a new connection if its existing connection is closed.
Covered by updated test.
- workers/service/SWClientConnection.h:
(WebCore::SWClientConnection::isClosed const):
(WebCore::SWClientConnection::setIsClosed):
- workers/service/ServiceWorkerContainer.cpp:
(WebCore::ServiceWorkerContainer::ensureSWClientConnection):
Source/WebKit:
Set SW client connection as closed when IPC connection gets closed.
- WebProcess/Storage/WebSWClientConnection.cpp:
(WebKit::WebSWClientConnection::connectionToServerLost):
LayoutTests:
- http/wpt/service-workers/service-worker-networkprocess-crash.html:
- platform/mac-wk2/TestExpectations:
Remove flaky expectation as test is no longer flaky according results.webkit.org.
Jan 19, 2022:
- 10:01 PM Changeset in webkit [288272] by
-
- 9 edits1 add in trunk
[JSC] Implement Temporal.Now.instant()
https://bugs.webkit.org/show_bug.cgi?id=234836
Reviewed by Ross Kirsling.
JSTests:
- stress/temporal-now-instant.js: Added.
(shouldBe):
Source/JavaScriptCore:
This patch implements Temporal.Now.instant() since Temporal.Instant is now implemented.
It returns an instant which represents current wall time.
- runtime/ISO8601.cpp:
(JSC::ISO8601::ExactTime::now):
- runtime/ISO8601.h:
- runtime/TemporalNow.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
Source/WTF:
Add currentTimeInNanoseconds implementation. Use clock_gettime for non Windows environment
since it is POSIX & it is supported in macOS after Sierra.
We also remove non-QueryPerformanceCounter path on Windows build since (1) it is supported in
all supported Windows versions now and (2) no ports are using that path.
- wtf/CurrentTime.cpp:
(WTF::currentTimeInNanoseconds):
(WTF::currentTime):
- wtf/PlatformUse.h:
- wtf/WallTime.h:
- 8:54 PM Changeset in webkit [288271] by
-
- 1 copy in tags/Safari-613.1.12.1.11
Tag Safari-613.1.12.1.11.
- 8:46 PM Changeset in webkit [288270] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.11
- 8:09 PM Changeset in webkit [288269] by
-
- 3 edits in trunk/Source/WebKit
Grant access to GlobalPreferences and GlobalPreferences_m uniformly
https://bugs.webkit.org/show_bug.cgi?id=235387
<rdar://problem/86943871>
Reviewed by Per Arne Vollan.
We should allow access to GlobalPreferences_m.plist in the places where we currently
allow GlobalPreferences.plist. We are inconsistent about this in our sandboxes, and
telemetry shows that we need to provide access.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- Resources/SandboxProfiles/ios/com.apple.WebKit.WebAuthn.sb:
- 8:03 PM Changeset in webkit [288268] by
-
- 8 edits in trunk/Source/JavaScriptCore
[JSC] Fix non-JIT Windows LLInt
https://bugs.webkit.org/show_bug.cgi?id=235388
Reviewed by Mark Lam.
We should implement cCall3 which calls llint_link_call etc. from LLInt code.
This implementation needs to work on Windows too, so it requires stack modification.
While we do not have a problem on JIT Windows build, it is required for non JIT Windows
build. (If JIT is enabled, LLInt is fine. But if JIT is entirely disabled, this change
is required.)
- llint/LLIntSlowPaths.cpp:
(JSC::LLInt::llint_link_call):
(JSC::LLInt::llint_virtual_call):
- llint/LLIntSlowPaths.h:
- llint/LowLevelInterpreter.asm:
- llint/LowLevelInterpreter32_64.asm:
- llint/LowLevelInterpreter64.asm:
- offlineasm/cloop.rb:
- offlineasm/instructions.rb:
- 7:53 PM Changeset in webkit [288267] by
-
- 6 edits in trunk
<dialog> with transformed ancestor asserts under RenderGeometryMap
https://bugs.webkit.org/show_bug.cgi?id=235194
Reviewed by Antti Koivisto.
Source/WebCore:
With this change we reparent the RenderLayers of top layer elements under the RenderView's
layer. This makes the RenderLayer hierarchy a closer match to the containing block
hierarchy, and means that all the existing RenderLayer tree walks that use
parent()/firstChild()/nextSibling() traverse the the "top layer" layers as children of the
RenderView. This in turn means that the various bits of RenderLayer state that track the
state of descendants (e.g. m_hasVisibleDescendant, m_hasSelfPaintingLayerDescendant,
m_hasNotIsolatedBlendingDescendants) reflect descendency in the top-layer-aware hierarchy.
Note that m_hasVisibleDescendant is about the inherited
visibilityproperty which follows
DOM order, but since we consult it during painting-related tree walks, we want this state to
reflect the top-layer-aware tree.
The patch adds top-layer-aware helpers on RenderElement to find the parent and next sibling,
and uses those when parenting layers.
In addition, when the top layer status changes for a RenderLayer, we unparent and
re-parent its layer (which in turn should toggle the relevant dirty bits).
- rendering/RenderElement.cpp:
(WebCore::findNextLayer):
(WebCore::layerNextSiblingRespectingTopLayer):
(WebCore::addLayers):
(WebCore::RenderElement::layerParentRespectingTopLayer const):
(WebCore::RenderElement::layerNextSiblingRespectingTopLayer const):
(WebCore::RenderElement::insertedIntoTree):
(WebCore::RenderElement::willBeRemovedFromTree):
(WebCore::RenderElement::findNextLayer const): Deleted.
- rendering/RenderElement.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::insertOnlyThisLayer):
(WebCore::RenderLayer::stackingContext const): No need for the explicit establishesTopLayer() check.
(WebCore::RenderLayer::setHasVisibleContent):
(WebCore::RenderLayer::dirtyAncestorChainVisibleDescendantStatus):
(WebCore::RenderLayer::setAncestorChainHasVisibleDescendant):
(WebCore::RenderLayer::enclosingAncestorForPosition const): No need for the explicit establishesTopLayer() check.
(WebCore::RenderLayer::paintLayerWithEffects): Ditto
(WebCore::RenderLayer::establishesTopLayerWillChange):
(WebCore::RenderLayer::establishesTopLayerDidChange):
(WebCore::RenderLayer::clipCrossesPaintingBoundary const): No need for the explicit establishesTopLayer() check.
(WebCore::RenderLayer::calculateClipRects const): Ditto
LayoutTests:
- TestExpectations: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/top-layer-parent-transform.html
no longer asserts.
- 6:45 PM Changeset in webkit [288266] by
-
- 12 edits in trunk
Web Inspector: fully blackboxed stack traces don't show the right top call frame
https://bugs.webkit.org/show_bug.cgi?id=235381
Reviewed by Patrick Angle.
Source/WebInspectorUI:
- UserInterface/Models/StackTrace.js:
(WI.StackTrace):
(WI.StackTrace.fromPayload):
(WI.StackTrace.prototype.get firstNonNativeNonAnonymousNotBlackboxedCallFrame):
Only assign tofirstNonNativeNonAnonymousCallFrameonce.
Drive-by: Don't re-fetch the blackbox data for theWI.SourceCodeof theWI.CallFrame.
Drive-by: Combine optional parameters into anoptions = {}for current code cleanliness
and greater flexibility for future changes.
- UserInterface/Models/CallFrame.js:
(WI.CallFrame):
(WI.CallFrame.fromDebuggerPayload):
(WI.CallFrame.fromPayload):
- UserInterface/Views/ThreadTreeElement.js:
(WI.ThreadTreeElement.prototype.refresh):
Drive-by: Combine optional parameters into anoptions = {}for current code cleanliness
and greater flexibility for future changes.
- UserInterface/Views/CallFrameTreeElement.js:
(WI.CallFrameTreeElement):
(WI.CallFrameTreeElement.prototype.onattach):
- UserInterface/Views/CallFrameView.js:
(WI.CallFrameView):
Drive-by: Don't re-fetch the blackbox data for theWI.SourceCodeof theWI.CallFrame.
LayoutTests:
- inspector/model/stack-trace.html:
- inspector/model/stack-trace-expected.txt:
- inspector/debugger/resources/async-stack-trace-test.js:
(TestPage.registerInitializer.window.getAsyncStackTrace):
- inspector/debugger/resources/log-active-stack-trace.js:
(TestPage.registerInitializer.window.getActiveStackTrace):
- inspector/debugger/tail-deleted-frames/resources/stack-trace-utilities.js:
(TestPage.registerInitializer.window.getAsyncStackTrace):
Drive-by: Adopt newWI.StackTraceconstructor arguments format.
- 6:40 PM Changeset in webkit [288265] by
-
- 6 edits in trunk/Source/bmalloc
[libpas] Disable PAS_ASSERT on Darwin ARM64 (not in ARM64E)
https://bugs.webkit.org/show_bug.cgi?id=235349
Reviewed by Saam Barati.
We have several weak devices which only have ARM64 (not ARM64E).
And in such a weak device, PAS_ASSERT affects on performance.
By disabling PAS_ASSERT, we got 0.5% improvement in PLT in iPhone 6S.
- libpas/src/libpas/pas_config.h:
- libpas/src/libpas/pas_config_prefix.h:
- libpas/src/libpas/pas_internal_config.h:
- libpas/src/libpas/pas_platform.h:
- libpas/src/libpas/pas_utils.h:
- 6:05 PM Changeset in webkit [288264] by
-
- 27 edits in trunk
Align our qualified name validation with the specification
https://bugs.webkit.org/show_bug.cgi?id=201699
Reviewed by Geoffrey Garen.
LayoutTests/imported/w3c:
- web-platform-tests/dom/nodes/DOMImplementation-createDocument-expected.txt:
- web-platform-tests/dom/nodes/Document-createElementNS-expected.txt:
Rebaseline WPT tests now that more checks are passing.
Source/WebCore:
Align our qualified name validation with the latest specification:
No new tests, rebaselined existing tests.
- dom/Document.cpp:
(WebCore::isValidNameStart):
(WebCore::isValidNamePart):
LayoutTests:
- dom/xhtml/level3/core/canonicalform06-expected.txt:
- dom/xhtml/level3/core/infoset06-expected.txt:
- dom/xhtml/level3/core/infoset07-expected.txt:
- dom/xhtml/level3/core/wellformed01-expected.txt:
- dom/xhtml/level3/core/wellformed02-expected.txt:
- dom/xhtml/level3/core/wellformed03-expected.txt:
- dom/xhtml/level3/core/wellformed04-expected.txt:
Rebaseline outdated imported tests.
- fast/dom/DOMImplementation/createDocument-namespace-err-expected.txt:
- fast/dom/DOMImplementation/createDocument-namespace-err.html:
- fast/dom/Document/createAttributeNS-namespace-err-expected.txt:
- fast/dom/Document/createAttributeNS-namespace-err.html:
- fast/dom/Document/createElement-invalid-names-expected.txt:
- fast/dom/Document/createElement-invalid-names.html:
- fast/dom/Document/createElementNS-namespace-err-expected.txt:
- fast/dom/Document/createElementNS-namespace-err.html:
- fast/dom/Element/setAttributeNS-namespace-err-expected.txt:
- fast/dom/Element/setAttributeNS-namespace-err.html:
- fast/dom/dataset-expected.txt:
- fast/dom/dataset-xhtml-expected.txt:
- fast/dom/dataset-xhtml.xhtml:
- fast/dom/dataset.html:
Update and rebaseline outdated WebKit tests.
- 6:05 PM Changeset in webkit [288263] by
-
- 1 copy in tags/Safari-613.1.14.1.4
Tag Safari-613.1.14.1.4.
- 5:53 PM Changeset in webkit [288262] by
-
- 9 edits in branches/safari-613.1.14.1-branch/Source
Versioning.
WebKit-7613.1.14.1.4
- 5:39 PM Changeset in webkit [288261] by
-
- 21 edits1 move3 adds in trunk/Source
Update ARM64EHash
https://bugs.webkit.org/show_bug.cgi?id=235192
Reviewed by Mark Lam.
Source/JavaScriptCore:
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- assembler/AssemblerBuffer.h:
(JSC::ARM64EHash::ARM64EHash):
(JSC::ARM64EHash::~ARM64EHash):
(JSC::ARM64EHash::allocatePinForCurrentThreadAndInitializeHash):
(JSC::ARM64EHash::deallocatePinForCurrentThread):
(JSC::ARM64EHash::update):
(JSC::ARM64EHash::pin):
(JSC::ARM64EHash::currentHash):
(JSC::ARM64EHash::setUpdatedHash):
(JSC::AssemblerBuffer::AssemblerBuffer):
(JSC::AssemblerBuffer::arm64eHash):
(JSC::AssemblerBuffer::putIntegralUnchecked):
(JSC::ARM64EHash::bitsForDiversifier): Deleted.
- assembler/LinkBuffer.cpp:
(JSC::LinkBuffer::copyCompactAndLinkCode):
(JSC::LinkBuffer::allocate):
- assembler/SecureARM64EHashPins.cpp: Added.
(JSC::WriteToJITRegionScope::WriteToJITRegionScope):
(JSC::WriteToJITRegionScope::~WriteToJITRegionScope):
(JSC::ValidateNonReentrancyScope::ValidateNonReentrancyScope):
(JSC::ValidateNonReentrancyScope::~ValidateNonReentrancyScope):
(JSC::allocateInExecutableMemory):
(JSC::SecureARM64EHashPins::Page::Page):
(JSC::initializePage):
(JSC::SecureARM64EHashPins::metadata):
(JSC::SecureARM64EHashPins::initializeAtStartup):
(JSC::SecureARM64EHashPins::allocatePinForCurrentThreadImpl):
(JSC::SecureARM64EHashPins::allocatePinForCurrentThread):
(JSC::SecureARM64EHashPins::deallocatePinForCurrentThread):
- assembler/SecureARM64EHashPins.h: Added.
(JSC::SecureARM64EHashPins::firstPage):
- assembler/SecureARM64EHashPinsInlines.h: Added.
(JSC::SecureARM64EHashPins::keyForCurrentThread):
(JSC::SecureARM64EHashPins::forEachPage):
(JSC::SecureARM64EHashPins::forEachEntry):
(JSC::SecureARM64EHashPins::findFirstEntry):
(JSC::SecureARM64EHashPins::pinForCurrentThread):
- heap/MarkedBlock.h:
- heap/MarkedSpace.h:
- heap/SlotVisitor.h:
- jit/BaselineJITPlan.cpp:
(JSC::BaselineJITPlan::BaselineJITPlan):
(JSC::BaselineJITPlan::compileInThreadImpl):
- jit/ExecutableAllocator.cpp:
- parser/Parser.h:
- runtime/InitializeThreading.cpp:
(JSC::initialize):
- runtime/IterationStatus.h: Removed.
- runtime/JSCConfig.h:
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::parseAndCompileAir):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompileB3):
- wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::compileFunction):
Source/WTF:
- WTF.xcodeproj/project.pbxproj:
- wtf/Bitmap.h:
(WTF::WordType>::set):
(WTF::WordType>::forEachSetBit const):
- wtf/CMakeLists.txt:
- wtf/IterationStatus.h: Added.
- 5:35 PM Changeset in webkit [288260] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r286049 - Nullptr crash in SimplifiedBackwardsTextIterator::range() via previousSentencePosition
https://bugs.webkit.org/show_bug.cgi?id=229282
Patch by Frédéric Wang <fwang@igalia.com> on 2021-11-18
Reviewed by Darin Adler.
Source/WebCore:
Constructors of TextIterator and SimplifiedBackwardsTextIterator update layout, which may
make HTMLObjectElement switch to fallback content and invalidate their renderer. As a
consequence their advance() method may incorrectly treat them as replaced elements. This
patch updates the layout at the beginning of FrameSelection::modify and disable post
resolution callbacks in order to prevent this kind of unaverted tree changes while browsing
the tree for selection update.
Test: editing/text-iterator/backward-textiterator-object-crash.html
- editing/FrameSelection.cpp:
(WebCore::FrameSelection::modify): Update layout and disable post resolution callback, so that
all iterators used during the execution of the function handle <object>s consistently.
LayoutTests:
Add regression test.
- editing/text-iterator/backward-textiterator-object-crash-expected.txt: Added.
- editing/text-iterator/backward-textiterator-object-crash.html: Added.
- 5:34 PM Changeset in webkit [288259] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Merge r285877 - Crash under WebKit::WebPageProxy::commitProvisionalPage()
https://bugs.webkit.org/show_bug.cgi?id=233199
<rdar://57659921>
Reviewed by Youenn Fablet.
Source/WebKit:
In the event where the committed WebProcess would crash while a cross-site provisional load
is going on in a provisional page / WebProcess, we would do a null dereference of the page's
drawing area when trying to commit the provisional page later on. We would also hit various
assertions in debug since the page's state gets completely reset when its WebProcess crashes.
To address the issue, we now clear the provisional page if the page's WebProcess crashes.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::resetStateAfterProcessExited):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- 5:27 PM Changeset in webkit [288258] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r285813 - nullptr deref in CompositeEditCommand::insertNodeAt
https://bugs.webkit.org/show_bug.cgi?id=232837
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-11-15
Reviewed by Wenson Hsieh and Darin Adler.
Source/WebCore:
Check endingSelection is not orphan before inserting nodes at
the start position.
Test: fast/editing/editing-position-crash.html
- editing/CreateLinkCommand.cpp:
(WebCore::CreateLinkCommand::doApply):
LayoutTests:
- fast/editing/editing-position-crash-expected.txt: Added.
- fast/editing/editing-position-crash.html: Added.
- 5:22 PM Changeset in webkit [288257] by
-
- 1 copy in tags/Safari-613.1.14.1.3
Tag Safari-613.1.14.1.3.
- 5:21 PM Changeset in webkit [288256] by
-
- 1 copy in tags/Safari-613.1.14.0.3
Tag Safari-613.1.14.0.3.
- 5:19 PM Changeset in webkit [288255] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r285232 - Return nullopt in aspect-ratio+intrinsic width case
https://bugs.webkit.org/show_bug.cgi?id=230769
Patch by Rob Buis <rbuis@igalia.com> on 2021-11-03
Reviewed by Javier Fernandez.
Source/WebCore:
Return nullopt in aspect-ratio+intrinsic width case, while
calculating preferred widths we do not know the container width yet,
so we can't determine the logical height reliably from it.
Test: fast/css-grid-layout/aspect-ratio-auto-repeat-crash.html
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::availableLogicalHeightForPercentageComputation const):
LayoutTests:
- fast/css-grid-layout/aspect-ratio-auto-repeat-crash-expected.txt: Added.
- fast/css-grid-layout/aspect-ratio-auto-repeat-crash.html: Added.
- 5:06 PM Changeset in webkit [288254] by
-
- 12 edits in trunk/Source/WebCore
Turn EUnicodeBidi into an enum class
https://bugs.webkit.org/show_bug.cgi?id=235379
Reviewed by Antti Koivisto.
- WebCore.order:
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator UnicodeBidi const):
(WebCore::CSSPrimitiveValue::operator EUnicodeBidi const): Deleted.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::handleEnterExitBidiContext):
(WebCore::Layout::buildBidiParagraph):
(WebCore::Layout::InlineItemsBuilder::breakAndComputeBidiLevels):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxStart):
(WebCore::Layout::InlineItemsBuilder::handleInlineBoxEnd):
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForStyle):
- platform/text/UnicodeBidi.h:
(WebCore::isIsolated):
(WebCore::isOverride):
(): Deleted.
- rendering/LegacyInlineIterator.h:
(WebCore::embedCharFromDirection):
(WebCore::notifyObserverEnteredObject):
(WebCore::notifyObserverWillExitObject):
- rendering/LegacyLineLayout.cpp:
(WebCore::LegacyLineLayout::updateLogicalWidthForAlignment):
(WebCore::constructBidiRunsForSegment):
(WebCore::LegacyLineLayout::layoutRunsAndFloatsInRange):
(WebCore::LegacyLineLayout::determineStartPosition):
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::computeMarkerStyle const):
- rendering/RenderMenuList.cpp:
(WebCore::RenderMenuList::adjustInnerStyle):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::unicodeBidi const):
(WebCore::RenderStyle::setUnicodeBidi):
(WebCore::RenderStyle::initialUnicodeBidi):
- 4:51 PM Changeset in webkit [288253] by
-
- 9 edits in trunk/Tools
[git-webkit] pull-request command should print the pr url
https://bugs.webkit.org/show_bug.cgi?id=235358
<rdar://problem/87793470>
Reviewed by Aakash Jain.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/mocks/local/git.py: Make created
and modified commits in tests have more issue-friendly titles.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest.main): Print out PullRequest URL.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/pull_request.py:
(PullRequest.init): Constructor may define printable URL.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/bitbucket.py:
(BitBucket.PRGenerator.PullRequest): Set printable URL.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.PRGenerator.PullRequest): Set printable URL.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/pull_request_unittest.py:
Canonical link: https://commits.webkit.org/246203@main
- 4:22 PM Changeset in webkit [288252] by
-
- 5 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r284792 - Source/WebCore:
ASSERT(node) triggered after surroundNodeRangeWithElement for node without editable style
https://bugs.webkit.org/show_bug.cgi?id=232133
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-25
Reviewed by Wenson Hsieh.
If the last styled node was not parent node of a current text node, but we
wish to style the text node, we will add a style span to surround the text node.
However, this requires the parent to have an editable style, or
we will not properly insert the span in the right location, which
later leads to a traversal into an invalid node. This change
makes it so we return early if the parent node does not have an
editable style, but modifying the existing
CompositeEditCommand::insertNodeBefore to return a boolean in the
early return case.
Test: fast/editing/apply-relative-font-style-change-crash-003.html
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::insertNodeBefore):
- editing/CompositeEditCommand.h:
LayoutTests:
ASSERT(node) triggered after surroundNodeRangeWithElement for node without editable style
https://bugs.webkit.org/show_bug.cgi?id=232133
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-25
Reviewed by Wenson Hsieh.
- fast/editing/apply-relative-font-style-change-crash-003-expected.txt: Added.
- fast/editing/apply-relative-font-style-change-crash-003.html: Added.
- 4:22 PM Changeset in webkit [288251] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r284754 - Null check in traverseNodesForSerialization
https://bugs.webkit.org/show_bug.cgi?id=230704
Patch by Rob Buis <rbuis@igalia.com> on 2021-10-23
Reviewed by Wenson Hsieh.
Source/WebCore:
Pass startNode by value instead of by pointer to
traverseNodesForSerialization.
Test: editing/pasteboard/copy-with-shadow-tree-crash.html
- editing/markup.cpp:
(WebCore::StyledMarkupAccumulator::serializeNodes):
(WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
LayoutTests:
- editing/pasteboard/copy-with-shadow-tree-crash-expected.txt: Added.
- editing/pasteboard/copy-with-shadow-tree-crash.html: Added.
- 4:21 PM Changeset in webkit [288250] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r284739 - Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=232177
Check if start and end positions are still valid after updating them through mergeEndWithNextIfIdentical
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-22
Reviewed by Alan Bujtas.
We currently check if start and end positions are still valid after
updating them through mergeEndWithNextIfIdentical, but not through
mergeStartWithPreviousIfIdentical. Add this check to avoid trying to
deref a nullptr in ApplyStyleCommand::mergeEndWithNextIfIdentical.
Test: fast/editing/create-link-inline-style-change-crash-001.html
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyInlineStyle):
LayoutTests:
Check if start and end positions are still valid after updating them through mergeStartWithPreviousIfIdentical
https://bugs.webkit.org/show_bug.cgi?id=232177
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2021-10-22
Reviewed by Alan Bujtas.
- fast/editing/create-link-inline-style-change-crash-001-expected.txt: Added.
- fast/editing/create-link-inline-style-change-crash-001.html: Added.
- 4:10 PM Changeset in webkit [288249] by
-
- 2 edits in trunk/LayoutTests
Unreviewed test gardening after after r288183
- platform/win/TestExpectations:
- 3:53 PM Changeset in webkit [288248] by
-
- 2 edits3 adds in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/dom/events/focus-event-document-move.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=235150
<rdar://problem/87524787>
Unreviewed, land iOS baseline and unskip. The behavior difference is expected as it involves mouse events.
- platform/ios-wk2/TestExpectations:
- platform/ios/imported/w3c/dom/events/focus-event-document-move-expected.txt: Added.
- 3:40 PM Changeset in webkit [288247] by
-
- 2 edits in trunk/LayoutTests
[LFC][IFC] imported/w3c/web-platform-tests/html/semantics/forms/the-textarea-element/textarea-newline-bidi.html fails on EWS
https://bugs.webkit.org/show_bug.cgi?id=233393
<rdar://problem/85776836>
Unreviewed, unskip test as it appears it got fixed in r286928.
- platform/mac/TestExpectations:
- 3:27 PM Changeset in webkit [288246] by
-
- 3 edits in trunk/Tools
[EWS] Report basic statuses to GitHub
https://bugs.webkit.org/show_bug.cgi?id=235210
<rdar://problem/87576183>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/events.py:
(Events.sendDataToEWS): Renamed from sendData.
(Events.sendDataToGitHub): Post status for a commit to GitHub.
(Events.extractProperty): We need to extract more than patchID from
build properties.
(Events.buildFinishedGitHub): Report the pass/failed state of a build to GitHub.
(Events.buildFinished): Every time a build finishes, send data to GitHub.
(Events.stepStartedGitHub): Update GitHub with the current step being run,
and a failure status if that's already known.
(Events.stepStarted): Every time a new step starts, send data to GitHub.
(Events.stepFinished):
(Events.sendData): Deleted.
(Events.getPatchID): Deleted.
- Tools/CISupport/ews-build/steps.py:
(GitHub.commit_status_url): Construct a status url for a commit in a repository.
Canonical link: https://commits.webkit.org/246199@main
- 3:13 PM Changeset in webkit [288245] by
-
- 9 edits2 adds2 deletes in trunk
Limit the deprecated CSSOMPrimitiveValue to formerly standardized unit types
https://bugs.webkit.org/show_bug.cgi?id=233651
<rdar://problem/85878291>
Reviewed by Darin Adler.
Source/WebCore:
This removes support, and makes it clear that these deprecated APIs shouldn't be exposing
anything more modern than what is standardized in DOM Level 2 Style. Hopefully this avoids
others in future adding support for new units.
Other changes included as they are necessary to make improved test not assert.
Test: fast/css/CSSPrimitiveValue-modern-length.html
- css/CSSUnits.cpp:
(WebCore::unitCategory): Ensure this is complete for all units.
(WebCore::canonicalUnitTypeForCategory): Ensure this is complete for all unit categories.
- css/DeprecatedCSSOMPrimitiveValue.cpp:
(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const): Remove post-DOM Level 2 Style values.
(WebCore::DeprecatedCSSOMPrimitiveValue::getFloatValue const): Remove post-DOM Level 2 Style values.
(WebCore::DeprecatedCSSOMPrimitiveValue::getStringValue const): Add comment.
- css/DeprecatedCSSOMPrimitiveValue.h: Remove post-DOM Level 2 Style constants.
- css/DeprecatedCSSOMPrimitiveValue.idl: Remove post-DOM Level 2 Style constants.
- css/CSSPrimitiveValue.cpp:
(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor.
(WebCore::CSSPrimitiveValue::doubleValueInternal const): Handle std::optional return.
- css/CSSPrimitiveValue.h:
(WebCore::CSSPrimitiveValue::conversionToCanonicalUnitsScaleFactor): Change to return std::optional, making explicit when there is no scaling factor.
- page/PrintContext.cpp:
(WebCore::PrintContext::computedPageMargin): Handle std::optional return.
LayoutTests:
Updated/moved test to cover all modern length units, not just ic.
- fast/css/CSSPrimitiveValue-ic-expected.txt: Removed.
- fast/css/CSSPrimitiveValue-ic.html: Removed.
- fast/css/CSSPrimitiveValue-modern-length-expected.txt: Added.
- fast/css/CSSPrimitiveValue-modern-length.html: Added.
- 2:43 PM Changeset in webkit [288244] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening of GPU Process bot
- gpu-process/TestExpectations:
- 2:38 PM Changeset in webkit [288243] by
-
- 13 edits1 copy1 add in trunk/Source/WebInspectorUI
Web Inspector: blackboxed call frames should be grouped everywhere
https://bugs.webkit.org/show_bug.cgi?id=234648
<rdar://problem/87018103>
Reviewed by Patrick Angle.
- UserInterface/Controllers/CallFrameTreeController.js:
(WI.CallFrameTreeController.prototype.groupBlackboxedCallFrames): Added.
(WI.CallFrameTreeController.prototype.groupBlackboxedCallFrames.displayable): Added.
(WI.CallFrameTreeController.prototype.set callFrames): Added.
- UserInterface/Views/StackTraceView.js:
(WI.StackTraceView):
- UserInterface/Views/ThreadTreeElement.js:
(WI.ThreadTreeElement.prototype.refresh):
- UserInterface/Views/TimelineDataGrid.js:
(WI.TimelineDataGrid.prototype._createPopoverContent):
(WI.TimelineDataGrid.prototype._popoverCallStackTreeElementRemoved):
Centralize code for creating stack trace views so that the logic that groups blackboxed call
frames (and the associatedWI.BlackboxedGroupTreeElement/WI.BlackboxedGroupView) can be
shared without duplication.
- UserInterface/Views/BlackboxedGroupTreeElement.js:
(WI.BlackboxedGroupTreeElement):
(WI.BlackboxedGroupTreeElement.prototype.expand):
(WI.BlackboxedGroupTreeElement.prototype.customTitleTooltip): Added.
Add a parameter to control whether to remember when expanding blackboxed call frame groups
so that they can later be auto-expanded. This is needed because that feature is intended so
that stepping doesn't re-collapse previously expanded blackboxed call frame groups. A more
technical reason is that non-debugging call stacks can live (i.e. be shown) for a long time
and therefore there's no good way to clear the remembered state, and we probably don't want
to have a previous expansion in the Timelines Tab or Canvas Tab suddenly cause all matching
blackboxed call frame groups in the Sources Tab to always be expanded.
Drive-by: Override the tooltip to explain that clicking shows the blackboxed call frames.
- UserInterface/Views/BlackboxedGroupView.js: Added.
(WI.BlackboxedGroupView):
(WI.BlackboxedGroupView.generateTitle):
(WI.BlackboxedGroupView.generateSubtitle):
(WI.BlackboxedGroupView.generateTooltip):
- UserInterface/Views/BlackboxedGroupView.css: Added.
(.blackboxed-group):
(.blackboxed-group > *):
(.blackboxed-group .icon):
(.blackboxed-group .subtitle):
(.blackboxed-group .separator):
(@media (prefers-color-scheme: dark) .blackboxed-group .icon):
(@media (prefers-color-scheme: dark) .blackboxed-group .subtitle):
(@media (prefers-color-scheme: dark) .blackboxed-group .separator):
Add a non-tree UI class for showing blackboxed call frame groups (just like how there's
WI.CallFrameTreeElementfor tree UIs andWI.CallFrameViewfor non-tree UIs). Also
centralize the UI strings for all blackboxed call frame group UIs asstaticmethods.
- UserInterface/Views/BlackboxedGroupTreeElement.css:
(.tree-outline .item.blackboxed-group.selected > *): Added.
(.tree-outline:not(:focus-within) .item.blackboxed-group.selected > *, body:is(.window-inactive, .window-docked-inactive) .tree-outline .item.blackboxed-group.selected > *): Added.
(.tree-outline .item.blackboxed-group): Deleted.
(.tree-outline .item.blackboxed-group:not(.selected) > *, .tree-outline:not(:focus-within) .item.blackboxed-group.selected > *, body:is(.window-inactive, .window-docked-inactive) .tree-outline .item.blackboxed-group.selected > *): Deleted.
(.tree-outline .item.blackboxed-group .icon): Deleted.
(@media (prefers-color-scheme: dark) .tree-outline .item.blackboxed-group .icon): Deleted.
Share styles fromUserInterface/Views/BlackboxedGroupView.csssince both share.blackboxed-group.
- UserInterface/Views/CallFrameTreeElement.js:
Drive-by: Combine optional parameters into an
options = {}for current code cleanliness
and greater flexibility for future changes.
- UserInterface/Views/Variables.css:
(:root):
- UserInterface/Views/CallFrameTreeElement.css:
(.tree-outline .item.call-frame.blackboxed:not(.selected)):
- UserInterface/Views/CallFrameView.css:
(.call-frame.blackboxed > .title,):
Drive-by: Rename--blackboxed-tree-item-opacitysince it's now also used outside trees.
- UserInterface/Main.html:
- Localizations/en.lproj/localizedStrings.js:
- 2:28 PM Changeset in webkit [288242] by
-
- 1 edit in branches/safari-613.1.14.0-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj
Apply patch. rdar://problem/86298747
- 2:20 PM Changeset in webkit [288241] by
-
- 2 edits in trunk/Source/WebKit
WebKit::nsTextAlignmentFromTextAlignment() falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234989
<rdar://problem/87273264>
Reviewed by Darin Adler.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::nsTextAlignmentFromTextAlignment):
- 1:38 PM Changeset in webkit [288240] by
-
- 10 edits in trunk/Source
[GPU Process] ImageBuffer::convertToLuminanceMask() and transformToColorSpace() should not access the backend in WebProcess
https://bugs.webkit.org/show_bug.cgi?id=235305
rdar://83437815
Reviewed by Sam Weinig.
Source/WebCore:
When DOM rendering is handled in GPU Process, no backend access will be
allowed. So all the operations that require access to the backend should
be handled in GPU Process. The WebProcess will stream messages for these
operations to GPUProcess.
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/displaylists/DisplayListRecorderImpl.h:
Source/WebKit:
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::convertToLuminanceMask):
(WebKit::RemoteDisplayListRecorder::transformToColorSpace):
- GPUProcess/graphics/RemoteDisplayListRecorder.h:
- GPUProcess/graphics/RemoteDisplayListRecorder.messages.in:
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.cpp:
(WebKit::RemoteDisplayListRecorderProxy::convertToLuminanceMask):
(WebKit::RemoteDisplayListRecorderProxy::transformToColorSpace):
- WebProcess/GPU/graphics/RemoteDisplayListRecorderProxy.h:
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
- 1:35 PM Changeset in webkit [288239] by
-
- 4 edits in trunk/Source
Do not use pas utils outside of libpas
https://bugs.webkit.org/show_bug.cgi?id=235275
Reviewed by Darin Adler.
Source/WebCore:
We should not use any utility functions from libpas outside of bmalloc.
libpas is designed to be self-contained and used outside of WebKit.
We cannot rely on non PAS_API functions.
If we need these utilities, we should define it in WTF.
- platform/graphics/HEVCUtilities.cpp:
(WebCore::parseHEVCCodecParameters):
(WebCore::createHEVCCodecParametersString):
(WebCore::reverseBits): Deleted.
Source/WTF:
- wtf/MathExtras.h:
(WTF::reverseBits32):
(WTF::reverseBits64):
- 1:30 PM Changeset in webkit [288238] by
-
- 2 edits in trunk/Source/WebKit
WebsiteDataStore.cpp uses switch statements for WebKit::ProcessAccessType enum that fall through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234986
<rdar://problem/87272534>
Reviewed by Darin Adler.
Clean up / clarify processAccessType logic in WebsiteDataStore.cpp.
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::computeNetworkProcessAccessTypeForDataFetch):
(WebKit::computeWebProcessAccessTypeForDataFetch):
(WebKit::WebsiteDataStore::fetchDataAndApply):
(WebKit::computeNetworkProcessAccessTypeForDataRemoval):
(WebKit::computeWebProcessAccessTypeForDataRemoval):
(WebKit::WebsiteDataStore::removeData):
- 1:24 PM Changeset in webkit [288237] by
-
- 2 edits in trunk/Source/WebKit
WebKit::AuthenticatorPresenterCoordinator() constructor falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234991
<rdar://problem/87275093>
Reviewed by Darin Adler.
Drop unnecessary default: case in the switch statement since it handles all enum values already.
- UIProcess/WebAuthentication/Cocoa/AuthenticatorPresenterCoordinator.mm:
(WebKit::AuthenticatorPresenterCoordinator::AuthenticatorPresenterCoordinator):
- 1:18 PM Changeset in webkit [288236] by
-
- 6 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r283868 - Remove scrollbars explicitly when destroying render tree
https://bugs.webkit.org/show_bug.cgi?id=229274
Patch by Rob Buis <rbuis@igalia.com> on 2021-10-09
Reviewed by Simon Fraser.
Source/WebCore:
Scrollbars in FrameViews that are hosted by RenderWidget need the RenderView
to exist because of RenderScrollbarPart. So when we are destroying the render tree
the RenderView will be destroyed too, so before that happens remove the scrollbars
and its RenderScrollbarParts.
Test: editing/inserting/insert-html-crash-02.html
- page/FrameView.cpp:
(WebCore::FrameView::willBeDestroyed):
- page/FrameView.h:
- platform/Widget.h:
(WebCore::Widget::willBeDestroyed):
- rendering/RenderWidget.cpp:
(WebCore::RenderWidget::willBeDestroyed):
LayoutTests:
- editing/inserting/insert-html-crash-02-expected.txt: Added.
- editing/inserting/insert-html-crash-02.html: Added.
- 1:17 PM Changeset in webkit [288235] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Speculative fix for a null pointer dereference in ByteCodeParser::handlePutByVal.
https://bugs.webkit.org/show_bug.cgi?id=231252
rdar://83310320
Reviewed by Yusuke Suzuki.
We're seeing a null pointer dereference in ByteCodeParser::handlePutByVal().
Adding a null check here as a speculative fix to mitigate crashes while we
investigate further.
- dfg/DFGByteCodeParser.cpp:
(JSC::DFG::ByteCodeParser::parseBlock):
(JSC::DFG::ByteCodeParser::handlePutByVal):
- 12:43 PM Changeset in webkit [288234] by
-
- 4 edits6 adds in releases/WebKitGTK/webkit-2.34
Merge r283590 - ASSERT(m_callback->hasCallback()) under IntersectionObserver::notify()
https://bugs.webkit.org/show_bug.cgi?id=231235
<rdar://80837616>
Reviewed by Ryosuke Niwa.
Source/WebCore:
IntersectionObserver's JS callback stays alive as long as its JS wrapper and
its JS wrapper's lifetime relies on the IntersectionObserver::isReachableFromOpaqueRoots()
implementation. isReachableFromOpaqueRoots() keeps the wrapper alive as long
as the JS wrappers of observation / pending targets are alive. However, as per specification,
we always need to dispatch an observation for an observation target, even if that target
is not connected. Our code was already taking care of dispatching such observation. However,
there was nothing keeping the observation target alive in this case and thus nothing keeping
the JS callback alive either.
To address the issue, I am introducing a new m_targetsWaitingForFirstObservation data member
which holds a strong ref to the observation target until the next time we call notify().
This makes sure that the observation target (and its JS wrapper) stays alive long enough for
us to dispatch the first observation for it. I also updated isReachableFromOpaqueRoots() to
return true as long as m_targetsWaitingForFirstObservation is non-empty so that the
IntersectionObserver's JS wrapper (and thus the JS callback) stay alive long enough too.
Tests: intersection-observer/observe-disconnected-target-crash.html
intersection-observer/observe-disconnected-target.html
- page/IntersectionObserver.cpp:
(WebCore::IntersectionObserver::observe):
(WebCore::IntersectionObserver::unobserve):
(WebCore::IntersectionObserver::removeAllTargets):
(WebCore::IntersectionObserver::notify):
(WebCore::IntersectionObserver::isReachableFromOpaqueRoots const):
- page/IntersectionObserver.h:
LayoutTests:
Add layout test coverage both for the crash and the Web facing behavior.
- intersection-observer/observe-disconnected-target-crash-expected.txt: Added.
- intersection-observer/observe-disconnected-target-crash.html: Added.
- intersection-observer/observe-disconnected-target-expected.txt: Added.
- intersection-observer/observe-disconnected-target.html: Added.
- 12:42 PM Changeset in webkit [288233] by
-
- 3 edits2 adds in trunk
Add visibility: visible to modal dialogs in UA sheet
https://bugs.webkit.org/show_bug.cgi?id=235369
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-visibility-hidden-expected.txt: Added.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-visibility-hidden.html: Added.
Source/WebCore:
Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/modal-dialog-in-visibility-hidden.html
- css/dialog.css:
(dialog:-internal-modal-dialog):
- 12:38 PM Changeset in webkit [288232] by
-
- 2 edits in trunk/Source/WebKit
WebKit::DownloadProxy::publishProgress() falls through ASSERT_NOT_REACHED()
https://bugs.webkit.org/show_bug.cgi?id=234975
<rdar://problem/87265153>
Reviewed by Darin Adler.
- UIProcess/Downloads/DownloadProxy.cpp:
(WebKit::DownloadProxy::publishProgress):
Let's not send the IPC if we failed to create the handle since the recipient code early returns when the handle is
invalid.
- 12:26 PM Changeset in webkit [288231] by
-
- 1 edit in branches/safari-613.1.14.1-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj
Apply patch. rdar://problem/86298747
- 12:23 PM Changeset in webkit [288230] by
-
- 4 edits in trunk/Tools/CISupport/ews-build
[ews] Improve support for required changes for ews uat instance
https://bugs.webkit.org/show_bug.cgi?id=235355
Reviewed by Jonathan Bedard.
- Tools/CISupport/ews-build/events.py:
- Tools/CISupport/ews-build/master.cfg:
- Tools/CISupport/ews-build/send_email.py:
- Tools/CISupport/ews-build/steps.py:
Canonical link: https://commits.webkit.org/246187@main
- 12:21 PM Changeset in webkit [288229] by
-
- 58 edits2 adds32 deletes in trunk
Unreviewed, reverting r288197.
Broke a test, slowing down EWS
Reverted changeset:
"Callback functions / interfaces should use global object of
its _value_ for errors and lifecycle"
https://bugs.webkit.org/show_bug.cgi?id=232387
https://commits.webkit.org/r288197
- 12:18 PM Changeset in webkit [288228] by
-
- 9 edits in branches/safari-613.1.14.1-branch/Source
Versioning.
WebKit-7613.1.14.1.3
- 12:13 PM Changeset in webkit [288227] by
-
- 11 edits in trunk/Tools
[git-webkit] Improve setup usability
https://bugs.webkit.org/show_bug.cgi?id=235051
<rdar://problem/87367948>
Reviewed by Aakash Jain.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/github.py:
(Tracker.credentials): Retry credential prompt if the user provides an email.
- Tools/Scripts/libraries/webkitcorepy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/init.py: Ditto.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/credentials.py:
(credentials): Use Terminal's choosing function.
(delete_credentials): Delete credentials for a service.
- Tools/Scripts/libraries/webkitcorepy/webkitcorepy/editor.py:
(Editor.vi): Add.
(Editor.programs): Add vi.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/setup.py:
(Setup.git): SSH replacement applies to http and https remotes.
(Setup.main): Include explicit conclusion messages.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/remote/git_hub.py:
(GitHub.credentials): Retry credential prompt if the user provides an email.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/test/setup_unittest.py:
Canonical link: https://commits.webkit.org/246186@main
- 12:07 PM Changeset in webkit [288226] by
-
- 2 edits in trunk/Tools
Swap accelerated drawing flag between the two GPU Process iOS simulator bots
https://bugs.webkit.org/show_bug.cgi?id=235366
Patch by Jon Lee <jonlee554@gmail.com> on 2022-01-19
Reviewed by Alex Christensen.
- CISupport/build-webkit-org/config.json: Turn the accelerated-drawing flag on the arm64 bot, since that
represents the configuration closest to actual hardware. Turn it off on the Intel bot for now so that we
can see differences in results with accelerated drawing off as we fix bugs in tests.
- 11:55 AM Changeset in webkit [288225] by
-
- 9 edits in branches/safari-613.1.14.0-branch/Source
Versioning.
WebKit-7613.1.14.0.3
- 11:52 AM Changeset in webkit [288224] by
-
- 4 edits in trunk
[JSC] Fix YarrJIT backtrackCharacterClassNonGreedy breakpoint
https://bugs.webkit.org/show_bug.cgi?id=235348
Reviewed by Michael Saboff.
JSTests:
- stress/regexp-unicode-surrogate-pair-increment-should-involve-length-check.js:
Source/JavaScriptCore:
YarrJIT's backtrackCharacterClassNonGreedy breakpoint is actually reachable. We should subtract index (since it is already incremented),
and go to the normal nonGreedyFailures path.
- yarr/YarrJIT.cpp:
- 11:48 AM Changeset in webkit [288223] by
-
- 2 edits in trunk/Source/WebCore
Assertion is not acquired in network process when setting database journal mode
https://bugs.webkit.org/show_bug.cgi?id=235340
Setting database journal mode requires lock, so network process needs to stay active by holding assertion.
Reviewed by Chris Dumez.
- platform/sql/SQLiteDatabase.cpp:
(WebCore::SQLiteDatabase::useWALJournalMode):
- 11:47 AM Changeset in webkit [288222] by
-
- 4 edits in trunk/Tools
[git-webkit] Improve pr push error message
https://bugs.webkit.org/show_bug.cgi?id=235299
<rdar://problem/87721181>
Reviewed by Aakash Jain.
- Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest.main): If
git pushfails, provide the user with options
for resolution.
Canonical link: https://commits.webkit.org/246182@main
- 11:44 AM Changeset in webkit [288221] by
-
- 1 edit2 adds in trunk/LayoutTests
Add a data URL resource loader performance test
https://bugs.webkit.org/show_bug.cgi?id=235325
Reviewed by Eric Carlson.
This patch is a follow-up of r287899. In local tests, the time taken
by a video element to load a data URL is about 2x of the time to load
the binary form of the media file.
- media/video-src-blob-perf-expected.txt: Added.
- media/video-src-blob-perf.html: Added.
- 11:41 AM Changeset in webkit [288220] by
-
- 2 edits in trunk/Source/WebCore
AX: Remove unnecessary isolated tree update for AXSelectedTextChanged node
https://bugs.webkit.org/show_bug.cgi?id=235343
Reviewed by Chris Fleizach.
When we get an AXSelectedTextChanged notification, we update the isolated tree with
the node that has gained selection. Sometimes this node is not yet part of the AX tree,
meaning its AXAncestorFlags are not initialized. This results in hitting this ASSERT in AXIsolatedObject::initializeAttributeData:
For all objects besides the root, the ancestry flags should've been set by now.
ASSERT(isRoot object.ancestorFlagsAreInitialized()); Updating the isolated tree with the selection node was added here to fix accessibility/mac/search-text/search-text.html:
https://bugs.webkit.org/show_bug.cgi?id=208434
But the test passes in ITM with and without updating the isolated tree with this node.
Also, for text selection related operations, isolated tree objects currently defer to the main thread
(e.g. AXIsolatedObject::selectedText, AXIsolatedObject::selectedText).
This patch removes this update since it doesn't seem to be necessary.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::postTextStateChangeNotification):
(WebCore::AXObjectCache::updateIsolatedTree):
- 11:37 AM Changeset in webkit [288219] by
-
- 5 edits1 delete in trunk
[ResourceTiming] nextHopProtocol is exposed regardless of Timing-Allow-Origin
https://bugs.webkit.org/show_bug.cgi?id=235294
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-19
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/resource-timing/nextHopProtocol-is-tao-protected.https-expected.txt:
Source/WebCore:
Covered by an existing WPT test that starts passing.
This was recently fixed in Chromium in https://chromium-review.googlesource.com/c/chromium/src/+/3354335
- page/PerformanceResourceTiming.cpp:
(WebCore::PerformanceResourceTiming::nextHopProtocol const):
- 11:32 AM Changeset in webkit [288218] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Merge r283283 - [ iOS Debug ] http/tests/xmlhttprequest/access-control-preflight-credential-sync.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=228305
<rdar://problem/81136891>
Reviewed by Alex Christensen.
Source/WebKit:
When a NetworkResourceLoader for a synchronous XHR gets aborted (e.g. because the connection to
the WebProcess was severed), NetworkResourceLoader::abort() would fail to call
sendReplyToSynchronousRequest() (sendReplyToSynchronousRequest was only called in didFailLoading() and
didFinishLoading()). As a result, we would hit the following assertion in the NetworkResourceLoader
destructor later on: ASSERT(!isSynchronous() !m_synchronousLoadData->delayedReply) No new tests, covered by existing test that I am unskipping.
- NetworkProcess/NetworkResourceLoader.cpp:
(WebKit::NetworkResourceLoader::abort):
LayoutTests:
Unskip test that should no longer be flaky.
- platform/ios-wk2/TestExpectations:
- 11:13 AM Changeset in webkit [288217] by
-
- 3 edits2 adds in trunk
Null check player in taintsOrigin
https://bugs.webkit.org/show_bug.cgi?id=234257
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-19
Reviewed by Youenn Fablet.
Source/WebCore:
Null check player in taintsOrigin.
Test: fast/media/createImageBitmap-from-video-crash.html
- html/ImageBitmap.cpp:
(WebCore::taintsOrigin):
LayoutTests:
- fast/media/createImageBitmap-from-video-crash-expected.txt: Added.
- fast/media/createImageBitmap-from-video-crash.html: Added.
- 10:38 AM Changeset in webkit [288216] by
-
- 9 edits1 copy in trunk/Source
Allow experimental feature names to be hidden in WebKitAdditions
https://bugs.webkit.org/show_bug.cgi?id=235163
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-19
Reviewed by Chris Dumez.
Source/WebKit:
- Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.cpp.erb:
Source/WebKitLegacy/mac:
- Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb:
Source/WTF:
- Scripts/GeneratePreferences.rb:
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- WTF.xcodeproj/project.pbxproj:
- wtf/CMakeLists.txt:
- wtf/ExperimentalFeatureNames.h: Copied from Source/WebKitLegacy/mac/Scripts/PreferencesTemplates/WebPreferencesExperimentalFeatures.mm.erb.
- 10:16 AM Changeset in webkit [288215] by
-
- 3 edits2 adds in trunk
Null check m_progressTracker in clearProvisionalLoad
https://bugs.webkit.org/show_bug.cgi?id=233063
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-19
Reviewed by Alex Christensen.
Source/WebCore:
Null check m_progressTracker in clearProvisionalLoad.
Test: fast/frames/contentFrame-disconnecting-crash.html
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::clearProvisionalLoad):
LayoutTests:
- platform/mac/fast/frames/contentFrame-disconnecting-crash-expected.txt: Added.
- platform/mac/fast/frames/contentFrame-disconnecting-crash.html: Added.
- 10:07 AM Changeset in webkit [288214] by
-
- 4 edits in trunk
Unreviewed, reverting r288147.
<rdar://87776311>
broke clean command line builds
Reverted changeset:
"Build WebKitSwift when building with make or build-webkit"
https://bugs.webkit.org/show_bug.cgi?id=235093
https://commits.webkit.org/r288147
- 9:45 AM Changeset in webkit [288213] by
-
- 2 edits in trunk/JSTests
Unreviewed, skip new test max-typed-array-length-toString.js when memory-limited
https://bugs.webkit.org/show_bug.cgi?id=235217
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-19
- stress/max-typed-array-length-toString.js:
- 9:15 AM Changeset in webkit [288212] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r283176 - [MSE][GStreamer] Don't create MediaSourceTrackGStreamer objects twice for the same track
https://bugs.webkit.org/show_bug.cgi?id=230829
Reviewed by Xabier Rodriguez-Calvar.
The existing code in
SourceBufferPrivateGStreamer::didReceiveInitializationSegment()
was not checking if the track already existing, creating and
immediately destroying a MediaSourceTrackGStreamer, which then crashed
on an assertion (ASSERTION FAILED: m_isRemoved).
This fixes the following two tests which were crashing with the former
assertion when running in Debug:
- media/media-source/media-mp4-h264-partial-abort.html
- media/media-source/media-source-abort-resets-parser.html
- platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp:
(WebCore::SourceBufferPrivateGStreamer::didReceiveInitializationSegment):
- 9:15 AM Changeset in webkit [288211] by
-
- 3 edits4 adds in releases/WebKitGTK/webkit-2.34
Merge r282260 - Nullptr crash in CompositeEditCommand::splitTreeToNode via InsertParagraphSeparatorCommand::doApply
https://bugs.webkit.org/show_bug.cgi?id=229276
Patch by Frédéric Wang <fwang@igalia.com> on 2021-09-09
Reviewed by Ryosuke Niwa.
Source/WebCore:
The loop in CompositeEditCommand::splitTreeToNode calls splitElement with the parent node as an
argument. This patch fixes a nullptr crash by following the rule of [1]: store the parent node as
a local smart pointer. Additionally, it ensures that editingIgnoresContent() returns false on the
parent so that the corresponding ASSERT in Position's constructor does not fail when
firstPositionInNode is called.
[1] https://lists.webkit.org/pipermail/webkit-dev/2020-September/031386.html
Tests: editing/execCommand/indent-input-in-image-crash.html
editing/execCommand/indent-input-in-image-editing-ignores-content-assert.html
- editing/CompositeEditCommand.cpp:
(WebCore::CompositeEditCommand::moveParagraphs): Store parent node in a smart pointer and exit loop
if it returns true for editingIgnoresContent.
LayoutTests:
Add regression tests for a crash and an assert in CompositeEditCommand::splitTreeToNode.
- editing/execCommand/indent-input-in-image-crash-expected.txt: Added.
- editing/execCommand/indent-input-in-image-crash.html: Added.
- editing/execCommand/indent-input-in-image-editing-ignores-content-assert-expected.txt: Added.
- editing/execCommand/indent-input-in-image-editing-ignores-content-assert.html: Added.
- 9:15 AM Changeset in webkit [288210] by
-
- 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebCore
Merge r282241 - Potential crash under CachedRawResource::didAddClient()
https://bugs.webkit.org/show_bug.cgi?id=230121
<rdar://82936913>
Reviewed by Alex Christensen.
In r280083, I tried to address this crash by holding a strong reference
to the SharedBuffer before calling forEachSegment() on it. However, the
crash is still happening after this fix.
My suspicion is that the SharedBuffer's internal m_segments vector gets
modified as we iterate over it. As a result, I am reverting r280083 and
iterating over a copy of m_segments in forEachSegment() instead.
No new tests, we haven't been able to reproduce.
- WebCore.xcodeproj/project.pbxproj:
- loader/cache/CachedRawResource.cpp:
(WebCore::CachedRawResource::didAddClient):
- platform/SharedBuffer.cpp:
(WebCore::SharedBuffer::forEachSegment const):
- 9:15 AM Changeset in webkit [288209] by
-
- 3 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit
Merge r282174 - Remove responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection
https://bugs.webkit.org/show_bug.cgi?id=230016
rdar://problem/80760179
Reviewed by Chris Dumez.
We've seen evidence that network process may be blocked in initializeNetworkProcess. Since we have a 3-second
responsiveness timer in NetworkProcessProxy::getNetworkProcessConnection, blocked network process will be killed
and a new network process will be launched for getting connection. However, the new network process may get
stuck in initializeNetworkProcess too. In this case, web process will crash for not being able to get network
process connection.
- UIProcess/Network/NetworkProcessProxy.cpp:
(WebKit::NetworkProcessProxy::getNetworkProcessConnection):
- UIProcess/WebsiteData/WebsiteDataStore.cpp: change RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE to
RELEASE_LOG_ERROR as the message is not printed in non-debug build.
(WebKit::WebsiteDataStore::getNetworkProcessConnection):
- 9:14 AM Changeset in webkit [288208] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r282075 - Nullptr crash in DeleteSelectionCommand::removeNodeUpdatingStates
https://bugs.webkit.org/show_bug.cgi?id=229279
Patch by Rob Buis <rbuis@igalia.com> on 2021-09-07
Reviewed by Ryosuke Niwa.
Source/WebCore:
Fix DeleteSelectionCommand::removeNodeUpdatingStates logic
to use m_endBlock rather than m_startBlock here.
Test: editing/deleting/delete-shadow-tree-crash.html
- editing/DeleteSelectionCommand.cpp:
(WebCore::DeleteSelectionCommand::removeNodeUpdatingStates):
LayoutTests:
- editing/deleting/delete-shadow-tree-crash-expected.txt: Added.
- editing/deleting/delete-shadow-tree-crash.html: Added.
- 9:14 AM Changeset in webkit [288207] by
-
- 3 edits2 adds in releases/WebKitGTK/webkit-2.34
Merge r282074 - Nullptr crash in CSSValue::cssText() via DeleteSelectionCommand::calculateTypingStyleAfterDelete
https://bugs.webkit.org/show_bug.cgi?id=229281
Patch by Rob Buis <rbuis@igalia.com> on 2021-09-07
Reviewed by Ryosuke Niwa.
Source/WebCore:
Null check the CSSValue in EditingStyle::init.
Test: editing/deleting/forward-delete-crash.html
- editing/EditingStyle.cpp:
(WebCore::EditingStyle::init):
LayoutTests:
- editing/deleting/forward-delete-crash-expected.txt: Added.
- editing/deleting/forward-delete-crash.html: Added.
- 9:14 AM Changeset in webkit [288206] by
-
- 6 edits in releases/WebKitGTK/webkit-2.34
Merge r281964 - [ BigSur arm64 Debug EWS ] ASSERTION FAILED: m_uncommittedState.state == State::Provisional
https://bugs.webkit.org/show_bug.cgi?id=229769
<rdar://problem/82645706>
Reviewed by Alex Christensen.
Source/WebKit:
I am unable to reproduce the crash but we know that we're crashing when committing the load
after a process-swap, because the WebPageProxy doesn't know that a provisional load is going
on. One possible explanation for this, and the most likely one is that the WebPageProxy got
a DidFailProvisionalLoadForFrame IPC from the current process while the provisional load is
proceeding in the new provisional process. We had logic in WebPageProxy::didFailProvisionalLoadForFrame()
to try and discard such IPC but the check was relying on the navigationID and was therefore
fragile. I updated the check in didFailProvisionalLoadForFrame() to ignore all
DidFailProvisionalLoadForFrame IPCs for the main frame from the current process when there
is a ProvisionalPageProxy, without relying on the navigationID. This should be more robust
and will hopefully fix this flaky crash.
No new tests, unskipped existing tests.
- UIProcess/ProvisionalPageProxy.cpp:
(WebKit::ProvisionalPageProxy::didFailProvisionalLoadForFrame):
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFailProvisionalLoadForFrame):
(WebKit::WebPageProxy::didFailProvisionalLoadForFrameShared):
- UIProcess/WebPageProxy.h:
LayoutTests:
Unskip test that should no longer be flakily crashing in debug.
- platform/mac-wk2/TestExpectations:
- 9:14 AM Changeset in webkit [288205] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Tools
Merge r288063 - Bug 234910 - jsc_fuz/wktr: crash with exotic settings
https://bugs.webkit.org/show_bug.cgi?id=234910
Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-15
Reviewed by Michael Saboff.
ASAN release build of WebKitTestRunner and DumpRenderTree may crash when loading the file
with content "<script>'a'+Math.floor()+'a';</script>" when the ASAN option
detect_stack_use_after_return=1 is set and when the JSC option slowPathAllocsBetweenGCs takes
to specific values. This is because the 'TestRendered' string of WTR::sendTestRenderedEvent
can be garbage collected. This patch fixes that issue by protecting that string. The fix has
been verified for all slowPathAllocsBetweenGCs values from 1 to 100.
- TestRunnerShared/ReftestFunctions.cpp:
(WTR::sendTestRenderedEvent): Protect "TestRendered" JSString from garbage collection until
the event is dispatched.
- 9:14 AM Changeset in webkit [288204] by
-
- 5 edits in releases/WebKitGTK/webkit-2.34/Source
Merge r287914 - Protect DocumentLoader when a reference to its members is used.
https://bugs.webkit.org/show_bug.cgi?id=233464
Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-12
Reviewed by Brady Eidson.
Source/WebCore:
No new tests, due to our infra (bug 127676).
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ensure that DocumentLoader loader
remains alive while DocumentLoader::m_mainDocumentError is used.
Source/WebKit:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFinishLoadForFrame): If the navigationID is obsolete, skip update
of the page load state to avoid failure of debug ASSERT.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad): Ensure that DocumentLoader loader
remains alive while DocumentLoader::m_request is used.
- 9:14 AM Changeset in webkit [288203] by
-
- 4 edits4 adds in releases/WebKitGTK/webkit-2.34
Merge r287604 - 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.
- 9:14 AM Changeset in webkit [288202] by
-
- 4 edits in releases/WebKitGTK/webkit-2.34
Merge r282365 - Crash under WebPage::runJavaScript()
https://bugs.webkit.org/show_bug.cgi?id=230223
<rdar://80172436>
Reviewed by Brady Eidson.
Source/WebKit:
The resolveFunction() was capturing
frame = makeRef(frame)and then callingframe->coreFrame()->script().
This would lead to a null dereference crash in the case where the core frame gets destroyed before the JS
promise gets resolved. Protecting the WebFrame does not keep the core Frame alive as WebFrame::m_coreFrame
is merely a WeakPtr. To address the issue, the lambda now also protects the core frame and uses it to get
the script controller.
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::runJavaScript):
Tools:
Add API test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/AsyncFunction.mm:
(-[AsyncJSUIDelegate initWithAlertHandler:]):
(-[AsyncJSUIDelegate webView:runJavaScriptAlertPanelWithMessage:initiatedByFrame:completionHandler:]):
(TestWebKitAPI::TEST):
- 9:12 AM Changeset in webkit [288201] by
-
- 36 edits in trunk
Improve computation of service worker FetchEvent.resultingClientId
https://bugs.webkit.org/show_bug.cgi?id=235107
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/clients-get-resultingClientId.https-expected.txt:
- web-platform-tests/service-workers/service-worker/clients-get.https-expected.txt:
- web-platform-tests/service-workers/service-worker/historical.https.any.serviceworker-expected.txt:
Source/WebCore:
We are now passing the reserved client ID generated by DocumentLoader to the generated document.
Previously, we would register a temporary ID that we would drop later on when creating a new document.
This allows to be closer to spec, though we need to handle the case of a document whose origin gets unique
due to CSP or sandboxing making a document origin unique.
We are also removing targetClientId, which was renamed in the spec to replacesClientId but is also not implemented in any browser yet.
Covered by existing tests.
- dom/DOMImplementation.cpp:
- dom/DOMImplementation.h:
- dom/Document.cpp:
- dom/Document.h:
- dom/ScriptExecutionContext.cpp:
- dom/ScriptExecutionContext.h:
- html/FTPDirectoryDocument.cpp:
- html/HTMLDocument.cpp:
- html/HTMLDocument.h:
- html/ImageDocument.cpp:
- html/MediaDocument.cpp:
- html/ModelDocument.cpp:
- html/PluginDocument.cpp:
- html/TextDocument.cpp:
- html/TextDocument.h:
- inspector/DOMPatchSupport.cpp:
- loader/DocumentLoader.cpp:
- loader/DocumentLoader.h:
- loader/DocumentWriter.cpp:
- loader/DocumentWriter.h:
- loader/SinkDocument.cpp:
- workers/service/FetchEvent.cpp:
- workers/service/FetchEvent.h:
- workers/service/FetchEvent.idl:
- workers/service/server/SWServer.cpp:
- xml/XMLHttpRequest.cpp:
Source/WebKit:
- WebProcess/Network/WebLoaderStrategy.cpp:
- WebProcess/Storage/WebSWClientConnection.cpp:
- 7:55 AM Changeset in webkit [288200] by
-
- 13 edits in trunk/Source
Fix -Wreturn-type and -Wunused-parameter warnings, January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235336
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-19
Reviewed by Adrian Perez de Castro.
Source/JavaScriptCore:
- wasm/WasmCompilationMode.h:
(JSC::Wasm::isOSREntry):
(JSC::Wasm::isAnyBBQ):
(JSC::Wasm::isAnyOMG):
Source/WebCore:
- Modules/push-api/PushCrypto.cpp:
(WebCore::PushCrypto::computeP256DHSharedSecret):
- bindings/js/JSCSSRuleCustom.cpp:
(WebCore::toJSNewlyCreated):
- contentextensions/DFABytecodeCompiler.cpp:
(WebCore::ContentExtensions::toSizeT):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForAnimationDirection):
(WebCore::valueForAnimationFillMode):
(WebCore::valueForAnimationPlayState):
- css/CSSPrimitiveValue.cpp:
(WebCore::lengthOfViewportPhysicalAxisForLogicalAxis):
- platform/graphics/ColorInterpolation.cpp:
(WebCore::fixupHueComponentsPriorToInterpolation):
- platform/graphics/ColorInterpolation.h:
(WebCore::interpolateColors):
- platform/graphics/filters/FEColorMatrix.cpp:
(WebCore::FEColorMatrix::createApplier const):
- platform/graphics/filters/FEComponentTransfer.cpp:
(WebCore::FEComponentTransfer::createApplier const):
- platform/graphics/filters/SourceGraphic.cpp:
(WebCore::SourceGraphic::createApplier const):
- 7:46 AM Changeset in webkit [288199] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
libvpx firstpass.c is not needed
https://bugs.webkit.org/show_bug.cgi?id=235354
Reviewed by Alexey Proskuryakov.
- libwebrtc.xcodeproj/project.pbxproj:
- 7:21 AM Changeset in webkit [288198] by
-
- 3 edits in trunk
[WPE][GTK] ENABLE_JOURNALD_LOG has weird value
https://bugs.webkit.org/show_bug.cgi?id=235339
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-19
Reviewed by Philippe Normand.
Clean up the code that checks for journald.
- Source/cmake/OptionsGTK.cmake:
- Source/cmake/OptionsWPE.cmake:
- 5:52 AM Changeset in webkit [288197] by
-
- 58 edits34 adds2 deletes in trunk
Callback functions / interfaces should use global object of its _value_ for errors and lifecycle
https://bugs.webkit.org/show_bug.cgi?id=232387
Reviewed by Geoff Garen.
LayoutTests/imported/w3c:
Import WPT tests from https://github.com/web-platform-tests/wpt/pull/32449.
The remaining failures are due to unrelated spec compat issue with calling cross-realm ProxyObject / JSBoundFunction.
- web-platform-tests/dom/events/EventListener-handleEvent-cross-realm-expected.txt: Added.
- web-platform-tests/dom/events/EventListener-handleEvent-cross-realm.html: Added.
- web-platform-tests/dom/events/resources/empty-document.html: Added.
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-expected.txt:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context-expected.txt:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html:
- web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html:
- web-platform-tests/dom/traversal/support/TreeWalker-acceptNode-filter-cross-realm-subframe.html: Removed.
- web-platform-tests/dom/traversal/support/empty-document.html: Added.
- web-platform-tests/domxpath/resolver-callback-interface-cross-realm-expected.txt: Added.
- web-platform-tests/domxpath/resolver-callback-interface-cross-realm.html: Added.
- web-platform-tests/domxpath/resources: Added.
- web-platform-tests/domxpath/resources/empty-document.html: Added.
- web-platform-tests/domxpath/resources/invalid_namespace_test.js: Added.
Source/WebCore:
Before this change, _relevant_ global object was used a) to throw errors in when
invoking callback function / interface, which isn't correct [1], and b) to call
canInvokeCallback() on (lifecycle), which doesn't match other browsers and not
quite useful: _relevant_ event loop stops if document is detached.
This patch:
- Removes [SkipCallbackInvokeCheck] extended attribute, while ensuring DOM traversal doesn't crash, which aligns WebKit with other browsers.
- Invokes canInvokeCallback() on the global object of _value_, which matches
Gecko but not Blink, which uses _incumbent_ realm to determine if callback
can still be invoked (doesn't make much sense to me).
- Throws callback invocation errors (e.g. non-callable method, revoked Proxy) in the global object of _value_, which matches the spec [1] and Blink, but not Gecko, which uses _current_ realm (of the method that was passed callback's _value_) to throw TypeErrors in.
That doesn't make much sense to me either: "registering" a callback and invoking
it could happen in different realms.
The spec on this is worded quite trickily (yet I think I've figured it out):
ECMA's "throw a TypeError exception" uses "running execution context" [2]
to create an object in, which is switched to the realm of _value_ per [1].
AudioWorklet changes are unobservable as worklets can't acquire a cross-realm method.
It's also nicer not to pass JSCallbackDataStrong around.
[1] https://webidl.spec.whatwg.org/#ref-for-prepare-to-run-script
[2] https://tc39.es/ecma262/#sec-ecmascript-function-objects-call-thisargument-argumentslist (step 4)
Tests: fast/dom/callback-function-detached-frame-intersection-observer.html
fast/dom/callback-function-detached-frame-mutation-observer.html
fast/dom/callback-function-detached-frame-performance-observer.html
fast/dom/callback-function-detached-frame-raf.html
fast/dom/callback-function-detached-frame-resize-observer.html
fast/dom/callback-function-detached-frame-to-blob.html
fast/dom/callback-interface-detached-frame-node-filter.html
fast/dom/callback-interface-detached-frame-xpathnsresolver.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm-null-browsing-context.html
imported/w3c/web-platform-tests/dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html
imported/w3c/web-platform-tests/dom/events/EventListener-handleEvent-cross-realm.html
imported/w3c/web-platform-tests/domxpath/resolver-callback-interface-cross-realm.html
- Modules/webaudio/AudioWorkletGlobalScope.cpp:
(WebCore::AudioWorkletGlobalScope::registerProcessor):
(WebCore::AudioWorkletGlobalScope::createProcessor):
- Modules/webaudio/AudioWorkletProcessor.cpp:
(WebCore::AudioWorkletProcessor::create):
(WebCore::AudioWorkletProcessor::AudioWorkletProcessor):
(WebCore::AudioWorkletProcessor::process):
(WebCore::AudioWorkletProcessor::setProcessCallback):
- Modules/webaudio/AudioWorkletProcessor.h:
(WebCore::AudioWorkletProcessor::processCallbackWrapper):
- bindings/js/JSAudioWorkletProcessorCustom.cpp:
(WebCore::JSAudioWorkletProcessor::visitAdditionalChildren):
- bindings/js/JSCallbackData.cpp:
(WebCore::JSCallbackData::invokeCallback):
- bindings/js/JSCallbackData.h:
(WebCore::JSCallbackData::~JSCallbackData):
(WebCore::JSCallbackDataStrong::JSCallbackDataStrong):
(WebCore::JSCallbackDataStrong::invokeCallback):
(WebCore::JSCallbackDataWeak::JSCallbackDataWeak):
(WebCore::JSCallbackDataWeak::invokeCallback):
(WebCore::JSCallbackData::globalObject): Deleted.
(WebCore::JSCallbackData::JSCallbackData): Deleted.
- bindings/js/JSDOMConvertCallbacks.h:
(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):
- bindings/js/JSDOMConvertXPathNSResolver.h:
(WebCore::Converter<IDLInterface<XPathNSResolver>>::convert):
- bindings/js/JSDOMGlobalObject.cpp:
(WebCore::JSC_DEFINE_HOST_FUNCTION):
- bindings/js/JSDOMWindowCustom.cpp:
(WebCore::jsDOMWindowInstanceFunction_openDatabaseBody):
- bindings/scripts/CodeGeneratorJS.pm:
(GenerateCallbackHeaderContent):
(GenerateCallbackImplementationContent):
(JSValueToNativeDOMConvertNeedsGlobalObject):
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/*: Updated.
- bindings/scripts/test/TestCallbackInterface.idl:
- dom/NodeFilter.idl:
- dom/Traversal.cpp:
(WebCore::NodeIteratorBase::acceptNode):
- workers/WorkerOrWorkletGlobalScope.h:
- worklets/PaintWorkletGlobalScope.cpp:
(WebCore::PaintWorkletGlobalScope::registerPaint):
- xml/CustomXPathNSResolver.idl:
LayoutTests:
- fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
- fast/dom/Geolocation/callback-to-deleted-context.html:
- fast/dom/Geolocation/resources/callback-to-deleted-context-inner1.html:
Aligns test assertions with behavior of Blink and Gecko.
- fast/dom/Geolocation/disconnected-frame-expected.txt:
- fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
- fast/dom/Geolocation/disconnected-frame-permission-denied.html:
- fast/dom/Geolocation/disconnected-frame.html:
Aligns tests assertions with their initial descriptions.
While other browsers don't call error callback for a disconnected frame,
it seems like a useful thing to do.
- fast/events/detached-svg-parent-window-events-expected.txt:
- fast/events/detached-svg-parent-window-events.html:
Aligns test assertion with other browsers.
There is no reason why eval() wouldn't throw an error given the <iframe> is connected.
- fast/frames/resources/wrong-global-object.html: Removed.
- fast/frames/frame-window-as-callback-expected.txt:
- fast/frames/frame-window-as-callback.html:
Aligns test assertions with the spec and Blink / Gecko.
- fast/dom/callback-function-detached-frame-intersection-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-intersection-observer.html: Added.
- fast/dom/callback-function-detached-frame-mutation-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-mutation-observer.html: Added.
- fast/dom/callback-function-detached-frame-performance-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-performance-observer.html: Added.
- fast/dom/callback-function-detached-frame-raf-expected.txt: Added.
- fast/dom/callback-function-detached-frame-raf.html: Added.
- fast/dom/callback-function-detached-frame-resize-observer-expected.txt: Added.
- fast/dom/callback-function-detached-frame-resize-observer.html: Added.
- fast/dom/callback-function-detached-frame-to-blob-expected.txt: Added.
- fast/dom/callback-function-detached-frame-to-blob.html: Added.
- fast/dom/callback-interface-detached-frame-node-filter-expected.txt: Added.
- fast/dom/callback-interface-detached-frame-node-filter.html: Added.
- fast/dom/callback-interface-detached-frame-xpathnsresolver-expected.txt: Added.
- fast/dom/callback-interface-detached-frame-xpathnsresolver.html: Added.
- fast/dom/resources/callback-function-detached-frame-common.js: Added.
- fast/dom/resources/callback-function-detached-frame-intersection-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-mutation-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-performance-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-raf-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-resize-observer-iframe.html: Added.
- fast/dom/resources/callback-function-detached-frame-to-blob-iframe.html: Added.
- fast/dom/resources/callback-interface-detached-frame-node-filter-iframe.html: Added.
- fast/dom/resources/callback-interface-detached-frame-xpathnsresolver-iframe.html: Added.
- platform/mac-wk1/TestExpectations:
- platform/win/TestExpectations:
- platform/wincairo/TestExpectations:
IntersectionObserver / ResizeObserver are not enabled on these platforms.
- 5:43 AM Changeset in webkit [288196] by
-
- 4 edits2 adds in trunk
[:has() pseudo-class] Compute specificity correctly
https://bugs.webkit.org/show_bug.cgi?id=235351
Reviewed by Alexey Shvayka.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/has-complexity.html:
Fix specificity used in this test.
- web-platform-tests/css/selectors/has-specificity-expected.txt: Added.
- web-platform-tests/css/selectors/has-specificity.html: Added.
Source/WebCore:
"The specificity of an ':is()', ':not()', or ':has()' pseudo-class is replaced by
the specificity of the most specific complex selector in its selector list argument."
https://www.w3.org/TR/selectors-4/#specificity-rules
Test: imported/w3c/web-platform-tests/css/selectors/has-specificity.html
- css/CSSSelector.cpp:
(WebCore::simpleSelectorSpecificityInternal):
Compute :has() specificity like :is() and :not().
- 5:06 AM Changeset in webkit [288195] by
-
- 2 edits in trunk/LayoutTests
Enable accessibility/mac/selection-element-tabbing-to-link.html since it is not flaky any longer.
https://bugs.webkit.org/show_bug.cgi?id=235333
Reviewed by Darin Adler.
- platform/mac/TestExpectations:
- 4:59 AM Changeset in webkit [288194] by
-
- 4 edits4 adds in releases/WebKitGTK/webkit-2.34
Merge r288078 - database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open
UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h:
(WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
- 4:59 AM Changeset in webkit [288193] by
-
- 6 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r284576 - We should watch isHavingABadTime if we read from the structureCache
https://bugs.webkit.org/show_bug.cgi?id=232019
Reviewed by Yusuke Suzuki.
We should lock the structure cache when we clear it, and the compiler thread should
watch isHavingABadTime in the case that the cache might get cleared.
- dfg/DFGAbstractInterpreterInlines.h:
(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):
- dfg/DFGConstantFoldingPhase.cpp:
(JSC::DFG::ConstantFoldingPhase::foldConstants):
- runtime/JSGlobalObject.cpp:
(JSC::JSGlobalObject::haveABadTime):
- runtime/StructureCache.cpp:
(JSC::StructureCache::clear):
- runtime/StructureCache.h:
(JSC::StructureCache::clear): Deleted.
- 4:59 AM Changeset in webkit [288192] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r284699 - canDoFastSpread should also check that the Structure is from the global object we're watching
https://bugs.webkit.org/show_bug.cgi?id=231976
<rdar://84340372>
Reviewed by Keith Miller.
Just reorder the checks for clarity.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::canDoFastSpread):
- 4:55 AM Changeset in webkit [288191] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r284506 - canDoFastSpread should also check that the Structure is from the global object we're watching
https://bugs.webkit.org/show_bug.cgi?id=231976
<rdar://84340372>
Reviewed by Keith Miller.
- dfg/DFGGraph.cpp:
(JSC::DFG::Graph::canDoFastSpread):
- 4:53 AM Changeset in webkit [288190] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r284585 - [JSC] ArithAbs should care about INT32_MIN
https://bugs.webkit.org/show_bug.cgi?id=232051
rdar://84338648
Reviewed by Michael Saboff.
ArithAbs (without overflow check) can return negative value if the input is INT32_MIN with Int32Use.
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- 4:53 AM Changeset in webkit [288189] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r284573 - Add missing overflow checks to DFGIntegerRangeOptimizationPhase::isEquivalentTo()
https://bugs.webkit.org/show_bug.cgi?id=232024
Reviewed by Tadeu Zagallo.
Added overflow check before comparing for equality.
- dfg/DFGIntegerRangeOptimizationPhase.cpp:
- 4:53 AM Changeset in webkit [288188] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r284467 - Wasm Table can take arbitrary default value
https://bugs.webkit.org/show_bug.cgi?id=231933
rdar://84327812
Reviewed by Robin Morisset.
- wasm/WasmTable.cpp:
(JSC::Wasm::Table::grow):
- 4:53 AM Changeset in webkit [288187] by
-
- 2 edits in releases/WebKitGTK/webkit-2.34/Source/WebKit
Merge r283386 - Protect WebFrame during invalidatePolicyListener()
https://bugs.webkit.org/show_bug.cgi?id=229981
<rdar://problem/82807413>
Reviewed by Alex Christensen.
- WebProcess/WebPage/WebFrame.cpp:
(WebKit::WebFrame::invalidatePolicyListeners): Protect the WebFrame while
policy handlers are run.
- 4:41 AM Changeset in webkit [288186] by
-
- 7 edits in releases/WebKitGTK/webkit-2.34/Source/JavaScriptCore
Merge r285149 - [JSC] LLIntCallee should have two replacements
https://bugs.webkit.org/show_bug.cgi?id=228552
rdar://81217357
Reviewed by Saam Barati.
LLIntCallee can be used for signaling memory and bounds-checking memory.
Thus it should have two replacements for each mode.
- wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::work):
- wasm/WasmCallee.h:
(JSC::Wasm::Callee::setOSREntryCallee):
- wasm/WasmOMGForOSREntryPlan.cpp:
(JSC::Wasm::OMGForOSREntryPlan::work):
- wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::work):
- wasm/WasmPlan.cpp:
(JSC::Wasm::Plan::updateCallSitesToCallUs):
- wasm/WasmSlowPaths.cpp:
(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::WASM_SLOW_PATH_DECL):
- 3:38 AM Changeset in webkit [288185] by
-
- 9 edits in trunk/Source
[Cocoa] Do not change preferred AudioSession buffer size when VPIO is running
https://bugs.webkit.org/show_bug.cgi?id=235317
<rdar://87709485>
Reviewed by Eric Carlson.
Source/WebCore:
Add infra to be notified when audio capture unit is stopped.
Add a check to return early with microphone sample callback if microphone samples are not to be processed.
Manually tested.
- platform/mediastream/mac/BaseAudioSharedUnit.cpp:
- platform/mediastream/mac/BaseAudioSharedUnit.h:
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
- platform/mediastream/mac/CoreAudioCaptureSource.h:
Source/WebKit:
When we stop capturing, we might still use the VPIO unit to render audio.
In that case, it might be problematic to increase the preferred buffer size as:
- Audio unit might stop running, hence stopping audio rendering
- Increasing the preferred buffer size might increase latency which is not a good thing in VPIO usecases.
- GPUProcess/media/RemoteAudioSessionProxy.cpp:
- GPUProcess/media/RemoteAudioSessionProxyManager.cpp:
- GPUProcess/media/RemoteAudioSessionProxyManager.h:
- 1:28 AM Changeset in webkit [288184] by
-
- 4 edits in trunk
[css-flexbox] Add support for intrinsic sizes to the flex shorthand
https://bugs.webkit.org/show_bug.cgi?id=235314
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/parsing/flex-shorthand-expected.txt: Replaced FAIL by PASS expectations.
Source/WebCore:
In r288113 we added support for intrinsic sizes in the flex-basis property. However the flex-basis property
can be also set via the flex shorthand. The flex shorthand was still not accepting the intrinsic sizes as
valid values. That's why the code that was checking idents in flex-basis was refactored so we do perform
now the very same test when parsing flex-basis and flex.
This allows WebKit to pass 8 additional WPT subtests.
- css/parser/CSSPropertyParser.cpp:
(WebCore::isFlexBasisIdent): Refactored from consumeFlexBasis. Checks whether a given ident is a valid keyword
for the flex-basis property.
(WebCore::consumeFlexBasis): Use isFlexBasisIdent.
(WebCore::CSSPropertyParser::consumeFlex): Ditto.
- 12:37 AM Changeset in webkit [288183] by
-
- 18 edits2 adds in trunk
filterRegion and outsets of referenced SVG filter are calculated incorrectly
https://bugs.webkit.org/show_bug.cgi?id=235338
Reviewed by Darin Adler.
Source/WebCore:
Calculate the filterRegion of the referenced SVGFilter by calling
SVGLengthContext::resolveRectangle() given the targetBoundingBox of the
CSSFilter.
There is no need to set the filterRegion of the referenced SVG filter
from CSSFilter::setFilterRegion() since its filterRegion is the union
of the filterRegions all its referenced SVGFilters.
Calculate the outsets of the SVGFilter by looping through its expression
of FilterEffects.
Test: css3/filters/reference-filter-outsets.html
- platform/graphics/filters/FEDropShadow.cpp:
(WebCore::FEDropShadow::outsets const):
- platform/graphics/filters/FEDropShadow.h:
- platform/graphics/filters/FEGaussianBlur.cpp:
(WebCore::FEGaussianBlur::outsets const):
- platform/graphics/filters/FEGaussianBlur.h:
- platform/graphics/filters/FEOffset.cpp:
(WebCore::FEOffset::outsets const):
- platform/graphics/filters/FEOffset.h:
- platform/graphics/filters/Filter.h:
- platform/graphics/filters/FilterFunction.h:
(WebCore::FilterFunction::outsets const):
- rendering/CSSFilter.cpp:
(WebCore::createSVGFilter):
(WebCore::CSSFilter::setFilterRegion):
(WebCore::CSSFilter::outsets const):
- rendering/CSSFilter.h:
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::beginFilterEffect):
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
(WebCore::SVGFilter::outsets const):
(WebCore::SVGFilter::lastEffect const): Deleted.
- svg/graphics/filters/SVGFilter.h:
LayoutTests:
- css3/filters/reference-filter-outsets-expected.html: Added.
- css3/filters/reference-filter-outsets.html: Added.
- css3/filters/reference-filter-set-filter-regions-expected.html:
- css3/filters/reference-filter-set-filter-regions.html:
The original expected page is wrong. To test the referenced SVG filter
correctly, the <div> element needs to move such that all its outsets are
not truncated.
- platform/win/TestExpectations:
Jan 18, 2022:
- 11:51 PM Changeset in webkit [288182] by
-
- 2 edits in trunk/LayoutTests
Unreviewed gardening of GPU Process bot tests.
- gpu-process/TestExpectations:
- 9:15 PM Changeset in webkit [288181] by
-
- 2 edits in trunk/Source/WebCore
ColorTypes are no longer constexpr in debug builds due to std::isnan() in range assertion
https://bugs.webkit.org/show_bug.cgi?id=235346
Unreviewed build fix.
Replace std::isnan() in color type range assertions with a constexpr variant using the x != x
construction for detection.
- platform/graphics/ColorTypes.h:
(WebCore::constexprIsNaN):
(WebCore::assertInRange):
- 9:13 PM Changeset in webkit [288180] by
-
- 8 edits2 adds in trunk
Loupe sometimes flips to the bottom of the page when dragging the end of a selection to the top of a page with selection flipping.
https://bugs.webkit.org/show_bug.cgi?id=235220
Reviewed by Tim Horton.
Source/WebCore:
Test: fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html
When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.
- platform/graphics/FloatPoint.cpp:
(WebCore::FloatPoint::constrainedWithin const):
- platform/graphics/FloatPoint.h:
- platform/graphics/IntPoint.cpp:
(WebCore::IntPoint::constrainedWithin const):
- platform/graphics/IntPoint.h:
Source/WebKit:
When selecting on an EPUB in books, if you had a selection near the top of the page,
and you dragged the end of the selection past the start and into the upper margin, sometimes
this would result in the selection ending up on the previous page of content, which would result
in the loupe being pushed to the bottom of the page (because the selection was on the previous page
at the bottom), which is incorrect. The most solid way to keep this from happening is to clamp the selection
to the unobscured content rect, which will keep selection from reaching back to the previous page.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::rangeForPointInRootViewCoordinates):
LayoutTests:
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow-expected.txt: Added.
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-overflow.html: Added.
- 7:29 PM Changeset in webkit [288179] by
-
- 2 edits in trunk/Source/WTF
Enable form.requestSubmit()
https://bugs.webkit.org/show_bug.cgi?id=235342
Reviewed by Darin Adler.
Enable form.requestSubmit(). This was fully implemented via Bug 197958 and it passes the WPT tests but
we never actually enabled it.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 7:11 PM Changeset in webkit [288178] by
-
- 14 edits2 adds in trunk
REGRESSION (r264352): Mail compose body field does not avoid the keyboard when scrolling after focus
https://bugs.webkit.org/show_bug.cgi?id=235331
rdar://79296770
Reviewed by Tim Horton.
Source/WebKit:
After r264352 added the call to
_page->scheduleFullEditorStateUpdate();during element focus, scrolling to
reveal the selection in the focused body field in Mail stopped working. This is because Mail:
- Sets
firstResponderKeyboardAvoidanceEnabledto NO on the WKScrollView, which prevents automatic inset
adjustment logic in UIKit from taking effect and adding the keyboard height to the bottom system content
inset.
- Manually sets
-contentScrollInseton the WKScrollView during a UIKeyboardDidShowNotification, which occurs
after we've already attempted to zoom to the selection.
...combined with the fact that without the call to
scheduleFullEditorStateUpdate(), the next EditorState
would've arrived only after the keyboard animation finished.
The end result is that we don't end up avoiding the keyboard at all when focusing the body field in Mail
compose. While rdar://87733414 tracks refactoring logic in WebKit2 Mail compose to ensure that the content
scroll insets on WKScrollView are applied during UIKeyboardWillShowNotification instead of after the keyboard
has finished animating in, this patch provides a short-term workaround by restoring pre-r264352 behavior, with
respect to when the element is scrolled into view.
Test: editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html
- Platform/spi/ios/UIKitSPI.h:
Add a declaration for the
-firstResponderKeyboardAvoidanceEnabledSPI property on non-internal iOS SDKs.
- UIProcess/API/ios/WKWebViewIOS.mm:
(-[WKWebView _keyboardDidShow:]):
Plumb this through to the WKContentView, so we can zoom/scroll to the focused element if needed.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WKContentViewInteraction.h:
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView cleanUpInteraction]):
(-[WKContentView _keyboardDidShow]):
If we previously deferred the call to
-_zoomToRevealFocusedElementdue to the keyboard still animating in,
schedule a call to it now on a 0-delay timer; this delay is necessary to ensure that this zoom occurs *after*
Mail has already set the content inset, which also happens underneath a "KeyboardDidShow" notification.
(-[WKContentView _zoomToRevealFocusedElement]):
In the case where the (presumably internal) client has set
firstResponderKeyboardAvoidanceEnabledto NO and
the keyboard is animating in, defer the actual call into the web view to-_zoomToRevealFocusedElementuntil
after the keyboard animation is finished. This ensures compatibility with existant logic in Mail for manually
setting the content scroll inset on the WKScrollView after the keyboard animation is complete.
(-[WKContentView resetShouldZoomToFocusRectAfterShowingKeyboard]):
(-[WKContentView _elementDidBlur]):
Tools:
Add support for a UIScriptController hook to override
firstResponderKeyboardAvoidanceEnabledon WKScrollView.
See LayoutTests for more details.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::setScrollViewKeyboardAvoidanceEnabled):
- WebKitTestRunner/ios/TestControllerIOS.mm:
(WTR::TestController::platformResetStateToConsistentValues):
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::setScrollViewKeyboardAvoidanceEnabled):
LayoutTests:
Add a layout test that (at least) exercises the newly added codepath, where focusing an editor when the scroll
view hasfirstResponderKeyboardAvoidanceEnabledset to NO will still allow us to scroll to the selection.
- editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled-expected.txt: Added.
- editing/selection/ios/scroll-to-reveal-selection-with-keyboard-avoidance-disabled.html: Added.
- resources/ui-helper.js:
(window.UIHelper.setScrollViewKeyboardAvoidanceEnabled):
- 6:37 PM Changeset in webkit [288177] by
-
- 1 copy in tags/Safari-613.1.14.0.2
Tag Safari-613.1.14.0.2.
- 6:34 PM Changeset in webkit [288176] by
-
- 2 edits in branches/safari-613.1.14.0-branch/Source/WebKit
Revert r287997. rdar://problem/87274541
- 6:32 PM Changeset in webkit [288175] by
-
- 9 edits in branches/safari-613.1.14.0-branch/Source
Versioning.
WebKit-7613.1.14.0.2
- 6:31 PM Changeset in webkit [288174] by
-
- 14 edits in trunk
When inserting a selected <option> in a <select> element, its selected state should remain
https://bugs.webkit.org/show_bug.cgi?id=235237
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline WPT tests that are now passing.
- web-platform-tests/html/semantics/forms/the-select-element/inserted-or-removed-expected.txt:
- web-platform-tests/html/semantics/forms/the-select-element/select-validity-expected.txt:
Source/WebCore:
When inserting a selected <option> in a <select> element, its selected state should remain and other selected
options should be de-selected.
This is as per the specification [1] that says:
"""
If the multiple attribute is absent, whenever an option element in the select element's list of options has
its selectedness set to true, and whenever an option element with its selectedness set to true is added to
the select element's list of options, the user agent must set the selectedness of all the other option
elements in its list of options to false.
"""
Firefox and Chrome correctly implement this.
WebKit was trying to implement this logic from inside HTMLOptionElement::insertedIntoAncestor(). However,
there were several issues with that:
- It was checking m_isSelected after calling updateValidity(). updateValidity() would call recalcListItems(), which could update m_isSelected. This part could have been addressed by saving m_isSelected before calling updateValidity() but would not have addressed the following issues.
- In the case where an <optgroup> containing several <option> elements is inserted into a <select>, insertedIntoAncestor() gets called from each options being inserted. When calling insertedIntoAncestor() from the first <option> and if this <option> is selected, it would deselect all following <option> elements even though insertedIntoAncestor() has not yet been called for them. As a result, we would end up selecting the first inserted <option> that had the selected state, instead of the last one.
- When more than one <option> is inserted at once, the current implementation would be really inefficient as every <option> would dirty and recalc the item list from insertedIntoAncestor().
To address these issues, I got rid of HTMLOptionElement::insertedIntoAncestor(). Instead we now deal with
<option> insertion from inside HTMLSelectElement::childrenChanged() and HTMLOptGroupElement::childrenChanged().
Using the parent element's childrenChanged() is useful because it only gets called once when several <option>
elements are inserted at once. I added logic to those childrenChanged() functions to keep track of the last
selected <option> element being inserted. Then, after we recalc the item list (which may change <option>s'
selected state, I make sure to this <option> is selected. This is similar to the logic that was previously
in HTMLOptionElement::insertedIntoAncestor().
[1] https://html.spec.whatwg.org/multipage/form-elements.html#the-select-element
No new tests, rebaselined existing tests.
- dom/CharacterData.cpp:
(WebCore::makeChildChange):
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeAllChildrenWithScriptAssertion):
(WebCore::makeChildChangeForRemoval):
(WebCore::makeChildChangeForInsertion):
(WebCore::ContainerNode::childrenChanged):
(WebCore::affectsElements): Deleted.
- dom/ContainerNode.h:
(WebCore::ContainerNode::ChildChange::isInsertion const):
(WebCore::ContainerNode::ChildChange::affectsElements const):
- Add 'siblingChanged' member to ChildChange in addition to the previous / next siblings. This is useful for HTMLOptGroupElement and HTMLSelectElement where we want to know if a newly inserted child is an HTMLOptionElement (and if it is selected).
- Move affectsElements() to the header so that it can be reused by HTMLOptGroupElement and HTMLOptionElement.
- html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::childrenChanged):
- html/HTMLOptGroupElement.h:
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::insertedIntoAncestor): Deleted.
- html/HTMLOptionElement.h:
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::optionToSelectFromChildChangeScope): Added.
(WebCore::HTMLSelectElement::childrenChanged):
LayoutTests:
Rebaseline WPT test that is now passing.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-select-element/select-validity-expected.txt:
- 5:48 PM Changeset in webkit [288173] by
-
- 1 copy in tags/Safari-613.1.14.0.1
Tag Safari-613.1.14.0.1.
- 5:45 PM Changeset in webkit [288172] by
-
- 1 copy in tags/Safari-613.1.14.1.2
Tag Safari-613.1.14.1.2.
- 5:44 PM Changeset in webkit [288171] by
-
- 1 delete in tags/Safari-613.1.14.1.2
Remove tag.
- 5:43 PM Changeset in webkit [288170] by
-
- 1 edit in branches/safari-613.1.14.1-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj
Revert "Apply patch. rdar://problem/86298747"
This reverts commit r288142.
- 5:29 PM Changeset in webkit [288169] by
-
- 1 copy in tags/Safari-613.1.14.1.2
Tag Safari-613.1.14.1.2.
- 5:18 PM Changeset in webkit [288168] by
-
- 31 edits in trunk
Replace all uses of HAVE_ACCESSIBILITY with ENABLE_ACCESSIBILITY
https://bugs.webkit.org/show_bug.cgi?id=235335
Reviewed by Ross Kirsling.
Source/WTF:
Remove the setting of HAVE_ACCESSIBILITY. All code is now using ENABLE_ACCESSIBILITY
instead.
- wtf/PlatformHave.h:
Tools:
Does a find/replace in Tools to move from HAVE_ACCESSIBILITY to ENABLE_ACCESSIBILITY. The
same is done with HAVE(ACCESSIBILITY) with instances replaced by ENABLE(ACCESSIBILITY).
- DumpRenderTree/AccessibilityController.cpp:
- DumpRenderTree/AccessibilityController.h:
- DumpRenderTree/AccessibilityUIElement.cpp:
- DumpRenderTree/AccessibilityUIElement.h:
- MiniBrowser/wpe/main.cpp:
(main):
- WebKitTestRunner/InjectedBundle/AccessibilityController.h:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/InjectedBundle.cpp:
(WTR::InjectedBundle::beginTesting):
(WTR::InjectedBundle::done):
- WebKitTestRunner/InjectedBundle/InjectedBundle.h:
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::didClearWindowForFrame):
- WebKitTestRunner/InjectedBundle/atk/AccessibilityControllerAtk.cpp:
- WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.cpp:
- WebKitTestRunner/InjectedBundle/atk/AccessibilityNotificationHandlerAtk.h:
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.cpp:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.h:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
- WebKitTestRunner/InjectedBundle/win/AccessibilityControllerWin.cpp:
- WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:
- wpe/backends/PlatformWPE.cmake:
- wpe/backends/ViewBackend.cpp:
(WPEToolingBackends::ViewBackend::dispatchInputKeyboardEvent):
- wpe/backends/ViewBackend.h:
- wpe/backends/atk/ViewBackendAtk.cpp:
- wpe/backends/atk/WebKitAccessibleApplication.cpp:
- wpe/backends/atk/WebKitAccessibleApplication.h:
- 5:18 PM Changeset in webkit [288167] by
-
- 2 edits in trunk/Source/WebCore
Fix -Wmultichar warnings in HEVCUtilities.cpp
https://bugs.webkit.org/show_bug.cgi?id=235337
Patch by Michael Catanzaro <Michael Catanzaro> on 2022-01-18
Reviewed by Darin Adler.
- platform/graphics/HEVCUtilities.cpp:
(WebCore::parseHEVCDecoderConfigurationRecord):
- 5:16 PM Changeset in webkit [288166] by
-
- 1 copy in tags/Safari-613.1.14.2.1
Tag Safari-613.1.14.2.1.
- 5:15 PM Changeset in webkit [288165] by
-
- 1 copy in tags/Safari-613.1.14.3.1
Tag Safari-613.1.14.3.1.
- 5:13 PM Changeset in webkit [288164] by
-
- 2 edits in trunk/Source/WTF
Unreviewed, disable jit-heap on non Darwin
On Linux etc., they have completely different steps to allocate executable memory.
Thus, the current jit-heap implementation does not work well. Temporarily disable it
on non Darwin OSes.
- wtf/PlatformUse.h:
- 4:50 PM Changeset in webkit [288163] by
-
- 3 edits in trunk/Source/JavaScriptCore
[JSC] Remove Wasm::Table's m_mask
https://bugs.webkit.org/show_bug.cgi?id=235329
Reviewed by Mark Lam.
This patch removes m_mask in Wasm::Table.
The mask is removed in the other places, but forgot
removing that in Wasm::Table.
- wasm/WasmTable.cpp:
(JSC::Wasm::Table::setLength):
(JSC::Wasm::Table::clear):
(JSC::Wasm::Table::set):
(JSC::Wasm::Table::get const):
(JSC::Wasm::FuncRefTable::setFunction):
(JSC::Wasm::FuncRefTable::function const):
(JSC::Wasm::FuncRefTable::instance const):
- wasm/WasmTable.h:
(JSC::Wasm::Table::offsetOfLength):
(JSC::Wasm::Table::offsetOfMask): Deleted.
(JSC::Wasm::Table::mask const): Deleted.
- 4:27 PM Changeset in webkit [288162] by
-
- 12 edits in trunk
input.labels doesn't work inside shadow DOM
https://bugs.webkit.org/show_bug.cgi?id=235326
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline test that now has one extra passing subtest. This subtest was already passing in both
Gecko and Blink.
- web-platform-tests/html/semantics/forms/the-label-element/label-attributes.sub-expected.txt:
Source/WebCore:
HTMLCollection and LiveNodeList had the concept of "isRootedAtDocument" which meant that
we used the document as root when doing the traversal to find Nodes that belong to the
list/collection. However, when the list's owner is inside a shadow tree, this didn't
work as expected since we would traverse the main document's DOM tree instead of the
shadow tree. To address the issue, I now renamed "isRootedAtDocument" to
"isRootedAtTreeScope" and updated rootNode() to return the owner's tree scope's root
node, instead of the owner's document.
No new tests, rebaselined existing test.
- dom/Document.cpp:
(WebCore::Document::registerNodeListForInvalidation):
(WebCore::Document::registerCollection):
(WebCore::Document::unregisterCollection):
- dom/LiveNodeList.h:
(WebCore::LiveNodeList::rootNode const):
- dom/NameNodeList.h:
- dom/NodeRareData.h:
(WebCore::NodeListsNodeData::adoptDocument):
- html/HTMLCollection.cpp:
(WebCore::HTMLCollection::rootTypeFromCollectionType):
- html/HTMLCollection.h:
(WebCore::HTMLCollection::rootNode const):
(WebCore::HTMLCollection::isRootedAtTreeScope const):
(WebCore::HTMLCollection::isRootedAtDocument const): Deleted.
- html/LabelsNodeList.h:
- html/RadioNodeList.cpp:
(WebCore::RadioNodeList::RadioNodeList):
- html/RadioNodeList.h:
- 4:25 PM Changeset in webkit [288161] by
-
- 5 edits in trunk/Source/WebKit
Unreviewed, reverting r288019.
https://bugs.webkit.org/show_bug.cgi?id=235341
Introduced debug assert
Reverted changeset:
"Inject Launch Services database before NSApplication is
initialized"
https://bugs.webkit.org/show_bug.cgi?id=235186
https://commits.webkit.org/r288019
- 4:15 PM Changeset in webkit [288160] by
-
- 9 edits in branches/safari-613.1.14.3-branch/Source
Versioning.
WebKit-7613.1.14.3.1
- 4:13 PM Changeset in webkit [288159] by
-
- 9 edits in trunk
[LFC][Integration] Use IFC for preferred width computation for inline boxes
https://bugs.webkit.org/show_bug.cgi?id=232620
Reviewed by Antti Koivisto.
Source/WebCore:
- rendering/RenderBlockFlow.cpp:
LayoutTests:
- fast/text/hanging-punctuation-variable-font-size-expected.html: Adjust incorrect expected result (Both Chrome and Firefox agree).
- platform/ios/fast/css/word-space-extra-expected.txt: progression
- platform/mac/fast/css/word-space-extra-expected.txt: progression (matching Chrome).
- platform/mac/fast/text/international/003-expected.txt: progression (matching Chrome).
- platform/mac/fast/text/wbr-expected.txt: progression.
- 4:11 PM Changeset in webkit [288158] by
-
- 9 edits in branches/safari-613.1.14.2-branch/Source
Versioning.
WebKit-7613.1.14.2.1
- 4:00 PM Changeset in webkit [288157] by
-
- 1 copy in branches/safari-613.1.14.3-branch
New branch.
- 3:56 PM Changeset in webkit [288156] by
-
- 4 edits in trunk/Source
[GTK] Implement native form validation bubbles for GTK4
https://bugs.webkit.org/show_bug.cgi?id=235303
Reviewed by Carlos Garcia Campos.
The gtk port using gtk3 supports a native validation bubble for the form validation
since r288104. This change brings the same support for gtk4.
Source/WebCore:
The same features of ValidationBubble are implemented using gtk4 API.
No new tests since existing tests cover this change.
- platform/gtk/ValidationBubbleGtk.cpp:
(WebCore::ValidationBubble::ValidationBubble):
(WebCore::ValidationBubble::invalidate):
(WebCore::ValidationBubble::showRelativeTo):
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp: Enable pageConfiguration.validationMessageClient for all gtk backends
(WebKit::m_appHighlightsVisible):
- 3:53 PM Changeset in webkit [288155] by
-
- 9 edits in branches/safari-613.1.14.1-branch/Source
Versioning.
WebKit-7613.1.14.1.2
- 3:40 PM Changeset in webkit [288154] by
-
- 2 edits in trunk/PerformanceTests
Speedometer should be locally runnable on Windows
https://bugs.webkit.org/show_bug.cgi?id=235334
Reviewed by Don Olmstead.
It's currently not possible to run Speedometer locally on Windows (even using Chrome or Firefox):
the EmberJS-TodoMVC test fails its subresource integrity checks due to line endings.
- .gitattributes:
Ensure two JS files never include CRLFs.
- 2:40 PM Changeset in webkit [288153] by
-
- 1 copy in tags/Safari-613.1.12.1.10
Tag Safari-613.1.12.1.10.
- 2:39 PM Changeset in webkit [288152] by
-
- 4 edits4 adds in branches/safari-613.1.12.1-branch
Cherry-pick r288078. rdar://problem/87736072
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 2:38 PM Changeset in webkit [288151] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.10
- 2:38 PM Changeset in webkit [288150] by
-
- 2 edits in branches/safari-613.1.12.1-branch/Source/ThirdParty/ANGLE
Revert "Cherry-pick r288041. rdar://problem/86457081"
This reverts commit r288044.
- 2:18 PM Changeset in webkit [288149] by
-
- 107 edits29 moves6 adds29 deletes in trunk/LayoutTests
[GLIB] Update test baselines after r288070 allowed LFC integration to work with the complex text path.
https://bugs.webkit.org/show_bug.cgi?id=235330
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-18
- platform/glib/fast/backgrounds/border-radius-split-background-expected.txt: Renamed from LayoutTests/platform/wpe/fast/backgrounds/border-radius-split-background-expected.txt.
- platform/glib/fast/backgrounds/border-radius-split-background-image-expected.txt: Renamed from LayoutTests/platform/wpe/fast/backgrounds/border-radius-split-background-image-expected.txt.
- platform/glib/fast/block/basic/013-expected.txt: Renamed from LayoutTests/platform/wpe/fast/block/basic/013-expected.txt.
- platform/glib/fast/block/float/br-with-clear-2-expected.txt: Renamed from LayoutTests/platform/wpe/fast/block/float/br-with-clear-2-expected.txt.
- platform/glib/fast/block/margin-collapse/block-inside-inline/001-expected.txt: Renamed from LayoutTests/platform/wpe/fast/block/margin-collapse/block-inside-inline/001-expected.txt.
- platform/glib/fast/block/margin-collapse/block-inside-inline/005-expected.txt: Renamed from LayoutTests/platform/wpe/fast/block/margin-collapse/block-inside-inline/005-expected.txt.
- platform/glib/fast/borders/border-image-outset-split-inline-expected.txt: Renamed from LayoutTests/platform/wpe/fast/borders/border-image-outset-split-inline-expected.txt.
- platform/glib/fast/borders/border-styles-split-expected.txt: Renamed from LayoutTests/platform/wpe/fast/borders/border-styles-split-expected.txt.
- platform/glib/fast/css/child-style-can-override-visited-style-expected.txt: Renamed from LayoutTests/platform/wpe/fast/css/child-style-can-override-visited-style-expected.txt.
- platform/glib/fast/css/named-images-expected.txt: Renamed from LayoutTests/platform/wpe/fast/css/named-images-expected.txt.
- platform/glib/fast/dom/HTMLMeterElement/meter-element-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLMeterElement/meter-element-expected.txt.
- platform/glib/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt.
- platform/glib/fast/dom/HTMLMeterElement/meter-styles-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLMeterElement/meter-styles-expected.txt.
- platform/glib/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt.
- platform/glib/fast/dom/HTMLProgressElement/progress-element-expected.txt: Renamed from LayoutTests/platform/wpe/fast/dom/HTMLProgressElement/progress-element-expected.txt.
- platform/glib/fast/encoding/charset-replacement-expected.txt: Renamed from LayoutTests/platform/wpe/fast/encoding/charset-replacement-expected.txt.
- platform/glib/fast/encoding/invalid-UTF-8-expected.txt: Renamed from LayoutTests/platform/wpe/fast/encoding/invalid-UTF-8-expected.txt.
- platform/glib/fast/images/image-map-anchor-children-expected.txt: Renamed from LayoutTests/platform/wpe/fast/images/image-map-anchor-children-expected.txt.
- platform/glib/fast/inline/002-expected.txt: Renamed from LayoutTests/platform/wpe/fast/inline/002-expected.txt.
- platform/glib/fast/invalid/018-expected.txt: Renamed from LayoutTests/platform/wpe/fast/invalid/018-expected.txt.
- platform/glib/fast/selectors/018b-expected.txt: Renamed from LayoutTests/platform/wpe/fast/selectors/018b-expected.txt.
- platform/glib/fast/table/table-display-types-strict-expected.txt: Renamed from LayoutTests/platform/wpe/fast/table/table-display-types-strict-expected.txt.
- platform/glib/fast/table/unbreakable-images-quirk-expected.txt: Renamed from LayoutTests/platform/wpe/fast/table/unbreakable-images-quirk-expected.txt.
- platform/glib/fast/text/basic/004-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/basic/004-expected.txt.
- platform/glib/fast/text/basic/012-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/basic/012-expected.txt.
- platform/glib/fast/text/cg-fallback-bolding-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/cg-fallback-bolding-expected.txt.
- platform/glib/fast/text/firstline/001-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/firstline/001-expected.txt.
- platform/glib/fast/text/indic-expected.txt:
- platform/glib/fast/text/international/bidi-layout-across-linebreak-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/international/bidi-layout-across-linebreak-expected.txt.
- platform/glib/fast/text/justify-nbsp-expected.txt:
- platform/glib/fast/text/whitespace/020-expected.txt: Renamed from LayoutTests/platform/wpe/fast/text/whitespace/020-expected.txt.
- platform/gtk/fast/backgrounds/border-radius-split-background-expected.txt: Removed.
- platform/gtk/fast/backgrounds/border-radius-split-background-image-expected.txt: Removed.
- platform/gtk/fast/block/basic/013-expected.txt: Removed.
- platform/gtk/fast/block/basic/014-expected.txt:
- platform/gtk/fast/block/basic/016-expected.txt:
- platform/gtk/fast/block/float/br-with-clear-2-expected.txt: Removed.
- platform/gtk/fast/block/margin-collapse/044-expected.txt:
- platform/gtk/fast/block/margin-collapse/block-inside-inline/001-expected.txt: Removed.
- platform/gtk/fast/block/margin-collapse/block-inside-inline/005-expected.txt: Removed.
- platform/gtk/fast/block/positioning/047-expected.txt:
- platform/gtk/fast/block/positioning/057-expected.txt:
- platform/gtk/fast/borders/bidi-012-expected.txt:
- platform/gtk/fast/borders/border-image-outset-split-inline-expected.txt: Removed.
- platform/gtk/fast/borders/border-styles-split-expected.txt: Removed.
- platform/gtk/fast/borders/rtl-border-04-expected.txt:
- platform/gtk/fast/box-shadow/basic-shadows-expected.txt:
- platform/gtk/fast/css-generated-content/012-expected.txt:
- platform/gtk/fast/css-generated-content/after-duplicated-after-split-expected.txt:
- platform/gtk/fast/css/child-style-can-override-visited-style-expected.txt: Removed.
- platform/gtk/fast/css/css1_forward_compatible_parsing-expected.txt:
- platform/gtk/fast/css/empty-inline-003-quirksmode-expected.txt:
- platform/gtk/fast/css/empty-inline-line-height-first-line-expected.txt:
- platform/gtk/fast/css/empty-inline-line-height-first-line-quirksmode-expected.txt:
- platform/gtk/fast/css/first-line-text-decoration-expected.txt:
- platform/gtk/fast/css/first-line-text-decoration-inherited-from-parent-expected.txt:
- platform/gtk/fast/css/font-face-opentype-expected.txt:
- platform/gtk/fast/css/named-images-expected.txt: Removed.
- platform/gtk/fast/css/pseudo-first-line-border-width-expected.txt:
- platform/gtk/fast/css/resize-corner-tracking-expected.txt:
- platform/gtk/fast/css/text-overflow-ellipsis-bidi-expected.txt:
- platform/gtk/fast/css/text-overflow-input-expected.txt:
- platform/gtk/fast/css/word-space-extra-expected.txt:
- platform/gtk/fast/dom/34176-expected.txt:
- platform/gtk/fast/dom/52776-expected.txt:
- platform/gtk/fast/dom/HTMLElement/bdo-expected.txt:
- platform/gtk/fast/dom/HTMLMeterElement/meter-element-expected.txt: Removed.
- platform/gtk/fast/dom/HTMLMeterElement/meter-element-repaint-on-update-value-expected.txt: Removed.
- platform/gtk/fast/dom/HTMLMeterElement/meter-styles-expected.txt: Removed.
- platform/gtk/fast/dom/HTMLProgressElement/indeterminate-progress-001-expected.txt: Removed.
- platform/gtk/fast/dom/HTMLProgressElement/native-progress-bar-expected.txt:
- platform/gtk/fast/dom/HTMLProgressElement/progress-element-expected.txt: Removed.
- platform/gtk/fast/encoding/charset-replacement-expected.txt: Removed.
- platform/gtk/fast/encoding/invalid-UTF-8-expected.txt: Removed.
- platform/gtk/fast/encoding/utf-16-big-endian-expected.txt:
- platform/gtk/fast/encoding/utf-16-little-endian-expected.txt:
- platform/gtk/fast/events/updateLayoutForHitTest-expected.txt:
- platform/gtk/fast/forms/auto-fill-button/input-contacts-auto-fill-button-expected.txt:
- platform/gtk/fast/forms/input-text-scroll-left-on-blur-expected.txt:
- platform/gtk/fast/forms/listbox-hit-test-zoomed-expected.txt:
- platform/gtk/fast/forms/placeholder-pseudo-style-expected.txt:
- platform/gtk/fast/forms/select-visual-hebrew-expected.txt:
- platform/gtk/fast/frames/onlyCommentInIFrame-expected.txt:
- platform/gtk/fast/images/image-map-anchor-children-expected.txt: Removed.
- platform/gtk/fast/inline-block/inline-block-vertical-align-expected.txt:
- platform/gtk/fast/inline/002-expected.txt: Removed.
- platform/gtk/fast/inline/drawStyledEmptyInlines-expected.txt:
- platform/gtk/fast/invalid/018-expected.txt: Removed.
- platform/gtk/fast/invalid/missing-end-tag-expected.txt:
- platform/gtk/fast/multicol/span/span-margin-collapsing-expected.txt:
- platform/gtk/fast/overflow/003-expected.txt:
- platform/gtk/fast/parser/entities-in-xhtml-expected.txt:
- platform/gtk/fast/parser/nofoo-tags-inside-paragraph-expected.txt:
- platform/gtk/fast/parser/open-comment-in-textarea-expected.txt:
- platform/gtk/fast/parser/xhtml-alternate-entities-expected.txt:
- platform/gtk/fast/repaint/line-layout-block-shrink-expected.txt:
- platform/gtk/fast/repaint/simple-line-layout-shrinking-content-expected.txt:
- platform/gtk/fast/replaced/inline-box-wrapper-handover-expected.txt:
- platform/gtk/fast/selectors/018b-expected.txt: Removed.
- platform/gtk/fast/selectors/visited-descendant-expected.txt:
- platform/gtk/fast/table/col-and-colgroup-offsets-expected.txt:
- platform/gtk/fast/table/table-continuation-outline-paint-crash-expected.txt:
- platform/gtk/fast/table/table-display-types-strict-expected.txt: Removed.
- platform/gtk/fast/table/unbreakable-images-quirk-expected.txt: Removed.
- platform/gtk/fast/text/atsui-multiple-renderers-expected.txt:
- platform/gtk/fast/text/atsui-negative-spacing-features-expected.txt:
- platform/gtk/fast/text/atsui-spacing-features-expected.txt:
- platform/gtk/fast/text/basic/004-expected.txt: Removed.
- platform/gtk/fast/text/basic/005-expected.txt:
- platform/gtk/fast/text/basic/012-expected.txt: Removed.
- platform/gtk/fast/text/basic/014-expected.txt:
- platform/gtk/fast/text/bidi-reverse-runs-crash-expected.txt:
- platform/gtk/fast/text/capitalize-boundaries-expected.txt:
- platform/gtk/fast/text/cg-fallback-bolding-expected.txt: Removed.
- platform/gtk/fast/text/fallback-traits-fixup-expected.txt:
- platform/gtk/fast/text/firstline/001-expected.txt: Removed.
- platform/gtk/fast/text/format-control-expected.txt:
- platform/gtk/fast/text/hyphenate-limit-before-after-expected.txt:
- platform/gtk/fast/text/in-rendered-text-rtl-expected.txt:
- platform/gtk/fast/text/international/arabic-justify-expected.txt:
- platform/gtk/fast/text/international/bidi-AN-after-L-expected.txt:
- platform/gtk/fast/text/international/bidi-AN-after-empty-run-expected.txt:
- platform/gtk/fast/text/international/bidi-CS-after-AN-expected.txt:
- platform/gtk/fast/text/international/bidi-L2-run-reordering-expected.txt:
- platform/gtk/fast/text/international/bidi-LDB-2-CSS-expected.txt:
- platform/gtk/fast/text/international/bidi-LDB-2-HTML-expected.txt:
- platform/gtk/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
- platform/gtk/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
- platform/gtk/fast/text/international/bidi-european-terminators-expected.txt:
- platform/gtk/fast/text/international/bidi-ignored-for-first-child-inline-expected.txt:
- platform/gtk/fast/text/international/bidi-innertext-expected.txt:
- platform/gtk/fast/text/international/bidi-layout-across-linebreak-expected.txt: Removed.
- platform/gtk/fast/text/international/bidi-linebreak-001-expected.txt:
- platform/gtk/fast/text/international/bidi-linebreak-002-expected.txt:
- platform/gtk/fast/text/international/bidi-linebreak-003-expected.txt:
- platform/gtk/fast/text/international/bidi-listbox-atsui-expected.txt:
- platform/gtk/fast/text/international/bidi-listbox-expected.txt:
- platform/gtk/fast/text/international/bidi-menulist-expected.txt:
- platform/gtk/fast/text/international/bidi-mirror-he-ar-expected.txt:
- platform/gtk/fast/text/international/bidi-neutral-directionality-paragraph-start-expected.txt:
- platform/gtk/fast/text/international/bidi-neutral-run-expected.txt:
- platform/gtk/fast/text/international/bidi-override-expected.txt:
- platform/gtk/fast/text/international/bold-bengali-expected.txt:
- platform/gtk/fast/text/international/danda-space-expected.txt:
- platform/gtk/fast/text/international/hebrew-vowels-expected.txt:
- platform/gtk/fast/text/international/hindi-whitespace-expected.txt:
- platform/gtk/fast/text/international/rtl-caret-expected.txt:
- platform/gtk/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
- platform/gtk/fast/text/international/thai-baht-space-expected.txt:
- platform/gtk/fast/text/international/thai-line-breaks-expected.txt:
- platform/gtk/fast/text/midword-break-after-breakable-char-expected.txt:
- platform/gtk/fast/text/text-letter-spacing-expected.txt:
- platform/gtk/fast/text/unicode-variation-selector-expected.txt:
- platform/gtk/fast/text/wbr-expected.txt:
- platform/gtk/fast/text/whitespace/004-expected.txt:
- platform/gtk/fast/text/whitespace/005-expected.txt:
- platform/gtk/fast/text/whitespace/006-expected.txt:
- platform/gtk/fast/text/whitespace/007-expected.txt:
- platform/gtk/fast/text/whitespace/010-expected.txt:
- platform/gtk/fast/text/whitespace/011-expected.txt:
- platform/gtk/fast/text/whitespace/015-expected.txt:
- platform/gtk/fast/text/whitespace/016-expected.txt:
- platform/gtk/fast/text/whitespace/018-expected.txt:
- platform/gtk/fast/text/whitespace/020-expected.txt: Removed.
- 2:14 PM Changeset in webkit [288148] by
-
- 1 copy in tags/Safari-613.1.14.1.1
Tag Safari-613.1.14.1.1.
- 2:09 PM Changeset in webkit [288147] by
-
- 4 edits in trunk
Build WebKitSwift when building with make or build-webkit
https://bugs.webkit.org/show_bug.cgi?id=235093
Reviewed by Alexey Proskuryakov.
Source/WebKit:
For various internal reasons, we have to have no depency between the two,
but we command line builders want to build and test it just like everyone else.
- Makefile:
Tools:
- Scripts/build-webkit:
- 1:46 PM Changeset in webkit [288146] by
-
- 39 edits in trunk
Use c++2a instead of gnu++2a for Cocoa builds
https://bugs.webkit.org/show_bug.cgi?id=234936
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-18
Reviewed by Sam Weinig.
Source/bmalloc:
- Configurations/Base.xcconfig:
Source/JavaScriptCore:
- Configurations/Base.xcconfig:
- Configurations/JavaScriptCore.xcconfig:
- DerivedSources.make:
Source/ThirdParty:
- gtest/xcode/Config/General.xcconfig:
Source/ThirdParty/ANGLE:
- Configurations/Base.xcconfig:
Source/ThirdParty/libwebrtc:
- Configurations/Base.xcconfig:
Source/WebCore:
The only need for it was for two calls to memset_s, for which we define STDC_WANT_LIB_EXT1
- Configurations/Base.xcconfig:
- DerivedSources.make:
Source/WebCore/PAL:
- Configurations/Base.xcconfig:
Source/WebGPU:
- Configurations/Base.xcconfig:
Source/WebInspectorUI:
- Configurations/Base.xcconfig:
Source/WebKit:
- Configurations/Base.xcconfig:
- Configurations/BaseTarget.xcconfig:
Source/WebKitLegacy/mac:
- Configurations/Base.xcconfig:
- Configurations/WebKitLegacy.xcconfig:
- MigrateHeaders.make:
Source/WTF:
- Configurations/Base.xcconfig:
Tools:
- DumpRenderTree/DerivedSources.make:
- DumpRenderTree/mac/Configurations/Base.xcconfig:
- MiniBrowser/Configurations/Base.xcconfig:
- MobileMiniBrowser/Configurations/Base.xcconfig:
- TestWebKitAPI/Configurations/Base.xcconfig:
- WebKitTestRunner/Configurations/Base.xcconfig:
- WebKitTestRunner/DerivedSources.make:
- 1:43 PM Changeset in webkit [288145] by
-
- 1 edit in trunk/Tools/CISupport/ews-build/master.cfg
[ews] Load credentials from passwords.json in master.cfg
https://bugs.webkit.org/show_bug.cgi?id=235296
Reviewed by Jonathan Bedard.
- Tools/CISupport/ews-build/master.cfg:
Canonical link: https://commits.webkit.org/246145@main
- 1:11 PM Changeset in webkit [288144] by
-
- 3 edits in trunk/Source/WebKit
Don't build WKGroupSession.swift when using Monterey public SDK
https://bugs.webkit.org/show_bug.cgi?id=235324
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-18
Reviewed by Jer Noble.
- Configurations/WebKit.xcconfig:
Remove unused exclusion of WKGroupSession.swift which is only built in WebKitSwift.
- Configurations/WebKitSwift.xcconfig:
Remove unused reference to WKCoordinator.mm and WKCoordinator.h which don't exist any more.
Don't build WKGroupSession.swift with the public SDK since it uses "@_spi(Safari)"
- 1:03 PM Changeset in webkit [288143] by
-
- 19 edits in trunk
[CSS Color 4] Add support for "Missing"/"none" color components
https://bugs.webkit.org/show_bug.cgi?id=233526
<rdar://problem/86026087>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Update color pasing tests to include 'none' components.
- web-platform-tests/css/css-color/parsing/color-computed-expected.txt:
- web-platform-tests/css/css-color/parsing/color-computed.html:
- web-platform-tests/css/css-color/parsing/color-invalid-expected.txt:
- web-platform-tests/css/css-color/parsing/color-invalid.html:
- web-platform-tests/css/css-color/parsing/color-valid-expected.txt:
- web-platform-tests/css/css-color/parsing/color-valid.html:
- web-platform-tests/css/css-color/parsing/relative-color-computed-expected.txt:
- web-platform-tests/css/css-color/parsing/relative-color-computed.html:
- web-platform-tests/css/css-color/parsing/relative-color-invalid-expected.txt:
- web-platform-tests/css/css-color/parsing/relative-color-invalid.html:
- web-platform-tests/css/css-color/parsing/relative-color-valid-expected.txt:
- web-platform-tests/css/css-color/parsing/relative-color-valid.html:
Source/WebCore:
Adds support for parsing an identifier, 'none', as a CSS color component for all specified
grammars, including rgb() (space separated), hsl() (space separated), hwb(), color(), lab(),
lch(), oklab(), oklch() as well as all the respective relative forms.
For color types that were already being stored using float components, the 'none' value
is stored as NaN. For the types that were not (rgb(), hsl() and hwb()) we now store the
value using float components if and only if there are any 'none' components (bounded SRGBA<float>
for rgb(), HSLA<float> for hsl() and HWBA<float> for hwb()). This is necessary for both
serialization, which has been updated to handle the new values, as well as interpolation,
which is not included in this change.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::NoneRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleOrNumberRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberOrPercentRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::IdentityTransformer::transform):
(WebCore::CSSPropertyParserHelpers::RawIdentityTransformer::transform):
(WebCore::CSSPropertyParserHelpers::RawVariantTransformerBase::transform):
(WebCore::CSSPropertyParserHelpers::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumePercentRaw):
(WebCore::CSSPropertyParserHelpers::consumePercentRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeLengthRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleRaw):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberOrNoneRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberOrNoneRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrNoneRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrNoneRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumePercentOrNoneRaw):
(WebCore::CSSPropertyParserHelpers::consumePercentOrNoneRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentOrNoneRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentOrNoneRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlphaAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentToSRGBAByte):
(WebCore::CSSPropertyParserHelpers::consumeRGBOrHSLOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::parseRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::colorByNormalizingHSLComponents):
(WebCore::CSSPropertyParserHelpers::parseRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::AngleOrNumberRawToDegressTransformer::transform): Deleted.
(WebCore::CSSPropertyParserHelpers::LengthOrPercentRawTransformer::transform): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberAllowingSymbolTableIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentAllowingSymbolTableIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentPercentage): Deleted.
(WebCore::CSSPropertyParserHelpers::RGBNormalizingTransformer::transform): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeRelativeRGBComponent): Deleted.
(WebCore::CSSPropertyParserHelpers::clampRGBComponent): Deleted.
- css/parser/CSSPropertyParserHelpers.h:
- platform/graphics/ColorNormalization.h:
(WebCore::normalizeClampedWhitenessBlacknessDisallowingNone):
(WebCore::normalizeClampedWhitenessBlacknessAllowingNone):
Pipe through support for parsing and normalizing 'none' components.
- platform/graphics/ColorSerialization.cpp:
(WebCore::legacyRGBComponent):
(WebCore::numericComponent):
(WebCore::percentageComponent):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::StringTypeAdapter):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::length const):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::is8Bit const):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::writeTo const):
(WTF::StringTypeAdapter<WebCore::LegacyRGBComponent>::buffer const):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::StringTypeAdapter):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::length const):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::is8Bit const):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::writeTo const):
(WTF::StringTypeAdapter<WebCore::NumericComponent>::buffer const):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::StringTypeAdapter):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::length const):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::is8Bit const):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::writeTo const):
(WTF::StringTypeAdapter<WebCore::PercentageComponent>::buffer const):
Add helper StringTypeAdapter to efficiently encode "none" or the number
when used with makeString().
(WebCore::serializationUsingColorFunction):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
(WebCore::serializationForRenderTreeAsText):
Add support for serializing bounded SRGBA<float> in the rgba() form rather
than the color function form for the case when it is used to store NaNs. This
serialization is a bit different than the normal 8-bit serialization as it uses
the whitespace syntax rather than comma syntax to allow round tripping of 'none'
components. This is currently unders discussion with the editors:
- platform/graphics/ColorTypes.h:
(WebCore::assertInRange):
Update bounds assertion to allow NaN for all components regardless of bounds.
- 12:23 PM Changeset in webkit [288142] by
-
- 1 edit in branches/safari-613.1.14.1-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj
Apply patch. rdar://problem/86298747
- 12:13 PM Changeset in webkit [288141] by
-
- 4 edits4 adds in branches/safari-613.1.14.1-branch
Cherry-pick r288078. rdar://problem/87662271
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:13 PM Changeset in webkit [288140] by
-
- 2 edits in branches/safari-613.1.14.1-branch/Source/WebKit
Cherry-pick r287997. rdar://problem/87274541
Sometimes cannot scroll after using internal trackpad
https://bugs.webkit.org/show_bug.cgi?id=235206
<rdar://problem/87274541>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::didStartMomentumPhase): (WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
- WebProcess/WebPage/MomentumEventDispatcher.h: We store std::optional<ScrollingAccelerationCurve> in a map, but then when looking at whether we have a curve (to decide whether or not to even use MomentumEventDispatcher), we check if the map has *any* value for the given page... even an unengaged optional. To fix, check if the optional is engaged.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:13 PM Changeset in webkit [288139] by
-
- 4 edits4 adds in branches/safari-613.1.14.0-branch
Cherry-pick r288078. rdar://problem/87662271
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:13 PM Changeset in webkit [288138] by
-
- 2 edits in branches/safari-613.1.14.0-branch/Source/WebKit
Cherry-pick r287997. rdar://problem/87274541
Sometimes cannot scroll after using internal trackpad
https://bugs.webkit.org/show_bug.cgi?id=235206
<rdar://problem/87274541>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp: (WebKit::MomentumEventDispatcher::didStartMomentumPhase): (WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
- WebProcess/WebPage/MomentumEventDispatcher.h: We store std::optional<ScrollingAccelerationCurve> in a map, but then when looking at whether we have a curve (to decide whether or not to even use MomentumEventDispatcher), we check if the map has *any* value for the given page... even an unengaged optional. To fix, check if the optional is engaged.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287997 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:13 PM Changeset in webkit [288137] by
-
- 4 edits in branches/safari-613.1.14.0-branch
Cherry-pick r287957. rdar://problem/87327557
[WebAuthn] Fix freebie call without user gesture not being given
https://bugs.webkit.org/show_bug.cgi?id=235078
rdar://87327557
Reviewed by Brent Fulgham.
Source/WebKit:
This logic was previously always requiring a user gesture. The desired
behavior of giving pages a single "freebie" webauthn call without gesture
was lost in a refactor.
Tested manually on iOS device with webauthn.me.
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp: (WebKit::WebAuthenticatorCoordinator::processingUserGesture):
Tools:
Updated API test to reflect user gesture freebie.
- TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-no-mock.html:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287957 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 12:07 PM Changeset in webkit [288136] by
-
- 2 edits1 move3 adds in trunk/LayoutTests
Move dialog-form-submission-expected.txt iPad test expectations in correct directory
https://bugs.webkit.org/show_bug.cgi?id=229566
Unreviewed test gardening.
This is not a flaky failure, but a iPad only failure (or unexpected pass).
- platform/ipad/TestExpectations:
- platform/ipad/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-form-submission-expected.txt: Renamed from LayoutTests/platform/ipad/imported/w3c/web-platform-tests/html/browsers/the-window-object/dialog-form-submission-expected.txt.
- 12:05 PM Changeset in webkit [288135] by
-
- 9 edits in branches/safari-613.1.14.0-branch/Source
Versioning.
WebKit-7613.1.14.0.1
- 11:59 AM Changeset in webkit [288134] by
-
- 18 edits in trunk
Canvas functions that take colors as strings don't support all the syntax that CSS supports
https://bugs.webkit.org/show_bug.cgi?id=235269
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update expected results now that the test is passing.
- web-platform-tests/html/canvas/element/fill-and-stroke-styles/2d.fillStyle.toStringFunctionCallback-expected.txt:
Source/WebCore:
Add a variant of CSSParser::parseColor() that takes a CSSParserContext
and use it (and parser context created from a document) to get the parser
to respect the settings. Rename the existing CSSParser::parseColor() to
CSSParser::parseColorWithoutContext() and add a comment indicating all
uses should eventually be removed.
Offscreen canvas and custom paint canvas are using the old path with https://webkit.org/b/235270
tracking finding a solution for them.
- Modules/applicationmanifest/ApplicationManifestParser.cpp:
(WebCore::ApplicationManifestParser::parseColor):
- css/StyleProperties.cpp:
(WebCore::StyleProperties::propertyAsColor const):
- css/parser/CSSParser.cpp:
(WebCore::CSSParser::parseColor):
(WebCore::CSSParser::parseColorWithoutContext):
- css/parser/CSSParser.h:
- editing/EditingStyle.cpp:
(WebCore::cssValueToColor):
- html/HTMLBodyElement.cpp:
(WebCore::HTMLBodyElement::parseAttribute):
- html/HTMLMetaElement.cpp:
(WebCore::HTMLMetaElement::contentColor):
- html/canvas/CanvasStyle.cpp:
(WebCore::parseColor):
(WebCore::currentColor):
- svg/properties/SVGAnimationAdditiveValueFunctionImpl.h:
- svg/properties/SVGPropertyTraits.h:
(WebCore::SVGPropertyTraits<Color>::fromString):
(WebCore::SVGPropertyTraits<Color>::parse):
Source/WebKit:
Update for rename of CSSParser::parseColor() to CSSParser::parseColorWithoutContext().
- UIProcess/API/wpe/WebKitColor.cpp:
(webkit_color_parse):
- WebProcess/InjectedBundle/API/c/WKBundlePage.cpp:
(WKBundlePageSetComposition):
LayoutTests:
- fast/canvas/canvas-color-serialization.html:
Update doctype to set the correct CSS parsing mode which now needs to be set correctly for canvas color setting functions.
- 11:36 AM Changeset in webkit [288133] by
-
- 3 edits2 deletes in trunk/Source/WebCore
Remove ImplementationLacksVTable IDL attribute
https://bugs.webkit.org/show_bug.cgi?id=235170
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-18
Reviewed by Yusuke Suzuki.
Also remove some bindings test results that don't seem to be used any more.
- Modules/indexeddb/IDBKeyRange.idl:
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/JS/JSInterfaceName.cpp: Removed.
- bindings/scripts/test/JS/JSMapLike.cpp: Removed.
- 11:33 AM Changeset in webkit [288132] by
-
- 41 edits1 add in trunk
CSP: Improve handling of multiple policies
https://bugs.webkit.org/show_bug.cgi?id=235199
Reviewed by Kate Cheney.
LayoutTests/imported/w3c:
Add new test expectations with more passes.
- web-platform-tests/content-security-policy/script-src/script-src-multiple-policies-one-using-hashing-algorithms-expected.txt:
- web-platform-tests/content-security-policy/script-src/script-src-strict_dynamic_parser_inserted-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-error-event-fires-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-inline-style-nonce-blocked-error-event-expected.txt:
- web-platform-tests/content-security-policy/style-src/style-src-multiple-policies-multiple-hashing-algorithms-expected.txt: Added.
Source/WebCore:
This fixes many issues with multiple CSP policies.
To quote the spec for script-src:
Their behavior will be blocked unless every policy allows inline script, either implicitly by not
specifying a script-src (or default-src) directive, or explicitly, by specifying "unsafe-inline",
a nonce-source or a hash-source that matches the inline block.
The previous structure was many distinct calls to check if there was a nonce in any policy, then if there
was a hash in any policy, etc, rather than actually checking the policies as a whole to know if they
allow or block a behavior. This lead to various issues where polices were not properly respected and where
reports were inaccurate.
The allScriptPoliciesAllow() function did try to consider all policies but was not very flexible and had buggy
behavior like for each policy it would call findHashOfContentInPolicies() meaning hashes from other policies
incorrectly applied to the current policy, plus general inefficiency of hashing the same content many
times over.
The new behavior relies more on passing all required information in a single function call to verify all
policies in a single pass.
- bindings/js/CachedScriptFetcher.cpp:
(WebCore::CachedScriptFetcher::requestScriptWithCache const):
- dom/InlineStyleSheetOwner.cpp:
(WebCore::InlineStyleSheetOwner::createSheet):
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestModuleScript):
(WebCore::ScriptElement::executeClassicScript):
- dom/StyledElement.cpp:
(WebCore::StyledElement::styleAttributeChanged):
- html/HTMLLinkElement.cpp:
(WebCore::HTMLLinkElement::process):
- loader/DocumentThreadableLoader.cpp:
(WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
- loader/ResourceLoaderOptions.h:
- loader/cache/CachedResourceLoader.cpp:
(WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::parseSubResourceIntegrityIntoDigests):
(WebCore::generateHashesForContent):
(WebCore::ContentSecurityPolicy::allowJavaScriptURLs const):
(WebCore::ContentSecurityPolicy::allowInlineEventHandlers const):
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):
(WebCore::ContentSecurityPolicy::allowInlineScript const):
(WebCore::ContentSecurityPolicy::allowInlineStyle const):
(WebCore::ContentSecurityPolicy::allowScriptFromSource const):
(WebCore::ContentSecurityPolicy::allowStyleFromSource const):
(WebCore::ContentSecurityPolicy::allScriptPoliciesAllow const): Deleted.
(WebCore::ContentSecurityPolicy::findHashOfContentInPolicies const): Deleted.
(WebCore::ContentSecurityPolicy::checkHashAndReportViolation const): Deleted.
- page/csp/ContentSecurityPolicy.h:
- page/csp/ContentSecurityPolicyDirectiveList.cpp:
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineScriptElement const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForInlineJavascriptURL const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForInlineEventHandlers const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForNonParserInsertedScripts const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineStyleElement const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineStyleAttribute const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScript const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyle const):
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashScript const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeHashStyle const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForParserInsertedScript const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForUnsafeInlineScriptAttribute const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForScriptHash const): Deleted.
(WebCore::ContentSecurityPolicyDirectiveList::violatedDirectiveForStyleHash const): Deleted.
- page/csp/ContentSecurityPolicyDirectiveList.h:
LayoutTests:
Update test expectations, Some newly passing tests are no longer skipped and some have new reports.
- TestExpectations:
- http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/module-scriptnonce-multiple-policies-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-in-enforced-policy-and-not-in-report-only-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scripthash-multiple-policies-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-enforced-policy-and-blocked-by-report-policy2-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-allowed-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-enforced-policy-and-allowed-by-report-policy2-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-blocked-by-legacy-enforced-policy-and-blocked-by-report-policy2-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-in-enforced-policy-and-not-in-report-only-expected.txt:
- http/tests/security/contentSecurityPolicy/1.1/scriptnonce-multiple-policies-expected.txt:
- http/tests/security/contentSecurityPolicy/inline-script-blocked-javascript-url-expected.txt:
- http/tests/security/contentSecurityPolicy/javascript-url-blocked-by-default-src-star-expected.txt:
- http/tests/security/contentSecurityPolicy/javascript-url-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/window-open-javascript-url-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/window-open-javascript-url-with-target-blocked-expected.txt:
- platform/glib/TestExpectations:
- platform/wk2/http/tests/security/contentSecurityPolicy/block-all-mixed-content/insecure-css-in-iframe-report-only-expected.txt:
- 10:47 AM Changeset in webkit [288131] by
-
- 1 copy in branches/safari-613.1.14.2-branch
New branch.
- 10:47 AM Changeset in webkit [288130] by
-
- 1 copy in branches/safari-613.1.14.1-branch
New branch.
- 10:46 AM Changeset in webkit [288129] by
-
- 1 copy in branches/safari-613.1.14.0-branch
New branch.
- 10:46 AM Changeset in webkit [288128] by
-
- 2 edits in trunk/Source/WebKit
Copy com.apple.WebKit.adattributiond.sb into place with other iOS sandbox profiles
https://bugs.webkit.org/show_bug.cgi?id=235320
<rdar://87711220>
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-18
Reviewed by Per Arne Vollan.
Ever since r287100 we are using the sandbox profile, but it doesn't exist so we just crash.
- WebKit.xcodeproj/project.pbxproj:
- 10:44 AM Changeset in webkit [288127] by
-
- 4 edits in trunk/Source/WebCore
Clean up some code around RenderElement::addLayers()
https://bugs.webkit.org/show_bug.cgi?id=235272
Reviewed by Darin Adler.
The code that looks for the next layer via render tree traversal is tricky and
hard to understand. Do some initial cleanup prior to fixing it for top layer.
First, use std::optional<> in the static addLayers() to make the beforeChild
finding easier to understand (no longer need a null newObject as the signal that
you've tried to look).
Second, use references in findNextLayer() and rename 'startPoint' to make its
purpose more clear.
- rendering/RenderElement.cpp:
(WebCore::addLayers):
(WebCore::RenderElement::addLayers):
(WebCore::RenderElement::findNextLayer const):
(WebCore::RenderElement::findNextLayer): Deleted.
- rendering/RenderElement.h:
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::insertOnlyThisLayer):
- 10:42 AM Changeset in webkit [288126] by
-
- 2 edits in trunk
Fix typos in Introduction.md
https://bugs.webkit.org/show_bug.cgi?id=235321
Patch by Brandon Stewart <Brandon> on 2022-01-18
Reviewed by Michael Saboff.
Fix several typos in Introduction file.
- Introduction.md:
- 10:40 AM Changeset in webkit [288125] by
-
- 1 copy in tags/Safari-612.4.9.1.6
Tag Safari-612.4.9.1.6.
- 10:38 AM Changeset in webkit [288124] by
-
- 4 edits in trunk/Source/WebCore
Reduce failure timer in CoreAudioSharedUnit in the case we only render audio samples
https://bugs.webkit.org/show_bug.cgi?id=235318
Reviewed by Eric Carlson.
As shown in https://bugs.webkit.org/show_bug.cgi?id=235317, it might be possible for a VPIO that is only used for
audio rendering to fail sometimes. Waiting for 10 seconds in that case is very long, so we reduce the verification delay to 2 seconds.
Manually tested.
- platform/mediastream/mac/BaseAudioSharedUnit.cpp:
- platform/mediastream/mac/BaseAudioSharedUnit.h:
- platform/mediastream/mac/CoreAudioCaptureSource.cpp:
- 10:29 AM Changeset in webkit [288123] by
-
- 8 edits in branches/safari-612.4.9.1-branch/Source
Versioning.
WebKit-7612.4.9.1.6
- 10:16 AM Changeset in webkit [288122] by
-
- 1 edit in branches/safari-613-branch/Source/WebKit/WebKit.xcodeproj/project.pbxproj
Apply patch. rdar://problem/86298747
- 10:15 AM Changeset in webkit [288121] by
-
- 9 edits in branches/safari-613-branch/Source
Versioning.
WebKit-7613.1.15
- 10:14 AM Changeset in webkit [288120] by
-
- 2 edits in trunk/JSTests
Gardening: resolve test failure on CLoop.
Not reviewed.
Change test to not rely on WebAssembly.
- stress/max-typed-array-length-toString.js:
- 10:11 AM Changeset in webkit [288119] by
-
- 2 edits in trunk/Source/WTF
UUID decode routine should check for deleted value
https://bugs.webkit.org/show_bug.cgi?id=235315
Reviewed by Chris Dumez.
- wtf/UUID.h:
(WTF::UUID::decode):
- 10:09 AM Changeset in webkit [288118] by
-
- 264 edits in trunk/Source/WebCore
Remove ImplementationLacksVTable IDL attribute
https://bugs.webkit.org/show_bug.cgi?id=235170
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-18
Reviewed by Yusuke Suzuki.
It can be replaced by if constexpr (std::is_polymorphic_v<T>).
- Modules/WebGPU/GPU.idl:
- Modules/WebGPU/GPUAdapter.idl:
- Modules/WebGPU/GPUBindGroup.idl:
- Modules/WebGPU/GPUBindGroupLayout.idl:
- Modules/WebGPU/GPUBuffer.idl:
- Modules/WebGPU/GPUBufferUsage.idl:
- Modules/WebGPU/GPUCanvasContext.idl:
- Modules/WebGPU/GPUColorWrite.idl:
- Modules/WebGPU/GPUCommandBuffer.idl:
- Modules/WebGPU/GPUCommandEncoder.idl:
- Modules/WebGPU/GPUCompilationInfo.idl:
- Modules/WebGPU/GPUCompilationMessage.idl:
- Modules/WebGPU/GPUComputePassEncoder.idl:
- Modules/WebGPU/GPUComputePipeline.idl:
- Modules/WebGPU/GPUDeviceLostInfo.idl:
- Modules/WebGPU/GPUExternalTexture.idl:
- Modules/WebGPU/GPUMapMode.idl:
- Modules/WebGPU/GPUOutOfMemoryError.idl:
- Modules/WebGPU/GPUPipelineLayout.idl:
- Modules/WebGPU/GPUQuerySet.idl:
- Modules/WebGPU/GPUQueue.idl:
- Modules/WebGPU/GPURenderBundle.idl:
- Modules/WebGPU/GPURenderBundleEncoder.idl:
- Modules/WebGPU/GPURenderPassEncoder.idl:
- Modules/WebGPU/GPURenderPipeline.idl:
- Modules/WebGPU/GPUSampler.idl:
- Modules/WebGPU/GPUShaderModule.idl:
- Modules/WebGPU/GPUShaderStage.idl:
- Modules/WebGPU/GPUSupportedFeatures.idl:
- Modules/WebGPU/GPUSupportedLimits.idl:
- Modules/WebGPU/GPUTexture.idl:
- Modules/WebGPU/GPUTextureUsage.idl:
- Modules/WebGPU/GPUTextureView.idl:
- Modules/WebGPU/GPUValidationError.idl:
- Modules/async-clipboard/ClipboardItem.idl:
- Modules/contact-picker/ContactsManager.idl:
- Modules/credentialmanagement/CredentialsContainer.idl:
- Modules/encryptedmedia/MediaKeySystemAccess.idl:
- Modules/entriesapi/DOMFileSystem.idl:
- Modules/fetch/FetchHeaders.idl:
- Modules/gamepad/Gamepad.idl:
- Modules/gamepad/GamepadButton.idl:
- Modules/geolocation/GeolocationCoordinates.idl:
- Modules/geolocation/GeolocationPosition.idl:
- Modules/geolocation/GeolocationPositionError.idl:
- Modules/highlight/Highlight.idl:
- Modules/highlight/HighlightRegister.idl:
- Modules/indexeddb/IDBKeyRange.idl:
- Modules/mediacapabilities/MediaCapabilities.idl:
- Modules/mediacontrols/MediaControlsHost.idl:
- Modules/mediasession/MediaMetadata.idl:
- Modules/mediasource/VideoPlaybackQuality.idl:
- Modules/mediastream/OverconstrainedError.idl:
- Modules/mediastream/RTCCertificate.idl:
- Modules/mediastream/RTCEncodedAudioFrame.idl:
- Modules/mediastream/RTCEncodedVideoFrame.idl:
- Modules/mediastream/RTCIceCandidate.idl:
- Modules/mediastream/RTCSessionDescription.idl:
- Modules/mediastream/RTCStatsReport.idl:
- Modules/paymentrequest/PaymentAddress.idl:
- Modules/permissions/Permissions.idl:
- Modules/push-api/PushManager.idl:
- Modules/push-api/PushMessageData.idl:
- Modules/push-api/PushSubscription.idl:
- Modules/push-api/PushSubscriptionOptions.idl:
- Modules/speech/SpeechRecognitionAlternative.idl:
- Modules/speech/SpeechRecognitionResult.idl:
- Modules/speech/SpeechRecognitionResultList.idl:
- Modules/storage/StorageManager.idl:
- Modules/web-locks/WebLock.idl:
- Modules/webaudio/AudioBuffer.idl:
- Modules/webaudio/AudioListener.idl:
- Modules/webaudio/AudioWorkletProcessor.idl:
- Modules/webaudio/PeriodicWave.idl:
- Modules/webcodecs/VideoColorSpace.idl:
- Modules/webdatabase/Database.idl:
- Modules/webdatabase/SQLError.idl:
- Modules/webdatabase/SQLResultSet.idl:
- Modules/webdatabase/SQLResultSetRowList.idl:
- Modules/webxr/WebXRFrame.idl:
- Modules/webxr/WebXRHand.idl:
- Modules/webxr/WebXRInputSource.idl:
- Modules/webxr/WebXRInputSourceArray.idl:
- Modules/webxr/WebXRJointPose.idl:
- Modules/webxr/WebXRRenderState.idl:
- Modules/webxr/WebXRRigidTransform.idl:
- Modules/webxr/WebXRView.idl:
- Modules/webxr/WebXRViewport.idl:
- bindings/scripts/CodeGeneratorJS.pm:
(GetGnuVTableNameForInterface):
(GetWinVTableNameForInterface):
(GenerateImplementation):
(GetImplementationLacksVTableForInterface): Deleted.
- bindings/scripts/IDLAttributes.json:
- bindings/scripts/test/ExposedToWorkerAndWindow.idl:
- bindings/scripts/test/JS/JSExposedStar.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSExposedToWorkerAndWindow.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCEReactions.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCEReactionsStringifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestCallTracer.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestClassWithJSBuiltinConstructor.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestConditionalIncludes.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestConditionallyReadWrite.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestDefaultToJSON.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestDefaultToJSONFilteredByExposed.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestDelegateToSharedSyntheticAttribute.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestDomainSecurity.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEnabledBySetting.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEnabledForContext.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEventConstructor.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestEventTarget.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestGenerateAddOpaqueRoot.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIndexedSetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIndexedSetterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIndexedSetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestInterface.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestInterfaceLeadingUnderscore.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestIterable.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestLegacyFactoryFunction.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestLegacyNoInterfaceObject.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestLegacyOverrideBuiltIns.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestMapLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestMapLikeWithOverriddenOperations.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedAndIndexedSetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedDeleterWithIndexedGetter.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedGetterCallWith.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedGetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedGetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterNoIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterThrowingException.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithIdentifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetter.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithIndexedGetterAndSetter.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyOverrideBuiltIns.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeableProperties.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNamedSetterWithLegacyUnforgeablePropertiesAndLegacyOverrideBuiltIns.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestNode.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestObj.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestOperationConditional.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestOverloadedConstructorsWithSequence.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestPluginInterface.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestPromiseRejectionEvent.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestReadOnlyMapLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestReadOnlySetLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestReportExtraMemoryCost.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestSetLike.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestSetLikeWithOverriddenOperations.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifier.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierAnonymousOperation.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierNamedOperation.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierOperationImplementedAs.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierOperationNamedToString.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierReadOnlyAttribute.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestStringifierReadWriteAttribute.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/JS/JSTestTypedefs.cpp:
(WebCore::toJSNewlyCreated):
- bindings/scripts/test/TestInterface.idl:
- bindings/scripts/test/TestInterfaceLeadingUnderscore.idl:
- css/CSSPaintSize.idl:
- css/DOMMatrix.idl:
- css/DOMMatrixReadOnly.idl:
- css/DeprecatedCSSOMCounter.idl:
- css/DeprecatedCSSOMPrimitiveValue.idl:
- css/DeprecatedCSSOMRGBColor.idl:
- css/DeprecatedCSSOMRect.idl:
- css/DeprecatedCSSOMValue.idl:
- css/DeprecatedCSSOMValueList.idl:
- css/MediaList.idl:
- css/StyleMedia.idl:
- css/StyleSheetList.idl:
- css/typedom/CSSOMVariableReferenceValue.idl:
- css/typedom/numeric/CSSNumericArray.idl:
- dom/AbortController.idl:
- dom/DOMException.idl:
- dom/DOMImplementation.idl:
- dom/DOMPoint.idl:
- dom/DOMPointReadOnly.idl:
- dom/DOMQuad.idl:
- dom/DOMRect.idl:
- dom/DOMRectList.idl:
- dom/DOMRectReadOnly.idl:
- dom/DOMStringList.idl:
- dom/DataTransferItem.idl:
- dom/IdleDeadline.idl:
- dom/MessageChannel.idl:
- dom/MutationObserver.idl:
- dom/NamedNodeMap.idl:
- dom/NodeIterator.idl:
- dom/TextDecoder.idl:
- dom/TextDecoderStreamDecoder.idl:
- dom/TextEncoder.idl:
- dom/TextEncoderStreamEncoder.idl:
- dom/Touch.idl:
- dom/TouchList.idl:
- dom/TreeWalker.idl:
- fileapi/FileList.idl:
- fileapi/FileReaderSync.idl:
- html/DOMFormData.idl:
- html/ImageBitmap.idl:
- html/ImageData.idl:
- html/MediaError.idl:
- html/TextMetrics.idl:
- html/TimeRanges.idl:
- html/URLSearchParams.idl:
- html/WebKitMediaKeyError.idl:
- html/canvas/CanvasGradient.idl:
- html/canvas/CanvasPattern.idl:
- html/canvas/WebGLActiveInfo.idl:
- html/canvas/WebGLShaderPrecisionFormat.idl:
- html/canvas/WebGLUniformLocation.idl:
- html/track/AudioTrackConfiguration.idl:
- html/track/TextTrackCueList.idl:
- html/track/VTTRegionList.idl:
- html/track/VideoTrackConfiguration.idl:
- inspector/CommandLineAPIHost.idl:
- inspector/InspectorAuditAccessibilityObject.idl:
- inspector/InspectorAuditDOMObject.idl:
- inspector/InspectorAuditResourcesObject.idl:
- inspector/InspectorFrontendHost.idl:
- page/BarProp.idl:
- page/DOMSelection.idl:
- page/History.idl:
- page/IntersectionObserver.idl:
- page/IntersectionObserverEntry.idl:
- page/Location.idl:
- page/PerformanceNavigation.idl:
- page/PerformanceObserver.idl:
- page/PerformanceObserverEntryList.idl:
- page/PerformanceServerTiming.idl:
- page/PerformanceTiming.idl:
- page/ResizeObserver.idl:
- page/ResizeObserverEntry.idl:
- page/Screen.idl:
- page/UndoItem.idl:
- page/UndoManager.idl:
- page/WebKitPoint.idl:
- plugins/DOMMimeType.idl:
- plugins/DOMMimeTypeArray.idl:
- plugins/DOMPlugin.idl:
- plugins/DOMPluginArray.idl:
- svg/SVGPathSeg.idl:
- svg/SVGRenderingIntent.idl:
- svg/SVGUnitTypes.idl:
- svg/SVGViewSpec.idl:
- testing/GCObservation.idl:
- testing/MallocStatistics.idl:
- testing/MemoryInfo.idl:
- testing/MockContentFilterSettings.idl:
- testing/MockPageOverlay.idl:
- testing/ServiceWorkerInternals.idl:
- testing/TypeConversions.idl:
- testing/WebFakeXRDevice.idl:
- testing/WebFakeXRInputController.idl:
- workers/WorkerLocation.idl:
- workers/service/ServiceWorkerClients.idl:
- xml/DOMParser.idl:
- xml/XMLSerializer.idl:
- xml/XPathEvaluator.idl:
- xml/XPathExpression.idl:
- xml/XPathResult.idl:
- xml/XSLTProcessor.idl:
- 8:45 AM Changeset in webkit [288117] by
-
- 6 edits2 adds in trunk
AX: Improve support for aria-owns in aria trees
https://bugs.webkit.org/show_bug.cgi?id=233383
Patch by Sepand Parhami <sparhami@apple.com> on 2022-01-18
Reviewed by Chris Fleizach.
Source/WebCore:
Better supports aria-owns in trees by following children specified through ownership similar
to how DOM children are handled. Previously, you could use aria-owns for only one level of
ownership. This change also fixes tree items being included twice (once as a DOM child and
another time via aria-owns) and supports using both DOM children and aria-owns on a single
element. This change only affects trees via a change to ariaTreeRows and does not change
aria-owns behavior in general.
Tests: accessibility/mac/treeitem-row-delegation.html
accessibility/mac/treeitem-row-delegation-poorly-formed.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::ariaTreeRows):
- accessibility/AccessibilityObject.h:
LayoutTests:
Adds test cases for additional specified behavior of aria-owns in trees as well as tests to
make sure incorrect aria-owns usage does not cause crashes.
- accessibility/mac/treeitem-row-delegation-expected.txt:
- accessibility/mac/treeitem-row-delegation-poorly-formed-expected.txt: Added.
- accessibility/mac/treeitem-row-delegation-poorly-formed.html: Added.
- accessibility/mac/treeitem-row-delegation.html:
- 8:16 AM Changeset in webkit [288116] by
-
- 7 edits in trunk
Make ServiceWorkerClient.id a UUID instead of a string derived from a ScriptExecutionContextIdentifier
https://bugs.webkit.org/show_bug.cgi?id=235070
<rdar://problem/87673540>
Reviewed by Darin Adler and Chris Dumez.
Source/WebCore:
Covered by existing and beefed-up API tests.
- platform/ScriptExecutionContextIdentifier.h:
Remove unneeded const & and && constructors and use by value constructor instead.
Add computeHash direct specialization to remove UUID Hasher specialization.
Source/WTF:
- wtf/UUID.cpp:
- wtf/UUID.h:
Use uint64_t logic to generate UUIDs and remove some reinterpret_cast.
Remove the Hasher add since we directly use UUID hash in WebCore.
Simplify parsing logic by using more parseIntegers and bit logic.
Also make sure we are not able to create empty/deleted UUID value from strings.
Tools:
- TestWebKitAPI/Tests/WTF/UUID.cpp:
Improve test coverage.
- 7:25 AM Changeset in webkit [288115] by
-
- 2 edits in trunk/Source/JavaScriptCore
Non-unified build fails due to missing header in WasmCalleeGroup.cpp
Unreviewed non-unified build fix.
- wasm/WasmCalleeGroup.cpp: Add missing inclusion of the LinkBuffer.h header.
- 4:28 AM Changeset in webkit [288114] by
-
- 2 edits in trunk/Source/WebCore
[css-logical] Simplify logical property groups
https://bugs.webkit.org/show_bug.cgi?id=228130
Reviewed by Antti Koivisto.
Refactors logical property group code in makeprop.pl to make it a bit
more simple and easy the extend if new kinds of logical properties are
introduced in the future.
No new tests since no change in behavior.
- css/makeprop.pl:
(addProperty):
- 3:02 AM Changeset in webkit [288113] by
-
- 7 edits in trunk
[css-flexbox] Add support for intrinsic sizes in flex-basis
https://bugs.webkit.org/show_bug.cgi?id=235291
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt: Replaced FAIL by PASS expectations.
- web-platform-tests/css/css-flexbox/parsing/flex-basis-computed-expected.txt: Ditto.
- web-platform-tests/css/css-flexbox/parsing/flex-basis-valid-expected.txt: Ditto.
Source/WebCore:
The flex-basis property should allow the same values as <'width'>. However we were only allowing 'auto', 'content'
and any Length. That did not include intrinsic sizes like 'min-content', 'fit-content' etc. Added the proper parsing
machinery in order to fix that.
Apart from that, a change in the flexbox code was needed. In particular the code was incorrectly assuming that a
flex-basis with intrinsic size in a column flexbox was always an indefinite size. That's true as long as the flexbox
has an horizontal writing mode (in that case the main axis would be the block axis). However that's totally wrong for
a flexbox with vertical writing mode (as in that case the main axis would be the inline axis).
The flexbox fix + the parsing additions allow us to pass 12 more WPT subtests.
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFlexBasis): Additionally check for any validWidthOrHeightKeyword().
(WebCore::CSSPropertyParser::parseSingleValue): Pass the context instead of the mode.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::childMainSizeIsDefinite): Replaced isColumnFlow() by !mainAxisIsChildInlineAxis().
- 12:30 AM Changeset in webkit [288112] by
-
- 68 edits26 moves26 deletes in trunk/LayoutTests
[GLIB] Update test baselines after r288070.
https://bugs.webkit.org/show_bug.cgi?id=235300
Unreviewed test gardening.
Since r288070 enabled LFC integration to be used on GTK as well as WPE, many test baselines can now be merged.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-18
- platform/glib/css2.1/t0805-c5521-brdr-l-01-e-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t0805-c5521-brdr-l-01-e-expected.txt.
- platform/glib/css2.1/t0905-c5525-fltwrap-00-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t0905-c5525-fltwrap-00-b-expected.txt.
- platform/glib/css2.1/t090501-c414-flt-03-b-g-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t090501-c414-flt-03-b-g-expected.txt.
- platform/glib/css2.1/t100801-c544-valgn-03-d-agi-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t100801-c544-valgn-03-d-agi-expected.txt.
- platform/glib/css2.1/t1202-counter-08-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counter-08-b-expected.txt.
- platform/glib/css2.1/t1202-counter-13-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counter-13-b-expected.txt.
- platform/glib/css2.1/t1202-counter-14-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counter-14-b-expected.txt.
- platform/glib/css2.1/t1202-counters-08-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counters-08-b-expected.txt.
- platform/glib/css2.1/t1202-counters-13-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counters-13-b-expected.txt.
- platform/glib/css2.1/t1202-counters-14-b-expected.txt: Renamed from LayoutTests/platform/wpe/css2.1/t1202-counters-14-b-expected.txt.
- platform/glib/css3/filters/effect-combined-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-combined-expected.txt.
- platform/glib/css3/filters/effect-combined-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-combined-hw-expected.txt.
- platform/glib/css3/filters/effect-contrast-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-contrast-expected.txt.
- platform/glib/css3/filters/effect-contrast-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-contrast-hw-expected.txt.
- platform/glib/css3/filters/effect-grayscale-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-grayscale-expected.txt.
- platform/glib/css3/filters/effect-grayscale-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-grayscale-hw-expected.txt.
- platform/glib/css3/filters/effect-hue-rotate-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-hue-rotate-expected.txt.
- platform/glib/css3/filters/effect-hue-rotate-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-hue-rotate-hw-expected.txt.
- platform/glib/css3/filters/effect-invert-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-invert-expected.txt.
- platform/glib/css3/filters/effect-invert-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-invert-hw-expected.txt.
- platform/glib/css3/filters/effect-opacity-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-opacity-expected.txt.
- platform/glib/css3/filters/effect-opacity-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-opacity-hw-expected.txt.
- platform/glib/css3/filters/effect-saturate-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-saturate-expected.txt.
- platform/glib/css3/filters/effect-saturate-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-saturate-hw-expected.txt.
- platform/glib/css3/filters/effect-sepia-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-sepia-expected.txt.
- platform/glib/css3/filters/effect-sepia-hw-expected.txt: Renamed from LayoutTests/platform/wpe/css3/filters/effect-sepia-hw-expected.txt.
- platform/gtk/css1/box_properties/border-expected.txt:
- platform/gtk/css1/box_properties/float_on_text_elements-expected.txt:
- platform/gtk/css1/font_properties/font-expected.txt:
- platform/gtk/css1/formatting_model/height_of_lines-expected.txt:
- platform/gtk/css1/text_properties/letter_spacing-expected.txt:
- platform/gtk/css1/text_properties/line_height-expected.txt:
- platform/gtk/css1/text_properties/text_decoration-expected.txt:
- platform/gtk/css1/text_properties/text_transform-expected.txt:
- platform/gtk/css1/text_properties/vertical_align-expected.txt:
- platform/gtk/css1/text_properties/word_spacing-expected.txt:
- platform/gtk/css2.1/t0805-c5521-brdr-l-01-e-expected.txt: Removed.
- platform/gtk/css2.1/t0905-c5525-fltwidth-00-c-g-expected.txt:
- platform/gtk/css2.1/t0905-c5525-fltwidth-03-c-g-expected.txt:
- platform/gtk/css2.1/t0905-c5525-fltwrap-00-b-expected.txt: Removed.
- platform/gtk/css2.1/t090501-c414-flt-01-b-expected.txt:
- platform/gtk/css2.1/t090501-c414-flt-03-b-g-expected.txt: Removed.
- platform/gtk/css2.1/t100801-c544-valgn-00-a-ag-expected.txt:
- platform/gtk/css2.1/t100801-c544-valgn-03-d-agi-expected.txt: Removed.
- platform/gtk/css2.1/t1202-counter-08-b-expected.txt: Removed.
- platform/gtk/css2.1/t1202-counter-13-b-expected.txt: Removed.
- platform/gtk/css2.1/t1202-counter-14-b-expected.txt: Removed.
- platform/gtk/css2.1/t1202-counters-08-b-expected.txt: Removed.
- platform/gtk/css2.1/t1202-counters-13-b-expected.txt: Removed.
- platform/gtk/css2.1/t1202-counters-14-b-expected.txt: Removed.
- platform/gtk/css2.1/t1508-c527-font-01-b-expected.txt:
- platform/gtk/css2.1/t1508-c527-font-02-b-expected.txt:
- platform/gtk/css3/filters/effect-combined-expected.txt: Removed.
- platform/gtk/css3/filters/effect-combined-hw-expected.txt: Removed.
- platform/gtk/css3/filters/effect-contrast-expected.txt: Removed.
- platform/gtk/css3/filters/effect-contrast-hw-expected.txt: Removed.
- platform/gtk/css3/filters/effect-grayscale-expected.txt: Removed.
- platform/gtk/css3/filters/effect-grayscale-hw-expected.txt: Removed.
- platform/gtk/css3/filters/effect-hue-rotate-expected.txt: Removed.
- platform/gtk/css3/filters/effect-hue-rotate-hw-expected.txt: Removed.
- platform/gtk/css3/filters/effect-invert-expected.txt: Removed.
- platform/gtk/css3/filters/effect-invert-hw-expected.txt: Removed.
- platform/gtk/css3/filters/effect-opacity-expected.txt: Removed.
- platform/gtk/css3/filters/effect-opacity-hw-expected.txt: Removed.
- platform/gtk/css3/filters/effect-saturate-expected.txt: Removed.
- platform/gtk/css3/filters/effect-saturate-hw-expected.txt: Removed.
- platform/gtk/css3/filters/effect-sepia-expected.txt: Removed.
- platform/gtk/css3/filters/effect-sepia-hw-expected.txt: Removed.
- platform/gtk/editing/deleting/5144139-2-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-002-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-003-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-004-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-005-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-006-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-007-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-008-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-009-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-010-expected.txt:
- platform/gtk/editing/deleting/delete-at-paragraph-boundaries-011-expected.txt:
- platform/gtk/editing/deleting/non-smart-delete-expected.txt:
- platform/gtk/editing/inserting/insert-br-quoted-001-expected.txt:
- platform/gtk/editing/inserting/insert-br-quoted-002-expected.txt:
- platform/gtk/editing/inserting/insert-br-quoted-003-expected.txt:
- platform/gtk/editing/inserting/insert-br-quoted-004-expected.txt:
- platform/gtk/editing/inserting/insert-br-quoted-005-expected.txt:
- platform/gtk/editing/inserting/insert-br-quoted-006-expected.txt:
- platform/gtk/editing/inserting/insert-div-025-expected.txt:
- platform/gtk/editing/inserting/insert-div-026-expected.txt:
- platform/gtk/editing/inserting/return-key-with-selection-001-expected.txt:
- platform/gtk/editing/inserting/return-key-with-selection-002-expected.txt:
- platform/gtk/editing/inserting/return-key-with-selection-003-expected.txt:
- platform/gtk/editing/pasteboard/emacs-ctrl-k-y-001-expected.txt:
- platform/gtk/editing/pasteboard/paste-4038267-fix-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-001-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-002-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-003-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-004-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-005-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-006-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-007-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-008-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-009-expected.txt:
- platform/gtk/editing/pasteboard/paste-line-endings-010-expected.txt:
- platform/gtk/editing/pasteboard/paste-match-style-001-expected.txt:
- platform/gtk/editing/pasteboard/paste-match-style-002-expected.txt:
- platform/gtk/editing/pasteboard/paste-text-019-expected.txt:
- platform/gtk/editing/style/block-styles-007-expected.txt:
- platform/gtk/editing/style/style-3998892-fix-expected.txt:
- platform/gtk/editing/style/style-boundary-001-expected.txt:
- platform/gtk/editing/style/style-boundary-002-expected.txt:
- platform/gtk/editing/style/style-boundary-003-expected.txt:
- platform/gtk/editing/style/style-boundary-004-expected.txt:
- platform/gtk/editing/unsupported-content/list-delete-001-expected.txt:
- platform/gtk/editing/unsupported-content/list-delete-003-expected.txt:
- platform/gtk/editing/unsupported-content/list-type-after-expected.txt:
- platform/gtk/editing/unsupported-content/list-type-before-expected.txt:
- platform/gtk/editing/unsupported-content/table-delete-002-expected.txt:
- platform/gtk/editing/unsupported-content/table-type-after-expected.txt:
- platform/gtk/editing/unsupported-content/table-type-before-expected.txt:
Jan 17, 2022:
- 11:57 PM Changeset in webkit [288111] by
-
- 7 edits in trunk
[:has() pseudo-class] Disallow nested :has()
https://bugs.webkit.org/show_bug.cgi?id=235231
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/has-argument-with-explicit-scope.tentative-expected.txt:
- web-platform-tests/css/selectors/has-basic-expected.txt:
- web-platform-tests/css/selectors/parsing/parse-has-expected.txt:
Source/WebCore:
Nested case ':has(:has(foo))' adds no meaningful capability and would complicate invalidation.
See https://github.com/w3c/csswg-drafts/issues/6952 for more details.
- css/parser/CSSSelectorParser.cpp:
(WebCore::CSSSelectorParser::consumePseudo):
Also set m_resistDefaultNamespace like other logical combination pseudo-classes.
- css/parser/CSSSelectorParser.h:
- 11:54 PM Changeset in webkit [288110] by
-
- 2 edits in trunk/Source/WebCore
BaseAudioSharedUnit::devicesChanged is failing capture too much in GPUProcess
https://bugs.webkit.org/show_bug.cgi?id=235288
Reviewed by Eric Carlson.
Manually tested.
- platform/mediastream/mac/CoreAudioCaptureDeviceManager.h:
In GPUProcess, we do not need to filter tap enabled devices, since this may filter out valid devices, which may break capture.
Given we only need to filter tap enabled devices in the process that enumerates devices for selecting the one to use,
We can reverse the default value to not filter, and enable the filtering in UIProcess as done currently based on whether capturing in GPUProcess or not.
- 11:35 PM Changeset in webkit [288109] by
-
- 3 edits in trunk/Source/WebCore
AudioMediaStreamTrackRendererUnit::reset should hop to the main thread before calling its observers
https://bugs.webkit.org/show_bug.cgi?id=235290
Reviewed by Darin Adler.
In case of doing audio rendering in WebProcess, we need to hop to main thread since the callback might get called from a background thread.
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.cpp:
- platform/mediastream/cocoa/AudioMediaStreamTrackRendererUnit.h:
- 9:21 PM Changeset in webkit [288108] by
-
- 2 edits in trunk
Fix typo in README
https://bugs.webkit.org/show_bug.cgi?id=235309
Patch by Brandon Stewart <Brandon> on 2022-01-17
Reviewed by Michael Saboff.
Fix typo in ReadMe. Updated 'embededded' to 'embedded'.
- ReadMe.md:
- 7:02 PM Changeset in webkit [288107] by
-
- 5 edits4 adds in trunk
REGRESSION(r281389): using font-variant-ligatures causes Unicode bidi isolation control characters to render
https://bugs.webkit.org/show_bug.cgi?id=235053
<rdar://problem/87425066>
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-text/white-space/default-ignorable-complex-expected.html: Added.
- web-platform-tests/css/css-text/white-space/default-ignorable-complex.html: Added.
- web-platform-tests/css/css-text/white-space/default-ignorable-expected.html: Added.
- web-platform-tests/css/css-text/white-space/default-ignorable.html: Added.
Source/WebCore:
The spec says (https://drafts.csswg.org/css-text-3/#white-space-processing)
unsupported Default_ignorable characters must be ignored for text rendering.
Previously, we were handling this by mapping the characters to the zero width space character. r281389 changed
that to be more faithful to the original string (and not do the mapping). One somewhat unexpected result of
this patch was that, now that we're not mapping these code points to the zero width space character, fewer fonts
on the system will support those code points. It became much more common for no font at all to support the code
point in question. r281389 handled the situation where the code points were supported by a font but shouldn't be
rendered, but didn't handle the case where the code points *weren't* supported by any fonts (in the complex text
codepath). This patch updates that path to handle it.
This patch also replaces our previous hardcoded list of Default_ignorable characters with the proper call to ICU
to check the Unicode property. It does this in both the fast text codepath and the simple text codepath, to make
sure they match.
Tests: imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable-complex.html
imported/w3c/web-platform-tests/css/css-text/white-space/default-ignorable.html
- platform/graphics/ComplexTextController.cpp:
(WebCore::ComplexTextController::ComplexTextRun::ComplexTextRun):
- platform/graphics/WidthIterator.cpp:
(WebCore::WidthIterator::applyCSSVisibilityRules):
- 5:39 PM Changeset in webkit [288106] by
-
- 4 edits in trunk/Source/ThirdParty/ANGLE
REGRESSION (r249823): gl::Context::onProgramLink() leaks gl::Framebuffer object due early return when an error occurs in ANGLE_TRY() macro
<https://webkit.org/b/235284>
<rdar://problem/87656747>
Reviewed by Darin Adler.
- src/libANGLE/Context.cpp:
(gl::Context::setDefaultFramebuffer):
- Use std::unique_ptr<> to store gl::Framebuffer so the object is released on early return.
- src/libANGLE/Surface.cpp:
(egl::Surface::createDefaultFramebuffer):
- Update to return std::unique_ptr<gl::Framebuffer>.
- src/libANGLE/Surface.h:
(egl::Surface::createDefaultFramebuffer):
- Update declaration to return std::unique_ptr<gl::Framebuffer>.
(egl::Surface::createDefaultFramebuffer): Delete.
- Remove the second, protected method that is currently unimplemented.
- 4:56 PM Changeset in webkit [288105] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
REGRESSION (r286603): rx::ProgramMtl::getSpecializedShader() leaks MTLFunctionConstantValues object due early return when an error occurs in ANGLE_TRY() macro
<https://webkit.org/b/235281>
<rdar://problem/87656387>
Reviewed by Darin Adler.
- src/libANGLE/renderer/metal/ProgramMtl.mm:
(rx::ProgramMtl::getSpecializedShader):
- Use mtl::AutoObjCObj<> to release MTLFunctionConstantValues object on early return.
- 4:50 PM Changeset in webkit [288104] by
-
- 15 edits1 add in trunk
[GTK] Implement form validation with gtk3 widgets in the UI process
https://bugs.webkit.org/show_bug.cgi?id=234629
Reviewed by Carlos Garcia Campos.
Source/WebCore:
This change re-implements form validation with gtk3 widgets in the UI process.
The current form validation is implemented by using shadow DOM in the web process.
The overall design is similar to that of mac port but the gtk port adds
a callback of webkitWebViewBaseSetShouldNotifyFocusEvents to WebCore::ValidationBubble
to suppress a focus event triggered by the popover widget. Otherwise, the native
bubble does not display properly.
This change does not support gtk4 yet. A follow-up patch will add the gtk4 support.
No new tests because existing tests cover this change.
- SourcesGTK.txt:
- platform/ValidationBubble.h:
(WebCore::ValidationBubble::create):
- platform/gtk/ValidationBubbleGtk.cpp: Added.
(WebCore::ValidationBubble::ValidationBubble):
(WebCore::ValidationBubble::~ValidationBubble):
(WebCore::ValidationBubble::invalidate):
(WebCore::ValidationBubble::showRelativeTo):
Source/WebKit:
This change re-implements form validation with gtk3 widgets in the UI process.
The current form validation is implemented by using shadow DOM in the web process.
The overall design is similar to that of mac port but the gtk port adds
a callback of webkitWebViewBaseSetShouldNotifyFocusEvents to WebCore::ValidationBubble
to suppress a focus event triggered by the popover widget. Otherwise, the native
bubble does not display properly.
This change does not support gtk4 yet. A follow-up patch will add the gtk4 support.
To avoid complaints from the gtk4 EWS, we guard implementation of ValidationBubbleGtk
temporarily and install pageConfiguration.validationMessageClient for gtk3 only.
The gtk4 keeps using the shadow DOM bubble until having native bubble support.
- SourcesGTK.txt:
- UIProcess/API/gtk/PageClientImpl.cpp:
(WebKit::PageClientImpl::createValidationBubble):
- UIProcess/API/gtk/PageClientImpl.h:
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::hideValidationMessage):
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/gtk/WebPageProxyGtk.cpp:
(WebKit::WebPageProxy::showValidationMessage):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
LayoutTests:
We skip fast/forms/validation-message-clone.html for now. Although this patch
implements a validation bubble with a native widget, related tests cannot be enabled
due to missing JS APIs for the UI script controller (e.g., contentsOfUserInterfaceItem).
- platform/gtk/TestExpectations: Skip fast/forms/validation-message-clone.html
- 1:32 PM Changeset in webkit [288103] by
-
- 3 edits2 adds in trunk
Fractional td width is not rendering correctly
https://bugs.webkit.org/show_bug.cgi?id=234745
<rdar://problem/87162997>
Reviewed by Darin Adler.
Source/WebCore:
This is based on the following Blink commit
https://chromium.googlesource.com/chromium/src/+/bfade5f8c943d322f5aca3ab0341824e4ae885a1
The code that ignores a width of zero was incorrectly parsing as an integer and ignoring fractional values.
Test: fast/table/table-cell-percent-width-between-0-and-1.html
- html/HTMLTableCellElement.cpp:
(WebCore::HTMLTableCellElement::collectPresentationalHintsForAttribute):
LayoutTests:
- fast/table/table-cell-percent-width-between-0-and-1-expected.html: Added.
- fast/table/table-cell-percent-width-between-0-and-1.html: Added.
- 12:17 PM Changeset in webkit [288102] by
-
- 8 edits in trunk
ImageAnalysisQueue should analyze image elements that are loaded after the call to enqueueAllImages()
https://bugs.webkit.org/show_bug.cgi?id=233266
rdar://85731875
Reviewed by Darin Adler.
Source/WebCore:
Make a few adjustments to ImageAnalysisQueue, such that it continues to analyze images in the document that have
finished loading after triggering the initial call toenqueueAllImages()in the document.
Test: ImageAnalysisTests.AnalyzeDynamicallyLoadedImages
ImageAnalysisTests.ResetImageAnalysisAfterNavigation
- page/ImageAnalysisQueue.cpp:
(WebCore::ImageAnalysisQueue::enqueueIfNeeded):
Pull logic for queueing an image element for analysis into a separate helper method; we only attempt to analyze
image elements that have successfully loaded and contain aCachedImagethat is larger than an arbitrarily
chosen size of 20px by 20px.
(WebCore::ImageAnalysisQueue::enqueueAllImages):
Refactor this to use the new
enqueueIfNeededmethod above.
(WebCore::ImageAnalysisQueue::resumeProcessing):
(WebCore::ImageAnalysisQueue::clear):
- page/ImageAnalysisQueue.h:
Add a weak hashset of elements that we've already added to the image analysis queue at some point. This prevents
us from continually performing image analysis on the same image if it's only being removed and reinserted in the
document.
- page/Page.cpp:
(WebCore::Page::didCommitLoad):
Additionally reset the image analysis queue when committing page load, so that the image analysis queue doesn't
persist and continue analyzing images even after reloading the page (or navigating away).
(WebCore::Page::didFinishLoadingImageForElement):
If it exists, tell the page's image analysis queue to add the newly loaded image.
(WebCore::Page::resetImageAnalysisQueue):
- page/Page.h:
Tools:
Add new API tests to check that image elements that are created and inserted after kicking off the image
analysis queue are successfully added to the queue, and result in platform image analysis requests, and to also
verify that the image analysis queue is reset after navigation.
- TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:
(TestWebKitAPI::processRequestWithResults):
(TestWebKitAPI::makeImageAnalysisRequestSwizzler):
(TestWebKitAPI::processRequestWithError):
(TestWebKitAPI::TEST):
(TestWebKitAPI::swizzledProcessRequestWithResults): Deleted.
(TestWebKitAPI::swizzledProcessRequestWithError): Deleted.
- TestWebKitAPI/Tests/WebKitCocoa/multiple-images.html:
- 12:10 PM Changeset in webkit [288101] by
-
- 2 edits in trunk/Source/WebCore
Crash may occur under ComputedStyleExtractor::propertyValue()
https://bugs.webkit.org/show_bug.cgi?id=235255
Reviewed by Antti Koivisto.
When calling getComputedStyle() after an element has had its style set to "display: none",
ComputedStyleExtractor::propertyValue() will first start with a non-null renderer but it will
become null after document.updateLayoutIgnorePendingStylesheets() is called.
To avoid this problem, we stop storing the renderer throughout the method, and instead call
styledRenderer() to obtain a valid renderer each time we need to access it.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::propertyValue):
- 11:50 AM Changeset in webkit [288100] by
-
- 6 edits in trunk
AX: Expose toggle buttons using role="button" as form controls.
https://bugs.webkit.org/show_bug.cgi?id=234119
Patch by Sepand Parhami <sparhami@apple.com> on 2022-01-17
Reviewed by Chris Fleizach.
Source/WebCore:
Add the ToggleButton role to the list of aria controls in isARIAControl so that it
is a control when checked by the accessibility object search.
Tests: LayoutTests/accessibility/mac/search-predicate-element-count.html
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isLabelable const):
Remove redundant check, isControl already covers it.
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::isARIAControl):
LayoutTests:
Added a test case for button/role="button" with aria-presssed. Reordered a few things as
the previously named "inputs" section was not what was being checked in the test (it was
the number of buttons) and it had previously matched the number by coincidence.
- accessibility/mac/search-predicate-element-count-expected.txt:
- accessibility/mac/search-predicate-element-count.html:
- 11:44 AM Changeset in webkit [288099] by
-
- 4 edits2 adds in trunk
Layered @import rules in <style> should be preloaded
https://bugs.webkit.org/show_bug.cgi?id=234094
<rdar://problem/86586969>
Reviewed by Dean Jackson.
Source/WebCore:
Test: http/tests/loading/preload-css-import-layer.html
- html/parser/CSSPreloadScanner.cpp:
(WebCore::CSSPreloadScanner::tokenize):
(WebCore::hasValidImportConditions):
(WebCore::CSSPreloadScanner::emitRule):
- html/parser/CSSPreloadScanner.h:
Allow @import rule containing layer condition to be preloaded.
LayoutTests:
- http/tests/loading/preload-css-import-layer-expected.txt: Added.
- http/tests/loading/preload-css-import-layer.html: Added.
- 11:35 AM Changeset in webkit [288098] by
-
- 2 edits in trunk/Tools
Add an API test to ensure indexedDB.databases() does not create files on disk
https://bugs.webkit.org/show_bug.cgi?id=235289
Reviewed by Darin Adler.
Add test coverage.
- TestWebKitAPI/Tests/WebKitCocoa/IndexedDBPersistence.mm:
- 10:30 AM Changeset in webkit [288097] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
Follow-up: REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>
Unreviewed follow-up fix from Bug 235281, Comment #5.
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::getMetalDeviceMatchingAttribute):
- Remove unneeded calls to .get().
- 9:27 AM Changeset in webkit [288096] by
-
- 3 edits in trunk/LayoutTests
[GLIB] Update test expectations after r288070 allowed LFC integration to work on GTK.
https://bugs.webkit.org/show_bug.cgi?id=235293
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-17
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 9:21 AM Changeset in webkit [288095] by
-
- 5 edits2 adds in trunk
[LFC][IFC] ASSERT in InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns (!partialRun->length) when webinspector is open
https://bugs.webkit.org/show_bug.cgi?id=235286
Reviewed by Antti Koivisto.
Source/WebCore:
When the overflowing run is non-breakable (in this case an "inline box end" with padding), we try to find a breakable
previous run in the candidate list. If we find such text run, we try to break it by looking at the applicable CSS properties
(e.g. word-break, overflow-wrap). Now text runs with 1 (and 0) length and no adjacent text runs need special handling
as they can't be broken "within word" or at boundary (they treated as "unbreakable").
Test: fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::tryBreakingTextRun const):
(WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const): The trailing run starts
at the beginning of the run and ends right before at the last character.
LayoutTests:
- fast/text/overflow-wrap-assert-with-zero-width-overflowing-content-expected.txt: Added.
- fast/text/overflow-wrap-assert-with-zero-width-overflowing-content.html: Added.
- platform/ios/fast/text/basic/015-expected.txt: Progressions.
- platform/mac/fast/text/basic/015-expected.txt:
- 6:31 AM Changeset in webkit [288094] by
-
- 2 edits in trunk/Source/bmalloc
[CMake] Fix bmalloc build
https://bugs.webkit.org/show_bug.cgi?id=235292
Unreviewed build fix.
Patch by Xan Lopez <Xan Lopez> on 2022-01-17
- CMakeLists.txt: fix location of headers and source files.
- 2:49 AM Changeset in webkit [288093] by
-
- 61 edits in trunk
Make ServiceWorkerClient.id a UUID instead of a string derived from a ScriptExecutionContextIdentifier
https://bugs.webkit.org/show_bug.cgi?id=235070
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-event.https-expected.txt:
Source/WebCore:
Update ScriptExecutionContextIdentifier to be a process-scoped UUID.
This allows to identify the process running a process as well as exposing to JavaScript context identifiers as UUIDs.
This is matching what Chrome and Firefox are doing.
Make SWServer store the maping from context UUID strings to the internal ScriptExecutionContextIdentifiers.
This allows to find a ServiceWorkerClient directly from its JavaScript exposed identifier.
Rename reservedClientId in resultingClientId to match the spec.
Covered by existing tests.
- Modules/web-locks/WebLockRegistry.cpp:
- dom/ScriptExecutionContext.cpp:
- loader/DocumentLoader.cpp:
- page/mac/PageMac.mm:
- platform/ProcessQualified.h:
- platform/ScriptExecutionContextIdentifier.h:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
- testing/ServiceWorkerInternals.cpp:
- testing/ServiceWorkerInternals.h:
- testing/ServiceWorkerInternals.idl:
- workers/service/FetchEvent.cpp:
- workers/service/FetchEvent.h:
- workers/service/FetchEvent.idl:
- workers/service/ServiceWorkerClient.cpp:
- workers/service/ServiceWorkerClient.idl:
- workers/service/ServiceWorkerClients.cpp:
- workers/service/context/SWContextManager.h:
- workers/service/context/ServiceWorkerFetch.cpp:
- workers/service/context/ServiceWorkerFetch.h:
- workers/service/context/ServiceWorkerThread.cpp:
- workers/service/context/ServiceWorkerThread.h:
- workers/service/context/ServiceWorkerThreadProxy.cpp:
- workers/service/context/ServiceWorkerThreadProxy.h:
- workers/service/server/SWServer.cpp:
- workers/service/server/SWServer.h:
- workers/service/server/SWServerToContextConnection.cpp:
- workers/service/server/SWServerToContextConnection.h:
- workers/service/server/SWServerWorker.cpp:
- workers/service/server/SWServerWorker.h:
Source/WebKit:
Change findByClientIdentifier into findByVisibleClientIdentifieran and make it asn async reply.
Update fetch event code path to send the visible IDs of the FetchEvent from network process to worker context process.
We store these IDs in NetworkResourceLoader so that we can change them in case of redirection for navigations.
- NetworkProcess/NetworkResourceLoader.h:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
- NetworkProcess/ServiceWorker/WebSWServerConnection.cpp:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.cpp:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.h:
- NetworkProcess/ServiceWorker/WebSWServerToContextConnection.messages.in:
- WebProcess/InjectedBundle/API/c/WKBundle.cpp:
- WebProcess/InjectedBundle/InjectedBundle.cpp:
- WebProcess/InjectedBundle/InjectedBundle.h:
- WebProcess/Storage/WebSWContextManagerConnection.cpp:
- WebProcess/Storage/WebSWContextManagerConnection.h:
- WebProcess/Storage/WebSWContextManagerConnection.messages.in:
Source/WTF:
- wtf/UUID.cpp:
- wtf/UUID.h: Add routine to stringify a UUID. Add routine to parse a stringified UUID. We restrict UUID::create to values for which the version 4 UUID stringification is bijective.
Tools:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WTF/UUID.cpp:
- TestWebKitAPI/Tests/WebKitCocoa/SystemPreview.mm:
LayoutTests:
Updated tests to not rely on visible ID to be the serialization of a ScriptExecutionContextIdentifier.
For that reason, add internals API to get the internal ID from a ServiceWorkerClient.
- http/tests/workers/service/client-added-to-clients-when-restored-from-page-cache.html:
- http/tests/workers/service/client-removed-from-clients-while-in-page-cache.html:
- http/tests/workers/service/resources/getClientIds-worker.js:
- http/tests/workers/service/serviceworkerclients-matchAll-worker.js:
- http/tests/workers/service/serviceworkerclients-matchAll.https.html:
- 1:50 AM Changeset in webkit [288092] by
-
- 9 edits in trunk
[GStreamer] tests media/track/audio-track-configuration.html and media/track/video-track-configuration.html fail
https://bugs.webkit.org/show_bug.cgi?id=234084
Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-17
Reviewed by Xabier Rodriguez-Calvar.
Source/WebCore:
The known caps and tags of the track GstStream are now exposed through the corresponding
Platform{Audio,Video}TrackConfiguration. This is supported only when playbin3 is used at
runtime. Supporting playbin2 would be some work (pad probes upfront of decoders?) that could
be done as a follow-up. The codec string is generated with the new GStreamer API
gst_codec_utils_caps_get_mime_codec(), which will ship in 1.20.
- platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp:
(WebCore::AudioTrackPrivateGStreamer::AudioTrackPrivateGStreamer):
- platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp:
(WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer):
LayoutTests:
- media/track/audio-track-configuration.html: Add a timeout to each promise, allowing for
nicer actual results when a sub-set of the promises time out. Without this a single promise
timeout would make the entire test time out and the actual results would not be reported
properly.
- media/track/video-track-configuration.html: Ditto.
- platform/glib/TestExpectations: Update {audio,video}-track expectations, tests still
expected to fail but some improvements will be available when we switch to playbin3.
- 1:29 AM Changeset in webkit [288091] by
-
- 2 edits in trunk/Source/WebCore
[Debug][GStreamer] Crash in fast/mediastream/get-display-media-settings.html
https://bugs.webkit.org/show_bug.cgi?id=235221
Patch by Philippe Normand <pnormand@igalia.com> on 2022-01-17
Reviewed by Xabier Rodriguez-Calvar.
Fix use-after-move issue in MockDisplayCaptureSourceGStreamer. The hashSalt string was moved
to the wrapped mock video source, and then again as a parent class constructor parameter.
- platform/mediastream/gstreamer/MockRealtimeVideoSourceGStreamer.cpp:
(WebCore::MockDisplayCaptureSourceGStreamer::create):
- 12:21 AM Changeset in webkit [288090] by
-
- 5 edits in trunk/Source/WebKit
Frequent GPU process jetsams due to RemoteRenderingBackendProxy not claiming ownership of SharedMemory buffers
https://bugs.webkit.org/show_bug.cgi?id=235226
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-17
Reviewed by Simon Fraser.
Claim memory from SharedBitmaps and SharedMemory that RemoteRenderingBackendProxy
asks and receives from RemoteRenderingBackend. This is not very good,
as GPUP allocates most of the memory and thus might jetsam
before WP claims them. However, that is a bigger change to be done
after this one.
No new tests, hard to test currently.
- Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::Handle::takeOwnershipOfMemory const):
- Shared/ShareableBitmap.h:
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::getShareableBitmap):
(WebKit::RemoteRenderingBackendProxy::getFilteredImage):
- WebProcess/GPU/graphics/RemoteResourceCacheProxy.cpp:
(WebKit::RemoteResourceCacheProxy::recordNativeImageUse):
- 12:16 AM Changeset in webkit [288089] by
-
- 26 edits1 delete in trunk
[GTK][a11y] Stop using isolated tree for the ATSPI implementation
https://bugs.webkit.org/show_bug.cgi?id=235229
Reviewed by Adrian Perez de Castro.
.:
Do not enable isolated tree for ATSPI.
- Source/cmake/OptionsGTK.cmake:
Source/WebCore:
Isolated tree performance is not good enough with many websites, so for now we will stop using it.
- SourcesGTK.txt:
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
(WebCore::AXObjectCache::postTextStateChangePlatformNotification):
(WebCore::AXObjectCache::postTextReplacementPlatformNotificationForTextControl):
(WebCore::AXObjectCache::postTextReplacementPlatformNotification):
(WebCore::AXObjectCache::frameLoadingEventPlatformNotification):
(WebCore::AXObjectCache::isIsolatedTreeEnabled): Deleted.
(WebCore::AXObjectCache::initializeSecondaryAXThread): Deleted.
(WebCore::AXObjectCache::usedOnAXThread): Deleted.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::connect):
(WebCore::AccessibilityAtspi::didConnect):
(WebCore::AccessibilityAtspi::initializeRegistry):
(WebCore::AccessibilityAtspi::addEventListener):
(WebCore::AccessibilityAtspi::removeEventListener):
(WebCore::AccessibilityAtspi::addClient):
(WebCore::AccessibilityAtspi::removeClient):
(WebCore::AccessibilityAtspi::shouldEmitSignal):
(WebCore::AccessibilityAtspi::uniqueName const):
(WebCore::AccessibilityAtspi::nullReference const):
(WebCore::AccessibilityAtspi::applicationReference const):
(WebCore::AccessibilityAtspi::registerRoot):
(WebCore::AccessibilityAtspi::unregisterRoot):
(WebCore::AccessibilityAtspi::registerObject):
(WebCore::AccessibilityAtspi::unregisterObject):
(WebCore::AccessibilityAtspi::registerHyperlink):
(WebCore::AccessibilityAtspi::parentChanged):
(WebCore::AccessibilityAtspi::childrenChanged):
(WebCore::AccessibilityAtspi::stateChanged):
(WebCore::AccessibilityAtspi::textChanged):
(WebCore::AccessibilityAtspi::textAttributesChanged):
(WebCore::AccessibilityAtspi::textCaretMoved):
(WebCore::AccessibilityAtspi::textSelectionChanged):
(WebCore::AccessibilityAtspi::valueChanged):
(WebCore::AccessibilityAtspi::selectionChanged):
(WebCore::AccessibilityAtspi::loadEvent):
(WebCore::AccessibilityAtspi::ensureCache):
(WebCore::AccessibilityAtspi::addToCacheIfNeeded):
(WebCore::AccessibilityAtspi::scheduleCacheUpdate):
(WebCore::AccessibilityAtspi::addAccessible):
(WebCore::AccessibilityAtspi::removeAccessible):
(WebCore::AccessibilityAtspi::AccessibilityAtspi): Deleted.
(WebCore::AccessibilityAtspi::runLoop const): Deleted.
- accessibility/atspi/AccessibilityAtspi.h:
- accessibility/atspi/AccessibilityObjectActionAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::actionName const):
(WebCore::AccessibilityObjectAtspi::localizedActionName const):
(WebCore::AccessibilityObjectAtspi::actionKeyBinding const):
(WebCore::AccessibilityObjectAtspi::doAction const):
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::AccessibilityObjectAtspi):
(WebCore::AccessibilityObjectAtspi::cacheDestroyed):
(WebCore::AccessibilityObjectAtspi::elementDestroyed):
(WebCore::AccessibilityObjectAtspi::root):
(WebCore::AccessibilityObjectAtspi::registerObject):
(WebCore::AccessibilityObjectAtspi::didUnregisterObject):
(WebCore::AccessibilityObjectAtspi::path):
(WebCore::AccessibilityObjectAtspi::reference):
(WebCore::AccessibilityObjectAtspi::hyperlinkReference):
(WebCore::AccessibilityObjectAtspi::setParent):
(WebCore:: const):
(WebCore::AccessibilityObjectAtspi::childCount const):
(WebCore::AccessibilityObjectAtspi::childAt const):
(WebCore::AccessibilityObjectAtspi::children const):
(WebCore::AccessibilityObjectAtspi::indexInParent const):
(WebCore::AccessibilityObjectAtspi::name const):
(WebCore::AccessibilityObjectAtspi::description const):
(WebCore::AccessibilityObjectAtspi::locale const):
(WebCore::AccessibilityObjectAtspi::state const):
(WebCore::AccessibilityObjectAtspi::isDefunct const):
(WebCore::AccessibilityObjectAtspi::id const):
(WebCore::AccessibilityObjectAtspi::attributes const):
(WebCore::AccessibilityObjectAtspi::buildAttributes const):
(WebCore::AccessibilityObjectAtspi::relationMap const):
(WebCore::AccessibilityObjectAtspi::buildRelationSet const):
(WebCore::AccessibilityObjectAtspi::buildInterfaces const):
(WebCore::AccessibilityObjectAtspi::serialize const):
(WebCore::AccessibilityObjectAtspi::childAdded):
(WebCore::AccessibilityObjectAtspi::childRemoved):
(WebCore::AccessibilityObjectAtspi::stateChanged):
(WebCore::AccessibilityObjectAtspi::loadEvent):
(WebCore::AccessibilityObjectAtspi::effectiveRole const):
(WebCore::AccessibilityObjectAtspi::role const):
(WebCore::AccessibilityObjectAtspi::roleName const):
(WebCore::AccessibilityObjectAtspi::localizedRoleName const):
(WebCore::AccessibilityObjectAtspi::updateBackingStore):
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const):
(WebCore::AccessibilityObjectAtspi::attach): Deleted.
(WebCore::AccessibilityObjectAtspi::detach): Deleted.
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::hitTest const):
(WebCore::AccessibilityObjectAtspi::elementRect const):
(WebCore::AccessibilityObjectAtspi::focus const):
(WebCore::AccessibilityObjectAtspi::opacity const):
(WebCore::AccessibilityObjectAtspi::scrollToMakeVisible const):
(WebCore::AccessibilityObjectAtspi::scrollToPoint const):
- accessibility/atspi/AccessibilityObjectDocumentAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::documentAttribute const):
(WebCore::AccessibilityObjectAtspi::documentAttributes const):
(WebCore::AccessibilityObjectAtspi::documentLocale const):
- accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::url const):
(WebCore::AccessibilityObjectAtspi::offsetInParent const):
- accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::hyperlinkCount const):
(WebCore::AccessibilityObjectAtspi::hyperlink const):
- accessibility/atspi/AccessibilityObjectImageAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::imageDescription const):
- accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::selectionCount const):
(WebCore::AccessibilityObjectAtspi::selectedChild const):
(WebCore::AccessibilityObjectAtspi::setChildSelected const):
(WebCore::AccessibilityObjectAtspi::deselectSelectedChild const):
(WebCore::AccessibilityObjectAtspi::isChildSelected const):
(WebCore::AccessibilityObjectAtspi::selectAll const):
(WebCore::AccessibilityObjectAtspi::clearSelection const):
(WebCore::AccessibilityObjectAtspi::selectionChanged):
- accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::rowCount const):
(WebCore::AccessibilityObjectAtspi::columnCount const):
(WebCore::AccessibilityObjectAtspi::cell const):
(WebCore::AccessibilityObjectAtspi::tableCaption const):
(WebCore::AccessibilityObjectAtspi::cellIndex const):
(WebCore::AccessibilityObjectAtspi::rowAtIndex const):
(WebCore::AccessibilityObjectAtspi::columnAtIndex const):
(WebCore::AccessibilityObjectAtspi::rowHeader const):
(WebCore::AccessibilityObjectAtspi::columnHeader const):
(WebCore::AccessibilityObjectAtspi::rowDescription const):
(WebCore::AccessibilityObjectAtspi::columnDescription const):
(WebCore::AccessibilityObjectAtspi::rowExtent const):
(WebCore::AccessibilityObjectAtspi::columnExtent const):
(WebCore::AccessibilityObjectAtspi::cells const):
(WebCore::AccessibilityObjectAtspi::rows const):
(WebCore::AccessibilityObjectAtspi::rowHeaders const):
(WebCore::AccessibilityObjectAtspi::columnHeaders const):
- accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::cellRowHeaders const):
(WebCore::AccessibilityObjectAtspi::cellColumnHeaders const):
(WebCore::AccessibilityObjectAtspi::rowSpan const):
(WebCore::AccessibilityObjectAtspi::columnSpan const):
(WebCore::AccessibilityObjectAtspi::cellPosition const):
- accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::text const):
(WebCore::AccessibilityObject::getLengthForTextRange const):
(WebCore::AccessibilityObjectAtspi::textInserted):
(WebCore::AccessibilityObjectAtspi::textDeleted):
(WebCore::AccessibilityObjectAtspi::boundaryOffset const):
(WebCore::AccessibilityObjectAtspi::textAtOffset const):
(WebCore::AccessibilityObjectAtspi::characterAtOffset const):
(WebCore::AccessibilityObjectAtspi::boundsForRange const):
(WebCore::AccessibilityObjectAtspi::textExtents const):
(WebCore::AccessibilityObjectAtspi::offsetAtPoint const):
(WebCore::AccessibilityObjectAtspi::boundsForSelection const):
(WebCore::AccessibilityObjectAtspi::selectedRange const):
(WebCore::AccessibilityObjectAtspi::selectionBounds const):
(WebCore::AccessibilityObjectAtspi::setSelectedRange):
(WebCore::AccessibilityObjectAtspi::selectRange):
(WebCore::AccessibilityObjectAtspi::selectionChanged):
(WebCore::AccessibilityObjectAtspi::textAttributes const):
(WebCore::AccessibilityObjectAtspi::textAttributesWithUTF8Offset const):
(WebCore::AccessibilityObjectAtspi::textAttributesChanged):
(WebCore::AccessibilityObjectAtspi::scrollToMakeVisible const):
(WebCore::AccessibilityObjectAtspi::scrollToPoint const):
- accessibility/atspi/AccessibilityObjectValueAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::currentValue const):
(WebCore::AccessibilityObjectAtspi::setCurrentValue):
(WebCore::AccessibilityObjectAtspi::minimumValue const):
(WebCore::AccessibilityObjectAtspi::maximumValue const):
(WebCore::AccessibilityObjectAtspi::minimumIncrement const):
(WebCore::AccessibilityObjectAtspi::valueChanged):
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::AccessibilityRootAtspi):
(WebCore::AccessibilityRootAtspi::registerObject):
(WebCore::AccessibilityRootAtspi::unregisterObject):
(WebCore::AccessibilityRootAtspi::registerTree):
(WebCore::AccessibilityRootAtspi::didUnregisterTree):
(WebCore::AccessibilityRootAtspi::setPath):
(WebCore::AccessibilityRootAtspi::embedded):
(WebCore::AccessibilityRootAtspi::applicationReference const):
(WebCore::AccessibilityRootAtspi::reference const):
(WebCore::AccessibilityRootAtspi::parentReference const):
(WebCore::AccessibilityRootAtspi::child const):
(WebCore::AccessibilityRootAtspi::childAdded):
(WebCore::AccessibilityRootAtspi::serialize const):
(WebCore::AccessibilityRootAtspi::frameRect const):
- accessibility/atspi/AccessibilityRootAtspi.h:
- accessibility/isolatedtree/atspi/AXIsolatedObjectAtspi.cpp: Removed.
(WebCore::AXIsolatedObject::initializePlatformProperties): Deleted.
(WebCore::AXIsolatedObject::attachPlatformWrapper): Deleted.
(WebCore::AXIsolatedObject::detachPlatformWrapper): Deleted.
Tools:
Update WTR to not use the ax thread.
- WebKitTestRunner/InjectedBundle/AccessibilityController.h:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
(WTR::findAccessibleObjectById):
(WTR::AccessibilityController::updateIsolatedTreeMode): Deleted.
(WTR::AccessibilityController::axRunLoop): Deleted.
(WTR::AccessibilityController::executeOnAXThreadAndWait): Deleted.
(WTR::AccessibilityController::executeOnAXThread): Deleted.
(WTR::AccessibilityController::executeOnMainThread): Deleted.
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::AccessibilityUIElement::childrenCount):
(WTR::AccessibilityUIElement::elementAtPoint):
(WTR::AccessibilityUIElement::childAtIndex):
(WTR::elementForRelationAtIndex):
(WTR::AccessibilityUIElement::selectedChildAtIndex const):
(WTR::AccessibilityUIElement::selectedChildrenCount const):
(WTR::AccessibilityUIElement::parentElement):
(WTR::AccessibilityUIElement::attributesOfChildren):
(WTR::AccessibilityUIElement::stringAttributeValue):
(WTR::AccessibilityUIElement::numberAttributeValue):
(WTR::AccessibilityUIElement::currentStateValue const):
(WTR::AccessibilityUIElement::rowHeaders const):
(WTR::AccessibilityUIElement::columnHeaders const):
(WTR::AccessibilityUIElement::boolAttributeValue):
(WTR::AccessibilityUIElement::isAttributeSettable):
(WTR::AccessibilityUIElement::isAttributeSupported):
(WTR::AccessibilityUIElement::role):
(WTR::AccessibilityUIElement::roleDescription):
(WTR::AccessibilityUIElement::computedRoleString):
(WTR::AccessibilityUIElement::title):
(WTR::AccessibilityUIElement::description):
(WTR::AccessibilityUIElement::orientation const):
(WTR::AccessibilityUIElement::helpText const):
(WTR::AccessibilityUIElement::x):
(WTR::AccessibilityUIElement::y):
(WTR::AccessibilityUIElement::width):
(WTR::AccessibilityUIElement::height):
(WTR::AccessibilityUIElement::clickPointX):
(WTR::AccessibilityUIElement::clickPointY):
(WTR::AccessibilityUIElement::intValue const):
(WTR::AccessibilityUIElement::minValue):
(WTR::AccessibilityUIElement::maxValue):
(WTR::AccessibilityUIElement::valueDescription):
(WTR::AccessibilityUIElement::isEnabled):
(WTR::AccessibilityUIElement::isRequired const):
(WTR::AccessibilityUIElement::isFocused const):
(WTR::AccessibilityUIElement::isSelected const):
(WTR::AccessibilityUIElement::isSelectedOptionActive const):
(WTR::AccessibilityUIElement::isExpanded const):
(WTR::AccessibilityUIElement::isChecked const):
(WTR::AccessibilityUIElement::isIndeterminate const):
(WTR::AccessibilityUIElement::hierarchicalLevel const):
(WTR::AccessibilityUIElement::ariaIsGrabbed const):
(WTR::AccessibilityUIElement::ariaDropEffects const):
(WTR::AccessibilityUIElement::rangeForLine):
(WTR::AccessibilityUIElement::boundsForRange):
(WTR::AccessibilityUIElement::attributedStringForRange):
(WTR::AccessibilityUIElement::rowCount):
(WTR::AccessibilityUIElement::columnCount):
(WTR::AccessibilityUIElement::rowIndexRange):
(WTR::AccessibilityUIElement::columnIndexRange):
(WTR::AccessibilityUIElement::cellForColumnAndRow):
(WTR::AccessibilityUIElement::selectedTextRange):
(WTR::AccessibilityUIElement::increment):
(WTR::AccessibilityUIElement::decrement):
(WTR::AccessibilityUIElement::press):
(WTR::AccessibilityUIElement::setSelectedChildAtIndex const):
(WTR::AccessibilityUIElement::removeSelectionAtIndex const):
(WTR::AccessibilityUIElement::clearSelectedChildren const):
(WTR::AccessibilityUIElement::documentEncoding):
(WTR::AccessibilityUIElement::documentURI):
(WTR::AccessibilityUIElement::isFocusable const):
(WTR::AccessibilityUIElement::isSelectable const):
(WTR::AccessibilityUIElement::isMultiSelectable const):
(WTR::AccessibilityUIElement::isVisible const):
(WTR::AccessibilityUIElement::isOffScreen const):
(WTR::AccessibilityUIElement::isCollapsed const):
(WTR::AccessibilityUIElement::isSingleLine const):
(WTR::AccessibilityUIElement::isMultiLine const):
(WTR::AccessibilityUIElement::hasPopup const):
(WTR::AccessibilityUIElement::scrollToMakeVisible):
(WTR::AccessibilityUIElement::scrollToGlobalPoint):
(WTR::AccessibilityUIElement::isIsolatedObject const): Deleted.
- 12:04 AM Changeset in webkit [288088] by
-
- 39 edits3 adds in trunk
Transmit network load metrics when service worker is using one of its network load to respond to FetchEvents
https://bugs.webkit.org/show_bug.cgi?id=235179
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/next-hop-protocol.https-expected.txt:
Test is progressing further but is failing as the test checks cached responses for which we do not store metrics.
Source/WebCore:
Allow FetchResponses to get their network metrics.
This requires all ThreadableLoaderClients to receive these metrics.
ServiceWorkerFetch is then able to get the metrics from its FetchResponse to send it to the service worker load client.
Test: http/wpt/service-workers/fetch-metrics-via-service-worker.https.html
- Modules/fetch/FetchBodyOwner.h:
- Modules/fetch/FetchLoader.cpp:
- Modules/fetch/FetchLoader.h:
- Modules/fetch/FetchLoaderClient.h:
- Modules/fetch/FetchResponse.cpp:
- Modules/fetch/FetchResponse.h:
- fileapi/FileReaderLoader.cpp:
- fileapi/FileReaderLoader.h:
- inspector/agents/InspectorNetworkAgent.cpp:
- loader/DocumentThreadableLoader.cpp:
- loader/DocumentThreadableLoader.h:
- loader/ThreadableLoaderClient.h:
- loader/ThreadableLoaderClientWrapper.h:
- loader/WorkerThreadableLoader.cpp:
- loader/WorkerThreadableLoader.h:
- page/EventSource.cpp:
- page/EventSource.h:
- testing/Internals.cpp:
- testing/Internals.h:
- testing/Internals.idl:
- workers/WorkerFontLoadRequest.cpp:
- workers/WorkerFontLoadRequest.h:
- workers/WorkerScriptLoader.cpp:
- workers/WorkerScriptLoader.h:
- workers/service/context/ServiceWorkerFetch.cpp:
- workers/service/context/ServiceWorkerFetch.h:
- xml/XMLHttpRequest.cpp:
- xml/XMLHttpRequest.h:
Source/WebKit:
Pipe network metrics down to WebProcess.
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.cpp:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.h:
- NetworkProcess/ServiceWorker/ServiceWorkerFetchTask.messages.in:
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.h:
LayoutTests:
- http/wpt/service-workers/fetch-metrics-via-service-worker.https-expected.txt: Added.
- http/wpt/service-workers/fetch-metrics-via-service-worker.https.html: Added.
- http/wpt/service-workers/fetch-metrics-worker.js: Added.
Jan 16, 2022:
- 10:44 PM Changeset in webkit [288087] by
-
- 32 edits in trunk
Enforce focus check for getUserMedia
https://bugs.webkit.org/show_bug.cgi?id=235026
Source/WebCore:
Reviewed by Eric Carlson.
Add infrastructure to register a callback so that a task is executed when the document is visible.
Use this to delay getUserMedia requests until document is visible.
The spec currently defines that we should wait for the current document to have focus but this is about to be changed and is not aligned with other browser implementations.
The patch also moves some getUserMedia checks earlier so as to respect order provided by the specs.
Add a check to validate getDisplayMedia is called on a visible document as the user gesture is now time based.
Covered by API test.
- Modules/mediastream/MediaDevices.cpp:
- Modules/mediastream/UserMediaRequest.cpp:
- Modules/mediastream/UserMediaRequest.h:
- dom/Document.cpp:
- dom/Document.h:
- editing/FrameSelection.cpp:
Source/WebKit:
Reviewed by Eric Carlson.
Add setters/getters for the getUserMedia focus settings.
- UIProcess/API/C/WKPreferences.cpp:
(WKPreferencesSetGetUserMediaRequiresFocus):
(WKPreferencesGetGetUserMediaRequiresFocus):
- UIProcess/API/C/WKPreferencesRefPrivate.h:
- UIProcess/API/Cocoa/WKPreferences.mm:
(-[WKPreferences _getUserMediaRequiresFocus]):
(-[WKPreferences _setGetUserMediaRequiresFocus:]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/API/glib/WebKitSettings.cpp:
(webkitSettingsSetGetUserMediaRequiresFocus):
- UIProcess/API/glib/WebKitSettingsPrivate.h:
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseMap): Always add the WindowIsActive flag under xvfb.
(webkitWebViewBaseIsFocused): Always consider the view focused when WindowIsActive flag is present under xvfb.
Source/WTF:
Reviewed by Eric Carlson.
- Scripts/Preferences/WebPreferencesInternal.yaml:
Tools:
Reviewed by Eric Carlson.
Disable focus flag for testing to not require to focus the window.
- TestWebKitAPI/Tests/WebKit/GetUserMedia.mm:
(TestWebKitAPI::initializeMediaCaptureConfiguration):
(TestWebKitAPI::doCaptureMuteTest):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/GetUserMediaNavigation.mm:
(TestWebKitAPI::initializeMediaCaptureConfiguration):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/GetUserMediaReprompt.mm:
(TestWebKitAPI::initializeMediaCaptureConfiguration):
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/MediaStreamTrackDetached.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKit/UserMedia.cpp:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/AudioBufferSize.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/GPUProcess.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/GetDisplayMedia.mm:
(TestWebKitAPI::GetDisplayMediaTest::SetUp):
- TestWebKitAPI/Tests/WebKitCocoa/ProcessSwapOnNavigation.mm:
- TestWebKitAPI/Tests/WebKitCocoa/SpeechRecognition.mm:
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaDisabled.mm:
(MediaCaptureDisabledTest::SetUp):
- TestWebKitAPI/Tests/WebKitCocoa/UserMediaSimulateFailedSandbox.mm:
(MediaCaptureSimulateFailedSandbox::SetUp):
- TestWebKitAPI/Tests/WebKitGLib/TestUIClient.cpp:
(testWebViewUserMediaEnumerateDevicesPermissionCheck):
(testWebViewUserMediaPermissionRequests):
(testWebViewAudioOnlyUserMediaPermissionRequests):
LayoutTests:
Reviewed by Eric Carlson.
- fast/mediastream/MediaDevices-getUserMedia-expected.txt:
- 10:41 PM Changeset in webkit [288086] by
-
- 5 edits in trunk
Queue a task to fire MediaStreamTrack ended event
https://bugs.webkit.org/show_bug.cgi?id=235227
Reviewed by Eric Carlson.
Source/WebCore:
Adding a specific readyState slot to match the spec and queue a task to stop the track instead of firing the event synchronously.
Covered by updated test.
- Modules/mediastream/MediaStreamTrack.cpp:
- Modules/mediastream/MediaStreamTrack.h:
LayoutTests:
- fast/mediastream/media-stream-track-source-failure.html:
- 9:18 PM Changeset in webkit [288085] by
-
- 25 edits in trunk/Source
Fix C++20 build warnings with GCC
https://bugs.webkit.org/show_bug.cgi?id=235023
Reviewed by Alex Christensen.
Mostly related to deprecating operations between enums of different
types and not capturing this by default in lambdas.
Source/JavaScriptCore:
- assembler/X86Assembler.h: Casting enums to same type.
(JSC::X86Assembler::cmovcc):
(JSC::X86Assembler::jccRel32):
(JSC::X86Assembler::setccOpcode):
- b3/B3CheckSpecial.cpp: Capture this in lambda.
(JSC::B3::CheckSpecial::generate):
- b3/B3Type.cpp: Replace is_pod_v is is_standard_layout_v and
is_trivial_v
- bytecode/AccessCase.cpp: Capture this in lambda.
(JSC::AccessCase::generateImpl):
- bytecode/CallLinkInfo.cpp: Ditto.
(JSC::OptimizingCallLinkInfo::emitDirectFastPath):
(JSC::OptimizingCallLinkInfo::emitDirectTailCallFastPath):
(JSC::OptimizingCallLinkInfo::initializeDirectCall):
- dfg/DFGSpeculativeJIT.cpp: Ditto.
- dfg/DFGSpeculativeJIT64.cpp: Ditto.
(JSC::DFG::SpeculativeJIT::compile):
- jit/ICStats.h: Cast enums to same type.
(JSC::ICEvent::hash const):
- jit/JITArithmetic.cpp: Capture this in lambda.
(JSC::JIT::emitMathICSlow):
- jit/JITSizeStatistics.cpp: Ditto.
(JSC::JITSizeStatistics::markEnd):
- runtime/VM.cpp: Ditto.
(JSC::VM::deleteAllLinkedCode):
(JSC::VM::deleteAllCode):
(JSC::VM::shrinkFootprintWhenIdle):
- wasm/WasmAirIRGenerator.cpp: Ditto.
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::addTableGet):
(JSC::Wasm::AirIRGenerator::addTableSet):
(JSC::Wasm::AirIRGenerator::addTableInit):
(JSC::Wasm::AirIRGenerator::addTableFill):
(JSC::Wasm::AirIRGenerator::addTableCopy):
(JSC::Wasm::AirIRGenerator::addMemoryFill):
(JSC::Wasm::AirIRGenerator::addMemoryCopy):
(JSC::Wasm::AirIRGenerator::addMemoryInit):
(JSC::Wasm::AirIRGenerator::emitCheckAndPreparePointer):
(JSC::Wasm::AirIRGenerator::emitAtomicLoadOp):
(JSC::Wasm::AirIRGenerator::emitAtomicStoreOp):
(JSC::Wasm::AirIRGenerator::emitAtomicBinaryRMWOp):
(JSC::Wasm::AirIRGenerator::emitAtomicCompareExchange):
(JSC::Wasm::AirIRGenerator::atomicWait):
(JSC::Wasm::AirIRGenerator::atomicNotify):
(JSC::Wasm::AirIRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addCallIndirect):
(JSC::Wasm::AirIRGenerator::addCallRef):
(JSC::Wasm::AirIRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::AirIRGenerator::addOp<OpType::I64TruncUF32>):
- wasm/WasmB3IRGenerator.cpp: Ditto.
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::B3IRGenerator::addTableGet):
(JSC::Wasm::B3IRGenerator::addTableSet):
(JSC::Wasm::B3IRGenerator::addTableInit):
(JSC::Wasm::B3IRGenerator::addTableFill):
(JSC::Wasm::B3IRGenerator::addTableCopy):
(JSC::Wasm::B3IRGenerator::emitIndirectCall):
(JSC::Wasm::B3IRGenerator::addMemoryFill):
(JSC::Wasm::B3IRGenerator::addMemoryInit):
(JSC::Wasm::B3IRGenerator::addMemoryCopy):
(JSC::Wasm::B3IRGenerator::fixupPointerPlusOffsetForAtomicOps):
(JSC::Wasm::B3IRGenerator::atomicWait):
(JSC::Wasm::B3IRGenerator::atomicNotify):
(JSC::Wasm::B3IRGenerator::emitEntryTierUpCheck):
(JSC::Wasm::B3IRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::B3IRGenerator::addCall):
(JSC::Wasm::B3IRGenerator::addCallIndirect):
(JSC::Wasm::B3IRGenerator::addCallRef):
(JSC::Wasm::B3IRGenerator::emitChecksForModOrDiv):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncSF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I32TruncUF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF64>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncSF32>):
(JSC::Wasm::B3IRGenerator::addOp<OpType::I64TruncUF32>):
- yarr/YarrJIT.cpp: Ditto.
Source/WebCore:
- dom/ViewportArguments.h: Replace enum with constexpr ints as they're
compared to doubles in various places through ViewportArguments.cpp.
- dom/WheelEvent.h: Replace single-valued enum with constexpr
variable.
- platform/animation/Animation.h: Ditto.
- platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
Ditto.
(WebCore::CoordinatedGraphicsLayer::shouldDirectlyCompositeImage const):
- rendering/style/RenderStyleConstants.h: Merge two enums that are
used only in the context of being combined to form a third enum.
Source/WebKit:
- WebProcess/Inspector/WebInspector.cpp: Capture this in lambdas.
(WebKit::WebInspector::showConsole):
(WebKit::WebInspector::showResources):
(WebKit::WebInspector::showMainResourceForFrame):
(WebKit::WebInspector::startPageProfiling):
(WebKit::WebInspector::stopPageProfiling):
(WebKit::WebInspector::startElementSelection):
(WebKit::WebInspector::stopElementSelection):
Source/WTF:
- wtf/AutomaticThread.cpp: Capture this in lambda.
(WTF::AutomaticThread::start):
- 7:56 PM Changeset in webkit [288084] by
-
- 1 copy in tags/Safari-612.4.9.0.3
Tag Safari-612.4.9.0.3.
- 7:54 PM Changeset in webkit [288083] by
-
- 1 copy in tags/Safari-612.4.9.1.5
Tag Safari-612.4.9.1.5.
- 7:49 PM Changeset in webkit [288082] by
-
- 4 edits4 adds in branches/safari-612.4.9.0-branch
Cherry-pick r288078. rdar://problem/85801310
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:46 PM Changeset in webkit [288081] by
-
- 4 edits4 adds in branches/safari-612.4.9.1-branch
Cherry-pick r288078. rdar://problem/85801310
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp: (WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h: (WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288078 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 7:41 PM Changeset in webkit [288080] by
-
- 8 edits in branches/safari-612.4.9.1-branch/Source
Versioning.
WebKit-7612.4.9.1.5
- 7:36 PM Changeset in webkit [288079] by
-
- 8 edits in branches/safari-612.4.9.0-branch/Source
Versioning.
WebKit-7612.4.9.0.3
- 7:35 PM Changeset in webkit [288078] by
-
- 4 edits4 adds in trunk
database names leak cross-origin within the same browser session
https://bugs.webkit.org/show_bug.cgi?id=233548
Reviewed by Geoff Garen.
Source/WebCore:
Test: http/tests/security/getdatabases-crossorigin.html
- Modules/indexeddb/server/IDBServer.cpp:
(WebCore::IDBServer::IDBServer::getAllDatabaseNamesAndVersions): When iterating the set of all open
UniqueIDBDatabases, only add them to the results list if their origins match.
- page/ClientOrigin.h:
(WebCore::ClientOrigin::operator!= const):
LayoutTests:
- http/tests/security/getdatabases-crossorigin-expected.txt: Added.
- http/tests/security/getdatabases-crossorigin.html: Added.
- http/tests/security/resources/getdatabases-otherframe.html: Added.
- http/tests/security/resources/getdatabases-otherwindow.html: Added.
- 5:04 PM Changeset in webkit [288077] by
-
- 2 edits in trunk/Source/WebCore
[Win] Use character names instead of codepoint values in overrideControlCharacters()
https://bugs.webkit.org/show_bug.cgi?id=235283
Reviewed by Cameron McCormack.
It's simply easier to read.
No new tests because there is no behavior change.
- platform/graphics/Font.cpp:
(WebCore::overrideControlCharacters):
- 2:10 PM Changeset in webkit [288076] by
-
- 9 edits in trunk/Source
Ensure in flight layer transactions don't accumulate further canvas drawing
https://bugs.webkit.org/show_bug.cgi?id=231163
<rdar://problem/83863292>
Reviewed by Simon Fraser.
Source/WebCore:
When UI side compositing is enabled (as it is on iOS), we build a
layer tree transaction in RemoteLayerTreeDrawingArea::updateRendering to
send off to the UI process. At a high level, updateRendering does this:
- Run any requestAnimationFrame callbacks
- Iterate over the composited layers to draw their contents into the layer backing stores
- Dispatch a task to a different thread to flush the contexts of the layer backing stores and then send the transaction to the UI process
Step 3 is done off a separate task as an optimization, to get the
drawing work queued up by step 2 happening in parallel to any work the
page may day once updateRendering is finished. This can be a problem
when:
- GPU process canvas rendering is enabled (but DOM rendering is disabled)
- we have accelerated ImageBuffers for both layer backing stores and canvas backing stores
- the page does canvas drawing between steps 2 and 3, which affects the contents of a canvas backing store IOSurface that was drawn into a layer backing store IOSurface while building the transaction
The way we draw the canvas contents into the layer is by creating a
CGImage from the canvas backing store ImageBuffer's IOSurface.
Normally, if we draw into an IOSurface that has been wrapped by a
CGImage, this will cause the CGImage to obtain a unique copy of the
IOSurface's pixels, rather than continue holding on to the IOSurface
itself.
When the drawing of this CGImage on to the layer backing store
IOSurface happens, the "draw image" command is queued up to be
processed later. It's only when the flush happens in step 3 above that
the drawing occurs. This means that the CGImage wrapping the IOSurface
exists until that flush.
But while the CGImage does exist, it's in the Web process, and the
canvas drawing on to the same IOSurface happens in the GPU process.
Since QuartzCore doesn't know of its existence, it doesn't cause the
copy-on-write to occur. The effect of this is that subsequent page
drawing on to the canvas can make its way into the layer transaction
unexpectedly.
This patch induces the copy-on-write in the Web process when needed,
by tracking whether a canvas has been drawn into a layer backing
store and the layer transaction flush hasn't happened yet. Just before
we do any more drawing on the canvas, if we are in this state, we
perform a no-op drawing command on the IOSurface, then flush, to make
the CGImage copy the IOSurface data out.
- html/HTMLCanvasElement.cpp:
(WebCore::imageDrawingRequiresGuardAgainstUseByPendingLayerTransaction):
We only need to induce the CGImage copy-on-write behavior if both the
layer and canvas backing stores are accelerated, the canvas
ImageBuffer is remote, and the layer ImageBuffer is not remote.
(WebCore::HTMLCanvasElement::paint):
(WebCore::HTMLCanvasElement::drawingContext const):
Use drawingContext as a convenient single place to check whether we
are performing the first drawing command before the layer tree
transaction flush has happened.
- html/HTMLCanvasElement.h:
- page/Page.h:
(WebCore::Page::setIsAwaitingLayerTreeTransactionFlush):
(WebCore::Page::isAwaitingLayerTreeTransactionFlush const):
- platform/graphics/ImageBufferBackend.h:
(WebCore::ImageBufferBackend::ensureNativeImagesHaveCopiedBackingStore):
- platform/graphics/cg/ImageBufferIOSurfaceBackend.cpp:
(WebCore::ImageBufferIOSurfaceBackend::ensureNativeImagesHaveCopiedBackingStore):
The flush is needed since the CGImage wrapping the IOSurface will only
copy the pixel data out once the no-op drawing command is processed.
- platform/graphics/cg/ImageBufferIOSurfaceBackend.h:
Source/WebKit:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::willCommitLayerTree):
(WebKit::WebPage::didFlushLayerTreeAtTime):
Inform the WebCore::Page about the state of the layer tree transaction
building.
- WebProcess/WebPage/WebPage.h:
- 1:44 PM Changeset in webkit [288075] by
-
- 2 edits in trunk/Source/WTF
[WTF] Add TollFreeBridging.h to Xcode project
Unreviewed follow-up for r284038:
Switch WTF::bridge_cast to use type traits
<https://webkit.org/b/231467>
<rdar://problem/84050614>
- WTF.xcodeproj/project.pbxproj:
- Add TollFreeBridging.h to the project.
- 1:34 PM Changeset in webkit [288074] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
REGRESSION (r286603): Leak of three NSMutableDictionary objects each time rx::DisplayMtl::getMetalDeviceMatchingAttribute() is called
<https://webkit.org/b/235278>
<rdar://problem/87653812>
Reviewed by Darin Adler.
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::getMetalDeviceMatchingAttribute):
- Make use of mtl::adoptObjCObj<> so these objects are relaseed when the method returns.
- 12:51 PM Changeset in webkit [288073] by
-
- 2 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
After r288052 added editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html,
WinCairo WK1 tests subsequent to the test case had been failing.
It looked like DRT output the result of the privous test case.
- platform/wincairo-wk1/TestExpectations: Skip the test case as well as AppleWin does.
- 1:08 AM Changeset in webkit [288072] by
-
- 2 edits in trunk/Tools/buildstream
[Flatpak SDK] local build is broken
https://bugs.webkit.org/show_bug.cgi?id=235265
Reviewed by Philippe Normand.
The local build of Flatpak SDK is broken due to a missing reference to the freedesktop sdk.
This change updates the reference.
- elements/freedesktop-sdk.bst:
Jan 15, 2022:
- 10:22 PM Changeset in webkit [288071] by
-
- 18 edits in trunk
CSS Gradients: interpolation mode should default to OKLab if any non-legacy color syntax colors are used in the stops
https://bugs.webkit.org/show_bug.cgi?id=235071
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update test to also include non-legacy color syntax stops and update results
to match new expected behavior.
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-computed-expected.txt:
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-computed.html:
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-valid-expected.txt:
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-valid.html:
Source/WebCore:
Change the default interpolation mode for CSS gradients that have any color stops specified using non-legacy
color syntax (e.g. color(...), lab(...), oklch(...), etc.) to OKLab from sRGB.
This is the current behavior specified (kind of, it could be clearer) by the spec, but I have concerns about
whether it is a good idea for the behavior to be dependent on what syntax style you use. This has been raised
with the editors at https://github.com/w3c/csswg-drafts/issues/6914.
To implement, we now compute the default color interpolation method from the parsed stop list and pass the
result to CSSGradientValue along with the stops and other data. The CSSGradientValue needs this information
avoid computing on serialization, since we need to conditionally exclude either "in srgb" or "in oklab"
depending on which one is computed.
To continue passing the interpolation color method to the CSSGradientValue constructor so it can be immutable,
we now need to consume all the color stops before we can create the CSSGradientValue. This also allows us to
pass the stops to the constructor and make them immutable as well.
- css/CSSGradientValue.cpp:
(WebCore::CSSGradientValue::equals const):
(WebCore::appendColorInterpolationMethod):
(WebCore::CSSLinearGradientValue::customCSSText const):
(WebCore::CSSRadialGradientValue::customCSSText const):
(WebCore::CSSConicGradientValue::customCSSText const):
- css/CSSGradientValue.h:
(WebCore::CSSGradientValue::setSecondY):
(WebCore::CSSGradientValue::CSSGradientValue):
(WebCore::CSSGradientValue::defaultColorInterpolationMethod const):
(WebCore::CSSGradientValue::addStop): Deleted.
(WebCore::CSSGradientValue::doneAddingStops): Deleted.
(WebCore::CSSGradientValue::hasAtLeastTwoStops const): Deleted.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradient):
(WebCore::CSSPropertyParserHelpers::consumeGradientColorStops):
(WebCore::CSSPropertyParserHelpers::consumePrefixedRadialGradient):
(WebCore::CSSPropertyParserHelpers::computeGradientColorInterpolationMethod):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumePrefixedLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeConicGradient):
- html/HTMLInputElement.cpp:
(WebCore::autoFillStrongPasswordMaskImage):
Source/WebKitLegacy/win:
Add support for tests enabling the CSSGradientInterpolationColorSpacesEnabled preference.
- WebPreferences.cpp:
(WebPreferences::cssGradientInterpolationColorSpacesEnabled):
- WebPreferences.h:
- WebView.cpp:
(WebView::notifyPreferencesChanged):
Tools:
- DumpRenderTree/TestOptions.cpp:
(WTR::TestOptions::defaults):
Add default for Windows WebKitLegacy testing which still requires it.
LayoutTests:
Update test to use an explicit interpolation method when using non-legacy colors to maintain srgb interpolation.
- css3/color/gradients.html:
- 8:43 PM Changeset in webkit [288070] by
-
- 29 edits3 copies2 deletes in trunk
[LFC][IFC] Enable content with complex font codepath for IFC
https://bugs.webkit.org/show_bug.cgi?id=235266
Reviewed by Antti Koivisto.
Source/WebCore:
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForFontAndText):
LayoutTests:
- TestExpectations:
- fast/text/simple-line-layout-simple-text-but-complex-font-path-expected.html: Removed.
- fast/text/simple-line-layout-simple-text-but-complex-font-path.html: Removed.
- platform/mac-bigsur/fast/dom/52776-expected.txt:
- platform/mac-bigsur/fast/text/international/bidi-neutral-run-expected.txt:
- platform/mac-catalina/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt:
- platform/mac/fast/dom/52776-expected.txt:
- platform/mac/fast/text/atsui-negative-spacing-features-expected.txt:
- platform/mac/fast/text/atsui-spacing-features-expected.txt:
- platform/mac/fast/text/combining-enclosing-keycap-expected.txt:
- platform/mac/fast/text/international/bidi-control-chars-treated-as-ZWS-expected.txt:
- platform/mac/fast/text/international/bidi-linebreak-001-expected.txt:
- platform/mac/fast/text/international/bidi-linebreak-002-expected.txt:
- platform/mac/fast/text/international/bidi-linebreak-003-expected.txt:
- platform/mac/fast/text/international/bidi-neutral-run-expected.txt:
- platform/mac/fast/text/wide-zero-width-space-expected.txt:
- platform/mac/platform/mac/fast/text/international/Geeza-Pro-vertical-metrics-adjustment-expected.txt:
- platform/win/TestExpectations:
- 5:33 PM Changeset in webkit [288069] by
-
- 65 edits in trunk/Source
Introduce dynamicDowncast<>() for convenience
https://bugs.webkit.org/show_bug.cgi?id=235259
Reviewed by Darin Adler.
Source/WebCore:
Start adopting dynamicDowncast<>().
- animation/WebAnimation.cpp:
(WebCore::WebAnimation::setTimeline):
(WebCore::WebAnimation::willChangeRenderer):
(WebCore::WebAnimation::timingDidChange):
(WebCore::WebAnimation::invalidateEffect):
(WebCore::WebAnimation::finishNotificationSteps):
(WebCore::WebAnimation::resolve):
(WebCore::WebAnimation::persist):
(WebCore::WebAnimation::commitStyles):
- bindings/js/JSEventListener.cpp:
(WebCore::JSEventListener::handleEvent):
- bindings/js/JSLazyEventListener.cpp:
(WebCore::isCloneInShadowTreeOfSVGUseElement):
(WebCore::JSLazyEventListener::initializeJSFunction const):
- css/CSSFontSelector.cpp:
(WebCore::CSSFontSelector::fontRangesForFamily):
- css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::insertRule):
- dom/Attr.cpp:
(WebCore::Attr::style):
- dom/BroadcastChannel.cpp:
(WebCore::BroadcastChannel::MainThreadBridge::ensureOnMainThread):
(WebCore::BroadcastChannel::isEligibleForMessaging const):
- dom/CharacterData.cpp:
(WebCore::CharacterData::parserAppendData):
(WebCore::CharacterData::setDataAndUpdate):
- dom/CharacterData.h:
(WebCore::Node::length const):
- dom/ComposedTreeAncestorIterator.h:
(WebCore::ComposedTreeAncestorIterator::traverseParent):
(WebCore::ComposedTreeAncestorAdapter::begin):
- dom/ComposedTreeIterator.h:
(WebCore::firstChildInComposedTreeIgnoringUserAgentShadow):
- dom/ContainerNode.cpp:
(WebCore::ContainerNode::removeNodeWithScriptAssertion):
(WebCore::ContainerNode::removeSelfOrChildNodesForInsertion):
(WebCore::destroyRenderTreeIfNeeded):
(WebCore::containsIncludingHostElements):
(WebCore::checkAcceptChild):
- dom/ContainerNode.h:
(WebCore::Node::countChildNodes const):
(WebCore::Node::traverseToChildAt const):
(WebCore::Node::firstChild const):
(WebCore::Node::lastChild const):
- dom/Document.cpp:
(WebCore::widgetForElement):
(WebCore::Document::buildAccessKeyCache):
(WebCore::Document::adjustFocusedNodeOnNodeRemoval):
- dom/Element.cpp:
(WebCore::Element::insertedIntoAncestor):
(WebCore::Element::removedFromAncestor):
- dom/ElementInlines.h:
(WebCore::Node::parentElement const):
- dom/EventDispatcher.cpp:
(WebCore::EventDispatcher::dispatchEvent):
- dom/MouseEvent.cpp:
(WebCore::MouseEvent::toElement const):
(WebCore::MouseEvent::fromElement const):
- dom/Node.cpp:
(WebCore::Node::renderBox const):
(WebCore::Node::renderBoxModelObject const):
(WebCore::Node::containingShadowRoot const):
(WebCore::Node::compareDocumentPosition):
- dom/Position.cpp:
(WebCore::Position::containerText const):
- dom/TextNodeTraversal.cpp:
(WebCore::TextNodeTraversal::contentsAsString):
- dom/TreeScope.cpp:
(WebCore::TreeScope::elementsFromPoint):
- dom/TypedElementDescendantIterator.h:
(WebCore::ElementDescendantRange<ElementType>::from const):
(WebCore::InclusiveElementDescendantRange<ElementType>::from const):
- dom/VisitedLinkState.cpp:
(WebCore::linkHashForElement):
- dom/messageports/MessagePortChannelProvider.cpp:
(WebCore::MessagePortChannelProvider::fromContext):
- editing/Editing.cpp:
(WebCore::enclosingBlock):
- html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::ownerSelectElement const):
- html/HTMLPlugInImageElement.cpp:
(WebCore::HTMLPlugInImageElement::renderEmbeddedObject const):
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::create):
- layout/Verification.cpp:
(WebCore::Layout::outputMismatchingComplexLineInformationIfNeeded):
- page/AutoscrollController.cpp:
(WebCore::AutoscrollController::updateAutoscrollRenderer):
- page/DOMTimer.cpp:
(WebCore::DOMTimer::fired):
- page/DragController.cpp:
(WebCore::asFileInput):
(WebCore::DragController::operationForLoad):
- platform/DragImage.cpp:
(WebCore::ScopedNodeDragEnabler::ScopedNodeDragEnabler):
- platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
(WebCore::SourceBufferPrivateAVFObjC::setCDMInstance):
- rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::computeLogicalBoxHeights):
(WebCore::placeChildInlineBoxesInBlockDirection):
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::layoutBlockChild):
(WebCore::RenderBlockFlow::marginValuesForChild const):
(WebCore::RenderBlockFlow::adjustBlockChildForPagination):
(WebCore::RenderBlockFlow::positionNewFloats):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::findAutoscrollable):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::imageOrientation const):
- rendering/RenderFileUploadControl.cpp:
(WebCore::RenderFileUploadControl::uploadButton const):
- rendering/RenderImage.cpp:
(WebCore::RenderImage::updateInnerContentRect):
(WebCore::RenderImage::paintIntoRect):
- rendering/RenderInline.cpp:
(WebCore::RenderInline::mayAffectLayout const):
- rendering/RenderLayer.h:
(WebCore::RenderLayer::renderBox const):
- rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
- rendering/RenderListItem.cpp:
(WebCore::RenderListItem::updateValueNow const):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::offsetParent const):
- rendering/RenderTableCol.cpp:
(WebCore::RenderTableCol::table const):
- rendering/RenderTreeAsText.cpp:
(WebCore::writeDebugInfo):
- rendering/RenderView.cpp:
(WebCore::RenderView::paintBoxDecorations):
- rendering/SelectionRangeData.cpp:
(WebCore::containingBlockBelowView):
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::normalizeTreeAfterStyleChange):
- rendering/updating/RenderTreeUpdater.cpp:
(WebCore::RenderTreeUpdater::Parent::Parent):
- style/ChildChangeInvalidation.h:
(WebCore::Style::ChildChangeInvalidation::ChildChangeInvalidation):
- svg/SVGSVGElement.cpp:
(WebCore::SVGSVGElement::findViewAnchor const):
(WebCore::SVGSVGElement::findRootAnchor const):
- testing/Internals.cpp:
(WebCore::bitmapImageFromImageElement):
(WebCore::pdfDocumentImageFromImageElement):
Source/WebKit:
Start adopting dynamicDowncast<>().
- WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::didEnterFullScreen):
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::paymentCoordinator):
Source/WebKitLegacy/mac:
Start adopting dynamicDowncast<>().
- DOM/DOMUIKitExtensions.mm:
(-[DOMHTMLElement structuralComplexityContribution]):
- WebView/WebHTMLRepresentation.mm:
(inputElementFromDOMElement):
Source/WTF:
Introduce dynamicDowncast<>() for convenience. It can result in more concise code for the common pattern
where we callis<T>(x)and thendowncast<T>(x).
- wtf/TypeCasts.h:
(WTF::dynamicDowncast):
- 3:10 PM Changeset in webkit [288068] by
-
- 2 edits in trunk/Tools
Only use
diff --binaryswitch on Windows
<https://webkit.org/b/235268>
<rdar://problem/87490487>
Reviewed by Alexey Proskuryakov.
- Scripts/VCSUtils.pm:
(mergeChangeLogs):
- Only pass
--binaryswitch on Windows.
- 2:29 PM Changeset in webkit [288067] by
-
- 39 edits in trunk/Source/WebCore
First step to fix hacked isReplaced: Rename isReplaced functions to isReplacedOrInlineBlock
https://bugs.webkit.org/show_bug.cgi?id=235258
Reviewed by Alan Bujtas.
The isReplaced function returns true for things that are not CSS replaced
elements. That's confusing and not good. We want to straighten this out.
In this first step, we rename the isReplaced and setReplaced functions
to isReplacedOrInlineBlock and setReplacedOrInlineBlock. There are still
functions with out arguments named "isReplaced", which we can deal with
later. Other later clean-up and clarification could one day change what
bits we store in RenderStyle and possibly even remove this function entirely.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::nextContinuation):
- accessibility/atk/WebKitAccessible.cpp:
(interfaceMaskFromObject):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::isNonReplacedInline):
- dom/Node.cpp:
(WebCore::Node::renderRect):
- dom/Position.cpp:
(WebCore::endsOfNodeAreVisuallyDistinctPositions):
- editing/VisiblePosition.cpp:
(WebCore::VisiblePosition::leftVisuallyDistinctCandidate const):
(WebCore::VisiblePosition::rightVisuallyDistinctCandidate const):
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForChild):
- layout/integration/LayoutIntegrationLineLayout.cpp:
(WebCore::LayoutIntegration::LineLayout::paint):
- page/TextIndicator.cpp:
(WebCore::hasNonInlineOrReplacedElements):
- page/ios/FrameIOS.mm:
(WebCore::Frame::renderRectForPoint const):
- rendering/CaretRectComputation.cpp:
(WebCore::computeCaretRectForBox):
- rendering/LegacyInlineBox.cpp:
(WebCore::LegacyInlineBox::adjustPosition):
(WebCore::LegacyInlineBox::canAccommodateEllipsis const):
- rendering/LegacyInlineFlowBox.cpp:
(WebCore::LegacyInlineFlowBox::addToLine):
(WebCore::LegacyInlineFlowBox::computeOverAnnotationAdjustment const):
(WebCore::LegacyInlineFlowBox::computeUnderAnnotationAdjustment const):
- rendering/LegacyInlineIterator.h:
(WebCore::isIteratorTarget):
- rendering/LegacyLineLayout.cpp:
(WebCore::LegacyLineLayout::computeInlineDirectionPositionsForLine):
(WebCore::LegacyLineLayout::layoutLineBoxes):
- rendering/LegacyRootInlineBox.cpp:
(WebCore::LegacyRootInlineBox::ascentAndDescentForBox const):
(WebCore::LegacyRootInlineBox::verticalPositionForBox):
(WebCore::LegacyRootInlineBox::includeLeadingForBox const):
(WebCore::LegacyRootInlineBox::includeFontForBox const):
(WebCore::LegacyRootInlineBox::includeGlyphsForBox const):
(WebCore::LegacyRootInlineBox::includeInitialLetterForBox const):
(WebCore::LegacyRootInlineBox::includeMarginForBox const):
- rendering/RenderBlock.cpp:
(WebCore::RenderBlock::removePositionedObjectsIfNeeded):
(WebCore::RenderBlock::styleWillChange):
(WebCore::RenderBlock::simplifiedNormalFlowLayout):
(WebCore::RenderBlock::paintChild):
(WebCore::RenderBlock::positionForPoint):
(WebCore::RenderBlock::lineHeight const):
(WebCore::RenderBlock::baselinePosition const):
(WebCore::RenderBlock::firstLineBlock const):
(WebCore::findFirstLetterBlock):
(WebCore::RenderBlock::getFirstLetter):
- rendering/RenderBlock.h:
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::rebuildFloatingObjectSetFromIntrudingFloats):
(WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
(WebCore::InlineMinMaxIterator::next):
(WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths const):
- rendering/RenderBox.cpp:
(WebCore::RenderBox::offsetFromContainer const):
(WebCore::RenderBox::positionLineBox):
(WebCore::RenderBox::computeLogicalHeight const):
(WebCore::RenderBox::shouldTreatChildAsReplacedInTableCells const):
(WebCore::RenderBox::computePositionedLogicalWidth const):
(WebCore::RenderBox::computePositionedLogicalHeight const):
(WebCore::RenderBox::avoidsFloats const):
(WebCore::RenderBox::isUnsplittableForPagination const):
(WebCore::RenderBox::lineHeight const):
(WebCore::RenderBox::baselinePosition const):
- rendering/RenderBox.h:
(WebCore::RenderBox::shouldComputeSizeAsReplaced const):
- rendering/RenderBoxModelObject.h:
(WebCore::RenderBoxModelObject::canHaveBoxInfoInFragment const):
- rendering/RenderDeprecatedFlexibleBox.cpp:
(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
(WebCore::RenderDeprecatedFlexibleBox::clearLineClamp):
- rendering/RenderElement.cpp:
(WebCore::RenderElement::getLeadingCorner const):
(WebCore::RenderElement::getTrailingCorner const):
(WebCore::RenderElement::absoluteAnchorRect const):
- rendering/RenderFullScreen.cpp:
(WebCore::RenderFullScreen::RenderFullScreen):
- rendering/RenderLineBoxList.cpp:
(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
- rendering/RenderListMarker.cpp:
(WebCore::RenderListMarker::RenderListMarker):
- rendering/RenderObject.cpp:
(WebCore::RenderObject::containingBlockForPositionType):
(WebCore::RenderObject::caretMaxOffset const):
- rendering/RenderObject.h:
(WebCore::RenderObject::hasIntrinsicAspectRatio const):
(WebCore::RenderObject::isReplacedOrInlineBlock const):
(WebCore::RenderObject::setReplacedOrInlineBlock):
(WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
(WebCore::RenderObject::isAtomicInlineLevelBox const):
(WebCore::RenderObject::isReplaced const): Deleted.
(WebCore::RenderObject::setReplaced): Deleted.
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::RenderReplaced):
- rendering/RenderReplica.cpp:
(WebCore::RenderReplica::RenderReplica):
- rendering/RenderRubyRun.cpp:
(WebCore::RenderRubyRun::RenderRubyRun):
- rendering/line/BreakingContext.h:
(WebCore::BreakingContext::initializeForCurrentObject):
(WebCore::BreakingContext::canBreakAtThisPosition):
(WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
- rendering/line/LineBreaker.cpp:
(WebCore::LineBreaker::nextLineBreak):
- rendering/updating/RenderTreeBuilderInline.cpp:
(WebCore::nextContinuation):
Renamed in all these places. Also added one FIXME for something
Alan pointed out we'd like to do in the future.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::removeOnlyThisLayer): Removed unhelpful use
of RenderLayer::reflection function just to find out whether the
RenderLayer::reflectionLayer function will return null or not.
- rendering/RenderLayer.h: Removed unneeded RenderLayer::reflection.
- rendering/RenderLayerCompositor.cpp: Removed an unneeded include
of RenderReplica.h.
- 1:35 PM Changeset in webkit [288066] by
-
- 4 edits in trunk
[JSC] Fix Date functions' argument coercion
https://bugs.webkit.org/show_bug.cgi?id=235271
Reviewed by Alexey Shvayka.
JSTests:
- test262/expectations.yaml:
Source/JavaScriptCore:
Even if the input Date is NaN or the result looks like NaN, we need to coerce passed
arguments to Number[1] since it has observable side effect.
[1]: https://github.com/tc39/ecma262/pull/2136
- runtime/DatePrototype.cpp:
(JSC::applyToNumbersToTrashedArguments):
(JSC::fillStructuresUsingTimeArgs):
(JSC::fillStructuresUsingDateArgs):
(JSC::setNewValueFromTimeArgs):
(JSC::setNewValueFromDateArgs):
- 1:32 PM Changeset in webkit [288065] by
-
- 11 edits5 deletes in trunk
[JSC] Fix misc issues in WebAssembly.Exception
https://bugs.webkit.org/show_bug.cgi?id=235261
Reviewed by Alexey Shvayka.
JSTests:
- wasm/stress/create-tag-from.js:
- wasm/v8/exceptions-api.js:
(TestGetArg):
LayoutTests/imported/w3c:
Remove web-platform-tests/wasm/jsapi/exception/type.tentative.any.js test since
this behavior is not defined in wasm exception-handling and/or wasm js-types spec.
Probably this test was confused with WebAssembly.Tag (and that test is in wasm/jsapi/tag/).
Also change RangeError to TypeError according to the spec[1].
[1]: https://webassembly.github.io/exception-handling/js-api/index.html#dom-exception-getarg
- web-platform-tests/wasm/jsapi/exception/getArg.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.js:
(test):
- web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/exception/toString.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/exception/toString.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/exception/type.tentative.any-expected.txt: Removed.
- web-platform-tests/wasm/jsapi/exception/type.tentative.any.html: Removed.
- web-platform-tests/wasm/jsapi/exception/type.tentative.any.js: Removed.
- web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker-expected.txt: Removed.
- web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker.html: Removed.
Source/JavaScriptCore:
- Add @toStringTag to WebAssembly.Exception.prototype.
- Add argument count check for WebAssembly.Exception methods (since it is specified in WebIDL and these methods do not have optional parameters).
- wasm/js/WebAssemblyExceptionPrototype.cpp:
(JSC::WebAssemblyExceptionPrototype::finishCreation):
(JSC::JSC_DEFINE_HOST_FUNCTION):
- 1:17 PM Changeset in webkit [288064] by
-
- 9 edits in trunk
[JSC] Fix misc WebAssembly.Table issues
https://bugs.webkit.org/show_bug.cgi?id=235262
Reviewed by Alexey Shvayka.
LayoutTests/imported/w3c:
Fix length of WebAssembly.Table.set from 2 to 1.
According to the spec[1], it should be 1 since the second argument is an optional.
Also fix stray argument test. Previously, it was stray argument. But after the update
of the wasm spec, the second argument of Table constructor can be used for initial value.
So, WebAssembly.Table "anyfunc" with {} initial value throws an error since it is not
a function. This fixes a test, passing null for the second argument, and adding third
stray argument for the stray argument test.
[1]: https://webassembly.github.io/spec/js-api/index.html#tables
- web-platform-tests/wasm/jsapi/idlharness.any-expected.txt:
- web-platform-tests/wasm/jsapi/idlharness.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/interface.any.js:
- web-platform-tests/wasm/jsapi/table/constructor.any-expected.txt:
- web-platform-tests/wasm/jsapi/table/constructor.any.js:
(test):
- web-platform-tests/wasm/jsapi/table/constructor.any.worker-expected.txt:
Source/JavaScriptCore:
- wasm/js/WebAssemblyTablePrototype.cpp:
- 12:32 PM Changeset in webkit [288063] by
-
- 2 edits in trunk/Tools
Bug 234910 - jsc_fuz/wktr: crash with exotic settings
https://bugs.webkit.org/show_bug.cgi?id=234910
Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-15
Reviewed by Michael Saboff.
ASAN release build of WebKitTestRunner and DumpRenderTree may crash when loading the file
with content "<script>'a'+Math.floor()+'a';</script>" when the ASAN option
detect_stack_use_after_return=1 is set and when the JSC option slowPathAllocsBetweenGCs takes
to specific values. This is because the 'TestRendered' string of WTR::sendTestRenderedEvent
can be garbage collected. This patch fixes that issue by protecting that string. The fix has
been verified for all slowPathAllocsBetweenGCs values from 1 to 100.
- TestRunnerShared/ReftestFunctions.cpp:
(WTR::sendTestRenderedEvent): Protect "TestRendered" JSString from garbage collection until
the event is dispatched.
- 12:24 PM Changeset in webkit [288062] by
-
- 92 edits4 copies134 adds in trunk/JSTests
[JSC] Upgrade test262
https://bugs.webkit.org/show_bug.cgi?id=235263
Reviewed by Alexey Shvayka.
Update to the latest one.
- test262/config.yaml:
- test262/expectations.yaml:
- test262/test262-Revision.txt:
- 12:10 PM Changeset in webkit [288061] by
-
- 6 edits in trunk
web-platform-tests/html/rendering/dimension-attributes.html is failing when table width is set to 0px
https://bugs.webkit.org/show_bug.cgi?id=235267
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
- web-platform-tests/html/rendering/dimension-attributes-expected.txt:
Source/WebCore:
This patch is based on the following Blink commit:
https://chromium-review.googlesource.com/c/chromium/src/+/2458587
This only applies to width (not height) - see:
See also: https://drafts.csswg.org/css-tables-3/#mapping
- html/HTMLElement.cpp:
(WebCore::HTMLElement::addHTMLLengthToStyle):
- html/HTMLElement.h:
- html/HTMLTableElement.cpp:
(WebCore::HTMLTableElement::collectPresentationalHintsForAttribute):
- 10:58 AM Changeset in webkit [288060] by
-
- 9 edits in trunk/Source/WebCore
Share some code that looks at visibility in order to short-circuit repaint rect computation
https://bugs.webkit.org/show_bug.cgi?id=235242
Reviewed by Dean Jackson.
There were five instances of this common code pattern that short-circuited clippedOverflowRect()
when we know that the renderer is hidden with visibility:hidden, so factor it into a common
function on RenderElement.
- rendering/RenderBox.cpp:
(WebCore::RenderBox::clippedOverflowRect const):
- rendering/RenderBox.h:
- rendering/RenderElement.cpp:
(WebCore::RenderElement::isInsideEntirelyHiddenLayer const):
- rendering/RenderElement.h:
- rendering/RenderReplaced.cpp:
(WebCore::RenderReplaced::clippedOverflowRect const):
- rendering/svg/LegacyRenderSVGRoot.cpp:
(WebCore::LegacyRenderSVGRoot::clippedOverflowRect const):
- rendering/svg/RenderSVGModelObject.cpp:
(WebCore::RenderSVGModelObject::clippedOverflowRect const):
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::clippedOverflowRect const):
- 10:51 AM Changeset in webkit [288059] by
-
- 4 edits in trunk/Source/WebCore
Make a function that returns the ordered list of top layer RenderLayers
https://bugs.webkit.org/show_bug.cgi?id=235251
Reviewed by Alan Bujtas.
Factor the code in RenderLayer::rebuildZOrderLists() that generates the list of
top-layer RenderLayers into its own function.
Add Document::hasTopLayerElement() to avoid calling it when there are no top layer
elements.
- dom/Document.h:
(WebCore::Document::hasTopLayerElement const):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::rebuildZOrderLists):
- rendering/RenderLayer.h:
- 9:23 AM Changeset in webkit [288058] by
-
- 10 edits in trunk
AX: Fix disabled-controls-not-focusable.html in isolated tree mode by updating AXPropertyName::CanSetFocusAttribute when the disabled attribute changes
https://bugs.webkit.org/show_bug.cgi?id=235246
Reviewed by Chris Fleizach.
Source/WebCore:
Fixes disabled-controls-not-focusable.html in isolated tree mode.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleAttributeChange):
Post a AXDisabledStateChanged notification when the disabled attribute changes.
(WebCore::AXObjectCache::updateIsolatedTree):
Handle the AXDisabledStateChanged notification to update AXPropertyName::CanSetFocusAttribute.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::updateNodeProperty):
Re-compute AXPropertyName::CanSetFocusAttribute when asked to do so.
Tools:
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.h:
- WebKitTestRunner/InjectedBundle/mac/AccessibilityUIElementMac.mm:
(WTR::AccessibilityUIElement::isAttributeSettable):
Use new isAttributeSettable(NSString *attribute) helper function.
(WTR::AccessibilityUIElement::isAttributeSettable const):
Added. Dispatches call to accessibilityIsAttributeSettable on the AX thread.
(WTR::AccessibilityUIElement::isFocusable const):
(WTR::AccessibilityUIElement::isSelectable const):
Use new isAttributeSettable to reduce repetition.
LayoutTests:
- accessibility/disabled-controls-not-focusable-expected.txt:
- accessibility/disabled-controls-not-focusable.html:
Make this test async so that it can pass in isolated tree mode. This
test must be async because it dynamically changes the disabled
attribute via JS.
- platform/win/accessibility/disabled-controls-not-focusable-expected.txt:
Update Windows-specific expectation to match test changes.
- 9:21 AM Changeset in webkit [288057] by
-
- 4 edits in trunk
[css-contain] Fix contain-size-replaced-002.html
https://bugs.webkit.org/show_bug.cgi?id=235175
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-15
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
If the SVG root has zero content width and/or height, there is no point
in painting the children contents.
Test: imported/w3c/web-platform-tests/css/css-contain/contain-size-replaced-002.html
- rendering/svg/LegacyRenderSVGRoot.cpp:
(WebCore::LegacyRenderSVGRoot::paintReplaced):
LayoutTests:
- 9:11 AM Changeset in webkit [288056] by
-
- 5 edits in trunk/Source/WebCore
AX: Remove AXAriaAttributeChanged notification because it's not used by anything
https://bugs.webkit.org/show_bug.cgi?id=235253
Reviewed by Chris Fleizach.
Nothing uses AXAriaAttributeChanged, but we still spend time processing
it through the notification pipeline (postNotification -> m_notificationsToPost -> updateIsolatedTree(notifications) + postPlatformNotification(notifications)).
This patch deletes it.
- accessibility/AXLogger.cpp:
(WebCore::operator<<):
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::handleAttributeChange):
- accessibility/AXObjectCache.h:
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
- 5:36 AM Changeset in webkit [288055] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] imported/w3c/web-platform-tests/css/css-text/word-break/word-break-normal-ar-000.html fails with incorrect run position
https://bugs.webkit.org/show_bug.cgi?id=235011
Reviewed by Antti Koivisto.
IFC (inherited from simple line layout) uses this technique of measuring the content with the trailing whitespace
and then simply subtract the whitespace width. It enables us to keep pushing content to the line without re-measuring it each time.
(the "non-whitespace + whitespace" pattern is extremely common for IFC content).
However in some cases when the trailing whitespace is trimmed, subtracting the trimmed width from the
content width instead of measuring it produces a visually incorrect result.
This patch fixes the most obvious cases when the incorrect width turns into an offset for the RTL content.
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::TrimmableTrailingContent::remove):
(WebCore::Layout::Line::Run::removeTrailingLetterSpacing):
(WebCore::Layout::Line::Run::removeTrailingWhitespace):
- layout/formattingContexts/inline/InlineLine.h:
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::width):
- layout/formattingContexts/inline/text/TextUtil.h:
- 5:32 AM Changeset in webkit [288054] by
-
- 10 edits1 copy in trunk
Setting
content: normalon a ::marker should make computed style return resolved values
https://bugs.webkit.org/show_bug.cgi?id=235222
Reviewed by Aditya Keerthi.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-pseudo/marker-computed-size-expected.txt:
Source/WebCore:
Until now, StyleBuilder would treat "none" and "normal" values the same way for the "content"
CSS property. However, "normal", the initial value, is not the same as "none" which explicitly
states that we do not have any content. The WPT test css/css-pseudo/marker-computed-size.html
checks on this by settingcontent: normalon a ::marker and expecting the computed style
for "width" and "height" to be pixel values and not "auto".
We already have a bit in RenderStyle that would be turned on when we would parse either "none"
or "normal". We're now only setting that bit, with a better name when the value is explicitly "none".
So we now remove hasExplicitlyClearedContent() and instead expose hasEffectiveContentNone()
on RenderStyle.
We also remove a stale comment in applyInheritContent() since the spec has not changed to make
"content" inherited.
Finally, Styleable::renderer() now returns the markerRenderer() unless
RenderStyle::hasEffectiveContentNone() is true.
For reference, the relevant spec is https://drafts.csswg.org/css-content-3/#content-property.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::contentToCSSValue):
- rendering/RenderThemeIOS.mm:
(WebCore::RenderThemeIOS::isControlStyled const):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::RenderStyle):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasEffectiveContentNone const):
(WebCore::RenderStyle::setHasContentNone):
(WebCore::RenderStyle::NonInheritedFlags::operator== const):
(WebCore::RenderStyle::setHasExplicitlyClearedContent): Deleted.
(WebCore::RenderStyle::hasExplicitlyClearedContent const): Deleted.
- style/StyleBuilderCustom.h:
(WebCore::Style::BuilderCustom::applyInitialContent):
(WebCore::Style::BuilderCustom::applyInheritContent):
(WebCore::Style::BuilderCustom::applyValueContent):
- style/Styleable.cpp:
(WebCore::Styleable::renderer const):
LayoutTests:
- platform/gtk/imported/w3c/web-platform-tests/css/css-pseudo/marker-computed-size-expected.txt:
Jan 14, 2022:
- 11:30 PM Changeset in webkit [288053] by
-
- 3 edits in trunk/Source/WebCore
Unable to playback portrait videos on HTML canvas elements
https://bugs.webkit.org/show_bug.cgi?id=235238
Reviewed by Jer Noble.
We need to make sure the destination pixel buffer is IOSurface-backed.
Otherwise, VTImageRotationSession cannot rotate a pixel buffer with
a compressed pixel format.
Manually tested.
Layout tests for this exist, but unless they run on an iPhone 12 or
later HW, they won't fail. For example:
- media/video-orientation-canvas.html
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer):
- platform/graphics/cv/ImageRotationSessionVT.mm:
(WebCore::ImageRotationSessionVT::rotate):
- 11:00 PM Changeset in webkit [288052] by
-
- 4 edits3 adds in trunk
null ptr deref in WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor()
https://bugs.webkit.org/show_bug.cgi?id=233463
Patch by Frederic Wang <fwang@igalia.com> on 2022-01-14
Reviewed by Wenson Hsieh.
Source/WebCore:
One line of ReplaceSelectionCommand::moveNodeOutOfAncestor() assumes that the pointer
ancestor.parentNode() is non-null. However, the call to removeNode(node) just before can
lead to arbitrary tree mutations that leaves the ancestor orphan, causing a nullptr deref.
This patch mitigates that issue by exiting early if that situation happens.
- editing/ReplaceSelectionCommand.cpp:
(WebCore::ReplaceSelectionCommand::moveNodeOutOfAncestor): Exit early if the ancestor
is no longer connected.
LayoutTests:
Add non-regression test.
- editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash-expected.txt: Added.
- editing/execCommand/paste-as-quotation-disconnected-paragraph-ancestor-crash.html: Added.
- editing/execCommand/resources/paste-as-quotation-disconnected-paragraph-ancestor-crash-iframe.html: Added.
- platform/win/TestExpectations: Skip test on windows, as the test seems to shift expectations with text output
of other execCommand tests.
- 8:16 PM Changeset in webkit [288051] by
-
- 3 edits in trunk/LayoutTests
[macOS WK1] fast/canvas/large-getImageData.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=235169
Unreviewed.
This test gets very close to the canvas memory limit. Because
JSC has no guarantees about when objects are collected, this test
has to be run in its own process, which means it requires WK2 and
<!-- webkit-test-runner [ runSingly=true ] -->.
- TestExpectations:
- platform/wk2/TestExpectations:
- 7:14 PM Changeset in webkit [288050] by
-
- 11 edits in trunk
[JSC] Fix Linux 64bit compilation
https://bugs.webkit.org/show_bug.cgi?id=235232
Reviewed by Saam Barati.
.:
- Source/cmake/OptionsCommon.cmake:
Source/bmalloc:
Add new pas_lenient_compact_ptr related files to CMakeLists.txt too.
- CMakeLists.txt:
- bmalloc/BPlatform.h:
- bmalloc/Gigacage.cpp:
- bmalloc/IsoHeap.cpp:
- bmalloc/IsoHeap.h:
- bmalloc/bmalloc.h:
Source/JavaScriptCore:
Define PAS_BMALLOC in all projects since JavaScriptCore includes some files which can require this macro variable.
Previously, JSDollarVM.cpp includes these files first, then at that time, we can define PAS_BMALLOC.
However, after enabling jit-heap, these files are included before JSDollarVM.cpp and include pas_config.h without
PAS_BMALLOC definition, which later causes the problem when including pas_lock.h since non PAS_BMALLOC libpas requires
darwin specific locking.
Since defining PAS_BMALLOC does not matter to whether using libpas or not, this patch just defines it globally.
And for Apple ports, we define this when we define BENABLE_LIBPAS.
- tools/JSDollarVM.cpp:
- 7:11 PM Changeset in webkit [288049] by
-
- 31 edits21 copies6 moves61 adds9 deletes in trunk
[JSC] Fix WebAssembly.Global's typename for "anyfunc"
https://bugs.webkit.org/show_bug.cgi?id=235105
Reviewed by Keith Miller.
LayoutTests/imported/w3c:
Update wpt/wasm which includes "anyfunc" tests.
- web-platform-tests/wasm/jsapi/assertions.js:
(assert_exported_function):
- web-platform-tests/wasm/jsapi/constructor/toStringTag.any.js:
- web-platform-tests/wasm/jsapi/exception/basic.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/basic.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/exception/basic.tentative.any.js: Added.
(assert_throws_wasm):
(promise_test.async const):
(promise_test):
- web-platform-tests/wasm/jsapi/exception/basic.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/basic.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/exception/constructor.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/constructor.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/exception/constructor.tentative.any.js: Added.
(test):
- web-platform-tests/wasm/jsapi/exception/constructor.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/constructor.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/exception/getArg.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.js: Added.
(test):
- web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/getArg.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/exception/is.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/is.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/exception/is.tentative.any.js: Added.
(test):
- web-platform-tests/wasm/jsapi/exception/is.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/is.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/exception/toString.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/toString.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/exception/toString.tentative.any.js: Added.
(test):
- web-platform-tests/wasm/jsapi/exception/toString.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/toString.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/exception/type.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/type.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/exception/type.tentative.any.js: Added.
(assert_type):
(test):
- web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/exception/type.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/exception/w3c-import.log: Added.
- web-platform-tests/wasm/jsapi/function/call.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/function/call.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/function/call.tentative.any.js: Added.
(addxy):
(test):
(string_appeared_here.test):
- web-platform-tests/wasm/jsapi/function/call.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/function/call.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/function/constructor.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/function/constructor.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/function/constructor.tentative.any.js: Added.
(addxy):
(test):
(string_appeared_here.test):
- web-platform-tests/wasm/jsapi/function/constructor.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/function/constructor.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/function/table.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/function/table.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/function/table.tentative.any.js: Added.
(testfunc):
(test):
- web-platform-tests/wasm/jsapi/function/table.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/function/table.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/function/type.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/function/type.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/function/type.tentative.any.js: Added.
(addNumbers):
(doNothing):
(assert_function):
(test):
(string_appeared_here.test):
- web-platform-tests/wasm/jsapi/function/type.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/function/type.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/function/w3c-import.log: Added.
- web-platform-tests/wasm/jsapi/global/type.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/global/type.tentative.any.js:
(test):
(string_appeared_here.test):
- web-platform-tests/wasm/jsapi/global/type.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/proto-from-ctor-realm.html:
- web-platform-tests/wasm/jsapi/table/constructor-reftypes.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/table/constructor-reftypes.tentative.any.js: Removed.
- web-platform-tests/wasm/jsapi/table/constructor-reftypes.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/table/constructor.any-expected.txt:
- web-platform-tests/wasm/jsapi/table/constructor.any.js:
(test.get assert_array_equals):
(test):
- web-platform-tests/wasm/jsapi/table/constructor.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/table/get-set.any-expected.txt:
- web-platform-tests/wasm/jsapi/table/get-set.any.js:
(test):
- web-platform-tests/wasm/jsapi/table/get-set.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/table/grow-reftypes.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/table/grow-reftypes.tentative.any.js: Removed.
- web-platform-tests/wasm/jsapi/table/grow-reftypes.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/table/grow.any-expected.txt:
- web-platform-tests/wasm/jsapi/table/grow.any.js:
(test):
- web-platform-tests/wasm/jsapi/table/grow.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/table/set-reftypes.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/table/set-reftypes.tentative.any.js: Removed.
- web-platform-tests/wasm/jsapi/table/set-reftypes.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/table/type.tentative.any-expected.txt:
- web-platform-tests/wasm/jsapi/table/type.tentative.any.js:
(test):
- web-platform-tests/wasm/jsapi/table/type.tentative.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/table/type.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/table/w3c-import.log:
- web-platform-tests/wasm/jsapi/tag/constructor.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/tag/constructor.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/tag/constructor.tentative.any.js: Added.
(test):
- web-platform-tests/wasm/jsapi/tag/constructor.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/tag/constructor.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/tag/toString.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/tag/toString.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/tag/toString.tentative.any.js: Added.
(test):
- web-platform-tests/wasm/jsapi/tag/toString.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/tag/toString.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/tag/type.tentative.any-expected.txt: Added.
- web-platform-tests/wasm/jsapi/tag/type.tentative.any.html: Added.
- web-platform-tests/wasm/jsapi/tag/type.tentative.any.js: Added.
(assert_type):
(test):
- web-platform-tests/wasm/jsapi/tag/type.tentative.any.worker-expected.txt: Added.
- web-platform-tests/wasm/jsapi/tag/type.tentative.any.worker.html: Added.
- web-platform-tests/wasm/jsapi/tag/w3c-import.log: Added.
- web-platform-tests/wasm/jsapi/wasm-module-builder.js:
(WasmModuleBuilder.prototype.addTable):
(WasmModuleBuilder.prototype.toBuffer):
- web-platform-tests/wasm/serialization/module/cross-origin-module-sharing-fails-expected.txt: Added.
- web-platform-tests/wasm/serialization/module/cross-origin-module-sharing-fails.html: Added.
- web-platform-tests/wasm/serialization/module/resources/incrementer-iframe-failure.html: Added.
- web-platform-tests/wasm/serialization/module/resources/w3c-import.log:
- web-platform-tests/wasm/serialization/module/share-module-cross-origin-fails.sub-expected.txt: Added.
- web-platform-tests/wasm/serialization/module/share-module-cross-origin-fails.sub.html: Added.
- web-platform-tests/wasm/serialization/module/w3c-import.log:
- web-platform-tests/wasm/webapi/contenttype.any-expected.txt:
- web-platform-tests/wasm/webapi/contenttype.any.js:
- web-platform-tests/wasm/webapi/contenttype.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/resources/incrementer.no_mime_type.wasm: Added.
- web-platform-tests/wasm/webapi/resources/incrementer.wasm: Added.
- web-platform-tests/wasm/webapi/resources/incrementer.wasm.headers: Added.
- web-platform-tests/wasm/webapi/resources/incrementer.wrong_mime_type.wasm: Added.
- web-platform-tests/wasm/webapi/resources/incrementer.wrong_mime_type.wasm.headers: Added.
- web-platform-tests/wasm/webapi/resources/w3c-import.log: Added.
- web-platform-tests/wasm/webapi/w3c-import.log:
- web-platform-tests/wasm/webapi/wasm_stream_compile_test-expected.txt: Added.
- web-platform-tests/wasm/webapi/wasm_stream_compile_test.html: Added.
- web-platform-tests/wasm/webapi/wasm_stream_instantiate_test-expected.txt: Added.
- web-platform-tests/wasm/webapi/wasm_stream_instantiate_test.html: Added.
Source/JavaScriptCore:
We should return "anyfunc" string instead of "funcref" according to the spec[1,2].
[1]: https://webassembly.github.io/spec/js-api/#globals
[2]: https://webassembly.github.io/spec/js-api/#tables
- wasm/js/JSWebAssemblyGlobal.cpp:
(JSC::JSWebAssemblyGlobal::type):
- wasm/js/JSWebAssemblyTable.cpp:
(JSC::JSWebAssemblyTable::type):
- 6:11 PM Changeset in webkit [288048] by
-
- 1 copy in tags/Safari-613.1.14
Tag Safari-613.1.14.
- 6:04 PM Changeset in webkit [288047] by
-
- 1 copy in tags/Safari-613.1.12.1.9
Tag Safari-613.1.12.1.9.
- 5:50 PM Changeset in webkit [288046] by
-
- 2 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE
Cherry-pick r288041. rdar://problem/87627318
ANGLE: Supports32BitFloatFiltering is not supported on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235239
Reviewed by Darin Adler.
<rdar://86457081>
Broke an internal build. Caused by https://trac.webkit.org/changeset/286323/webkit
- src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::supports32BitFloatFiltering const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288041 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:49 PM Changeset in webkit [288045] by
-
- 9 edits in branches/safari-613-branch/Source
Versioning.
WebKit-7613.1.14
- 5:47 PM Changeset in webkit [288044] by
-
- 2 edits in branches/safari-613.1.12.1-branch/Source/ThirdParty/ANGLE
Cherry-pick r288041. rdar://problem/86457081
ANGLE: Supports32BitFloatFiltering is not supported on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235239
Reviewed by Darin Adler.
<rdar://86457081>
Broke an internal build. Caused by https://trac.webkit.org/changeset/286323/webkit
- src/libANGLE/renderer/metal/DisplayMtl.mm: (rx::DisplayMtl::supports32BitFloatFiltering const):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@288041 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 5:37 PM Changeset in webkit [288043] by
-
- 3 edits in trunk/Tools
[EWS] Only trigger builds for open and synchronize events
https://bugs.webkit.org/show_bug.cgi?id=235249
<rdar://problem/87615392>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/events.py:
(Events.stopService):
(GitHubEventHandlerNoEdits):
(GitHubEventHandlerNoEdits.handle_pull_request):
- Tools/CISupport/ews-build/master.cfg:
Canonical link: https://commits.webkit.org/246068@main
- 5:26 PM Changeset in webkit [288042] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.9
- 5:16 PM Changeset in webkit [288041] by
-
- 2 edits in trunk/Source/ThirdParty/ANGLE
ANGLE: Supports32BitFloatFiltering is not supported on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235239
Reviewed by Darin Adler.
<rdar://86457081>
Broke an internal build. Caused by https://trac.webkit.org/changeset/286323/webkit
- src/libANGLE/renderer/metal/DisplayMtl.mm:
(rx::DisplayMtl::supports32BitFloatFiltering const):
- 5:11 PM Changeset in webkit [288040] by
-
- 3 edits in trunk/Tools
[EWS] ShowIdentifier should support pull-requests
https://bugs.webkit.org/show_bug.cgi?id=235252
<rdar://problem/87618736>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(ShowIdentifier.start): Extract revision from diverse set of properties.
(ShowIdentifier.evaluateCommand):
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/246066@main
- 4:56 PM Changeset in webkit [288039] by
-
- 4 edits in trunk
[iOS] Occasional crash under -[UITargetedPreview initWithView:parameters:target:] when focusing form controls
https://bugs.webkit.org/show_bug.cgi?id=235248
rdar://79220540
Reviewed by Tim Horton and Aditya Keerthi.
Source/WebKit:
It's possible for
-resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:to return anilsnapshot
view in the case where a screen update has not been performed yet (among other scenarios). In the case where
UIKit returnsnilwhen we're creating the targeted preview for the context menu when focusing a select element
or file input, we'll crash due to an Objective-C exception in the initializer of UITargetedPreview. Mitigate
this by falling back to an empty UIView after requesting the snapshot view to make our code robust against this
scenario.
Test: KeyboardInputTests.DoNotCrashWhenFocusingSelectWithoutViewSnapshot
- UIProcess/ios/WKContentViewInteraction.mm:
(createFallbackTargetedPreview):
Tools:
Add an API test that exercises the crash by forcing
-resizableSnapshotViewFromRect:afterScreenUpdates:withCapInsets:
to return nil via swizzling.
- TestWebKitAPI/Tests/ios/KeyboardInputTestsIOS.mm:
(TestWebKitAPI::nilResizableSnapshotViewFromRect):
(TestWebKitAPI::TEST):
- 4:48 PM Changeset in webkit [288038] by
-
- 8 edits3 adds in trunk/Tools
[webkitbugspy] Support radar as issue tracker type
https://bugs.webkit.org/show_bug.cgi?id=234993
<rdar://problem/87276178>
Reviewed by Stephanie Lewis.
- Tools/Scripts/libraries/webkitbugspy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/init.py: Ditto.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/init.py:
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/base.py:
(Base): Radar mock should not inherit from mocks.Requests.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/bugzilla.py:
(Bugzilla): Inherit from both Base and mocks.Requests.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/github.py:
(GitHub): Inherit from both Base and mocks.Requests.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/mocks/radar.py: Added.
(AppleDirectoryUserEntry): Mock AppleDirectoryUserEntry from radarclient.
(AppleDirectoryQuery): Mock AppleDirectoryQuery from radarclient.
(RadarModel): Mock various Model objects from radarclient.
(RadarClient): Mock RadarClient from radarclient.
(Radar): Mock radarclient library.
(NoRadar): Mock unavailable radarclient library.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/radar.py: Added.
(Tracker):
(Tracker.radarclient): Optionally import radarclient.
(Tracker.init):
(Tracker.authentication): Determine which authentication strategy to use.
(Tracker.from_string): Construct issue given Radar string
(Tracker.user): Find user given name, DSID or email.
(Tracker.issue): Construct issue given Radar ID.
(Tracker.populate): Populate Issue arguments.
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tests/radar_unittest.py: Added.
(TestGitHub):
(TestGitHub.test_no_radar):
(TestGitHub.test_users):
(TestGitHub.test_link):
(TestGitHub.test_title):
(TestGitHub.test_timestamp):
(TestGitHub.test_creator):
(TestGitHub.test_description):
(TestGitHub.test_assignee):
(TestGitHub.test_comments):
(TestGitHub.test_watchers):
(TestGitHub.test_references):
(TestGitHub.test_reference_parse):
- Tools/Scripts/libraries/webkitbugspy/webkitbugspy/tracker.py:
(Tracker): Match single integer issue URLs.
Canonical link: https://commits.webkit.org/246064@main
- 4:44 PM Changeset in webkit [288037] by
-
- 3 edits1 add in trunk
JSStringJoiner's constructor should take a size_t length.
https://bugs.webkit.org/show_bug.cgi?id=235217
rdar://87538657
Reviewed by Yusuke Suzuki.
JSTests:
- stress/max-typed-array-length-toString.js: Added.
Source/JavaScriptCore:
Also removed an unnecessary exception check in JSStringJoiner::append().
This is because appendWithoutSideEffects() cannot throw any exceptions.
- runtime/JSStringJoiner.h:
(JSC::JSStringJoiner::JSStringJoiner):
(JSC::JSStringJoiner::append):
- 3:48 PM Changeset in webkit [288036] by
-
- 4 edits in trunk
JSArray::fastSlice() should not convert the source from CoW
https://bugs.webkit.org/show_bug.cgi?id=234990
Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-14
Reviewed by Yusuke Suzuki.
JSTests:
- stress/array-slice-cow.js:
Source/JavaScriptCore:
Since we aren't modifying the source array in fastSlice() nor its slow path,
there is no reason to convert it from CopyOnWrite.
- runtime/JSArray.cpp:
(JSC::JSArray::fastSlice):
- 3:24 PM Changeset in webkit [288035] by
-
- 2 edits in trunk/Source/WebCore
[Cleanup] Remove redundant (and incorrect) RenderStyle::isDisplayReplacedType
https://bugs.webkit.org/show_bug.cgi?id=235250
Reviewed by Simon Fraser.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::isDisplayInlineType): display types do not make a box replaced.
(WebCore::RenderStyle::isDisplayReplacedType): Deleted.
- 2:58 PM Changeset in webkit [288034] by
-
- 4 edits in trunk/Source/WebKit
REGRESSION: ARKit example loads a page full of random symbols instead of a 3D model
https://bugs.webkit.org/show_bug.cgi?id=235254
Reviewed by Tim Horton.
When we enabled the ModelDocument support, we disabled the ContentProvider path.
This was a mistake - it has to be a runtime check.
- UIProcess/API/Cocoa/WKPreferences.mm: Expose the ModelDocumentEnabled WebPreference so that
it can be read from a WKWebViewConfiguration.
(-[WKPreferences _setModelDocumentEnabled:]):
(-[WKPreferences _modelDocumentEnabled]):
- UIProcess/API/Cocoa/WKPreferencesPrivate.h:
- UIProcess/Cocoa/WKWebViewContentProviderRegistry.mm: Rather than the compile-time test, check the
WebPreferences to see if ModelDocument is disabled.
(-[WKWebViewContentProviderRegistry initWithConfiguration:]):
- 2:46 PM Changeset in webkit [288033] by
-
- 4 edits in trunk/Source/WebCore
Clarify / Optimize <select> logic given that deeply nested <option> or <optgroup> are not supported
https://bugs.webkit.org/show_bug.cgi?id=235247
Reviewed by Geoffrey Garen.
Clarify / Optimize <select> logic given that deeply nested <option> or <optgroup> are not supported, as per the
specification.
An <option> is only associated with a <select> element if it is either a child of the <select> or a child of an
<optgroup> that is itself a child of the <select>:
As a result, an <optgroup> is only associated with a <select> element if it is a child of that <select>.
No new tests, no Web-facing behavior change.
- html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::recalcSelectOptions):
(WebCore::HTMLOptGroupElement::ownerSelectElement const):
(WebCore::HTMLOptGroupElement::accessKeyAction):
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::setText):
(WebCore::HTMLOptionElement::accessKeyAction):
(WebCore::HTMLOptionElement::index const):
(WebCore::HTMLOptionElement::selected const):
(WebCore::HTMLOptionElement::setSelected):
(WebCore::HTMLOptionElement::childrenChanged):
(WebCore::HTMLOptionElement::ownerSelectElement const):
(WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel const):
(WebCore::HTMLOptionElement::insertedIntoAncestor):
(WebCore::HTMLOptionElement::collectOptionInnerText const):
- html/HTMLSelectElement.cpp:
(WebCore::HTMLSelectElement::recalcListItems const):
(WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
- 2:23 PM Changeset in webkit [288032] by
-
- 8 edits in trunk
Avoid redundant text analysis requests when long pressing inside an image that contains Live Text
https://bugs.webkit.org/show_bug.cgi?id=235129
rdar://87366539
Reviewed by Tim Horton.
Source/WebKit:
When long pressing over a non-Live-Text part of an image that otherwise contains Live Text, we currently trigger
Live Text analysis on the image a second time and re-inject the same text recognition results into the image
element. In addition to being unnecessary, this extra text analysis operation causes regular Live Text results
to be injected into images that already contain "block"-style recognized text results, replacing the blocks in
the process.
Address this by adding an optimization to avoid this unnecessary Live Text analysis and injection. See below for
more details.
Test: ImageAnalysisTests.AvoidRedundantTextRecognitionRequests
- Shared/ios/InteractionInformationAtPosition.h:
- Shared/ios/InteractionInformationAtPosition.mm:
(WebKit::InteractionInformationAtPosition::encode const):
(WebKit::InteractionInformationAtPosition::decode):
Add a new
elementContainsImageOverlaybit to position information.
- UIProcess/ios/WKContentViewInteraction.mm:
(-[WKContentView imageAnalysisGestureDidBegin:]):
In the case where the image already contains an overlay, short-circuit logic to perform text analysis and inject
the results into the image, and instead directly call into the new helper method below to compute visual look up
results and invoke pending context menu completion handler blocks. We passYESforhasTextResultshere
because we know that the image already contains recognized text, due to theelementContainsImageOverlaybeing
set.
(-[WKContentView _completeImageAnalysisRequestForContextMenu:requestIdentifier:hasTextResults:]):
Factor out logic for requesting visual look up results on the image into a separate helper method.
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::videoPositionInformation):
(WebKit::imagePositionInformation):
Set the
elementContainsImageOverlaybit (see above).
Tools:
Add a new API test and refactor some existing tests.
- TestWebKitAPI/Tests/WebKitCocoa/ImageAnalysisTests.mm:
(swizzledLocationInView):
(-[TestWKWebView simulateImageAnalysisGesture:]):
Add a helper method to simulate the image analysis gesture recognizer being activated on iOS, and wait for image
analysis to finish.
(TestWebKitAPI::swizzledProcessRequestWithResults):
(TestWebKitAPI::TEST):
Add a new API test to verify that we make at most one extra VKImageAnalyzer request when invoking a non-Live-
Text part of the image a second time. Additionally, adjust an existing test (HandleImageAnalyzerErrors) to
verify that we invoke VKImageAnalyzer a total of two times during the course of one image analysis gesture (once
for Live Text recognition, and another for visual look up). This test currently passes with only a single check
because it ends too early (i.e. after only one round trip to the web process and back).
(TestWebKitAPI::swizzledLocationInView): Deleted.
- TestWebKitAPI/cocoa/ImageAnalysisTestingUtilities.mm:
(-[TestVKImageAnalysis hasResultsForAnalysisTypes:]):
Implement this method stub to avoid an unrecognized selector crash.
- 1:58 PM Changeset in webkit [288031] by
-
- 12 edits6 adds in trunk
[Cocoa] rVFC() isn't called for initial video load
https://bugs.webkit.org/show_bug.cgi?id=235006
Reviewed by Eric Carlson.
Source/WebCore:
Tests: media/request-video-frame-loadstart.html
media/request-video-frame-seek.html
Add a new utility class, QueuedVideoOutput, which will pull pixel buffers out of an AVPlayerItemVideoOutput
pre-emptively. Once those pixel buffers are enqueued locally, their associated timing information can be used to
fire a callback for that buffer's display time.
Previously, paints were blocked from pulling new pixel buffers from the video output. With the QueuedVideoOutput
class, this is no longer necessary. The QueuedVideoOutput will notify its client when the image for currentTime
changes, and other clients can freely ask for the currentTime's image.
To curb runaway memory growth, frames are purged as soon as a new image for the current time is available, and when
the video output signals that its own queues were purged.
- WebCore.xcodeproj/project.pbxproj:
- html/HTMLVideoElement.cpp:
(WebCore::HTMLVideoElement::cancelVideoFrameCallback):
(WebCore::HTMLVideoElement::serviceRequestVideoFrameCallbacks):
- html/HTMLVideoElement.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
(WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
(WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame const):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoFullscreenInlineImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::startVideoFrameMetadataGathering):
(WebCore::MediaPlayerPrivateAVFoundationObjC::checkNewVideoFrameMetadata):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks):
(WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastPixelBuffer):
(WebCore::MediaPlayerPrivateAVFoundationObjC::videoOutputHasAvailableFrame):
(WebCore::MediaPlayerPrivateAVFoundationObjC::updateLastImage):
(WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput):
(WebCore::MediaPlayerPrivateAVFoundationObjC::pixelBufferForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::nativeImageForCurrentTime):
(WebCore::MediaPlayerPrivateAVFoundationObjC::colorSpace):
(WebCore::MediaPlayerPrivateAVFoundationObjC::outputMediaDataWillChange):
(WebCore::globalPullDelegateQueue): Deleted.
(WebCore::MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange): Deleted.
(-[WebCoreAVFPullDelegate initWithPlayer:]): Deleted.
(-[WebCoreAVFPullDelegate outputMediaDataWillChange:]): Deleted.
(-[WebCoreAVFPullDelegate outputSequenceWasFlushed:]): Deleted.
- platform/graphics/avfoundation/objc/QueuedVideoOutput.h: Added.
- platform/graphics/avfoundation/objc/QueuedVideoOutput.mm: Added.
(-[WebQueuedVideoOutputDelegate initWithParent:]):
(-[WebQueuedVideoOutputDelegate outputMediaDataWillChange:]):
(-[WebQueuedVideoOutputDelegate outputSequenceWasFlushed:]):
(-[WebQueuedVideoOutputDelegate observeValueForKeyPath:ofObject:change:context:]):
(WebCore::globalOutputDelegateQueue):
(WebCore::QueuedVideoOutput::create):
(WebCore::QueuedVideoOutput::QueuedVideoOutput):
(WebCore::QueuedVideoOutput::~QueuedVideoOutput):
(WebCore::QueuedVideoOutput::invalidate):
(WebCore::decltype):
(WebCore::QueuedVideoOutput::hasImageForTime const):
(WebCore::QueuedVideoOutput::takeVideoFrameEntryForTime):
(WebCore::QueuedVideoOutput::addCurrentImageChangedObserver):
(WebCore::QueuedVideoOutput::configureNextImageObserver):
(WebCore::QueuedVideoOutput::imageForCurrentTimeChanged):
(WebCore::QueuedVideoOutput::addVideoFrameEntries):
(WebCore::QueuedVideoOutput::purgeVideoFrameEntries):
(WebCore::QueuedVideoOutput::purgeImagesBeforeTime):
(WebCore::QueuedVideoOutput::rateChanged):
Source/WebCore/PAL:
- pal/spi/cocoa/AVFoundationSPI.h:
LayoutTests:
- media/request-video-frame-loadstart-expected.txt: Added.
- media/request-video-frame-loadstart.html: Added.
- media/request-video-frame-seek-expected.txt: Added.
- media/request-video-frame-seek.html: Added.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk1/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 1:47 PM Changeset in webkit [288030] by
-
- 11 edits in trunk/Source/WebInspectorUI
Web Inspector: Sources: cannot copy grouping of blackboxed call frames
https://bugs.webkit.org/show_bug.cgi?id=234615
<rdar://problem/86989248>
Reviewed by Patrick Angle.
- UserInterface/Views/SourcesNavigationSidebarPanel.js:
(WI.SourcesNavigationSidebarPanel.prototype.handleCopyEvent):
(WI.SourcesNavigationSidebarPanel.prototype.handleCopyEvent.addCallFrame): Added.
Include everyWI.CallFramemanaged by any selectedWI.BlackboxedGroupTreeElementwhen
copying. Also make sure that any async boundaries are taken into account.
- UserInterface/Views/BlackboxedGroupTreeElement.js:
(WI.BlackboxedGroupTreeElement):
(WI.BlackboxedGroupTreeElement.prototype.get callFrames): Added.
(WI.BlackboxedGroupTreeElement.prototype.get expandable): Added.
(WI.BlackboxedGroupTreeElement.prototype.onenter): Added.
(WI.BlackboxedGroupTreeElement.prototype.onspace): Added.
MakeWI.BlackboxedGroupTreeElementselectable, and add extra action handlers for expansion.
- UserInterface/Views/BlackboxedGroupTreeElement.css:
(.tree-outline .item.blackboxed-group):
(.tree-outline .item.blackboxed-group:not(.selected) > *, .tree-outline:not(:focus-within) .item.blackboxed-group.selected > *, body:is(.window-inactive, .window-docked-inactive) .tree-outline .item.blackboxed-group.selected > *): Added.
(body:not(.window-inactive, .window-docked-inactive) .tree-outline:focus-within .item.blackboxed-group.selected .icon): Added.
Only make the content more transparent if not.selected(when the window/tree has focus).
- UserInterface/Views/TreeElement.js:
(WI.TreeElement.prototype.get expandable): Added.
(WI.TreeElement.treeElementToggled):
AllowtoggleOnClickto be used whenselectabletoo. This allowsWI.BlackboxedGroupTreeElement
toexpandon click while also being able to be selected (e.g. shift-up, command-A, etc.).
All other uses oftoggleOnClicksetthis.selectable = false;anyways, so this will have
no effect to other clients.
- UserInterface/Views/TreeOutline.js:
(WI.TreeOutline.prototype.insertChild):
(WI.TreeOutline.prototype._treeKeyDown):
- UserInterface/Views/DOMTreeOutline.js:
(WI.DOMTreeOutline.prototype.update):
Add a helperget expandableinstead of assuming it fromget hasChildren. This allows
WI.BlackboxedGroupTreeElementto override it and always betrue, since there is no
situation where we would disallow expansion (which shows the grouped blackboxed call frames).
- UserInterface/Models/CallFrame.js:
(WI.CallFrame.prototype.get displayName): Added.
- UserInterface/Views/CallFrameView.js:
(WI.CallFrameView):
- UserInterface/Views/CallFrameTreeElement.js:
(WI.CallFrameTreeElement):
- UserInterface/Views/ConsoleMessageView.js:
(WI.ConsoleMessageView.prototype.toClipboardString):
Add a helperget displayNameto avoid repeated specialized logic.
- 1:34 PM Changeset in webkit [288029] by
-
- 4 edits in trunk/Source/WebInspectorUI
Web Inspector: add a contextmenu item to create a URL Breakpoint for resources initiated by script
https://bugs.webkit.org/show_bug.cgi?id=235216
Reviewed by Dean Jackson.
- UserInterface/Views/ContextMenuUtilities.js:
(WI.appendContextMenuItemsForSourceCode):
Since URL Breakpoints only work with XHR/fetch, only offer to create a URL Breakpoint if
theWI.SourceCodehasinitiatorCallFrames, meaning it was triggered by JS. We could
offer this contextmenu item for _all_ resources, but there are many different resource types
that are unlikely (if ever) to be loaded via XHR/fetch(e.g. favicons, manifests, fonts,
initial JS/CSS files, etc.) that it would likely add clutter and possibly confuse developers
into thinking that URL Breakpoints can somehow pause things other than JS. Plus, this can
always be changed in a followup, so better to do something minimal first.
- UserInterface/Controllers/DOMDebuggerManager.js:
(WI.DOMDebuggerManager.prototype.urlBreakpointsMatchingURL): Added.
Helper method to find allWI.URLBreakpointthat match a given URL, sorted by how exact
they would match (e.g. a regex match is less exact than===).
- Localizations/en.lproj/localizedStrings.js:
- 1:07 PM Changeset in webkit [288028] by
-
- 3 edits in trunk/Source/JavaScriptCore
Make isJITPC fast
https://bugs.webkit.org/show_bug.cgi?id=235241
Reviewed by Yusuke Suzuki.
Make it an inlined function, and stop tagging g_jscConfig.startExecutableMemory
and g_jscConfig.endExecutableMemory, since they're in the Config page, and
not mutable after it's frozen.
- jit/ExecutableAllocator.cpp:
(JSC::initializeJITPageReservation):
(JSC::isJITPC): Deleted.
- jit/ExecutableAllocator.h:
(JSC::isJITPC):
- 1:04 PM Changeset in webkit [288027] by
-
- 5 edits in trunk/Source/WebCore
AX: AXIsolatedObject::initializeAttributeData should compute AXAncestorFlags if they are unexpectedly uninitialized
https://bugs.webkit.org/show_bug.cgi?id=235189
Reviewed by Andres Gonzalez.
Currently in AXIsolatedObject::initializeAttributeData, we don't store
any ancestor flags if they are unexpectedly uninitialized (i.e. we're
asked to initialize an isolated object for a live AX object that has
not been added to the live AX tree).
Rather than not storing flags and thus creating an isolated object
with incorrect properties, we should do a single traversal to initialize them.
We should have to do this very rarely since we generally expect to be
given live AX objects with initialized flags here (and debug ASSERT that this is the case).
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::computeAncestorFlagsWithTraversal const):
Added.
- accessibility/AccessibilityObject.h:
- accessibility/AccessibilityObjectInterface.h:
(WebCore::Accessibility::enumerateAncestors):
Added.
- accessibility/isolatedtree/AXIsolatedObject.cpp:
(WebCore::AXIsolatedObject::initializeAttributeData):
Compute ancestor flags with a single traversal if they are unexpected uninitialized.
- 12:43 PM Changeset in webkit [288026] by
-
- 3 edits in trunk/Source/WebCore
MediaPlayerPrivateMediaStreamAVFObjC::m_videoTransform is redundant
https://bugs.webkit.org/show_bug.cgi?id=235181
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-14
Reviewed by Youenn Fablet.
The video sample transform was stored as a member variable during video sample
enqueuing. However, this is just a normal video sample property, and
does not need to be handled specially. The member variable anyway ended up being assigned
during use. Calculating the transform is not a heavy operation, since it
is accessed once per video paint.
This simplifies the future code where the underlying video frame would be
used as-is by WebGL, as there we need to have the correct transform.
No new tests, refactor.
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
- platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoSampleAvailable):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::processNewVideoSample):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateRenderingMode):
(WebCore::MediaPlayerPrivateMediaStreamAVFObjC::paintCurrentFrameInContext):
- 12:41 PM Changeset in webkit [288025] by
-
- 4 edits2 adds in trunk
gl.texImage2D upload of getUserMedia streams via <video> element fails
https://bugs.webkit.org/show_bug.cgi?id=230617
<rdar://problem/83407577>
Patch by Kimmo Kinnunen <kkinnunen@apple.com> on 2022-01-14
Reviewed by Youenn Fablet.
Source/WebCore:
Fix MSE camera to WebGL texture uploads.
Partially revert r280963 for Cocoa MediaPlayer implementatations
that do not have nativeImageForCurrentTime / pixelBufferForCurrentTime.
Turns out MSE does not have these implemented, so currently fall back
to the painting path.
Test: fast/mediastream/getUserMedia-to-canvas.html
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::videoFrameToImage):
LayoutTests:
- fast/mediastream/getUserMedia-to-canvas-expected.txt: Added.
- fast/mediastream/getUserMedia-to-canvas.html: Added.
Add a test to test getting video frame to 2DContext and
WebGL canvas elements.
- webrtc/routines.js:
Add a function to assert that ImageData contains
the simulated mock camera image. This is useful
in verifying that the image is exactly as
expected. The test tests only the default orientation.
Later changes will update the test to address the
camera rotation.
- 12:07 PM Changeset in webkit [288024] by
-
- 21 edits in trunk
Regression(r281520) 3 subtests started failing on dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html WPT test
https://bugs.webkit.org/show_bug.cgi?id=235153
<rdar://problem/87485756>
Unreviewed, revert r281520 since it regressed dom/traversal/TreeWalker-acceptNode-filter-cross-realm.html WPT test.
LayoutTests/imported/w3c:
- web-platform-tests/geolocation-API/non-fully-active.https-expected.txt:
Source/WebCore:
- Modules/geolocation/Geolocation.cpp:
(WebCore::Geolocation::getCurrentPosition):
(WebCore::Geolocation::watchPosition):
- Modules/web-locks/WebLockManager.cpp:
(WebCore::WebLockManager::didCompleteLockRequest):
Covered by "Removed Frame as lock is granted" test in imported/w3c/web-platform-tests/web-locks/frames.tentative.https.html.
Before this change, WebLockGrantedCallback was using incumbent global object (main frame in test) to create a promise instead
of lexical (removed frame in test), causing the test to be false-passing.
- bindings/js/JSDOMConvertCallbacks.h:
(WebCore::Converter<IDLCallbackFunction<T>>::convert):
(WebCore::Converter<IDLCallbackInterface<T>>::convert):
- dom/TaskSource.h:
LayoutTests:
- TestExpectations:
- fast/dom/Geolocation/callback-to-deleted-context-expected.txt:
- fast/dom/Geolocation/callback-to-deleted-context.html:
- fast/dom/Geolocation/disconnected-frame-already-expected.txt:
- fast/dom/Geolocation/disconnected-frame-already.html:
- fast/dom/Geolocation/disconnected-frame-expected.txt:
- fast/dom/Geolocation/disconnected-frame-permission-denied-expected.txt:
- fast/dom/Geolocation/disconnected-frame-permission-denied.html:
- fast/dom/Geolocation/disconnected-frame.html:
- fast/dom/Geolocation/resources/callback-to-deleted-context-inner1.html:
- fast/events/detached-svg-parent-window-events-expected.txt:
- fast/events/detached-svg-parent-window-events.html:
- 12:05 PM Changeset in webkit [288023] by
-
- 4 edits in trunk/Source/JavaScriptCore
Use IRC for Wasm, and Briggs for JS on ARM64
https://bugs.webkit.org/show_bug.cgi?id=235235
<rdar://87090631>
Reviewed by Yusuke Suzuki and Robin Morisset.
When I turned on IRC for everything in r287218, we saw some
regressions on iOS on JetStream2. So, this patch makes it so
JS code on arm64 goes back to using Briggs, and Wasm will
use IRC.
- b3/air/AirAllocateRegistersByGraphColoring.cpp:
- b3/air/AirCode.h:
(JSC::B3::Air::Code::setForceIRCRegisterAllocation):
(JSC::B3::Air::Code::forceIRCRegisterAllocation):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompileB3):
- 11:57 AM Changeset in webkit [288022] by
-
- 3 edits in trunk/JSTests
Update libWABT
https://bugs.webkit.org/show_bug.cgi?id=235050
Update libWabt to support new simd instructions, and add stubs so that the
wasm test runner can run in v8.
Reviewed by Yusuke Suzuki.
- wasm/assert.js:
- wasm/libwabt.js:
(WabtModule):
(set get if):
- 11:37 AM Changeset in webkit [288021] by
-
- 5 edits in trunk/Tools
[EWS] Support pull-requests in ValidateChange
https://bugs.webkit.org/show_bug.cgi?id=234861
<rdar://problem/87114299>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/factories.py:
(Factory.init): Rename ValidatePatch to ValidateChange.
(StyleFactory.init): Ditto.
(WatchListFactory.init): Ditto.
(WindowsFactory.init): Ditto.
(CommitQueueFactory.init): Ditto.
- Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps): Step name changed from validate-patch to validate-change.
- Tools/CISupport/ews-build/steps.py:
(GitHub.pr_url): Add missing /.
(GitHub.api_url): Convert a repository URL to the API url for that repository.
(GitHub.credentials): Access GitHub credentials from passwords.json.
(GitHubMixin):
(GitHubMixin.fetch_data_from_url_with_authentication):
(GitHubMixin.get_pr_json):
(GitHubMixin._is_pr_closed): Check if a pull-request is closed.
(GitHubMixin._is_pr_obsolete): Check if a pull-request is obsolete.
(ValidateChange): Renamed from ValidatePatch.
(ValidateChange.getResultSummary):
(ValidateChange.start): Invoke validate_bugzilla or validate_github.
(ValidateChange.validate_bugzilla): Check a bugzilla patch.
(ValidateChange.validate_github): Check a GitHub pull-request.
(CompileWebKit.evaluateCommand): Rename ValidatePatch to ValidateChange.
(RunJavaScriptCoreTests.evaluateCommand): Ditto.
(RunWebKitTests.evaluateCommand): Ditto.
(ReRunWebKitTests.evaluateCommand): Ditto.
(RunWebKitTestsRedTree.evaluateCommand): Ditto.
(RunWebKitTestsRepeatFailuresRedTree.evaluateCommand): Ditto.
(RunAPITests.evaluateCommand): Ditto.
(ReRunAPITests.evaluateCommand): Ditto.
(ValidatePatch): Renamed to ValidateChange.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/246047@main
- 10:10 AM Changeset in webkit [288020] by
-
- 3 edits in trunk/Source/WTF
Fix WTF::UUID's potential collision with empty and deleted values
https://bugs.webkit.org/show_bug.cgi?id=235177
Reviewed by Chris Dumez.
Since cryptographicallyRandomValues generates random values, it is possible that it produces 0 or 1.
In that case, it conflicts with empty and deleted values of UUID for hash table. When it is generated
and used, it can break hash tables. This patch avoids that by picking 2 when we generate 0 or 1.
We also avoid using UInt128Impl and instead using UInt128. UInt128Impl is implementation, so we should
always use UInt128. UInt128 can be native uint128_t when it is supported by the compiler: clang and
GCC on 64bit support it.
In this patch, we do not use strict UUID v4. This patch focuses on fixing the existing hash table corruption
bug, and we defer discussion about UUID v4 since it reduces usable bits from 128 to 122, which we need to
investigate the existing usage of UUID (and UUID string) in our tree.
- wtf/UUID.cpp:
(WTF::UUID::UUID):
- wtf/UUID.h:
(WTF::UUID::UUID):
(WTF::UUID::isHashTableDeletedValue const):
(WTF::UUID::encode const):
(WTF::UUID::decode):
- 9:10 AM Changeset in webkit [288019] by
-
- 5 edits in trunk/Source/WebKit
Inject Launch Services database before NSApplication is initialized
https://bugs.webkit.org/show_bug.cgi?id=235186
<rdar://87468788>
Reviewed by Chris Dumez and Simon Fraser.
To avoid the main thread getting stuck, the Launch Services database should be injected before NSApplication
is initialized, since the initialization now depends on the database.
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformDidReceiveLoadParameters):
- WebProcess/cocoa/LaunchServicesDatabaseManager.h:
- WebProcess/cocoa/LaunchServicesDatabaseManager.mm:
(WebKit::LaunchServicesDatabaseManager::waitForDatabaseUpdate):
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::platformInitializeWebProcess):
- 8:40 AM Changeset in webkit [288018] by
-
- 5 edits in trunk/Source/WebCore
AX: Move methods that are unnecessarily in AccessibilityRenderObject to AccessibilityNodeObject (part 1 of n)
https://bugs.webkit.org/show_bug.cgi?id=235204
Reviewed by Chris Fleizach.
Many methods in AccessibilityRenderObject don't actually do anything renderer-specific,
and thus should be in the base class AccessibilityNodeObject. This will help improve our support
for AX objects that normally have renderers, but don't because of CSS or ARIA markup (e.g. display: contents).
- accessibility/AccessibilityNodeObject.cpp:
(WebCore::AccessibilityNodeObject::isFileUploadButton const):
(WebCore::AccessibilityNodeObject::correspondingControlForLabelElement const):
(WebCore::AccessibilityNodeObject::correspondingLabelForControlElement const):
(WebCore::AccessibilityNodeObject::labelElementContainer const):
(WebCore::AccessibilityNodeObject::exposesTitleUIElement const):
(WebCore::AccessibilityNodeObject::hasTextAlternative const):
- accessibility/AccessibilityNodeObject.h:
Add all of the above methods from AccessibilityRenderObject.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::determineDropEffects const):
(WebCore::AccessibilityRenderObject::isFileUploadButton const):
(WebCore::AccessibilityRenderObject::labelElementContainer const):
(WebCore::AccessibilityRenderObject::hasTextAlternative const):
(WebCore::AccessibilityRenderObject::exposesTitleUIElement const):
(WebCore::AccessibilityRenderObject::correspondingControlForLabelElement const):
(WebCore::AccessibilityRenderObject::correspondingLabelForControlElement const):
- accessibility/AccessibilityRenderObject.h:
Move all of the above methods to AccessibilityNodeObject.
- 7:23 AM Changeset in webkit [288017] by
-
- 4 edits in trunk/Source/WebCore
Reduce use of KeyframeEffect::targetElementOrPseudoElement()
https://bugs.webkit.org/show_bug.cgi?id=235228
Reviewed by Antti Koivisto.
The KeyframeEffect::targetElementOrPseudoElement() method is one of the few remaining places
in animation-related code where we deal with PseudoElement objects. As it turns out, a lot of
its remaning call sites are not actually making any use of PseudoElement and should just use
the simple target() method.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::invalidate):
- dom/Document.cpp:
(WebCore::Document::matchingAnimations):
- dom/Element.cpp:
(WebCore::Element::getAnimations):
- 7:21 AM Changeset in webkit [288016] by
-
- 3 edits in trunk/Source/WebCore
Stop forcing the creation of PseudoElement in KeyframeEffect
https://bugs.webkit.org/show_bug.cgi?id=235225
Reviewed by Antti Koivisto.
At the time we started supporting targeting pseudo-elements using the Web Animations API,
we resorted to some hack-ish code to enforce the creation of a PseudoElement should the
target of the animation be a ::before or ::after pseudo-element.
This isn't necessary, and was due to some incorrect code in
RenderTreeUpdater::GeneratedContent::updatePseudoElement() which this patch corrects.
Indeed, if there are animations targeting the pseudo-element in question, we should not
be removing the pseudo-element and exiting this method.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::didChangeTargetStyleable):
(WebCore::elementOrPseudoElementForStyleable): Deleted.
- rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
- 5:40 AM Changeset in webkit [288015] by
-
- 3 edits2 adds in trunk
[LFC][IFC] Incorrect root inline box position when non-empty atomic inline level child box has height: 0px
https://bugs.webkit.org/show_bug.cgi?id=235218
<rdar://84617690>
Reviewed by Antti Koivisto.
Source/WebCore:
Even if the atomic inline level box itself does not stetch the line box, it may still affect the root inline box position
through baseline "syncing" (This is mostly the case with 0 tall boxes as (non-empty) atomic inline boxes in general stretch the line box).
Test: fast/block/line-layout/non-empty-inline-block-with-zero-height.html
- layout/formattingContexts/inline/InlineLineBoxVerticalAligner.cpp:
(WebCore::Layout::LineBoxVerticalAligner::computeRootInlineBoxVerticalPosition const):
LayoutTests:
- fast/block/line-layout/non-empty-inline-block-with-zero-height-expected.html: Added.
- fast/block/line-layout/non-empty-inline-block-with-zero-height.html: Added.
- 4:55 AM Changeset in webkit [288014] by
-
- 8 edits2 moves1 add in trunk/Source/WebCore
[GTK][WPE] Share code between NicosiaGCGLLayer+ANGLE and NicosiaImageBufferPipe
https://bugs.webkit.org/show_bug.cgi?id=235182
Reviewed by Alejandro G. Castro.
Rename NicosiaGCGLANGLELayer to NicosiaGCGLANGLEPipe and have it
inherit from NicosiaImageBufferPipe instead of NicosiaGCGLLayer.
No new tests, no change in behaviour.
- platform/TextureMapper.cmake:
- platform/graphics/angle/GraphicsContextGLANGLE.h:
- platform/graphics/nicosia/NicosiaImageBufferPipe.cpp:
(Nicosia::NicosiaImageBufferPipe::NicosiaImageBufferPipe):
(Nicosia::NicosiaImageBufferPipe::source const):
(Nicosia::NicosiaImageBufferPipe::layerContentsDisplayDelegate):
(): Deleted.
(Nicosia::WebCore::NicosiaImageBufferPipeSource::NicosiaImageBufferPipeSource): Deleted.
(Nicosia::WebCore::NicosiaImageBufferPipeSource::~NicosiaImageBufferPipeSource): Deleted.
(Nicosia::WebCore::NicosiaImageBufferPipeSource::handle): Deleted.
(Nicosia::WebCore::NicosiaImageBufferPipeSource::swapBuffersIfNeeded): Deleted.
- platform/graphics/nicosia/NicosiaImageBufferPipe.h: Added.
(Nicosia::NicosiaImageBufferPipeSource::platformLayer const):
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLEPipe.cpp: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.cpp.
- platform/graphics/nicosia/texmap/NicosiaGCGLANGLEPipe.h: Renamed from Source/WebCore/platform/graphics/nicosia/texmap/NicosiaGCGLANGLELayer.h.
- platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:
(Nicosia::GCGLLayer::GCGLLayer):
(Nicosia::GCGLLayer::swapBuffersIfNeeded):
- platform/graphics/nicosia/texmap/NicosiaGCGLLayer.h:
- platform/graphics/texmap/GraphicsContextGLTextureMapper.cpp:
(WebCore::GraphicsContextGLTextureMapper::GraphicsContextGLTextureMapper):
- platform/graphics/texmap/GraphicsContextGLTextureMapperANGLE.cpp:
(WebCore::GraphicsContextGLANGLE::GraphicsContextGLANGLE):
(WebCore::GraphicsContextGLANGLE::platformDisplay const):
(WebCore::GraphicsContextGLANGLE::platformConfig const):
(WebCore::GraphicsContextGLANGLE::makeContextCurrent):
- 4:08 AM Changeset in webkit [288013] by
-
- 7 edits in trunk/Source/WebCore
[GTK][a11y] Unregister objects and clear cache when last client disconnect with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234781
Reviewed by Adrian Perez de Castro.
We currently register objects when there are clients asking for cached items or connect event listeners. We
could unregister the objects and clear the cache if all the clients are disconnected. This patch adds a low
priority timer to clear the cache and unregister the objects if there aren't new clients after 10 seconds
since the last client disconnected.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::initializeRegistry): Remove the calls to registerTrees(), since it's now done by
addClient() when the first client is added.
(WebCore::AccessibilityAtspi::addEventListener): Call addClient().
(WebCore::AccessibilityAtspi::addClient): Register the trees if this is the first client. Add the client to the
map and subscribe to NameOwnerChanged to remove the client when it's disconnected.
(WebCore::AccessibilityAtspi::removeClient): Remove the client and start the clear cache timer if the clients
map is empty.
(WebCore::AccessibilityAtspi::cacheClearTimerFired): Unregister all the objects and clear the cache.
(WebCore::AccessibilityAtspi::registerTrees const): Deleted.
- accessibility/atspi/AccessibilityAtspi.h:
(WebCore::AccessibilityAtspi::hasClients const): Return whether there are clients connected.
(WebCore::AccessibilityAtspi::hasEventListeners const): Deleted.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::didUnregisterObject): Object was unregistered by the clear cache timer,
reset the path and isRegistered members.
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::registerTree): Return early if already registered.
(WebCore::AccessibilityRootAtspi::didUnregisterTree): Tree was unregistered by the clear caceh timer, reset the
treeIsRegistered member.
(WebCore::AccessibilityRootAtspi::embedded): Check if there are clients.
- accessibility/atspi/AccessibilityRootAtspi.h:
- 3:56 AM Changeset in webkit [288012] by
-
- 8 edits2 adds in trunk
[:has() pseudo-class] Avoid O(n2) in style invalidation with repeated DOM mutations
https://bugs.webkit.org/show_bug.cgi?id=234842
<rdar://problem/87397176>
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/has-complexity-expected.txt: Added.
- web-platform-tests/css/selectors/invalidation/has-complexity.html: Added.
Source/WebCore:
Use invalidation selectors to check if a given mutation needs :has() invalidation.
Test: imported/w3c/web-platform-tests/css/selectors/invalidation/has-complexity.html
- css/SelectorChecker.cpp:
(WebCore::SelectorChecker::checkOne const):
- css/SelectorChecker.h:
- style/ChildChangeInvalidation.cpp:
(WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):
Invalidate only if the invalidation ruleset has an invalidation selector that matches
the added/removed element. Even in that case we only need to invalidate if that selector
has not already matched within this parent.
As we don't have persistent state that would remember what already matched accross multiple
mutations, approximate this by checking if the closest sibling matched.
(WebCore::Style::ChildChangeInvalidation::invalidateForHasBeforeMutation):
(WebCore::Style::ChildChangeInvalidation::invalidateForHasAfterMutation):
- style/ChildChangeInvalidation.h:
LayoutTests:
- 1:42 AM Changeset in webkit [288011] by
-
- 6 edits2 adds in trunk/Source/WebCore
[LBSE] Introduce SVGContainerLayout
https://bugs.webkit.org/show_bug.cgi?id=235101
Reviewed by Rob Buis.
Upstream SVGContainerLayout, a utility class centralizing
the "layout children in SVG render tree" algorithm. The legacy
engines relies on various helper methods in SVGRenderingSupport -- for
LBSE it's all in one place: SVGContainerLayout.
The actual two-pass algorithm is described in the technical document
covering LBSE. It's identical to the LBSE downstream version, which
used to pass all layout tests.
Currently the functionality is not observable, as we don't create
LBSE renderers yet.
Covered by existing tests, no change in behaviour.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderObject.h:
(WebCore::RenderObject::isSVGLayerAwareRenderer const):
- rendering/svg/RenderSVGContainer.cpp:
(WebCore::RenderSVGContainer::layoutChildren):
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout):
- rendering/svg/SVGContainerLayout.cpp: Added.
(WebCore::SVGContainerLayout::SVGContainerLayout):
(WebCore::SVGContainerLayout::layoutChildren):
(WebCore::layoutLocationFromRenderer):
(WebCore::setLayoutLocationForRenderer):
(WebCore::SVGContainerLayout::positionChildrenRelativeToContainer):
(WebCore::SVGContainerLayout::verifyLayoutLocationConsistency):
(WebCore::SVGContainerLayout::layoutDifferentRootIfNeeded):
(WebCore::SVGContainerLayout::invalidateResourcesOfChildren):
(WebCore::SVGContainerLayout::layoutSizeOfNearestViewportChanged const):
(WebCore::SVGContainerLayout::transformToRootChanged):
- rendering/svg/SVGContainerLayout.h: Added.
- 12:02 AM Changeset in webkit [288010] by
-
- 5 edits in trunk
Expose way to encode CTAP commands with only the hash of ClientDataJSON
https://bugs.webkit.org/show_bug.cgi?id=235191
<rdar://problem/87557846>
Reviewed by Brent Fulgham.
Source/WebKit:
CTAP command encoding covered by existing tests (see CtapRequestTest) and the SPI
in new API tests.
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.h:
- UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm:
(+[_WKWebAuthenticationPanel encodeMakeCredentialCommandWithClientDataHash:options:userVerificationAvailability:]):
(+[_WKWebAuthenticationPanel encodeGetAssertionCommandWithClientDataHash:options:userVerificationAvailability:]):
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm:
(TestWebKitAPI::TEST):
Tests for new SPIs.
Jan 13, 2022:
- 11:51 PM Changeset in webkit [288009] by
-
- 55 edits13 copies13 moves172 adds6 deletes in trunk/LayoutTests
Update WPT for css/css-pseudo
https://bugs.webkit.org/show_bug.cgi?id=235197
Unreviewed WPT import.
LayoutTests/imported/w3c:
- resources/resource-files.json:
- web-platform-tests/css/css-pseudo/README.md:
- web-platform-tests/css/css-pseudo/active-selection-011.html:
- web-platform-tests/css/css-pseudo/active-selection-012-expected.html:
- web-platform-tests/css/css-pseudo/active-selection-012.html:
- web-platform-tests/css/css-pseudo/active-selection-016.html:
- web-platform-tests/css/css-pseudo/active-selection-018.html:
- web-platform-tests/css/css-pseudo/active-selection-021.html:
- web-platform-tests/css/css-pseudo/active-selection-025.html:
- web-platform-tests/css/css-pseudo/active-selection-027.html:
- web-platform-tests/css/css-pseudo/active-selection-031.html:
- web-platform-tests/css/css-pseudo/active-selection-041-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/active-selection-041-expected.html.
- web-platform-tests/css/css-pseudo/active-selection-043.html:
- web-platform-tests/css/css-pseudo/active-selection-045.html:
- web-platform-tests/css/css-pseudo/active-selection-051-ref.html: Added.
- web-platform-tests/css/css-pseudo/active-selection-056.html:
- web-platform-tests/css/css-pseudo/active-selection-057.html:
- web-platform-tests/css/css-pseudo/active-selection-063.html:
- web-platform-tests/css/css-pseudo/backdrop-animate-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/before-after-dynamic-custom-property-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/cascade-highlight-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/active-selection-012-expected.html.
- web-platform-tests/css/css-pseudo/cascade-highlight-001.html:
- web-platform-tests/css/css-pseudo/cascade-highlight-002.html:
- web-platform-tests/css/css-pseudo/cascade-highlight-004-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/active-selection-012-expected.html.
- web-platform-tests/css/css-pseudo/cascade-highlight-004.html:
- web-platform-tests/css/css-pseudo/cascade-highlight-005-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/active-selection-012-expected.html.
- web-platform-tests/css/css-pseudo/cascade-highlight-005.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/cascade-highlight-004.html.
- web-platform-tests/css/css-pseudo/file-selector-button-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/file-selector-button-001-expected.html.
- web-platform-tests/css/css-pseudo/file-selector-button-after-part-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/file-selector-button-after-part-expected.html.
- web-platform-tests/css/css-pseudo/file-selector-button-inherit-expected.txt: Added.
- web-platform-tests/css/css-pseudo/file-selector-button-inherit.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-001.html:
- web-platform-tests/css/css-pseudo/first-letter-002.html:
- web-platform-tests/css/css-pseudo/first-letter-003.html:
- web-platform-tests/css/css-pseudo/first-letter-004-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-004.html:
- web-platform-tests/css/css-pseudo/first-letter-005-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-and-whitespace-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-background-image-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-block-to-inline-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-exclude-block-child-marker-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-exclude-inline-child-marker-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-exclude-inline-marker-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-hi-001-expected.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-hi-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-hi-001.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-hi-002-expected.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-hi-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-hi-002.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-list-item-dynamic-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-of-html-root-crash-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-opacity-001-not-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-opacity-001-ref-expected.html.
- web-platform-tests/css/css-pseudo/first-letter-opacity-001-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-letter-opacity-001-ref-expected.html.
- web-platform-tests/css/css-pseudo/first-letter-opacity-float-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-punctuation-and-space-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-punctuation-and-space.html:
- web-platform-tests/css/css-pseudo/first-letter-punctuation-dynamic-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-skip-empty-span-nested-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-skip-empty-span-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-skip-marker-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-width-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-with-quote-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-letter-with-span-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-and-marker-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-and-placeholder-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-change-inline-color-nested-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-change-inline-color-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-line-height-001-expected.html: Added.
- web-platform-tests/css/css-pseudo/first-line-line-height-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-line-height-001.html: Added.
- web-platform-tests/css/css-pseudo/first-line-line-height-002-expected.html: Added.
- web-platform-tests/css/css-pseudo/first-line-line-height-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-line-height-002.html: Added.
- web-platform-tests/css/css-pseudo/first-line-on-ancestor-block-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-opacity-001-not-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-opacity-001-ref-expected.html.
- web-platform-tests/css/css-pseudo/first-line-opacity-001-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/first-line-opacity-001-ref-expected.html.
- web-platform-tests/css/css-pseudo/first-line-replaced-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-with-before-after-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-with-inline-block-before-ref.html: Added.
- web-platform-tests/css/css-pseudo/first-line-with-out-of-flow-ref.html: Added.
- web-platform-tests/css/css-pseudo/grammar-error-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/grammar-error-001.html.
- web-platform-tests/css/css-pseudo/grammar-error-001.html:
- web-platform-tests/css/css-pseudo/grammar-spelling-errors-001.html:
- web-platform-tests/css/css-pseudo/grammar-spelling-errors-002.html:
- web-platform-tests/css/css-pseudo/highlight-cascade-001-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-001.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-002-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-002.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-003-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-003-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-003.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-004-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-004-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-cascade-004.html: Added.
- web-platform-tests/css/css-pseudo/highlight-painting-001-expected.html:
- web-platform-tests/css/css-pseudo/highlight-painting-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-001-expected.html.
- web-platform-tests/css/css-pseudo/highlight-painting-001.html:
- web-platform-tests/css/css-pseudo/highlight-painting-002-expected.html:
- web-platform-tests/css/css-pseudo/highlight-painting-002-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-002-expected.html.
- web-platform-tests/css/css-pseudo/highlight-painting-002.html:
- web-platform-tests/css/css-pseudo/highlight-painting-003-expected.html:
- web-platform-tests/css/css-pseudo/highlight-painting-003-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-003-expected.html.
- web-platform-tests/css/css-pseudo/highlight-painting-003.html:
- web-platform-tests/css/css-pseudo/highlight-painting-004-expected.html:
- web-platform-tests/css/css-pseudo/highlight-painting-004-ref1.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/highlight-painting-004-expected.html.
- web-platform-tests/css/css-pseudo/highlight-painting-004-ref2.html: Added.
- web-platform-tests/css/css-pseudo/highlight-painting-004-ref3.html: Added.
- web-platform-tests/css/css-pseudo/highlight-painting-004.html:
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-001-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-001.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-002-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-002.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-003-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-003-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-003.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-004-notref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-004.tentative-expected-mismatch.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-004.tentative.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-005-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-005.tentative-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-005.tentative.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-006-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-006-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-paired-cascade-006.html: Added.
- web-platform-tests/css/css-pseudo/highlight-styling-001-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-styling-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-styling-001.html: Added.
- web-platform-tests/css/css-pseudo/highlight-styling-002-expected.html: Added.
- web-platform-tests/css/css-pseudo/highlight-styling-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-styling-002.html: Added.
- web-platform-tests/css/css-pseudo/highlight-z-index-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-z-index-001.html:
- web-platform-tests/css/css-pseudo/highlight-z-index-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/highlight-z-index-002.html:
- web-platform-tests/css/css-pseudo/marker-and-other-pseudo-elements-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-animate-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-color-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-003-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-004-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-005-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-006-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-007-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-008-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-009-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-011-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-012-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-013-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-014-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-015-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-016-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-017-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-018-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-019-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-020-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-021-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-022-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-023-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-content-024-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-font-properties-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-font-variant-numeric-default-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-default-ref-expected.html.
- web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-font-variant-numeric-normal-ref-expected.html.
- web-platform-tests/css/css-pseudo/marker-hyphens-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-inherit-line-height-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-inherit-values-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-intrinsic-contribution-002-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-line-break-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-line-height-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-tab-size-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-text-align-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-text-combine-upright-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-text-decoration-skip-ink-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-text-emphasis-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-text-shadow-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-text-transform-default-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-text-transform-uppercase-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-unicode-bidi-default-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-unicode-bidi-default-ref-expected.html.
- web-platform-tests/css/css-pseudo/marker-unicode-bidi-normal-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/marker-unicode-bidi-normal-ref-expected.html.
- web-platform-tests/css/css-pseudo/marker-word-break-ref.html: Added.
- web-platform-tests/css/css-pseudo/marker-word-spacing-ref.html: Added.
- web-platform-tests/css/css-pseudo/outside-marker-paint-order-ref.html: Added.
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation.html:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties.html:
- web-platform-tests/css/css-pseudo/placeholder-inherit-expected.txt: Added.
- web-platform-tests/css/css-pseudo/placeholder-inherit.html: Added.
- web-platform-tests/css/css-pseudo/placeholder-input-number-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/placeholder-input-number-expected.html.
- web-platform-tests/css/css-pseudo/selection-background-painting-order-expected.html: Added.
- web-platform-tests/css/css-pseudo/selection-background-painting-order-ref1.html: Added.
- web-platform-tests/css/css-pseudo/selection-background-painting-order-ref2.html: Added.
- web-platform-tests/css/css-pseudo/selection-background-painting-order.html: Added.
- web-platform-tests/css/css-pseudo/selection-contenteditable-011.html:
- web-platform-tests/css/css-pseudo/selection-decoration-p1-expected.html: Removed.
- web-platform-tests/css/css-pseudo/selection-decoration-p2-expected.html: Removed.
- web-platform-tests/css/css-pseudo/selection-decoration-p2.html: Removed.
- web-platform-tests/css/css-pseudo/selection-decoration-p3-expected.html: Removed.
- web-platform-tests/css/css-pseudo/selection-decoration-p4-expected.html: Removed.
- web-platform-tests/css/css-pseudo/selection-decoration-p4.html: Removed.
- web-platform-tests/css/css-pseudo/selection-input-011.html:
- web-platform-tests/css/css-pseudo/selection-originating-decoration-color-expected.html: Added.
- web-platform-tests/css/css-pseudo/selection-originating-decoration-color-ref.html: Added.
- web-platform-tests/css/css-pseudo/selection-originating-decoration-color.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/selection-decoration-p3.html.
- web-platform-tests/css/css-pseudo/selection-originating-strikethrough-order-expected.html: Added.
- web-platform-tests/css/css-pseudo/selection-originating-strikethrough-order-ref.html: Added.
- web-platform-tests/css/css-pseudo/selection-originating-strikethrough-order.html: Added.
- web-platform-tests/css/css-pseudo/selection-originating-underline-order-expected.html: Added.
- web-platform-tests/css/css-pseudo/selection-originating-underline-order-ref.html: Added.
- web-platform-tests/css/css-pseudo/selection-originating-underline-order.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/selection-decoration-p1.html.
- web-platform-tests/css/css-pseudo/selection-overlay-and-grammar-001.html:
- web-platform-tests/css/css-pseudo/selection-overlay-and-spelling-001.html:
- web-platform-tests/css/css-pseudo/selection-paint-image-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/selection-paint-image-expected.html.
- web-platform-tests/css/css-pseudo/selection-textarea-011.html:
- web-platform-tests/css/css-pseudo/spelling-error-001-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/spelling-error-001.html.
- web-platform-tests/css/css-pseudo/spelling-error-001.html:
- web-platform-tests/css/css-pseudo/target-text-001-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-001.html: Added.
- web-platform-tests/css/css-pseudo/target-text-002-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-002.html: Added.
- web-platform-tests/css/css-pseudo/target-text-003-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-003.html: Added.
- web-platform-tests/css/css-pseudo/target-text-004-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-004.html: Added.
- web-platform-tests/css/css-pseudo/target-text-005-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-005.html: Added.
- web-platform-tests/css/css-pseudo/target-text-006-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-006.html: Added.
- web-platform-tests/css/css-pseudo/target-text-007-expected.txt: Added.
- web-platform-tests/css/css-pseudo/target-text-007.html: Added.
- web-platform-tests/css/css-pseudo/target-text-dynamic-001-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-dynamic-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/target-text-dynamic-001.html: Added.
- web-platform-tests/css/css-pseudo/target-text-dynamic-002-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-dynamic-002.html: Added.
- web-platform-tests/css/css-pseudo/target-text-dynamic-003-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-dynamic-003.html: Added.
- web-platform-tests/css/css-pseudo/target-text-dynamic-004-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-dynamic-004.html: Added.
- web-platform-tests/css/css-pseudo/target-text-lime-green-ref.html: Added.
- web-platform-tests/css/css-pseudo/target-text-lime-ref.html: Added.
- web-platform-tests/css/css-pseudo/target-text-text-decoration-001-expected.html: Added.
- web-platform-tests/css/css-pseudo/target-text-text-decoration-001-ref.html: Added.
- web-platform-tests/css/css-pseudo/target-text-text-decoration-001.html: Added.
- web-platform-tests/css/css-pseudo/target-text-two-words-ref.html: Added.
- web-platform-tests/css/css-pseudo/textpath-selection-011-expected.html:
- web-platform-tests/css/css-pseudo/textpath-selection-011-ref.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-pseudo/textpath-selection-011-expected.html.
- web-platform-tests/css/css-pseudo/textpath-selection-011.html:
- web-platform-tests/css/css-pseudo/w3c-import.log:
LayoutTests:
- TestExpectations:
- platform/gtk/TestExpectations:
- platform/ios/TestExpectations:
- 10:15 PM Changeset in webkit [288008] by
-
- 6 edits in trunk/Source/WebCore
Don't call invalidateRectsForAllMarkers() for every layer in the updateLayerPositions() traversal
https://bugs.webkit.org/show_bug.cgi?id=235211
Reviewed by Alan Bujtas.
RenderLayer::updateLayerPositions() called renderer().document().markers().invalidateRectsForAllMarkers()
but that is called on every layer in the recursive updateLayerPositions() traveral. Yet it only needs
to be called once.
So differentiate the entry points for layer traversal from the recursive traversal functions
by using "recursive" in the naming of the latter, and move two of those entrypoints from
RenderLayerScrollableArea back to RenderLayer so everything is in the same file.
Now the entrypoints can call willUpdateLayerPositions() which does the invalidateRectsForAllMarkers().
- page/FrameView.cpp:
(WebCore::FrameView::updateLayerPositionsAfterScrolling):
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::willUpdateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterStyleChange):
(WebCore::RenderLayer::updateLayerPositionsAfterLayout):
(WebCore::RenderLayer::recursiveUpdateLayerPositions):
(WebCore::RenderLayer::updateLayerPositionsAfterOverflowScroll):
(WebCore::RenderLayer::updateLayerPositionsAfterDocumentScroll):
(WebCore::RenderLayer::recursiveUpdateLayerPositionsAfterScroll):
(WebCore::RenderLayer::updateLayerPositions): Deleted.
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): Deleted.
- rendering/RenderLayer.h:
(WebCore::RenderLayer::recursiveUpdateLayerPositionsAfterScroll):
(WebCore::RenderLayer::updateLayerPositionsAfterScroll): Deleted.
- rendering/RenderLayerScrollableArea.cpp:
(WebCore::RenderLayerScrollableArea::scrollTo):
(WebCore::RenderLayerScrollableArea::updateLayerPositionsAfterDocumentScroll): Deleted.
(WebCore::RenderLayerScrollableArea::updateLayerPositionsAfterOverflowScroll): Deleted.
- rendering/RenderLayerScrollableArea.h:
- 8:37 PM Changeset in webkit [288007] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] riscv64 backend should lower offlineasm instructions
https://bugs.webkit.org/show_bug.cgi?id=234952
<rdar://problem/87440612>
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-13
Reviewed by Yusuke Suzuki.
In the riscv64 offlineasm backend, instead of handling higher-level
offlineasm instructions with different operand combinations and manually
juggling temp registers, use the approach of aggressively lowering these
opcodes into sequences of RISC-V instructions.
Addresses and immediate values are lowered into usable forms where
necessary. Different lowering phases handle any offlineasm instruction
so that the resulting opcodes can be, with accompanying operands, used
trivially to construct the RISC-V assembly.
Lowered RISC-V opcodes use the 'rv_' prefix so that they can be easily
diassociated from any offlineasm opcode that might share the same name.
The prefix is removed when the assembly is finally generated.
- offlineasm/riscv64.rb:
- 7:25 PM Changeset in webkit [288006] by
-
- 2 edits in trunk/Source/WebCore
[Cleanup] Line::selectionState logic is slightly confusing and redundant
https://bugs.webkit.org/show_bug.cgi?id=235187
Reviewed by Antti Koivisto.
Go from a seemingly random set of conditions to a incremental state change (None -> Start -> Inside -> End).
(This also removes redundant code like "if (state == None ((boxState == Start boxState == End) && (state == None state == Inside)))" and clears up what "state" here actually means.)
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::selectionState const):
- 7:14 PM Changeset in webkit [288005] by
-
- 9 edits in trunk
Unable to have new lines in HTMLTextArea's placeholder text
https://bugs.webkit.org/show_bug.cgi?id=235205
Reviewed by Wenson Hsieh.
Source/WebCore:
Unlike the placeholder for HTMLInputElement, the placeholder for HTMLTextAreaElement needs
to allow new lines as per:
This aligns our behavior with Blink and Gecko.
No new tests, unskipped existing WPT tests.
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::placeholder const):
- html/HTMLInputElement.h:
- html/HTMLTextAreaElement.cpp:
(WebCore::HTMLTextAreaElement::updatePlaceholderText):
- html/HTMLTextFormControlElement.cpp:
(WebCore::HTMLTextFormControlElement::strippedPlaceholder const): Deleted.
- html/HTMLTextFormControlElement.h:
- html/TextFieldInputType.cpp:
(WebCore::TextFieldInputType::updatePlaceholderText):
LayoutTests:
Unskip WPT tests that are no longer failing.
- 7:06 PM Changeset in webkit [288004] by
-
- 6 edits in trunk
html/semantics/scripting-1/the-script-element/script-type-and-language-empty.html WPT test is failing
https://bugs.webkit.org/show_bug.cgi?id=235202
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Rebaseline test that is now passing.
- web-platform-tests/html/semantics/scripting-1/the-script-element/script-type-and-language-empty-expected.txt:
Source/WebCore:
Per https://html.spec.whatwg.org/multipage/scripting.html#prepare-a-script (step 8), we should assume
the type is "text/javascript" if the type attribute is present and its value is the empty string.
Our logic in ScriptElement::determineScriptType() was slightly wrong and didn't get this case right
because it was doing anisEmpty()check which could mean both that the attribute is missing or present
with a value that is the empty string.
No new tests, rebaselined existing test.
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::determineScriptType const):
- 6:53 PM Changeset in webkit [288003] by
-
- 3 edits2 adds in trunk
Only apply automatic minimum block-size aspect-ratio rules to non-replaced elements
https://bugs.webkit.org/show_bug.cgi?id=235058
<rdar://85505101>
Reviewed by Alan Bujtas.
Source/WebCore:
The rules in https://www.w3.org/TR/css-sizing-4/#aspect-ratio-minimum
that define the automatic minimum size of an element subject to an
aspect-ratio only apply if the element is non-replaced.
In constrainLogicalHeightByMinMax specifically, when min-height is
auto, after applying the aspect-ratio to produce an automatic minimum
height, we bump it up to the content height if the element has
children. This, presumably, is to account for the way the height of a
block is computed in CSS 2.2. (As CSS 2.2 doesn't have an auto value
for min-height, and a CSS Block Layout module has not been written in
terms of CSS Sizing concepts, there is no clear definition of
automatic minimum sizing for blocks at the moment.) If we erroneously
apply this to a replaced element, such as an image or video, it can
get a computed min-height equal to the intrinsic height of the image,
which may be much larger than expected.
This commit adds an is<RenderReplaced>() check for both automatic
minimum logical width and height calculations, although I was unable to
produce a test to exercise the logical width case (which does not take
the intrinsic size into account when computing the automatic minimum).
Test: fast/css/aspect-ratio-min-height-replaced.html
- rendering/RenderBox.cpp:
(WebCore::RenderBox::constrainLogicalWidthInFragmentByMinMax const):
(WebCore::RenderBox::constrainLogicalHeightByMinMax const):
LayoutTests:
Test that replaced elements with child content (in this case, a
<video> element's controls in the UA shadow tree) don't influence the
automatic minimum size calculation.
- fast/css/aspect-ratio-min-height-replaced-expected.html: Added.
- fast/css/aspect-ratio-min-height-replaced.html: Added.
- 6:40 PM Changeset in webkit [288002] by
-
- 4 edits in trunk/Source/JavaScriptCore
Link Wasm code on the same thread that JITs
https://bugs.webkit.org/show_bug.cgi?id=235201
Reviewed by Yusuke Suzuki and Mark Lam.
This is preparing us for the changes that'll be needed by
https://bugs.webkit.org/show_bug.cgi?id=235192.
It should also be a small perf improvement, as we're now linking
in parallel instead of doing it after all compilations have finished.
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::parseAndCompileB3):
- wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::prepareImpl):
(JSC::Wasm::BBQPlan::compileFunction):
(JSC::Wasm::BBQPlan::didCompleteCompilation):
(JSC::Wasm::BBQPlan::initializeCallees):
- wasm/WasmBBQPlan.h:
- 5:57 PM Changeset in webkit [288001] by
-
- 1 copy in tags/Safari-613.1.13
Tag Safari-613.1.13.
- 5:15 PM Changeset in webkit [288000] by
-
- 3 edits in trunk/Source/WebCore
Move the code that computes layer content visibility into its own function
https://bugs.webkit.org/show_bug.cgi?id=235195
Reviewed by Alan Bujtas.
Just move into its own function the code with the odd-looking RenderObject walk that looks
for visibility:visible non-layer children in a visibility:hidden ancestor.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::updateDescendantDependentFlags):
(WebCore::RenderLayer::computeHasVisibleContent const):
- rendering/RenderLayer.h:
- 5:01 PM Changeset in webkit [287999] by
-
- 23 edits in trunk/Source
[XCBuild] Add "product dependencies" which influence workspace build order
https://bugs.webkit.org/show_bug.cgi?id=235094
Source/JavaScriptCore:
Some ancillary targets (e.g. script-only targets like Derived Sources) do not have implicit
dependencies visible to Xcode. In workspace builds, we need to give XCBuild additional
information to ensure that they always run after their dependencies.
This patch adds "Product Dependencies" phases, which are Copy Files phases that copy the
_product_ of another dependency. The product names are also added to
EXCLUDED_SOURCE_FILE_NAMES, making the actual copy a no-op, but these phases give XCBuild
enough metadata to infer the relationship between targets.
For example, JavaScriptCore's "Generate Unified Sources" target depends on headers from WTF,
so it lists libWTF.a in its Product Dependencies. Xcode sees the relationship between the
target doing the copy (Generate Unified Sources) and the target which produces the product
(WTF) and schedules them accordingly.
Because these dependencies are _implicit_ and the copy phases are no-ops, they do not
influence command-line or production builds where each project is built separately.
Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.
- Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
- Configurations/JavaScriptCore.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
- JavaScriptCore.xcodeproj/project.pbxproj: Add Product Dependencies
Source/WebCore:
Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.
No tests, build system only.
- Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
- Configurations/WebCore.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
- WebCore.xcodeproj/project.pbxproj: Add Product Dependencies
Source/WebCore/PAL:
Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.
- Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
- Configurations/PAL.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
- PAL.xcodeproj/project.pbxproj: Add Product Dependencies
Source/WebInspectorUI:
Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.
- Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
- WebInspectorUI.xcodeproj/project.pbxproj: Add Product Dependencies
Source/WebKit:
Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.
- Configurations/WebKit.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
- WebKit.xcodeproj/project.pbxproj: Add Product Dependencies
Source/WTF:
Patch by Elliott Williams <Elliott Williams> on 2022-01-13
Reviewed by Alexey Proskuryakov.
- Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
- Configurations/WTF.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
- WTF.xcodeproj/project.pbxproj: Add Product Dependencies
- 3:47 PM Changeset in webkit [287998] by
-
- 5 edits in trunk/Source/WebCore
Non-unified build fixes, mid January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235180
Unreviewed non-unified build fixes.
No new tests needed.
- platform/graphics/filters/SourceAlpha.cpp: Add missing ImageBuffer.h header.
- svg/SVGFEPointLightElement.cpp: Add missing FilterEffectVector.h header.
- svg/SVGFESpotLightElement.cpp: Add missing headers FilterEffectVector.h,
GeometryUtilities.h, and ImageBuffer.h.
- svg/graphics/filters/SVGFilterBuilder.h: Add missing FilterEffectVector.h header.
- 3:44 PM Changeset in webkit [287997] by
-
- 2 edits in trunk/Source/WebKit
Sometimes cannot scroll after using internal trackpad
https://bugs.webkit.org/show_bug.cgi?id=235206
<rdar://problem/87274541>
Reviewed by Simon Fraser.
- WebProcess/WebPage/MomentumEventDispatcher.cpp:
(WebKit::MomentumEventDispatcher::didStartMomentumPhase):
(WebKit::MomentumEventDispatcher::setScrollingAccelerationCurve):
- WebProcess/WebPage/MomentumEventDispatcher.h:
We store std::optional<ScrollingAccelerationCurve> in a map, but then
when looking at whether we have a curve (to decide whether or not to even
use MomentumEventDispatcher), we check if the map has *any* value for the
given page... even an unengaged optional. To fix, check if the optional is engaged.
- 3:19 PM Changeset in webkit [287996] by
-
- 11 edits in trunk
Implement HTMLScriptElement.supports(type) method
https://bugs.webkit.org/show_bug.cgi?id=229929
<rdar://problem/82933899>
Reviewed by Geoff Garen and Darin Adler.
LayoutTests/imported/w3c:
Rebaseline test now that more checks are passing.
- web-platform-tests/html/semantics/scripting-1/the-script-element/script-supports-expected.txt:
Source/WebCore:
Implement HTMLScriptElement.supports(type) method which was fairly recently
introduced in the HTML specification:
Blink and Gecko already implement this.
No new tests, rebaselined existing tests.
- html/HTMLScriptElement.h:
- html/HTMLScriptElement.idl:
LayoutTests:
Rebaseline test now that more checks are passing.
- platform/mac-wk1/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 3:04 PM Changeset in webkit [287995] by
-
- 2 edits in trunk/Source/WebKit
Avoid unnecessary call to windowScreenDidChange
https://bugs.webkit.org/show_bug.cgi?id=235198
<rdar://87458502>
Reviewed by Geoffrey Garen.
It is a page load performance progression to avoid this call in initWithDrawingAreaProxy.
- UIProcess/RemoteLayerTree/RemoteLayerTreeDrawingAreaProxy.mm:
(-[WKOneShotDisplayLinkHandler initWithDrawingAreaProxy:]):
- 2:45 PM Changeset in webkit [287994] by
-
- 3 edits in trunk/Source/bmalloc
[libpas] pas_segregated_page_lock_with_mode in try_lock mode should check that the page still uses the lock after the try_lock
https://bugs.webkit.org/show_bug.cgi?id=235203
Reviewed by Yusuke Suzuki.
The bug I was trying to find by assertions in bug 235190 is that lock_with_mode has an incorrect
implementation of the try_lock case. It forgets to check if the lock it acquired is the right one
after locking.
I don't know how to test this without writing a test that is very gross. It's a super subtle race
condition - one that would be hard to reliably trigger even if I used the race_test_hooks
functionality.
- libpas/src/libpas/pas_local_allocator.c:
(stop_impl):
- libpas/src/libpas/pas_segregated_page_inlines.h:
(pas_segregated_page_switch_lock_with_mode):
- 1:53 PM Changeset in webkit [287993] by
-
- 5 edits2 moves3 adds in trunk
null ptr deref while trying to access DeferredPromise::promise()
https://bugs.webkit.org/show_bug.cgi?id=234447
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-13
Reviewed by Darin Adler.
Source/WebCore:
The sequence of steps is as follows:
1) In Document::~Document() the parent class ScriptExecutionContext::~ScriptExecutionContext() destroys the context
on all m_destructionObservers.
2) One of these objects is a DeferredPromise created earlier and stored in the JSCustomElementRegistry's promiseMap.
3) Destroying the context via DOMGuardedObject::contextDestroyed() nulls out m_globalObject.
4) Later, an event listener is invoked and tries to access the DeferredPromise stored in the
JSCustomElementRegistry's promiseMap.
5) However, this DeferredPromise has a null m_globalObject and we crash after trying to access it.
We should check in DeferredPromise::promise() if isEmpty().
This is true when the DeferredPromise's context has been destroyed in DOMGuardedObject::contextDestroyed().
Tests: fast/js-promise/js-promise-from-detached-iframe.html
fast/js-promise/js-promise-invalid-context-access.html
- bindings/js/JSDOMPromiseDeferred.cpp:
(WebCore::DeferredPromise::promise const):
LayoutTests:
- fast/js-promise/js-promise-from-detached-iframe-expected.txt: Renamed from LayoutTests/fast/js-promise-from-detached-iframe-expected.txt.
- fast/js-promise/js-promise-from-detached-iframe.html: Renamed from LayoutTests/fast/js-promise-from-detached-iframe.html.
- fast/js-promise/js-promise-invalid-context-access-expected.txt: Added.
- fast/js-promise/js-promise-invalid-context-access.html: Added.
- platform/ios/TestExpectations:
- platform/win/TestExpectations:
- 1:25 PM Changeset in webkit [287992] by
-
- 6 edits1 add in trunk
Crash in Document::updateStyleIfNeeded() when removing a node containing the drag caret
https://bugs.webkit.org/show_bug.cgi?id=235184
rdar://74845918
Reviewed by Darin Adler.
Source/WebCore:
While performing drag and drop over editable content, DragCaretController handles updating and painting a drag
caret, which indicates where the dragged content will be inserted upon drop. If the node containing this drag
caret is disconnected,DragCaretController::nodeWillBeRemoved()resets the drag caret position and issues a
repaint on the renderer responsible for drawing the drag caret. This call tonodeWillBeRemoved()occurs in the
middle of node removal, so it's encapsulated by aScriptDisallowedScope::InMainThreadscope which causes a
release assertion in WebKit2 if anything tries to trigger layout or style updates.
Currently, if the node being removed would cause the caret position to be removed as well, DragCaretController
calls intosetCaretPosition()with a null visible position, which then calls intoinvalidateCaretRectwith
the current caret position's anchor node. In turn,invalidateCaretRectcontains logic to issue a repaint on
the anchor node's renderer if the node is editable. However, to check whether the node is editable, we use the
helper functionWebCore::isEditableNode(), which triggers a style update if needed, only in the case where:
- A style recalc is needed, and...
- The document contains an element with the
-webkit-user-modifyCSS property.
As such, dirtying element styles right before removing the drag caret's anchor node from the document while
dispatching adragordropevent in an editor with-webkit-user-modify: read-write;is sufficient to
trigger the release assertion and cause a crash.
To address this, instead of calling
clear()inside ofDragCaretController::nodeWillBeRemoved(), we can
instead directly invalidate the caret rect using the current drag caret anchor (passing intruefor
caretRectChanged()since we already know that the drag caret is being cleared out), and then reset the current
drag caret position and caret rect. This allows us to avoid theisEditableNode()check in this scenario when
deciding whether to trigger paint invalidation, which is unnecessary because we already know that the node
containing the caret is being removed, so the renderer is going to be repainted anyways. We also pull this logic
out into a separate helper method,clearCaretPositionWithoutUpdatingStyle(), to make it clear that we must
avoid triggering style recalc here.
Test: DragAndDropTests.DoNotCrashWhenRemovingNodeOnDrop
- editing/FrameSelection.cpp:
(WebCore::DragCaretController::nodeWillBeRemoved):
(WebCore::DragCaretController::clearCaretPositionWithoutUpdatingStyle):
- editing/FrameSelection.h:
Tools:
Add a test to exercise the crash using drag and drop in WebKit2, on both iOS and macOS.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKit/remove-node-on-drop.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/DragAndDropTests.mm:
(TEST):
- 1:12 PM Changeset in webkit [287991] by
-
- 4 edits in trunk/Source/bmalloc
[libpas] add assertions that we aren't switching to a NULL lock
https://bugs.webkit.org/show_bug.cgi?id=235190
Reviewed by Yusuke Suzuki.
This adds a pas_panic call when pas_local_allocator_stop sees a NULL page->lock_ptr. That's one
possible explanation of a very rare crash I'm seeing where return_memory_to_page fails its assertion
that we are holding the page lock.
This also adds TESTING asserts in a bunch of other places. The PAS_TESTING_ASSERTS about this are in
places that are perf-sensitive, so we probably cannot assert in production. The hope behind those is
that it will help to catch this issue in test_pas.
- libpas/src/libpas/pas_local_allocator.c:
(stop_impl):
- libpas/src/libpas/pas_segregated_page.c:
(pas_segregated_page_switch_lock_and_rebias_while_ineligible_impl):
- libpas/src/libpas/pas_segregated_page_inlines.h:
(pas_segregated_page_lock_with_unbias_not_utility):
(pas_segregated_page_lock_with_unbias):
(pas_segregated_page_lock):
(pas_segregated_page_switch_lock_impl):
(pas_segregated_page_switch_lock_with_mode):
- 1:11 PM Changeset in webkit [287990] by
-
- 2 edits in trunk/Source/WebKit
[iOS][Networking] Add access to required network service
https://bugs.webkit.org/show_bug.cgi?id=235188
<rdar://86781432>
Reviewed by Brent Fulgham.
Add access to required network service in the Networking process on iOS.
- Resources/SandboxProfiles/ios/com.apple.WebKit.Networking.sb:
- 1:03 PM Changeset in webkit [287989] by
-
- 1 copy in tags/Safari-612.4.9.1.4
Tag Safari-612.4.9.1.4.
- 12:59 PM Changeset in webkit [287988] by
-
- 8 edits in branches/safari-612.4.9.1-branch/Source
Versioning.
WebKit-7612.4.9.1.4
- 12:34 PM Changeset in webkit [287987] by
-
- 5 edits in trunk/Source/WebCore
Remove use of PseudoElement in ComputedStyleExtractor
https://bugs.webkit.org/show_bug.cgi?id=235158
Reviewed by Darin Adler.
When we fixed bug 234987, the easiest thing was to add some code that uses PseudoElement,
which was already used in several places in ComputedStyleExtractor. However, we want to
remove code using PseudoElement, not add more.
This patch does that throughout ComputedStyleExtractor and also removes some use in
KeyframeEffect by always invalidating the host instead of going through PseudoElement,
which wasn't necessary anymore.
We also had to modify Styleable::renderer() to return nullptr for the "::marker" case
in case there is no content set for the marker, because essentially there is nothing
being rendered for the marker and it would cause ComputedStyleExtractor::propertyValue()
to return computed value instead of "auto" for width and height for instance.
- animation/KeyframeEffect.cpp:
(WebCore::invalidateElement):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::styledRenderer const):
(WebCore::hasValidStyleForProperty):
(WebCore::computeRenderStyleForProperty):
(WebCore::ComputedStyleExtractor::customPropertyValue):
(WebCore::ComputedStyleExtractor::propertyValue):
(WebCore::ComputedStyleExtractor::getLayerCount):
(WebCore::ComputedStyleExtractor::styledElement const): Deleted.
- css/CSSComputedStyleDeclaration.h:
- style/Styleable.cpp:
(WebCore::Styleable::renderer const):
- 12:22 PM Changeset in webkit [287986] by
-
- 8 edits in trunk/Source
Fix a few Objective-C object leaks due to early returns in
init
https://bugs.webkit.org/show_bug.cgi?id=235162
<rdar://problem/87489048>
Reviewed by Wenson Hsieh.
Source/JavaScriptCore:
- API/JSValue.mm:
(-[JSValue initWithValue:inContext:]):
Source/WebCore:
- platform/ios/WebAVPlayerController.mm:
(-[WebAVPlayerController init]):
Source/WebKit:
- UIProcess/ios/WKHoverPlatter.mm:
(-[WKHoverPlatter initWithView:delegate:]):
Source/WebKitLegacy/mac:
- Storage/WebDatabaseQuotaManager.mm:
(WebCore::if):
- 12:10 PM Changeset in webkit [287985] by
-
- 4 edits in trunk/Tools
PlayStation MiniBrowser should accept a command-line URL argument
https://bugs.webkit.org/show_bug.cgi?id=235193
Reviewed by Don Olmstead.
Windows MiniBrowser can be launched from the command line with a URL argument for the initial page to load;
this patch allows PlayStation MiniBrowser to do similarly.
- MiniBrowser/playstation/MainWindow.cpp:
(MainWindow::MainWindow):
- MiniBrowser/playstation/MainWindow.h:
- MiniBrowser/playstation/main.cpp:
(main):
- 11:11 AM Changeset in webkit [287984] by
-
- 4 edits in trunk/Source/WebCore
Remove the code inside USE(OPENGL) && ENABLE(WEBGL2)
https://bugs.webkit.org/show_bug.cgi?id=235178
Patch by Alejandro G. Castro <alex@igalia.com> on 2022-01-13
Reviewed by Dean Jackson.
No port is supporting WebGL2 without ANGLE nowadays, that code is
historical and we can remove it.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::getRestartIndex): Deleted.
- platform/graphics/opengl/GraphicsContextGLOpenGL.cpp:
(WebCore::GraphicsContextGLOpenGL::primitiveRestartIndex): Deleted.
- platform/graphics/opengl/GraphicsContextGLOpenGL.h:
- 11:03 AM Changeset in webkit [287983] by
-
- 5 edits in trunk
[GTK][WPE][WebGL2] compilation fixes
https://bugs.webkit.org/show_bug.cgi?id=225563
Patch by Alejandro G. Castro <alex@igalia.com> on 2022-01-13
Reviewed by Chris Lord.
Fix the compilation and add the ANGLE dependency, the architecture
is still not the final one but it is handy to use WebGL2 demos for
testing already.
.:
- Source/cmake/OptionsGTK.cmake: Added dependency with ANGLE.
- Source/cmake/OptionsWPE.cmake: Added dependency with
ANGLE. Remove the default ENABLE_WEBGL2 because it is the same
default value in WebKitFeatures.cmake.
Source/WebCore:
We are still not enabling the tests until we have the final
architecture.
- html/canvas/WebGLRenderingContextBase.cpp:
(WebCore::WebGLRenderingContextBase::drawElements): Leftover code,
there is no port using OpenGL directly to support WebGL2 anymore.
(WebCore::WebGLRenderingContextBase::drawElementsInstanced):
Ditto.
- 10:58 AM Changeset in webkit [287982] by
-
- 13 edits2 adds in trunk
Referenced SVG filter uses always sRGB color space for its result
https://bugs.webkit.org/show_bug.cgi?id=235159
Reviewed by Simon Fraser.
Source/WebCore:
Do not setOperatingColorSpace() of the lastEffect() of the referenced
SVGFilter to DestinationColorSpace::SRGB(). This will have the pixels
of the result FilterImage of the lastEffect() in the color space which
is defined by the color-interpolation style of the effect SVGElement.
Test: css3/filters/reference-filter-color-space.html
- platform/graphics/filters/Filter.h:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::create):
Move checking the CoreImage support to this function.
(WebCore::CSSFilter::buildFilterFunctions):
Remove resetting m_functions and m_outsets from this function since it
is now called only once from CSSFilter::create().
(WebCore::CSSFilter::lastEffect const): Deleted.
- rendering/CSSFilter.h:
- svg/graphics/filters/SVGFilter.h:
LayoutTests:
The new test defines a <feComponentTransfer> effect with linear component
functions. The values of these functions make the lookup tables have zeros
in the first 65 elements. The test applies the filter to a <div> with green
background.
-- With sRGB color-space, the green channel value is 0x80. So the value
in the lookup table is not zero. So the result filter image in this
case is a some green square.
-- With linearRGB color-space , the green channel value is 0x37. So the
value in the lookup table is zero. So the result filter image in this
case is a black square.
Because the color-space will be linearRGB, the expected test case should
have black squares.
- css3/filters/reference-filter-color-space-expected.html: Added.
- css3/filters/reference-filter-color-space.html: Added.
- css3/filters/reference-filter-set-filter-regions.html:
- fast/gradients/conic-gradient-alpha-unpremultiplied.html:
- fast/gradients/conic-gradient-extended-stops.html:
- fast/gradients/conic-gradient.html:
- fast/gradients/conic-repeating-last-stop.html:
- fast/hidpi/filters-turbulence.html:
Add color-interpolation-filters="sRGB" to get the old result so they match
the expected pages.
- platform/win/TestExpectations:
LinearSRGB color space is not supported on Windows.
- 10:21 AM Changeset in webkit [287981] by
-
- 4 edits2 adds in trunk
REGRESSION (r278561): Right clicking a link selects the full line with unrelated text
https://bugs.webkit.org/show_bug.cgi?id=235172
<rdar://84069534>
Reviewed by Dean Jackson.
Source/WebCore:
r278561 slightly change highlightStateForTextBox's behavior which now (correctly) returns HighlightState::None when the
RenderText content is not part of the current selection. Prior to r278561, it returned the RenderText's original selection state
which in this case was HighlightState::End.
<div><span>A<br>B<span style="position: absolute"></span></span>C</div>
In this specific case when we select the outer <span>, we end up with the following selection states for the generated line boxes:
(B) -> "Inside"
(C) -> "None"
while previously (C) came back as "End" (note that the absolute positioned element does not generate line boxes).
Now as Line::selectionState traverses through the line boxes, it comes across an unexpected "Inside -> None" transition at the selection end boundary (B -> C)
which incorrectly leaves the line state in "Inside" and we paint the selection all the way to the end of the block.
Test: fast/editing/selection-with-absolute-positioned-empty-content.html
- layout/integration/InlineIteratorLine.cpp:
(WebCore::InlineIterator::Line::selectionState const):
LayoutTests:
- fast/editing/selection-with-absolute-positioned-empty-content-expected.txt: Added.
- fast/editing/selection-with-absolute-positioned-empty-content.html: Added.
- 9:16 AM Changeset in webkit [287980] by
-
- 3 edits in trunk/Source/WebCore
Clean up MediaPlaybackTargetPicker::Client
https://bugs.webkit.org/show_bug.cgi?id=235128
Reviewed by Eric Carlson.
Small cleanup to remove an unused function and change override to final.
- Modules/airplay/WebMediaSessionManager.h:
- platform/graphics/MediaPlaybackTargetPicker.h:
- 8:22 AM Changeset in webkit [287979] by
-
- 7 edits2 adds in trunk
Web Inspector: Implement
frameURLoption fordevtools.inspectedWindow.evalcommand
https://bugs.webkit.org/show_bug.cgi?id=222568
Reviewed by Devin Rousso.
Source/WebInspectorUI:
New test: Tools/TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm
Add support for evaluating script from an extension in a specific frame on the page by referring to it by the
frame's URL. Frame URLs are matched in three steps, first looking for an exact URL match, including query
parameters and fragment identifier. If no match is found and the providedoptions.frameURLdoes not have any
fragment identifier or query parameters, a check is then made against each known frame again, this time
excluding their fragment identifier. If that check still fails to find a frame for the URL, we perform one more
pass, this time excluding the fragment identifier and query parameters for each known frame.
- UserInterface/Controllers/WebInspectorExtensionController.js:
(WI.WebInspectorExtensionController.prototype.evaluateScriptForExtension):
(WI.WebInspectorExtensionController.prototype.reloadForExtension):
- Drive-by removal of trailing spaces.
(WI.WebInspectorExtensionController.prototype._frameForFrameURL):
Source/WebKit:
New test: Tools/TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm
Correct the API to indicate that
frameURLandcontextSecurityOriginare nullable parameters.
- UIProcess/API/Cocoa/_WKInspectorExtension.h:
Tools:
Add test coverage for evaluating script on an inspected page from an extension, including evaluating on an inner
frame.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtension.mm:
(TEST):
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionEvaluateScriptOnPage.html: Added.
- TestWebKitAPI/Tests/WebKitCocoa/WKInspectorExtensionEvaluateScriptOnPageInnerFrame.html: Added.
- 7:22 AM Changeset in webkit [287978] by
-
- 3 edits in trunk/Tools
[EWS] Load contributors from stand-alone class
https://bugs.webkit.org/show_bug.cgi?id=235161
<rdar://problem/87491516>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/steps.py:
(Contributors): Moved from ValidateCommiterAndReviewer.
(ValidateCommiterAndReviewer.load_contributors_from_disk): Moved to Contributors.
(ValidateCommiterAndReviewer.load_contributors_from_github): Ditto.
(ValidateCommiterAndReviewer.load_contributors): Ditto.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/246007@main
- 6:41 AM Changeset in webkit [287977] by
-
- 5 edits in trunk
[css-grid] Fix rounding of distributed free space to flexible tracks
https://bugs.webkit.org/show_bug.cgi?id=234917
LayoutTests/imported/w3c:
Reviewed by Darin Adler.
Source/WebCore:
Reviewed by Darin Adler.
When computing the growth size for flex sized tracks, the flexFraction multiplied by the flex factor can result
in a non-integer size. However, we floor the stretched size to fit in a LayoutUnit. This means that we may lose
the fractional part of the computation which can cause the entire free space not being distributed evenly. This
fix is to sum up the leftover fractional part from every flexible track to avoid this issue.
It is an import of Chromium GridNG CL at https://chromium-review.googlesource.com/c/chromium/src/+/3193674.
- rendering/GridTrackSizingAlgorithm.cpp:
(WebCore::GridTrackSizingAlgorithm::computeFlexSizedTracksGrowth const):
- 5:04 AM Changeset in webkit [287976] by
-
- 7 edits in trunk
[css-flexbox] Incorrect height of flex items with aspect-ratio whenever the cross axis intrinsic size is larger than the viewport
https://bugs.webkit.org/show_bug.cgi?id=234564
<rdar://problem/86958389>
Reviewed by Manuel Rego Casasnovas.
Source/WebCore:
Automatic preferred sizes were considered always indefinite. However whenever they correspond to
the (physical) width we could consider them as definite. This allows us to use that size instead of
the flex item intrinsic size when computing the transferred size contribution. This way, flex items
with aspect ratio and large intrinsic size are not abnormally stretched due to the min-size:auto
computation.
- rendering/RenderFlexibleBox.cpp:
(WebCore::RenderFlexibleBox::computeMainSizeFromAspectRatioUsing const): Use availableLogical{Width|Height}
to compute the cross size when then automatic preferred size is the physical width.
(WebCore::RenderFlexibleBox::childCrossAxisIsPhysicalWidth const):
(WebCore::RenderFlexibleBox::childCrossSizeShouldUseContainerCrossSize const): Handle the cases of
automatic preferred widths.
- rendering/RenderFlexibleBox.h:
LayoutTests:
Adjusted the canvas-css-size-after-height-change-with-display-flex.html test case and expectations so it behaves as other engines.
- TestExpectations: Unskipped a test that is passing now.
- fast/canvas/canvas-css-size-after-height-change-with-display-flex-expected.html:
- fast/canvas/canvas-css-size-after-height-change-with-display-flex.html:
- 1:42 AM Changeset in webkit [287975] by
-
- 2 edits in trunk/LayoutTests
imported/w3c/web-platform-tests/web-locks/clientids.tentative.https.html is consistently passing on bots
https://bugs.webkit.org/show_bug.cgi?id=235173
Unreviewed.
- platform/wk2/TestExpectations:
Unflake imported/w3c/web-platform-tests/web-locks/clientids.tentative.https.html TestExpectation.
- 12:52 AM Changeset in webkit [287974] by
-
- 2 edits1 delete in trunk/LayoutTests
[GTK] fast/events/overflow-viewport-renderer-deleted.html does not load
https://bugs.webkit.org/show_bug.cgi?id=176021
Unreviewed test gardening.
The test has its own baseline and was marked as Missing in
TestExpectations. The test passes if removing the WebKitGTK baseline
and the Missing expected result.
- platform/gtk/TestExpectations:
- platform/gtk/fast/events/overflow-viewport-renderer-deleted-expected.txt: Removed.
Jan 12, 2022:
- 11:31 PM Changeset in webkit [287973] by
-
- 8 edits in trunk/Source/WebCore
[:has() pseudo-class] Collect invalidation selectors for child invalidation
https://bugs.webkit.org/show_bug.cgi?id=235103
Reviewed by Dean Jackson.
Collect selectors we can use to test if :has status actually changed before invalidating.
This patch doesn't yet use the the selector.
- style/ChildChangeInvalidation.cpp:
(WebCore::Style::ChildChangeInvalidation::invalidateForChangedElement):
Use the pseudo class invalidation keys for looking up :has selectors too
instead of having a custom mechanism for doing the same thing.
- style/PseudoClassChangeInvalidation.cpp:
(WebCore::Style::makePseudoClassInvalidationKeys):
- style/PseudoClassChangeInvalidation.h:
- style/RuleFeature.cpp:
(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
Always return a selector for consistency.
(WebCore::Style::makePseudoClassInvalidationKey):
(WebCore::Style::RuleFeatureSet::collectFeatures):
(WebCore::Style::RuleFeatureSet::add):
(WebCore::Style::RuleFeatureSet::clear):
(WebCore::Style::RuleFeatureSet::shrinkToFit):
- style/RuleFeature.h:
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ScopeRuleSets::collectFeatures const):
(WebCore::Style::ScopeRuleSets::hasPseudoClassInvalidationRuleSets const):
(WebCore::Style::ScopeRuleSets::tagInvalidationRuleSets const): Deleted.
We don't need keep around tag rule sets anymore.
- style/StyleScopeRuleSets.h:
- 11:10 PM Changeset in webkit [287972] by
-
- 3 edits in trunk/LayoutTests
[WPE] Unreviewed test gardening, remove some tests expected to fail but passing
There are several tests which have been passing consistently for the last 1000 revisions.
- platform/glib/TestExpectations:
- platform/wpe/TestExpectations:
- 9:00 PM Changeset in webkit [287971] by
-
- 2 edits30 moves in trunk/LayoutTests
[WPE] Several accessibilty tests don't have expected results
https://bugs.webkit.org/show_bug.cgi?id=201983
Unreviewed test gardening.
These tests had a baseline for WebKitGTK which actually can be reused for WPE.
- platform/glib/accessibility/aria-checkbox-sends-notification-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-checkbox-sends-notification-expected.txt.
- platform/glib/accessibility/aria-combobox-hierarchy-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-combobox-hierarchy-expected.txt.
- platform/glib/accessibility/aria-hidden-false-works-in-subtrees-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-hidden-false-works-in-subtrees-expected.txt.
- platform/glib/accessibility/aria-inherits-presentational-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-inherits-presentational-expected.txt.
- platform/glib/accessibility/aria-menubar-menuitems-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-menubar-menuitems-expected.txt.
- platform/glib/accessibility/aria-role-on-label-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-role-on-label-expected.txt.
- platform/glib/accessibility/aria-selected-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-selected-expected.txt.
- platform/glib/accessibility/aria-selected-menu-items-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-selected-menu-items-expected.txt.
- platform/glib/accessibility/aria-switch-text-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-switch-text-expected.txt.
- platform/glib/accessibility/aria-table-hierarchy-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/aria-table-hierarchy-expected.txt.
- platform/glib/accessibility/css-content-attribute-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/css-content-attribute-expected.txt.
- platform/glib/accessibility/datetime-attribute-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/datetime-attribute-expected.txt.
- platform/glib/accessibility/form-control-value-settable-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/form-control-value-settable-expected.txt.
- platform/glib/accessibility/generated-content-with-display-table-crash-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/generated-content-with-display-table-crash-expected.txt.
- platform/glib/accessibility/image-with-alt-and-map-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/image-with-alt-and-map-expected.txt.
- platform/glib/accessibility/img-fallsback-to-title-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/img-fallsback-to-title-expected.txt.
- platform/glib/accessibility/math-fenced-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/math-fenced-expected.txt.
- platform/glib/accessibility/math-foreign-content-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/math-foreign-content-expected.txt.
- platform/glib/accessibility/math-mo-fences-and-separators-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/math-mo-fences-and-separators-expected.txt.
- platform/glib/accessibility/math-text-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/math-text-expected.txt.
- platform/glib/accessibility/meter-element-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/meter-element-expected.txt.
- platform/glib/accessibility/platform-name-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/platform-name-expected.txt.
- platform/glib/accessibility/svg-element-with-aria-role-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/svg-element-with-aria-role-expected.txt.
- platform/glib/accessibility/table-hierarchy-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-hierarchy-expected.txt.
- platform/glib/accessibility/w3c-svg-content-language-attribute-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-content-language-attribute-expected.txt.
- platform/glib/accessibility/w3c-svg-description-calculation-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-description-calculation-expected.txt.
- platform/glib/accessibility/w3c-svg-elements-not-exposed-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-elements-not-exposed-expected.txt.
- platform/glib/accessibility/w3c-svg-name-calculation-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-name-calculation-expected.txt.
- platform/glib/accessibility/w3c-svg-presentational-role-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-presentational-role-expected.txt.
- platform/glib/accessibility/w3c-svg-roles-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/w3c-svg-roles-expected.txt.
- platform/wpe/TestExpectations:
- 7:23 PM Changeset in webkit [287970] by
-
- 6 edits2 adds in trunk
PCM: Same-site triggering events should support ephemeral measurement
https://bugs.webkit.org/show_bug.cgi?id=235160
<rdar://87423294>
Reviewed by Alex Christensen.
Source/WebCore:
We added ephemeral measurement for direct response advertising in https://bugs.webkit.org/show_bug.cgi?id=228984.
We added support for same-site triggering events in https://bugs.webkit.org/show_bug.cgi?id=233173.
These two features should work together.
The bug was that WebKit::NetworkSession::handlePrivateClickMeasurementConversion()
only checked for cross-site triggering events when handling ephemeral measurements.
Test: http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html
- loader/PrivateClickMeasurement.cpp:
(WebCore::PrivateClickMeasurement::isNeitherSameSiteNorCrossSiteTriggeringEvent):
New convenience function to enhance readability in
WebKit::NetworkSession::handlePrivateClickMeasurementConversion().
- loader/PrivateClickMeasurement.h:
Source/WebKit:
We added ephemeral measurement for direct response advertising in https://bugs.webkit.org/show_bug.cgi?id=228984.
We added support for same-site triggering events in https://bugs.webkit.org/show_bug.cgi?id=233173.
These two features should work together.
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::handlePrivateClickMeasurementConversion):
This function previously only checked for cross-site triggering events when
handling ephemeral measurements. Now it also checks for same-site triggering
events.
LayoutTests:
- http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral-expected.txt: Added.
- http/tests/privateClickMeasurement/triggering-event-with-attribution-source-through-fetch-keepalive-ephemeral.html: Added.
- 7:21 PM Changeset in webkit [287969] by
-
- 5 edits in trunk/Source/WebCore
Process deferred ChildrenChanged notifications before creating an isolated subtree.
https://bugs.webkit.org/show_bug.cgi?id=235115
<rdar://problem/87458790>
Reviewed by Chris Fleizach.
Fixes ~20 tests in isolated tree mode.
Before creating an isolated subtree, it is necessary to handle any
pending, deferred children change so that the AXObject tree is updated.
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::processDeferredChildrenChangedList):
Added this method in order to be called from AXIsolatedTree::createSubtree.
(WebCore::AXObjectCache::performDeferredCacheUpdate):
- accessibility/AXObjectCache.h:
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::createSubtree):
Calls AXObjectCache::processDeferredChildrenChangedList once before
start creating a new subtree.
- accessibility/isolatedtree/AXIsolatedTree.h:
- 6:52 PM Changeset in webkit [287968] by
-
- 12 edits5 adds in trunk/Source/bmalloc
[libpas] thread_local_cache should not be allocated in the compact heap (cherry pick 11afcedfb5968f6894379ff1a41dd449ba7745f6)
https://bugs.webkit.org/show_bug.cgi?id=235096
Reviewed by Yusuke Suzuki.
Thread local caches can get quite large because of how libpas uses them, we can allocate one per
thread, and we reallocate them with exponential resizing, so there's a lot of wasted space and a
decent amount of fragmentation. This shows up as occasional crashes trying to allocate a thread local
cache out of the compact heap.
This moves thread local caches out of the compact heap. They were only ever there because partial views
sometimes need to point to the local_allocator's bitvector, but that's part of the thread local cache.
So, that means that either the partial views' bits pointer cannot be a compact pointer, or the
thread_local_cache needs to be in the compact heap. So, the thread_local_cache ended up in the compact
heap to keep that pointer small.
This change works around the problem: it's rare that the partial views' bits pointer points at
the local_allocator's bits, and none of the fast path cases where we access that pointer will ever see
it in that state. So, this makes the pointer either point to a utility-heap-allocated box that contains
the full pointer, or it points at the actual array allocated in the compact heap. The utility heap is
in the compact heap, so the compact pointer can point at either one. The implementation of this is
encapsulated as pas_lenient_compact_ptr. It's a bit gross; storing to it only works when you're holding
the heap lock, for example.
This is perf-neutral on Speedometer. This is perf-neutral on JS2 cli with full JSC isoheaps (i.e. the
patch from bug 231938). It's a 0.4% regression on RAMification with full JSC isoheaps, but I'm not
going to worry about that because trunk doesn't have full JSC isoheaps, and JSC isoheaps requires some
change like this to work reliably (currently it'll randomly run out of compact heap).
- bmalloc.xcodeproj/project.pbxproj:
- libpas/libpas.xcodeproj/project.pbxproj:
- libpas/src/libpas/pas_enumerate_segregated_heaps.c:
(enumerate_partial_view):
- libpas/src/libpas/pas_full_alloc_bits_inlines.h:
(pas_full_alloc_bits_create_for_partial_but_not_primordial):
(pas_full_alloc_bits_create_for_partial):
- libpas/src/libpas/pas_lenient_compact_ptr.h: Added.
- libpas/src/libpas/pas_lenient_compact_ptr_inlines.h: Added.
- libpas/src/libpas/pas_lenient_compact_unsigned_ptr.c: Added.
- libpas/src/libpas/pas_lenient_compact_unsigned_ptr.h: Added.
- libpas/src/libpas/pas_local_allocator.c:
(pas_local_allocator_move):
- libpas/src/libpas/pas_local_allocator_inlines.h:
(pas_local_allocator_set_up_free_bits):
(pas_local_allocator_start_allocating_in_primordial_partial_view):
(pas_local_allocator_bless_primordial_partial_view_before_stopping):
- libpas/src/libpas/pas_segregated_partial_view.c:
(pas_segregated_partial_view_create):
(compute_summary):
- libpas/src/libpas/pas_segregated_partial_view.h:
- libpas/src/libpas/pas_segregated_view_allocator_inlines.h:
(pas_segregated_view_will_start_allocating):
- libpas/src/libpas/pas_thread_local_cache.c:
(deallocate):
(allocate_cache):
- libpas/src/test/LotsOfHeapsAndThreads.cpp: Added.
(std::testLotsOfHeapsAndThreads):
(addLotsOfHeapsAndThreadsTests):
- libpas/src/test/TestHarness.cpp:
(main):
- 6:17 PM Changeset in webkit [287967] by
-
- 10 edits2 adds in trunk/Source
[WinCairo] Tiling scroll support
https://bugs.webkit.org/show_bug.cgi?id=233676
Reviewed by Don Olmstead.
Source/WebCore:
Added a new class TextureMapperSparseBackingStore that supports
partially tiling the layer and removing tiles outside of the
coverage rect.
- Headers.cmake:
- platform/TextureMapper.cmake:
- platform/graphics/texmap/TextureMapperSparseBackingStore.cpp: Added.
(WebCore::TextureMapperSparseBackingStore::TextureMapperSparseBackingStore):
(WebCore::TextureMapperSparseBackingStore::setSize):
(WebCore::TextureMapperSparseBackingStore::removeUncoveredTiles):
(WebCore::TextureMapperSparseBackingStore::adjustedTransformForRect):
(WebCore::TextureMapperSparseBackingStore::paintToTextureMapper):
(WebCore::TextureMapperSparseBackingStore::drawBorder):
(WebCore::TextureMapperSparseBackingStore::drawRepaintCounter):
(WebCore::TextureMapperSparseBackingStore::tileDimension const):
(WebCore::TextureMapperSparseBackingStore::updateContents):
- platform/graphics/texmap/TextureMapperSparseBackingStore.h: Added.
Source/WebKit:
Added a new class WCTiledBacking that implements TiledBacking.
Copied computeVisibleAndCoverageRect,
transformByApplyingAnchorPoint and layerTransform from
GraphicsLayerAC.
- GPUProcess/graphics/wc/WCScene.cpp:
(WebKit::WCScene::update):
- WebProcess/WebPage/wc/DrawingAreaWC.cpp:
(WebKit::DrawingAreaWC::DrawingAreaWC):
(WebKit::DrawingAreaWC::updatePreferences):
(WebKit::DrawingAreaWC::shouldUseTiledBackingForFrameView const):
(WebKit::DrawingAreaWC::setNeedsDisplayInRect):
(WebKit::DrawingAreaWC::scroll):
(WebKit::flushLayerImageBuffers):
(WebKit::DrawingAreaWC::sendUpdateAC):
(WebKit::DrawingAreaWC::RootLayerClient::RootLayerClient): Deleted.
(WebKit::DrawingAreaWC::RootLayerClient::paintContents): Deleted.
(WebKit::DrawingAreaWC::RootLayerClient::deviceScaleFactor const): Deleted.
- WebProcess/WebPage/wc/DrawingAreaWC.h:
- WebProcess/WebPage/wc/GraphicsLayerWC.cpp:
(WebKit::GraphicsLayerWC::GraphicsLayerWC):
(WebKit::GraphicsLayerWC::setNeedsDisplay):
(WebKit::GraphicsLayerWC::setNeedsDisplayInRect):
(WebKit::GraphicsLayerWC::setBackgroundColor):
(WebKit::GraphicsLayerWC::setDrawsContent):
(WebKit::GraphicsLayerWC::noteLayerPropertyChanged):
(WebKit::GraphicsLayerWC::flushCompositingState):
(WebKit::GraphicsLayerWC::flushCompositingStateForThisLayerOnly):
(WebKit::GraphicsLayerWC::tiledBacking const):
(WebKit::GraphicsLayerWC::createImageBuffer):
(WebKit::accumulatesTransform):
(WebKit::GraphicsLayerWC::transformByApplyingAnchorPoint const):
(WebKit::GraphicsLayerWC::layerTransform const):
(WebKit::GraphicsLayerWC::computeVisibleAndCoverageRect const):
(WebKit::GraphicsLayerWC::recursiveCommitChanges):
- WebProcess/WebPage/wc/GraphicsLayerWC.h:
- WebProcess/WebPage/wc/WCUpateInfo.h:
(WebKit::WCLayerUpateInfo::encode const):
(WebKit::WCLayerUpateInfo::decode):
- 6:04 PM Changeset in webkit [287966] by
-
- 3 edits in trunk/LayoutTests
[GTK][WPE] Unreviewed test gardening, merge common WebRTC test failures
Merge common WebRTC test failures filed under bug webkit.org/b/187064.
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- 5:29 PM Changeset in webkit [287965] by
-
- 2 edits in trunk/LayoutTests
::backdrop pseudo element should react to event listeners
https://bugs.webkit.org/show_bug.cgi?id=233072
Unreviewed test gardening.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt:
Add a missing newline.
- 5:17 PM Changeset in webkit [287964] by
-
- 4 edits in trunk
Unreviewed, reverting r287944.
Breaks Monterey build.
Reverted changeset:
"Build WebKitSwift when building with make or build-webkit"
https://bugs.webkit.org/show_bug.cgi?id=235093
https://commits.webkit.org/r287944
- 5:15 PM Changeset in webkit [287963] by
-
- 3 edits in trunk/LayoutTests
[WinCairo] Unreviewed test gardening
- platform/wincairo-wk1/TestExpectations:
- platform/wincairo/TestExpectations:
- 5:13 PM Changeset in webkit [287962] by
-
- 2 edits in trunk/Source/WebKit
Unreviewed, reverting r287955.
https://bugs.webkit.org/show_bug.cgi?id=235166
Reverting, since this can be fixed without a sandbox change.
Reverted changeset:
"[macOS] Add required system call"
https://bugs.webkit.org/show_bug.cgi?id=235155
https://commits.webkit.org/r287955
- 4:36 PM Changeset in webkit [287961] by
-
- 5 edits in trunk/Source
[Re-landing] Update hashThreadState() to exclude opaque_flags.
https://bugs.webkit.org/show_bug.cgi?id=235081
rdar://86282584
Reviewed by Keith Miller.
Source/JavaScriptCore:
Removed some unused code.
- runtime/MachineContext.h:
(JSC::MachineContext::stackPointer):
(JSC::MachineContext::framePointer):
(JSC::MachineContext::instructionPointer):
(JSC::MachineContext::linkRegister):
(JSC::MachineContext::setStackPointer): Deleted.
(JSC::MachineContext::setFramePointer): Deleted.
(JSC::MachineContext::setLinkRegister): Deleted.
Source/WTF:
The opaque_flags may be used by the OS, and may be altered without our knowledge.
Hence, our hash should not include the opaque_flags field.
Also remove some unused code.
- wtf/PlatformRegisters.h:
- wtf/threads/Signals.cpp:
(WTF::hashThreadState):
- 4:30 PM Changeset in webkit [287960] by
-
- 3 edits in trunk/Source/JavaScriptCore
Unreviewed, reverting r287912.
https://bugs.webkit.org/show_bug.cgi?id=235164
ARM64/ARM64E Speedometer2 50% regression, probably breaking
something
Reverted changeset:
"[RISCV64] riscv64 backend should lower offlineasm
instructions"
https://bugs.webkit.org/show_bug.cgi?id=234952
https://commits.webkit.org/r287912
- 4:00 PM Changeset in webkit [287959] by
-
- 15 edits in trunk/Source
Add to Contact menu item does nothing on mac.
https://bugs.webkit.org/show_bug.cgi?id=235154
Source/WebCore:
Reviewed by Tim Horton.
Add to Context menu item for telephone numbers did not actually show the contact card.
This was because the delgate did not tell the menu where to display the card from, so it just failed.
Plumbing that information through fixes the issue.
- page/ChromeClient.h:
(WebCore::ChromeClient::handleTelephoneNumberClick):
- page/mac/ServicesOverlayController.mm:
(WebCore::ServicesOverlayController::handleClick):
Source/WebKit:
rdar://80213097
Reviewed by Tim Horton.
Add to Context menu item for telephone numbers did not actually show the contact card.
This was because the delgate did not tell the menu where to display the card from, so it just failed.
Plumbing that information through fixes the issue.
- Platform/mac/MenuUtilities.h:
- Platform/mac/MenuUtilities.mm:
(-[WKEmptyPresenterHighlightDelegate initWithRect:]):
(-[WKEmptyPresenterHighlightDelegate revealContext:rectsForItem:]):
(-[WKEmptyPresenterHighlightDelegate revealContext:shouldUseDefaultHighlightForItem:]):
(WebKit::menuForTelephoneNumber):
- UIProcess/PageClient.h:
- UIProcess/WebPageProxy.h:
- UIProcess/WebPageProxy.messages.in:
- UIProcess/mac/PageClientImplMac.h:
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::showTelephoneNumberMenu):
- WebProcess/WebCoreSupport/WebChromeClient.cpp:
(WebKit::WebChromeClient::handleTelephoneNumberClick):
- WebProcess/WebCoreSupport/WebChromeClient.h:
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::handleTelephoneNumberClick):
- 3:58 PM Changeset in webkit [287958] by
-
- 2 edits1 add in trunk/LayoutTests
[GLIB] Unreviewed test gardening, emit baseline for WPT test css/css-cascade/all-prop-initial-xml.html
https://bugs.webkit.org/show_bug.cgi?id=209330
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt: Added.
- 3:45 PM Changeset in webkit [287957] by
-
- 4 edits in trunk
[WebAuthn] Fix freebie call without user gesture not being given
https://bugs.webkit.org/show_bug.cgi?id=235078
rdar://87327557
Reviewed by Brent Fulgham.
Source/WebKit:
This logic was previously always requiring a user gesture. The desired
behavior of giving pages a single "freebie" webauthn call without gesture
was lost in a refactor.
Tested manually on iOS device with webauthn.me.
- WebProcess/WebAuthentication/WebAuthenticatorCoordinator.cpp:
(WebKit::WebAuthenticatorCoordinator::processingUserGesture):
Tools:
Updated API test to reflect user gesture freebie.
- TestWebKitAPI/Tests/WebKitCocoa/web-authentication-make-credential-la-no-mock.html:
- 3:36 PM Changeset in webkit [287956] by
-
- 18 edits in trunk
[Xcode] Configure each project for the legacy build system
https://bugs.webkit.org/show_bug.cgi?id=235091
Source/bmalloc:
Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.
- bmalloc.xcodeproj/project.pbxproj:
Source/WebGPU:
Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.
- WebGPU.xcodeproj/project.pbxproj:
Source/WebInspectorUI:
Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.
- WebInspectorUI.xcodeproj/project.pbxproj:
Source/WTF:
Beta versions of Xcode do not recognize the
-UseNewBuildSystem=NOflag, so we need to
manually declare use of PBXBuild in our projects.
Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.
- WTF.xcodeproj/project.pbxproj:
Tools:
Patch by Elliott Williams <Elliott Williams> on 2022-01-12
Reviewed by Darin Adler.
- ContentExtensionTester/ContentExtensionTester.xcodeproj/project.pbxproj:
- EditingHistory/EditingHistory.xcodeproj/project.pbxproj:
- FontWithFeatures/FontWithFeatures.xcodeproj/project.pbxproj:
- ImageDiff/ImageDiff.xcodeproj/project.pbxproj:
- MiniBrowser/MiniBrowser.xcodeproj/project.pbxproj:
- MiniBrowserSwiftUI/MiniBrowserSwiftUI.xcodeproj/project.pbxproj:
- MobileMiniBrowser/MobileMiniBrowser.xcodeproj/project.pbxproj:
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- WebEditingTester/WebEditingTester.xcodeproj/project.pbxproj:
- 3:17 PM Changeset in webkit [287955] by
-
- 2 edits in trunk/Source/WebKit
[macOS] Add required system call
https://bugs.webkit.org/show_bug.cgi?id=235155
Patch by Brandon Stewart <Brandon> on 2022-01-12
Reviewed by Per Arne Vollan.
Add missing system call that is required by Core Graphics.
- WebProcess/com.apple.WebProcess.sb.in:
- 3:13 PM Changeset in webkit [287954] by
-
- 3 edits2 adds in trunk
Live Text is sometimes horizontally clipped when injecting TextRecognitionBlockData
https://bugs.webkit.org/show_bug.cgi?id=235122
Reviewed by Devin Rousso.
Source/WebCore:
The current heuristic for sizing Live Text paragraphs avoids vertical overflow, but does not avoid horizontal
overflow. Line breaking inside the fixed-width container prevents the latter in most cases, but not in the
scenario where the recognized text block is a single word with no opportunity for line break.
Address this by adjusting the sizing heuristic to shrink both the width and height to fit within the target size
(rather than just fitting the height).
Test: fast/images/text-recognition/image-overlay-block-horizontal-overflow.html
- dom/ImageOverlay.cpp:
(WebCore::ImageOverlay::updateWithTextRecognitionResult):
LayoutTests:
Add a test to verify that a single, very long word in injected text recognition block data does not trigger
horizontal overflow.
- fast/images/text-recognition/image-overlay-block-horizontal-overflow-expected.html: Added.
- fast/images/text-recognition/image-overlay-block-horizontal-overflow.html: Added.
- 2:59 PM Changeset in webkit [287953] by
-
- 18 edits in trunk
[macOS] [WK2] NSFontPanel UI (font color, text decorations, font shadow) doesn't update on selection change
https://bugs.webkit.org/show_bug.cgi?id=190120
rdar://44897405
Reviewed by Darin Adler.
Source/WebCore:
Add a boolean
hasMultipleFontsflag to FontAttributes, and pass it as an out-reference when computing the
font at the current selection. See WebKit/ChangeLog for more details.
- editing/Editor.cpp:
(WebCore::Editor::fontAttributesAtSelectionStart):
- editing/FontAttributes.h:
Source/WebKit:
Currently, in WebKit2, there is no mechanism for updating the NSFontManager with new font attributes when the
selection changes. While we do update the selected NSFont, we do so by requesting font family and font size via
an IPC request,FontAtSelection, but this does not include attributes like underline, strike-through, color,
and text shadows.
Instead, we can remove this
FontAtSelectionIPC request mechanism entirely, and requestFontAttributes. This
allows us to set the currently selected NSFont on the NSFontManager, and also update the font manager with the
full dictionary of font attributes.
Test: FontAttributes.FontAttributesAfterChangingSelection
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<FontAttributes>::encode):
(IPC::ArgumentCoder<FontAttributes>::decode):
Encode and decode the new
hasMultipleFontsflag in FontAttributes. Additionally, take this opportunity to
modernize some of the decoding-side logic by decoding each member into astd::optionaland creating the final
deserialized FontAttributes at the end.
- UIProcess/Cocoa/WebViewImpl.mm:
(WebKit::WebViewImpl::updateFontManagerIfNeeded):
Rather than grabbing just the font family and font size using
fontAtSelection, request FontAttributes instead
and convert it to a NSDictionary to call-[NSFontManager setSelectedAttributes:isMultiple:].
(WebKit::WebViewImpl::typingAttributesWithCompletionHandler):
(WebKit::WebViewImpl::changeFontAttributesFromSender):
(WebKit::WebViewImpl::changeFontFromFontManager):
Remove code to update the font manager after changing font attributes. This is unnecessary because the process
of executing an edit command in order to change typing style will trigger an editor state update anyways, which
then causes us to request new font attributes.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::requestFontAttributesAtSelectionStart):
Move the check for cached fontattributes to WebPageProxy, from WebViewImpl. This allows us to get rid of a
helper function on WebPageProxy to grab the current cached font attributes.
- UIProcess/WebPageProxy.h:
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::didUpdateEditorState):
- UIProcess/mac/WebPageProxyMac.mm:
(WebKit::WebPageProxy::didUpdateEditorState):
Set cached FontAttributes (if present) *prior* to dispatching a selection change. This allows any subsequent
request for font attributes at the selection to return immediately with the result.
(WebKit::WebPageProxy::fontAtSelection): Deleted.
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
Remove the
FontAtSelectionCallbackIPC message (and all associated code). This codepath was previously only
exercised when updating the font panel on macOS, and is no longer necessary because we just use
requestFontAttributesAtSelectionStartinstead, which allows us to grab not only the NSFont, but also all
platform typing attributes at the selection.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::fontAtSelection): Deleted.
Tools:
Augment and adjust some existing API tests. See WebKit/ChangeLog for more information.
- TestWebKitAPI/Tests/WebKitCocoa/FontAttributes.mm:
Augment an existing API test, FontAttributes.FontAttributesAfterChangingSelection, to additionally check shared
NSFontManager state (foreground/background color, shadow color and radius, etc.) on macOS.
(TestWebKitAPI::webViewForTestingFontAttributes):
On macOS, additionally make the font panel visible so that we can test font panel state.
(TestWebKitAPI::TEST):
- TestWebKitAPI/Tests/mac/FontManagerTests.mm:
Relax some constraints on FontManagerTests.ChangeFontWithPanel, so that it verifies that the platform font in
the NSFontManager has all of the same attributes as the expectation, rather than being equal to the exact same
font object.
Adjust an existing API test, FontManagerTests.ChangeAttributesWithFontEffectsBox, to also vary the length of
font shadows. Updating font attributes on the font manager exposed an issue with this API test where, because
the font panel's attributes are never updated, the value of the shadow length slider remains at the default
value of 0.125, producing a shadow length of 1.25px. However, now that the selection moves to non-shadowed text
before moving to shadowed text again, we need to explicitly set the shadow length slider's value when testing
the second shadowed text selection.
(webViewForFontManagerTesting):
(TestWebKitAPI::TEST):
- TestWebKitAPI/mac/NSFontPanelTesting.h:
- TestWebKitAPI/mac/NSFontPanelTesting.mm:
Add some additional testing helpers to query the state of controls in the font panel (e.g. font shadow sliders,
foreground color well, and strike-through/underline popup menu state).
(-[NSFontPanel underlineToolbarButton]):
(-[NSFontPanel strikeThroughToolbarButton]):
(-[NSFontPanel foregroundColorToolbarColorWell]):
(-[NSFontPanel chooseUnderlineMenuItemWithTitle:]):
(-[NSFontPanel chooseStrikeThroughMenuItemWithTitle:]):
(-[NSFontPanel shadowLengthSlider]):
(-[NSFontPanel hasShadow]):
(-[NSFontPanel shadowLength]):
(-[NSFontPanel setShadowLength:]):
(-[NSFontPanel hasUnderline]):
(-[NSFontPanel hasStrikeThrough]):
(-[NSFontPanel foregroundColor]):
- 2:49 PM Changeset in webkit [287952] by
-
- 2 edits in trunk/Source/WebCore
Verify startNode is prior to the beyondEnd node
https://bugs.webkit.org/show_bug.cgi?id=230712
Patch by Brandon Stewart <Brandon> on 2022-01-12
Reviewed by Wenson Hsieh.
Verify that the startNode is prior to the beyondEnd. If this condition is not met,
this will lead to undesirable situations when traversing through the nodes.
- editing/ApplyStyleCommand.cpp:
(WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
- 2:37 PM Changeset in webkit [287951] by
-
- 2 edits in trunk/Source/WebKitLegacy/mac
_paintBehaviorForDestinationContext should consider kCGContextTypeDisplayList type contexts as potentially being snapshots
https://bugs.webkit.org/show_bug.cgi?id=234626
<rdar://83501315>
Patch by Matt Woodrow <Matt Woodrow> on 2022-01-12
Reviewed by Simon Fraser.
_paintBehaviorForDestinationContext currently always returns
Normalfor contexts that aren't a bitmap context.
AppKit now provides a context that is of type kCGContextTypeDisplayList, and we want to still potentially consider it a
snapshot paint (if the other conditions below are met). This ensure images are sync decoded for consumers that just
want a single paint.
- WebView/WebFrame.mm:
(-[WebFrame _paintBehaviorForDestinationContext:]):
- 1:54 PM Changeset in webkit [287950] by
-
- 5 edits in trunk/Source
Unreviewed, reverting r287908.
https://bugs.webkit.org/show_bug.cgi?id=235156
Broke M1 Monterey JSC
Reverted changeset:
"Update hashThreadState() to exclude opaque_flags."
https://bugs.webkit.org/show_bug.cgi?id=235081
https://commits.webkit.org/r287908
- 1:17 PM Changeset in webkit [287949] by
-
- 5 edits in trunk/Tools
[EWS] Accept GitHub hooks (Part 1)
https://bugs.webkit.org/show_bug.cgi?id=235033
<rdar://problem/87345269>
Reviewed by Aakash Jain
Trigger a subset of queues for incoming GitHub pull-requests.
- Tools/CISupport/ews-build/config.json: Enable webkitperl, webkitpy, services and style checks.
- Tools/CISupport/ews-build/loadConfig_unittest.py:
(ConfigDotJSONTest):
(ConfigDotJSONTest.test_multiple_scheduers_for_builder):
- Tools/CISupport/ews-build/master.cfg: Accept GitHub hooks, specify variables
to extract from incoming request.
- Tools/CISupport/ews-build/steps.py:
(GitHub):
(GitHub.repository_urls): Concatenate all valid projects with the base URL.
(GitHub.pr_url): Given a repository and pull-request number, return the URL
for that pull-request.
(ConfigureBuild.add_pr_details):
(GitHubMixin): Deleted.
Canonical link: https://commits.webkit.org/245977@main
- 1:17 PM Changeset in webkit [287948] by
-
- 3 edits in trunk/Source/WebCore
[MediaFoundation] Invalidate only the videa area using MediaPlayer::repaint(), not the whole FrameView
https://bugs.webkit.org/show_bug.cgi?id=235088
Reviewed by Don Olmstead.
r192176 added MediaPlayerPrivateMediaFoundation::invalidateFrameView()
to render the next frame. It was, as per the method name,
invalidating the whole FrameView.
This approach doesn't render video frames with TiledBacking (Bug
233676). Calling MediaPlayer::repaint() is the correct way to
invalidate the video area.
- platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp:
(WebCore::MediaPlayerPrivateMediaFoundation::invalidateVideoArea): Call MediaPlayer::repaint().
(WebCore::MediaPlayerPrivateMediaFoundation::CustomVideoPresenter::processInputNotify):
(WebCore::MediaPlayerPrivateMediaFoundation::invalidateFrameView): Deleted.
- platform/graphics/win/MediaPlayerPrivateMediaFoundation.h:
- 12:56 PM Changeset in webkit [287947] by
-
- 2 edits in trunk/LayoutTests
[ iOS EWS ] imported/w3c/web-platform-tests/dom/events/focus-event-document-move.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=235150
Unreviewed test gardening.
- platform/ios-wk2/TestExpectations:
- 12:45 PM Changeset in webkit [287946] by
-
- 2 edits in trunk/Source/WebInspectorUI
Update Web Inspector to not use legacy webkit-prefixed transition events
https://bugs.webkit.org/show_bug.cgi?id=235119
Reviewed by Joseph Pecoraro.
Came across this while working on bug 235113, we shouldn't be using webkit-prefixed events.
- UserInterface/Views/TabBar.js:
(WI.TabBar.prototype.insertTabBarItem.animateTabs):
(WI.TabBar.prototype.insertTabBarItem.removeStyles):
(WI.TabBar.prototype.insertTabBarItem):
(WI.TabBar.prototype.removeTabBarItem.animateTabs):
(WI.TabBar.prototype.removeTabBarItem.removeStyles):
(WI.TabBar.prototype.removeTabBarItem):
(WI.TabBar.prototype._finishExpandingTabsAfterClose.):
(WI.TabBar.prototype._finishExpandingTabsAfterClose):
- 12:24 PM Changeset in webkit [287945] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector should expose newer CSS Animations, CSS Transitions and Web Animations events
https://bugs.webkit.org/show_bug.cgi?id=235117
Reviewed by Joseph Pecoraro.
Came across this while working on bug 235113, the more recent events added to
CSS Animations, CSS Transitions and Web Animations are not used in the Web Inspector.
- UserInterface/Models/ScriptTimelineRecord.js:
(WI.ScriptTimelineRecord.EventType.displayName):
- 12:17 PM Changeset in webkit [287944] by
-
- 4 edits in trunk
Build WebKitSwift when building with make or build-webkit
https://bugs.webkit.org/show_bug.cgi?id=235093
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-12
Reviewed by Alexey Proskuryakov.
Source/WebKit:
For various internal reasons, we have to have no depency between the two,
but we command line builders want to build and test it just like everyone else.
- Makefile:
Tools:
- Scripts/build-webkit:
- 12:06 PM Changeset in webkit [287943] by
-
- 3 edits2 adds in trunk
[Live Text] Image overlay text is misaligned on rfi.fr
https://bugs.webkit.org/show_bug.cgi?id=235118
Reviewed by Aditya Keerthi.
Source/WebCore:
Reset any
text-indentto 0 when injecting Live Text into image elements, to ensure that anytext-indent
value set on the image doesn't propagate into UA shadow DOM content.
Test: fast/images/text-recognition/image-overlay-with-text-indent.html
- html/shadow/imageOverlay.css:
(div.image-overlay-line, .image-overlay-text, div.image-overlay-block):
LayoutTests:
Add a new test case to exercise the bug.
- fast/images/text-recognition/image-overlay-with-text-indent-expected.html: Added.
- fast/images/text-recognition/image-overlay-with-text-indent.html: Added.
- 11:53 AM Changeset in webkit [287942] by
-
- 2 edits in trunk/LayoutTests
[ Win EWS ] webanimations/accelerated-animation-after-forward-filling-animation.html is a constant image only failure
https://bugs.webkit.org/show_bug.cgi?id=235126
Unreviewed test gardening.
- platform/win/TestExpectations: Adding ImageOnlyFailure expectation to speed up WindowsEWS.
- 11:46 AM Changeset in webkit [287941] by
-
- 2 edits in trunk/Source/WTF
[JSC] Enable libpas jit-heap when libpas is enabled
https://bugs.webkit.org/show_bug.cgi?id=235042
Reviewed by Filip Pizlo.
Previously, we enabled jit-heap only in ARM64 macOS.
We should enable it when libpas is enabled.
- wtf/PlatformUse.h:
- 11:19 AM Changeset in webkit [287940] by
-
- 2 edits in trunk/LayoutTests
[ Win EWS ] webanimations/frame-rate/animation-frame-rate.html is a constant text failure
https://bugs.webkit.org/show_bug.cgi?id=235124
Unreviewed test gardening.
- platform/win/TestExpectations: Adding Failure expectation for Windows to speed up Windows EWS.
- 11:18 AM Changeset in webkit [287939] by
-
- 4 edits in trunk/Source/WebCore
Correctly dirty z-order lists when showing a modal dialog
https://bugs.webkit.org/show_bug.cgi?id=232762
<rdar://problem/85082354>
Reviewed by Alan Bujtas.
When showing a dialog element which is split into continuations, we need to ensure
to call establishesTopLayerWillChange()/establishesTopLayerDidChange() on the
layers of all the continuation renderers.
- dom/Element.cpp:
(WebCore::forEachRenderLayer): Call the provided function on the layers for all
the associated render objects. It's a little cumbersome because layers relate to
RenderLayerModelObject, but continuations relate to RenderBoxModelObject.
(WebCore::Element::addToTopLayer):
(WebCore::Element::removeFromTopLayer):
(WebCore::renderLayerForElement): Deleted.
- rendering/RenderBoxModelObject.cpp:
(WebCore::RenderBoxModelObject::forRendererAndContinuations):
- rendering/RenderBoxModelObject.h: Provider a static helper to call a function
on a renderer and all its continuations, if any.
- 11:05 AM Changeset in webkit [287938] by
-
- 1 copy in tags/Safari-613.1.12.1.8
Tag Safari-613.1.12.1.8.
- 11:05 AM Changeset in webkit [287937] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.8
- 10:56 AM Changeset in webkit [287936] by
-
- 3 edits in trunk/Source/WebCore
Add some functions to Color to make debugging using color indicators easier
https://bugs.webkit.org/show_bug.cgi?id=234886
Reviewed by Darin Adler.
Add two helpers to Color to aid debugging, allowing easy access to components in simplified form.
- platform/graphics/Color.cpp:
(WebCore::Color::debugRGBA const):
(WebCore::Color::debugDescription const):
- platform/graphics/Color.h:
- 10:55 AM Changeset in webkit [287935] by
-
- 2 edits in trunk/LayoutTests
REGRESSION(r286828?): [ Win EWS ] fast/css/contain-invalidate-if-disabled.html is a constant failure
https://bugs.webkit.org/show_bug.cgi?id=235123
Unreviewed test gardening.
- platform/win/TestExpectations: Adding Failure expectaton to speed up Windows EWS.
- 10:49 AM Changeset in webkit [287934] by
-
- 6 edits in trunk
Web Inspector: Unhandled exception when moving cursor mid-token after receiving CSS property name completions
https://bugs.webkit.org/show_bug.cgi?id=234393
<rdar://problem/86578732>
Reviewed by Patrick Angle.
Source/WebInspectorUI:
A faulty check for mid-token completions in
WI.CSSKeywordCompletions.forPartialPropertyName(), which are still
unsupported, prevented an early return and completions were provided unexpectedly. This had knock-on effects in
WI.SpreadsheetTextFieldwhich is not set up to handle cases where the caret is placed within the completion query.
Calculating the adjusted caret position could return a negative index and throw an unhandled exception.
Web Inspector does not currently explicitly support mid-token completions. See https://webkit.org/b/227157
The implementation of fuzzy matching for CSS completions in https://webkit.org/b/234092
means that, unhindered, the completion provider for CSS property names _can_ return mid-token completions.
Typing a query likemargin, then moving the caret to the beginning and correcting tos|marginwill return
completions like[s]croll-[margin]. Accepting the completion results in a malformedSpreadsheetTextField.value
by concatenation within the prefix itself. As the user types mid-token, the prefix becomes ambiguous.
Fixing the condition in
WI.CSSKeywordCompletions.forPartialPropertyName()now inhibits unintentional
mid-token completions when fuzzy matching is enabled.
- UserInterface/Models/CSSKeywordCompletions.js:
(WI.CSSKeywordCompletions.forPartialPropertyName):
- UserInterface/Views/SpreadsheetTextField.js:
(WI.SpreadsheetTextField.prototype._showSuggestionsView):
LayoutTests:
- inspector/unit-tests/css-keyword-completions-expected.txt:
- inspector/unit-tests/css-keyword-completions.html:
- 10:44 AM Changeset in webkit [287933] by
-
- 2 edits in trunk/LayoutTests
[AppleWin] Some fast/shadow-dom/fullscreen-in-* tests are crashing after r287698
https://bugs.webkit.org/show_bug.cgi?id=234933
Unreviewed test gardening.
- platform/win/TestExpectations: Missed adding a crash expectation to 'accessibility/insert-children-assert.html' which is part of this bug.
- 10:38 AM Changeset in webkit [287932] by
-
- 2 edits in trunk/LayoutTests
[AppleWin] Some fast/shadow-dom/fullscreen-in-* tests are crashing after r287698
https://bugs.webkit.org/show_bug.cgi?id=234933
Unreviewed test gardening.
- platform/win/TestExpectations: Adding crash expectation to tests because they were slowing down Windows EWS.
- 10:22 AM Changeset in webkit [287931] by
-
- 1 copy in tags/Safari-613.1.12.1.7
Tag Safari-613.1.12.1.7.
- 10:17 AM Changeset in webkit [287930] by
-
- 10 edits in trunk/Source/WebKit
[iOS] Page loading hangs for ~10s on WebProcess launch
https://bugs.webkit.org/show_bug.cgi?id=235089
Reviewed by Eric Carlson.
WebPage::setMuted() will result in calling into the current audioCaptureFactory,
which will be by default CoreAudioAudioCaptureFactory unless replaced.
CoreAudioAudioCaptureFactory will in turn call into AVAudioSession, which will block
for multiple seconds due to the WebContent process sandbox.
Change the order in which these calls occur by configuring the audioCaptureFactory
in platformInitialize(), which occurs near the top of the constructor. This requires
access to the WebPageCreationParameters passed into the constructor, modify that method
to take a WebPageCreationParameters, and modify all the platform-specific definitions of
that method.
- WebProcess/WebPage/Cocoa/WebPageCocoa.mm:
(WebKit::WebPage::platformInitialize):
- WebProcess/WebPage/WebPage.cpp:
(WebKit::m_appHighlightsVisible):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformInitialize):
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::platformInitialize): Deleted.
- WebProcess/WebPage/mac/WebPageMac.mm:
(WebKit::WebPage::platformInitializeAccessibility):
(WebKit::WebPage::platformInitialize): Deleted.
- WebProcess/WebPage/playstation/WebPagePlayStation.cpp:
(WebKit::WebPage::platformInitialize):
- WebProcess/WebPage/win/WebPageWin.cpp:
(WebKit::WebPage::platformInitialize):
- WebProcess/WebPage/wpe/WebPageWPE.cpp:
(WebKit::WebPage::platformInitialize):
- 10:15 AM Changeset in webkit [287929] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.7
- 9:57 AM Changeset in webkit [287928] by
-
- 2 edits in trunk/Source/ThirdParty/libwebrtc
VP9-SVS no video stream from remote peer on some devices
https://bugs.webkit.org/show_bug.cgi?id=231074
<rdar://problem/84024646>
Reviewed by Eric Carlson.
- Source/webrtc/sdk/objc/components/video_codec/RTCDefaultVideoDecoderFactory.m:
(-[RTCDefaultVideoDecoderFactory initWithH265:vp9Profile0:vp9Profile2:vp9VTB:]):
Do not use VTIsHardwareDecodeSupported('vp09') to know whether WebProcess can use VTB since sandboxing can control this.
- 8:56 AM Changeset in webkit [287927] by
-
- 41 edits1 copy9 adds in trunk/LayoutTests
[css-flexbox] Import WPT tests - January edition
https://bugs.webkit.org/show_bug.cgi?id=235102
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
This import brings some new tests. Apart from that several expectations were moved from FAIL to PASS.
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-002.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-004.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-006.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-content-008.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-002.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-004.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-006.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-align-self-008.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-002.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-003.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-004.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-006.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-007.html:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008-expected.txt:
- web-platform-tests/css/css-flexbox/abspos/flex-abspos-staticpos-justify-content-008.html:
- web-platform-tests/css/css-flexbox/abspos/w3c-import.log:
- web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-007-expected.html: Added.
- web-platform-tests/css/css-flexbox/aspect-ratio-intrinsic-size-007.html: Added.
- web-platform-tests/css/css-flexbox/fieldset-as-item-dynamic-expected.html: Added.
- web-platform-tests/css/css-flexbox/fieldset-as-item-dynamic.html: Added.
- web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001-expected.txt:
- web-platform-tests/css/css-flexbox/flex-basis-intrinsics-001.html:
- web-platform-tests/css/css-flexbox/flex-grow-001-ref.xht: Added.
- web-platform-tests/css/css-flexbox/flex-minimum-width-flex-items-014.html:
- web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-002-expected.txt:
- web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-002.html:
- web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-003-expected.txt: Added.
- web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-003.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-flexbox/flexbox-justify-content-wmvert-002.html.
- web-platform-tests/css/css-flexbox/order/order-with-column-reverse-ref.html: Added.
- web-platform-tests/css/css-flexbox/order/order-with-row-reverse-ref.html: Added.
- web-platform-tests/css/css-flexbox/scrollbars-auto-expected.html:
- web-platform-tests/css/css-flexbox/scrollbars-expected.html:
- web-platform-tests/css/css-flexbox/support/large-green-rectangle.svg: Added.
- web-platform-tests/css/css-flexbox/support/w3c-import.log:
- web-platform-tests/css/css-flexbox/w3c-import.log:
LayoutTests:
- TestExpectations: Skip a recently added test case that is failing.
- 8:54 AM Changeset in webkit [287926] by
-
- 5 edits in trunk
css/css-transitions/pseudo-elements-002.html WPT is a failure
https://bugs.webkit.org/show_bug.cgi?id=234987
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark WPT progression.
- web-platform-tests/css/css-transitions/pseudo-elements-002-expected.txt:
- web-platform-tests/css/cssom/getComputedStyle-pseudo-expected.txt:
Source/WebCore:
When checking for style validity, we would only check the element itself and not its host
in the case where the element were a PseudoElement. Ideally, we'd eradicate all use of
PseudoElement throughout this source file, but this is a start, and I'll attempt a
refactor in a followup patch.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::hasValidStyleForProperty):
- 8:51 AM Changeset in webkit [287925] by
-
- 22 edits14 deletes in trunk
Remove WebKitTransitionEvent and WebKitAnimationEvent
https://bugs.webkit.org/show_bug.cgi?id=235113
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-animations/historical-expected.txt:
- web-platform-tests/css/css-transitions/historical-expected.txt:
Source/WebCore:
Remove all files related to these interfaces and fix some missing header includes
revealed by a change in unified sources.
- CMakeLists.txt:
- DerivedSources-input.xcfilelist:
- DerivedSources-output.xcfilelist:
- DerivedSources.make:
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- dom/EventNames.in:
- dom/EventTarget.cpp:
- dom/WebKitAnimationEvent.cpp: Removed.
- dom/WebKitAnimationEvent.h: Removed.
- dom/WebKitAnimationEvent.idl: Removed.
- dom/WebKitTransitionEvent.cpp: Removed.
- dom/WebKitTransitionEvent.h: Removed.
- dom/WebKitTransitionEvent.idl: Removed.
- dom/mac/ImageControlsMac.cpp:
- dom/mac/ImageControlsMac.h:
LayoutTests:
Remove some tests specific to those two interfaces.
- animations/animation-events-create-expected.txt: Removed.
- animations/animation-events-create.html: Removed.
- fast/events/constructors/webkit-animation-event-constructor-expected.txt: Removed.
- fast/events/constructors/webkit-animation-event-constructor.html: Removed.
- fast/events/constructors/webkit-transition-event-constructor-expected.txt: Removed.
- fast/events/constructors/webkit-transition-event-constructor.html: Removed.
- js/dom/constructor-length.html:
- platform/glib/js/dom/constructor-length-expected.txt:
- platform/ios/js/dom/constructor-length-expected.txt:
- platform/mac/js/dom/constructor-length-expected.txt:
- platform/win/TestExpectations:
- platform/win/js/dom/constructor-length-expected.txt:
- platform/wincairo/js/dom/constructor-length-expected.txt:
- transitions/transition-end-event-create-expected.txt: Removed.
- transitions/transition-end-event-create.html: Removed.
- 8:47 AM Changeset in webkit [287924] by
-
- 53 edits1 copy1 move116 adds1 delete in trunk/LayoutTests
Update WPT for css/css-animations, css/css-transitions and web-animations
https://bugs.webkit.org/show_bug.cgi?id=235111
Unreviewed WPT import.
LayoutTests/imported/w3c:
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/css/css-animations/animation-common-ref.html: Added.
- web-platform-tests/css/css-animations/animation-important-002-ref.html: Added.
- web-platform-tests/css/css-animations/animation-opacity-pause-and-set-time-ref.html: Added.
- web-platform-tests/css/css-animations/animation-pseudo-dynamic-001-ref.html: Added.
- web-platform-tests/css/css-animations/animation-transform-pause-and-set-time-ref.html: Added.
- web-platform-tests/css/css-animations/flip-running-animation-via-variable-expected.html: Added.
- web-platform-tests/css/css-animations/flip-running-animation-via-variable-ref.html: Added.
- web-platform-tests/css/css-animations/flip-running-animation-via-variable.html: Added.
- web-platform-tests/css/css-animations/keyframes-unrelated-custom-property-expected.txt: Added.
- web-platform-tests/css/css-animations/keyframes-unrelated-custom-property.html: Added.
- web-platform-tests/css/css-animations/nested-scale-animations-ref.html: Added.
- web-platform-tests/css/css-animations/simultaneous-animations-crash.html: Added.
- web-platform-tests/css/css-animations/svg-transform-animation-ref.html: Added.
- web-platform-tests/css/css-animations/transform-animation-under-large-scale-ref.html: Added.
- web-platform-tests/css/css-animations/translation-animation-subpixel-offset-ref.html: Added.
- web-platform-tests/css/css-animations/w3c-import.log:
- web-platform-tests/css/css-transitions/animations/change-duration-during-transition-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/change-duration-during-transition.html: Added.
- web-platform-tests/css/css-transitions/animations/color-transition-premultiplied-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/color-transition-premultiplied.html: Added.
- web-platform-tests/css/css-transitions/animations/move-after-transition-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/move-after-transition.html: Added.
- web-platform-tests/css/css-transitions/animations/text-shadow-composition-expected.txt:
- web-platform-tests/css/css-transitions/animations/text-shadow-composition.html:
- web-platform-tests/css/css-transitions/animations/text-shadow-interpolation-expected.txt:
- web-platform-tests/css/css-transitions/animations/text-shadow-interpolation.html:
- web-platform-tests/css/css-transitions/animations/transition-end-event-shorthands-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/transition-end-event-shorthands.html: Added.
- web-platform-tests/css/css-transitions/animations/transition-timing-function-expected.txt: Added.
- web-platform-tests/css/css-transitions/animations/transition-timing-function.html: Added.
- web-platform-tests/css/css-transitions/animations/w3c-import.log:
- web-platform-tests/css/css-transitions/changing-while-transition-004-expected.txt: Added.
- web-platform-tests/css/css-transitions/changing-while-transition-004.html: Added.
- web-platform-tests/css/css-transitions/crashtests/transition-large-word-spacing-001.html: Added.
- web-platform-tests/css/css-transitions/crashtests/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/web-animations/interfaces/Animatable/w3c-import.log.
- web-platform-tests/css/css-transitions/event-dispatch.tentative.html:
- web-platform-tests/css/css-transitions/no-transition-from-ua-to-blocking-stylesheet-ref.html: Added.
- web-platform-tests/css/css-transitions/retargetted-transition-with-box-sizing-expected.txt: Added.
- web-platform-tests/css/css-transitions/retargetted-transition-with-box-sizing.html: Added.
- web-platform-tests/css/css-transitions/root-color-transition-ref.html: Added.
- web-platform-tests/css/css-transitions/transition-after-animation-001-expected.txt: Added.
- web-platform-tests/css/css-transitions/transition-after-animation-001.html: Added.
- web-platform-tests/css/css-transitions/transition-delay-001.html:
- web-platform-tests/css/css-transitions/transition-duration-001.html:
- web-platform-tests/css/css-transitions/transition-duration-shorthand-expected.txt: Added.
- web-platform-tests/css/css-transitions/transition-duration-shorthand.html: Added.
- web-platform-tests/css/css-transitions/w3c-import.log:
- web-platform-tests/web-animations/META.yml:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/property-list.js:
- web-platform-tests/web-animations/animation-model/animation-types/property-types.js:
(const.transformListType.testInterpolation):
- web-platform-tests/web-animations/idlharness.window-expected.txt:
- web-platform-tests/web-animations/idlharness.window.js:
- web-platform-tests/web-animations/interfaces/Animatable/getAnimations-iframe-expected.txt: Added.
- web-platform-tests/web-animations/interfaces/Animatable/getAnimations-iframe.html: Added.
- web-platform-tests/web-animations/interfaces/Animatable/w3c-import.log:
- web-platform-tests/web-animations/interfaces/Animation/commitStyles-crash.html: Added.
- web-platform-tests/web-animations/interfaces/Animation/constructor.html:
- web-platform-tests/web-animations/interfaces/Animation/onfinish.html:
- web-platform-tests/web-animations/interfaces/Animation/onremove.html:
- web-platform-tests/web-animations/interfaces/Animation/w3c-import.log:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001-expected.txt:
- web-platform-tests/web-animations/interfaces/KeyframeEffect/processing-a-keyframes-argument-001.html:
- web-platform-tests/web-animations/responsive/assorted-lengths-expected.txt: Added.
- web-platform-tests/web-animations/responsive/assorted-lengths.html: Added.
- web-platform-tests/web-animations/responsive/backgroundPosition-expected.txt: Added.
- web-platform-tests/web-animations/responsive/backgroundPosition.html: Added.
- web-platform-tests/web-animations/responsive/backgroundSize-expected.txt: Added.
- web-platform-tests/web-animations/responsive/backgroundSize.html: Added.
- web-platform-tests/web-animations/responsive/baselineShift-expected.txt: Added.
- web-platform-tests/web-animations/responsive/baselineShift.html: Added.
- web-platform-tests/web-animations/responsive/borderImageWidth-expected.txt: Added.
- web-platform-tests/web-animations/responsive/borderImageWidth.html: Added.
- web-platform-tests/web-animations/responsive/borderRadius-expected.txt: Added.
- web-platform-tests/web-animations/responsive/borderRadius.html: Added.
- web-platform-tests/web-animations/responsive/borderWidth-expected.txt: Added.
- web-platform-tests/web-animations/responsive/borderWidth.html: Added.
- web-platform-tests/web-animations/responsive/boxShadow-expected.txt: Added.
- web-platform-tests/web-animations/responsive/boxShadow.html: Added.
- web-platform-tests/web-animations/responsive/clip-expected.txt: Added.
- web-platform-tests/web-animations/responsive/clip.html: Added.
- web-platform-tests/web-animations/responsive/columnCount-expected.txt: Added.
- web-platform-tests/web-animations/responsive/columnCount.html: Added.
- web-platform-tests/web-animations/responsive/columnGap-expected.txt: Added.
- web-platform-tests/web-animations/responsive/columnGap.html: Added.
- web-platform-tests/web-animations/responsive/d-expected.txt: Added.
- web-platform-tests/web-animations/responsive/d.html: Added.
- web-platform-tests/web-animations/responsive/font-size-adjust-expected.txt: Added.
- web-platform-tests/web-animations/responsive/font-size-adjust.html: Added.
- web-platform-tests/web-animations/responsive/fontSize-expected.txt: Added.
- web-platform-tests/web-animations/responsive/fontSize.html: Added.
- web-platform-tests/web-animations/responsive/fontWeight-expected.txt: Added.
- web-platform-tests/web-animations/responsive/fontWeight.html: Added.
- web-platform-tests/web-animations/responsive/lineHeight-expected.txt: Added.
- web-platform-tests/web-animations/responsive/lineHeight.html: Added.
- web-platform-tests/web-animations/responsive/minHeight-expected.txt: Added.
- web-platform-tests/web-animations/responsive/minHeight.html: Added.
- web-platform-tests/web-animations/responsive/offset-path-expected.txt: Added.
- web-platform-tests/web-animations/responsive/offset-path.html: Added.
- web-platform-tests/web-animations/responsive/offsetDistance-expected.txt: Added.
- web-platform-tests/web-animations/responsive/offsetDistance.html: Added.
- web-platform-tests/web-animations/responsive/offsetRotate-expected.txt: Added.
- web-platform-tests/web-animations/responsive/offsetRotate.html: Added.
- web-platform-tests/web-animations/responsive/opacity-expected.txt: Added.
- web-platform-tests/web-animations/responsive/opacity.html: Added.
- web-platform-tests/web-animations/responsive/perspective-expected.txt: Added.
- web-platform-tests/web-animations/responsive/perspective.html: Added.
- web-platform-tests/web-animations/responsive/rotate-expected.txt: Added.
- web-platform-tests/web-animations/responsive/rotate.html: Added.
- web-platform-tests/web-animations/responsive/rowGap-expected.txt: Added.
- web-platform-tests/web-animations/responsive/rowGap.html: Added.
- web-platform-tests/web-animations/responsive/shapeMargin-expected.txt: Added.
- web-platform-tests/web-animations/responsive/shapeMargin.html: Added.
- web-platform-tests/web-animations/responsive/shapeOutside-expected.txt: Added.
- web-platform-tests/web-animations/responsive/shapeOutside.html: Added.
- web-platform-tests/web-animations/responsive/strokeDasharray-expected.txt: Added.
- web-platform-tests/web-animations/responsive/strokeDasharray.html: Added.
- web-platform-tests/web-animations/responsive/text-size-adjust-expected.txt: Added.
- web-platform-tests/web-animations/responsive/text-size-adjust.html: Added.
- web-platform-tests/web-animations/responsive/textIndent-expected.txt: Added.
- web-platform-tests/web-animations/responsive/textIndent.html: Added.
- web-platform-tests/web-animations/responsive/to-color-change-expected.txt: Added.
- web-platform-tests/web-animations/responsive/to-color-change.html: Added.
- web-platform-tests/web-animations/responsive/to-inherited-change-expected.txt: Added.
- web-platform-tests/web-animations/responsive/to-inherited-change.html: Added.
- web-platform-tests/web-animations/responsive/to-style-change-expected.txt: Added.
- web-platform-tests/web-animations/responsive/to-style-change.html: Added.
- web-platform-tests/web-animations/responsive/transform-expected.txt: Added.
- web-platform-tests/web-animations/responsive/transform.html: Added.
- web-platform-tests/web-animations/responsive/translate-expected.txt: Added.
- web-platform-tests/web-animations/responsive/translate.html: Added.
- web-platform-tests/web-animations/responsive/verticalAlign-expected.txt: Added.
- web-platform-tests/web-animations/responsive/verticalAlign.html: Added.
- web-platform-tests/web-animations/responsive/w3c-import.log: Added.
- web-platform-tests/web-animations/testcommon.js:
(window.assert_time_greater_than_equal.window.assert_time_greater_than_equal):
- web-platform-tests/web-animations/timing-model/animations/finishing-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/infinite-duration-animation-ref.html: Added.
- web-platform-tests/web-animations/timing-model/animations/pausing-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/playing-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/reverse-running-animation-expected.html:
- web-platform-tests/web-animations/timing-model/animations/reverse-running-animation-ref.html: Added.
- web-platform-tests/web-animations/timing-model/animations/reverse-running-animation.html:
- web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/setting-the-current-time-of-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/setting-the-start-time-of-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/setting-the-timeline-of-an-animation-expected.txt:
- web-platform-tests/web-animations/timing-model/animations/setting-the-timeline-of-an-animation.html:
- web-platform-tests/web-animations/timing-model/animations/sync-start-times-ref.html: Added.
- web-platform-tests/web-animations/timing-model/animations/sync-start-times.html:
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast-expected.html:
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast-ref.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/web-animations/timing-model/animations/update-playback-rate-slow-expected.html.
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-fast.html:
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-slow.html: Removed.
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-zero-expected.html:
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-zero-ref.html: Added.
- web-platform-tests/web-animations/timing-model/animations/update-playback-rate-zero.html:
- web-platform-tests/web-animations/timing-model/animations/w3c-import.log:
- web-platform-tests/web-animations/timing-model/timelines/document-timelines.html:
- web-platform-tests/web-animations/timing-model/timelines/timelines-expected.txt:
- web-platform-tests/web-animations/timing-model/timelines/timelines.html:
- web-platform-tests/web-animations/timing-model/timelines/update-and-send-events-replacement.html:
LayoutTests:
- TestExpectations:
- platform/glib/TestExpectations:
- 7:04 AM Changeset in webkit [287923] by
-
- 4 edits in trunk
[WPE] Fix building WebXR with ANGLE enabled
https://bugs.webkit.org/show_bug.cgi?id=235108
Reviewed by Alejandro G. Castro.
.:
Remove conflict between WebXR and ANGLE WebGL for WPE.
- Source/cmake/OptionsWPE.cmake:
Source/WebCore:
Fix building both ANGLE WebGL and WebXR simultaneously when GLES is
being used.
- Modules/webxr/WebXROpaqueFramebuffer.cpp:
(WebCore::WebXROpaqueFramebuffer::startFrame):
(WebCore::WebXROpaqueFramebuffer::setupFramebuffer):
- 6:37 AM Changeset in webkit [287922] by
-
- 7 edits2 adds in trunk
[LFC][IFC] Incorrect negative margin handling (both left/right) with RTL inline base direction
https://bugs.webkit.org/show_bug.cgi?id=235095
Reviewed by Antti Koivisto.
Source/WebCore:
The simplified negative margin handling on inline boxes does not work well with RTL inline base direction.
With LTR direction, we could just treat the negative left margin value (which pulls content to the left)
as part the "logical width" (may resulting in negative width values) and let this shorter width pull
the the adjoining content.
However this setup produces incorrect box positions when the inline base direction is RTL.
In this patch, we switch over to a more correct inline box positioning where the negative margin
affects the logical left while it does not make the run shorter anymore.
Test: fast/inline/rtl-negative-margins.html
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::appendInlineBoxStart):
(WebCore::Layout::Line::appendNonReplacedInlineLevelBox):
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:
(WebCore::Layout::InlineDisplayLineBuilder::build const):
LayoutTests:
- fast/inline/rtl-negative-margins-expected.html: Added.
- fast/inline/rtl-negative-margins.html: Added.
- 5:05 AM Changeset in webkit [287921] by
-
- 11 edits2 adds in trunk/Source/WebCore
[LBSE] Begin layer-aware RenderSVGContainer implementation
https://bugs.webkit.org/show_bug.cgi?id=235100
Reviewed by Rob Buis.
Create RenderSVGContainer based on the downstream LBSE implementation.
This patch does not yet enable the creation of RenderSVGContainer
renderers if LBSE is enabled, since the derived classes, such as
RenderSVGHiddenContainer / RenderSVGViewportContainer / ..., are still
missing in LBSE.
Covered by existing tests, no change in behaviour.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/RenderObject.h:
(WebCore::RenderObject::isSVGContainer const):
- rendering/RenderTreeAsText.cpp:
(WebCore::write):
- rendering/svg/RenderSVGContainer.cpp: Added.
(WebCore::RenderSVGContainer::RenderSVGContainer):
(WebCore::RenderSVGContainer::layout):
(WebCore::RenderSVGContainer::calculateViewport):
(WebCore::RenderSVGContainer::layoutChildren):
(WebCore::RenderSVGContainer::styleDidChange):
(WebCore::RenderSVGContainer::selfWillPaint):
(WebCore::RenderSVGContainer::paint):
(WebCore::RenderSVGContainer::nodeAtPoint):
- rendering/svg/RenderSVGContainer.h: Added.
(WebCore::RenderSVGContainer::isObjectBoundingBoxValid const):
(WebCore::RenderSVGContainer::updateLayerInformation):
(WebCore::RenderSVGContainer::pointIsInsideViewportClip):
- rendering/svg/SVGBoundingBoxComputation.cpp:
(WebCore::SVGBoundingBoxComputation::computeDecoratedBoundingBox const):
(WebCore::SVGBoundingBoxComputation::handleRootOrContainer const):
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGContainer):
- rendering/svg/SVGRenderTreeAsText.h:
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachInternal):
(WebCore::RenderTreeBuilder::detach):
- rendering/updating/RenderTreeBuilderSVG.cpp:
(WebCore::RenderTreeBuilder::SVG::attach):
(WebCore::RenderTreeBuilder::SVG::detach):
- rendering/updating/RenderTreeBuilderSVG.h:
- 5:02 AM Changeset in webkit [287920] by
-
- 7 edits in trunk
[WPE] Enable WebGL ANGLE support
https://bugs.webkit.org/show_bug.cgi?id=235064
Reviewed by Alejandro G. Castro.
.:
Add the USE_ANGLE_WEBGL option for WPE. This is currently incompatible
with WebXR as there isn't an ANGLE GL context code-path there.
- Source/cmake/OptionsWPE.cmake:
Source/ThirdParty/ANGLE:
Enable building on WPE (mostly copying the GTK build file).
- PlatformWPE.cmake:
Source/WebCore:
Enable ANGLE WebGL support when building the WPE port.
- platform/graphics/angle/ANGLEHeaders.h:
- platform/graphics/nicosia/texmap/NicosiaGCGLLayer.cpp:
(Nicosia::GCGLLayer::swapBuffersIfNeeded):
- 4:25 AM Changeset in webkit [287919] by
-
- 2 edits in trunk/Source/WTF
[WTF] Exclude any Linux-based platform in DisallowCType.h
https://bugs.webkit.org/show_bug.cgi?id=235104
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-12
Reviewed by Adrian Perez de Castro.
- wtf/DisallowCType.h: Exclude any Linux target from deploying macros
that prevent use of locale-dependent ctype functions in combination with
the glibc C library and a non-libc++ C++ library. This should thus also
cover the JSCOnly port when built on Linux.
- 4:02 AM Changeset in webkit [287918] by
-
- 7 edits in trunk/Source/WebCore
[GTK][a11y] Defer the emission of AddAccessible signal with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234740
Reviewed by Adrian Perez de Castro.
In case of node added and removed quickly, we just avoid the emission of the signal.
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::attachWrapper): Notify the root about its new child earlier to ensure the isolated tree
is created as soon as possible.
(WebCore::AXObjectCache::platformPerformDeferredCacheUpdate): Remove the root case from here.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::parentChanged): Ensure object is cached before emitting the signal.
(WebCore::AccessibilityAtspi::childrenChanged): Ditto.
(WebCore::AccessibilityAtspi::stateChanged): Ditto.
(WebCore::AccessibilityAtspi::textChanged): Ditto.
(WebCore::AccessibilityAtspi::textAttributesChanged): Ditto.
(WebCore::AccessibilityAtspi::textCaretMoved): Ditto.
(WebCore::AccessibilityAtspi::textSelectionChanged): Ditto.
(WebCore::AccessibilityAtspi::valueChanged): Ditto.
(WebCore::AccessibilityAtspi::selectionChanged): Ditto.
(WebCore::AccessibilityAtspi::loadEvent): Ditto.
(WebCore::AccessibilityAtspi::addToCacheIfNeeded): Helper to add an object to the cache and emit AddAccessible signal.
(WebCore::AccessibilityAtspi::cacheUpdateTimerFired): Update the cache with pending adds.
(WebCore::AccessibilityAtspi::scheduleCacheUpdate): Create the update cache timer if needed and schedule an
update if there isn't a pending one already.
(WebCore::AccessibilityAtspi::addAccessible): Add object to the list and schedule a cache update.
(WebCore::AccessibilityAtspi::removeAccessible): Return early if the object is in the update cache list.
- accessibility/atspi/AccessibilityAtspi.h:
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::registerObject): Remove the call to AccessibilityRootAtspi::child() when an
object is registered before being attached to the isolated object.
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::child const): Set m_isInChild.
(WebCore::AccessibilityRootAtspi::childAdded): Return early if the given child is not the current one or called
from child().
- accessibility/atspi/AccessibilityRootAtspi.h:
- 3:40 AM Changeset in webkit [287917] by
-
- 5 edits in trunk
Interpolation during animation of two empty transform lists should always yield "none"
https://bugs.webkit.org/show_bug.cgi?id=235069
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-transforms/animation/list-interpolation-expected.txt: Update to show passes.
Source/WebCore:
No new tests. This is covered by an existing WPT test.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::checkForMatchingTransformFunctionLists): When all keyframes have "transform: none"
they transform function lists should match. This allows TransformOperations::blend to avoid doing
matrix interpolation to generate the interpolated transform.
- 2:29 AM Changeset in webkit [287916] by
-
- 21 edits2 moves in trunk/Source/WebCore
[LBSE] Rename RenderSVGContainer -> LegacyRenderSVGContainer
https://bugs.webkit.org/show_bug.cgi?id=235099
Reviewed by Rob Buis.
Following the established procedure: rename RenderSVGContainer -> LegacyRenderSVGContainer.
In a follow-up patch RenderSVGContainer 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:
- rendering/RenderObject.h:
(WebCore::RenderObject::isLegacySVGContainer const):
(WebCore::RenderObject::isSVGContainer const): Deleted.
- rendering/RenderTreeAsText.cpp:
(WebCore::write):
- rendering/svg/LegacyRenderSVGContainer.cpp: Renamed from Source/WebCore/rendering/svg/RenderSVGContainer.cpp.
(WebCore::LegacyRenderSVGContainer::LegacyRenderSVGContainer):
(WebCore::LegacyRenderSVGContainer::layout):
(WebCore::LegacyRenderSVGContainer::selfWillPaint):
(WebCore::LegacyRenderSVGContainer::paint):
(WebCore::LegacyRenderSVGContainer::addFocusRingRects):
(WebCore::LegacyRenderSVGContainer::updateCachedBoundaries):
(WebCore::LegacyRenderSVGContainer::nodeAtFloatPoint):
- rendering/svg/LegacyRenderSVGContainer.h: Renamed from Source/WebCore/rendering/svg/RenderSVGContainer.h.
(WebCore::LegacyRenderSVGContainer::didTransformToRootUpdate):
(WebCore::LegacyRenderSVGContainer::isObjectBoundingBoxValid const):
(WebCore::LegacyRenderSVGContainer::calculateLocalTransform):
(WebCore::LegacyRenderSVGContainer::calcViewport):
(WebCore::LegacyRenderSVGContainer::applyViewportClip):
(WebCore::LegacyRenderSVGContainer::pointIsInsideViewportClip):
(WebCore::LegacyRenderSVGContainer::determineIfLayoutSizeChanged):
- rendering/svg/LegacyRenderSVGShape.h:
- rendering/svg/RenderSVGHiddenContainer.cpp:
(WebCore::RenderSVGHiddenContainer::RenderSVGHiddenContainer):
- rendering/svg/RenderSVGHiddenContainer.h:
- rendering/svg/RenderSVGResourceMarker.cpp:
(WebCore::RenderSVGResourceMarker::layout):
(WebCore::RenderSVGResourceMarker::markerBoundaries const):
(WebCore::RenderSVGResourceMarker::draw):
- rendering/svg/RenderSVGShape.h:
- rendering/svg/RenderSVGTransformableContainer.cpp:
(WebCore::RenderSVGTransformableContainer::RenderSVGTransformableContainer):
(WebCore::RenderSVGTransformableContainer::graphicsElement):
- rendering/svg/RenderSVGTransformableContainer.h:
- rendering/svg/RenderSVGViewportContainer.cpp:
(WebCore::RenderSVGViewportContainer::RenderSVGViewportContainer):
(WebCore::RenderSVGViewportContainer::svgSVGElement const):
(WebCore::RenderSVGViewportContainer::paint):
- rendering/svg/RenderSVGViewportContainer.h:
- rendering/svg/SVGRenderSupport.cpp:
(WebCore::SVGRenderSupport::checkForSVGRepaintDuringLayout):
(WebCore::updateObjectBoundingBox):
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGContainer):
- rendering/svg/SVGRenderTreeAsText.h:
- rendering/updating/RenderTreeBuilder.cpp:
(WebCore::RenderTreeBuilder::attachInternal):
(WebCore::RenderTreeBuilder::detach):
- rendering/updating/RenderTreeBuilderSVG.cpp:
(WebCore::RenderTreeBuilder::SVG::attach):
(WebCore::RenderTreeBuilder::SVG::detach):
- rendering/updating/RenderTreeBuilderSVG.h:
- svg/SVGPatternElement.cpp:
- 1:44 AM Changeset in webkit [287915] by
-
- 9 edits in trunk
New service worker API 'FetchEvent.handled' needs to be supported
https://bugs.webkit.org/show_bug.cgi?id=208185
<rdar://problem/59808975>
Reviewed by Chris Dumez.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/service-worker/fetch-event-handled.https-expected.txt:
- web-platform-tests/service-workers/service-worker/fetch-event-handled.https.html:
- web-platform-tests/service-workers/service-worker/resources/fetch-event-handled-worker.js:
(try.event.handled.then):
(catch):
(send_message_to_client): Deleted.
Source/WebCore:
Expose FetchEvent.handled and resolve/reject it as per specification.
Covered by test that we update to not rely on clientIds that we do not support very well.
- workers/service/FetchEvent.cpp:
(WebCore::FetchEvent::createForTesting):
(WebCore::retrieveHandledPromise):
(WebCore::FetchEvent::FetchEvent):
- workers/service/FetchEvent.h:
- workers/service/FetchEvent.idl:
- workers/service/context/ServiceWorkerFetch.cpp:
(WebCore::ServiceWorkerFetch::processResponse):
(WebCore::ServiceWorkerFetch::dispatchFetchEvent):
- 12:51 AM Changeset in webkit [287914] by
-
- 5 edits in trunk/Source
Protect DocumentLoader when a reference to its members is used.
https://bugs.webkit.org/show_bug.cgi?id=233464
Patch by Frédéric Wang <fwang@igalia.com> on 2022-01-12
Reviewed by Brady Eidson.
Source/WebCore:
No new tests, due to our infra (bug 127676).
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::checkLoadCompleteForThisFrame): Ensure that DocumentLoader loader
remains alive while DocumentLoader::m_mainDocumentError is used.
Source/WebKit:
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::didFinishLoadForFrame): If the navigationID is obsolete, skip update
of the page load state to avoid failure of debug ASSERT.
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
(WebKit::WebFrameLoaderClient::dispatchDidFinishLoad): Ensure that DocumentLoader loader
remains alive while DocumentLoader::m_request is used.
Jan 11, 2022:
- 11:55 PM Changeset in webkit [287913] by
-
- 15 edits in trunk
Remove Direct2D code (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235097
Reviewed by Yusuke Suzuki.
.:
- Source/cmake/OptionsAppleWin.cmake:
Source/WebCore:
- platform/graphics/Color.h:
- platform/graphics/win/FontCacheWin.cpp:
(WebCore::createGDIFont):
(WebCore::FontCache::createFontPlatformData):
- platform/graphics/win/FontPlatformDataWin.cpp:
- platform/image-decoders/ScalableImageDecoder.cpp:
(WebCore::ScalableImageDecoder::setTargetContext): Deleted.
- platform/image-decoders/ScalableImageDecoder.h:
Source/WebCore/PAL:
- pal/PlatformAppleWin.cmake:
Source/WebKit:
- UIProcess/BackingStore.h:
(): Deleted.
- UIProcess/CoordinatedGraphics/DrawingAreaProxyCoordinatedGraphics.cpp:
(WebKit::DrawingAreaProxyCoordinatedGraphics::sizeDidChange):
(WebKit::DrawingAreaProxyCoordinatedGraphics::deviceScaleFactorDidChange):
- UIProcess/win/PageClientImpl.cpp:
- UIProcess/win/WebView.cpp:
(WebKit::WebView::paint):
- 11:52 PM Changeset in webkit [287912] by
-
- 3 edits in trunk/Source/JavaScriptCore
[RISCV64] riscv64 backend should lower offlineasm instructions
https://bugs.webkit.org/show_bug.cgi?id=234952
Patch by Zan Dobersek <zdobersek@igalia.com> on 2022-01-11
Reviewed by Yusuke Suzuki.
In the riscv64 offlineasm backend, instead of handling higher-level
offlineasm instructions with different operand combinations and manually
juggling temp registers, use the approach of aggressively lowering these
opcodes into sequences of RISC-V instructions.
Addresses and immediate values are lowered into usable forms where
necessary. Different lowering phases handle any offlineasm instruction
so that the resulting opcodes can be, with accompanying operands, used
trivially to construct the RISC-V assembly.
Lowered RISC-V opcodes use the 'rv_' prefix so that they can be easily
diassociated from any offlineasm opcode that might share the same name.
The prefix is removed when the assembly is finally generated.
- offlineasm/risc.rb: Also handle branch-on-arithmetic opcodes in the
riscvLowerMisplacedAddress lowering phase.
- offlineasm/riscv64.rb:
- 11:49 PM Changeset in webkit [287911] by
-
- 12 edits in trunk
[GPU Process] Make SVG resources create remote ImageBuffers for their drawing
https://bugs.webkit.org/show_bug.cgi?id=235073
rdar://87402419
Reviewed by Darin Adler.
Source/WebCore:
Pass a hostWindow when calling SVGRenderingContext::createImageBuffer().
- rendering/svg/RenderSVGResourceClipper.cpp:
(WebCore::RenderSVGResourceClipper::applyClippingToContext):
- rendering/svg/RenderSVGResourceGradient.cpp:
(WebCore::createMaskAndSwapContextForTextGradient):
(WebCore::clipToTextMask):
(WebCore::RenderSVGResourceGradient::applyResource):
(WebCore::RenderSVGResourceGradient::postApplyResource):
- rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
- rendering/svg/RenderSVGResourcePattern.cpp:
(WebCore::RenderSVGResourcePattern::createTileImage const):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::createImageBuffer):
- rendering/svg/SVGRenderingContext.h:
- svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::imageBufferForEffect const):
Source/WebKit:
- GPUProcess/graphics/QualifiedResourceHeap.h:
(WebKit::QualifiedResourceHeap::get const):
Do not assert here if the entry of the HashMap does not hold a variant
of the required type. We already return nullptr without assertion if there
is no entry for the required renderingResourceIdentifier. We should let
the caller decides what to do in the case of error.
LayoutTests:
- gpu-process/TestExpectations:
- 11:17 PM Changeset in webkit [287910] by
-
- 2 edits1 add in trunk/LayoutTests
[GLIB] Unreviewed test gardening, emit baseline for WPT test websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting.html
https://bugs.webkit.org/show_bug.cgi?id=235098
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/websockets/interfaces/WebSocket/bufferedAmount/bufferedAmount-getting-expected.txt: Added.
- 8:08 PM Changeset in webkit [287909] by
-
- 85 edits in trunk
Serialize CSS <number> values with rounding, limited decimal precision, and no exponents per-spec
LayoutTests/imported/w3c:
https://bugs.webkit.org/show_bug.cgi?id=218880
Reviewed by Darin Adler.
- web-platform-tests/css/css-cascade/revert-val-006-expected.txt:
- web-platform-tests/css/css-cascade/revert-val-007-expected.txt:
- web-platform-tests/css/css-easing/cubic-bezier-timing-functions-output-expected.txt:
- web-platform-tests/css/css-fonts/parsing/font-computed-expected.txt:
- web-platform-tests/css/css-fonts/variations/at-font-face-descriptors-expected.txt:
- web-platform-tests/css/css-masking/clip-path/interpolation-expected.txt:
- web-platform-tests/css/css-shapes/basic-shape-interpolation-expected.txt:
- web-platform-tests/css/css-transforms/2d-rotate-js-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-interpolation-001-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-interpolation-inline-value-expected.txt:
- web-platform-tests/css/css-transforms/animation/transform-matrix-composition-expected.txt:
- web-platform-tests/css/css-values/acos-asin-atan-atan2-serialize-expected.txt:
- web-platform-tests/css/css-values/calc-numbers-expected.txt:
- web-platform-tests/css/css-values/hypot-pow-sqrt-invalid-expected.txt:
- web-platform-tests/css/css-values/minmax-angle-serialize-expected.txt:
- web-platform-tests/css/css-values/minmax-number-computed-expected.txt:
- web-platform-tests/css/css-values/minmax-number-serialize-expected.txt:
- web-platform-tests/css/css-variables/variable-presentation-attribute-expected.txt:
- web-platform-tests/css/cssom/getComputedStyle-line-height-expected.txt:
- web-platform-tests/css/motion/animation/offset-rotate-interpolation-expected.txt:
- web-platform-tests/html/rendering/dimension-attributes-expected.txt:
- web-platform-tests/html/rendering/pixel-length-attributes-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/accumulation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/addition-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-001-expected.txt:
- web-platform-tests/web-animations/animation-model/animation-types/interpolation-per-property-002-expected.txt:
- web-platform-tests/web-animations/animation-model/keyframe-effects/effect-value-iteration-composite-operation-expected.txt:
Source/WebCore:
https://bugs.webkit.org/show_bug.cgi?id=218880
Reviewed by Darin Adler.
Serializes CSS numbers with up to a maximum of 6 decimal places, as required by CSSOM-1
https://www.w3.org/TR/cssom-1/#serialize-a-css-component-value
Introduces CSSUnitType::CSS_INTEGER to differentiate types that are explicitly integers, and uses the
new <number> serialization for CSS_NUMBER.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueForGridPosition):
(WebCore::counterToCSSValue):
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSPrimitiveValue.cpp:
(WebCore::isValidCSSUnitTypeForDoubleConversion):
(WebCore::isStringType):
(WebCore::CSSPrimitiveValue::cleanup):
(WebCore::CSSPrimitiveValue::doubleValueInternal const):
(WebCore::CSSPrimitiveValue::formatNumberValue const):
(WebCore::CSSPrimitiveValue::formatIntegerValue const):
(WebCore::CSSPrimitiveValue::unitTypeString):
(WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText const):
(WebCore::CSSPrimitiveValue::equals const):
- css/CSSPrimitiveValue.h:
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::operator short const):
(WebCore::CSSPrimitiveValue::operator unsigned short const):
(WebCore::CSSPrimitiveValue::operator int const):
(WebCore::CSSPrimitiveValue::operator unsigned const):
(WebCore::CSSPrimitiveValue::operator float const):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator LineClampValue const):
(WebCore::CSSPrimitiveValue::operator ColumnSpan const):
- css/CSSUnits.cpp:
(WebCore::unitCategory):
(WebCore::operator<<):
- css/CSSUnits.h:
- css/DeprecatedCSSOMPrimitiveValue.cpp:
(WebCore::DeprecatedCSSOMPrimitiveValue::primitiveType const):
- css/MediaQueryEvaluator.cpp:
(WebCore::doubleValue):
(WebCore::evaluateResolution):
(WebCore::devicePixelRatioEvaluate):
(WebCore::computeLength):
- css/MediaQueryExpression.cpp:
(WebCore::featureWithValidPositiveLength):
(WebCore::featureWithPositiveInteger):
(WebCore::featureWithPositiveNumber):
(WebCore::featureWithZeroOrOne):
(WebCore::MediaQueryExpression::MediaQueryExpression):
- css/StyleProperties.cpp:
(WebCore::StyleProperties::getPropertyValue const):
- css/calc/CSSCalcCategoryMapping.cpp:
(WebCore::calcUnitCategory):
(WebCore::calculationCategoryForCombination):
(WebCore::hasDoubleValue):
- css/calc/CSSCalcPrimitiveValueNode.cpp:
(WebCore::CSSCalcPrimitiveValueNode::isNumericValue const):
- css/parser/CSSParserImpl.cpp:
(WebCore::CSSParserImpl::consumeFontPaletteValuesRule):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeCounter):
(WebCore::consumeCounterStyleRange):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction):
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber):
- style/StyleBuilderConverter.h:
(WebCore::Style::BuilderConverter::createGridPosition):
Source/WTF:
https://bugs.webkit.org/show_bug.cgi?id=218880
Reviewed by Darin Adler.
Add new numberToCSSString and FormattedCSSNumber that handle converting a double into the format required by
CSS (unlimited number of digits before the decimal place, up to 6 decimal places, no trailing zeros.
- wtf/dtoa.cpp:
(WTF::truncateTrailingZeros):
(WTF::numberToFixedPrecisionString):
(WTF::numberToCSSString):
- wtf/dtoa.h:
- wtf/dtoa/double-conversion.cc:
- wtf/dtoa/double-conversion.h:
- wtf/text/StringConcatenateNumbers.h:
(WTF::FormattedCSSNumber::create):
(WTF::FormattedCSSNumber::length const):
(WTF::FormattedCSSNumber::buffer const):
(WTF::StringTypeAdapter<FormattedCSSNumber>::StringTypeAdapter):
(WTF::StringTypeAdapter<FormattedCSSNumber>::length const):
(WTF::StringTypeAdapter<FormattedCSSNumber>::is8Bit const):
(WTF::StringTypeAdapter<FormattedCSSNumber>::writeTo const):
LayoutTests:
https://bugs.webkit.org/show_bug.cgi?id=218880
Reviewed by Darin Adler.
- css3/calc/font-size-fractional-expected.txt:
- css3/calc/simplification-expected.txt:
- css3/color-filters/color-filter-parsing.html:
- css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
- css3/filters/backdrop/backdropfilter-property-computed-style.html:
- css3/filters/filter-property-computed-style-expected.txt:
- css3/filters/filter-property-computed-style.html:
- css3/filters/unprefixed-expected.txt:
- css3/filters/unprefixed.html:
- css3/scroll-snap/scroll-snap-property-computed-style-expected.txt:
- css3/scroll-snap/scroll-snap-property-computed-style.js:
- fast/css/calc-parsing-expected.txt:
- fast/css/calc-parsing-limits-expected.txt:
- fast/css/calc-parsing-limits.html:
- fast/css/calc-parsing.html:
- fast/css/calc-with-angle-time-frequency-expected.txt:
- fast/css/calc-with-angle-time-frequency.html:
- fast/css/large-value-csstext-expected.txt:
- fast/css/line-height-get-computed-style-expected.txt:
- fast/css/line-height-get-computed-style.html:
- fast/css/parsing-stroke-width-expected.txt:
- fast/css/round-trip-values-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles-expected.txt:
- media/modern-media-controls/macos-inline-media-controls/macos-inline-media-controls-volume-styles.html:
- platform/ios-wk2/imported/w3c/web-platform-tests/html/rendering/pixel-length-attributes-expected.txt:
- platform/ios/fast/forms/search/search-zoom-computed-style-height-expected.txt:
- svg/css/parse-height-expected.txt:
- svg/css/parse-height.html:
- svg/css/parse-length-expected.txt:
- svg/css/parse-length.html:
- transitions/frames-timing-function-expected.txt:
- 8:03 PM Changeset in webkit [287908] by
-
- 5 edits in trunk/Source
Update hashThreadState() to exclude opaque_flags.
https://bugs.webkit.org/show_bug.cgi?id=235081
rdar://86282584
Reviewed by Keith Miller.
Source/JavaScriptCore:
Removed some unused code.
- runtime/MachineContext.h:
(JSC::MachineContext::stackPointer):
(JSC::MachineContext::framePointer):
(JSC::MachineContext::instructionPointer):
(JSC::MachineContext::linkRegister):
(JSC::MachineContext::setStackPointer): Deleted.
(JSC::MachineContext::setFramePointer): Deleted.
(JSC::MachineContext::setLinkRegister): Deleted.
Source/WTF:
The opaque_flags may be used by the OS, and may be altered without our knowledge.
Hence, our hash should not include the opaque_flags field.
Also remove some unused code.
- wtf/PlatformRegisters.h:
- wtf/threads/Signals.cpp:
(WTF::hashThreadState):
- 8:01 PM Changeset in webkit [287907] by
-
- 4 edits in trunk
WebPageProxy destruction should not launch a network process
https://bugs.webkit.org/show_bug.cgi?id=235086
Reviewed by Alex Christensen.
Source/WebKit:
Inspired by a backtrace in rdar://86706412.
- UIProcess/WebPageProxy.cpp:
(WebKit::WebPageProxy::~WebPageProxy): No need to message the network
process requesting our removal if it doesn't exist.
Tools:
- TestWebKitAPI/Tests/WebKitCocoa/NetworkProcess.mm:
(TEST): Include WebView destruction in the test. Also do a little
run loop spinning, to give the test a better chance of failing when
async behavior does launch the Network process.
- 6:14 PM Changeset in webkit [287906] by
-
- 2 edits in trunk/Source/WebKit
Remove references to moved/deleted files in WebKit.xcodeproj
https://bugs.webkit.org/show_bug.cgi?id=235090
Reviewed by Yusuke Suzuki.
- WebKit.xcodeproj/project.pbxproj:
- 5:13 PM BuildingCairoOnWindows edited by
- (diff)
- 4:47 PM Changeset in webkit [287905] by
-
- 1 copy in tags/Safari-613.1.12.1.6
Tag Safari-613.1.12.1.6.
- 4:46 PM Changeset in webkit [287904] by
-
- 1 delete in tags/Safari-613.1.12.1.6
Delete tag.
- 3:48 PM Changeset in webkit [287903] by
-
- 13 edits in trunk
[Wasm] Unify memory import handling in module loader and JS cases
https://bugs.webkit.org/show_bug.cgi?id=234116
Patch by Asumu Takikawa <asumu@igalia.com> on 2022-01-11
Reviewed by Yusuke Suzuki.
JSTests:
Add an instantiation test case that tests that instantiating the same
binary module twice will not crash.
- wasm/js-api/web-assembly-instantiate.js:
(assert.asyncTest.async test):
(assert.asyncTest):
LayoutTests/imported/w3c:
Adjust Wasm WPT test expectations now that getter ordering tests
should pass.
- web-platform-tests/wasm/jsapi/constructor/instantiate.any-expected.txt:
- web-platform-tests/wasm/jsapi/constructor/instantiate.any.worker-expected.txt:
- web-platform-tests/wasm/jsapi/instance/constructor.any-expected.txt:
- web-platform-tests/wasm/jsapi/instance/constructor.any.worker-expected.txt:
- web-platform-tests/wasm/webapi/instantiateStreaming.any-expected.txt:
- web-platform-tests/wasm/webapi/instantiateStreaming.any.worker-expected.txt:
Source/JavaScriptCore:
Moves the memory import handling code to the Wasm module record and
use the strategy used by the module loader to handle memory in all
cases.
- wasm/WasmModule.cpp:
(JSC::Wasm::Module::copyInitialCalleeGroupToAllMemoryModes):
- wasm/js/JSWebAssemblyInstance.cpp:
(JSC::JSWebAssemblyInstance::finalizeCreation):
(JSC::JSWebAssemblyInstance::tryCreate):
- wasm/js/WebAssemblyModuleRecord.cpp:
(JSC::WebAssemblyModuleRecord::initializeImportsAndExports):
- 3:45 PM Changeset in webkit [287902] by
-
- 4 edits in branches/safari-613-branch/Source/ThirdParty/ANGLE
Cherry-pick r287894. rdar://problem/87417913
ANGLE: ASTC-HDR is not available on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235076
Reviewed by Dean Jackson.
<rdar://87384038>
This is a follow on patch to https://bugs.webkit.org/show_bug.cgi?id=234164,
ASTC-HDR is only available on macOS and iOS, not tvOS or watchOS
This patch fixes an internal build.
- scripts/code_generation_hashes/Metal_format_table.json:
- src/libANGLE/renderer/metal/gen_mtl_format_table.py: (gen_image_map_switch_astc_case_tv_watchos): (gen_image_map_switch_string): (gen_image_mtl_to_angle_switch_string): (gen_image_map_switch_astc_case_watchos): Deleted. (gen_image_map_switch_astc_case_watchos.gen_format_assign_code): Deleted.
- src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::MetalToAngleFormatID): (rx::mtl::Format::init):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287894 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:41 PM Changeset in webkit [287901] by
-
- 2 edits in trunk/Source/JavaScriptCore
[JSC] Fix kind of error thrown by wasm module creation
https://bugs.webkit.org/show_bug.cgi?id=235082
Reviewed by Michael Saboff.
It should throw WebAssembly.CompileError instead of WebAssembly.LinkError.
This fixes occasional failure in wasm imports-oom.js test.
- wasm/js/JSWebAssemblyModule.cpp:
(JSC::JSWebAssemblyModule::createStub):
- 3:38 PM Changeset in webkit [287900] by
-
- 3 edits in branches/safari-613.1.12.1-branch/Source/ThirdParty/ANGLE
Cherry-pick r287894. rdar://problem/87417913
ANGLE: ASTC-HDR is not available on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235076
Reviewed by Dean Jackson.
<rdar://87384038>
This is a follow on patch to https://bugs.webkit.org/show_bug.cgi?id=234164,
ASTC-HDR is only available on macOS and iOS, not tvOS or watchOS
This patch fixes an internal build.
- scripts/code_generation_hashes/Metal_format_table.json:
- src/libANGLE/renderer/metal/gen_mtl_format_table.py: (gen_image_map_switch_astc_case_tv_watchos): (gen_image_map_switch_string): (gen_image_mtl_to_angle_switch_string): (gen_image_map_switch_astc_case_watchos): Deleted. (gen_image_map_switch_astc_case_watchos.gen_format_assign_code): Deleted.
- src/libANGLE/renderer/metal/mtl_format_table_autogen.mm: (rx::mtl::Format::MetalToAngleFormatID): (rx::mtl::Format::init):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287894 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:25 PM Changeset in webkit [287899] by
-
- 2 edits in trunk/Source/WebCore
DataURLResourceMediaLoader decodes the URL repeatedly during a video playback
https://bugs.webkit.org/show_bug.cgi?id=234940
Reviewed by Darin Adler.
In r264864, we adopted a new SPI to tell AVFoundation that the entire file is available for custom URLs.
As a result, during a video playback, AVFoundation will request small data ranges instead of "caching"
the whole file again.
However, that leads to efficiency issue for DataURLResourceMediaLoader. Because it needs to decode the whole
URL when AVFoundation requests a data range, which is inefficient when the URL is very long.
This patch reverts the change in r264864 for the DataURLResourceMediaLoader case to fix the performance issue.
If DataURLDecoder::decode() supports decoding a data range in the future, we can change it back for better
memory efficiency.
- platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
(WebCore::WebCoreAVFResourceLoader::responseReceived):
- 3:17 PM Changeset in webkit [287898] by
-
- 14 edits in trunk/LayoutTests
Rewrite touch and drag tests to be more robust.
https://bugs.webkit.org/show_bug.cgi?id=235057
rdar://86035420
Reviewed by Wenson Hsieh.
Rewrite the touch-and-drag tests to check for selection changes, not specific text selections.
Specific selections and subject to small changes in font and layout, and all that is actually important is that
there have been selection changes based off of dragged touches.
The touch-event-radius test has been updated to use the screen size directly, since the radius is scaled by the screen size
internally. The output has been changed to not need to be updated when the test phone changes.
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text-expected.txt:
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-down-to-change-selected-text.html:
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text-expected.txt:
- fast/events/touch/ios/double-tap-on-editable-content-for-selection-then-drag-up-to-change-selected-text.html:
- fast/events/touch/ios/long-press-on-editable-content-then-drag-up-to-change-selected-text.html:
- fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text-expected.txt:
- fast/events/touch/ios/long-press-then-drag-down-to-change-selected-text.html:
- fast/events/touch/ios/long-press-then-drag-to-select-text-expected.txt:
- fast/events/touch/ios/long-press-then-drag-to-select-text.html:
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text-expected.txt:
- fast/events/touch/ios/long-press-then-drag-up-to-change-selected-text.html:
- fast/events/touch/ios/touch-event-radius-expected.txt:
- fast/events/touch/ios/touch-event-radius.html:
- 2:52 PM Changeset in webkit [287897] by
-
- 1 copy in tags/Safari-613.1.12.1.6
Tag Safari-613.1.12.1.6.
- 2:44 PM Changeset in webkit [287896] by
-
- 7 edits in trunk
css/css-transitions/KeyframeEffect-setKeyframes.tentative.html is a failure (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235077
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progression, this test now passes entirely.
- web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:
Source/WebCore:
There were a few issues that prevented the final subtest in this WPT from passing
after the fix made in bug 235062.
First, while we must flush pending style changes for some of the Web Animations APIs
when called on a style-originated animation (CSS Transition or CSS Animation), this
should not apply to setters, only getters. In the context of this test, it was critical
that either setting keyframes or setting the current time not force pending style changes
to be flushed or a reversing CSS Transition may be started too soon and the test would
fail.
Second, when the spec says to use the "the current value of the property in the running
transition", it is equivalent to using the before-change style since we updated the
current value of all animations targeting this element, not getting the value from the
last time this transition was resolved since this would not account for any API calls
or style changes since then, which is precisely what this test is checking.
- animation/DeclarativeAnimation.cpp:
(WebCore::DeclarativeAnimation::setBindingsStartTime): Deleted.
(WebCore::DeclarativeAnimation::setBindingsCurrentTime): Deleted.
- animation/DeclarativeAnimation.h:
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setBindingsKeyframes):
- style/Styleable.cpp:
(WebCore::updateCSSTransitionsForStyleableAndProperty):
- 1:57 PM Changeset in webkit [287895] by
-
- 2 edits in trunk/Source/WebKit
[Cocoa] Inspector Extensions: tabIconURLs with custom scheme URLs are incorrectly loaded
https://bugs.webkit.org/show_bug.cgi?id=235045
<rdar://problem/87357027>
Reviewed by Darin Adler.
- UIProcess/API/Cocoa/_WKInspectorExtension.mm:
(-[_WKInspectorExtension createTabWithName:tabIconURL:sourceURL:completionHandler:]):
Construct a WTF::URL from the .baseURL and the .relativePath of the NSURL.
- 1:49 PM Changeset in webkit [287894] by
-
- 4 edits in trunk/Source/ThirdParty/ANGLE
ANGLE: ASTC-HDR is not available on TVOS
https://bugs.webkit.org/show_bug.cgi?id=235076
Reviewed by Dean Jackson.
<rdar://87384038>
This is a follow on patch to https://bugs.webkit.org/show_bug.cgi?id=234164,
ASTC-HDR is only available on macOS and iOS, not tvOS or watchOS
This patch fixes an internal build.
- scripts/code_generation_hashes/Metal_format_table.json:
- src/libANGLE/renderer/metal/gen_mtl_format_table.py:
(gen_image_map_switch_astc_case_tv_watchos):
(gen_image_map_switch_string):
(gen_image_mtl_to_angle_switch_string):
(gen_image_map_switch_astc_case_watchos): Deleted.
(gen_image_map_switch_astc_case_watchos.gen_format_assign_code): Deleted.
- src/libANGLE/renderer/metal/mtl_format_table_autogen.mm:
(rx::mtl::Format::MetalToAngleFormatID):
(rx::mtl::Format::init):
- 1:36 PM Changeset in webkit [287893] by
-
- 1 edit1 delete in trunk/LayoutTests
Remove ios-wk1 test expectations
https://bugs.webkit.org/show_bug.cgi?id=232582
Reviewed by Darin Adler.
- platform/ios-wk1: Removed.
- 12:30 PM Changeset in webkit [287892] by
-
- 54 edits in trunk/Source/WebCore
[GPU Process] Remove the dependency from FilterEffect to its inputs
https://bugs.webkit.org/show_bug.cgi?id=232841
rdar://85425930
Reviewed by Darin Adler.
This is the last clean-up in the FilterEffect code. It will make the
FilterEffect objects in the GPUProcess resemble exactly their counterpart
ones in the WebProcess from now on.
For CSSFilter, we do not need to set the input effects because every
FilterFunction is the input of its successor. Passing the previous result
FilterImage to the apply() method of the current FilterFunction is enough
to get the filter applied correctly.
For SVGFilter, we need the filter effect inputs only when building the
SVGFilterExpression. So we can build a HashMap in SVGFilterBuilder which
maps a FilterEffect to its input FilterEffectVector. To make the change
clearer, the SVGFExxxElement classes will implement two methods:
- filterEffectInputsNames() which returns the names of the input FilterEffects.
- filterEffect() which returns the FilterEffect representing this element.
SVGFilterBuilder::buildFilterEffects() converts the names to FilterEffects.
No need to initialize the SourceGraphic of the referenced SVGFilter with
the FilterEffect of its previous FilterFunction. The referenced SVGFilter
will create its own native SourceGraphic. This SourceGraphic will copy
the input FilterImage to the result FilterImage.
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::inputEffect const): Deleted.
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::inputEffects): Deleted.
- platform/graphics/filters/SourceAlpha.cpp:
(WebCore::SourceAlpha::create):
(WebCore::SourceAlpha::SourceAlpha):
- platform/graphics/filters/SourceAlpha.h:
- rendering/CSSFilter.cpp:
(WebCore::createSVGFilter):
(WebCore::CSSFilter::buildFilterFunctions):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGResourceContainer):
- svg/SVGFEBlendElement.cpp:
(WebCore::SVGFEBlendElement::filterEffect const):
(WebCore::SVGFEBlendElement::build const): Deleted.
- svg/SVGFEBlendElement.h:
- svg/SVGFEColorMatrixElement.cpp:
(WebCore::SVGFEColorMatrixElement::filterEffect const):
(WebCore::SVGFEColorMatrixElement::build const): Deleted.
- svg/SVGFEColorMatrixElement.h:
- svg/SVGFEComponentTransferElement.cpp:
(WebCore::SVGFEComponentTransferElement::filterEffect const):
(WebCore::SVGFEComponentTransferElement::build const): Deleted.
- svg/SVGFEComponentTransferElement.h:
- svg/SVGFECompositeElement.cpp:
(WebCore::SVGFECompositeElement::filterEffect const):
(WebCore::SVGFECompositeElement::build const): Deleted.
- svg/SVGFECompositeElement.h:
- svg/SVGFEConvolveMatrixElement.cpp:
(WebCore::SVGFEConvolveMatrixElement::filterEffect const):
(WebCore::SVGFEConvolveMatrixElement::build const): Deleted.
- svg/SVGFEConvolveMatrixElement.h:
- svg/SVGFEDiffuseLightingElement.cpp:
(WebCore::SVGFEDiffuseLightingElement::filterEffect const):
(WebCore::SVGFEDiffuseLightingElement::build const): Deleted.
- svg/SVGFEDiffuseLightingElement.h:
- svg/SVGFEDisplacementMapElement.cpp:
(WebCore::SVGFEDisplacementMapElement::filterEffect const):
(WebCore::SVGFEDisplacementMapElement::build const): Deleted.
- svg/SVGFEDisplacementMapElement.h:
- svg/SVGFEDistantLightElement.cpp:
(WebCore::SVGFEDistantLightElement::lightSource const):
- svg/SVGFEDistantLightElement.h:
- svg/SVGFEDropShadowElement.cpp:
(WebCore::SVGFEDropShadowElement::filterEffect const):
(WebCore::SVGFEDropShadowElement::build const): Deleted.
- svg/SVGFEDropShadowElement.h:
- svg/SVGFEFloodElement.cpp:
(WebCore::SVGFEFloodElement::filterEffect const):
(WebCore::SVGFEFloodElement::build const): Deleted.
- svg/SVGFEFloodElement.h:
- svg/SVGFEGaussianBlurElement.cpp:
(WebCore::SVGFEGaussianBlurElement::filterEffect const):
(WebCore::SVGFEGaussianBlurElement::build const): Deleted.
- svg/SVGFEGaussianBlurElement.h:
- svg/SVGFEImageElement.cpp:
(WebCore::SVGFEImageElement::filterEffect const):
(WebCore::SVGFEImageElement::build const): Deleted.
- svg/SVGFEImageElement.h:
- svg/SVGFELightElement.h:
- svg/SVGFEMergeElement.cpp:
(WebCore::SVGFEMergeElement::filterEffectInputsNames const):
(WebCore::SVGFEMergeElement::filterEffect const):
(WebCore::SVGFEMergeElement::build const): Deleted.
- svg/SVGFEMergeElement.h:
- svg/SVGFEMorphologyElement.cpp:
(WebCore::SVGFEMorphologyElement::filterEffect const):
(WebCore::SVGFEMorphologyElement::build const): Deleted.
- svg/SVGFEMorphologyElement.h:
- svg/SVGFEOffsetElement.cpp:
(WebCore::SVGFEOffsetElement::filterEffect const):
(WebCore::SVGFEOffsetElement::build const): Deleted.
- svg/SVGFEOffsetElement.h:
- svg/SVGFEPointLightElement.cpp:
(WebCore::SVGFEPointLightElement::lightSource const):
- svg/SVGFEPointLightElement.h:
- svg/SVGFESpecularLightingElement.cpp:
(WebCore::SVGFESpecularLightingElement::filterEffect const):
(WebCore::SVGFESpecularLightingElement::build const): Deleted.
- svg/SVGFESpecularLightingElement.h:
- svg/SVGFESpotLightElement.cpp:
(WebCore::SVGFESpotLightElement::lightSource const):
- svg/SVGFESpotLightElement.h:
- svg/SVGFETileElement.cpp:
(WebCore::SVGFETileElement::filterEffect const):
(WebCore::SVGFETileElement::build const): Deleted.
- svg/SVGFETileElement.h:
- svg/SVGFETurbulenceElement.cpp:
(WebCore::SVGFETurbulenceElement::filterEffect const):
(WebCore::SVGFETurbulenceElement::build const): Deleted.
- svg/SVGFETurbulenceElement.h:
- svg/SVGFilterPrimitiveStandardAttributes.h:
(WebCore::SVGFilterPrimitiveStandardAttributes::filterEffectInputsNames const):
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::create):
- svg/graphics/filters/SVGFilter.h:
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::setupBuiltinEffects):
(WebCore::SVGFilterBuilder::buildFilterEffects):
(WebCore::SVGFilterBuilder::sourceGraphic const):
(WebCore::SVGFilterBuilder::sourceAlpha const):
(WebCore::SVGFilterBuilder::addNamedEffect):
(WebCore::SVGFilterBuilder::namedEffect const):
(WebCore::SVGFilterBuilder::namedEffects const):
(WebCore::SVGFilterBuilder::setEffectInputs):
(WebCore::SVGFilterBuilder::buildEffectExpression const):
(WebCore::SVGFilterBuilder::add): Deleted.
(WebCore::SVGFilterBuilder::getEffectById const): Deleted.
- svg/graphics/filters/SVGFilterBuilder.h:
- 10:53 AM Changeset in webkit [287891] by
-
- 7 edits in trunk
REGRESSION (r283723): Web Inspector: CSS declarations unexpectedly removed when editing property value
https://bugs.webkit.org/show_bug.cgi?id=233195
Reviewed by Devin Rousso.
Source/WebInspectorUI:
Re-attach CSS property if it was detached while editing.
CSSProperty is detached when focusing on property name and deleting it. Consequent edits of the detached
CSSProperty were not saved. This patch re-attaches detached property at the previous position.
- UserInterface/Models/CSSProperty.js:
(WI.CSSProperty.prototype.set name):
- UserInterface/Models/CSSStyleDeclaration.js:
(WI.CSSStyleDeclaration.prototype.newBlankProperty):
(WI.CSSStyleDeclaration.prototype.insertProperty):
Introduce this method since the logic is used in two different places now.
LayoutTests:
Test removing CSS property name.
- inspector/css/modify-css-property-expected.txt:
- inspector/css/modify-css-property.html:
- inspector/css/resources/modify-css-property.css:
(.rule-e):
- 10:46 AM Changeset in webkit [287890] by
-
- 1 copy in tags/Safari-613.1.12.4
Tag Safari-613.1.12.4.
- 10:43 AM Changeset in webkit [287889] by
-
- 3 edits in trunk/Source/WebCore
Use the new template ColorSpaceCG helpers to cleanup some code
https://bugs.webkit.org/show_bug.cgi?id=235034
Reviewed by Cameron McCormack.
Utilize the new template helpers in ColorSpaceCG.h to remove some #ifdefs.
- platform/graphics/cg/ColorCG.cpp:
(WebCore::cachedCGColorTransform):
Add a singleton for this transform since it is always the same.
(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):
(WebCore::convertToCGCompatibleComponents):
(WebCore::createCGColor):
(WebCore::platformConvertColorComponents):
Replace #ifdefs with constexpr checking of HasCGColorSpaceMapping<>. Also switch
some c-style arrays to std::array for consistency with the rest of the codebase.
- platform/graphics/cg/GradientRendererCG.cpp:
(WebCore::classifyAlphaType):
Make constexpr (feedback from a previous change).
(WebCore::GradientRendererCG::makeGradient const):
(WebCore::GradientRendererCG::Shading::shadingFunction):
(WebCore::GradientRendererCG::makeShading const):
Replace #ifdefs with constexpr checking of HasCGColorSpaceMapping<>.
- 10:31 AM Changeset in webkit [287888] by
-
- 6 edits1 add in branches/safari-613.1.12-branch/Source
Cherry-pick r287884. rdar://problem/87206692
Fixed installhdr build failures in WebCore and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=235059
Reviewed by Filip Pizlo.
Source/WebCore:
Reworked how SYSTEM_CONTENT_PATH is added to values to the minimum that is required for the build system.
Before this change, SYSTEM_CONTENT_PATH was added twice to some configuration variables due to is
incorrectly being added to NORMAL_WEBCORE_FRAMEWORKS_DIR.
Also refactored the computation of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR to use the newly added
INSTALL_PATH_PREFIX value.
- Configurations/WebCore.xcconfig:
Source/WebKitLegacy:
On iOS, we need to create symbolic links for WebKitLegacy when using the SYSTEM_CONTENT_PATH.
Copied the creation script to the project and updated the configuration file accordingly.
- WebKitLegacy.xcodeproj/project.pbxproj:
- scripts/create-symlink-to-altroot.sh: Added.
Source/WebKitLegacy/mac:
Refactored how INSTALL_PATH is calculated to simplify the logic for the macOS / iOS
location difference for the WebKitLegacy framework. In WebKitLegacy.xcconfig, that
required changing NORMAL_PRODUCTION_FRAMEWORKS_DIR.
Added the configuration values, ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH, for
iOS builds to drive the newly added create symlinks script.
Did the same rework as in WebCore configuration to eliminate using SYSTEM_CONTENT_PATH
twice for some paths.
- Configurations/WebKitLegacy.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287884 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:30 AM Changeset in webkit [287887] by
-
- 9 edits in branches/safari-613.1.12-branch/Source
Versioning.
WebKit-7613.1.12.4
- 10:16 AM Changeset in webkit [287886] by
-
- 6 edits1 add in branches/safari-613-branch/Source
Cherry-pick r287884. rdar://problem/87206692
Fixed installhdr build failures in WebCore and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=235059
Reviewed by Filip Pizlo.
Source/WebCore:
Reworked how SYSTEM_CONTENT_PATH is added to values to the minimum that is required for the build system.
Before this change, SYSTEM_CONTENT_PATH was added twice to some configuration variables due to is
incorrectly being added to NORMAL_WEBCORE_FRAMEWORKS_DIR.
Also refactored the computation of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR to use the newly added
INSTALL_PATH_PREFIX value.
- Configurations/WebCore.xcconfig:
Source/WebKitLegacy:
On iOS, we need to create symbolic links for WebKitLegacy when using the SYSTEM_CONTENT_PATH.
Copied the creation script to the project and updated the configuration file accordingly.
- WebKitLegacy.xcodeproj/project.pbxproj:
- scripts/create-symlink-to-altroot.sh: Added.
Source/WebKitLegacy/mac:
Refactored how INSTALL_PATH is calculated to simplify the logic for the macOS / iOS
location difference for the WebKitLegacy framework. In WebKitLegacy.xcconfig, that
required changing NORMAL_PRODUCTION_FRAMEWORKS_DIR.
Added the configuration values, ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH, for
iOS builds to drive the newly added create symlinks script.
Did the same rework as in WebCore configuration to eliminate using SYSTEM_CONTENT_PATH
twice for some paths.
- Configurations/WebKitLegacy.xcconfig:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287884 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:58 AM Changeset in webkit [287885] by
-
- 4 edits in branches/safari-613.1.12.1-branch
Cherry-pick r287360. rdar://problem/86743595
[WebAuthn] Set Web Authentication experimental feature flag as default true
https://bugs.webkit.org/show_bug.cgi?id=234533
<rdar://problem/86743595>
Reviewed by Brent Fulgham.
Source/WTF:
The Web Authentication feature has been shipping for a while. Default value
for experimental feature flag should be true.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
Tools:
The Web Authentication feature has been shipping for a while. Default value for
experimental feature flag should be true.
- TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST): (TestWebKitAPI::WebCore::webAuthenticationExperimentalFeature): Deleted.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287360 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:55 AM Changeset in webkit [287884] by
-
- 6 edits1 add in trunk/Source
Fixed installhdr build failures in WebCore and WebKitLegacy
https://bugs.webkit.org/show_bug.cgi?id=235059
Reviewed by Filip Pizlo.
Source/WebCore:
Reworked how SYSTEM_CONTENT_PATH is added to values to the minimum that is required for the build system.
Before this change, SYSTEM_CONTENT_PATH was added twice to some configuration variables due to is
incorrectly being added to NORMAL_WEBCORE_FRAMEWORKS_DIR.
Also refactored the computation of JAVASCRIPTCORE_PRIVATE_HEADERS_DIR to use the newly added
INSTALL_PATH_PREFIX value.
- Configurations/WebCore.xcconfig:
Source/WebKitLegacy:
On iOS, we need to create symbolic links for WebKitLegacy when using the SYSTEM_CONTENT_PATH.
Copied the creation script to the project and updated the configuration file accordingly.
- WebKitLegacy.xcodeproj/project.pbxproj:
- scripts/create-symlink-to-altroot.sh: Added.
Source/WebKitLegacy/mac:
Refactored how INSTALL_PATH is calculated to simplify the logic for the macOS / iOS
location difference for the WebKitLegacy framework. In WebKitLegacy.xcconfig, that
required changing NORMAL_PRODUCTION_FRAMEWORKS_DIR.
Added the configuration values, ALTERNATE_ROOT_PATH and OUTPUT_ALTERNATE_ROOT_PATH, for
iOS builds to drive the newly added create symlinks script.
Did the same rework as in WebCore configuration to eliminate using SYSTEM_CONTENT_PATH
twice for some paths.
- Configurations/WebKitLegacy.xcconfig:
- 9:50 AM Changeset in webkit [287883] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.6
- 9:43 AM Changeset in webkit [287882] by
-
- 18 edits8 copies66 adds2 deletes in trunk/LayoutTests
[CSS contain] Update css-contain tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=235060
Patch by Rob Buis <rbuis@igalia.com> on 2022-01-11
Reviewed by Manuel Rego Casasnovas.
LayoutTests/imported/w3c:
Update css/css-contain/ tests to commit 5d1525416b.
- resources/resource-files.json:
- web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-001-expected.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-001.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-002-expected.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-bfc-floats-002.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-fieldset-expected.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-fieldset.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-flex-expected.xht: Added.
- web-platform-tests/css/css-contain/contain-inline-size-flex.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-flexitem-expected.xht: Added.
- web-platform-tests/css/css-contain/contain-inline-size-flexitem.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-grid-expected.xht: Added.
- web-platform-tests/css/css-contain/contain-inline-size-grid.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-legend-expected.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-legend.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-multicol-expected.xht: Added.
- web-platform-tests/css/css-contain/contain-inline-size-multicol.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-regular-container-expected.xht: Added.
- web-platform-tests/css/css-contain/contain-inline-size-regular-container.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-table-expected.xht: Added.
- web-platform-tests/css/css-contain/contain-inline-size-table.html: Added.
- web-platform-tests/css/css-contain/contain-inline-size-vertical-rl--expected.xht: Added.
- web-platform-tests/css/css-contain/contain-inline-size-vertical-rl-.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-026-expected.txt:
- web-platform-tests/css/css-contain/content-visibility/content-visibility-026.html:
- web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html:
- web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html:
- web-platform-tests/css/css-contain/content-visibility/content-visibility-056.html:
- web-platform-tests/css/css-contain/content-visibility/content-visibility-059-expected.html: Removed.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-059.html: Removed.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-082-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-082.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-083-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-083.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-084-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-084.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-055.html.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-hit-test-contents-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-img-expected.txt: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-img.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-in-svg-000-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-input-image-expected.txt: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-input-image.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-svg-expected.txt: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-svg.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-000.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-000.tentative.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-001.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-001.tentative.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-002.tentative-expected.html: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-contain/content-visibility/content-visibility-056-expected.html.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-002.tentative.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-003.tentative-expected.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-003.tentative.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-004.tentative-expected.html: Added.
- web-platform-tests/css/css-contain/content-visibility/content-visibility-with-top-layer-004.tentative.html: Added.
- web-platform-tests/css/css-contain/content-visibility/contentvisibility-nestedslot-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/document-element-computed-style-expected.txt: Added.
- web-platform-tests/css/css-contain/content-visibility/document-element-computed-style.html: Added.
- web-platform-tests/css/css-contain/content-visibility/hidden-execcommand-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/hidden-pseudo-element-removed-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/meter-selection-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/resources/slot-content-visibility.html: Added.
- web-platform-tests/css/css-contain/content-visibility/resources/w3c-import.log:
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-1-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-10-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-11-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-12-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-13-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-14-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-15-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-16-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-17-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-18-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-19-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-2-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-20-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-21-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-3-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-4-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-5-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-6-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-7-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-8-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/slot-content-visibility-9-crash.html: Added.
- web-platform-tests/css/css-contain/content-visibility/w3c-import.log:
- web-platform-tests/css/css-contain/parsing/contain-computed-expected.txt:
- web-platform-tests/css/css-contain/parsing/contain-computed.html:
- web-platform-tests/css/css-contain/parsing/contain-invalid-expected.txt:
- web-platform-tests/css/css-contain/parsing/contain-invalid.html:
- web-platform-tests/css/css-contain/parsing/contain-valid-expected.txt:
- web-platform-tests/css/css-contain/parsing/contain-valid.html:
- web-platform-tests/css/css-contain/w3c-import.log:
LayoutTests:
- 8:20 AM Changeset in webkit [287881] by
-
- 5 edits in trunk
css/css-transitions/KeyframeEffect-setKeyframes.tentative.html is a failure
https://bugs.webkit.org/show_bug.cgi?id=235062
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-transitions/KeyframeEffect-setKeyframes.tentative-expected.txt:
Source/WebCore:
The WPT at css/css-transitions/KeyframeEffect-setKeyframes.tentative.html, which checks
the behavior of programmatically changing keyframes for a CSS Transition, highlighted
three failures:
- we did not flush pending style changes as setKeyframes() was called for an animation created fromm CSS (CSS Transition or CSS Animation),
- we did not use the style from the last style update to computed the before-change style if available, but rather the computed style generated _after_ the last style update,
- we did not apply _all_ animations as we compute the before-change style to consider new transitions to run, but only animations matching the current property.
We've corrected all of those errors and this test now passes save for one failure, which
seems to be a different type of problem and will be looked at in a future patch.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::setBindingsKeyframes):
- style/Styleable.cpp:
(WebCore::updateCSSTransitionsForStyleableAndProperty):
- 7:44 AM Changeset in webkit [287880] by
-
- 2 edits in trunk/Source/WebCore
Make [WebAccessibilityObjectWrapperBase axBackingObject] return the appropriate underlying object for the calling thread.
https://bugs.webkit.org/show_bug.cgi?id=235046
<rdar://problem/87358177>
Reviewed by Chris Fleizach.
In isolated tree mode, WebAccessibilityObjectWrapperBase axBackingObject
can be called on and off the main thread. This change ensures that the
AXIsolatedObject is always returned off the main thread, while the
AXObejct is always returned on the main thread, which is the required
behavior.
- accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
(-[WebAccessibilityObjectWrapperBase axBackingObject]):
- 7:41 AM Changeset in webkit [287879] by
-
- 6 edits in trunk/Source
Remove AppleTV specific disabling of conic gradients, its not necessary
https://bugs.webkit.org/show_bug.cgi?id=235041
Reviewed by Darin Adler.
Source/WebCore:
There doesn't seem to be any reason to disable conic gradients on AppleTV. We do still
need to disable it on windows, but rather than hard coding this in WebCore, use a new
HAVE macro to conditionalize the code.
- platform/graphics/cg/GradientCG.cpp:
(WebCore::Gradient::paint):
- platform/graphics/cg/GradientRendererCG.cpp:
(WebCore::GradientRendererCG::drawConicGradient):
Source/WTF:
Add HAVE_CORE_GRAPHICS_CONIC_GRADIENTS macro and use it to control ENABLE_CSS_CONIC_GRADIENTS.
- wtf/PlatformEnableCocoa.h:
- wtf/PlatformHave.h:
- 7:18 AM Changeset in webkit [287878] by
-
- 5 edits1 copy in trunk
::backdrop pseudo element should react to associated element event listeners
https://bugs.webkit.org/show_bug.cgi?id=233072
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
Update test expectations.
- web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt:
Source/WebCore:
Test: imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events.html
We now append the ::backdrop renderer as a child of the top layer element, rather than a sibling of the
top layer element. This gets hit testing working properly for free.
We used to append the ::backdrop renderer as a sibling to get the proper layout, but this is no longer
necessary after r287683 and r287845.
- rendering/updating/RenderTreeUpdaterGeneratedContent.cpp:
(WebCore::RenderTreeUpdater::GeneratedContent::updateBackdropRenderer):
LayoutTests:
iOS failure is due to WPT test_driver actions being unsupported.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/backdrop-receives-element-events-expected.txt: Added.
- 6:43 AM Changeset in webkit [287877] by
-
- 19 edits in trunk/Source
Non-unified build fixes, early January 2022 edition
https://bugs.webkit.org/show_bug.cgi?id=235013
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- wasm/js/JSWebAssemblyModule.cpp: Add missing JSWebAssemblyLinkError.h header.
- wasm/js/JSWebAssemblyModule.h: Add missing forward declaration for the
JSC::OptimizingCallLinkInfo type.
Source/WebCore:
No new tests needed.
- Modules/fetch/FetchBodyConsumer.cpp: Add missing FormData.h header.
- Modules/fetch/FormDataConsumer.h: Add missing ExceptionOr.h header, and forward
declaration for the WebCore::ScriptExecutionContext type.
- animation/CSSAnimation.cpp: Add missing KeyframeEffect.h header.
- animation/KeyframeEffect.cpp: Add missing StyledElement.h header.
- html/HTMLFormElement.cpp: Add missing PseudoClassChangeInvalidation.h header.
- platform/network/SynchronousLoaderClient.cpp: Add missing SharedBuffer.h header.
- rendering/svg/RenderSVGBlock.cpp: Add missing SVGRenderSupport.h header.
- rendering/svg/RenderSVGForeignObject.cpp: Ditto.
- rendering/svg/RenderSVGInline.cpp: Ditto.
- rendering/svg/RenderSVGModelObject.cpp: Add missing SVGElementInlines.h header.
- rendering/svg/SVGInlineTextBox.cpp: Add missing FloatConversion.h header.
- svg/SVGViewElement.cpp: Add missing RenderElement.h header.
- workers/service/context/ServiceWorkerFetch.h: Add missing forward declaration for the
WebCore::SharedBuffer type, remove unused one for WebCore::FragmentedSharedBuffer.
Source/WebKit:
- Platform/IPC/SharedBufferCopy.cpp: Add missing WebCoreArgumentCoders.h header, remove now
unneeded ArgumentCoders.h header.
- 6:07 AM Changeset in webkit [287876] by
-
- 24 edits in trunk
[GTK][a11y] Web process crashes in some sites having SVG images
https://bugs.webkit.org/show_bug.cgi?id=234737
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Unfortunately the changes in r287388 are not enough, it can still happen that root hasn't been set to the
SVGImage page when the wrappers are created. So, we can't actually create the wrappers with a reference to the
root object as we did in r286767. In most of the cases wrappers use the root just to get AccessibilityAtspi,
which is not a singleton, but it's created and owned by the web process singleton at startup, so it can be
accessed globaly. This patch makes AccessibilityAtspi a singleton to get the global instance without having to
keep a reference in the root object.
- accessibility/AccessibilityRenderObject.cpp:
(WebCore::AccessibilityRenderObject::remoteSVGRootElement const): Move the code to set the root in SVGImage page
before the remote svg wrapper is created.
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::attachWrapper): Just pass the page root object to the wrapper constructor, that now
receives a pointer that might be nullptr.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::AccessibilityAtspi): Just create the WorkQueue.
(WebCore::AccessibilityAtspi::singleton): Return a reference to the global instance.
(WebCore::AccessibilityAtspi::connect): Connect to the given dbus address.
(WebCore::AccessibilityAtspi::applicationReference const): This allows wrappers to get the application reference
without having to check if m_root is nullptr or not.
(WebCore::AccessibilityAtspi::parentChanged): Use AccessibilityObjectAtspi::isTreeRegistered()
(WebCore::AccessibilityAtspi::childrenChanged): Ditto.
- accessibility/atspi/AccessibilityAtspi.h:
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::create): Receive a AccessibilityRootAtspi pointer instead of reference.
(WebCore::AccessibilityObjectAtspi::AccessibilityObjectAtspi): Ditto.
(WebCore::AccessibilityObjectAtspi::cacheDestroyed): Only call AccessibilityRootAtspi::childRemoved if parent is
the root object.
(WebCore::AccessibilityObjectAtspi::elementDestroyed): Null check m_root and use AccessibilityAtspi::singleton().
(WebCore::AccessibilityObjectAtspi::root): Get the root if already set or try to get it from the page.
(WebCore::AccessibilityObjectAtspi::isTreeRegistered const): Return try if root has been set and its tree has
been registered.
(WebCore::AccessibilityObjectAtspi::registerObject): Use AccessibilityObjectAtspi::root().
(WebCore::AccessibilityObjectAtspi::reference): Use AccessibilityAtspi::singleton().
(WebCore::AccessibilityObjectAtspi::hyperlinkReference): Ditto.
(WebCore::AccessibilityObjectAtspi::setParent): Return early also if root hasn't been set yet.
(WebCore::AccessibilityObjectAtspi::parentReference const): Use AccessibilityAtspi::singleton().
(WebCore::AccessibilityObjectAtspi::serialize const): Ditto.
(WebCore::AccessibilityObjectAtspi::childAdded): Ditto.
(WebCore::AccessibilityObjectAtspi::childRemoved): Ditto.
(WebCore::AccessibilityObjectAtspi::stateChanged): Ditto.
(WebCore::AccessibilityObjectAtspi::loadEvent): Ditto.
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityObjectComponentAtspi.cpp:
- accessibility/atspi/AccessibilityObjectHyperlinkAtspi.cpp:
- accessibility/atspi/AccessibilityObjectHypertextAtspi.cpp:
- accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::selectionChanged): Ditto.
- accessibility/atspi/AccessibilityObjectTableAtspi.cpp:
- accessibility/atspi/AccessibilityObjectTableCellAtspi.cpp:
- accessibility/atspi/AccessibilityObjectTextAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::textInserted): Ditto.
(WebCore::AccessibilityObjectAtspi::textDeleted): Ditto.
(WebCore::AccessibilityObjectAtspi::selectionChanged): Ditto.
(WebCore::AccessibilityObjectAtspi::textAttributesChanged): Ditto.
- accessibility/atspi/AccessibilityObjectValueAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::valueChanged): Ditto.
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::create): Remove AccessibilityAtspi parameter.
(WebCore::AccessibilityRootAtspi::AccessibilityRootAtspi): Ditto.
(WebCore::AccessibilityRootAtspi::registerObject): Use AccessibilityAtspi::singleton().
(WebCore::AccessibilityRootAtspi::unregisterObject): Ditto
(WebCore::AccessibilityRootAtspi::embedded): Ditto.
(WebCore::AccessibilityRootAtspi::applicationReference const): Ditto.
(WebCore::AccessibilityRootAtspi::reference const): Ditto.
(WebCore::AccessibilityRootAtspi::childAdded): Ditto.
(WebCore::AccessibilityRootAtspi::childRemoved): Ditto.
(WebCore::AccessibilityRootAtspi::serialize const): Ditto.
- accessibility/atspi/AccessibilityRootAtspi.h:
Source/WebKit:
Use AccessibilityAtspi::singleton().
- WebProcess/WebPage/gtk/WebPageGtk.cpp:
(WebKit::WebPage::platformInitialize):
- WebProcess/WebProcess.h:
(WebKit::WebProcess::accessibilityAtspi const): Deleted.
- WebProcess/glib/WebProcessGLib.cpp:
(WebKit::WebProcess::platformInitializeWebProcess):
Tools:
Use AccessibilityAtspi::singleton().
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
(WTR::AccessibilityController::axRunLoop):
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityNotificationHandler.cpp:
(WTR::AccessibilityNotificationHandler::AccessibilityNotificationHandler):
(WTR::AccessibilityNotificationHandler::~AccessibilityNotificationHandler):
- 5:45 AM Changeset in webkit [287875] by
-
- 4 edits in trunk
Some css-transforms tests assert in debug
https://bugs.webkit.org/show_bug.cgi?id=230079
<rdar://problem/83179970>
Reviewed by Simon Fraser.
Source/WebCore:
No new tests. This is covered by existing WPT tests. This change fixes
five assertions and one test completely. In addition, it leads to progressions,
but not complete fixes, in the four remaining tests.
Table elements, which can be transformed, were not properly forming containing blocks
for fixed and absolutely positioned elements.
- rendering/RenderElement.h:
(WebCore::RenderElement::canContainFixedPositionObjects const): Return true even when
we have a transformed element that is not a block.
(WebCore::RenderElement::canContainAbsolutelyPositionedObjects const): Ditto.
(WebCore::RenderElement::isTransformable const): Added this helper which returns whether
not SVG elements are transformable. Eventually this should be extended to handle SVG
elements as well.
LayoutTests:
- TestExpectations: Update expectations to note new passes.
- 5:22 AM Changeset in webkit [287874] by
-
- 5 edits in trunk/LayoutTests
REGRESSION (Lazy tree creation): css3/calc/transitions-dependent.html is frequently failing
https://bugs.webkit.org/show_bug.cgi?id=126142
<rdar://problem/15725243>
Reviewed by Alexey Proskuryakov.
This test is no longer flaky, it has been consistently failing with fixed values. Update
'innerTransition' expected values to match actual values.
The test code was modernized to make it pass in other browsers since getPropertyCSSValue()
is deprecated and no longer supported by Chrome or Firefox).
- TestExpectations:
- css3/calc/transitions-dependent-expected.txt:
- css3/calc/transitions-dependent.html:
- platform/gtk/TestExpectations:
- 4:57 AM Changeset in webkit [287873] by
-
- 9 edits2 adds in trunk/Source/WebCore
[LBSE] Introduce SVGBoundingBoxComputation
https://bugs.webkit.org/show_bug.cgi?id=234632
<rdar://problem/87001334>
Reviewed by Rob Buis.
Upstream SVGBoundingBoxComputation, a utility class
implementing the SVG2 "bounding box computation" algorithm,
as spec'ed in https://svgwg.org/svg2-draft/coords.html#BoundingBoxes.
SVG2 also specifies a new optional argument for getBBox() & friends:
DOMRect getBBox(optional SVGBoundingBoxOptions options = {});
SVGBoundingBoxOptions can be implemented using SVGBoundingBoxComputation:
exposing this to the Web is left for the future, once more of LBSE is ready.
LBSE utilizes SVGBoundingBoxComputation whenever any kind of bounding box
needs to be computed (object / stroke / decorated (e.g. including markers).
Covered by existing tests, no change in behaviour.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/svg/LegacyRenderSVGModelObject.h:
(WebCore::LegacyRenderSVGModelObject::visualOverflowRectEquivalent const): Deleted.
- rendering/svg/RenderSVGModelObject.h:
(WebCore::RenderSVGModelObject::visualOverflowRectEquivalent const):
- rendering/svg/RenderSVGRoot.cpp:
(WebCore::RenderSVGRoot::layout):
- rendering/svg/RenderSVGRoot.h:
- rendering/svg/SVGBoundingBoxComputation.cpp: Added.
(WebCore::SVGBoundingBoxComputation::SVGBoundingBoxComputation):
(WebCore::SVGBoundingBoxComputation::~SVGBoundingBoxComputation):
(WebCore::SVGBoundingBoxComputation::computeDecoratedBoundingBox const):
(WebCore::SVGBoundingBoxComputation::handleShapeOrTextOrInline const):
(WebCore::SVGBoundingBoxComputation::handleRootOrContainer const):
(WebCore::SVGBoundingBoxComputation::handleForeignObjectOrImage const):
(WebCore::SVGBoundingBoxComputation::adjustBoxForClippingAndEffects const):
- rendering/svg/SVGBoundingBoxComputation.h: Added.
(WebCore::SVGBoundingBoxComputation::computeDecoratedBoundingBox):
(WebCore::SVGBoundingBoxComputation::computeRepaintBoundingBox):
(WebCore::SVGBoundingBoxComputation::computeVisualOverflowRect):
- 12:53 AM Changeset in webkit [287872] by
-
- 4 edits in trunk
[GTK][a11y] WTR: do not immediately process main thread events while waiting for ax thread task
https://bugs.webkit.org/show_bug.cgi?id=234950
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Run a layout before creating the isolated tree to ensure we get an updated tree after ignored is computed.
- accessibility/isolatedtree/AXIsolatedTree.cpp:
(WebCore::AXIsolatedTree::create):
Tools:
We want to process the main thread events while waiting for ax thread to avoid blocking in case the ax thread
needs to get any value from the main thread. This might have side effects causing things to happen earlier than
expected. This patch only process main thread events after 125 milliseconds waiting for the ax thread, because
that probably means the ax thread is waiting for the main thread. This made most of the test to pass in isolated
tree mode with ATSPI.
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityControllerAtspi.cpp:
(WTR::AccessibilityController::executeOnAXThreadAndWait):
- 12:52 AM Changeset in webkit [287871] by
-
- 9 edits in trunk
[GTK][a11y] Set active state when element is the selected option active or aria-current isn't false with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=235029
Reviewed by Adrian Perez de Castro.
Source/WebCore:
- accessibility/atspi/AXObjectCacheAtspi.cpp:
(WebCore::AXObjectCache::postPlatformNotification):
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::state const):
Tools:
Add a unit test to check acive state and implement AccessibilityUIElement::currentStateValue().
- TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(testAccessibleState):
- WebKitTestRunner/InjectedBundle/AccessibilityUIElement.cpp:
(WTR::AccessibilityUIElement::domIdentifier const):
(WTR::AccessibilityUIElement::currentStateValue const): Deleted.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
(WTR::AccessibilityUIElement::currentStateValue const):
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::AccessibilityUIElement::currentStateValue const):
- WebKitTestRunner/InjectedBundle/win/AccessibilityUIElementWin.cpp:
(WTR::AccessibilityUIElement::currentStateValue const):
Jan 10, 2022:
- 11:27 PM Changeset in webkit [287870] by
-
- 3 edits in trunk/Source/WebInspectorUI
Web Inspector: Increase padding around icons in Alignment editor
https://bugs.webkit.org/show_bug.cgi?id=234036
<rdar://problem/86543279>
Reviewed by Devin Rousso.
Increase margin and padding around the icons, making the icons more visually appealing
and easier to distinguish and from each other.
- UserInterface/Images/AlignContentStretch.svg:
The gap between rectangles was only 0.5px. Increase it to 2px.
- UserInterface/Views/AlignmentEditor.css:
(.alignment-editor .glyph):
(.alignment-editor .glyph:not(:first-child)):
(.alignment-editor .glyph.selected):
(.alignment-editor .glyph.selected:active):
(.alignment-editor .glyph:not(:last-child)): Deleted.
(.alignment-editor .glyph.selected + .glyph): Deleted.
- 10:34 PM Changeset in webkit [287869] by
-
- 2 edits in trunk/JSTests
Unreviewed, add a bit more Intl.Locale hourCycle tests to investigate flakiness
- stress/intl-locale-info.js:
(let.l.new.Intl.Locale.shouldBe):
(shouldBe):
- 9:04 PM Changeset in webkit [287868] by
-
- 5 edits1 copy in trunk/Source/WebCore
Fix Windows build after r287829
https://bugs.webkit.org/show_bug.cgi?id=235054
Reviewed by Sam Weinig.
FTW removal accidentally removed RECT handling in FloatRect while it is not a part of Direct2D.
This patch recovers it. And we also use IntRect in some places since it is proper one.
- PlatformWin.cmake:
- platform/graphics/FloatRect.h:
- platform/graphics/win/FloatRectWin.cpp: Copied from Source/WebCore/platform/graphics/win/IntRectWin.cpp.
(WebCore::FloatRect::FloatRect):
- platform/graphics/win/IntRectWin.cpp:
(WebCore::IntRect::IntRect):
(WebCore::IntRect::operator RECT const):
- platform/win/PopupMenuWin.cpp:
(WebCore::monitorFromHwnd):
(WebCore::PopupMenuWin::calculatePositionAndSize):
- 7:21 PM Changeset in webkit [287867] by
-
- 3 edits2 adds in trunk
null ptr deref in WebCore::LayoutIntegration::LineLayout::collectOverflow()
https://bugs.webkit.org/show_bug.cgi?id=234654
<rdar://problem/86571571>
Reviewed by Antti Koivisto.
Source/WebCore:
needsLayout() check in invalidateLineLayoutPath is insufficient for modern line layout.
m_lineLayout = std::monostate() does not only destroy the line layout object but it also nukes all the IFC geometries.
It is equivalent to having all the child boxes dirty, since in order to re-generate the geometry information,
we have to layout _all_ the boxes (note that nuking the legacy line layout object does not destroy the inline tree).
The bug here is that needsLayout() returns true for cases (e.g. posChildNeedsLayout) when
while the geometry is all gone, we are going to take a special layout codepath which expects pre-computed geometries.
Test: fast/block/line-layout/line-layout-collect-overflow-crash.html
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::invalidateLineLayoutPath):
LayoutTests:
- fast/block/line-layout/line-layout-collect-overflow-crash-expected.txt: Added.
- fast/block/line-layout/line-layout-collect-overflow-crash.html: Added.
- 6:17 PM Changeset in webkit [287866] by
-
- 10 edits in trunk
Followup to r287863 - adjust line wrapping behavior in image overlays
https://bugs.webkit.org/show_bug.cgi?id=235035
rdar://85139146
Reviewed by Tim Horton.
Source/WebCore:
The previous change I landed in r287863 was written under the assumption that
-shouldWrapdescribes whether or
not a recognized line of text should wrap to the next line. However, after trying it out, it seems to indicate
whether or not the previous line of text should wrap to the current line. As a result, the current adoption of
this property is wrong, since the line wrapping is off-by-one.
Fix this by renaming the
shouldWrapboolean flag in TextRecognitionLineData to the much less ambiguous name
hasTrailingNewline, and sethasTrailingNewlinebased on theshouldWrapproperty of the *next*
VKWKLineInfo.
- dom/ImageOverlay.cpp:
(WebCore::ImageOverlay::updateSubtree):
Avoid a potentially even-more-confusing
!= !!here by usingstatic_cast<>to check the nullity of the
RefPtr.
- platform/TextRecognitionResult.h:
(WebCore::TextRecognitionLineData::TextRecognitionLineData):
(WebCore::TextRecognitionLineData::encode const):
(WebCore::TextRecognitionLineData::decode):
Make sure we also flip the default from
falsetotrue, sincehasTrailingNewlineis intended to have the
opposite effect as the extantshouldWrap.
- testing/Internals.cpp:
(WebCore::makeDataForLine):
- testing/Internals.h:
- testing/Internals.idl:
Source/WebKit:
Use the
-shouldWrapproperty to computehasTrailingNewline. See WebCore/ChangeLog for more details.
- Platform/cocoa/TextRecognitionUtilities.mm:
(WebKit::makeTextRecognitionResult):
LayoutTests:
Make a slight adjustment to an existing layout test (i.e. rename
shouldWraptohasTrailingNewline). See
WebCore/ChangeLog for more details.
- fast/images/text-recognition/image-overlay-line-wrapping.html:
- 6:01 PM Changeset in webkit [287865] by
-
- 2 edits in trunk/Tools
Revert r287861.
https://bugs.webkit.org/show_bug.cgi?id=235048
<rdar://problem/87360213>
Unreviewed revert.
Temporarily revert r287861(245905@main) which breaks git-webkit script when
invoked outside of a checkout directory.
- Scripts/git-webkit:
- 5:36 PM Changeset in webkit [287864] by
-
- 16 edits in trunk/Source/JavaScriptCore
Allow loop tier up to the Air tier
https://bugs.webkit.org/show_bug.cgi?id=234587
<rdar://problem/86968638>
Reviewed by Yusuke Suzuki.
This patch adds loop tier up from LLInt -> Air. To implement this, we use
EntrySwitch to point at each loop header, making each loop an entrypoint.
This is unlike BBQ->OMG tier up, where we compile a special OSR entry OMG
callee. This seems like a good architecture for the Air tier, since we might end
up with slightly worse throughput, but we won't need a different compilation
for loops vs call entrypoints.
This patch also fixes a bug in Air's O0 register allocation where it
didn't properly account for all named registers in an instruction. There
was a silly bug where we asked each arg if it were a temp, instead of
asking the Inst for each of its temps, since an Arg can be an address
but still use temps.
- b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::emitLoad):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::finalizeEntrypoints):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addLoop):
(JSC::Wasm::parseAndCompileAir):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::B3IRGenerator):
(JSC::Wasm::parseAndCompileB3):
(JSC::Wasm::parseAndCompile): Deleted.
- wasm/WasmB3IRGenerator.h:
- wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::prepareImpl):
(JSC::Wasm::BBQPlan::work):
(JSC::Wasm::BBQPlan::compileFunction):
(JSC::Wasm::BBQPlan::didCompleteCompilation):
(JSC::Wasm::BBQPlan::initializeCallees):
- wasm/WasmBBQPlan.h:
- wasm/WasmCallee.h:
- wasm/WasmCalleeGroup.h:
- wasm/WasmFormat.h:
- wasm/WasmIRGeneratorHelpers.h:
(JSC::Wasm::computeExceptionHandlerAndLoopEntrypointLocations):
(JSC::Wasm::computeExceptionHandlerLocations):
- wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
- wasm/WasmOMGPlan.cpp:
(JSC::Wasm::OMGPlan::work):
- wasm/WasmOSREntryPlan.cpp:
(JSC::Wasm::OSREntryPlan::work):
- wasm/WasmSlowPaths.cpp:
(JSC::LLInt::WASM_SLOW_PATH_DECL):
- wasm/js/JSToWasm.cpp:
(JSC::Wasm::createJSToWasmWrapper):
- 3:48 PM Changeset in webkit [287863] by
-
- 11 edits2 adds in trunk
Add support for a -shouldWrap property when injecting Live Text
https://bugs.webkit.org/show_bug.cgi?id=235035
rdar://85139146
Reviewed by Tim Horton.
Source/WebCore:
Add support for a new property on VKWKLineInfo to indicate whether or not the line should wrap. If set to true,
we will avoid adding abrelement at the end of thediv.image-overlay-linethat corresponds to the line of
recognized text in the image overlay; currently, we always add this trailingbr.
Test: fast/images/text-recognition/image-overlay-line-wrapping.html
- dom/ImageOverlay.cpp:
(WebCore::ImageOverlay::updateSubtree):
Consult the flag when converting each TextRecognitionLineData into shadow DOM elements.
- platform/TextRecognitionResult.h:
Add the new boolean flag to TextRecognitionLineData, and add encoding/decoding support.
(WebCore::TextRecognitionLineData::TextRecognitionLineData):
(WebCore::TextRecognitionLineData::encode const):
(WebCore::TextRecognitionLineData::decode):
- testing/Internals.cpp:
(WebCore::makeDataForLine):
Add a way to specify a value for
shouldWrap, when usinginternalsto inject image overlay content in layout
and API tests.
- testing/Internals.h:
- testing/Internals.idl:
Source/WebCore/PAL:
Add a forward staging declaration for the new SPI property.
- pal/spi/cocoa/VisionKitCoreSPI.h:
Source/WebKit:
Consult the new SPI property (behind a runtime selector check), and pass the boolean flag through the
TextRecognitionResult.
- Platform/cocoa/TextRecognitionUtilities.mm:
(WebKit::makeTextRecognitionResult):
LayoutTests:
Add a layout test to exercise the changes. See WebCore/ChangeLog for more details.
- fast/images/text-recognition/image-overlay-line-wrapping-expected.txt: Added.
- fast/images/text-recognition/image-overlay-line-wrapping.html: Added.
- 3:42 PM Changeset in webkit [287862] by
-
- 2 edits in trunk/Source/WebCore
hasBrokenEncryptedMediaAPISupportQuirk and needsPreloadAutoQuirk have overly permissive domain allow lists
https://bugs.webkit.org/show_bug.cgi?id=222130
<rdar://problem/74758560>
Unreviewed, fix typo introduced in r287855.
- page/Quirks.cpp:
(WebCore::Quirks::needsPreloadAutoQuirk const): "vimeo" should be "vimeo.com".
- 3:17 PM Changeset in webkit [287861] by
-
- 2 edits in trunk/Tools
[git-webkit] Use cwd as default path
https://bugs.webkit.org/show_bug.cgi?id=235048
<rdar://problem/87360213>
Reviewed by Aakash Jain.
- Tools/Scripts/git-webkit: Use default path behavior.
Canonical link: https://commits.webkit.org/245905@main
- 2:58 PM Changeset in webkit [287860] by
-
- 5 edits in trunk
Modal container observer should classify elements that are styled like clickable controls
https://bugs.webkit.org/show_bug.cgi?id=235022
Reviewed by Tim Horton.
Source/WebCore:
Broaden the criteria when considering whether or not an element inside of a detected modal container is a
"clickable control". In the case where there are event listeners on the modal container, an element inside of
the modal container that hascursor: pointer;may trigger an action on the modal container when clicked, even
if it does not have event listeners itself. Handle this scenario by considering the element to be a "clickable
control", and extract text from the element for the purposes of control classification.
Test: ModalContainerObservation.DetectControlsWithEventListenersOnModalContainer
- page/ModalContainerObserver.cpp:
(WebCore::listensToUserActivation):
Factor out this logic into a separate helper function.
(WebCore::isClickableControl):
(WebCore::ModalContainerObserver::collectClickableElements):
Tools:
Add a new API test to exercise the change, and adjust the test harness to allow tests using the harness to
additionally add an event listener on the modal container.
- TestWebKitAPI/Tests/WebKit/modal-container-custom.html:
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
(TestWebKitAPI::TEST):
- 2:36 PM Changeset in webkit [287859] by
-
- 2 edits in trunk/Tools
[git-webkit] Retain old commits in pull-request (Follow-up fix)
https://bugs.webkit.org/show_bug.cgi?id=234453
<rdar://problem/86654956>
Unreviewed follow-up fix.
- Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:
(Land.main):
- 2:34 PM Changeset in webkit [287858] by
-
- 1 copy in tags/Safari-612.4.9.1.3
Tag Safari-612.4.9.1.3.
- 2:18 PM Changeset in webkit [287857] by
-
- 5 edits in trunk/Tools
[EWS] Always invoke CleanGitRepo before CheckOutSource
https://bugs.webkit.org/show_bug.cgi?id=234882
<rdar://problem/87145396>
Reviewed by Aakash Jain.
- Tools/CISupport/ews-build/factories.py:
(Factory.init): Add CleanGitRepo step.
(StyleFactory.init): Ditto.
(WatchListFactory.init): Ditto.
(CommitQueueFactory.init): Specify default branch as 'master.'
- Tools/CISupport/ews-build/factories_unittest.py:
(TestExpectedBuildSteps):
- Tools/CISupport/ews-build/steps.py:
(CleanGitRepo.init): Accept default_branch and remote.
(CleanGitRepo.run): Construct commands with awareness of branch and remote,
check to see if a basename is specified.
- Tools/CISupport/ews-build/steps_unittest.py:
Canonical link: https://commits.webkit.org/245902@main
- 1:57 PM Changeset in webkit [287856] by
-
- 1 copy in tags/Safari-612.4.9.0.2
Tag Safari-612.4.9.0.2.
- 1:54 PM Changeset in webkit [287855] by
-
- 2 edits in trunk/Source/WebCore
hasBrokenEncryptedMediaAPISupportQuirk and needsPreloadAutoQuirk have overly
permissive domain allow lists
https://bugs.webkit.org/show_bug.cgi?id=222130
<rdar://problem/74758560>
Reviewed by Jer Noble.
Fix quirk tests for subdomains of vimeo and hulu by using RegistrableDomain instead
of testing the url directly.
- page/Quirks.cpp:
(WebCore::Quirks::hasBrokenEncryptedMediaAPISupportQuirk const):
(WebCore::Quirks::needsPreloadAutoQuirk const):
- 1:45 PM Changeset in webkit [287854] by
-
- 3 edits2 adds in trunk
https://brianpeiris.github.io/spatial-audio-test/?ramped stops playing after a few seconds
https://bugs.webkit.org/show_bug.cgi?id=234979
Reviewed by Eric Carlson.
Source/WebCore:
In ConeEffect::gain(), due to precision issues and with certain panner node parameters, it was possible for
sourceToListener.dot(sourceOrientation)to return a value that is very slightly outside the [-1.0, 1.0]
range. We would then callacos()on the dot product and it would thus return NaN.
To addresss this, we now make sure the clamp the dot product to the expected range before calling acos().
I also made the following stylistic changes:
- Drop unnecessary normalizedSourceOrientation local variable since the sourceOrientation paramter is not const
- Add missing curly brackets in if conditions with more than one lines (due to comments)
- Call rad2deg() for readability instead of duplicating its logic here
Test: webaudio/Panner/panner-cone-gain-nan.html
- platform/audio/Cone.cpp:
(WebCore::ConeEffect::gain const):
LayoutTests:
Add layout test coverage.
- webaudio/Panner/panner-cone-gain-nan-expected.txt: Added.
- webaudio/Panner/panner-cone-gain-nan.html: Added.
- 1:09 PM Changeset in webkit [287853] by
-
- 6 edits in trunk/Tools
[git-webkit] Retain old commits in pull-request
https://bugs.webkit.org/show_bug.cgi?id=234453
<rdar://problem/86654956>
Reviewed by Dewei Zhu.
- Tools/Scripts/libraries/webkitscmpy/setup.py: Bump version.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/init.py: Ditto.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/land.py:
(Land.main): Find all numbered branches for landing pull-request.
- Tools/Scripts/libraries/webkitscmpy/webkitscmpy/program/pull_request.py:
(PullRequest.parser): Add history option.
(PullRequest.main): Add a numbered branch which persists through the life of the pull-request.
Canonical link: https://commits.webkit.org/245899@main
- 12:18 PM Changeset in webkit [287852] by
-
- 1 copy in tags/Safari-613.1.12.1.5
Tag Safari-613.1.12.1.5.
- 12:12 PM Changeset in webkit [287851] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.5
- 12:09 PM Changeset in webkit [287850] by
-
- 4 edits1 add in branches/safari-612.4.9.1-branch
Cherry-pick r287814. rdar://problem/86845512
Null pointer crash when calling into
-[WebView close]in-webView:didCommitLoadForFrame:
https://bugs.webkit.org/show_bug.cgi?id=234994
rdar://86845512
Reviewed by Chris Dumez and Geoff Garen.
Source/WebCore:
Add a null check in
FrameLoader::dispatchDidCommitLoad()before calling into any methods on the frame's Page.
Since we called into the client layer todispatchDidCommitLoad()immediately prior to this, a legacy WebKit
client may have already caused the page to be destroyed (e.g. by closing the web view). Since Frame's pointer
to Page is a WeakPtr, this triggers null derefs when attempting to call eitherdidCommitLoad()or
remoteInspectorInformationDidChange().
Test: WebKitLegacy.CloseWhileCommittingLoad
- loader/FrameLoader.cpp: (WebCore::FrameLoader::dispatchDidCommitLoad):
Tools:
Add a new API test to exercise the fix.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/CloseWhileCommittingLoad.mm: Added. (-[CloseWhileCommittingLoadDelegate webView:didCommitLoadForFrame:]): (TestWebKitAPI::TEST):
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287814 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 11:19 AM Changeset in webkit [287849] by
-
- 4 edits in trunk
Modal container observer fails detection when rendered text is inserted after the container
https://bugs.webkit.org/show_bug.cgi?id=234752
rdar://87200177
Reviewed by Tim Horton.
Source/WebCore:
Teach ModalContainerObserver to detect modal containers whose text content is set by script after the container
element itself has already been inserted into the document and laid out. See below for more details.
Test: ModalContainerObservation.DetectModalContainerAfterSettingText
- page/ModalContainerObserver.cpp:
(WebCore::searchForMatch):
Change this to return two
bools: one indicating whether a match was found (i.e. the original return value),
and another indicating whether any rendered text was discovered in the process of searching. In the case where
the viewport-constrained element did not contain any rendered text at all, we avoid adding the element to the
m_elementsToIgnoreWhenSearchingset, thereby allowing us to search it again in the future.
(WebCore::ModalContainerObserver::updateModalContainerIfNeeded):
(WebCore::containsMatchingText): Deleted.
Tools:
Add a new API test to exercise the change.
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
(TestWebKitAPI::TEST):
- 11:16 AM Changeset in webkit [287848] by
-
- 69 edits in trunk
Start using C++20
https://bugs.webkit.org/show_bug.cgi?id=233963
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-10
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:
- 11:06 AM Changeset in webkit [287847] by
-
- 4 edits in trunk
ASSERTION FAILED in RenderLayer::updateClipRects
https://bugs.webkit.org/show_bug.cgi?id=234315
Reviewed by Simon Fraser.
Source/WebCore:
In clippingRootForPainting(), the dialog element uses the top layer as its clipping root layer.
When it caculates the clip rects, it caculates all its ancestors' clip rects and caches them
including the clipping root layer. However, if the ancestor is a transformed layer, it should be
treated as a root layer. When the transformed layer updates its clip rects, the root layer won't
match the one in cache. This patch stops the dialog descendant propagating its clipping root layer
to the ancestors' in cache.
- rendering/RenderLayer.cpp:
(WebCore::RenderLayer::clipCrossesPaintingBoundary const):
LayoutTests:
- 11:03 AM Changeset in webkit [287846] by
-
- 1936 edits16 copies14 moves670 adds76 deletes in trunk/LayoutTests
Resync web-platform-tests/html from upstream
https://bugs.webkit.org/show_bug.cgi?id=234938
Reviewed by Geoff Garen.
Resync web-platform-tests/html from upstream 03ced021594abbd9e91.
LayoutTests/imported/w3c:
- resources/resource-files.json:
- web-platform-tests/html/*: Updated.
LayoutTests:
- TestExpectations:
- platform/mac-wk2/imported/w3c/web-platform-tests/html/semantics/forms/the-input-element/input-valueasdate-expected.txt:
- tests-options.json:
- 10:50 AM Changeset in webkit [287845] by
-
- 4 edits in trunk
REGRESSION(r287683): <dialog> elements inside clipped/overflowed elements are no longer shown
https://bugs.webkit.org/show_bug.cgi?id=234984
Reviewed by Simon Fraser.
Source/WebCore:
Paint at the right place by fixing isContainerForPositioned, also fix clip rects.
- rendering/RenderLayer.cpp:
(WebCore::isContainerForPositioned):
(WebCore::RenderLayer::enclosingAncestorForPosition const):
(WebCore::accumulateOffsetTowardsAncestor):
(WebCore::RenderLayer::calculateClipRects const):
LayoutTests:
Enable relevant tests. Set the asserting test as Crash instead of Skipping.
- 10:41 AM Changeset in webkit [287844] by
-
- 2 edits in trunk/Source/WebKit
[MacCatalyst] Add syscalls from iOS sandbox
https://bugs.webkit.org/show_bug.cgi?id=234970
<rdar://problem/87262730>
Reviewed by Darin Adler.
Add syscalls from iOS sandbox that are not in the MacCatalyst sandbox, since these are potentially
still needed on MacCatalyst.
- WebProcess/com.apple.WebProcess.sb.in:
- 10:36 AM Changeset in webkit [287843] by
-
- 1 edit1 move3 adds in trunk/LayoutTests
REGRESSION (r287431): [Big Sur WK1] fast/scrolling/latching/iframe-latch-small-deltas.html is consistently failing
https://bugs.webkit.org/show_bug.cgi?id=234996
Reviewed by Ryan Haddad.
Move results from Catalina.
- platform/mac-bigsur-wk1/fast/scrolling/latching/iframe-latch-small-deltas-expected.txt: Renamed from LayoutTests/platform/mac-catalina-wk1/fast/scrolling/latching/iframe-latch-small-deltas-expected.txt.
- 10:22 AM Changeset in webkit [287842] by
-
- 9 edits in trunk/Source
Versioning.
WebKit-7614.1.1
- 10:17 AM Changeset in webkit [287841] by
-
- 1 copy in branches/safari-613-branch
New branch.
- 10:08 AM Changeset in webkit [287840] by
-
- 8 edits in branches/safari-612.4.9.1-branch/Source
Versioning.
WebKit-7612.4.9.1.3
- 9:58 AM Changeset in webkit [287839] by
-
- 8 edits in branches/safari-612.4.9.0-branch/Source
Versioning.
WebKit-7612.4.9.0.2
- 9:39 AM Changeset in webkit [287838] by
-
- 25 edits in trunk
[CSS Color 4] CSS color() function should not clamp channels to the 0-1 range
https://bugs.webkit.org/show_bug.cgi?id=234697
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Update tests to include out of gamut examples for RGB types as well as some outside
allowed values for lab/lch/oklab/oklch types (in the latter we clamp as the spec requires.).
- web-platform-tests/css/css-color/color-function-parsing-expected.txt:
- web-platform-tests/css/css-color/color-function-parsing.html:
- web-platform-tests/css/css-color/parsing/color-computed-expected.txt:
- web-platform-tests/css/css-color/parsing/color-computed.html:
- web-platform-tests/css/css-color/parsing/color-mix-computed-expected.txt:
- web-platform-tests/css/css-color/parsing/color-mix-computed.html:
- web-platform-tests/css/css-color/parsing/color-mix-valid-expected.txt:
- web-platform-tests/css/css-color/parsing/color-mix-valid.html:
- web-platform-tests/css/css-color/parsing/color-valid-expected.txt:
- web-platform-tests/css/css-color/parsing/color-valid.html:
- web-platform-tests/css/css-color/parsing/relative-color-computed-expected.txt:
- web-platform-tests/css/css-color/parsing/relative-color-computed.html:
- web-platform-tests/css/css-color/parsing/relative-color-valid-expected.txt:
- web-platform-tests/css/css-color/parsing/relative-color-valid.html:
Source/WebCore:
Allow components outside the the 0-1 range for RGB color function types (e.g. color(srgb -2 15 100)).
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
Remove clamping when parsing RGB color function types (we still clamp for legacy rgb()/rgba() as specified).
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeColorFunctionParameters):
Switch mapping of RGB color function types to their extended counterparts which allow the extended range.
- platform/graphics/ColorInterpolationMethod.h:
Switch the RGB interpolation color types to the extended counterparts as well to allow out of gamut mixing.
LayoutTests:
Update tests to include out of gamut examples for RGB types as well as some outside
allowed values for lab/lch/oklab/oklch types (in the latter we clamp as the spec requires.).
- css3/color/color-function-computed-style-expected.txt:
- css3/color/color-function-computed-style.html:
- css3/color/color-function-parsing-expected.txt:
- css3/color/color-function-parsing.html:
- fast/css/parsing-color-function-expected.txt:
- fast/css/parsing-color-function.html:
- 9:09 AM Changeset in webkit [287837] by
-
- 4 edits in trunk/Source
postprocess-headers.sh: Avoid redundant processing to speed up incremental Xcode builds
https://bugs.webkit.org/show_bug.cgi?id=234941
Patch by Elliott Williams <Elliott Williams> on 2022-01-10
Reviewed by Jonathan Bedard.
Source/JavaScriptCore:
On builds made with the legacy build system (currently any CLI build for Apple platforms),
postprocess-headers.sh always runs, even when no headers have been copied. PBXBuild doesn't
have the necessary granularity to let us avoid running it when there are no headers to copy,
however, this patch improves execution time by only running the postprocess rule when a
header has changed since the last time it ran.
This change reduces JavaScriptCore's null build time from ~18.3s to ~5.32s.
- postprocess-headers.sh: Added timestamp check
Source/WebKitLegacy/mac:
- postprocess-headers.sh:
- 7:13 AM Changeset in webkit [287836] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Update test expectations for new tests added in r287813
https://bugs.webkit.org/show_bug.cgi?id=235031
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-10
- platform/glib/TestExpectations:
- 7:09 AM Changeset in webkit [287835] by
-
- 4 edits in trunk
[Web Animations] getKeyframes() for a CSS Animation should not use computed style for keyframes (part 2)
https://bugs.webkit.org/show_bug.cgi?id=235028
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
Source/WebCore:
In bug 235008, we already improved the situtation by reading from the StyleProperties
associated with the StyleRuleKeyframe for CSS Animations. We're now taking the next
step by reading from the matching rules for the provided element.
There is one remaining case where we use the computed style: when the CSSValue uses
a CSS variable. To fix the css/css-animations/KeyframeEffect-getKeyframes.tentative.html
WPT entirely, we'll need to be able to substitute those in the output.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
- 5:10 AM Changeset in webkit [287834] by
-
- 6 edits2 adds in trunk/Source/WebCore
[LBSE] Begin layer-aware RenderSVGRect implementation
https://bugs.webkit.org/show_bug.cgi?id=234992
Reviewed by Rob Buis.
Create RenderSVGRect as copy of LegacyRenderSVGRect, inheriting from
RenderSVGShape (and thus RenderLayerModelObject) instead of
LegacyRenderSVGShape, as LegacyRenderSVGRect does.
This patch does not yet enable the creation of RenderSVGRect
renderers if LBSE is enabled, this is postponed until more
functionality is fully available in LBSE (such as layout!).
Covered by existing tests, no change in behaviour.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/svg/LegacyRenderSVGModelObject.cpp:
(WebCore::LegacyRenderSVGModelObject::clippedOverflowRect const):
(WebCore::LegacyRenderSVGModelObject::nodeAtPoint):
- rendering/svg/RenderSVGRect.cpp: Added.
(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):
(WebCore::RenderSVGRect::isRenderingDisabled const):
- rendering/svg/RenderSVGRect.h: Added.
- rendering/svg/SVGResources.cpp:
- svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::createElementRenderer):
- 4:48 AM Changeset in webkit [287833] by
-
- 10 edits11 moves10 deletes in trunk
[GTK][a11y] WTR: do not show html-id and toolkit attributes in test results
https://bugs.webkit.org/show_bug.cgi?id=235024
Reviewed by Adrian Perez de Castro.
Tools:
The html-id attribute is an internal one used by WTR to get the accessible of an element by its id. The toolkit
attribute will make the results different for every platform. Also sort the attributes to ensure same results
even if the order is different among platforms.
- WebKitTestRunner/InjectedBundle/atk/AccessibilityUIElementAtk.cpp:
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::attributesOfElement):
LayoutTests:
Update results.
- accessibility/gtk/aria-autocomplete-expected.txt:
- accessibility/gtk/aria-current-expected.txt:
- accessibility/gtk/aria-keyshortcuts-expected.txt:
- accessibility/gtk/aria-readonly-propagated-expected.txt:
- accessibility/gtk/object-attributes-expected.txt:
- platform/glib/accessibility/content-editable-as-textarea-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/content-editable-as-textarea-expected.txt.
- platform/glib/accessibility/image-link-expected.txt: Renamed from LayoutTests/platform/wpe/accessibility/image-link-expected.txt.
- platform/glib/accessibility/image-map2-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/image-map2-expected.txt.
- platform/glib/accessibility/lists-expected.txt: Renamed from LayoutTests/platform/wpe/accessibility/lists-expected.txt.
- platform/glib/accessibility/table-attributes-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-attributes-expected.txt.
- platform/glib/accessibility/table-cell-spans-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-cell-spans-expected.txt.
- platform/glib/accessibility/table-cells-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-cells-expected.txt.
- platform/glib/accessibility/table-one-cell-expected.txt: Renamed from LayoutTests/platform/wpe/accessibility/table-one-cell-expected.txt.
- platform/glib/accessibility/table-sections-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-sections-expected.txt.
- platform/glib/accessibility/table-with-rules-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/table-with-rules-expected.txt.
- platform/glib/accessibility/transformed-element-expected.txt: Renamed from LayoutTests/platform/gtk/accessibility/transformed-element-expected.txt.
- platform/gtk/accessibility/gtk/xml-roles-exposed-expected.txt:
- platform/gtk/accessibility/image-link-expected.txt: Removed.
- platform/gtk/accessibility/lists-expected.txt: Removed.
- platform/gtk/accessibility/table-one-cell-expected.txt: Removed.
- platform/wpe/accessibility/image-map2-expected.txt: Removed.
- platform/wpe/accessibility/table-attributes-expected.txt: Removed.
- platform/wpe/accessibility/table-cell-spans-expected.txt: Removed.
- platform/wpe/accessibility/table-cells-expected.txt: Removed.
- platform/wpe/accessibility/table-sections-expected.txt: Removed.
- platform/wpe/accessibility/table-with-rules-expected.txt: Removed.
- platform/wpe/accessibility/transformed-element-expected.txt: Removed.
- 1:47 AM Changeset in webkit [287832] by
-
- 21 edits3 adds in trunk/Source/WebCore
[LBSE] Begin layer-aware RenderSVGShape implementation
https://bugs.webkit.org/show_bug.cgi?id=234954
Reviewed by Rob Buis.
Begin implementing RenderSVGShape, based on the downstream version in the
LBSE branch. Many parts are 1:1 copies from LegacyRenderSVGShape, although
the core methods for layout / paint / hit-testing looks quite different in
RenderSVGShape -- the code is mostly adapted from layer-aware CSS renderers
such as RenderBox / RenderBlock taking SVG specifics into account.
This patch hooks in RenderSVGShape in all places that used to handle
LegacyRenderSVGShape, e.g. in AccessibilityRenderObject. However no
renderer inherits from RenderSVGShape yet -- a follow-up patch will
introduce RenderSVGRect.
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):
- rendering/RenderTreeAsText.cpp:
(WebCore::write):
- rendering/svg/RenderSVGResource.cpp:
(WebCore::RenderSVGResource::fillAndStrokePathOrShape const):
- rendering/svg/RenderSVGResource.h:
(WebCore::RenderSVGResource::postApplyResource):
- 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/RenderSVGShape.cpp: Added.
(WebCore::RenderSVGShape::RenderSVGShape):
(WebCore::RenderSVGShape::updateShapeFromElement):
(WebCore::RenderSVGShape::isEmpty const):
(WebCore::RenderSVGShape::fillShape const):
(WebCore::RenderSVGShape::strokeShape const):
(WebCore::RenderSVGShape::shapeDependentStrokeContains):
(WebCore::RenderSVGShape::shapeDependentFillContains const):
(WebCore::RenderSVGShape::fillContains):
(WebCore::RenderSVGShape::strokeContains):
(WebCore::RenderSVGShape::layout):
(WebCore::RenderSVGShape::nonScalingStrokePath const):
(WebCore::RenderSVGShape::setupNonScalingStrokeContext):
(WebCore::RenderSVGShape::nonScalingStrokeTransform const):
(WebCore::RenderSVGShape::shouldGenerateMarkerPositions const):
(WebCore::RenderSVGShape::fillShape):
(WebCore::RenderSVGShape::strokeShape):
(WebCore::RenderSVGShape::fillStrokeMarkers):
(WebCore::RenderSVGShape::paint):
(WebCore::RenderSVGShape::isPointInFill):
(WebCore::RenderSVGShape::isPointInStroke):
(WebCore::RenderSVGShape::getTotalLength const):
(WebCore::RenderSVGShape::getPointAtLength const):
(WebCore::RenderSVGShape::nodeAtPoint):
(WebCore::markerForType):
(WebCore::RenderSVGShape::computeMarkerBoundingBox const):
(WebCore::RenderSVGShape::calculateObjectBoundingBox const):
(WebCore::RenderSVGShape::calculateStrokeBoundingBox const):
(WebCore::RenderSVGShape::strokeWidth const):
(WebCore::RenderSVGShape::hasSmoothStroke const):
(WebCore::RenderSVGShape::drawMarkers):
(WebCore::RenderSVGShape::createPath const):
(WebCore::RenderSVGShape::processMarkerPositions):
(WebCore::RenderSVGShape::styleWillChange):
- rendering/svg/RenderSVGShape.h: Added.
(WebCore::RenderSVGShape::setNeedsShapeUpdate):
(WebCore::RenderSVGShape::hasPath const):
(WebCore::RenderSVGShape::path const):
(WebCore::RenderSVGShape::clearPath):
(WebCore::RenderSVGShape::hasNonScalingStroke const):
- rendering/svg/RenderSVGShapeInlines.h: Added.
(WebCore::RenderSVGShape::graphicsElement const):
- rendering/svg/SVGRenderSupport.cpp:
- rendering/svg/SVGRenderTreeAsText.cpp:
(WebCore::writeSVGPaintingResource):
(WebCore::writeSVGFillPaintingResource):
(WebCore::writeSVGStrokePaintingResource):
(WebCore::writeStyle):
(WebCore::writeSVGGraphicsElement):
(WebCore::operator<<):
(WebCore::write):
- rendering/svg/SVGRenderTreeAsText.h:
- svg/SVGAnimateMotionElement.cpp:
- svg/SVGGeometryElement.cpp:
(WebCore::SVGGeometryElement::getTotalLength const):
(WebCore::SVGGeometryElement::getPointAtLength const):
(WebCore::SVGGeometryElement::isPointInFill):
(WebCore::SVGGeometryElement::isPointInStroke):
- svg/SVGLineElement.cpp:
- 12:45 AM Changeset in webkit [287831] by
-
- 2 edits in trunk/Source/WTF
Compile out ENABLE_MEDIA_CAPTURE on WATCHOS and APPLETV
https://bugs.webkit.org/show_bug.cgi?id=234946
<rdar://87126228>
Reviewed by Sam Weinig.
- wtf/PlatformEnableCocoa.h:
Jan 9, 2022:
- 11:55 PM Changeset in webkit [287830] by
-
- 3 edits in trunk/LayoutTests/imported/w3c
Unreviewed WPT update after https://github.com/web-platform-tests/wpt/pull/32222.
- web-platform-tests/css/css-transitions/transition-property-002-expected.txt:
- web-platform-tests/css/css-transitions/transition-property-002.html:
- 7:39 PM Changeset in webkit [287829] by
-
- 99 edits54 deletes in trunk
.:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
- Source/cmake/OptionsFTW.cmake: Removed.
Source/JavaScriptCore:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
Direct2D and FTW have not been building for over a year. It is
time to remove them.
- PlatformFTW.cmake: Removed.
Source/ThirdParty/ANGLE:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
Direct2D and FTW have not been building for over a year. It is
time to remove them.
- PlatformFTW.cmake: Removed.
Source/WebCore:
Remove support for Direct2D / FTW
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
Direct2D and FTW have not been building for over a year. It is
time to remove them.
- PlatformAppleWin.cmake:
- PlatformFTW.cmake: Removed.
- PlatformWin.cmake:
- page/CaptionUserPreferencesMediaAF.cpp:
- page/CaptionUserPreferencesMediaAF.h:
- page/win/FrameWinDirect2D.cpp: Removed.
- platform/MIMETypeRegistry.cpp:
(WebCore::MIMETypeRegistry::createMIMETypeRegistryThreadGlobalData):
- platform/graphics/BifurcatedGraphicsContext.cpp:
- platform/graphics/BifurcatedGraphicsContext.h:
- platform/graphics/BitmapImage.cpp:
(WebCore::BitmapImage::frameImageAtIndexCacheIfNeeded):
(WebCore::BitmapImage::nativeImage):
(WebCore::BitmapImage::nativeImageForCurrentFrame):
(WebCore::BitmapImage::preTransformedNativeImageForCurrentFrame):
(WebCore::BitmapImage::nativeImageOfSize):
(WebCore::BitmapImage::draw):
- platform/graphics/BitmapImage.h:
- platform/graphics/Font.h:
- platform/graphics/FontPlatformData.h:
(WebCore::FontPlatformData::dwFont const): Deleted.
(WebCore::FontPlatformData::dwFontFace const): Deleted.
- platform/graphics/Gradient.h:
- platform/graphics/GraphicsContext.h:
- platform/graphics/Image.h:
(WebCore::Image::nativeImage):
(WebCore::Image::nativeImageForCurrentFrame):
(WebCore::Image::preTransformedNativeImageForCurrentFrame):
(WebCore::Image::nativeImageOfSize):
- platform/graphics/ImageDecoder.cpp:
(WebCore::ImageDecoder::create):
(WebCore::ImageDecoder::supportsMediaType):
- platform/graphics/ImageDecoder.h:
- platform/graphics/ImageSource.cpp:
(WebCore::ImageSource::setTargetContext): Deleted.
- platform/graphics/ImageSource.h:
- platform/graphics/NullGraphicsContext.h:
- platform/graphics/Path.cpp:
(WebCore::Path::length const):
(WebCore::Path::addRoundedRect):
- platform/graphics/Path.h:
- platform/graphics/Pattern.h:
- platform/graphics/PlatformImage.h:
- platform/graphics/PlatformImageBuffer.h:
- platform/graphics/PlatformImageBufferBackend.h:
- platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:
(WebCore::CDMSessionAVFoundationCF::generateKeyRequest):
- platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
(WebCore::MediaPlayerPrivateAVFoundationCF::paint):
- platform/graphics/cg/PDFDocumentImage.cpp:
(WebCore::PDFDocumentImage::drawPDFPage):
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/opentype/OpenTypeMathData.cpp:
(WebCore::OpenTypeMathData::OpenTypeMathData):
- platform/graphics/opentype/OpenTypeUtilities.cpp:
(WebCore::renameAndActivateFont):
- platform/graphics/texmap/BitmapTexture.cpp:
(WebCore::BitmapTexture::updateContents):
- platform/graphics/texmap/BitmapTextureGL.cpp:
(WebCore::BitmapTextureGL::updateContents):
- platform/graphics/win/BackingStoreBackendDirect2D.h: Removed.
- platform/graphics/win/BackingStoreBackendDirect2DImpl.cpp: Removed.
- platform/graphics/win/BackingStoreBackendDirect2DImpl.h: Removed.
- platform/graphics/win/ColorDirect2D.cpp: Removed.
- platform/graphics/win/ComplexTextControllerDirectWrite.cpp: Removed.
- platform/graphics/win/ComplexTextControllerUniscribe.cpp:
- platform/graphics/win/Direct2DOperations.cpp: Removed.
- platform/graphics/win/Direct2DOperations.h: Removed.
- platform/graphics/win/Direct2DUtilities.cpp: Removed.
- platform/graphics/win/Direct2DUtilities.h: Removed.
- platform/graphics/win/DirectWriteUtilities.cpp: Removed.
- platform/graphics/win/DirectWriteUtilities.h: Removed.
- platform/graphics/win/FloatPointDirect2D.cpp: Removed.
- platform/graphics/win/FloatRectDirect2D.cpp: Removed.
- platform/graphics/win/FloatSizeDirect2D.cpp: Removed.
- platform/graphics/win/FontCascadeDirect2D.cpp: Removed.
- platform/graphics/win/FontCustomPlatformData.cpp:
(WebCore::FontCustomPlatformData::fontPlatformData):
- platform/graphics/win/FontPlatformDataDirect2D.cpp: Removed.
- platform/graphics/win/GlyphPageTreeNodeDirect2D.cpp: Removed.
- platform/graphics/win/GradientDirect2D.cpp: Removed.
- platform/graphics/win/GraphicsContextDirect2D.cpp: Removed.
- platform/graphics/win/GraphicsContextGLDirect2D.cpp: Removed.
- platform/graphics/win/GraphicsContextPlatformPrivateDirect2D.h: Removed.
- platform/graphics/win/GraphicsContextWin.cpp:
- platform/graphics/win/GraphicsContextWin.h:
- platform/graphics/win/GraphicsLayerDirect2D.cpp: Removed.
- platform/graphics/win/GraphicsLayerDirect2D.h: Removed.
- platform/graphics/win/ImageBufferDirect2DBackend.cpp: Removed.
- platform/graphics/win/ImageBufferDirect2DBackend.h: Removed.
- platform/graphics/win/ImageDecoderDirect2D.cpp: Removed.
- platform/graphics/win/ImageDecoderDirect2D.h: Removed.
- platform/graphics/win/ImageDirect2D.cpp: Removed.
- platform/graphics/win/NativeImageDirect2D.cpp: Removed.
- platform/graphics/win/PathDirect2D.cpp: Removed.
- platform/graphics/win/PatternDirect2D.cpp: Removed.
- platform/graphics/win/PlatformContextDirect2D.cpp: Removed.
- platform/graphics/win/PlatformContextDirect2D.h: Removed.
- platform/graphics/win/SimpleFontDataDirect2D.cpp: Removed.
- platform/graphics/win/TextAnalyzerHelper.cpp: Removed.
- platform/graphics/win/TextAnalyzerHelper.h: Removed.
- platform/graphics/win/TransformationMatrixDirect2D.cpp: Removed.
- platform/win/DragImageDirect2D.cpp: Removed.
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::allocateBackingStoreIfNeeded):
(WebCore::RenderLayerFilters::beginFilterEffect):
- rendering/RenderLayerFilters.h:
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::applyResource):
- rendering/svg/RenderSVGResourceMasker.cpp:
(WebCore::RenderSVGResourceMasker::applyResource):
- rendering/svg/SVGRenderingContext.cpp:
(WebCore::SVGRenderingContext::createImageBuffer):
- rendering/svg/SVGRenderingContext.h:
- svg/graphics/SVGImage.cpp:
(WebCore::SVGImage::nativeImageForCurrentFrame):
(WebCore::SVGImage::nativeImage):
- svg/graphics/SVGImage.h:
- svg/graphics/SVGImageForContainer.cpp:
(WebCore::SVGImageForContainer::nativeImageForCurrentFrame):
- svg/graphics/SVGImageForContainer.h:
Source/WebCore/PAL:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
Direct2D and FTW have not been building for over a year. It is
time to remove them.
- pal/PlatformFTW.cmake: Removed.
Source/WebKit:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
Direct2D and FTW have not been building for over a year. It is
time to remove them.
- PlatformFTW.cmake: Removed.
- Shared/ShareableBitmap.cpp:
(WebKit::ShareableBitmap::Configuration::encode const):
(WebKit::ShareableBitmap::Configuration::decode):
(WebKit::ShareableBitmap::ShareableBitmap):
(WebKit::ShareableBitmap::~ShareableBitmap):
(WebKit::ShareableBitmap::numBytesForSize):
- Shared/ShareableBitmap.h:
(WebKit::ShareableBitmap::createPlatformImage):
(WebKit::ShareableBitmap::dxSurface): Deleted.
- Shared/win/ShareableBitmapDirect2D.cpp: Removed.
- UIProcess/BackingStore.cpp:
- UIProcess/WebPageProxy.cpp:
- UIProcess/WebPageProxy.h:
- UIProcess/win/BackingStoreDirect2D.cpp: Removed.
- UIProcess/win/WebPageProxyWin.cpp:
(WebKit::WebPageProxy::device const): Deleted.
(WebKit::WebPageProxy::setDevice): Deleted.
- UIProcess/win/WebPopupMenuProxyWin.cpp:
(WebKit::WebPopupMenuProxyWin::showPopupMenu):
(WebKit::WebPopupMenuProxyWin::paint):
(WebKit::WebPopupMenuProxyWin::setupSwapChain): Deleted.
(WebKit::WebPopupMenuProxyWin::configureBackingStore): Deleted.
- UIProcess/win/WebPopupMenuProxyWin.h:
- UIProcess/win/WebView.cpp:
(WebKit::WebView::WebView):
(WebKit::WebView::onSizeEvent):
(WebKit::WebView::setupSwapChain): Deleted.
(WebKit::WebView::configureBackingStore): Deleted.
- UIProcess/win/WebView.h:
(WebKit::WebView::d3dDevice const): Deleted.
(WebKit::WebView::d3dImmediateContext const): Deleted.
- WebProcess/WebCoreSupport/WebPopupMenu.cpp:
(WebKit::WebPopupMenu::show):
- WebProcess/WebPage/CoordinatedGraphics/DrawingAreaCoordinatedGraphics.cpp:
(WebKit::DrawingAreaCoordinatedGraphics::display):
- WebProcess/WebPage/FindController.cpp:
(WebKit::FindController::getImageForFindMatch):
Source/WebKitLegacy:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
Direct2D and FTW have not been building for over a year. It is
time to remove them.
- PlatformFTW.cmake: Removed.
Source/WebKitLegacy/win:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
Direct2D and FTW have not been building for over a year. It is
time to remove them.
- WebView.cpp:
(WebView::deleteBackingStore):
(WebView::ensureBackingStore):
(WebView::scrollBackingStore):
(WebView::sizeChanged):
(WebView::updateBackingStore):
(WebView::paint):
(WebView::paintIntoBackingStore):
(WebView::WebViewWndProc):
(WebView::notifyPreferencesChanged):
(WebView::paintWithDirect2D): Deleted.
- WebView.h:
Source/WTF:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
- wtf/PlatformFTW.cmake: Removed.
Tools:
Remove support for Direct2D
https://bugs.webkit.org/show_bug.cgi?id=234999
Reviewed by Darin Adler.
Direct2D and FTW have not been building for over a year. It is
time to remove them.
- DumpRenderTree/PixelDumpSupport.cpp:
- DumpRenderTree/PlatformWin.cmake:
- DumpRenderTree/win/PixelDumpSupportDirect2D.cpp: Removed.
- DumpRenderTree/win/PixelDumpSupportDirect2D.h: Removed.
- DumpRenderTree/win/PixelDumpSupportWin.cpp:
(createBitmapContextFromWebView):
- PlatformFTW.cmake: Removed.
- WebKitTestRunner/InjectedBundle/InjectedBundlePage.cpp:
(WTR::InjectedBundlePage::dumpDOMAsWebArchive):
- WebKitTestRunner/PlatformFTW.cmake: Removed.
- WebKitTestRunner/PlatformWebView.h:
- WebKitTestRunner/win/PlatformWebViewWin.cpp:
- WebKitTestRunner/win/TestInvocationDirect2D.cpp: Removed.
- 1:38 PM Changeset in webkit [287828] by
-
- 3 edits in trunk/Source/WebCore
Style::Resolver::keyframeRulesForName() signature should be improved
https://bugs.webkit.org/show_bug.cgi?id=235021
Reviewed by Darin Adler.
Darin pointed out during the review for bug 235008 that the method itself
should be const, not its return value.
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::keyframeRulesForName const):
(WebCore::Style::Resolver::keyframeRulesForName): Deleted.
- style/StyleResolver.h:
- 1:19 PM Changeset in webkit [287827] by
-
- 5 edits2 adds in trunk
Implicit keyframe for a CSS Animation should always use the underlying style
https://bugs.webkit.org/show_bug.cgi?id=235014
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Add a new WPT which changes the underlying style for a property that is being
animated with an @keyframes rule that doesn't explicitly specify this value
on all keyframes.
- web-platform-tests/css/css-animations/animation-change-underlying-value-changed-in-flight-expected.txt: Added.
- web-platform-tests/css/css-animations/animation-change-underlying-value-changed-in-flight.html: Added.
Source/WebCore:
When resolving keyframes for a CSS Animation in Style::Resolver::keyframeStylesForAnimation(),
we would fill implicit keyframes based on the style at the time the animation was created.
However, the underlying style may change at any point while the CSS Animation is in flight,
so we should not be filling those values.
The code that actually resolves animated styles already knows how to handle this case, which
we already supported correctly for JS-originated animations. The only thing we need to do is
to ensure we fill implicit keyframes when calling getKeyframes().
This surfaced an issue with KeyframeList::copyKeyframes() where we only copied the styles
from one set of keyframes to another, but not the timing function, which would cause a
getKeyframes() test to regress. We should also make sure to copy the composite operation
for when we support the animation-composition property (see bug 232086).
Test: imported/w3c/web-platform-tests/css/css-animations/animation-change-underlying-value-changed-in-flight.html
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
- rendering/style/KeyframeList.cpp:
(WebCore::KeyframeList::copyKeyframes):
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::keyframeStylesForAnimation):
- 11:51 AM Changeset in webkit [287826] by
-
- 4 edits in trunk
Interpolation for the "filter" property fails with a single keyframe
https://bugs.webkit.org/show_bug.cgi?id=235019
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark WPT progressions.
- web-platform-tests/css/filter-effects/animation/filter-interpolation-001-expected.txt:
Source/WebCore:
In the case of an animation with a single keyframe, the 0% or 100% value (or both) may
be implicit and the blending keyframes can have fewer than to entries. This would make
KeyframeEffect::checkForMatchingFilterFunctionLists() always store "false" values for
whether "filter" values in keyframes match and prevent any blending from happening.
In the case where we have fewer than 2 values, as long as the property is animated,
we return true.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::checkForMatchingFilterFunctionLists const):
- 10:54 AM Changeset in webkit [287825] by
-
- 7 edits in trunk/Source/WebCore
Refactor CSS property parsing helpers to be a bit more composable
https://bugs.webkit.org/show_bug.cgi?id=234869
Reviewed by Darin Adler.
Refactors primitive CSS property parsing to be built on a new composable set of
lower level primitives.
The lowest level primitive is now a "consumer" struct that only knows how to consume
a particular type for a particular token type. For example, NumberRawKnownTokenTypeNumberConsumer
only knows how to consume and return a NumberRaw if the token type is a NumberToken.
For these token specific consumers to be useful, they need to be combined together. To
do this, a higher level meta-consumer type that is not tied to a specific token is used.
These are defined as empty structs with 'using' statements to indicate which low level
consumers to use for which token token types. For example:
struct NumberRawConsumer {
using Result = std::optional<NumberRaw>;
using FunctionToken = NumberRawKnownTokenTypeFunctionConsumer;
using NumberToken = NumberRawKnownTokenTypeNumberConsumer;
};
This meta-consumer definition defines a consumer that utilizes two lower level token
specific consumers for function and number tokens.
To actuall do something with this meta-consumer definition, the consumeMetaConsumer<>(...)
function is used, which introspects which using statements are defined, and dispatches to
the corresponding token specific consumer (see MetaConsumerDispatcher for how introspection works).
In addition to primitive meta-consumer definitions, there are also definitions for meta-consumers
that can consumer more complex things without duplicate work. For example, AngleOrPercentConsumer
is a meta-consumer that consumes either an Angle or a Percent. To deal with the fact that both
of these want to operate on function tokens, the SameTokenMetaConsumer allows concatenating multiple
per-token consumers (in this case, two function token consumers) together.
Meta-consumer definitions can also define, or allow defining via a template parameter, a Transformer,
which, as the name implies, transform the output. For example, the AngleOrNumberRawToDegressTransformer
can be used to ensure that the result is a number in degrees, and doesn't have to be unwrapped by
the user.
The goal is avoid the combinatorial explosition of functions branching on token type for
more and more specialized parsing needs. For instance, an upcomping change will want to
extend consumeNumberOrPercentRawAllowingSymbolTableIdent and a few other related consumers
to also consume the identifier 'none'. Rather than duplicating all the logic, this allows
for just defining a few meta-consumer definitions utilizing almost entirely existing lower
level consumers.
- css/MediaQueryExpression.cpp:
(WebCore::consumeFirstValue):
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeFontVariationTag):
(WebCore::consumeCubicBezier):
(WebCore::consumeSpringFunction):
(WebCore::consumePerspective):
(WebCore::consumeCursor):
(WebCore::CSSPropertyParser::parseSingleValue):
(WebCore::consumeCounterStylePad):
(WebCore::consumeCounterStyleAdditiveSymbols):
(WebCore::consumeBasePaletteDescriptor):
(WebCore::consumeOverrideColorsDescriptor):
(WebCore::CSSPropertyParser::consumeFlex):
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::CalcParser::CalcParser):
(WebCore::CSSPropertyParserHelpers::consumeCalcRawWithKnownTokenTypeFunction):
(WebCore::CSSPropertyParserHelpers::computeMinimumValue):
(WebCore::CSSPropertyParserHelpers::IntegerTypeRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::IntegerTypeRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::IntegerTypeKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::IntegerTypeKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::validatedNumberRaw):
(WebCore::CSSPropertyParserHelpers::NumberRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::validatedPercentRaw):
(WebCore::CSSPropertyParserHelpers::PercentRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::PercentRawKnownTokenTypePercentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::PercentRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::PercentCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::PercentCSSPrimitiveValueWithCalcWithKnownTokenTypePercentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthRawKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleRawKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleRawKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleRawKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::AngleCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::TimeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunctionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::TimeCSSPrimitiveValueWithCalcWithKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::TimeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumberConsumer::consume):
(WebCore::CSSPropertyParserHelpers::ResolutionCSSPrimitiveValueWithKnownTokenTypeDimensionConsumer::consume):
(WebCore::CSSPropertyParserHelpers::TransformApplier::apply):
(WebCore::CSSPropertyParserHelpers::applyTransform):
(WebCore::CSSPropertyParserHelpers::IdentityTransformer::transform):
(WebCore::CSSPropertyParserHelpers::RawVariantTransformerBase::transform):
(WebCore::CSSPropertyParserHelpers::AngleOrNumberRawToDegressTransformer::transform):
(WebCore::CSSPropertyParserHelpers::NumberOrPercentDividedBy100Transformer::transform):
(WebCore::CSSPropertyParserHelpers::MetaConsumerDispatcher::consume):
(WebCore::CSSPropertyParserHelpers::consumeMetaConsumer):
(WebCore::CSSPropertyParserHelpers::SameTokenMetaConsumerApplier::consume):
(WebCore::CSSPropertyParserHelpers::SameTokenMetaConsumer::consume):
(WebCore::CSSPropertyParserHelpers::LengthOrPercentRawTransformer::transform):
(WebCore::CSSPropertyParserHelpers::AngleOrNumberRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::NumberOrPercentRawKnownTokenTypeIdentConsumer::consume):
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeRaw):
(WebCore::CSSPropertyParserHelpers::consumeIntegerType):
(WebCore::CSSPropertyParserHelpers::consumeIntegerRaw):
(WebCore::CSSPropertyParserHelpers::consumeInteger):
(WebCore::CSSPropertyParserHelpers::consumeIntegerZeroAndGreaterRaw):
(WebCore::CSSPropertyParserHelpers::consumeIntegerZeroAndGreater):
(WebCore::CSSPropertyParserHelpers::consumePositiveIntegerRaw):
(WebCore::CSSPropertyParserHelpers::consumePositiveInteger):
(WebCore::CSSPropertyParserHelpers::consumeNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumber):
(WebCore::CSSPropertyParserHelpers::consumePercentRaw):
(WebCore::CSSPropertyParserHelpers::consumePercentAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumePercent):
(WebCore::CSSPropertyParserHelpers::consumePercentWorkerSafe):
(WebCore::CSSPropertyParserHelpers::consumeLengthRaw):
(WebCore::CSSPropertyParserHelpers::consumeLength):
(WebCore::CSSPropertyParserHelpers::consumeAngleRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngle):
(WebCore::CSSPropertyParserHelpers::consumeAngleWorkerSafe):
(WebCore::CSSPropertyParserHelpers::consumeTime):
(WebCore::CSSPropertyParserHelpers::consumeResolution):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeLengthOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeAngleOrNumberRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentRaw):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercentRawAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::consumeNumberOrPercent):
(WebCore::CSSPropertyParserHelpers::consumeFontWeightNumberRaw):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::consumeOptionalAlphaAllowingSymbolTableIdent):
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentNumber):
(WebCore::CSSPropertyParserHelpers::normalizeRGBComponentPercentage):
(WebCore::CSSPropertyParserHelpers::RGBNormalizingTransformer::transform):
(WebCore::CSSPropertyParserHelpers::consumeRelativeRGBComponent):
(WebCore::CSSPropertyParserHelpers::clampRGBComponent):
(WebCore::CSSPropertyParserHelpers::consumeRGBOrHSLOptionalAlpha):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeRGBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHSLParameters):
(WebCore::CSSPropertyParserHelpers::parseHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeHWBParameters):
(WebCore::CSSPropertyParserHelpers::parseLabParameters):
(WebCore::CSSPropertyParserHelpers::parseLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseNonRelativeLCHParameters):
(WebCore::CSSPropertyParserHelpers::parseRelativeColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForRGBTypes):
(WebCore::CSSPropertyParserHelpers::parseColorFunctionForXYZTypes):
(WebCore::CSSPropertyParserHelpers::parseColorContrastFunctionParameters):
(WebCore::CSSPropertyParserHelpers::consumeColorMixComponent):
(WebCore::CSSPropertyParserHelpers::consumePositionComponent):
(WebCore::CSSPropertyParserHelpers::consumePositionCoordinates):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedGradientColorStop):
(WebCore::CSSPropertyParserHelpers::consumeCrossFade):
(WebCore::CSSPropertyParserHelpers::consumeLineHeightRaw):
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeInteger): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeIntegerTypeRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeNumberRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumePercentRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeAngleRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::CalcParser::consumeLengthRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeRawWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeIntegerTypeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawWithKnownTokenTypeIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentRawWithKnownTokenTypePercentage): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentRawWithKnownTokenTypeIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumePercentCSSPrimitiveValueWithCalcWithKnownTokenTypePercentage): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthRawWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthRawWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthCSSPrimitiveValueWithCalcWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeLengthCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleCSSPrimitiveValueWithCalcWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeTimeCSSPrimitiveValueWithCalcWithKnownTokenTypeFunction): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeTimeCSSPrimitiveValueWithCalcWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeTimeCSSPrimitiveValueWithCalcWithKnownTokenTypeNumber): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeResolutionCSSPrimitiveValueWithKnownTokenTypeDimension): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawOrNumberRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeAngleRawOrNumberRawAllowingSymbolTableIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentRaw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentDividedBy100Raw): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentRawAllowingSymbolTableIdent): Deleted.
(WebCore::CSSPropertyParserHelpers::consumeNumberRawOrPercentDividedBy100RawAllowingSymbolTableIdent): Deleted.
- css/parser/CSSPropertyParserHelpers.h:
- css/parser/CSSPropertyParserWorkerSafe.cpp:
(WebCore::CSSPropertyParserHelpersWorkerSafe::consumeFontFeatureTag):
- style/StyleResolveForFontRaw.cpp:
(WebCore::Style::resolveForFontRaw):
- 10:22 AM Changeset in webkit [287824] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Introduce a dedicated structure for Line::Run's trailing whitespace information
https://bugs.webkit.org/show_bug.cgi?id=235010
Reviewed by Antti Koivisto.
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::Run::trailingWhitespaceType):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::Line::Run::expand):
(WebCore::Layout::Line::Run::removeTrailingWhitespace):
(WebCore::Layout::m_bidiLevel): Deleted.
(WebCore::Layout::m_textContent): Deleted.
- layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::Run::hasTrailingWhitespace const):
(WebCore::Layout::Line::Run::trailingWhitespaceWidth const):
(WebCore::Layout::Line::Run::hasCollapsibleTrailingWhitespace const):
(WebCore::Layout::Line::Run::hasCollapsedTrailingWhitespace const):
(WebCore::Layout::Line::Run::trailingWhitespaceType const): Deleted.
- 10:18 AM Changeset in webkit [287823] by
-
- 33 edits2 copies2 moves13 adds in trunk/LayoutTests
[css-grid] Resync web-platform-tests/css/css-grid tests from upstream
https://bugs.webkit.org/show_bug.cgi?id=234879
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-002-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-img-last-baseline-002-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-last-baseline-002-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-003-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-rtl-last-baseline-004-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-003-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-004-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-003-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-align-self-vertWM-last-baseline-004-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-002-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-002-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-img-last-baseline-002.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-last-baseline-002-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-003-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-rtl-last-baseline-004-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-003-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-004-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-003-expected.html:
- web-platform-tests/css/css-grid/abspos/grid-abspos-staticpos-justify-self-vertWM-last-baseline-004-expected.html:
- web-platform-tests/css/css-grid/alignment/grid-container-auto-margins-scrollbars-001-expected.html:
- web-platform-tests/css/css-grid/alignment/grid-content-alignment-with-abspos-001-expected.txt: Added.
- web-platform-tests/css/css-grid/alignment/grid-content-alignment-with-abspos-001.html: Added.
- web-platform-tests/css/css-grid/alignment/self-baseline/w3c-import.log:
- web-platform-tests/css/css-grid/alignment/w3c-import.log:
- web-platform-tests/css/css-grid/grid-definition/w3c-import.log:
- web-platform-tests/css/css-grid/grid-items/grid-intrinsic-maximums-expected.html: Added.
- web-platform-tests/css/css-grid/grid-items/grid-intrinsic-maximums.html: Added.
- web-platform-tests/css/css-grid/grid-items/w3c-import.log:
- web-platform-tests/css/css-grid/grid-model/grid-container-scrollbars-sizing-002-expected.html:
- web-platform-tests/css/css-grid/grid-model/w3c-import.log:
- web-platform-tests/css/css-grid/layout-algorithm/flex-tracks-with-fractional-size-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-expected.xht.
- web-platform-tests/css/css-grid/layout-algorithm/flex-tracks-with-fractional-size.html: Added.
- web-platform-tests/css/css-grid/layout-algorithm/w3c-import.log:
- web-platform-tests/css/css-grid/nested-grid-item-block-size-001-expected.html: Added.
- web-platform-tests/css/css-grid/nested-grid-item-block-size-001.html: Added.
- web-platform-tests/css/css-grid/parsing/grid-area-computed-expected.txt:
- web-platform-tests/css/css-grid/parsing/grid-area-computed.html:
- web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-001-expected.xht: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-expected.xht.
- web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-001.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows.html.
- web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-002-expected.xht: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-expected.xht.
- web-platform-tests/css/css-grid/placement/grid-placement-items-spanning-multiple-rows-002.html: Added.
- web-platform-tests/css/css-grid/placement/w3c-import.log:
- web-platform-tests/css/css-grid/subgrid/grid-subgridded-axis-auto-repeater-crash-001.html: Added.
- web-platform-tests/css/css-grid/subgrid/grid-subgridded-axis-auto-repeater-crash-002.html: Added.
- web-platform-tests/css/css-grid/subgrid/grid-template-invalid.html: Added.
- web-platform-tests/css/css-grid/subgrid/grid-template-valid.html: Added.
- web-platform-tests/css/css-grid/subgrid/w3c-import.log:
- web-platform-tests/css/css-grid/support/colors-8x16.png: Added.
- web-platform-tests/css/css-grid/support/w3c-import.log:
LayoutTests:
- 10:13 AM Changeset in webkit [287822] by
-
- 4 edits in trunk
translate() function in transform property should remove trailing 0 value when parsing
https://bugs.webkit.org/show_bug.cgi?id=235016
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark WPT progression.
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
Source/WebCore:
- css/parser/CSSPropertyParser.cpp:
(WebCore::consumeTransformValue):
- 10:06 AM Changeset in webkit [287821] by
-
- 5 edits in trunk/Source
Add helpers to access CoreGraphics color spaces more easily in generic contexts
https://bugs.webkit.org/show_bug.cgi?id=235004
Reviewed by Darin Adler.
Source/WebCore:
Add some structs and type trait helpers to allow accessing the CoreGraphics
CGColorSpaceRef associated with a ColorSpace enum value at compile time. This
will be useful for generalizing some of the gradient rendering code optimizations
I have planned.
- platform/graphics/cg/ColorCG.cpp:
(WebCore::Color::createAndLosslesslyConvertToSupportedColorSpace):
- platform/graphics/cg/ColorSpaceCG.cpp:
(WebCore::colorSpaceForCGColorSpace):
- platform/graphics/cg/ColorSpaceCG.h:
(WebCore::CGColorSpaceMapping<ColorSpace::SRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::A98RGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::DisplayP3>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedA98RGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedDisplayP3>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedRec2020>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedLinearSRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedProPhotoRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ExtendedSRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::Rec2020>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::LinearSRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::ProPhotoRGB>::colorSpace):
(WebCore::CGColorSpaceMapping<ColorSpace::XYZ_D50>::colorSpace):
(WebCore::CGColorSpaceMappingGetter::colorSpace):
(WebCore::cachedNullableCGColorSpace):
Source/WTF:
- wtf/PlatformHave.h:
Update have macro, HAVE_CORE_GRAPHICS_XYZ_COLOR_SPACE, to have a more specific name,
HAVE_CORE_GRAPHICS_XYZ_D50_COLOR_SPACE, which is really what it is.
- 7:35 AM Changeset in webkit [287820] by
-
- 6 edits in trunk
[Web Animations] getKeyframes() for a CSS Animation should not use computed style for keyframes
https://bugs.webkit.org/show_bug.cgi?id=235008
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark WPT progression.
- web-platform-tests/css/css-animations/KeyframeEffect-getKeyframes.tentative-expected.txt:
Source/WebCore:
Until now, when calling getKeyframes() on a keyframe effect associated with a CSS Animation, we would
serialize for each keyframe the computed style for the animated properties. However, the Web Aniations
spec says (https://drafts.csswg.org/web-animations-1/#dom-keyframeeffect-getkeyframes) that the value
to use should "be the result of serializing the property value of declaration by passing declaration
to the algorithm to serialize a CSS value [CSSOM]."
One way we can get to the value as specified on the @keyframes rule rather than the computed style
is to access the StyleRuleKeyframe object directly as stored by the Style::Resolver. This keeps the
raw CSSValues as parsed.
To do this, we first refactor Style::Resolver::keyframeStylesForAnimation() such that all the code
that creates a Vector<Ref<StyleRuleKeyframe>> with deduplicated keyframe rules is in the new dedicated
method Style::Resolver::keyframeRulesForName().
Then, in KeyframeEffect::getKeyframes(), we can call into this function to obtain the set of keyframe
rules for the associated CSS Animation's name and read the style from there. Note that these values
may contain unsubstituted --var() values, so in that case for now we still use the computed style.
- animation/KeyframeEffect.cpp:
(WebCore::KeyframeEffect::getKeyframes):
- style/StyleResolver.cpp:
(WebCore::Style::Resolver::keyframeRulesForName):
(WebCore::Style::Resolver::keyframeStylesForAnimation):
- style/StyleResolver.h:
- 5:50 AM Changeset in webkit [287819] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Line::Run needs access to FontCascade
https://bugs.webkit.org/show_bug.cgi?id=235009
Reviewed by Antti Koivisto.
This is in preparation for computing trimmed trailing content width properly.
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::append):
(WebCore::Layout::Line::appendLineBreak):
(WebCore::Layout::Line::appendWordBreakOpportunity):
(WebCore::Layout::Line::Run::Run):
(WebCore::Layout::m_textContent):
(WebCore::Layout::m_style): Deleted. - We learnt in the past that expanding structures like this (stack backed, large in number) could
lead to measurable perf regression.
- layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::Run::shouldTrailingWhitespaceHang const):
(WebCore::Layout::Line::Run::inlineDirection const):
(WebCore::Layout::Line::Run::letterSpacing const):
(WebCore::Layout::Line::Run::hasTextCombine const):
- 1:01 AM Changeset in webkit [287818] by
-
- 12 edits in trunk/Source/WebCore
Use IsNegation bit for more efficient pseudo-class style invalidation
https://bugs.webkit.org/show_bug.cgi?id=235003
Reviewed by Simon Fraser.
We now know if a given invalidation ruleset is for negated context. We can use this to avoid
unnecessary traversal in pseudo-class invalidation, similar to what we already do with classes.
- dom/Document.cpp:
(WebCore::Document::updateHoverActiveState):
- dom/Element.cpp:
(WebCore::Element::setActive):
(WebCore::Element::setFocus):
(WebCore::Element::setHasFocusWithin):
(WebCore::Element::setHovered):
(WebCore::Element::setBeingDragged):
Provide the value for invalidation.
- html/HTMLFieldSetElement.cpp:
(WebCore::HTMLFieldSetElement::addInvalidDescendant):
(WebCore::HTMLFieldSetElement::removeInvalidDescendant):
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::setAncestorDisabled):
(WebCore::HTMLFormControlElement::parseAttribute):
(WebCore::HTMLFormControlElement::updateValidity):
- html/HTMLFormElement.cpp:
(WebCore::HTMLFormElement::registerInvalidAssociatedFormControl):
(WebCore::HTMLFormElement::removeInvalidAssociatedFormControlIfNeeded):
- html/HTMLInputElement.cpp:
(WebCore::HTMLInputElement::setChecked):
- html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::parseAttribute):
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute):
(WebCore::HTMLOptionElement::setSelectedState):
- page/EventHandler.cpp:
(WebCore::EventHandler::internalKeyEvent):
- style/PseudoClassChangeInvalidation.cpp:
(WebCore::Style::PseudoClassChangeInvalidation::computeInvalidation):
(WebCore::Style::PseudoClassChangeInvalidation::collectRuleSets):
Setting a pseudo-class can only make a regular selector (not inside :not()) start matching.
Setting a pseudo-class can only make a negated selector (inside :not()) stop matching.
We only need to invalidate for the first case after the mutation has happened and for the second
case before it happens.
The cases are reversed when pseudo-class is unset.
(WebCore::Style::PseudoClassChangeInvalidation::invalidateBeforeChange):
(WebCore::Style::PseudoClassChangeInvalidation::invalidateAfterChange):
(WebCore::Style::PseudoClassChangeInvalidation::invalidateStyleWithRuleSets): Deleted.
- style/PseudoClassChangeInvalidation.h:
(WebCore::Style::emplace):
Add a helper since std::optional::emplace() is awkward to use with std::initializer_list.
(WebCore::Style::PseudoClassChangeInvalidation::PseudoClassChangeInvalidation):
(WebCore::Style::PseudoClassChangeInvalidation::~PseudoClassChangeInvalidation):
Jan 8, 2022:
- 11:43 PM Changeset in webkit [287817] by
-
- 12 edits2 adds in trunk
If the drop-shadow filter has no color, it should use the value of the color property
https://bugs.webkit.org/show_bug.cgi?id=235012
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
- web-platform-tests/css/filter-effects/animation/filter-interpolation-004-expected.txt:
- web-platform-tests/css/filter-effects/parsing/filter-computed-expected.txt:
Source/WebCore:
https://drafts.fxtf.org/filter-effects-1/#funcdef-filter-drop-shadow states that if
drop-shadow() does not specify a color, the value of the color property should be used.
Test: css3/filters/drop-shadow-no-color.html
- style/StyleBuilderState.cpp:
(WebCore::Style::BuilderState::createFilterOperations):
LayoutTests:
Fix tests to serialize with rgb(0, 0, 0) instead of the transparent color.
- css3/filters/backdrop/backdropfilter-property-computed-style-expected.txt:
- css3/filters/backdrop/backdropfilter-property-computed-style.html:
- css3/filters/drop-shadow-no-color-expected.html: Added.
- css3/filters/drop-shadow-no-color.html: Added.
- css3/filters/filter-property-computed-style-expected.txt:
- css3/filters/filter-property-computed-style.html:
- css3/filters/unprefixed-expected.txt:
- css3/filters/unprefixed.html:
- 8:16 PM Changeset in webkit [287816] by
-
- 2 edits in trunk/LayoutTests
[GLIB] Update test expectations for known failures.
https://bugs.webkit.org/show_bug.cgi?id=234972
Unreviewed test gardening.
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2022-01-08
- platform/glib/TestExpectations:
- 3:40 PM Changeset in webkit [287815] by
-
- 8 edits in trunk
Fix some CSS filter interpolation issues
https://bugs.webkit.org/show_bug.cgi?id=235007
Reviewed by Antoine Quint.
LayoutTests/imported/w3c:
More passing now.
- web-platform-tests/css/filter-effects/animation/filter-interpolation-002-expected.txt:
- web-platform-tests/css/filter-effects/animation/filter-interpolation-003-expected.txt:
- web-platform-tests/css/filter-effects/animation/filter-interpolation-004-expected.txt:
Source/WebCore:
Ensure that filter values are clamped after animation according to
https://drafts.fxtf.org/filter-effects-1/.
Tested by WPT.
- platform/graphics/filters/FilterOperation.cpp:
(WebCore::BasicColorMatrixFilterOperation::blend):
(WebCore::BasicComponentTransferFilterOperation::blend):
(WebCore::BlurFilterOperation::blend):
(WebCore::DropShadowFilterOperation::blend):
LayoutTests:
imported/w3c/web-platform-tests/css/filter-effects/animation/filter-interpolation-004.html no longer asserts.
- 2:12 PM Changeset in webkit [287814] by
-
- 4 edits1 add in trunk
Null pointer crash when calling into
-[WebView close]in-webView:didCommitLoadForFrame:
https://bugs.webkit.org/show_bug.cgi?id=234994
rdar://86845512
Reviewed by Chris Dumez and Geoff Garen.
Source/WebCore:
Add a null check in
FrameLoader::dispatchDidCommitLoad()before calling into any methods on the frame's Page.
Since we called into the client layer todispatchDidCommitLoad()immediately prior to this, a legacy WebKit
client may have already caused the page to be destroyed (e.g. by closing the web view). Since Frame's pointer
to Page is a WeakPtr, this triggers null derefs when attempting to call eitherdidCommitLoad()or
remoteInspectorInformationDidChange().
Test: WebKitLegacy.CloseWhileCommittingLoad
- loader/FrameLoader.cpp:
(WebCore::FrameLoader::dispatchDidCommitLoad):
Tools:
Add a new API test to exercise the fix.
- TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
- TestWebKitAPI/Tests/WebKitCocoa/CloseWhileCommittingLoad.mm: Added.
(-[CloseWhileCommittingLoadDelegate webView:didCommitLoadForFrame:]):
(TestWebKitAPI::TEST):
- 10:26 AM Changeset in webkit [287813] by
-
- 6 edits608 adds in trunk/LayoutTests
Import css/filter-effects web platform tests
https://bugs.webkit.org/show_bug.cgi?id=235001
Reviewed by Alan Bujtas.
LayoutTests/imported/w3c:
Imported from WPT ba3997e9f9a2f10a00688061f785d4c9b70cc5d5.
- resources/import-expectations.json:
- resources/resource-files.json:
- web-platform-tests/css/filter-effects/META.yml: Added.
- web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-001-expected.txt: Added.
- web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-001.html: Added.
- web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-002-expected.txt: Added.
- web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-002.html: Added.
- web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-003-expected.txt: Added.
- web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-003.html: Added.
- web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-004-expected.txt: Added.
- web-platform-tests/css/filter-effects/animation/backdrop-filter-interpolation-004.html: Added.
- web-platform-tests/css/filter-effects/animation/filter-interpolation-001-expected.txt: Added.
- web-platform-tests/css/filter-effects/animation/filter-interpolation-001.html: Added.
- web-platform-tests/css/filter-effects/animation/filter-interpolation-002-expected.txt: Added.
- web-platform-tests/css/filter-effects/animation/filter-interpolation-002.html: Added.
- web-platform-tests/css/filter-effects/animation/filter-interpolation-003.html: Added.
- web-platform-tests/css/filter-effects/animation/filter-interpolation-004.html: Added.
- web-platform-tests/css/filter-effects/animation/w3c-import.log: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-background-color-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-background-color-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-background-color.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-2-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-2-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-2.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-opacity.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-basic.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-clip-rect-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-clip-rect.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-clip-rounded-clip-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-clip-rounded-clip-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-clip-rounded-clip.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-clipped-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-clipped-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-clipped.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-containing-block-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-containing-block-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-containing-block.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-edge-behavior-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-edge-behavior-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-edge-behavior.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-edge-clipping.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-edge-pixels-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-edge-pixels-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-edge-pixels.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-fixed-clip-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-fixed-clip-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-fixed-clip.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-isolation-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-isolation-fixed-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-isolation-fixed.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-isolation-isolate-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-isolation-isolate.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-isolation-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-isolation.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-non-isolation-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-opacity-rounded-clip-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-opacity-rounded-clip-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-opacity-rounded-clip.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-paint-order-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-paint-order-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-paint-order.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-plus-filter-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-plus-filter-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-plus-filter.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-plus-opacity-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-plus-opacity-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-plus-opacity.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-reference-filter-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-reference-filter.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-root-element-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-root-element-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-root-element.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-svg-foreignObject-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-svg-foreignObject.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-update-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-update-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-update.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-zero-size-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-zero-size-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filter-zero-size.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-brightness-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-brightness-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-brightness.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-contrast-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-contrast-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-contrast.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-grayscale-001.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-grayscale-002.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-grayscale-003.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-hue-rotate-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-hue-rotate-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-hue-rotate.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-invert-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-invert-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-invert.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-opacity-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-opacity-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-opacity.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-saturate-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-saturate-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-saturate.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-sepia-expected.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-sepia-ref.html: Added.
- web-platform-tests/css/filter-effects/backdrop-filters-sepia.html: Added.
- web-platform-tests/css/filter-effects/background-image-blur-repaint-expected.html: Added.
- web-platform-tests/css/filter-effects/background-image-blur-repaint.html: Added.
- web-platform-tests/css/filter-effects/blur-clip-stacking-context-001-expected.html: Added.
- web-platform-tests/css/filter-effects/blur-clip-stacking-context-001.html: Added.
- web-platform-tests/css/filter-effects/blur-clip-stacking-context-002-expected-mismatch.html: Added.
- web-platform-tests/css/filter-effects/blur-clip-stacking-context-002.html: Added.
- web-platform-tests/css/filter-effects/blur-clip-stacking-context-ref.html: Added.
- web-platform-tests/css/filter-effects/clip-under-filter-001-expected.html: Added.
- web-platform-tests/css/filter-effects/clip-under-filter-001.html: Added.
- web-platform-tests/css/filter-effects/clip-under-filter-002-expected.html: Added.
- web-platform-tests/css/filter-effects/clip-under-filter-002.html: Added.
- web-platform-tests/css/filter-effects/clip-under-filter-003-expected.html: Added.
- web-platform-tests/css/filter-effects/clip-under-filter-003.html: Added.
- web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-001-expected.txt: Added.
- web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-001.html: Added.
- web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-002-expected.txt: Added.
- web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-002.html: Added.
- web-platform-tests/css/filter-effects/crashtests/w3c-import.log: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-blur-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-blur-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-blur.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-brightness-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-brightness-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-brightness.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-combined-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-combined-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-combined.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-contrast-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-contrast-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-contrast.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-drop-shadow-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-drop-shadow-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-drop-shadow.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-grayscale-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-grayscale-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-grayscale.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-hue-rotate-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-hue-rotate-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-hue-rotate.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-invert-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-invert-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-invert.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-opacity-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-opacity-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-opacity.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-saturate-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-saturate-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-saturate.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-sepia-expected.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-sepia-ref.html: Added.
- web-platform-tests/css/filter-effects/css-backdrop-filters-animation-sepia.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-blur-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-blur-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-blur.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-brightness-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-brightness-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-brightness.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-combined-001-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-combined-001-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-combined-001.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-contrast-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-contrast-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-contrast.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-drop-shadow-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-drop-shadow-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-drop-shadow.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-grayscale-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-grayscale-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-grayscale.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-hue-rotate-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-hue-rotate-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-hue-rotate.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-invert-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-invert-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-invert.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-opacity-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-opacity-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-opacity.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-saturate-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-saturate-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-saturate.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-sepia-expected.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-sepia-ref.html: Added.
- web-platform-tests/css/filter-effects/css-filters-animation-sepia.html: Added.
- web-platform-tests/css/filter-effects/drop-shadow-clipped-001-expected.html: Added.
- web-platform-tests/css/filter-effects/drop-shadow-clipped-001.html: Added.
- web-platform-tests/css/filter-effects/dynamic-filter-changes-001-expected.html: Added.
- web-platform-tests/css/filter-effects/dynamic-filter-changes-001.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-add-hw-001-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-add-hw-001.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-after-001-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-after-001.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-delete-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-delete.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-displacement-negative-scale-001-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-displacement-negative-scale-001.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-feimage-001-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-feimage-001.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-feimage-002-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-feimage-002.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-feimage-003-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-feimage-003.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-lighting-no-light.tentative-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-lighting-no-light.tentative.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-local-url-with-base-001-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-local-url-with-base-001.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-merge-no-inputs.tentative-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-merge-no-inputs.tentative.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-obb-dimensions-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-obb-dimensions.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-on-span-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-on-span.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-on-transparent-element-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-on-transparent-element.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-rename-001-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-rename-001.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-rename-002-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-rename-002.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-reset-style-delete-crash-expected.txt: Added.
- web-platform-tests/css/filter-effects/effect-reference-reset-style-delete-crash.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-source-alpha-001-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-source-alpha-001.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-source-alpha-002-expected.html: Added.
- web-platform-tests/css/filter-effects/effect-reference-source-alpha-002.html: Added.
- web-platform-tests/css/filter-effects/empty-element-with-filter-expected.html: Added.
- web-platform-tests/css/filter-effects/empty-element-with-filter.html: Added.
- web-platform-tests/css/filter-effects/fecolormatrix-type-expected.html: Added.
- web-platform-tests/css/filter-effects/fecolormatrix-type-ref.html: Added.
- web-platform-tests/css/filter-effects/fecolormatrix-type.html: Added.
- web-platform-tests/css/filter-effects/fecomposite-non-zero-inoffset-001-expected.html: Added.
- web-platform-tests/css/filter-effects/fecomposite-non-zero-inoffset-001.html: Added.
- web-platform-tests/css/filter-effects/feflood-with-filter-reference-expected.html: Added.
- web-platform-tests/css/filter-effects/feflood-with-filter-reference.html: Added.
- web-platform-tests/css/filter-effects/feimage-circular-reference-foreign-object-crash-expected.txt: Added.
- web-platform-tests/css/filter-effects/feimage-circular-reference-foreign-object-crash.html: Added.
- web-platform-tests/css/filter-effects/feimage-reference-foreign-object-crash-expected.txt: Added.
- web-platform-tests/css/filter-effects/feimage-reference-foreign-object-crash.html: Added.
- web-platform-tests/css/filter-effects/feimage-target-child-reference-crash-expected.txt: Added.
- web-platform-tests/css/filter-effects/feimage-target-child-reference-crash.html: Added.
- web-platform-tests/css/filter-effects/felighting-no-light-source-style-update-crash-expected.txt: Added.
- web-platform-tests/css/filter-effects/felighting-no-light-source-style-update-crash.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-abspos-inline-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-abspos-inline-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-abspos-inline-001.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-abspos-inline-002-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-abspos-inline-002.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-abspos-inline-003-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-abspos-inline-003-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-abspos-inline-003.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-dynamic-1-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-dynamic-1a-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-dynamic-1a.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-dynamic-1b-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-cb-dynamic-1b.html: Added.
- web-platform-tests/css/filter-effects/filter-contrast-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-contrast-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-contrast-001.html: Added.
- web-platform-tests/css/filter-effects/filter-contrast-002-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-contrast-002-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-contrast-002.html: Added.
- web-platform-tests/css/filter-effects/filter-contrast-003-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-contrast-003-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-contrast-003.html: Added.
- web-platform-tests/css/filter-effects/filter-effect-remove-unattached-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-effect-remove-unattached.html: Added.
- web-platform-tests/css/filter-effects/filter-external-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-external-001-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-external-001-test.html: Added.
- web-platform-tests/css/filter-effects/filter-external-002-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-external-002-test.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-001.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-002-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-002.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-003-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-003.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-004-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-004.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-005-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-005.html: Added.
- web-platform-tests/css/filter-effects/filter-grayscale-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-hue_rotate-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-hue_rotate-001-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-hue_rotate-001-test.html: Added.
- web-platform-tests/css/filter-effects/filter-invert-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-invert-001-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-invert-001-test.html: Added.
- web-platform-tests/css/filter-effects/filter-invert-002-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-invert-002-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-invert-002-test.html: Added.
- web-platform-tests/css/filter-effects/filter-region-negative-positioned-child-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-region-negative-positioned-child-001.html: Added.
- web-platform-tests/css/filter-effects/filter-region-transformed-child-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-region-transformed-child-001.html: Added.
- web-platform-tests/css/filter-effects/filter-region-transformed-composited-child-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-region-transformed-composited-child-001.html: Added.
- web-platform-tests/css/filter-effects/filter-saturate-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-saturate-001-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-saturate-001-test.html: Added.
- web-platform-tests/css/filter-effects/filter-scale-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-scale-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-scale-001.html: Added.
- web-platform-tests/css/filter-effects/filter-scaling-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-scaling-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-scaling-001.html: Added.
- web-platform-tests/css/filter-effects/filter-subregion-01-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-subregion-01-ref.html: Added.
- web-platform-tests/css/filter-effects/filter-subregion-01.html: Added.
- web-platform-tests/css/filter-effects/filter-turbulence-invalid-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-turbulence-invalid-001.html: Added.
- web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filter-url-to-non-existent-filter-001.html: Added.
- web-platform-tests/css/filter-effects/filtered-block-is-container-expected.html: Added.
- web-platform-tests/css/filter-effects/filtered-block-is-container-ref.html: Added.
- web-platform-tests/css/filter-effects/filtered-block-is-container.html: Added.
- web-platform-tests/css/filter-effects/filtered-html-is-not-container-expected.html: Added.
- web-platform-tests/css/filter-effects/filtered-html-is-not-container-ref.html: Added.
- web-platform-tests/css/filter-effects/filtered-html-is-not-container.html: Added.
- web-platform-tests/css/filter-effects/filtered-inline-applies-to-float-expected.html: Added.
- web-platform-tests/css/filter-effects/filtered-inline-applies-to-float-ref.html: Added.
- web-platform-tests/css/filter-effects/filtered-inline-applies-to-float.html: Added.
- web-platform-tests/css/filter-effects/filtered-inline-is-container-expected.html: Added.
- web-platform-tests/css/filter-effects/filtered-inline-is-container-ref.html: Added.
- web-platform-tests/css/filter-effects/filtered-inline-is-container.html: Added.
- web-platform-tests/css/filter-effects/filters-drop-shadow-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filters-drop-shadow-001.html: Added.
- web-platform-tests/css/filter-effects/filters-drop-shadow-002-expected.html: Added.
- web-platform-tests/css/filter-effects/filters-drop-shadow-002.html: Added.
- web-platform-tests/css/filter-effects/filters-grayscale-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filters-grayscale-001-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filters-grayscale-001-test.html: Added.
- web-platform-tests/css/filter-effects/filters-opacity-001-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filters-opacity-001-test.html: Added.
- web-platform-tests/css/filter-effects/filters-opacity-002-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filters-opacity-002-test.html: Added.
- web-platform-tests/css/filter-effects/filters-sepia-001-ref.html: Added.
- web-platform-tests/css/filter-effects/filters-sepia-001-test-expected.html: Added.
- web-platform-tests/css/filter-effects/filters-sepia-001-test.html: Added.
- web-platform-tests/css/filter-effects/filters-test-brightness-001-expected.html: Added.
- web-platform-tests/css/filter-effects/filters-test-brightness-001.html: Added.
- web-platform-tests/css/filter-effects/filters-test-brightness-002-expected.html: Added.
- web-platform-tests/css/filter-effects/filters-test-brightness-002.html: Added.
- web-platform-tests/css/filter-effects/filters-test-brightness-003-expected.html: Added.
- web-platform-tests/css/filter-effects/filters-test-brightness-003.html: Added.
- web-platform-tests/css/filter-effects/idlharness.any-expected.txt: Added.
- web-platform-tests/css/filter-effects/idlharness.any.html: Added.
- web-platform-tests/css/filter-effects/idlharness.any.js: Added.
- web-platform-tests/css/filter-effects/idlharness.any.serviceworker-expected.txt: Added.
- web-platform-tests/css/filter-effects/idlharness.any.serviceworker.html: Added.
- web-platform-tests/css/filter-effects/idlharness.any.worker-expected.txt: Added.
- web-platform-tests/css/filter-effects/idlharness.any.worker.html: Added.
- web-platform-tests/css/filter-effects/inheritance-expected.txt: Added.
- web-platform-tests/css/filter-effects/inheritance.html: Added.
- web-platform-tests/css/filter-effects/morphology-mirrored-expected.html: Added.
- web-platform-tests/css/filter-effects/morphology-mirrored.html: Added.
- web-platform-tests/css/filter-effects/parsing/backdrop-filter-computed-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/backdrop-filter-computed.html: Added.
- web-platform-tests/css/filter-effects/parsing/backdrop-filter-parsing-invalid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/backdrop-filter-parsing-invalid.html: Added.
- web-platform-tests/css/filter-effects/parsing/backdrop-filter-parsing-valid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/backdrop-filter-parsing-valid.html: Added.
- web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-computed-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-computed.html: Added.
- web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-parsing-invalid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-parsing-invalid.html: Added.
- web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-parsing-valid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/color-interpolation-filters-parsing-valid.html: Added.
- web-platform-tests/css/filter-effects/parsing/filter-computed-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/filter-computed.html: Added.
- web-platform-tests/css/filter-effects/parsing/filter-parsing-invalid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/filter-parsing-invalid.html: Added.
- web-platform-tests/css/filter-effects/parsing/filter-parsing-valid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/filter-parsing-valid.html: Added.
- web-platform-tests/css/filter-effects/parsing/flood-color-computed-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/flood-color-computed.html: Added.
- web-platform-tests/css/filter-effects/parsing/flood-color-invalid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/flood-color-invalid.html: Added.
- web-platform-tests/css/filter-effects/parsing/flood-color-valid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/flood-color-valid.html: Added.
- web-platform-tests/css/filter-effects/parsing/flood-opacity-computed-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/flood-opacity-computed.svg: Added.
- web-platform-tests/css/filter-effects/parsing/flood-opacity-invalid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/flood-opacity-invalid.svg: Added.
- web-platform-tests/css/filter-effects/parsing/flood-opacity-valid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/flood-opacity-valid.svg: Added.
- web-platform-tests/css/filter-effects/parsing/lighting-color-computed-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/lighting-color-computed.html: Added.
- web-platform-tests/css/filter-effects/parsing/lighting-color-parsing-invalid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/lighting-color-parsing-invalid.html: Added.
- web-platform-tests/css/filter-effects/parsing/lighting-color-parsing-valid-expected.txt: Added.
- web-platform-tests/css/filter-effects/parsing/lighting-color-parsing-valid.html: Added.
- web-platform-tests/css/filter-effects/parsing/w3c-import.log: Added.
- web-platform-tests/css/filter-effects/reference-filter-update-on-attribute-change-001-expected.html: Added.
- web-platform-tests/css/filter-effects/reference-filter-update-on-attribute-change-001.html: Added.
- web-platform-tests/css/filter-effects/remove-filter-repaint-expected.html: Added.
- web-platform-tests/css/filter-effects/remove-filter-repaint.html: Added.
- web-platform-tests/css/filter-effects/resources/reference.png: Added.
- web-platform-tests/css/filter-effects/resources/w3c-import.log: Added.
- web-platform-tests/css/filter-effects/root-element-with-opacity-filter-001-expected.html: Added.
- web-platform-tests/css/filter-effects/root-element-with-opacity-filter-001.html: Added.
- web-platform-tests/css/filter-effects/support/1x1-green.png: Added.
- web-platform-tests/css/filter-effects/support/1x1-lime.png: Added.
- web-platform-tests/css/filter-effects/support/1x1-maroon.png: Added.
- web-platform-tests/css/filter-effects/support/1x1-navy.png: Added.
- web-platform-tests/css/filter-effects/support/1x1-red.png: Added.
- web-platform-tests/css/filter-effects/support/1x1-white.png: Added.
- web-platform-tests/css/filter-effects/support/60x60-gg-rr.png: Added.
- web-platform-tests/css/filter-effects/support/60x60-green.png: Added.
- web-platform-tests/css/filter-effects/support/README: Added.
- web-platform-tests/css/filter-effects/support/a-green.css: Added.
(.a):
- web-platform-tests/css/filter-effects/support/b-green.css: Added.
(.b):
- web-platform-tests/css/filter-effects/support/c-red.css: Added.
(.c):
- web-platform-tests/css/filter-effects/support/cat.png: Added.
- web-platform-tests/css/filter-effects/support/color-palette.png: Added.
- web-platform-tests/css/filter-effects/support/div-with-filter.html: Added.
- web-platform-tests/css/filter-effects/support/filter-external-002-filter.svg: Added.
- web-platform-tests/css/filter-effects/support/filter-from-external-url.css: Added.
(.hue-rotate):
- web-platform-tests/css/filter-effects/support/filtersubregion00.png: Added.
- web-platform-tests/css/filter-effects/support/hueRotate.svg: Added.
- web-platform-tests/css/filter-effects/support/import-green.css: Added.
(.import):
- web-platform-tests/css/filter-effects/support/import-red.css: Added.
(.import):
- web-platform-tests/css/filter-effects/support/pattern-grg-rgr-grg.png: Added.
- web-platform-tests/css/filter-effects/support/pattern-grg-rrg-rgg.png: Added.
- web-platform-tests/css/filter-effects/support/pattern-rgr-grg-rgr.png: Added.
- web-platform-tests/css/filter-effects/support/pattern-tr.png: Added.
- web-platform-tests/css/filter-effects/support/ruler-h-50%.png: Added.
- web-platform-tests/css/filter-effects/support/ruler-h-50px.png: Added.
- web-platform-tests/css/filter-effects/support/ruler-v-100px.png: Added.
- web-platform-tests/css/filter-effects/support/ruler-v-50px.png: Added.
- web-platform-tests/css/filter-effects/support/square-purple.png: Added.
- web-platform-tests/css/filter-effects/support/square-teal.png: Added.
- web-platform-tests/css/filter-effects/support/square-white.png: Added.
- web-platform-tests/css/filter-effects/support/support/README: Added.
- web-platform-tests/css/filter-effects/support/support/swatch-green.png: Added.
- web-platform-tests/css/filter-effects/support/support/swatch-red.png: Added.
- web-platform-tests/css/filter-effects/support/support/w3c-import.log: Added.
- web-platform-tests/css/filter-effects/support/swatch-blue.png: Added.
- web-platform-tests/css/filter-effects/support/swatch-green.png: Added.
- web-platform-tests/css/filter-effects/support/swatch-lime.png: Added.
- web-platform-tests/css/filter-effects/support/swatch-orange.png: Added.
- web-platform-tests/css/filter-effects/support/swatch-red.png: Added.
- web-platform-tests/css/filter-effects/support/swatch-teal.png: Added.
- web-platform-tests/css/filter-effects/support/swatch-white.png: Added.
- web-platform-tests/css/filter-effects/support/swatch-yellow.png: Added.
- web-platform-tests/css/filter-effects/support/test-bl.png: Added.
- web-platform-tests/css/filter-effects/support/test-br.png: Added.
- web-platform-tests/css/filter-effects/support/test-inner-half-size.png: Added.
- web-platform-tests/css/filter-effects/support/test-outer.png: Added.
- web-platform-tests/css/filter-effects/support/test-tl.png: Added.
- web-platform-tests/css/filter-effects/support/test-tr.png: Added.
- web-platform-tests/css/filter-effects/support/w3c-import.log: Added.
- web-platform-tests/css/filter-effects/svg-empty-container-with-filter-content-added-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-empty-container-with-filter-content-added.html: Added.
- web-platform-tests/css/filter-effects/svg-feflood-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-feflood-001.html: Added.
- web-platform-tests/css/filter-effects/svg-feimage-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-feimage-001.html: Added.
- web-platform-tests/css/filter-effects/svg-feoffset-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-feoffset-001.html: Added.
- web-platform-tests/css/filter-effects/svg-filter-vs-clip-path-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-filter-vs-clip-path.html: Added.
- web-platform-tests/css/filter-effects/svg-filter-vs-mask-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-filter-vs-mask.html: Added.
- web-platform-tests/css/filter-effects/svg-multiple-filter-functions-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-multiple-filter-functions.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-drop-shadow-color-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-drop-shadow-color.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-drop-shadow-offset-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-drop-shadow-offset.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-function-to-url-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-function-to-url.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-group-position-changed-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-group-position-changed.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-group-size-changed-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-group-size-changed.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-group-transform-changed-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-group-transform-changed.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-object-position-changed-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-object-position-changed.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-object-size-changed-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-object-size-changed.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-object-transform-changed-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-object-transform-changed.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-single-to-multiple-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-single-to-multiple-001.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-single-to-multiple-002-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-single-to-multiple-002.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-url-to-function-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-mutation-url-to-function.html: Added.
- web-platform-tests/css/filter-effects/svg-relative-urls-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-relative-urls-001.html: Added.
- web-platform-tests/css/filter-effects/svg-relative-urls-002-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-relative-urls-002.html: Added.
- web-platform-tests/css/filter-effects/svg-shorthand-drop-shadow-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-shorthand-drop-shadow-001.html: Added.
- web-platform-tests/css/filter-effects/svg-shorthand-hue-rotate-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-shorthand-hue-rotate-001.html: Added.
- web-platform-tests/css/filter-effects/svg-sourcegraphic-currentcolor-dynamic-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-sourcegraphic-currentcolor-dynamic-001.html: Added.
- web-platform-tests/css/filter-effects/svg-sourcegraphic-invalidation-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-sourcegraphic-invalidation-001.html: Added.
- web-platform-tests/css/filter-effects/svg-unknown-input-001-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-unknown-input-001.html: Added.
- web-platform-tests/css/filter-effects/svg-unknown-input-002-expected.html: Added.
- web-platform-tests/css/filter-effects/svg-unknown-input-002.html: Added.
- web-platform-tests/css/filter-effects/svg-unknown-input-ref.html: Added.
- web-platform-tests/css/filter-effects/svg-unused-filter-on-clippath-mutated-crash-expected.txt: Added.
- web-platform-tests/css/filter-effects/svg-unused-filter-on-clippath-mutated-crash.html: Added.
- web-platform-tests/css/filter-effects/svgfeblendelement-mode-001-expected.txt: Added.
- web-platform-tests/css/filter-effects/svgfeblendelement-mode-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-feblend-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-feblend-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-feblend-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-feblend-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-fecomponenttransfer-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fecomponenttransfer-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-fecomponenttransfer-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fecomponenttransfer-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-fecomposite-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fecomposite-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-fecomposite-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fecomposite-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-feconvolvematrix-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-feconvolvematrix-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-feconvolvematrix-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-feconvolvematrix-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-fediffuselighting-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fediffuselighting-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-fediffuselighting-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fediffuselighting-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-fediffuselighting-003-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fediffuselighting-003.html: Added.
- web-platform-tests/css/filter-effects/tainting-fediffuselighting-dynamic-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fediffuselighting-dynamic.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedisplacementmap-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedisplacementmap-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedisplacementmap-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedisplacementmap-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedropshadow-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedropshadow-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedropshadow-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedropshadow-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedropshadow-003-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fedropshadow-003.html: Added.
- web-platform-tests/css/filter-effects/tainting-feflood-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-feflood-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-feflood-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-feflood-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-feflood-dynamic-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-feflood-dynamic.html: Added.
- web-platform-tests/css/filter-effects/tainting-fegaussianblur-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fegaussianblur-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-fegaussianblur-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fegaussianblur-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-femorphology-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-femorphology-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-femorphology-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-femorphology-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-feoffset-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-feoffset-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-feoffset-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-feoffset-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-fespecularlighting-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fespecularlighting-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-fespecularlighting-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fespecularlighting-002.html: Added.
- web-platform-tests/css/filter-effects/tainting-fespecularlighting-003-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fespecularlighting-003.html: Added.
- web-platform-tests/css/filter-effects/tainting-fetile-001-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fetile-001.html: Added.
- web-platform-tests/css/filter-effects/tainting-fetile-002-expected.html: Added.
- web-platform-tests/css/filter-effects/tainting-fetile-002.html: Added.
- web-platform-tests/css/filter-effects/w3c-import.log: Added.
LayoutTests:
Imported from WPT ba3997e9f9a2f10a00688061f785d4c9b70cc5d5.
- TestExpectations:
- platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-001-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/crashtests/multiple-references-id-crash-002-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/effect-reference-reset-style-delete-crash-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/feimage-circular-reference-foreign-object-crash-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/feimage-reference-foreign-object-crash-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/feimage-target-child-reference-crash-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/felighting-no-light-source-style-update-crash-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/idlharness.any.serviceworker-expected.txt: Added.
- platform/ios-wk2/imported/w3c/web-platform-tests/css/filter-effects/svg-unused-filter-on-clippath-mutated-crash-expected.txt: Added.
- platform/mac/TestExpectations:
- 10:21 AM Changeset in webkit [287812] by
-
- 4 edits7 adds in trunk
null ptr deref in WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange
https://bugs.webkit.org/show_bug.cgi?id=234862
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-08
Reviewed by Darin Adler.
Source/WebCore:
ModifySelectionListLevelCommand::appendSiblingNodeRange loops through nodes assuming
existence of siblings, which is not guaranteed, and can result in nullptr deref. Instead,
check for node existence as part of loop condition, and change raw pointer usage to RefPtr.
This addresses the crash but results in ASSERT(isEndOfParagraph(endOfParagraphToMove))
failing in CompositeEditCommand::moveParagraph. We modify WebCore::findEndOfParagraph
to check for HTMLBRElement nodes to avoid unexpectedly changing the AnchorType.
Test: http/tests/lists/list-new-parent-no-sibling-append.html
- editing/ModifySelectionListLevel.cpp:
(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeBefore):
(WebCore::ModifySelectionListLevelCommand::insertSiblingNodeRangeAfter):
(WebCore::ModifySelectionListLevelCommand::appendSiblingNodeRange):
- editing/VisibleUnits.cpp:
(WebCore::findEndOfParagraph):
LayoutTests:
- http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
- http/tests/lists/list-new-parent-no-sibling-append.html: Added.
- platform/gtk/http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
- platform/win/http/tests/lists/list-new-parent-no-sibling-append-expected.txt: Added.
- 8:46 AM Changeset in webkit [287811] by
-
- 2 edits in trunk/Source/WebCore
AX: Improve WeakHashSet hygienics in AXObjectCache
https://bugs.webkit.org/show_bug.cgi?id=234961
Reviewed by Andres Gonzalez.
AXObjectCache owns four WeakHashSets. WeakHashSets are not notified
when the objects they hold are deleted[1], so we should be cleaning
them up in AXObjectCache::remove(Node&).
This patch also replaces range-based for loop iteration over these
WeakHashSets with WeakHashSet::forEach, which inherently checks that
each item is valid (non-null and contained in the hashset) before
using the item.
[1]: https://github.com/WebKit/WebKit/blob/main/Introduction.md#weakhashset
- accessibility/AXObjectCache.cpp:
(WebCore::AXObjectCache::remove):
Delete the removed node from AXObjectCache's owned WeakHashSets.
(WebCore::filterWeakHashSetForRemoval): Added.
(WebCore::AXObjectCache::prepareForDocumentDestruction):
Use filterWeakHashSetForRemoval to remove soon-to-be-deleted nodes
from AXObjectCache's owned WeakHashSets.
(WebCore::AXObjectCache::performDeferredCacheUpdate):
Use WeakHashSet::forEach instead of range-based for loops.
- 8:40 AM Changeset in webkit [287810] by
-
- 15 edits4 adds in trunk
AX: AccessibilityObject::setFocused(true) should make the webpage focused, and make web content the first responder
https://bugs.webkit.org/show_bug.cgi?id=234885
Reviewed by Darin Adler.
Source/WebCore:
With this patch, focusing an element via an AX client on iOS makes
the page focused immediately. This allows a focus ring to be drawn,
even when apps that embed WKWebViews don't make web content the
first responder themselves ([WKContentViewInteraction becomeFirstResponderForWebView]
makes the page focused after a delay due to async IPC between the UI and web processes).
Tests: accessibility/ios-simulator/accessibility-make-first-responder.html
accessibility/ios-simulator/taking-focus-should-refocus-page.html
- accessibility/AccessibilityObject.cpp:
(WebCore::AccessibilityObject::setFocused):
Make the webpage focused if it isn't already focused.
- testing/Internals.cpp:
(WebCore::Internals::setPageIsFocused):
Added to simulate the scenario where the webpage doesn't gain focus
through becoming first responder.
- testing/Internals.h:
Add setPageIsFocused.
- testing/Internals.idl:
Add setPageIsFocused.
Source/WebKit:
With this patch, focusing an element via an AX client on iOS makes web content
the first responder. This allows a focus ring to be drawn and for web content
to perform other important actions upon taking first respondership
(see[WKContentViewInteraction becomeFirstResponderForWebView]), even when apps
that embed WKWebViews don't make web content the first responder themselves.
- UIProcess/ios/PageClientImplIOS.mm:
(WebKit::PageClientImpl::assistiveTechnologyMakeFirstResponder):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::assistiveTechnologyMakeFirstResponder):
Tools:
Add testing functionality necessary to check that web content is the
first responder in the UI process.
- TestRunnerShared/UIScriptContext/Bindings/UIScriptController.idl:
- TestRunnerShared/UIScriptContext/UIScriptController.h:
(WTR::UIScriptController::isWebContentFirstResponder const):
Added.
- WebKitTestRunner/InjectedBundle/ios/AccessibilityUIElementIOS.mm:
(WTR::AccessibilityUIElement::takeFocus):
Implement this method.
- WebKitTestRunner/ios/UIScriptControllerIOS.h:
- WebKitTestRunner/ios/UIScriptControllerIOS.mm:
(WTR::UIScriptControllerIOS::isWebContentFirstResponder const):
Added.
LayoutTests:
Add tests verifying that focusing an element via an AX client:
- Makes the page focused immediately
- Makes web content the first responder
This allows a focus ring to be drawn, even when apps that embed
WKWebViews don't make web content the first responder themselves.
- accessibility/ios-simulator/accessibility-make-first-responder-expected.txt: Added.
- accessibility/ios-simulator/accessibility-make-first-responder.html: Added.
- accessibility/ios-simulator/taking-focus-should-refocus-page-expected.txt: Added.
- accessibility/ios-simulator/taking-focus-should-refocus-page.html: Added.
- 6:27 AM Changeset in webkit [287809] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Implement TextUtil::breakWord for the complex font codepath using ubrk_next
https://bugs.webkit.org/show_bug.cgi?id=234998
Reviewed by Antti Koivisto.
In order to use ubrk_preceding/ubrk_following with arbitrary position (binary search) inside a cluster with surrogate pairs we have to
implement some additional surrogate boundary checks (it would move the index to the beginning/end of the surrogate when it falls right
in the middle of it). In addition to that, ICU would still need to scan the content from the start to find the right index for
the boundary.
This new breakWord implementation simply iterates over the clusters by calling ubrk_next until the content overflows.
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::breakWord):
Jan 7, 2022:
- 10:23 PM Changeset in webkit [287808] by
-
- 65 edits2 deletes in trunk/Source
Remove IPC::SharedBufferDataReference and use IPC::SharedBufferCopy instead
https://bugs.webkit.org/show_bug.cgi?id=234921
rdar://problem/87196287
Reviewed by Youenn Fablet.
Source/WebCore:
Pass the FragmentedSharedBuffer through const reference to avoid
having to const_cast the argument in WebKit.
No change in observable behaviour, covered by existing tests.
- platform/graphics/ImageDecoder.h:
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.h:
- platform/graphics/avfoundation/objc/ImageDecoderAVFObjC.mm:
(WebCore::ImageDecoderAVFObjC::create):
(WebCore::ImageDecoderAVFObjC::ImageDecoderAVFObjC):
(WebCore::ImageDecoderAVFObjC::setData):
- platform/graphics/cg/ImageDecoderCG.cpp:
(WebCore::ImageDecoderCG::setData):
- platform/graphics/cg/ImageDecoderCG.h:
- platform/graphics/gstreamer/ImageDecoderGStreamer.cpp:
(WebCore::ImageDecoderGStreamer::setData):
- platform/graphics/gstreamer/ImageDecoderGStreamer.h:
- platform/graphics/win/ImageDecoderDirect2D.cpp:
(WebCore::ImageDecoderDirect2D::setData):
- platform/graphics/win/ImageDecoderDirect2D.h:
- platform/image-decoders/ScalableImageDecoder.h:
- platform/image-decoders/bmp/BMPImageDecoder.cpp:
(WebCore::BMPImageDecoder::setData):
- platform/image-decoders/bmp/BMPImageDecoder.h:
- platform/image-decoders/gif/GIFImageDecoder.cpp:
(WebCore::GIFImageDecoder::setData):
- platform/image-decoders/gif/GIFImageDecoder.h:
- platform/image-decoders/ico/ICOImageDecoder.cpp:
(WebCore::ICOImageDecoder::setData):
- platform/image-decoders/ico/ICOImageDecoder.h:
- platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::setData):
- platform/image-decoders/webp/WEBPImageDecoder.h:
Source/WebKit:
SharedBufferCopy didn't have to create a new SharedBuffer
and copy its content; its IPC decoder can instead wrap the underlying
SharedMemory into a SharedBuffer.
Having removed those copies and extra allocations there's no longer a
technical need to have both SharedBufferDataReference and SharedBufferCopy.
The biggest winners of this change are the images transferred over IPC.
We remove two memory allocation/copy the was occurring at both IPC
boundaries.
We also remove the need for SharedBufferCopy to use a contiguous
SharedBuffer. This makes the IPC encoding much more efficient.
Once transferred over IPC, with the current encoding implementation,
the SharedBufferCopy automatically becomes a contiguous SharedBuffer,
so calling makeContiguous() on the SharedBufferCopy is a no-op;
this allows for zero regression speed-wise from this change.
Fly-by changes: the PDF code uses IPC::DataReference object; the data
was copied into a CFData or a SharedBuffer. By using IPC::SharedBufferCopy
was can remove those copies as a SharedBuffer can be wrapped in a CFData.
In the future, it's likely where such code pattern was used; more
IPC::DataReference can be replaced broadly with IPC::SharedBufferCopy.
- GPUProcess/media/RemoteImageDecoderAVFProxy.cpp:
(WebKit::RemoteImageDecoderAVFProxy::createDecoder):
(WebKit::RemoteImageDecoderAVFProxy::setData):
- GPUProcess/media/RemoteImageDecoderAVFProxy.h:
- GPUProcess/media/RemoteImageDecoderAVFProxy.messages.in:
- GPUProcess/media/RemoteLegacyCDMSessionProxy.cpp:
(WebKit::convertToUint8Array):
(WebKit::convertToOptionalSharedBuffer):
(WebKit::RemoteLegacyCDMSessionProxy::generateKeyRequest):
(WebKit::RemoteLegacyCDMSessionProxy::update):
(WebKit::RemoteLegacyCDMSessionProxy::cachedKeyForKeyID):
(WebKit::RemoteLegacyCDMSessionProxy::sendMessage):
- NetworkProcess/NetworkResourceLoader.cpp:
- NetworkProcess/ServiceWorker/ServiceWorkerDownloadTask.cpp:
(WebKit::ServiceWorkerDownloadTask::didReceiveData):
- Platform/IPC/HandleMessage.h:
- Platform/IPC/SharedBufferCopy.cpp:
(IPC::SharedBufferCopy::encode const):
(IPC::SharedBufferCopy::decode):
(IPC::SharedBufferCopy::safeBuffer const):
- Platform/IPC/SharedBufferCopy.h:
(IPC::SharedBufferCopy::SharedBufferCopy):
(IPC::SharedBufferCopy::buffer):
(IPC::SharedBufferCopy::buffer const):
(IPC::SharedBufferCopy::contiguousBuffer const):
- Platform/IPC/SharedBufferDataReference.cpp: Removed.
- Platform/IPC/SharedBufferDataReference.h: Removed.
- Scripts/webkit/messages.py:
(function_parameter_type):
(reply_arguments_type):
(message_to_struct_declaration):
(generate_message_handler):
- Shared/WebCompiledContentRuleListData.cpp:
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<SerializedAttachmentData>::encode):
(IPC::ArgumentCoder<WebCore::SerializedAttachmentData>::decode):
- Sources.txt:
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView createPDFWithConfiguration:completionHandler:]):
- UIProcess/Cocoa/WebPageProxyCocoa.mm:
(WebKit::WebPageProxy::platformRegisterAttachment):
- UIProcess/Cocoa/WebProcessProxyCocoa.mm:
(WebKit::WebProcessProxy::sendAudioComponentRegistrations):
- UIProcess/WebPageProxy.cpp:
(WebKit::CompletionHandler<void):
(WebKit::WebPageProxy::drawToPDF):
(WebKit::WebPageProxy::getLoadDecisionForIcon):
(WebKit::WebPageProxy::updateAttachmentAttributes):
- UIProcess/WebPageProxy.h:
- UIProcess/WebURLSchemeTask.cpp:
- UIProcess/ios/WKContentView.mm:
(-[WKContentView _wk_pageCountForPrintFormatter:]):
- UIProcess/ios/WebPageProxyIOS.mm:
(WebKit::WebPageProxy::computePagesForPrintingAndDrawToPDF):
- WebProcess/GPU/media/RemoteImageDecoderAVF.cpp:
(WebKit::RemoteImageDecoderAVF::setData):
- WebProcess/GPU/media/RemoteImageDecoderAVF.h:
- WebProcess/GPU/media/RemoteImageDecoderAVFManager.cpp:
(WebKit::RemoteImageDecoderAVFManager::createImageDecoder):
- WebProcess/GPU/media/RemoteLegacyCDMSession.cpp:
(WebKit::convertToArrayBuffer):
- WebProcess/Network/WebResourceLoader.cpp:
(WebKit::WebResourceLoader::didReceiveData):
- WebProcess/Storage/WebServiceWorkerFetchTaskClient.cpp:
- WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
- WebProcess/WebPage/WebPage.cpp:
(WebKit::WebPage::getContentsAsMHTMLData):
(WebKit::WebPage::getSelectionAsWebArchiveData):
(WebKit::WebPage::getMainResourceDataOfFrame):
(WebKit::WebPage::getResourceDataFromFrame):
(WebKit::WebPage::getWebArchiveOfFrame):
(WebKit::WebPage::drawToPDF):
(WebKit::WebPage::drawPagesToPDF):
(WebKit::WebPage::didGetLoadDecisionForIcon):
(WebKit::WebPage::urlSchemeTaskDidReceiveData):
(WebKit::WebPage::updateAttachmentAttributes):
- WebProcess/WebPage/WebPage.h:
- WebProcess/WebPage/WebPage.messages.in:
- WebProcess/WebPage/ios/WebPageIOS.mm:
(WebKit::WebPage::drawToPDFiOS):
- WebProcess/WebProcess.h:
- WebProcess/WebProcess.messages.in:
- WebProcess/cocoa/WebProcessCocoa.mm:
(WebKit::WebProcess::consumeAudioComponentRegistrations):
- 8:09 PM Changeset in webkit [287807] by
-
- 2 edits in trunk/Source/WebCore
[Hardening] Improve multi draw offset validation
https://bugs.webkit.org/show_bug.cgi?id=234966
<rdar://problem/86814830>
Reviewed by Darin Adler.
Incorporate draw count into validation of the offset.
- html/canvas/WebGLMultiDraw.cpp:
(WebCore::WebGLMultiDraw::validateOffset):
- 7:42 PM Changeset in webkit [287806] by
-
- 2 edits in trunk/Source/JavaScriptCore
Unreviewed. Appease an assertion that was broken by r287801 by slightly
refactoring code so we don't clobber the same named register twice.
- b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):
- 7:18 PM Changeset in webkit [287805] by
-
- 6 edits2 adds in trunk
[GPU Process] Can't getImageData on canvas larger than 4096x4096
https://bugs.webkit.org/show_bug.cgi?id=234321
<rdar://problem/83575501>
Reviewed by Tim Horton.
Source/WebCore:
We already have a policy about how big canvases can be. Simply export that policy
so it can be consulted from the GPU process.
Test: fast/canvas/large-getImageData.html
- html/HTMLCanvasElement.cpp:
(WebCore::HTMLCanvasElement::maxActivePixelMemory):
(WebCore::maxActivePixelMemory): Deleted.
- html/HTMLCanvasElement.h:
Source/WebKit:
Consult the policy for how big a canvas can be, rather than hardcoding a number.
- GPUProcess/graphics/RemoteRenderingBackend.cpp:
(WebKit::RemoteRenderingBackend::updateSharedMemoryForGetPixelBufferHelper):
LayoutTests:
- fast/canvas/large-getImageData-expected.txt: Added.
- fast/canvas/large-getImageData.html: Added.
- 6:45 PM Changeset in webkit [287804] by
-
- 4 edits4 deletes in branches/safari-612.4.9.3-branch
Revert "Cherry-pick r287604. rdar://problem/85966622"
This reverts commit r287751.
- 6:20 PM Changeset in webkit [287803] by
-
- 7 edits in trunk/Source
Make FullscreenManager::requestFullscreenForElement more robust
https://bugs.webkit.org/show_bug.cgi?id=234995
Patch by Alex Christensen <achristensen@webkit.org> on 2022-01-07
Reviewed by Darin Adler.
Source/WebCore:
I think this may fix the Windows crashes after bug 233963 lands, and it makes things more robust anyways.
- dom/Element.cpp:
(WebCore::Element::webkitRequestFullscreen):
- dom/FullscreenManager.cpp:
(WebCore::FullscreenManager::requestFullscreenForElement):
- dom/FullscreenManager.h:
- html/HTMLMediaElement.cpp:
(WebCore::HTMLMediaElement::enterFullscreen):
Source/WebKit:
- WebProcess/FullScreen/WebFullScreenManager.cpp:
(WebKit::WebFullScreenManager::requestEnterFullScreen):
- 6:13 PM Changeset in webkit [287802] by
-
- 5 edits in trunk/Source/WebCore
Don't dispatch "focusin" / "focusout" events if there are no listeners
https://bugs.webkit.org/show_bug.cgi?id=234928
Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-07
Reviewed by Geoff Garen.
This patch avoids creating and dispatching "focusin" / "focusout" events if it's
guaranteed there are no registered listeners for them. These events are rather new
and not widely popular: according to Chrome stats, only 17% page loads use them [1],
which is even less thandocument.all.
Together with r287787, creation of four FocusEvent instances is now avoided when
focus is changed, advancing attached microbenchmark by 6%.
[1] https://chromestatus.com/metrics/feature/timeline/popularity/433
No new tests, no behavior change.
- dom/Document.cpp:
(WebCore::Document::setFocusedElement):
(WebCore::Document::addListenerTypeIfNeeded):
- dom/Document.h:
- dom/Element.cpp:
(WebCore::Element::dispatchFocusInEventIfNeeded):
(WebCore::Element::dispatchFocusOutEventIfNeeded):
(WebCore::Element::dispatchFocusInEvent): Deleted.
(WebCore::Element::dispatchFocusOutEvent): Deleted.
- dom/Element.h:
- 5:57 PM Changeset in webkit [287801] by
-
- 12 edits1 add in trunk/Source/JavaScriptCore
Add support for Wasm exceptions in the Air generator
https://bugs.webkit.org/show_bug.cgi?id=231211
<rdar://problem/84132861>
Reviewed by Filip Pizlo.
This patch adds support to Air for Wasm exceptions. The implementation
is very similar to how we implement it in the B3 Wasm tier. This patch
shares code with the B3 tier where it can.
This patch also fixes a bug where you the early clobbered registers
of a patchpoint could prevent the prior instruction from register allocating.
For example, you can have the instructions I1, I2. Where I2 clobbers the
entire register file. It doesn't mean I1 shouldn't be able to allocate
registers. Instead, the clobber should occur after I1 executes. This patch
fixes the issue.
- JavaScriptCore.xcodeproj/project.pbxproj:
- b3/air/AirAllocateRegistersAndStackAndGenerateCode.cpp:
(JSC::B3::Air::GenerateAndAllocateRegisters::generate):
- wasm/WasmAirIRGenerator.cpp:
(JSC::Wasm::AirIRGenerator::ControlData::ControlData):
(JSC::Wasm::AirIRGenerator::ControlData::isTry):
(JSC::Wasm::AirIRGenerator::ControlData::isCatch):
(JSC::Wasm::AirIRGenerator::ControlData::convertTryToCatch):
(JSC::Wasm::AirIRGenerator::ControlData::convertTryToCatchAll):
(JSC::Wasm::AirIRGenerator::ControlData::tryStart const):
(JSC::Wasm::AirIRGenerator::ControlData::tryEnd const):
(JSC::Wasm::AirIRGenerator::ControlData::tryDepth const):
(JSC::Wasm::AirIRGenerator::ControlData::catchKind const):
(JSC::Wasm::AirIRGenerator::ControlData::exception const):
(JSC::Wasm::AirIRGenerator::emitCallPatchpoint):
(JSC::Wasm::AirIRGenerator::addStackMap):
(JSC::Wasm::AirIRGenerator::takeStackmaps):
(JSC::Wasm::AirIRGenerator::takeExceptionHandlers):
(JSC::Wasm::AirIRGenerator::newTmp):
(JSC::Wasm::AirIRGenerator::emitPatchpoint):
(JSC::Wasm::AirIRGenerator::emitLoad):
(JSC::Wasm::AirIRGenerator::AirIRGenerator):
(JSC::Wasm::AirIRGenerator::finalizeEntrypoints):
(JSC::Wasm::AirIRGenerator::forEachLiveValue):
(JSC::Wasm::AirIRGenerator::emitLoopTierUpCheck):
(JSC::Wasm::AirIRGenerator::addTry):
(JSC::Wasm::AirIRGenerator::addCatch):
(JSC::Wasm::AirIRGenerator::addCatchAll):
(JSC::Wasm::AirIRGenerator::addCatchToUnreachable):
(JSC::Wasm::AirIRGenerator::addCatchAllToUnreachable):
(JSC::Wasm::AirIRGenerator::emitCatchImpl):
(JSC::Wasm::AirIRGenerator::addDelegate):
(JSC::Wasm::AirIRGenerator::addDelegateToUnreachable):
(JSC::Wasm::AirIRGenerator::addThrow):
(JSC::Wasm::AirIRGenerator::addRethrow):
(JSC::Wasm::AirIRGenerator::addEndToUnreachable):
(JSC::Wasm::AirIRGenerator::addCall):
(JSC::Wasm::AirIRGenerator::emitIndirectCall):
(JSC::Wasm::parseAndCompileAir):
(JSC::Wasm::AirIRGenerator::preparePatchpointForExceptions):
- wasm/WasmB3IRGenerator.cpp:
(JSC::Wasm::B3IRGenerator::insertEntrySwitch):
(JSC::Wasm::B3IRGenerator::emitCatchImpl):
(JSC::Wasm::B3IRGenerator::addThrow):
(JSC::Wasm::B3IRGenerator::addRethrow):
(JSC::Wasm::PatchpointExceptionHandle::generate const): Deleted.
(JSC::Wasm::buildEntryBufferForCatch): Deleted.
(JSC::Wasm::computeExceptionHandlerLocations): Deleted.
- wasm/WasmB3IRGenerator.h:
- wasm/WasmBBQPlan.cpp:
(JSC::Wasm::BBQPlan::compileFunction):
- wasm/WasmIRGeneratorHelpers.h: Added.
(JSC::Wasm::PatchpointExceptionHandle::generate const):
(JSC::Wasm::computeExceptionHandlerLocations):
(JSC::Wasm::emitRethrowImpl):
(JSC::Wasm::emitThrowImpl):
(JSC::Wasm::buildEntryBufferForCatch):
(JSC::Wasm::emitCatchPrologueShared):
- wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::LLIntGenerator::finalize):
- wasm/WasmModuleInformation.h:
- wasm/WasmOMGPlan.cpp:
- wasm/WasmOSREntryPlan.cpp:
- wasm/WasmStreamingParser.cpp:
(JSC::Wasm::StreamingParser::parseCodeSectionSize):
- 5:52 PM Changeset in webkit [287800] by
-
- 5 edits3 adds in trunk
Expand the set of objects we take JSArray::fastSlice() path for
https://bugs.webkit.org/show_bug.cgi?id=234539
Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-07
Reviewed by Yusuke Suzuki.
JSTests:
- microbenchmarks/array-slice-call-cloned-arguments.js: Added.
- stress/array-slice-beyond-length.js: Added.
- stress/array-slice-length-lookup.js: Added.
Source/JavaScriptCore:
Currently, Array.prototype's slice() / splice() methods take a fast path only for
JSArray source objects. With this change, gcSafeMemcpy-based path is taken for any
object with ordinary getOwnPropertySlotByIndex() method, which speeds up the common
case of[].slice.call(arguments)by 140% (in strict mode only, see ClonedArguments).
Also, once is https://webkit.org/b/234538 resolved, calling Array.prototype.slice()
on a static NodeList, which is a common idiom to acquire map() / filter() methods,
will become faster as well.
This patch was thoroughly evaluated to be spec-perfect and memory-safe:
- indexing mode check and holesMustForwardToPrototype() guarantee that there are no observable userland code to be invoked;
- fastSlice() signature is upgraded to uint64_t so
nullptris returned in case of large "length", resulting in a RangeError being thrown on the slow path; - to handle the case of source array being shrinked after "length" lookup (see r175420), OOB read check is moved to JSArray::fastSlice() and refined to rely on vectorLength() so the double "length" lookup is avoided (added a test for this).
All this (and more) is well covered by the test262 suite.
This change improves Speedometer2/EmberJS-Debug-TodoMVC score by 0.5%: although the test
is slow on its own,[].slice.call(arguments)is performed ~56k times per run.
- runtime/ArrayPrototype.cpp:
(JSC::JSC_DEFINE_HOST_FUNCTION):
- runtime/JSArray.cpp:
(JSC::JSArray::fastSlice):
- runtime/JSArray.h:
- 5:00 PM Changeset in webkit [287799] by
-
- 1 copy in tags/Safari-612.4.9.3.1
Tag Safari-612.4.9.3.1.
- 4:49 PM Changeset in webkit [287798] by
-
- 1 copy in tags/Safari-612.4.9.1.2
Tag Safari-612.4.9.1.2.
- 4:46 PM Changeset in webkit [287797] by
-
- 1 copy in tags/Safari-612.4.9.2.1
Tag Safari-612.4.9.2.1.
- 4:45 PM Changeset in webkit [287796] by
-
- 1 copy in tags/Safari-612.4.9.0.1
Tag Safari-612.4.9.0.1.
- 4:05 PM Changeset in webkit [287795] by
-
- 26 edits in branches/safari-612.4.9.2-branch
Cherry-pick r286094. rdar://problem/87125111
Report the initiating url instead of the redirected one
https://bugs.webkit.org/show_bug.cgi?id=233037
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-11-20
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub-expected.txt:
Source/WebCore:
As per the spec, blockedURI should use the requested URL of original request instead of redirected location.
- loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
- loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willSendRequestInternal):
- loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const): (WebCore::CachedResourceLoader::canRequestAfterRedirection const): (WebCore::CachedResourceLoader::updateRequestAfterRedirection):
- loader/cache/CachedResourceLoader.h:
- page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowChildContextFromSource const): (WebCore::ContentSecurityPolicy::allowScriptFromSource const): (WebCore::ContentSecurityPolicy::allowImageFromSource const): (WebCore::ContentSecurityPolicy::allowStyleFromSource const): (WebCore::ContentSecurityPolicy::allowFontFromSource const): (WebCore::ContentSecurityPolicy::allowManifestFromSource const): (WebCore::ContentSecurityPolicy::allowMediaFromSource const):
- page/csp/ContentSecurityPolicy.h:
Source/WebKit:
Pass pre-redirect URL to allowChildContextFromSource() and allowScriptFromSource().
- NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):
LayoutTests:
- TestExpectations: Unskip imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub.html
- http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286094 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:47 PM Changeset in webkit [287794] by
-
- 2 edits in trunk/Source/WebKit
[GTK] REGRESSION: Kinetic scrolling via touch-screen behaves oddly
https://bugs.webkit.org/show_bug.cgi?id=234958
Reviewed by Michael Catanzaro.
The swipe signal handler didn't take into account
Scrollbar::pixelsPerLineStep() and also incorrectly negated the
vertical velocity. Ideally, touch scrolling would use precise wheel
events, but as the rest of the code works correctly and scales by this
amount, make the one-line change that conforms with the previous code.
- UIProcess/API/gtk/WebKitWebViewBase.cpp:
(webkitWebViewBaseTouchSwipe):
- 3:47 PM Changeset in webkit [287793] by
-
- 2 edits in trunk/LayoutTests
REGRESSION (r283935): [ macOS wk1 ] imported/w3c/web-platform-tests/html/semantics/interactive-elements/the-dialog-element/dialog-autofocus-multiple-times.html is a flaky failure
https://bugs.webkit.org/show_bug.cgi?id=231918
Unreviewed test gardening.
- platform/mac-wk1/TestExpectations: Mark test as flaky.
- 3:45 PM Changeset in webkit [287792] by
-
- 26 edits in branches/safari-612.4.9.0-branch
Cherry-pick r286094. rdar://problem/87125111
Report the initiating url instead of the redirected one
https://bugs.webkit.org/show_bug.cgi?id=233037
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-11-20
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub-expected.txt:
Source/WebCore:
As per the spec, blockedURI should use the requested URL of original request instead of redirected location.
- loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
- loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willSendRequestInternal):
- loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const): (WebCore::CachedResourceLoader::canRequestAfterRedirection const): (WebCore::CachedResourceLoader::updateRequestAfterRedirection):
- loader/cache/CachedResourceLoader.h:
- page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowChildContextFromSource const): (WebCore::ContentSecurityPolicy::allowScriptFromSource const): (WebCore::ContentSecurityPolicy::allowImageFromSource const): (WebCore::ContentSecurityPolicy::allowStyleFromSource const): (WebCore::ContentSecurityPolicy::allowFontFromSource const): (WebCore::ContentSecurityPolicy::allowManifestFromSource const): (WebCore::ContentSecurityPolicy::allowMediaFromSource const):
- page/csp/ContentSecurityPolicy.h:
Source/WebKit:
Pass pre-redirect URL to allowChildContextFromSource() and allowScriptFromSource().
- NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):
LayoutTests:
- TestExpectations: Unskip imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub.html
- http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286094 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:22 PM Changeset in webkit [287791] by
-
- 26 edits in branches/safari-612.4.9.1-branch
Cherry-pick r286094. rdar://problem/87125111
Report the initiating url instead of the redirected one
https://bugs.webkit.org/show_bug.cgi?id=233037
Patch by Carlos Garcia Campos <cgarcia@igalia.com> on 2021-11-20
Reviewed by Brent Fulgham.
LayoutTests/imported/w3c:
- web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub-expected.txt:
Source/WebCore:
As per the spec, blockedURI should use the requested URL of original request instead of redirected location.
- loader/DocumentThreadableLoader.cpp: (WebCore::DocumentThreadableLoader::isAllowedByContentSecurityPolicy):
- loader/SubresourceLoader.cpp: (WebCore::SubresourceLoader::willSendRequestInternal):
- loader/cache/CachedResourceLoader.cpp: (WebCore::CachedResourceLoader::allowedByContentSecurityPolicy const): (WebCore::CachedResourceLoader::canRequestAfterRedirection const): (WebCore::CachedResourceLoader::updateRequestAfterRedirection):
- loader/cache/CachedResourceLoader.h:
- page/csp/ContentSecurityPolicy.cpp: (WebCore::ContentSecurityPolicy::allowChildContextFromSource const): (WebCore::ContentSecurityPolicy::allowScriptFromSource const): (WebCore::ContentSecurityPolicy::allowImageFromSource const): (WebCore::ContentSecurityPolicy::allowStyleFromSource const): (WebCore::ContentSecurityPolicy::allowFontFromSource const): (WebCore::ContentSecurityPolicy::allowManifestFromSource const): (WebCore::ContentSecurityPolicy::allowMediaFromSource const):
- page/csp/ContentSecurityPolicy.h:
Source/WebKit:
Pass pre-redirect URL to allowChildContextFromSource() and allowScriptFromSource().
- NetworkProcess/NetworkLoadChecker.cpp: (WebKit::NetworkLoadChecker::isAllowedByContentSecurityPolicy):
LayoutTests:
- TestExpectations: Unskip imported/w3c/web-platform-tests/content-security-policy/securitypolicyviolation/img-src-redirect.sub.html
- http/tests/security/contentSecurityPolicy/1.1/child-src/worker-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/audio-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/font-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/image-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/script-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/stylesheet-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/svg-font-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/svg-image-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/track-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/video-redirect-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/worker-blob-inherits-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/worker-csp-importScripts-redirect-cross-origin-blocked-expected.txt:
- http/tests/security/contentSecurityPolicy/xsl-redirect-blocked-expected.txt:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@286094 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 3:19 PM Changeset in webkit [287790] by
-
- 2 edits in trunk/Tools
A/B comparison tests fail trying to look up fuzzy match tolerance
https://bugs.webkit.org/show_bug.cgi?id=234974
Reviewed by Aditya Keerthi.
- Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:
(SingleTestRunner._run_self_comparison_test):
(SingleTestRunner._compare_output_with_reference):
Disable fuzzy matching for A/B tests, because A) we don't really want it
and B) it crashes run-webkit-tests because there is no actual reference file
in which to find the tolerance value.
- 2:56 PM Changeset in webkit [287789] by
-
- 3 edits in trunk/Tools
check-webkit-style: add checker for unexpected fall through after ASSERT_NOT_REACHED() statements
<https://webkit.org/b/234932>
<rdar://87213520>
Reviewed by Brent Fulgham.
This checker only returns a confidence level of 4 (out of 5)
since there are too many different code patterns to check them
all perfectly using regular expressions.
Run new checker tests like this:
$ test-webkitpy webkitpy.style.checkers.cpp_unittest.CppStyleTest.test_debug_not_reached_assertion
Run this checker against a file or folder like this:
$ check-webkit-style --filter "-,+security/assertion_fallthrough" (file|folder)
- Scripts/webkitpy/style/checkers/cpp.py:
(SingleLineView.init):
- Expose
trimmed_linesas a property on SingleLineView.
(_FunctionState.body_view): Add.
- Add method to return a SingleLineView object containing the body of the function.
(check_function_body): Add.
- New function to check for fall through after ASSERT_NOT_REACHED() statements.
(process_line):
- Call check_function_body() to implement the new check.
(CppChecker.categories):
- Add 'security/assertion_fallthrough' to the list of known checkers.
- Scripts/webkitpy/style/checkers/cpp_unittest.py:
(CppStyleTestBase.perform_function_body_check): Add.
- Add method to call check_function_body() for testing.
(CppStyleTest.test_debug_not_reached_assertion): Add.
- Add tests for the new checker.
- 2:56 PM Changeset in webkit [287788] by
-
- 20 edits14 adds in trunk/LayoutTests
Resync web-platform-tests/dom from upstream
https://bugs.webkit.org/show_bug.cgi?id=234963
Reviewed by Geoffrey Garen.
Resync web-platform-tests/dom from upstream 84b2be5b17e8542dea2.
- resources/resource-files.json:
- web-platform-tests/dom/*: Updated.
- 2:51 PM Changeset in webkit [287787] by
-
- 14 edits in trunk
Remove obsolete DOM Level 2 "DOMFocusIn" / "DOMFocusOut" events
https://bugs.webkit.org/show_bug.cgi?id=234978
Patch by Alexey Shvayka <ashvayka@apple.com> on 2022-01-07
Reviewed by Geoff Garen.
Source/WebCore:
This patch removes these events because according to Chrome stats, only 0.04%
of page loads use them [1], which is below the Blink's removal threshold of 0.10%.
All the "top sites" listed as "DOMFocusIn" / "DOMFocusOut" adopters, are now dead.
Also, these events were never implemented in Firefox.
[1] https://chromestatus.com/metrics/feature/timeline/popularity/211
No new tests because it's a feature removal.
- dom/Document.cpp:
(WebCore::Document::setFocusedElement):
- dom/Document.h:
- dom/Element.cpp:
(WebCore::Element::dispatchFocusInEvent):
(WebCore::Element::dispatchFocusOutEvent):
- dom/Element.h:
- dom/EventNames.h:
Source/WebInspectorUI:
- UserInterface/Models/ScriptTimelineRecord.js:
(WI.ScriptTimelineRecord.EventType.displayName):
LayoutTests:
- editing/deleting/insert-in-orphaned-selection-crash.html:
- fast/events/focusinout-expected.txt:
- fast/events/focusinout.html:
- fast/events/scoped/editing-commands.html:
- fast/forms/textarea/textarea-autofocus-removal-while-focusing-with-style.html:
- fast/forms/textarea/textarea-autofocus-removal-while-focusing.html:
- 2:46 PM Changeset in webkit [287786] by
-
- 2 edits in trunk/Source/WebKit
REGRESSION(r286498): Web Inspector: Inspector2 fails to load in release builds and crashes with an assertion in debug builds
https://bugs.webkit.org/show_bug.cgi?id=234968
Reviewed by Devin Rousso.
Inspector2 would fail to open a local inspector frontend because m_inspectedPageIdentifier was not set before
it was used inWebInspectorUIProxy::createFrontendPage. To correct this, we now cache the inspected page
identifier immediately upon creating the WebInspectorUIProxy, instead of only in
WebInspectorUIProxy::updateForNewPageProcess. This also allows us to use the cached identifier in
WebInspectorUIProxy::openLocalInspectorFrontendas discussed in <http://webkit.org/b/233293#c5>.
- UIProcess/Inspector/WebInspectorUIProxy.cpp:
(WebKit::WebInspectorUIProxy::WebInspectorUIProxy):
(WebKit::WebInspectorUIProxy::openLocalInspectorFrontend):
- 2:46 PM Changeset in webkit [287785] by
-
- 4 edits4 adds in trunk/LayoutTests/imported/w3c
Resync web-platform-tests/webaudio from upstream
https://bugs.webkit.org/show_bug.cgi?id=234981
Reviewed by Geoffrey Garen.
Resync web-platform-tests/webaudio from upstream 84b2be5b17e8542dea2.
- web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/acquire-the-content-expected.txt: Added.
- web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/acquire-the-content.html: Added.
- web-platform-tests/webaudio/the-audio-api/the-audiobuffer-interface/w3c-import.log:
- web-platform-tests/webaudio/the-audio-api/the-audiocontext-interface/w3c-import.log:
- web-platform-tests/webaudio/the-audio-api/the-periodicwave-interface/createPeriodicWaveInfiniteValuesThrows-expected.txt: Added.
- web-platform-tests/webaudio/the-audio-api/the-periodicwave-interface/createPeriodicWaveInfiniteValuesThrows.html: Added.
- web-platform-tests/webaudio/the-audio-api/the-periodicwave-interface/w3c-import.log:
- 2:45 PM Changeset in webkit [287784] by
-
- 9 edits in trunk/Source
Adopt linkedOnOrAfter() in more places
https://bugs.webkit.org/show_bug.cgi?id=234951
Reviewed by Wenson Hsieh.
Source/JavaScriptCore:
- API/JSWrapperMap.mm:
(supportsInitMethodConstructors):
- API/tests/testapi.cpp:
(TestAPI::promiseDrainDoesNotEatExceptions):
- API/tests/testapi.mm:
(testMicrotaskWithFunction):
- runtime/JSLock.cpp:
(JSC::JSLock::willReleaseLock):
- runtime/ObjectPrototype.cpp:
(JSC::isPokerBros):
Adopt linkedOnOrAfter.
Source/WTF:
- wtf/cocoa/LanguageCocoa.mm:
(WTF::canMinimizeLanguages):
Adopt linkedOnOrAfter and simplify.
- wtf/cocoa/RuntimeApplicationChecksCocoa.h:
The weird mismatch between the iOS and macOS values for FirstVersionThatSupportsInitConstructors
is correct; the iOS version was bumped in r202670.
- 2:22 PM Changeset in webkit [287783] by
-
- 7 edits9 adds in trunk
CSP: strict-dynamic is causing incorrect and unexpected behavior
https://bugs.webkit.org/show_bug.cgi?id=234756
<rdar://problem/87018316>
Reviewed by Brent Fulgham.
Source/WebCore:
Per the CSP spec, if strict-dynamic is included in the script-src
directive, 'self' and 'unsafe-inline' should be ignored. This fixes a
bug where they were only ignored if specified before 'strict-dynamic'.
Additionally, this reports the sourceURL as empty for inline scripts
instead of using the contextURL, which was unexpectedly allowing
inline scripts when "self" was used with "strict-dynamic".
Tests: http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-host-list.html
http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-scheme-list.html
http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-self.html
http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-unsafe-inline.html
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::executeClassicScript):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allScriptPoliciesAllow const):
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):
- page/csp/ContentSecurityPolicy.h:
- page/csp/ContentSecurityPolicySourceList.cpp:
(WebCore::ContentSecurityPolicySourceList::parseSource):
LayoutTests:
Add tests with re-arranged ordering of the source expressions.
- http/tests/security/contentSecurityPolicy/resources/simpleSourcedScript.js: Added.
- http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-host-list-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-host-list.html: Added.
- http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-scheme-list-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-scheme-list.html: Added.
- http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-self-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-self.html: Added.
- http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-unsafe-inline-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/strict-dynamic-mixed-order-unsafe-inline.html: Added.
- 2:21 PM Changeset in webkit [287782] by
-
- 26 edits1 add in trunk/Source
[GPU Process] Remove the result FilterImage from FilterEffect
https://bugs.webkit.org/show_bug.cgi?id=232840
rdar://85425842
Reviewed by Darin Adler.
Source/WebCore:
Removing the result FilterImage from FilterEffect will allow reusing the
same FilterEffect for all the renderers that reference it. The results
will now be stored in the new class 'FilterResults'.
-- FilterData still keeps the results of applying the Filter to its
renderer in a new member of type FilterResults.
-- RenderLayerFilters will not need to clear its CSSFilter intermediate
results because this will happen once the temporary FilterResults goes
out of scope.
FilterResults will have two maps:
- FilterEffect -> FilterImage: The value is the result FilterImage of applying the FilterEffect.
- FilterImage -> FilterEffectSet: The value is a list of FilterEffects, whose FilterImages depend on the key FilterImage.
- Headers.cmake:
- WebCore.xcodeproj/project.pbxproj:
- platform/graphics/ConcreteImageBuffer.h:
- platform/graphics/GraphicsContext.cpp:
(WebCore::GraphicsContext::drawFilteredImageBuffer):
- platform/graphics/GraphicsContext.h:
- platform/graphics/displaylists/DisplayListItems.cpp:
(WebCore::DisplayList::DrawFilteredImageBuffer::apply):
- platform/graphics/displaylists/DisplayListItems.h:
- platform/graphics/displaylists/DisplayListRecorder.cpp:
(WebCore::DisplayList::Recorder::drawFilteredImageBuffer):
- platform/graphics/displaylists/DisplayListRecorder.h:
- platform/graphics/filters/Filter.cpp:
(WebCore::Filter::apply):
- platform/graphics/filters/Filter.h:
- platform/graphics/filters/FilterEffect.cpp:
(WebCore::FilterEffect::apply):
(WebCore::FilterEffect::clearResult): Deleted.
(WebCore::FilterEffect::clearResultsRecursive): Deleted.
- platform/graphics/filters/FilterEffect.h:
(WebCore::FilterEffect::hasResult const): Deleted.
(WebCore::FilterEffect::filterImage const): Deleted.
- platform/graphics/filters/FilterFunction.h:
(WebCore::FilterFunction::apply):
(WebCore::FilterFunction::outsets const):
(WebCore::FilterFunction::clearResult): Deleted.
- platform/graphics/filters/FilterResults.h: Added.
(WebCore::FilterResults::effectResult const):
(WebCore::FilterResults::setEffectResult):
(WebCore::FilterResults::clearEffectResult):
- platform/network/SynchronousLoaderClient.cpp:
- rendering/CSSFilter.cpp:
(WebCore::CSSFilter::apply):
(WebCore::CSSFilter::clearIntermediateResults): Deleted.
- rendering/CSSFilter.h:
- rendering/RenderLayerFilters.cpp:
(WebCore::RenderLayerFilters::applyFilterEffect):
- rendering/svg/RenderSVGResourceFilter.cpp:
(WebCore::RenderSVGResourceFilter::postApplyResource):
(WebCore::RenderSVGResourceFilter::primitiveAttributeChanged):
- rendering/svg/RenderSVGResourceFilter.h:
- svg/graphics/filters/SVGFilter.cpp:
(WebCore::SVGFilter::apply):
(WebCore::SVGFilter::clearResult): Deleted.
- svg/graphics/filters/SVGFilter.h:
- svg/graphics/filters/SVGFilterBuilder.cpp:
(WebCore::SVGFilterBuilder::setupBuiltinEffects):
(WebCore::SVGFilterBuilder::buildFilterEffects):
(WebCore::SVGFilterBuilder::appendEffectToEffectRenderer):
(WebCore::SVGFilterBuilder::appendEffectToEffectReferences): Deleted.
(WebCore::SVGFilterBuilder::clearEffects): Deleted.
(WebCore::SVGFilterBuilder::clearResultsRecursive): Deleted.
- svg/graphics/filters/SVGFilterBuilder.h:
(WebCore::SVGFilterBuilder::lastEffect const): Deleted.
(WebCore::SVGFilterBuilder::effectReferences): Deleted.
(WebCore::SVGFilterBuilder::addBuiltinEffects): Deleted.
Source/WebKit:
- GPUProcess/graphics/RemoteDisplayListRecorder.cpp:
(WebKit::RemoteDisplayListRecorder::drawFilteredImageBuffer):
- 1:52 PM Changeset in webkit [287781] by
-
- 19 edits in trunk/Source
[Cocoa] Web Driver: WebSocket over TLS failing over WebDriver with acceptInsecureCerts on Big Sur
https://bugs.webkit.org/show_bug.cgi?id=234403
Reviewed by BJ Burg.
Source/WebCore:
- page/SocketProvider.cpp:
(WebCore::SocketProvider::createSocketStreamHandle):
- platform/network/cf/SocketStreamHandleImpl.h:
(WebCore::SocketStreamHandleImpl::create):
- platform/network/cf/SocketStreamHandleImplCFNet.cpp:
(WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
(WebCore::SocketStreamHandleImpl::createStreams):
- platform/network/curl/SocketStreamHandleImpl.h:
(WebCore::SocketStreamHandleImpl::create):
- platform/network/soup/SocketStreamHandleImpl.h:
Source/WebKit:
macOS Big Sur and earlier do not use NSURLSession-based WebSockets, so we need a way to allow insecure
certificates under automation that does not rely on theWKNavigationDelegateto determine if an
authentication challenge should be accepted. In order to accomplish this we now plumb through an
_shouldAcceptInsecureCertificatesForWebSocketsvalue from_WKAutomationSessionConfigurationto
SocketStreamHandleImplCFNeton platforms that do notHAVE(NSURLSESSION_WEBSOCKET), which allows automation
clients to enable this behavior when theacceptInsecureCertscapability is set on a session.
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
(WebKit::NetworkConnectionToWebProcess::createSocketStream):
- NetworkProcess/NetworkSession.cpp:
(WebKit::NetworkSession::NetworkSession):
- NetworkProcess/NetworkSession.h:
(WebKit::NetworkSession::shouldAcceptInsecureCertificatesForWebSockets const):
- NetworkProcess/NetworkSessionCreationParameters.cpp:
(WebKit::NetworkSessionCreationParameters::encode const):
(WebKit::NetworkSessionCreationParameters::decode):
- NetworkProcess/NetworkSessionCreationParameters.h:
- NetworkProcess/NetworkSocketStream.cpp:
(WebKit::NetworkSocketStream::create):
(WebKit::NetworkSocketStream::NetworkSocketStream):
- NetworkProcess/NetworkSocketStream.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.h:
- UIProcess/API/Cocoa/_WKWebsiteDataStoreConfiguration.mm:
(-[_WKWebsiteDataStoreConfiguration _shouldAcceptInsecureCertificatesForWebSockets]):
(-[_WKWebsiteDataStoreConfiguration _setShouldAcceptInsecureCertificatesForWebSockets:]):
- UIProcess/WebsiteData/WebsiteDataStore.cpp:
(WebKit::WebsiteDataStore::parameters):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.cpp:
(WebKit::WebsiteDataStoreConfiguration::copy const):
- UIProcess/WebsiteData/WebsiteDataStoreConfiguration.h:
(WebKit::WebsiteDataStoreConfiguration::shouldAcceptInsecureCertificatesForWebSockets const):
(WebKit::WebsiteDataStoreConfiguration::setShouldAcceptInsecureCertificatesForWebSockets):
- 1:25 PM Changeset in webkit [287780] by
-
- 3 edits in trunk/LayoutTests
Unreviewed, rebaseline imported/w3c/web-platform-tests/html/dom/idlharness.https.html properly on iOS platforms.
- platform/ios-wk2/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- platform/ipad/imported/w3c/web-platform-tests/html/dom/idlharness.https-expected.txt:
- 1:16 PM Changeset in webkit [287779] by
-
- 3 edits2 adds in trunk
Inline blocks that contain text with min-width, box-sizing: border-box incorrectly include the border in width calculation
https://bugs.webkit.org/show_bug.cgi?id=234935
<rdar://problem/87217423>
Reviewed by Antti Koivisto.
Source/WebCore:
The block formatting context root takes care of applying the the min/max-width constraints.
Test: fast/inline/min-max-width-and-preferred-width.html
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::computedIntrinsicWidthConstraintsForIntegration): remove redundant min/max-width checking.
LayoutTests:
- fast/inline/min-max-width-and-preferred-width-expected.html: Added.
- fast/inline/min-max-width-and-preferred-width.html: Added.
- 1:09 PM Changeset in webkit [287778] by
-
- 2 edits in trunk/Source/WebCore
WebAccessibilityObjectWrapper accessibilityHitTest should call AXCoreObject::widget() on the main thread.
https://bugs.webkit.org/show_bug.cgi?id=234973
<rdar://problem/87264153>
Reviewed by Chris Fleizach.
In isolated tree mode, the AX object widget() method and any subsequent
access to the returned value must be dispatch to the main thread.
- accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
(-[WebAccessibilityObjectWrapper accessibilityHitTest:]):
- 12:28 PM Changeset in webkit [287777] by
-
- 7 edits in trunk
Teach modal container observer to make the body element scrollable if necessary
https://bugs.webkit.org/show_bug.cgi?id=234708
rdar://86960677
Reviewed by Tim Horton.
Source/WebCore:
Add a mechanism to allow ModalContainerObserver to force the body and/or document elements in the main document
to become vertically scrollable, in the case where a modal container has been detected.
In particular, if a modal container has already been detected and hidden away, the frame is non-scrollable, and
the body and/or document element satisfies both conditions:
- Has a height that is taller than the visible height of the top FrameView
- Has
overflow-y: hidden;
...then we'll flag one or both of those elements and force them to be vertically scrollable during style
adjustment (i.e. returntruefromshouldMakeVerticallyScrollable()).
Covered by augmenting an existing API test:
ModalContainerObservation.HideUserInteractionBlockingElementAndMakeDocumentScrollable
- page/ModalContainerObserver.cpp:
(WebCore::ModalContainerObserver::setContainer):
(WebCore::ModalContainerObserver::collectClickableElementsTimerFired):
(WebCore::ModalContainerObserver::makeBodyAndDocumentElementScrollableIfNeeded):
Helper method that contains logic for overriding scrollability on the body or html element, if needed.
(WebCore::ModalContainerObserver::clearScrollabilityOverrides):
(WebCore::ModalContainerObserver::hideUserInteractionBlockingElementIfNeeded):
Drive-by fix:
targetis just a raw pointer here, so just assign it directly tofoundElementinstead of
trying to use move semantics.
(WebCore::ModalContainerObserver::revealModalContainer):
(WebCore::ModalContainerObserver::shouldMakeVerticallyScrollable const):
Add a helper method (similar to
shouldHide()) that can be used to make elements vertically scrollable during
style adjustment time. See above for more details.
(WebCore::ModalContainerObserver::tryToMakeBodyAndDocumentElementScrollableThroughQuirks):
- page/ModalContainerObserver.h:
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const):
Consult
shouldMakeVerticallyScrollablein addition toshouldHideifModalContainerObserveris present.
Tools:
Adjust an existing API test to exercise the change.
- TestWebKitAPI/Tests/WebKit/modal-container-with-overlay.html:
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
(TestWebKitAPI::TEST):
- 12:20 PM Changeset in webkit [287776] by
-
- 2 edits in trunk/Source/WebInspectorUI
Uncaught Exception: Cannot step over because debugger is not paused
https://bugs.webkit.org/show_bug.cgi?id=234575
Reviewed by Devin Rousso.
Previously keyboard shortcuts for advancing the debugger did not check to make sure that the debugger was
actually paused before attempting to step. This led to an uncaught exception in engineering builds. We now
enable and disable these keyboard shortcuts based on the whether or not the debugger is currently paused.
- UserInterface/Base/Main.js:
- 11:57 AM Changeset in webkit [287775] by
-
- 3 edits in trunk/Source/WebKit
Web process shouldn't crash if ImageBuffer::ensureBackendCreated() fails
https://bugs.webkit.org/show_bug.cgi?id=232520
<rdar://problem/84829717>
Reviewed by Simon Fraser.
Guard against the possibility of it returning null.
No new tests because there shouldn't be any behavior change after https://bugs.webkit.org/show_bug.cgi?id=232470.
It's still good to do this, though, to be defensive.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::encode const):
- WebProcess/GPU/graphics/RemoteImageBufferProxy.h:
(WebKit::RemoteImageBufferProxy::createImageBufferBackendHandle):
- 11:48 AM Changeset in webkit [287774] by
-
- 3 edits in trunk/Source/WebKit
ImageBuffer with floating point logicalSize() paints into a slightly truncated destination rect
https://bugs.webkit.org/show_bug.cgi?id=225377
Reviewed by Tim Horton.
This is the rest of https://bugs.webkit.org/show_bug.cgi?id=232470.
This is also a follow-up of https://bugs.webkit.org/show_bug.cgi?id=232515.
No new tests; the behavior change is covered by
fast/backgrounds/hidpi-bitmap-background-origin-on-subpixel-position.html
since Tim Horton reverted the workaround for this bug that he landed in r276945.
- Shared/RemoteLayerTree/RemoteLayerBackingStore.mm:
(WebKit::RemoteLayerBackingStore::drawInContext):
- WebProcess/GPU/graphics/RemoteRenderingBackendProxy.cpp:
(WebKit::RemoteRenderingBackendProxy::createRemoteImageBuffer):
- 11:46 AM Changeset in webkit [287773] by
-
- 2 edits in trunk/Tools
REGRESSION: TestWebKitAPI.PublicSuffix.IsPublicSuffix is failing on some bots
https://bugs.webkit.org/show_bug.cgi?id=234609
Unreviewed test gardening.
- TestWebKitAPI/Tests/WebCore/PublicSuffix.cpp:
(TestWebKitAPI::TEST_F): Disable failing subtest.
- 11:38 AM Changeset in webkit [287772] by
-
- 7 edits in trunk/Source/WebCore
Make separate invalidation rulesets for negated selectors (inside :not())
https://bugs.webkit.org/show_bug.cgi?id=234959
Reviewed by Darin Adler.
Use this information to reduce traversal on class changes. Other mutations will follow.
- style/ClassChangeInvalidation.cpp:
(WebCore::Style::collectClasses):
(WebCore::Style::computeClassChanges):
(WebCore::Style::ClassChangeInvalidation::computeInvalidation):
Adding a class can only make a regular selector (not inside :not()) start matching.
Adding a class can only make a negated selector (inside :not()) stop matching.
We only need to invalidate for the first case after the mutation has happened and for the second
case before it happens.
These are reversed when removing a class.
(WebCore::Style::ClassChangeInvalidation::invalidateBeforeChange):
(WebCore::Style::ClassChangeInvalidation::invalidateAfterChange):
(WebCore::Style::computeClassChange): Deleted.
(WebCore::Style::ClassChangeInvalidation::invalidateStyleWithRuleSets): Deleted.
- style/ClassChangeInvalidation.h:
(WebCore::Style::ClassChangeInvalidation::ClassChangeInvalidation):
(WebCore::Style::ClassChangeInvalidation::~ClassChangeInvalidation):
- style/RuleFeature.cpp:
(WebCore::Style::RuleFeature::RuleFeature):
(WebCore::Style::RuleFeatureWithInvalidationSelector::RuleFeatureWithInvalidationSelector):
(WebCore::Style::RuleFeatureSet::recursivelyCollectFeaturesFromSelector):
Compute the negation state. :not(foo) is negated, :not(:not(foo)) isn't.
(WebCore::Style::RuleFeatureSet::collectFeatures):
- style/RuleFeature.h:
(WebCore::Style::RuleFeatureWithInvalidationSelector::RuleFeatureWithInvalidationSelector): Deleted.
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::ensureInvalidationRuleSets):
Make separate ruleset.
- style/StyleScopeRuleSets.h:
- 11:34 AM Changeset in webkit [287771] by
-
- 2 edits in trunk/Source/WebCore
nullptr deref in ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded
https://bugs.webkit.org/show_bug.cgi?id=234018
Patch by Gabriel Nava Marino <gnavamarino@apple.com> on 2022-01-07
Reviewed by Darin Adler.
In RenderBlockFlow::subtreeContainsFloat and RenderBlockFlow::subtreeContainsFloats we now will
use a non-recursive iterator and return true when we find something, or then return false at the
end of the function.
- rendering/RenderBlockFlow.cpp:
(WebCore::RenderBlockFlow::subtreeContainsFloat const):
(WebCore::RenderBlockFlow::subtreeContainsFloats const):
- 11:24 AM Changeset in webkit [287770] by
-
- 59 edits in trunk
Unreviewed, reverting r287698.
Broke an internal build
Reverted changeset:
"Start using C++20"
https://bugs.webkit.org/show_bug.cgi?id=233963
https://commits.webkit.org/r287698
- 11:22 AM Changeset in webkit [287769] by
-
- 7 edits in trunk
Inserting a new @keyframes rule does not start animations that already used this name
https://bugs.webkit.org/show_bug.cgi?id=234955
Reviewed by Antti Koivisto.
LayoutTests/imported/w3c:
Mark WPT progression.
- web-platform-tests/css/css-animations/Element-getAnimations.tentative-expected.txt:
Source/WebCore:
In bug 234895, we added logic to handle the case where an existing @keyframes rule was manipulated
via the CSSOM API and ensured this would update the keyframes of any existing CSSAnimation currently
referencing this @keyframes rule.
Another WPT tests the case where a @keyframes rule is referenced by an animation prior to existing
in the stylesheet, adding that named @keyframes rule, and then testing a CSSAnimation was created.
To handle this case, we need to track which animation names were ignored during style resolution
due not matching an existing @keyframes rule. We now manage a list of invalid CSS animation names
stored on the KeyframeEffectStack (where we also keep track of the AnimationList last seen during
style resolution) and use that to determine when, even though the previous and current AnimationList
contain the same data, a previously-ignored animation should now be processed due to its referenced
@keyframes rule now existing.
- animation/KeyframeEffectStack.cpp:
(WebCore::KeyframeEffectStack::clearInvalidCSSAnimationNames):
(WebCore::KeyframeEffectStack::hasInvalidCSSAnimationNames const):
(WebCore::KeyframeEffectStack::containsInvalidCSSAnimationName const):
(WebCore::KeyframeEffectStack::addInvalidCSSAnimationName):
- animation/KeyframeEffectStack.h:
- style/Styleable.cpp:
(WebCore::keyframesRuleExistsForAnimation):
(WebCore::Styleable::animationListContainsNewlyValidAnimation const):
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::shouldConsiderAnimation): Deleted.
- style/Styleable.h:
- 11:21 AM Changeset in webkit [287768] by
-
- 4 edits in trunk
Unreviewed, reverting r287718.
Broke an internal build
Reverted changeset:
"[PlayStation] Fix build break after r287698"
https://bugs.webkit.org/show_bug.cgi?id=234931
https://commits.webkit.org/r287718
- 11:04 AM Changeset in webkit [287767] by
-
- 1 copy in tags/Safari-613.1.12.1.4
Tag Safari-613.1.12.1.4.
- 10:59 AM Changeset in webkit [287766] by
-
- 2 edits in branches/safari-613.1.12.1-branch/Source/WebKit
Cherry-pick r287754. rdar://problem/87228791
[MacCatalyst] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=234962
<rdar://87228791>
Reviewed by Brent Fulgham.
Add required syscall in MacCatalyst sandbox.
- WebProcess/com.apple.WebProcess.sb.in:
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287754 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 10:58 AM Changeset in webkit [287765] by
-
- 9 edits in branches/safari-613.1.12.1-branch/Source
Versioning.
WebKit-7613.1.12.1.4
- 10:56 AM Changeset in webkit [287764] by
-
- 4 edits in trunk
Transitions without an explicit property-name should not be considered
https://bugs.webkit.org/show_bug.cgi?id=234960
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Mark WPT progression.
- web-platform-tests/css/css-transitions/events-004-expected.txt:
Source/WebCore:
When we fill the transition-property to match the number of another
transition-
property, we should not consider running a transition for that property.
- style/Styleable.cpp:
(WebCore::transitionMatchesProperty):
- 10:53 AM Changeset in webkit [287763] by
-
- 16 edits in trunk/Source
Use completion handlers for takeAllMessagesForPort methods
https://bugs.webkit.org/show_bug.cgi?id=234947
Reviewed by Chris Dumez.
Source/WebCore:
Covered by existing tests.
- dom/MessagePort.cpp:
- dom/messageports/MessagePortChannel.cpp:
- dom/messageports/MessagePortChannel.h:
- dom/messageports/MessagePortChannelProvider.h:
- dom/messageports/MessagePortChannelProviderImpl.cpp:
- dom/messageports/MessagePortChannelProviderImpl.h:
- dom/messageports/MessagePortChannelRegistry.cpp:
- dom/messageports/MessagePortChannelRegistry.h:
- dom/messageports/WorkerMessagePortChannelProvider.cpp:
- dom/messageports/WorkerMessagePortChannelProvider.h:
Source/WebKit:
- NetworkProcess/NetworkConnectionToWebProcess.cpp:
- NetworkProcess/NetworkConnectionToWebProcess.h:
- WebProcess/WebCoreSupport/WebMessagePortChannelProvider.cpp:
- WebProcess/WebCoreSupport/WebMessagePortChannelProvider.h:
- 10:48 AM Changeset in webkit [287762] by
-
- 6 edits in trunk/Source/WebCore
Expose iterators on AnimationList
https://bugs.webkit.org/show_bug.cgi?id=234957
Reviewed by Antti Koivisto.
- animation/WebAnimationUtilities.cpp:
(WebCore::compareCSSAnimations):
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::valueListForAnimationOrTransitionProperty):
(WebCore::animationShorthandValue):
- css/makeprop.pl:
(generateAnimationPropertyInitialValueSetter):
- platform/animation/AnimationList.h:
(WebCore::AnimationList::begin const):
(WebCore::AnimationList::end const):
(WebCore::AnimationList::rbegin const):
(WebCore::AnimationList::rend const):
- style/Styleable.cpp:
(WebCore::Styleable::updateCSSAnimations const):
(WebCore::compileTransitionPropertiesInStyle):
(WebCore::updateCSSTransitionsForStyleableAndProperty):
- 10:46 AM Changeset in webkit [287761] by
-
- 2 edits in trunk/Source/WebCore
Values in WebAnimation::instances should not be null-checked
https://bugs.webkit.org/show_bug.cgi?id=234948
Reviewed by Darin Adler.
The HashSet<WebAnimation*> returned by WebAnimation::instances() cannnot hold nullptr
values so we should not have any check for a null value when iterating over its values.
- dom/Document.cpp:
(WebCore::Document::matchingAnimations):
(WebCore::Document::keyframesRuleDidChange):
- 10:44 AM Changeset in webkit [287760] by
-
- 4 edits in trunk
Allow storing form data responses in Cache Storage
https://bugs.webkit.org/show_bug.cgi?id=234881
Reviewed by Alex Christensen.
LayoutTests/imported/w3c:
- web-platform-tests/service-workers/cache-storage/window/cache-put.https-expected.txt:
Source/WebCore:
Covered by rebased tests.
- Modules/cache/DOMCache.cpp:
(WebCore::DOMCache::put):
- 10:43 AM Changeset in webkit [287759] by
-
- 4 edits in trunk
Expose rvfc processingDuration for the WebRTC code path
https://bugs.webkit.org/show_bug.cgi?id=234949
Reviewed by Eric Carlson.
Source/WebCore:
This processing duration is the time it took for an assembled frame to be decoded and sent to RealtimIncomingVideoSource.
This duration can be approximately retrieved from WebRTC encoded transform (time for the assembled frame, aka time just before decoding)
and the time at which it is exposed by requestVideoFrameCallback (aka time just after decoding).
The processing duration is rounded in milliseconds.
Covered by updated test.
- platform/mediastream/RealtimeIncomingVideoSource.cpp:
LayoutTests:
- webrtc/peerConnection-rvfc.html:
- 10:36 AM Changeset in webkit [287758] by
-
- 10 edits in trunk/Source/JavaScriptCore
[JSC] Clean up StructureStubInfo
https://bugs.webkit.org/show_bug.cgi?id=234943
Reviewed by Saam Barati.
Use std::unique_ptr<PolymorphicAccess> instead of raw pointer.
- bytecode/CheckPrivateBrandStatus.cpp:
(JSC::CheckPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/DeleteByStatus.cpp:
(JSC::DeleteByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/GetByStatus.cpp:
(JSC::GetByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/InByStatus.cpp:
(JSC::InByStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/InstanceOfStatus.cpp:
(JSC::InstanceOfStatus::computeForStubInfo):
- bytecode/PutByStatus.cpp:
(JSC::PutByStatus::computeForStubInfo):
- bytecode/SetPrivateBrandStatus.cpp:
(JSC::SetPrivateBrandStatus::computeForStubInfoWithoutExitSiteFeedback):
- bytecode/StructureStubInfo.cpp:
(JSC::StructureStubInfo::deref):
(JSC::StructureStubInfo::aboutToDie):
(JSC::StructureStubInfo::addAccessCase):
(JSC::StructureStubInfo::visitAggregateImpl):
(JSC::StructureStubInfo::visitWeakReferences):
(JSC::StructureStubInfo::propagateTransitions):
(JSC::StructureStubInfo::summary const):
(JSC::StructureStubInfo::containsPC const):
(JSC::StructureStubInfo::~StructureStubInfo): Deleted.
- bytecode/StructureStubInfo.h:
(JSC::StructureStubInfo::offsetOfCodePtr):
(JSC::StructureStubInfo::offsetOfDoneLocation):
(JSC::StructureStubInfo::offsetOfSlowPathStartLocation):
(JSC::StructureStubInfo::offsetOfSlowOperation):
(JSC::StructureStubInfo::offsetOfCountdown):
- 10:06 AM Changeset in webkit [287757] by
-
- 8 edits2 adds in trunk
REGRESSION (Safari 14): background-attachment: local does not work
https://bugs.webkit.org/show_bug.cgi?id=219324
Source/WebCore:
<rdar://71808922>
Reviewed by Antti Koivisto.
With async overflow scrolling, we need to trigger a repaint if the scrolling element
has any background layer withbackground-attachment: local.
The background won't always be synchronized with the scrolling, but a little jitter
is better than a broken CSS behavior (and this is what Firefox does).
Test: fast/repaint/background-attachment-local-scroll.html
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::needsRepaintOnCompositedScroll const):
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::hasAnyLocalBackground const):
- rendering/style/RenderStyle.h:
LayoutTests:
Reviewed by Antti Koivisto.
Skip the test on platforms without async overflow scroll.
- TestExpectations:
- fast/repaint/background-attachment-local-scroll-expected.txt: Added.
- fast/repaint/background-attachment-local-scroll.html: Added.
- platform/ios-wk2/TestExpectations:
- platform/mac-wk2/TestExpectations:
- 10:04 AM Changeset in webkit [287756] by
-
- 5 edits2 adds in trunk
Implement CSP strict-dynamic for module scripts
https://bugs.webkit.org/show_bug.cgi?id=234934
<rdar://problem/83728374>
Reviewed by Brent Fulgham.
Source/WebCore:
Test: http/tests/security/contentSecurityPolicy/strict-dynamic-module-script.html
This also adds the contextLine value instead of using the default
OrdinalNumber::beforeFirst() value.
- dom/ScriptElement.cpp:
(WebCore::ScriptElement::requestClassicScript):
(WebCore::ScriptElement::requestModuleScript):
(WebCore::ScriptElement::executeClassicScript):
- page/csp/ContentSecurityPolicy.cpp:
(WebCore::ContentSecurityPolicy::allowNonParserInsertedScripts const):
- page/csp/ContentSecurityPolicy.h:
LayoutTests:
- http/tests/security/contentSecurityPolicy/strict-dynamic-module-script-expected.txt: Added.
- http/tests/security/contentSecurityPolicy/strict-dynamic-module-script.html: Added.
- 9:44 AM Changeset in webkit [287755] by
-
- 3 edits in trunk/Source/WebKit
Clean up FullscreenClient
https://bugs.webkit.org/show_bug.cgi?id=233076
Reviewed by Jer Noble.
This patch is a follow-up to r285741.
- Get rid of
WKFullscreenClientViewand useWKWebViewinstead.
- UIProcess/Cocoa/FullscreenClient.h:
- UIProcess/Cocoa/FullscreenClient.mm:
(WebKit::FullscreenClient::FullscreenClient):
(WebKit::FullscreenClient::willEnterFullscreen):
(WebKit::FullscreenClient::didEnterFullscreen):
(WebKit::FullscreenClient::willExitFullscreen):
(WebKit::FullscreenClient::didExitFullscreen):
- 9:37 AM Changeset in webkit [287754] by
-
- 2 edits in trunk/Source/WebKit
[MacCatalyst] Add required syscall
https://bugs.webkit.org/show_bug.cgi?id=234962
<rdar://87228791>
Reviewed by Brent Fulgham.
Add required syscall in MacCatalyst sandbox.
- WebProcess/com.apple.WebProcess.sb.in:
- 9:32 AM Changeset in webkit [287753] by
-
- 3 edits2 adds in trunk
Checkboxes on PurpleAir map controls are much smaller in Safari than other browsers
https://bugs.webkit.org/show_bug.cgi?id=234897
rdar://83367191
Reviewed by Darin Adler.
Source/WebCore:
Unlike other browser engines, WebKit adjusts the size of checkboxes and
radio buttons based on the font-size of the element, when the size is
unspecified. The checkboxes on PurpleAir have a font-size of 9px, which
results in WebKit painting a checkbox using NSControlSizeMini (with a
length of 10px). In constrast, Chrome and Firefox simply use their
default sizes (13px and 12.6px respectively).
To fix, remove the font-size adjustments for checkboxes and radio
buttons with an unspecified size, and use the current effective
default of NSControlSizeSmall (with a length of 12px) to paint the
controls.
This ensures our unspecified sizing behavior matches other browsers.
There may be some risk for other WebKit clients that currently rely
on font-size getting them their desired size. However, this risk is
believed to be minimal given the sizes of these controls are already
restricted to a 10 - 16px range.
Test: fast/forms/checkbox-radio-font-size.html
- platform/mac/ThemeMac.mm:
(WebCore::checkboxSize):
(WebCore::radioSize):
(WebCore::ThemeMac::controlSize const):
LayoutTests:
- fast/forms/checkbox-radio-font-size-expected.html: Added.
- fast/forms/checkbox-radio-font-size.html: Added.
- 9:27 AM Changeset in webkit [287752] by
-
- 3 edits in trunk/LayoutTests
[GTK] Regression in inspector/audit/run-resources.html
https://bugs.webkit.org/show_bug.cgi?id=196196
Reviewed by Chris Lord.
Fix JavaScript file MIME type check by comparing to 'text/javascript' or 'application/javascript'.
- inspector/audit/run-resources.html:
- platform/gtk/TestExpectations:
- 9:19 AM Changeset in webkit [287751] by
-
- 4 edits4 adds in branches/safari-612.4.9.3-branch
Cherry-pick r287604. rdar://problem/85966622
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.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 9:17 AM Changeset in webkit [287750] by
-
- 8 edits in branches/safari-612.4.9.3-branch/Source
Versioning.
WebKit-7612.4.9.3.1
- 8:55 AM Changeset in webkit [287749] by
-
- 4 edits4 adds in branches/safari-612.4.9.2-branch
Cherry-pick r287604. rdar://problem/85966622
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.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:54 AM Changeset in webkit [287748] by
-
- 4 edits4 adds in branches/safari-612.4.9.0-branch
Cherry-pick r287604. rdar://problem/85966622
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.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:52 AM Changeset in webkit [287747] by
-
- 8 edits in branches/safari-612.4.9.2-branch/Source
Versioning.
WebKit-7612.4.9.2.1
- 8:47 AM Changeset in webkit [287746] by
-
- 4 edits4 adds in branches/safari-612.4.9.1-branch
Cherry-pick r287604. rdar://problem/85966622
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.
git-svn-id: https://svn.webkit.org/repository/webkit/trunk@287604 268f45cc-cd09-0410-ab3c-d52691b4dbfc
- 8:45 AM Changeset in webkit [287745] by
-
- 8 edits in branches/safari-612.4.9.1-branch/Source
Versioning.
WebKit-7612.4.9.1.2
- 7:08 AM Changeset in webkit [287744] by
-
- 9 edits in trunk/Source/WebCore
[Cleanup] RenderElement::containingBlockFor*(fixed/absolute/inflow)Position is slightly confusing
https://bugs.webkit.org/show_bug.cgi?id=234939
Reviewed by Antti Koivisto.
These 3 helper functions (containingBlockForFixedPosition/containingBlockForAbsolutePosition/containingBlockForObjectInFlow)
are expected to return an ancestor renderer which would act as the containing block if the renderer was
fixed/absolute/inflow positioned (in their current form they should read as containingBlockIfTheRendererWasFixedPositioned..)
These functions were introduced as part of LogicalSelectionOffsetCaches where we cache all 3 types of
containing blocks (fixed/absolute/inflow) to save containingBlock() calls as the cached object gets propagated
to ancestor renderers (so we really have a "what if" type of use case).
After some refactoring (and moving them out of LogicalSelectionOffsetCaches), we started introducing more and more
callsites of these functions where the "what if" question made less sense.
This patch replaces these 3 functions with a static helper:
static RenderBlock* containingBlockForPositionType(PositionType, const RenderObject&);
While it does not make the callsites look much cleaner, it helps to stop the spread of the special containing block handling for top-layer/backdrop boxes.
- dom/Element.cpp:
(WebCore::layoutOverflowRectContainsAllDescendants):
- rendering/LogicalSelectionOffsetCaches.h:
(WebCore::LogicalSelectionOffsetCaches::LogicalSelectionOffsetCaches):
- rendering/RenderElement.cpp:
(WebCore::nearestNonAnonymousContainingBlockIncludingSelf): Deleted.
(WebCore::RenderElement::containingBlockForFixedPosition const): Deleted.
(WebCore::RenderElement::containingBlockForAbsolutePosition const): Deleted.
- rendering/RenderElement.h:
- rendering/RenderInline.cpp:
(WebCore::RenderInline::styleWillChange):
- rendering/RenderLineBreak.cpp:
(WebCore::RenderLineBreak::collectSelectionGeometries):
- rendering/RenderObject.cpp:
(WebCore::nearestNonAnonymousContainingBlockIncludingSelf):
(WebCore::RenderObject::containingBlockForPositionType):
(WebCore::RenderObject::containingBlock const):
(WebCore::RenderObject::containingBlockForObjectInFlow const): Deleted.
- rendering/RenderObject.h:
- 5:02 AM Changeset in webkit [287743] by
-
- 4 edits2 moves in trunk/Source/WebCore
[LBSE] Rename RenderSVGRect -> LegacyRenderSVGRect
https://bugs.webkit.org/show_bug.cgi?id=234878
Reviewed by Rob Buis.
Following the established procedure: rename RenderSVGRect -> LegacyRenderSVGRect.
In a follow-up patch RenderSVGRect will be reintroduced for LBSE, inheriting from
RenderSVGShape instead of LegacyRenderSVGShape.
Covered by existing tests, no change in behaviour.
- Sources.txt:
- WebCore.xcodeproj/project.pbxproj:
- rendering/svg/LegacyRenderSVGRect.cpp: Renamed from Source/WebCore/rendering/svg/RenderSVGRect.cpp.
(WebCore::LegacyRenderSVGRect::LegacyRenderSVGRect):
(WebCore::LegacyRenderSVGRect::rectElement const):
(WebCore::LegacyRenderSVGRect::updateShapeFromElement):
(WebCore::LegacyRenderSVGRect::fillShape const):
(WebCore::LegacyRenderSVGRect::strokeShape const):
(WebCore::LegacyRenderSVGRect::shapeDependentStrokeContains):
(WebCore::LegacyRenderSVGRect::shapeDependentFillContains const):
(WebCore::LegacyRenderSVGRect::isRenderingDisabled const):
- rendering/svg/LegacyRenderSVGRect.h: Renamed from Source/WebCore/rendering/svg/RenderSVGRect.h.
- svg/SVGRectElement.cpp:
(WebCore::SVGRectElement::createElementRenderer):
- 12:45 AM Changeset in webkit [287742] by
-
- 16 edits in trunk
When transform-style: preserve-3d is used with a grouping property it should still create a containing block
https://bugs.webkit.org/show_bug.cgi?id=234145
<rdar://problem/86630387>
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-transforms/preserve-3d-flat-grouping-properties-containing-block-expected.txt:
Source/WebCore:
No new tests. This is covered by an existing WPT test.
Previously, when a grouping property (and the few extra properties specific to WebKit) forced
transform-style: flat, this change was made in the StyleAdjuster and affected computed style.
The specification says that these properties should actually adjust the used value of
the property.
The specification also says:
The use of this property with any value other than none establishes a
stacking context. It also establishes a containing block for all
descendants, just like the transform property does.
Together, this means that no matter what the used value is of transform-style, it should
establish a containing block and create a stacking context.
This change adds a usedTransformStyle RenderStyle method and a StyleRareNonInheritedData member
to adjust the return value appropriately. RenderStyle::preserves3D reads the used value
and hasTransformRelatedProperty, which is used for establishing containing blocks
and stacking contexts, uses the calculated value.
- rendering/RenderLayer.h:
(WebCore::RenderLayer::preserves3D const): Use usedTransformStyle.
- rendering/RenderLayerBacking.cpp:
(WebCore::RenderLayerBacking::updateGeometry): This now calls preserve3D() and usedTransformStyle3D().
- rendering/RenderLayerCompositor.cpp:
(WebCore::recompositeChangeRequiresGeometryUpdate): Ditto.
(WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility const): Ditto.
(WebCore::RenderLayerCompositor::computeIndirectCompositingReason const): Ditto.
(WebCore::RenderLayerCompositor::styleChangeMayAffectIndirectCompositingReasons): Ditto.
(WebCore::RenderLayerCompositor::layerHas3DContent const): Ditto.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::changeRequiresRecompositeLayer const): Ditto.
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::hasTransformRelatedProperty const): Modified to look at the calculated value explicitly.
(WebCore::RenderStyle::usedTransformStyle3D const): Return 'flat' when the property is forced to flat.
(WebCore::RenderStyle::preserves3D const): Look at the used value.
(WebCore::RenderStyle::setTransformStyleForcedToFlat): Added.
- rendering/style/StyleRareNonInheritedData.cpp: Added a new transformStyleForcedToFlat member.
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Ditto.
(WebCore::StyleRareNonInheritedData::operator== const): Ditto.
- rendering/style/StyleRareNonInheritedData.h:
- style/StyleAdjuster.cpp:
(WebCore::Style::Adjuster::adjust const): Call setTransformStyleForcedToFlat with the
appropriate value when an element has 'preserve-3d' set.
LayoutTests:
- compositing/overflow-trumps-transform-style-expected.txt:
- compositing/overflow-trumps-transform-style.html: Update to test used value and reflect that computed value doesn't change.
- css3/blending/blend-mode-transform-style-expected.txt:
- css3/blending/blend-mode-transform-style.html: Ditto.
- 12:28 AM Changeset in webkit [287741] by
-
- 2 edits in trunk/Source/WebCore
Unreviewed, removing duplicated code added in https://commits.webkit.org/245793@trunk.
- css/CSSStyleSheet.cpp:
(WebCore::CSSStyleSheet::didMutateRules):
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 (soactivebecame 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
valueOrDefaultwhere 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
valueOrDefaultwhere 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
valueOrDefaultwhere 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 (soactivebecame 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 (soactivebecame 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 (whenWebCoreThemeViewis created).
WebCoreThemeViewis 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-outsidedescription 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-outsideCSS 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: 1swould yield
1s, 1sinstead of just1sfor 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_userInteractionBlockingElementand 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_userInteractionBlockingElementand 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):
errorsprovided toApplePaySession.prototype.completeCouponCodeChangeare 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 theerrorsof thePKPaymentRequestCouponCodeUpdateusing the
errorsinsideApplePayShippingMethodUpdate. 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*
targetargument 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 (soactivebecame 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
_lastTouchedScrollViewuse 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
transformproperty 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_openanduspoof_closewhen 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.CallFrameis 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.groupBysince 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,sliceing 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.CallFrameTreeElementfor 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 samethisobject").
LayoutTests:
- inspector/unit-tests/array-utilities.html:
- inspector/unit-tests/array-utilities-expected.txt:
Remove the custom
Array.prototype.groupBysince 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_containerwith astd::paircontaining 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::pairhere because these two elements should always be set and cleared out in tandem.
(WebCore::ModalContainerObserver::collectClickableElementsTimerFired):
(WebCore::ModalContainerObserver::revealModalContainer):
Replace uses of
m_containerwith 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#blackandHide.svg#white.
- UserInterface/Images/TypeIcons.svg:
Remove
#Blackboxed-darkand#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 thetemplatekeyword.
- .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::validRequestorForSendAndReturnTypesonly setsisValidSendTypeto
anything other than false ifsendTypeis 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_ENDfor the unbalanced BEGIN declaration.
- WebView/WebHTMLView.mm:
(+[WebHTMLView _insertablePasteboardTypes]):
Tools:
Add an API test to verify that the result of
-validRequestorForSendType:returnType:isn't alwaysnilin 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
autoinstread ofRefPtrwhen 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:
Jan 1, 2022:
- 11:22 PM Changeset in webkit [287509] by
-
- 8 edits in trunk
"animation" shorthand does not parse values in the right order
https://bugs.webkit.org/show_bug.cgi?id=234788
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
Mark a new WPT progression.
- web-platform-tests/css/css-animations/parsing/animation-valid-expected.txt:
Source/WebCore:
The animation-name should be parsed last, not first.
- css/CSSProperties.json:
LayoutTests:
Update the order in which animation-name is serialized in the "animation" shorthand
for some non-WPT tests.
- fast/css/longhand-overrides-shorthand-prefixing-expected.txt:
- fast/css/longhand-overrides-shorthand-prefixing.html:
- fast/css/transform-inline-style-remove-expected.txt:
- 5:06 PM Changeset in webkit [287508] by
-
- 5 edits in trunk/LayoutTests
[GTK] Unreviewed test gardening, update flakey tests expectations
https://bugs.webkit.org/show_bug.cgi?id=234760
Remove tests that have been constantly passing for the last 4000 revisions, as well as update state of tests
that have been constantly failing with a single state.
- platform/gtk/TestExpectations:
- platform/gtk/fast/events/wheel/wheelevent-in-horizontal-scrollbar-in-rtl-expected.txt:
- platform/gtk/fast/events/wheel/wheelevent-in-vertical-scrollbar-in-rtl-expected.txt:
- platform/wpe/TestExpectations:
- 4:19 PM Changeset in webkit [287507] by
-
- 11 edits in trunk/Source/WebCore
ScalableImageDecoder should be using SharedBuffer instead of DataSegment
https://bugs.webkit.org/show_bug.cgi?id=233441
rdar://problem/85854204
Reviewed by Darin Adler.
DataSegment should be a SharedBuffer's implementation details and not
be used outside SharedBuffer's code.
Historically, using the inner DataSegment was required as it was thread
safe while SharedBuffer wasn't: This is no longer the case.
SharedBuffer and DataSegment are semantically very similar, so this is
mostly a find/replace change.
Flattening the FragmentedSharedBuffer is still required as most decoders
require reading the raw bytes.
No change in observable behaviour.
- platform/graphics/ImageBackingStore.h:
(WebCore::ImageBackingStore::setSize):
(WebCore::ImageBackingStore::ImageBackingStore):
- platform/image-decoders/ScalableImageDecoder.h:
- platform/image-decoders/avif/AVIFImageReader.cpp:
(WebCore::AVIFImageReader::parseHeader):
(WebCore::AVIFImageReader::decodeFrame):
- platform/image-decoders/avif/AVIFImageReader.h:
- platform/image-decoders/bmp/BMPImageReader.h:
(WebCore::BMPImageReader::readUint16):
(WebCore::BMPImageReader::readUint32):
(WebCore::BMPImageReader::setData):
- platform/image-decoders/gif/GIFImageReader.h:
(GIFImageReader::setData):
- platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
(WebCore::JPEGImageReader::decode):
- platform/image-decoders/jpeg2000/JPEG2000ImageDecoder.cpp:
(WebCore::JPEG2000ImageDecoder::decode):
- platform/image-decoders/png/PNGImageDecoder.cpp:
(WebCore::PNGImageReader::decode):
- platform/image-decoders/webp/WEBPImageDecoder.cpp:
(WebCore::WEBPImageDecoder::decode):
- 4:09 PM Changeset in webkit [287506] by
-
- 4 edits in trunk
make SharedBuffer::copy() return a contiguous SharedBuffer
https://bugs.webkit.org/show_bug.cgi?id=234622
rdar://problem/86829527
Reviewed by Darin Adler.
Source/WebCore:
make SharedBuffer::copy() return a contiguous SharedBuffer
API tests added.
- platform/SharedBuffer.cpp:
(WebCore::FragmentedSharedBuffer::copy const):
Tools:
- TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:
(TestWebKitAPI::TEST_F):
- 3:06 PM Changeset in webkit [287505] by
-
- 5 edits in trunk
Modal containers are incorrectly detected in navigation elements and fixed document elements
https://bugs.webkit.org/show_bug.cgi?id=234669
rdar://87030613
Reviewed by Darin Adler.
Source/WebCore:
Avoid false positives when detecting modal containers in the following scenarios:
- Fixed-position document elements that contain the search term.
- Text that contains the search term inside fixed-position navigation elements.
Additionally, ensure that we unhide the current modal container in the event of a false positive where we find
no element that fulfills the criteria for being a classifiable control.
Tests: ModalContainerObservation.IgnoreFixedDocumentElement
ModalContainerObservation.IgnoreNavigationElements
ModalContainerObservation.ShowModalContainerAfterFalsePositive
- page/ModalContainerObserver.cpp:
(WebCore::accessibilityRole):
Move this static helper function farther up this source file, so that we can use it inside
updateModalContainerIfNeeded().
(WebCore::isInsideNavigationElement):
(WebCore::ModalContainerObserver::updateModalContainerIfNeeded):
(WebCore::ModalContainerPolicyDecisionScope::ModalContainerPolicyDecisionScope):
(WebCore::ModalContainerPolicyDecisionScope::~ModalContainerPolicyDecisionScope):
(WebCore::ModalContainerPolicyDecisionScope::continueHidingModalContainerAfterScope):
(WebCore::ModalContainerPolicyDecisionScope::document const):
Add a RAII helper object to ensure that the modal container is revealed at the end of the modal container policy
decision scope, unlesscontinueHidingModalContainerAfterScope()is invoked. Since this class contains a
WeakPtr<Document>already, we can replace theWeakPtr<Document>we're currently plumbing through each of the
async callbacks with only theModalContainerPolicyDecisionScope, and just grab the document (or null if it was
destroyed) from the scope object.
This helper object allows us to avoid sprinkling ad-hoc calls to
revealModalContainer()when exiting modal
container classification codepaths.
(WebCore::ModalContainerObserver::collectClickableElementsTimerFired):
- page/ModalContainerObserver.h:
Tools:
Add several new API tests to exercise the changes.
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
(-[ModalContainerWebView initWithFrame:configuration:]):
(-[ModalContainerWebView loadHTML:]):
(-[ModalContainerWebView _webView:decidePolicyForModalContainer:decisionHandler:]):
(TestWebKitAPI::TEST):
- 2:54 PM Changeset in webkit [287504] by
-
- 3 edits2 adds in trunk
[LFC][IFC] Unexpected line break with leading collapsed whitespace
https://bugs.webkit.org/show_bug.cgi?id=234786
Reviewed by Antti Koivisto.
Source/WebCore:
We use Line::hasContent to decide whether an overflowing content should be wrapped to the next line.
Line is considered empty unless it has at least one content-type run.
Test: fast/inline/unexpected-line-break-on-empty-content.html
- layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::hasContent const):
LayoutTests:
- fast/inline/unexpected-line-break-on-empty-content-expected.html: Added.
- fast/inline/unexpected-line-break-on-empty-content.html: Added.
- 1:03 PM Changeset in webkit [287503] by
-
- 2 edits in trunk/Tools
[Cocoa] Simplify some FontAttributes API tests
https://bugs.webkit.org/show_bug.cgi?id=234770
Reviewed by Darin Adler.
Simplify some of the logic around FontAttributes.FontAttributesAfterChangingSelection:
- Instead of defining PlatformColor/PlatformFont, use CocoaColor/CocoaFont from WebCore.
- Remove the
Nullityflag in ShadowExpectation and ColorExpectation (and usestd::optionalinstead to
indicate that the shadow or font attribute should be null).
- Change a several rvalue references to be plain values instead (when passinng expectation structs that only
contain a handful of scalar values).
- TestWebKitAPI/Tests/WebKitCocoa/FontAttributes.mm:
(TestWebKitAPI::checkColor):
(TestWebKitAPI::checkShadow):
(TestWebKitAPI::checkFont):
(TestWebKitAPI::TEST):
(TestWebKitAPI::ColorExpectation::ColorExpectation): Deleted.
(TestWebKitAPI::ShadowExpectation::ShadowExpectation): Deleted.
- 8:25 AM Changeset in webkit [287502] by
-
- 22 edits in trunk
Update user-visible copyright strings to include 2022
https://bugs.webkit.org/show_bug.cgi?id=234263
Reviewed by Anders Carlsson.
.:
- Source/cmake/tools/scripts/COPYRIGHT-END-YEAR:
Source/JavaScriptCore:
- Info.plist:
Source/WebCore:
- Info.plist:
Source/WebGPU:
- Info.plist:
Source/WebKit:
- GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-OSX.plist:
- GPUProcess/EntryPoint/Cocoa/XPCService/GPUService/Info-iOS.plist:
- Info.plist:
- NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-OSX.plist:
- NetworkProcess/EntryPoint/Cocoa/XPCService/NetworkService/Info-iOS.plist:
- WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-OSX.plist:
- WebAuthnProcess/EntryPoint/Cocoa/XPCService/WebAuthnService/Info-iOS.plist:
- WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-OSX.plist:
- WebProcess/EntryPoint/Cocoa/XPCService/WebContentService/Info-iOS.plist:
Source/WebKitLegacy/mac:
- Info.plist:
WebKitLibraries:
- win/tools/scripts/COPYRIGHT-END-YEAR:
- 7:34 AM Changeset in webkit [287501] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Simple RTL content triggers redundant horizontal positioning
https://bugs.webkit.org/show_bug.cgi?id=234772
Reviewed by Antti Koivisto.
RTL content with inline boxes require a second pass horizontal positioning.
Currently we trigger this second pass even when the content does not have any inline box.
(e.g <div>content<span>with inline box</span></div> <div>content with no inline box</div>)
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent): !0 parentDisplayBoxNodeIndex means non-root inline box.
(WebCore::Layout::DisplayBoxTree::hasInlineBox const): Deleted.
- 6:55 AM Changeset in webkit [287500] by
-
- 6 edits2 adds in trunk
[LFC][IFC] Incorrect word-spacing gaps between RTL runs
https://bugs.webkit.org/show_bug.cgi?id=234771
Reviewed by Antti Koivisto.
Source/WebCore:
"word-spacing" acts as a margin for word separator type of runs.
In this patch we take this margin into account the same way we do for atomic inline level boxes with margins.
Test: fast/text/word-spacing-rtl.html
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::Run::Run):
- layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::Run::isText const):
(WebCore::Layout::Line::Run::isWordSeparator const):
- layout/formattingContexts/inline/display/InlineDisplayBox.h:
(WebCore::InlineDisplay::Box::isText const):
(WebCore::InlineDisplay::Box::isWordSeparator const):
(WebCore::InlineDisplay::Box::isNonRootInlineLevelBox const):
(WebCore::InlineDisplay::Box::type const): Deleted.
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::appendTextDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
LayoutTests:
- fast/text/word-spacing-rtl-expected.html: Added.
- fast/text/word-spacing-rtl.html: Added.
- 6:15 AM Changeset in webkit [287499] by
-
- 42 edits1 copy5 moves68 adds in trunk/LayoutTests
Re-import css/css-writing-modes WPT
https://bugs.webkit.org/show_bug.cgi?id=234764
Reviewed by Dean Jackson.
Upstream commit: https://github.com/web-platform-tests/wpt/commit/e433ff38f5230f3fec9c6fd434b942c7bffbfc67
LayoutTests/imported/w3c:
- resources/resource-files.json:
- web-platform-tests/css/css-writing-modes/astral-bidi/adlam-anti-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/astral-bidi/adlam-anti-ref-expected.html.
- web-platform-tests/css/css-writing-modes/astral-bidi/cypriot-anti-ref-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/astral-bidi/cypriot-anti-ref-expected.html.
- web-platform-tests/css/css-writing-modes/astral-bidi/w3c-import.log:
- web-platform-tests/css/css-writing-modes/bidi-dynamic-iframe-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/bidi-dynamic-iframe-001.html: Added.
- web-platform-tests/css/css-writing-modes/bidi-plaintext-br-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/bidi-plaintext-br-001.html: Added.
- web-platform-tests/css/css-writing-modes/block-flow-direction-slr-062.xht:
- web-platform-tests/css/css-writing-modes/block-flow-direction-srl-061.xht:
- web-platform-tests/css/css-writing-modes/block-flow-direction-vlr-022.xht:
- web-platform-tests/css/css-writing-modes/block-flow-direction-vrl-021.xht:
- web-platform-tests/css/css-writing-modes/crashtests/orthogonal-percent-height-multicol-crash.html: Added.
- web-platform-tests/css/css-writing-modes/crashtests/orthogonal-scroll-percent-height-crash.html: Added.
- web-platform-tests/css/css-writing-modes/crashtests/orthogonal-table-in-flex-crash.html: Added.
- web-platform-tests/css/css-writing-modes/crashtests/w3c-import.log: Copied from LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/astral-bidi/w3c-import.log.
- web-platform-tests/css/css-writing-modes/crashtests/wm-body-propagation-crash.html: Added.
- web-platform-tests/css/css-writing-modes/direction-propagation-body-contain-root-expected.html: Added.
- web-platform-tests/css/css-writing-modes/direction-propagation-body-contain-root.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-rtl-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-rtl-001.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-rtl-002-expected.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-rtl-002.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-vrl-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-vrl-001.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-vrl-002-expected.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-vrl-002.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-vrl-rtl-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-vrl-rtl-001.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-vrl-rtl-002-expected.html: Added.
- web-platform-tests/css/css-writing-modes/dynamic-offset-vrl-rtl-002.html: Added.
- web-platform-tests/css/css-writing-modes/full-width-001-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/full-width-001-expected.html.
- web-platform-tests/css/css-writing-modes/full-width-002-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/full-width-002-expected.html.
- web-platform-tests/css/css-writing-modes/full-width-003-expected-mismatch.html: Renamed from LayoutTests/imported/w3c/web-platform-tests/css/css-writing-modes/full-width-003-expected.html.
- web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins-expected.html:
- web-platform-tests/css/css-writing-modes/inline-box-orthogonal-child-with-margins.html:
- web-platform-tests/css/css-writing-modes/line-box-height-vlr-003.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vlr-005.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vlr-007.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vlr-009.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vlr-011.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vlr-013.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vlr-021.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vlr-023.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vrl-002.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vrl-004.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vrl-006.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vrl-008.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vrl-010.xht:
- web-platform-tests/css/css-writing-modes/line-box-height-vrl-012.xht:
- web-platform-tests/css/css-writing-modes/logical-physical-mapping-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/logical-physical-mapping-001.html: Added.
- web-platform-tests/css/css-writing-modes/padding-percent-orthogonal-dynamic-expected.txt: Added.
- web-platform-tests/css/css-writing-modes/padding-percent-orthogonal-dynamic.html: Added.
- web-platform-tests/css/css-writing-modes/replaced-content-image-004-expected.html: Added.
- web-platform-tests/css/css-writing-modes/replaced-content-image-004.html: Added.
- web-platform-tests/css/css-writing-modes/sizing-orthog-vrl-in-htb-013-expected.xht:
- web-platform-tests/css/css-writing-modes/sizing-orthog-vrl-in-htb-013.xht:
- web-platform-tests/css/css-writing-modes/slr-alongside-vlr-floats-expected.html:
- web-platform-tests/css/css-writing-modes/slr-alongside-vlr-floats.html:
- web-platform-tests/css/css-writing-modes/srl-alongside-vrl-floats-expected.html:
- web-platform-tests/css/css-writing-modes/srl-alongside-vrl-floats.html:
- web-platform-tests/css/css-writing-modes/support/WidthTest-Regular.otf: Added.
- web-platform-tests/css/css-writing-modes/support/tcy.css: Added.
(.tcy):
(.fake-tcy):
- web-platform-tests/css/css-writing-modes/support/w3c-import.log:
- web-platform-tests/css/css-writing-modes/support/width-test.css: Added.
(@font-face):
(.test):
- web-platform-tests/css/css-writing-modes/text-combine-upright-break-inside-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-break-inside-001.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-break-inside-001a-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-break-inside-001a.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-001.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-002-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-002.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-003-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-003.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-004-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-004.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-005-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-005.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-005a-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-005a.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-006-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-006.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-006a-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-006a.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-007-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-combine-upright-compression-007.html: Added.
- web-platform-tests/css/css-writing-modes/text-orientation-upright-directionality-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-orientation-upright-directionality-001.html: Added.
- web-platform-tests/css/css-writing-modes/text-shadow-orientation-upright-001-expected.html: Added.
- web-platform-tests/css/css-writing-modes/text-shadow-orientation-upright-001.html: Added.
- web-platform-tests/css/css-writing-modes/vlr-text-orientation-sideways-alongside-vlr-floats-expected.html:
- web-platform-tests/css/css-writing-modes/vlr-text-orientation-sideways-alongside-vlr-floats.html:
- web-platform-tests/css/css-writing-modes/vrl-inline-paint-invalidation-expected.html: Added.
- web-platform-tests/css/css-writing-modes/vrl-inline-paint-invalidation.html: Added.
- web-platform-tests/css/css-writing-modes/vrl-text-orientation-sideways-alongside-vrl-floats-expected.html:
- web-platform-tests/css/css-writing-modes/vrl-text-orientation-sideways-alongside-vrl-floats.html:
- web-platform-tests/css/css-writing-modes/w3c-import.log:
- web-platform-tests/css/css-writing-modes/wm-propagation-body-computed-direction-001-expected.txt: Added.
- web-platform-tests/css/css-writing-modes/wm-propagation-body-computed-direction-001.html: Added.
- web-platform-tests/css/css-writing-modes/wm-propagation-body-computed-direction-002-expected.txt: Added.
- web-platform-tests/css/css-writing-modes/wm-propagation-body-computed-direction-002.html: Added.
- web-platform-tests/css/css-writing-modes/wm-propagation-body-contain-root-expected.html: Added.
- web-platform-tests/css/css-writing-modes/wm-propagation-body-contain-root.html: Added.
- web-platform-tests/css/css-writing-modes/wm-propagation-body-dynamic-change-001.html:
- web-platform-tests/css/css-writing-modes/wm-propagation-body-dynamic-change-002-expected.html:
- web-platform-tests/css/css-writing-modes/wm-propagation-body-dynamic-change-002.html:
- web-platform-tests/css/css-writing-modes/wm-propagation-body-dynamic-change-003-expected.html: Added.
- web-platform-tests/css/css-writing-modes/wm-propagation-body-dynamic-change-003.html: Added.
- web-platform-tests/css/css-writing-modes/wm-propagation-svg-root-scrollbar.svg:
LayoutTests:
- TestExpectations:
- platform/gtk/TestExpectations:
Dec 31, 2021:
- 10:03 PM Changeset in webkit [287498] by
-
- 3 edits in trunk/Source/WebCore
Reduce repetition in Internals "set page activity state" methods
https://bugs.webkit.org/show_bug.cgi?id=234768
Reviewed by Darin Adler.
setPageVisibility,setPageIsFocusedAndActive, and
setPageIsInWindowall modify page activity state, and repeat a lot
of the same logic to do so. This patch refactors this into a common
updatePageActivityStatemethod.
- testing/Internals.cpp:
(WebCore::Internals::setPageVisibility):
(WebCore::Internals::setPageIsFocusedAndActive):
(WebCore::Internals::setPageIsInWindow):
Refactor to use the new updatePageActivityState method.
(WebCore::Internals::updatePageActivityState):
Added.
- testing/Internals.h:
- 4:22 PM Changeset in webkit [287497] by
-
- 4 edits in trunk
Include a few more tag names to search when running modal container detection
https://bugs.webkit.org/show_bug.cgi?id=234652
Reviewed by Darin Adler.
Source/WebCore:
Broaden the list of tag names that we heuristically scan for the search term. This particular modal container
detection failure was due to the search term appearing inside abelement, though I'm adding a few additional
types just to be safe. Since we're checking more than just few tag names, we also take this opportunity to
convert this into a compact AtomString hashtable of tag names that we should scan in the process of detecting
modal containers.
Test: ModalContainerObservation.DetectSearchTermInBoldTag
- page/ModalContainerObserver.cpp:
(WebCore::matchesSearchTerm):
Tools:
Add an API test that's representative of the website where modal container observation failed (due to the search
term being inside abelement).
- TestWebKitAPI/Tests/WebKitCocoa/ModalContainerObservation.mm:
(TestWebKitAPI::TEST):
- 3:33 PM Changeset in webkit [287496] by
-
- 20 edits1 move in trunk/Source
Refactor some Cocoa-specific code in WebCore::FontAttributes to be platform-agnostic
https://bugs.webkit.org/show_bug.cgi?id=234757
Source/WebCore:
Reviewed by Darin Adler.
Replace the UIFont/NSFont currently in WebCore::FontAttributes with a WebCore::Font instead. This removes a bit
of platform-specific logic in an otherwise platform-agnostic class (with the exception of a couple Cocoa-
specific helper methods). This additionally lets us remove some platform-specific logic for computing font
attributes (i.e.platformFontAttributesAtSelectionStart) below.
- WebCore.xcodeproj/project.pbxproj:
- editing/Editor.cpp:
(WebCore::Editor::fontAttributesAtSelectionStart):
(WebCore::Editor::platformFontAttributesAtSelectionStart const): Deleted.
- editing/Editor.h:
- editing/FontAttributes.h:
(WebCore::TextList::encode const):
(WebCore::TextList::decode):
Drive-by fix: instead of
static_cast-ing to a uint8_t and encoding/decoding the raw value, encode and decode
the ListStyleType as a normal enum instead. This also ensures that we validate the enum value upon decoding.
(WebCore::FontAttributes::encodingRequiresPlatformData const): Deleted.
- editing/cocoa/EditorCocoa.mm:
(WebCore::Editor::platformFontAttributesAtSelectionStart const): Deleted.
- editing/cocoa/FontAttributesCocoa.mm:
(WebCore::FontAttributes::createDictionary const):
Only grab the NSFont or UIFont from the WebCore::Font object once we're in this Cocoa-specific helper.
- platform/graphics/cocoa/FontCocoa.h: Added.
Moved here from CocoaFont.h in WebKit. See WebKit/ChangeLog for more details.
- rendering/style/RenderStyleConstants.h:
Add EnumTraits for ListStyleType, so that it can be encoded/decoded.
Source/WebKit:
See comments below (as well as WebCore/ChangeLog) for more details.
Reviewed by Darin Adler.
- Platform/cocoa/CocoaFont.h: Removed.
Move this file into WebCore, as
FontCocoa.h.
- Shared/Cocoa/ArgumentCodersCocoa.mm:
- Shared/Cocoa/CoreTextHelpers.h:
- Shared/Cocoa/CoreTextHelpers.mm:
Adjust a few places that currently import CocoaFont.h to import WebCore/FontCocoa.h instead. Additonally, change
CocoaFont to WebCore::CocoaFont where necessary.
- Shared/Cocoa/WebCoreArgumentCodersCocoa.mm:
(IPC::ArgumentCoder<WebCore::FontAttributes>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<WebCore::FontAttributes>::decodePlatformData): Deleted.
Remove platform-specific FontAttributes encoding/decoding logic. This is no longer needed, since we just
propagate a Font instead of an NSFont or UIFont.
- Shared/WebCoreArgumentCoders.cpp:
(IPC::ArgumentCoder<RefPtr<Font>>::encode):
(IPC::ArgumentCoder<RefPtr<Font>>::decode):
Add argument coders for
RefPtr<Font>that encode the font only if it's non-null.
(IPC::ArgumentCoder<FontAttributes>::encode):
(IPC::ArgumentCoder<FontAttributes>::decode):
Remove the calls to
encodePlatformData/decodePlatformData, and instead encode theRefPtr<WebCore::Font>.
- Shared/WebCoreArgumentCoders.h:
- Shared/playstation/WebCoreArgumentCodersPlayStation.cpp:
(IPC::ArgumentCoder<FontAttributes>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<FontAttributes>::decodePlatformData): Deleted.
- Shared/soup/WebCoreArgumentCodersSoup.cpp:
(IPC::ArgumentCoder<FontAttributes>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<FontAttributes>::decodePlatformData): Deleted.
- Shared/win/WebCoreArgumentCodersWin.cpp:
(IPC::ArgumentCoder<FontAttributes>::encodePlatformData): Deleted.
(IPC::ArgumentCoder<FontAttributes>::decodePlatformData): Deleted.
Remove some method stubs that are now unnecessary.
- UIProcess/Cocoa/WKSafeBrowsingWarning.mm:
(fontOfSize):
- WebKit.xcodeproj/project.pbxproj:
- 12:08 PM Changeset in webkit [287495] by
-
- 3 edits2 adds in trunk
REGRESSION (r287028): Incorrect root inline box horizontal position when text-align offset is present
https://bugs.webkit.org/show_bug.cgi?id=234767
Reviewed by Antti Koivisto.
Source/WebCore:
Display line has the content's visual left (rtl vs ltr) which should be used to position the root inline box.
We use the same offset when construcing the non-root display boxes.
Test: fast/text/root-inline-box-offset-with-text-align.html
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::build):
LayoutTests:
- fast/text/root-inline-box-offset-with-text-align-expected.html: Added.
- fast/text/root-inline-box-offset-with-text-align.html: Added.
- 11:46 AM Changeset in webkit [287494] by
-
- 6 edits in trunk
Updating the file name of attachment-backed images should automatically set the
altattribute
https://bugs.webkit.org/show_bug.cgi?id=234747
rdar://85899879
Reviewed by Darin Adler.
Source/WebCore:
Make a small adjustment when updating attachment attributes for attachment-backed images (i.e. when using
-[_WKAttachmentInfo setFileWrapper:contentType:completion:]), such that thealtattribute of the image is
set to the attachment element'stitle. While convenient for all internal clients of the_WKAttachmentSPI
(i.e. Mail, Notes), this has the added benefit of preserving the attachment's file name when copying and pasting
across different web views (where a newAPI::Attachmentis generated on paste), instead of defaulting to the
last path component of the blob URL corresponding to the image data in the web archive.
Test: WKAttachmentTests.CopyAndPasteImageBetweenWebViews
- editing/Editor.cpp:
(WebCore::Editor::notifyClientOfAttachmentUpdates):
- html/HTMLAttachmentElement.cpp:
(WebCore::HTMLAttachmentElement::enclosingImageElement const):
(WebCore::HTMLAttachmentElement::updateAttributes):
(WebCore::HTMLAttachmentElement::updateEnclosingImageWithData):
(WebCore::HTMLAttachmentElement::hasEnclosingImage const): Deleted.
Replace
hasEnclosingImage()withenclosingImageElement(), a helper that returns the enclosing image element
(or null if there is none). We use the latter in a couple of places above, where we modify some attributes on
the enclosing image in response to attribute and data updates.
- html/HTMLAttachmentElement.h:
Tools:
Add a new API test to exercise this scenario -- i.e. copying an attachment-backed image in one web view, pasting
it into another web view, and confirming that the pasted attachment preserves the _WKAttachment file name.
- TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm:
(-[TestWKWebView ensureAttachmentForImageElement]):
(TestWebKitAPI::TEST):
- 6:21 AM Changeset in webkit [287493] by
-
- 9 edits in trunk/Source/WebCore
[LFC][IFC] Take grapheme clusters into account when keeping the first "character" on the line
https://bugs.webkit.org/show_bug.cgi?id=234758
Reviewed by Antti Koivisto.
When dealing with complex fonts, we have to start looking beyond code points and taking
larger cluster of code units into account.
This patch is in preparation for enabling complex font codepath.
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::firstUserPerceivedCharacterLength): user-perceived character is a unicode term.
see https://unicode.org/reports/tr29/#Grapheme_Cluster_Boundaries
- layout/formattingContexts/inline/text/TextUtil.h:
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/layouttree/LayoutInlineTextBox.cpp:
(WebCore::Layout::InlineTextBox::InlineTextBox):
(WebCore::Layout::m_canUseSimpleFontCodePath):
(WebCore::Layout::m_canUseSimplifiedContentMeasuring): Deleted.
- layout/layouttree/LayoutInlineTextBox.h:
(WebCore::Layout::InlineTextBox::canUseSimpleFontCodePath const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createTextBox):
(WebCore::Layout::TreeBuilder::createLayoutBox):
- layout/layouttree/LayoutTreeBuilder.h:
- 2:11 AM Changeset in webkit [287492] by
-
- 4 edits in trunk/LayoutTests
[GTK][WPE] Unreviewed test gardening, move several fast/scrolling tests failures to GLIB
https://bugs.webkit.org/show_bug.cgi?id=234759
- platform/glib/TestExpectations:
- platform/gtk/TestExpectations:
- platform/wpe/TestExpectations:
- 1:13 AM Changeset in webkit [287491] by
-
- 2 edits in trunk/Source/WebInspectorUI
Web Inspector: fix assert text in Gradient.js
Unreviewed.
Wrong assert text was added in r287409, it should be radial instead of conic gradients.
- UserInterface/Models/Gradient.js:
(WI.RadialGradient.prototype.set angleValue):
(WI.RadialGradient.prototype.set angleUnits):
Dec 30, 2021:
- 8:46 PM Changeset in webkit [287490] by
-
- 3 edits4 deletes in trunk/LayoutTests
[GLIB] Unreviewed test gardening, update state of flakey tests
https://bugs.webkit.org/show_bug.cgi?id=234749
Remove tests that have been constantly passing for the last 4000 revisions, as well as update state of tests
that have been constantly failing with a single state.
- platform/glib/TestExpectations:
- platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/generateKey/successes_RSA-OAEP.https.any.worker-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.any-expected.txt: Removed.
- platform/glib/imported/w3c/web-platform-tests/WebCryptoAPI/wrapKey_unwrapKey/wrapKey_unwrapKey.https.worker-expected.txt: Removed.
- platform/glib/media/context-menu-actions-expected.txt: Removed.
- platform/gtk/TestExpectations:
- 7:20 PM Changeset in webkit [287489] by
-
- 4 edits in trunk
SharedBuffer::takeData() is still dangerous
https://bugs.webkit.org/show_bug.cgi?id=234724
rdar://problem/86957233
Reviewed by Darin Adler.
Source/WebCore:
Similar to bug 228161; however we only take the content of the DataSegment
if its refcount is 1.
DataSegments can be shared across multiple SharedBuffer and so we can't
assume that when the SharedBuffer refcount is 1 that it is safe to use
the DataSegment.
This use of SharedBuffer::extractData will need to be revisited when
SharedBuffer are used across different threads as the operation isn't
thread-safe.
API tests added.
- platform/SharedBuffer.cpp:
(WebCore::FragmentedSharedBuffer::takeData):
Tools:
- TestWebKitAPI/Tests/WebCore/SharedBuffer.cpp:
(TestWebKitAPI::TEST_F):
- 5:32 PM Changeset in webkit [287488] by
-
- 4 edits in trunk
REGRESSION(r286955): Fix painting text-decorations with combined text
https://bugs.webkit.org/show_bug.cgi?id=234707
Reviewed by Dean Jackson.
Source/WebCore:
Test: imported/w3c/web-platform-tests/css/css-writing-modes/text-combine-upright-decorations-001.html
- rendering/TextBoxPainter.cpp:
(WebCore::TextBoxPainter::createDecorationPainter):
(WebCore::TextBoxPainter::paintBackgroundDecorations):
(WebCore::TextBoxPainter::paintForegroundDecorations):
LayoutTests:
- 4:26 PM Changeset in webkit [287487] by
-
- 39 edits in trunk
Implement text-combine-upright property
https://bugs.webkit.org/show_bug.cgi?id=150821
Reviewed by Dean Jackson.
LayoutTests/imported/w3c:
- web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-expected.txt:
- web-platform-tests/css/css-pseudo/parsing/marker-supported-properties-in-animation-expected.txt:
- web-platform-tests/css/css-writing-modes/inheritance-expected.txt:
- web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-computed-expected.txt:
- web-platform-tests/css/css-writing-modes/parsing/text-combine-upright-valid-expected.txt:
- web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-001-expected.txt:
- web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-digits-002-expected.txt:
- web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-001-expected.txt:
- web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-invalid-002-expected.txt:
- web-platform-tests/css/css-writing-modes/text-combine-upright-parsing-valid-001-expected.txt:
- web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
Source/WebCore:
webkit.org/b/234694 and webkit.org/b/234707 are landed for this initial version of text-combine-upright.
To reach Chrome parity, layout needs to be tweaked (webkit.org/b/234704), and pseudo elements need to be properly supported (webkit.org/b/234705).
To reach standards parity, it also needs the digits syntax to be implemented (webkit.org/b/234706), which no browser implements yet.
- css/CSSComputedStyleDeclaration.cpp:
(WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
- css/CSSPrimitiveValueMappings.h:
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator TextCombine const):
- css/CSSProperties.json:
- css/CSSValueKeywords.in:
- css/parser/CSSParserFastPaths.cpp:
(WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue):
(WebCore::CSSParserFastPaths::isKeywordPropertyID):
- rendering/LegacyLineLayout.cpp:
(WebCore::expansionBehaviorForInlineTextBox):
- rendering/style/RenderStyleConstants.cpp:
(WebCore::operator<<):
- rendering/style/RenderStyleConstants.h:
- style/PropertyAllowlist.cpp:
(WebCore::Style::isValidMarkerStyleProperty):
Allow setting text-combine-upright on ::marker.
LayoutTests:
- TestExpectations:
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- fast/css/getComputedStyle/resources/property-names.js:
- platform/glib/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/glib/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/glib/svg/css/getComputedStyle-basic-expected.txt:
- platform/gtk/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-expected.txt:
- platform/ios/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/css-cascade/all-prop-initial-xml-expected.txt:
- platform/ios/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- platform/ios/svg/css/getComputedStyle-basic-expected.txt:
- platform/wpe/imported/w3c/web-platform-tests/css/cssom/getComputedStyle-detached-subtree-expected.txt:
- svg/css/getComputedStyle-basic-expected.txt:
- 2:33 PM Changeset in webkit [287486] by
-
- 12 edits in trunk/Source
Non-unified build fixes, end-of-year 2021 edition
https://bugs.webkit.org/show_bug.cgi?id=234755
Unreviewed non-unified build fixes.
Source/JavaScriptCore:
- runtime/DeferredWorkTimer.h: Add missing JSCast.h header.
Source/WebCore:
No new tests needed.
- bindings/js/JSExecState.cpp:
(WebCore::executionContext): Add missing namespace prefix in usage of JSC::jsCast() function.
- bindings/js/SerializedScriptValue.cpp: Add missing JSExecState.h header.
- inspector/InspectorFrontendHost.cpp: Add missing ScriptController.h header.
- inspector/WebInjectedScriptManager.cpp: Add missing DOMWindow.h and JSExecState.h headers.
- inspector/agents/InspectorTimelineAgent.cpp: Add missing JSExecState.h header.
- inspector/agents/WebConsoleAgent.cpp: Add missing InspectorWebAgentBase.h and
JSExecState.h headers.
- inspector/agents/WebConsoleAgent.h: Add missing forward declaration of struct
WebAgentContext.
- layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp: Add missing
LayoutBoxGeometry.h header.
- loader/CrossOriginAccessControl.cpp: Add missing DocumentLoader.h header.
- 12:32 PM Changeset in webkit [287485] by
-
- 35 edits in trunk
[IFC][Integration] Enable RTL inline base direction
https://bugs.webkit.org/show_bug.cgi?id=234736
Reviewed by Antti Koivisto.
Source/WebCore:
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::canUseForStyle):
LayoutTests:
- platform/ios-wk2/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
- platform/ios/fast/block/basic/016-expected.txt:
- platform/ios/fast/borders/rtl-border-04-expected.txt:
- platform/ios/fast/css/text-overflow-ellipsis-bidi-expected.txt:
- platform/ios/fast/css/text-overflow-input-expected.txt:
- platform/ios/fast/dom/34176-expected.txt:
- platform/ios/fast/dom/52776-expected.txt:
- platform/ios/fast/dom/HTMLElement/bdo-expected.txt:
- platform/ios/fast/forms/input-text-scroll-left-on-blur-expected.txt:
- platform/ios/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
- platform/ios/fast/text/international/bidi-neutral-run-expected.txt:
- platform/ios/fast/text/international/pop-up-button-text-alignment-and-direction-expected.txt:
- platform/ios/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
- platform/mac-bigsur/fast/dom/52776-expected.txt:
- platform/mac-bigsur/fast/text/international/bidi-neutral-run-expected.txt:
- platform/mac-catalina/fast/css/text-overflow-input-expected.txt:
- platform/mac/fast/block/basic/016-expected.txt:
- platform/mac/fast/borders/rtl-border-05-expected.txt:
- platform/mac/fast/css/text-overflow-ellipsis-bidi-expected.txt:
- platform/mac/fast/css/text-overflow-input-expected.txt:
- platform/mac/fast/dom/34176-expected.txt:
- platform/mac/fast/dom/52776-expected.txt:
- platform/mac/fast/dom/HTMLElement/bdo-expected.txt:
- platform/mac/fast/forms/input-text-scroll-left-on-blur-expected.txt:
- platform/mac/fast/text/international/bidi-LDB-2-formatting-characters-expected.txt:
- platform/mac/fast/text/international/bidi-layout-across-linebreak-expected.txt:
- platform/mac/fast/text/international/bidi-neutral-run-expected.txt:
- platform/mac/fast/text/international/bidi-override-expected.txt:
- platform/mac/fast/text/international/rtl-white-space-pre-wrap-expected.txt:
- platform/mac/fast/text/text-letter-spacing-expected.txt:
- 6:32 AM Changeset in webkit [287484] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Non-empty inline boxes construction should be driven by their content
https://bugs.webkit.org/show_bug.cgi?id=234744
Reviewed by Antti Koivisto.
At bidi paragraph processing, we assign bidi levels to inline items. Normally only content type
of inline items need bidi levels as inline box start(end) visual order is driven by their content.
However there are 2 cases when inline box start require bidi level
- empty inline boxes (1<span></span>2) -so that we can find out their position.
- inline boxes with unicode-bidi style -they change their content's bidi behavior.
In this patch we ignore the second type of inline boxes at display box construction
as they may trigger redundant inline boxes on the line (as we create them for their content).
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
Dec 29, 2021:
- 5:29 PM Changeset in webkit [287483] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Add support for -webkit-rtl-ordering
https://bugs.webkit.org/show_bug.cgi?id=234715
Reviewed by Antti Koivisto.
"-webkit-rtl-ordering: visual" introduces EUnicodeBidi::Override on the block level
(apparently it has no effect on inline boxes).
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::handleEnterExitBidiContext):
(WebCore::Layout::buildBidiParagraph):
- layout/integration/LayoutIntegrationCoverage.cpp:
(WebCore::LayoutIntegration::printReason):
(WebCore::LayoutIntegration::canUseForStyle):
- layout/integration/LayoutIntegrationCoverage.h:
- 1:07 PM Changeset in webkit [287482] by
-
- 8 edits2 adds in trunk
[LFC][IFC] Collapsed trailing whitespace may introduce stray inline box
https://bugs.webkit.org/show_bug.cgi?id=234735
Reviewed by Antti Koivisto.
Source/WebCore:
See the comment in LineBuilder::handleInlineContent.
Test: fast/inline/inline-box-with-collapsed-whitespace.html
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleInlineContent):
LayoutTests:
- fast/inline/inline-box-with-collapsed-whitespace-expected.html: Added.
- fast/inline/inline-box-with-collapsed-whitespace.html: Added.
- 12:20 PM Changeset in webkit [287481] by
-
- 11 edits in trunk/Source
Add additional named color spaces for extended rgb color types and HSL/HWB in preparation for out of gamut and missing component support
https://bugs.webkit.org/show_bug.cgi?id=234741
Reviewed by Dean Jackson.
Source/WebCore:
Adds named color space support, which provides the ability for a color type to live
in a Color, for the following color spaces:
ExtendedA98RGB
ExtendedDisplayP3
ExtendedLinearSRGB
ExtendedProPhotoRGB
ExtendedRec2020
ExtendedSRGB
HSL
HWB
This is going to be needed to add support for out of gamut color() function support
and support for the new missing component syntax.
The extended variants serialize identically to their bounded counterparts, HSL/HWB
serialize as they do today, by converting to 8-bit sRGB and serializing as it.
- platform/graphics/ColorConversion.cpp:
(WebCore::convertColorComponents):
- platform/graphics/ColorSerialization.cpp:
(WebCore::serialization):
(WebCore::serializationForRenderTreeAsText):
(WebCore::serializationForCSS):
(WebCore::serializationForHTML):
- platform/graphics/ColorSpace.cpp:
(WebCore::operator<<):
- platform/graphics/ColorSpace.h:
(WebCore::callWithColorType):
- platform/graphics/ColorTypes.h:
- platform/graphics/ColorUtilities.h:
- platform/graphics/cg/ColorSpaceCG.cpp:
(WebCore::extendedNamedColorSpace):
(WebCore::extendedAdobeRGB1998ColorSpaceRef):
(WebCore::extendedDisplayP3ColorSpaceRef):
(WebCore::extendedITUR_2020ColorSpaceRef):
(WebCore::extendedLinearSRGBColorSpaceRef):
(WebCore::extendedROMMRGBColorSpaceRef):
(WebCore::colorSpaceForCGColorSpace):
(WebCore::labColorSpaceRef): Deleted.
- platform/graphics/cg/ColorSpaceCG.h:
(WebCore::cachedNullableCGColorSpace):
Source/WTF:
- wtf/PlatformHave.h:
Add new HAVE macros for additional CoreGraphics named color spaces and the CGColorSpaceCreateExtended function.
- 9:47 AM Changeset in webkit [287480] by
-
- 8 edits2 deletes in trunk
Unreviewed, reverting r287478.
https://bugs.webkit.org/show_bug.cgi?id=234742
causes debug failures
Reverted changeset:
"[LFC][IFC] Collapsed trailing whitespace may introduce stray
inline box"
https://bugs.webkit.org/show_bug.cgi?id=234735
https://commits.webkit.org/r287478
- 8:35 AM Changeset in webkit [287479] by
-
- 8 edits in trunk/Source/WebCore
Make MatchElement in RuleFeature non-optional
https://bugs.webkit.org/show_bug.cgi?id=234738
Reviewed by Sam Weinig.
Split no-MatchElement case into a separate RuleAndSelector struct.
Also make MediaQueryCollector collect whole StyleRules instead of using RuleFeature/RuleAndSelector for simplicity
and better logic. Media queries always affect all of a StyleRule, not some invidiual selectors.
- style/RuleFeature.cpp:
(WebCore::Style::RuleAndSelector::RuleAndSelector):
(WebCore::Style::RuleFeature::RuleFeature):
- style/RuleFeature.h:
(WebCore::Style::RuleFeatureWithInvalidationSelector::RuleFeatureWithInvalidationSelector):
- style/RuleSet.cpp:
(WebCore::Style::RuleSet::evaluateDynamicMediaQueryRules):
Use RuleSetBuilder to build the media query invalidation ruleset. It also does shrink-to-fit for us.
- style/RuleSet.h:
(WebCore::Style::RuleSet::DynamicMediaQueryRules::shrinkToFit):
- style/RuleSetBuilder.cpp:
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::pop):
(WebCore::Style::RuleSetBuilder::MediaQueryCollector::addRuleIfNeeded):
- style/RuleSetBuilder.h:
- style/StyleScopeRuleSets.cpp:
(WebCore::Style::makeRuleSet):
(WebCore::Style::ensureInvalidationRuleSets):
- 8:33 AM Changeset in webkit [287478] by
-
- 8 edits2 adds in trunk
[LFC][IFC] Collapsed trailing whitespace may introduce stray inline box
https://bugs.webkit.org/show_bug.cgi?id=234735
Reviewed by Antti Koivisto.
Source/WebCore:
See the comment in LineBuilder::handleInlineContent.
Test: fast/inline/inline-box-with-collapsed-whitespace.html
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::handleInlineContent):
LayoutTests:
- fast/inline/inline-box-with-collapsed-whitespace-expected.html: Added.
- fast/inline/inline-box-with-collapsed-whitespace.html: Added.
Dec 28, 2021:
- 5:16 PM Changeset in webkit [287477] by
-
- 3 edits in trunk/LayoutTests
[GTK] fast/mediastream/media-element-current-time.html is failing since added in r256346
https://bugs.webkit.org/show_bug.cgi?id=208120
Reviewed by Philippe Normand.
Wait 10ms after play() to give time to the engine to have the pipeline position going forward.
- fast/mediastream/media-element-current-time.html:
- platform/glib/TestExpectations:
- 1:43 PM Changeset in webkit [287476] by
-
- 7 edits in trunk/Source/WebCore
[LFC][IFC] Do not let Layout geometry types leak into InlineDisplay::Line
https://bugs.webkit.org/show_bug.cgi?id=234729
Reviewed by Antti Koivisto.
InlineLayoutUnit -> float
InlineRect -> FloatRect
(This is also where we will eventually do some pixel snapping)
- layout/formattingContexts/block/BlockFormattingGeometry.cpp:
(WebCore::Layout::BlockFormattingGeometry::inFlowNonReplacedContentHeightAndMargin const):
- layout/formattingContexts/inline/InlineFormattingContext.cpp:
(WebCore::Layout::InlineFormattingContext::usedContentHeight const):
(WebCore::Layout::InlineFormattingContext::computeStaticPositionForOutOfFlowContent):
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::LineBoxBuilder::constructAndAlignInlineLevelBoxes):
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::InlineDisplayContentBuilder::build):
(WebCore::Layout::InlineDisplayContentBuilder::processNonBidiContent):
(WebCore::Layout::InlineDisplayContentBuilder::processBidiContent):
- layout/formattingContexts/inline/display/InlineDisplayLine.h:
(WebCore::InlineDisplay::Line::left const):
(WebCore::InlineDisplay::Line::right const):
(WebCore::InlineDisplay::Line::top const):
(WebCore::InlineDisplay::Line::bottom const):
(WebCore::InlineDisplay::Line::topLeft const):
(WebCore::InlineDisplay::Line::lineBoxRect const):
(WebCore::InlineDisplay::Line::scrollableOverflow const):
(WebCore::InlineDisplay::Line::baseline const):
(WebCore::InlineDisplay::Line::contentLeft const):
(WebCore::InlineDisplay::Line::contentWidth const):
(WebCore::InlineDisplay::Line::moveVertically):
(WebCore::InlineDisplay::Line::Line):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::showInlineTreeAndRuns):
- 1:16 PM Changeset in webkit [287475] by
-
- 7 edits in trunk/Source/WebCore
[LFC][IFC] Do not let Layout geometry types leak into InlineDisplay::Box
https://bugs.webkit.org/show_bug.cgi?id=234728
Reviewed by Antti Koivisto.
InlineLayoutUnit -> float
InlineRect -> FloatRect
(This is also where we will eventually do some pixel snapping)
- layout/formattingContexts/inline/display/InlineDisplayBox.h:
(WebCore::InlineDisplay::Box::Box):
(WebCore::InlineDisplay::Box::rect const):
(WebCore::InlineDisplay::Box::inkOverflow const):
(WebCore::InlineDisplay::Box::top const):
(WebCore::InlineDisplay::Box::bottom const):
(WebCore::InlineDisplay::Box::left const):
(WebCore::InlineDisplay::Box::right const):
(WebCore::InlineDisplay::Box::width const):
(WebCore::InlineDisplay::Box::height const):
(WebCore::InlineDisplay::Box::moveVertically):
(WebCore::InlineDisplay::Box::moveHorizontally):
(WebCore::InlineDisplay::Box::adjustInkOverflow):
(WebCore::InlineDisplay::Box::setLeft):
(WebCore::InlineDisplay::Box::setRight):
(WebCore::InlineDisplay::Box::setRect):
(WebCore::InlineDisplay::Box::truncate):
- layout/formattingContexts/inline/display/InlineDisplayContentBuilder.cpp:
(WebCore::Layout::computeBoxShadowInkOverflow):
(WebCore::Layout::InlineDisplayContentBuilder::appendAtomicInlineLevelDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::appendSpanningInlineBoxDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::adjustVisualGeometryForDisplayBox):
(WebCore::Layout::InlineDisplayContentBuilder::processOverflownRunsForEllipsis):
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::showInlineContent):
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::createDisplayLines const):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::showInlineTreeAndRuns):
- platform/graphics/FloatRect.h:
(WebCore::FloatRect::inflate):
- 12:36 PM Changeset in webkit [287474] by
-
- 9 edits6 adds in trunk
Support color interpolation methods for CSS Gradients
https://bugs.webkit.org/show_bug.cgi?id=234711
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
Add parsing and serialization tests that exercise the new support for the <color-interpolation-method>
production in CSS gradients.
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-computed-expected.txt: Added.
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-computed.html: Added.
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-invalid-expected.txt: Added.
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-invalid.html: Added.
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-valid-expected.txt: Added.
- web-platform-tests/css/css-images/parsing/gradient-interpolation-method-valid.html: Added.
Source/WebCore:
Tests: imported/w3c/web-platform-tests/css/css-images/parsing/gradient-interpolation-method-computed.html
imported/w3c/web-platform-tests/css/css-images/parsing/gradient-interpolation-method-invalid.html
imported/w3c/web-platform-tests/css/css-images/parsing/gradient-interpolation-method-valid.html
Add support for specifying a color intpolation method in CSS gradients. The grammar
uses the same production as color-mix(), but unlike color-mix(), it is optional for
backwards compatibility, defaulting to 'srgb'. As 'srgb' is the default if nothing is
specified, when serializing and the 'srgb' is used, no interpolation method is serialized
as specified in the spec.
- css/CSSGradientValue.cpp:
(WebCore::appendHueInterpolationMethod):
Serialize the hue method if it is not the default, "shorter".
(WebCore::appendColorInterpolationMethod):
Serialize the color space if it is not the default, "srgb".
(WebCore::CSSLinearGradientValue::customCSSText const):
(WebCore::CSSRadialGradientValue::customCSSText const):
(WebCore::CSSConicGradientValue::customCSSText const):
Serialize the interpolation method after any initial conditions / positions
but before the color stops to match the rule in the spec that it should be
in the order they appear in the grammar.
- css/parser/CSSParserContext.cpp:
- css/parser/CSSParserContext.h:
Add new bit for the enabling CSS gradient interpolation method support.
Bump size of bits up to a uint64_t since we were overflowing.
- css/parser/CSSPropertyParserHelpers.cpp:
(WebCore::CSSPropertyParserHelpers::consumeColorInterpolationMethod):
(WebCore::CSSPropertyParserHelpers::parseColorMixFunctionParameters):
(WebCore::CSSPropertyParserHelpers::consumePrefixedRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumeRadialGradient):
(WebCore::CSSPropertyParserHelpers::consumePrefixedLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeLinearGradient):
(WebCore::CSSPropertyParserHelpers::consumeConicGradient):
(WebCore::CSSPropertyParserHelpers::consumeGeneratedImage):
(WebCore::CSSPropertyParserHelpers::consumeDeprecatedRadialGradient): Deleted.
Add support for parsing the color interpolation method on non-prefixed/non-deprecated
gradient functions. Renames consumeDeprecatedRadialGradient to consumePrefixedRadialGradient,
since it is not consuming a deprecated radial gradient, a different function does that,
and break out consuming prefixed linear gradients into consumePrefixedLinearGradient
now that the logic is even more diverged from the standard one.
- platform/graphics/cg/GradientRendererCG.cpp:
(WebCore::GradientRendererCG::pickStrategy const):
Use the shading strategy for all non-srgb interpolation methods as CGGradientRef does
not support it.
Source/WTF:
Add new experimental feature flag, CSSGradientInterpolationColorSpacesEnabled, to gate
support for interpolation methods in CSS gradients. Off by default.
- Scripts/Preferences/WebPreferencesExperimental.yaml:
- 11:48 AM Changeset in webkit [287473] by
-
- 40 edits2 copies2 moves41 adds3 deletes in trunk/LayoutTests
Update wpt css/css-color tests
https://bugs.webkit.org/show_bug.cgi?id=234684
Reviewed by Darin Adler.
LayoutTests/imported/w3c:
Updates tests.
- resources/resource-files.json:
- web-platform-tests/css/css-color/META.yml:
- web-platform-tests/css/css-color/body-opacity-0-to-1-stacking-context-expected.html: Added.
- web-platform-tests/css/css-color/body-opacity-0-to-1-stacking-context.html: Added.
- web-platform-tests/css/css-color/color-contrast-001-expected.html: Added.
- web-platform-tests/css/css-color/color-contrast-001.html: Added.
- web-platform-tests/css/css-color/color-mix-basic-001-expected.html: Added.
- web-platform-tests/css/css-color/color-mix-basic-001.html: Added.
- web-platform-tests/css/css-color/color-mix-basic-001.tentative-expected.txt: Removed.
- web-platform-tests/css/css-color/color-mix-basic-001.tentative.html: Removed.
- web-platform-tests/css/css-color/color-mix-non-srgb-001-expected.html: Added.
- web-platform-tests/css/css-color/color-mix-non-srgb-001.html: Added.
- web-platform-tests/css/css-color/color-mix-percents-01-expected.html: Added.
- web-platform-tests/css/css-color/color-mix-percents-01.html: Added.
- web-platform-tests/css/css-color/color-mix-percents-02-expected.html: Added.
- web-platform-tests/css/css-color/color-mix-percents-02.html: Added.
- web-platform-tests/css/css-color/display-p3-001-expected.html: Added.
- web-platform-tests/css/css-color/display-p3-001.html: Added.
- web-platform-tests/css/css-color/display-p3-002-expected.html: Added.
- web-platform-tests/css/css-color/display-p3-002.html: Added.
- web-platform-tests/css/css-color/display-p3-003-expected.html: Added.
- web-platform-tests/css/css-color/display-p3-003.html: Added.
- web-platform-tests/css/css-color/display-p3-004-expected.html: Added.
- web-platform-tests/css/css-color/display-p3-004.html: Added.
- web-platform-tests/css/css-color/display-p3-005-expected.html: Added.
- web-platform-tests/css/css-color/display-p3-005.html: Added.
- web-platform-tests/css/css-color/display-p3-006-expected.html: Added.
- web-platform-tests/css/css-color/display-p3-006.html: Added.
- web-platform-tests/css/css-color/inline-opacity-float-child-expected.xht: Added.
- web-platform-tests/css/css-color/inline-opacity-float-child.html: Added.
- web-platform-tests/css/css-color/oklab-001.html:
- web-platform-tests/css/css-color/oklab-002.html:
- web-platform-tests/css/css-color/oklab-003.html:
- web-platform-tests/css/css-color/oklab-004.html:
- web-platform-tests/css/css-color/oklab-005.html:
- web-platform-tests/css/css-color/oklab-006.html:
- web-platform-tests/css/css-color/oklab-007.html:
- web-platform-tests/css/css-color/oklab-008.html:
- web-platform-tests/css/css-color/oklch-001.html:
- web-platform-tests/css/css-color/oklch-002.html:
- web-platform-tests/css/css-color/oklch-003.html:
- web-platform-tests/css/css-color/oklch-004.html:
- web-platform-tests/css/css-color/oklch-005.html:
- web-platform-tests/css/css-color/oklch-006.html:
- web-platform-tests/css/css-color/oklch-007.html:
- web-platform-tests/css/css-color/oklch-008.html:
- web-platform-tests/css/css-color/parsing/color-computed-expected.txt:
- web-platform-tests/css/css-color/parsing/color-computed.html:
- web-platform-tests/css/css-color/parsing/color-contrast-computed-expected.txt: Added.
- web-platform-tests/css/css-color/parsing/color-contrast-computed.html: Added.
- web-platform-tests/css/css-color/parsing/color-contrast-invalid-expected.txt: Added.
- web-platform-tests/css/css-color/parsing/color-contrast-invalid.html: Added.
- web-platform-tests/css/css-color/parsing/color-contrast-valid-expected.txt: Added.
- web-platform-tests/css/css-color/parsing/color-contrast-valid.html: Added.
- web-platform-tests/css/css-color/parsing/color-invalid-expected.txt:
- web-platform-tests/css/css-color/parsing/color-invalid.html:
- web-platform-tests/css/css-color/parsing/color-mix-computed-expected.txt: Added.
- web-platform-tests/css/css-color/parsing/color-mix-computed.html: Added.
- web-platform-tests/css/css-color/parsing/color-mix-invalid-expected.txt: Added.
- web-platform-tests/css/css-color/parsing/color-mix-invalid.html: Added.
- web-platform-tests/css/css-color/parsing/color-mix-valid-expected.txt: Added.
- web-platform-tests/css/css-color/parsing/color-mix-valid.html: Added.
- web-platform-tests/css/css-color/parsing/color-valid-expected.txt:
- web-platform-tests/css/css-color/parsing/color-valid.html:
- web-platform-tests/css/css-color/parsing/relative-color-computed-expected.txt: Added.
- web-platform-tests/css/css-color/parsing/relative-color-computed.html: Added.
- web-platform-tests/css/css-color/parsing/relative-color-invalid-expected.txt: Added.
- web-platform-tests/css/css-color/parsing/relative-color-invalid.html: Added.
- web-platform-tests/css/css-color/parsing/relative-color-valid-expected.txt: Added.
- web-platform-tests/css/css-color/parsing/relative-color-valid.html: Added.
- web-platform-tests/css/css-color/parsing/system-color-valid-expected.txt:
- web-platform-tests/css/css-color/parsing/system-color-valid.html:
- web-platform-tests/css/css-color/parsing/w3c-import.log:
- web-platform-tests/css/css-color/predefined-001.html:
- web-platform-tests/css/css-color/predefined-002.html:
- web-platform-tests/css/css-color/predefined-005.html:
- web-platform-tests/css/css-color/predefined-006.html:
- web-platform-tests/css/css-color/predefined-013-expected.html: Removed.
- web-platform-tests/css/css-color/predefined-013.html: Removed.
- web-platform-tests/css/css-color/predefined-016.html:
- web-platform-tests/css/css-color/srgb-linear-003.html:
- web-platform-tests/css/css-color/srgb-linear-004.html:
- web-platform-tests/css/css-color/t31-color-text-a-expected-mismatch.xht: Added.
- web-platform-tests/css/css-color/t31-color-text-a-expected.xht: Removed.
- web-platform-tests/css/css-color/t421-rgb-values-meaning-b-expected.html:
- web-platform-tests/css/css-color/w3c-import.log:
LayoutTests:
Update expectations to match updated tests. One test that was marked as failing is now passing (because the test
was changed) and two new tests are known failures with corresponding annotated bugs.
- platform/gtk/TestExpectations:
Add two new tests that are only failing on the GTK bots due to a small floating point issue that needs further
investigation.
- 10:01 AM Changeset in webkit [287472] by
-
- 6 edits in trunk
Enhance Vector::map to allow specifying what kind of Vector to return (e.g. inline capacity, overflow, etc.)
https://bugs.webkit.org/show_bug.cgi?id=234683
Reviewed by Darin Adler.
Source/WebCore:
- platform/graphics/GradientColorStops.h:
(WebCore::GradientColorStops::mapColors const):
(WebCore::GradientColorStops::GradientColorStops):
Utilize new overloaded Vector::map to streamline GradientColorStops::mapColors(). Also
made it preserve the isSorted bit, which is valid because the offsets don't change.
Source/WTF:
- wtf/Vector.h:
(WTF::Vector::map const):
Add an overload of Vector::map() that allows specifying the type of the result Vector. To make this
work without giving up the argument deduction in the common case, SFINAE is used to determine which
overload to use.
Tools:
- TestWebKitAPI/Tests/WTF/Vector.cpp:
Add test for new Vector::map overload.
- 8:52 AM Changeset in webkit [287471] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Hanging content may not be whitespace type
https://bugs.webkit.org/show_bug.cgi?id=234698
Reviewed by Antti Koivisto.
While we only allow whitespace hanging content, they could be any type.
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::horizontalAlignmentOffset):
(WebCore::Layout::LineBoxBuilder::build):
- layout/formattingContexts/inline/InlineLineBuilder.h:
- layout/formattingContexts/inline/display/InlineDisplayLineBuilder.cpp:
(WebCore::Layout::InlineDisplayLineBuilder::build const):
- 8:40 AM Changeset in webkit [287470] by
-
- 4 edits2 adds in trunk
REGRESSION(r287440) Do not wrap the content for a collapsed whitespace
https://bugs.webkit.org/show_bug.cgi?id=234710
Reviewed by Antti Koivisto.
Source/WebCore:
While r287440 was correct, shouldKeepEndOfLineWhitespace had an unintentional side-effect of
keeping collapsed whitespace content on the line even when it is followed by an inline box end
with margin/padding/border that would otherwise overflow the line.
e.g <div style="width: 0px"><span style="border-right: 100px;">X </span></div>
the overflowing inline box end should not be wrapped over to the next line.
Test: fast/inline/trailing-whitespace-content-with-overflowing-inline-box.html
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::isWhitespaceOnlyContent):
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::isVisuallyEmptyWhitespaceContent): Deleted.
LayoutTests:
- fast/inline/trailing-whitespace-content-with-overflowing-inline-box-expected.html: Added.
- fast/inline/trailing-whitespace-content-with-overflowing-inline-box.html: Added.
- platform/ios/fast/borders/rtl-border-01-expected.txt: Redo rebaselining. While the content visually looks
odd (overflowing inline box), it is the expected behavior.
- 4:28 AM Changeset in webkit [287469] by
-
- 4 edits2 adds in trunk/LayoutTests
[selectors] Import two :focus-visible tests from WPT
https://bugs.webkit.org/show_bug.cgi?id=234720
Reviewed by Sergio Villar Senin.
LayoutTests/imported/w3c:
The tests were added in https://github.com/web-platform-tests/wpt/pull/32000
and are related to :focus-visible and accesskey.
They don't work on WebKit due to webkit.org/b/234139, though they work properly on wpt.fyi.
- web-platform-tests/css/selectors/focus-visible-024.html: Added.
- web-platform-tests/css/selectors/focus-visible-025.html: Added.
- web-platform-tests/css/selectors/w3c-import.log:
LayoutTests:
Skip the new imported tests as they fail due to webkit.org/b/234139.
- 2:14 AM Changeset in webkit [287468] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Add MacroAssemblerRISCV64 operations for floating-point branches
https://bugs.webkit.org/show_bug.cgi?id=234631
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-28
Reviewed by Yusuke Suzuki.
Add the floating-point branching operation implementations in
MacroAssemblerRISCV64. Unordered status of values is determined through
the fclass instruction and then handled as appropriate for the desired
condition.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::branchFloat):
(JSC::MacroAssemblerRISCV64::branchDouble):
(JSC::MacroAssemblerRISCV64::branchDoubleNonZero):
(JSC::MacroAssemblerRISCV64::branchDoubleZeroOrNaN):
(JSC::MacroAssemblerRISCV64::branchTruncateDoubleToInt32):
(JSC::MacroAssemblerRISCV64::branchConvertDoubleToInt32):
(JSC::MacroAssemblerRISCV64::branchFP):
- 1:45 AM Changeset in webkit [287467] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Add MacroAssemblerRISCV64 operations for testing, comparison
https://bugs.webkit.org/show_bug.cgi?id=234630
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-28
Reviewed by Yusuke Suzuki.
Add MacroAssemblerRISCV64 implementations for the different variants of
compare and test instructions.
For comparisons, the implementations set up the two values in separate
registers and perform the comparison per the inquired relation, writing
out the result into the destination register.
For tests, the two values are set up and put through the bitwise AND,
with the result evaluated and the destination register filled out
according to the inquired result condition.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::compare8):
(JSC::MacroAssemblerRISCV64::compare32):
(JSC::MacroAssemblerRISCV64::compare64):
(JSC::MacroAssemblerRISCV64::test8):
(JSC::MacroAssemblerRISCV64::test32):
(JSC::MacroAssemblerRISCV64::test64):
(JSC::MacroAssemblerRISCV64::compareFinalize):
(JSC::MacroAssemblerRISCV64::testFinalize):
- 1:31 AM Changeset in webkit [287466] by
-
- 2 edits in trunk/Source/JavaScriptCore
[RISCV64] Add MacroAssemblerRISCV64 operations with patchable elements
https://bugs.webkit.org/show_bug.cgi?id=234635
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-28
Reviewed by Yusuke Suzuki.
Add MacroAssemblerRISCV64 implementations for operations that generate
patchable code sections. This covers moves, stores and branches.
For moves and stores of pointer values, the patchable section is
achieved by generating a immediate loader instruction sequence with all
the placeholder instructions (nops) included.
Some methods that had their noop implementations provided until now have
been removed since they are not necessary anymore.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::moveWithPatch):
(JSC::MacroAssemblerRISCV64::storePtrWithPatch):
(JSC::MacroAssemblerRISCV64::branch32WithPatch):
(JSC::MacroAssemblerRISCV64::branchPtrWithPatch):
(JSC::MacroAssemblerRISCV64::patchableBranch64):
- 1:06 AM Changeset in webkit [287465] by
-
- 5 edits in trunk/Source
[RISCV64] Enable signal-based VM traps for CPU(RISCV64)
https://bugs.webkit.org/show_bug.cgi?id=234719
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-28
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Enable signal-based VM traps on RISCV64. On Linux, this depends on
generating a SIGSEGV or SIGBUS signal. The former can be generated
through a simple storage instruction that sources the address from
the zero register.
This storage instruction is generated on the desired location through
the RISCV64Assembler::replaceWithVMHalt() method.
- assembler/MacroAssemblerRISCV64.h:
(JSC::MacroAssemblerRISCV64::replaceWithVMHalt):
- assembler/RISCV64Assembler.h:
(JSC::RISCV64Assembler::replaceWithVMHalt):
Source/WTF:
- wtf/PlatformEnable.h: Define ENABLE_SIGNAL_BASED_VM_TRAPS for CPU(RISCV64).
- 12:48 AM Changeset in webkit [287464] by
-
- 4 edits in trunk/Source
[RISCV64] Define HAVE_MACHINE_CONTEXT, provide mcontext_t accessors for CPU(RISCV64)
https://bugs.webkit.org/show_bug.cgi?id=234718
Patch by Zan Dobersek <zdobersek@igalia.com> on 2021-12-28
Reviewed by Yusuke Suzuki.
Source/JavaScriptCore:
Define HAVE_MACHINE_CONTEXT for RISCV64. In the MachineContext.h
header, CPU(RISCV64)-specific accessors into the mcontext_t struct
are also provided.
- runtime/MachineContext.h:
(JSC::MachineContext::stackPointerImpl):
(JSC::MachineContext::framePointerImpl):
(JSC::MachineContext::instructionPointerImpl):
(JSC::MachineContext::argumentPointer<1>):
(JSC::MachineContext::llintInstructionPointer):
Source/WTF:
- wtf/PlatformHave.h: Define HAVE_MACHINE_CONTEXT for CPU(RISCV64).
Dec 27, 2021:
- 10:10 PM Changeset in webkit [287463] by
-
- 2 edits in trunk/Source/bmalloc
[libpas] Use thread_switch instead of sched_yield
https://bugs.webkit.org/show_bug.cgi?id=234712
Reviewed by Filip Pizlo.
Previously, we received internal reports that sched_yield waits for a long time, and causing a pause
in the client of JavaScriptCore, and we switched it to thread_switch in bmalloc::Mutex. We should do
the same thing in libpas too.
- libpas/src/libpas/pas_lock.c:
(pas_lock_lock_slow):
- 9:44 PM Changeset in webkit [287462] by
-
- 3 edits1 copy1 add1 delete in trunk/LayoutTests
[GLIB] Update test expectations and baselines. Unreviewed test gardening.
https://bugs.webkit.org/show_bug.cgi?id=234714
Patch by Arcady Goldmints-Orlov <Arcady Goldmints-Orlov> on 2021-12-27
- platform/glib/TestExpectations:
- platform/glib/webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt: Renamed from LayoutTests/platform/gtk/webgl/1.0.3/conformance/extensions/oes-texture-half-float-expected.txt.
- platform/glib/webgl/1.0.3/conformance/extensions/webgl-compressed-texture-s3tc-expected.txt: Added.
- platform/wpe/TestExpectations:
- 4:29 PM Changeset in webkit [287461] by
-
- 3 edits in trunk/Source/WebCore
Element::boundingAbsoluteRectWithoutLayout() should be marked
const
https://bugs.webkit.org/show_bug.cgi?id=234703
Reviewed by Darin Adler.
Mark an existing method on Element as
const, so that it can be invoked withconst Element*/const Element&.
No change in behavior.
- dom/Element.cpp:
(WebCore::listBoxElementBoundingBox):
(WebCore::Element::boundingAbsoluteRectWithoutLayout const):
(WebCore::Element::boundingAbsoluteRectWithoutLayout): Deleted.
- dom/Element.h:
- 8:39 AM Changeset in webkit [287460] by
-
- 4 edits2 deletes in trunk/LayoutTests
Consolidate computed-style-*.txt and getComputedStyle-basic-expected.txt test results
Unreviewed test gardening.
The results in the non-platform directory are stale, the platform/mac/ results are the most recent ones.
- fast/css/getComputedStyle/computed-style-expected.txt:
- fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
- platform/mac/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
- platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
- platform/mac/svg/css/getComputedStyle-basic-expected.txt: Removed.
- svg/css/getComputedStyle-basic-expected.txt:
- 2:04 AM Changeset in webkit [287459] by
-
- 18 edits2 moves in trunk/Source/JavaScriptCore
Consider merging Wasm::FunctionCodeBlock and Wasm::LLIntCallee
https://bugs.webkit.org/show_bug.cgi?id=203691
Reviewed by Filip Pizlo.
This patch merges Wasm::FunctionCodeBlock into Wasm::LLIntCallee since both
are one-on-one and what they want to represent are the same. We change
Wasm::FunctionCodeBlock to Wasm::FunctionCodeBlockGenerator so that we can
use FixedVector in Wasm::LLIntCallee which makes Wasm::LLIntCallee small,
and this is similar to what JS side is doing (UnlinkedCodeBlockGenerator).
- CMakeLists.txt:
- JavaScriptCore.xcodeproj/project.pbxproj:
- Sources.txt:
- bytecode/BytecodeDumper.cpp:
(JSC::Wasm::BytecodeDumper::dumpBlock):
(JSC::Wasm::BytecodeDumper::dumpConstants):
(JSC::Wasm::BytecodeDumper::constantName const):
- bytecode/BytecodeDumper.h:
- interpreter/Interpreter.cpp:
(JSC::CatchInfo::CatchInfo):
- llint/LLIntOffsetsExtractor.cpp:
- llint/WebAssembly.asm:
- wasm/WasmCallee.cpp:
(JSC::Wasm::LLIntCallee::LLIntCallee):
(JSC::Wasm::LLIntCallee::outOfLineJumpOffset):
(JSC::Wasm::LLIntCallee::outOfLineJumpTarget):
(JSC::Wasm::LLIntCallee::linkExceptionHandlers): Deleted.
- wasm/WasmCallee.h:
(JSC::Wasm::Callee::llintFunctionCodeBlock const): Deleted.
- wasm/WasmFunctionCodeBlockGenerator.cpp: Renamed from Source/JavaScriptCore/wasm/WasmFunctionCodeBlock.cpp.
(JSC::Wasm::FunctionCodeBlockGenerator::setInstructions):
(JSC::Wasm::FunctionCodeBlockGenerator::addOutOfLineJumpTarget):
(JSC::Wasm::FunctionCodeBlockGenerator::outOfLineJumpOffset):
(JSC::Wasm::FunctionCodeBlockGenerator::addSignature):
(JSC::Wasm::FunctionCodeBlockGenerator::addJumpTable):
(JSC::Wasm::FunctionCodeBlockGenerator::numberOfJumpTables const):
- wasm/WasmFunctionCodeBlockGenerator.h: Renamed from Source/JavaScriptCore/wasm/WasmFunctionCodeBlock.h.
(JSC::Wasm::FunctionCodeBlockGenerator::FunctionCodeBlockGenerator):
(JSC::Wasm::FunctionCodeBlockGenerator::tierUpCounter):
- wasm/WasmGeneratorTraits.h:
- wasm/WasmLLIntGenerator.cpp:
(JSC::Wasm::parseAndCompileBytecode):
(JSC::Wasm::LLIntGenerator::LLIntGenerator):
(JSC::Wasm::LLIntGenerator::finalize):
(JSC::Wasm::LLIntGenerator::addLoop):
(JSC::Wasm::LLIntGenerator::addSwitch):
- wasm/WasmLLIntGenerator.h:
- wasm/WasmLLIntPlan.cpp:
(JSC::Wasm::LLIntPlan::compileFunction):
(JSC::Wasm::LLIntPlan::didCompleteCompilation):
- wasm/WasmLLIntPlan.h:
- wasm/WasmLLIntTierUpCounter.h:
(JSC::Wasm::LLIntTierUpCounter::LLIntTierUpCounter):
- wasm/WasmSlowPaths.cpp:
(JSC::LLInt::shouldJIT):
(JSC::LLInt::jitCompileAndSetHeuristics):
(JSC::LLInt::WASM_SLOW_PATH_DECL):
(JSC::LLInt::doWasmCallIndirect):
(JSC::LLInt::doWasmCallRef):
Dec 26, 2021:
- 11:46 PM Changeset in webkit [287458] by
-
- 4 edits in trunk/Source/JavaScriptCore
[JSC] Use SlowPathReturnType instead of EncodedMatchResult
https://bugs.webkit.org/show_bug.cgi?id=234686
Reviewed by Filip Pizlo.
This patch replaces YarrJIT's EncodedMatchResult with SlowPathReturnType so that
CCallHelpers can handle it correctly.
- runtime/MatchResult.h:
(JSC::MatchResult::MatchResult):
(JSC::MatchResult::failed):
- runtime/SlowPathReturnType.h:
(JSC::decodeResult):
- yarr/YarrJIT.h:
- 11:38 PM Changeset in webkit [287457] by
-
- 2 edits in trunk/Source/WebCore
[GTK][a11y] Test accessibility/aria-inherits-presentational.html is failing with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234685
Reviewed by Adrian Perez de Castro.
We are ignoring list items inheriting presentational role, but we need to expose its contents.
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::effectiveRole const): Use section as effective role of list items inheriting
presentational role.
(WebCore::AccessibilityObject::accessibilityPlatformIncludesObject const): Include list items inheriting
presentational role.
- 11:37 PM Changeset in webkit [287456] by
-
- 8 edits in trunk
[GTK][a11y] Stop setting manages-descendants on web process root object with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234663
Reviewed by Adrian Perez de Castro.
Source/WebCore:
Emit parent-changed and children-changed signals instead, like all other objects, to properly update the ATSPI
cache.
- accessibility/atspi/AccessibilityAtspi.cpp:
(WebCore::AccessibilityAtspi::parentChanged): Emit the signal for the root object.
(WebCore::AccessibilityAtspi::childrenChanged): Ditto.
- accessibility/atspi/AccessibilityAtspi.h:
- accessibility/atspi/AccessibilityObjectAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::cacheDestroyed): Notify the root object too.
(WebCore::AccessibilityObjectAtspi::elementDestroyed): Ditto.
(WebCore::AccessibilityObjectAtspi::setParent): Ditto.
(WebCore::AccessibilityObjectAtspi::serialize const): Use AccessibilityRootAtspi::applicationReference().
- accessibility/atspi/AccessibilityRootAtspi.cpp:
(WebCore::AccessibilityRootAtspi::embedded): Call AccessibilityAtspi::parentChanged().
(WebCore::AccessibilityRootAtspi::parentReference const): Added.
(WebCore::AccessibilityRootAtspi::childAdded): Call AccessibilityAtspi::childrenChanged().
(WebCore::AccessibilityRootAtspi::childRemoved): Ditto.
(WebCore::AccessibilityRootAtspi::serialize const): Do not set manages-descendants state.
- accessibility/atspi/AccessibilityRootAtspi.h:
Tools:
Update the unit test to remove the ATSPI ifdef.
- TestWebKitAPI/Tests/WebKitGtk/TestWebKitAccessibility.cpp:
(testAccessibleBasicHierarchy):
- 11:36 PM Changeset in webkit [287455] by
-
- 3 edits in trunk/Source/WebCore
[GTK][a11y] Test /webkit/WebKitAccessibility/selection/listbox is flaky with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234665
Reviewed by Adrian Perez de Castro.
The problem is that selection-changed can be called multiple times for list boxes. When the notification is
deferred by the AXObject cache, it's ensured to be called only one for every element in the following run loop
iteration, but when not deferred the signal is emitted for every notification.
- accessibility/atspi/AccessibilityObjectAtspi.h:
- accessibility/atspi/AccessibilityObjectSelectionAtspi.cpp:
(WebCore::AccessibilityObjectAtspi::selectionChanged): Ensure we don't emit the selection-changed signal more
than once in the same run loop iteration.
- 11:34 PM Changeset in webkit [287454] by
-
- 2 edits in trunk/Tools
[GTK][a11y] WTR: handle xml-roles attributes to return the right role for landmark with ATSPI
https://bugs.webkit.org/show_bug.cgi?id=234638
Reviewed by Adrian Perez de Castro.
- WebKitTestRunner/InjectedBundle/atspi/AccessibilityUIElementAtspi.cpp:
(WTR::xmlRoleValueString):
(WTR::AccessibilityUIElement::role):
- 10:43 PM Changeset in webkit [287453] by
-
- 11 edits in trunk
[LFC][IFC] Do not trim the hanging trailing content
https://bugs.webkit.org/show_bug.cgi?id=234679
Reviewed by Antti Koivisto.
Source/WebCore:
This is the final step of making the hanging content handling inline with the spec.
(https://www.w3.org/TR/css-text-3/#hang)
Since we don't (fake)trim such content when closing the line, the content width matches
the actual content on the line which also helps when it is aligned to support RTL ordering.
- layout/formattingContexts/inline/InlineLine.cpp:
(WebCore::Layout::Line::Run::removeTrailingWhitespace):
(WebCore::Layout::Line::visuallyCollapseHangingOverflowingGlyphs): Deleted.
(WebCore::Layout::Line::Run::visuallyCollapseTrailingWhitespace): Deleted.
- layout/formattingContexts/inline/InlineLine.h:
- layout/formattingContexts/inline/InlineLineBoxBuilder.cpp:
(WebCore::Layout::horizontalAlignmentOffset):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::close):
LayoutTests:
- platform/mac/fast/text/whitespace/pre-wrap-overflow-selection-expected.txt: Progression. Matches FF and Chrome selection behavior.
- 4:46 PM Changeset in webkit [287452] by
-
- 12 edits1 delete in trunk
Replace WebKit/CocoaColor.h with WebCore/ColorCocoa.h, not confusing at all
https://bugs.webkit.org/show_bug.cgi?id=234693
Reviewed by Simon Fraser.
Source/WebKit:
We don't need both. The WebCore one can work for both.
- Platform/cocoa/CocoaColor.h: Removed.
- Shared/Cocoa/ArgumentCodersCocoa.mm:
(IPC::typeFromObject):
(IPC::encodeColorInternal):
(IPC::encodeObject):
- UIProcess/API/Cocoa/WKWebView.mm:
(-[WKWebView themeColor]):
(-[WKWebView underPageBackgroundColor]):
(-[WKWebView setUnderPageBackgroundColor:]):
(-[WKWebView _themeColor]):
(-[WKWebView _pageExtendedBackgroundColor]):
(-[WKWebView _sampledPageTopColor]):
- UIProcess/API/Cocoa/_WKApplicationManifest.mm:
(-[_WKApplicationManifest initWithCoder:]):
(-[_WKApplicationManifest themeColor]):
- UIProcess/Cocoa/WKSafeBrowsingWarning.h:
- UIProcess/Cocoa/WKSafeBrowsingWarning.mm:
(colorForItem):
(-[WKSafeBrowsingBox setSafeBrowsingBackgroundColor:]):
(-[WKSafeBrowsingWarning showDetailsClicked]):
(-[WKSafeBrowsingTextView initWithAttributedString:forWarning:]):
- WebKit.xcodeproj/project.pbxproj:
- WebProcess/Plugins/PDF/PDFPlugin.mm:
(WebKit::PDFPlugin::PDFPlugin):
Tools:
Use WebCore/ColorCocoa.h instead.
- TestWebKitAPI/Tests/WebKitCocoa/CopyHTML.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewThemeColor.mm:
- TestWebKitAPI/Tests/WebKitCocoa/WKWebViewUnderPageBackgroundColor.mm:
- 4:03 PM Changeset in webkit [287451] by
-
- 8 edits2 adds in trunk
Make -webkit-text-combine an inherited property
https://bugs.webkit.org/show_bug.cgi?id=234694
Reviewed by Simon Fraser.
Source/WebCore:
-webkit-text-combine is said to be inherited in CSSProperties.json, but it is not actually the case.
It should be inherited per-spec (for text-combine-upright).
https://drafts.csswg.org/css-writing-modes/#text-combine-upright
Test: fast/text/text-combine-inherited.html
- rendering/style/RenderStyle.cpp:
(WebCore::rareNonInheritedDataChangeRequiresLayout):
(WebCore::rareInheritedDataChangeRequiresLayout):
- rendering/style/RenderStyle.h:
(WebCore::RenderStyle::textCombine const):
(WebCore::RenderStyle::setTextCombine):
- rendering/style/StyleRareInheritedData.cpp:
(WebCore::StyleRareInheritedData::StyleRareInheritedData):
(WebCore::StyleRareInheritedData::operator== const):
- rendering/style/StyleRareInheritedData.h:
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
- rendering/style/StyleRareNonInheritedData.h:
LayoutTests:
There are also WPT that already exist for the standard version (text-combine-upright):
- css/css-writing-modes/text-combine-upright-inherit-all-001.html
- css/css-writing-modes/text-combine-upright-inherit-all-002.html
- fast/text/text-combine-inherited-expected.html: Added.
- fast/text/text-combine-inherited.html: Added.
- 3:11 PM Changeset in webkit [287450] by
-
- 2 edits in trunk/Source/WebKit
RemoteInspectorProtocolHandler::inspect() expects ConnectionID as uint32_t
https://bugs.webkit.org/show_bug.cgi?id=234657
Reviewed by Don Olmstead.
connectionID a parameter of ScriptMessageClient::didPostMessage() is casteed as <int>.
Since ConnectionID is define as uint32_t, it should be casted as <uint32_t>.
- UIProcess/Inspector/socket/RemoteInspectorProtocolHandler.cpp: Fixed cast for connectionID.
- 1:53 PM Changeset in webkit [287449] by
-
- 2 edits in trunk/Source/WebCore
null ptr deref in WebCore::indexForVisiblePosition()
https://bugs.webkit.org/show_bug.cgi?id=234255
Patch by Frédéric Wang <fwang@igalia.com> on 2021-12-26
Reviewed by Darin Adler.
- editing/InsertListCommand.cpp:
(WebCore::InsertListCommand::doApply): Ensure endOfSelection did not become orphan before
calling indexForVisiblePosition(). This may happen because the VisiblePosition constructor
is called in the while loop, triggering re-layout and post-layout tasks.
- 1:40 PM Changeset in webkit [287448] by
-
- 4 edits in trunk/Source/WebCore
Remove -webkit-{border-fit/margin-collapse} leftovers in StyleRareNonInheritedData
https://bugs.webkit.org/show_bug.cgi?id=234692
Reviewed by Simon Fraser.
r285615 removed -webkit-border-fit.
r287429 removed -webkit-margin-collapse properties.
- rendering/style/RenderStyle.cpp:
(WebCore::RenderStyle::hashForTextAutosizing const):
(WebCore::RenderStyle::equalForTextAutosizing const):
(WebCore::rareNonInheritedDataChangeRequiresLayout):
- rendering/style/StyleRareNonInheritedData.cpp:
(WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
(WebCore::StyleRareNonInheritedData::operator== const):
- rendering/style/StyleRareNonInheritedData.h:
- 11:24 AM Changeset in webkit [287447] by
-
- 8 edits in trunk/Source/WebCore
[IFC][Integration] Update text renderer's needsVisualReordering bit
https://bugs.webkit.org/show_bug.cgi?id=234688
Reviewed by Antti Koivisto.
This is similar to legacy line layout where the RenderText's needsVisualReordering is
updated as the (bidi) text box is being placed on the line.
Here we update this bit right after the line layout, when we finished constructing the display boxes.
- layout/formattingContexts/inline/InlineItemsBuilder.cpp:
(WebCore::Layout::InlineItemsBuilder::handleTextContent):
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/integration/LayoutIntegrationInlineContentBuilder.cpp:
(WebCore::LayoutIntegration::InlineContentBuilder::InlineContentBuilder):
(WebCore::LayoutIntegration::InlineContentBuilder::build const):
- layout/integration/LayoutIntegrationInlineContentBuilder.h:
- layout/layouttree/LayoutInlineTextBox.cpp:
(WebCore::Layout::InlineTextBox::InlineTextBox):
(WebCore::Layout::m_canUseSimplifiedContentMeasuring):
(WebCore::Layout::m_containsBidiText): Deleted.
- layout/layouttree/LayoutInlineTextBox.h:
(WebCore::Layout::InlineTextBox::canUseSimplifiedContentMeasuring const):
(WebCore::Layout::InlineTextBox::containsBidiText const): Deleted. No need to cache this value on the layout box
InlineTextItems more or less have the same lifecycle as their associated layout boxes.
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createTextBox):
- 10:47 AM Changeset in webkit [287446] by
-
- 2 edits in trunk/Source/WebCore
Update writing-mode property values in CSSProperties.json
https://bugs.webkit.org/show_bug.cgi?id=234689
Reviewed by Simon Fraser.
horizontal-tb/vertical-lr/vertical-rl have been supported for a while now.
horizontal-bt has too, but it is non-standard.
- css/CSSProperties.json:
- 10:45 AM Changeset in webkit [287445] by
-
- 8 edits in trunk
[:has() pseudo-class] Support :disabled and :enabled pseudo-class invalidation
https://bugs.webkit.org/show_bug.cgi?id=234636
Reviewed by Simon Fraser.
LayoutTests/imported/w3c:
- web-platform-tests/css/selectors/invalidation/has-pseudo-class.html:
Source/WebCore:
Use Style::PseudoClassChangeInvalidation to support invalidation with :has(:disabled).
- html/HTMLFormControlElement.cpp:
(WebCore::HTMLFormControlElement::setAncestorDisabled):
(WebCore::HTMLFormControlElement::parseAttribute):
(WebCore::HTMLFormControlElement::disabledStateChanged):
- html/HTMLOptGroupElement.cpp:
(WebCore::HTMLOptGroupElement::isDisabledFormControl const):
Use a member bit instead of checking the attribute directly. This allows invalidation to be scoped over the state change.
(WebCore::HTMLOptGroupElement::parseAttribute):
Optgroup can flip the disabled status of the associated option elements too so handle that specifically.
- html/HTMLOptGroupElement.h:
- html/HTMLOptionElement.cpp:
(WebCore::HTMLOptionElement::parseAttribute):
- 9:21 AM Changeset in webkit [287444] by
-
- 8 edits in trunk/Source/WebCore
makeTextLogicalOrderCacheIfNeeded is only interested in whether the content needs visual reordering
https://bugs.webkit.org/show_bug.cgi?id=234687
Reviewed by Antti Koivisto.
This renaming patch is in preparation for fixing the caching codepath for LFC bidi.
- layout/formattingContexts/inline/text/TextUtil.cpp:
(WebCore::Layout::TextUtil::containsStrongDirectionalityText):
(WebCore::Layout::TextUtil::containsBidiText): Deleted.
- layout/formattingContexts/inline/text/TextUtil.h:
- layout/integration/InlineIteratorLogicalOrderTraversal.cpp:
(WebCore::InlineIterator::makeTextLogicalOrderCacheIfNeeded):
- layout/integration/LayoutIntegrationBoxTree.cpp:
(WebCore::LayoutIntegration::BoxTree::buildTree):
- layout/layouttree/LayoutTreeBuilder.cpp:
(WebCore::Layout::TreeBuilder::createTextBox):
- rendering/RenderText.cpp:
(WebCore::RenderText::RenderText):
(WebCore::RenderText::positionLineBox):
- rendering/RenderText.h:
(WebCore::RenderText::needsVisualReordering const):
(WebCore::RenderText::setNeedsVisualReordering):
(WebCore::RenderText::containsBidiText const): Deleted.
(WebCore::RenderText::setContainsBidiText): Deleted.
- 7:02 AM Changeset in webkit [287443] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] ContinuousContent should tell InlineContentBreaker if the candidate content is hanging
https://bugs.webkit.org/show_bug.cgi?id=234671
Reviewed by Antti Koivisto.
ContinuousContent now keeps track of whether the candidate run is a hanging content.
It enables InlineContentBreaker to just simply look at the flag to decide if the overflowing
(hanging) content should stay on the line or not.
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::append):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::reset):
- layout/formattingContexts/inline/InlineContentBreaker.h:
(WebCore::Layout::InlineContentBreaker::ContinuousContent::isHangingContent const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
Dec 25, 2021:
- 10:16 PM Changeset in webkit [287442] by
-
- 4 edits in trunk/Source/WebCore
[LFC][IFC] Turn InlineContentBreaker::ContinuousContent's leading/trailing member variables to std::optional<InlineLayoutUnit>
https://bugs.webkit.org/show_bug.cgi?id=234676
Reviewed by Antti Koivisto.
While an empty (logical width = 0) ContinuousContent takes up no space, it should not be mistaken for collapsed content
(i.e when m_logicalWidth(0) == m_trailingCollapsibleWidth(0), hasCollapsibleContent() should still return false)
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::InlineContentBreaker::tryBreakingOverflowingRun const):
(WebCore::Layout::InlineContentBreaker::tryBreakingPreviousNonOverflowingRuns const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::appendToRunList): Add a dedicated function to deal with append and logicalWidth.
(WebCore::Layout::InlineContentBreaker::ContinuousContent::resetTrailingWhitespace): Turn trailing whitespace into leading if applicable.
(WebCore::Layout::InlineContentBreaker::ContinuousContent::append): Add dedicated functions for each inline item types.
- layout/formattingContexts/inline/InlineContentBreaker.h:
(WebCore::Layout::InlineContentBreaker::ContinuousContent::leadingCollapsibleWidth const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::trailingCollapsibleWidth const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::hasCollapsibleContent const):
(WebCore::Layout::InlineContentBreaker::ContinuousContent::isFullyCollapsible const):
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineCandidate::InlineContent::appendInlineItem):
- 10:10 PM Changeset in webkit [287441] by
-
- 2 edits in trunk/LayoutTests
[iOS] Rebaselining after r287440.
Unreviewed.
- platform/ios/fast/borders/rtl-border-01-expected.txt: Progression. Content does not overflow the line anymore.
- 12:55 PM Changeset in webkit [287440] by
-
- 3 edits in trunk/Source/WebCore
[LFC][IFC] Remove redundant InlineContentBreaker::shouldKeepEndOfLineWhitespace
https://bugs.webkit.org/show_bug.cgi?id=234668
Reviewed by Antti Koivisto.
This is in preparation for moving pre-wrap checking out of InlineContentBreaker.
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
(WebCore::Layout::InlineContentBreaker::shouldKeepEndOfLineWhitespace const): Deleted.
- layout/formattingContexts/inline/InlineContentBreaker.h:
- 11:18 AM Changeset in webkit [287439] by
-
- 2 edits in trunk
Add my github username to contributors.json
https://bugs.webkit.org/show_bug.cgi?id=231666
Patch by Sergey Rubanov <Sergey Rubanov> on 2021-12-25
Reviewed by Alexey Proskuryakov.
- metadata/contributors.json:
- 10:34 AM Changeset in webkit [287438] by
-
- 2 edits in trunk/Source/WebCore
[LFC][IFC] Fully collapsible whitespace content should always stay on the current line
https://bugs.webkit.org/show_bug.cgi?id=234667
Reviewed by Antti Koivisto.
Fully collapsible trailing whitespace content (normal/nowrap/preline) gets removed at
the trimming phase so it always "fits" the current line.
This is also in preparation for decoupling removeable and hanging trailing content.
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
- 7:36 AM Changeset in webkit [287437] by
-
- 5 edits in trunk/Source/WebCore
[LFC][IFC] InlineContentBreaker should know about the hanging content width
https://bugs.webkit.org/show_bug.cgi?id=234662
Reviewed by Antti Koivisto.
Pass in the trailing hanging content width to InlineContentBreaker as this specific type
of content (e.g. pre-wrap whitespace) should be ignored when checking for content fit.
(Note that we already ignore it through the shouldKeepEndOfLineWhitespace() call in
InlineContentBreaker::processOverflowingContent, but this patch is in preparation for making hanging content logic
more inline with the spec. -and also removing shouldKeepEndOfLineWhitespace needs some more changes.)
- layout/formattingContexts/inline/InlineContentBreaker.cpp:
(WebCore::Layout::InlineContentBreaker::processOverflowingContent const):
- layout/formattingContexts/inline/InlineContentBreaker.h:
- layout/formattingContexts/inline/InlineLine.h:
(WebCore::Layout::Line::hangingTrailingContentWidth const):
(WebCore::Layout::Line::hangingWhitespaceWidth const): Deleted.
- layout/formattingContexts/inline/InlineLineBuilder.cpp:
(WebCore::Layout::LineBuilder::layoutInlineContent):
(WebCore::Layout::LineBuilder::handleInlineContent):
- 2:13 AM Changeset in webkit [287436] by
-
- 3 edits in trunk/Source/WebKit
Unreviewed, reverting r285088.
https://bugs.webkit.org/show_bug.cgi?id=234680
From A/B test, we probably need to revert both, 285087 and
285088
Reverted changeset:
"Web process shouldn't crash if
ImageBuffer::ensureBackendCreated() fails"
https://bugs.webkit.org/show_bug.cgi?id=232520
https://commits.webkit.org/r285088