Commits
main
Name already in use
Commits on Jun 3, 2023
-
Fix the build with older SDKs and newer Xcodes
https://bugs.webkit.org/show_bug.cgi?id=257662 rdar://110185235 Reviewed by Elliott Williams. * Source/JavaScriptCore/Configurations/JavaScriptCore.xcconfig: It turns out this new TAPI flag is tied to the SDK, not the Xcode, so change how we conditionalize it, in order to fix the build. Canonical link: https://commits.webkit.org/264850@main
-
Take overflow: clip into account when computing table overflow
https://bugs.webkit.org/show_bug.cgi?id=251909 Reviewed by Alan Baradlay. When computing table overflow overflow: clip should be treated like overflow: hidden: https://github.com/w3c/csswg-drafts/pull/7492/files * LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/overflow-clip-rounded-table-expected.html: Added. * LayoutTests/imported/w3c/web-platform-tests/css/css-overflow/overflow-clip-rounded-table.html: Added. * Source/WebCore/style/StyleAdjuster.cpp: (WebCore::Style::Adjuster::adjust const): Canonical link: https://commits.webkit.org/264849@main
-
Support move-only types in IPC messages.in, and use it for StreamServ…
…erConnection::Handle. https://bugs.webkit.org/show_bug.cgi?id=257528 Reviewed by Kimmo Kinnunen. Adds basic support to messages.py for creating rvalue references for types that are move only, and using WTFMove. Makes StreamServerConnection::Handle move-only, since we never want to copy these (and the underlying connection state depends on their lifetime). * Source/WebKit/Platform/IPC/StreamServerConnection.h: (IPC::StreamServerConnection::Handle::encode): (IPC::StreamServerConnection::Handle::decode): (IPC::StreamServerConnection::Handle::encode const): Deleted. * Source/WebKit/Scripts/webkit/messages.py: (types_that_must_be_moved): (function_parameter_type): (arguments_constructor_name): (message_to_struct_declaration): * Source/WebKit/Scripts/webkit/tests/TestWithCVPixelBufferMessages.h: (Messages::TestWithCVPixelBuffer::SendCVPixelBuffer::arguments): (Messages::TestWithCVPixelBuffer::ReceiveCVPixelBuffer::arguments): (Messages::TestWithCVPixelBuffer::SendCVPixelBuffer::arguments const): Deleted. (Messages::TestWithCVPixelBuffer::ReceiveCVPixelBuffer::arguments const): Deleted. * Source/WebKit/Scripts/webkit/tests/TestWithIfMessageMessages.h: (Messages::TestWithIfMessage::LoadURL::arguments): (Messages::TestWithIfMessage::LoadURL::arguments const): Deleted. * Source/WebKit/Scripts/webkit/tests/TestWithImageDataMessages.h: (Messages::TestWithImageData::SendImageData::arguments): (Messages::TestWithImageData::ReceiveImageData::arguments): (Messages::TestWithImageData::SendImageData::arguments const): Deleted. (Messages::TestWithImageData::ReceiveImageData::arguments const): Deleted. * Source/WebKit/Scripts/webkit/tests/TestWithLegacyReceiverMessages.h: (Messages::TestWithLegacyReceiver::LoadURL::arguments): (Messages::TestWithLegacyReceiver::LoadSomething::arguments): (Messages::TestWithLegacyReceiver::TouchEvent::arguments): (Messages::TestWithLegacyReceiver::AddEvent::arguments): (Messages::TestWithLegacyReceiver::LoadSomethingElse::arguments): (Messages::TestWithLegacyReceiver::DidReceivePolicyDecision::arguments): (Messages::TestWithLegacyReceiver::Close::arguments): (Messages::TestWithLegacyReceiver::PreferencesDidChange::arguments): (Messages::TestWithLegacyReceiver::SendDoubleAndFloat::arguments): (Messages::TestWithLegacyReceiver::SendInts::arguments): (Messages::TestWithLegacyReceiver::CreatePlugin::arguments): (Messages::TestWithLegacyReceiver::RunJavaScriptAlert::arguments): (Messages::TestWithLegacyReceiver::GetPlugins::GetPlugins): (Messages::TestWithLegacyReceiver::GetPlugins::arguments): (Messages::TestWithLegacyReceiver::GetPluginProcessConnection::arguments): (Messages::TestWithLegacyReceiver::TestMultipleAttributes::arguments): (Messages::TestWithLegacyReceiver::TestParameterAttributes::arguments): (Messages::TestWithLegacyReceiver::TemplateTest::arguments): (Messages::TestWithLegacyReceiver::SetVideoLayerID::arguments): (Messages::TestWithLegacyReceiver::DidCreateWebProcessConnection::arguments): (Messages::TestWithLegacyReceiver::InterpretKeyEvent::arguments): (Messages::TestWithLegacyReceiver::DeprecatedOperation::arguments): (Messages::TestWithLegacyReceiver::ExperimentalOperation::arguments): (Messages::TestWithLegacyReceiver::LoadURL::arguments const): Deleted. (Messages::TestWithLegacyReceiver::LoadSomething::arguments const): Deleted. (Messages::TestWithLegacyReceiver::TouchEvent::arguments const): Deleted. (Messages::TestWithLegacyReceiver::AddEvent::arguments const): Deleted. (Messages::TestWithLegacyReceiver::LoadSomethingElse::arguments const): Deleted. (Messages::TestWithLegacyReceiver::DidReceivePolicyDecision::arguments const): Deleted. (Messages::TestWithLegacyReceiver::Close::arguments const): Deleted. (Messages::TestWithLegacyReceiver::PreferencesDidChange::arguments const): Deleted. (Messages::TestWithLegacyReceiver::SendDoubleAndFloat::arguments const): Deleted. (Messages::TestWithLegacyReceiver::SendInts::arguments const): Deleted. (Messages::TestWithLegacyReceiver::CreatePlugin::arguments const): Deleted. (Messages::TestWithLegacyReceiver::RunJavaScriptAlert::arguments const): Deleted. (Messages::TestWithLegacyReceiver::GetPlugins::arguments const): Deleted. (Messages::TestWithLegacyReceiver::GetPluginProcessConnection::arguments const): Deleted. (Messages::TestWithLegacyReceiver::TestMultipleAttributes::arguments const): Deleted. (Messages::TestWithLegacyReceiver::TestParameterAttributes::arguments const): Deleted. (Messages::TestWithLegacyReceiver::TemplateTest::arguments const): Deleted. (Messages::TestWithLegacyReceiver::SetVideoLayerID::arguments const): Deleted. (Messages::TestWithLegacyReceiver::DidCreateWebProcessConnection::arguments const): Deleted. (Messages::TestWithLegacyReceiver::InterpretKeyEvent::arguments const): Deleted. (Messages::TestWithLegacyReceiver::DeprecatedOperation::arguments const): Deleted. (Messages::TestWithLegacyReceiver::ExperimentalOperation::arguments const): Deleted. * Source/WebKit/Scripts/webkit/tests/TestWithSemaphoreMessages.h: (Messages::TestWithSemaphore::SendSemaphore::arguments): (Messages::TestWithSemaphore::ReceiveSemaphore::arguments): (Messages::TestWithSemaphore::SendSemaphore::arguments const): Deleted. (Messages::TestWithSemaphore::ReceiveSemaphore::arguments const): Deleted. * Source/WebKit/Scripts/webkit/tests/TestWithStreamBatchedMessages.h: (Messages::TestWithStreamBatched::SendString::arguments): (Messages::TestWithStreamBatched::SendString::arguments const): Deleted. * Source/WebKit/Scripts/webkit/tests/TestWithStreamBufferMessages.h: (Messages::TestWithStreamBuffer::SendStreamBuffer::arguments): (Messages::TestWithStreamBuffer::SendStreamBuffer::arguments const): Deleted. * Source/WebKit/Scripts/webkit/tests/TestWithStreamMessages.h: (Messages::TestWithStream::SendString::arguments): (Messages::TestWithStream::SendStringAsync::arguments): (Messages::TestWithStream::SendStringSync::arguments): (Messages::TestWithStream::CallWithIdentifier::arguments): (Messages::TestWithStream::SendMachSendRight::arguments): (Messages::TestWithStream::ReceiveMachSendRight::arguments): (Messages::TestWithStream::SendAndReceiveMachSendRight::arguments): (Messages::TestWithStream::SendString::arguments const): Deleted. (Messages::TestWithStream::SendStringAsync::arguments const): Deleted. (Messages::TestWithStream::SendStringSync::arguments const): Deleted. (Messages::TestWithStream::CallWithIdentifier::arguments const): Deleted. (Messages::TestWithStream::SendMachSendRight::arguments const): Deleted. (Messages::TestWithStream::ReceiveMachSendRight::arguments const): Deleted. (Messages::TestWithStream::SendAndReceiveMachSendRight::arguments const): Deleted. * Source/WebKit/Scripts/webkit/tests/TestWithSuperclassMessages.h: (Messages::TestWithSuperclass::LoadURL::arguments): (Messages::TestWithSuperclass::TestAsyncMessage::arguments): (Messages::TestWithSuperclass::TestAsyncMessageWithNoArguments::arguments): (Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArguments::arguments): (Messages::TestWithSuperclass::TestAsyncMessageWithConnection::arguments): (Messages::TestWithSuperclass::TestSyncMessage::arguments): (Messages::TestWithSuperclass::TestSynchronousMessage::TestSynchronousMessage): (Messages::TestWithSuperclass::TestSynchronousMessage::arguments): (Messages::TestWithSuperclass::LoadURL::arguments const): Deleted. (Messages::TestWithSuperclass::TestAsyncMessage::arguments const): Deleted. (Messages::TestWithSuperclass::TestAsyncMessageWithNoArguments::arguments const): Deleted. (Messages::TestWithSuperclass::TestAsyncMessageWithMultipleArguments::arguments const): Deleted. (Messages::TestWithSuperclass::TestAsyncMessageWithConnection::arguments const): Deleted. (Messages::TestWithSuperclass::TestSyncMessage::arguments const): Deleted. (Messages::TestWithSuperclass::TestSynchronousMessage::arguments const): Deleted. * Source/WebKit/Scripts/webkit/tests/TestWithoutAttributesMessages.h: (Messages::TestWithoutAttributes::LoadURL::arguments): (Messages::TestWithoutAttributes::LoadSomething::arguments): (Messages::TestWithoutAttributes::TouchEvent::arguments): (Messages::TestWithoutAttributes::AddEvent::arguments): (Messages::TestWithoutAttributes::LoadSomethingElse::arguments): (Messages::TestWithoutAttributes::DidReceivePolicyDecision::arguments): (Messages::TestWithoutAttributes::Close::arguments): (Messages::TestWithoutAttributes::PreferencesDidChange::arguments): (Messages::TestWithoutAttributes::SendDoubleAndFloat::arguments): (Messages::TestWithoutAttributes::SendInts::arguments): (Messages::TestWithoutAttributes::CreatePlugin::arguments): (Messages::TestWithoutAttributes::RunJavaScriptAlert::arguments): (Messages::TestWithoutAttributes::GetPlugins::GetPlugins): (Messages::TestWithoutAttributes::GetPlugins::arguments): (Messages::TestWithoutAttributes::GetPluginProcessConnection::arguments): (Messages::TestWithoutAttributes::TestMultipleAttributes::arguments): (Messages::TestWithoutAttributes::TestParameterAttributes::arguments): (Messages::TestWithoutAttributes::TemplateTest::arguments): (Messages::TestWithoutAttributes::SetVideoLayerID::arguments): (Messages::TestWithoutAttributes::DidCreateWebProcessConnection::arguments): (Messages::TestWithoutAttributes::InterpretKeyEvent::arguments): (Messages::TestWithoutAttributes::DeprecatedOperation::arguments): (Messages::TestWithoutAttributes::ExperimentalOperation::arguments): (Messages::TestWithoutAttributes::LoadURL::arguments const): Deleted. (Messages::TestWithoutAttributes::LoadSomething::arguments const): Deleted. (Messages::TestWithoutAttributes::TouchEvent::arguments const): Deleted. (Messages::TestWithoutAttributes::AddEvent::arguments const): Deleted. (Messages::TestWithoutAttributes::LoadSomethingElse::arguments const): Deleted. (Messages::TestWithoutAttributes::DidReceivePolicyDecision::arguments const): Deleted. (Messages::TestWithoutAttributes::Close::arguments const): Deleted. (Messages::TestWithoutAttributes::PreferencesDidChange::arguments const): Deleted. (Messages::TestWithoutAttributes::SendDoubleAndFloat::arguments const): Deleted. (Messages::TestWithoutAttributes::SendInts::arguments const): Deleted. (Messages::TestWithoutAttributes::CreatePlugin::arguments const): Deleted. (Messages::TestWithoutAttributes::RunJavaScriptAlert::arguments const): Deleted. (Messages::TestWithoutAttributes::GetPlugins::arguments const): Deleted. (Messages::TestWithoutAttributes::GetPluginProcessConnection::arguments const): Deleted. (Messages::TestWithoutAttributes::TestMultipleAttributes::arguments const): Deleted. (Messages::TestWithoutAttributes::TestParameterAttributes::arguments const): Deleted. (Messages::TestWithoutAttributes::TemplateTest::arguments const): Deleted. (Messages::TestWithoutAttributes::SetVideoLayerID::arguments const): Deleted. (Messages::TestWithoutAttributes::DidCreateWebProcessConnection::arguments const): Deleted. (Messages::TestWithoutAttributes::InterpretKeyEvent::arguments const): Deleted. (Messages::TestWithoutAttributes::DeprecatedOperation::arguments const): Deleted. (Messages::TestWithoutAttributes::ExperimentalOperation::arguments const): Deleted. * Source/WebKit/WebProcess/WebPage/IPCTestingAPI.cpp: (WebKit::IPCTestingAPI::JSIPCConnectionHandle::encode): (WebKit::IPCTestingAPI::JSIPCStreamServerConnectionHandle::encode): (WebKit::IPCTestingAPI::JSIPCConnectionHandle::encode const): Deleted. (WebKit::IPCTestingAPI::JSIPCStreamServerConnectionHandle::encode const): Deleted. Canonical link: https://commits.webkit.org/264848@main
-
[WebGPU] Support VideoFrame as the source of GPUExternalTexture
https://bugs.webkit.org/show_bug.cgi?id=256875 <radar://109442655> Reviewed by Myles C. Maxfield. Support VideoFrame as the source of a GPUExternalTexture. * Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.h: (WebCore::GPUExternalTextureDescriptor::mediaIdentifierForSource): (WebCore::GPUExternalTextureDescriptor::convertToBacking const): * Source/WebCore/Modules/WebGPU/GPUExternalTextureDescriptor.idl: * Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h: (PAL::WebGPU::HTMLVideoElementIdentifier::HTMLVideoElementIdentifier): (PAL::WebGPU::WebCodecsVideoFrameIdentifier::WebCodecsVideoFrameIdentifier): Support either HTMLVideoElement or WebCodecsVideoFrame as the source of a GPUExternalTexture. * Source/WebCore/platform/VideoFrame.h: (WebCore::VideoFrame::resourceIdentifierVector const): Default implementation returns and empty byte vector. * Source/WebCore/platform/VideoPixelFormat.cpp: (WebCore::convertVideoFramePixelFormat): Allow kCVPixelFormatType_Lossless_420YpCbCr8BiPlanarVideoRange formats. * Source/WebGPU/WebGPU/ExternalTexture.h: (WebGPU::ExternalTexture::pixelBuffer const): Retain the CVPixelBuffer which wasn't previously occurring. * Source/WebKit/GPUProcess/GPUConnectionToWebProcess.cpp: (WebKit::GPUConnectionToWebProcess::createRemoteGPU): Update the lambda to work with HTMLVideoElements and VideoFrames as inputs. * Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp: (WebKit::populateConvertedDescriptor): (WebKit::RemoteDevice::importExternalTexture): Support HTMLVideoElements and VideoFrames as inputs. * Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h: * Source/WebKit/GPUProcess/graphics/WebGPU/RemoteGPU.h: * Source/WebKit/Scripts/webkit/messages.py: (headers_for_type): * Source/WebKit/Shared/WebGPU/WebGPUExternalTextureDescriptor.cpp: (WebKit::WebGPU::ConvertToBackingContext::convertToBacking): (WebKit::WebGPU::ConvertFromBackingContext::convertFromBacking): PAL and WebCore representations are nearly identical. * Source/WebKit/Shared/WebGPU/WebGPUExternalTextureDescriptor.h: * Source/WebKit/Shared/WebGPU/WebGPUExternalTextureDescriptor.serialization.in: * Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.cpp: (WebKit::RemoteVideoFrameProxy::resourceIdentifierVector const): Encode the readRefrence into a byte-vector. * Source/WebKit/WebProcess/GPU/media/RemoteVideoFrameProxy.h: Canonical link: https://commits.webkit.org/264847@main
-
[JSC] FTL should not load arguments twice for type check and use for …
…non-full-64bit values https://bugs.webkit.org/show_bug.cgi?id=192073 rdar://110121633 Reviewed by Mark Lam. This patch removes redundant loads from the same address even when the access width is different. Like, @y = Load64(@x) @z = Load32(@x) is converted to @y = Load64(@x) @z = Trunc(@y) if no clobbering happens between these two loads. This pattern can be seen in FTL since FTL does Int32 check with 64bit load for an argument first and later it loads 32bit part of this Int32. Right now, we are loading twice. This patch eliminates the second load with B3 CSE. * Source/JavaScriptCore/b3/B3EliminateCommonSubexpressions.cpp: Canonical link: https://commits.webkit.org/264846@main
-
WebGL in the GPUP should be enabled for watchOS
https://bugs.webkit.org/show_bug.cgi?id=257669 rdar://110191155 Reviewed by Per Arne Vollan and Mike Wyrzykowski. WebGL in the GPUP should be enabled for watchOS. * Source/WTF/wtf/PlatformEnable.h: Canonical link: https://commits.webkit.org/264845@main
-
Clean up contentsDirtyRect declaration
https://bugs.webkit.org/show_bug.cgi?id=257671 rdar://110191548 Reviewed by Matt Woodrow. I created a duplicate declaration for contentsDirtyRect in 264840@main. Remove it. * Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h: Canonical link: https://commits.webkit.org/264844@main
-
Remove superfluous call in RenderElement::clearChildNeedsLayout
https://bugs.webkit.org/show_bug.cgi?id=257642 Reviewed by Alan Baradlay. Remove superfluous call in RenderElement::clearChildNeedsLayout. * Source/WebCore/rendering/RenderElement.cpp: (WebCore::RenderElement::clearChildNeedsLayout): Canonical link: https://commits.webkit.org/264843@main
-
Viewport layout size is sometimes incorrect when a site specifies an …
…initial scale https://bugs.webkit.org/show_bug.cgi?id=257583 rdar://109483331 Reviewed by Dean Jackson. On iOS, if a page specifies a viewport meta tag including an initial scale value that is < 1, and if the `minimumEffectiveDeviceWidth` is non-zero, the resulting layout width will have an undesirable value. Instead, the initial scale should be ignored when the `minimumEffectiveDeviceWidth` is specified when computing the layout width. This PR fixes this by ignoring the initial scale only when the `minimumEffectiveDeviceWidth` actually has an effect on the viewport layout width. Also refactors the `applyViewportArgument` to be simpler. * Source/WebCore/page/ViewportConfiguration.cpp: (WebCore::applyViewportArgument): (WebCore::ViewportConfiguration::updateConfiguration): (WebCore::ViewportConfiguration::layoutWidth const): * Source/WebCore/page/ViewportConfiguration.h: (WebCore::ViewportConfiguration::Parameters::operator== const): * Tools/TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj: * Tools/TestWebKitAPI/Tests/ios/Viewport.mm: Added. (TestWebKitAPI::TEST): Canonical link: https://commits.webkit.org/264842@main
-
Fix unused function warning added in 264004@main
https://bugs.webkit.org/show_bug.cgi?id=257661 Reviewed by Don Olmstead. * Source/WebKit/GPUProcess/graphics/RemoteRenderingBackend.cpp: (WebKit::isSmallLayerBacking): Canonical link: https://commits.webkit.org/264841@main
Commits on Jun 2, 2023
-
Pass scaled layer dirty rect to CA in UIProcess
https://bugs.webkit.org/show_bug.cgi?id=257664 rdar://110188394 Reviewed by Simon Fraser. In 264445@main we passed the unscaled dirty rect to CA. This causes rendering issues. We need to pass the scaled dirty rect instead. * Source/WebCore/PAL/pal/spi/cocoa/QuartzCoreSPI.h: * Source/WebKit/Shared/RemoteLayerTree/RemoteLayerBackingStore.mm: (WebKit::RemoteLayerBackingStoreProperties::applyBackingStoreToLayer): Canonical link: https://commits.webkit.org/264840@main
-
[JSC] Use RegExpObject::globalOrSticky in DFG strength reduction
https://bugs.webkit.org/show_bug.cgi?id=257657 rdar://110179746 Reviewed by Mark Lam. We found that RegExpTestInline is not so frequently used and the reason was that we are incorrectly giving up RegExpTest etc.'s strength reduction when it is not RegExpExecNonGlobalOrSticky. This means that we cannot use RegExpTestInline if RegExp is something global variable. var regexp = /......../; function test() { return regexp.test(input) } The reason of this restriction is that we need to identify lastIndex value to perform constant folding etc. And this global variable's lastIndex is not known. But if regexp is not global and not sticky, lastIndex value is not used, so we can attempt to perform strength reduction actually. However, lastIndex is used by ToIntegerOrInfinity(regexp.lastIndex) before performing RegExp operations even when RegExp is not global and not sticky. So, to make folding right, we first need to check that this field is Int32Use. This patch relaxes the current folding policy. If we cannot identify lastIndex and RegExp is not global and not sticky, then we insert GetRegExpObjectLastIndex and Check(Int32Use), and continue doing strength reduction. * Source/JavaScriptCore/dfg/DFGStrengthReductionPhase.cpp: (JSC::DFG::StrengthReductionPhase::handleNode): Canonical link: https://commits.webkit.org/264839@main
-
WebXR: Severe aliasing in WebXR experiences (with WebGL1 contexts)
https://bugs.webkit.org/show_bug.cgi?id=256861 rdar://109424254 Reviewed by Dan Glastonbury. WebXR sessions using WebGL1 contexts are unable to turn on multisampling. I'm pretty sure this was my fault, but I can't remember if it was intentional or a mistake. Either way it is a bug. Fix this by implementing the multisample renderbuffer creation and resolution steps. Since we're doing this on a WebGL1 context, the normal API will be invalid (it requires GLES3), so call the extension API instead. This means we need to expose some extra methods on GraphicsContextGL. Lastly, the framebuffer textures we get are SRGB8_ALPHA8 which requires an extension to be enabled with a WebGL1 context when we're talking to an XR-compatible context. Similarly, we enable the extension to allow multisampled framebuffers. * Source/WebCore/Modules/webxr/WebXROpaqueFramebuffer.cpp: (WebCore::WebXROpaqueFramebuffer::endFrame): call blitFramebufferANGLE. (WebCore::WebXROpaqueFramebuffer::setupFramebuffer): Implement logic for WebGL 1. * Source/WebCore/platform/graphics/GraphicsContextGL.h: * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.cpp: Implement the extension API/ (WebCore::GraphicsContextGLANGLE::renderbufferStorageMultisampleANGLE): (WebCore::GraphicsContextGLANGLE::blitFramebufferANGLE): * Source/WebCore/platform/graphics/angle/GraphicsContextGLANGLE.h: * Source/WebCore/platform/graphics/cocoa/GraphicsContextGLCocoa.mm: (WebCore::GraphicsContextGLCocoa::platformInitialize): Turn on the sRGB extension. * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGL.messages.in: * Source/WebKit/GPUProcess/graphics/RemoteGraphicsContextGLFunctionsGenerated.h: (renderbufferStorageMultisampleANGLE): (blitFramebufferANGLE): * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxy.h: * Source/WebKit/WebProcess/GPU/graphics/RemoteGraphicsContextGLProxyFunctionsGenerated.cpp: (WebKit::RemoteGraphicsContextGLProxy::renderbufferStorageMultisampleANGLE): (WebKit::RemoteGraphicsContextGLProxy::blitFramebufferANGLE): Canonical link: https://commits.webkit.org/264838@main
-
https://bugs.webkit.org/show_bug.cgi?id=257655 rdar://110178613 Reviewed by Brent Fulgham. Add Lockdown Mode entitlement and use it in the WebContent sandbox instead of JIT entitlement. * Source/WebKit/Resources/SandboxProfiles/ios/com.apple.WebKit.WebContent.sb.in: * Source/WebKit/Scripts/process-entitlements.sh: Canonical link: https://commits.webkit.org/264837@main
-
[WebGPU] Update WebGPU.h to upstream ToT
https://bugs.webkit.org/show_bug.cgi?id=257640 <rdar://problem/110156868> Reviewed by Mike Wyrzykowski. This updates WebGPU.h to the revision 245130311ef771c958ba43c322aa7ef1f9edfb8f at https://github.com/webgpu-native/webgpu-headers. This does a few things: - All objects get retain/release calls. This is really exciting because it means can delete PAL::WebGPU::DeviceWrapper and PAL::WebGPU::SwapChainWrapper. I'll do that in a follow-up patch. Also, we can delete the release calls from WebGPUExt.h. - The header now has places to put NS_REFINED_FOR_SWIFT. I've already started creating a Swift facade which can use this at #13849 - The header now has places to put nullability macros. I'll do this in a follow- up patch. - The device lost callback has moved from being set in a method to being part of the device's creation descriptor. (This means it no longer can change during the lifetime of the device, but instead has to be constant for a device.) I ended up actually deleting the implementation of this, because the model is significantly different now; it's now a "push" operation from the GPUP to the WP, rather than a "pull" model. I'll reimplement this in a follow-up patch. - A few enums have been tweaked. * Source/WebCore/Modules/WebGPU/GPUDevice.cpp: (WebCore::GPUDevice::lost): * Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp: (PAL::WebGPU::supportedFeatures): (PAL::WebGPU::AdapterImpl::requestDevice): * Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp: (PAL::WebGPU::DeviceImpl::resolveDeviceLostPromise): Deleted. * Source/WebCore/PAL/pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h: * Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUDevice.h: * Source/WebGPU/WebGPU/Adapter.mm: (wgpuAdapterReference): * Source/WebGPU/WebGPU/BindGroup.mm: (wgpuBindGroupReference): * Source/WebGPU/WebGPU/BindGroupLayout.mm: (wgpuBindGroupLayoutReference): * Source/WebGPU/WebGPU/Buffer.mm: (WebGPU::Buffer::mapAsync): (wgpuBufferReference): * Source/WebGPU/WebGPU/CommandBuffer.mm: (wgpuCommandBufferReference): * Source/WebGPU/WebGPU/CommandEncoder.mm: (wgpuCommandEncoderReference): * Source/WebGPU/WebGPU/ComputePassEncoder.mm: (wgpuComputePassEncoderReference): * Source/WebGPU/WebGPU/ComputePipeline.mm: (wgpuComputePipelineReference): * Source/WebGPU/WebGPU/Device.h: * Source/WebGPU/WebGPU/Device.mm: (wgpuDeviceReference): (wgpuDevicePopErrorScope): (wgpuDevicePopErrorScopeWithBlock): (WebGPU::Device::setDeviceLostCallback): Deleted. (wgpuDeviceSetDeviceLostCallback): Deleted. (wgpuDeviceSetDeviceLostCallbackWithBlock): Deleted. * Source/WebGPU/WebGPU/Instance.mm: (wgpuInstanceReference): * Source/WebGPU/WebGPU/PipelineLayout.mm: (wgpuPipelineLayoutReference): * Source/WebGPU/WebGPU/PresentationContext.mm: (wgpuSurfaceReference): (wgpuSwapChainReference): (wgpuSwapChainRelease): * Source/WebGPU/WebGPU/QuerySet.mm: (wgpuQuerySetReference): * Source/WebGPU/WebGPU/Queue.mm: (wgpuQueueReference): * Source/WebGPU/WebGPU/RenderBundle.mm: (wgpuRenderBundleReference): * Source/WebGPU/WebGPU/RenderBundleEncoder.mm: (wgpuRenderBundleEncoderReference): * Source/WebGPU/WebGPU/RenderPassEncoder.mm: (wgpuRenderPassEncoderReference): * Source/WebGPU/WebGPU/RenderPipeline.mm: (wgpuRenderPipelineReference): * Source/WebGPU/WebGPU/Sampler.mm: (wgpuSamplerReference): * Source/WebGPU/WebGPU/ShaderModule.mm: (wgpuShaderModuleReference): * Source/WebGPU/WebGPU/Texture.mm: (wgpuTextureReference): * Source/WebGPU/WebGPU/TextureView.mm: (wgpuTextureViewReference): * Source/WebGPU/WebGPU/WebGPU.h: * Source/WebGPU/WebGPU/WebGPUExt.h: * Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.cpp: (WebKit::RemoteDevice::resolveDeviceLostPromise): Deleted. * Source/WebKit/GPUProcess/graphics/WebGPU/RemoteDevice.h: * Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.cpp: (WebKit::WebGPU::RemoteDeviceProxy::resolveDeviceLostPromise): Deleted. * Source/WebKit/WebProcess/GPU/graphics/WebGPU/RemoteDeviceProxy.h: Canonical link: https://commits.webkit.org/264836@main
-
Always use no-quirks mode for CSS.supports()
https://bugs.webkit.org/show_bug.cgi?id=257643 rdar://110162243 Reviewed by Tim Nguyen. Align with the standard and other browsers. In particular https://drafts.csswg.org/css-color-4/#quirky-color https://drafts.csswg.org/css-values-4/#deprecated-quirky-length mandate this and those are the only quirks applying to CSS.supports(). As stated there this is not applicable to @supports. * LayoutTests/css3/css-supports-document-parser-context-expected.txt: * LayoutTests/css3/css-supports-document-parser-context.html: * LayoutTests/css3/resources/css-supports-document-parser-context-nonstrict.html: * LayoutTests/imported/w3c/resources/import-expectations.json: * LayoutTests/imported/w3c/web-platform-tests/quirks/classname-query-after-sibling-adoption.html: * LayoutTests/imported/w3c/web-platform-tests/quirks/supports-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/quirks/text-decoration-doesnt-propagate-into-tables/standards-expected.html: * LayoutTests/imported/w3c/web-platform-tests/quirks/text-decoration-doesnt-propagate-into-tables/standards-ref.html: * LayoutTests/imported/w3c/web-platform-tests/quirks/text-decoration-doesnt-propagate-into-tables/standards.html: * LayoutTests/tests-options.json: * Source/WebCore/css/DOMCSSNamespace.cpp: (WebCore::DOMCSSNamespace::supports): Canonical link: https://commits.webkit.org/264835@main
-
[WGSL] Global variable rewriter shouldn't record local reads
https://bugs.webkit.org/show_bug.cgi?id=257598 rdar://110104940 Reviewed by Mike Wyrzykowski. While finalizing PR#14549, a mistake was made where we record reads of local variables as if we were reading from a global. As a result, we try rewrite the global variable access, which fails, as the variable wasn't a global to begin with. The fix is to keep track of whether we are reading a global or local variable, and only record the read if it's a global. * Source/WebGPU/WGSL/GlobalVariableRewriter.cpp: (WGSL::RewriteGlobalVariables::visit): (WGSL::RewriteGlobalVariables::readVariable): Canonical link: https://commits.webkit.org/264834@main
-
[iOS] Memory leak when long pressing images
https://bugs.webkit.org/show_bug.cgi?id=257633 rdar://109165223 Reviewed by Megan Gardner and Wenson Hsieh. When long pressing an image (bringing up a context menu) on iOS, `InteractionInformationAtPosition` is sent to the UI process. `InteractionInformationAtPosition` is used to create `WKContextMenuElementInfo`, an API object that contains information about the element that is associated with the context menu. However, `WKContextMenuElementInfo` is backed by an `API::ContextMenuElementInfo`. Like all objects conforming to `WKObject`, the backing object is stored as a reference. Consequently, the backing object is not automatically destroyed once `WKContextMenuElementInfo` is deallocated. Consequently, a memory leak occurs after `WKContextMenuElementInfo` is deallocated. To fix, implement `-[WKContextMenuElementInfo dealloc]` and explicitly destroy the backing object. * Source/WebKit/UIProcess/API/Cocoa/WKContextMenuElementInfo.mm: (-[WKContextMenuElementInfo dealloc]): Implement `-dealloc`, matching other `WKObject`s. Canonical link: https://commits.webkit.org/264833@main
-
[Cocoa] Sometimes a YouTube video is incorrectly sized, and doesn't r…
…espond to window resize https://bugs.webkit.org/show_bug.cgi?id=257628 rdar://109754524 Reviewed by Simon Fraser. `-[WebAVPlayerLayer layoutSublayers]` will calculate a `targetVideoFrame` based on the current videoLayer's bounds, the videoDimensions, and gravity. If this value matches the current video frame, it bails out early without making any changes. However, it doesn't save `targetVideoFrame` to `_targetVideoFrame`. If the gravity, videoDimensions, or even the videoLayer's bounds change, and there's an existing pending call to `-resolveBounds`, an incorrent frame will be set on the videoLayer (whatever the last successful call to `-layoutSublayers` generated). Rather than create a local `targetVideoFrame`, just save the results of calling `-calculateTargetVideoFrame` to the `_targetVideoFrame` ivar. This ensures that subsequent calls to `-resolveBounds` operate on the correct values. Extensive drive-by fix: In investigating this bug, there were a number of times where logging which included a frame's location would have been useful. But FloatPoint and FloatRect don't have logging methods to convert their values to a String (only FloatSize does). So this patch adds those missing logging methods and converts existing logging to log the whole rect. * Source/WebCore/platform/cocoa/WebAVPlayerLayer.mm: (-[WebAVPlayerLayer layoutSublayers]): (-[WebAVPlayerLayer resolveBounds]): * Source/WebCore/platform/graphics/FloatPoint.cpp: (WebCore::FloatPoint::toJSONObject const): (WebCore::FloatPoint::toJSONString const): * Source/WebCore/platform/graphics/FloatPoint.h: (WTF::LogArgument<WebCore::FloatPoint>::toString): * Source/WebCore/platform/graphics/FloatRect.cpp: (WebCore::FloatRect::toJSONObject const): (WebCore::FloatRect::toJSONString const): * Source/WebCore/platform/graphics/FloatRect.h: (WTF::LogArgument<WebCore::FloatRect>::toString): * Source/WebCore/platform/graphics/avfoundation/objc/VideoLayerManagerObjC.mm: (WebCore::VideoLayerManagerObjC::setVideoLayer): * Source/WebKit/UIProcess/Cocoa/VideoFullscreenManagerProxy.mm: (WebKit::VideoFullscreenModelContext::setVideoLayerFrame): Canonical link: https://commits.webkit.org/264832@main
-
REGRESSION (259167@main): [ macOS ] webaudio/audiocontext-large-sampl…
…erate.html is a flaky failure https://bugs.webkit.org/show_bug.cgi?id=256091 rdar://108658391 Reviewed by Youenn Fablet. AudioContext is slow to start if the test starts the GPU process. The tests used setTimeout which could fire before the AudioContext handled the start. Use AudioContext.onstatechange to trigger the test of AudioContext.state == "running". * LayoutTests/platform/mac/TestExpectations: * LayoutTests/webaudio/audiocontext-large-samplerate.html: * LayoutTests/webaudio/audiocontext-low-samplerate.html: Canonical link: https://commits.webkit.org/264831@main
-
[ iOS ] imported/w3c/web-platform-tests/screen-orientation/fullscreen…
…-interactions.html is a flaky failure https://bugs.webkit.org/show_bug.cgi?id=256671 rdar://109537056 Reviewed by Chris Dumez. Refactored the test so to make it less flaky. Tested it a few thousand times locally. * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/fullscreen-interactions-expected.txt: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/fullscreen-interactions.html: * LayoutTests/imported/w3c/web-platform-tests/screen-orientation/resources/orientation-utils.js: (export.async attachIframe): * LayoutTests/platform/ios-wk2/TestExpectations: * LayoutTests/platform/ios/imported/w3c/web-platform-tests/screen-orientation/fullscreen-interactions-expected.txt: * LayoutTests/platform/mac-wk2/TestExpectations: Canonical link: https://commits.webkit.org/264830@main
-
[CMake] Unify GStreamer sources
https://bugs.webkit.org/show_bug.cgi?id=257562 Reviewed by Carlos Garcia Campos. Flag the GStreamer GObject subclasses as no-unify, undefine GST_CAT_DEFAULT at the end of each unit to avoid warnings about its redefinition in neighbour units. Most of the GBM are now no-unify, otherwise the epoxy include from MediaPlayerPrivateGStreamer throws an error... * Source/WebCore/Modules/mediastream/gstreamer/GStreamerDataChannelHandler.cpp: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerMediaEndpoint.cpp: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerPeerConnectionBackend.cpp: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpSenderBackend.cpp: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerRtpTransceiverBackend.cpp: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerSctpTransportBackend.cpp: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerStatsCollector.cpp: * Source/WebCore/Modules/mediastream/gstreamer/GStreamerWebRTCUtils.cpp: * Source/WebCore/SourcesGTK.txt: * Source/WebCore/SourcesWPE.txt: * Source/WebCore/platform/GStreamer.cmake: * Source/WebCore/platform/SourcesGStreamer.txt: Added. * Source/WebCore/platform/audio/gstreamer/AudioDestinationGStreamer.cpp: (WebCore::initializeAudioDestinationDebugCategory): (WebCore::maximumNumberOfOutputChannels): (WebCore::AudioDestination::create): (WebCore::initializeDebugCategory): Deleted. * Source/WebCore/platform/audio/gstreamer/AudioFileReaderGStreamer.cpp: (WebCore::createBusFromInMemoryAudioFile): (WebCore::initializeDebugCategory): Deleted. * Source/WebCore/platform/audio/gstreamer/AudioSourceProviderGStreamer.cpp: (WebCore::initializeAudioSourceProviderDebugCategory): (WebCore::AudioSourceProviderGStreamer::AudioSourceProviderGStreamer): (WebCore::initializeDebugCategory): Deleted. * Source/WebCore/platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/AudioTrackPrivateGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/DMABufVideoSinkGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/GLVideoSinkGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/GStreamerAudioMixer.cpp: * Source/WebCore/platform/graphics/gstreamer/GStreamerCommon.cpp: * Source/WebCore/platform/graphics/gstreamer/GStreamerRegistryScanner.cpp: * Source/WebCore/platform/graphics/gstreamer/GStreamerSinksWorkarounds.cpp: * Source/WebCore/platform/graphics/gstreamer/GStreamerVideoSinkCommon.cpp: * Source/WebCore/platform/graphics/gstreamer/ImageDecoderGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp: (WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine): (WebCore::initializeDebugCategory): Deleted. * Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/TextCombinerGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/TextSinkGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/VideoDecoderGStreamer.cpp: (WebCore::gstDecoderWorkQueue): (WebCore::GStreamerVideoDecoder::create): (WebCore::GStreamerVideoDecoder::decode): (WebCore::GStreamerVideoDecoder::flush): (WebCore::gstWorkQueue): Deleted. * Source/WebCore/platform/graphics/gstreamer/VideoEncoderGStreamer.cpp: (WebCore::gstEncoderWorkQueue): (WebCore::GStreamerVideoEncoder::create): (WebCore::GStreamerVideoEncoder::encode): (WebCore::GStreamerVideoEncoder::flush): (WebCore::gstWorkQueue): Deleted. * Source/WebCore/platform/graphics/gstreamer/VideoFrameGStreamer.cpp: (WebCore::ensureVideoFrameDebugCategoryInitialized): (WebCore::GstSampleColorConverter::singleton): (WebCore::VideoFrameGStreamer::VideoFrameGStreamer): (WebCore::ensureDebugCategoryInitialized): Deleted. * Source/WebCore/platform/graphics/gstreamer/VideoFrameMetadataGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/VideoSinkGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/VideoTrackPrivateGStreamer.cpp: (WebCore::ensureVideoTrackDebugCategoryInitialized): (WebCore::VideoTrackPrivateGStreamer::VideoTrackPrivateGStreamer): (WebCore::ensureDebugCategoryInitialized): Deleted. * Source/WebCore/platform/graphics/gstreamer/WebKitAudioSinkGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/eme/CDMProxyThunder.cpp: * Source/WebCore/platform/graphics/gstreamer/eme/CDMThunder.cpp: * Source/WebCore/platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp: * Source/WebCore/platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/eme/WebKitThunderDecryptorGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/mse/AppendPipeline.cpp: * Source/WebCore/platform/graphics/gstreamer/mse/MediaPlayerPrivateGStreamerMSE.cpp: * Source/WebCore/platform/graphics/gstreamer/mse/MediaSourcePrivateGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/mse/MediaSourceTrackGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/mse/SourceBufferPrivateGStreamer.cpp: * Source/WebCore/platform/graphics/gstreamer/mse/TrackQueue.cpp: * Source/WebCore/platform/gstreamer/GStreamerCodecUtilities.cpp: * Source/WebCore/platform/gstreamer/GStreamerElementHarness.cpp: * Source/WebCore/platform/gstreamer/VideoEncoderPrivateGStreamer.cpp: * Source/WebCore/platform/gstreamer/WebKitFliteSourceGStreamer.cpp: * Source/WebCore/platform/mediarecorder/MediaRecorderPrivateGStreamer.cpp: * Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCaptureSource.cpp: (WebCore::GStreamerAudioCaptureSource::GStreamerAudioCaptureSource): (WebCore::initializeDebugCategory): Deleted. * Source/WebCore/platform/mediastream/gstreamer/GStreamerAudioCapturer.cpp: (WebCore::initializeAudioCapturerDebugCategory): (WebCore::GStreamerAudioCapturer::GStreamerAudioCapturer): (WebCore::initializeDebugCategory): Deleted. * Source/WebCore/platform/mediastream/gstreamer/GStreamerCaptureDeviceManager.cpp: * Source/WebCore/platform/mediastream/gstreamer/GStreamerCapturer.cpp: (WebCore::initializeCapturerDebugCategory): (WebCore::GStreamerCapturer::GStreamerCapturer): (WebCore::initializeDebugCategory): Deleted. * Source/WebCore/platform/mediastream/gstreamer/GStreamerMediaStreamSource.cpp: * Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCaptureSource.cpp: (WebCore::initializeVideoCaptureSourceDebugCategory): (WebCore::m_deviceType): (WebCore::initializeDebugCategory): Deleted. * Source/WebCore/platform/mediastream/gstreamer/GStreamerVideoCapturer.cpp: (WebCore::initializeVideoCapturerDebugCategory): (WebCore::GStreamerVideoCapturer::GStreamerVideoCapturer): (WebCore::initializeDebugCategory): Deleted. * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingAudioSourceGStreamer.cpp: * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingSourceGStreamer.cpp: * Source/WebCore/platform/mediastream/gstreamer/RealtimeIncomingVideoSourceGStreamer.cpp: * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingAudioSourceGStreamer.cpp: * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingMediaSourceGStreamer.cpp: * Source/WebCore/platform/mediastream/gstreamer/RealtimeOutgoingVideoSourceGStreamer.cpp: Canonical link: https://commits.webkit.org/264829@main
-
[IFC][line-clamp](REGRESSION 264048@main) Yahoo.com: Words are cutoff…
… on article titles https://bugs.webkit.org/show_bug.cgi?id=257629 <rdar://110018946> Reviewed by Simon Fraser. 1. The "cutoff article titles" is some visible inline content _after_ the clamped line. They are supposed to be clipped off. 2. The reason why they are visible is because we compute incorrect logical height value for the flex container (box with -webkit-line-clamp) 3. This incorrectly computed height value makes the flex container too tall revealing content _after_ the clamped line. The input to the flex container height computation is the flex items' accumulated height (bottom of the last flex item). Normally this is based on the _clamped_ content height (see the end of RenderDeprecatedFlexibleBox::layoutVerticalBox), but apparently 264048@main did not cover all the cases. In 264048@main we started tracking both clamped and unclamped content height on each flex items 1. clamped height is used to compute the flex container's final height 2. unclamped height is used to prevent sibling content from getting overlapped This (#2) was supposed to provide a more reasonable -webkit-line-clamp result; see an example below: <div style="display: flex; -webkit-line-clamp: 1;"> <div flex-item> flex item is clamped here (this line ends with ellipsis) this line is still visible. It is expected unless overflow clipping is applied. </div> <div flex-item> this sibling content is visible and prior to 264048@main it overlapped the lines in the first flex-item as the first flex-item height is set to the clamped content height. </div> </div> Starting from 264048@main, the second flex-item is placed _below_ the first flex item (and not overlap it) This was achieved by letting the flex items keep their unclamped logical height. However some part of the RenderDeprecatedFlexibleBox (flex container) expects the flex items' logical height match their clamped content height (this is also legacy behavior). In this patch we start setting the _clamped_ content height on the flex items. e.g. (assume 20px as line box height) <div flex-container with -webkit-line-clamp: 1> <div flex-item> Flex item is clamped here (this line ends with ellipsis) but this line is still visible which is expected unless overflow is clipping is applied. </div> </div> The used height of the flex-item is now the height of the first line (20px) (as opposed to the bottom of the second line (40px)) * LayoutTests/TestExpectations: * LayoutTests/fast/inline/line-clamp-with-max-height-overflow-expected.html: Added. * LayoutTests/fast/inline/line-clamp-with-max-height-overflow.html: Added. * LayoutTests/platform/ios/fast/overflow/line-clamp-expected.txt: * LayoutTests/platform/mac/fast/overflow/line-clamp-expected.txt: * Source/WebCore/rendering/RenderBlockFlow.cpp: (WebCore::RenderBlockFlow::layoutModernLines): The only functional change here is: setLogicalHeight(borderAndPaddingBefore() + *logicalHeight + borderAndPaddingAfter() + scrollbarLogicalHeight()); where we set the clamped content height as the logical height. Canonical link: https://commits.webkit.org/264828@main
-
[Curl] Simplify event handling in CurlRequest::invokeDidReceiveRespon…
…se() https://bugs.webkit.org/show_bug.cgi?id=257639 Reviewed by Fujii Hironori. Replacing the argument of invokeDidReceiveResponse from Action to Function makes the subsequent processing easier to understand. * Source/WebCore/platform/network/curl/CurlRequest.cpp: (WebCore::CurlRequest::didReceiveData): (WebCore::CurlRequest::didReceiveHeaderFromMultipart): (WebCore::CurlRequest::didCompleteTransfer): (WebCore::CurlRequest::invokeDidReceiveResponseForFile): (WebCore::CurlRequest::invokeDidReceiveResponse): (WebCore::CurlRequest::completeDidReceiveResponse): * Source/WebCore/platform/network/curl/CurlRequest.h: (WebCore::CurlRequest::needToInvokeDidCancelTransfer const): (WebCore::CurlRequest::invokeDidReceiveResponse): Canonical link: https://commits.webkit.org/264827@main
-
[GStreamer] Do not activate and fill the gst GL context
https://bugs.webkit.org/show_bug.cgi?id=257599 Reviewed by Miguel Gomez. It's only used as a sharing context, so it doesn't need to be activated and filled. This way we avoid making the sharing context the current one in the main thread forever. * Source/WebCore/platform/graphics/PlatformDisplay.cpp: (WebCore::PlatformDisplay::clearSharingGLContext): (WebCore::PlatformDisplay::terminateEGLDisplay): * Source/WebCore/platform/graphics/gstreamer/PlatformDisplayGStreamer.cpp: (WebCore::PlatformDisplay::gstGLDisplay const): (WebCore::PlatformDisplay::gstGLContext const): (createGstGLDisplay): Deleted. (PlatformDisplay::tryEnsureGstGLContext const): Deleted. (PlatformDisplay::gstGLDisplay const): Deleted. (PlatformDisplay::gstGLContext const): Deleted. Canonical link: https://commits.webkit.org/264826@main
-
Migrate from LineBreakIteratorPool to TextBreakIteratorCache
https://bugs.webkit.org/show_bug.cgi?id=257590 rdar://110097890 Reviewed by Yusuke Suzuki. We have two different classes which do the same thing. I've been working on deduplicating them, and this is the last step. Microbenchmarks say there isn't a performance difference - presumably because we're still using ICU to do line breaking. We're just using a different intermediate class to get there. (And if the microbenchmarks say there isn't a performance difference, then normal benchmarks certainly won't say that there's a performance difference.) * Source/WTF/WTF.xcodeproj/project.pbxproj: * Source/WTF/wtf/CMakeLists.txt: * Source/WTF/wtf/text/LineBreakIteratorPoolICU.cpp: Removed. * Source/WTF/wtf/text/LineBreakIteratorPoolICU.h: Removed. * Source/WTF/wtf/text/TextBreakIterator.cpp: (WTF::acquireLineBreakIterator): Deleted. (WTF::releaseLineBreakIterator): Deleted. (WTF::openLineBreakIterator): Deleted. (WTF::closeLineBreakIterator): Deleted. * Source/WTF/wtf/text/TextBreakIterator.h: (WTF::CachedTextBreakIterator::~CachedTextBreakIterator): (WTF::CachedTextBreakIterator::CachedTextBreakIterator): (WTF::CachedTextBreakIterator::operator=): (WTF::CachedTextBreakIterator::preceding const): (WTF::CachedTextBreakIterator::following const): (WTF::CachedTextBreakIterator::isBoundary const): (WTF::LazyLineBreakIterator::get): (WTF::LazyLineBreakIterator::resetStringAndReleaseIterator): (WTF::LazyLineBreakIterator::~LazyLineBreakIterator): Deleted. * Source/WTF/wtf/text/icu/TextBreakIteratorICU.h: * Source/WebCore/rendering/BreakLines.h: (WebCore::nextBreakablePosition): Canonical link: https://commits.webkit.org/264825@main
-
Make sure ImageData objects are shared when doing structured cloning
https://bugs.webkit.org/show_bug.cgi?id=257626 Reviewed by Darin Adler. Make sure ImageData objects are shared when doing structured cloning so that if you send the same ImageData object is present multiple times in the object being serialized, the object identity is preserved after deserializing. * LayoutTests/imported/w3c/web-platform-tests/webmessaging/without-ports/028-expected.txt: * Source/WebCore/bindings/js/SerializedScriptValue.cpp: (WebCore::CloneSerializer::dumpIfTerminal): (WebCore::CloneSerializer::writeImageDataIndex): (WebCore::CloneDeserializer::readImageDataIndex): (WebCore::CloneDeserializer::readTerminal): Canonical link: https://commits.webkit.org/264824@main
-
Web Inspector: REGRESSION(?): Storage: arrow key movement sometimes s…
…kips items https://bugs.webkit.org/show_bug.cgi?id=257608 Reviewed by Patrick Angle. `WI.DataGrid` has two different ways of managing the state of its children: - `_children` represents the "original" order of children before any sorting happens. - `_rows` contains the visual ordering of children after sorting and whatnot. The logic that calculates the `previousSibling`/`nextSibling` for each `WI.DataGridNode` happens in two different places: 1. `WI.DataGridNode.prototype._recalculateSiblings`, which is called by `WI.DataGrid.prototype.insertChild`. 2. `WI.DataGrid.prototype._sortNodesCallback`, specifically after sorting has finished. (1) uses `_children` and (2) uses `_rows`, which can lead to issues if the caller doesn't sort the `WI.DataGrid` *after* adding any new `WI.DataGridNode` as in that case the item before it in `_children` might not actually be the item before it in `_rows`. Imagine we have a `WI.DataGrid` with two children added in reverse alphabetical order but sorted alphabetically: _children: b { previous: a, next: _ } a { previous: _, next: b } _rows: a { previous: _, next: b } b { previous: a, next: _ } If we now added another `WI.DataGridNode` for "z" *without* sorting, we'd end up with this: _children: b { previous: a, next: _ } a { previous: _, next: z } z { previous: a, next: _ } _rows: a { previous: _, next: z } b { previous: a, next: _ } z { previous: a, next: _ } Which would cause the user to skip over "b" when pressing the down arrow key if "a" is selected. I am somewhat doubtful that this is an issue elsewhere in Web Inspector as `WI.PlaceholderDataGridNode` is not used anywhere else (and `WI.DataGrid` is sorta unofficially softly deprecated in favor of `WI.Table`). * Source/WebInspectorUI/UserInterface/Views/DOMStorageContentView.js: (WI.DOMStorageContentView.prototype._populate): Always sort *after* adding `WI.DataGridNode`, not before. Canonical link: https://commits.webkit.org/264823@main
-
[LibWebRTC] Remove non-existent file from sources after 264715@main
https://bugs.webkit.org/show_bug.cgi?id=257307 Reviewed by Eric Carlson. Compilation was failing because file: - abseil-cpp/absl/synchronization/internal/waiter.cc was removed after abseil update in 264715@main. * Source/ThirdParty/libwebrtc/CMakeLists.txt: Remove file 'waiter.cc' from LibWebRTC sources. Canonical link: https://commits.webkit.org/264822@main
-
[GTK][WPE] Test gardening for
fast/lists/li-br
Unreviewed test gardening. Update test expectations after 264248@main in which we updated expectations for Mac and iOS but not GTK/WPE. Move pixel png to glib, shared amongst GTK and WPE tests. * LayoutTests/platform/glib/fast/lists/li-br-expected.png: Renamed from LayoutTests/platform/gtk/fast/lists/li-br-expected.png. * LayoutTests/platform/glib/fast/lists/li-br-expected.txt: Canonical link: https://commits.webkit.org/264821@main
-
bugs.webkit.org internal server error when limiting search by 1 month
https://bugs.webkit.org/show_bug.cgi?id=257546 rdar://110075621 Reviewed by Alexey Proskuryakov. Fixed SqlifyDate function in Bugzilla/Search.pm such that it multiplies month by 31 days and returns valid date. Previously it would change only the month and keep the day of the month the same, causing invalid dates to be returned depending on certain dates and how far to go back to. * Websites/bugs.webkit.org/Bugzilla/Search.pm: (SqlifyDate): Canonical link: https://commits.webkit.org/264820@main
-
[WinCairo] Unreviewed test gardening
* LayoutTests/platform/wincairo/TestExpectations: Canonical link: https://commits.webkit.org/264819@main
-
The caret color is sometimes incorrect when specifying `caret-color: …
…auto` https://bugs.webkit.org/show_bug.cgi?id=257522 rdar://110012105 Reviewed by Tim Horton. * Source/WebCore/editing/FrameSelection.cpp: (WebCore::FrameSelection::paintCaret): (WebCore::CaretBase::paintCaret const): (WebCore::DragCaretController::paintDragCaret const): * Source/WebCore/editing/FrameSelection.h: * Source/WebCore/platform/CaretAnimator.cpp: (WebCore::CaretAnimator::paint const): * Source/WebCore/platform/CaretAnimator.h: Canonical link: https://commits.webkit.org/264818@main
-
https://bugs.webkit.org/show_bug.cgi?id=257540 <radar://107716428> Reviewed by Dean Jackson. Change behavior of context menu animation such that fading is used instead of morphing when tapping on the preview. * Source/WebKit/UIProcess/ios/WKContentViewInteraction.h: * Source/WebKit/UIProcess/ios/WKContentViewInteraction.mm: (-[WKContentView _contextMenuInteraction:configurationForMenuAtLocation:completion:]): (-[WKContentView contextMenuInteraction:configuration:dismissalPreviewForItemWithIdentifier:contextMenuInteraction:previewForDismissingMenuWithConfiguration:]): (-[WKContentView contextMenuInteraction:willPerformPreviewActionForMenuWithConfiguration:animator:]): (-[WKContentView contextMenuInteraction:willEndForConfiguration:animator:]): Canonical link: https://commits.webkit.org/264817@main
Commits on Jun 1, 2023
-
[JSC] Heap allocation during WebAudio rendering
https://bugs.webkit.org/show_bug.cgi?id=257488 rdar://110012510 Reviewed by Yusuke Suzuki. Avoid a potential heap allocation under AudioWorkletGlobalScope::handlePreRenderTasks() caused by grabbing the JSLock. Since the intention of grabbing the JSLock here is to delay the draining of the microtasks queue until handlePostRenderTasks(), I introduce instead a DrainMicrotaskDelayScope which delays draining of the microtasks queue without grabbing the JSLock until the moment we want to drain the queue. * Source/JavaScriptCore/runtime/VM.cpp: (JSC::VM::drainMicrotasks): (JSC::VM::DrainMicrotaskDelayScope::DrainMicrotaskDelayScope): (JSC::VM::DrainMicrotaskDelayScope::~DrainMicrotaskDelayScope): (JSC::VM::DrainMicrotaskDelayScope::operator=): (JSC::VM::DrainMicrotaskDelayScope::increment): (JSC::VM::DrainMicrotaskDelayScope::decrement): * Source/JavaScriptCore/runtime/VM.h: (JSC::VM::drainMicrotaskDelayScope): * Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.cpp: (WebCore::AudioWorkletGlobalScope::handlePreRenderTasks): (WebCore::AudioWorkletGlobalScope::handlePostRenderTasks): * Source/WebCore/Modules/webaudio/AudioWorkletGlobalScope.h: Canonical link: https://commits.webkit.org/264816@main