2021-11-25  Kimmo Kinnunen  <kkinnunen@apple.com>

        ANGLE Metal: The memory backing IOSurfaces of former client buffer pbuffers is leaked
        https://bugs.webkit.org/show_bug.cgi?id=233328
        <rdar://problem/85563187>

        Reviewed by Antti Koivisto.

        Add prototype for IOSurfaceIncrementUseCount.
        Currently used for a test, in simulating CA behavior.

        * pal/spi/cocoa/IOSurfaceSPI.h:

2021-11-22  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Use OptionSet where it makes sense to
        https://bugs.webkit.org/show_bug.cgi?id=233434

        Reviewed by Wenson Hsieh.

        * pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.cpp:
        (PAL::WebGPU::ConvertToBackingContext::convertBufferUsageFlagsToBacking):
        (PAL::WebGPU::ConvertToBackingContext::convertColorWriteFlagsToBacking):
        (PAL::WebGPU::ConvertToBackingContext::convertMapModeFlagsToBacking):
        (PAL::WebGPU::ConvertToBackingContext::convertShaderStageFlagsToBacking):
        (PAL::WebGPU::ConvertToBackingContext::convertTextureUsageFlagsToBacking):
        * pal/graphics/WebGPU/WebGPUBufferUsage.h:
        * pal/graphics/WebGPU/WebGPUColorWrite.h:
        * pal/graphics/WebGPU/WebGPUMapMode.h:
        * pal/graphics/WebGPU/WebGPUShaderStage.h:
        * pal/graphics/WebGPU/WebGPUTextureUsage.h:

2021-11-19  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Add converters from serializable descriptors to interface descriptors
        https://bugs.webkit.org/show_bug.cgi?id=233310

        Reviewed by Dean Jackson.

        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
        (PAL::WebGPU::AdapterImpl::requestDevice):
        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
        (PAL::WebGPU::DeviceImpl::createBindGroupLayout):
        (PAL::WebGPU::DeviceImpl::createPipelineLayout):
        (PAL::WebGPU::DeviceImpl::createBindGroup):
        (PAL::WebGPU::convertToBacking):
        (PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
        (PAL::WebGPU::DeviceImpl::createQuerySet):
        * pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:
        (PAL::WebGPU::QueueImpl::submit):
        * pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp:
        (PAL::WebGPU::RenderPassEncoderImpl::executeBundles):
        * pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp:
        (PAL::WebGPU::TextureImpl::createView):
        (PAL::WebGPU::TextureImpl::createView const): Deleted.
        * pal/graphics/WebGPU/WebGPUCompilationMessage.h:
        * pal/graphics/WebGPU/WebGPUSupportedFeatures.h:
        * pal/graphics/WebGPU/WebGPUSupportedLimits.h:
        * pal/graphics/WebGPU/WebGPUValidationError.h:

2021-11-19  Antoine Quint  <graouts@webkit.org>

        [Model] add support for seeking animations
        https://bugs.webkit.org/show_bug.cgi?id=233362
        <rdar://problem/85428812>

        Reviewed by Wenson Hsieh.

        Add the new ARQL SPIs we are using to query the animation duration, the current and time
        as well as allowing to set the latter.

        * pal/spi/ios/SystemPreviewSPI.h:
        * pal/spi/mac/SystemPreviewSPI.h:

2021-11-19  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, reverting r286047.

        Breaks internal builds

        Reverted changeset:

        "[WebGPU] Add converters from serializable descriptors to
        interface descriptors"
        https://bugs.webkit.org/show_bug.cgi?id=233310
        https://commits.webkit.org/r286047

2021-11-19  Antoine Quint  <graouts@webkit.org>

        [Model] add support for controlling looping animations
        https://bugs.webkit.org/show_bug.cgi?id=233356
        <rdar://problem/85428884>

        Reviewed by Wenson Hsieh.

        Add the new ARQL SPIs we are using to control animation looping.

        * pal/spi/ios/SystemPreviewSPI.h:
        * pal/spi/mac/SystemPreviewSPI.h:

2021-11-19  Antoine Quint  <graouts@webkit.org>

        [Model] add audio support
        https://bugs.webkit.org/show_bug.cgi?id=233365
        <rdar://problem/85428982>

        Reviewed by Wenson Hsieh.

        Add the new ARQL SPIs we are using for audio control.

        * pal/spi/ios/SystemPreviewSPI.h:
        * pal/spi/mac/SystemPreviewSPI.h:

2021-11-18  Antoine Quint  <graouts@webkit.org>

        [Model] add support for pausing and resuming animations
        https://bugs.webkit.org/show_bug.cgi?id=233319
        <rdar://problem/85428464>

        Reviewed by Wenson Hsieh.

        Add the new ARQL SPIs we are using.

        * pal/spi/ios/SystemPreviewSPI.h:
        * pal/spi/mac/SystemPreviewSPI.h:

2021-11-18  Antoine Quint  <graouts@webkit.org>

        [Model] add support for getting and setting the camera
        https://bugs.webkit.org/show_bug.cgi?id=233265
        <rdar://problem/85426290>

        Reviewed by Darin Adler.

        Add the new ARQL SPIs we are using.

        * pal/spi/ios/SystemPreviewSPI.h:
        * pal/spi/mac/SystemPreviewSPI.h:

2021-11-18  Antoine Quint  <graouts@webkit.org>

        [Model] [macOS] Add support for interaction on macOS
        https://bugs.webkit.org/show_bug.cgi?id=233105
        <rdar://problem/80079386>

        Reviewed by Wenson Hsieh.

        Add new ARQL SPIs.

        * pal/spi/mac/SystemPreviewSPI.h:

2021-11-17  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Add IPC message handlers for WebGPU
        https://bugs.webkit.org/show_bug.cgi?id=233247

        Reviewed by Dean Jackson.

        Add EnumTraits to the enum classes, so they can be serialized.

        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
        (PAL::WebGPU::AdapterImpl::requestDevice):
        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h:
        * pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h:
        * pal/graphics/WebGPU/WebGPUAdapter.h:
        * pal/graphics/WebGPU/WebGPUAddressMode.h:
        * pal/graphics/WebGPU/WebGPUBlendFactor.h:
        * pal/graphics/WebGPU/WebGPUBlendOperation.h:
        * pal/graphics/WebGPU/WebGPUBufferBindingType.h:
        * pal/graphics/WebGPU/WebGPUBufferUsage.h:
        * pal/graphics/WebGPU/WebGPUCanvasCompositingAlphaMode.h:
        * pal/graphics/WebGPU/WebGPUCompareFunction.h:
        * pal/graphics/WebGPU/WebGPUCompilationMessageType.h:
        * pal/graphics/WebGPU/WebGPUComputePassTimestampLocation.h:
        * pal/graphics/WebGPU/WebGPUCullMode.h:
        * pal/graphics/WebGPU/WebGPUDeviceLostReason.h:
        * pal/graphics/WebGPU/WebGPUErrorFilter.h:
        * pal/graphics/WebGPU/WebGPUFeatureName.h:
        * pal/graphics/WebGPU/WebGPUFilterMode.h:
        * pal/graphics/WebGPU/WebGPUFrontFace.h:
        * pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h:
        * pal/graphics/WebGPU/WebGPUIndexFormat.h:
        * pal/graphics/WebGPU/WebGPULoadOp.h:
        * pal/graphics/WebGPU/WebGPUMapMode.h:
        * pal/graphics/WebGPU/WebGPUPipelineStatisticName.h:
        * pal/graphics/WebGPU/WebGPUPowerPreference.h:
        * pal/graphics/WebGPU/WebGPUPredefinedColorSpace.h:
        * pal/graphics/WebGPU/WebGPUPrimitiveTopology.h:
        * pal/graphics/WebGPU/WebGPUQueryType.h:
        * pal/graphics/WebGPU/WebGPUQueue.h:
        * pal/graphics/WebGPU/WebGPURenderBundleEncoder.h:
        * pal/graphics/WebGPU/WebGPURenderPassEncoder.h:
        * pal/graphics/WebGPU/WebGPURenderPassTimestampLocation.h:
        * pal/graphics/WebGPU/WebGPUSamplerBindingType.h:
        * pal/graphics/WebGPU/WebGPUStencilOperation.h:
        * pal/graphics/WebGPU/WebGPUStorageTextureAccess.h:
        * pal/graphics/WebGPU/WebGPUStoreOp.h:
        * pal/graphics/WebGPU/WebGPUTexture.h:
        * pal/graphics/WebGPU/WebGPUTextureAspect.h:
        * pal/graphics/WebGPU/WebGPUTextureDimension.h:
        * pal/graphics/WebGPU/WebGPUTextureFormat.h:
        * pal/graphics/WebGPU/WebGPUTextureSampleType.h:
        * pal/graphics/WebGPU/WebGPUTextureViewDimension.h:
        * pal/graphics/WebGPU/WebGPUVertexFormat.h:
        * pal/graphics/WebGPU/WebGPUVertexStepMode.h:

2021-11-17  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Live Text] Plumb an identifier string through `ChromeClient::requestTextRecognition()`
        https://bugs.webkit.org/show_bug.cgi?id=233210

        Reviewed by Dean Jackson.

        Add another WebKitAdditions extension point.

        * pal/spi/cocoa/VisionKitCoreSPI.h:

2021-11-16  Devin Rousso  <drousso@apple.com>

        [Apple Pay] handle unknown setup features
        https://bugs.webkit.org/show_bug.cgi?id=233212

        Reviewed by Wenson Hsieh.

        * pal/spi/cocoa/PassKitSPI.h:
        Drive-by: Replace all `PKPaymentSetupFeatureTypeApplePay_X` with `PKPaymentSetupFeatureTypeAppleCard`.

2021-11-16  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Start preparing for serializing commands to the GPU process
        https://bugs.webkit.org/show_bug.cgi?id=233179

        Reviewed by Alex Christensen.

        Tiny cleanups. Forward-declare things that can be forward declared.

        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
        * pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h:
        * pal/graphics/WebGPU/WebGPUBufferBinding.h:
        * pal/graphics/WebGPU/WebGPUComputePassTimestampWrites.h:
        * pal/graphics/WebGPU/WebGPUImageCopyBuffer.h:
        * pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
        * pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
        * pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h:
        * pal/graphics/WebGPU/WebGPUProgrammableStage.h:
        * pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h:

2021-11-16  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Fix namespace comments
        https://bugs.webkit.org/show_bug.cgi?id=233169

        Reviewed by Alex Christensen.

        Purely mechanical.

        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h:
        * pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.h:
        * pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.cpp:
        * pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h:
        * pal/graphics/WebGPU/WebGPU.h:
        * pal/graphics/WebGPU/WebGPUAdapter.h:
        * pal/graphics/WebGPU/WebGPUAddressMode.h:
        * pal/graphics/WebGPU/WebGPUBindGroup.h:
        * pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h:
        * pal/graphics/WebGPU/WebGPUBindGroupEntry.h:
        * pal/graphics/WebGPU/WebGPUBindGroupLayout.h:
        * pal/graphics/WebGPU/WebGPUBindGroupLayoutDescriptor.h:
        * pal/graphics/WebGPU/WebGPUBindGroupLayoutEntry.h:
        * pal/graphics/WebGPU/WebGPUBlendComponent.h:
        * pal/graphics/WebGPU/WebGPUBlendFactor.h:
        * pal/graphics/WebGPU/WebGPUBlendOperation.h:
        * pal/graphics/WebGPU/WebGPUBlendState.h:
        * pal/graphics/WebGPU/WebGPUBuffer.h:
        * pal/graphics/WebGPU/WebGPUBufferBinding.h:
        * pal/graphics/WebGPU/WebGPUBufferBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUBufferBindingType.h:
        * pal/graphics/WebGPU/WebGPUBufferDescriptor.h:
        * pal/graphics/WebGPU/WebGPUBufferUsage.h:
        * pal/graphics/WebGPU/WebGPUCanvasCompositingAlphaMode.h:
        * pal/graphics/WebGPU/WebGPUCanvasConfiguration.h:
        * pal/graphics/WebGPU/WebGPUColor.h:
        * pal/graphics/WebGPU/WebGPUColorTargetState.h:
        * pal/graphics/WebGPU/WebGPUColorWrite.h:
        * pal/graphics/WebGPU/WebGPUCommandBuffer.h:
        * pal/graphics/WebGPU/WebGPUCommandBufferDescriptor.h:
        * pal/graphics/WebGPU/WebGPUCommandEncoder.h:
        * pal/graphics/WebGPU/WebGPUCommandEncoderDescriptor.h:
        * pal/graphics/WebGPU/WebGPUCompareFunction.h:
        * pal/graphics/WebGPU/WebGPUCompilationInfo.h:
        * pal/graphics/WebGPU/WebGPUCompilationMessage.h:
        * pal/graphics/WebGPU/WebGPUCompilationMessageType.h:
        * pal/graphics/WebGPU/WebGPUComputePassDescriptor.h:
        * pal/graphics/WebGPU/WebGPUComputePassEncoder.h:
        * pal/graphics/WebGPU/WebGPUComputePassTimestampLocation.h:
        * pal/graphics/WebGPU/WebGPUComputePassTimestampWrites.h:
        * pal/graphics/WebGPU/WebGPUComputePipeline.h:
        * pal/graphics/WebGPU/WebGPUComputePipelineDescriptor.h:
        * pal/graphics/WebGPU/WebGPUCullMode.h:
        * pal/graphics/WebGPU/WebGPUDepthStencilState.h:
        * pal/graphics/WebGPU/WebGPUDevice.h:
        * pal/graphics/WebGPU/WebGPUDeviceDescriptor.h:
        * pal/graphics/WebGPU/WebGPUDeviceLostInfo.h:
        * pal/graphics/WebGPU/WebGPUDeviceLostReason.h:
        * pal/graphics/WebGPU/WebGPUError.h:
        * pal/graphics/WebGPU/WebGPUErrorFilter.h:
        * pal/graphics/WebGPU/WebGPUExtent3D.h:
        * pal/graphics/WebGPU/WebGPUExternalTexture.h:
        * pal/graphics/WebGPU/WebGPUExternalTextureBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h:
        * pal/graphics/WebGPU/WebGPUFeatureName.h:
        * pal/graphics/WebGPU/WebGPUFilterMode.h:
        * pal/graphics/WebGPU/WebGPUFragmentState.h:
        * pal/graphics/WebGPU/WebGPUFrontFace.h:
        * pal/graphics/WebGPU/WebGPUImageCopyBuffer.h:
        * pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h:
        * pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
        * pal/graphics/WebGPU/WebGPUImageCopyTextureTagged.h:
        * pal/graphics/WebGPU/WebGPUImageDataLayout.h:
        * pal/graphics/WebGPU/WebGPUIndexFormat.h:
        * pal/graphics/WebGPU/WebGPUIntegralTypes.h:
        * pal/graphics/WebGPU/WebGPULoadOp.h:
        * pal/graphics/WebGPU/WebGPUMapMode.h:
        * pal/graphics/WebGPU/WebGPUMultisampleState.h:
        * pal/graphics/WebGPU/WebGPUObjectDescriptorBase.h:
        * pal/graphics/WebGPU/WebGPUOrigin2D.h:
        * pal/graphics/WebGPU/WebGPUOrigin3D.h:
        * pal/graphics/WebGPU/WebGPUOutOfMemoryError.h:
        * pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
        * pal/graphics/WebGPU/WebGPUPipelineLayout.h:
        * pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h:
        * pal/graphics/WebGPU/WebGPUPipelineStatisticName.h:
        * pal/graphics/WebGPU/WebGPUPowerPreference.h:
        * pal/graphics/WebGPU/WebGPUPredefinedColorSpace.h:
        * pal/graphics/WebGPU/WebGPUPrimitiveState.h:
        * pal/graphics/WebGPU/WebGPUPrimitiveTopology.h:
        * pal/graphics/WebGPU/WebGPUProgrammableStage.h:
        * pal/graphics/WebGPU/WebGPUQuerySet.h:
        * pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h:
        * pal/graphics/WebGPU/WebGPUQueryType.h:
        * pal/graphics/WebGPU/WebGPUQueue.h:
        * pal/graphics/WebGPU/WebGPURenderBundle.h:
        * pal/graphics/WebGPU/WebGPURenderBundleDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderBundleEncoder.h:
        * pal/graphics/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderPassEncoder.h:
        * pal/graphics/WebGPU/WebGPURenderPassLayout.h:
        * pal/graphics/WebGPU/WebGPURenderPassTimestampLocation.h:
        * pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h:
        * pal/graphics/WebGPU/WebGPURenderPipeline.h:
        * pal/graphics/WebGPU/WebGPURenderPipelineDescriptor.h:
        * pal/graphics/WebGPU/WebGPURequestAdapterOptions.h:
        * pal/graphics/WebGPU/WebGPUSampler.h:
        * pal/graphics/WebGPU/WebGPUSamplerBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUSamplerBindingType.h:
        * pal/graphics/WebGPU/WebGPUSamplerDescriptor.h:
        * pal/graphics/WebGPU/WebGPUShaderModule.h:
        * pal/graphics/WebGPU/WebGPUShaderModuleDescriptor.h:
        * pal/graphics/WebGPU/WebGPUShaderStage.h:
        * pal/graphics/WebGPU/WebGPUStencilFaceState.h:
        * pal/graphics/WebGPU/WebGPUStencilOperation.h:
        * pal/graphics/WebGPU/WebGPUStorageTextureAccess.h:
        * pal/graphics/WebGPU/WebGPUStorageTextureBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUStoreOp.h:
        * pal/graphics/WebGPU/WebGPUSupportedFeatures.h:
        * pal/graphics/WebGPU/WebGPUSupportedLimits.h:
        * pal/graphics/WebGPU/WebGPUTexture.h:
        * pal/graphics/WebGPU/WebGPUTextureAspect.h:
        * pal/graphics/WebGPU/WebGPUTextureBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUTextureDescriptor.h:
        * pal/graphics/WebGPU/WebGPUTextureDimension.h:
        * pal/graphics/WebGPU/WebGPUTextureFormat.h:
        * pal/graphics/WebGPU/WebGPUTextureSampleType.h:
        * pal/graphics/WebGPU/WebGPUTextureUsage.h:
        * pal/graphics/WebGPU/WebGPUTextureView.h:
        * pal/graphics/WebGPU/WebGPUTextureViewDescriptor.h:
        * pal/graphics/WebGPU/WebGPUTextureViewDimension.h:
        * pal/graphics/WebGPU/WebGPUUncapturedErrorEvent.h:
        * pal/graphics/WebGPU/WebGPUUncapturedErrorEventInit.h:
        * pal/graphics/WebGPU/WebGPUValidationError.h:
        * pal/graphics/WebGPU/WebGPUVertexAttribute.h:
        * pal/graphics/WebGPU/WebGPUVertexBufferLayout.h:
        * pal/graphics/WebGPU/WebGPUVertexFormat.h:
        * pal/graphics/WebGPU/WebGPUVertexState.h:
        * pal/graphics/WebGPU/WebGPUVertexStepMode.h:

2021-11-16  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Vertex and fragment shaders are not hooked up to pipeline creation
        https://bugs.webkit.org/show_bug.cgi?id=233166

        Reviewed by Dean Jackson.

        I simply forgot to implement them in r285831.

        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp:
        (PAL::WebGPU::supportedLimits):
        * pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp:
        (PAL::WebGPU::convertToBacking):

2021-11-15  Sam Weinig  <weinig@apple.com>

        Add another <model> backend backed by SceneKit to prove out ModelPlayer infrastructure a bit more
        https://bugs.webkit.org/show_bug.cgi?id=233112

        Reviewed by Dean Jackson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/SceneKitSPI.h: Added.
        Adds forward declaration of SCNMetalLayer SPI so SceneKit can be used
        without an NSView/UIView.

2021-11-15  Jer Noble  <jer.noble@apple.com>

        [iOS] Adopt -[AVAudioSession setAuditTokensForProcessAssertion:]
        https://bugs.webkit.org/show_bug.cgi?id=232909
        <rdar://68184444>

        Reviewed by Eric Carlson.

        Re-declare -setAuditTokensForProcessAssertion in APPLE_INTERNAL_SDK section.

        * pal/spi/cocoa/AVFoundationSPI.h:

2021-11-15  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] [Cocoa] Connect WebCore & PAL to WebGPU.framework
        https://bugs.webkit.org/show_bug.cgi?id=233106

        Reviewed by Dean Jackson.

        This adds an implementation of WebGPU's virtual interfaces on top of WebGPU.framework.
        That framework's headers almost exactly match the WebGPU API, so the connections are
        mostly mechanical. There's just a bunch of marshalling code to convert between
        descriptor and structs from WebCore's interface to WebGPU.framework's
        descriptors/structs.

        This uses the same "convertToBacking" convention, where functions that convert from the
        higher-level WebCore types to the lower-level WebGPU.framework types are named
        "convertToBacking()". Unfortunately, the WebGPU API takes many of these structs by
        non-const reference, and the structs are nested by non-const reference, which means I
        can't just have simple 1-in-1-out converter functions for every struct, since the
        inner structs have to be referenced by-reference and therefore have to be in-scope. This
        means that the simple enum and flags types use convertToBacking(), but most of the
        structs have to be converted at their use site. Luckily, almost all of these structs
        only have a single use site, so there isn't much duplication.

        For now, this implementation is Cocoa-only, because in order for these calls to
        WebGPU.framework to be legal, WebCore has to link with an implementation of those
        functions. The Cocoa ports are the only ones which actually have an implementation of
        those functions, so those are the only ports which can actually compile this code. If
        the other ports want to link with Dawn or WGPU, this code should be (mostly) usable
        out-of-the-box for them. I say "mostly" because the header that's shared between Dawn,
        WGPU, and WebGPU.framework isn't finalized yet. As such, this implementation relies on
        functions from WebGPUExt.h, which is an additional header (that only exists in
        WebGPU.framework) that adds the missing pieces.

        * PAL.xcodeproj/project.pbxproj:
        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.cpp: Added.
        (PAL::WebGPU::adapterName):
        (PAL::WebGPU::supportedFeatures):
        (PAL::WebGPU::supportedLimits):
        (PAL::WebGPU::isFallbackAdapter):
        (PAL::WebGPU::AdapterImpl::AdapterImpl):
        (PAL::WebGPU::AdapterImpl::~AdapterImpl):
        (PAL::WebGPU::requestDeviceCallback):
        (PAL::WebGPU::AdapterImpl::requestDevice):
        (PAL::WebGPU::AdapterImpl::requestDeviceCallback):
        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.cpp: Added.
        (PAL::WebGPU::BindGroupImpl::BindGroupImpl):
        (PAL::WebGPU::BindGroupImpl::~BindGroupImpl):
        (PAL::WebGPU::BindGroupImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.cpp: Added.
        (PAL::WebGPU::BindGroupLayoutImpl::BindGroupLayoutImpl):
        (PAL::WebGPU::BindGroupLayoutImpl::~BindGroupLayoutImpl):
        (PAL::WebGPU::BindGroupLayoutImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUBufferImpl.cpp: Added.
        (PAL::WebGPU::BufferImpl::BufferImpl):
        (PAL::WebGPU::BufferImpl::~BufferImpl):
        (PAL::WebGPU::mapCallback):
        (PAL::WebGPU::BufferImpl::mapAsync):
        (PAL::WebGPU::BufferImpl::mapCallback):
        (PAL::WebGPU::BufferImpl::getMappedRange):
        (PAL::WebGPU::BufferImpl::unmap):
        (PAL::WebGPU::BufferImpl::destroy):
        (PAL::WebGPU::BufferImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.cpp: Added.
        (PAL::WebGPU::CommandBufferImpl::CommandBufferImpl):
        (PAL::WebGPU::CommandBufferImpl::~CommandBufferImpl):
        (PAL::WebGPU::CommandBufferImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.cpp: Added.
        (PAL::WebGPU::CommandEncoderImpl::CommandEncoderImpl):
        (PAL::WebGPU::CommandEncoderImpl::~CommandEncoderImpl):
        (PAL::WebGPU::CommandEncoderImpl::beginRenderPass):
        (PAL::WebGPU::CommandEncoderImpl::beginComputePass):
        (PAL::WebGPU::CommandEncoderImpl::copyBufferToBuffer):
        (PAL::WebGPU::CommandEncoderImpl::copyBufferToTexture):
        (PAL::WebGPU::CommandEncoderImpl::copyTextureToBuffer):
        (PAL::WebGPU::CommandEncoderImpl::copyTextureToTexture):
        (PAL::WebGPU::CommandEncoderImpl::fillBuffer):
        (PAL::WebGPU::CommandEncoderImpl::pushDebugGroup):
        (PAL::WebGPU::CommandEncoderImpl::popDebugGroup):
        (PAL::WebGPU::CommandEncoderImpl::insertDebugMarker):
        (PAL::WebGPU::CommandEncoderImpl::writeTimestamp):
        (PAL::WebGPU::CommandEncoderImpl::resolveQuerySet):
        (PAL::WebGPU::CommandEncoderImpl::finish):
        (PAL::WebGPU::CommandEncoderImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.cpp: Added.
        (PAL::WebGPU::ComputePassEncoderImpl::ComputePassEncoderImpl):
        (PAL::WebGPU::ComputePassEncoderImpl::~ComputePassEncoderImpl):
        (PAL::WebGPU::ComputePassEncoderImpl::setPipeline):
        (PAL::WebGPU::ComputePassEncoderImpl::dispatch):
        (PAL::WebGPU::ComputePassEncoderImpl::dispatchIndirect):
        (PAL::WebGPU::ComputePassEncoderImpl::beginPipelineStatisticsQuery):
        (PAL::WebGPU::ComputePassEncoderImpl::endPipelineStatisticsQuery):
        (PAL::WebGPU::ComputePassEncoderImpl::endPass):
        (PAL::WebGPU::ComputePassEncoderImpl::setBindGroup):
        (PAL::WebGPU::ComputePassEncoderImpl::pushDebugGroup):
        (PAL::WebGPU::ComputePassEncoderImpl::popDebugGroup):
        (PAL::WebGPU::ComputePassEncoderImpl::insertDebugMarker):
        (PAL::WebGPU::ComputePassEncoderImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.cpp: Added.
        (PAL::WebGPU::ComputePipelineImpl::ComputePipelineImpl):
        (PAL::WebGPU::ComputePipelineImpl::~ComputePipelineImpl):
        (PAL::WebGPU::ComputePipelineImpl::getBindGroupLayout):
        (PAL::WebGPU::ComputePipelineImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUConvertToBacking.cpp: Added.
        (PAL::WebGPU::convertToBacking):
        (PAL::WebGPU::convertBufferUsageFlagsToBacking):
        (PAL::WebGPU::convertColorWriteFlagsToBacking):
        (PAL::WebGPU::convertMapModeFlagsToBacking):
        (PAL::WebGPU::convertShaderStageFlagsToBacking):
        (PAL::WebGPU::convertTextureUsageFlagsToBacking):
        * pal/graphics/WebGPU/Impl/WebGPUConvertToBacking.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.cpp: Added.
        (PAL::WebGPU::DeviceImpl::DeviceImpl):
        (PAL::WebGPU::DeviceImpl::~DeviceImpl):
        (PAL::WebGPU::DeviceImpl::destroy):
        (PAL::WebGPU::DeviceImpl::createBuffer):
        (PAL::WebGPU::DeviceImpl::createTexture):
        (PAL::WebGPU::DeviceImpl::createSampler):
        (PAL::WebGPU::DeviceImpl::importExternalTexture):
        (PAL::WebGPU::DeviceImpl::createBindGroupLayout):
        (PAL::WebGPU::DeviceImpl::createPipelineLayout):
        (PAL::WebGPU::DeviceImpl::createBindGroup):
        (PAL::WebGPU::DeviceImpl::createShaderModule):
        (PAL::WebGPU::convertToBacking):
        (PAL::WebGPU::DeviceImpl::createComputePipeline):
        (PAL::WebGPU::DeviceImpl::createRenderPipeline):
        (PAL::WebGPU::createComputePipelineAsyncCallback):
        (PAL::WebGPU::DeviceImpl::createComputePipelineAsync):
        (PAL::WebGPU::DeviceImpl::createComputePipelineAsyncCallback):
        (PAL::WebGPU::createRenderPipelineAsyncCallback):
        (PAL::WebGPU::DeviceImpl::createRenderPipelineAsync):
        (PAL::WebGPU::DeviceImpl::createRenderPipelineAsyncCallback):
        (PAL::WebGPU::DeviceImpl::createCommandEncoder):
        (PAL::WebGPU::DeviceImpl::createRenderBundleEncoder):
        (PAL::WebGPU::DeviceImpl::createQuerySet):
        (PAL::WebGPU::DeviceImpl::pushErrorScope):
        (PAL::WebGPU::popErrorScopeCallback):
        (PAL::WebGPU::DeviceImpl::popErrorScope):
        (PAL::WebGPU::DeviceImpl::popErrorScopeCallback):
        (PAL::WebGPU::DeviceImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.cpp: Added.
        (PAL::WebGPU::ExternalTextureImpl::ExternalTextureImpl):
        (PAL::WebGPU::ExternalTextureImpl::~ExternalTextureImpl):
        (PAL::WebGPU::ExternalTextureImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUImpl.cpp: Added.
        (PAL::WebGPU::GPUImpl::GPUImpl):
        (PAL::WebGPU::GPUImpl::~GPUImpl):
        (PAL::WebGPU::requestAdapterCallback):
        (PAL::WebGPU::GPUImpl::requestAdapter):
        (PAL::WebGPU::GPUImpl::requestAdapterCallback):
        * pal/graphics/WebGPU/Impl/WebGPUImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.cpp: Added.
        (PAL::WebGPU::PipelineLayoutImpl::PipelineLayoutImpl):
        (PAL::WebGPU::PipelineLayoutImpl::~PipelineLayoutImpl):
        (PAL::WebGPU::PipelineLayoutImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.cpp: Added.
        (PAL::WebGPU::QuerySetImpl::QuerySetImpl):
        (PAL::WebGPU::QuerySetImpl::~QuerySetImpl):
        (PAL::WebGPU::QuerySetImpl::destroy):
        (PAL::WebGPU::QuerySetImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUQueueImpl.cpp: Added.
        (PAL::WebGPU::QueueImpl::QueueImpl):
        (PAL::WebGPU::QueueImpl::~QueueImpl):
        (PAL::WebGPU::QueueImpl::submit):
        (PAL::WebGPU::onSubmittedWorkDoneCallback):
        (PAL::WebGPU::QueueImpl::onSubmittedWorkDone):
        (PAL::WebGPU::QueueImpl::onSubmittedWorkDoneCallback):
        (PAL::WebGPU::QueueImpl::writeBuffer):
        (PAL::WebGPU::QueueImpl::writeTexture):
        (PAL::WebGPU::QueueImpl::copyExternalImageToTexture):
        (PAL::WebGPU::QueueImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.cpp: Added.
        (PAL::WebGPU::RenderBundleEncoderImpl::RenderBundleEncoderImpl):
        (PAL::WebGPU::RenderBundleEncoderImpl::~RenderBundleEncoderImpl):
        (PAL::WebGPU::RenderBundleEncoderImpl::setPipeline):
        (PAL::WebGPU::RenderBundleEncoderImpl::setIndexBuffer):
        (PAL::WebGPU::RenderBundleEncoderImpl::setVertexBuffer):
        (PAL::WebGPU::RenderBundleEncoderImpl::draw):
        (PAL::WebGPU::RenderBundleEncoderImpl::drawIndexed):
        (PAL::WebGPU::RenderBundleEncoderImpl::drawIndirect):
        (PAL::WebGPU::RenderBundleEncoderImpl::drawIndexedIndirect):
        (PAL::WebGPU::RenderBundleEncoderImpl::setBindGroup):
        (PAL::WebGPU::RenderBundleEncoderImpl::pushDebugGroup):
        (PAL::WebGPU::RenderBundleEncoderImpl::popDebugGroup):
        (PAL::WebGPU::RenderBundleEncoderImpl::insertDebugMarker):
        (PAL::WebGPU::RenderBundleEncoderImpl::finish):
        (PAL::WebGPU::RenderBundleEncoderImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.cpp: Added.
        (PAL::WebGPU::RenderBundleImpl::RenderBundleImpl):
        (PAL::WebGPU::RenderBundleImpl::~RenderBundleImpl):
        (PAL::WebGPU::RenderBundleImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp: Added.
        (PAL::WebGPU::RenderPassEncoderImpl::RenderPassEncoderImpl):
        (PAL::WebGPU::RenderPassEncoderImpl::~RenderPassEncoderImpl):
        (PAL::WebGPU::RenderPassEncoderImpl::setPipeline):
        (PAL::WebGPU::RenderPassEncoderImpl::setIndexBuffer):
        (PAL::WebGPU::RenderPassEncoderImpl::setVertexBuffer):
        (PAL::WebGPU::RenderPassEncoderImpl::draw):
        (PAL::WebGPU::RenderPassEncoderImpl::drawIndexed):
        (PAL::WebGPU::RenderPassEncoderImpl::drawIndirect):
        (PAL::WebGPU::RenderPassEncoderImpl::drawIndexedIndirect):
        (PAL::WebGPU::RenderPassEncoderImpl::setBindGroup):
        (PAL::WebGPU::RenderPassEncoderImpl::pushDebugGroup):
        (PAL::WebGPU::RenderPassEncoderImpl::popDebugGroup):
        (PAL::WebGPU::RenderPassEncoderImpl::insertDebugMarker):
        (PAL::WebGPU::RenderPassEncoderImpl::setViewport):
        (PAL::WebGPU::RenderPassEncoderImpl::setScissorRect):
        (PAL::WebGPU::RenderPassEncoderImpl::setBlendConstant):
        (PAL::WebGPU::RenderPassEncoderImpl::setStencilReference):
        (PAL::WebGPU::RenderPassEncoderImpl::beginOcclusionQuery):
        (PAL::WebGPU::RenderPassEncoderImpl::endOcclusionQuery):
        (PAL::WebGPU::RenderPassEncoderImpl::beginPipelineStatisticsQuery):
        (PAL::WebGPU::RenderPassEncoderImpl::endPipelineStatisticsQuery):
        (PAL::WebGPU::RenderPassEncoderImpl::executeBundles):
        (PAL::WebGPU::RenderPassEncoderImpl::endPass):
        (PAL::WebGPU::RenderPassEncoderImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.cpp: Added.
        (PAL::WebGPU::RenderPipelineImpl::RenderPipelineImpl):
        (PAL::WebGPU::RenderPipelineImpl::~RenderPipelineImpl):
        (PAL::WebGPU::RenderPipelineImpl::getBindGroupLayout):
        (PAL::WebGPU::RenderPipelineImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.cpp: Added.
        (PAL::WebGPU::SamplerImpl::SamplerImpl):
        (PAL::WebGPU::SamplerImpl::~SamplerImpl):
        (PAL::WebGPU::SamplerImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.cpp: Added.
        (PAL::WebGPU::ShaderModuleImpl::ShaderModuleImpl):
        (PAL::WebGPU::ShaderModuleImpl::~ShaderModuleImpl):
        (PAL::WebGPU::ShaderModuleImpl::compilationInfo):
        (PAL::WebGPU::ShaderModuleImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUTextureImpl.cpp: Added.
        (PAL::WebGPU::TextureImpl::TextureImpl):
        (PAL::WebGPU::TextureImpl::~TextureImpl):
        (PAL::WebGPU::TextureImpl::createView const):
        (PAL::WebGPU::TextureImpl::destroy):
        (PAL::WebGPU::TextureImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h: Added.
        * pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.cpp: Added.
        (PAL::WebGPU::TextureViewImpl::TextureViewImpl):
        (PAL::WebGPU::TextureViewImpl::~TextureViewImpl):
        (PAL::WebGPU::TextureViewImpl::setLabelInternal):
        * pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h: Added.

2021-11-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, fix the internal iOS 15 build

        In the internal iOS 15 SDK, <UIKit/NSTextList.h> does not define NSTextListMarkerFormat. Add a separate SDK
        version check instead and only attempt to soft-link these constants if we're compiling against an SDK that we
        know exports these symbols.

        * pal/spi/cocoa/NSAttributedStringSPI.h:

2021-11-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        Declare NSTextListMarker* as type NSTextListMarkerFormat when soft-linking
        https://bugs.webkit.org/show_bug.cgi?id=233064
        rdar://85341122

        Reviewed by Tim Horton.

        Followup to r285744. Avoid build errors due to defining these constants as a different type of symbol
        (NSString * vs. NSTextListMarkerFormat). To address this, we directly import `NSTextList.h` if it's available in
        the SDK; otherwise, fall back to defining NSTextListMarkerFormat. In both cases, we need to keep soft linking
        each of these constants, since WebCore cannot explicitly link against UIKit.

        * pal/spi/cocoa/NSAttributedStringSPI.h:

2021-11-14  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Various mechanical cleanups
        https://bugs.webkit.org/show_bug.cgi?id=233104

        Reviewed by Dean Jackson.

        - Explicitly delete some constructors and operators that we don't want
        - Tweak const methods
        - Add "// namespace WebCore" around closing namespace braces
        - Trailing commas on enums

        * pal/graphics/WebGPU/WebGPU.h:
        * pal/graphics/WebGPU/WebGPUAdapter.h:
        (PAL::WebGPU::Adapter::features const):
        (PAL::WebGPU::Adapter::limits const):
        * pal/graphics/WebGPU/WebGPUAddressMode.h:
        * pal/graphics/WebGPU/WebGPUBindGroup.h:
        * pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h:
        * pal/graphics/WebGPU/WebGPUBindGroupEntry.h:
        * pal/graphics/WebGPU/WebGPUBindGroupLayout.h:
        * pal/graphics/WebGPU/WebGPUBindGroupLayoutDescriptor.h:
        * pal/graphics/WebGPU/WebGPUBindGroupLayoutEntry.h:
        * pal/graphics/WebGPU/WebGPUBlendComponent.h:
        * pal/graphics/WebGPU/WebGPUBlendFactor.h:
        * pal/graphics/WebGPU/WebGPUBlendOperation.h:
        * pal/graphics/WebGPU/WebGPUBlendState.h:
        * pal/graphics/WebGPU/WebGPUBuffer.h:
        * pal/graphics/WebGPU/WebGPUBufferBinding.h:
        * pal/graphics/WebGPU/WebGPUBufferBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUBufferBindingType.h:
        * pal/graphics/WebGPU/WebGPUBufferDescriptor.h:
        * pal/graphics/WebGPU/WebGPUBufferUsage.h:
        * pal/graphics/WebGPU/WebGPUCanvasCompositingAlphaMode.h:
        * pal/graphics/WebGPU/WebGPUCanvasConfiguration.h:
        * pal/graphics/WebGPU/WebGPUColorTargetState.h:
        * pal/graphics/WebGPU/WebGPUColorWrite.h:
        * pal/graphics/WebGPU/WebGPUCommandBuffer.h:
        * pal/graphics/WebGPU/WebGPUCommandBufferDescriptor.h:
        * pal/graphics/WebGPU/WebGPUCommandEncoder.h:
        * pal/graphics/WebGPU/WebGPUCommandEncoderDescriptor.h:
        * pal/graphics/WebGPU/WebGPUCompareFunction.h:
        * pal/graphics/WebGPU/WebGPUCompilationInfo.h:
        * pal/graphics/WebGPU/WebGPUCompilationMessage.h:
        * pal/graphics/WebGPU/WebGPUCompilationMessageType.h:
        * pal/graphics/WebGPU/WebGPUComputePassDescriptor.h:
        * pal/graphics/WebGPU/WebGPUComputePassEncoder.h:
        * pal/graphics/WebGPU/WebGPUComputePassTimestampLocation.h:
        * pal/graphics/WebGPU/WebGPUComputePipeline.h:
        * pal/graphics/WebGPU/WebGPUComputePipelineDescriptor.h:
        * pal/graphics/WebGPU/WebGPUCullMode.h:
        * pal/graphics/WebGPU/WebGPUDepthStencilState.h:
        * pal/graphics/WebGPU/WebGPUDevice.h:
        * pal/graphics/WebGPU/WebGPUDeviceDescriptor.h:
        * pal/graphics/WebGPU/WebGPUDeviceLostInfo.h:
        * pal/graphics/WebGPU/WebGPUDeviceLostReason.h:
        * pal/graphics/WebGPU/WebGPUErrorFilter.h:
        * pal/graphics/WebGPU/WebGPUExternalTexture.h:
        * pal/graphics/WebGPU/WebGPUExternalTextureBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h:
        * pal/graphics/WebGPU/WebGPUFeatureName.h:
        * pal/graphics/WebGPU/WebGPUFilterMode.h:
        * pal/graphics/WebGPU/WebGPUFragmentState.h:
        * pal/graphics/WebGPU/WebGPUFrontFace.h:
        * pal/graphics/WebGPU/WebGPUImageCopyBuffer.h:
        * pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h:
        * pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
        * pal/graphics/WebGPU/WebGPUImageCopyTextureTagged.h:
        * pal/graphics/WebGPU/WebGPUImageDataLayout.h:
        * pal/graphics/WebGPU/WebGPUIndexFormat.h:
        * pal/graphics/WebGPU/WebGPULoadOp.h:
        * pal/graphics/WebGPU/WebGPUMapMode.h:
        * pal/graphics/WebGPU/WebGPUMultisampleState.h:
        * pal/graphics/WebGPU/WebGPUObjectDescriptorBase.h:
        * pal/graphics/WebGPU/WebGPUOutOfMemoryError.h:
        (PAL::WebGPU::OutOfMemoryError::create):
        * pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
        * pal/graphics/WebGPU/WebGPUPipelineLayout.h:
        * pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h:
        * pal/graphics/WebGPU/WebGPUPipelineStatisticName.h:
        * pal/graphics/WebGPU/WebGPUPowerPreference.h:
        * pal/graphics/WebGPU/WebGPUPredefinedColorSpace.h:
        * pal/graphics/WebGPU/WebGPUPrimitiveState.h:
        * pal/graphics/WebGPU/WebGPUPrimitiveTopology.h:
        * pal/graphics/WebGPU/WebGPUProgrammableStage.h:
        * pal/graphics/WebGPU/WebGPUQuerySet.h:
        * pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h:
        * pal/graphics/WebGPU/WebGPUQueryType.h:
        * pal/graphics/WebGPU/WebGPUQueue.h:
        * pal/graphics/WebGPU/WebGPURenderBundle.h:
        * pal/graphics/WebGPU/WebGPURenderBundleDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderBundleEncoder.h:
        * pal/graphics/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderPassEncoder.h:
        * pal/graphics/WebGPU/WebGPURenderPassLayout.h:
        * pal/graphics/WebGPU/WebGPURenderPassTimestampLocation.h:
        * pal/graphics/WebGPU/WebGPURenderPipeline.h:
        * pal/graphics/WebGPU/WebGPURenderPipelineDescriptor.h:
        * pal/graphics/WebGPU/WebGPURequestAdapterOptions.h:
        * pal/graphics/WebGPU/WebGPUSampler.h:
        * pal/graphics/WebGPU/WebGPUSamplerBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUSamplerBindingType.h:
        * pal/graphics/WebGPU/WebGPUSamplerDescriptor.h:
        * pal/graphics/WebGPU/WebGPUShaderModule.h:
        * pal/graphics/WebGPU/WebGPUShaderModuleDescriptor.h:
        * pal/graphics/WebGPU/WebGPUShaderStage.h:
        * pal/graphics/WebGPU/WebGPUStencilFaceState.h:
        * pal/graphics/WebGPU/WebGPUStencilOperation.h:
        * pal/graphics/WebGPU/WebGPUStorageTextureAccess.h:
        * pal/graphics/WebGPU/WebGPUStorageTextureBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUStoreOp.h:
        * pal/graphics/WebGPU/WebGPUSupportedFeatures.h:
        * pal/graphics/WebGPU/WebGPUSupportedLimits.h:
        * pal/graphics/WebGPU/WebGPUTexture.h:
        * pal/graphics/WebGPU/WebGPUTextureAspect.h:
        * pal/graphics/WebGPU/WebGPUTextureBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUTextureDescriptor.h:
        * pal/graphics/WebGPU/WebGPUTextureDimension.h:
        * pal/graphics/WebGPU/WebGPUTextureFormat.h:
        * pal/graphics/WebGPU/WebGPUTextureSampleType.h:
        * pal/graphics/WebGPU/WebGPUTextureUsage.h:
        * pal/graphics/WebGPU/WebGPUTextureView.h:
        * pal/graphics/WebGPU/WebGPUTextureViewDescriptor.h:
        * pal/graphics/WebGPU/WebGPUTextureViewDimension.h:
        * pal/graphics/WebGPU/WebGPUUncapturedErrorEvent.h:
        * pal/graphics/WebGPU/WebGPUUncapturedErrorEventInit.h:
        * pal/graphics/WebGPU/WebGPUValidationError.h:
        * pal/graphics/WebGPU/WebGPUVertexAttribute.h:
        * pal/graphics/WebGPU/WebGPUVertexBufferLayout.h:
        * pal/graphics/WebGPU/WebGPUVertexFormat.h:
        * pal/graphics/WebGPU/WebGPUVertexState.h:
        * pal/graphics/WebGPU/WebGPUVertexStepMode.h:

2021-11-14  Simon Fraser  <simon.fraser@apple.com>

        Attach IOHIDEvent timestamps to wheel events
        https://bugs.webkit.org/show_bug.cgi?id=233051

        Reviewed by Wenson Hsieh.
        
        Expose a few bits of SPI needed.

        * pal/spi/cg/CoreGraphicsSPI.h:
        * pal/spi/cocoa/IOKitSPI.h:

2021-11-13  Tim Horton  <timothy_horton@apple.com>

        Clean up IOKit SPI headers
        https://bugs.webkit.org/show_bug.cgi?id=233093

        Reviewed by Simon Fraser.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cg/CoreGraphicsSPI.h:
        * pal/spi/cocoa/IOKitSPI.h:
        * pal/spi/ios/IOKitSPIIOS.h: Added.
        * pal/spi/mac/IOKitSPIMac.h:
        IOKit vends a much different set of public API on iOS vs. macOS,
        so we have separate SPI headers to reduce the confusion.

        Unfortunately, the SPI header for iOS was not explicitly named as such,
        and started being used in some macOS code. For a while, this didn't lead
        to any trouble because the aforementioned macOS code didn't ALSO have
        the public SDK headers included, but a future patch from Simon will
        use IOKitSPI.h in a place where the macOS IOKit public headers are included,
        and thus we must make the split more explicit.

        Rename IOKitSPI.h to IOKitSPIIOS.h; make IOKitSPI choose the right one.
        Add some SPI defintions to IOKitSPIMac.h that were missing (which the
        dependent code was getting via the iOS header on macOS).

2021-11-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        Stop statically declaring various UIFoundation constants in NSAttributedStringSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=233064
        rdar://85341122

        Reviewed by Tim Horton.

        Replace these static NSString definitions with soft-linked constants instead.

        * pal/spi/cocoa/NSAttributedStringSPI.h:

2021-11-11  Adrian Perez de Castro  <aperez@igalia.com>

        Non-unified build fixes, early November 2021 edition, bis
        https://bugs.webkit.org/show_bug.cgi?id=232998

        Unreviewed non-unified build fixes.

        * pal/graphics/WebGPU/WebGPUColorWrite.h: Add missing wtf/RefCounted.h header.
        * pal/graphics/WebGPU/WebGPUSupportedLimits.h: Add missing wtf/Ref.h header.
        * pal/graphics/WebGPU/WebGPUValidationError.h: Add missing wtf/text/WTFString.h header.

2021-11-10  Jer Noble  <jer.noble@apple.com>

        [iOS] Adopt -[AVAudioSession setAuditTokensForProcessAssertion:]
        https://bugs.webkit.org/show_bug.cgi?id=232909
        <rdar://68184444>

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/AVFoundationSPI.h:

2021-11-09  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Migrate from CTFontCopyVariationAxes() to CTFontCopyVariationAxesInternal() if possible
        https://bugs.webkit.org/show_bug.cgi?id=232690

        Reviewed by Simon Fraser and Cameron McCormack.

        * pal/spi/cf/CoreTextSPI.h:

2021-11-09  Devin Rousso  <drousso@apple.com>

        REGRESSION(r271735): PaymentShippingOption.selected ignored
        https://bugs.webkit.org/show_bug.cgi?id=221960
        <rdar://problem/73464404>

        Reviewed by Tim Horton.

        Leverage new `PKShippingMethods` SPI to provide both the general list of `PKShippingMethod`
        and the default selected `PKShippingMethods` when creating/updating a payment request.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm:
        * pal/spi/cocoa/PassKitSPI.h:

2021-11-09  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r285318.
        https://bugs.webkit.org/show_bug.cgi?id=232894

        broke Apple internal build

        Reverted changeset:

        "[Cocoa] Migrate from CTFontCopyVariationAxes() to
        CTFontCopyVariationAxesInternal() if possible"
        https://bugs.webkit.org/show_bug.cgi?id=232690
        https://commits.webkit.org/r285318

2021-11-08  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Connect JS bindings code to internal WebGPU interface
        https://bugs.webkit.org/show_bug.cgi?id=232804

        Reviewed by Dean Jackson.

        Various assorted cleanups.

        * PAL.xcodeproj/project.pbxproj:
        * pal/graphics/WebGPU/WebGPU.h:
        * pal/graphics/WebGPU/WebGPUAdapter.h:
        (PAL::WebGPU::Adapter::Adapter):
        * pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h:
        * pal/graphics/WebGPU/WebGPUBindGroupEntry.h:
        * pal/graphics/WebGPU/WebGPUBuffer.h:
        * pal/graphics/WebGPU/WebGPUBufferBinding.h:
        * pal/graphics/WebGPU/WebGPUCanvasConfiguration.h:
        * pal/graphics/WebGPU/WebGPUColor.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUColorDict.h.
        * pal/graphics/WebGPU/WebGPUCommandEncoder.h:
        * pal/graphics/WebGPU/WebGPUComputePassDescriptor.h:
        * pal/graphics/WebGPU/WebGPUComputePassEncoder.h:
        * pal/graphics/WebGPU/WebGPUComputePassTimestampWrites.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUComputePassTimestampWrite.h.
        * pal/graphics/WebGPU/WebGPUDevice.h:
        (PAL::WebGPU::Device::features):
        (PAL::WebGPU::Device::limits):
        * pal/graphics/WebGPU/WebGPUDeviceDescriptor.h:
        * pal/graphics/WebGPU/WebGPUError.h:
        * pal/graphics/WebGPU/WebGPUExtent3D.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUExtent3DDict.h.
        * pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h:
        * pal/graphics/WebGPU/WebGPUFrontFace.h:
        * pal/graphics/WebGPU/WebGPUImageCopyBuffer.h:
        * pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h:
        * pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
        * pal/graphics/WebGPU/WebGPUOrigin2D.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUOrigin2DDict.h.
        * pal/graphics/WebGPU/WebGPUOrigin3D.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPUOrigin3DDict.h.
        * pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
        * pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h:
        * pal/graphics/WebGPU/WebGPUProgrammableStage.h:
        * pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h:
        * pal/graphics/WebGPU/WebGPUQueue.h:
        * pal/graphics/WebGPU/WebGPURenderBundleEncoder.h:
        * pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderPassEncoder.h:
        * pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h: Renamed from Source/WebCore/PAL/pal/graphics/WebGPU/WebGPURenderPassTimestampWrite.h.
        * pal/graphics/WebGPU/WebGPUShaderModule.h:
        * pal/graphics/WebGPU/WebGPUSupportedFeatures.h:
        * pal/graphics/WebGPU/WebGPUSupportedLimits.h:
        * pal/graphics/WebGPU/WebGPUTextureDescriptor.h:

2021-11-08  Jer Noble  <jer.noble@apple.com>

        Infinite loop in SourceBufferParserWebM::SegmentReader::Read
        https://bugs.webkit.org/show_bug.cgi?id=232740
        <rdar://83573873>

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/MediaToolboxSPI.h:

2021-11-07  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Add internal WebGPU API interface
        https://bugs.webkit.org/show_bug.cgi?id=232792

        Reviewed by Dean Jackson.

        Whenever we add new public API, we always have an internal version of the API which doesn't
        know anything about things like promises and ActiveDOMObject. (One example is the difference
        between FontFace and CSSFontFace.)

        Adding such a internal version of the WebGPU API has 2 benefits:

        1. We can use WebGPU to implement WebKit features. For example, if we wanted to, we could
               implement hardware accelerated SVG filters using WebGPU.
        2. We are actually going to have two implementations of the WebGPU API - one that is
               implemented in WebKit (rather than WebCore) and implements all commands by simply
               sending messages to the GPU process, and a second implementation in PAL that is
               hooked up to WebGPU.framework (or Dawn or WGPU for the non-Apple ports). When the GPU
               process receives the messages, it will forward them to the second implementation to
               be executed. This new internal API provides a great places to provide virtual
               function signatures which can be implemented in both places.

        Mechanically, this new API lives in its own namespace within PAL: WebGPU, and therefore stops
        using prefixes for all the type names. So, for example, the Javascript type named "GPUDevice"
        corresponds to PAL::WebGPU::Device. This new API lives in PAL because it shouldn't need to
        know anything about the DOM or style or anything like that.

        There are no .cpp files in this patch - this patch just adds interfaces. Those interfaces will
        be hooked up to real implementations in subsequent patches.

        * pal/graphics/WebGPU/WebGPU.h: Added.
        * pal/graphics/WebGPU/WebGPUAdapter.h: Added.
        (PAL::WebGPU::Adapter::name const):
        (PAL::WebGPU::Adapter::features const):
        (PAL::WebGPU::Adapter::limits const):
        (PAL::WebGPU::Adapter::isFallbackAdapter const):
        (PAL::WebGPU::Adapter::Adapter):
        * pal/graphics/WebGPU/WebGPUAddressMode.h: Added.
        * pal/graphics/WebGPU/WebGPUBindGroup.h: Added.
        (PAL::WebGPU::BindGroup::label const):
        (PAL::WebGPU::BindGroup::setLabel):
        * pal/graphics/WebGPU/WebGPUBindGroupDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUBindGroupEntry.h: Added.
        * pal/graphics/WebGPU/WebGPUBindGroupLayout.h: Added.
        (PAL::WebGPU::BindGroupLayout::label const):
        (PAL::WebGPU::BindGroupLayout::setLabel):
        * pal/graphics/WebGPU/WebGPUBindGroupLayoutDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUBindGroupLayoutEntry.h: Added.
        * pal/graphics/WebGPU/WebGPUBlendComponent.h: Added.
        * pal/graphics/WebGPU/WebGPUBlendFactor.h: Added.
        * pal/graphics/WebGPU/WebGPUBlendOperation.h: Added.
        * pal/graphics/WebGPU/WebGPUBlendState.h: Added.
        * pal/graphics/WebGPU/WebGPUBuffer.h: Added.
        (PAL::WebGPU::Buffer::label const):
        (PAL::WebGPU::Buffer::setLabel):
        * pal/graphics/WebGPU/WebGPUBufferBinding.h: Added.
        * pal/graphics/WebGPU/WebGPUBufferBindingLayout.h: Added.
        * pal/graphics/WebGPU/WebGPUBufferBindingType.h: Added.
        * pal/graphics/WebGPU/WebGPUBufferDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUBufferUsage.h: Added.
        * pal/graphics/WebGPU/WebGPUCanvasCompositingAlphaMode.h: Added.
        * pal/graphics/WebGPU/WebGPUCanvasConfiguration.h: Added.
        * pal/graphics/WebGPU/WebGPUColorDict.h: Added.
        * pal/graphics/WebGPU/WebGPUColorTargetState.h: Added.
        * pal/graphics/WebGPU/WebGPUColorWrite.h: Added.
        * pal/graphics/WebGPU/WebGPUCommandBuffer.h: Added.
        (PAL::WebGPU::CommandBuffer::label const):
        (PAL::WebGPU::CommandBuffer::setLabel):
        * pal/graphics/WebGPU/WebGPUCommandBufferDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUCommandEncoder.h: Added.
        (PAL::WebGPU::CommandEncoder::label const):
        (PAL::WebGPU::CommandEncoder::setLabel):
        * pal/graphics/WebGPU/WebGPUCommandEncoderDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUCompareFunction.h: Added.
        * pal/graphics/WebGPU/WebGPUCompilationInfo.h: Added.
        * pal/graphics/WebGPU/WebGPUCompilationMessage.h: Added.
        * pal/graphics/WebGPU/WebGPUCompilationMessageType.h: Added.
        * pal/graphics/WebGPU/WebGPUComputePassDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUComputePassEncoder.h: Added.
        (PAL::WebGPU::ComputePassEncoder::label const):
        (PAL::WebGPU::ComputePassEncoder::setLabel):
        * pal/graphics/WebGPU/WebGPUComputePassTimestampLocation.h: Added.
        * pal/graphics/WebGPU/WebGPUComputePassTimestampWrite.h: Added.
        * pal/graphics/WebGPU/WebGPUComputePipeline.h: Added.
        (PAL::WebGPU::ComputePipeline::label const):
        (PAL::WebGPU::ComputePipeline::setLabel):
        * pal/graphics/WebGPU/WebGPUComputePipelineDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUCullMode.h: Added.
        * pal/graphics/WebGPU/WebGPUDepthStencilState.h: Added.
        * pal/graphics/WebGPU/WebGPUDevice.h: Added.
        (PAL::WebGPU::Device::label const):
        (PAL::WebGPU::Device::setLabel):
        (PAL::WebGPU::Device::registerDeviceLostClient):
        (PAL::WebGPU::Device::unregisterDeviceLostClient):
        * pal/graphics/WebGPU/WebGPUDeviceDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUDeviceLostInfo.h: Added.
        * pal/graphics/WebGPU/WebGPUDeviceLostReason.h: Added.
        * pal/graphics/WebGPU/WebGPUError.h: Added.
        * pal/graphics/WebGPU/WebGPUErrorFilter.h: Added.
        * pal/graphics/WebGPU/WebGPUExtent3DDict.h: Added.
        * pal/graphics/WebGPU/WebGPUExternalTexture.h: Added.
        (PAL::WebGPU::ExternalTexture::label const):
        (PAL::WebGPU::ExternalTexture::setLabel):
        * pal/graphics/WebGPU/WebGPUExternalTextureBindingLayout.h: Added.
        * pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUFeatureName.h: Added.
        * pal/graphics/WebGPU/WebGPUFilterMode.h: Added.
        * pal/graphics/WebGPU/WebGPUFragmentState.h: Added.
        * pal/graphics/WebGPU/WebGPUFrontFace.h: Added.
        * pal/graphics/WebGPU/WebGPUImageCopyBuffer.h: Added.
        * pal/graphics/WebGPU/WebGPUImageCopyExternalImage.h: Added.
        * pal/graphics/WebGPU/WebGPUImageCopyTexture.h: Added.
        * pal/graphics/WebGPU/WebGPUImageCopyTextureTagged.h: Added.
        * pal/graphics/WebGPU/WebGPUImageDataLayout.h: Added.
        * pal/graphics/WebGPU/WebGPUIndexFormat.h: Added.
        * pal/graphics/WebGPU/WebGPUIntegralTypes.h: Added.
        * pal/graphics/WebGPU/WebGPULoadOp.h: Added.
        * pal/graphics/WebGPU/WebGPUMapMode.h: Added.
        * pal/graphics/WebGPU/WebGPUMultisampleState.h: Added.
        * pal/graphics/WebGPU/WebGPUObjectDescriptorBase.h: Added.
        * pal/graphics/WebGPU/WebGPUOrigin2DDict.h: Added.
        * pal/graphics/WebGPU/WebGPUOrigin3DDict.h: Added.
        * pal/graphics/WebGPU/WebGPUOutOfMemoryError.h: Added.
        * pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h: Added.
        * pal/graphics/WebGPU/WebGPUPipelineLayout.h: Added.
        (PAL::WebGPU::PipelineLayout::label const):
        (PAL::WebGPU::PipelineLayout::setLabel):
        * pal/graphics/WebGPU/WebGPUPipelineLayoutDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUPipelineStatisticName.h: Added.
        * pal/graphics/WebGPU/WebGPUPowerPreference.h: Added.
        * pal/graphics/WebGPU/WebGPUPredefinedColorSpace.h: Added.
        * pal/graphics/WebGPU/WebGPUPrimitiveState.h: Added.
        * pal/graphics/WebGPU/WebGPUPrimitiveTopology.h: Added.
        * pal/graphics/WebGPU/WebGPUProgrammableStage.h: Added.
        * pal/graphics/WebGPU/WebGPUQuerySet.h: Added.
        (PAL::WebGPU::QuerySet::label const):
        (PAL::WebGPU::QuerySet::setLabel):
        * pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUQueryType.h: Added.
        * pal/graphics/WebGPU/WebGPUQueue.h: Added.
        (PAL::WebGPU::Queue::label const):
        (PAL::WebGPU::Queue::setLabel):
        * pal/graphics/WebGPU/WebGPURenderBundle.h: Added.
        (PAL::WebGPU::RenderBundle::label const):
        (PAL::WebGPU::RenderBundle::setLabel):
        * pal/graphics/WebGPU/WebGPURenderBundleDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPURenderBundleEncoder.h: Added.
        (PAL::WebGPU::RenderBundleEncoder::label const):
        (PAL::WebGPU::RenderBundleEncoder::setLabel):
        * pal/graphics/WebGPU/WebGPURenderBundleEncoderDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h: Added.
        * pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h: Added.
        * pal/graphics/WebGPU/WebGPURenderPassDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPURenderPassEncoder.h: Added.
        (PAL::WebGPU::RenderPassEncoder::label const):
        (PAL::WebGPU::RenderPassEncoder::setLabel):
        * pal/graphics/WebGPU/WebGPURenderPassLayout.h: Added.
        * pal/graphics/WebGPU/WebGPURenderPassTimestampLocation.h: Added.
        * pal/graphics/WebGPU/WebGPURenderPassTimestampWrite.h: Added.
        * pal/graphics/WebGPU/WebGPURenderPipeline.h: Added.
        (PAL::WebGPU::RenderPipeline::label const):
        (PAL::WebGPU::RenderPipeline::setLabel):
        * pal/graphics/WebGPU/WebGPURenderPipelineDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPURequestAdapterOptions.h: Added.
        * pal/graphics/WebGPU/WebGPUSampler.h: Added.
        (PAL::WebGPU::Sampler::label const):
        (PAL::WebGPU::Sampler::setLabel):
        * pal/graphics/WebGPU/WebGPUSamplerBindingLayout.h: Added.
        * pal/graphics/WebGPU/WebGPUSamplerBindingType.h: Added.
        * pal/graphics/WebGPU/WebGPUSamplerDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUShaderModule.h: Added.
        (PAL::WebGPU::ShaderModule::label const):
        (PAL::WebGPU::ShaderModule::setLabel):
        * pal/graphics/WebGPU/WebGPUShaderModuleDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUShaderStage.h: Added.
        * pal/graphics/WebGPU/WebGPUStencilFaceState.h: Added.
        * pal/graphics/WebGPU/WebGPUStencilOperation.h: Added.
        * pal/graphics/WebGPU/WebGPUStorageTextureAccess.h: Added.
        * pal/graphics/WebGPU/WebGPUStorageTextureBindingLayout.h: Added.
        * pal/graphics/WebGPU/WebGPUStoreOp.h: Added.
        * pal/graphics/WebGPU/WebGPUSupportedFeatures.h: Added.
        * pal/graphics/WebGPU/WebGPUSupportedLimits.h: Added.
        * pal/graphics/WebGPU/WebGPUTexture.h: Added.
        (PAL::WebGPU::Texture::label const):
        (PAL::WebGPU::Texture::setLabel):
        * pal/graphics/WebGPU/WebGPUTextureAspect.h: Added.
        * pal/graphics/WebGPU/WebGPUTextureBindingLayout.h: Added.
        * pal/graphics/WebGPU/WebGPUTextureDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUTextureDimension.h: Added.
        * pal/graphics/WebGPU/WebGPUTextureFormat.h: Added.
        * pal/graphics/WebGPU/WebGPUTextureSampleType.h: Added.
        * pal/graphics/WebGPU/WebGPUTextureUsage.h: Added.
        * pal/graphics/WebGPU/WebGPUTextureView.h: Added.
        (PAL::WebGPU::TextureView::label const):
        (PAL::WebGPU::TextureView::setLabel):
        * pal/graphics/WebGPU/WebGPUTextureViewDescriptor.h: Added.
        * pal/graphics/WebGPU/WebGPUTextureViewDimension.h: Added.
        * pal/graphics/WebGPU/WebGPUUncapturedErrorEvent.h: Added.
        * pal/graphics/WebGPU/WebGPUUncapturedErrorEventInit.h: Added.
        * pal/graphics/WebGPU/WebGPUValidationError.h: Added.
        * pal/graphics/WebGPU/WebGPUVertexAttribute.h: Added.
        * pal/graphics/WebGPU/WebGPUVertexBufferLayout.h: Added.
        * pal/graphics/WebGPU/WebGPUVertexFormat.h: Added.
        * pal/graphics/WebGPU/WebGPUVertexState.h: Added.
        * pal/graphics/WebGPU/WebGPUVertexStepMode.h: Added.

2021-11-04  Dean Jackson  <dino@apple.com>

        REGRESSION: AR Quicklook asset is shared instead of page URL
        https://bugs.webkit.org/show_bug.cgi?id=232674
        rdar://84220997

        Reviewed by Antoine Quint.

        There was a typo. ENABLE(ARKIT_QUICK_LOOK_PREVIEW_ITEM)
        should be HAVE(ARKIT_QUICK_LOOK_PREVIEW_ITEM).

        * pal/spi/ios/SystemPreviewSPI.h:

2021-11-04  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Migrate from CTFontCopyVariationAxes() to CTFontCopyVariationAxesInternal() if possible
        https://bugs.webkit.org/show_bug.cgi?id=232690

        Reviewed by Simon Fraser and Cameron McCormack.

        * pal/spi/cf/CoreTextSPI.h:

2021-11-04  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r285228.
        https://bugs.webkit.org/show_bug.cgi?id=232704

        Broke iOS builds

        Reverted changeset:

        "REGRESSION: AR Quicklook asset is shared instead of page URL"
        https://bugs.webkit.org/show_bug.cgi?id=232674
        https://commits.webkit.org/r285228

2021-11-03  Dean Jackson  <dino@apple.com>

        REGRESSION: AR Quicklook asset is shared instead of page URL
        https://bugs.webkit.org/show_bug.cgi?id=232674
        rdar://84220997

        Reviewed by Antoine Quint.

        There was a typo. ENABLE(ARKIT_QUICK_LOOK_PREVIEW_ITEM)
        should be HAVE(ARKIT_QUICK_LOOK_PREVIEW_ITEM).

        * pal/spi/ios/SystemPreviewSPI.h:

2021-10-29  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, reverting r284917.

        Likely caused significant performance regression

        Reverted changeset:

        "Remove properties set by NSURLProtocol on NSURLRequest before
        serializing"
        https://bugs.webkit.org/show_bug.cgi?id=232332
        https://commits.webkit.org/r284917

2021-10-26  Alex Christensen  <achristensen@webkit.org>

        Remove properties set by NSURLProtocol on NSURLRequest before serializing
        https://bugs.webkit.org/show_bug.cgi?id=232332
        <rdar://79227845>

        Reviewed by Geoff Garen.

        * pal/spi/cf/CFNetworkSPI.h:

2021-10-26  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WebCore] Remove unneeded WTF:: namespace prefix
        https://bugs.webkit.org/show_bug.cgi?id=232226

        Reviewed by Myles C. Maxfield.

        * pal/HysteresisActivity.h:
        (PAL::HysteresisActivity::HysteresisActivity):
        * pal/Logging.cpp:
        (PAL::registerNotifyCallback):
        * pal/Logging.h:

2021-10-25  Ayumi Kojima  <ayumi_kojima@apple.com>

        Unreviewed, reverting r284742.

        Reverting because this commit may have casued a regression on
        imported/w3c/web-platform-tests/speech-api/SpeechSynthesis-
        speak-events.html

        Reverted changeset:

        "AX: Unify speech synthesizer platform usage for Mac/iOS"
        https://bugs.webkit.org/show_bug.cgi?id=231895
        https://commits.webkit.org/r284742

2021-10-23  Chris Fleizach  <cfleizach@apple.com>

        AX: Unify speech synthesizer platform usage for Mac/iOS
        https://bugs.webkit.org/show_bug.cgi?id=231895
        <rdar://problem/84372479>

        Reviewed by Andres Gonzalez.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:
        * pal/spi/cocoa/AXSpeechManagerSPI.h:
        * pal/spi/mac/SpeechSynthesisSPI.h: Removed.

2021-10-21  Aditya Keerthi  <akeerthi@apple.com>

        [macOS] Update appearance of <datalist> indicator
        https://bugs.webkit.org/show_bug.cgi?id=232031
        rdar://84474135

        Reviewed by Wenson Hsieh.

        * pal/spi/mac/CoreUISPI.h:

2021-10-20  Ross Kirsling  <ross.kirsling@sony.com>

        Mac CMake build should not need to include iOS headers
        https://bugs.webkit.org/show_bug.cgi?id=231998

        Reviewed by Alex Christensen.

        * pal/PlatformMac.cmake:

2021-10-19  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r284220): [PAL] TCCSPI.h should be a project header, not a private header
        <https://webkit.org/b/231977>
        <rdar://problem/84425384>

        Reviewed by Wenson Hsieh.

        * PAL.xcodeproj/project.pbxproj:
        - Change TCCSPI.h from a private header to a project header.
          PAL uses a build phase script to install its headers.

2021-10-18  David Kilzer  <ddkilzer@apple.com>

        Bug 231882: WebKit::GPUConnectionToWebProcess::setTCCIdentity() leaks a tcc_identity_t
        <https://webkit.org/b/231882>
        <rdar://problem/84350854>

        Reviewed by Chris Dumez.

        * pal/spi/cocoa/TCCSPI.h:
        - Properly declare tcc_identity_t as an OSObject.

2021-10-18  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GLIB] Simplify SleepDisabler by checking if we are under sandbox
        https://bugs.webkit.org/show_bug.cgi?id=231670

        Reviewed by Adrian Perez de Castro.

        Current implementation always tries to connect to ScreenSaver interface and if that fails tries with the portal
        one. It's simpler to check if we are under sandbox and it avoids a connection that we know is always going to
        fail.

        * pal/system/glib/SleepDisablerGLib.cpp:
        (PAL::SleepDisablerGLib::SleepDisablerGLib):
        (PAL::SleepDisablerGLib::acquireInhibitor):
        (PAL::SleepDisablerGLib::releaseInhibitor):
        (PAL::SleepDisablerGLib::acquireInhibitorViaScreenSaverProxy): Deleted.
        (PAL::SleepDisablerGLib::acquireInhibitorViaInhibitPortalProxy): Deleted.
        (PAL::SleepDisablerGLib::releaseInhibitorViaScreenSaverProxy): Deleted.
        (PAL::SleepDisablerGLib::releaseInhibitorViaInhibitPortalProxy): Deleted.
        * pal/system/glib/SleepDisablerGLib.h:

2021-10-17  David Kilzer  <ddkilzer@apple.com>

        Build fix #3: Adopt attribution AVCaptureSession SPI for GPU process
        https://bugs.webkit.org/show_bug.cgi?id=231621
        <rdar://problem/80748535>

        Unreviewed build fix.

        * pal/spi/cocoa/TCCSPI.h:
        - Use HAVE(TCC_IOS_14_BIG_SUR_SPI).

2021-10-15  Ross Kirsling  <ross.kirsling@sony.com>

        Realize Mac CMake build of WebCore and WebKit
        https://bugs.webkit.org/show_bug.cgi?id=231749

        Reviewed by Alex Christensen.

        * pal/PlatformMac.cmake:

2021-10-15  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Support getDisplayMedia
        https://bugs.webkit.org/show_bug.cgi?id=231455
        <rdar://problem/84044495>

        Reviewed by Youenn Fablet and Jer Noble.

        * PAL.xcodeproj/project.pbxproj:
        * pal/ios/ReplayKitSoftLink.h: Added.
        * pal/ios/ReplayKitSoftLink.mm: Added.

2021-10-14  Alex Christensen  <achristensen@webkit.org>

        Fix non-internal iOS builds after r284220
        https://bugs.webkit.org/show_bug.cgi?id=231621

        * pal/spi/cocoa/TCCSPI.h:

2021-10-14  Kate Cheney  <katherine_cheney@apple.com>

        Adopt attribution AVCaptureSession SPI for GPU process
        https://bugs.webkit.org/show_bug.cgi?id=231621
        <rdar://problem/80748535>

        Reviewed by Eric Carlson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/AVFoundationSPI.h:
        * pal/spi/cocoa/TCCSPI.h: Renamed from Source/WebKit/Platform/spi/ios/TCCSPI.h.

2021-10-14  Myles C. Maxfield  <mmaxfield@apple.com>

        All the SDKVariant.xcconfig files should match
        https://bugs.webkit.org/show_bug.cgi?id=231663

        Reviewed by Youenn Fablet.

        * Configurations/SDKVariant.xcconfig:

2021-10-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        Support both VK and VKC-prefixed SPI when softlinking VisionKitCore classes
        https://bugs.webkit.org/show_bug.cgi?id=231683
        rdar://83744729

        Reviewed by Tim Horton.

        See WebKit/ChangeLog for more details.

        * pal/cocoa/VisionKitCoreSoftLink.h:
        * pal/cocoa/VisionKitCoreSoftLink.mm:

2021-10-13  Aditya Keerthi  <akeerthi@apple.com>

        [macOS] Add support for accent-color
        https://bugs.webkit.org/show_bug.cgi?id=231464
        rdar://84049511

        Reviewed by Tim Horton.

        * pal/spi/mac/NSAppearanceSPI.h:

2021-10-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        Move some staged VisionKitCore SPI into VisionKitCoreSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=231648

        Reviewed by Tim Horton.

        See WebKit/ChangeLog for more details.

        * pal/spi/cocoa/VisionKitCoreSPI.h:

2021-10-12  Sihui Liu  <sihui_liu@apple.com>

        Implement FileSystemSyncAccessHandle read() and write()
        https://bugs.webkit.org/show_bug.cgi?id=231466
        <rdar://problem/84050394>

        Reviewed by Youenn Fablet.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/FilePortSPI.h: Added.

2021-10-12  Chris Dumez  <cdumez@apple.com>

        Allow direct construction of WeakPtr without makeWeakPtr()
        https://bugs.webkit.org/show_bug.cgi?id=231580

        Reviewed by Darin Adler.

        Allow direct construction of WeakPtr without makeWeakPtr(), and deprecate makeWeakPtr().

        * pal/system/mac/SystemSleepListenerMac.mm:
        (PAL::SystemSleepListenerMac::SystemSleepListenerMac):

2021-10-12  Alex Christensen  <achristensen@webkit.org>

        Remove non-HAVE(CFNETWORK_NSURLSESSION_STRICTRUSTEVALUATE) code
        https://bugs.webkit.org/show_bug.cgi?id=231579

        Reviewed by Chris Dumez.

        * pal/spi/cf/CFNetworkSPI.h:

2021-10-08  Devin Rousso  <drousso@apple.com>

        [iOS][GPU Process] support `<attachment>`
        https://bugs.webkit.org/show_bug.cgi?id=230781
        <rdar://problem/70884096>

        Reviewed by Myles Maxfield.

        * pal/spi/cg/CoreGraphicsSPI.h:

2021-10-05  Aditya Keerthi  <akeerthi@apple.com>

        [iOS] Transcode videos selected from UIImagePickerController
        https://bugs.webkit.org/show_bug.cgi?id=230639
        rdar://79665678

        Reviewed by Tim Horton.

        Add AVFoundation API needed to transcode video.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2021-10-05  Ayumi Kojima  <ayumi_kojima@apple.com>

        Unreviewed, reverting r283339.

        Reverting because this commit may have caused fast/attachment
        tests to crash

        Reverted changeset:

        "[iOS][GPU Process] support `<attachment>`"
        https://bugs.webkit.org/show_bug.cgi?id=230781
        https://commits.webkit.org/r283339

2021-10-03  David Kilzer  <ddkilzer@apple.com>

        Build fix: Attribute IOSurfaces created by camera and decoders to responsible WebProcess
        <https://bugs.webkit.org/show_bug.cgi?id=231075>
        <rdar://problem/83767168>

        Unreviewed build fix.

        * pal/spi/cocoa/IOSurfaceSPI.h:
        (IOSurfaceMemoryLedgerTags):
        - Define enums for both HAVE(IOSURFACE_SET_OWNERSHIP)
          and HAVE(IOSURFACE_SET_OWNERSHIP_IDENTITY).

2021-10-03  David Kilzer  <ddkilzer@apple.com>

        Build fix: GPU Process microphone attribution SPI adoption
        <https://bugs.webkit.org/show_bug.cgi?id=231034>
        <rdar://problem/83732537>

        * pal/spi/cocoa/AVFoundationSPI.h:
        (-[AVAudioSession setHostProcessAttribution:error:]):
        - Add SPI declaration for open source bots.

2021-10-01  Chris Dumez  <cdumez@apple.com>

        Drop support for macOS < 10.15
        https://bugs.webkit.org/show_bug.cgi?id=231085

        Reviewed by Darin Adler.

        * pal/cocoa/AVFoundationSoftLink.mm:
        * pal/spi/cocoa/AVFoundationSPI.h:
        * pal/spi/mac/NSMenuSPI.h:
        * pal/spi/mac/NSViewSPI.h:

2021-10-01  Kate Cheney  <katherine_cheney@apple.com>

        GPU Process microphone attribution SPI adoption
        https://bugs.webkit.org/show_bug.cgi?id=231034
        <rdar://problem/83732537>

        Reviewed by Youenn Fablet.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2021-09-30  Devin Rousso  <drousso@apple.com>

        [iOS][GPU Process] support `<attachment>`
        https://bugs.webkit.org/show_bug.cgi?id=230781
        <rdar://problem/70884096>

        Reviewed by Myles Maxfield.

        * pal/spi/cg/CoreGraphicsSPI.h:

2021-09-29  Eric Carlson  <eric.carlson@apple.com>

        [Cocoa] Support in-band chapter tracks
        https://bugs.webkit.org/show_bug.cgi?id=230380
        <rdar://problem/83218578>

        Reviewed by Jer Noble.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2021-09-28  Alex Christensen  <achristensen@webkit.org>

        Mostly fix Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=230868

        Reviewed by Don Olmstead.

        * pal/PlatformMac.cmake:

2021-09-28  Alex Christensen  <achristensen@webkit.org>

        Fix build with non-internal Monterey SDK
        https://bugs.webkit.org/show_bug.cgi?id=230872

        Reviewed by Jonathan Bedard.

        * pal/spi/cocoa/PassKitSPI.h:
        * pal/spi/mac/SystemPreviewSPI.h:

2021-09-24  Jonathan Bedard  <jbedard@apple.com>

        [iOS 15] Support building WebKit (Part 3)
        https://bugs.webkit.org/show_bug.cgi?id=227002
        <rdar://problem/79316598>

        Reviewed by Ryan Haddad.

        * pal/spi/cocoa/QuartzCoreSPI.h: Add CAFenceHandle.
        * pal/spi/ios/SystemPreviewSPI.h: Ditto.

2021-09-23  Simon Fraser  <simon.fraser@apple.com>

        Unify more media-related WebCore source files
        https://bugs.webkit.org/show_bug.cgi?id=230666

        Reviewed by Tim Horton.

        AVOutputContextOutputDevicesDidChangeNotification is declared as an NSNotificationName.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2021-09-22  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Hook up palettes to CoreText
        https://bugs.webkit.org/show_bug.cgi?id=230449

        Reviewed by Simon Fraser.

        * pal/spi/cf/CoreTextSPI.h:

2021-09-21  Jean-Yves Avenard  <jya@apple.com>

        Use SharedMemory for transferring appended buffers from SourceBuffer to the GPU process
        https://bugs.webkit.org/show_bug.cgi?id=230329
        rdar://problem/83291495

        Reviewed by Jer Noble.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h: Add required CoreMedia methods.

2021-09-21  Per Arne Vollan  <pvollan@apple.com>

        [Mac Catalyst] Fix build issue
        https://bugs.webkit.org/show_bug.cgi?id=230567
        <rdar://83314629>

        Unreviewed follow-up fix after <https://commits.webkit.org/241966@main>.

        Fix an incorrect define check.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2021-09-21  Per Arne Vollan  <pvollan@apple.com>

        [Mac Catalyst] Fix build issue
        https://bugs.webkit.org/show_bug.cgi?id=230567
        <rdar://83314629>

        Reviewed by Brent Fulgham.

        The identifier kLSDefaultSessionID is undeclared. Declare it for the internal build on Catalyst.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2021-09-20  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Make AVSampleBufferVideoOutput support an Experimental Feature
        https://bugs.webkit.org/show_bug.cgi?id=230424

        Reviewed by Eric Carlson.

        Drive-by fix: fix up the declarations in AVFoundationSPI.h.

        * pal/spi/cocoa/AVFoundationSPI.h:

2021-09-17  Per Arne Vollan  <pvollan@apple.com>

        [Mac Catalyst] Fix build issue
        https://bugs.webkit.org/show_bug.cgi?id=230373

        Reviewed by Darin Adler.

        There's an issue with the Mac Catalyst build where LSSessionID is being redefined. Address this by removing the second definition,
        and moving the related function into the open source section.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2021-09-16  Tim Horton  <timothy_horton@apple.com>

        Adjust ARKIT_INLINE_PREVIEW* compile time flags
        https://bugs.webkit.org/show_bug.cgi?id=230332

        Reviewed by Sam Weinig.

        * pal/spi/ios/SystemPreviewSPI.h:
        * pal/spi/mac/SystemPreviewSPI.h:
        Adopt the new name.

2021-09-15  Devin Rousso  <drousso@apple.com>

        [Payment Request] Clean up some WKA hooks
        https://bugs.webkit.org/show_bug.cgi?id=230182
        <rdar://problem/78824639>

        Reviewed by Tim Horton.

        * pal/spi/cocoa/PassKitSPI.h:

2021-09-14  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Migrate to CTFontHasTable() from CTFontCopyAvailableTables()
        https://bugs.webkit.org/show_bug.cgi?id=230248

        Reviewed by Anders Carlsson.

        * pal/spi/cf/CoreTextSPI.h:

2021-09-11  David Kilzer  <ddkilzer@apple.com>

        CFNotificationCenterAddObserver() should use weak observers
        <https://webkit.org/b/230168>
        <rdar://problem/82987695>

        Reviewed by Darin Adler.

        * PAL.xcodeproj/project.pbxproj:
        - Add CFNotificationCenterSPI.h to the project.
        * pal/spi/cf/CFNotificationCenterSPI.h: Add.

2021-09-08  Youenn Fablet  <youenn@apple.com>

        Add video metrics logging to LocalSampleBufferDisplayLayer
        https://bugs.webkit.org/show_bug.cgi?id=229930

        Reviewed by Eric Carlson.

        * PAL/pal/spi/cocoa/AVFoundationSPI.h:

2021-09-08  Per Arne  <pvollan@apple.com>

        Remove unneeded call on startup of WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=230022
        <rdar://problem/82838000>

        Reviewed by Darin Adler.

        * pal/spi/cg/CoreGraphicsSPI.h:

2021-08-31  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Drawing system fallback fonts to canvas causes a crash
        https://bugs.webkit.org/show_bug.cgi?id=229633
        <rdar://problem/81889036>

        Reviewed by Wenson Hsieh.

        * pal/spi/cf/CoreTextSPI.h:

2021-08-26  Darin Adler  <darin@apple.com>

        Cut down on use of CFGetTypeID, using dynamic_cf_cast instead; related streamlining
        https://bugs.webkit.org/show_bug.cgi?id=229414

        Reviewed by Tim Horton.

        * pal/system/mac/DefaultSearchProvider.cpp:
        (PAL::defaultSearchProviderDisplayName): Use dynamic_cf_cast and removed an unneeded call to
        CFStringCreateCopy, since the callers don't need an isolated copy.

2021-08-25  Kate Cheney  <katherine_cheney@apple.com>

        WebCrypto uses deprecated CCKeyDerivationHMac
        https://bugs.webkit.org/show_bug.cgi?id=229443
        <rdar://problem/48896021>

        Reviewed by Brent Fulgham.

        * pal/spi/cocoa/CommonCryptoSPI.h:

2021-08-10  Tim Horton  <timothy_horton@apple.com>

        Unreviewed build fix.

        * pal/spi/ios/CelestialSPI.h:
        Ignore unconventional deprecation warnings until they can be fixed properly.

2021-08-10  Cameron McCormack  <heycam@apple.com>

        Remove unused ColorSync SPI
        https://bugs.webkit.org/show_bug.cgi?id=228306
        <rdar://problem/81136866>

        Reviewed by Darin Adler.

        We now use -[NSScreen canRepresentDisplayGamut:displayGamut] and
        kMGQHasExtendedColorDisplay.

        * pal/spi/cg/CoreGraphicsSPI.h:

2021-08-09  Said Abou-Hallawa  <said@apple.com>

        Ease sandboxing restrictions for Mail to allow HEIF image decoding
        https://bugs.webkit.org/show_bug.cgi?id=228812
        <rdar://80967782>

        Reviewed by Per Arne Vollan.

        Delete unneeded SPIs and their soft-linking.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/VideoToolboxSoftLink.cpp:
        * pal/cf/VideoToolboxSoftLink.h:
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h:
        * pal/spi/cg/ImageIOSPI.h:
        * pal/spi/cocoa/VideoToolboxSPI.h: Removed.

2021-08-03  Devin Rousso  <drousso@apple.com>

        [Live Text] [iOS] Provide a presenting `UIViewController` for machine readable code actions so that they are related to the same view
        https://bugs.webkit.org/show_bug.cgi?id=228722

        Reviewed by Tim Horton.

        * pal/spi/cocoa/VisionKitCoreSPI.h:

2021-08-02  Devin Rousso  <drousso@apple.com>

        [Live Text] SPI for machine readable codes is only available on iOS
        https://bugs.webkit.org/show_bug.cgi?id=228711

        Reviewed by Tim Horton.

        * pal/spi/cocoa/VisionKitCoreSPI.h:

2021-07-29  Devin Rousso  <drousso@apple.com>

        [Payment Request] `additionalShippingMethods` are not used if a `paymentMethodType` is provided
        https://bugs.webkit.org/show_bug.cgi?id=228599
        <rdar://problem/81190366>

        Reviewed by Andy Estes.

        r275169 made it so that `paymentMethodType` is no longer `required` so that `additionalShippingMethods`
        can be specified without having to limit it to a specific payment method type. While this
        works in theory, WebKit doesn't know about the user's selected payment method type until the
        user actually selects a payment method, meaning that until then the `additionalShippingMethods`
        are not used. Unfortunately (until now) `PKPaymentRequestPaymentMethodUpdate` did not
        support providing a `NSArray<PKShippingMethod *> *`, so there was no way to update the list
        of shipping methods when the user changed their selected payment method, meaning that WebKit
        would have to wait/rely on the user to change their shipping address _after_ selecting a
        payment method in order for `additionalShippingMethods` to take effect.

        This also fixes an issue with WebKit's implementation of the W3C Payment Request API by
        allowing any generic (i.e. things not specific to Apple Pay) `shippingOptions` provided in
        `PaymentDetailsUpdate` to actually be used and update the Apple Pay sheet accordingly.

        * pal/spi/cocoa/PassKitSPI.h:
         - add the new `shippingMethods` property on `PKPaymentRequestUpdate`
         - add the existing `errors` property on `PKPaymentRequestPaymentMethodUpdate`

2021-07-29  Kate Cheney  <katherine_cheney@apple.com>

        GetIdentifierStringForPreferredVoiceInListWithLocale() is deprecated in Monterey
        <https://webkit.org/b/228066>
        <rdar://problem/80577312>

        Patch by David Kilzer.

        Reviewed by David Kilzer.

        * pal/spi/mac/SpeechSynthesisSPI.h:
        * pal/spi/mac/SpeechSynthesisSPI.h:
        (CopyIdentifierStringForPreferredVoiceInListWithLocale): Add.
        - Define replacement function for
          GetIdentifierStringForPreferredVoiceInListWithLocale()
          in Monterey.

2021-07-28  Jean-Yves Avenard  <jya@apple.com>

        [WebAudio] Add webm/opus container support
        https://bugs.webkit.org/show_bug.cgi?id=227110
        <rdar://problem/79437067>

        Reviewed by Jer Noble.

        Add various AVFoundation (AVAudioConverter) related methods and
        CoreMedia to access required CMSampleBuffer related methods.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2021-07-28  Alex Christensen  <achristensen@webkit.org>

        Fix build with SDKs containing new CFNetwork SPI declaration
        https://bugs.webkit.org/show_bug.cgi?id=228553
        <rdar://81202574>

        Reviewed by Brady Eidson.

        CFNSURLConnection.h also has "@interface NSURLSessionConfiguration ()"
        ObjC doesn't like it if you have the exact same thing in the parentheses and a duplicate declaration.
        I reproduced the build failure with a modified SDK and verified this fixes it.

        * pal/spi/cf/CFNetworkSPI.h:

2021-07-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS Monterey] Pressing Fn+E should present the emoji picker when editing
        https://bugs.webkit.org/show_bug.cgi?id=228300
        rdar://77558672

        Reviewed by Tim Horton.

        Add a new SPI declaration on NSMenu. See WebKit and WebKitLegacy changes for more information.

        * pal/spi/mac/NSMenuSPI.h:

2021-07-21  Chris Dumez  <cdumez@apple.com>

        Unreviewed, reverting r280129.

        Broke the internal Monterey build bots

        Reverted changeset:

        "GetIdentifierStringForPreferredVoiceInListWithLocale() is
        deprecated in Monterey"
        https://bugs.webkit.org/show_bug.cgi?id=228066
        https://commits.webkit.org/r280129

2021-07-21  David Kilzer  <ddkilzer@apple.com>

        GetIdentifierStringForPreferredVoiceInListWithLocale() is deprecated in Monterey
        <https://webkit.org/b/228066>
        <rdar://problem/80577312>

        Reviewed by Alexey Proskuryakov.

        * pal/spi/mac/SpeechSynthesisSPI.h:
        (CopyIdentifierStringForPreferredVoiceInListWithLocale): Add.
        - Define replacement function for
          GetIdentifierStringForPreferredVoiceInListWithLocale()
          in Monterey.

2021-07-16  Alex Christensen  <achristensen@webkit.org>

        Prevent HSTS tracking mitigation for top level navigation requests
        https://bugs.webkit.org/show_bug.cgi?id=227936

        Reviewed by Brady Eidson.

        * pal/spi/cf/CFNetworkSPI.h:

2021-07-14  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix after r279912 (239661@main); Adopt HAVE(SYSTEM_STATUS) macro.

        * pal/ios/SystemStatusSoftLink.h:
        * pal/ios/SystemStatusSoftLink.mm:

2021-07-14  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Dynamically set capture attribution
        https://bugs.webkit.org/show_bug.cgi?id=227871
        rdar://70241665

        Reviewed by Jer Noble.

        * PAL.xcodeproj/project.pbxproj:
        * pal/ios/SystemStatusSoftLink.h: Added.
        * pal/ios/SystemStatusSoftLink.mm: Added.

2021-07-09  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Make Coordinator playback commands more precise
        https://bugs.webkit.org/show_bug.cgi?id=227756

        Reviewed by Eric Carlson.

        Add SoftLink macros for CMClockMakeHostTimeFromSystemUnits.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:

2021-07-07  Tim Horton  <timothy_horton@apple.com>

        Add WKHoverPlatter and some knobs to tweak its appearance
        https://bugs.webkit.org/show_bug.cgi?id=227735
        <rdar://problem/79198262>

        Reviewed by Sam Weinig.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2021-07-06  Youenn Fablet  <youenn@apple.com>

        Set kVTCompressionPropertyKey_MaxKeyFrameInterval in VideoSampleBufferCompressor
        https://bugs.webkit.org/show_bug.cgi?id=227680
        <rdar://78027782>

        Reviewed by Eric Carlson.

        * pal/cf/VideoToolboxSoftLink.cpp:
        * pal/cf/VideoToolboxSoftLink.h:

2021-07-01  John Wilander  <wilander@apple.com>

        PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
        https://bugs.webkit.org/show_bug.cgi?id=227556
        <rdar://79992592>

        Reviewed by Alex Christensen.

        Patch by Frederic Jacobs.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/cocoa/CryptoKitPrivateSoftLink.h: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h.
        * pal/cocoa/CryptoKitPrivateSoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm.
        * pal/spi/cocoa/CryptoKitPrivateSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h.

2021-07-01  Amir Mark Jr  <amir_mark@apple.com>

        Unreviewed, reverting r279452.

        Broke MacOS build

        Reverted changeset:

        "PCM: Change import from CryptoKitCBridging to
        CryptoKitPrivate"
        https://bugs.webkit.org/show_bug.cgi?id=227556
        https://commits.webkit.org/r279452

2021-06-30  John Wilander  <wilander@apple.com>

        PCM: Change import from CryptoKitCBridging to CryptoKitPrivate
        https://bugs.webkit.org/show_bug.cgi?id=227556
        <rdar://79992592>

        Reviewed by Alex Christensen.

        Patch by Frederic Jacobs.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/cocoa/CryptoKitPrivateSoftLink.h: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.h.
        * pal/cocoa/CryptoKitPrivateSoftLink.mm: Renamed from Source/WebCore/PAL/pal/cocoa/CryptoKitCBridgingSoftLink.mm.
        * pal/spi/cocoa/CryptoKitPrivateSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CryptoKitCBridgingSPI.h.

2021-06-30  Antoine Quint  <graouts@webkit.org>

        [Model] [macOS] Add support for rendering model resources
        https://bugs.webkit.org/show_bug.cgi?id=227530
        <rdar://problem/79968206>

        Reviewed by Dean Jackson.

        Declare the ASVInlinePreview class for macOS.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/SystemPreviewSPI.h: Added.

2021-06-30  Antoine Quint  <graouts@webkit.org>

        [Model] [iOS] Add support for displaying <model> in fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=227443
        <rdar://problem/79859937>

        Reviewed by Sam Weinig.

        Declare additional ASVInlinePreview methods required for fullscreen support.

        * pal/spi/ios/SystemPreviewSPI.h:

2021-06-28  Antoine Quint  <graouts@webkit.org>

        [Model] [iOS] Add support for manipulating <model> inline
        https://bugs.webkit.org/show_bug.cgi?id=227448
        <rdar://problem/79863579>

        Reviewed by Tim Horton.

        Declare additional ASVInlinePreview methods.

        * pal/spi/ios/SystemPreviewSPI.h:

2021-06-29  Antoine Quint  <graouts@webkit.org>

        WebKit_iosmac build failure: SystemPreviewSPI.h:29:9: fatal error: 'AssetViewer/ARQuickLookWebKitItem.h' file not found
        https://bugs.webkit.org/show_bug.cgi?id=227507
        <rdar://problem/79902043>

        Reviewed by Dean Jackson.

        When we added new SPIs in Source/WebCore/PAL/pal/spi/ios/SystemPreviewSPI.h as part of r279312 we also included this file
        from a new file that is compiled on Catalyst. This revealed an issue where existing SPIs included in that file weren't
        actually available on Catalyst. We now make sure we compile those out on Catalyst.

        * pal/spi/ios/SystemPreviewSPI.h:

2021-06-24  Jer Noble  <jer.noble@apple.com>

        Loading WebM hangs if server sends only small amount of data
        https://bugs.webkit.org/show_bug.cgi?id=226217
        <rdar://problem/78709010>

        Reviewed by Eric Carlson.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/spi/cf/CoreMediaSPI.h:

2021-06-28  Jean-Yves Avenard  <jya@apple.com>

        Not all uses of AudioToolbox framework use soft linking
        https://bugs.webkit.org/show_bug.cgi?id=227250
        <rdar://problem/79606090>

        Reviewed by Eric Carlson.

        * pal/cf/AudioToolboxSoftLink.cpp:
        * pal/cf/AudioToolboxSoftLink.h: Add methods whose definitions were scattered across
        the code.
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h: Same as above.
        * pal/cf/AudioToolboxSoftLink.cpp:
        * pal/cf/AudioToolboxSoftLink.h: Add missing methods
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h: Add missing methods; Reshuffled definitions as many didn't
        exist on Windows, yet could potentially be loaded and error.
        * pal/cf/VideoToolboxSoftLink.cpp:
        * pal/cf/VideoToolboxSoftLink.h: Add missing methods and fix some spelling in define names
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h: Add missing methods

2021-06-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r279322.
        https://bugs.webkit.org/show_bug.cgi?id=227434


        Reverted changeset:

        "Not all uses of AudioToolbox framework use soft linking"
        https://bugs.webkit.org/show_bug.cgi?id=227250
        https://commits.webkit.org/r279322

2021-06-27  Jean-Yves Avenard  <jya@apple.com>

        Not all uses of AudioToolbox framework use soft linking
        https://bugs.webkit.org/show_bug.cgi?id=227250
        <rdar://problem/79606090>

        Reviewed by Eric Carlson.

        * pal/cf/AudioToolboxSoftLink.cpp:
        * pal/cf/AudioToolboxSoftLink.h: Add methods whose definitions were scattered across
        the code.
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h: Same as above.
        * pal/cf/AudioToolboxSoftLink.cpp:
        * pal/cf/AudioToolboxSoftLink.h: Add missing methods
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h: Add missing methods; Reshuffled definitions as many didn't
        exist on Windows, yet could potentially be loaded and error.
        * pal/cf/VideoToolboxSoftLink.cpp:
        * pal/cf/VideoToolboxSoftLink.h: Add missing methods and fix some spelling in define names
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h: Add missing methods

2021-06-27  Antoine Quint  <graouts@webkit.org>

        [Model] [iOS] Add support for rendering model resources
        https://bugs.webkit.org/show_bug.cgi?id=227392
        <rdar://problem/79770136>

        Reviewed by Tim Horton.

        Declare the ASVInlinePreview class.

        * pal/spi/ios/SystemPreviewSPI.h:

2021-06-22  Dean Jackson  <dino@apple.com>

        Add support for MTLSharedTextures in WebXR
        https://bugs.webkit.org/show_bug.cgi?id=227245
        <rdar://problem/79591620>

        Reviewed by Tim Horton.

        Define MTLSharedTextureHandle's initWithIOSurface.

        * pal/spi/cocoa/MetalSPI.h:

2021-06-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, fix the macOS Monterey build

        Some internal builders are still attempting to build WebKit for macOS Monterey using an SDK without the fix for
        rdar://74299451. Restore the forward staging declaration for `-initWithDataProvider:contentType:previewTitle:`
        in the meantime.

        * pal/spi/mac/QuickLookMacSPI.h:

2021-06-25  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, reverting r279208.
        https://bugs.webkit.org/show_bug.cgi?id=227381

        Broke the Apple Windows build.

        Reverted changeset:

        "Not all uses of AudioToolbox framework use soft linking"
        https://bugs.webkit.org/show_bug.cgi?id=227250
        https://trac.webkit.org/changeset/279208

2021-06-23  Jean-Yves Avenard  <jya@apple.com>

        Not all uses of AudioToolbox framework use soft linking
        https://bugs.webkit.org/show_bug.cgi?id=227250
        <rdar://problem/79606090>

        Reviewed by Eric Carlson.

        * pal/cf/AudioToolboxSoftLink.cpp:
        * pal/cf/AudioToolboxSoftLink.h: Add methods whose definitions were scattered across
        the code.
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h: Same as above.
        * pal/cf/AudioToolboxSoftLink.cpp:
        * pal/cf/AudioToolboxSoftLink.h: Add missing methods
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h: Add missing methods
        * pal/cf/VideoToolboxSoftLink.cpp:
        * pal/cf/VideoToolboxSoftLink.h: Add missing methods and fix some spelling in define names
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h: Add missing methods

2021-06-23  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Make the hostTime parameter to playSession a Monotonic time
        https://bugs.webkit.org/show_bug.cgi?id=226515

        Reviewed by Youenn Fablet.

        SoftLink CMClockConvertHostTimeToSystemUnits.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:

2021-06-22  Jer Noble  <jer.noble@apple.com>

        [Cocoa] iOS device steals BT headphones from other devices during silent playback
        https://bugs.webkit.org/show_bug.cgi?id=227227
        <rdar://78792479>

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/AVFoundationSPI.h:

2021-06-20  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Rename WKVisualSearchPreviewController to WKQuickLookPreviewController
        https://bugs.webkit.org/show_bug.cgi?id=227193

        Reviewed by Sam Weinig.

        Fix up some compiler flags in this SPI header. Instead of using `HAVE(VK_IMAGE_ANALYSIS)` to guard SPI
        declarations, use the new `HAVE(QUICKLOOK_PREVIEW_ITEM_DATA_PROVIDER)`, `HAVE(QUICKLOOK_ITEM_PREVIEW_OPTIONS)`
        and `HAVE(QUICKLOOK_PREVIEW_ACTIVITY)` flags.

        * pal/spi/mac/QuickLookMacSPI.h:

2021-06-17  Said Abou-Hallawa  <said@apple.com>

        [Cocoa] Disable hardware decoding in the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=226869
        <rdar://77548905>

        Reviewed by Per Arne Vollan and Simon Fraser.

        SoftLink
        1. VTRestrictVideoDecoders from VideoToolbox
        2. FigPhotoSupportsHEVCHWDecode from MediaToobox

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/VideoToolboxSoftLink.cpp:
        * pal/cf/VideoToolboxSoftLink.h:
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h:
        * pal/spi/cg/ImageIOSPI.h:
        * pal/spi/cocoa/VideoToolboxSPI.h: Added.

2021-06-16  Said Abou-Hallawa  <said@apple.com>

        takeSnapshotWithConfiguration() should wait for the next flush before it does callSnapshotRect()
        https://bugs.webkit.org/show_bug.cgi?id=226257
        <rdar://76411685>

        Reviewed by Simon Fraser and Tim Horton.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2021-06-15  Jonathan Bedard  <jbedard@apple.com>

        [iOS 15] Support building WebKit
        https://bugs.webkit.org/show_bug.cgi?id=227002
        <rdar://problem/79316598>

        Reviewed by Tim Horton.

        * pal/spi/ios/QuickLookSPI.h:

2021-06-14  Jonathan Bedard  <jbedard@apple.com>

        [Monterey] Support building WebKit (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=226846
        <rdar://problem/79095148>

        Reviewed by Chris Dumez.

        * pal/spi/cf/CFNetworkSPI.h: Add nw_connection_privacy_stance_t.
        * pal/spi/cocoa/PassKitSPI.h: Add PKPaymentCoupon.

2021-06-11  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Cocoa] Clean up some VisionKitCore soft linking code in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=226941

        Reviewed by Tim Horton.

        Move softlinking code out of implementation files in WebKit (see WebKit/ChangeLog for details), and into
        dedicated VisionKitCore SPI and soft-linking headers in PAL.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/cocoa/VisionKitCoreSoftLink.h: Copied from Source/WebKit/Platform/cocoa/TextRecognitionUtilities.h.
        * pal/cocoa/VisionKitCoreSoftLink.mm: Copied from Source/WebKit/Platform/cocoa/TextRecognitionUtilities.h.
        * pal/spi/cocoa/VisionKitCoreSPI.h: Renamed from Source/WebKit/Platform/spi/Cocoa/VisionKitSPI.h.

2021-06-11  Jonathan Bedard  <jbedard@apple.com>

        [Monterey] Support building WebKit (Follow-up fix)
        https://bugs.webkit.org/show_bug.cgi?id=226846
        <rdar://problem/79095148>

        Unreviewed build fix.

        * pal/spi/mac/QuickLookMacSPI.h:

2021-06-11  Jonathan Bedard  <jbedard@apple.com>

        [Monterey] Support building WebKit
        https://bugs.webkit.org/show_bug.cgi?id=226846
        <rdar://problem/79095148>

        Reviewed by Tim Horton.

        * pal/spi/cocoa/CryptoKitCBridgingSPI.h: Add RSA BSSA declarations.
        * pal/spi/mac/QuickLookMacSPI.h: Add Image Analysis declarations.

2021-06-08  Alex Christensen  <achristensen@webkit.org>

        Move PrivacyStance code from WebKitAdditions
        https://bugs.webkit.org/show_bug.cgi?id=226774

        Reviewed by Jer Noble.

        * pal/spi/cf/CFNetworkSPI.h:

2021-06-08  Devin Rousso  <drousso@apple.com>

        [Payment Request] upstream new features
        https://bugs.webkit.org/show_bug.cgi?id=226740
        <rdar://problem/78963132>

        Reviewed by Andy Estes.

         - recurring line items (`HAVE_PASSKIT_RECURRING_SUMMARY_ITEM` and `ENABLE_APPLE_PAY_RECURRING_LINE_ITEM`)
         - deferred line items (`HAVE_PASSKIT_DEFERRED_SUMMARY_ITEM` and `ENABLE_APPLE_PAY_DEFERRED_LINE_ITEM`)
         - estimated shipping dates (`HAVE_PASSKIT_SHIPPING_METHOD_DATE_COMPONENTS_RANGE` and `ENABLE_APPLE_PAY_SHIPPING_METHOD_DATE_COMPONENTS_RANGE`)
         - coupon code entry (`HAVE_PASSKIT_COUPON_CODE` and `ENABLE_APPLE_PAY_COUPON_CODE`)
         - shipped vs in-store pickup (`HAVE_PASSKIT_SHIPPING_CONTACT_EDITING_MODE` and `ENABLE_APPLE_PAY_SHIPPING_CONTACT_EDITING_MODE`)

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm:
        * pal/spi/cocoa/PassKitSPI.h:

2021-06-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r277464.
        https://bugs.webkit.org/show_bug.cgi?id=226709

        No longer necessary

        Reverted changeset:

        "Work around WebCore failing to build due to NDEBUG getting
        undefined in release"
        https://bugs.webkit.org/show_bug.cgi?id=225782
        https://trac.webkit.org/changeset/277464

2021-06-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Move DataDetectors softlinking in DataDetectorsSPI.h out into a separate PAL header
        https://bugs.webkit.org/show_bug.cgi?id=226669

        Reviewed by Sam Weinig.

        Add the new softlinking headers. See WebCore/ChangeLog for more details.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/cocoa/DataDetectorsCoreSoftLink.h:
        * pal/cocoa/DataDetectorsCoreSoftLink.mm:

        Move the `DDBinderPhoneNumberKey` soft link into `DataDetectorsCoreSoftLink` instead, since this symbol comes
        from DataDetectorsCore rather than the DataDetectors framework.

        * pal/mac/DataDetectorsSoftLink.h: Added.
        * pal/mac/DataDetectorsSoftLink.mm: Added.
        * pal/mac/QuickLookUISoftLink.h:
        * pal/spi/mac/DataDetectorsSPI.h:

2021-06-01  Darin Adler  <darin@apple.com>

        Remove <wtf/Optional.h>
        https://bugs.webkit.org/show_bug.cgi?id=226437

        Reviewed by Chris Dumez.

        * pal/SessionID.h: Include <optional>.
        * pal/crypto/gcrypt/Utilities.h: Ditto.
        * pal/crypto/tasn1/Utilities.cpp: Removed include of <wtf/Optional.h>.

2021-06-01  Dana Estra  <destra@apple.com>

        Adopt Reveal for phone numbers
        https://bugs.webkit.org/show_bug.cgi?id=226383
        rdar://78482517
        
        Reviewed by Tim Horton.
        
        Add declaration for RVItem method initWithURL.

        * pal/spi/cocoa/RevealSPI.h:

2021-05-30  Darin Adler  <darin@apple.com>

        Remove WTF::Optional synonym for std::optional, using that class template directly instead
        https://bugs.webkit.org/show_bug.cgi?id=226433

        Reviewed by Chris Dumez.

        * <many files>: Let the do-webcore-rename script rename Optional<> to std::optional<>.

2021-05-27  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Show context menu when clicking on data detection results in image overlays
        https://bugs.webkit.org/show_bug.cgi?id=226274
        rdar://75504956

        Reviewed by Tim Horton and Aditya Keerthi.

        Add declarations for some SPI on RVItem and RVPresenter. See WebKit for more information about where these are
        used.

        * pal/spi/cocoa/RevealSPI.h:

2021-05-27  Darin Adler  <darin@apple.com>

        Next step toward using std::optional directly instead of through WTF::Optional typedef
        https://bugs.webkit.org/show_bug.cgi?id=226280

        Reviewed by Chris Dumez.

        * <many files>: Accept the renaming done by do-webcore-rename.

2021-05-26  Cameron McCormack  <heycam@apple.com>

        Prevent sbix glyphs from being rendered in the GPU process
        https://bugs.webkit.org/show_bug.cgi?id=226159
        <rdar://77231959>

        Reviewed by Darin Adler.

        * pal/spi/cf/CoreTextSPI.h: Add declaration for an SPI that lets us
        infer whether a glyph has an sbix image.

2021-05-26  Chris Dumez  <cdumez@apple.com>

        Leverage the new Vector(const T*, size_t) constructor
        https://bugs.webkit.org/show_bug.cgi?id=226304

        Reviewed by Darin Adler.

        Leverage the new Vector(const T*, size_t) constructor in existing code.

        * pal/crypto/gcrypt/CryptoDigestGCrypt.cpp:
        (PAL::CryptoDigest::computeHash):

2021-05-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add a PAL softlinking header for the Reveal framework
        https://bugs.webkit.org/show_bug.cgi?id=226292

        Reviewed by Tim Horton.

        Add the new header and source file.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/cocoa/RevealSoftLink.h: Added.
        * pal/cocoa/RevealSoftLink.mm: Added.

2021-05-24  Sam Weinig  <weinig@apple.com>

        Convert DestinationColorSpace from an enum to class wrapping a platform color space (CGColorSpaceRef for CG ports, etc.)
        https://bugs.webkit.org/show_bug.cgi?id=226143

        Reviewed by Darin Adler.

        * pal/spi/cg/CoreGraphicsSPI.h:
        Add addional SPI for working with CGColorSpaceRefs.

2021-05-24  Chris Fleizach  <cfleizach@apple.com>

        AX: Settings: Increase contrast isn't detected in browser until an additional setting is applied
        https://bugs.webkit.org/show_bug.cgi?id=225909

        Reviewed by Per Arne Vollan.

        * pal/spi/mac/HIServicesSPI.h:

2021-05-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r277940.
        https://bugs.webkit.org/show_bug.cgi?id=226182

        Caused Safari crash under IPC::typeFromCFTypeRef

        Reverted changeset:

        "Convert DestinationColorSpace from an enum to class wrapping
        a platform color space (CGColorSpaceRef for CG ports, etc.)"
        https://bugs.webkit.org/show_bug.cgi?id=226143
        https://trac.webkit.org/changeset/277940

2021-05-23  Sam Weinig  <weinig@apple.com>

        Convert DestinationColorSpace from an enum to class wrapping a platform color space (CGColorSpaceRef for CG ports, etc.)
        https://bugs.webkit.org/show_bug.cgi?id=226143

        Reviewed by Darin Adler.

        * pal/spi/cg/CoreGraphicsSPI.h:
        Add addional SPI for working with CGColorSpaceRefs.

2021-05-21  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Adopt QLItem in WKImageExtractionPreviewController
        https://bugs.webkit.org/show_bug.cgi?id=226114
        rdar://76657718

        Reviewed by Tim Horton.

        Add a PAL softlinking header for QuickLookUI on macOS.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/mac/QuickLookUISoftLink.h: Added.
        * pal/mac/QuickLookUISoftLink.mm: Added.
        * pal/spi/mac/QuickLookMacSPI.h:

        Add staging declarations for some new QuickLook SPI; these method declarations should be moved into the non-
        internal-SDK section in the (near) future, once it is safe to do so.

2021-05-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Cocoa] Plumb data detector results through some platform objects
        https://bugs.webkit.org/show_bug.cgi?id=225775
        Work towards rdar://75504956

        Reviewed by Tim Horton and Devin Rousso.

        Move `DataDetectorsCoreSoftLink.{h|mm}` into PAL, so that it can be used in WebKit as well.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:

        Add the header and source file to the CMake build.

        * pal/cocoa/DataDetectorsCoreSoftLink.h: Added.
        * pal/cocoa/DataDetectorsCoreSoftLink.mm: Added.
        * pal/spi/cocoa/DataDetectorsCoreSPI.h:

        Explicitly import Foundation headers here, so that the forward declarations don't cause compilation failures in
        non-internal SDKs.

2021-05-13  Tim Horton  <timothy_horton@apple.com>

        Work around WebCore failing to build due to NDEBUG getting undefined in release
        https://bugs.webkit.org/show_bug.cgi?id=225782
        <rdar://problem/77982432>

        Reviewed by Simon Fraser.

        * pal/spi/cg/CoreGraphicsSPI.h:
        * pal/spi/ios/GraphicsServicesSPI.h:
        Apply a temporary workaround to preserve NDEBUG through these includes.
        There are a few ways to get to CoreGraphicsPrivate.h, so we fix all of them.

2021-05-13  Aditya Keerthi  <akeerthi@apple.com>

        REGRESSION (r276945): [iOS] Focus rings are too large
        https://bugs.webkit.org/show_bug.cgi?id=225778
        <rdar://problem/77858341>

        Reviewed by Tim Horton.

        * pal/spi/ios/UIKitSPI.h:

2021-05-12  Jean-Yves Avenard  <jya@apple.com>

        Adopt CoreMedia SPI to identify audio-only playback for MSE clients
        https://bugs.webkit.org/show_bug.cgi?id=225647
        rdar://76138365

        Reviewed by Youenn Fablet.

        * pal/spi/cocoa/AVFoundationSPI.h: Add forward declaration for new methods
          while this isn't in SDK yet.

2021-05-11  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r277322.
        https://bugs.webkit.org/show_bug.cgi?id=225657

        Causing build failure

        Reverted changeset:

        "Adopt CoreMedia SPI to identify audio-only playback for MSE
        clients"
        https://bugs.webkit.org/show_bug.cgi?id=225647
        https://trac.webkit.org/changeset/277322

2021-05-11  Jean-Yves Avenard  <jya@apple.com>

        Adopt CoreMedia SPI to identify audio-only playback for MSE clients
        https://bugs.webkit.org/show_bug.cgi?id=225647
        rdar://76138365

        Reviewed by Youenn Fablet.

        * pal/spi/cocoa/AVFoundationSPI.h: Add forward declaration for new methods
          while this isn't in SDK yet.

2021-05-10  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Allow immediate action gestures to begin when force clicking text inside image overlays
        https://bugs.webkit.org/show_bug.cgi?id=225600
        <rdar://problem/77792365>

        Reviewed by Tim Horton.

        * pal/spi/mac/NSImmediateActionGestureRecognizerSPI.h:

2021-04-29  Jean-Yves Avenard  <jya@apple.com>

        Adopt AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification
        https://bugs.webkit.org/show_bug.cgi?id=225170

        Reviewed by Eric Carlson.

        * pal/cocoa/AVFoundationSoftLink.h: Add AVSampleBufferAudioRendererWasFlushedAutomaticallyNotification and its related key
        * pal/cocoa/AVFoundationSoftLink.mm:

2021-04-26  Alex Christensen  <achristensen@webkit.org>

        Add missing SPI declarations
        https://bugs.webkit.org/show_bug.cgi?id=225061

        Reviewed by Alexey Proskuryakov.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/CryptoKitCBridgingSoftLink.h:
        * pal/spi/cocoa/CryptoKitCBridgingSPI.h: Added.
        * pal/spi/mac/DataDetectorsSPI.h:

2021-04-26  Alex Christensen  <achristensen@webkit.org>

        Update Mac-specific CMake files
        https://bugs.webkit.org/show_bug.cgi?id=225064

        Rubber-stamped by Tim Horton.

        * pal/PlatformMac.cmake:

2021-04-25  Devin Rousso  <drousso@apple.com>

        Add `ALWAYS_LOG_WITH_STREAM` macro for easier development/debugging
        https://bugs.webkit.org/show_bug.cgi?id=224959

        Reviewed by Darin Adler.

        It's often very helpful to use existing `operator<<` defined on objects, but annoying to
        have to copypaste the boilerplate code that creates a `WTF::TextStream` and uses it in a
        `WTFLogAlways` or wait for a debug build to enable existing `LOG_WITH_STREAM`.

        * pal/LogMacros.h: Removed.
        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        Move contents of `pal/LogMacros.h` to `wtf/Assertions.h`.

2021-04-23  Chris Dumez  <cdumez@apple.com>

        Improve our constructDeletedValue() template specializations
        https://bugs.webkit.org/show_bug.cgi?id=224889

        Reviewed by Darin Adler.

        * pal/SessionID.h:
        (WTF::HashTraits<PAL::SessionID>::constructDeletedValue):

2021-04-20  Brent Fulgham  <bfulgham@apple.com>

        [Cocoa] Prevent GPU and WebContent processes from attempting to connect to the AppSSO service 
        https://bugs.webkit.org/show_bug.cgi?id=224834
        <rdar://problem/72157514>

        Reviewed by Jiewen Tan.

        * pal/spi/cf/CFNetworkSPI.h: Add declaration for 'skipAppSSO' version of NSURLProtocol method.

2021-04-19  Kimmo Kinnunen  <kkinnunen@apple.com>

        Enable -Wthread-safety, add attributes to custom lock classes, and provide macros to declare guards
        https://bugs.webkit.org/show_bug.cgi?id=221614
        <rdar://problem/74396781>

        Reviewed by David Kilzer.

        Add -Wthread-safety to compile flags.

        * Configurations/Base.xcconfig:

2021-04-09  Jer Noble  <jer.noble@apple.com>

        WTF SoftLinking macros can cause collisions with their target functions
        https://bugs.webkit.org/show_bug.cgi?id=224379
        <rdar://76434202>

        Reviewed by Eric Carlson.

        * pal/cf/CoreMediaSoftLink.h:
        * pal/cocoa/MediaToolboxSoftLink.h:
        * pal/cocoa/OpenGLSoftLinkCocoa.h:
        * pal/cocoa/PassKitSoftLink.h:
        * pal/ios/UIKitSoftLink.h:
        * pal/spi/cocoa/AccessibilitySupportSoftLink.cpp:
        * pal/spi/cocoa/AccessibilitySupportSoftLink.h:

2021-04-08  Kate Cheney  <katherine_cheney@apple.com>

        Fix incorrect compile-time macro for CFNETWORK_NSURLSESSION_ATTRIBUTED_BUNDLE_IDENTIFIER
        https://bugs.webkit.org/show_bug.cgi?id=224347
        <rdar://problem/76353792>

        Reviewed by Brent Fulgham.

        * pal/spi/cf/CFNetworkSPI.h:

2021-04-07  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix after r275614; add soft linked class.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2021-04-05  Alex Christensen  <achristensen@webkit.org>

        Resurrect Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=224084

        Reviewed by Tim Horton.

        * pal/PlatformMac.cmake:

2021-04-01  Kimmo Kinnunen  <kkinnunen@apple.com>

        RemoteRenderingBackend should clean up CG resources after last Canvas is destroyed in Gpu process
        https://bugs.webkit.org/show_bug.cgi?id=223885
        <rdar://problem/75637356>

        Reviewed by Simon Fraser.

        Add SPI interface _MTLDevice for its _purgeDevice method.

        * pal/spi/cocoa/MetalSPI.h:

2021-04-01  Jean-Yves Avenard  <jya@apple.com>

        Previous artwork isn't cleared when NowPlaying info doesn't contain an artwork
        https://bugs.webkit.org/show_bug.cgi?id=224031
        <rdar://76044544>

        Reviewed by Youenn Fablet.

        * pal/spi/mac/MediaRemoteSPI.h: Add MRMediaRemoteMergePolicy enum definitions.

2021-04-01  Jean-Yves Avenard  <jya@apple.com>

        Now Playing artwork doesn't update when changed.
        https://bugs.webkit.org/show_bug.cgi?id=223731
        <rdar://problem/75823923>

        Reviewed by Eric Carlson.

        * pal/spi/mac/MediaRemoteSPI.h:

2021-03-31  Youenn Fablet  <youenn@apple.com>

        Make use of NSURLSessionWebSocket.sendCloseCode if available
        https://bugs.webkit.org/show_bug.cgi?id=223999

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:

2021-03-29  Per Arne  <pvollan@apple.com>

        The header file NotifySPI.h should not be private
        https://bugs.webkit.org/show_bug.cgi?id=223893
        <rdar://75942308>

        Unreviewed build fix.

        * PAL.xcodeproj/project.pbxproj:

2021-03-26  Per Arne  <pvollan@apple.com>

        Enforce notifyd message filtering
        https://bugs.webkit.org/show_bug.cgi?id=223601
        <rdar://75098580>

        Reviewed by Brent Fulgham.

        Add Notify SPI file.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NotifySPI.h: Added.

2021-03-26  Devin Rousso  <drousso@apple.com>

        Adopt AVKit SPI for hiding touch bar seeking controls
        https://bugs.webkit.org/show_bug.cgi?id=223773
        <rdar://problem/68937617>

        Reviewed by Jer Noble.

        * pal/spi/cocoa/AVKitSPI.h:

2021-03-26  Jessie Berlin  <jberlin@webkit.org>

        Update the BEFORE/SINCE, SYSTEM_VERSION_PREFIX, and MACOSX_DEPLOYMENT_TARGET flags
        https://bugs.webkit.org/show_bug.cgi?id=223779

        Reviewed by Tim Horton.

        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2021-03-25  Jessie Berlin  <jberlin@webkit.org>

        Remove 10.13 DEPLOYMENT_TARGETs and SYSTEM_VERSION_PREFIXs
        https://bugs.webkit.org/show_bug.cgi?id=223765

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:

2021-03-25  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r275057.
        https://bugs.webkit.org/show_bug.cgi?id=223768

        Caused build failure

        Reverted changeset:

        "Enforce notifyd message filtering"
        https://bugs.webkit.org/show_bug.cgi?id=223601
        https://trac.webkit.org/changeset/275057

2021-03-25  Per Arne  <pvollan@apple.com>

        Enforce notifyd message filtering
        https://bugs.webkit.org/show_bug.cgi?id=223601
        <rdar://75098580>

        Reviewed by Brent Fulgham.

        Add Notify SPI file.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NotifySPI.h: Added.

2021-03-19  Jer Noble  <jer.noble@apple.com>

        Many media/media-fragments/ tests are crashing due to other tests that run before them.
        https://bugs.webkit.org/show_bug.cgi?id=223277
        <rdar://problem/75492360>

        Reviewed by Eric Carlson.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2021-03-17  Aditya Keerthi  <akeerthi@apple.com>

        [iOS][FCR] Use system colors for the new appearance
        https://bugs.webkit.org/show_bug.cgi?id=223303
        <rdar://problem/75508598>

        Reviewed by Tim Horton.

        * pal/spi/ios/UIKitSPI.h:

        Add additional system colors declarations for watchOS and tvOS.

2021-03-17  Brent Fulgham  <bfulgham@apple.com>

        [Cocoa] Populate NSURLSession with attributed bundle ID
        https://bugs.webkit.org/show_bug.cgi?id=223382
        <rdar://problem/75498230>

        Reviewed by Alex Christensen.

        Add forward declarations for attributed bundle ID.

        * pal/spi/cf/CFNetworkSPI.h:

2021-03-15  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Adopt AudioComponentApplyServerRegistrations()
        https://bugs.webkit.org/show_bug.cgi?id=223188
        <rdar://75433850>

        Reviewed by Eric Carlson.

        * pal/cf/AudioToolboxSoftLink.cpp:
        * pal/cf/AudioToolboxSoftLink.h:

2021-03-13  Tim Horton  <timothy_horton@apple.com>

        Adopt DDMacAction instead of DDAction on macOS
        https://bugs.webkit.org/show_bug.cgi?id=223145
        <rdar://problem/70127512>

        Reviewed by Megan Gardner.

        * pal/spi/mac/DataDetectorsSPI.h:

2021-03-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [macOS] MobileAsset fonts are broken in Reader mode in Safari
        https://bugs.webkit.org/show_bug.cgi?id=223062

        Reviewed by Simon Fraser.

        * pal/spi/cf/CoreTextSPI.h:

2021-03-10  Devin Rousso  <drousso@apple.com>

        Add plumbing for `defaultPlaybackRate` to AVKit
        https://bugs.webkit.org/show_bug.cgi?id=222991
        <rdar://problem/75012417>

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/AVKitSPI.h:

2021-03-09  Ben Nham  <nham@apple.com>

        Adopt new NSURLSessionConfiguration SPI for connection cache configuration
        https://bugs.webkit.org/show_bug.cgi?id=222934

        Reviewed by Geoffrey Garen.

        Declare NSURLSessionConfiguration connection cache limit SPI when building using the public SDK.

        * pal/spi/cf/CFNetworkSPI.h:

2021-03-05  Per Arne Vollan  <pvollan@apple.com>

        [Win] Fix compile error
        https://bugs.webkit.org/show_bug.cgi?id=222802
        <rdar://problem/75052309>

        Reviewed by Dean Jackson.

        Declare CTFontTransformOptions if associated header file has not been included.

        * pal/spi/win/CoreTextSPIWin.h:

2021-03-05  Alex Christensen  <achristensen@webkit.org>

        Fix my iOS Simulator build.
        https://bugs.webkit.org/show_bug.cgi?id=222041

        * pal/spi/cocoa/AVStreamDataParserSPI.h:
        My build couldn't find what CMSampleBufferRef was supposed to mean, so I include CoreMedia.h.
        I have no idea why all the bots build successfully.

2021-03-04  Chris Dumez  <cdumez@apple.com>

        Set ownership of IOSurfaces from the GPUProcess instead of the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=222391
        <rdar://74748353>

        Reviewed by Simon Fraser.

        Add declaration for new IOSurfaceSetOwnershipIdentity() SPI, for the open source
        SDK.

        * pal/spi/cocoa/IOSurfaceSPI.h:

2021-03-04  Peng Liu  <peng.liu6@apple.com>

        [GPUProcess] MediaController is using a ClockCM
        https://bugs.webkit.org/show_bug.cgi?id=222094

        Reviewed by Eric Carlson.

        Remove `ClockCM` and use `ClockGeneric` instead because `ClockCM::currentTime()`
        always returns NaN when "Media in GPU Process" is enabled.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/system/mac/ClockCM.h: Removed.
        * pal/system/mac/ClockCM.mm: Removed.

2021-03-02  Youenn Fablet  <youenn@apple.com>

        Enable MEDIA_SOURCE in IOS Simulator
        https://bugs.webkit.org/show_bug.cgi?id=222041

        Reviewed by Eric Carlson.

        Add missing header declarations in AVStreamDataParserSPI.h and use it for simulator.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/AVFoundationSPI.h:
        * pal/spi/cocoa/AVStreamDataParserSPI.h: Added.

2021-03-01  Truitt Savell  <tsavell@apple.com>

        Unreviewed, reverting r273655.

        Broke internal Mac

        Reverted changeset:

        "Set ownership of IOSurfaces from the GPUProcess instead of
        the WebProcess"
        https://bugs.webkit.org/show_bug.cgi?id=222391
        https://commits.webkit.org/r273655

2021-03-01  Chris Dumez  <cdumez@apple.com>

        Set ownership of IOSurfaces from the GPUProcess instead of the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=222391
        <rdar://74748353>

        Reviewed by Simon Fraser.

        Add declaration for new IOSurfaceSetOwnershipIdentity() SPI, for the open source
        SDK.

        * pal/spi/cocoa/IOSurfaceSPI.h:

2021-02-22  Per Arne  <pvollan@apple.com>

        [macOS] Disabling relaunch on login for the WebContent process is racy
        https://bugs.webkit.org/show_bug.cgi?id=222074
        <rdar://problem/74230216>

        Reviewed by Geoffrey Garen.

        Declare Launch Services key to disable relaunch on login.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2021-02-20  Chris Fleizach  <cfleizach@apple.com>

        AX: Image should report the embedded accessibility description if available
        https://bugs.webkit.org/show_bug.cgi?id=221875
        <rdar://problem/74320584>

        Reviewed by Jer Noble.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/MediaAccessibilitySPI.h: Added.

2021-02-18  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Specify a _UIDataOwner when reading or writing from the system pasteboard
        https://bugs.webkit.org/show_bug.cgi?id=222072
        <rdar://problem/74208576>

        Reviewed by Devin Rousso.

        Import `UIPasteboard_Private.h` so that `PlatformPasteboardIOS.mm` can use the new SPI.

        * pal/spi/ios/UIKitSPI.h:

2021-02-18  Myles C. Maxfield  <mmaxfield@apple.com>

        [GPU Process] Temporarily disable drawing OT-SVG glyphs in the GPU process until it can be implemented properly
        https://bugs.webkit.org/show_bug.cgi?id=221744

        Reviewed by Simon Fraser.

        This patch soft-links the OTSVG framework because it's a private framework that doesn't exist on watchOS.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/CoreTextSoftLink.cpp: Added.
        * pal/cf/CoreTextSoftLink.h: Added.
        * pal/cf/OTSVGTable.cpp: Added.
        (PAL::OTSVGTable::OTSVGTable):
        (PAL::OTSVGTable::~OTSVGTable):
        (PAL::OTSVGTable::operator=):
        * pal/cf/OTSVGTable.h: Added.
        * pal/spi/cf/CoreTextSPI.h:

2021-02-18  Devin Rousso  <drousso@apple.com>

        [Payment Request] add an `object data` to `PaymentItem` so that data specific to Apple Pay can be provided
        https://bugs.webkit.org/show_bug.cgi?id=221970
        <rdar://problem/69806999>

        Reviewed by Alex Christensen.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm:
        * pal/spi/cocoa/PassKitSPI.h:

2021-02-18  Per Arne  <pvollan@apple.com>

        [macOS] Observe system sleep events in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=221996
        <rdar://problem/74406570>

        Reviewed by Chris Dumez.

        Export symbols, since the system sleep listener will be instantiated in the UI process.

        * pal/system/SystemSleepListener.h:

2021-02-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, fix the Apple internal iOS build after r272878

        Wrap `NSScrollViewSPI.h` in a `USE(APPKIT)` guard, so that we don't attempt to import AppKit headers when
        building for iOS using the internal SDK.

        * pal/spi/mac/NSScrollViewSPI.h:

2021-02-15  Said Abou-Hallawa  <said@apple.com>

        [GPU Process] Ensure that no image decoders run in the GPU Process
        https://bugs.webkit.org/show_bug.cgi?id=221885
        <rdar://problem/74341122>

        Reviewed by Simon Fraser.

        Add CGImageSourceSetAllowableTypes() to the ImageIO SPI header file.

        * pal/spi/cg/ImageIOSPI.h:

2021-02-10  Myles C. Maxfield  <mmaxfield@apple.com>

        Move pal/spi/cocoa/CoreTextSPI.h to pal/spi/cf/CoreTextSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=221683

        Reviewed by Simon Fraser.

        Core Text has a C API, and doesn't depend on UIKit/AppKit. It also exists on Windows,
        where there is no Cocoa. And pal/spi/cf already includes things like CoreAudioSPI.h
        and CoreVideoSPI.h

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/spi/cf/CoreTextSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/CoreTextSPI.h.

2021-02-05  Eric Carlson  <eric.carlson@apple.com>

        [Mac] Connect MediaSession with MediaRemote and NowPlaying
        https://bugs.webkit.org/show_bug.cgi?id=221431
        <rdar://problem/74000363>

        Reviewed by Jer Noble.

        * pal/spi/mac/MediaRemoteSPI.h:

2021-02-01  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Disable interstitial events on AVPlayerItem.
        https://bugs.webkit.org/show_bug.cgi?id=221215

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/AVFoundationSPI.h:

2021-01-29  Myles C. Maxfield  <mmaxfield@apple.com>

        font-stretch is not applied to system-ui
        https://bugs.webkit.org/show_bug.cgi?id=221103
        <rdar://problem/73719139>

        Reviewed by Darin Adler.

        * pal/spi/cocoa/CoreTextSPI.h:

2021-01-28  Per Arne  <pvollan@apple.com>

        [macOS] Crash when updating color preferences
        https://bugs.webkit.org/show_bug.cgi?id=221088
        <rdar://problem/73709142>

        Reviewed by Brent Fulgham.

        Declare NSApplication SPI for updating application information with Launch Services.

        * pal/spi/mac/NSApplicationSPI.h:

2021-01-21  Alex Christensen  <achristensen@webkit.org>

        Add experimental feature to use network loader
        https://bugs.webkit.org/show_bug.cgi?id=220521
        <rdar://problem/69394713>

        Reviewed by Geoff Garen.

        * pal/spi/cf/CFNetworkSPI.h:

2021-01-21  Sam Weinig  <weinig@apple.com>

        Add experimental support for separated layers
        https://bugs.webkit.org/show_bug.cgi?id=220734

        Reviewed by Simon Fraser.

        * pal/spi/cocoa/QuartzCoreSPI.h:
        Add forward declaration for CALayer's separated property.

2021-01-19  Chris Dumez  <cdumez@apple.com>

        [GPUProcess] Claim ownership of IOSurface backing for ImageBufferBackends in the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=220663

        Reviewed by Geoffrey Garen.

        Declare new IOSurface SPI.

        * pal/spi/cocoa/IOSurfaceSPI.h:

2021-01-14  Tim Horton  <timothy_horton@apple.com>

        Exceptions thrown when invoking a <select> on an iPhone-idiom app running on macOS
        https://bugs.webkit.org/show_bug.cgi?id=220628
        <rdar://problem/70546547>

        Reviewed by Wenson Hsieh.

        * pal/spi/ios/MobileGestaltSPI.h:

2021-01-12  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Reset user directory suffix before getting sandbox directory
        https://bugs.webkit.org/show_bug.cgi?id=220358
        <rdar://problem/57616019>

        Reviewed by Alexey Proskuryakov.

        Declare functions to get and set user directory suffix.

        * pal/spi/cocoa/CoreServicesSPI.h:

2021-01-12  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Support key rotation with HLS-backed encrypted media streams
        https://bugs.webkit.org/show_bug.cgi?id=220493
        <rdar://68227709>

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/AVFoundationSPI.h:

2021-01-08  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r271331.
        https://bugs.webkit.org/show_bug.cgi?id=220487

        Wasn't ready for review.

        Reverted changeset:

        "[macOS] Reset user directory suffix before getting sandbox
        directory"
        https://bugs.webkit.org/show_bug.cgi?id=220358
        https://trac.webkit.org/changeset/271331

2021-01-08  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Reset user directory suffix before getting sandbox directory
        https://bugs.webkit.org/show_bug.cgi?id=220358
        <rdar://problem/57616019>

        Reviewed by Brent Fulgham.

        Declare functions to get and set user directory suffix.

        * pal/spi/cocoa/CoreServicesSPI.h:

2021-01-06  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Revert audioTimePitchAlgorithm to "TimeDomain" from "Spectral"
        https://bugs.webkit.org/show_bug.cgi?id=220341

        Reviewed by Youenn Fablet.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2020-12-15  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Adopt -externalContentProtectionStatus
        https://bugs.webkit.org/show_bug.cgi?id=219911

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/AVFoundationSPI.h:

2020-12-14  Chris Fleizach  <cfleizach@apple.com>

        AX: implement prefers-contrast: more
        https://bugs.webkit.org/show_bug.cgi?id=215507
        <rdar://problem/67077492>

        Reviewed by Dean Jackson.

        * pal/ios/UIKitSoftLink.h:

2020-12-14  Tim Horton  <timothy_horton@apple.com>

        Adopt symbol image API instead of SPI in WKPDFHUDView
        https://bugs.webkit.org/show_bug.cgi?id=219866

        Reviewed by Wenson Hsieh.

        * pal/spi/mac/NSImageSPI.h:

2020-12-14  Sihui Liu  <sihui_liu@apple.com>

        Implement recognizer for SpeechRecognition
        https://bugs.webkit.org/show_bug.cgi?id=219459
        <rdar://problem/71914465>

        Reviewed by Youenn Fablet.

        Add soft linking to Speech framework and SPI.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/SpeechSoftLink.h: Added.
        * pal/cocoa/SpeechSoftLink.mm: Added.
        * pal/spi/cocoa/SpeechSPI.h: Added.

2020-12-13  Andy Estes  <aestes@apple.com>

        [Mac] Create a MediaToolbox format reader plug-in for WebM
        https://bugs.webkit.org/show_bug.cgi?id=218908
        <rdar://problem/71373264>

        Reviewed by Eric Carlson.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h:
        * pal/spi/cf/CoreMediaSPI.h:
        * pal/spi/cocoa/MediaToolboxSPI.h:

2020-12-11  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Determine correct visibility for linked frameworks
        https://bugs.webkit.org/show_bug.cgi?id=210366

        Reviewed by Michael Catanzaro.

        Set PAL_FRAMEWORKS to determine correct linkage for the library.

        * pal/CMakeLists.txt:

2020-12-10  Andy Estes  <aestes@apple.com>

        [Mac] Create a format reader plug-in for WebM
        https://bugs.webkit.org/show_bug.cgi?id=218908
        <rdar://problem/71373264>

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/MediaToolboxSPI.h: Defined SPI for MTPluginFormatReader.

2020-12-07  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Remove WEBKIT_WRAP_SOURCELIST
        https://bugs.webkit.org/show_bug.cgi?id=196916

        Reviewed by Michael Catanzaro.

        * pal/CMakeLists.txt:

2020-12-04  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Adopt AVOutputDevice.allowsHeadTrackedSpatialAudio
        https://bugs.webkit.org/show_bug.cgi?id=219503

        Reviewed by Eric Carlson.

        On macOS, clients who wish to query head tracking AVOutputDevice capabilities must use the
        sharedSystemAudioContext--not the sharedAudioPresentationOutputContext--to do so. This context
        requires a specific entitlement to use.

        In addition to querying -supportsHeadTrackedSpatialAudio, also query
        -allowsHeadTrackedSpatialAudio, if present, to determine whether the current route supports
        spatialization.

        * pal/avfoundation/OutputContext.mm:
        (PAL::OutputContext::sharedAudioPresentationOutputContext):
        * pal/avfoundation/OutputDevice.mm:
        (PAL::OutputDevice::supportsSpatialAudio const):
        * pal/spi/cocoa/AVFoundationSPI.h:

2020-12-04  Adam Roben  <aroben@apple.com>

        More FALLBACK_PLATFORM adoption
        https://bugs.webkit.org/show_bug.cgi?id=219545

        Reviewed by Tim Horton.

        * Configurations/SDKVariant.xcconfig:
        WK_EMPTY_$(THIS_IS_NOT_EMPTY) evaluates to the empty string, not to
        NO.

2020-12-03  Adam Roben  <aroben@apple.com>

        Adopt FALLBACK_PLATFORM
        https://bugs.webkit.org/show_bug.cgi?id=219504

        Reviewed by Tim Horton.

        * Configurations/SDKVariant.xcconfig: Use FALLBACK_PLATFORM it if it's
        defined, otherwise use PLATFORM_NAME as before.

2020-11-30  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Adopt SPI to prevent establishing XPC connections to Launch Services
        https://bugs.webkit.org/show_bug.cgi?id=219173
        <rdar://problem/71595536>

        Reviewed by Alex Christensen.

        Declare enum value to be used when adopting the SPI.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-11-28  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Set application information in the Networking process on behalf of the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=218052
        <rdar://problem/70586405>

        Reviewed by Brent Fulgham.

        Declare function to create ASN from an audit token.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-11-17  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Perform AX TCC check in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=218870
        <rdar://problem/71339830>

        Reviewed by Brent Fulgham.

        Add typedef for TCC authentication callback.

        * pal/spi/mac/HIServicesSPI.h:

2020-11-17  Kimmo Kinnunen  <kkinnunen@apple.com>

        Build fails on internal simulator builds due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
        https://bugs.webkit.org/show_bug.cgi?id=219030

        Reviewed by Antti Koivisto.

        Fix compile for simulator builds.
        Rename HAVE_CV_AGX_420_PIXEL_FORMAT_TYPES to
        HAVE_COREVIDEO_COMPRESSED_PIXEL_FORMAT_TYPES to better reflect what the ifdef does.

        * pal/spi/cf/CoreVideoSPI.h:

2020-11-17  Kimmo Kinnunen  <kkinnunen@apple.com>

        Build fails on internal Catalina due to missing enum kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange
        https://bugs.webkit.org/show_bug.cgi?id=219026

        Reviewed by Antti Koivisto.

        Fix compile for macOS versions before Big Sur.

        On macOS, only use the private header on Big Sur. On Catalina, use the
        manual enums.

        Regressed in:
        Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]

        * pal/spi/cf/CoreVideoSPI.h:

2020-11-16  Kimmo Kinnunen  <kkinnunen@apple.com>

        Textures Fail to Render in WebGL from HLS Stream on iPhone 12 [iOS 14.2]
        https://bugs.webkit.org/show_bug.cgi?id=218637
        <rdar://problem/71102126>

        Reviewed by Eric Carlson.

        Patch by Jer Noble.

        Treat internal compressed YUV pixel formats
        kCVPixelFormatType_AGX_420YpCbCr8BiPlanarVideoRange and
        kCVPixelFormatType_AGX_420YpCbCr8BiPlanarFullRange as
        kCVPixelFormatType_420YpCbCr8BiPlanarVideoRange and
        kCVPixelFormatType_420YpCbCr8BiPlanarFullRange when
        using the OpenGL shader to convert video IOSurface to a WebGL
        texture.

        Fixes cases where the decoder outputs the compressed formats.

        No new tests, adding more comprehensive test content suite is tracked
        in another bug.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cf/CoreVideoSPI.h: Added.

2020-11-11  Eric Carlson  <eric.carlson@apple.com>

        USB microphone not recognized iOS Safari
        https://bugs.webkit.org/show_bug.cgi?id=211192
        <rdar://problem/62607313>

        Reviewed by Youenn Fablet.

        * pal/spi/cocoa/AVFoundationSPI.h: Declare +[AVAudioSession initAuxiliarySession].

2020-11-10  Jer Noble  <jer.noble@apple.com>

        Unreviewed internal macOS build-fix.

        * pal/avfoundation/OutputDevice.mm:
        (PAL::OutputDevice::supportsSpatialAudio const):

2020-11-10  Jer Noble  <jer.noble@apple.com>

        Add support for AudioConfiguration.spatialRendering
        https://bugs.webkit.org/show_bug.cgi?id=218727
        <rdar://problem/71213348>

        Reviewed by Eric Carlson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/avfoundation/OutputContext.h: Copied from Source/WebCore/platform/mediacapabilities/AudioConfiguration.h.
        (PAL::OutputContext::platformContext const):
        * pal/avfoundation/OutputContext.mm: Added.
        (PAL::OutputContext::OutputContext):
        (PAL::OutputContext::sharedAudioPresentationOutputContext):
        (PAL::OutputContext::supportsMultipleOutputDevices):
        (PAL::OutputContext::deviceName):
        (PAL::OutputContext::outputDevices const):
        * pal/avfoundation/OutputDevice.h: Copied from Source/WebCore/platform/mediacapabilities/AudioConfiguration.h.
        (PAL::OutputDevice::platformDevice const):
        * pal/avfoundation/OutputDevice.mm: Copied from Source/WebCore/platform/mediacapabilities/AudioConfiguration.h.
        (PAL::OutputDevice::OutputDevice):
        (PAL::OutputDevice::name const):
        (PAL::OutputDevice::deviceFeatures const):
        (PAL::OutputDevice::supportsSpatialAudio const):
        * pal/spi/cocoa/AVFoundationSPI.h:

2020-11-04  David Kilzer  <ddkilzer@apple.com>

        WebKit should remove unused debug variant support
        <https://webkit.org/b/218315>
        <rdar://problem/70785369>

        Reviewed by Darin Adler.

        Remove support for building the debug variant since it is
        currently unused. We now set default values for the
        DEAD_CODE_STRIPPING, DEBUG_DEFINES, GCC_OPTIMIZATION_LEVEL and
        STRIP_INSTALLED_PRODUCT variables.

        Also move these values out of the Xcode project into
        Base.xcconfig files using the [config=Debug] specifier so that
        these overrides are next to the definitions.

        * Configurations/Base.xcconfig:
        * PAL.xcodeproj/project.pbxproj:

2020-11-02  David Kilzer  <ddkilzer@apple.com>

        Sort Xcode project file

        * PAL.xcodeproj/project.pbxproj:

2020-11-01  Chris Fleizach  <cfleizach@apple.com>

        AX: Provide build workaround while isSystemVoice is not in all SDKs
        https://bugs.webkit.org/show_bug.cgi?id=218414

        Reviewed by Tim Horton.

        * pal/spi/cocoa/AXSpeechManagerSPI.h:

2020-10-30  Myles C. Maxfield  <mmaxfield@apple.com>

        Fix internal watchOS and tvOS builds after r269211
        https://bugs.webkit.org/show_bug.cgi?id=217506

        Unreviewed build fix.

        * pal/spi/cg/CoreGraphicsSPI.h:

2020-10-29  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] [GPU Process] Perform image decoding of color fonts in the Web Process
        https://bugs.webkit.org/show_bug.cgi?id=217506

        Reviewed by Simon Fraser.

        Add some new entry points, and do some various cleanup.

        * pal/spi/cg/CoreGraphicsSPI.h:

2020-10-30  Chris Fleizach  <cfleizach@apple.com>

        AX: Incorrect list of voices being displayed on iOS
        https://bugs.webkit.org/show_bug.cgi?id=218293

        Reviewed by Per Arne Vollan.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/spi/cocoa/AXSpeechManagerSPI.h: Added.

2020-10-13  Keith Rollin  <krollin@apple.com>

        Remove leftover MACOSX_DEPLOYMENT_TARGET_macosx support
        https://bugs.webkit.org/show_bug.cgi?id=217649
        <rdar://problem/70236877>

        Reviewed by Darin Adler.

        Bug 42796 introduced MACOSX_DEPLOYMENT_TARGET_<PLATFORM> as "support
        for compiling WebKit against iOS SDKs". Support for the iOS part of
        this feature was later removed in several changes, including Bug
        139212, Bug 139463 and Bug 144762. However, vestiges have remained for
        five or six years in the form of MACOSX_DEPLOYMENT_TARGET_macosx. The
        inclusion of the platform in MACOSX_DEPLOYMENT_TARGET is no longer
        needed and can be removed.

        This changes brings most projects in conformance with other projects
        that don't support including the platform in MACOSX_DEPLOYMENT_TARGET,
        including WebEditingTester, gtest, WebKitTestRunner, MiniBrowser, and
        TestWebKitAPI.

        Along the way, remove a couple of left-over references to macOS 10.16,
        and a couple of places where [sdk=macosx*] was still being used.

        With this change, initialization of MACOSX_DEPLOYMENT_TARGET should be
        consistent across all projects, with two exceptions: WebKitLauncher
        (which hardcodes it to 10.12) and libwebrtc's copy of googletest
        (which hardcodes it to 10.4). The reasons for these hard-coded values
        is not apparent, so leave them be.

        * Configurations/DebugRelease.xcconfig:

2020-10-12  Luming Yin  <luming_yin@apple.com>

        [macOS] Workaround for MAC_OS_X_VERSION_MAJOR incorrectly including minor version when building 
        with Xcode 12 on macOS Big Sur SUs
        https://bugs.webkit.org/show_bug.cgi?id=217602
        rdar://70194453

        Reviewed by Darin Adler.

        The previous workaround turns out to be ineffective because we can't set the value of 
        TARGET_MAC_OS_X_VERSION_MAJOR based on a previous value of itself. Introduce a new 
        variable TARGET_MAC_OS_X_VERSION_MAJOR to determine whether we need to explicitly 
        adjust MAC_OS_X_VERSION_MAJOR to 110000.

        * Configurations/DebugRelease.xcconfig:

2020-10-12  Luming Yin  <luming_yin@apple.com>

        [macOS] Workaround for MAC_OS_X_VERSION_MAJOR incorrectly including minor version when building 
        with Xcode 12 on macOS Big Sur SUs
        https://bugs.webkit.org/show_bug.cgi?id=217602
        rdar://70194453

        Reviewed by Darin Adler.

        Due to a bug in Xcode (rdar://70185899), Xcode 12.0 and Xcode 12.1 Beta incorrectly includes the 
        minor release number in MAC_OS_X_VERSION_MAJOR, which causes Debug and Release builds of WebKit 
        to be misconfigured when building on macOS Big Sur SUs, leading to webpages failing to load.

        To work around the Xcode bug, when the MAC_OS_X_VERSION_MAJOR includes the minor version number, 
        drop the minor version number by explicitly setting TARGET_MAC_OS_X_VERSION_MAJOR to 110000.

        Note: This change should be reverted after <rdar://70185899> is resolved.

        * Configurations/DebugRelease.xcconfig:

2020-10-11  Luming Yin  <luming_yin@apple.com>

        Strip patch version from TARGET_MAC_OS_X_VERSION_MAJOR when building for macOS Big Sur 
        or later
        https://bugs.webkit.org/show_bug.cgi?id=217594
        rdar://70188497

        Reviewed by Darin Adler.

        To ensure successful Mac Catalyst WebKit builds, strip the patch version from 
        TARGET_MAC_OS_X_VERSION_MAJOR by using two `base:`s on MACOSX_DEPLOYMENT_TARGET.

        * Configurations/Base.xcconfig:

2020-10-11  Luming Yin  <luming_yin@apple.com>

        Ignore deployment suffix and identifier when computing major OS version for macOS 
        Big Sur and newer
        https://bugs.webkit.org/show_bug.cgi?id=217584
        rdar://70168426

        Reviewed by Darin Adler.

        Stop using MACOSX_DEPLOYMENT_TARGET:suffix:identifier to compute major OS versions. 
        Only use the deployment target base for macOS Big Sur and newer. Keep the manual 
        definitions for legacy versions of macOS.

        * Configurations/Base.xcconfig:

2020-10-09  Jer Noble  <jer.noble@apple.com>

        [Mac] AirPlay menu does not show up when AirPlay button is clicked
        https://bugs.webkit.org/show_bug.cgi?id=217536
        <rdar://problem/69973777>

        Reviewed by Eric Carlson.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2020-10-02  Youenn Fablet  <youenn@apple.com>

        Add AVAssetWriter SPI header
        https://bugs.webkit.org/show_bug.cgi?id=217169
        <rdar://problem/69793050>

        Reviewed by Eric Carlson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/AVAssetWriterSPI.h: Added.

2020-10-01  Truitt Savell  <tsavell@apple.com>

        Unreviewed, reverting r267841.

        Broke Catalina Builds

        Reverted changeset:

        "Add AVAssetWriter SPI header"
        https://bugs.webkit.org/show_bug.cgi?id=217169
        https://trac.webkit.org/changeset/267841

2020-10-01  Youenn Fablet  <youenn@apple.com>

        Add AVAssetWriter SPI header
        https://bugs.webkit.org/show_bug.cgi?id=217169
        <rdar://problem/69793050>

        Reviewed by Eric Carlson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/AVAssetWriterSPI.h: Added.

2020-09-29  Jonathan Bedard  <jbedard@apple.com>

        [watchOS] AVKitSPI build fixes
        https://bugs.webkit.org/show_bug.cgi?id=217070
        <rdar://problem/69724883>

        Rubber-stamped by Eric Carlson.

        * pal/spi/cocoa/AVKitSPI.h: Explicitly import AVPlayer.h and UIKit.h.

2020-09-29  Aditya Keerthi  <akeerthi@apple.com>

        [macCatalyst] Focus rings are not painted
        https://bugs.webkit.org/show_bug.cgi?id=217073
        <rdar://problem/46794111>

        Reviewed by Darin Adler.

        * pal/spi/ios/UIKitSPI.h:

        Ensure needed interfaces are available on all IOS_FAMILY platforms.

2020-09-24  Dean Jackson  <dino@apple.com>

        WebGL should use GLES in iOS apps running on Apple Silicon
        https://bugs.webkit.org/show_bug.cgi?id=216722
        <rdar://problem/68976337>

        Reviewed by Tim Horton.

        Add soft-linking content for OpenGL/OpenGLES.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/cocoa/OpenGLSoftLinkCocoa.h: Added.
        * pal/cocoa/OpenGLSoftLinkCocoa.mm: Added.

2020-09-17  Tim Horton  <timothy_horton@apple.com>

        Per-app accent color overrides are broken
        https://bugs.webkit.org/show_bug.cgi?id=216674
        <rdar://problem/67745464>

        Reviewed by Wenson Hsieh.

        * pal/spi/mac/NSApplicationSPI.h:

2020-09-16  Alex Christensen  <achristensen@webkit.org>

        Remove unneeded HAVE_FOUNDATION_WITH_SAVE_COOKIES_WITH_COMPLETION_HANDLER
        https://bugs.webkit.org/show_bug.cgi?id=216572

        Reviewed by Youenn Fablet.

        * pal/spi/cf/CFNetworkSPI.h:

2020-09-14  Myles C. Maxfield  <mmaxfield@apple.com>

        [Apple Win] Migrate from FontPlatformDataWin.cpp to FontPlatformDataCoreText.cpp
        https://bugs.webkit.org/show_bug.cgi?id=216448

        Reviewed by Darin Adler.

        * pal/spi/win/CoreTextSPIWin.h:

2020-09-14  Peng Liu  <peng.liu6@apple.com>

        Clean up AVKitSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=216449

        Unreviewed, a follow-up patch to fix build failures on watchOS.

        * pal/spi/cocoa/AVKitSPI.h:

2020-09-14  Peng Liu  <peng.liu6@apple.com>

        Clean up AVKitSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=216449

        Reviewed by Darin Adler.

        * pal/spi/cocoa/AVFoundationSPI.h:
        Remove a duplicated AVKit header file.

        * pal/spi/cocoa/AVKitSPI.h:
        Organize header files (and definitions) in the following order:
        - General AVKit header files
        - General AVKit internal header files and definitions
        - Feature specific internal header files and definitions

2020-09-14  Peng Liu  <peng.liu6@apple.com>

        Unreviewed, reverting r267004.

        The patch leads to build failures on macOS Catalina.

        Reverted changeset:

        "Clean up AVKitSPI.h"
        https://bugs.webkit.org/show_bug.cgi?id=216449
        https://trac.webkit.org/changeset/267004

2020-09-13  Peng Liu  <peng.liu6@apple.com>

        Clean up AVKitSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=216449

        Reviewed by Darin Adler.

        * pal/spi/cocoa/AVFoundationSPI.h:
        Remove a duplicated AVKit header file.

        * pal/spi/cocoa/AVKitSPI.h:
        Organize header files (and definitions) in the following order:
        - General AVKit header files
        - General AVKit internal header files and definitions
        - Feature specific internal header files and definitions

2020-09-11  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Migrate CoreText-specific code from ***Cocoa.mm to ***CoreText.cpp
        https://bugs.webkit.org/show_bug.cgi?id=216400

        Reviewed by Tim Horton.

        * pal/spi/win/CoreTextSPIWin.h:

2020-09-11  Ben Nham  <nham@apple.com>

        Fix undeclared identifier issue due to clashes in soft link headers
        https://bugs.webkit.org/show_bug.cgi?id=216412

        Reviewed by Geoffrey Garen.

        r266898 broke builds on certain SDKs. The reason for this is that it includes
        MediaToolbox/FigPhoto.h, which transitively includes CoreMedia/CMTimePrivate.h. The latter
        header has a bunch of inline code in certain SDKs which conflicts with the
        CoreMediaSoftLink.h header. For instance, CoreMediaSoftLink.h redefines CMTimeCompare to
        softLink_CoreMedia_CMTimeCompare, which messes up the inline code in the CMTimePrivate.h
        header that references CMTimeCompare.

        For now, we just avoid including FigPhoto.h altogether and use a constant. We'll clean this
        up once we start weak linking rather than soft linking CoreMedia and MediaToolbox (216388).

        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h:
        * pal/spi/cocoa/MediaToolboxSPI.h:

2020-09-10  Ben Nham  <nham@apple.com>

        Disable hardware JPEG decoding on x86 Mac
        https://bugs.webkit.org/show_bug.cgi?id=216377

        Reviewed by Geoff Garen.

        Add wrappers for a new MediaToolbox SPI that allows us to disable HW JPEG decoding.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h:

2020-09-10  Jer Noble  <jer.noble@apple.com>

        [Cocoa] PERF: Don't instantiate AVPlayer-based audio decoders or renderers if an element is initially muted.
        https://bugs.webkit.org/show_bug.cgi?id=216299

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/AVFoundationSPI.h:

2020-09-06  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] attachmentActionFont() Needs to use kCTFontSymbolicTrait: @(kCTFontTraitTightLeading | kCTFontTraitEmphasized) to get the short emphasized footnote font
        https://bugs.webkit.org/show_bug.cgi?id=215707
        <rdar://problem/63930892>

        Reviewed by Darin Adler.

        * pal/spi/cocoa/CoreTextSPI.h: Add an optimzation for platforms which support it.

2020-09-06  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Prepare for migrating to CTFontHasTable() once it's faster than CTFontCopyAvailableTables()
        https://bugs.webkit.org/show_bug.cgi?id=215688

        Reviewed by Darin Adler.

        * pal/spi/cocoa/CoreTextSPI.h:

2020-09-05  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] USE(PLATFORM_SYSTEM_FALLBACK_LIST) is true on all Cocoa platforms, so there's no need to consult it in Cocoa-specific files
        https://bugs.webkit.org/show_bug.cgi?id=215684

        Reviewed by Darin Adler.

        * pal/spi/cocoa/CoreTextSPI.h:

2020-09-05  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] CTFontIsSystemUIFont() is faster than CTFontDescriptorIsSystemUIFont()/CTFontCopyFontDescriptor()
        https://bugs.webkit.org/show_bug.cgi?id=215687

        Reviewed by Darin Adler.

        * pal/spi/cocoa/CoreTextSPI.h:

2020-09-04  Sihui Liu  <sihui_liu@apple.com>

        Webpages flash when switching between windows
        https://bugs.webkit.org/show_bug.cgi?id=216012

        Reviewed by Tim Horton.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2020-08-25  Alex Christensen  <achristensen@webkit.org>

        Clean up deprecated and unused SPI to set HSTS storage on ProcessPoolConfiguration
        https://bugs.webkit.org/show_bug.cgi?id=215788

        Reviewed by Chris Dumez.

        * pal/spi/cf/CFNetworkSPI.h:

2020-08-24  Alex Christensen  <achristensen@webkit.org>

        Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
        https://bugs.webkit.org/show_bug.cgi?id=213048

        Reviewed by Youenn Fablet.

        * pal/spi/cf/CFNetworkSPI.h:

2020-08-20  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Web pages are not responding correctly to changes in "Reduce motion" setting
        https://bugs.webkit.org/show_bug.cgi?id=215664

        Reviewed by Darin Adler.

        Declare "Reduce motion" preference key, as well as notification sent when the "Reduce motion" setting is changed.
 
        * pal/spi/mac/HIServicesSPI.h:

2020-08-19  Aditya Keerthi  <akeerthi@apple.com>

        [macOS] Move stepper painting code off of Carbon API
        https://bugs.webkit.org/show_bug.cgi?id=215619
        <rdar://problem/41936617>

        Reviewed by Darin Adler.

        Add forward declarations for CoreUI SPI on non-internal SDKs.

        Also grouped declarations by key and value pairs.

        * pal/spi/mac/CoreUISPI.h:

2020-08-11  Myles C. Maxfield  <mmaxfield@apple.com>

        Fix Apple internal Mojave builds
        https://bugs.webkit.org/show_bug.cgi?id=215389

        Unreviewed build fix.

        * pal/spi/cocoa/CoreTextSPI.h:

2020-08-10  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Migrate from CTFontTransformGlyphsWithLanguage() to CTFontShapeGlyphs()
        https://bugs.webkit.org/show_bug.cgi?id=215059

        Reviewed by Darin Adler.

        * pal/spi/cocoa/CoreTextSPI.h:

2020-08-07  John Wilander  <wilander@apple.com>

        Experimental: Cap the expiry of persistent cookies set in 3rd-party CNAME cloaked HTTP responses
        https://bugs.webkit.org/show_bug.cgi?id=215201
        <rdar://problem/57454633>

        Reviewed by Brent Fulgham. Also reviewed and commented on by Chris Dumez, Jiten Mehta, Sam Weinig, and Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:
            This change declares two new properties on NSURLSessionTask:
            - _cookieTransformCallback
            - _resolvedCNAMEChain

2020-08-05  Tim Horton  <timothy_horton@apple.com>

        Remove all references to non-existent 10.16
        https://bugs.webkit.org/show_bug.cgi?id=215202

        Reviewed by Wenson Hsieh.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2020-08-04  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Check that Accessibility is enabled when receiving the enable Accessibility notification
        https://bugs.webkit.org/show_bug.cgi?id=215112

        Reviewed by Youenn Fablet.

        Declare NSApplication methods to enable enhanced accessibility user interface, and check if it is enabled.

        * pal/spi/mac/NSApplicationSPI.h:

2020-08-03  Andres Gonzalez  <andresg_22@apple.com>

        Check for the presence of libAccessibility before trying to load the _AXSIsolatedTreeMode function.
        https://bugs.webkit.org/show_bug.cgi?id=215107
        <rdar://problem/66192260>

        Reviewed by Chris Fleizach.

        * pal/spi/cocoa/AccessibilitySupportSoftLink.h:
        Trying to load _AXSIsolatedTreeMode when the library is not present
        triggers an assert.

2020-08-03  Wenson Hsieh  <wenson_hsieh@apple.com>

        Remove the ENABLE_DATA_INTERACTION feature flag
        https://bugs.webkit.org/show_bug.cgi?id=215091

        Reviewed by Megan Gardner.

        * pal/spi/ios/UIKitSPI.h:

2020-08-03  Per Arne Vollan  <pvollan@apple.com>

        Finalize the list of MobileGestalt queries needed to populate the in-memory cache in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=215095
        <rdar://problem/66034080>

        Reviewed by Geoffrey Garen.

        Declare constants for MobileGestalt questions.

        * pal/spi/ios/MobileGestaltSPI.h:

2020-07-31  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Issue a temporary extension to the MobileGestalt daemon when the MobileGestalt cache is invalid
        https://bugs.webkit.org/show_bug.cgi?id=214965

        Reviewed by Geoffrey Garen.

        Declare MobileGestalt queestion identifier.

        * pal/spi/ios/MobileGestaltSPI.h:

2020-07-30  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Adopt -[AVContentKeyRequest willOutputBeObscuredDueToInsufficientExternalProtectionForDisplays:]
        https://bugs.webkit.org/show_bug.cgi?id=214659
        <rdar://problem/63555006>

        Reviewed by Darin Adler.

        * pal/spi/cocoa/AVFoundationSPI.h:

2020-07-29  Jer Noble  <jer.noble@apple.com>

        Support HDR decode in SW VP9
        https://bugs.webkit.org/show_bug.cgi?id=214928
        <rdar://problem/66284848>

        Reviewed by Eric Carlson.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:

2020-07-28  Jonathan Bedard  <jbedard@apple.com>

        [Big Sur] Wrap SPI in feature guards (Follow-up fix)
        https://bugs.webkit.org/show_bug.cgi?id=214844
        <rdar://problem/66178527>

        Unreviewed build fix.

        * pal/spi/mac/NSImageSPI.h: Guard SPI with NS_ASSUME_NONNULL.

2020-07-27  Jonathan Bedard  <jbedard@apple.com>

        [Big Sur] Wrap SPI in feature guards
        https://bugs.webkit.org/show_bug.cgi?id=214844
        <rdar://problem/66178527>

        Reviewed by Darin Adler.

        * pal/spi/mac/NSImageSPI.h:

2020-07-27  Chris Dumez  <cdumez@apple.com>

        ASSERT([filteredCookies.get() count] <= 1) on  imported/w3c/web-platform-tests/websockets/cookies/third-party-cookie-accepted.https.html
        https://bugs.webkit.org/show_bug.cgi?id=214222
        <rdar://problem/65587120>

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:
        Replace deprecated _parsedCookiesWithResponseHeaderFields with newer _cookieForSetCookieString alternative.

2020-07-27  Saagar Jha  <saagar@saagarjha.com>

        Remove definition of NSImageSymbolScale, which is part of the beta 3 SDK
        https://bugs.webkit.org/show_bug.cgi?id=214707

        Reviewed by Jonathan Bedard.

        * pal/spi/mac/NSImageSPI.h: Remove NSImageSymbolScale.

2020-07-27  Megan Gardner  <megan_gardner@apple.com>

        Trying to lookup when WebView is in a popover causes process to hang.
        https://bugs.webkit.org/show_bug.cgi?id=214773
        <rdar://problem/52317762>

        Reviewed by Devin Rousso.

        * pal/spi/mac/NSWindowSPI.h:

2020-07-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=214688
        <rdar://problem/65993683>

        Reviewed by Darin Adler.

        Remove logging added in r264882, r264890, r264892, and r264896.

        * pal/spi/ios/GraphicsServicesSPI.h:

2020-07-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, add even more logging to try and diagnose a flaky test
        https://bugs.webkit.org/show_bug.cgi?id=214688
        <rdar://problem/65993683>

        Add more GraphicsServices SPI declarations.

        * pal/spi/ios/GraphicsServicesSPI.h:

2020-07-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        REGRESSION (r264690): [ iOS wk2 ] editing/selection/shift-click-includes-existing-selection.html is a flaky failure
        https://bugs.webkit.org/show_bug.cgi?id=214688
        <rdar://problem/65993683>

        Reviewed by Tim Horton.

        * pal/spi/ios/GraphicsServicesSPI.h:

2020-07-24  Brady Eidson  <beidson@apple.com>

        Declare two more things to fix the build after r264874

        * pal/spi/mac/IOKitSPIMac.h:

2020-07-24  Brady Eidson  <beidson@apple.com>

        Maybe the last build fix after r264874

        * pal/spi/mac/IOKitSPIMac.h:

2020-07-23  Alex Christensen  <achristensen@webkit.org>

        Split Windows parts from CFNetworkSPI.h to CFNetworkSPIWin.h
        https://bugs.webkit.org/show_bug.cgi?id=214719

        Reviewed by Tim Horton.

        * pal/PlatformAppleWin.cmake:
        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/win/CFNetworkSPIWin.h: Added.

2020-07-22  Conrad Shultz  <conrad_shultz@apple.com>

        Update macOS Version macros
        https://bugs.webkit.org/show_bug.cgi?id=214653

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2020-07-22  Chris Dumez  <cdumez@apple.com>

        Unreviewed attempt to fix internal build with very recent SDKs.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-07-22  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix after r264710; add a HAVE_AVPLAYER_VIDEORANGEOVERRIDE guard.

        * pal/spi/cocoa/AVFoundationSPI.h:

2020-07-22  Jer Noble  <jer.noble@apple.com>

        [macOS] Adopt AVPlayer.videoRangeOverride
        https://bugs.webkit.org/show_bug.cgi?id=213902
        <rdar://problem/63953509>

        Reviewed by Youenn Fablet.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:
        * pal/spi/cocoa/AVFoundationSPI.h:

2020-07-21  Eric Carlson  <eric.carlson@apple.com>

        Use AVRoutePickerView when available for choosing AirPlay devices
        https://bugs.webkit.org/show_bug.cgi?id=213497
        <rdar://problem/58610662>

        Reviewed by Jer Noble.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm: Soft link AVRoutePickerView.
        * pal/spi/cocoa/AVKitSPI.h: Declare AVRoutePickerView.

2020-07-17  Truitt Savell  <tsavell@apple.com>

        Unreviewed, reverting r264477.

        Broke the internal build

        Reverted changeset:

        "Use AVRoutePickerView when available for choosing AirPlay
        devices"
        https://bugs.webkit.org/show_bug.cgi?id=213497
        https://trac.webkit.org/changeset/264477

2020-07-17  Truitt Savell  <tsavell@apple.com>

        Unreviewed, reverting r264493.

        Part of an attempted fix for the build

        Reverted changeset:

        "Use AVRoutePickerView when available for choosing AirPlay
        devices"
        https://bugs.webkit.org/show_bug.cgi?id=213497
        https://trac.webkit.org/changeset/264493

2020-07-17  Truitt Savell  <tsavell@apple.com>

        Unreviewed, reverting r264511.

        Part of an attempted fix for the build

        Reverted changeset:

        "Unreviewed attempt to fix build on shipping macOS after
        r264493."
        https://trac.webkit.org/changeset/264511

2020-07-17  Chris Dumez  <cdumez@apple.com>

        Unreviewed attempt to fix build on shipping macOS after r264493.

        * pal/spi/cocoa/AVKitSPI.h:

2020-07-17  Jonathan Bedard  <jbedard@apple.com>

        [iOS 14] Some PassKit SPI is now API
        https://bugs.webkit.org/show_bug.cgi?id=214433
        <rdar://problem/65695889>

        Reviewed by Darin Adler.

        * pal/spi/cocoa/PassKitSPI.h:

2020-07-16  Eric Carlson  <eric.carlson@apple.com>

        Use AVRoutePickerView when available for choosing AirPlay devices
        https://bugs.webkit.org/show_bug.cgi?id=213497
        <rdar://problem/58610662>

        Unreviewed build fix.

        * pal/spi/cocoa/AVKitSPI.h:

2020-07-16  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WTF] Remove the unnecessary inner class DefaultHash<T>::Hash
        https://bugs.webkit.org/show_bug.cgi?id=214389

        Reviewed by Darin Adler.

        * pal/SessionID.h:

2020-07-16  Eric Carlson  <eric.carlson@apple.com>

        Use AVRoutePickerView when available for choosing AirPlay devices
        https://bugs.webkit.org/show_bug.cgi?id=213497
        <rdar://problem/58610662>

        Reviewed by Jer Noble.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm: Soft link AVRoutePickerView.
        * pal/spi/cocoa/AVKitSPI.h: Declare AVRoutePickerView.

2020-07-16  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Add MediaCapabilities support for SW VP9 decoder.
        https://bugs.webkit.org/show_bug.cgi?id=214316

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/IOPSLibSPI.h:

2020-07-16  Jonathan Bedard  <jbedard@apple.com>

        [Big Sur] De-duplicate SPI
        https://bugs.webkit.org/show_bug.cgi?id=214415
        <rdar://problem/65678060>

        Reviewed by Darin Adler.

        * pal/spi/mac/NSImageSPI.h:

2020-07-16  Jonathan Bedard  <jbedard@apple.com>

        [Big Sur] Build on Seed 1 (Follow-up Fix)
        https://bugs.webkit.org/show_bug.cgi?id=214396
        <rdar://problem/65644762>

        Unreviewed follow-up fix.

        * pal/spi/cg/CoreGraphicsSPI.h:

2020-07-16  Jonathan Bedard  <jbedard@apple.com>

        [Big Sur] Build on Seed 1
        https://bugs.webkit.org/show_bug.cgi?id=214396
        <rdar://problem/65644762>

        Reviewed by Tim Horton.

        * pal/spi/cg/CoreGraphicsSPI.h: Add CoreGraphics SPI for PDFKIT_PLUGIN.
        * pal/spi/mac/NSImageSPI.h:

2020-07-15  Saagar Jha  <saagar@saagarjha.com>

        Add some missing boilerplate to help fix build on macOS Big Sur
        https://bugs.webkit.org/show_bug.cgi?id=214338

        Reviewed by Darin Adler.

        * pal/spi/mac/NSAppearanceSPI.h: Add -[NSAppearance _usesMetricsAppearance] to the SPI header.
        * pal/spi/mac/NSImageSPI.h: Add +[NSImage _imageWithSystemSymbolName:] to the SPI header.

2020-07-15  Rob Buis  <rbuis@igalia.com>

        Building AccessibilitySupportSPI with the macOS Big Sur public SDK fails
        https://bugs.webkit.org/show_bug.cgi?id=214237

        Reviewed by Alex Christensen.

        We need to include CoreFoundation.h header here to use CF_ENUM, since
        we can't rely on the call site that includes AccessibilitySupportSPI.h
        doing it for us.
        We also need to declare _AXSetClientIdentificationOverride since it
        it is used by AccessibilityController.cpp.

        * pal/spi/cocoa/AccessibilitySupportSPI.h:
        * pal/spi/mac/HIServicesSPI.h:

2020-07-15  Brady Eidson  <beidson@apple.com>

        Fix some build configurations after r264389
        https://bugs.webkit.org/show_bug.cgi?id=214245

        Unreviewed.

        * pal/spi/mac/IOKitSPIMac.h: Forward declare newly used stuff.

2020-07-15  Brady Eidson  <beidson@apple.com>

        Resolve race between IOHIDManager and GameController framework.
        <rdar://problem/65554490> and https://bugs.webkit.org/show_bug.cgi?id=214245

        Reviewed by Tim Horton.

        * pal/spi/mac/IOKitSPIMac.h:

2020-07-12  Rob Buis  <rbuis@igalia.com>

        Building CFNetworkSPI with the macOS Big Sur public SDK fails
        https://bugs.webkit.org/show_bug.cgi?id=214238

        Reviewed by Darin Adler.

        Building CFNetworkSPI with the macOS Big Sur public SDK fails bacause
        it has Objective-C declarations in a header that’s included by a
        non-Objective-C source file, to fix wrap the declarations in a
        defined(__OBJC__) block.

        * pal/spi/cf/CFNetworkSPI.h:

2020-07-12  Rob Buis  <rbuis@igalia.com>

        Building NetworkSessionCocoa.mm with the macOS Big Sur public SDK fails
        https://bugs.webkit.org/show_bug.cgi?id=214242

        Reviewed by Darin Adler.

        Building NetworkSessionCocoa.mm with the macOS Big Sur public SDK fails
        because _allowsHTTP3 is readonly yet it is being written to in
        NetworkSessionCocoa.mm, mark it as readwrite instead.

        * pal/spi/cf/CFNetworkSPI.h:

2020-07-12  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, speculative build fix for internal build

        Followed the style of WebKit/Platform/spi/ios/UIKitSPI.h. Using `__has_include` to
        conditionally define LSDatabaseContext (WebKitChangeTracking) category.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-07-09  Brady Eidson  <beidson@apple.com>

        Multiplex the HID and GameController gamepad providers on Mac.
        <rdar://problem/63192532> and https://bugs.webkit.org/show_bug.cgi?id=214126

        Reviewed by Tim Horton.

        The current "IOKitSPI.h" is really weird.
        It is mostly needed for iOS, but also used on Mac a little...
        And since some of what it declares on Mac is actually public, anyone else
        that uses public headers on Mac runs into redefinitions.
        
        Since the use of it on iOS and Mac are so different, let's just make a Mac one.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/IOKitSPIMac.h: Copied from Source/WebCore/platform/gamepad/cocoa/GameControllerSoftLink.h.

2020-07-09  Per Arne Vollan  <pvollan@apple.com>

        [Cocoa] Update Launch Services database in the WebContent process from the Network process
        https://bugs.webkit.org/show_bug.cgi?id=213794

        Reviewed by Brent Fulgham.

        Declare interface for observing and consuming the Launch Services database.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-07-09  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r264148.
        https://bugs.webkit.org/show_bug.cgi?id=214136

        Introduced layout test failures

        Reverted changeset:

        "[Cocoa] Update Launch Services database in the WebContent
        process from the Network process"
        https://bugs.webkit.org/show_bug.cgi?id=213794
        https://trac.webkit.org/changeset/264148

2020-07-08  Per Arne Vollan  <pvollan@apple.com>

        [Cocoa] Update Launch Services database in the WebContent process from the Network process
        https://bugs.webkit.org/show_bug.cgi?id=213794

        Reviewed by Brent Fulgham.

        Declare interface for observing and consuming the Launch Services database.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-07-08  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r264132 and r264139.
        https://bugs.webkit.org/show_bug.cgi?id=214108

        Introduced assert failure.

        Reverted changesets:

        "[Cocoa] Update Launch Services database in the WebContent
        process from the Network process"
        https://bugs.webkit.org/show_bug.cgi?id=213794
        https://trac.webkit.org/changeset/264132

        "Unreviewed build fix attempt after r264132."
        https://trac.webkit.org/changeset/264139

2020-07-08  Chris Dumez  <cdumez@apple.com>

        Unreviewed build fix attempt after r264132.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-07-08  Per Arne Vollan  <pvollan@apple.com>

        [Cocoa] Update Launch Services database in the WebContent process from the Network process
        https://bugs.webkit.org/show_bug.cgi?id=213794

        Reviewed by Brent Fulgham.

        Declare interface for observing and consuming the Launch Services database.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-07-07  Andy Estes  <aestes@apple.com>

        [Apple Pay] Fix the build on Catalina internal SDKs
        https://bugs.webkit.org/show_bug.cgi?id=214066

        Unreviewed build fix for the 10.15.0 Internal SDK.

        * pal/spi/cocoa/PassKitInstallmentsSPI.h:
        * pal/spi/cocoa/PassKitSPI.h:

2020-07-07  Tim Horton  <timothy_horton@apple.com>

        <attachment> layout does not scale with Dynamic Type size changes
        https://bugs.webkit.org/show_bug.cgi?id=214023
        <rdar://problem/64914762>

        Reviewed by Sam Weinig.

        * pal/spi/cocoa/CoreTextSPI.h:

2020-07-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r263960.
        https://bugs.webkit.org/show_bug.cgi?id=213980

        Re-land, because r263959 somehow fixed the build issue caused
        by r263953

        Reverted changeset:

        "Unreviewed, reverting r263953 and r263959."
        https://bugs.webkit.org/show_bug.cgi?id=213979
        https://trac.webkit.org/changeset/263960

2020-07-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r263953 and r263959.
        https://bugs.webkit.org/show_bug.cgi?id=213979

        Broke internal build

        Reverted changesets:

        "[Cocoa] Move almost all features from FeatureDefines.xcconfig
        to PlatformEnableCocoa.h"
        https://bugs.webkit.org/show_bug.cgi?id=212542
        https://trac.webkit.org/changeset/263953

        "[Cocoa] Remove FEATURE_DEFINES from the Cocoa/Xcode build
        system"
        https://bugs.webkit.org/show_bug.cgi?id=213976
        https://trac.webkit.org/changeset/263959

2020-07-05  Darin Adler  <darin@apple.com>

        [Cocoa] Remove FEATURE_DEFINES from the Cocoa/Xcode build system
        https://bugs.webkit.org/show_bug.cgi?id=213976

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig: Removed.
        * Configurations/PAL.xcconfig: Removed FEATURE_DEFINES and the include
        of FeatureDefines.xcconfig.
        * PAL.xcodeproj/project.pbxproj: Removed FeatureDefines.xcconfig.

2020-07-05  Darin Adler  <darin@apple.com>

        [Cocoa] Move almost all features from FeatureDefines.xcconfig to PlatformEnableCocoa.h
        https://bugs.webkit.org/show_bug.cgi?id=212542

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig: Delete everything except
        ENABLE_EXPERIMENTAL_FEATURES and ENABLE_WEBRTC.

2020-07-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS 11] Indeterminate progress bar animation periodically jumps
        https://bugs.webkit.org/show_bug.cgi?id=213967

        Reviewed by Sam Weinig.

        * pal/spi/mac/CoreUISPI.h: Add declarations for `kCUIAnimationStartTimeKey` and `kCUIAnimationTimeKey`.

2020-07-04  Darin Adler  <darin@apple.com>

        [Cocoa] Remove all features from FeatureDefines.xcconfig that are already mentioned in PlatformEnableCocoa.h
        https://bugs.webkit.org/show_bug.cgi?id=213962

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig: Removed all features that were mentioned
        in PlatformEnableCocoa.h; the rules in that file now define whether they are enabled.

2020-07-04  Darin Adler  <darin@apple.com>

        [Cocoa] Remove unconditional features from FeatureDefines.xcconfig, making sure they are covered in PlatformEnableCocoa.h
        https://bugs.webkit.org/show_bug.cgi?id=212418

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig: Removed features that are either unconditionally not enabled,
        or unconditionally enabled. Double checked that all the enabled ones are either in PlatformEnable.h or
        PlatformEnableCocoa.h.

2020-07-04  Darin Adler  <darin@apple.com>

        Update comment in FeatureDefines.xcconfig since PlatformEnableCocoa.h should be used instead
        https://bugs.webkit.org/show_bug.cgi?id=213952

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig: Updated comment.

2020-07-03  Saagar Jha  <saagar@saagarjha.com>

        Fix a build error by forward declaring _NSHTTPAlternativeServicesStorage
        https://bugs.webkit.org/show_bug.cgi?id=213911

        Reviewed by Darin Adler.

        The public 10.16 SDK does not define _NSHTTPAlternativeServicesStorage, and the interface
        declaration comes after it is used. Forward declare it to fix the error.

        * pal/spi/cf/CFNetworkSPI.h: Forward declare _NSHTTPAlternativeServicesStorage.

2020-07-03  Sam Weinig  <weinig@apple.com>

        Remove support for ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE
        https://bugs.webkit.org/show_bug.cgi?id=213932

        Reviewed by Darin Adler.

        Removes support for non-standard <input type="datetime">, currently being 
        guarded by the macro ENABLE_INPUT_TYPE_DATETIME_INCOMPLETE. This macro, was
        added back in 2013 as a temporary measure to support some engines who shipped
        support for <input type="datetime">. It is currently not enabled for any
        ports so now seems like as good a time as any to remove it.

        * Configurations/FeatureDefines.xcconfig:

2020-07-03  Sam Weinig  <weinig@apple.com>

        Add "-Wliteral-conversion" warning to Xcode based builds and fix the issues it finds
        https://bugs.webkit.org/show_bug.cgi?id=213931

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig:
        Add -Wliteral-conversion.

2020-07-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r263882.
        https://bugs.webkit.org/show_bug.cgi?id=213933

        Broke the build

        Reverted changeset:

        "Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to
        replace _WKProcessPoolConfiguration.hstsStorageDirectory"
        https://bugs.webkit.org/show_bug.cgi?id=213048
        https://trac.webkit.org/changeset/263882

2020-07-02  Alex Christensen  <achristensen@webkit.org>

        Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
        https://bugs.webkit.org/show_bug.cgi?id=213048

        Reviewed by Youenn Fablet.

        * pal/spi/cf/CFNetworkSPI.h:

2020-07-02  Alex Christensen  <achristensen@webkit.org>

        Add testing infrastructure and SPI declaration for HTTP/2 ping
        https://bugs.webkit.org/show_bug.cgi?id=213913

        Reviewed by Jer Noble.

        * pal/spi/cf/CFNetworkSPI.h:

2020-07-01  Tim Horton  <timothy_horton@apple.com>

        Upstream application accent color support
        https://bugs.webkit.org/show_bug.cgi?id=213859

        Reviewed by Wenson Hsieh.

        * pal/spi/mac/NSApplicationSPI.h:

2020-06-30  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Connections to the preference daemon are established before entering the sandbox
        https://bugs.webkit.org/show_bug.cgi?id=213379

        Reviewed by Darin Adler.

        Use correct parameter types in _CFPrefsSetDirectModeEnabled and _CFPrefsSetReadOnly, and move
        _CFPrefsSetDirectModeEnabled inside an Objective-C guard, since BOOL only seems to be a builtin
        type in Objective-C.

        * pal/spi/cf/CFUtilitiesSPI.h:

2020-06-30  Peng Liu  <peng.liu6@apple.com>

        Enable the support of FULLSCREEN_API in WebKitTestRunner
        https://bugs.webkit.org/show_bug.cgi?id=213774

        Reviewed by Youenn Fablet.

        Replace the definition of ENABLE_FULLSCREEN_API in FeatureDefines.xcconfig with
        the one in PlatformEnableCocoa.h. We have to do that because WebKitTestRunner
        does not have a FeatureDefines.xcconfig but it uses "ENABLE(FULLSCREEN_API)"
        to conditionally compile code to test the element fullscreen API.
        WebKitTestRunner can use the macro defined in PlatformEnableCocoa.h.

        * Configurations/FeatureDefines.xcconfig:

2020-06-30  Andy Estes  <aestes@apple.com>

        [Xcode] Enable the "My Mac (Mac Catalyst)" destination in WebKit Xcode projects
        https://bugs.webkit.org/show_bug.cgi?id=213740

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig: Set SUPPORTS_MACCATALYST to YES to tell Xcode that this
        project supports building for Mac Catalyst.

2020-06-30  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r263724.
        https://bugs.webkit.org/show_bug.cgi?id=213781


        Reverted changeset:

        "Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to
        replace _WKProcessPoolConfiguration.hstsStorageDirectory"
        https://bugs.webkit.org/show_bug.cgi?id=213048
        https://trac.webkit.org/changeset/263724

2020-06-29  Alex Christensen  <achristensen@webkit.org>

        Make _WKWebsiteDataStoreConfiguration SPI for HSTS storage to replace _WKProcessPoolConfiguration.hstsStorageDirectory
        https://bugs.webkit.org/show_bug.cgi?id=213048

        Reviewed by Youenn Fablet.

        * pal/spi/cf/CFNetworkSPI.h:

2020-06-29  Tetsuharu Ohzeki  <tetsuharu.ohzeki@gmail.com>

        Remove ENABLE_STREAMS_API compilation flag
        https://bugs.webkit.org/show_bug.cgi?id=213728

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2020-06-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, reverting r263295.
        https://bugs.webkit.org/show_bug.cgi?id=213577

        Introduced logging regression

        Reverted changeset:

        "[macOS] Connections to the preference daemon are established
        before entering the sandbox"
        https://bugs.webkit.org/show_bug.cgi?id=213379
        https://trac.webkit.org/changeset/263295

2020-06-24  Umar Iqbal  <uiqbal@apple.com>

        We should resurrect the older patch that collects some statistics of web API calls
        https://bugs.webkit.org/show_bug.cgi?id=213319

        Reviewed by Brent Fulgham.

        + Enabled ENABLE_WEB_API_STATISTICS flag

        * Configurations/FeatureDefines.xcconfig:

2020-06-22  Tim Horton  <timothy_horton@apple.com>

        Update macOS version macros
        https://bugs.webkit.org/show_bug.cgi?id=213484

        Reviewed by Alexey Proskuryakov.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2020-06-19  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Move progress bar painting code off of Carbon API
        https://bugs.webkit.org/show_bug.cgi?id=213405
        <rdar://problem/63958537>

        Reviewed by Tim Horton.

        Add forward declarations for CoreUI SPI on non-internal SDKs.

        * pal/spi/mac/CoreUISPI.h:

2020-06-19  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Connections to the preference daemon are established before entering the sandbox
        https://bugs.webkit.org/show_bug.cgi?id=213379

        Reviewed by Darin Adler.

        Use correct parameter types in _CFPrefsSetDirectModeEnabled and _CFPrefsSetReadOnly, and move
        _CFPrefsSetDirectModeEnabled inside an Objective-C guard, since BOOL only seems to be a builtin
        type in Objective-C.

        * pal/spi/cf/CFUtilitiesSPI.h:

2020-06-19  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Unify "font:" CSS shorthand values between macOS and iOS family
        https://bugs.webkit.org/show_bug.cgi?id=213332
        <rdar://problem/64479189>

        Reviewed by Tim Horton and Darin Adler.

        * pal/spi/cocoa/CoreTextSPI.h:

        The implementation of RenderThemeMac::contentSizeCategory() needs to use
        kCTFontContentSizeCategoryL.

2020-06-17  Andy Estes  <aestes@apple.com>

        Another unreviewed build fix after r263150

        * pal/spi/cocoa/PassKitSPI.h:

2020-06-17  Andy Estes  <aestes@apple.com>

        Unreviewed build fix after r263150

        * pal/spi/cocoa/PassKitSPI.h:

2020-06-08  Andy Estes  <aestes@apple.com>

        [Apple Pay] Enable layout tests on more platforms
        https://bugs.webkit.org/show_bug.cgi?id=212955
        <rdar://problem/64174156>

        Reviewed by Alex Christensen.

        PassKit added SPIs for Apple Pay installments over a series of iOS 13 and macOS Catalina
        minor updates. WebKit trunk is still built across a range of iOS 13 and macOS Catalina minor
        update SDKs that contain none, some, or all of the installment SPIs. It's not possible to
        reliably detect the SDK minor version at compile-time, so instead we now use our own SPI
        declarations unless we know all minor versions of the major SDK version contain all of the
        installments definitions.

        * PAL.xcodeproj/project.pbxproj: Added PassKitInstallmentsSPI.h.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm: Used SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT on both
        Mac and iOS to soft-link PKPaymentInstallmentConfiguration and PKPaymentInstallmentItem.

        * pal/spi/cocoa/PassKitInstallmentSPI.h: Added. When building against an SDK that is known
        to declare the PassKit installments SPIs, this file includes the SPI headers. Otherwise, it
        declares the SPIs.
        * pal/spi/cocoa/PassKitSPI.h: Moved PassKit installments SPI declarations to
        PassKitInstallmentSPI.h.

2020-06-11  Alex Christensen  <achristensen@webkit.org>

        Re-enable download resume tests
        https://bugs.webkit.org/show_bug.cgi?id=213098
        <rdar://problem/63512518>

        Reviewed by Geoffrey Garen.

        * pal/spi/cf/CFNetworkSPI.h:

2020-06-10  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [macOS]: The File Picker of the <input> file element should show the selection filter
        https://bugs.webkit.org/show_bug.cgi?id=212485

        Reviewed by Darin Adler.

        Expose an SPI from CoreServcies to get all the UTIs known by the system.

        * pal/spi/cocoa/CoreServicesSPI.h:

2020-06-09  Tim Horton  <timothy_horton@apple.com>

        Stop using the wrong LaunchServices SPI for getting an app's localized name
        https://bugs.webkit.org/show_bug.cgi?id=213003
        <rdar://problem/64169000>

        Reviewed by Sam Weinig.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-06-08  Jonathan Bedard  <jbedard@apple.com>

        WebCore: Guard _preconnect declaration with ENABLE(SERVER_PRECONNECT)
        https://bugs.webkit.org/show_bug.cgi?id=212935
        <rdar://problem/64139060>

        Reviewed by Alexey Proskuryakov.

        * pal/spi/cf/CFNetworkSPI.h:

2020-06-08  Jonathan Bedard  <jbedard@apple.com>

        WebCore: Add tvOS and watchOS SPI headers
        https://bugs.webkit.org/show_bug.cgi?id=212853
        <rdar://problem/64048485>

        Reviewed by Andy Estes.

        * PAL.xcodeproj/project.pbxproj: Add CoreMotionSPI.h.
        * pal/spi/cf/CFNetworkSPI.h: CFNetwork SPI should be available on watchOS and tvOS.
        * pal/spi/cocoa/CoreMotionSPI.h: Added.

2020-06-08  Andy Estes  <aestes@apple.com>

        [Apple Pay] Remove ENABLE_APPLE_PAY_SETUP, ENABLE_APPLE_PAY_SESSION_V7, and HAVE_PASSKIT_PAYMENT_SETUP
        https://bugs.webkit.org/show_bug.cgi?id=212883
        <rdar://problem/64090763>

        Reviewed by Youenn Fablet.

        These macros evaluate to true whenever ENABLE(APPLE_PAY) is true on platforms supported by
        trunk WebKit, so we can either remove them or replace them with ENABLE(APPLE_PAY).

        * pal/spi/cocoa/PassKitSPI.h:

2020-06-08  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582
        <rdar://problem/58985368>

        Reviewed by Eric Carlson.

        Add soft link macros for VideoToolbox and AudioToolbox.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/AudioToolboxSoftLink.cpp: Added.
        * pal/cf/AudioToolboxSoftLink.h: Added.
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/cf/VideoToolboxSoftLink.cpp: Added.
        * pal/cf/VideoToolboxSoftLink.h: Added.

2020-06-07  Philippe Normand  <pnormand@igalia.com>

        Remove ENABLE_VIDEO_TRACK ifdef guards
        https://bugs.webkit.org/show_bug.cgi?id=212568

        Reviewed by Youenn Fablet.

        * Configurations/FeatureDefines.xcconfig:

2020-06-05  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, reverting r262619, r262625, and r262641.

        Caused mediarecorder layout test crashes.

        Reverted changesets:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/262619

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/262625

        "Unreviewed, silence deprecation warning to fix build with
        latest SDK."
        https://trac.webkit.org/changeset/262641

2020-06-05  Per Arne Vollan  <pvollan@apple.com>

        [Cocoa] Adopt read-only mode for preferences in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=212411

        Reviewed by Darin Adler.

        * pal/spi/cf/CFUtilitiesSPI.h:

2020-06-05  Andy Estes  <aestes@apple.com>

        [Apple Pay] Remove conditionals for ENABLE_APPLE_PAY_SESSION_V(3|4)
        https://bugs.webkit.org/show_bug.cgi?id=212541
        <rdar://problem/63781452>

        Reviewed by Darin Adler.

        APPLE_PAY_SESSION_V(3|4) is now enabled whenever APPLE_PAY itself is enabled.

        * Configurations/FeatureDefines.xcconfig:

2020-06-05  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582
        <rdar://problem/58985368>

        Reviewed by Eric Carlson.

        Add soft link macros for VideoToolbox and AudioToolbox.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/AudioToolboxSoftLink.cpp: Added.
        * pal/cf/AudioToolboxSoftLink.h: Added.
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/cf/VideoToolboxSoftLink.cpp: Added.
        * pal/cf/VideoToolboxSoftLink.h: Added.

2020-06-04  Jacob Uphoff  <jacob_uphoff@apple.com>

        Unreviewed, reverting r262546.

        This commit caused internal build failures

        Reverted changeset:

        "[Cocoa] Adopt read-only mode for preferences in the
        WebContent process"
        https://bugs.webkit.org/show_bug.cgi?id=212411
        https://trac.webkit.org/changeset/262546

2020-06-04  Per Arne Vollan  <pvollan@apple.com>

        [Cocoa] Adopt read-only mode for preferences in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=212411

        Reviewed by Darin Adler.

        * pal/spi/cf/CFUtilitiesSPI.h:

2020-06-04  Tim Horton  <timothy_horton@apple.com>

        Work around broken system version macro
        https://bugs.webkit.org/show_bug.cgi?id=212726

        Reviewed by Dan Bernstein.

        * Configurations/DebugRelease.xcconfig:

2020-06-04  Andy Estes  <aestes@apple.com>

        [watchOS] Re-enable content filtering in the simulator build
        https://bugs.webkit.org/show_bug.cgi?id=212711
        <rdar://problem/63938350>

        Reviewed by Wenson Hsieh.

        * Configurations/FeatureDefines.xcconfig:

2020-06-02  Keith Rollin  <krollin@apple.com>

        Revert FEATURES_DEFINES related changes
        https://bugs.webkit.org/show_bug.cgi?id=212664
        <rdar://problem/63893033>

        Reviewed by Andy Estes.

        Bug 262310, Bug 262311, Bug 262318, and Bug 262331 involve changes to
        FEATURE_DEFINES and how the values there relate to those found in the
        Platform*.h files. Those changes break XCBuild (by removing the
        .xcfilelist related to UnifiedSources and the process for generating
        them), and so are being reverted.

        * Configurations/FeatureDefines.xcconfig:

2020-06-02  Per Arne Vollan  <pvollan@apple.com>

        REGRESSION(r261387): Introduced sandbox violations
        https://bugs.webkit.org/show_bug.cgi?id=212634

        Reviewed by Darin Adler.

        Declare Launch Services class.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-05-31  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Transition between encrypted and clear codecs throws error from SourceBuffer.appendBuffer()
        https://bugs.webkit.org/show_bug.cgi?id=212550
        <rdar://problem/62207260>

        Reviewed by Eric Carlson.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:

2020-05-30  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r262332): Windows build failure because <nw/private.h> doesn't exist
        <https://bugs.webkit.org/show_bug.cgi?id=212551>
        <rdar://problem/62461099>

        Unreviewed Windows build fix.

        * pal/spi/cf/CFNetworkSPI.h:
        - Move <nw/private.h> so it is not included with PLATFORM(WIN).
        - Add or clean up some macro comments.

2020-05-29  Brent Fulgham  <bfulgham@apple.com>

        [Cocoa] Improve logging quality for non-ephemeral sessions
        https://bugs.webkit.org/show_bug.cgi?id=212551
        <rdar://problem/62461099>

        Reviewed by David Kilzer.

        Add support for the 'nw_context_privacy_level' setting.

        * pal/spi/cf/CFNetworkSPI.h:

2020-05-29  Andy Estes  <aestes@apple.com>

        [Apple Pay] Remove conditionals for ENABLE_APPLE_PAY_SESSION_V(3|4)
        https://bugs.webkit.org/show_bug.cgi?id=212541

        Reviewed by Darin Adler.

        APPLE_PAY_SESSION_V(3|4) is now enabled whenever APPLE_PAY itself is enabled.

        * Configurations/FeatureDefines.xcconfig:

S2020-05-29  Darin Adler  <darin@apple.com>

        Remove things from FeatureDefines.xcconfig that are covered by PlatformEnableCocoa.h
        https://bugs.webkit.org/show_bug.cgi?id=212418

        Rubber-stamped by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig: Add back ENABLE_CSS_CONIC_GRADIENTS, removed
        by accident.

2020-05-27  Darin Adler  <darin@apple.com>

        Remove things from FeatureDefines.xcconfig that are covered by PlatformEnableCocoa.h
        https://bugs.webkit.org/show_bug.cgi?id=212418

        Reviewed by Andy Estes.

        * Configurations/FeatureDefines.xcconfig: Removed 83 of the 119 things defined in
        this file. There are 36 more that are slightly more complex that we can remove
        carefully later.

2020-05-27  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Clipboard API] Support reading "image/png" on ClipboardItem
        https://bugs.webkit.org/show_bug.cgi?id=212339
        <rdar://problem/63588957>

        Reviewed by Tim Horton.

        Soft link `UIImagePNGRepresentation`.

        * pal/ios/UIKitSoftLink.h:
        * pal/ios/UIKitSoftLink.mm:

2020-05-27  Devin Rousso  <drousso@apple.com>

        Web Inspector: replace `featureGuard` and `availability` with a combined `condition` that accepts any macro
        https://bugs.webkit.org/show_bug.cgi?id=210014

        Reviewed by Brian Burg.

        Previously, the generated InspectorBackendCommands.js would include code for things that the
        backend doesn't actually support. By using actual macros and preprocessing that file, we can
        ensure that the frontend doesn't incorrectly think that something is supported by the page
        being inspected:
         - the `Canvas` commands and events related to shader programs/pipelines should only exist
           when the corresponding context type exists, namely `ENABLE(WEBGL)` and `ENABLE(WEBGPU)`.
         - iOS doesn't support showing rulers, so create a variant of `DOM.setInspectModeEnabled`
           that only exists for `PLATFORM(IOS_FAMILY)` that doesn't have the `showRulers` optional
           parameter, as well as removing `Page.setShowRulers` entirely.
         - setting the forced appearance should only be possible if dark mode is supported.
         - web archives only exist if CF is used.

        * Configurations/FeatureDefines.xcconfig:
        Add `ENABLE_WEB_ARCHIVE` since it's always enabled in wtf/PlatformEnableCocoa.h.

2020-05-22  Alex Christensen  <achristensen@webkit.org>

        Make download resume workaround forgiving of changes in CFNetwork
        https://bugs.webkit.org/show_bug.cgi?id=212273

        Reviewed by Geoffrey Garen.

        * pal/spi/cf/CFNetworkSPI.h:

2020-05-22  Andy Estes  <aestes@apple.com>

        [Apple Pay] Add new ApplePayInstallmentConfiguration members
        https://bugs.webkit.org/show_bug.cgi?id=212160
        <rdar://problem/60703650>

        Reviewed by Alex Christensen.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm: Added soft-linking macros for PKPaymentInstallmentItem.

2020-05-20  Andy Estes  <aestes@apple.com>

        [Mac] UI processes spin when creating the "Share" context menu item
        https://bugs.webkit.org/show_bug.cgi?id=212137
        <rdar://problem/54498394>

        Reviewed by Wenson Hsieh.

        * pal/spi/mac/NSSharingServicePickerSPI.h: Declared -getMenuWithCompletion:.

2020-05-18  Andy Estes  <aestes@apple.com>

        http/tests/ssl/applepay/ApplePayInstallmentConfiguration.https.html fails in public SDK builds
        https://bugs.webkit.org/show_bug.cgi?id=212000
        <rdar://problem/63323082>

        Reviewed by Youenn Fablet.

        * Configurations/FeatureDefines.xcconfig:
        * pal/spi/cocoa/PassKitSPI.h:

2020-05-15  Alex Christensen  <achristensen@webkit.org>

        [iOS Simulator] TestWebKitAPI._WKDownload.Resume is a flaky crash
        https://bugs.webkit.org/show_bug.cgi?id=211786

        Reviewed by Geoffrey Garen.

        * pal/spi/cf/CFNetworkSPI.h:
        Use CFNetwork SPI to stop it from unlinking the downloaded file after resuming then completing.

2020-05-12  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Rebuild MobileGestalt cache if needed
        https://bugs.webkit.org/show_bug.cgi?id=211739

        Reviewed by Darin Adler.

        Add SPI to check if MobileGestalt cache is valid, and declare MobileGestaltHelperProxy class.

        * pal/spi/ios/MobileGestaltSPI.h:

2020-05-11  Darin Adler  <darin@apple.com>

        Fix problems caught by replacing WTF::Optional with std::optional
        https://bugs.webkit.org/show_bug.cgi?id=211703

        Reviewed by Chris Dumez.

        * pal/spi/cg/CoreGraphicsSPI.h: Moved definition of CGDisplayUsesForceToGray
        here from PlatformScreenMac.mm and also added include of the private header
        it's from when compiling with the Apple internal SDK for the additional
        checking that we get from using both.

2020-05-11  Andres Gonzalez  <andresg_22@apple.com>

        Add mechanism to turn on accessibility isolated tree mode from WebKitTestRunner.
        https://bugs.webkit.org/show_bug.cgi?id=211725

        Reviewed by Chris Fleizach.

        Added _AXSSetIsolatedTreeMode to turn on isolated tree mode from WebKitTestRunner.

        * pal/spi/cocoa/AccessibilitySupportSPI.h:
        * pal/spi/mac/HIServicesSPI.h:

2020-05-09  David Kilzer  <ddkilzer@apple.com>

        Adapt LocalCurrentGraphicsContext for iOS
        <https://webkit.org/b/211660>

        Reviewed by Darin Adler.

        * pal/ios/UIKitSoftLink.h:
        * pal/ios/UIKitSoftLink.mm:
        - Add soft linking of UIGraphics{GetCurrent,Pop,Push}Context()
          functions.

2020-05-08  Per Arne Vollan  <pvollan@apple.com>

        [Cocoa] Close connections to Launch Services after revoking extension
        https://bugs.webkit.org/show_bug.cgi?id=211594

        Reviewed by Brent Fulgham.

        Declare _LSDService class.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-05-07  Darin Adler  <darin@apple.com>

        Remove USE(INSERTION_UNDO_GROUPING) checks in macOS platform code
        https://bugs.webkit.org/show_bug.cgi?id=211525

        Reviewed by Anders Carlsson.

        * PAL.xcodeproj/project.pbxproj: Added NSTextInputContextSPI.h and NSUndoManagerSPI.h.
        * pal/PlatformMac.cmake: Ditto.
        * pal/spi/mac/NSTextInputContextSPI.h: Added.
        * pal/spi/mac/NSUndoManagerSPI.h: Added.

2020-05-05  Chris Dumez  <cdumez@apple.com>

        Drop code path using the legacy CFNetwork cookie change notification SPI
        https://bugs.webkit.org/show_bug.cgi?id=211411
        <rdar://problem/62869148>

        Reviewed by John Wilander.

        * pal/spi/cf/CFNetworkSPI.h:

2020-05-05  Chris Dumez  <cdumez@apple.com>

        Unreviewed, reverting r261130.

        Caused crashes on some of our bots

        Reverted changeset:

        "Drop code path using the legacy CFNetwork cookie change
        notification SPI"
        https://bugs.webkit.org/show_bug.cgi?id=211411
        https://trac.webkit.org/changeset/261130

2020-05-05  Darin Adler  <darin@apple.com>

        Remove now-unneeded USE(COREMEDIA) and USE(VIDEOTOOLBOX)
        https://bugs.webkit.org/show_bug.cgi?id=211437

        Reviewed by Eric Carlson.

        * pal/system/mac/ClockCM.h: Remove USE(COREMEDIA). Also made everything
        private since nothing includes this header. Removed everything unused.

        * pal/system/mac/ClockCM.mm: Remove USE(COREMEDIA). Put everything inside
        the PAL namespace.
        (PAL::ClockCM::ClockCM): Merged in the second constructor and initializeWithTimingSource.
        (PAL::ClockCM::ClockCM): Deleted.
        (PAL::ClockCM::initializeWithTimingSource): Deleted.
        (PAL::ClockCM::setCurrentTime): Tweaked.
        (PAL::ClockCM::currentTime const): Tweaked.
        (PAL::ClockCM::setCurrentMediaTime): Deleted.
        (PAL::ClockCM::currentMediaTime const): Deleted.

2020-05-04  Darin Adler  <darin@apple.com>

        [Mac] Remove __MAC_OS_X_VERSION_MIN_REQUIRED checks for versions older than 10.14
        https://bugs.webkit.org/show_bug.cgi?id=211420

        Reviewed by Alex Christensen.

        * pal/spi/cocoa/NSColorSPI.h: Remove __MAC_OS_X_VERSION_MIN_REQUIRED >= 101400.
        * pal/spi/cocoa/QuartzCoreSPI.h: Ditto.
        * pal/spi/mac/DataDetectorsSPI.h: Ditto.
        * pal/spi/mac/NSApplicationSPI.h: Ditto.

2020-05-04  Darin Adler  <darin@apple.com>

        Remove now-unneeded HAVE(ACCESSIBILITY_SUPPORT)
        https://bugs.webkit.org/show_bug.cgi?id=211425

        Reviewed by Alex Christensen.

        * pal/spi/cocoa/AccessibilitySupportSPI.h: Remove HAVE(ACCESSIBILITY_SUPPORT).

2020-05-04  Darin Adler  <darin@apple.com>

        Make __IPHONE_OS_VERSION_MIN_REQUIRED checks against old versions explicit about watchOS and tvOS
        https://bugs.webkit.org/show_bug.cgi?id=211402

        Reviewed by Alexey Proskuryakov.

        * pal/spi/cocoa/NSAttributedStringSPI.h: Moved iOS family version of
        NSExcludedElementsDocumentAttribute to this header. For now didn't
        change its implementation to match, just moved it as is.

2020-05-04  Peng Liu  <peng.liu6@apple.com>

        Fix the mistake on macro HAVE_SYSTEM_FEATURE_FLAGS
        https://bugs.webkit.org/show_bug.cgi?id=211416

        Reviewed by Tim Horton.

        We should use "#if HAVE(SYSTEM_FEATURE_FLAGS)" instead of "#if HAVE(HAVE_SYSTEM_FEATURE_FLAGS)".

        * pal/spi/cocoa/FeatureFlagsSPI.h:

2020-05-04  Darin Adler  <darin@apple.com>

        Remove HAVE(IOSURFACE) checks in Cocoa-platform-specific code
        https://bugs.webkit.org/show_bug.cgi?id=211389

        Reviewed by Alexey Proskuryakov.

        * pal/spi/cocoa/QuartzCoreSPI.h: Remove HAVE(IOSURFACE).

2020-05-04  Chris Dumez  <cdumez@apple.com>

        Drop code path using the legacy CFNetwork cookie change notification SPI
        https://bugs.webkit.org/show_bug.cgi?id=211411

        Reviewed by John Wilander.

        * pal/spi/cf/CFNetworkSPI.h:

2020-05-04  Darin Adler  <darin@apple.com>

        Remove unneeded USE(MEDIAREMOTE)
        https://bugs.webkit.org/show_bug.cgi?id=211385

        Reviewed by Eric Carlson.

        * pal/spi/mac/MediaRemoteSPI.h: Removed check of USE(MEDIAREMOTE).
        Also got rid of __has_include for MRNowPlayingTypes.h and moved
        it down into the normal sections below.

2020-05-01  Don Olmstead  <don.olmstead@sony.com>

        Use export macros on all platforms
        https://bugs.webkit.org/show_bug.cgi?id=211293

        Reviewed by Michael Catanzaro.

        Allow overriding of PAL_EXPORT if desired otherwise use the defaults.

        * pal/ExportMacros.h:

2020-04-28  Jer Noble  <jer.noble@apple.com>

        [Mac] Adopt kMTSupportNotification_ShouldPlayHDRVideoChanged notification
        https://bugs.webkit.org/show_bug.cgi?id=211028

        Reviewed by Eric Carlson.

        Make MediaToolboxSoftLink fully exported from PAL.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h:

2020-04-25  Alex Christensen  <achristensen@webkit.org>

        Move ApplePay code from WebKitAdditions to WebCore and WebKit
        https://bugs.webkit.org/show_bug.cgi?id=210521

        Reviewed by Andy Estes.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm:
        * pal/spi/cocoa/PassKitSPI.h:

2020-04-25  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, reverting r260717.

        Wrong Patch

        Reverted changeset:

        "Move ApplePay code from WebKitAdditions to WebCore and
        WebKit"
        https://bugs.webkit.org/show_bug.cgi?id=210521
        https://trac.webkit.org/changeset/260717

2020-04-25  Alex Christensen  <achristensen@webkit.org>

        Move ApplePay code from WebKitAdditions to WebCore and WebKit
        https://bugs.webkit.org/show_bug.cgi?id=210521

        Reviewed by Andy Estes.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm:
        * pal/spi/cocoa/PassKitSPI.h:

2020-04-25  Darin Adler  <darin@apple.com>

        [Cocoa] Deal with another round of Xcode upgrade checks
        https://bugs.webkit.org/show_bug.cgi?id=211027

        Reviewed by Alexey Proskuryakov.

        * PAL.xcodeproj/project.pbxproj: Bump the upgrade check version.

2020-04-21  Peng Liu  <peng.liu6@apple.com>

        Fix MACCATALYST build failures
        https://bugs.webkit.org/show_bug.cgi?id=210815

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2020-04-20  Peng Liu  <peng.liu6@apple.com>

        Fix build failures when video fullscreen and picture-in-picture is disabled
        https://bugs.webkit.org/show_bug.cgi?id=210777

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig:

2020-04-20  Darin Adler  <darin@apple.com>

        Use #import instead of #include in Objective-C and don't use #pragma once
        https://bugs.webkit.org/show_bug.cgi?id=210724

        Reviewed by David Kilzer.

        * pal/cocoa/AppSSOSoftLink.mm:
        * pal/cocoa/FileSizeFormatterCocoa.mm:
        * pal/cocoa/UsageTrackingSoftLink.mm:
        * pal/ios/ManagedConfigurationSoftLink.mm:
        * pal/ios/UIKitSoftLink.mm:
        * pal/mac/LookupSoftLink.mm:
        * pal/spi/cocoa/AVFoundationSPI.h:
        * pal/spi/cocoa/AccessibilitySupportSoftLink.cpp:
        * pal/spi/cocoa/AppSSOSPI.h:
        * pal/spi/cocoa/AuthKitSPI.h:
        * pal/spi/cocoa/DataDetectorsCoreSPI.h:
        * pal/spi/cocoa/LaunchServicesSPI.h:
        * pal/spi/cocoa/NSAccessibilitySPI.h:
        * pal/spi/cocoa/NSAttributedStringSPI.h:
        * pal/spi/cocoa/NSProgressSPI.h:
        * pal/spi/cocoa/NSURLDownloadSPI.h:
        * pal/spi/cocoa/NSUserDefaultsSPI.h:
        * pal/spi/cocoa/NSXPCConnectionSPI.h:
        * pal/spi/cocoa/PassKitSPI.h:
        * pal/spi/cocoa/SecKeyProxySPI.h:
        * pal/spi/ios/CelestialSPI.h:
        * pal/spi/mac/DataDetectorsSPI.h:
        * pal/spi/mac/NSColorWellSPI.h:
        * pal/spi/mac/NSGraphicsSPI.h:
        * pal/spi/mac/NSPopoverColorWellSPI.h:
        * pal/spi/mac/NSScrollerImpSPI.h:
        More #import, less #pragma once.

2020-04-16  Eric Carlson  <eric.carlson@apple.com>

        [macOS] Update ScreenTime as playback state changes
        https://bugs.webkit.org/show_bug.cgi?id=210518
        <rdar://problem/61181092>

        Reviewed by Jer Noble.

        Soft link the UsageTracking framework.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/UsageTrackingSoftLink.h: Added.
        * pal/cocoa/UsageTrackingSoftLink.mm: Added.

2020-04-14  Peng Liu  <peng.liu6@apple.com>

        Adopt interface AVAudioRoutingArbiter for Mac
        https://bugs.webkit.org/show_bug.cgi?id=210167

        Reviewed by Eric Carlson.

        Add softlink for AVAudioRoutingArbiter.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2020-04-13  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Remove unused UTType swizzler code
        https://bugs.webkit.org/show_bug.cgi?id=210435

        Unreviewed rollout of r258120.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NSUTTypeRecordSPI.h: Removed.

2020-04-10  Alex Christensen  <achristensen@webkit.org>

        Add SPI to handle proxy authentication and require secure proxy connections
        https://bugs.webkit.org/show_bug.cgi?id=210343
        <rdar://problem/61546396> <rdar://problem/61546519> and <rdar://problem/61546658>

        Reviewed by Geoffrey Garen.

        * pal/spi/cf/CFNetworkSPI.h:

2020-04-08  Daniel Bates  <dabates@apple.com>

        Track editable elements on screen
        https://bugs.webkit.org/show_bug.cgi?id=209888
        <rdar://problem/61196886>

        Reviewed by Simon Fraser.

        Add feature define to track editable elements on screen (enabled by default on iOS and iOS Simulator).

        * Configurations/FeatureDefines.xcconfig:

2020-04-08  Adrian Perez de Castro  <aperez@igalia.com>

        [GTK4] Make PAL::systemBeep() work
        https://bugs.webkit.org/show_bug.cgi?id=210158

        Reviewed by Carlos Garcia Campos.

        * pal/system/gtk/SoundGtk.cpp:
        (PAL::systemBeep): Use gdk_display_beep(), which works both with GTK3 and GTK4.

2020-04-07  Adrian Perez de Castro  <aperez@igalia.com>

        [GTK] CMake find module for GTK4
        https://bugs.webkit.org/show_bug.cgi?id=210110

        Reviewed by Don Olmstead.

        * pal/PlatformGTK.cmake: Use the GTK::GTK imported target.

2020-04-05  Peng Liu  <peng.liu6@apple.com>

        The value of [AVPlayerViewController isPictureInPicturePossible] is NO in the first attempt to enter PiP
        https://bugs.webkit.org/show_bug.cgi?id=204979

        Reviewed by Darin Adler.

        We should use "#if HAVE(AVOBSERVATIONCONTROLLER)" instead of
        "#if HAVE(HAVE_AVOBSERVATIONCONTROLLER)".

        * pal/spi/cocoa/AVKitSPI.h:

2020-04-03  David Kilzer  <ddkilzer@apple.com>

        [Xcode] Replace ASAN_OTHER_CFLAGS and ASAN_OTHER_CPLUSPLUSFLAGS with $(inherited)
        <https://webkit.org/b/209963>
        <rdar://problem/61257504>

        Reviewed by Alexey Proskuryakov.

        * Configurations/Base.xcconfig:
        - Remove ASAN_OTHER_CFLAGS, ASAN_OTHER_CPLUSPLUSFLAGS and
          ASAN_OTHER_LDFLAGS.

2020-04-02  Per Arne Vollan  <pvollan@apple.com>

        Unreviewed build fix after r259396.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-04-02  Per Arne Vollan  <pvollan@apple.com>

        Unreviewed build fix after r259396.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-04-02  Per Arne Vollan  <pvollan@apple.com>

        Unreviewed build fix.

        * pal/spi/cocoa/CoreServicesSPI.h:
        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-04-02  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Remove redundant call to check in with Launch Services
        https://bugs.webkit.org/show_bug.cgi?id=209911

        Reviewed by Darin Adler.

        Move declarations to SPI header files.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/CoreServicesSPI.h: Added.
        * pal/spi/cocoa/LaunchServicesSPI.h:

2020-04-02  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Allow WebKit to use camera in multi-tasking mode
        https://bugs.webkit.org/show_bug.cgi?id=209904

        Reviewed by Youenn Fablet.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2020-04-01  Timothy Horton  <timothy_horton@apple.com>

        Fix the build.

        * pal/spi/ios/ManagedConfigurationSPI.h:

2020-04-01  Tim Horton  <timothy_horton@apple.com>

        Use ManagedConfiguration umbrella instead of including specific headers
        https://bugs.webkit.org/show_bug.cgi?id=209884
        <rdar://problem/59244126>

        Reviewed by Wenson Hsieh.

        * pal/spi/ios/ManagedConfigurationSPI.h:

2020-03-31  Eric Carlson  <eric.carlson@apple.com>

        [iPad] Use AVAudioSession to detect AirPlay route changes
        https://bugs.webkit.org/show_bug.cgi?id=209789
        <rdar://problem/58065279>

        Reviewed by Jer Noble.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:
        * pal/spi/cocoa/AVFoundationSPI.h:

2020-03-30  Megan Gardner  <megan_gardner@apple.com>

        Update to new Data Detectors SPI
        https://bugs.webkit.org/show_bug.cgi?id=209788
        <rdar://problem/60690050>

        Reviewed by Tim Horton.

        * pal/spi/mac/DataDetectorsSPI.h:

2020-03-27  Wenson Hsieh  <wenson_hsieh@apple.com>

        Web content processes should not be able to arbitrarily request pasteboard data from the UI process
        https://bugs.webkit.org/show_bug.cgi?id=209657
        <rdar://problem/59611585>

        Reviewed by Geoff Garen.

        Soft-link the string constant `UIPasteboardNameGeneral`. See WebKit/ChangeLog for more details.

        * pal/ios/UIKitSoftLink.h:
        * pal/ios/UIKitSoftLink.mm:

2020-03-20  Tim Horton  <timothy_horton@apple.com>

        Upstream a variety of Cocoa-platform HAVE and ENABLE macros
        https://bugs.webkit.org/show_bug.cgi?id=209307

        Reviewed by Andy Estes.

        * Configurations/FeatureDefines.xcconfig:
        * pal/spi/cocoa/AVFoundationSPI.h:
        * pal/spi/cocoa/RevealSPI.h:
        * pal/spi/ios/UIKitSPI.h:

2020-03-20  Jacob Uphoff  <jacob_uphoff@apple.com>

        Unreviewed, reverting r258762.

        This commit broke the Catalina build

        Reverted changeset:

        "Fix the build"
        https://trac.webkit.org/changeset/258762

2020-03-20  Jacob Uphoff  <jacob_uphoff@apple.com>

        Unreviewed, reverting r258748.

        This commit broke the Catalina build

        Reverted changeset:

        "Upstream a variety of Cocoa-platform HAVE and ENABLE macros"
        https://bugs.webkit.org/show_bug.cgi?id=209307
        https://trac.webkit.org/changeset/258748

2020-03-20  Timothy Horton  <timothy_horton@apple.com>

        Fix the build

        * pal/spi/cocoa/RevealSPI.h:

2020-03-19  Tim Horton  <timothy_horton@apple.com>

        Upstream a variety of Cocoa-platform HAVE and ENABLE macros
        https://bugs.webkit.org/show_bug.cgi?id=209307

        Reviewed by Andy Estes.

        * Configurations/FeatureDefines.xcconfig:
        * pal/spi/cocoa/AVFoundationSPI.h:
        * pal/spi/cocoa/RevealSPI.h:
        * pal/spi/ios/UIKitSPI.h:

2020-03-19  Megan Gardner  <megan_gardner@apple.com>

        Correctly set up context for Data Detectors
        https://bugs.webkit.org/show_bug.cgi?id=209258

        Reviewed by Tim Horton.

        * pal/spi/ios/DataDetectorsUISPI.h:

2020-03-18  Peng Liu  <peng.liu6@apple.com>

        The value of [AVPlayerViewController isPictureInPicturePossible] is NO in the first attempt to enter PiP
        https://bugs.webkit.org/show_bug.cgi?id=204979

        Reviewed by Jer Noble.

        A follow-up patch to fix build failures.

        * pal/spi/cocoa/AVKitSPI.h:

2020-03-18  Alex Christensen  <achristensen@webkit.org>

        Add HTTP3 as an experimental feature
        https://bugs.webkit.org/show_bug.cgi?id=209267
        <rdar://problem/60245262> and <rdar://problem/60245168>

        Reviewed by Brent Fulgham.

        * pal/spi/cf/CFNetworkSPI.h:

2020-03-18  Peng Liu  <peng.liu6@apple.com>

        The value of [AVPlayerViewController isPictureInPicturePossible] is NO in the first attempt to enter PiP
        https://bugs.webkit.org/show_bug.cgi?id=204979

        Reviewed by Jer Noble.

        import AVKit/AVObservationController.h

        * pal/spi/cocoa/AVKitSPI.h:

2020-03-16  Alex Christensen  <achristensen@webkit.org>

        Build fix.
       ​https://bugs.webkit.org/show_bug.cgi?id=208951

        * pal/spi/cocoa/AVFoundationSPI.h:
        r258314 was missing a nullability annotation.

2020-03-16  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Accessibility sandbox regressions
        https://bugs.webkit.org/show_bug.cgi?id=209065

        Reviewed by Brent Fulgham.

        Add Accessibility notification name.

        * pal/spi/cocoa/NSAccessibilitySPI.h:

2020-03-13  Sergio Villar Senin  <svillar@igalia.com>

        [WebXR] IDLs, stubs and build configuration for WPE
        https://bugs.webkit.org/show_bug.cgi?id=208702

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig: Added ENABLE_WEBXR off by default.

2020-03-15  Yusuke Suzuki  <ysuzuki@apple.com>

        Should not use variable-length-array (VLA)
        https://bugs.webkit.org/show_bug.cgi?id=209043

        Reviewed by Mark Lam.

        * Configurations/Base.xcconfig:

2020-03-12  Per Arne Vollan  <pvollan@apple.com>

        [macOS] _AXSApplicationAccessibilityEnabled should not be called
        https://bugs.webkit.org/show_bug.cgi?id=208953

        Reviewed by Brent Fulgham.

        Declare method to check if the process is a remote UI app for accessibility.

        * pal/spi/cocoa/NSAccessibilitySPI.h:

2020-03-11  Jer Noble  <jer.noble@apple.com>

        Adopt AVSampleBufferVideoOutput
        https://bugs.webkit.org/show_bug.cgi?id=208951

        Reviewed by Eric Carlson.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:
        * pal/spi/cocoa/AVFoundationSPI.h:

2020-03-11  Jer Noble  <jer.noble@apple.com>

        [EME] Issue an "encrypted" event when a new encrypted initialization segment is encountered
        https://bugs.webkit.org/show_bug.cgi?id=208923

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/AVFoundationSPI.h:

2020-03-09  Don Olmstead  <don.olmstead@sony.com>

        Remove obsolete feature flags
        https://bugs.webkit.org/show_bug.cgi?id=208830

        Reviewed by Alex Christensen.

        Remove ENABLE_CUSTOM_SCHEME_HANDLER and ENABLE_MAC_VIDEO_TOOLBOX since they
        are no longer used.

        * Configurations/FeatureDefines.xcconfig:

2020-03-09  Antoine Quint  <graouts@apple.com>

        Remove the compile-time flag for Pointer Events
        https://bugs.webkit.org/show_bug.cgi?id=208821
        <rdar://problem/60223471>

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:

2020-03-08  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Mapping to UTI from tag and tag class should be performed in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=208783

        Reviewed by Brent Fulgham.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NSUTTypeRecordSPI.h: Added.

2020-03-08  Konstantin Tokarev  <annulen@yandex.ru>

        [CMake] Some fixes for building Mac port
        https://bugs.webkit.org/show_bug.cgi?id=208770

        Reviewed by Don Olmstead.

        * pal/PlatformMac.cmake:

2020-03-08  Andres Gonzalez  <andresg_22@apple.com>

        Implementation of AccessibilitySupport AXSIsolatedTreeMode.
        https://bugs.webkit.org/show_bug.cgi?id=208691
        <rdar://problem/60178602>

        Reviewed by Chris Fleizach.

        Added softlinking for the AccessibilitySupport library (libAccessibility.tbd).

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/spi/cocoa/AccessibilitySupportSPI.h: Added.
        * pal/spi/cocoa/AccessibilitySupportSoftLink.cpp: Added.
        * pal/spi/cocoa/AccessibilitySupportSoftLink.h: Added.

2020-03-07  Daniel Bates  <dabates@apple.com>

        [iOS] Implement support for dictation alternatives
        https://bugs.webkit.org/show_bug.cgi?id=208720
        <rdar://problem/58540114>

        Reviewed by Wenson Hsieh.

        Part 1

        Expose some more SPI.

        * pal/spi/ios/UIKitSPI.h:

2020-03-05  Sam Weinig  <weinig@apple.com>

        Move JavaScriptCore related feature defines from FeatureDefines.xcconfig to PlatformEnableCocoa.h
        https://bugs.webkit.org/show_bug.cgi?id=207436
        <rdar://problem/59296762>

        Reviewed by Darin Adler.

        * Configurations/FeatureDefines.xcconfig:
        Remove JSC related defines.

2020-03-07  chris fleizach  <cfleizach@apple.com>

        Unreviewed, rolling out r258047.

        Referenced SPI not yet available for Safari builders.

        Reverted changeset:

        "Implementation of AccessibilitySupport AXSIsolatedTreeMode."
        https://bugs.webkit.org/show_bug.cgi?id=208691
        https://trac.webkit.org/changeset/258047

2020-03-06  Andres Gonzalez  <andresg_22@apple.com>

        Implementation of AccessibilitySupport AXSIsolatedTreeMode.
        https://bugs.webkit.org/show_bug.cgi?id=208691

        Reviewed by Chris Fleizach.

        * pal/spi/cocoa/AccessibilitySupportSPI.h:
        Added constants and prototypes used in AXIsolatedTreeMode support.

2020-03-06  Peng Liu  <peng.liu6@apple.com>

        Use the feature flags mechanism to give default feature preference values
        https://bugs.webkit.org/show_bug.cgi?id=208607

        Reviewed by Simon Fraser.

        A follow up patch to fix a build error on old SDKs.

        * pal/spi/cocoa/FeatureFlagsSPI.h:

2020-03-06  Peng Liu  <peng.liu6@apple.com>

        Use the feature flags mechanism to give default feature preference values
        https://bugs.webkit.org/show_bug.cgi?id=208607

        Reviewed by Youenn Fablet.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/FeatureFlagsSPI.h: Added.

2020-03-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        Optimize Path::encode on platforms that support CGPathGetNumberOfElements
        https://bugs.webkit.org/show_bug.cgi?id=208266

        Reviewed by Darin Adler and Simon Fraser.

        Add an SPI declaration for CGPathGetNumberOfElements.

        * pal/spi/cg/CoreGraphicsSPI.h:

2020-03-04  Chris Dumez  <cdumez@apple.com>

        Adopt new and improved CFNetwork SPI for cookie change notifications
        https://bugs.webkit.org/show_bug.cgi?id=208594
        <rdar://problem/60053313>

        Reviewed by Alex Christensen.

        Add new CFNetwork SPI.

        * pal/spi/cf/CFNetworkSPI.h:

2020-03-03  Jiten Mehta  <jmehta@apple.com>

        Adopt HTTP Alternative Services Storage
        https://bugs.webkit.org/show_bug.cgi?id=208387

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:

2020-03-02  Ben Nham  <nham@apple.com>

        [WTF] Add signpost API
        https://bugs.webkit.org/show_bug.cgi?id=208395

        Reviewed by Alex Christensen.

        We want to start using os_signpost instead of kdebug_trace when emitting performance events,
        because it is usually cheaper (doesn't require a system call unless the log buffer is full)
        and allows for richer tracepoints (allows for logging strings as well as integers).

        To facilitate this, this moves the os_signpost wrappers in NetworkDataTaskCocoa to
        WTF. Since signposts can contain sensitive strings (like URLs), currently we only enable
        them on Apple-internal devices when an environment variable is set.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * spi/darwin/OSVariantSPI.h: Renamed to wtf/spi/darwin/OSVariantSPI.h.

2020-02-27  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Add WebKit::PAL target
        https://bugs.webkit.org/show_bug.cgi?id=198493

        Reviewed by Michael Catanzaro.

        Define WebKit::PAL target.

        * pal/CMakeLists.txt:
        * pal/PlatformFTW.cmake:
        * pal/PlatformWinCairo.cmake:

2020-02-22  Jer Noble  <jer.noble@apple.com>

        Stop using QTKit for rendering WK1 video fullscreen controls
        https://bugs.webkit.org/show_bug.cgi?id=207795
        <rdar://problem/48894915>

        Reviewed by Jon Lee.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/AVKitSPI.h:
        * pal/spi/mac/NSWindowSPI.h:
        * pal/spi/mac/QTKitSPI.h: Removed.

2020-02-21  Wenson Hsieh  <wenson_hsieh@apple.com>

        [macOS] Large form controls are rendered at the wrong NSControlSize
        https://bugs.webkit.org/show_bug.cgi?id=208043
        <rdar://problem/59659134>

        Reviewed by Tim Horton.

        Import NSAppearance_Private.h in this SPI header. See WebCore ChangeLog for more details.

        * pal/spi/mac/NSAppearanceSPI.h:

2020-02-20  Peng Liu  <peng.liu6@apple.com>

        [Media in GPU process] Synchronize the properties of video layers in the GPU process with the hosting layer in the web process
        https://bugs.webkit.org/show_bug.cgi?id=206132

        Reviewed by Jer Noble.

        Update the CAContext interface to expose currentContext for external builds.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2020-02-20  Alexey Proskuryakov  <ap@apple.com>

        NSUserDefaultsSPI.h is copied to an incorrect path
        https://bugs.webkit.org/show_bug.cgi?id=207977
        rdar://problem/59609174

        Reviewed by Per Arne Vollan.

        * PAL.xcodeproj/project.pbxproj: Change the header from Private to Project - these
        headers are copied into the right location by a script phase, so Xcode shouldn't
        do it itself.

2020-02-19  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r257029.
        https://bugs.webkit.org/show_bug.cgi?id=207996

        Doesn't fix the issue (Requested by ap on #webkit).

        Reverted changeset:

        "[iOS] Rename NSUserDefaultsSPI.h"
        https://bugs.webkit.org/show_bug.cgi?id=207977
        https://trac.webkit.org/changeset/257029

2020-02-19  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Rename NSUserDefaultsSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=207977
        <rdar://problem/59609174>

        Reviewed by Brent Fulgham.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NSUserDefaultsSPI.h: Removed.
        * pal/spi/cocoa/UserDefaultsSPI.h: Copied from Source/WebCore/PAL/pal/spi/cocoa/NSUserDefaultsSPI.h.

2020-02-17  Chris Dumez  <cdumez@apple.com>

        [WK2][Cocoa] Implement in-WebProcess cookie cache to avoid sync IPC for document.cookie in most cases
        https://bugs.webkit.org/show_bug.cgi?id=207593
        <rdar://problem/56027027>

        Reviewed by Antti Koivisto.

        Add new CFNetwork SPI to CFNetworkSPI.h for open source builds and for using respondsToSelector.

        * pal/spi/cf/CFNetworkSPI.h:

2020-02-17  Peng Liu  <peng.liu6@apple.com>

        Fix check-webkit-style errors related to AVFoundationSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=207834

        Reviewed by Eric Carlson.

        Move AVFoundationSPI.h from folder "mac" to "cocoa" because it is used by both iOS and Mac.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/AVFoundationSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/AVFoundationSPI.h.

2020-02-17  Per Arne Vollan  <pvollan@apple.com>

        Use CF prefs direct mode in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=203420

        Reviewed by Brent Fulgham.

        Add SPI to enable CF prefs direct mode and declare method called when preference are changed.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cf/CFUtilitiesSPI.h:
        * pal/spi/cocoa/NSUserDefaultsSPI.h: Added.

2020-02-17  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Use builtin targets
        https://bugs.webkit.org/show_bug.cgi?id=205166

        Reviewed by Darin Adler.

        * pal/PlatformPlayStation.cmake:

2020-02-16  Fujii Hironori  <Hironori.Fujii@sony.com>

        Remove remaining WTF_EXPORT and WTF_IMPORT by replacing them with WTF_EXPORT_DECLARATION and WTF_IMPORT_DECLARATION
        https://bugs.webkit.org/show_bug.cgi?id=207746

        Reviewed by Don Olmstead.

        Removed unused PAL_TESTSUPPORT_EXPORT.

        * pal/ExportMacros.h:

2020-02-14  Nikos Mouchtaris  <nmouchtaris@apple.com>

        WebKit support for Apple Pay Buttons with custom corner radii
        https://bugs.webkit.org/show_bug.cgi?id=207664
        <rdar://problem/43718114>

        Reviewed by Andy Estes.

        Added link for PKDrawApplePayButtonWithCornerRadius and
        PKApplePayButtonDefaultCornerRadius.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm:
        * pal/spi/cocoa/PassKitSPI.h:

2020-02-12  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r256010.

        Introduced ASan crashes

        Reverted changeset:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/r256010

2020-02-12  Simon Fraser  <simon.fraser@apple.com>

        Remove CSS_DEVICE_ADAPTATION
        https://bugs.webkit.org/show_bug.cgi?id=203479

        Reviewed by Tim Horton.

        CSS Working Group resolved to remove @viewport <https://github.com/w3c/csswg-drafts/issues/4766>,
        so remove the code.

        * Configurations/FeatureDefines.xcconfig:

2020-02-11  Chris Fleizach  <cfleizach@apple.com>

        AX: Wrong includes for internal SDK
        https://bugs.webkit.org/show_bug.cgi?id=207554

        Reviewed by Chris Dumez.

        * pal/spi/mac/HIServicesSPI.h:

2020-02-11  chris fleizach  <cfleizach@apple.com>

        AX: Unable to build webkit open source - build errors related to AXClientType
        https://bugs.webkit.org/show_bug.cgi?id=207524
        <rdar://problem/59279722>

        Reviewed by Mark Lam.

        * pal/spi/mac/HIServicesSPI.h:

2020-02-10  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r256091.

        Broke internal builds

        Reverted changeset:

        "Move trivial definitions from FeatureDefines.xcconfig to
        PlatformEnableCocoa.h"
        https://bugs.webkit.org/show_bug.cgi?id=207155
        https://trac.webkit.org/changeset/256091

2020-02-10  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r256103.

        This patch is blocking the rollout of r256091

        Reverted changeset:

        "Move JavaScriptCore related feature defines from
        FeatureDefines.xcconfig to PlatformEnableCocoa.h"
        https://bugs.webkit.org/show_bug.cgi?id=207436
        https://trac.webkit.org/changeset/256103

2020-02-09  Keith Rollin  <krollin@apple.com>

        Re-enable LTO for ARM builds
        https://bugs.webkit.org/show_bug.cgi?id=207402
        <rdar://problem/49190767>

        Reviewed by Sam Weinig.

        Bug 190758 re-enabled LTO for Production builds for x86-family CPUs.
        Enabling it for ARM was left out due to a compiler issue. That issue
        has been fixed, and so now we can re-enable LTO for ARM.

        * Configurations/Base.xcconfig:

2020-02-08  Sam Weinig  <weinig@apple.com>

        Move JavaScriptCore related feature defines from FeatureDefines.xcconfig to PlatformEnableCocoa.h
        https://bugs.webkit.org/show_bug.cgi?id=207436

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:
        Remove ENABLE_FAST_JIT_PERMISSIONS and ENABLE_FTL_JIT.

2020-02-08  Sam Weinig  <weinig@apple.com>

        Move trivial definitions from FeatureDefines.xcconfig to PlatformEnableCocoa.h
        https://bugs.webkit.org/show_bug.cgi?id=207155

        Reviewed by Tim Horton.

        Move all trivial definitions (just ENABLE_FOO = ENABLE_FOO; or ENABLE_BAR = ;)
        from the FeatureDefines.xcconfigs to PlatformEnableCocoa.h, ensuring each one
        also has a default value in PlatformEnable.h

        * Configurations/FeatureDefines.xcconfig:
        * Configurations/PAL.xcconfig:
        Remove quotes as they should not be necessary (other uses of BUILT_PRODUCTS_DIR 
        are not quoted) and complicate scripts that want to use HEADER_SEARCH_PATHS.

2020-02-07  Nikos Mouchtaris  <nmouchtaris@apple.com>

        [Apple Pay] Provide a redacted billing contact during payment method selection
        https://bugs.webkit.org/show_bug.cgi?id=207169

        Reviewed by Andy Estes.
        
        Fix for build problem.

        * pal/spi/cocoa/PassKitSPI.h:

2020-02-07  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r256051.

        Broke internal builds.

        Reverted changeset:

        "Move trivial definitions from FeatureDefines.xcconfig to
        PlatformEnableCocoa.h"
        https://bugs.webkit.org/show_bug.cgi?id=207155
        https://trac.webkit.org/changeset/256051

2020-02-07  Sam Weinig  <weinig@apple.com>

        Move trivial definitions from FeatureDefines.xcconfig to PlatformEnableCocoa.h
        https://bugs.webkit.org/show_bug.cgi?id=207155

        Reviewed by Tim Horton.

        Move all trivial definitions (just ENABLE_FOO = ENABLE_FOO; or ENABLE_BAR = ;)
        from the FeatureDefines.xcconfigs to PlatformEnableCocoa.h, ensuring each one
        also has a default value in PlatformEnable.h

        * Configurations/FeatureDefines.xcconfig:
        * Configurations/PAL.xcconfig:
        Remove quotes as they should not be necessary (other uses of BUILT_PRODUCTS_DIR 
        are not quoted) and complicate scripts that want to use HEADER_SEARCH_PATHS.

2020-02-07  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582
        <rdar://problem/58985368>

        Reviewed by Eric Carlson.

        Add soft link macros for VideoToolbox and AudioToolbox.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/AudioToolboxSoftLink.cpp: Added.
        * pal/cf/AudioToolboxSoftLink.h: Added.
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/cf/VideoToolboxSoftLink.cpp: Added.
        * pal/cf/VideoToolboxSoftLink.h: Added.

2020-02-06  Jiewen Tan  <jiewen_tan@apple.com>

        Adopt new SOAuthorizationOption constants
        https://bugs.webkit.org/show_bug.cgi?id=207186
        <rdar://problem/48909336>

        Reviewed by Brent Fulgham.

        * pal/cocoa/AppSSOSoftLink.h:
        * pal/cocoa/AppSSOSoftLink.mm:
        Soft links the new constants.

2020-02-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r255910, r255970, and r255972.
        https://bugs.webkit.org/show_bug.cgi?id=207345

        Broke internal builds (Requested by ryanhaddad on #webkit).

        Reverted changesets:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255910

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255970

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255972

2020-02-06  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582
        <rdar://problem/58985368>

        Reviewed by Eric Carlson.

        Add soft link macros for VideoToolbox and AudioToolbox.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/AudioToolboxSoftLink.cpp: Added.
        * pal/cf/AudioToolboxSoftLink.h: Added.
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/cf/VideoToolboxSoftLink.cpp: Added.
        * pal/cf/VideoToolboxSoftLink.h: Added.

2020-02-05  Jer Noble  <jer.noble@apple.com>

        Adopt MTOverrideShouldPlayHDRVideo()
        https://bugs.webkit.org/show_bug.cgi?id=207275
        <rdar://problem/58837093>

        Reviewed by Eric Carlson.

        * pal/cocoa/MediaToolboxSoftLink.cpp:
        * pal/cocoa/MediaToolboxSoftLink.h:

2020-02-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r255818.
        https://bugs.webkit.org/show_bug.cgi?id=207270

        It is breaking some Mac builds (Requested by youenn on
        #webkit).

        Reverted changeset:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255818

2020-02-05  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582
        <rdar://problem/58985368>

        Reviewed by Eric Carlson.

        Add soft link macros for VideoToolbox and AudioToolbox.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/AudioToolboxSoftLink.cpp: Added.
        * pal/cf/AudioToolboxSoftLink.h: Added.
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/cf/VideoToolboxSoftLink.cpp: Added.
        * pal/cf/VideoToolboxSoftLink.h: Added.

2020-02-04  Darin Adler  <darin@apple.com>

        Remove NSKeyedArchiverSPI.h now that WebKit only uses API
        https://bugs.webkit.org/show_bug.cgi?id=207203

        Reviewed by Anders Carlsson.

        * PAL.xcodeproj/project.pbxproj: Remove NSKeyedArchiverSPI.h.
        * pal/PlatformMac.cmake: Ditto.
        * pal/spi/cocoa/NSKeyedArchiverSPI.h: Removed.

2020-02-04  Alex Christensen  <achristensen@webkit.org>

        Fix Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=207231

        * pal/PlatformMac.cmake:

2020-02-03  Jiewen Tan  <jiewen_tan@apple.com>

        Pass a hint from the extension to decidePolicyForSOAuthorizationLoadWithCurrentPolicy
        https://bugs.webkit.org/show_bug.cgi?id=207079
        <rdar://problem/48290464>

        Reviewed by Brent Fulgham.

        * pal/cocoa/AppSSOSoftLink.h:
        * pal/cocoa/AppSSOSoftLink.mm:
        * pal/spi/cocoa/AppSSOSPI.h:
        Adds macros for classes that are used in the tests.

2020-01-31  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add support for specifying background colors when setting marked text
        https://bugs.webkit.org/show_bug.cgi?id=207065
        <rdar://problem/57876140>

        Reviewed by Tim Horton.

        Add an SPI soft-linking declaration for NSMarkedClauseSegmentAttributeName.

        * pal/spi/cocoa/NSAttributedStringSPI.h:

2020-01-30  Alex Christensen  <achristensen@webkit.org>

        Add WKNavigationDelegate SPI to disable TLS 1.0 and 1.1
        https://bugs.webkit.org/show_bug.cgi?id=206979

        Reviewed by Brady Eidson.

        * pal/spi/cf/CFNetworkSPI.h:

2020-01-30  Jonathan Bedard  <jbedard@apple.com>

        PAL: Remove old iOS version macros
        https://bugs.webkit.org/show_bug.cgi?id=206905

        Reviewed by Darin Adler.

        * pal/cocoa/AVFoundationSoftLink.mm: Remove iOS 13 version checks.
        * pal/spi/cf/CFNetworkSPI.h: Remove iOS 11 version checks.
        * pal/spi/cg/CoreGraphicsSPI.h: Use HAVE macro instead of version checks.
        * pal/spi/cocoa/IOSurfaceSPI.h: Remove iOS 11 version checks.
        * pal/spi/cocoa/NSKeyedArchiverSPI.h: Remove USE(SECURE_ARCHIVER_API) and
        USE(SECURE_ARCHIVER_FOR_ATTRIBUTED_STRING).
        * pal/spi/cocoa/NSProgressSPI.h: Replace USE(NSPROGRESS_PUBLISHING_SPI) with
        HAVE(NSPROGRESS_PUBLISHING_SPI).
        * pal/spi/ios/MediaPlayerSPI.h: Remove iOS 11 version checks.

2020-01-30  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r255424.

        Breaks internal builds.

        Reverted changeset:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255424

2020-01-30  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582

        Reviewed by Eric Carlson.

        Add soft link macros for VideoToolbox and AudioToolbox.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/AudioToolboxSoftLink.cpp: Added.
        * pal/cf/AudioToolboxSoftLink.h: Added.
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/cf/VideoToolboxSoftLink.cpp: Added.
        * pal/cf/VideoToolboxSoftLink.h: Added.

2020-01-29  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r255345.
        https://bugs.webkit.org/show_bug.cgi?id=206933

        "It breaks some internals builds" (Requested by youenn on
        #webkit).

        Reverted changeset:

        "[Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder"
        https://bugs.webkit.org/show_bug.cgi?id=206582
        https://trac.webkit.org/changeset/255345

2020-01-29  youenn fablet  <youenn@apple.com>

        [Cocoa] Use AVAssetWriterDelegate to implement MediaRecorder
        https://bugs.webkit.org/show_bug.cgi?id=206582

        Reviewed by Eric Carlson.

        Add soft link macros for VideoToolbox and AudioToolbox.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cf/AudioToolboxSoftLink.cpp: Added.
        * pal/cf/AudioToolboxSoftLink.h: Added.
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/cf/VideoToolboxSoftLink.cpp: Added.
        * pal/cf/VideoToolboxSoftLink.h: Added.

2020-01-22  Darin Adler  <darin@apple.com>

        Remove some unneeded definitions from Platform.h family headers
        https://bugs.webkit.org/show_bug.cgi?id=206642

        Reviewed by Eric Carlson.

        * pal/spi/cf/CFNetworkSPI.h: Remove
        HAVE(CFNETWORK_WITH_CONTENT_ENCODING_SNIFFING_OVERRIDE) because it was
        always 1 on Cocoa platforms, and was guarding a definition that we
        use unconditionally in Objective-C Cocoa-only code, and there is no
        harm of defining it on Windows as long as we don't use it.

        * pal/spi/cocoa/PassKitSPI.h: Remove HAVE(PASSKIT_API_TYPE) because
        it was always 1 on Cocoa platforms and this is a Cocoa-only header.

2020-01-23  David Kilzer  <ddkilzer@apple.com>

        Enable -Wconditional-uninitialized in WebCore project
        <https://webkit.org/b/206508>

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig:
        (WARNING_CFLAGS): Add -Wconditional-uninitialized switch.

2020-01-21  Alex Christensen  <achristensen@webkit.org>

        Add missing NS_NOESCAPE to CFNetwork SPI
        https://bugs.webkit.org/show_bug.cgi?id=206561
        <rdar://problem/58774422>

        Reviewed by Joe Pecoraro.

        * pal/spi/cf/CFNetworkSPI.h:

2020-01-21  Rob Buis  <rbuis@igalia.com>

        Add build flag for stale-while-revalidate
        https://bugs.webkit.org/show_bug.cgi?id=204169

        Reviewed by Youenn Fablet.

        * Configurations/FeatureDefines.xcconfig:

2020-01-20  David Kilzer  <ddkilzer@apple.com>

        Fix missing header guards and clean up empty files in WebCore, WebKitLegacy, WebKit, Tools
        <https://webkit.org/b/206505>

        Reviewed by Eric Carlson.

        * pal/ios/QuickLookSoftLink.h:
        * pal/spi/ios/SQLite3SPI.h:
        - Add #pragma once statement.

2020-01-16  David Kilzer  <ddkilzer@apple.com>

        Attempt to fix internal iOS Debug builds

            Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:2723:46: error: multiple methods named 'name' found [-Werror,-Wobjc-multiple-method-names]
                        auto outputDeviceName = adoptNS([[outputDevice name] copy]);
                                                         ^~~~~~~~~~~~~~~~~~~

        * pal/spi/mac/AVFoundationSPI.h: Import header that defines
        -[AVOutputDevice name].

2020-01-14  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Glyph lookup should be language-sensitive (specifically between Yiddish and Hebrew)
        https://bugs.webkit.org/show_bug.cgi?id=77568
        <rdar://problem/14649193>

        Reviewed by Simon Fraser.

        * pal/spi/cocoa/CoreTextSPI.h:

2020-01-09  Eric Carlson  <eric.carlson@apple.com>

        Don't softlink AVCapture classes on watchOS or tvOS
        https://bugs.webkit.org/show_bug.cgi?id=205974
        <rdar://problem/45508044>

        Reviewed by Jon Lee.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2020-01-07  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Implement css3-images image-orientation
        https://bugs.webkit.org/show_bug.cgi?id=89052

        Reviewed by Simon Fraser.

        Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.

        * Configurations/FeatureDefines.xcconfig:

2020-01-07  Jer Noble  <jer.noble@apple.com>

        Flaky API Test: TestWebKitAPI.WebKitLegacy.AudioSessionCategoryIOS
        https://bugs.webkit.org/show_bug.cgi?id=194340
        <rdar://problem/50507254>

        Reviewed by Eric Carlson.

        Workaround for AVFoundation crash for OS versions prior to platform fix. This crash occurrs infrequently
        while triggering KVO due to an internal @property change. Work around the crash by disabling KVO for that
        property at runtime, by injecting a new class method +automaticallyNotifiesObserversOfSuppressesVideoLayers
        immediately after soft linking the AVFoundation library.

        * pal/cocoa/AVFoundationSoftLink.mm:
        (PAL::justReturnsNO):
        (PAL::AVFoundationLibrary):

2020-01-07  Chris Fleizach  <cfleizach@apple.com>

        AX: Enable ACCESSIBILITY_ISOLATED_TREE
        https://bugs.webkit.org/show_bug.cgi?id=205535
        <rdar://problem/58131075>

        Reviewed by Zalan Bujtas.

        * Configurations/FeatureDefines.xcconfig:

2020-01-05  Simon Fraser  <simon.fraser@apple.com>

        DumpRenderTree doesn't always call updateRendering() when a test completes
        https://bugs.webkit.org/show_bug.cgi?id=205761

        Reviewed by Darin Adler.
        
        Add -[CATransaction synchronize].

        * pal/spi/cocoa/QuartzCoreSPI.h:

2019-12-20  Alex Christensen  <achristensen@webkit.org>

        Allow a managed configuration to re-enable TLS 1.0 and 1.1
        https://bugs.webkit.org/show_bug.cgi?id=205479
        <rdar://problem/54493516>

        Reviewed by Geoffrey Garen.

        Manually verified using the managed configuration attached to rdar://problem/56727605

        * PAL.xcodeproj/project.pbxproj:
        * pal/ios/ManagedConfigurationSoftLink.h: Added.
        * pal/ios/ManagedConfigurationSoftLink.mm: Added.
        * pal/spi/ios/ManagedConfigurationSPI.h: Copied from Source/WebKit/Platform/spi/ios/ManagedConfigurationSPI.h.

2019-12-19  Wenson Hsieh  <wenson_hsieh@apple.com>

        pal/FileSizeFormatter.h declares fileSizeDescription in the top-level namespace
        https://bugs.webkit.org/show_bug.cgi?id=205453

        Reviewed by Tim Horton.

        Move fileSizeDescription to the PAL namespace.

        * pal/FileSizeFormatter.cpp:
        (fileSizeDescription): Deleted.
        * pal/FileSizeFormatter.h:
        * pal/cocoa/FileSizeFormatterCocoa.mm:
        (fileSizeDescription): Deleted.

2019-12-18  Ben Nham  <nham@apple.com>

        Add network loading signposts
        https://bugs.webkit.org/show_bug.cgi?id=204822
        <rdar://problem/57608824>

        Reviewed by Alex Christensen.

        This adds os_signposts related to network loads to aid in debugging networking performance
        issues. Since URLs are logged in the signposts, this capability is only enabled on Apple
        internal builds when an environment variable is set.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/spi/cocoa/OSVariantSPI.h: Added.

2019-12-05  Chris Dumez  <cdumez@apple.com>

        [IPC] Fail PAL::SessionID decoding if the decoded integer is not a valid session ID
        https://bugs.webkit.org/show_bug.cgi?id=204917
        <rdar://problem/53418119>

        Reviewed by Ryosuke Niwa.

        Fail PAL::SessionID IPC decoding if the decoded integer is not a valid session ID.
        This makes our IPC more robust to bad input and makes sure we don't try to lookup
        an invalid sessionID from a HashMap as a result of a bad IPC.

        * pal/SessionID.h:
        (PAL::SessionID::decode):

2019-12-04  Tim Horton  <timothy_horton@apple.com>

        Introduce a GPU process
        https://bugs.webkit.org/show_bug.cgi?id=204343

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2019-12-03  Jer Noble  <jer.noble@apple.com>

        Adopt AVContentKeyReportGroup
        https://bugs.webkit.org/show_bug.cgi?id=204765

        Reviewed by Eric Carlson.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:
        * pal/spi/mac/AVFoundationSPI.h:

2019-11-28  Fujii Hironori  <Hironori.Fujii@sony.com>

        Remove ENABLE_KEYBOARD_CODE_ATTRIBUTE and ENABLE_KEYBOARD_KEY_ATTRIBUTE macros
        https://bugs.webkit.org/show_bug.cgi?id=204666

        Reviewed by Ross Kirsling and Don Olmstead.

        * Configurations/FeatureDefines.xcconfig:

2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Ran sort-Xcode-project-file.

        Unreviewed.

        * PAL.xcodeproj/project.pbxproj:

2019-11-21  Jer Noble  <jer.noble@apple.com>

        Experimental support for HDR media query
        https://bugs.webkit.org/show_bug.cgi?id=204422

        Reviewed by Eric Carlson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/cocoa/MediaToolboxSoftLink.cpp: Renamed from Source/WebCore/platform/cocoa/MediaToolboxSoftLink.h.
        * pal/cocoa/MediaToolboxSoftLink.h: Renamed from Source/WebCore/platform/cocoa/MediaToolboxSoftLink.cpp.

2019-11-15  Eric Carlson  <eric.carlson@apple.com>

        Don't use AVCapture on watchOS and tvOS
        https://bugs.webkit.org/show_bug.cgi?id=204254
        <rdar://problem/45508044>

        Reviewed by Youenn Fablet.

        * Configurations/FeatureDefines.xcconfig:

2019-11-15  Myles C. Maxfield  <mmaxfield@apple.com>

        [Apple] Enable variation fonts on all Apple platforms
        https://bugs.webkit.org/show_bug.cgi?id=198100

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2019-11-06  Eric Liang  <ericliang@apple.com>

        AX: WKWebView does not shift Accessibility Focus for Catalyst (203798)
        https://bugs.webkit.org/show_bug.cgi?id=203798

        Reviewed by Chris Fleizach.

        Changed the path of NSAccessibilitySPI from Mac to Cocoa

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NSAccessibilitySPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/NSAccessibilitySPI.h.

2019-11-02  Devin Rousso  <drousso@apple.com>

        Web Inspector: Add diagnostic logging for frontend feature usage
        https://bugs.webkit.org/show_bug.cgi?id=203579
        <rdar://problem/56717410>

        Reviewed by Brian Burg.

        Original patch by Matt Baker <mattbaker@apple.com>.

        * Configurations/FeatureDefines.xcconfig:
        Add `ENABLE_INSPECTOR_TELEMETRY`, which is only enabled for macOS.

2019-10-31  Alex Christensen  <achristensen@apple.com>

        Enable more features in Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=203699

        Rubber-stamped by Tim Horton.

        * pal/CMakeLists.txt:
        * pal/PlatformMac.cmake:

2019-10-30  Peng Liu  <peng.liu6@apple.com>

        [Picture-in-Picture Web API] Enable the support for iOS
        https://bugs.webkit.org/show_bug.cgi?id=202618

        Reviewed by Jer Noble.

        Enable the Picture-in-Picture API support for iOS (iPad only).

        * Configurations/FeatureDefines.xcconfig:

2019-10-26  Chris Lord  <clord@igalia.com>

        Put OffscreenCanvas behind a build flag
        https://bugs.webkit.org/show_bug.cgi?id=203146

        Reviewed by Ryosuke Niwa.

        * Configurations/FeatureDefines.xcconfig:

2019-10-25  Eric Carlson  <eric.carlson@apple.com>

        Support for callbacks for manifest events
        https://bugs.webkit.org/show_bug.cgi?id=202101
        <rdar://problem/54277362>

        Reviewed by Jer Noble.

        * pal/cocoa/AVFoundationSoftLink.h:
        * pal/cocoa/AVFoundationSoftLink.mm:

2019-10-25  Andy Estes  <aestes@apple.com>

        [Quick Look] Move the QLPreviewConverter delegate into PreviewConverter and vend a C++ client interface
        https://bugs.webkit.org/show_bug.cgi?id=203396

        Reviewed by Alex Christensen.

        * pal/spi/ios/QuickLookSPI.h:

2019-10-15  Peng Liu  <peng.liu6@apple.com>

        [Picture-in-Picture Web API] Implement HTMLVideoElement.requestPictureInPicture() / Document.exitPictureInPicture()
        https://bugs.webkit.org/show_bug.cgi?id=201024

        Reviewed by Eric Carlson.

        Add configurations for the Picture-in-Picture API.

        * Configurations/FeatureDefines.xcconfig:

2019-10-07  Alexey Proskuryakov  <ap@apple.com>

        Build failure in WebHTMLView.mm with the public SDK (Xcode 11 and Mojave)
        https://bugs.webkit.org/show_bug.cgi?id=199705

        Patch by Dan Bernstein and Kenneth Russell.
        Reviewed by Alexey Proskuryakov.

        * pal/spi/mac/NSViewSPI.h: Declare _subviews when we are not using the
        replacement SPI, but the SDK doesn't declare the ivar (because the SDK is too new).

2019-10-04  Alex Christensen  <achristensen@webkit.org>

        Simplify sandbox enabling macros
        https://bugs.webkit.org/show_bug.cgi?id=202536

        Reviewed by Brent Fulgham.

        * Configurations/FeatureDefines.xcconfig:

2019-10-01  Alex Christensen  <achristensen@webkit.org>

        Progress towards a functioning CMake build on Mac
        https://bugs.webkit.org/show_bug.cgi?id=202443

        Rubber-stamped by Tim Horton.

        * pal/PlatformMac.cmake:

2019-10-01  Alex Christensen  <achristensen@webkit.org>

        Progress towards successful CMake build on Mac
        https://bugs.webkit.org/show_bug.cgi?id=202426

        Rubber-stamped by Tim Horton.

        * pal/PlatformMac.cmake:

2019-10-01  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=202386
        <rdar://problem/55863017>

        Reviewed by Eric Carlson.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Jer Noble was involved. These changes are isolated
        from other similar changes in order to facilitate the reviewing
        process.

        * pal/spi/cocoa/AVKitSPI.h:
        * pal/spi/mac/AVFoundationSPI.h:

2019-09-30  Alex Christensen  <achristensen@webkit.org>

        Resurrect Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=202384

        Rubber-stamped by Tim Horton.

        * pal/PlatformMac.cmake:

2019-09-30  Alex Christensen  <achristensen@webkit.org>

        Unify more WebKitLegacy sources
        https://bugs.webkit.org/show_bug.cgi?id=202390

        Reviewed by Tim Horton.

        * pal/spi/mac/QuickLookMacSPI.h:

2019-09-27  Keith Rollin  <krollin@apple.com>

        Coalesce or remove PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
        https://bugs.webkit.org/show_bug.cgi?id=202119
        <rdar://problem/55638792>

        Unreviewed, address post landing review comments for r248533 from
        Darin Adler.

        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/cocoa/NEFilterSourceSPI.h:
        * pal/spi/mac/AVFoundationSPI.h:

2019-09-24  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=201969
        <rdar://problem/55505586>

        Reviewed by Jonathan Bedard.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Jonathan Bedard was involved. These changes are
        isolated from other similar changes in order to facilitate the
        reviewing process.

        * pal/spi/cocoa/CoreTextSPI.h:
        * pal/spi/cocoa/QuartzCoreSPI.h:
        * pal/spi/ios/UIKitSPI.h:

2019-09-24  Keith Rollin  <krollin@apple.com>

        Coalesce or remove PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
        https://bugs.webkit.org/show_bug.cgi?id=202119
        <rdar://problem/55638792>

        Reviewed by Alex Christensen.

        After refactoring and other code evolution, some platform checks have
        ended up looking like PLATFORM(MAC) || PLATFORM(IOS_FAMILY) (or
        vice-versa). These can be converted into the equivalent
        PLATFORM(COCOA). Where the instance occurs in a Cocoa-only file, the
        check can be removed altogether (along with any "#else" branches).

        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/cocoa/NEFilterSourceSPI.h:
        * pal/spi/mac/AVFoundationSPI.h:

2019-09-20  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=202027
        <rdar://problem/55547109>

        Reviewed by Alex Christensen.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        After version checks have been removed, there are some cases where the
        preprocessor conditional looks like "#if PLATFORM(MAC) ||
        PLATFORM(IOS_FAMILY)". These can be collapsed into "#if
        PLATFORM(COCOA)". This additional cleanup will be performed in a
        subsequent patch.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Joe Pecoraro was involved. These changes are isolated
        from other similar changes in order to facilitate the reviewing
        process.

        * pal/spi/cf/CFNetworkSPI.h:

2019-09-20  Keith Rollin  <krollin@apple.com>

        Remove check of setSourceAppPid selector that's no longer needed
        https://bugs.webkit.org/show_bug.cgi?id=201971
        <rdar://problem/55505761>

        Reviewed by Andy Estes.

        Bug 172152 introduced a check of the NEFilterSource selector
        setSourceAppPid in order to support OS's that didn't support it. All
        supported Cocoa platforms now support it, so the check can be removed.

        * pal/spi/cocoa/NEFilterSourceSPI.h:

2019-09-20  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=201967
        <rdar://problem/55504738>

        Reviewed by Andy Estes.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        After version checks have been removed, there are some cases where the
        preprocessor conditional looks like "#if PLATFORM(MAC) ||
        PLATFORM(IOS_FAMILY)". These can be collapsed into "#if
        PLATFORM(COCOA)". This additional cleanup will be performed in a
        subsequent patch.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Andy Estes was involved. These changes are isolated
        from other similar changes in order to facilitate the reviewing
        process.

        * pal/spi/cocoa/NEFilterSourceSPI.h:

2019-09-20  Alex Christensen  <achristensen@webkit.org>

        Remove functionality to disable TLS fallback
        https://bugs.webkit.org/show_bug.cgi?id=201998

        Reviewed by Geoff Garen.

        * pal/spi/cf/CFNetworkSPI.h:

2019-09-18  Keith Rollin  <krollin@apple.com>

        Remove alternate declaration of CCECCryptorImportKey
        https://bugs.webkit.org/show_bug.cgi?id=201903
        <rdar://problem/55466589>

        Reviewed by Chris Dumez.

        In macOS 10.15 and iOS 13.0 SDKs, the keyPackage parameter of
        CCECCryptorImportKey() was changed from "void*" to "const void*". This
        change was accounted for in Bug 195754 by making the same change to
        the parallel declarations in CommonCryptoSPI.h. But since this header
        also needed to be used in macOS 10.14 contexts, the old declaration
        was also kept.

        But since this function is a "C" function, the types of parameters are
        not included in the function signature, and it doesn't really matter
        what parameter types are, so long as the right values are sent to the
        called function. This means that we don't need two versions of the
        function, one with a "const" parameter and one without. We only really
        need one. In this case, it makes sense to keep the more-restrictive
        one -- the with a "const void*" parameter. Therefore, remove the one
        taking just "void*".

        * pal/spi/cocoa/CommonCryptoSPI.h:

2019-09-18  Andy Estes  <aestes@apple.com>

        [Apple Pay] Tell websites why a session was cancelled
        https://bugs.webkit.org/show_bug.cgi?id=201912
        <rdar://problem/55469706>

        Reviewed by Brady Eidson.

        Soft-linked PKPassKitErrorDomain and included PassKit headers more judiciously.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm:
        * pal/spi/cocoa/PassKitSPI.h:

2019-09-17  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 12
        https://bugs.webkit.org/show_bug.cgi?id=201851
        <rdar://problem/55422044>

        Reviewed by Jiewen Tan and Alexey Proskuryakov.

        Remove some support for iOS versions less than 12.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 120000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101200" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101200" are always True.

        This removal is part of a series of patches effecting such removal.

        * pal/spi/cocoa/IOSurfaceSPI.h:

2019-09-17  Jonathan Bedard  <jbedard@apple.com>

        Follow-up: Provide a prototype for AR QuickLook to trigger processing in the originating page
        https://bugs.webkit.org/show_bug.cgi?id=201371

        Unreviewed follow-up fix.

        * pal/spi/ios/SystemPreviewSPI.h:

2019-09-16  Dean Jackson  <dino@apple.com>

        Provide a prototype for AR QuickLook to trigger processing in the originating page
        https://bugs.webkit.org/show_bug.cgi?id=201371

        Hopefully fix the public iOS 13 build.

        * pal/spi/ios/SystemPreviewSPI.h:

2019-09-16  Dean Jackson  <dino@apple.com>

        REGRESSION: iPad: Safari becomes unresponsive after context menu on 1-800-MY-APPLE phone number, tapping 'Add to Contacts'
        https://bugs.webkit.org/show_bug.cgi?id=201816
        <rdar://55105827>

        Reviewed by Darin Adler.

        Expose kDataDetectorsSourceRectKey (and sort things while there).

        * pal/spi/ios/DataDetectorsUISPI.h:

2019-09-13  Youenn Fablet  <youenn@apple.com>

        Use WebProcess processIdentifier to identify Service Worker connections
        https://bugs.webkit.org/show_bug.cgi?id=201459

        Reviewed by Chris Dumez.

        * pal/SessionID.h:
        (PAL::SessionID::SessionID):

2019-09-12  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r249801.

        Caused two servier worker layout tests to become flaky.

        Reverted changeset:

        "Use WebProcess processIdentifier to identify Service Worker
        connections"
        https://bugs.webkit.org/show_bug.cgi?id=201459
        https://trac.webkit.org/changeset/249801

2019-09-12  Youenn Fablet  <youenn@apple.com>

        Use WebProcess processIdentifier to identify Service Worker connections
        https://bugs.webkit.org/show_bug.cgi?id=201459

        Reviewed by Chris Dumez.

        * pal/SessionID.h:
        (PAL::SessionID::SessionID):

2019-09-09  Alex Christensen  <achristensen@webkit.org>

        Disable TLS 1.0 and 1.1 in WebSockets
        https://bugs.webkit.org/show_bug.cgi?id=201573

        Reviewed by Youenn Fablet.

        * pal/spi/cf/CFNetworkSPI.h:

2019-08-30  Alex Christensen  <achristensen@webkit.org>

        Remove HAVE_CFNETWORK_WITH_AUTO_ADDED_HTTP_HEADER_SUPPRESSION_SUPPORT conditional
        https://bugs.webkit.org/show_bug.cgi?id=201280

        Reviewed by Youenn Fablet.

        * pal/spi/cf/CFNetworkSPI.h:

2019-08-29  Keith Rollin  <krollin@apple.com>

        Remove HAVE_PASSKIT_GRANULAR_ERRORS conditional
        https://bugs.webkit.org/show_bug.cgi?id=201278
        <rdar://problem/54821052>

        Reviewed by Alex Christensen.

        HAVE_PASSKIT_GRANULAR_ERRORS is always True, so remove the conditional
        tests, keeping the True branches and removing the False branches.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm:

2019-08-29  Keith Rollin  <krollin@apple.com>

        Update .xcconfig symbols to reflect the current set of past and future product versions.
        https://bugs.webkit.org/show_bug.cgi?id=200720
        <rdar://problem/54305032>

        Reviewed by Alex Christensen.

        Remove version symbols related to old OS's we no longer support,
        ensure that version symbols are defined for OS's we do support.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/Version.xcconfig:

2019-08-29  Keith Rollin  <krollin@apple.com>

        Remove CCBigNum fallback code
        https://bugs.webkit.org/show_bug.cgi?id=201250
        <rdar://problem/54814330>

        Reviewed by Jiewen Tan.

        Bug 184637 added support for CCRSAGetCRTComponents, falling back to
        the older CCBigNum code if CCRSAGetCRTComponents was not available. We
        now only support OS's that have CCRSAGetCRTComponents so remove the
        fallback code.

        * pal/spi/cocoa/CommonCryptoSPI.h:

2019-08-29  Keith Rollin  <krollin@apple.com>

        Remove support for macOS < 10.13 (part 3)
        https://bugs.webkit.org/show_bug.cgi?id=201224
        <rdar://problem/54795934>

        Reviewed by Darin Adler.

        Remove symbols in WebKitTargetConditionals.xcconfig related to macOS
        10.13, including WK_MACOS_1013 and WK_MACOS_BEFORE_1013, and suffixes
        like _MACOS_SINCE_1013.

        * Configurations/WebKitTargetConditionals.xcconfig:

2019-08-28  Keith Rollin  <krollin@apple.com>

        Remove support for macOS < 10.13 (part 2)
        https://bugs.webkit.org/show_bug.cgi?id=201197
        <rdar://problem/54759985>

        Reviewed by Darin Adler.

        Update conditionals that reference WK_MACOS_1013 and suffixes like
        _MACOS_SINCE_1013, assuming that we're always building on 10.13 or
        later and that these conditionals are always True or False.

        See Bug 200694 for earlier changes in this area.

        * Configurations/FeatureDefines.xcconfig:

2019-08-26  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Support HID authenticators on iOS
        https://bugs.webkit.org/show_bug.cgi?id=201084
        <rdar://problem/51908390>

        Reviewed by Youenn Fablet.

        * pal/spi/cocoa/IOKitSPI.h:
        Move IOHIDDevice.h and IOHIDManager.h to IOKitSPI.h given they are in iOS.

2019-08-22  Andy Estes  <aestes@apple.com>

        [watchOS] Disable Content Filtering in the simulator build
        https://bugs.webkit.org/show_bug.cgi?id=201047

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2019-08-22  Keith Rollin  <krollin@apple.com>

        Remove support for tvOS < 13.0
        https://bugs.webkit.org/show_bug.cgi?id=200963
        <rdar://problem/54541355>

        Reviewed by Tim Horton.

        Update conditionals that reference __TV_OS_VERSION_MIN_REQUIRED and
        __TV_OS_VERSION_MAX_ALLOWED, assuming that they both have values >=
        130000. This means that expressions like "__TV_OS_VERSION_MIN_REQUIRED
        < 130000" are always False and "__TV_OS_VERSION_MIN_REQUIRED >=
        130000" are always True.

        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        * pal/spi/cocoa/NSProgressSPI.h:

2019-08-21  Keith Rollin  <krollin@apple.com>

        Remove support for watchOS < 6.0
        https://bugs.webkit.org/show_bug.cgi?id=200937
        <rdar://problem/54524009>

        Reviewed by Darin Adler.

        Update conditionals that reference __WATCH_OS_VERSION_MIN_REQUIRED and
        __WATCH_OS_VERSION_MAX_ALLOWED, assuming that they both have values >=
        60000. This means that expressions like
        "__WATCH_OS_VERSION_MIN_REQUIRED < 60000" are always False and
        "__WATCH_OS_VERSION_MIN_REQUIRED >= 60000" are always True.

        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        * pal/spi/cocoa/NSProgressSPI.h:

2019-08-19  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Adopt -preventDisplaySleepForVideoPlayback
        https://bugs.webkit.org/show_bug.cgi?id=200774
        <rdar://problem/54321071>

        Reviewed by Eric Carlson.

        * pal/spi/mac/AVFoundationSPI.h:

2019-08-19  Youenn Fablet  <youenn@apple.com>

        Remove SessionID::emptySessionID()
        https://bugs.webkit.org/show_bug.cgi?id=200811

        Reviewed by Alex Christensen.

        Remove SessionID::emptySessionID and make it closer to a regular ObjectIdentifier.

        * pal/SessionID.cpp:
        * pal/SessionID.h:
        (PAL::SessionID::SessionID):
        (PAL::SessionID::isValid const):
        (PAL::SessionID::isEphemeral const):
        (PAL::SessionID::isHashTableDeletedValue const):
        (PAL::SessionID::toUInt64 const):
        (PAL::SessionID::operator== const):
        (PAL::SessionID::operator!= const):
        (PAL::SessionID::isolatedCopy const):
        (PAL::SessionID::operator bool const):
        (PAL::SessionID::isValidSessionIDValue):
        (PAL::SessionID::encode const):
        (PAL::SessionID::decode):
        (WTF::SessionIDHash::hash):
        (WTF::HashTraits<PAL::SessionID>::emptyValue):
        (WTF::HashTraits<PAL::SessionID>::constructDeletedValue):
        (WTF::HashTraits<PAL::SessionID>::isDeletedValue):

2019-08-18  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWithoutFastMallocCheck part
        https://bugs.webkit.org/show_bug.cgi?id=200620

        Reviewed by Geoffrey Garen.

        * pal/crypto/openssl/CryptoDigestOpenSSL.cpp:
        (PAL::CryptoDigestContextImpl::create):
        * pal/system/ClockGeneric.cpp:
        (PAL::Clock::create):
        * pal/system/mac/ClockCM.mm:
        (Clock::create):

2019-08-14  Keith Rollin  <krollin@apple.com>

        Remove support for macOS < 10.13
        https://bugs.webkit.org/show_bug.cgi?id=200694
        <rdar://problem/54278851>

        Reviewed by Youenn Fablet.

        Update conditionals that reference __MAC_OS_X_VERSION_MIN_REQUIRED and
        __MAC_OS_X_VERSION_MAX_ALLOWED, assuming that they both have values >=
        101300. This means that expressions like
        "__MAC_OS_X_VERSION_MIN_REQUIRED < 101300" are always False and
        "__MAC_OS_X_VERSION_MIN_REQUIRED >= 101300" are always True.

        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/cocoa/AVKitSPI.h:
        * pal/spi/cocoa/CommonCryptoSPI.h:
        * pal/spi/cocoa/IOSurfaceSPI.h:
        * pal/spi/cocoa/NEFilterSourceSPI.h:
        * pal/spi/cocoa/NSAttributedStringSPI.h:
        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        * pal/spi/cocoa/NSTouchBarSPI.h:
        * pal/spi/cocoa/PassKitSPI.h:
        * pal/spi/mac/AVFoundationSPI.h:

2019-08-14  Youenn Fablet  <youenn@apple.com>

        Remove SessionID default constructor
        https://bugs.webkit.org/show_bug.cgi?id=200669

        Reviewed by Alex Christensen.

        * pal/SessionID.h:

2019-08-14  Youenn Fablet  <youenn@apple.com>

        Fail decoding an invalid SessionID
        https://bugs.webkit.org/show_bug.cgi?id=200663

        Reviewed by Alex Christensen.

        * pal/SessionID.h:
        (PAL::SessionID::isValid const):
        (PAL::SessionID::isValidSessionIDValue):
        (PAL::SessionID::encode const):
        Add a release assert to catch bad sessionID senders.
        (PAL::SessionID::decode):
        Fail decoding if session ID is not a valid value.

2019-08-09  Tim Horton  <timothy_horton@apple.com>

        Tapping buttons in Data Detectors lookup previews doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=200579
        <rdar://problem/54056519>

        Reviewed by Megan Gardner.

        * pal/spi/ios/DataDetectorsUISPI.h:

2019-08-07  Dean Jackson  <dino@apple.com>

        Context menu on a universal link produces a blank preview
        https://bugs.webkit.org/show_bug.cgi?id=200485
        <rdar://problem/53699620>

        Reviewed by Tim Horton.

        Use the umbrella #import.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2019-08-06  Dean Jackson  <dino@apple.com>

        Context menu on a universal link produces a blank preview
        https://bugs.webkit.org/show_bug.cgi?id=200485
        <rdar://problem/53699620>

        Reviewed by Tim Horton.

        Define iTunesStoreURL from CoreServices.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2019-08-07  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r248330.

        Breaks internal builds.

        Reverted changeset:

        "Context menu on a universal link produces a blank preview"
        https://bugs.webkit.org/show_bug.cgi?id=200485
        https://trac.webkit.org/changeset/248330

2019-08-07  Youenn Fablet  <youenn@apple.com>

        ASSERT that a sessionID is valid when encoding it
        https://bugs.webkit.org/show_bug.cgi?id=199302

        Reviewed by Darin Adler.

        ASSERT that a sessionID is valid at encoding/decoding time.

        * pal/SessionID.h:
        (PAL::SessionID::encode const):
        (PAL::SessionID::decode):

2019-08-06  Dean Jackson  <dino@apple.com>

        Context menu on a universal link produces a blank preview
        https://bugs.webkit.org/show_bug.cgi?id=200485
        <rdar://problem/53699620>

        Reviewed by Dean Jackson.

        Define iTunesStoreURL from CoreServices.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2019-07-31  Youenn Fablet  <youenn@apple.com>

        Use CTFontCreateForCharactersWithLanguageAndOption if available instead of CTFontCreateForCharactersWithLanguage
        https://bugs.webkit.org/show_bug.cgi?id=200241
        <rdar://problem/53495386>

        Build fix for older MacOS for which CTFontFallbackOption is not defined.
        Unreviewed.

        * pal/spi/cocoa/CoreTextSPI.h:

2019-07-31  Youenn Fablet  <youenn@apple.com>

        Use CTFontCreateForCharactersWithLanguageAndOption if available instead of CTFontCreateForCharactersWithLanguage
        https://bugs.webkit.org/show_bug.cgi?id=200241

        Reviewed by Myles C. Maxfield.

        Add new SPI.

        * pal/spi/cocoa/CoreTextSPI.h:

2019-07-25  Brent Fulgham  <bfulgham@apple.com>

        Use IWICBitmap (rather than ID2D1Bitmap) for NativeImagePtr on FTW
        https://bugs.webkit.org/show_bug.cgi?id=200093

        Reviewed by Dean Jackson.

        * pal/PlatformFTW.cmake:

2019-07-24  Yusuke Suzuki  <ysuzuki@apple.com>

        [bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA
        https://bugs.webkit.org/show_bug.cgi?id=200103

        Reviewed by Mark Lam.

        Move VMTag page memory investigation code from PAL to WTF to reuse it in TestWTF.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:

2019-07-22  Simon Fraser  <simon.fraser@apple.com>

        Make some constructors explicit
        https://bugs.webkit.org/show_bug.cgi?id=199981

        Reviewed by Daniel Bates.

        Make explicit public constructors of objects that take POD or String& arguments,
        to reduce the changes of the compiler doing implicit conversions.

        * pal/system/cocoa/SleepDisablerCocoa.cpp:
        (PAL::SleepDisablerCocoa::SleepDisablerCocoa):
        * pal/system/cocoa/SleepDisablerCocoa.h:

2019-07-21  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Fast and complex text codepaths disagree about how to lay out bopomofo with tone marks
        https://bugs.webkit.org/show_bug.cgi?id=199912
        <rdar://problem/52182454>

        Reviewed by Simon Fraser.

        * pal/spi/cocoa/CoreTextSPI.h:

2019-07-17  Antoine Quint  <graouts@apple.com>

        Disable Pointer Events prior to watchOS 6
        https://bugs.webkit.org/show_bug.cgi?id=199890
        <rdar://problem/53206113>

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:

2019-07-11  Myles C. Maxfield  <mmaxfield@apple.com>

        New York font erroneously gets synthetic bold
        https://bugs.webkit.org/show_bug.cgi?id=199653
        <rdar://problem/51692592>

        Reviewed by Simon Fraser.

        * pal/spi/cocoa/CoreTextSPI.h:

2019-07-11  Jonathan Bedard  <jbedard@apple.com>

        [iOS 13] Enable WebKit build
        https://bugs.webkit.org/show_bug.cgi?id=199481
        <rdar://problem/52619048>

        Reviewed by Tim Horton.

        * pal/spi/cocoa/NSProgressSPI.h: We need the NSProgress SPI in public builds because NSProgress API
        is marked unavailable on iOS, watchOS and tvOS.
        * pal/spi/ios/CoreUISPI.h: Add CUIStyleEffectConfiguration.appearanceName SPI.
        * pal/spi/ios/DataDetectorsUISPI.h: Add UIContextMenuConfiguration.contextMenuConfigurationForURL SPI.
        * pal/spi/ios/SystemPreviewSPI.h: Add ARQuickLookWebKitItem.initWithPreviewItemProvider SPI.
        * pal/spi/ios/UIKitSPI.h: Add systemBrownColor, UIColor.tableCellDefaultSelectionTintColor should be marked nullable.
        * pal/spi/mac/AVFoundationSPI.h: Add AVOutputDevice.name SPI.

2019-07-10  Alex Christensen  <achristensen@webkit.org>

        Allow CMake to build WebCore on Mac
        https://bugs.webkit.org/show_bug.cgi?id=198979

        Reviewed by Don Olmstead.

        * pal/PlatformMac.cmake:

2019-07-08  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Enable only on the most recent version of the supported iOS family
        https://bugs.webkit.org/show_bug.cgi?id=199562
        <rdar://problem/52766511>

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:

2019-07-05  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r247159.

        IndexedDB layout tests are failing the new assert.

        Reverted changeset:

        "ASSERT that a sessionID is valid when encoding it"
        https://bugs.webkit.org/show_bug.cgi?id=199302
        https://trac.webkit.org/changeset/247159

2019-07-05  Youenn Fablet  <youenn@apple.com>

        ASSERT that a sessionID is valid when encoding it
        https://bugs.webkit.org/show_bug.cgi?id=199302

        Reviewed by Darin Adler.

        ASSERT that a sessionID is valid at encoding/decoding time.

        * pal/SessionID.h:
        (PAL::SessionID::encode const):
        (PAL::SessionID::decode):

2019-07-03  Jonathan Bedard  <jbedard@apple.com>

        [Catalina] Enable WebKit build
        https://bugs.webkit.org/show_bug.cgi?id=199209

        Reviewed by Darin Adler.

        * pal/spi/cf/CFNetworkSPI.h: Add new NSURLSessionConfiguration SPI.
        * pal/spi/mac/AVFoundationSPI.h: resourceConservationLevelWhilePaused should
        be defined after AVPlayerResourceConservationLevel.
        * pal/spi/mac/NSViewSPI.h: Add subviewsIvar.

2019-07-03  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r246616.

        Caused http/tests/inspector/network/har/har-page.html to fail
        on Catalina.

        Reverted changeset:

        "Web Inspector: Network: replace CFNetwork SPI with new API
        where able"
        https://bugs.webkit.org/show_bug.cgi?id=198762
        https://trac.webkit.org/changeset/246616

2019-06-28  Brent Fulgham  <bfulgham@apple.com>

        [FTW] Build WebCore
        https://bugs.webkit.org/show_bug.cgi?id=199199

        Reviewed by Don Olmstead.

        * pal/PlatformFTW.cmake: Added.

2019-06-28  Konstantin Tokarev  <annulen@yandex.ru>

        Remove traces of ENABLE_ICONDATABASE remaining after its removal in 219733
        https://bugs.webkit.org/show_bug.cgi?id=199317

        Reviewed by Michael Catanzaro.

        While IconDatabase and all code using it was removed,
        ENABLE_ICONDATABASE still exists as build option and C++ macro.

        * Configurations/FeatureDefines.xcconfig:

2019-06-27  Beth Dakin  <bdakin@apple.com>

        Upstream use of MACCATALYST
        https://bugs.webkit.org/show_bug.cgi?id=199245
        rdar://problem/51687723

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/FeatureDefines.xcconfig:
        * Configurations/SDKVariant.xcconfig:
        * pal/spi/mac/AVFoundationSPI.h:

2019-06-27  Saam Barati  <sbarati@apple.com>

        Make WEBGPU enabled only on Mojave and later.

        Rubber-stamped by Myles C. Maxfield.

        * Configurations/FeatureDefines.xcconfig:

2019-06-25  Alex Christensen  <achristensen@webkit.org>

        Make HTTPCookieAcceptPolicy an enum class
        https://bugs.webkit.org/show_bug.cgi?id=199081

        Reviewed by Michael Catanzaro

        * pal/spi/cf/CFNetworkSPI.h:

2019-06-19  Devin Rousso  <drousso@apple.com>

        Web Inspector: Network: replace CFNetwork SPI with new API where able
        https://bugs.webkit.org/show_bug.cgi?id=198762

        Reviewed by Timothy Hatcher.

        * pal/spi/cf/CFNetworkSPI.h:

2019-06-18  Dean Jackson  <dino@apple.com>

        UIContextMenuInteraction implementation for WKContentView
        https://bugs.webkit.org/show_bug.cgi?id=198986
        <rdar://problem/51875189>

        Reviewed by Andy Estes.

        Include + soft link DDContextMenuAction.

        * pal/spi/ios/DataDetectorsUISPI.h:

2019-06-18  Jiewen Tan  <jiewen_tan@apple.com>

        Link to the new AppSSO private framework
        https://bugs.webkit.org/show_bug.cgi?id=198949
        <rdar://problem/51281897>

        Reviewed by Brent Fulgham.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/AppSSOSoftLink.h:
        * pal/cocoa/AppSSOSoftLink.mm:
        * pal/spi/cocoa/AppSSOSPI.h: Added.

2019-06-18  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r246534.

        Caused 45 webgpu/ tests to crash.

        Reverted changeset:

        "Link to the new AppSSO private framework"
        https://bugs.webkit.org/show_bug.cgi?id=198949
        https://trac.webkit.org/changeset/246534

2019-06-18  Jiewen Tan  <jiewen_tan@apple.com>

        Link to the new AppSSO private framework
        https://bugs.webkit.org/show_bug.cgi?id=198949
        <rdar://problem/51281897>

        Reviewed by Brent Fulgham.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/AppSSOSoftLink.h:
        * pal/cocoa/AppSSOSoftLink.mm:
        * pal/spi/cocoa/AppSSOSPI.h: Added.

2019-06-17  Jiewen Tan  <jiewen_tan@apple.com>

        Move SOAuthorization from WebKitAdditions to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=198874
        <rdar://problem/47573431>

        Reviewed by Brent Fulgham.

        This patch moves AppSSOSoftLink from WebKitAdditions to WebKit, and introduces
        AuthKitSPI.h.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/AppSSOSoftLink.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm.
        * pal/cocoa/AppSSOSoftLink.mm: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm.
        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/cocoa/AuthKitSPI.h: Copied from Tools/TestWebKitAPI/Tests/WebKitCocoa/TestLoadOptimizer.mm.

2019-06-14  Jiewen Tan  <jiewen_tan@apple.com>

        Disable AppSSO for web processes and plugin processes
        https://bugs.webkit.org/show_bug.cgi?id=198843
        <rdar://problem/51642920>

        Reviewed by Sam Weinig.

        * pal/spi/cf/CFNetworkSPI.h:
        Adds a SPI to disable AppSSO for CFNetwork.

2019-06-12  Antoine Quint  <graouts@apple.com>

        Show the web page URL when sharing an AR model
        https://bugs.webkit.org/show_bug.cgi?id=198812
        <rdar://problem/48689498>

        Reviewed by Dean Jackson.

        * pal/spi/ios/SystemPreviewSPI.h:

2019-06-10  Sam Weinig  <weinig@apple.com>

        Remove Dashboard support
        https://bugs.webkit.org/show_bug.cgi?id=198615

        Reviewed by Ryosuke Niwa.

        * Configurations/FeatureDefines.xcconfig:

2019-06-10  Timothy Hatcher  <timothy@apple.com>

        Integrate dark mode support for iOS.
        https://bugs.webkit.org/show_bug.cgi?id=198687
        rdar://problem/51545643

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:
        * pal/spi/ios/UIKitSPI.h:

2019-06-08  Andy Estes  <aestes@apple.com>

        [Apple Pay] If we have a bound interface identifier, set it on new PKPaymentRequests
        https://bugs.webkit.org/show_bug.cgi?id=198690
        <rdar://problem/48041803>

        Reviewed by Tim Horton.

        * pal/spi/cocoa/PassKitSPI.h: Included PKPaymentRequest_WebKit.h to declare some
        WebKit-specific PKPaymentRequest SPIs for internal SDKs, and re-declared these SPIs - now
        including the boundInterfaceIdentifier property - for public SDKs.

2019-06-05  Alex Christensen  <achristensen@webkit.org>

        Progress towards resurrecting Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=197132

        Reviewed by Don Olmstead.

        * pal/PlatformMac.cmake:

2019-06-05  Wenson Hsieh  <wenson_hsieh@apple.com>

        Upstream content mode support into open source from WebKitAdditions
        https://bugs.webkit.org/show_bug.cgi?id=198484
        <rdar://problem/51355671>

        Reviewed by Andy Estes.

        Add some new constants to MobileGestaltSPI.h.

        * pal/spi/ios/MobileGestaltSPI.h:

2019-06-03  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Add WebKit::JavaScriptCore target
        https://bugs.webkit.org/show_bug.cgi?id=198403

        Reviewed by Konstantin Tokarev.

        Use the WebKit::JavaScriptCore target.

        * pal/CMakeLists.txt:

2019-05-29  Don Olmstead  <don.olmstead@sony.com>

        Remove ENABLE definitions from WebKit config files
        https://bugs.webkit.org/show_bug.cgi?id=197858

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2019-05-17  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Use builtin FindICU
        https://bugs.webkit.org/show_bug.cgi?id=197934

        Reviewed by Michael Catanzaro.

        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES.

        * pal/CMakeLists.txt:

2019-05-15  Simon Fraser  <simon.fraser@apple.com>

        Make LOG_WITH_STREAM more efficient
        https://bugs.webkit.org/show_bug.cgi?id=197905

        Reviewed by Alex Christensen.
        
        Make the LOG_WITH_STREAM macro check that the log channel is enabled before
        building the stream.

        * pal/LogMacros.h:

2019-05-10  Chris Dumez  <cdumez@apple.com>

        Add WKWebViewConfiguration._canShowWhileLocked SPI
        https://bugs.webkit.org/show_bug.cgi?id=197777
        <rdar://problem/50065100>

        Reviewed by Tim Horton.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2019-05-09  Daniel Bates  <dabates@apple.com>

        [iOS] Numpad comma key has incorrect keyIdentifier property
        https://bugs.webkit.org/show_bug.cgi?id=197753
        <rdar://problem/50636274>

        Reviewed by Brent Fulgham.

        Expose enumerator for Numpad Comma.

        * pal/spi/cocoa/IOKitSPI.h:

2019-05-08  Alex Christensen  <achristensen@webkit.org>

        Add SPI to set HSTS storage directory
        https://bugs.webkit.org/show_bug.cgi?id=197259

        Reviewed by Brady Eidson.

        * pal/spi/cf/CFNetworkSPI.h:

2019-05-07  Eric Carlson  <eric.carlson@apple.com>

        Define media buffering policy
        https://bugs.webkit.org/show_bug.cgi?id=196979
        <rdar://problem/28383861>

        Reviewed by Jer Noble.

        * pal/spi/mac/AVFoundationSPI.h:

2019-05-04  Alex Christensen  <achristensen@webkit.org>

        Revert r244953 and r244954 because they broke internal builds.
        https://bugs.webkit.org/show_bug.cgi?id=197534

        * pal/spi/ios/UIKitSPI.h:
        (currentUserInterfaceIdiomIsPad): Deleted.

2019-05-04  Alex Christensen  <achristensen@webkit.org>

        Fix internal build.
        https://bugs.webkit.org/show_bug.cgi?id=197534

        * pal/spi/ios/UIKitSPI.h:

2019-05-04  Alex Christensen  <achristensen@webkit.org>

        Merge the three UIKitSPI.h files into a single one in PAL
        https://bugs.webkit.org/show_bug.cgi?id=197534

        Reviewed by Darin Adler.

        * pal/spi/ios/UIKitSPI.h:
        (currentUserInterfaceIdiomIsPad):

2019-05-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r244881.
        https://bugs.webkit.org/show_bug.cgi?id=197559

        Breaks compilation of jsconly on linux, breaking compilation
        for jsc-i386-ews, jsc-mips-ews and jsc-armv7-ews (Requested by
        guijemont on #webkit).

        Reverted changeset:

        "[CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into
        WEBKIT_COPY_FILES"
        https://bugs.webkit.org/show_bug.cgi?id=197174
        https://trac.webkit.org/changeset/244881

2019-05-02  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into WEBKIT_COPY_FILES
        https://bugs.webkit.org/show_bug.cgi?id=197174

        Reviewed by Alex Christensen.

        Replace WEBKIT_MAKE_FORWARDING_HEADERS with WEBKIT_COPY_FILES.

        * pal/CMakeLists.txt:

2019-04-29  Alex Christensen  <achristensen@webkit.org>

        <rdar://problem/50299396> Fix internal High Sierra build
        https://bugs.webkit.org/show_bug.cgi?id=197388

        * Configurations/Base.xcconfig:

2019-04-26  Jessie Berlin  <jberlin@webkit.org>

        Add new mac target numbers
        https://bugs.webkit.org/show_bug.cgi?id=197313

        Reviewed by Alex Christensen.

        * Configurations/Version.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2019-04-26  Eric Carlson  <eric.carlson@apple.com>

        Create AVFoundationSoftLink.{h,mm} to reduce duplicate code
        https://bugs.webkit.org/show_bug.cgi?id=197171
        <rdar://problem/47454979>

        Reviewed by Youenn Fablet.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/AVFoundationSoftLink.h: Added.
        * pal/cocoa/AVFoundationSoftLink.mm: Added.

2019-04-25  Timothy Hatcher  <timothy@apple.com>

        Disable date and time inputs on iOSMac.
        https://bugs.webkit.org/show_bug.cgi?id=197287
        rdar://problem/46794376

        Reviewed by Wenson Hsieh.

        * Configurations/FeatureDefines.xcconfig:

2019-04-25  Alex Christensen  <achristensen@webkit.org>

        Start using C++17
        https://bugs.webkit.org/show_bug.cgi?id=197131

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig:

2019-04-25  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r244627.
        https://bugs.webkit.org/show_bug.cgi?id=197282

        Causing internal build failures (Requested by ShawnRoberts on
        #webkit).

        Reverted changeset:

        "Create AVFoundationSoftLink.{h,mm} to reduce duplicate code"
        https://bugs.webkit.org/show_bug.cgi?id=197171
        https://trac.webkit.org/changeset/244627

2019-04-24  Eric Carlson  <eric.carlson@apple.com>

        Create AVFoundationSoftLink.{h,mm} to reduce duplicate code
        https://bugs.webkit.org/show_bug.cgi?id=197171
        <rdar://problem/47454979>

        Reviewed by Youenn Fablet.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/AVFoundationSoftLink.h: Added.
        * pal/cocoa/AVFoundationSoftLink.mm: Added.

2019-04-24  Tim Horton  <timothy_horton@apple.com>

        Clean up WKActionSheetAssistant's use of LaunchServices
        https://bugs.webkit.org/show_bug.cgi?id=194645
        <rdar://problem/47707952>

        Reviewed by Andy Estes.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2019-04-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r244556.
        https://bugs.webkit.org/show_bug.cgi?id=197212

        Causing build failures on multiple builders (Requested by
        ShawnRoberts on #webkit).

        Reverted changeset:

        "Create AVFoundationSoftLink.{h,mm} to reduce duplicate code"
        https://bugs.webkit.org/show_bug.cgi?id=197171
        https://trac.webkit.org/changeset/244556

2019-04-23  Eric Carlson  <eric.carlson@apple.com>

        Create AVFoundationSoftLink.{h,mm} to reduce duplicate code
        https://bugs.webkit.org/show_bug.cgi?id=197171
        <rdar://problem/47454979>

        Reviewed by Youenn Fablet.

        * PAL.xcodeproj/project.pbxproj:
        * pal/cocoa/AVFoundationSoftLink.h: Added.
        * pal/cocoa/AVFoundationSoftLink.mm: Added.

2019-04-15  Don Olmstead  <don.olmstead@sony.com>

        [CMake] WebCore derived sources should only be referenced inside WebCore
        https://bugs.webkit.org/show_bug.cgi?id=196904

        Reviewed by Konstantin Tokarev.

        Specify PAL_DERIVED_SOURCES_DIR as a private include directory.

        * pal/CMakeLists.txt:
        * pal/PlatformWin.cmake:

2019-04-12  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Software keyboard is shown too frequently on some websites
        https://bugs.webkit.org/show_bug.cgi?id=195856
        <rdar://problem/49191395>

        Reviewed by Darin Adler.

        Declare new GraphicsServices SPI.

        * pal/spi/ios/GraphicsServicesSPI.h:

2019-04-10  Antoine Quint  <graouts@apple.com>

        Enable Pointer Events on watchOS
        https://bugs.webkit.org/show_bug.cgi?id=196771
        <rdar://problem/49040909>

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:

2019-04-09  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Apple builds should use ICU_INCLUDE_DIRS
        https://bugs.webkit.org/show_bug.cgi?id=196720

        Reviewed by Konstantin Tokarev.

        * pal/PlatformMac.cmake:

2019-04-08  Don Olmstead  <don.olmstead@sony.com>

        [CMake][WinCairo] Separate copied headers into different directories
        https://bugs.webkit.org/show_bug.cgi?id=196655

        Reviewed by Michael Catanzaro.

        * pal/CMakeLists.txt:

2019-04-08  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Fix Web GPU experimental feature on iOS
        https://bugs.webkit.org/show_bug.cgi?id=196632

        Reviewed by Myles C. Maxfield.

        Add feature conditionals for iOS 11.
        Properly make Web GPU available on iOS 11+.

        * Configurations/FeatureDefines.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig:

2019-04-03  Myles C. Maxfield  <mmaxfield@apple.com>

        -apple-trailing-word is needed for browser detection
        https://bugs.webkit.org/show_bug.cgi?id=196575

        Unreviewed.

        * Configurations/FeatureDefines.xcconfig:

2019-04-03  Ryosuke Niwa  <rniwa@webkit.org>

        Avoid the use of WTF_EXTERN_C_BEGIN in NSMenuSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=196566

        Reviewed by Timothy Hatcher.

        * pal/spi/mac/NSMenuSPI.h:

2019-04-03  Alex Christensen  <achristensen@webkit.org>

        Add SPI to disable legacy TLS fallback
        https://bugs.webkit.org/show_bug.cgi?id=196549
        <rdar://44979744>

        Reviewed by Geoffrey Garen.

        * pal/spi/cf/CFNetworkSPI.h:

2019-04-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Remove support for -apple-trailing-word
        https://bugs.webkit.org/show_bug.cgi?id=196525

        Reviewed by Zalan Bujtas.

        This CSS property is nonstandard and not used.

        * Configurations/FeatureDefines.xcconfig:

2019-03-31  Sam Weinig  <weinig@apple.com>

        Remove more i386 specific configurations
        https://bugs.webkit.org/show_bug.cgi?id=196430

        Reviewed by Alexey Proskuryakov.

        * Configurations/FeatureDefines.xcconfig:
        ENABLE_WEB_AUTHN_macosx can now be enabled unconditionally on macOS.

2019-03-29  Myles C. Maxfield  <mmaxfield@apple.com>

        Delete WebMetal implementation in favor of WebGPU
        https://bugs.webkit.org/show_bug.cgi?id=195418

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:

2019-03-29  Cathie Chen  <cathiechen@igalia.com>

        Implement ResizeObserver.
        https://bugs.webkit.org/show_bug.cgi?id=157743

        Reviewed by Simon Fraser.

        Add ENABLE_RESIZE_OBSERVER.

        * Configurations/FeatureDefines.xcconfig:

2019-03-25  Gyuyoung Kim  <gyuyoung.kim@webkit.org>

        Remove NavigatorContentUtils in WebCore/Modules
        https://bugs.webkit.org/show_bug.cgi?id=196070

        Reviewed by Alex Christensen.

        NavigatorContentUtils was to support the custom scheme spec [1].
        However, in WebKit side, no port has supported the feature in
        WebKit layer after EFL port was removed. So there has been the
        only IDL implementation of the NavigatorContentUtils in WebCore.
        So we don't need to keep the implementation in WebCore anymore.

        [1] https://html.spec.whatwg.org/multipage/system-state.html#custom-handlers

        * Configurations/FeatureDefines.xcconfig:

2019-03-23  Andy Estes  <aestes@apple.com>

        [Apple Pay] Stop calling PKPaymentAuthorizationViewController class methods on iOS
        https://bugs.webkit.org/show_bug.cgi?id=196163
        <rdar://problem/48787564>

        Reviewed by Anders Carlsson.

        * pal/spi/cocoa/PassKitSPI.h:

2019-03-22  Keith Rollin  <krollin@apple.com>

        Enable ThinLTO support in Production builds
        https://bugs.webkit.org/show_bug.cgi?id=190758
        <rdar://problem/45413233>

        Reviewed by Daniel Bates.

        Enable building with Thin LTO in Production when using Xcode 10.2 or
        later. This change results in a 1.45% progression in PLT5. Full
        Production build times increase about 2-3%. Incremental build times
        are more severely affected, and so LTO is not enabled for local
        engineering builds.

        LTO is enabled only on macOS for now, until rdar://problem/49013399,
        which affects ARM builds, is fixed.

        Removed the conditionals that disabled LTO on 32-bit systems since we
        no longer build for those.

        To change the LTO setting when building locally:

        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
          command line.
        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
          on the command line.
        - If building with `build-root`, specify --lto={none,thin,full} on the
          command line.
        - If building with Xcode, create a LocalOverrides.xcconfig file at the
          top level of your repository directory (if needed) and define
          WK_LTO_MODE to full, thin, or none.

        * Configurations/Base.xcconfig:

2019-03-22  Timothy Hatcher  <timothy@apple.com>

        Change macosx() to macos() in WK_API... and JSC_API... macros.
        https://bugs.webkit.org/show_bug.cgi?id=196106

        Reviewed by Brian Burg.

        * pal/spi/cocoa/NSTouchBarSPI.h:

2019-03-20  Simon Fraser  <simon.fraser@apple.com>

        Rename ENABLE_ACCELERATED_OVERFLOW_SCROLLING macro to ENABLE_OVERFLOW_SCROLLING_TOUCH
        https://bugs.webkit.org/show_bug.cgi?id=196049

        Reviewed by Tim Horton.

        This macro is about the -webkit-overflow-scrolling CSS property, not accelerated
        overflow scrolling in general, so rename it.

        * Configurations/FeatureDefines.xcconfig:

2019-03-19  Ross Kirsling  <ross.kirsling@sony.com>

        Unreviewed adjustment to r242842 per Darin's request.

        * pal/win/LoggingWin.cpp:
        (PAL::logLevelString):

2019-03-14  Brent Fulgham  <bfulgham@apple.com>

        Move CoreCrypto SPI declarations to an appropriate PAL/spi header
        https://bugs.webkit.org/show_bug.cgi?id=195754
        <rdar://problem/48591957>

        Reviewed by Jiewen Tan.

        Move the forward declarations of various CoreCrypto SPI to an appropriate PAL/spi header.
        Update the const correctness of one function call to match new SDK declaration.

        No tests because there are no changes in behavior.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/CommonCryptoSPI.h: Copied from Source/WebCore/crypto/CommonCryptoUtilities.h.

2019-03-14  Shawn Roberts  <sroberts@apple.com>

        Unreviewed, rolling out r242981.

        Causing internal build failures on watch/tv OS

        Reverted changeset:

        "Move CoreCrypto SPI declarations to an appropriate PAL/spi
        header"
        https://bugs.webkit.org/show_bug.cgi?id=195754
        https://trac.webkit.org/changeset/242981

2019-03-14  Brent Fulgham  <bfulgham@apple.com>

        Move CoreCrypto SPI declarations to an appropriate PAL/spi header
        https://bugs.webkit.org/show_bug.cgi?id=195754
        <rdar://problem/48591957>

        Reviewed by Jiewen Tan.

        Move the forward declarations of various CoreCrypto SPI to an appropriate PAL/spi header.
        Update the const correctness of one function call to match new SDK declaration.

        No tests because there are no changes in behavior.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/CommonCryptoSPI.h: Copied from Source/WebCore/crypto/CommonCryptoUtilities.h.

2019-03-14  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r242963.

        Breaks watchOS build.

        Reverted changeset:

        "Move CommonCrypto SPI declarations to an appropriate PAL/spi
        header"
        https://bugs.webkit.org/show_bug.cgi?id=195754
        https://trac.webkit.org/changeset/242963

2019-03-14  Brent Fulgham  <bfulgham@apple.com>

        Move CommonCrypto SPI declarations to an appropriate PAL/spi header
        https://bugs.webkit.org/show_bug.cgi?id=195754
        <rdar://problem/48591957>

        Reviewed by Jiewen Tan.

        Move the forward declarations of various CommonCrypto SPI to an appropriate PAL/spi header.
        Update the const correctness of one function call to match new SDK declaration.

        No tests because there are no changes in behavior.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/CommonCryptoSPI.h: Copied from Source/WebCore/crypto/CommonCryptoUtilities.h.

2019-03-13  Keith Rollin  <krollin@apple.com>

        Add support for new StagedFrameworks layout
        https://bugs.webkit.org/show_bug.cgi?id=195543

        Reviewed by Alexey Proskuryakov.

        When creating the WebKit layout for out-of-band Safari/WebKit updates,
        use an optional path prefix when called for.

        * Configurations/PAL.xcconfig:

2019-03-12  Ross Kirsling  <ross.kirsling@sony.com>

        [Win] Fix a slew of simple clang-cl warnings.
        https://bugs.webkit.org/show_bug.cgi?id=195652

        Reviewed by Don Olmstead.

        * pal/win/LoggingWin.cpp:
        (PAL::logLevelString): -Wwritable-strings

2019-03-12  Timothy Hatcher  <timothy@apple.com>

        Expose document attributes and body background color through HTMLConverter.
        https://bugs.webkit.org/show_bug.cgi?id=195636
        rdar://problem/45055697

        Reviewed by Tim Horton.

        * pal/spi/cocoa/NSAttributedStringSPI.h:
        (NSBackgroundColorDocumentAttribute): Added.

2019-03-12  Jennifer Moore  <jennifer.moore@apple.com>

        Check whether to launch a default action instead of action sheet
        https://bugs.webkit.org/show_bug.cgi?id=195225
        <rdar://problem/47715544>

        Reviewed by Daniel Bates.

        Add new SPI declarations.

        * pal/spi/ios/DataDetectorsUISPI.h:

2019-03-11  Ross Kirsling  <ross.kirsling@sony.com>

        Add Optional to Forward.h.
        https://bugs.webkit.org/show_bug.cgi?id=195586

        Reviewed by Darin Adler.

        * pal/crypto/tasn1/Utilities.cpp:
        * pal/crypto/tasn1/Utilities.h:
        Remove unnecessary includes from headers.

2019-03-11  Andy Estes  <aestes@apple.com>

        [Apple Pay] Use PKPaymentAuthorizationController to present the Apple Pay UI remotely from the Networking service on iOS
        https://bugs.webkit.org/show_bug.cgi?id=195530
        <rdar://problem/48747164>

        Reviewed by Alex Christensen.

        * pal/cocoa/PassKitSoftLink.h: Soft-linked PKPaymentAuthorizationController on iOS.
        * pal/cocoa/PassKitSoftLink.mm: Ditto.
        * pal/spi/cocoa/PassKitSPI.h: Declared PKPaymentAuthorizationControllerPrivateDelegate and
        related SPI.

2019-03-11  Alex Christensen  <achristensen@webkit.org>

        Soft linking to Reveal framework should be optional
        https://bugs.webkit.org/show_bug.cgi?id=195576
        <rdar://problem/46822452>

        Reviewed by Megan Gardner.

        * pal/spi/cocoa/RevealSPI.h:

2019-03-07  Andy Estes  <aestes@apple.com>

        [Apple Pay] Untangle PKPaymentAuthorizationViewController from WebPaymentCoordinatorProxy
        https://bugs.webkit.org/show_bug.cgi?id=195349
        <rdar://problem/48625510>

        Reviewed by Alex Christensen.

        Moved soft-linking of PKPaymentErrorDomain from WebPaymentCoordinatorProxy to here and used
        a more descriptive platform macro.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/cocoa/PassKitSoftLink.mm:

2019-03-01  Conrad Shultz  <conrad_shultz@apple.com>

        Improper use of PLATFORM(TVOS) in PAL
        https://bugs.webkit.org/show_bug.cgi?id=195215

        Reviewed by Darin Adler.

        There are a couple stray uses of PLATFORM(TVOS) in PAL. The correct usage is
        PLATFORM(APPLETV).

        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        * pal/spi/cocoa/NSProgressSPI.h:

2019-03-03  Tim Horton  <timothy_horton@apple.com>

        Remove some more unused 32-bit code
        https://bugs.webkit.org/show_bug.cgi?id=195255

        Reviewed by Darin Adler.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/spi/cocoa/IOKitSPI.h:
        * pal/spi/mac/QuickDrawSPI.h: Removed.

2019-03-01  Justin Fan  <justin_fan@apple.com>

        [Web GPU] 32-bit builds broken by attempt to disable WebGPU on 32-bit
        https://bugs.webkit.org/show_bug.cgi?id=195191

        Rubber-stamped by Dean Jackson.

        Dropping support for 32-bit entirely, so I'm intentionally leaving 32-bit broken.

        * Configurations/FeatureDefines.xcconfig:

2019-02-28  Justin Fan  <justin_fan@apple.com>

        [Web GPU] Enable Web GPU only on 64-bit
        https://bugs.webkit.org/show_bug.cgi?id=195139

        Because Metal is only supported on 64 bit apps.

        Unreviewed build fix.

        * Configurations/FeatureDefines.xcconfig:

2019-02-27  Antoine Quint  <graouts@apple.com>

        Support Pointer Events on macOS
        https://bugs.webkit.org/show_bug.cgi?id=195008
        <rdar://problem/47454419>

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:

2019-02-23  Keith Miller  <keith_miller@apple.com>

        Add new mac target numbers
        https://bugs.webkit.org/show_bug.cgi?id=194955

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:

2019-02-20  Daniel Bates  <dabates@apple.com>

        Attempt to fix the Apple Internal build following r241828
        (https://trac.webkit.org/changeset/241828/webkit)

        Conditionally include a private header.

        * pal/spi/ios/UIKitSPI.h:

2019-02-20  Daniel Bates  <dabates@apple.com>

        [iOS] Tweak UI for focus rings
        https://bugs.webkit.org/show_bug.cgi?id=194864
        <rdar://problem/47831886>

        Reviewed by Brent Fulgham.

        Expose more SPI.

        * pal/ios/UIKitSoftLink.h:
        * pal/ios/UIKitSoftLink.mm:
        * pal/spi/ios/UIKitSPI.h:

2019-02-20  Timothy Hatcher  <timothy@apple.com>

        RenderThemeIOS should use RenderTheme's color cache instead of its own.
        https://bugs.webkit.org/show_bug.cgi?id=194822
        rdar://problem/48208296

        Reviewed by Tim Horton.

        * pal/ios/UIKitSoftLink.h:
        * pal/ios/UIKitSoftLink.mm:
        * pal/spi/ios/UIKitSPI.h:

2019-02-16  Darin Adler  <darin@apple.com>

        Continue reducing use of String::format, now focusing on hex: "%p", "%x", etc.
        https://bugs.webkit.org/show_bug.cgi?id=194752

        Reviewed by Daniel Bates.

        * pal/FileSizeFormatter.cpp:
        (fileSizeDescription): Use makeString instead of String::format.

2019-02-18  Daniel Bates  <dabates@apple.com>

        [iOS] Keyups for non-modifier keys identified as "Dead" when not focused in a content-editable element
        https://bugs.webkit.org/show_bug.cgi?id=192824
        <rdar://problem/47100332>

        Reviewed by Wenson Hsieh.

        Expose more enumerators.

        * pal/spi/cocoa/IOKitSPI.h:

2019-02-17  David Kilzer  <ddkilzer@apple.com>

        Unreviewed, rolling out r241620.

        "Causes use-after-free crashes running layout tests with ASan and GuardMalloc."
        (Requested by ddkilzer on #webkit.)

        Reverted changeset:

        "[WTF] Add environment variable helpers"
        https://bugs.webkit.org/show_bug.cgi?id=192405
        https://trac.webkit.org/changeset/241620

2019-02-15  Ross Kirsling  <ross.kirsling@sony.com>

        [WTF] Add environment variable helpers
        https://bugs.webkit.org/show_bug.cgi?id=192405

        Reviewed by Michael Catanzaro.

        * pal/unix/LoggingUnix.cpp:
        (PAL::logLevelString):
        * pal/win/LoggingWin.cpp:
        (PAL::logLevelString):
        Utilize WTF::Environment where possible.

2019-02-15  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r241559 and r241566.
        https://bugs.webkit.org/show_bug.cgi?id=194710

        Causes layout test crashes under GuardMalloc (Requested by
        ryanhaddad on #webkit).

        Reverted changesets:

        "[WTF] Add environment variable helpers"
        https://bugs.webkit.org/show_bug.cgi?id=192405
        https://trac.webkit.org/changeset/241559

        "Unreviewed build fix for WinCairo Debug after r241559."
        https://trac.webkit.org/changeset/241566

2019-02-14  Ross Kirsling  <ross.kirsling@sony.com>

        [WTF] Add environment variable helpers
        https://bugs.webkit.org/show_bug.cgi?id=192405

        Reviewed by Michael Catanzaro.

        * pal/unix/LoggingUnix.cpp:
        (PAL::logLevelString):
        * pal/win/LoggingWin.cpp:
        (PAL::logLevelString):
        Utilize WTF::Environment where possible.

2019-02-12  Chris Fleizach  <cfleizach@apple.com>

        AX: IsolatedTree: Implement more attributes
        https://bugs.webkit.org/show_bug.cgi?id=193911
        <rdar://problem/47599217>

        Reviewed by Daniel Bates.

        * pal/spi/mac/HIServicesSPI.h:

2019-02-12  Andy Estes  <aestes@apple.com>

        [iOSMac] Enable Parental Controls Content Filtering
        https://bugs.webkit.org/show_bug.cgi?id=194521
        <rdar://39732376>

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2019-02-11  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix; add a HAVE_CELESTIAL guard around the CelestialSPI.h contents.

        * pal/spi/ios/CelestialSPI.h:

2019-02-12  Michael Catanzaro  <mcatanzaro@igalia.com>

        [WPE][GTK] Sleep disabler code should inhibit idle when a "System" sleep disabler is requested
        https://bugs.webkit.org/show_bug.cgi?id=194500

        Reviewed by Carlos Garcia Campos.

        There are three things wrong with the comment at the top of SleepDisablerGLib's constructor:

        (1) Nowadays, GNOME suspends the computer automatically on inactivity, and we actually do
            want to prevent that.

        (2) Inhibiting idle does affect the autosuspend countdown. So the current code should
            prevent automatic suspend, just not manual suspend. (I think I stand by my comment that
            we do not want to inhibit normal suspend, since that would just be annoying.)

        (3) I don't know why I thought HTMLMediaElement::shouldDisableSleep was suspicious.

        Anyway, the behavior we want is to ignore the Type argument and just always inhibit idle.
        That is, treat type=System the same way we current treat type=Display.

        * pal/system/glib/SleepDisablerGLib.cpp:
        (PAL::SleepDisablerGLib::SleepDisablerGLib):

2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Ask platform for generic font family mappings
        https://bugs.webkit.org/show_bug.cgi?id=187723
        <rdar://problem/41892438>

        Reviewed by Brent Fulgham.

        * pal/spi/cocoa/CoreTextSPI.h:

2019-02-11  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Notify AVSystemController of our presenting PID before registering as a Now Playing app.
        https://bugs.webkit.org/show_bug.cgi?id=194504

        Reviewed by Eric Carlson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/ios/CelestialSPI.h: Renamed from Source/WebKit/Platform/spi/ios/CelestialSPI.h.

2019-02-11  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r241229.

        Revision broke internal builds for watchOS.

        Reverted changeset:

        "[Cocoa] Ask platform for generic font family mappings"
        https://bugs.webkit.org/show_bug.cgi?id=187723
        https://trac.webkit.org/changeset/241229

2019-02-08  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Ask platform for generic font family mappings
        https://bugs.webkit.org/show_bug.cgi?id=187723
        <rdar://problem/41892438>

        Reviewed by Brent Fulgham.

        * pal/spi/cocoa/CoreTextSPI.h:

2019-02-07  Chris Dumez  <cdumez@apple.com>

        Mark more heap-allocated classes as fast allocated
        https://bugs.webkit.org/show_bug.cgi?id=194422

        Reviewed by Ryosuke Niwa.

        * pal/crypto/openssl/CryptoDigestOpenSSL.cpp:
        * pal/system/Clock.h:

2019-02-05  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r240742.

        Causes crashes on iOS simulator.

        Reverted changeset:

        "[iOS] Keyups for non-modifier keys identified as "Dead" when
        not focused in a content-editable element"
        https://bugs.webkit.org/show_bug.cgi?id=192824
        https://trac.webkit.org/changeset/240742

2018-12-16  Darin Adler  <darin@apple.com>

        Convert additional String::format clients to alternative approaches
        https://bugs.webkit.org/show_bug.cgi?id=192746

        Reviewed by Alexey Proskuryakov.

        * pal/FileSizeFormatter.cpp:
        (fileSizeDescription): Use makeString and FormattedNumber.

2019-02-01  David Kilzer  <ddkilzer@apple.com>

        Move soft-linking of TelephonyUtilities.framework out of TUCallSPI.h
        <https://webkit.org/b/193866>

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        - Update for rename of TUCallSPI.h to TelephonyUtilitiesSPI.h.

        * pal/spi/mac/TelephonyUtilitiesSPI.h: Rename from Source/WebCore/PAL/pal/spi/mac/TUCallSPI.h.
        - Remove soft-linking code from header.

2019-01-30  Daniel Bates  <dabates@apple.com>

        [iOS] Keyups for non-modifier keys identified as "Dead" when not focused in a content-editable element
        https://bugs.webkit.org/show_bug.cgi?id=192824
        <rdar://problem/47100332>

        Reviewed by Wenson Hsieh.

        Expose more enumerators.

        * pal/spi/cocoa/IOKitSPI.h:

2019-01-28  Andy Estes  <aestes@apple.com>

        [watchOS] Enable Parental Controls content filtering
        https://bugs.webkit.org/show_bug.cgi?id=193939
        <rdar://problem/46641912>

        Reviewed by Ryosuke Niwa.

        * Configurations/FeatureDefines.xcconfig:

2019-01-27  Chris Fleizach  <cfleizach@apple.com>

        AX: Introduce isolated accessibility tree
        https://bugs.webkit.org/show_bug.cgi?id=193348
        <rdar://problem/47203295>

        Reviewed by Ryosuke Niwa.

        * Configurations/FeatureDefines.xcconfig:

2019-01-25  Alex Christensen  <achristensen@webkit.org>

        Move logic from ChildProcess::setApplicationIsDaemon to NetworkProcess::initializeProcess
        https://bugs.webkit.org/show_bug.cgi?id=193844

        Reviewed by Andy Estes.

        * pal/spi/mac/HIServicesSPI.h:

2019-01-25  David Kilzer  <ddkilzer@apple.com>

        Move soft-linking of Lookup.framework out of LookupSPI.h
        <https://webkit.org/b/193815>

        Reviewed by Tim Horton.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        - Add LookupSoftLink.{h,mm} files to the project.

        * pal/ios/UIKitSoftLink.h:
        * pal/ios/UIKitSoftLink.mm:
        - Change SOFT_LINK_VARIABLE_FOR_HEADER() to
          SOFT_LINK_CONSTANT_FOR_HEADER() for
          UIAccessibilityAnnouncementNotification constant.

        * pal/mac/LookupSoftLink.h: Copied from Source/WebCore/PAL/pal/spi/mac/LookupSPI.h.
        * pal/mac/LookupSoftLink.mm: Copied from Source/WebCore/PAL/pal/spi/mac/LookupSPI.h.
        - Migrate soft-linking from LookupSPI.h to here.

        * pal/spi/mac/LookupSPI.h:
        - Replace soft-linking of Lookup.framework with
          LookupSoftLink.h.

2019-01-24  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Silence MediaPlayer compile warnings
        https://bugs.webkit.org/show_bug.cgi?id=193780
        <rdar://problem/47518428>

        Reviewed by Jer Noble.

        * pal/spi/ios/MediaPlayerSPI.h:

2019-01-24  Ross Kirsling  <ross.kirsling@sony.com>

        Move FileSystem to WTF
        https://bugs.webkit.org/show_bug.cgi?id=193602

        Reviewed by Yusuke Suzuki.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:

2019-01-24  David Kilzer  <ddkilzer@apple.com>

        Follow-up #2: Override the session configuration for cookieAcceptPolicy
        <https://bugs.webkit.org/show_bug.cgi?id=190925>
        <rdar://problem/45497382>

        * pal/spi/cf/CFNetworkSPI.h: Protect Objective-C code using
        defined(__OBJC__) macro.

2019-01-23  David Kilzer  <ddkilzer@apple.com>

        Switch remaining CoreMedia soft-linking in WebKit over to CoreMediaSoftLink.{cpp,h}
        <https://webkit.org/b/193694>
        <rdar://problem/47464025>

        Reviewed by Tim Horton.

        * pal/cf/CoreMediaSoftLink.cpp:
        - Export kCMTimeZero soft-link.
        * pal/cf/CoreMediaSoftLink.h:
        - Update kCMTimeZero macro to use PAL namespace for use in
          WebKit.framework.

2019-01-22  David Kilzer  <ddkilzer@apple.com>

        Switch remaining QuickLook soft-linking in WebCore, WebKit over to QuickLookSoftLink.{cpp,h}
        <https://webkit.org/b/193654>
        <rdar://problem/47430290>

        Reviewed by Alex Christensen.

        - Moves QuickLookSoftLink.{h,mm} to PAL.
        - Adds soft-link to 3 classes to consolidate QuickLook.framework
          soft-linking.
        - Updates existing source to work with above changes.

        * PAL.xcodeproj/project.pbxproj:
        - Add QuickLookSoftLink.{h,mm} due to move from WebCore.

        * pal/ios/QuickLookSoftLink.h: Renamed from Source/WebCore/platform/ios/QuickLookSoftLink.h.
        * pal/ios/QuickLookSoftLink.mm: Renamed from Source/WebCore/platform/ios/QuickLookSoftLink.mm.
        - Add 3 classes for soft-linking.
        - Change namespace from WebCore to PAL.

2019-01-21  David Kilzer  <ddkilzer@apple.com>

        Sort PAL Xcode project file

        * PAL.xcodeproj/project.pbxproj:

2019-01-12  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Avoid importing directly from subumbrella frameworks
        https://bugs.webkit.org/show_bug.cgi?id=186016
        <rdar://problem/40591038>

        Reviewed by Sam Weinig.

        * Configurations/PAL.xcconfig: Removed -iframework options from OTHER_CFLAGS and
          OTHER_CPLUSPLUSFLAGS.
        * pal/spi/cg/CoreGraphicsSPI.h: Import ApplicationServices.h instead of ColorSync.h
          when using SDKs earlier than 10.13.
        * pal/spi/mac/HIToolboxSPI.h: Import CarbonPriv.h instead of HIToolboxPriv.h.
        * pal/spi/mac/QuickLookMacSPI.h: Import Quartz.h instead of a QuickLookUI header.

2019-01-20  Antoine Quint  <graouts@apple.com>

        Add a POINTER_EVENTS feature flag
        https://bugs.webkit.org/show_bug.cgi?id=193577
        <rdar://problem/47408511>

        Unreviewed. Also enable Pointer Events for iosmac.

        * Configurations/FeatureDefines.xcconfig:

2019-01-19  Antoine Quint  <graouts@apple.com>

        Add a POINTER_EVENTS feature flag
        https://bugs.webkit.org/show_bug.cgi?id=193577

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:

2019-01-18  David Kilzer  <ddkilzer@apple.com>

        [PAL] Change Xcode folders to map to folders on disk

        Found by tidy-Xcode-project-file script (see Bug 188754).

        * PAL.xcodeproj/project.pbxproj: Update these folders:
        - pal/avfoundation
        - pal/crypto/commoncrypto
        - pal/ios

2019-01-18  David Kilzer  <ddkilzer@apple.com>

        Follow-up: Override the session configuration for cookieAcceptPolicy
        <https://bugs.webkit.org/show_bug.cgi?id=190925>
        <rdar://problem/45497382>

        Discussed with John Wilander.

        * pal/spi/cf/CFNetworkSPI.h: Declare new SPI for the internal
        macOS 10.12 Sierra SDK since it will never appear in those
        headers.  This fixes the build for trunk WebKit on Sierra.

2019-01-18  Tim Horton  <timothy_horton@apple.com>

        Get rid of ADVANCED_SPELL_CHECKING
        https://bugs.webkit.org/show_bug.cgi?id=193592

        Reviewed by Wenson Hsieh.

        * pal/spi/mac/NSSpellCheckerSPI.h:
        It's always true on macOS, and all but one use of it is already inside PLATFORM(MAC)

2019-01-18  Jer Noble  <jer.noble@apple.com>

        SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
        https://bugs.webkit.org/show_bug.cgi?id=189553

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/PAL.xcconfig:
        * Configurations/SDKVariant.xcconfig: Added.

2019-01-18  Daniel Bates  <dabates@apple.com>

        CSS auto focus-ring outlines don't render on iOS
        https://bugs.webkit.org/show_bug.cgi?id=193583
        <rdar://problem/6508697>

        Reviewed by Simon Fraser.

        Forward declare some IPI.

        * pal/spi/ios/UIKitSPI.h:

2019-01-18  David Kilzer  <ddkilzer@apple.com>

        Switch remaining UIKit soft-linking in WebCore, WebKitLegacy over to UIKitSoftLink.{cpp,h}
        <https://webkit.org/b/193568>
        <rdar://problem/47381130>

        Reviewed by Alex Christensen.

        * pal/ios/UIKitSoftLink.h:
        * pal/ios/UIKitSoftLink.mm:
        - Add constants, classes and functions that were previously
          soft-linked in separate source files.
        - UIAccessibilityAnnouncementNotification is declared as a
          variable because this constant is not marked as `const` in
          UIKit.
        * pal/spi/ios/UIKitSPI.h:
        - Move SPI declarations from HTMLConverter.mm to here.

2019-01-17  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r240124.

        This commit broke an internal build.

        Reverted changeset:

        "SDK_VARIANT build destinations should be separate from non-
        SDK_VARIANT builds"
        https://bugs.webkit.org/show_bug.cgi?id=189553
        https://trac.webkit.org/changeset/240124

2019-01-17  Tim Horton  <timothy_horton@apple.com>

        Adopt NSTextCheckingSuppressInitialCapitalizationKey
        https://bugs.webkit.org/show_bug.cgi?id=193545

        Reviewed by Dean Jackson.

        * pal/spi/mac/NSSpellCheckerSPI.h:

2019-01-17  Jer Noble  <jer.noble@apple.com>

        SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
        https://bugs.webkit.org/show_bug.cgi?id=189553

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/PAL.xcconfig:
        * Configurations/SDKVariant.xcconfig: Added.

2019-01-16  Tim Horton  <timothy_horton@apple.com>

        Unreviewed build fix.

        * pal/spi/ios/UIKitSPI.h:
        I don't even.

2019-01-16  Megan Gardner  <megan_gardner@apple.com>

        Build fix for iOSMac Reveal
        https://bugs.webkit.org/show_bug.cgi?id=193503

        Unreviewed build fix.

        * pal/spi/ios/UIKitSPI.h:

2019-01-15  Megan Gardner  <megan_gardner@apple.com>

        Add Reveal support in iOSMac
        https://bugs.webkit.org/show_bug.cgi?id=193408
        <rdar://problem/47300699>

        Reviewed by Tim Horton.

        Add additional needed SPI.

        * pal/spi/cocoa/RevealSPI.h:

2019-01-15  Tim Horton  <timothy_horton@apple.com>

        Cannot tab out of WKWebView on macOS
        https://bugs.webkit.org/show_bug.cgi?id=161448
        <rdar://problem/28100085>

        Reviewed by Dean Jackson.

        * pal/spi/mac/NSViewSPI.h:
        * pal/spi/mac/NSWindowSPI.h:
        Move some SPI declarations in here from WebKitLegacy.

2019-01-14  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r239901, r239909, r239910, r239912,
        r239913, and r239914.
        https://bugs.webkit.org/show_bug.cgi?id=193407

        These revisions caused an internal failure (Requested by
        Truitt on #webkit).

        Reverted changesets:

        "[Cocoa] Avoid importing directly from subumbrella frameworks"
        https://bugs.webkit.org/show_bug.cgi?id=186016
        https://trac.webkit.org/changeset/239901

        "Tried to fix USE(APPLE_INTERNAL_SDK) builds after r239901."
        https://trac.webkit.org/changeset/239909

        "Tried to fix the build."
        https://trac.webkit.org/changeset/239910

        "Fixed iOS builds after r239910."
        https://trac.webkit.org/changeset/239912

        "More build fixing."
        https://trac.webkit.org/changeset/239913

        "Tried to fix USE(APPLE_INTERNAL_SDK) 32-bit builds."
        https://trac.webkit.org/changeset/239914

2019-01-14  Mark Lam  <mark.lam@apple.com>

        Re-enable ability to build --cloop builds.
        https://bugs.webkit.org/show_bug.cgi?id=192955
        <rdar://problem/46882363>

        Reviewed by Saam barati and Keith Miller.

        * Configurations/FeatureDefines.xcconfig:

2019-01-13  Dan Bernstein  <mitz@apple.com>

        Tried to fix USE(APPLE_INTERNAL_SDK) 32-bit builds.

        * pal/spi/mac/QuickDrawSPI.h:

2019-01-13  Dan Bernstein  <mitz@apple.com>

        Tried to fix USE(APPLE_INTERNAL_SDK) builds after r239901.

        Patch by Keith Rollin.

        * pal/spi/cocoa/LaunchServicesSPI.h:
        * pal/spi/mac/HIServicesSPI.h:
        * pal/spi/mac/MetadataSPI.h:
        * pal/spi/mac/SpeechSynthesisSPI.h:

2019-01-12  Timothy Hatcher  <timothy@apple.com>

        Have prefers-color-scheme: light always match on macOS versions before Mojave.
        https://bugs.webkit.org/show_bug.cgi?id=191655
        rdar://problem/46074680

        Reviewed by Megan Gardner.

        * Configurations/FeatureDefines.xcconfig: ENABLE_DARK_MODE_CSS_macosx for all OS versions.

2019-01-12  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Avoid importing directly from subumbrella frameworks
        https://bugs.webkit.org/show_bug.cgi?id=186016
        <rdar://problem/40591038>

        Reviewed by Sam Weinig.

        * Configurations/PAL.xcconfig: Removed -iframework options from OTHER_CFLAGS and
          OTHER_CPLUSPLUSFLAGS.
        * pal/spi/cg/CoreGraphicsSPI.h: Import ApplicationServices.h instead of ColorSync.h
          when using SDKs earlier than 10.13.
        * pal/spi/mac/HIToolboxSPI.h: Import CarbonPriv.h instead of HIToolboxPriv.h.
        * pal/spi/mac/QuickLookMacSPI.h: Import Quartz.h instead of a QuickLookUI header.

2019-01-11  John Wilander  <wilander@apple.com>

        Compile out Web API Statistics Collection
        https://bugs.webkit.org/show_bug.cgi?id=193370
        <rdar://problem/45388584>

        Reviewed by Brent Fulgham.

        * Configurations/FeatureDefines.xcconfig:
            Defined ENABLE_WEB_API_STATISTICS, off by default.

2019-01-11  Devin Rousso  <drousso@apple.com>

        Fix style CFNetworkSPI style checker warnings from r239698
        https://bugs.webkit.org/show_bug.cgi?id=193369

        Reviewed by Joseph Pecoraro.

        * pal/spi/cf/CFNetworkSPI.h:

2019-01-10  John Wilander  <wilander@apple.com>

        Override the session configuration for cookieAcceptPolicy
        https://bugs.webkit.org/show_bug.cgi?id=190925
        <rdar://problem/45497382>

        Reviewed by Alexey Proskuryakov and Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:
            Declaration of _overrideSessionCookieAcceptPolicy on NSHTTPCookieStorage.

2019-01-07  Devin Rousso  <drousso@apple.com>

        Web Inspector: Network: show secure connection details per-request
        https://bugs.webkit.org/show_bug.cgi?id=191539
        <rdar://problem/45979891>

        Reviewed by Joseph Pecoraro.

        * pal/spi/cf/CFNetworkSPI.h:

2019-01-04  Jer Noble  <jer.noble@apple.com>

        Web Content process main thread blocked beneath ImageDecoderAVFObjC::readSamples for many seconds on imgur.com
        https://bugs.webkit.org/show_bug.cgi?id=191806
        <rdar://problem/46151477>

        Reviewed by Dean Jackson.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:

2018-12-27  Alex Christensen  <achristensen@webkit.org>

        Resurrect Mac CMake build
        https://bugs.webkit.org/show_bug.cgi?id=192658

        Reviewed by Yusuke Suzuki.

        * pal/PlatformMac.cmake:

2018-12-21  Eric Carlson  <eric.carlson@apple.com>

        'ended' Event doesn't fire on MediaStreamTrack when a USB camera is unplugged
        https://bugs.webkit.org/show_bug.cgi?id=187896
        <rdar://problem/42681445>

        Reviewed by Jer Noble.

        * pal/spi/cf/CoreAudioSPI.h:

2018-12-19  Chris Dumez  <cdumez@apple.com>

        wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
        https://bugs.webkit.org/show_bug.cgi?id=192728
        <rdar://problem/46746779>

        Reviewed by Geoff Garen.

        * pal/*:

2018-12-17  Saam barati  <sbarati@apple.com>

        Enable HTTP and HTTPS proxies on iOS and make it a property of the NSURLSession
        https://bugs.webkit.org/show_bug.cgi?id=192374
        <rdar://problem/46506286>

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:
        Remove the now-unused SPI declaration.

2018-12-17  Simon Fraser  <simon.fraser@apple.com>

        Don't use more expensive layer backing store formats when subpixel text antialiasing is not enabled
        https://bugs.webkit.org/show_bug.cgi?id=192780
        rdar://problem/43394387

        Reviewed by Tim Horton.

        Add CGFontRenderingGetFontSmoothingDisabled().

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-12-17  Daniel Bates  <dabates@apple.com>

        Implement UIScriptController::toggleCapsLock() for iOS
        https://bugs.webkit.org/show_bug.cgi?id=191815

        Reviewed by Andy Estes.

        Add HID usage enumerator for the Caps Lock key.

        * pal/spi/cocoa/IOKitSPI.h:

2018-12-17  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r239254.

        This broke the Windows 10 Debug build

        Reverted changeset:

        "Replace many uses of String::format with more type-safe
        alternatives"
        https://bugs.webkit.org/show_bug.cgi?id=192742
        https://trac.webkit.org/changeset/239254

2018-12-15  Darin Adler  <darin@apple.com>

        Use warning-ignoring macros more consistently and simply
        https://bugs.webkit.org/show_bug.cgi?id=192743

        Reviewed by Mark Lam.

        * pal/spi/cocoa/AVKitSPI.h: Use IGNORE_WARNINGS_BEGIN instead of
        IGNORE_CLANG_WARNINGS_BEGIN; there is no special need to accomodate
        non-clang compilers here.

2018-12-15  Darin Adler  <darin@apple.com>

        Replace many uses of String::format with more type-safe alternatives
        https://bugs.webkit.org/show_bug.cgi?id=192742

        Reviewed by Mark Lam.

        * pal/FileSizeFormatter.cpp:
        (fileSizeDescription): Use makeString.

2018-12-11  Justin Michaud  <justin_michaud@apple.com>

        Implement feature flag for CSS Typed OM
        https://bugs.webkit.org/show_bug.cgi?id=192610

        Reviewed by Ryosuke Niwa.

        * Configurations/FeatureDefines.xcconfig:

2018-12-11  Andy Estes  <aestes@apple.com>

        Introduce makeBlockPtr for lambdas
        https://bugs.webkit.org/show_bug.cgi?id=192594

        Reviewed by Alex Christensen.

        Adopted makeBlockPtr.

        * pal/Logging.cpp:
        (PAL::registerNotifyCallback):

2018-12-10  Don Olmstead  <don.olmstead@sony.com>

        Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig
        https://bugs.webkit.org/show_bug.cgi?id=192573

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2018-12-10  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r239023.
        https://bugs.webkit.org/show_bug.cgi?id=192571

        Speculative rollout due to broken perf test (Requested by
        deanj on #webkit).

        Reverted changeset:

        "Enable HTTP and HTTPS proxies on iOS and make it a property
        of the NSURLSession"
        https://bugs.webkit.org/show_bug.cgi?id=192374
        https://trac.webkit.org/changeset/239023

2018-12-10  Darin Adler  <darin@apple.com>

        [macOS] MSHCreateMIGServerSource invocation does not handle send/receive rights correctly
        https://bugs.webkit.org/show_bug.cgi?id=192533
        rdar://problem/45732710

        Reviewed by Anders Carlsson.

        * pal/spi/mac/HIServicesSPI.h: Added kMSHDoNotCreateSendRightOption.

2018-12-09  Saam barati  <sbarati@apple.com>

        Enable HTTP and HTTPS proxies on iOS and make it a property of the NSURLSession
        https://bugs.webkit.org/show_bug.cgi?id=192374
        <rdar://problem/46506286>

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:
        Remove the now-unused SPI declaration.

2018-12-05  Don Olmstead  <don.olmstead@sony.com>

        [PlayStation] Enable WebCore
        https://bugs.webkit.org/show_bug.cgi?id=192384

        Reviewed by Brent Fulgham.

        Implements PAL for the PlayStation platform.

        * pal/PlatformPlayStation.cmake: Added.

2018-12-02  Zalan Bujtas  <zalan@apple.com>

        Add a runtime feature flag for LayoutFormattingContext.
        https://bugs.webkit.org/show_bug.cgi?id=192280

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2018-12-01  Alexey Proskuryakov  <ap@apple.com>

        Modernize version check for _suppressedAutoAddedHTTPHeaders
        https://bugs.webkit.org/show_bug.cgi?id=192175

        Reviewed by Tim Horton.

        * pal/spi/cf/CFNetworkSPI.h: Curiously, it was forward declared twice, for no
        apparent reason.

2018-11-30  Don Olmstead  <don.olmstead@sony.com>

        Rename ENABLE_SUBTLE_CRYPTO to ENABLE_WEB_CRYPTO
        https://bugs.webkit.org/show_bug.cgi?id=192197

        Reviewed by Jiewen Tan.

        * Configurations/FeatureDefines.xcconfig:
        * pal/PlatformGTK.cmake:
        * pal/PlatformWPE.cmake:

2018-11-30  Alexey Proskuryakov  <ap@apple.com>

        Move USE_CFNETWORK_IGNORE_HSTS to its proper place
        https://bugs.webkit.org/show_bug.cgi?id=192173

        Reviewed by Tim Horton.

        * pal/spi/cf/CFNetworkSPI.h:

2018-11-29  David Quesada  <david_quesada@apple.com>

        Add SPI to publish NSProgress on active downloads
        https://bugs.webkit.org/show_bug.cgi?id=192021
        rdar://problem/44405661

        Reviewed by Alex Christensen.

        Add an SPI header for NSProgress's publishing and unpublishing methods. In older
        SDKs, these methods are explicitly unavailable on platforms other than macOS,
        with underscore-prefixed versions available as SPI. In newer SDKs, the unprefixed
        versions are SPI and the prefixed versions are deprecated.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NSProgressSPI.h:

2018-11-29  Megan Gardner  <megan_gardner@apple.com>

        Move Lookup Code for better cross platform usage
        https://bugs.webkit.org/show_bug.cgi?id=191732

        Reviewed by Alex Christensen.

        * pal/spi/mac/LookupSPI.h:
        * pal/spi/mac/RevealSPI.h:

2018-11-29  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Tell AirPlay picker when a file has video
        https://bugs.webkit.org/show_bug.cgi?id=192155

        Reviewed by Jer Noble.

        * pal/spi/ios/MediaPlayerSPI.h:

2018-11-29  Alexey Proskuryakov  <ap@apple.com>

        Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
        https://bugs.webkit.org/show_bug.cgi?id=192041

        Reviewed by Tim Horton.

        * pal/spi/cf/CFNetworkSPI.h:

2018-11-29  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r238678.

        Breaks internal builds.

        Reverted changeset:

        "Move Lookup Code for better cross platform usage"
        https://bugs.webkit.org/show_bug.cgi?id=191732
        https://trac.webkit.org/changeset/238678

2018-11-29  Megan Gardner  <megan_gardner@apple.com>

        Move Lookup Code for better cross platform usage
        https://bugs.webkit.org/show_bug.cgi?id=191732

        Reviewed by Alex Christensen.

        * pal/spi/mac/LookupSPI.h:
        * pal/spi/mac/RevealSPI.h:

2018-11-28  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r238653 and r238656.
        https://bugs.webkit.org/show_bug.cgi?id=192130

        Breaks iOS build (Requested by smfr on #webkit).

        Reverted changesets:

        "Move Lookup Code for better cross platform usage"
        https://bugs.webkit.org/show_bug.cgi?id=191732
        https://trac.webkit.org/changeset/238653

        "Attempt to fix the iOS build by only including RevealSPI.h
        when it's needed."
        https://trac.webkit.org/changeset/238656

2018-11-15  Megan Gardner  <megan_gardner@apple.com>

        Move Lookup Code for better cross platform usage
        https://bugs.webkit.org/show_bug.cgi?id=191732

        Reviewed by Alex Christensen.

        * pal/spi/mac/LookupSPI.h:
        * pal/spi/mac/RevealSPI.h:

2018-11-28  Alexey Proskuryakov  <ap@apple.com>

        Modernize version checks for same site cookie support
        https://bugs.webkit.org/show_bug.cgi?id=192054

        Reviewed by Tim Horton.

        * pal/spi/cf/CFNetworkSPI.h:

2018-11-27  Mark Lam  <mark.lam@apple.com>

        ENABLE_FAST_JIT_PERMISSIONS should be false for iosmac.
        https://bugs.webkit.org/show_bug.cgi?id=192055
        <rdar://problem/46288783>

        Reviewed by Saam Barati.

        * Configurations/FeatureDefines.xcconfig:

2018-11-27  Alexey Proskuryakov  <ap@apple.com>

        Modernize the check for async _saveCookies existence
        https://bugs.webkit.org/show_bug.cgi?id=191987

        Reviewed by Dean Jackson.

        * pal/spi/cf/CFNetworkSPI.h: Also removed a check around _socketStreamProperties,
        which exists everywhere.

2018-11-27  Jer Noble  <jer.noble@apple.com>

        Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI
        https://bugs.webkit.org/show_bug.cgi?id=190951
        <rdar://problem/45213065>

        Further follow-up build fix; add ASSUME_NONNULL macros to SPI declaration.

        * pal/spi/cocoa/AVKitSPI.h:

2018-11-27  Jer Noble  <jer.noble@apple.com>

        Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI
        https://bugs.webkit.org/show_bug.cgi?id=190951
        <rdar://problem/45213065>

        Follow-up build fix when building against older SDKs.

        * pal/spi/cocoa/AVKitSPI.h:

2018-11-26  Jer Noble  <jer.noble@apple.com>

        Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI
        https://bugs.webkit.org/show_bug.cgi?id=190951
        <rdar://problem/45213065>

        Reviewed by Alex Christensen.

        * pal/spi/cocoa/AVKitSPI.h:

2018-11-26  Andy Estes  <aestes@apple.com>

        [Cocoa] Make it easier to encode NSObjects
        https://bugs.webkit.org/show_bug.cgi?id=191948

        Reviewed by Dean Jackson.

        * pal/spi/cocoa/PassKitSPI.h: Declared some classes that secretly conform to NSSecureCoding.

2018-11-24  Andy Estes  <aestes@apple.com>

        [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
        https://bugs.webkit.org/show_bug.cgi?id=191899

        Reviewed by Dean Jackson.

        * pal/cocoa/PassKitSoftLink.h:
        * pal/ios/UIKitSoftLink.h:

2018-11-23  Wenson Hsieh  <wenson_hsieh@apple.com>

        Enable drag and drop support for iOSMac
        https://bugs.webkit.org/show_bug.cgi?id=191818
        <rdar://problem/43907454>

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:

2018-11-21  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Cocoa] [WebKit2] Add support for replacing find-in-page text matches
        https://bugs.webkit.org/show_bug.cgi?id=191786
        <rdar://problem/45813871>

        Reviewed by Ryosuke Niwa.

        Add `-replaceMatches:withString:inSelectionOnly:resultCollector:`.

        * pal/spi/mac/NSTextFinderSPI.h:

2018-11-21  Andy Estes  <aestes@apple.com>

        [Cocoa] Create a soft-linking file for PassKit
        https://bugs.webkit.org/show_bug.cgi?id=191875
        <rdar://problem/46203215>

        Reviewed by Myles Maxfield.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/cocoa/PassKitSoftLink.h: Added.
        * pal/cocoa/PassKitSoftLink.mm: Added. Used _WITH_EXPORT soft-linking macros in order to
        make the PAL soft-linking symbols visible to WebKit.
        * pal/spi/cocoa/PassKitSPI.h:

2018-11-17  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Remove all usages of UIItemProvider, UIItemProviderReading, and related classes
        https://bugs.webkit.org/show_bug.cgi?id=191819

        Reviewed by Dan Bernstein.

        Replace UIItemProvider (and related classes) with NSItemProvider.

        * pal/spi/ios/UIKitSPI.h:

2018-11-16  Brent Fulgham  <bfulgham@apple.com>

        [Win] Reduce the use of WKSI library calls: CFNetwork
        https://bugs.webkit.org/show_bug.cgi?id=191718
        <rdar://problem/46108732>

        Reviewed by Alex Christensen.

        Add necessary declarations for CFNetwork SPI needed by the Apple Windows build.

        * pal/PlatformAppleWin.cmake:
        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/cf/CFNetworkSPIWin.cpp: Added.

2018-11-16  Chris Dumez  <cdumez@apple.com>

        [Mac] Regression: WebContent process's display name is no longer set
        https://bugs.webkit.org/show_bug.cgi?id=191722
        <rdar://problem/45960550>

        Reviewed by Per Arne Vollan.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2018-11-15  Brent Fulgham  <bfulgham@apple.com>

        Additional Windows build fix after r238253.

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-11-15  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix after removing some WKSI calls on Windows.

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-11-11  Daniel Bates  <dabates@apple.com>

        [iOS] Draw caps lock indicator in password fields
        https://bugs.webkit.org/show_bug.cgi?id=190565
        <rdar://problem/45262343>

        Reviewed by Dean Jackson.

        Forward declare some more SPI.

        * pal/spi/ios/GraphicsServicesSPI.h:
        * pal/spi/ios/UIKitSPI.h:

2018-11-09  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r238047.

        Introduced layout test failures on iOS simulator.

        Reverted changeset:

        "[iOS] Draw caps lock indicator in password fields"
        https://bugs.webkit.org/show_bug.cgi?id=190565
        https://trac.webkit.org/changeset/238047

2018-11-09  Daniel Bates  <dabates@apple.com>

        [iOS] Draw caps lock indicator in password fields
        https://bugs.webkit.org/show_bug.cgi?id=190565
        <rdar://problem/45262343>

        Reviewed by Dean Jackson.

        Forward declare some more SPI.

        * pal/spi/ios/GraphicsServicesSPI.h:
        * pal/spi/ios/UIKitSPI.h:

2018-11-08  Megan Gardner  <megan_gardner@apple.com>

        Adopt Reveal Framework to replace Lookup
        https://bugs.webkit.org/show_bug.cgi?id=191097
        <rdar://problem/45924508>

        Reviewed by Tim Horton.

        Add in reveal SPI so WebKit will continue to build without the internal SDK.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/RevealSPI.h: Added.

2018-11-06  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
        https://bugs.webkit.org/show_bug.cgi?id=191291

        Reviewed by Myles Maxfield.

        Properly disable WEBGPU on all non-Metal platforms for now.

        * Configurations/FeatureDefines.xcconfig:

2018-11-02  Daniel Bates  <dabates@apple.com>

        [iOS] Normalize character string based on key code
        https://bugs.webkit.org/show_bug.cgi?id=191120

        Reviewed by Tim Horton.

        Remove forward declarations that are no longer needed now that we check key code.

        * pal/spi/ios/UIKitSPI.h:

2018-11-01  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [CG] Adopt CG SPI for non-even cornered rounded rects
        https://bugs.webkit.org/show_bug.cgi?id=190155

        Reviewed by Simon Fraser.

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-10-30  Alexey Proskuryakov  <ap@apple.com>

        Clean up some obsolete MAX_ALLOWED macros
        https://bugs.webkit.org/show_bug.cgi?id=190916

        Reviewed by Tim Horton.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        Behavior change here. The check didn't really make sense, pretty sure we would
        just crash when hitting this code path on iOS.

        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/cocoa/PassKitSPI.h:
        * pal/spi/mac/AVFoundationSPI.h:

2018-10-29  Tim Horton  <timothy_horton@apple.com>

        Modernize WebKit nibs and lprojs for localization's sake
        https://bugs.webkit.org/show_bug.cgi?id=190911
        <rdar://problem/45349466>

        Reviewed by Dan Bernstein.

        * PAL.xcodeproj/project.pbxproj:
        English->en

2018-10-26  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r237458.
        https://bugs.webkit.org/show_bug.cgi?id=190973

        broke internal iOS builds (Requested by zalan on #webkit).

        Reverted changeset:

        "Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI"
        https://bugs.webkit.org/show_bug.cgi?id=190951
        https://trac.webkit.org/changeset/237458

2018-10-26  Timothy Hatcher  <timothy@apple.com>

        Use dark appearance scrollbar when page background is dark or document supports dark mode.
        https://bugs.webkit.org/show_bug.cgi?id=190937
        rdar://problem/41225839

        Reviewed by Beth Dakin.

        * pal/spi/mac/NSScrollerImpSPI.h: Added effectiveAppearanceForScrollerImp:.

2018-10-26  Jer Noble  <jer.noble@apple.com>

        Adopt -setOverrideRouteSharingPolicy:routingContextUID: SPI
        https://bugs.webkit.org/show_bug.cgi?id=190951
        <rdar://problem/45213065>

        Reviewed by Alex Christensen.

        * pal/spi/cocoa/AVKitSPI.h:

2018-10-24  Alexey Proskuryakov  <ap@apple.com>

        Clean up some obsolete macOS version guards
        https://bugs.webkit.org/show_bug.cgi?id=190887

        Reviewed by Dan Bernstein.

        * pal/spi/mac/TUCallSPI.h:

2018-10-24  Megan Gardner  <megan_gardner@apple.com>

        Turn on Conic Gradients
        https://bugs.webkit.org/show_bug.cgi?id=190810

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2018-10-23  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r237280.

        Causes fast/box-shadow/box-shadow-with-zero-radius.html to
        fail on iOS Simulator.

        Reverted changeset:

        "[CG] Adopt CG SPI for non-even cornered rounded rects"
        https://bugs.webkit.org/show_bug.cgi?id=190155
        https://trac.webkit.org/changeset/237280

2018-10-18  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [CG] Adopt CG SPI for non-even cornered rounded rects
        https://bugs.webkit.org/show_bug.cgi?id=190155

        Reviewed by Simon Fraser.

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-10-18  Alexey Proskuryakov  <ap@apple.com>

        Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
        https://bugs.webkit.org/show_bug.cgi?id=190729

        Reviewed by Tim Horton.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/ios/UIKitSoftLink.h:
        * pal/ios/UIKitSoftLink.mm:
        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/cocoa/AVKitSPI.h:
        * pal/spi/cocoa/CFNSURLConnectionSPI.h:
        * pal/spi/cocoa/CoreTextSPI.h:
        * pal/spi/cocoa/DataDetectorsCoreSPI.h:
        * pal/spi/cocoa/IOSurfaceSPI.h:
        * pal/spi/cocoa/LaunchServicesSPI.h:
        * pal/spi/cocoa/NEFilterSourceSPI.h:
        * pal/spi/cocoa/NSAttributedStringSPI.h:
        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        * pal/spi/cocoa/PassKitSPI.h:
        * pal/spi/cocoa/QuartzCoreSPI.h:
        * pal/spi/ios/DataDetectorsUISPI.h:
        * pal/spi/ios/GraphicsServicesSPI.h:
        * pal/spi/ios/MediaPlayerSPI.h:
        * pal/spi/ios/MobileGestaltSPI.h:
        * pal/spi/mac/AVFoundationSPI.h:
        * pal/system/mac/ClockCM.mm:
        (ClockCM::ClockCM):

2018-10-17  Wenson Hsieh  <wenson_hsieh@apple.com>

        Enable the datalist element by default on iOS and macOS
        https://bugs.webkit.org/show_bug.cgi?id=190594
        <rdar://problem/45281159>

        Reviewed by Ryosuke Niwa and Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2018-10-16  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r237163.

        Introduced layout test failures on iOS Simulator.

        Reverted changeset:

        "[CG] Adopt CG SPI for non-even cornered rounded rects"
        https://bugs.webkit.org/show_bug.cgi?id=190155
        https://trac.webkit.org/changeset/237163

2018-10-16  Justin Michaud  <justin_michaud@apple.com>

        Implement feature flag and bindings for CSS Painting API
        https://bugs.webkit.org/show_bug.cgi?id=190237

        Reviewed by Ryosuke Niwa.

        * Configurations/FeatureDefines.xcconfig:

2018-10-15  Justin Fan  <justin_fan@apple.com>

        Add WebGPU 2018 feature flag and experimental feature flag
        https://bugs.webkit.org/show_bug.cgi?id=190509

        Reviewed by Dean Jackson.

        Re-add ENABLE_WEBGPU, an experimental feature flag, and a RuntimeEnabledFeature
        for the 2018 WebGPU prototype.

        * Configurations/FeatureDefines.xcconfig:

2018-10-15  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [CG] Adopt CG SPI for non-even cornered rounded rects
        https://bugs.webkit.org/show_bug.cgi?id=190155

        Reviewed by Simon Fraser.

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-10-15  Timothy Hatcher  <timothy@apple.com>

        Add support for prefers-color-scheme media query
        https://bugs.webkit.org/show_bug.cgi?id=190499
        rdar://problem/45212025

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig: Added ENABLE_DARK_MODE_CSS.

2018-10-14  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        [JSC] Remove Option::useAsyncIterator
        https://bugs.webkit.org/show_bug.cgi?id=190567

        Reviewed by Saam Barati.

        * Configurations/FeatureDefines.xcconfig:

2018-10-08  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Cocoa] [WK2] Add support for text alignment and text lists in font attributes
        https://bugs.webkit.org/show_bug.cgi?id=190342
        <rdar://problem/44767118>

        Reviewed by Tim Horton.

        * pal/ios/UIKitSoftLink.h:
        * pal/ios/UIKitSoftLink.mm:

        Add NSParagraphStyle and NSTextList to the UIKit soft link header.

        * pal/spi/cocoa/NSAttributedStringSPI.h:
        * pal/spi/ios/UIKitSPI.h:

        Add some SPI declarations for NSMutableParagraphStyle and NSTextList when building with a non-internal iOS SDK,
        and import <UIKit/NSParagraphStyle_Private.h> and <UIKit/NSTextList.h> when building with an internal iOS SDK.
        Additionally, define some internal UIFoundation string constants that denote NSTextList marker formats. These
        constants are API on macOS, but are neither exposed as API nor SPI on iOS.

2018-10-08  Justin Fan  <justin_fan@apple.com>

        WebGPU: Rename old WebGPU prototype to WebMetal
        https://bugs.webkit.org/show_bug.cgi?id=190325
        <rdar://problem/44990443>

        Reviewed by Dean Jackson.

        Rename WebGPU prototype files to WebMetal in preparation for implementing the new (Oct 2018) WebGPU interface.

        * Configurations/FeatureDefines.xcconfig:

2018-10-08  Aditya Keerthi  <akeerthi@apple.com>

        Make <input type=color> a runtime enabled (on-by-default) feature
        https://bugs.webkit.org/show_bug.cgi?id=189162

        Reviewed by Wenson Hsieh and Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2018-10-05  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix: internal builds can't find AVVideoPerformanceMetrics.

        * pal/spi/mac/AVFoundationSPI.h:

2018-10-03  Jer Noble  <jer.noble@apple.com>

        Add support for reporting "display composited video frames" through the VideoPlaybackQuality object.
        https://bugs.webkit.org/show_bug.cgi?id=190266

        Reviewed by Eric Carlson.

        * pal/spi/mac/AVFoundationSPI.h:

2018-10-05  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r236866.

        Breaks internal builds.

        Reverted changeset:

        "Add support for reporting "display composited video frames"
        through the VideoPlaybackQuality object."
        https://bugs.webkit.org/show_bug.cgi?id=190266
        https://trac.webkit.org/changeset/236866

2018-10-04  Jer Noble  <jer.noble@apple.com>

        Add support for reporting "display composited video frames" through the VideoPlaybackQuality object.
        https://bugs.webkit.org/show_bug.cgi?id=190266

        Reviewed by Eric Carlson.

        * pal/spi/mac/AVFoundationSPI.h:

2018-10-04  Dan Bernstein  <mitz@apple.com>

        PAL change for the WebKitLegacy part of [Xcode] Update some build settings as recommended by Xcode 10
        https://bugs.webkit.org/show_bug.cgi?id=190250

        Reviewed by Andy Estes.

        * pal/spi/mac/NSWindowSPI.h: Added a private API declaration.

2018-10-04  Dan Bernstein  <mitz@apple.com>

        PAL part of [Xcode] Update some build settings as recommended by Xcode 10
        https://bugs.webkit.org/show_bug.cgi?id=190250

        Reviewed by Andy Estes.

        * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF,
          CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED, and CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS.

        * PAL.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.

2018-10-01  Dean Jackson  <dino@apple.com>

        Remove CSS Animation Triggers
        https://bugs.webkit.org/show_bug.cgi?id=190175
        <rdar://problem/44925626>

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2018-10-01  Andy Estes  <aestes@apple.com>

        [watchOS] Adopt NSURLSessionCompanionProxyPreference
        https://bugs.webkit.org/show_bug.cgi?id=190177
        <rdar://problem/43402114>

        Reviewed by Wenson Hsieh.

        * pal/spi/cf/CFNetworkSPI.h:

2018-10-01  Daniel Bates  <dabates@apple.com>

        [iOS] Special keys are misidentified in DOM keyboard events
        https://bugs.webkit.org/show_bug.cgi?id=189974

        Reviewed by Wenson Hsieh.

        Forward declare or define more SPI.

        * pal/spi/cocoa/IOKitSPI.h:
        * pal/spi/ios/UIKitSPI.h:

2018-09-25  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Make AuthenticatorManager
        https://bugs.webkit.org/show_bug.cgi?id=189279
        <rdar://problem/44116792>

        Reviewed by Chris Dumez.

        It moves linking to DeviceIdentity.framework to WebKit.

        * PAL.xcodeproj/project.pbxproj:

2018-09-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Fix the open source iOS 12 build after r236445
        https://bugs.webkit.org/show_bug.cgi?id=189953

        Reviewed by Alex Christensen.

        Introduce a single UIKit soft-linking header in PAL.

        * PAL.xcodeproj/project.pbxproj:
        * pal/ios/UIKitSoftLink.h: Copied from Source/WebCore/platform/graphics/cocoa/ColorCocoa.mm.
        * pal/ios/UIKitSoftLink.mm: Copied from Source/WebCore/platform/graphics/cocoa/ColorCocoa.mm.

2018-09-24  Wenson Hsieh  <wenson_hsieh@apple.com>

        Refactor Editor::fontAttributesForSelectionStart to be platform-agnostic
        https://bugs.webkit.org/show_bug.cgi?id=189918
        Work towards <rdar://problem/44648705>

        Reviewed by Tim Horton.

        Add `+_disambiguated_due_to_CIImage_colorWithCGColor:` as a UIColor SPI definition. Also, import
        `UIColor_Private.h` directly when the Apple internal SDK is used.

        * pal/spi/ios/UIKitSPI.h:

2018-09-21  Jer Noble  <jer.noble@apple.com>

        Unreviewed Sierra Build Fix; ensure AVVideoPerformanceMetrics are defined on Sierra.

        * pal/spi/mac/AVFoundationSPI.h:

2018-09-21  Jer Noble  <jer.noble@apple.com>

        Move AVVideoPerformanceMetrics into AVFoundationSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=189842

        Reviewed by Jon Lee.

        * pal/spi/mac/AVFoundationSPI.h:

2018-09-21  Jonathan Bedard  <jbedard@apple.com>

        Bring up queues for iOS 12 (Build fix)
        https://bugs.webkit.org/show_bug.cgi?id=189683

        Unreviewed build fix.

        * pal/spi/cocoa/QuartzCoreSPI.h: Declare setCornerRadius and continuousCorner.

2018-09-20  Daniel Bates  <dabates@apple.com>

        Move IOKitSPI.h from TestRunnerShared to PAL
        https://bugs.webkit.org/show_bug.cgi?id=189804

        Reviewed by Wenson Hsieh.

        Towards fixing <https://bugs.webkit.org/show_bug.cgi?id=189604> move the IOKit SPI forward
        declarations to PAL so that they can be shared by both WebKit, DumpRenderTree, and WebKitTestRunner.

        No functionality changed. So, no new tests.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/IOKitSPI.h: Renamed from Tools/TestRunnerShared/spi/IOKitSPI.h.

2018-09-14  Eric Carlson  <eric.carlson@apple.com>

        Support arbitrary video resolution in getUserMedia API
        https://bugs.webkit.org/show_bug.cgi?id=178109
        <rdar://problem/35083128>

        Reviewed by Youenn Fablet.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:

2018-09-12  Guillaume Emont  <guijemont@igalia.com>

        Add IGNORE_WARNING_.* macros
        https://bugs.webkit.org/show_bug.cgi?id=188996

        Reviewed by Michael Catanzaro.

        * pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp:
        (PAL::CryptoDigest::create):
        (PAL::CryptoDigest::addBytes):
        (PAL::CryptoDigest::computeHash):
        * pal/spi/cocoa/AVKitSPI.h:
        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        (insecurelyUnarchiveObjectFromData):
        * pal/spi/ios/MediaPlayerSPI.h:
        * pal/system/mac/PopupMenu.mm:
        (PAL::popUpMenu):
        * pal/system/mac/WebPanel.mm:
        (-[WebPanel init]):

2018-09-10  James Savage  <james.savage@apple.com>

        Expose -apple-system-container-border color to internal web views.
        https://bugs.webkit.org/show_bug.cgi?id=189178.

        Reviewed by Timothy Hatcher.

        * pal/spi/cocoa/NSColorSPI.h: Declare SPI.

2018-09-06  Megan Gardner  <megan_gardner@apple.com>

        Add Support for Conic Gradients
        https://bugs.webkit.org/show_bug.cgi?id=189329
        <rdar://problem/21444701>

        Reviewed by Simon Fraser.

        Define the CG functionality for conic gradients. 

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-09-04  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, attempt to fix an internal build after r235585.

        * pal/spi/cf/CFNetworkSPI.h:

2018-09-01  Yoshiaki Jitsukawa  <yoshiaki.jitsukawa@sony.com>

        [WinCairo] Add CryptoDigestOpenSSL
        https://bugs.webkit.org/show_bug.cgi?id=188978

        Reviewed by Darin Adler.

        Add a CryptoDigest implementation with OpenSSL/LibreSSL and let the
        WinCairo port use it.

        * pal/PlatformAppleWin.cmake: Add CryptoDigestWin.cpp to PAL_SOURCES
        * pal/PlatformWin.cmake: Remove CryptoDigestWin.cpp from PAL_SOURCES
        * pal/PlatformWinCairo.cmake: Add CryptoDigestOpenSSL to PAL_SOURCES
        * pal/crypto/openssl/CryptoDigestOpenSSL.cpp: Added.
        (PAL::toSHA1Context):
        (PAL::toSHA224Context):
        (PAL::toSHA256Context):
        (PAL::toSHA384Context):
        (PAL::toSHA512Context):
        (PAL::CryptoDigest::CryptoDigest):
        (PAL::CryptoDigest::~CryptoDigest):
        (PAL::CryptoDigest::create):
        (PAL::CryptoDigest::addBytes):
        (PAL::CryptoDigest::computeHash):

2018-09-01  Darin Adler  <darin@apple.com>

        [CFNetwork] Update CFNetwork SPI use to use CFNetworkSPI.h more consistently
        https://bugs.webkit.org/show_bug.cgi?id=189072

        Reviewed by Dan Bernstein.

        * pal/spi/cf/CFNetworkSPI.h: Added a FIXME about USE(CFNETWORK_IGNORE_HSTS).
        Sorted Objective-C class interfaces alphabetically instead of having them
        relatively randomly ordered in the file. Reduced the platform #if statements
        since it's not critical to have these SPIs declared only where they are
        present, as long as they are used only when they are present. Moved some
        additional declarations into this file.

        * pal/spi/cocoa/NSURLDownloadSPI.h: Added more NSURLDownload methods.

2018-08-30  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Replace AVFoundationSupport.py using CMake
        https://bugs.webkit.org/show_bug.cgi?id=182891

        Reviewed by Per Arne Vollan.

        Remove AVFoundationSupport.py file and its invocation.

        * AVFoundationSupport.py: Removed.
        * config.h:
        * pal/PlatformWin.cmake:

2018-08-29  Jer Noble  <jer.noble@apple.com>

        Muted elements do not have their Now Playing status updated when unmuted.
        https://bugs.webkit.org/show_bug.cgi?id=189069

        Reviewed by Eric Carlson.

        * pal/spi/mac/MediaRemoteSPI.h:

2018-08-27  Keith Rollin  <krollin@apple.com>

        Unreviewed build fix -- disable LTO for production builds

        * Configurations/Base.xcconfig:

2018-08-27  Aditya Keerthi  <akeerthi@apple.com>

        Consolidate ENABLE_INPUT_TYPE_COLOR and ENABLE_INPUT_TYPE_COLOR_POPOVER
        https://bugs.webkit.org/show_bug.cgi?id=188931

        Reviewed by Wenson Hsieh.

        * Configurations/FeatureDefines.xcconfig: Removed ENABLE_INPUT_TYPE_COLOR_POPOVER.

2018-08-27  Keith Rollin  <krollin@apple.com>

        Build system support for LTO
        https://bugs.webkit.org/show_bug.cgi?id=187785
        <rdar://problem/42353132>

        Reviewed by Dan Bernstein.

        Update Base.xcconfig and DebugRelease.xcconfig to optionally enable
        LTO.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:

2018-08-26  Andy Estes  <aestes@apple.com>

        [Apple Pay] Introduce new values for -apple-pay-button-type
        https://bugs.webkit.org/show_bug.cgi?id=188949
        <rdar://problem/39992228>

        Reviewed by Anders Carlsson.

        * pal/spi/cocoa/PassKitSPI.h:

2018-08-23  Andy Estes  <aestes@apple.com>

        [Apple Pay] Introduce Apple Pay JS v4 on iOS 12 and macOS Mojave
        https://bugs.webkit.org/show_bug.cgi?id=188829

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2018-08-21  Ryosuke Niwa  <rniwa@webkit.org>

        Unreviewed macOS Mojave build fix after r235125.

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-08-15  Ansh Shukla  <ansh_shukla@apple.com>

        NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault
        https://bugs.webkit.org/show_bug.cgi?id=186870
        <rdar://problem/41314410>

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h: Declare OAuth string when not building against the
        internal SDK.

2018-08-15  Aditya Keerthi  <akeerthi@apple.com>

        [Datalist] Add button to TextFieldInputs with a datalist
        https://bugs.webkit.org/show_bug.cgi?id=187741

        Reviewed by Tim Horton.

        * pal/spi/cocoa/NSColorSPI.h: Added NSColorGetUserAccentColor().

2018-08-15  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r234870.

        The test introduced with this change is a flaky failure.

        Reverted changeset:

        "NSURLAuthenticationMethodOAuth challenges are surfaced to
        clients in -didReceiveAuthenticationChallenge as
        NSURLAuthenticationMethodDefault"
        https://bugs.webkit.org/show_bug.cgi?id=186870
        https://trac.webkit.org/changeset/234870

2018-08-14  Ansh Shukla  <ansh_shukla@apple.com>

        NSURLAuthenticationMethodOAuth challenges are surfaced to clients in -didReceiveAuthenticationChallenge as NSURLAuthenticationMethodDefault
        https://bugs.webkit.org/show_bug.cgi?id=186870
        <rdar://problem/41314410>

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h: Declare OAuth string when not building against the
        internal SDK.

2018-08-07  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, suppress warnings to fix the build.

        * pal/crypto/commoncrypto/CryptoDigestCommonCrypto.cpp:
        (PAL::CryptoDigest::create):
        (PAL::CryptoDigest::addBytes):
        (PAL::CryptoDigest::computeHash):

2018-08-07  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Scrollbars are not visible when using 3rd party mouse
        https://bugs.webkit.org/show_bug.cgi?id=188372

        Reviewed by Simon Fraser.

        Added declaration of NSScrollerImpPair class method. This method updates all NSScrollerImpPairs
        with a new recommended scroller style.

        * pal/spi/mac/NSScrollerImpSPI.h:

2018-08-02  David Fenton  <david_fenton@apple.com>

        Unreviewed, rolling out r234489.

        Caused 50+ crashes and 60+ API failures on iOS

        Reverted changeset:

        "[WTF] Rename String::format to String::deprecatedFormat"
        https://bugs.webkit.org/show_bug.cgi?id=188191
        https://trac.webkit.org/changeset/234489

2018-08-01  Tomas Popela  <tpopela@redhat.com>

        [WTF] Rename String::format to String::deprecatedFormat
        https://bugs.webkit.org/show_bug.cgi?id=188191

        Reviewed by Darin Adler.

        It should be replaced with string concatenation.

        * pal/FileSizeFormatter.cpp:
        (fileSizeDescription):

2018-08-01  Tim Horton  <timothy_horton@apple.com>

        Using the keyboard arrow keys to scroll a webpage is very slow, not smooth, takes too long
        https://bugs.webkit.org/show_bug.cgi?id=188239
        <rdar://problem/22997654>

        Reviewed by Simon Fraser.

        * pal/spi/cocoa/QuartzCoreSPI.h:
        Add a piece of SPI.

2018-07-30  Sihui Liu  <sihui_liu@apple.com>

        Add support for fetching and remove type  _WKWebsiteDataTypeHSTSCache
        https://bugs.webkit.org/show_bug.cgi?id=187379
        <rdar://problem/41879559>

        Reviewed by Geoffrey Garen.

        * pal/spi/cf/CFNetworkSPI.h:

2018-07-30  Devin Rousso  <webkit@devinrousso.com>

        Add missing CoreGraphics SPI
        https://bugs.webkit.org/show_bug.cgi?id=188177

        Reviewed by Joseph Pecoraro.

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-07-26  Andy VanWagoner  <andy@vanwagoner.family>

        [INTL] Remove INTL sub-feature compile flags
        https://bugs.webkit.org/show_bug.cgi?id=188081

        Reviewed by Michael Catanzaro.

        * Configurations/FeatureDefines.xcconfig:

2018-07-26  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r234281.

        Broke internal builds.

        Reverted changeset:

        "[Datalist] Add button to TextFieldInputs with a datalist"
        https://bugs.webkit.org/show_bug.cgi?id=187741
        https://trac.webkit.org/changeset/234281

2018-07-26  Aditya Keerthi  <akeerthi@apple.com>

        [Datalist] Add button to TextFieldInputs with a datalist
        https://bugs.webkit.org/show_bug.cgi?id=187741

        Reviewed by Tim Horton.

        * pal/spi/cocoa/NSColorSPI.h: Added NSColorGetUserAccentColor().

2018-07-26  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r234181 and r234189.
        https://bugs.webkit.org/show_bug.cgi?id=188075

        These are not needed right now (Requested by thorton on
        #webkit).

        Reverted changesets:

        "Enable Web Content Filtering on watchOS"
        https://bugs.webkit.org/show_bug.cgi?id=187979
        https://trac.webkit.org/changeset/234181

        "HAVE(PARENTAL_CONTROLS) should be true on watchOS"
        https://bugs.webkit.org/show_bug.cgi?id=187985
        https://trac.webkit.org/changeset/234189

2018-07-24  Tim Horton  <timothy_horton@apple.com>

        Enable Web Content Filtering on watchOS
        https://bugs.webkit.org/show_bug.cgi?id=187979
        <rdar://problem/42559346>

        Reviewed by Wenson Hsieh.

        * Configurations/FeatureDefines.xcconfig:

2018-07-24  Aditya Keerthi  <akeerthi@apple.com>

        [Datalist][macOS] Display suggestions for input[type=color]
        https://bugs.webkit.org/show_bug.cgi?id=187794

        Reviewed by Tim Horton.

        Added methods to enable customization of NSPopoverColorWell.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/NSColorWellSPI.h: Added.
        * pal/spi/mac/NSPopoverColorWellSPI.h: Added.
        * pal/spi/mac/NSPopoverSPI.h:

2018-07-23  Tim Horton  <timothy_horton@apple.com>

        Creating and loading content in a WKWebView triggers Main Thread Checker warnings under ServicesController
        https://bugs.webkit.org/show_bug.cgi?id=186963
        <rdar://problem/41393682>

        Reviewed by Timothy Hatcher.

        * pal/spi/mac/NSSharingServiceSPI.h:
        Add the new SPI.

2018-07-18  Per Arne Vollan  <pvollan@apple.com>

        The WebContent process does not suspend when MiniBrowser is minimized.
        https://bugs.webkit.org/show_bug.cgi?id=187708

        Reviewed by Chris Dumez.

        Add function for enabling App nap.

        * pal/spi/cf/CFUtilitiesSPI.h:

2018-07-18  Jer Noble  <jer.noble@apple.com>

        PiP from Element Fullscreen should match AVKit's behavior
        https://bugs.webkit.org/show_bug.cgi?id=187623

        Reviewed by Jon Lee.

        * pal/spi/mac/PIPSPI.h:

2018-07-14  Kocsen Chung  <kocsen_chung@apple.com>

        Ensure WebKit stack is ad-hoc signed
        https://bugs.webkit.org/show_bug.cgi?id=187667

        Reviewed by Alexey Proskuryakov.

        * Configurations/Base.xcconfig:

2018-07-04  Tim Horton  <timothy_horton@apple.com>

        Introduce PLATFORM(IOSMAC)
        https://bugs.webkit.org/show_bug.cgi?id=187315

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:
        * Configurations/FeatureDefines.xcconfig:
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/spi/mac/AVFoundationSPI.h:

2018-06-28  Jonathan Bedard  <jbedard@apple.com>

        Build fix (2) after r233266 
        https://bugs.webkit.org/show_bug.cgi?id=187024
        <rdar://problem/39759057>

        Unreviewed build fix.

        * pal/cf/CoreMediaSoftLink.cpp: Distinguish between IOS and MINIMAL_SIMULATOR.
        * pal/cf/CoreMediaSoftLink.h: Ditto.
        * pal/spi/cocoa/LaunchServicesSPI.h: LSApplicationProxy should be conditionalized on HAVE(APP_LINKS).

2018-06-27  Jonathan Bedard  <jbedard@apple.com>

        Build fix after r233266 
        https://bugs.webkit.org/show_bug.cgi?id=187024
        <rdar://problem/39759057>

        Unreviewed build fix.

        * pal/cf/CoreMediaSoftLink.cpp: Do not soft-link CMSampleBufferCallForEachSample for
        iOS 12 and up on iPhone device and simulator.
        * pal/cf/CoreMediaSoftLink.h: Ditto.

2018-06-27  Jonathan Bedard  <jbedard@apple.com>

        Enable WebKit iOS 12 build
        https://bugs.webkit.org/show_bug.cgi?id=187024
        <rdar://problem/39759057>

        Reviewed by David Kilzer.

        * pal/cf/CoreMediaSoftLink.cpp: Condition some CoreMedia functions on version.
        * pal/cf/CoreMediaSoftLink.h: Ditto.
        * pal/spi/cocoa/NSXPCConnectionSPI.h: Use XPCSPI.h instead of xpc.h.
        * pal/spi/ios/QuickLookSPI.h: QLItem adopts QLPreviewItem.
        * pal/spi/ios/SystemPreviewSPI.h: Fix compiler errors.

2018-06-26  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iPad apps on macOS] Unable to interact with video elements that have started playing
        https://bugs.webkit.org/show_bug.cgi?id=187073
        <rdar://problem/40591107>

        Reviewed by Tim Horton.

        Define an SPI method on CALayer. See WebKit ChangeLog for more detail.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2018-06-23  Yusuke Suzuki  <utatane.tea@gmail.com>

        [WTF] Add user-defined literal for ASCIILiteral
        https://bugs.webkit.org/show_bug.cgi?id=186839

        Reviewed by Darin Adler.

        * pal/unix/LoggingUnix.cpp:
        (PAL::logLevelString):

2018-06-22  Timothy Hatcher  <timothy@apple.com>

        Corner of two scroll bars is white with dark mode enabled.
        https://bugs.webkit.org/show_bug.cgi?id=186819
        rdar://problem/40434350

        Reviewed by Tim Horton.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/CoreUISPI.h: Added.
        * pal/spi/mac/NSAppearanceSPI.h: Added.

2018-06-21  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed attempt to fix the build after r233052.

        * pal/spi/cocoa/AVKitSPI.h:

2018-06-21  Jer Noble  <jer.noble@apple.com>

        [Fullscreen] Use secondary glyph style for fullscreen controls
        https://bugs.webkit.org/show_bug.cgi?id=186862
        <rdar://problem/41212210>

        Reviewed by Tim Horton.

        * pal/spi/cocoa/AVKitSPI.h:

2018-06-15  Jonathan Bedard  <jbedard@apple.com>

        Complex text handling should opt out of bounded text layout (follow-up fix)
        https://bugs.webkit.org/show_bug.cgi?id=186571
        <rdar://problem/40801429>

        Reviewed by Zalan Bujtas.

        * pal/spi/cocoa/CoreTextSPI.h: Add declaration for OpenSource Mojave builds.

2018-06-14  Timothy Hatcher  <timothy@apple.com>

        Expose more semantic system colors.

        https://bugs.webkit.org/show_bug.cgi?id=186609
        rdar://problem/39287277

        Reviewed by Tim Horton.

        * pal/spi/cocoa/NSColorSPI.h: Added findHighlightColor and placeholderTextColor.

2018-06-09  Dan Bernstein  <mitz@apple.com>

        [Xcode] Clean up and modernize some build setting definitions
        https://bugs.webkit.org/show_bug.cgi?id=186463

        Reviewed by Sam Weinig.

        * Configurations/Base.xcconfig: Removed definition for macOS 10.11.
        * Configurations/DebugRelease.xcconfig: Ditto.
        * Configurations/FeatureDefines.xcconfig: Simplified the definitions of ENABLE_APPLE_PAY and
          ENABLE_VIDEO_PRESENTATION_MODE now macOS 10.12 is the earliest supported version.
        * Configurations/PAL.xcconfig: Removed WK_PRIVATE_FRAMEWORKS_DIR, because the private
          framework stubs aren’t used when linking PAL.
        * Configurations/Version.xcconfig: Removed definition for macOS 10.11.
        * Configurations/WebKitTargetConditionals.xcconfig: Ditto.

2018-06-09  Dan Bernstein  <mitz@apple.com>

        Added missing file references to the Configuration group.

        * PAL.xcodeproj/project.pbxproj:

2018-06-08  Darin Adler  <darin@apple.com>

        [Cocoa] Remove all uses of NSAutoreleasePool as part of preparation for ARC
        https://bugs.webkit.org/show_bug.cgi?id=186436

        Reviewed by Anders Carlsson.

        * PAL.xcodeproj/project.pbxproj: Removed FoundationSPI.h.
        * pal/PlatformMac.cmake: Ditto.
        * pal/spi/cocoa/FoundationSPI.h: Moved into WTF project.

2018-06-08  Wenson Hsieh  <wenson_hsieh@apple.com>

        [WebKit on watchOS] Upstream watchOS source additions to OpenSource (Part 1)
        https://bugs.webkit.org/show_bug.cgi?id=186442
        <rdar://problem/40879364>

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2018-06-08  Darin Adler  <darin@apple.com>

        [Cocoa] Make more of our soft linking ARC-compatible
        https://bugs.webkit.org/show_bug.cgi?id=186437

        Reviewed by Daniel Bates.

        * pal/spi/cocoa/DataDetectorsCoreSPI.h: Removed unused DDURLScheme.

2018-06-08  Jonathan Bedard  <jbedard@apple.com>

        [Mojave] Enable build
        https://bugs.webkit.org/show_bug.cgi?id=186401
        <rdar://problem/39759031>

        Reviewed by Dan Bernstein.

        * pal/spi/cg/CoreGraphicsSPI.h: Declare CGSShutdownServerConnections().
        * pal/spi/cocoa/QuartzCoreSPI.h: Declare [CAContext setAllowsCGSConnections] in Mojave + builds.
        * pal/spi/mac/DataDetectorsSPI.h: Declare DDResultGetCFTypeID in Mojave+ builds.

2018-06-08  Brent Fulgham  <bfulgham@apple.com>

        REGRESSION (r230930): Link drag image is very blurry
        https://bugs.webkit.org/show_bug.cgi?id=186435
        <rdar://problem/40797202>

        Reviewed by Tim Horton.

        Add the necessary NSImage SPI to our SPI headers.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/NSImageSPI.h: Added.

2018-06-07  Chris Dumez  <cdumez@apple.com>

        Add base class to get WeakPtrFactory member and avoid some boilerplate code
        https://bugs.webkit.org/show_bug.cgi?id=186407

        Reviewed by Brent Fulgham.

        186407_CanMakeWeakPtr

        * pal/system/mac/SystemSleepListenerMac.h:
        * pal/system/mac/SystemSleepListenerMac.mm:
        (PAL::SystemSleepListenerMac::SystemSleepListenerMac):

2018-06-06  Simon Fraser  <simon.fraser@apple.com>

        Logging macros are sensitive to pal/Logging.h vs Logging.h include order
        https://bugs.webkit.org/show_bug.cgi?id=185893

        Reviewed by Zalan Bujtas.
        
        Remove unused functionality from pal/Logging code until we need it. Primarily this removes the
        #define LOG_CHANNEL_PREFIX from pal/Logging.h, which caused include-order problems with unified sources.
        
        Future work should move shared logging code up to WTF (or into PAL).

        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/LogInitialization.h: Removed.
        * pal/Logging.cpp:
        (PAL::isLogChannelEnabled): Deleted.
        (PAL::setLogChannelToAccumulate): Deleted.
        (PAL::initializeLogChannelsIfNecessary): Deleted.
        * pal/Logging.h:
        * pal/cocoa/LoggingCocoa.mm: Removed.

2018-06-05  Brent Fulgham  <bfulgham@apple.com>

        Adjust compile and runtime flags to match shippable state of features
        https://bugs.webkit.org/show_bug.cgi?id=186319
        <rdar://problem/40352045>

        Reviewed by Maciej Stachowiak, Jon Lee, and others.

        * Configurations/DebugRelease.xcconfig: Update to match WebKit definition of
        WK_RELOCATABLE_FRAMEWORKS so that ENABLE(EXPERIMENTAL_FEATURES) is defined properly for
        Cocoa builds.
        * Configurations/FeatureDefines.xcconfig: Don't build ENABLE_INPUT_TYPE_COLOR
        or ENABLE_INPUT_TYPE_COLOR_POPOVER.

2018-06-05  Brent Fulgham  <bfulgham@apple.com>

        Revise DEFAULT_EXPERIMENTAL_FEATURES_ENABLED to work properly on Apple builds
        https://bugs.webkit.org/show_bug.cgi?id=186286
        <rdar://problem/40782992>

        Reviewed by Dan Bernstein.

        Use the WK_RELOCATABLE_FRAMEWORKS flag (which is always defined for non-production builds)
        to define ENABLE(EXPERIMENTAL_FEATURES) so that we do not need to manually
        change this flag when preparing for a production release.

        * Configurations/FeatureDefines.xcconfig: Use WK_RELOCATABLE_FRAMEWORKS to determine
        whether experimental features should be enabled, and use it to properly define the
        feature flag.

2018-06-04  Dan Bernstein  <mitz@apple.com>

        Made PAL build with the macOS Mojave SDK.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:

2018-06-04  Wenson Hsieh  <wenson_hsieh@apple.com>

        [WebKit on watchOS] Remove all uses of the EXTRA_ZOOM_MODE compiler flag
        https://bugs.webkit.org/show_bug.cgi?id=186279

        Reviewed by Tim Horton.

        Replaces uses of ENABLE(EXTRA_ZOOM_MODE) with PLATFORM(WATCHOS).

        * pal/cf/CoreMediaSoftLink.h:
        * pal/spi/cocoa/AVKitSPI.h:

2018-05-30  Andy Estes  <aestes@apple.com>

        [Cocoa] Add an SPI to suppress connection termination errors from CFNetwork when network interfaces change
        https://bugs.webkit.org/show_bug.cgi?id=186107
        <rdar://problem/39338957>

        Reviewed by Brady Eidson.

        * pal/spi/cf/CFNetworkSPI.h: Declared new SPI.

2018-05-27  Dan Bernstein  <mitz@apple.com>

        Reverted the changes made for https://webkit.org/b/186016

        They broke the USE(APPLE_INTERNAL_SDK) Sierra build.

2018-05-25  Chris Dumez  <cdumez@apple.com>

        Drop support for NSURLCache in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=185990

        Reviewed by Geoffrey Garen.

        Drop support for NSURLCache in WebKit2 now that the WebKit network cache is stable.

        * pal/spi/cf/CFNetworkSPI.h:

2018-05-24  Jiewen Tan  <jiewen_tan@apple.com>

        Adopt SecKeyProxy SPI in certificate based challenge response code
        https://bugs.webkit.org/show_bug.cgi?id=185848
        <rdar://problem/34586181>

        Reviewed by Alex Christensen.

        Add SPIs to support SecKeyProxy and convert xpc_endpoint_t to NSXPCListenerEndpoint vice versa.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NSXPCConnectionSPI.h: Added.
        * pal/spi/cocoa/SecKeyProxySPI.h: Added.

2018-05-24  Chris Dumez  <cdumez@apple.com>

        Some of the work in initializeLogChannelsIfNecessary() is unnecessary for release builds
        https://bugs.webkit.org/show_bug.cgi?id=185951

        Reviewed by Geoffrey Garen.

        Some of the work in initializeLogChannelsIfNecessary() is unnecessary for release builds and slows down
        launch time. In particular, it is unnecessary to read NSDefaults to figure out which logging channels
        should be enabled.

        * pal/cocoa/LoggingCocoa.mm:
        (PAL::logLevelString):
        * pal/unix/LoggingUnix.cpp:
        (PAL::logLevelString):
        * pal/win/LoggingWin.cpp:
        (PAL::logLevelString):

2018-05-22  Simon Fraser  <simon.fraser@apple.com>

        Add notifyutil callbacks to dump the memory cache, and the list of live Pages and Documents
        https://bugs.webkit.org/show_bug.cgi?id=185853

        Reviewed by Keith Miller.
        
        Compile registerNotifyCallback in release builds.

        * pal/Logging.cpp:
        (PAL::registerNotifyCallback):
        * pal/Logging.h:

2018-05-22  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r232052.

        Breaks internal builds.

        Reverted changeset:

        "Use more C++17"
        https://bugs.webkit.org/show_bug.cgi?id=185176
        https://trac.webkit.org/changeset/232052

2018-05-21  Yusuke Suzuki  <utatane.tea@gmail.com>

        Use more C++17
        https://bugs.webkit.org/show_bug.cgi?id=185176

        Reviewed by JF Bastien.

        * Configurations/Base.xcconfig:

2018-05-21  Jer Noble  <jer.noble@apple.com>

        Complete fix for enabling modern EME by default
        https://bugs.webkit.org/show_bug.cgi?id=185770
        <rdar://problem/40368220>

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig:

2018-05-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r231982.
        https://bugs.webkit.org/show_bug.cgi?id=185793

        Caused layout test failures (Requested by realdawei on
        #webkit).

        Reverted changeset:

        "Complete fix for enabling modern EME by default"
        https://bugs.webkit.org/show_bug.cgi?id=185770
        https://trac.webkit.org/changeset/231982

2018-05-18  Jer Noble  <jer.noble@apple.com>

        Complete fix for enabling modern EME by default
        https://bugs.webkit.org/show_bug.cgi?id=185770
        <rdar://problem/40368220>

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig:

2018-05-16  Andy VanWagoner  <andy@vanwagoner.family>

        Add support for Intl NumberFormat formatToParts
        https://bugs.webkit.org/show_bug.cgi?id=185375

        Reviewed by Yusuke Suzuki.

        Add flag for NumberFormat formatToParts.

        * Configurations/FeatureDefines.xcconfig:

2018-05-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        PasteboardWebContent's dataInAttributedStringFormat fails to deserialize in the UI process when copying a selection
        https://bugs.webkit.org/show_bug.cgi?id=185667
        <rdar://problem/40135132>

        Reviewed by Tim Horton.

        Fixes error logging emitted when copying a text selection due to the secure archiver on iOS being unable to
        handle NSAttributedString in the builds where the errors manifest. USE_SECURE_ARCHIVER_FOR_ATTRIBUTED_STRING is
        defined to be 1, despite not having the fix for <rdar://problem/31376830>.

        * pal/spi/cocoa/NSKeyedArchiverSPI.h:

2018-05-11  Dan Bernstein  <mitz@apple.com>

        Follow-up build fix to r231721.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
          Unify the conditions between the header and the implementation files, and have watchOS and
          tvOS keyed off iOS.

2018-05-11  Jer Noble  <jer.noble@apple.com>

        Add CF_NOESCAPE decorators for tvOS and watchOS
        https://bugs.webkit.org/show_bug.cgi?id=185560

        Reviewed by Dan Bernstein.

        * pal/cf/CoreMediaSoftLink.h:

2018-05-08  Sihui Liu  <sihui_liu@apple.com>

        Adopt new async _savecookies SPI for keeping networking process active during flushing cookies
        https://bugs.webkit.org/show_bug.cgi?id=185261
        <rdar://problem/37214391>

        Reviewed by Chris Dumez.

        * pal/spi/cf/CFNetworkSPI.h:

2018-05-08  Dean Jackson  <dino@apple.com>

        Use thumbnails in System Previews
        https://bugs.webkit.org/show_bug.cgi?id=185397
        <rdar://problem/40039376>

        Reviewed by Jon Lee.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/ios/SystemPreviewSPI.h: New file holding the non-public parts of System Preview.

2018-05-04  Tim Horton  <timothy_horton@apple.com>

        Shift to a lower-level framework for simplifying URLs
        https://bugs.webkit.org/show_bug.cgi?id=185334

        Reviewed by Dan Bernstein.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/spi/cocoa/URLFormattingSPI.h: Renamed from Source/WebCore/PAL/pal/spi/cocoa/LinkPresentationSPI.h.

2018-05-03  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Provide audio route information when invoking AirPlay picker
        https://bugs.webkit.org/show_bug.cgi?id=185199
        <rdar://problem/39853103>

        Another attempt at an unreviewed build fix.

        * pal/spi/mac/AVFoundationSPI.h:

2018-05-02  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Provide audio route information when invoking AirPlay picker
        https://bugs.webkit.org/show_bug.cgi?id=185199
        <rdar://problem/39853103>

        Unreviewed, another attempted build fix.

        * pal/spi/mac/AVFoundationSPI.h:

2018-05-02  Alex Christensen  <achristensen@webkit.org>

        Add WKWebsiteDataStorePrivate._proxyConfiguration SPI
        https://bugs.webkit.org/show_bug.cgi?id=185179

        Reviewed by Andy Estes.

        * pal/spi/cf/CFNetworkSPI.h:

2018-05-02  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Provide audio route information when invoking AirPlay picker
        https://bugs.webkit.org/show_bug.cgi?id=185199
        <rdar://problem/39853103>

        Unreviewed build fix.

        * pal/spi/mac/AVFoundationSPI.h:

2018-05-02  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Provide audio route information when invoking AirPlay picker
        https://bugs.webkit.org/show_bug.cgi?id=185199
        <rdar://problem/39853103>

        Reviewed by Jer Noble.

        * pal/spi/mac/AVFoundationSPI.h: Add additional AVAudioSession SPI.

2018-05-01  Jer Noble  <jer.noble@apple.com>

        Protect against changes to CoreMedia function signatures
        https://bugs.webkit.org/show_bug.cgi?id=185167

        Reviewed by Eric Carlson.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:

2018-05-01  Oleksandr Skachkov  <gskachkov@gmail.com>

        WebAssembly: add support for stream APIs - JavaScript API
        https://bugs.webkit.org/show_bug.cgi?id=183442

        Reviewed by Yusuke Suzuki and JF Bastien.

        Add WEBASSEMBLY_STREAMING_API feature flag

        * Configurations/FeatureDefines.xcconfig:

2018-04-26  Jer Noble  <jer.noble@apple.com>

        WK_COCOA_TOUCH all the things.
        https://bugs.webkit.org/show_bug.cgi?id=185006

        Reviewed by Tim Horton.

        * Configurations/PAL.xcconfig:

2018-04-26  Per Arne Vollan  <pvollan@apple.com>

        Disable content filtering in minimal simulator mode
        https://bugs.webkit.org/show_bug.cgi?id=185027
        <rdar://problem/39736091>

        Reviewed by Jer Noble.

        * Configurations/FeatureDefines.xcconfig:

2018-04-26  Andy VanWagoner  <thetalecrafter@gmail.com>

        [INTL] Implement Intl.PluralRules
        https://bugs.webkit.org/show_bug.cgi?id=184312

        Reviewed by JF Bastien.

        Added Intl.PluralRules feature flag.

        * Configurations/FeatureDefines.xcconfig:

2018-04-24  Jer Noble  <jer.noble@apple.com>

        Don't add system framework paths to FRAMEWORK_SEARCH_PATHS
        https://bugs.webkit.org/show_bug.cgi?id=184786

        Reviewed by Tim Horton.

        * Configurations/PAL.xcconfig:

2018-04-23  Daniel Bates  <dabates@apple.com>

        Implement Same-Site cookies
        https://bugs.webkit.org/show_bug.cgi?id=159464
        <rdar://problem/27196358>

        Reviewed by Brent Fulgham.

        Forward declare some SPI.

        * pal/spi/cf/CFNetworkSPI.h:

2018-04-23  Zalan Bujtas  <zalan@apple.com>

        [LayoutFormattingContext] Initial commit.
        https://bugs.webkit.org/show_bug.cgi?id=184896

        Reviewed by Antti Koivisto.

        * Configurations/FeatureDefines.xcconfig:

2018-04-23  Daniel Bates  <dabates@apple.com>

        Implement Same-Site cookies
        https://bugs.webkit.org/show_bug.cgi?id=159464
        <rdar://problem/27196358>

        Reviewed by Brent Fulgham.

        Forward declare some SPI.

        * pal/spi/cf/CFNetworkSPI.h:

2018-04-20  Tim Horton  <timothy_horton@apple.com>

        Adjust geolocation feature flag
        https://bugs.webkit.org/show_bug.cgi?id=184856

        Reviewed by Wenson Hsieh.

        * Configurations/FeatureDefines.xcconfig:

2018-04-18  Jer Noble  <jer.noble@apple.com>

        Don't put build products into WK_ALTERNATE_WEBKIT_SDK_PATH for engineering builds
        https://bugs.webkit.org/show_bug.cgi?id=184762

        Reviewed by Dan Bernstein.

        * Configurations/CopyPALHeaders.xcconfig:
        * Configurations/PAL.xcconfig:

2018-04-19  David Kilzer  <ddkilzer@apple.com>

        Enable Objective-C weak references
        <https://webkit.org/b/184789>
        <rdar://problem/39571716>

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:
        (CLANG_ENABLE_OBJC_WEAK): Enable.

2018-04-17  Eric Carlson  <eric.carlson@apple.com>

        [iOS] AirPlay device name is sometimes wrong
        https://bugs.webkit.org/show_bug.cgi?id=184543
        <rdar://problem/39105498>

        Reviewed by Jer Noble.

        * pal/spi/mac/AVFoundationSPI.h: Declare more AVOutputContext SPI.

2018-04-16  Brent Fulgham  <bfulgham@apple.com>

        [macOS] Don't establish unneeded Dock connections
        https://bugs.webkit.org/show_bug.cgi?id=184664
        <rdar://problem/16863698>

        Reviewed by Simon Fraser.

        There is no reason for the WebContent or Plugin processes to interact with
        the Dock. We should tell AppKit that we don't want this connection, and to
        avoid creating such connections.

        * pal/spi/mac/NSApplicationSPI.h: Add Dock connection declaration.

2018-04-09  John Wilander  <wilander@apple.com>

        Refactor Ignore HSTS code
        https://bugs.webkit.org/show_bug.cgi?id=184433
        <rdar://problem/39298238>

        Reviewed by Darin Adler.

        This patch refactors our ignore HSTS code. The convenience functions are moved
        out of CFNetwork SPI in PAL, and into where they are used. It also switches
        from performSelector: calls to straight function calls, after checking that
        there is a responder.

        * pal/spi/cf/CFNetworkSPI.h:
        (schemeWasUpgradedDueToDynamicHSTS): Deleted.
        (setIgnoreHSTS): Deleted.
        (ignoreHSTS): Deleted.

2018-04-07  Timothy Hatcher  <timothy@apple.com>

        Use the system's link color when system appearance is desired for a WebView.

        https://bugs.webkit.org/show_bug.cgi?id=184353
        rdar://problem/9420053

        Reviewed by Wenson Hsieh.

        * pal/spi/cocoa/NSColorSPI.h: Added linkColor.

2018-04-05  John Wilander  <wilander@apple.com>

        Add necessary colon to CFNetwork selector
        https://bugs.webkit.org/show_bug.cgi?id=184335
        <rdar://problem/39213124>

        Reviewed by Brent Fulgham.

        * pal/spi/cf/CFNetworkSPI.h:
        (setIgnoreHSTS):

2018-04-04  Per Arne Vollan  <pvollan@apple.com>

        The layout test fast/canvas/canvas-blending-global-alpha.html is failing when the WebContent process does not have WindowServer access.
        https://bugs.webkit.org/show_bug.cgi?id=183752

        Reviewed by Brent Fulgham.

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-04-02  Eric Carlson  <eric.carlson@apple.com>

        Define AVKit softlink macro
        https://bugs.webkit.org/show_bug.cgi?id=184241

        Reviewed by Jer Noble.

        * pal/cf/CoreMediaSoftLink.h:

2018-03-23  Tim Horton  <timothy_horton@apple.com>

        Fix the !HAVE(APP_LINKS) build
        https://bugs.webkit.org/show_bug.cgi?id=183974

        Reviewed by Dan Bernstein.

        * pal/spi/cocoa/LaunchServicesSPI.h:
        This header is not very !HAVE(APP_LINKS) friendly.

2018-03-23  Tim Horton  <timothy_horton@apple.com>

        Fix the build with no pasteboard
        https://bugs.webkit.org/show_bug.cgi?id=183973

        Reviewed by Dan Bernstein.

        * Configurations/FeatureDefines.xcconfig:

2018-03-22  Tim Horton  <timothy_horton@apple.com>

        Adopt WK_ALTERNATE_FRAMEWORKS_DIR in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=183930
        <rdar://problem/38782249>

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:
        * Configurations/CopyPALHeaders.xcconfig:
        * Configurations/PAL.xcconfig:

2018-03-22  Tim Horton  <timothy_horton@apple.com>

        Improve readability of WebCore's OTHER_LDFLAGS
        https://bugs.webkit.org/show_bug.cgi?id=183909
        <rdar://problem/38760992>

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:
        * Configurations/FeatureDefines.xcconfig:

2018-03-21  Brent Fulgham  <bfulgham@apple.com>

        Remove temporary build fix now that underlying issue is resolved
        https://bugs.webkit.org/show_bug.cgi?id=183854
        <rdar://problem/37198715>

        Reviewed by Eric Carlson.

        The build environment issues that forced us to disable this setting
        have been corrected, so this should be turned on for all builds.

        * pal/spi/cf/CFNetworkSPI.h:

2018-03-20  Tim Horton  <timothy_horton@apple.com>

        Enable the minimal simulator feature flag when appropriate
        https://bugs.webkit.org/show_bug.cgi?id=183807

        Reviewed by Dan Bernstein.

        * Configurations/FeatureDefines.xcconfig:

2018-03-20  Tim Horton  <timothy_horton@apple.com>

        Add and adopt WK_PLATFORM_NAME and adjust default feature defines
        https://bugs.webkit.org/show_bug.cgi?id=183758
        <rdar://problem/38017644>

        Reviewed by Dan Bernstein.

        * Configurations/FeatureDefines.xcconfig:

2018-03-19  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, another quick fix for r229699

        Restricts ENABLE_WEB_AUTHN to only macOS and iOS.

        * Configurations/FeatureDefines.xcconfig:

2018-03-19  Eric Carlson  <eric.carlson@apple.com>

        [Extra zoom mode] Require fullscreen for video playback
        https://bugs.webkit.org/show_bug.cgi?id=183742
        <rdar://problem/38235862>

        Reviewed by Jer Noble.

        * pal/spi/cocoa/AVKitSPI.h:

2018-03-19  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, a quick fix for r229699

        * pal/spi/cocoa/DeviceIdentitySPI.h:

2018-03-17  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Implement authenticatorMakeCredential
        https://bugs.webkit.org/show_bug.cgi?id=183527
        <rdar://problem/35275886>

        Reviewed by Brent Fulgham.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/DeviceIdentitySPI.h: Copied from Source/WebKit/UIProcess/CredentialManagement/WebCredentialsMessengerProxy.h.

2018-03-14  Tim Horton  <timothy_horton@apple.com>

        Fix the build after r229567

        * Configurations/FeatureDefines.xcconfig:

2018-03-13  Dean Jackson  <dino@apple.com>

        Fix some build errors and cleanup QuickLookSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=183599

        Reviewed by Ryan Haddad.

        * pal/spi/ios/QuickLookSPI.h:

2018-03-12  Dean Jackson  <dino@apple.com>

        Add a WKWebViewContentProvider for system previews
        https://bugs.webkit.org/show_bug.cgi?id=183582
        <rdar://problem/38393569>

        Reviewed by Tim Horton.

        Add some QuickLook SPI.

        * pal/spi/ios/QuickLookSPI.h:

2018-03-12  Don Olmstead  <don.olmstead@sony.com>

        [CMake][Win] Forwarding headers of WTF and PAL are copied twice in Visual Studio builds
        https://bugs.webkit.org/show_bug.cgi?id=183240

        Reviewed by Alex Christensen.

        * pal/CMakeLists.txt:
        * pal/PlatformAppleWin.cmake:
        * pal/PlatformGTK.cmake:
        * pal/PlatformMac.cmake:
        * pal/PlatformWPE.cmake:
        * pal/PlatformWinCairo.cmake:

2018-03-12  Tim Horton  <timothy_horton@apple.com>

        Stop using SDK conditionals to control feature definitions
        https://bugs.webkit.org/show_bug.cgi?id=183430
        <rdar://problem/38251619>

        Reviewed by Dan Bernstein.

        * Configurations/FeatureDefines.xcconfig:
        * Configurations/WebKitTargetConditionals.xcconfig: Renamed.

2018-03-12  Yoav Weiss  <yoav@yoav.ws>

        Runtime flag for link prefetch and remove link subresource.
        https://bugs.webkit.org/show_bug.cgi?id=183540

        Reviewed by Chris Dumez.

        Remove the LINK_PREFETCH build time flag.

        * Configurations/FeatureDefines.xcconfig:

2018-03-12  Tim Horton  <timothy_horton@apple.com>

        Use a different SPI header for some AudioToolbox enums
        https://bugs.webkit.org/show_bug.cgi?id=183574
        <rdar://problem/38385889>

        Reviewed by Anders Carlsson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/AudioToolboxSPI.h: Added.

2018-03-07  Tim Horton  <timothy_horton@apple.com>

        Sort and separate FeatureDefines.xcconfig
        https://bugs.webkit.org/show_bug.cgi?id=183427

        Reviewed by Dan Bernstein.

        * Configurations/FeatureDefines.xcconfig:
        Sort and split FeatureDefines into paragraphs
        (to make it easier to sort later).

2018-03-05  Yusuke Suzuki  <utatane.tea@gmail.com>

        Fix std::make_unique / new[] using system malloc
        https://bugs.webkit.org/show_bug.cgi?id=182975

        Reviewed by JF Bastien.

        Use Vector instead.

        * pal/win/LoggingWin.cpp:
        (PAL::logLevelString):

2018-03-04  Yusuke Suzuki  <utatane.tea@gmail.com>

        [WTF] Move currentCPUTime and sleep(Seconds) to CPUTime.h and Seconds.h respectively
        https://bugs.webkit.org/show_bug.cgi?id=183312

        Reviewed by Mark Lam.

        Remove wtf/CurrentTime.h include pragma.

        * pal/system/ClockGeneric.cpp:

2018-03-04  Tim Horton  <timothy_horton@apple.com>

        Make !ENABLE(DATA_DETECTION) iOS build actually succeed
        https://bugs.webkit.org/show_bug.cgi?id=183283
        <rdar://problem/38062148>

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2018-03-01  Yusuke Suzuki  <utatane.tea@gmail.com>

        Remove monotonicallyIncreasingTime
        https://bugs.webkit.org/show_bug.cgi?id=182911

        Reviewed by Michael Catanzaro.

        * pal/system/ClockGeneric.cpp:
        (PAL::ClockGeneric::currentTime const):
        (PAL::ClockGeneric::now const):
        * pal/system/ClockGeneric.h:

2018-02-27  Tim Horton  <timothy_horton@apple.com>

        Stop using deprecated CADisplay SPI
        https://bugs.webkit.org/show_bug.cgi?id=183150
        <rdar://problem/37918297>

        Reviewed by Simon Fraser.

        * pal/spi/cocoa/QuartzCoreSPI.h:
        Switch to the more modern way of getting the display name.

2018-02-27  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r229055.

        Breaks internal builds.

        Reverted changeset:

        "Stop using deprecated CADisplay SPI"
        https://bugs.webkit.org/show_bug.cgi?id=183150
        https://trac.webkit.org/changeset/229055

2018-02-27  Tim Horton  <timothy_horton@apple.com>

        Stop using deprecated CADisplay SPI
        https://bugs.webkit.org/show_bug.cgi?id=183150
        <rdar://problem/37918297>

        Reviewed by Simon Fraser.

        * pal/spi/cocoa/QuartzCoreSPI.h:
        Switch to the more modern way of getting the display name.

2018-02-20  Tim Horton  <timothy_horton@apple.com>

        Introduce HAVE(IOSURFACE_ACCELERATOR)
        https://bugs.webkit.org/show_bug.cgi?id=182955
        <rdar://problem/37699510>

        Reviewed by Sam Weinig.

        * pal/spi/cg/CoreGraphicsSPI.h:
        * pal/spi/cocoa/IOSurfaceSPI.h:
        * pal/spi/cocoa/QuartzCoreSPI.h:

2018-02-15  Tim Horton  <timothy_horton@apple.com>

        Stop using EXCLUDED_SOURCE_FILE_NAMES for actual source files in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=182822

        Reviewed by Dan Bernstein.

        * Configurations/PAL.xcconfig:
        * pal/system/Sound.cpp:
        * pal/system/mac/SoundMac.mm:
        * pal/text/KillRing.cpp:
        * pal/text/mac/KillRingMac.mm:

2018-02-09  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Make PAL headers copies
        https://bugs.webkit.org/show_bug.cgi?id=182645

        Reviewed by Alex Christensen.

        * pal/CMakeLists.txt:
        * pal/PlatformAppleWin.cmake:
        * pal/PlatformGTK.cmake:
        * pal/PlatformMac.cmake:
        * pal/PlatformWPE.cmake:
        * pal/PlatformWin.cmake:
        * pal/PlatformWinCairo.cmake:

2018-01-30  Myles C. Maxfield  <mmaxfield@apple.com>

        A disallowed user-installed font may be used if its PostScript name is specified
        https://bugs.webkit.org/show_bug.cgi?id=180951

        Reviewed by Brent Fulgham.

        * pal/spi/cocoa/CoreTextSPI.h:

2018-01-29  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Add a compile-time feature flag
        https://bugs.webkit.org/show_bug.cgi?id=182211
        <rdar://problem/36936365>

        Reviewed by Brent Fulgham.

        * Configurations/FeatureDefines.xcconfig:

2018-01-27  Dan Bernstein  <mitz@apple.com>

        HaveInternalSDK includes should be "#include?"
        https://bugs.webkit.org/show_bug.cgi?id=179670

        * Configurations/Base.xcconfig:

2018-01-24  Alex Christensen  <achristensen@webkit.org>

        Fix Windows build after r227552
        https://bugs.webkit.org/show_bug.cgi?id=182026

        * pal/spi/cg/CoreGraphicsSPI.h:

2018-01-24  Alex Christensen  <achristensen@webkit.org>

        Remove pre-Sierra-OS-specific code in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=182026

        Reviewed by Tim Horton.

        * pal/spi/cf/CFNetworkSPI.h:
        * pal/spi/cg/CoreGraphicsSPI.h:
        * pal/spi/cocoa/DataDetectorsCoreSPI.h:
        * pal/spi/cocoa/QuartzCoreSPI.h:
        * pal/spi/mac/AVFoundationSPI.h:
        * pal/spi/mac/NSMenuSPI.h:
        * pal/spi/mac/NSScrollingMomentumCalculatorSPI.h:
        * pal/spi/mac/PIPSPI.h:

2018-01-23  Dean Jackson  <dino@apple.com>

        REGRESSION (r222961?): sRGB images shown in WebGL are over-saturated on a wide gamut monitor
        https://bugs.webkit.org/show_bug.cgi?id=182033
        <rdar://problem/36377780>

        Reviewed by Antoine Quint.

        Expose an IOSurface colorspace property name, and a function to serialize a CGColorSpace.

        * pal/spi/cg/CoreGraphicsSPI.h:
        * pal/spi/cocoa/IOSurfaceSPI.h:

2018-01-23  Michael Catanzaro  <mcatanzaro@igalia.com>

        [WPE][GTK] Sleep inhibitors do not work under Flatpak
        https://bugs.webkit.org/show_bug.cgi?id=180812

        Reviewed by Carlos Garcia Campos.

        Ensure SleepDisablerGLib works even when running inside a Flatpak sandbox by using the
        Freedesktop inhibit portal D-Bus API.

        Unfortunately this has to be tested manually.

        * pal/system/glib/SleepDisablerGLib.cpp:
        (PAL::SleepDisablerGLib::SleepDisablerGLib):
        (PAL::SleepDisablerGLib::~SleepDisablerGLib):
        (PAL::SleepDisablerGLib::acquireInhibitor):
        (PAL::SleepDisablerGLib::acquireInhibitorViaScreenSaverProxy):
        (PAL::SleepDisablerGLib::acquireInhibitorViaInhibitPortalProxy):
        (PAL::SleepDisablerGLib::releaseInhibitor):
        (PAL::SleepDisablerGLib::releaseInhibitorViaScreenSaverProxy):
        (PAL::SleepDisablerGLib::releaseInhibitorViaInhibitPortalProxy):

2018-01-22  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Support font collections
        https://bugs.webkit.org/show_bug.cgi?id=181826
        <rdar://problem/36455137>

        Reviewed by Dean Jackson.

        * pal/spi/cocoa/CoreTextSPI.h:

2018-01-21  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add a new feature flag for EXTRA_ZOOM_MODE and reintroduce AdditionalFeatureDefines.h
        https://bugs.webkit.org/show_bug.cgi?id=181918

        Reviewed by Tim Horton.

        Add EXTRA_ZOOM_MODE to FeatureDefines.xconfig (off by default).

        * Configurations/FeatureDefines.xcconfig:

2018-01-18  Dan Bernstein  <mitz@apple.com>

        [Xcode] Streamline and future-proof target-macOS-version-dependent build setting definitions
        https://bugs.webkit.org/show_bug.cgi?id=181803

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig: Updated.
        * Configurations/DebugRelease.xcconfig: Ditto.
        * Configurations/FeatureDefines.xcconfig: Adopted macOSTargetConditionals helpers.
        * Configurations/Version.xcconfig: Updated.
        * Configurations/macOSTargetConditionals.xcconfig: Added. Defines helper build settings
          useful for defining settings that depend on the target macOS version.

2018-01-17  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Block cookies for prevalent resources without user interaction
        https://bugs.webkit.org/show_bug.cgi?id=177394
        <rdar://problem/34613960>

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:
            Declaration of _initWithIdentifier() on NSHTTPCookieStorage.

2018-01-17  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r227098.

        This broke the build.

        Reverted changeset:

        "Remove linked-on test for Snow Leopard"
        https://bugs.webkit.org/show_bug.cgi?id=181770
        https://trac.webkit.org/changeset/227098

2018-01-17  Dean Jackson  <dino@apple.com>

        Remove linked-on test for Snow Leopard
        https://bugs.webkit.org/show_bug.cgi?id=181770

        Reviewed by Eric Carlson.

        No need for _CFExecutableLinkedOnOrAfter any more.

        * pal/spi/cf/CFUtilitiesSPI.h:

2018-01-17  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r227076.

        This breaks internal builds

        Reverted changeset:

        "Resource Load Statistics: Block cookies for prevalent
        resources without user interaction"
        https://bugs.webkit.org/show_bug.cgi?id=177394
        https://trac.webkit.org/changeset/227076

2018-01-17  John Wilander  <wilander@apple.com>

        Resource Load Statistics: Block cookies for prevalent resources without user interaction
        https://bugs.webkit.org/show_bug.cgi?id=177394
        <rdar://problem/34613960>

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:
            Declaration of _initWithIdentifier() on NSHTTPCookieStorage.

2018-01-16  Michael Catanzaro  <mcatanzaro@igalia.com>

        PAL should link to JavaScriptCore rather than WTF
        https://bugs.webkit.org/show_bug.cgi?id=181683

        Reviewed by Konstantin Tokarev.

        Currently we are accidentally linking WTF into both libjavascriptcoregtk and libwebkit2gtk,
        which could in theory cause problems similar to bug #179914. There are only two possible
        solutions:

         - Ensure WTF always built as a shared library if JavaScriptCore is built as a shared
           library
         - Change PAL to link to JavaScriptCore instead of WTF

        The problem here is caused by layer hopping. It can never be a problem if each library only
        links to the next lowest-layered library.

        The downside is this allows PAL to use JavaScriptCore symbols, which is not super desirable.
        I came up with a hack yesterday for PAL to link to WTF usually, but link to JavaScriptCore
        instead if ${JavaScriptCore_LIBRARY_TYPE} MATCHES "SHARED" AND ${WTF_LIBRARY_TYPE} MATCHES
        "STATIC". But that is getting too complex and introduces more possibility for platform-
        dependent build failures. Better to just accept that PAL will depend on JavaScriptCore.

        Note: I'm not brave enough to update the XCode build. We can use that to enforce that no
        JavaScriptCore symbols actually get used, I guess....

        * pal/CMakeLists.txt:

2018-01-15  Michael Catanzaro  <mcatanzaro@igalia.com>

        Improve use of ExportMacros
        https://bugs.webkit.org/show_bug.cgi?id=181652

        Reviewed by Konstantin Tokarev.

        Remove a comment.

        * pal/ExportMacros.h:

2018-01-11  Keith Miller  <keith_miller@apple.com>

        Rename ENABLE_ASYNC_ITERATION to ENABLE_JS_ASYNC_ITERATION
        https://bugs.webkit.org/show_bug.cgi?id=181573

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2018-01-10  Per Arne Vollan  <pvollan@apple.com>

        VoiceOver does not work when the WebContent process is using NSRunLoop.
        https://bugs.webkit.org/show_bug.cgi?id=181331
        <rdar://problem/36408004>

        Reviewed by Brent Fulgham.

        Add NSApplication class method to initialize accessibility.

        * pal/spi/mac/NSApplicationSPI.h:

2018-01-05  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Add Mac screen capture source
        https://bugs.webkit.org/show_bug.cgi?id=181333
        <rdar://problem/36323219>

        Reviewed by Dean Jackson.

        * pal/spi/cg/CoreGraphicsSPI.h: Declare some CGDisplayMode SPI.

2018-01-03  Ting-Wei Lan  <lantw44@gmail.com>

        Replace hard-coded paths in shebangs with #!/usr/bin/env
        https://bugs.webkit.org/show_bug.cgi?id=181040

        Reviewed by Alex Christensen.

        * AVFoundationSupport.py:

2018-01-03  Per Arne Vollan  <pvollan@apple.com>

        [Win] WebKitLegacy compile error.
        https://bugs.webkit.org/show_bug.cgi?id=181257
        rdar://problem/36273774

        Reviewed by Alex Christensen.

        The include file 'pal/text/UnencodableHandling.h' is not found. Add folder to list of forwarding
        headers directories.
 
        * pal/PlatformWin.cmake:

2018-01-02  Brent Fulgham  <bfulgham@apple.com>

        [macOS, iOS] Adopt new secure coding APIs in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=181085
        <rdar://problem/34837397>

        Reviewed by Tim Horton.

        Add a new helper function to allow WebKit code to use NSSecureCoding in more
        places when the underlying operating system supports it.

        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        (decodeObjectOfClassForKeyFromCoder): New wrapper method.

2017-12-21  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed test fix after r226224.
        <rdar://problem/36185975>

        Pasteboard data is more than a dictionary. We have to whitelist NSString
        and NSArray as well. Change method name to reflect that we take a whitelist
        of classes that are allowed to be unarchived in the call.
        
        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        (unarchivedObjectOfClassesFromData):
        (unarchivedObjectOfClassFromData): Deleted.

2017-12-21  Jeremy Jones  <jeremyj@apple.com>

        Update FULLSCREEN_API feature defines.
        https://bugs.webkit.org/show_bug.cgi?id=181015

        Reviewed by Tim Horton.

        Change enabled iphone sdk for FULLSCREEN_API.

        * Configurations/FeatureDefines.xcconfig:

2017-12-21  Brent Fulgham  <bfulgham@apple.com>

        Adopt new secure coding APIs in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=178484
        <rdar://problem/34837193>

        Reviewed by Eric Carlson.

        Due to <rdar://problem/31376830 we cannot used SecureCoding on NSAttributedString
        in some cases. Add a macro for OS revisions that do not support secure coding,
        and use the standard unarchive operation for NSAttributedString in those cases.

        Rename 'insecurelyUnarchiveObjectOfClassFromData' to 'insecurelyUnarchiveObjectFromData',
        and move it earlier in the file so that it can be reused in 'unarchivedObjectOfClassFromData'.

        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        (insecurelyUnarchiveObjectFromData): Renamed from insecurelyUnarchiveObjectOfClassFromData.
        (unarchivedObjectOfClassFromData): Renamed from 'securelyUnarchiveObjectOfClassFromData' and
        modified to use 'insecurelyUnarchiveObjectFromData'.
        (securelyUnarchiveObjectOfClassFromData): Deleted.
        (insecurelyUnarchiveObjectOfClassFromData): Deleted.

2017-12-21  Jeremy Jones  <jeremyj@apple.com>

        Element fullscreen interface should display the location
        https://bugs.webkit.org/show_bug.cgi?id=181006
        rdar://problem/36143176

        Reviewed by Simon Fraser.

        Add iOS availability check.

        * pal/spi/cocoa/LinkPresentationSPI.h:

2017-12-20  Daniel Bates  <dabates@apple.com>

        Remove Alternative Presentation Button
        https://bugs.webkit.org/show_bug.cgi?id=180500
        <rdar://problem/35891047>

        Reviewed by Simon Fraser.

        We no longer need the alternative presentation button.

        * Configurations/FeatureDefines.xcconfig:

2017-12-20  Andy Estes  <aestes@apple.com>

        [Apple Pay] Tell PassKit whether Apple Pay JS or Payment Request was used to start an Apple Pay session
        https://bugs.webkit.org/show_bug.cgi?id=181001
        <rdar://problem/35479106>

        Reviewed by Tim Horton.

        * pal/spi/cocoa/PassKitSPI.h:

2017-12-19  Andy Estes  <aestes@apple.com>

        [Apple Pay] Stop maintaining a list of payment networks
        https://bugs.webkit.org/show_bug.cgi?id=180965
        <rdar://problem/34696560>

        Reviewed by Tim Horton.

        * pal/spi/cocoa/PassKitSPI.h: Defined +[PKPaymentRequest availableNetworks].

2017-12-14  David Kilzer  <ddkilzer@apple.com>

        Fix 32-bit build: Enable -Wstrict-prototypes for WebKit
        <https://webkit.org/b/180757>
        <rdar://problem/36024132>

        * pal/spi/mac/QuickDrawSPI.h:
        (NewRgn): Add 'void' to C function declaration.
        (PenNormal): Ditto.

2017-12-14  David Kilzer  <ddkilzer@apple.com>

        Enable -Wstrict-prototypes for WebKit
        <https://webkit.org/b/180757>
        <rdar://problem/36024132>

        Rubber-stamped by Joseph Pecoraro.

        * Configurations/Base.xcconfig:
        (CLANG_WARN_STRICT_PROTOTYPES): Add. Set to YES.

2017-12-11  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed build fix after r225766.

        * pal/spi/mac/AVFoundationSPI.h:
        Conform AVStreamDataParser to the AVContentKeyRecipient protocol if available.

2017-12-11  David Quesada  <david_quesada@apple.com>

        Turn on ENABLE_APPLICATION_MANIFEST
        https://bugs.webkit.org/show_bug.cgi?id=180562
        rdar://problem/35924737

        Reviewed by Geoffrey Garen.

        * Configurations/FeatureDefines.xcconfig:

2017-12-08  Konstantin Tokarev  <annulen@yandex.ru>

        [python] Replace print operator with print() function for python3 compatibility
        https://bugs.webkit.org/show_bug.cgi?id=180592

        Reviewed by Michael Catanzaro.

        * AVFoundationSupport.py:

2017-12-08  Eric Carlson  <eric.carlson@apple.com>

        Move Logger from PAL to WTF so it can be used outside of WebCore
        https://bugs.webkit.org/show_bug.cgi?id=180561

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj:
        * pal/Logger.h: Removed.
        * pal/LoggerHelper.h: Removed.

2017-12-07  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Add SPI to disallow user-installed fonts
        https://bugs.webkit.org/show_bug.cgi?id=180062
        <rdar://problem/35042408>

        Reviewed by Simon Fraser.

        * pal/spi/cocoa/CoreTextSPI.h:

2017-12-02  Darin Adler  <darin@apple.com>

        Modernize some aspects of text codecs, eliminate WebKit use of strcasecmp
        https://bugs.webkit.org/show_bug.cgi?id=180009

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj: Added UnencodableHandling.h.
        * pal/text/UnencodableHandling.h: Moved the UnencodableHandling enumeration
        here from TextCodec.h and changed it to an enum class.

2017-12-04  David Quesada  <david_quesada@apple.com>

        Add a class for parsing application manifests
        https://bugs.webkit.org/show_bug.cgi?id=177973
        rdar://problem/34747949

        Reviewed by Geoffrey Garen.

        * Configurations/FeatureDefines.xcconfig: Add ENABLE_APPLICATION_MANIFEST feature flag.

2017-12-04  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed WPE build fix.

        * pal/PlatformWPE.cmake: Use GLIB_INCLUDE_DIRS for building the PAL library.

2017-12-04  Michael Catanzaro  <mcatanzaro@igalia.com>

        [WPE][GTK] Implement PAL::SleepDisabler
        https://bugs.webkit.org/show_bug.cgi?id=178485

        Reviewed by Carlos Garcia Campos.

        * pal/PlatformGTK.cmake:
        * pal/PlatformWPE.cmake:
        * pal/system/SleepDisabler.cpp:
        * pal/system/glib/SleepDisablerGLib.cpp: Added.
        (PAL::SleepDisabler::create):
        (PAL::SleepDisablerGLib::SleepDisablerGLib):
        (PAL::SleepDisablerGLib::~SleepDisablerGLib):
        (PAL::SleepDisablerGLib::acquireInhibitor):
        (PAL::SleepDisablerGLib::releaseInhibitor):
        * pal/system/glib/SleepDisablerGLib.h: Added.

2017-11-30  Stephan Szabo  <stephan.szabo@sony.com>

        Make LegacyCustomProtocolManager optional for network process
        https://bugs.webkit.org/show_bug.cgi?id=176230

        Reviewed by Alex Christensen.

        * Configurations/FeatureDefines.xcconfig:

2017-11-29  Brent Fulgham  <bfulgham@apple.com>

        Part 2: Adopt updated NSKeyed[Un]Archiver API when available
        https://bugs.webkit.org/show_bug.cgi?id=180127
        <rdar://problem/35710738>

        Reviewed by Simon Fraser.

        The API that accepts a user-allocated NSMutableData is deprecated. Switch (for macOS 10.12 and newer)
        to the modern API. Use the original API for macOS builds prior to 10.12.

        * pal/spi/cocoa/NSKeyedArchiverSPI.h:
        (secureArchiver): Added.
        (secureArchiverFromMutableData): Deleted.

2017-11-29  Alex Christensen  <achristensen@webkit.org>

        Fix Mac CMake build.

        * pal/PlatformMac.cmake:

2017-11-28  Brent Fulgham  <bfulgham@apple.com>

        Adopt updated NSKeyed[Un]Archiver API when available
        https://bugs.webkit.org/show_bug.cgi?id=180127
        <rdar://problem/35710738>

        Reviewed by Alex Christensen.

        Add new convenience methods (and SPI headers) so we can adopt new NSKeyedArchiver
        API that uses secure coding by default.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NSKeyedArchiverSPI.h: Added.
        (securelyArchivedDataWithRootObject): New convenience method.
        (securelyUnarchiveRootObjectOfClassFromData): Ditto.
        (secureArchiverFromMutableData): Ditto.
        (secureUnarchiverFromData): Ditto.

2017-11-28  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (High Sierra): Layout Test fast/multicol/newmulticol/spanner2.html is a flaky image failure on WK1
        https://bugs.webkit.org/show_bug.cgi?id=177826
        <rdar://problem/34876498>

        Reviewed by Alexey Proskuryakov.

        * pal/spi/cg/CoreGraphicsSPI.h:

2017-11-27  Tim Horton  <timothy_horton@apple.com>

        One too many zeroes in macOS version number in FeatureDefines
        https://bugs.webkit.org/show_bug.cgi?id=180011

        Reviewed by Dan Bernstein.

        * Configurations/FeatureDefines.xcconfig:

2017-11-19  Tim Horton  <timothy_horton@apple.com>

        Remove unused TOUCH_ICON_LOADING feature flag
        https://bugs.webkit.org/show_bug.cgi?id=179873

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2017-11-19  Tim Horton  <timothy_horton@apple.com>

        Remove unused LEGACY_VENDOR_PREFIXES feature flag
        https://bugs.webkit.org/show_bug.cgi?id=179872

        Reviewed by Darin Adler.

        * Configurations/FeatureDefines.xcconfig:

2017-11-16  Daniel Bates  <dabates@apple.com>

        Add feature define for alternative presentation button element
        https://bugs.webkit.org/show_bug.cgi?id=179692
        Part of <rdar://problem/34917108>

        Reviewed by Andy Estes.

        Only enabled on Cocoa platforms by default.

        * Configurations/FeatureDefines.xcconfig:

2017-11-14  Daniel Bates  <dabates@apple.com>

        Update comment in FeatureDefines.xcconfig to reflect location of Visual Studio property files
        for feature defines

        Following r195498 and r201917 the Visual Studio property files for feature defines have
        moved from directory WebKitLibraries/win/tools/vsprops to directory Source/cmake/tools/vsprops.
        Update the comment in FeatureDefines.xcconfig to reflect the new location and names of these
        files.

        * Configurations/FeatureDefines.xcconfig:

2017-11-08  Keith Miller  <keith_miller@apple.com>

        Async iteration should only fetch the next method once and add feature flag
        https://bugs.webkit.org/show_bug.cgi?id=179451

        Reviewed by Geoffrey Garen.

        Add feature flag for Async iteration.

        * Configurations/FeatureDefines.xcconfig:

2017-11-10  John Wilander  <wilander@apple.com>

        Ignore HSTS for partitioned, cross-origin subresource requests
        https://bugs.webkit.org/show_bug.cgi?id=178993
        <rdar://problem/34962462>

        Reviewed by Brent Fulgham.

        * pal/spi/cf/CFNetworkSPI.h:
            Added
            - (BOOL)_schemeWasUpgradedDueToDynamicHSTS
            - (BOOL)_preventHSTSStorage
            - (BOOL)_ignoreHSTS
            - (void)_setPreventHSTSStorage:(BOOL)preventHSTSStorage
            - (void)_setIgnoreHSTS:(BOOL)ignoreHSTS


2017-11-09  Dan Bernstein  <mitz@apple.com>

        [Xcode] An extra copy of FileSizeFormatter.h is installed in /usr/local/include
        https://bugs.webkit.org/show_bug.cgi?id=179525

        Reviewed by Wenson Hsieh.

        * PAL.xcodeproj/project.pbxproj: Demoted FileSizeFormatter.h to a project header in the PAL target. The
          Copy PAL Headers target takes care of installing this header under /usr/local/include/pal.

2017-11-09  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r224661.

        Broke build on several internal Mac/iOS bots

        Reverted changeset:

        "Ignore HSTS for partitioned, cross-origin subresource
        requests"
        https://bugs.webkit.org/show_bug.cgi?id=178993
        https://trac.webkit.org/changeset/224661

2017-11-09  John Wilander  <wilander@apple.com>

        Ignore HSTS for partitioned, cross-origin subresource requests
        https://bugs.webkit.org/show_bug.cgi?id=178993
        <rdar://problem/34962462>

        Reviewed by Brent Fulgham.

        * pal/spi/cf/CFNetworkSPI.h:
            Added
            - (BOOL)_schemeWasUpgradedDueToDynamicHSTS
            - (BOOL)_preventHSTSStorage
            - (BOOL)_ignoreHSTS
            - (void)_setPreventHSTSStorage:(BOOL)preventHSTSStorage
            - (void)_setIgnoreHSTS:(BOOL)ignoreHSTS


2017-11-08  Jeremy Jones  <jeremyj@apple.com>

        HTMLMediaElement should not use element fullscreen on iOS
        https://bugs.webkit.org/show_bug.cgi?id=179418
        rdar://problem/35409277

        Reviewed by Eric Carlson.

        Add ENABLE_VIDEO_USES_ELEMENT_FULLSCREEN to determine if HTMLMediaElement should use element full screen or not.

        * Configurations/FeatureDefines.xcconfig:

2017-11-06  Said Abou-Hallawa  <sabouhallawa@apple.com>

        [CG] Adopt CGContextDrawPathDirect()
        https://bugs.webkit.org/show_bug.cgi?id=179339
        <rdar://problem/26283575>

        Reviewed by Simon Fraser.

        Add CGContextDrawPathDirect() as a new CoreGraphics SPI.

        * pal/spi/cg/CoreGraphicsSPI.h:

2017-11-02  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r224353.

        Breaks internal builds.

        Reverted changeset:

        "Ignore HSTS for partitioned, cross-origin subresource
        requests"
        https://bugs.webkit.org/show_bug.cgi?id=178993
        https://trac.webkit.org/changeset/224353

2017-11-02  John Wilander  <wilander@apple.com>

        Ignore HSTS for partitioned, cross-origin subresource requests
        https://bugs.webkit.org/show_bug.cgi?id=178993
        <rdar://problem/34962462>

        Reviewed by Brent Fulgham and Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:
            Added
            - (BOOL)_schemeWasUpgradedDueToDynamicHSTS
            - (BOOL)_preventHSTSStorage
            - (BOOL)_ignoreHSTS
            - (void)_setPreventHSTSStorage:(BOOL)preventHSTSStorage
            - (void)_setIgnoreHSTS:(BOOL)ignoreHSTS

2017-11-02  Frederic Wang  <fwang@igalia.com>

        Add references to bug 179167 in FIXME comments
        https://bugs.webkit.org/show_bug.cgi?id=179168

        Reviewed by Daniel Bates.

        * Configurations/FeatureDefines.xcconfig:

2017-11-01  Jeremy Jones  <jeremyj@apple.com>

        Implement WKFullscreenWindowController for iOS.
        https://bugs.webkit.org/show_bug.cgi?id=178924
        rdar://problem/34697120

        Reviewed by Simon Fraser.

        Enable ENABLE_FULLSCREEN_API for iOS;

        * Configurations/FeatureDefines.xcconfig:

2017-11-01  Daniel Bates  <dabates@apple.com>

        XMLHttpRequest should not sniff content encoding
        https://bugs.webkit.org/show_bug.cgi?id=175597
        <rdar://problem/34912624>

        Reviewed by Alex Christensen.

        Forward declare CFNetwork SPI.

        * pal/spi/cf/CFNetworkSPI.h:

2017-10-31  Tim Horton  <timothy_horton@apple.com>

        Clean up some drag and drop feature flags
        https://bugs.webkit.org/show_bug.cgi?id=179082

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2017-10-31  Tim Horton  <timothy_horton@apple.com>

        Fix up some content filtering feature flags
        https://bugs.webkit.org/show_bug.cgi?id=179079

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:

2017-10-31  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Attachment Support] Implement WKWebView SPI for inserting attachment elements
        https://bugs.webkit.org/show_bug.cgi?id=179013
        <rdar://problem/35249668>

        Reviewed by Tim Horton.

        Add a PAL library function to convert a file size to a human-readable string. On Cocoa platforms, this is a
        wrapper around NSLocalizedFileSizeDescription; otherwise, we fall back to a naive platform-agnostic
        implementation in FileSizeFormatter.cpp.

        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/FileSizeFormatter.cpp: Added.
        (fileSizeDescription):
        * pal/FileSizeFormatter.h: Added.
        * pal/cocoa/FileSizeFormatterCocoa.mm: Added.
        (fileSizeDescription):
        * pal/spi/cocoa/NSFileSizeFormatterSPI.h: Added.

2017-10-27  Keith Miller  <keith_miller@apple.com>

        Move iOS specific sources to unified sources
        https://bugs.webkit.org/show_bug.cgi?id=178915

        Rubber-stamped by Tim Horton.

        * pal/spi/cocoa/QuartzCoreSPI.h: Add missing pragma once.

2017-10-26  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r223908.

        Causes LayoutTest crashes with newer SDKs.

        Reverted changeset:

        "Adopt new secure coding APIs"
        https://bugs.webkit.org/show_bug.cgi?id=178484
        https://trac.webkit.org/changeset/223908

2017-10-24  Eric Carlson  <eric.carlson@apple.com>

        Web Inspector: Enable WebKit logging configuration and display
        https://bugs.webkit.org/show_bug.cgi?id=177027
        <rdar://problem/33964767>

        Reviewed by Joseph Pecoraro.

        * pal/Logger.h:
        (PAL::Logger::willLog const): Always return true for Always and Error so those messages are
            always logged to the system.
        (PAL::Logger::log): Always log Always and Error to the system, but pay strict attention to level
            and channel state for logging to observers so logging only shows up in the inspector when
            explicitly enabled by the user. 

2017-10-24  Brent Fulgham  <bfulgham@apple.com>

        Adopt new secure coding APIs
        https://bugs.webkit.org/show_bug.cgi?id=178484
        <rdar://problem/34837193>

        Reviewed by Tim Horton.

        Add new convenience methods (and SPI headers) so we can adopt new NSKeyedArchiver
        API that uses secure coding by default.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NSKeyedArchiverSPI.h: Added.
        (securelyArchivedDataWithRootObject): New convenience method.
        (securelyUnarchiveRootObjectOfClassFromData): Ditto.
        (secureArchiverFromMutableData): Ditto.
        (secureUnarchiverFromData): Ditto.

2017-10-24  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r223889.

        This caused multiple crashes on all platforms

        Reverted changeset:

        "Adopt new secure coding APIs"
        https://bugs.webkit.org/show_bug.cgi?id=178484
        https://trac.webkit.org/changeset/223889

2017-10-24  Brent Fulgham  <bfulgham@apple.com>

        Adopt new secure coding APIs
        https://bugs.webkit.org/show_bug.cgi?id=178484
        <rdar://problem/34837193>

        Reviewed by Tim Horton.

        Add new convenience methods (and SPI headers) so we can adopt new NSKeyedArchiver
        API that uses secure coding by default.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/NSKeyedArchiverSPI.h: Added.
        (securelyArchivedDataWithRootObject): New convenience method.
        (securelyUnarchiveRootObjectOfClassFromData): Ditto.
        (secureArchiverFromMutableData): Ditto.
        (secureUnarchiverFromData): Ditto.

2017-10-20  Alex Christensen  <achristensen@webkit.org>

        Expose _boundInterfaceIdentifier and _allowsCellularAccess to WKWebsiteDataStorePrivate
        https://bugs.webkit.org/show_bug.cgi?id=178418
        <rdar://problem/29599569>

        Reviewed by Tim Horton.

        * pal/spi/cf/CFNetworkSPI.h:

2017-10-20  Antoine Quint  <graouts@apple.com>

        [Web Animations] Provide basic timeline and animation interfaces
        https://bugs.webkit.org/show_bug.cgi?id=178526

        Reviewed by Dean Jackson.

        Remove the WEB_ANIMATIONS compile-time flag.

        * Configurations/FeatureDefines.xcconfig:

2017-10-19  Daniel Bates  <dabates@apple.com>

        Use "= default" to denote default constructor or destructor
        https://bugs.webkit.org/show_bug.cgi?id=178528

        Rubber-stamped by Andy Estes.

        * pal/Logger.h:
        (PAL::Logger::Observer::~Observer): Deleted.
        * pal/crypto/gcrypt/CryptoDigestGCrypt.cpp:
        * pal/system/SleepDisabler.cpp:
        * pal/system/SystemSleepListener.h:

2017-10-17  Keith Miller  <keith_miller@apple.com>

        Change WebCore sources to work with unified source builds
        https://bugs.webkit.org/show_bug.cgi?id=178229

        Rubber stamped by Tim Horton.

        Move soft linking code from WebCore to PAL.

        * Configurations/FeatureDefines.xcconfig:
        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/spi/cocoa/NSAttributedStringSPI.h:

2017-10-13  Adrian Perez de Castro  <aperez@igalia.com>

        [WPE][GTK] Provide an implementation of PAL::logLevelString()
        https://bugs.webkit.org/show_bug.cgi?id=178263

        Reviewed by Carlos Alberto Lopez Perez.

        Provide an implementation of PAL::logLevelString() which picks the value from the
        WEBCORE_DEBUG environment variable. Logging of notImplemented() calls is always enabled,
        which is the same behavior as in WebCore::logLevelString().

        * pal/PlatformGTK.cmake: Add LoggingUnix.cpp to the list of sources.
        * pal/PlatformWPE.cmake: Add LoggingUnix.cpp to the list of sources.
        * pal/unix/LoggingUnix.cpp: Added.
        (PAL::logLevelString):

2017-10-13  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix; add definitions for IOSurface methods missing on some platforms.

        * pal/spi/cocoa/IOSurfaceSPI.h:

2017-10-12  Myles C. Maxfield  <mmaxfield@apple.com>

        [Win] Build fix after r223206
        https://bugs.webkit.org/show_bug.cgi?id=171523

        Unreviewed.

        * pal/PlatformWin.cmake:
        * pal/win/LoggingWin.cpp: Added.
        (PAL::logLevelString):

2017-10-11  Myles C. Maxfield  <mmaxfield@apple.com>

        Allow PAL to log messages
        https://bugs.webkit.org/show_bug.cgi?id=171523

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/LogInitialization.h: Copied from Source/WebCore/platform/LogMacros.h.
        * pal/LogMacros.h: Copied from Source/WebCore/platform/LogMacros.h.
        * pal/Logging.cpp: Copied from Source/WebCore/platform/Logging.cpp.
        (PAL::isLogChannelEnabled):
        (PAL::setLogChannelToAccumulate):
        (PAL::initializeLogChannelsIfNecessary):
        (PAL::registerNotifyCallback):
        * pal/Logging.h: Copied from Source/WebCore/platform/LogMacros.h.
        * pal/PlatformMac.cmake:
        * pal/cocoa/LoggingCocoa.mm: Renamed from Source/WebCore/platform/LogMacros.h.
        (PAL::logLevelString):

2017-10-06  Chris Dumez  <cdumez@apple.com>

        [Beacon][Cocoa] Beacon requests with BufferSource payload should not have a Content-Type HTTP header
        https://bugs.webkit.org/show_bug.cgi?id=178027
        <rdar://problem/34748470>

        Reviewed by Youenn Fablet.

        Add new CFNetwork SPI.

        * pal/spi/cf/CFNetworkSPI.h:

2017-10-05  Dean Jackson  <dino@apple.com>

        Lots of missing frames in YouTube360 when fullscreen on MacBook
        https://bugs.webkit.org/show_bug.cgi?id=177903
        <rdar://problem/33273300>

        Reviewed by Sam Weinig.

        Add reloadValueForKeyPath to replace setContentsChanged on CALayer.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2017-10-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r222951 and r222952.
        https://bugs.webkit.org/show_bug.cgi?id=177992

        "Broke the iOS build and introduced a webgl LayoutTest
        failure." (Requested by ryanhaddad on #webkit).

        Reverted changesets:

        "Lots of missing frames in YouTube360 when fullscreen on
        MacBook"
        https://bugs.webkit.org/show_bug.cgi?id=177903
        http://trac.webkit.org/changeset/222951

        "Lots of missing frames in YouTube360 when fullscreen on
        MacBook"
        https://bugs.webkit.org/show_bug.cgi?id=177903
        http://trac.webkit.org/changeset/222952

2017-10-05  Dean Jackson  <dino@apple.com>

        Lots of missing frames in YouTube360 when fullscreen on MacBook
        https://bugs.webkit.org/show_bug.cgi?id=177903
        <rdar://problem/33273300>

        Reviewed by Sam Weinig.

        Add reloadValueForKeyPath to replace setContentsChanged on CALayer.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2017-10-05  Jer Noble  <jer.noble@apple.com>

        [Cocoa] Enable ENABLE_ENCRYPTED_MEDIA build-time setting
        https://bugs.webkit.org/show_bug.cgi?id=177261

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig:

2017-09-28  Ross Kirsling  <ross.kirsling@sony.com>

        [PAL] Move HysteresisActivity into PAL
        https://bugs.webkit.org/show_bug.cgi?id=177516

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj:
        * pal/HysteresisActivity.h: Renamed from Source/WebCore/platform/HysteresisActivity.h.

2017-09-28  Chris Dumez  <cdumez@apple.com>

        Add support for <link rel=preconnect>
        https://bugs.webkit.org/show_bug.cgi?id=177474
        <rdar://problem/33141380>

        Reviewed by Alex Christensen.

        Add new CFNetwork SPI for preconnecting.

        * pal/spi/cf/CFNetworkSPI.h:

2017-09-27  Tim Horton  <timothy_horton@apple.com>

        Try to fix the Mac CMake build

        * pal/PlatformMac.cmake:

2017-09-26  Don Olmstead  <don.olmstead@sony.com>

        [PAL][CMake] Include ICU directories
        https://bugs.webkit.org/show_bug.cgi?id=177504

        Reviewed by Myles C. Maxfield.

        * pal/CMakeLists.txt:

2017-09-26  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>

        [PAL] Move Clock into PAL
        https://bugs.webkit.org/show_bug.cgi?id=174342

        Reviewed by Myles C. Maxfield.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformGTK.cmake:
        * pal/PlatformWin.cmake:
        * pal/system/Clock.h: Renamed from Source/WebCore/platform/Clock.h.
        * pal/system/ClockGeneric.cpp: Renamed from Source/WebCore/platform/ClockGeneric.cpp.
        (PAL::Clock::create):
        * pal/system/ClockGeneric.h: Renamed from Source/WebCore/platform/ClockGeneric.h.
        * pal/system/mac/ClockCM.h: Renamed from Source/WebCore/platform/mac/PlatformClockCM.h.
        * pal/system/mac/ClockCM.mm: Renamed from Source/WebCore/platform/mac/PlatformClockCM.mm.
        (Clock::create):
        (ClockCM::ClockCM):
        (ClockCM::initializeWithTimingSource):
        (ClockCM::setCurrentTime):
        (ClockCM::currentTime const):
        (ClockCM::setCurrentMediaTime):
        (ClockCM::currentMediaTime const):
        (ClockCM::setPlayRate):
        (ClockCM::start):
        (ClockCM::stop):

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        Add requrired functions.
2017-09-26  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] Only report libgcrypt errors when logging is enabled
        https://bugs.webkit.org/show_bug.cgi?id=177360

        Reviewed by Xabier Rodriguez-Calvar.

        * pal/crypto/gcrypt/Utilities.h:
        (PAL::GCrypt::logError): Only print out the libgcrypt error on stderr
        when logging is enabled at build-time, avoiding unnecessary output in
        non-debugging use cases.

2017-09-25  Timothy Horton  <timothy_horton@apple.com>

        Make progress on getting Mac CMake building again
        https://bugs.webkit.org/show_bug.cgi?id=177443

        Unreviewed, just "fixing" the build.

        * pal/PlatformMac.cmake:
        Add some missing files and include paths.

2017-09-22  Zalan Bujtas  <zalan@apple.com>

        WeakPtrFactory should populate m_ref lazily.
        https://bugs.webkit.org/show_bug.cgi?id=177375

        Reviewed by Geoffrey Garen.

        * pal/system/mac/SystemSleepListenerMac.mm:
        (PAL::SystemSleepListenerMac::SystemSleepListenerMac):

2017-09-21  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>

        [PAL] Move MediaTimeAVFoundation into PAL
        https://bugs.webkit.org/show_bug.cgi?id=177222

        Reviewed by Myles C. Maxfield.

        * config.h:
        Include PALHeaderDetection.h.
        Define AVFOUNDATION-releavant definitions.

        * pal/PlatformWin.cmake:
        Add PAL dereived sources directory to include paths.

        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/PlatformAppleWin.cmake:
        * pal/avfoundation/MediaTimeAVFoundation.cpp: Renamed from Source/WebCore/platform/graphics/avfoundation/MediaTimeAVFoundation.cpp.
        * pal/avfoundation/MediaTimeAVFoundation.h: Renamed from Source/WebCore/platform/graphics/avfoundation/MediaTimeAVFoundation.h.
        * pal/cf/CoreMediaSoftLink.cpp: Added.
        * pal/cf/CoreMediaSoftLink.h: Added.

2017-09-20  Antti Koivisto  <antti@apple.com>

        Remove DOM and styling support for CSS Regions
        https://bugs.webkit.org/show_bug.cgi?id=177221

        Reviewed by Andreas Kling.

        * Configurations/FeatureDefines.xcconfig:

2017-09-18  Andy Estes  <aestes@apple.com>

        [Mac] Upstream miscellaneous WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=177029

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformMac.cmake:
        * pal/spi/cf/CFUtilitiesSPI.h:
        * pal/spi/cocoa/LaunchServicesSPI.h: Renamed from Source/WebCore/PAL/pal/spi/ios/LaunchServicesSPI.h.
        * pal/spi/mac/HIServicesSPI.h:
        * pal/spi/mac/NSCellSPI.h: Copied from Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h.
        * pal/spi/mac/NSMenuSPI.h:
        * pal/spi/mac/NSScrollViewSPI.h: Copied from Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h.
        * pal/spi/mac/NSScrollerImpSPI.h:
        * pal/system/cf/DefaultSearchProvider.cpp: Copied from Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h.
        (PAL::defaultSearchProviderDisplayName):
        * pal/system/cf/DefaultSearchProvider.h: Copied from Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h.
        * pal/system/mac/PopupMenu.h: Copied from Source/WebCore/PAL/pal/spi/cf/CFUtilitiesSPI.h.
        * pal/system/mac/PopupMenu.mm: Added.
        (PAL::popUpMenu):

2017-09-18  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>

        [Win][PAL] Move WebCoreHeaderDetection.h to PAL
        https://bugs.webkit.org/show_bug.cgi?id=176990

        Reviewed by Alex Christensen.

        * AVFoundationSupport.py: Renamed from Source/WebCore/AVFoundationSupport.py.
        (lookFor):
        (fileContains):

        * pal/PlatformWin.cmake:
        Add a custom target PAL_PreBuild to generate PALHeaderDetection.h

2017-09-15  Tim Horton  <timothy_horton@apple.com>

        Fix the macOS CMake build
        https://bugs.webkit.org/show_bug.cgi?id=177015

        Reviewed by Andy Estes.

        * pal/PlatformMac.cmake:
        Add WebPanel.

2017-09-15  Andy Estes  <aestes@apple.com>

        [Cocoa] Upstream MediaRemote and VideoToolbox WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176953

        Reviewed by Eric Carlson.

        * pal/spi/mac/AVFoundationSPI.h:
        * pal/spi/mac/MediaRemoteSPI.h:

2017-09-15  Eric Carlson  <eric.carlson@apple.com>

        Switch text tracks to release logging
        https://bugs.webkit.org/show_bug.cgi?id=176809
        <rdar://problem/34397605>

        Reviewed by Jer Noble.

        * pal/Logger.h:
        (PAL::LogArgument::toString):
        (PAL::Logger::willLog const):

2017-09-14  Dan Bernstein  <mitz@apple.com>

        Fixed building with the Apple internal macOS 10.12 SDK.

        * pal/spi/cocoa/PassKitSPI.h: Avoid redefining types that are defined in the SDK.

2017-09-14  Andy Estes  <aestes@apple.com>

        [Mac] Upstream SpeechSynthesis-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176931

        Reviewed by Joseph Pecoraro.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/SpeechSynthesisSPI.h: Added.

2017-09-13  Andy Estes  <aestes@apple.com>

        [CF] Upstream CFNetwork-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176729

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:

2017-09-12  Myles C. Maxfield  <mmaxfield@apple.com>

        Unskip fast/text/system-font-synthetic-italic.html
        https://bugs.webkit.org/show_bug.cgi?id=175944

        Reviewed by Jon Lee.

        * pal/spi/cocoa/CoreTextSPI.h:

2017-09-12  Eric Carlson  <eric.carlson@apple.com>

        Switch MediaPlayerPrivateAVFoundation to release logging
        https://bugs.webkit.org/show_bug.cgi?id=176621
        <rdar://problem/34335311>

        Reviewed by Jer Noble.

        * pal/Logger.h:
        (PAL::LogArgument::toString):
        * pal/LoggerHelper.h:

2017-09-11  Andy Estes  <aestes@apple.com>

        [Mac] Upstream QTKit-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176472

        Reviewed by Eric Carlson.

        * pal/spi/mac/QTKitSPI.h:

2017-09-08  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r221773.
        https://bugs.webkit.org/show_bug.cgi?id=176614

        This caused build failures. (Requested by mlewis13 on
        #webkit).

        Reverted changeset:

        "[Mac] Upstream QTKit-related WebKitSystemInterface functions"
        https://bugs.webkit.org/show_bug.cgi?id=176472
        http://trac.webkit.org/changeset/221773

2017-09-07  Andy Estes  <aestes@apple.com>

        [Mac] Upstream QTKit-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176472

        Reviewed by Eric Carlson.

        * pal/spi/mac/QTKitSPI.h:

2017-09-07  Wenson Hsieh  <wenson_hsieh@apple.com>

        [Mac] Stop importing NSFunctionBar_Private.h in NSTouchBarSPI.h on the macOS 10.13+ SDK
        https://bugs.webkit.org/show_bug.cgi?id=176521
        <rdar://problem/34296289>

        Reviewed by Andy Estes.

        We don't need to import NSFunctionBar_Private.h when building against the macOS 10.13 SDK, or later. Guard this
        header import with an SDK version check.

        * pal/spi/cocoa/NSTouchBarSPI.h:

2017-09-06  Eric Carlson  <eric.carlson@apple.com>

        Require LoggingHelper overrides to provide identifier
        https://bugs.webkit.org/show_bug.cgi?id=176477

        Reviewed by Jer Noble.

        * pal/Logger.h:
        (PAL::Logger::LogSiteIdentifier::LogSiteIdentifier):
        (PAL::LogArgument<Logger::LogSiteIdentifier>::toString):
        (PAL::Logger::notice const): Deleted.
        (PAL::Logger::MethodAndPointer::MethodAndPointer): Deleted.
        (PAL::LogArgument<Logger::MethodAndPointer>::toString): Deleted.
        * pal/LoggerHelper.h:

2017-09-04  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r221494 and r221500.
        https://bugs.webkit.org/show_bug.cgi?id=176258

        This caused the windows build to fail. (Requested by mlewis13
        on #webkit).

        Reverted changesets:

        "Switch HTMLMediaElement to release logging"
        https://bugs.webkit.org/show_bug.cgi?id=176065
        http://trac.webkit.org/changeset/221494

        "Switch HTMLMediaElement to release logging"
        https://bugs.webkit.org/show_bug.cgi?id=176065
        http://trac.webkit.org/changeset/221500

2017-09-03  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Libgcrypt warning: missing initialization - please fix the application
        https://bugs.webkit.org/show_bug.cgi?id=171230

        Reviewed by Michael Catanzaro.

        Add the Initialization.h header, containing the single initialize() static
        function that initializes the libgcrypt library. This header only includes
        the default libgcrypt header, and nothing else.

        It's not added to the existing Utilities.h header because that one pulls in
        other unnecessary headers that for instance use the new() operator, but that
        collides with the implementation files that define WebKit process entrypoints
        and intentionally don't include the config.h that brings in FastMalloc to
        properly define the new() and delete() operators, resulting in compilation
        errors due to the new and delete operators being defined to warning strings
        in always-included WebKit2Prefix.h.

        * pal/crypto/gcrypt/Initialization.h: Copied from Source/WebKit/WebProcess/EntryPoint/unix/WebProcessMain.cpp.
        (PAL::GCrypt::initialize):

2017-09-03  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Tidy up PassKitSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=176323

        Reviewed by Darin Adler.

        * pal/spi/cocoa/PassKitSPI.h: Moved the declarations of requiredShippingContactFields and
          requiredBillingContactFields to where other PKPaymentRequest properties are declared, and
          changed the guard to relate to the SDK version. Replaced use of __has_include with checking for
          the version of the Apple internal SDK in which the typedefs first appeared.

2017-09-03  Dan Bernstein  <mitz@apple.com>

        [Cocoa] Remove use of __has_include in CoreAudioSPI.h
        https://bugs.webkit.org/show_bug.cgi?id=176320

        Reviewed by Tim Horton.

        * pal/spi/cf/CoreAudioSPI.h: AudioHardwarePriv.h is available in all Apple internal SDKs and
          only in Apple internal SDKs. AudioHardwareBase.h is available only in the macOS SDK, where
          it is included by AudioHardware.h.

2017-09-03  Tim Horton  <timothy_horton@apple.com>

        Fix some style issues in the Remote Layer Tree code
        https://bugs.webkit.org/show_bug.cgi?id=176298

        Reviewed by Dan Bernstein.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2017-09-03  Sam Weinig  <sam@webkit.org>

        Remove CanvasProxy
        https://bugs.webkit.org/show_bug.cgi?id=176288

        Reviewed by Yusuke Suzuki.

        CanvasProxy does not appear to be in any current HTML spec
        and was disabled and unimplemented in our tree. Time to 
        get rid of it.

        * Configurations/FeatureDefines.xcconfig:

2017-09-02  Andy Estes  <aestes@apple.com>

        [CA] Upstream QuartzCore-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176270

        Reviewed by Tim Horton.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2017-09-01  Andy Estes  <aestes@apple.com>

        Try again to fix the Internal iOS Simulator build after r221485.

        * pal/spi/cg/CoreGraphicsSPI.h:

2017-09-01  Andy Estes  <aestes@apple.com>

        Try to fix the Internal iOS Simulator build after r221485.

        * pal/spi/cg/CoreGraphicsSPI.h:

2017-09-01  Andy Estes  <aestes@apple.com>

        [CG] Upstream CoreGraphics-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176200

        Reviewed by Tim Horton.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cg/CoreGraphicsSPI.h:
        * pal/spi/mac/HIServicesSPI.h:
        * pal/spi/mac/NSGraphicsSPI.h: Copied from Source/WebCore/PAL/pal/spi/mac/HIServicesSPI.h.

2017-08-31  Andy Estes  <aestes@apple.com>

        [Mac] Upstream AppKit-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176175

        Reviewed by Brady Eidson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/HIToolboxSPI.h:
        * pal/spi/mac/NSResponderSPI.h: Copied from Source/WebCore/PAL/pal/spi/mac/NSWindowSPI.h.
        * pal/spi/mac/NSWindowSPI.h:
        * pal/system/mac/WebPanel.h: Copied from Source/WebCore/PAL/pal/spi/mac/NSWindowSPI.h.
        * pal/system/mac/WebPanel.mm: Copied from Source/WebCore/PAL/pal/spi/mac/HIToolboxSPI.h.
        (-[WebPanel init]):

2017-08-31  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r221445.

        This change broke Sierra Release builds.

        Reverted changeset:

        "Switch HTMLMediaElement to release logging"
        https://bugs.webkit.org/show_bug.cgi?id=176065
        http://trac.webkit.org/changeset/221445

2017-08-30  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>

        [PAL] Fix "None" suffix in PAL
        https://bugs.webkit.org/show_bug.cgi?id=176014

        Reviewed by Ryosuke Niwa.

        * Configurations/PAL.xcconfig:
        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformGTK.cmake:
        * pal/PlatformWPE.cmake:
        * pal/PlatformWin.cmake:
        * pal/system/Sound.cpp: Renamed from Source/WebCore/PAL/pal/system/SoundNone.cpp.
        * pal/text/KillRing.cpp: Renamed from Source/WebCore/PAL/pal/text/KillRingNone.cpp.

2017-08-30  Eric Carlson  <eric.carlson@apple.com>

        Add Logger observer and helper class
        https://bugs.webkit.org/show_bug.cgi?id=176106

        Reviewed by Andy Estes.

        * pal/Logger.h:
        (PAL::LogArgument::toString): Add new variants.
        (PAL::Logger::Observer::~Observer):
        (PAL::Logger::logAlways const): Constify.
        (PAL::Logger::error const): Ditto.
        (PAL::Logger::warning const): Ditto.
        (PAL::Logger::notice const): Ditto.
        (PAL::Logger::info const): Ditto.
        (PAL::Logger::debug const): Ditto.
        (PAL::Logger::willLog const): Ditto.
        (PAL::Logger::MethodAndPointer::MethodAndPointer): Add class name, make object pointer const.
        (PAL::Logger::addObserver): New.
        (PAL::Logger::removeObserver): New.
        (PAL::Logger::Logger):
        (PAL::Logger::log):
        (PAL::Logger::observers):
        (PAL::LogHelper::willLog const):
        (PAL::LogArgument<Logger::MethodAndPointer>::toString):

2017-08-30  Andy Estes  <aestes@apple.com>

        [Mac] Upstream Accessibility-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176093

        Reviewed by Eric Carlson.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/HIServicesSPI.h: Added.
        * pal/spi/mac/NSAccessibilitySPI.h:

2017-08-30  Andy Estes  <aestes@apple.com>

        [Mac] Upstream Carbon-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176087

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cocoa/FoundationSPI.h: Copied from Source/WebCore/PAL/pal/spi/mac/NSWindowSPI.h.
        * pal/spi/mac/HIToolboxSPI.h: Copied from Source/WebCore/PAL/pal/spi/mac/NSWindowSPI.h.
        * pal/spi/mac/NSEventSPI.h:
        * pal/spi/mac/NSWindowSPI.h:
        * pal/spi/mac/QuickDrawSPI.h: Added.

2017-08-29  Andy Estes  <aestes@apple.com>

        [Xcode] Fix up file and group paths in PAL.xcodeproj
        https://bugs.webkit.org/show_bug.cgi?id=176073

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj:

2017-08-29  Andy Estes  <aestes@apple.com>

        [Mac] Upstream WKSetMetadataURL() from WebKitSystemInterface
        https://bugs.webkit.org/show_bug.cgi?id=176046

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/MetadataSPI.h: Added.

2017-08-28  Eric Carlson  <eric.carlson@apple.com>

        Logger should use makeString instead of String::format
        https://bugs.webkit.org/show_bug.cgi?id=176035

        Reviewed by Jer Noble.

        * pal/Logger.h:
        (PAL::LogArgument::toString):
        (PAL::Logger::logAlways):
        (PAL::Logger::error):
        (PAL::Logger::warning):
        (PAL::Logger::notice):
        (PAL::Logger::info):
        (PAL::Logger::debug):
        (PAL::Logger::MethodAndPointer::MethodAndPointer):
        (PAL::Logger::log):
        (PAL::LogArgument<Logger::MethodAndPointer>::toString):

2017-08-28  Andy Estes  <aestes@apple.com>

        [Cocoa] Upstream CFNetwork-related WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=176032

        Reviewed by Alex Christensen.

        * pal/spi/cf/CFNetworkSPI.h:

2017-08-25  Eric Carlson  <eric.carlson@apple.com>

        Add Logger::logAlways
        https://bugs.webkit.org/show_bug.cgi?id=175996

        Reviewed by Jer Noble.

        * PAL.xcodeproj/project.pbxproj:
        * pal/Logger.h:
        (PAL::Logger::willLog const):
        (PAL::Logger::willLog const):
        (PAL::Logger::logAlways): Added.
        (PAL::Logger::error const): Add missing WTF_ATTRIBUTE_PRINTF.
        (PAL::Logger::warning const): Ditto.
        (PAL::Logger::notice const): Ditto.
        (PAL::Logger::info const): Ditto.
        (PAL::Logger::debug const): Use String::formatWithArguments.

2017-08-25  Jonathan Bedard  <jbedard@apple.com>

        Fix build breakage with Public iOS 11 SDK
        https://bugs.webkit.org/show_bug.cgi?id=175960
        <rdar://problem/34069264>

        Reviewed by Wenson Hsieh.

        * pal/spi/ios/UIKitSPI.h: Use NSItemProvider definition of preferredPresentationSize
        instead of re-declaring it.

2017-08-23  Eric Carlson  <eric.carlson@apple.com>

        Platform code should be able to safely log in release builds
        https://bugs.webkit.org/show_bug.cgi?id=175854
        <rdar://problem/34022930>

        Reviewed by Jer Noble.

        * PAL.xcodeproj/project.pbxproj:
        * pal/Logger.h: Added.
        (PAL::Logger::create):
        (PAL::Logger::error const):
        (PAL::Logger::warning const):
        (PAL::Logger::notice const):
        (PAL::Logger::info const):
        (PAL::Logger::debug const):
        (PAL::Logger::willLog const):
        (PAL::Logger::enabled const):
        (PAL::Logger::setEnabled):
        (PAL::Logger::Logger):
        (PAL::Logger::log):

2017-08-21  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>

        [PAL] Move spi/mac directory into PAL
        https://bugs.webkit.org/show_bug.cgi?id=175649

        Reviewed by Myles C. Maxfield.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/mac/AVFoundationSPI.h: Renamed from Source/WebCore/platform/spi/mac/AVFoundationSPI.h.
        * pal/spi/mac/DataDetectorsSPI.h: Renamed from Source/WebCore/platform/spi/mac/DataDetectorsSPI.h.
        * pal/spi/mac/LookupSPI.h: Renamed from Source/WebCore/platform/spi/mac/LookupSPI.h.
        * pal/spi/mac/MediaRemoteSPI.h: Renamed from Source/WebCore/platform/spi/mac/MediaRemoteSPI.h.
        * pal/spi/mac/NSAccessibilitySPI.h: Renamed from Source/WebCore/platform/spi/mac/NSAccessibilitySPI.h.
        * pal/spi/mac/NSApplicationSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSApplicationSPI.h.
        * pal/spi/mac/NSEventSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSEventSPI.h.
        * pal/spi/mac/NSFontSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSFontSPI.h.
        * pal/spi/mac/NSImmediateActionGestureRecognizerSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSImmediateActionGestureRecognizerSPI.h.
        * pal/spi/mac/NSMenuSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSMenuSPI.h.
        * pal/spi/mac/NSPasteboardSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSPasteboardSPI.h.
        * pal/spi/mac/NSPopoverSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSPopoverSPI.h.
        * pal/spi/mac/NSScrollerImpSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSScrollerImpSPI.h.
        * pal/spi/mac/NSScrollingInputFilterSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSScrollingInputFilterSPI.h.
        * pal/spi/mac/NSScrollingMomentumCalculatorSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSScrollingMomentumCalculatorSPI.h.
        * pal/spi/mac/NSSharingServicePickerSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSSharingServicePickerSPI.h.
        * pal/spi/mac/NSSharingServiceSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSSharingServiceSPI.h.
        * pal/spi/mac/NSSpellCheckerSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSSpellCheckerSPI.h.
        * pal/spi/mac/NSTextFinderSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSTextFinderSPI.h.
        * pal/spi/mac/NSViewSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSViewSPI.h.
        * pal/spi/mac/NSWindowSPI.h: Renamed from Source/WebCore/platform/spi/mac/NSWindowSPI.h.
        * pal/spi/mac/PIPSPI.h: Renamed from Source/WebCore/platform/spi/mac/PIPSPI.h.
        * pal/spi/mac/QTKitSPI.h: Renamed from Source/WebCore/platform/spi/mac/QTKitSPI.h.
        * pal/spi/mac/QuickLookMacSPI.h: Renamed from Source/WebCore/platform/spi/mac/QuickLookMacSPI.h.
        * pal/spi/mac/TUCallSPI.h: Renamed from Source/WebCore/platform/spi/mac/TUCallSPI.h.

2017-08-17  Don Olmstead  <don.olmstead@sony.com>

        [PAL] Relocate SessionID to root
        https://bugs.webkit.org/show_bug.cgi?id=175684

        Reviewed by Alex Christensen.

        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/SessionID.cpp: Renamed from Source/WebCore/PAL/pal/identifier/SessionID.cpp.
        * pal/SessionID.h: Renamed from Source/WebCore/PAL/pal/identifier/SessionID.h.

2017-08-17  Andreas Kling  <akling@apple.com>

        Disable CSS regions at compile time
        https://bugs.webkit.org/show_bug.cgi?id=175630

        Reviewed by Antti Koivisto.

        * Configurations/FeatureDefines.xcconfig:

2017-08-17  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS] Respect type fidelities when copying image elements to the pasteboard
        https://bugs.webkit.org/show_bug.cgi?id=175638
        <rdar://problem/26556043>

        Reviewed by Ryosuke Niwa.

        Replace -estimatedDisplayedSize with its non-deprecated counterpart, -preferredPresentationSize.

        * pal/spi/ios/UIKitSPI.h:

2017-08-17  Don Olmstead  <don.olmstead@sony.com>

        [PAL] Move SessionID into PAL
        https://bugs.webkit.org/show_bug.cgi?id=174192

        Reviewed by Antti Koivisto.

        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/identifier/SessionID.cpp: Renamed from Source/WebCore/page/SessionID.cpp.
        * pal/identifier/SessionID.h: Renamed from Source/WebCore/page/SessionID.h.
        (WTF::SessionIDHash::hash):
        (WTF::SessionIDHash::equal):
        (WTF::HashTraits<PAL::SessionID>::emptyValue):
        (WTF::HashTraits<PAL::SessionID>::constructDeletedValue):
        (WTF::HashTraits<PAL::SessionID>::isDeletedValue):

2017-08-16  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>

        [PAL] Move spi/ios and spi/win directories into PAL
        https://bugs.webkit.org/show_bug.cgi?id=175171

        Reviewed by Antti Koivisto.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/ios/CoreUISPI.h: Renamed from Source/WebCore/platform/spi/ios/CoreUISPI.h.
        * pal/spi/ios/DataDetectorsUISPI.h: Renamed from Source/WebCore/platform/spi/ios/DataDetectorsUISPI.h.
        * pal/spi/ios/GraphicsServicesSPI.h: Renamed from Source/WebCore/platform/spi/ios/GraphicsServicesSPI.h.
        * pal/spi/ios/LaunchServicesSPI.h: Renamed from Source/WebCore/platform/spi/ios/LaunchServicesSPI.h.
        * pal/spi/ios/MediaPlayerSPI.h: Renamed from Source/WebCore/platform/spi/ios/MediaPlayerSPI.h.
        * pal/spi/ios/MobileGestaltSPI.h: Renamed from Source/WebCore/platform/spi/ios/MobileGestaltSPI.h.
        * pal/spi/ios/OpenGLESSPI.h: Renamed from Source/WebCore/platform/spi/ios/OpenGLESSPI.h.
        * pal/spi/ios/QuickLookSPI.h: Renamed from Source/WebCore/platform/spi/ios/QuickLookSPI.h.
        * pal/spi/ios/SQLite3SPI.h: Renamed from Source/WebCore/platform/spi/ios/SQLite3SPI.h.
        * pal/spi/ios/UIKitSPI.h: Renamed from Source/WebCore/platform/spi/ios/UIKitSPI.h.
        * pal/spi/win/CoreTextSPIWin.h: Renamed from Source/WebCore/platform/spi/win/CoreTextSPIWin.h.

2017-08-16  Andy Estes  <aestes@apple.com>

        [Payment Request] Add an ENABLE flag and an experimental feature preference
        https://bugs.webkit.org/show_bug.cgi?id=175622

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2017-08-15  Don Olmstead  <don.olmstead@sony.com>

        [PAL] Move Sleep classes into PAL
        https://bugs.webkit.org/show_bug.cgi?id=175456

        Reviewed by Ryosuke Niwa.

        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/PlatformMac.cmake:
        * pal/system/SleepDisabler.cpp: Renamed from Source/WebCore/platform/SleepDisabler.cpp.
        * pal/system/SleepDisabler.h: Renamed from Source/WebCore/platform/SleepDisabler.h.
        * pal/system/SystemSleepListener.cpp: Renamed from Source/WebCore/platform/SystemSleepListener.cpp.
        * pal/system/SystemSleepListener.h: Renamed from Source/WebCore/platform/SystemSleepListener.h.
        * pal/system/cocoa/SleepDisablerCocoa.cpp: Renamed from Source/WebCore/platform/cocoa/SleepDisablerCocoa.cpp.
        * pal/system/cocoa/SleepDisablerCocoa.h: Renamed from Source/WebCore/platform/cocoa/SleepDisablerCocoa.h.
        * pal/system/mac/SystemSleepListenerMac.h: Renamed from Source/WebCore/platform/mac/SystemSleepListenerMac.h.
        * pal/system/mac/SystemSleepListenerMac.mm: Renamed from Source/WebCore/platform/mac/SystemSleepListenerMac.mm.

2017-08-14  Simon Fraser  <simon.fraser@apple.com>

        Remove Proximity Events and related code
        https://bugs.webkit.org/show_bug.cgi?id=175545

        Reviewed by Daniel Bates.

        No platform enables Proximity Events, so remove code inside ENABLE(PROXIMITY_EVENTS)
        and other related code.

        * Configurations/FeatureDefines.xcconfig:

2017-08-14  Simon Fraser  <simon.fraser@apple.com>

        Remove ENABLE(REQUEST_AUTOCOMPLETE) code, which was disabled everywhere
        https://bugs.webkit.org/show_bug.cgi?id=175504

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2017-08-14  Simon Fraser  <simon.fraser@apple.com>

        Remove ENABLE_VIEW_MODE_CSS_MEDIA and related code
        https://bugs.webkit.org/show_bug.cgi?id=175557

        Reviewed by Jon Lee.

        No port cares about the ENABLE(VIEW_MODE_CSS_MEDIA) feature, so remove it.

        * Configurations/FeatureDefines.xcconfig:

2017-08-11  Ryosuke Niwa  <rniwa@webkit.org>

        Replace DATA_TRANSFER_ITEMS by a runtime flag and add a stub implementation
        https://bugs.webkit.org/show_bug.cgi?id=175474
        <rdar://problem/33844628>

        Reviewed by Wenson Hsieh.

        * Configurations/FeatureDefines.xcconfig:

2017-08-10  Michael Catanzaro  <mcatanzaro@igalia.com>

        Remove ENABLE_GAMEPAD_DEPRECATED
        https://bugs.webkit.org/show_bug.cgi?id=175361

        Reviewed by Carlos Garcia Campos.

        * Configurations/FeatureDefines.xcconfig:

2017-08-09  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>

        [PAL] Move spi/cocoa and spi/cg directories into PAL
        https://bugs.webkit.org/show_bug.cgi?id=175175

        Reviewed by Myles C. Maxfield.

        * PAL.xcodeproj/project.pbxproj:
        * pal/PlatformAppleWin.cmake:
        * pal/spi/cg/CoreGraphicsSPI.h: Renamed from Source/WebCore/platform/spi/cg/CoreGraphicsSPI.h.
        (CGFloatMin):
        * pal/spi/cg/ImageIOSPI.h: Renamed from Source/WebCore/platform/spi/cg/ImageIOSPI.h.
        * pal/spi/cocoa/AVKitSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/AVKitSPI.h.
        (-[AVTouchBarPlaybackControlsControlling NS_ENUM]):
        * pal/spi/cocoa/CFNSURLConnectionSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/CFNSURLConnectionSPI.h.
        * pal/spi/cocoa/CoreTextSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/CoreTextSPI.h.
        * pal/spi/cocoa/DataDetectorsCoreSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/DataDetectorsCoreSPI.h.
        * pal/spi/cocoa/IOPMLibSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOPMLibSPI.h.
        * pal/spi/cocoa/IOPSLibSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOPSLibSPI.h.
        * pal/spi/cocoa/IOReturnSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOReturnSPI.h.
        * pal/spi/cocoa/IOSurfaceSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOSurfaceSPI.h.
        * pal/spi/cocoa/IOTypesSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/IOTypesSPI.h.
        * pal/spi/cocoa/LinkPresentationSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/LinkPresentationSPI.h.
        * pal/spi/cocoa/MachVMSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/MachVMSPI.h.
        * pal/spi/cocoa/NEFilterSourceSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NEFilterSourceSPI.h.
        * pal/spi/cocoa/NSAttributedStringSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSAttributedStringSPI.h.
        * pal/spi/cocoa/NSButtonCellSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSButtonCellSPI.h.
        * pal/spi/cocoa/NSCalendarDateSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSCalendarDateSPI.h.
        * pal/spi/cocoa/NSColorSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSColorSPI.h.
        * pal/spi/cocoa/NSExtensionSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSExtensionSPI.h.
        * pal/spi/cocoa/NSFileManagerSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSFileManagerSPI.h.
        * pal/spi/cocoa/NSStringSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSStringSPI.h.
        * pal/spi/cocoa/NSTouchBarSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSTouchBarSPI.h.
        * pal/spi/cocoa/NSURLConnectionSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSURLConnectionSPI.h.
        * pal/spi/cocoa/NSURLDownloadSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSURLDownloadSPI.h.
        * pal/spi/cocoa/NSURLFileTypeMappingsSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/NSURLFileTypeMappingsSPI.h.
        * pal/spi/cocoa/PassKitSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/PassKitSPI.h.
        (NS_ERROR_ENUM):
        * pal/spi/cocoa/QuartzCoreSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/QuartzCoreSPI.h.
        * pal/spi/cocoa/ServersSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/ServersSPI.h.
        * pal/spi/cocoa/WebFilterEvaluatorSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/WebFilterEvaluatorSPI.h.
        * pal/spi/cocoa/pthreadSPI.h: Renamed from Source/WebCore/platform/spi/cocoa/pthreadSPI.h.

2017-08-09  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS DnD] ENABLE_DRAG_SUPPORT should be turned off for iOS 10 and enabled by default
        https://bugs.webkit.org/show_bug.cgi?id=175392
        <rdar://problem/33783207>

        Reviewed by Tim Horton and Megan Gardner.

        Tweak FeatureDefines to enable drag and drop by default, and disable only on unsupported platforms (i.e. iOS 10).

        * Configurations/FeatureDefines.xcconfig:

2017-08-07  Brian Burg  <bburg@apple.com>

        Remove CANVAS_PATH compilation guard
        https://bugs.webkit.org/show_bug.cgi?id=175207

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2017-08-04  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r220271.

        Rolling out due to Layout Test failing on iOS Simulator.

        Reverted changeset:

        "Remove STREAMS_API compilation guard"
        https://bugs.webkit.org/show_bug.cgi?id=175165
        http://trac.webkit.org/changeset/220271

2017-08-04  Youenn Fablet  <youenn@apple.com>

        Remove STREAMS_API compilation guard
        https://bugs.webkit.org/show_bug.cgi?id=175165

        Reviewed by Darin Adler.

        * Configurations/FeatureDefines.xcconfig:

2017-08-03  Brian Burg  <bburg@apple.com>

        Remove ENABLE(WEB_SOCKET) guards
        https://bugs.webkit.org/show_bug.cgi?id=167044

        Reviewed by Joseph Pecoraro.

        * Configurations/FeatureDefines.xcconfig:

2017-08-03  Yoshiaki Jitsukawa  <jitsu@rd.scei.sony.co.jp>

        [PAL] Move spi/cf directory into PAL
        https://bugs.webkit.org/show_bug.cgi?id=175057

        Reviewed by Antti Koivisto.

        * PAL.xcodeproj/project.pbxproj:
        * pal/spi/cf/CFLocaleSPI.h: Renamed from Source/WebCore/platform/spi/cf/CFLocaleSPI.h.
        * pal/spi/cf/CFNetworkConnectionCacheSPI.h: Renamed from Source/WebCore/platform/spi/cf/CFNetworkConnectionCacheSPI.h.
        * pal/spi/cf/CFNetworkSPI.h: Renamed from Source/WebCore/platform/spi/cf/CFNetworkSPI.h.
        * pal/spi/cf/CFUtilitiesSPI.h: Renamed from Source/WebCore/platform/spi/cf/CFUtilitiesSPI.h.
        * pal/spi/cf/CoreAudioSPI.h: Renamed from Source/WebCore/platform/spi/cf/CoreAudioSPI.h.
        * pal/spi/cf/CoreMediaSPI.h: Renamed from Source/WebCore/platform/spi/cf/CoreMediaSPI.h.

2017-08-03  Youenn Fablet  <youenn@apple.com>

        Remove FETCH_API compilation guard
        https://bugs.webkit.org/show_bug.cgi?id=175154

        Reviewed by Chris Dumez.

        * Configurations/FeatureDefines.xcconfig:

2017-08-03  Brady Eidson  <beidson@apple.com>

        Add SW IDLs and stub out basic functionality.
        https://bugs.webkit.org/show_bug.cgi?id=175115

        Reviewed by Chris Dumez.

        * Configurations/FeatureDefines.xcconfig:

2017-08-03  Yoshiaki Jitsukawa  <jitsu@rd.scei.sony.co.jp>

        [WebCore] Sort Xcode project files
        https://bugs.webkit.org/show_bug.cgi?id=175121

        Reviewed by Antti Koivisto.

        * PAL.xcodeproj/project.pbxproj:

2017-08-01  Yoshiaki Jitsukawa  <jitsu@rd.scei.sony.co.jp>

        [PAL][Win] Copy forwarding headers
        https://bugs.webkit.org/show_bug.cgi?id=175012

        Reviewed by Myles C. Maxfield.

        * pal/PlatformAppleWin.cmake: Added.
        * pal/PlatformWin.cmake:
        * pal/PlatformWinCairo.cmake: Added.

2017-07-26  Brian Burg  <bburg@apple.com>

        Remove WEB_TIMING feature flag
        https://bugs.webkit.org/show_bug.cgi?id=174795

        Reviewed by Alex Christensen.

        * Configurations/FeatureDefines.xcconfig:

2017-07-24  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [CMake] libtasn1 should not be required when not enabling subtle_crypto
        https://bugs.webkit.org/show_bug.cgi?id=174785

        Reviewed by Žan Doberšek.

        * pal/PlatformGTK.cmake:
        * pal/PlatformWPE.cmake:

2017-07-18  Andy Estes  <aestes@apple.com>

        [Xcode] Enable CLANG_WARN_RANGE_LOOP_ANALYSIS
        https://bugs.webkit.org/show_bug.cgi?id=174631

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:

2017-07-18  Andy Estes  <aestes@apple.com>

        [Xcode] Enable CLANG_WARN_OBJC_LITERAL_CONVERSION
        https://bugs.webkit.org/show_bug.cgi?id=174631

        Reviewed by Sam Weinig.

        * Configurations/Base.xcconfig:

2017-07-18  Andy Estes  <aestes@apple.com>

        [Xcode] Enable CLANG_WARN_NON_LITERAL_NULL_CONVERSION
        https://bugs.webkit.org/show_bug.cgi?id=174631

        Reviewed by Dan Bernstein.

        * Configurations/Base.xcconfig:

2017-07-18  Andy Estes  <aestes@apple.com>

        [Xcode] Enable CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING
        https://bugs.webkit.org/show_bug.cgi?id=174631

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig:

2017-07-17  Konstantin Tokarev  <annulen@yandex.ru>

        [CMake] Create targets before WEBKIT_INCLUDE_CONFIG_FILES_IF_EXISTS is called
        https://bugs.webkit.org/show_bug.cgi?id=174557

        Reviewed by Michael Catanzaro.

        No new tests needed.

        * pal/CMakeLists.txt:

2017-07-13  Per Arne Vollan  <pvollan@apple.com>

        [Win] Build error when building WebCore from WebCore.proj project file.
        https://bugs.webkit.org/show_bug.cgi?id=174462

        Reviewed by Brent Fulgham.

        Add required include directory to list of include directories.
 
        * pal/CMakeLists.txt:
        * pal/PlatformWin.cmake:

2017-07-12  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r219401.

        This revision rolled out the previous patch, but after talking
        with reviewer, a rebaseline is what was needed.Rolling back in
        before rebaseline.

        Reverted changeset:

        "Unreviewed, rolling out r219379."
        https://bugs.webkit.org/show_bug.cgi?id=174400
        http://trac.webkit.org/changeset/219401

2017-07-12  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r219379.

        This revision caused a consistent failure in the test
        fast/dom/Window/property-access-on-cached-window-after-frame-
        removed.html.

        Reverted changeset:

        "Remove NAVIGATOR_HWCONCURRENCY"
        https://bugs.webkit.org/show_bug.cgi?id=174400
        http://trac.webkit.org/changeset/219379

2017-07-11  Per Arne Vollan  <pvollan@apple.com>

        [Win] Build error when building WebKit.dll from WebKit.proj project file.
        https://bugs.webkit.org/show_bug.cgi?id=174410

        Reviewed by Brent Fulgham.

        Copy required header files to forwarding headers folder.

        * pal/PlatformWin.cmake:

2017-07-11  Dean Jackson  <dino@apple.com>

        Remove NAVIGATOR_HWCONCURRENCY
        https://bugs.webkit.org/show_bug.cgi?id=174400

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2017-07-11  Dean Jackson  <dino@apple.com>

        Rolling out r219372.

        * Configurations/FeatureDefines.xcconfig:

2017-07-11  Dean Jackson  <dino@apple.com>

        Remove NAVIGATOR_HWCONCURRENCY
        https://bugs.webkit.org/show_bug.cgi?id=174400

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2017-07-11  Per Arne Vollan  <pvollan@apple.com>

        [Win] Build error when building WebCore from WebCore.proj project file.
        https://bugs.webkit.org/show_bug.cgi?id=174330

        Reviewed by Brent Fulgham.

        CMAKE_BINARY_DIR is needed in the include list in order to find 'cmakeconfig.h'. 

        * pal/CMakeLists.txt:

2017-07-03  Brian Burg  <bburg@apple.com>

        Web Replay: remove some unused code
        https://bugs.webkit.org/show_bug.cgi?id=173903

        Rubber-stamped by Joseph Pecoraro.

        * Configurations/FeatureDefines.xcconfig:

2017-07-08  Yusuke Suzuki  <utatane.tea@gmail.com>

        Drop NOSNIFF compile flag
        https://bugs.webkit.org/show_bug.cgi?id=174289

        Reviewed by Michael Catanzaro.

        * Configurations/FeatureDefines.xcconfig:

2017-07-06  Don Olmstead  <don.olmstead@sony.com>

        [PAL] Move KillRing into PAL
        https://bugs.webkit.org/show_bug.cgi?id=173900

        Reviewed by Myles C. Maxfield.

        No new tests. No change in functionality.

        * Configurations/PAL.xcconfig:
        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/PlatformGTK.cmake:
        * pal/PlatformMac.cmake:
        * pal/PlatformWPE.cmake:
        * pal/PlatformWin.cmake:
        * pal/text/KillRing.h: Renamed from Source/WebCore/platform/KillRing.h.
        * pal/text/KillRingNone.cpp: Renamed from Source/WebCore/platform/KillRingNone.cpp.
        * pal/text/mac/KillRingMac.mm: Renamed from Source/WebCore/platform/mac/KillRingMac.mm.

2017-07-05  Jonathan Bedard  <jbedard@apple.com>

        Add WebKitPrivateFrameworkStubs for iOS 11
        https://bugs.webkit.org/show_bug.cgi?id=173988

        Reviewed by David Kilzer.

        * Configurations/PAL.xcconfig: iphoneos and iphonesimulator should use the
        same directory for private framework stubs.

2017-07-03  Sam Weinig  <sam@webkit.org>

        [WebIDL] Remove more unnecessary uses of the preprocessor in idl files
        https://bugs.webkit.org/show_bug.cgi?id=174083

        Reviewed by Alex Christensen.

        * Configurations/FeatureDefines.xcconfig:
        Add ENABLE_NAVIGATOR_STANDALONE.

2017-07-03  Andy Estes  <aestes@apple.com>

        [Xcode] Add an experimental setting to build with ccache
        https://bugs.webkit.org/show_bug.cgi?id=173875

        Reviewed by Tim Horton.

        * Configurations/DebugRelease.xcconfig: Included ccache.xcconfig.

2017-07-03  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] Implement CryptoKeyEC SPKI exports
        https://bugs.webkit.org/show_bug.cgi?id=173646

        Reviewed by Jiewen Tan.

        No new tests -- covered by existing Web Crypto tests.

        Add three new libtasn1 utility functions.

        createStructure() is a simple wrapper around asn1_create_element(), creating a new
        ASN.1 structure for the specified definition that's listed in WebCrypto.asn. The
        existing decodeStructure() is modified to use this new addition.

        encodedData() retrieves the ASN.1-encoded data of the specified element that's
        located in the passed-in asn1_node. This is used when retrieving SPKI or PKCS#8
        data from filled-out ASN.1 structures.

        writeElement() writes the provided data to the given asn1_node object under the
        specified element, using the given size. True is returned if this operation was
        successful.

        * pal/crypto/tasn1/Utilities.cpp:
        (PAL::TASN1::createStructure):
        (PAL::TASN1::decodeStructure):
        (PAL::TASN1::encodedData):
        (PAL::TASN1::writeElement):
        * pal/crypto/tasn1/Utilities.h:

2017-07-01  Dan Bernstein  <mitz@apple.com>

        [iOS] Remove code only needed when building for iOS 9.x
        https://bugs.webkit.org/show_bug.cgi?id=174068

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2017-07-01  Dan Bernstein  <mitz@apple.com>

        [macOS] Remove code only needed when building for OS X Yosemite
        https://bugs.webkit.org/show_bug.cgi?id=174067

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/FeatureDefines.xcconfig:
        * Configurations/Version.xcconfig:

2017-06-29  Jer Noble  <jer.noble@apple.com>

        Make Legacy EME API controlled by RuntimeEnabled setting.
        https://bugs.webkit.org/show_bug.cgi?id=173994

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2017-06-30  Ross Kirsling  <ross.kirsling@sony.com>

        [PAL] Move Sound into PAL
        https://bugs.webkit.org/show_bug.cgi?id=173999

        Reviewed by Alex Christensen.

        * Configurations/PAL.xcconfig:
        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/PlatformGTK.cmake:
        * pal/PlatformMac.cmake:
        * pal/PlatformWPE.cmake:
        * pal/PlatformWin.cmake:
        * pal/system/Sound.h: Renamed from Source/WebCore/platform/ios/SoundIOS.mm.
        * pal/system/SoundNone.cpp: Renamed from Source/WebCore/platform/wpe/SoundWPE.cpp.
        (PAL::systemBeep):
        * pal/system/gtk/SoundGtk.cpp: Renamed from Source/WebCore/platform/gtk/SoundGtk.cpp.
        * pal/system/mac/SoundMac.mm: Renamed from Source/WebCore/platform/mac/SoundMac.mm.
        * pal/system/win/SoundWin.cpp: Renamed from Source/WebCore/platform/win/SoundWin.cpp.

2017-06-28  Jonathan Bedard  <jbedard@apple.com>

        Build fix for PAL
        https://bugs.webkit.org/show_bug.cgi?id=173896

        Reviewed by Dan Bernstein.

        Remove the workaround build fix in r218863.

        * PAL.xcodeproj/project.pbxproj: We should be using PROJECT_DIR instead of SRCROOT
        when in a nested Xcode project.

2017-06-27  Jonathan Bedard  <jbedard@apple.com>

        Build fix for PAL
        https://bugs.webkit.org/show_bug.cgi?id=173896

        Reviewed by Myles C. Maxfield.

        * PAL.xcodeproj/project.pbxproj: Ensure that the SRCROOT is WebCore/PAL and not
        just WebCore.

2017-06-27  Don Olmstead  <don.olmstead@sony.com>

        [PAL] Add symbol export macros for PAL
        https://bugs.webkit.org/show_bug.cgi?id=171519

        Reviewed by Konstantin Tokarev.

        No new tests. No change in behavior.

        * Configurations/CopyPALHeaders.xcconfig: Added.
        * PAL.xcodeproj/project.pbxproj:
        * config.h:
        * pal/ExportMacros.h: Copied from Source/WebCore/platform/PlatformExportMacros.h.
        * pal/PlatformWin.cmake:
        * pal/crypto/CryptoDigest.h:

2017-06-20  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] Implement CryptoKeyEC SPKI imports
        https://bugs.webkit.org/show_bug.cgi?id=172927

        Reviewed by Jiewen Tan, Michael Catanzaro and Carlos Garcia Campos.

        Add a file that provides utility functions for operating with libtasn1 APIs.

        The precomputed ASN.1 declarations, generated from the WebCrypto.asn file with
        the asn1Parser tool, are used to enable construction of ASN.1 structures that
        are then used to decode the SPKI or PKCS#8 data through the decodeStructure()
        function. Raw data of each element in that structure can be retrieved throug the
        elementData() function.

        The Structure class is added as a wrapper for asn1_node objects that are used
        as decoding targets, simplifying lifetime management of these objects.

        * pal/PlatformGTK.cmake:
        * pal/PlatformWPE.cmake:
        * pal/crypto/tasn1/Utilities.cpp: Added.
        (PAL::TASN1::asn1Definitions):
        (PAL::TASN1::decodeStructure):
        (PAL::TASN1::elementData):
        * pal/crypto/tasn1/Utilities.h: Added.
        (PAL::TASN1::Structure::~Structure):
        (PAL::TASN1::Structure::operator&):
        (PAL::TASN1::Structure::operator asn1_node):
        * pal/crypto/tasn1/WebCrypto.asn: Added.

2017-06-20  Myles C. Maxfield  <mmaxfield@apple.com>

        Disable font variations on macOS Sierra and iOS 10
        https://bugs.webkit.org/show_bug.cgi?id=173618
        <rdar://problem/32879164>

        Reviewed by Jon Lee.

        * Configurations/FeatureDefines.xcconfig:

2017-06-19  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fix after r218484.

        * pal/crypto/gcrypt/Utilities.h: Drop the GCrypt prefix from the
        GCryptCipherOperation type definition, since it's already nested
        in the PAL::GCrypt namespace.

2017-06-19  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] AES_CTR support
        https://bugs.webkit.org/show_bug.cgi?id=171420

        Reviewed by Michael Catanzaro.

        * pal/crypto/gcrypt/Utilities.h: Add a GCryptCipherOperation type alias that can be used
        for the gcry_cipher_decrypt or gcry_cipher_encrypt function pointers.

2017-06-16  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iOS DnD] Upstream iOS drag and drop implementation into OpenSource WebKit
        https://bugs.webkit.org/show_bug.cgi?id=173366
        <rdar://problem/32767014>

        Reviewed by Tim Horton.

        Introduce ENABLE_DATA_INTERACTION and ENABLE_DRAG_SUPPORT to FeatureDefines.xcconfig.

        * Configurations/FeatureDefines.xcconfig:

2017-06-10  Dan Bernstein  <mitz@apple.com>

        Reverted r218056 because it made the IDE reindex constantly.

        * Configurations/DebugRelease.xcconfig:

2017-06-10  Dan Bernstein  <mitz@apple.com>

        [Xcode] With Xcode 9 developer beta, everything rebuilds when switching between command-line and IDE
        https://bugs.webkit.org/show_bug.cgi?id=173223

        Reviewed by Sam Weinig.

        The rebuilds were happening due to a difference in the compiler options that the IDE and
        xcodebuild were specifying. Only the IDE was passing the -index-store-path option. To make
        xcodebuild pass that option, too, set CLANG_INDEX_STORE_ENABLE to YES if it is unset, and
        specify an appropriate path in CLANG_INDEX_STORE_PATH.

        * Configurations/DebugRelease.xcconfig:

2017-06-01  Andy Estes  <aestes@apple.com>

        REGRESSION (r217626): ENABLE_APPLE_PAY_SESSION_V3 was disabled by mistake
        https://bugs.webkit.org/show_bug.cgi?id=172828

        Reviewed by Beth Dakin.

        * Configurations/FeatureDefines.xcconfig:

2017-05-31  Andy Estes  <aestes@apple.com>

        Rename ENABLE_APPLE_PAY_DELEGATE to ENABLE_APPLE_PAY_SESSION_V3 and bump the supported version number
        https://bugs.webkit.org/show_bug.cgi?id=172366

        Reviewed by Daniel Bates.

        * Configurations/FeatureDefines.xcconfig:

2017-05-30  Alex Christensen  <achristensen@webkit.org>

        Update libwebrtc configuration
        https://bugs.webkit.org/show_bug.cgi?id=172727

        Reviewed by Geoffrey Garen.

        * Configurations/FeatureDefines.xcconfig:

2017-05-28  Dan Bernstein  <mitz@apple.com>

        [Xcode] ALWAYS_SEARCH_USER_PATHS is set to YES
        https://bugs.webkit.org/show_bug.cgi?id=172691

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig: Set ALWAYS_SEARCH_USER_PATHS to NO.

2017-05-23  Myles C. Maxfield  <mmaxfield@apple.com>

        Remove dead ENABLE(FONT_LOAD_EVENTS) code
        https://bugs.webkit.org/show_bug.cgi?id=172517

        Rubber-stamped by Simon Fraser.

        No new tests because there is no behavior change.

        * Configurations/FeatureDefines.xcconfig:

2017-05-18  Andy Estes  <aestes@apple.com>

        ENABLE(APPLE_PAY_DELEGATE) should be NO on macOS Sierra and earlier
        https://bugs.webkit.org/show_bug.cgi?id=172305

        Reviewed by Anders Carlsson.

        * Configurations/FeatureDefines.xcconfig:

2017-05-09  Sam Weinig  <sam@webkit.org>

        Remove support for legacy Notifications
        https://bugs.webkit.org/show_bug.cgi?id=171487

        Reviewed by Jon Lee.

        * Configurations/FeatureDefines.xcconfig:
        Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

2017-05-09  Zan Dobersek  <zdobersek@igalia.com>

        Upstream the WPE port
        https://bugs.webkit.org/show_bug.cgi?id=171110

        Reviewed by Alex Christensen.

        * pal/PlatformWPE.cmake: Added.

2017-05-04  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r216206.
        https://bugs.webkit.org/show_bug.cgi?id=171714

        Multiple LayoutTests crashing in Document::page() (Requested
        by ap on #webkit).

        Reverted changeset:

        "Remove support for legacy Notifications"
        https://bugs.webkit.org/show_bug.cgi?id=171487
        http://trac.webkit.org/changeset/216206

2017-05-04  Don Olmstead  <don.olmstead@am.sony.com>

        [Win] Remove redundant macros that are set in the CMake config
        https://bugs.webkit.org/show_bug.cgi?id=171571

        Reviewed by Brent Fulgham.

        No new tests. No change in behavior.

        * config.h:

2017-05-04  Sam Weinig  <sam@webkit.org>

        Remove support for legacy Notifications
        https://bugs.webkit.org/show_bug.cgi?id=171487

        Reviewed by Jon Lee.

        * Configurations/FeatureDefines.xcconfig:
        Remove definition of ENABLE_LEGACY_NOTIFICATIONS.

2017-05-02  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>

        Make "PAL/pal" and "PAL/pal/crypto" directories private
        https://bugs.webkit.org/show_bug.cgi?id=171524

        Reviewed by Myles C. Maxfield.

        Make the "PAL/pal" and "PAL/pal/crypto" directories private to force WebCore sources 
        to include PAL headers in "#include <pal/***.h>" style.

        * pal/CMakeLists.txt:

2017-05-01  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] ECDH bit derivation support
        https://bugs.webkit.org/show_bug.cgi?id=171070

        Reviewed by Michael Catanzaro.

        Add PAL::GCrypt::HandleDeleter specialization for the
        gcry_mpi_point_t type.

        * pal/crypto/gcrypt/Handle.h:
        (PAL::GCrypt::HandleDeleter<gcry_mpi_point_t>::operator()):

2017-04-25  Daniel Bates  <dabates@apple.com>

        [Cocoa][Win] Enable of X-Content-Type-Options: nosniff header
        https://bugs.webkit.org/show_bug.cgi?id=136452
        <rdar://problem/23412620>

        Reviewed by Brent Fulgham.

        Enable X-Content-Type-Options: nosniff on Mac, iOS and Windows platforms.

        * Configurations/FeatureDefines.xcconfig:

2017-04-19  Youenn Fablet  <youenn@apple.com>

        [Mac] Allow customizing H264 encoder
        https://bugs.webkit.org/show_bug.cgi?id=170829

        Reviewed by Alex Christensen.

        * Configurations/FeatureDefines.xcconfig:

2017-04-17  Youenn Fablet  <youenn@apple.com>

        Disable outdated WritableStream API
        https://bugs.webkit.org/show_bug.cgi?id=170749
        <rdar://problem/31446233>

        Reviewed by Alex Christensen.

        * Configurations/FeatureDefines.xcconfig:

2017-04-14  Mark Lam  <mark.lam@apple.com>

        Update architectures in xcconfig files.
        https://bugs.webkit.org/show_bug.cgi?id=170867
        <rdar://problem/31628104>

        Reviewed by Joseph Pecoraro.

        No new tests needed.  Only updating xcconfig files.

        * Configurations/Base.xcconfig:
        * Configurations/FeatureDefines.xcconfig:

2017-04-12  Dan Bernstein  <mitz@apple.com>

        [Mac] Future-proof .xcconfig files
        https://bugs.webkit.org/show_bug.cgi?id=170802

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/FeatureDefines.xcconfig:
        * Configurations/Version.xcconfig:

2017-04-11  Dean Jackson  <dino@apple.com>

        Disable outdated WritableStream API
        https://bugs.webkit.org/show_bug.cgi?id=170749
        <rdar://problem/31446233>

        Reviewed by Tim Horton.

        The API we implement is no longer accurate. Disable it until we
        are compatible with the new specification

        * Configurations/FeatureDefines.xcconfig:

2017-04-10  Alex Christensen  <achristensen@webkit.org>

        Revert r215217
        https://bugs.webkit.org/show_bug.cgi?id=170703

        * Configurations/FeatureDefines.xcconfig:

2017-04-10  Alex Christensen  <achristensen@webkit.org>

        Continue enabling WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=170703

        Reviewed by Youenn Fablet.

        * Configurations/FeatureDefines.xcconfig:

2017-04-08  Youenn Fablet  <youenn@apple.com>

        WebRTC tests gardening
        https://bugs.webkit.org/show_bug.cgi?id=170508

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig:

2017-04-07  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] Implement raw and JWK imports and exports for EC keys
        https://bugs.webkit.org/show_bug.cgi?id=170546

        Reviewed by Michael Catanzaro.

        Add HandleDeleter specizalizations for gcry_ctx_t and gcry_mpi_t types.

        * pal/crypto/gcrypt/Handle.h:
        (PAL::GCrypt::HandleDeleter<gcry_ctx_t>::operator()):
        (PAL::GCrypt::HandleDeleter<gcry_mpi_t>::operator()):

2017-04-06  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r215046.

        This change broke internal builds.

        Reverted changeset:

        "WebRTC tests gardening"
        https://bugs.webkit.org/show_bug.cgi?id=170508
        http://trac.webkit.org/changeset/215046

2017-04-06  Youenn Fablet  <youenn@apple.com>

        WebRTC tests gardening
        https://bugs.webkit.org/show_bug.cgi?id=170508

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig:

2017-04-03  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, attempt to fix build with libgcrypt < 1.7.0

        * pal/crypto/gcrypt/Utilities.h:

2017-04-03  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] Implement CryptoKeyEC::keySizeInBits(), ::platformGeneratePair()
        https://bugs.webkit.org/show_bug.cgi?id=170345

        Reviewed by Michael Catanzaro.

        * pal/crypto/gcrypt/Handle.h:
        (PAL::GCrypt::HandleDeleter<gcry_sexp_t>::operator()): Add a HandleDeleter
        specialization for the gcry_sexp_t type.

2017-04-03  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] Implement AES_GCM support
        https://bugs.webkit.org/show_bug.cgi?id=170271

        Reviewed by Michael Catanzaro.

        * pal/crypto/gcrypt/Handle.h:
        (PAL::GCrypt::HandleDeleter<gcry_cipher_hd_t>::operator()): Specialize
        the HandleDeleter<> template for the gcry_cipher_hd_t type.

2017-03-30  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] Add the Utilities.h header
        https://bugs.webkit.org/show_bug.cgi?id=170269

        Reviewed by Michael Catanzaro.

        Add a libgcrypt-specific Utilities.h header under PAL. It will contain
        common functions that are shared throughout the code that leverages
        libgcrypt.

        * pal/crypto/gcrypt/Utilities.h: Added.
        (PAL::GCrypt::logError): Use WTFLogAlways() to report the passed-in libgcrypt error.
        (PAL::GCrypt::aesAlgorithmForKeySize): Return a GCRY_CIPHER_AES{128,192,256} value
        that matches up with the passed-in key size.

2017-03-29  Zan Dobersek  <zdobersek@igalia.com>

        [GCrypt] Add a Handle<> class to help with GCrypt object lifetime control
        https://bugs.webkit.org/show_bug.cgi?id=170238

        Reviewed by Michael Catanzaro.

        Add a GCrypt-specific Handle<> template class, inside the GCrypt namespace.
        Objects of this class should be used as 'smart handles', cleaning up upon
        destruction the GCrypt object that's represented by the handle they manage.

        This mimics the std::unique_ptr<> idea, but is narrowly focused towards
        how such handles are used in the libgcrypt API. A GCrypt::Handle<> object
        can be consturcted from an existing handle or with the default null value.
        It can be cleared upon request via clear(), and the managed handle can be
        released via release().

        The address of the managed handle can be retrieved through the address-of
        operator. An implicit conversion operator is also added. This allows
        frictionless use of GCrypt::Handle<> objects with existing libgcrypt APIs.

        The negation operator is implemented to support testing the nullness of
        the managed handle. The raw handle value is also retrieveable through
        the handle() method.

        The copy and move constructors and assignment operators are deleted.
        They are not at the moment required anywhere in the work-in-progress
        implementation of subtle crypto functionality.

        As with other resource management classes, upon destruction, the
        GCrypt::Handle<> object destroys the resource it manages. This is done
        through objects of the HandleDeleter<> template class. Specializations
        of this class have to implement the call operator that properly
        releases the resource. Because the operator is deleted by default,
        a compilation error will be thrown when deleting a resource of some
        type for which the proper HandleDeleter specialization isn't provided.

        std::unique_ptr<> could be used, but it could also be mis-used. I find
        a mini-class with an interface that's specific to libgcrypt API
        interactions to be preferrable to a std::unique_ptr<> with a custom
        deleter.

        * pal/crypto/gcrypt/Handle.h: Added.
        (PAL::GCrypt::Handle::Handle):
        (PAL::GCrypt::Handle::~Handle):
        (PAL::GCrypt::Handle::clear):
        (PAL::GCrypt::Handle::release):
        (PAL::GCrypt::Handle::operator&):
        (PAL::GCrypt::Handle::handle):
        (PAL::GCrypt::Handle::operator T):
        (PAL::GCrypt::Handle::operator!):
        (PAL::GCrypt::HandleDeleter<gcry_mac_hd_t>::operator()):

2017-03-29  Zan Dobersek  <zdobersek@igalia.com>

        [GnuTLS] Remove unused CryptoDigestGnuTLS, CryptoAlgorithmHMACGnuTLS implementation files
        https://bugs.webkit.org/show_bug.cgi?id=170231

        Reviewed by Michael Catanzaro.

        * pal/crypto/gnutls/CryptoDigestGnuTLS.cpp: Removed. The GCrypt counterpart
        is already in use, and this file wasn't even being built.

2017-03-17  Michael Saboff  <msaboff@apple.com>

        Use USE_INTERNAL_SDK to compute ENABLE_FAST_JIT_PERMISSIONS instead of HAVE_INTERNAL_SDK
        https://bugs.webkit.org/show_bug.cgi?id=169817

        Reviewed by Filip Pizlo.

        * Configurations/FeatureDefines.xcconfig:

2017-03-15  Dean Jackson  <dino@apple.com>

        Sort Xcode project files
        https://bugs.webkit.org/show_bug.cgi?id=169669

        Reviewed by Antoine Quint.

        * PAL.xcodeproj/project.pbxproj:

2017-03-10  Alex Christensen  <achristensen@webkit.org>

        Fix watch and tv builds after r213294
        https://bugs.webkit.org/show_bug.cgi?id=169508

        Reviewed by Dan Bernstein.

        * Configurations/FeatureDefines.xcconfig:

2017-03-09  Anders Carlsson  <andersca@apple.com>

        Add delegate support to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=169427
        Part of rdar://problem/28880714.

        Reviewed by Geoffrey Garen.

        * Configurations/FeatureDefines.xcconfig:
        Add feature define.

2017-03-07  Dean Jackson  <dino@apple.com>

        Some platforms won't be able to create a GPUDevice
        https://bugs.webkit.org/show_bug.cgi?id=169314
        <rdar://problems/30907521>

        Reviewed by Jon Lee.

        Disable WEB_GPU on the iOS Simulator.

        * Configurations/FeatureDefines.xcconfig:

2017-03-06  Michael Saboff  <msaboff@apple.com>

        Take advantage of fast permissions switching of JIT memory for devices that support it
        https://bugs.webkit.org/show_bug.cgi?id=169155

        Reviewed by Saam Barati.

        Updated the Xcode config files to match what is in the JavaScriptCore ones.

        * Configurations/FeatureDefines.xcconfig:

2017-03-03  Dean Jackson  <dino@apple.com>

        Add WebGPU compile flag and experimental feature flag
        https://bugs.webkit.org/show_bug.cgi?id=169161
        <rdar://problem/30846689>

        Reviewed by Tim Horton.

        Add ENABLE_WEBGPU, an experimental feature flag, a RuntimeEnabledFeature,
        and an InternalSetting.

        * Configurations/FeatureDefines.xcconfig:

2017-03-02  Alex Christensen  <achristensen@webkit.org>

        Continue enabling WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=169056

        Reviewed by Jon Lee.

        * Configurations/FeatureDefines.xcconfig:

2017-03-01  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, rolling out r213259.

        Broke an internal build

        Reverted changeset:

        "Continue enabling WebRTC"
        https://bugs.webkit.org/show_bug.cgi?id=169056
        http://trac.webkit.org/changeset/213259

2017-03-01  Alex Christensen  <achristensen@webkit.org>

        Continue enabling WebRTC
        https://bugs.webkit.org/show_bug.cgi?id=169056

        Reviewed by Jon Lee.

        * Configurations/FeatureDefines.xcconfig:

2017-02-27  Alex Christensen  <achristensen@webkit.org>

        Begin enabling WebRTC on 64-bit
        https://bugs.webkit.org/show_bug.cgi?id=168915

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig:

2017-02-27  Alex Christensen  <achristensen@webkit.org>

        [libwebrtc] Enable WebRTC in some Production Builds
        https://bugs.webkit.org/show_bug.cgi?id=168858

        * Configurations/FeatureDefines.xcconfig:

2017-02-21  Youenn Fablet  <youenn@apple.com>

        [WebRTC][Mac] Activate libwebrtc
        https://bugs.webkit.org/show_bug.cgi?id=167293

        Reviewed by Alex Christensen.

        * Configurations/FeatureDefines.xcconfig:

2017-02-20  Manuel Rego Casasnovas  <rego@igalia.com>

        [css-grid] Remove compilation flag ENABLE_CSS_GRID_LAYOUT
        https://bugs.webkit.org/show_bug.cgi?id=167693

        Reviewed by Sergio Villar Senin.

        * Configurations/FeatureDefines.xcconfig:

2017-02-16  Anders Carlsson  <andersca@apple.com>

        Begin removing EFL code from WebCore.

        Rubber-stamped by Alex Christensen.

        * pal/PlatformEfl.cmake: Removed.

2017-01-28  Dan Bernstein  <mitz@apple.com>

        [Xcode] Clean up PAL and WebCore’s build settings a little
        https://bugs.webkit.org/show_bug.cgi?id=167292

        Reviewed by Sam Weinig.

        * ChangeLog: Created this file.

        * Configurations/Base.xcconfig: Simplified the definition of
          GCC_WARN_64_TO_32_BIT_CONVERSION, removed the unused build setting PREBINDING, removed
          a duplicate definition of GCC_GENERATE_DEBUGGING_SYMBOLS, and removed definitions specific
          to OS X versions that are no longer supported.

        * Configurations/DebugRelease.xcconfig: Removed definitions specific to OS X versions
          that are no longer supported.

        * Configurations/PAL.xcconfig: Removed header search paths that do not exist or do not
          make sense. Simplified the definitions of INSTALL_PATH and SKIP_INSTALL. Removed the
          unusued build settings PRODUCT_BUNDLE_IDENTIFIER and
          WK_PREFIXED_IPHONEOS_DEPLOYMENT_TARGET. Removed the redundant definition of
          EXECUTABLE_PREFIX.

        * PAL.xcodeproj/project.pbxproj: Sorted the Configurations group.
