main
Commits on Jul 5, 2022
-
Add support for showing a spinner in an <input>
https://bugs.webkit.org/show_bug.cgi?id=242067 rdar://94641774 Reviewed by Devin Rousso. This adds support for an enum case to show a loading indicator in an input element. * Source/WebCore/accessibility/mac/WebAccessibilityObjectWrapperMac.mm: (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]): adds an accessibility text attribute to satisfy the new enum for the switch-case * Source/WebCore/css/html.css: (input::-webkit-loading-auto-fill-button): (#endif): this adds the loading indicator SVG to a new selector in the css file * Source/WebCore/html/HTMLTextFormControlElement.h: Adds the new enum case * Source/WebCore/html/TextFieldInputType.cpp: (WebCore::autoFillButtonTypeToAccessibilityLabel): (WebCore::autoFillButtonTypeToAutoFillButtonText): (WebCore::autoFillButtonTypeToAutoFillButtonPseudoClassName): (WebCore::isAutoFillButtonTypeChanged): Maps the enum to a `ShadowPseudoIds` attribute * Source/WebCore/html/shadow/ShadowPseudoIds.cpp: (WebCore::ShadowPseudoIds::webkitLoadingAutoFillButton): * Source/WebCore/html/shadow/ShadowPseudoIds.h: Adds a new function to get the CSS selector for the loading indicator * Source/WebCore/platform/LocalizedStrings.cpp: (WebCore::AXAutoFillLoadingLabel): * Source/WebCore/platform/LocalizedStrings.h: * Source/WebCore/testing/Internals.cpp: (WebCore::toAutoFillButtonType): (WebCore::toInternalsAutoFillButtonType): * Source/WebCore/testing/Internals.h: Adds a mapping from `Internals::AutoFillButtonType` to `AutoFillButtonType` for the Loading case * Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandle.mm: (toAutoFillButtonType): (toWKAutoFillButtonType): Adds a mapping between `WebCore::AutoFillButtonType` and `_WKAutoFillButtonType` for the Loading case * Source/WebKit/WebProcess/InjectedBundle/API/Cocoa/WKWebProcessPlugInNodeHandlePrivate.h: Adds the new enum case * Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleNodeHandle.cpp: (toAutoFillButtonType): (toWKAutoFillButtonType): * Source/WebKit/WebProcess/InjectedBundle/API/c/WKBundleNodeHandlePrivate.h: Adds a mapping between `kWKAutoFillButtonTyp` and `WebCore::AutoFillButtonType` for the Loading case Canonical link: https://commits.webkit.org/252146@main
-
[webkitbot] Use commits.webkit.org instead of trac.webkit.org
https://bugs.webkit.org/show_bug.cgi?id=242280 <rdar://problem/96321862> Reviewed by Yusuke Suzuki. * Tools/WebKitBot/src/WebKitBot.mjs: Canonical link: https://commits.webkit.org/252145@main
-
[iOS] Add support for keyboard shortcut and menu item to find using t…
…he current selection https://bugs.webkit.org/show_bug.cgi?id=242196 rdar://93530469 Reviewed by Wenson Hsieh. This patch adds support for: - The CMD+E keyboard shortcut, which populates the search text for the current find interaction - A "Find Selection" item in the callout bar, which populates the search text and presents the find panel * Source/WebKit/Platform/spi/ios/UIKitSPI.h: * Source/WebKit/UIProcess/API/ios/WKWebViewIOS.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView canPerformActionForWebView:withSender:]): (-[WKContentView useSelectionForFindForWebView:]): (-[WKContentView _findSelectedForWebView:]): * Source/WebKit/WebProcess/WebPage/WebFoundTextRangeController.cpp: (WebKit::WebFoundTextRangeController::setTextIndicatorWithRange): Fix the appearance of the highlighted range in cases where it is equal to the current selection. If the selection before enabling appearance updates is equal to the range to highlight, the TemporarySelectionChange used by TextIndicator to generate a snapshot will exit early and fail to call updateAppearance. This means that the selection won't be pushed to the render tree, and the TextIndicator will have a blank snapshot. This logic matches the existing update logic in FindControllerIOS. Canonical link: https://commits.webkit.org/252144@main
-
[Xcode] Stop passing build settings on the command line to avoid inva…
…lidating IDE builds rdar://88135402 Reviewed by Jonathan Bedard and Alexey Proskuryakov. Xcode considers a shell script's environment part of its task signature, so changing build settings will require scripts to re-run in the next build. Since many of our upstream build tasks (e.g. headers, generated sources) are produced by script executions, changing build settings is effectively a full build, so we must avoid it whenever possible. In support of this goal, update Make and build-webkit to stop passing some build settings overrides by default. Build settings overrides which can be expected to match what Xcode is using (e.g. SYMROOT, OBJROOT, ARCHS, SDKROOT) are fine to keep passing. * Makefile.shared: Only pass GCC_PREPROCESSOR_DEFINITIONS if there are actual custom arguments specified. Avoid passing WK_VALIDATE_DEPENDENCIES and COLOR_DIAGNOSTICS. * Tools/CISupport/build-webkit-org/steps.py: (CompileWebKit.start): As WK_VALIDATE_DEPENDENCIES is no longer supplied by default, enable it explicitly for bots. We should revisit this after workspace builds have been deployed and we can reasonably expect all Xcode-based builds of WebKit to occur via the workspace. * Tools/CISupport/ews-build/steps.py: (CompileWebKit.start): Ditto above. * Tools/Scripts/build-webkit: Avoid passing WK_VALIDATE_DEPENDENCIES. Canonical link: https://commits.webkit.org/252143@main
-
[WebAuthn] Should reject rp with empty id
https://bugs.webkit.org/show_bug.cgi?id=242091 rdar://90281653 Reviewed by Brent Fulgham. Not specifying an rp.id should default to the caller’s origin's effective domain, but empty / null values should be rejected per spec. https://www.w3.org/TR/webauthn-2/#sctn-createCredential Updated tests. * LayoutTests/http/wpt/webauthn/public-key-credential-create-failure.https-expected.txt: * LayoutTests/http/wpt/webauthn/public-key-credential-create-failure.https.html: * Source/WebCore/Modules/webauthn/AuthenticatorCoordinator.cpp: (WebCore::AuthenticatorCoordinator::create const): * Source/WebCore/Modules/webauthn/PublicKeyCredentialCreationOptions.h: * Source/WebCore/Modules/webauthn/fido/DeviceRequestConverter.cpp: (fido::convertRpEntityToCBOR): * Source/WebCore/Modules/webauthn/fido/U2fCommandConstructor.cpp: (fido::convertToU2fRegisterCommand): (fido::convertToU2fCheckOnlySignCommand): * Source/WebKit/UIProcess/API/Cocoa/_WKWebAuthenticationPanel.mm: (publicKeyCredentialRpEntity): * Source/WebKit/UIProcess/WebAuthentication/AuthenticatorManager.cpp: (WebKit::WebCore::getRpId): * Source/WebKit/UIProcess/WebAuthentication/Cocoa/LocalAuthenticator.mm: (WebKit::LocalAuthenticator::makeCredential): (WebKit::LocalAuthenticator::continueMakeCredentialAfterUserVerification): * Source/WebKit/UIProcess/WebAuthentication/Cocoa/WebAuthenticatorCoordinatorProxy.mm: (WebKit::configureRegistrationRequestContext): * Source/WebKit/UIProcess/WebAuthentication/fido/U2fAuthenticator.cpp: (WebKit::U2fAuthenticator::continueRegisterCommandAfterResponseReceived): * Tools/TestWebKitAPI/Tests/WebKitCocoa/_WKWebAuthenticationPanel.mm: (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/252142@main
-
[Alternate WebM Player] Add wireless playback support
https://bugs.webkit.org/show_bug.cgi?id=242321 Reviewed by Eric Carlson. * Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.h: * Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm: (WebCore::MediaPlayerPrivateWebM::setWirelessPlaybackTarget): (WebCore::MediaPlayerPrivateWebM::setShouldPlayToPlaybackTarget): (WebCore::MediaPlayerPrivateWebM::isCurrentPlaybackTargetWireless const): Canonical link: https://commits.webkit.org/252141@main
-
Wrong specificity of :has() pseudo-classes
https://bugs.webkit.org/show_bug.cgi?id=242328 Reviewed by Simon Fraser. * LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-specificity-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/selectors/has-specificity.html: * Source/WebCore/css/CSSSelector.cpp: (WebCore::simpleSelectorSpecificityInternal): We insert a fake scope pseudo-class to the relative :has() argument and that ends up incrementing the specificity as if it was a real pseudo-class. Fix by making its specificity 0. Canonical link: https://commits.webkit.org/252140@main
-
NetworkRTCUDPSocketCocoaConnections should check for nw_content_conte…
…xt_get_is_final when reading data https://bugs.webkit.org/show_bug.cgi?id=242306 rdar://94867381 Reviewed by Eric Carlson. * Source/WebKit/NetworkProcess/webrtc/NetworkRTCUDPSocketCocoa.mm: (WebKit::processUDPData): To prevent spinning in processUDPData in case of ENODATA, check whether the context is finalized. If so, exit. Canonical link: https://commits.webkit.org/252139@main
-
Switch test results from Trac to Github links
https://bugs.webkit.org/show_bug.cgi?id=242316 Reviewed by Jonathan Bedard. * LayoutTests/fast/harness/results.html: * ManualTests/resources/test-results-page.html: Canonical link: https://commits.webkit.org/252138@main
-
SharedVideoFrameWriter can hang on its semaphore in case of bad CVPix…
…elBuffers https://bugs.webkit.org/show_bug.cgi?id=242334 rdar://95326241 Reviewed by Eric Carlson. Before writing to shared memory, the writer is waiting on its counterpart reader to signal that memory can be written. This works fine except if the writer fails to write data, in which case the reader will not notify that memory can be written. Write failure for instance happens if data cannot be read from the pixel buffer. To fix this, the writer will signal its semaphore that it does not need to wait in case of write failure. * Source/WebKit/WebProcess/GPU/webrtc/SharedVideoFrame.cpp: (WebKit::SharedVideoFrameWriter::wait): (WebKit::SharedVideoFrameWriter::prepareWriting): (WebKit::SharedVideoFrameWriter::writeBuffer): (WebKit::SharedVideoFrameWriter::signalInCaseOfError): * Source/WebKit/WebProcess/GPU/webrtc/SharedVideoFrame.h: Canonical link: https://commits.webkit.org/252137@main
-
Unreviewed, reverting r251129@main.
https://bugs.webkit.org/show_bug.cgi?id=242340 broke build with LTO enabled Reverted changeset: "WebKitTestRunner shouldn't link object files of JavaScriptCore and WebCore" https://bugs.webkit.org/show_bug.cgi?id=241002 https://commits.webkit.org/251129@main Canonical link: https://commits.webkit.org/252136@main
-
Update debug assertion in RtpSenderBase::SetSsrc
https://bugs.webkit.org/show_bug.cgi?id=242339 Reviewed by Geoffrey Garen. * Source/ThirdParty/libwebrtc/Source/webrtc/pc/rtp_sender.cc: Canonical link: https://commits.webkit.org/252135@main
-
[FreeType] Add implementation for FontPlatformData::variationAxes()
https://bugs.webkit.org/show_bug.cgi?id=242337 Reviewed by Michael Catanzaro. This will make font variation values to be shown in the inspector. * Source/WebCore/platform/graphics/FontPlatformData.cpp: * Source/WebCore/platform/graphics/freetype/FontCacheFreeType.cpp: (WebCore::fontNameMapName): Helper to get a name from a font name table. (WebCore::defaultVariationValues): Make it public and add ShouldLocalizeAxisNames parameter. (WebCore::buildVariationSettings): Pass ShouldLocalizeAxisNames::No to defaultVariationValues. * Source/WebCore/platform/graphics/freetype/FontCacheFreeType.h: * Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp: (WebCore::FontPlatformData::variationAxes const): Canonical link: https://commits.webkit.org/252134@main
-
Web Inspector: Styles: Pop-up for resolved CSS variable values is inc…
…onsistent with other pop-ups https://bugs.webkit.org/show_bug.cgi?id=242315 Reviewed by Patrick Angle. Make the pop-up for `WI.InlineSwatch.Type.Variable` consistent with other pop-ups: - remove animation of dimensions - remove unnecessary height from container * Source/WebInspectorUI/UserInterface/Views/InlineSwatch.css: (.inline-swatch-variable-popover .CodeMirror-sizer): The CodeMirror document `min-height` is set as an inline style in exact units based on an internal calculation of its contents. CodeMirror _should have_ respected the `height: auto;` of its host element and grow appropriately: https://codemirror.net/5/demo/resize.html This didn't happen. Other solutions suggested by the CodeMirror documentation didn't work in this context either. As a fix, we resort to deliberately overwrite the inline style with `min-height: fit-content !important` to force the CodeMirror document to size itself accordingly. * Source/WebInspectorUI/UserInterface/Views/InlineSwatch.js: Canonical link: https://commits.webkit.org/252133@main
-
SVG load external file via <use> ignores ServiceWorker when offline
https://bugs.webkit.org/show_bug.cgi?id=194948 rdar://problem/96318522 Reviewed by Alex Christensen. Change destination from document to image for SVGUseElement loads. This will make sure we reuse the document service worker for these loads. image is the destination used by Chrome as well (Firefox is using the empty string), as the SVG spec is not integrated with fetch spec yet. * LayoutTests/http/wpt/service-workers/use-element-worker.js: Added. * LayoutTests/http/wpt/service-workers/use-element.https-expected.txt: Added. * LayoutTests/http/wpt/service-workers/use-element.https.html: Added. * Source/WebCore/svg/SVGUseElement.cpp: Canonical link: https://commits.webkit.org/252132@main
-
[GStreamer][WebRTC] Additional data-channel improvements and initial …
…layout tests coverage https://bugs.webkit.org/show_bug.cgi?id=242177 Reviewed by Xabier Rodriguez-Calvar. This patch improves logging support in the data-channel handler, cleans up the data-channel creation code, bringing it on-par with the libwebrtc backend and includes various bugfixes needed for layout tests compliance. The most significant feature gaps in the data-channel handler are now: - Incomplete stats reporting - DTLS 1.2 certificates support missing - ICE candidates filtering unimplemented * LayoutTests/platform/glib/TestExpectations: * LayoutTests/webrtc/datachannel/bufferedAmountLowThreshold.html: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp: (WebCore::GStreamerDataChannelHandler::GStreamerDataChannelHandler): (WebCore::GStreamerDataChannelHandler::~GStreamerDataChannelHandler): (WebCore::GStreamerDataChannelHandler::dataChannelInit const): (WebCore::GStreamerDataChannelHandler::label const): (WebCore::GStreamerDataChannelHandler::setClient): (WebCore::GStreamerDataChannelHandler::sendStringData): (WebCore::GStreamerDataChannelHandler::sendRawData): (WebCore::GStreamerDataChannelHandler::close): (WebCore::GStreamerDataChannelHandler::checkState): (WebCore::GStreamerDataChannelHandler::bufferedAmountChanged): (WebCore::GStreamerDataChannelHandler::onMessageData): (WebCore::GStreamerDataChannelHandler::onMessageString): (WebCore::GStreamerDataChannelHandler::onClose): (WebCore::GStreamerDataChannelHandler::createDataChannelEvent): Deleted. * Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.h: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp: (WebCore::GStreamerMediaEndpoint::initializePipeline): (WebCore::GStreamerMediaEndpoint::prepareDataChannel): (WebCore::GStreamerMediaEndpoint::findOrCreateIncomingChannelHandler): (WebCore::GStreamerMediaEndpoint::onDataChannel): (WebCore::GStreamerMediaEndpoint::close): (WebCore::GStreamerMediaEndpoint::~GStreamerMediaEndpoint): Deleted. * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.h: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerSctpTransportBackend.cpp: (WebCore::GStreamerSctpTransportBackend::GStreamerSctpTransportBackend): (WebCore::GStreamerSctpTransportBackend::stateChanged): Canonical link: https://commits.webkit.org/252131@main
-
Change contributor status of Nikolas Zimmermann from committer to rev…
…iewer https://bugs.webkit.org/show_bug.cgi?id=242335 Unreviewed change. * metadata/contributors.json: Canonical link: https://commits.webkit.org/252130@main
-
[FreeType] Add an implementation for FontPlatformData::familyName()
https://bugs.webkit.org/show_bug.cgi?id=242310 Reviewed by Michael Catanzaro. This will make the font name to be shown in the inspector. * Source/WebCore/platform/graphics/FontPlatformData.cpp: * Source/WebCore/platform/graphics/freetype/FontPlatformDataFreeType.cpp: (WebCore::FontPlatformData::familyName const): Canonical link: https://commits.webkit.org/252129@main
-
[Mac] svg/animations/smil-leak-list-property-instances.svg is a flaky…
… failure https://bugs.webkit.org/show_bug.cgi?id=214574 Reviewed by Darin Adler. The conservative GC may not reclaim all unreachable nodes. The test should create and remove elements repeatedly and check the number of live nodes loosely. * LayoutTests/platform/mac/TestExpectations: * LayoutTests/platform/win/TestExpectations: * LayoutTests/svg/animations/smil-leak-list-property-instances.svg: Canonical link: https://commits.webkit.org/252128@main
-
AffineTranform variables should be able to be constexpr
https://bugs.webkit.org/show_bug.cgi?id=242323 Reviewed by Cameron McCormack. If we make the AffineTransform constructor constexpr by moving it into the header, it will then be possible to have AffineTransform variables be constexpr. The style checker fails because it says the parameter names in AffineTransform(double a, double b, double c, double d, double e, double f) are redundant. However, these names are terms-of-art for the values in an affine transformation matrix. * Source/WebCore/platform/graphics/SourceBrush.cpp: (WebCore::SourceBrush::gradientSpaceTransform const): * Source/WebCore/platform/graphics/coretext/FontCascadeCoreText.cpp: (WebCore::rotateLeftTransform): * Source/WebCore/platform/graphics/transforms/AffineTransform.cpp: (WebCore::AffineTransform::AffineTransform): Deleted. * Source/WebCore/platform/graphics/transforms/AffineTransform.h: (WebCore::AffineTransform::AffineTransform): * Source/WebCore/rendering/RenderObject.cpp: (WebCore::RenderObject::localTransform const): (WebCore::RenderObject::localToParentTransform const): * Source/WebCore/rendering/svg/SVGRenderSupport.h: * Source/WebCore/svg/properties/SVGAnimationAdditiveListFunctionImpl.h: (WebCore::SVGAnimationTransformListFunction::animate): * Tools/TestWebKitAPI/Tests/WebCore/AffineTransform.cpp: (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/252127@main
Commits on Jul 4, 2022
-
[LFC][FFC] Populate canUseForFlexLayout with unsupported styles and c…
…ontent https://bugs.webkit.org/show_bug.cgi?id=242304 Reviewed by Antti Koivisto. Most of these require proper integration with the rest of the rendering code. * Source/WebCore/layout/integration/LayoutIntegrationCoverage.cpp: (WebCore::LayoutIntegration::canUseForFlexLayout): * Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp: (WebCore::LayoutIntegration::FlexLayout::layout): Canonical link: https://commits.webkit.org/252126@main
-
[JSC] testair: testZDefOfSpillSlotWithOffsetNeedingToBeMaterializedIn…
…ARegister incorrectly passes https://bugs.webkit.org/show_bug.cgi?id=242254 Reviewed by Yusuke Suzuki. Sorry for monster commit title, but as described: This test (AIUI) tries to stress the spill generation code but on O1, when using the linear scan allocator, the StackSlots that it directly generates are ignored by the allocation pass since they do not have an associated Tmp. They will all be allocated to alias [FP]. Enabling `airLinearScanVerbose` shows this, after the linear scan pass finishes: Air Stack slots: Air spill0: byteSize = 8, offsetFromFP = 0, kind = Spill Air spill1: byteSize = 8, offsetFromFP = 0, kind = Spill Air spill2: byteSize = 8, offsetFromFP = 0, kind = Spill Air spill3: byteSize = 8, offsetFromFP = 0, kind = Spill Air spill4: byteSize = 8, offsetFromFP = 0, kind = Spill Air spill5: byteSize = 8, offsetFromFP = 0, kind = Spill Air spill6: byteSize = 8, offsetFromFP = 0, kind = Spill ... Unfortunately, this seems to have not been noticed since, even though, on e.g. Intel, these will all alias the base pointer (and each other), presumably the test harness does not use the base pointer after executing the generated code, but before restoring it. Also, the test as originally written does not verify that the slots do not alias each other, since they are all expected to match (they are assigned to the argument passed to the translated code) This patch addresses both points by: - Change the test structure so it will break if the slots allocated are aliased, by adding the numbers from zero to `(the number of slots used) - 1` - Generate a large number of simultaneously-live `Tmp`s, instead of directly generating new stack slots. Note that doing only the first of these causes the test to fail its assertion (on darwin/arm64), since the stack slots are still ignored by the linear scan allocator. * Source/JavaScriptCore/b3/air/testair.cpp: Canonical link: https://commits.webkit.org/252125@main
-
[LFC][FFC] Flex item's min/max should include margin, border and padding
https://bugs.webkit.org/show_bug.cgi?id=242302 Reviewed by Antti Koivisto. * Source/WebCore/layout/integration/flex/LayoutIntegrationFlexLayout.cpp: (WebCore::LayoutIntegration::FlexLayout::updateFlexItemDimensions): Canonical link: https://commits.webkit.org/252124@main
-
[Alternate WebM Player] Allow device sleep during playback
https://bugs.webkit.org/show_bug.cgi?id=242317 Reviewed by Jer Noble. Currently the AVSampleBufferDisplayLayer will prevent the display from sleeping by default. However, in order to improve battery life on devices, the display should be able to sleep regardless of whether or not a video is playing within the layer. * Source/WebCore/platform/graphics/cocoa/MediaPlayerPrivateWebM.mm: (WebCore::MediaPlayerPrivateWebM::ensureLayer): Canonical link: https://commits.webkit.org/252123@main
-
[LFC][FFC] Add flex-basis support for column direction
https://bugs.webkit.org/show_bug.cgi?id=242300 Reviewed by Antti Koivisto. Move flex-basis resolving out of flex layout to where we convert visual values to logical. * Source/WebCore/layout/formattingContexts/flex/FlexFormattingContext.cpp: (WebCore::Layout::FlexFormattingContext::convertFlexItemsToLogicalSpace): * Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp: (WebCore::Layout::FlexLayout::computeLogicalWidthForFlexItems): Canonical link: https://commits.webkit.org/252122@main
-
[JSC] Use memchr in WTF::find for long strings
https://bugs.webkit.org/show_bug.cgi?id=242305 Reviewed by Darin Adler. For long strings, memchr is massively faster than normal for-loop-based WTF::find. This patch upstreams a fast path from Jarred's bun. If the given string is 16 or longer, we use memchr if the input is LChar. This can offer up to 13x performance improvement for long strings. ToT Patched string-index-of-10000001-mid 2205.4979+-4.2592 ^ 221.0630+-0.8919 ^ definitely 9.9768x faster string-index-of-1001-404 0.9214+-0.0703 ^ 0.5419+-0.0703 ^ definitely 1.7002x faster string-index-of-101-mid 0.4619+-0.0156 ? 0.5250+-0.0745 ? might be 1.1365x slower string-index-of-11-404 0.4681+-0.0378 ? 0.5084+-0.0671 ? might be 1.0862x slower string-index-of-100001-end 43.2624+-0.2025 ^ 3.4478+-0.0448 ^ definitely 12.5478x faster string-index-of-1001-beg 0.5792+-0.1128 0.5020+-0.0307 might be 1.1537x faster string-index-of-1000001-mid 219.6133+-0.6721 ^ 21.7715+-0.1868 ^ definitely 10.0872x faster string-index-of-11-beg 0.5390+-0.0957 0.4938+-0.0488 might be 1.0916x faster string-index-of-100001-404 43.1607+-0.1565 ^ 3.4266+-0.0339 ^ definitely 12.5959x faster string-index-of-11-end 0.5703+-0.1035 0.4993+-0.0671 might be 1.1424x faster string-index-of-100001-beg 1.4254+-0.0285 ? 1.4297+-0.0293 ? string-index-of-1001-end 0.8898+-0.0155 ^ 0.5397+-0.0434 ^ definitely 1.6486x faster string-index-of-10001-mid 2.6381+-0.0128 ^ 0.6968+-0.0194 ^ definitely 3.7859x faster string-index-of-100001-mid 22.3904+-0.0908 ^ 2.4405+-0.0278 ^ definitely 9.1745x faster string-index-of-10001-beg 0.5799+-0.0275 ? 0.6409+-0.0848 ? might be 1.1052x slower string-index-of-1000001-end 429.8451+-1.0909 ^ 33.0243+-0.1489 ^ definitely 13.0160x faster string-index-of-10000001-end 4311.6106+-8.5017 ^ 342.4604+-2.5696 ^ definitely 12.5901x faster string-index-of-10001-404 4.7512+-0.0329 ^ 0.8011+-0.0209 ^ definitely 5.9309x faster string-index-of-101-end 0.4812+-0.0131 ? 0.4917+-0.0246 ? might be 1.0220x slower string-index-of-101-404 0.5520+-0.0778 0.5100+-0.0671 might be 1.0824x faster string-index-of-1000001-beg 10.0429+-0.0882 ? 10.0694+-0.1024 ? string-index-of-11-mid 0.4578+-0.0236 ? 0.5159+-0.0519 ? might be 1.1271x slower string-index-of-10000001-404 4318.2034+-9.4519 ^ 343.7710+-2.7918 ^ definitely 12.5613x faster string-index-of-1001-mid 0.6977+-0.0197 0.6024+-0.1121 might be 1.1581x faster string-index-of-10001-end 4.7425+-0.0291 ^ 0.8022+-0.0152 ^ definitely 5.9117x faster string-index-of-101-beg 0.5055+-0.0720 ? 0.5122+-0.0789 ? might be 1.0132x slower string-index-of-1000001-404 428.1418+-0.6700 ^ 33.0665+-0.1926 ^ definitely 12.9479x faster string-index-of-10000001-beg 105.1998+-2.6163 102.6464+-1.9531 might be 1.0249x faster <geometric> 7.5209+-0.0853 ^ 2.7424+-0.0300 ^ definitely 2.7425x faster * JSTests/microbenchmarks/string-index-of-10000001-404.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-10000001-beg.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-10000001-end.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-10000001-mid.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-1000001-404.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-1000001-beg.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-1000001-end.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-1000001-mid.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-100001-404.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-100001-beg.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-100001-end.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-100001-mid.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-10001-404.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-10001-beg.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-10001-end.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-10001-mid.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-1001-404.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-1001-beg.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-1001-end.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-1001-mid.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-101-404.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-101-beg.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-101-end.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-101-mid.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-11-404.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-11-beg.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-11-end.js: Added. (bench): (target): (forRepeatCount): (all): * JSTests/microbenchmarks/string-index-of-11-mid.js: Added. (bench): (target): (forRepeatCount): (all): * Source/WTF/wtf/text/StringCommon.h: (WTF::find): Canonical link: https://commits.webkit.org/252121@main
-
[LFC][FFC] Add support for overconstrained alignment cases
https://bugs.webkit.org/show_bug.cgi?id=242299 Reviewed by Antti Koivisto. (This is in an overconstrained context when the content is wider than the available space.) 1. gap value should never be negative (i.e. no overlapping flex items) 2. since there's no gap between the flex items, offset should be computed as if there was one wide flex item. * Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp: (WebCore::Layout::FlexLayout::justifyFlexItems): Canonical link: https://commits.webkit.org/252120@main
-
[CSS Container Queries] Rename container-type value 'none' to 'normal'
https://bugs.webkit.org/show_bug.cgi?id=242311 <rdar://96397509> Unreviewed followup. * LayoutTests/platform/mac-wk1/TestExpectations: Skip some WPTs on WK1 (they were updated to be async and don't work anymore). Canonical link: https://commits.webkit.org/252119@main
-
[iOS] Mail occasionally crashes under WebKit: API::Attachment::enclos…
…ingImageData() https://bugs.webkit.org/show_bug.cgi?id=242251 rdar://96131691 Reviewed by Chris Dumez. The QuickLook attachment thumbnailing codepath, which uses `WKQLThumbnailLoadOperation` to request an icon image for API-backed attachments, reads data out of the file wrapper from a background thread. If anything simultaneously tries to access the file wrapper's content from the main thread, the file wrapper's cached data blob will be left in a bad state (smashed, or overreleased, etc.), potentially causing Mail to crash. After the changes in 250772@main, we now automatically trigger QuickLook thumbnail requests when inserting attachments via the pasteboard (i.e. drag-and-drop or copy-paste), at the same time as we update attachment attributes (calling `enclosingImageData()` in the process on the main thread). As a result, we hit the thread safety issue and crash described above much more frequently, resulting in various API-attachment-related crashes that all occur when the main thread tries to read from the file wrapper while QuickLook thumbnail operation queue is also active. To fix this, we add a compile-time guard to ensure that access to each attachment's `m_fileWrapper` is guarded behind a `m_fileWrapperLock`; we additionally refactor the code so that instead of exposing a `Attachment::fileWrapper()` getter method, we have `Attachment::doWithFileWrapper()`, which takes a C++ lambda and calls the lambda with the `NSFileWrapper`, after grabbing the lock. * Source/WebKit/UIProcess/API/APIAttachment.cpp: (API::Attachment::invalidate): * Source/WebKit/UIProcess/API/APIAttachment.h: * Source/WebKit/UIProcess/API/Cocoa/APIAttachmentCocoa.mm: (API::Attachment::setFileWrapper): (API::Attachment::doWithFileWrapper const): Replaces the `fileWrapper()` getter. (API::Attachment::fileName const): (API::Attachment::fileSizeForDisplay const): (API::Attachment::enclosingImageData const): (API::Attachment::enclosingImageNSData const): (API::Attachment::isEmpty const): (API::Attachment::createSerializedRepresentation const): (API::Attachment::fileWrapper const): Deleted. Adopt `doWithFileWrapper` everywhere we currently use either `m_fileWrapper` directly, or the now- deleted `fileWrapper()` getter. (API::Attachment::invalidateGeneratedFileWrapper): Deleted. (API::Attachment::setFileWrapperGenerator): Deleted. Delete support for delayed file wrapper generation; this was initially introduced in r238538 for Apple pencil support in Mail, but was ultimately implemented using an alternate approach. * Source/WebKit/UIProcess/API/Cocoa/WKWebView.mm: (-[WKWebView _insertAttachmentWithFileWrapper:contentType:completion:]): * Source/WebKit/UIProcess/API/Cocoa/_WKAttachment.mm: (-[_WKAttachmentInfo initWithAttachment:]): Make this take an `API::Attachment` instead of a file wrapper (and other attachment metadata) as separate arguments. This allows us to use `doWithFileWrapper()` to access the attachment's file wrapper behind a lock. (-[_WKAttachmentInfo data]): (-[_WKAttachmentInfo name]): (-[_WKAttachmentInfo fileWrapper]): (-[_WKAttachment info]): (-[_WKAttachmentInfo initWithFileWrapper:filePath:mimeType:utiType:]): Deleted. * Source/WebKit/UIProcess/Cocoa/WebPageProxyCocoa.mm: (WebKit::WebPageProxy::platformCloneAttachment): (WebKit::WebPageProxy::requestThumbnail): (WebKit::WebPageProxy::requestThumbnailWithPath): (WebKit::WebPageProxy::requestThumbnailWithOperation): Deleted. (WebKit::WebPageProxy::requestThumbnailWithFileWrapper): Deleted. Drive-by refactoring: rename a couple of methods to the more succinct `requestThumbnail()`, relying on C++ method overloading. * Source/WebKit/UIProcess/Cocoa/WebViewImpl.mm: (WebKit::WebViewImpl::writeToURLForFilePromiseProvider): * Source/WebKit/UIProcess/QuickLookThumbnailLoader.h: * Source/WebKit/UIProcess/QuickLookThumbnailLoader.mm: (-[WKQLThumbnailLoadOperation initWithAttachment:identifier:]): Make this take an `API::Attachment` instead of taking the attachment's file wrapper directly. This allows us to use `doWithFileWrapper` to read from the file wrapper when generating the attachment thumbnail. (-[WKQLThumbnailLoadOperation start]): * Source/WebKit/UIProcess/WebPageProxy.cpp: (WebKit::WebPageProxy::requestAttachmentIcon): (WebKit::WebPageProxy::updateAttachmentAttributes): (WebKit::WebPageProxy::registerAttachmentIdentifierFromFilePath): (WebKit::WebPageProxy::registerAttachmentsFromSerializedData): * Source/WebKit/UIProcess/WebPageProxy.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _prepareToDragPromisedAttachment:]): (createItemProvider): * Tools/TestWebKitAPI/Tests/WebKitCocoa/WKAttachmentTests.mm: (TestWebKitAPI::TEST): Drive-by fix: make `WKAttachmentTestsMac.DraggingAttachmentBackedImagePreservesRangedSelection` pass when running API tests locally, when the TestWebKitAPI window is not ordered to the front. When running this test from command line from Terminal, the API test's window ends up behind the terminal window, which causes the drag session to never end. Canonical link: https://commits.webkit.org/252118@main
-
[LFC][FFC] ContentPosition::Left/Start/Right/End are non-logical alig…
…nment values https://bugs.webkit.org/show_bug.cgi?id=242298 Reviewed by Antti Koivisto. Use the visual "edges" when computing offset values for such non-logical alignments. * Source/WebCore/layout/formattingContexts/flex/FlexLayout.cpp: (WebCore::Layout::FlexLayout::justifyFlexItems): Canonical link: https://commits.webkit.org/252117@main
-
[CSS Container Queries] Rename container-type value 'none' to 'normal'
https://bugs.webkit.org/show_bug.cgi?id=242311 Reviewed by Alan Bujtas. Implement w3c/csswg-drafts#7402 Also exclude some values from container-name (per https://drafts.csswg.org/css-contain-3/#container-name). Also re-import container query WPT tests. * LayoutTests/imported/w3c/resources/import-expectations.json: * LayoutTests/imported/w3c/resources/resource-files.json: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-parsing-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-parsing.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-serialization-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-serialization.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-style-serialization-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/at-container-style-serialization.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/calc-evaluation-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/calc-evaluation.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-001.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-002.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-003.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/canvas-as-container-004.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/column-spanner-in-container-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/column-spanner-in-container.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-computed-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-computed.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-inheritance-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-inheritance.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-parsing-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-name-parsing.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-parsing-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-parsing.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-size-nested-invalidation-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-size-nested-invalidation.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-type-computed-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-type-computed.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-type-parsing-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-type-parsing.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-in-at-container-dynamic-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-in-at-container-dynamic.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-in-at-container-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-in-at-container-fallback-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-in-at-container-fallback.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-in-at-container.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-invalidation-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/container-units-invalidation.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/crashtests/columns-in-table-002-crash.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/crashtests/w3c-import.log: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/font-relative-calc-dynamic-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/font-relative-calc-dynamic.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/font-relative-units-dynamic.html: * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/grid-container-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/grid-container.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/grid-item-container-expected.txt: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/grid-item-container.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-contain/container-queries/w3c-import.log: * Source/WebCore/css/CSSComputedStyleDeclaration.cpp: (WebCore::hasValidStyleForProperty): (WebCore::ComputedStyleExtractor::valueForPropertyInStyle): * Source/WebCore/css/CSSPrimitiveValueMappings.h: (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): (WebCore::CSSPrimitiveValue::operator ContainerType const): * Source/WebCore/css/CSSValueKeywords.in: * Source/WebCore/css/StyleProperties.cpp: (WebCore::isCSSWideValueKeyword): Drive-by fix. (WebCore::isNormalValue): (WebCore::StyleProperties::getPropertyValue const): * Source/WebCore/css/parser/CSSParserFastPaths.cpp: (WebCore::CSSParserFastPaths::isValidKeywordPropertyAndValue): * Source/WebCore/css/parser/CSSPropertyParserHelpers.cpp: (WebCore::CSSPropertyParserHelpers::consumeSingleContainerName): * Source/WebCore/dom/Document.cpp: (WebCore::Document::updateLayoutIfDimensionsOutOfDate): * Source/WebCore/rendering/RenderBox.cpp: (WebCore::RenderBox::willBeDestroyed): (WebCore::RenderBox::styleWillChange): * Source/WebCore/rendering/style/RenderStyle.h: (WebCore::RenderStyle::initialContainerType): * Source/WebCore/rendering/style/RenderStyleConstants.h: * Source/WebCore/rendering/style/StyleRareNonInheritedData.cpp: (WebCore::StyleRareNonInheritedData::effectiveContainment const): * Source/WebCore/style/ContainerQueryEvaluator.cpp: (WebCore::Style::ContainerQueryEvaluator::selectContainer): (WebCore::Style::ContainerQueryEvaluator::evaluateSizeFeature const): * Source/WebCore/style/StyleScope.cpp: (WebCore::Style::Scope::updateQueryContainerState): * Source/WebCore/style/StyleSharingResolver.cpp: (WebCore::Style::SharingResolver::canShareStyleWithElement const): * Source/WebCore/style/StyleTreeResolver.cpp: (WebCore::Style::TreeResolver::pushParent): (WebCore::Style::TreeResolver::resolveComposedTree): (WebCore::Style::TreeResolver::determineQueryContainerAction): Canonical link: https://commits.webkit.org/252116@main
-
https://bugs.webkit.org/show_bug.cgi?id=242236 Reviewed by Aakash Jain. The softfp ARMv7 bot has been kept around to ensure that things would work for users that are depend on vendor libraries that require the softfp ABI. Recent changes broke softfp and we're no longer aware of any users for it. Bug 242172 drops JSC support for the softfp ABI; this bug is about removing the corresponding buildbot from build.webkit.org. * Tools/CISupport/build-webkit-org/config.json: * Tools/CISupport/build-webkit-org/factories_unittest.py: (TestExpectedBuildSteps): * Tools/CISupport/build-webkit-org/public_html/dashboard/Scripts/WebKitBuildbot.js: (WebKitBuildbot): Canonical link: https://commits.webkit.org/252115@main
-
[resultsdb] Expose reported flakiness information in the UI
https://bugs.webkit.org/show_bug.cgi?id=238809 Reviewed by Jonathan Bedard. Aggregate the number of flaky tests in an upload. In the suites view, provide a 'Show number of flaky tests' toggle. In the search view, provide a 'Show test flakiness' toggle. Make the per-dot tag into an array of information. Toggling all possible tag values on at once will certainly result in text overlap). * Tools/Scripts/libraries/resultsdbpy/resultsdbpy/model/suite_context.py: (SuiteContext.register): (SuiteContext.register.callback): * Tools/Scripts/libraries/resultsdbpy/resultsdbpy/view/static/js/timeline.js: (TimelineFromEndpoint.const.options.prototype.renderFactory): (result.div.label.Show.test.flakiness.label.label): (result.div.label.Number.of.flakes.label.label): * Tools/Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/search.html: * Tools/Scripts/libraries/resultsdbpy/resultsdbpy/view/templates/suite_results.html: Canonical link: https://commits.webkit.org/252114@main
-
[GStreamer] Build failure with ENABLE_MEDIA_CAPTURE=ON
https://bugs.webkit.org/show_bug.cgi?id=242309 Reviewed by Philippe Normand. * Source/WebKit/WebProcess/InjectedBundle/API/gtk/DOM/WebKitDOMHTMLInputElement.cpp: (webkit_dom_html_input_element_set_capture_type): Switch from outdated usage of WTF::String to WTF::AtomString. Canonical link: https://commits.webkit.org/252113@main
-
[GStreamer][VideoCapture] fix getVideoSizeAndFormatFromCaps/getVideoR…
…esolutionFromCaps for video/x-raw mime-type caps without format https://bugs.webkit.org/show_bug.cgi?id=242290 Reviewed by Philippe Normand. Fixes: 0:00:02.001539663 1169 0x5577d2b74810 DEBUG video-info video-info.c:406:gst_video_info_from_caps: parsing caps video/x-raw 0:00:02.001842884 1169 0x5577d2b74810 ERROR video-info video-info.c:546:gst_video_info_from_caps: no format given 0:00:02.002197896 1169 0x5577d2b74810 INFO webkitvideocapturer GStreamerVideoCapturer.cpp:136:setSize: Setting size to 640x480 * Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp: (WebCore::getVideoSizeAndFormatFromCaps): (WebCore::getVideoResolutionFromCaps): Canonical link: https://commits.webkit.org/252112@main