2022-01-25  Eric Carlson  <eric.carlson@apple.com>

        [macOS] Add new screen and window capture backend
        https://bugs.webkit.org/show_bug.cgi?id=234029
        rdar://problem/86347726

        Reviewed by Jer Noble and Youenn Fablet.

        * PAL.xcodeproj/project.pbxproj:
        * pal/mac/ScreenCaptureKitSoftLink.h: Added.
        * pal/mac/ScreenCaptureKitSoftLink.mm: Added.

2022-01-24  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION(r282320): [Cocoa] User-installed fonts don't work in the GPU Process (in WKWebView)
        https://bugs.webkit.org/show_bug.cgi?id=235449
        <rdar://problem/84958961>

        Reviewed by Darin Adler.

        * pal/spi/cf/CoreTextSPI.h:

022-01-24  David Quesada  <david_quesada@apple.com>

        Simplify accesses to SystemVersion.plist
        https://bugs.webkit.org/show_bug.cgi?id=234306

        Reviewed by Alexey Proskuryakov.

        * pal/spi/cf/CFUtilitiesSPI.h:
            Forward declare _kCFSystemVersionProductUserVisibleVersionKey, used
            by WebCore's SystemVersion.mm

2022-01-21  Sihui Liu  <sihui_liu@apple.com>

        Disable CFURLCache in WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=234988
        <rdar://problem/87619196>

        Reviewed by Geoffrey Garen.

        * pal/spi/cf/CFNetworkSPI.h:

2022-01-18  Alex Christensen  <achristensen@webkit.org>

        Use c++2a instead of gnu++2a for Cocoa builds
        https://bugs.webkit.org/show_bug.cgi?id=234936

        Reviewed by Sam Weinig.

        * Configurations/Base.xcconfig:

2022-01-14  Jer Noble  <jer.noble@apple.com>

        [Cocoa] rVFC() isn't called for initial video load
        https://bugs.webkit.org/show_bug.cgi?id=235006

        Reviewed by Eric Carlson.

        * pal/spi/cocoa/AVFoundationSPI.h:

2022-01-13  Elliott Williams  <emw@apple.com>

        [XCBuild] Add "product dependencies" which influence workspace build order
        https://bugs.webkit.org/show_bug.cgi?id=235094

        Reviewed by Alexey Proskuryakov.

        * Configurations/Base.xcconfig: Add EXCLUDED_SOURCE_FILE_NAMES
        * Configurations/PAL.xcconfig: Inherit EXCLUDED_SOURCE_FILE_NAMES
        * PAL.xcodeproj/project.pbxproj: Add Product Dependencies

2022-01-11  Fujii Hironori  <Hironori.Fujii@sony.com>

        Remove Direct2D code (part 2)
        https://bugs.webkit.org/show_bug.cgi?id=235097

        Reviewed by Yusuke Suzuki.

        * pal/PlatformAppleWin.cmake:

2022-01-10  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add support for a -shouldWrap property when injecting Live Text
        https://bugs.webkit.org/show_bug.cgi?id=235035
        rdar://85139146

        Reviewed by Tim Horton.

        Add a forward staging declaration for the new SPI property.

        * pal/spi/cocoa/VisionKitCoreSPI.h:

2022-01-10  Alex Christensen  <achristensen@webkit.org>

        Start using C++20
        https://bugs.webkit.org/show_bug.cgi?id=233963

        Reviewed by Yusuke Suzuki.

        * Configurations/Base.xcconfig:

2022-01-09  Sam Weinig  <weinig@apple.com>

        Remove support for Direct2D
        https://bugs.webkit.org/show_bug.cgi?id=234999

        Reviewed by Darin Adler.

        Direct2D and FTW have not been building for over a year. It is
        time to remove them.

        * pal/PlatformFTW.cmake: Removed.

2022-01-07  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, reverting r287698.

        Broke an internal build

        Reverted changeset:

        "Start using C++20"
        https://bugs.webkit.org/show_bug.cgi?id=233963
        https://commits.webkit.org/r287698

2022-01-06  Wenson Hsieh  <wenson_hsieh@apple.com>

        Add a helper function that returns the value of a std::optional<T> or constructs T if needed
        https://bugs.webkit.org/show_bug.cgi?id=234865

        Reviewed by Darin Adler.

        Use `valueOrDefault` where appropriate. See WTF/ChangeLog for more details.

        * pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.cpp:
        (PAL::WebGPU::ComputePassEncoderImpl::setBindGroup):
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.cpp:
        (PAL::WebGPU::RenderBundleEncoderImpl::setBindGroup):
        * pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.cpp:
        (PAL::WebGPU::RenderPassEncoderImpl::setBindGroup):

2022-01-06  Alex Christensen  <achristensen@webkit.org>

        Start using C++20
        https://bugs.webkit.org/show_bug.cgi?id=233963

        Reviewed by Yusuke Suzuki.

        * Configurations/Base.xcconfig:

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

        Add support for premultiplied alpha interpolated gradients and defaulted off option to use them for CSS Gradients
        https://bugs.webkit.org/show_bug.cgi?id=234492

        Reviewed by Simon Fraser.

        * pal/spi/cg/CoreGraphicsSPI.h:
        Add forwards for creating conic shadings and enabling premultiplied alpha interpolation for gradients.

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

        Add PAL soft linking headers for CoreML and NaturalLanguage frameworks
        https://bugs.webkit.org/show_bug.cgi?id=234489

        Reviewed by Devin Rousso.

        Add CoreMLSoftLink.h and NaturalLanguageSoftLink.h; to be used in an upcoming patch that will add support for
        classifying text inside controls in "modal containers". See rdar://77073735 for more details.

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

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

        Unreviewed, reverting r287056.
        <rdar://86519800>

        Caused performance regression...again

        Reverted changeset:

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

2021-12-14  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-12-14  Andreu Botella  <andreu@andreubotella.com>

        TextDecoder doesn't detect invalid UTF-8 sequences early enough
        https://bugs.webkit.org/show_bug.cgi?id=233921

        Reviewed by Darin Adler.

        In streaming mode, when TextCodecUTF8 found a lead byte for which a
        valid sequence would span longer than the currently available bytes, it
        used to defer any processing of that sequence until all such bytes were
        available, even if errors could be detected earlier. Additionally, if
        the stream was flushed at that point, it would emit a single replacement
        character, regardless of whether the remaining bytes formed a valid
        sequence, even if they had lead bytes, resulting in skipped characters.
        Both issues are solved by always checking the validity of partial
        sequences.

        The approach used in this patch uses `decodeNonASCIISequence` to find
        the length of the maximal subpart of a partial sequence, and if the
        length is equal to the partial sequence size and we're not at EOF, we
        don't emit the error. This is enough to handle the missing characters at
        EOF, and when combined with changing the condition of the outer do-while
        loops in the `decode` method from `flush && m_partialSequenceSize` to
        only `m_partialSequenceSize`, it also fixes the streaming issue.

        This patch is a port of
        https://chromium-review.googlesource.com/c/chromium/src/+/3263938

        Tests: imported/w3c/web-platform-tests/encoding/textdecoder-eof.any.html
               imported/w3c/web-platform-tests/encoding/textdecoder-stream.any.html

        * pal/text/TextCodecUTF8.cpp:
        (PAL::TextCodecUTF8::handlePartialSequence): Changed to always process
        partial sequences.
        (PAL::TextCodecUTF8::decode): Changed the loop condition of the outer
        do-while loops to not depend on `flush`.

2021-12-14  Ben Nham  <nham@apple.com>

        Add web push message decryption routines
        https://bugs.webkit.org/show_bug.cgi?id=233903

        Reviewed by Brady Eidson.

        * pal/spi/cocoa/CommonCryptoSPI.h: Add AES-GCM decryption SPI.

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

        Unreviewed, reverting r286893.
        https://bugs.webkit.org/show_bug.cgi?id=234197

        Breaks the build

        Reverted changeset:

        "[macOS] Add new screen and window capture backend"
        https://bugs.webkit.org/show_bug.cgi?id=234029
        https://commits.webkit.org/r286893

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

        Add an experimental trackConfiguration accessor on AudioTrack & VideoTrack.
        https://bugs.webkit.org/show_bug.cgi?id=230841

        Reviewed by Eric Carlson.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/spi/cocoa/AVFoundationSPI.h:

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

        [macOS] Add new screen and window capture backend
        https://bugs.webkit.org/show_bug.cgi?id=234029

        Reviewed by Jer Noble and Youenn Fablet.

        * PAL.xcodeproj/project.pbxproj:
        * pal/mac/ScreenCaptureKitSoftLink.h: Added.
        * pal/mac/ScreenCaptureKitSoftLink.mm: Added.

2021-12-10  Brady Eidson  <beidson@apple.com>

        Teach webpushd to launch an app in response to an injected message.
        https://bugs.webkit.org/show_bug.cgi?id=234122

        Reviewed by Alex Christensen.

        * pal/spi/cocoa/LaunchServicesSPI.h:

2021-12-10  Antoine Quint  <graouts@webkit.org>

        Expose the maximum device frame rate to the Web Animations model
        https://bugs.webkit.org/show_bug.cgi?id=234161
        rdar://85983792

        Reviewed by Simon Fraser.

        Add a newly-used CADisplayLink SPI.

        * pal/spi/cocoa/QuartzCoreSPI.h:

2021-12-09  Robert Jenner  <Jenner@apple.com>

        Unreviewed, reverting r286754.

        Broke 2 tests on all mac an iOS

        Reverted changeset:

        "Add an experimental trackConfiguration accessor on AudioTrack
        & VideoTrack."
        https://bugs.webkit.org/show_bug.cgi?id=230841
        https://commits.webkit.org/r286754

2021-12-09  Myles C. Maxfield  <mmaxfield@apple.com> and Don Olmstead  <don.olmstead@sony.com>

        Move TextCodec files from WebCore/platform/text to WebCore/PAL/text
        https://bugs.webkit.org/show_bug.cgi?id=233683

        Reviewed by Yusuke Suzuki.

        This is a purely mechanical move. The TextCodec files don't have any dependencies
        except for ICU, so they're good candidates to move.

        * PAL.xcodeproj/project.pbxproj:
        * pal/CMakeLists.txt:
        * pal/PlatformMac.cmake:
        * pal/ThreadGlobalData.cpp: Copied from Source/WebCore/PAL/pal/text/UnencodableHandling.h.
        (PAL::ThreadGlobalData::ThreadGlobalData):
        (PAL::ThreadGlobalData::destroy):
        * pal/ThreadGlobalData.h: Copied from Source/WebCore/html/parser/HTMLMetaCharsetParser.h.
        (PAL::ThreadGlobalData::ThreadGlobalData::cachedConverterICU):
        * pal/text/DecodeEscapeSequences.h: Renamed from Source/WebCore/platform/text/DecodeEscapeSequences.h.
        (PAL::Unicode16BitEscapeSequence::findEndOfRun):
        (PAL::Unicode16BitEscapeSequence::decodeRun):
        (PAL::URLEscapeSequence::findEndOfRun):
        (PAL::URLEscapeSequence::decodeRun):
        (PAL::decodeURLEscapeSequencesAsData):
        * pal/text/EncodingTables.cpp: Renamed from Source/WebCore/platform/text/EncodingTables.cpp.
        (PAL::big5):
        (PAL::eucKR):
        * pal/text/EncodingTables.h: Renamed from Source/WebCore/platform/text/EncodingTables.h.
        (PAL::findInSortedPairs):
        * pal/text/TextCodec.cpp: Renamed from Source/WebCore/platform/text/TextCodec.cpp.
        * pal/text/TextCodec.h: Renamed from Source/WebCore/platform/text/TextCodec.h.
        * pal/text/TextCodecASCIIFastPath.h: Renamed from Source/WebCore/platform/text/TextCodecASCIIFastPath.h.
        * pal/text/TextCodecCJK.cpp: Renamed from Source/WebCore/platform/text/TextCodecCJK.cpp.
        (PAL::gb18030Ranges):
        * pal/text/TextCodecCJK.h: Renamed from Source/WebCore/platform/text/TextCodecCJK.h.
        * pal/text/TextCodecICU.cpp: Renamed from Source/WebCore/platform/text/TextCodecICU.cpp.
        (PAL::TextCodecICU::decode):
        * pal/text/TextCodecICU.h: Renamed from Source/WebCore/platform/text/TextCodecICU.h.
        * pal/text/TextCodecLatin1.cpp: Renamed from Source/WebCore/platform/text/TextCodecLatin1.cpp.
        * pal/text/TextCodecLatin1.h: Renamed from Source/WebCore/platform/text/TextCodecLatin1.h.
        * pal/text/TextCodecReplacement.cpp: Renamed from Source/WebCore/platform/text/TextCodecReplacement.cpp.
        * pal/text/TextCodecReplacement.h: Renamed from Source/WebCore/platform/text/TextCodecReplacement.h.
        * pal/text/TextCodecSingleByte.cpp: Renamed from Source/WebCore/platform/text/TextCodecSingleByte.cpp.
        (PAL::TextCodecSingleByte::encode const):
        (PAL::TextCodecSingleByte::decode):
        * pal/text/TextCodecSingleByte.h: Renamed from Source/WebCore/platform/text/TextCodecSingleByte.h.
        * pal/text/TextCodecUTF16.cpp: Renamed from Source/WebCore/platform/text/TextCodecUTF16.cpp.
        * pal/text/TextCodecUTF16.h: Renamed from Source/WebCore/platform/text/TextCodecUTF16.h.
        * pal/text/TextCodecUTF8.cpp: Renamed from Source/WebCore/platform/text/TextCodecUTF8.cpp.
        (PAL::TextCodecUTF8::decode):
        * pal/text/TextCodecUTF8.h: Renamed from Source/WebCore/platform/text/TextCodecUTF8.h.
        * pal/text/TextCodecUserDefined.cpp: Renamed from Source/WebCore/platform/text/TextCodecUserDefined.cpp.
        * pal/text/TextCodecUserDefined.h: Renamed from Source/WebCore/platform/text/TextCodecUserDefined.h.
        * pal/text/TextEncoding.cpp: Renamed from Source/WebCore/platform/text/TextEncoding.cpp.
        (PAL::TextEncoding::encode const):
        * pal/text/TextEncoding.h: Renamed from Source/WebCore/platform/text/TextEncoding.h.
        * pal/text/TextEncodingDetector.h: Renamed from Source/WebCore/platform/text/TextEncodingDetector.h.
        * pal/text/TextEncodingDetectorICU.cpp: Renamed from Source/WebCore/platform/text/TextEncodingDetectorICU.cpp.
        (PAL::detectTextEncoding):
        * pal/text/TextEncodingRegistry.cpp: Renamed from Source/WebCore/platform/text/TextEncodingRegistry.cpp.
        (PAL::isUndesiredAlias):
        * pal/text/TextEncodingRegistry.h: Renamed from Source/WebCore/platform/text/TextEncodingRegistry.h.
        * pal/text/UnencodableHandling.h:
        * pal/text/ios/TextEncodingRegistryIOS.mm: Renamed from Source/WebCore/platform/text/ios/TextEncodingRegistryIOS.mm.
        (PAL::webDefaultCFStringEncoding):
        * pal/text/mac/TextEncodingRegistryMac.mm: Renamed from Source/WebCore/platform/text/mac/TextEncodingRegistryMac.mm.
        * pal/text/win/TextCodecWin.cpp: Renamed from Source/WebCore/platform/text/win/TextCodecWin.cpp.
        (PAL::getCodePageFlags):
        * pal/text/win/TextCodecWin.h: Renamed from Source/WebCore/platform/text/win/TextCodecWin.h.

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

        Add an experimental trackConfiguration accessor on AudioTrack & VideoTrack.
        https://bugs.webkit.org/show_bug.cgi?id=230841

        Reviewed by Eric Carlson.

        * pal/cf/CoreMediaSoftLink.cpp:
        * pal/cf/CoreMediaSoftLink.h:
        * pal/spi/cocoa/AVFoundationSPI.h:

2021-12-02  Megan Gardner  <megan_gardner@apple.com>

        Re-add support of image control menus.
        https://bugs.webkit.org/show_bug.cgi?id=233305

        Reviewed by Tim Horton.

        Move SPI to SPI specific file.

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

2021-12-02  Brady Eidson  <beidson@apple.com>

        AVDelegatingPlaybackCoordinator error compiling on macOS 11
        https://bugs.webkit.org/show_bug.cgi?id=232454

        Reviewed by Tim Horton.

        * pal/cocoa/AVFoundationSoftLink.h: Don't softlink on platforms that don't have it
          (No other source changes were necessary)

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

        [WebGPU] Add missing files to CMake
        https://bugs.webkit.org/show_bug.cgi?id=233687

        Reviewed by Sam Weinig.

        I forgot to list some files.

        * pal/CMakeLists.txt:

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

        Add a momentum event synthesizer
        https://bugs.webkit.org/show_bug.cgi?id=233653
        <rdar://problem/85571258>

        Reviewed by Simon Fraser.

        * pal/spi/mac/IOKitSPIMac.h:
        Add some SPI.

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

        Unreviewed, reverting r286227.
        https://bugs.webkit.org/show_bug.cgi?id=233652

        Broke some Apple-internal builds

        Reverted changeset:

        "[Model] clean up compile-time flags and condition IDL methods
        behind them"
        https://bugs.webkit.org/show_bug.cgi?id=233407
        https://commits.webkit.org/r286227

2021-11-29  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-11-29  Myles C. Maxfield  <mmaxfield@apple.com>

        [WebGPU] Provide default values for descriptor struct members
        https://bugs.webkit.org/show_bug.cgi?id=233431

        Reviewed by Alex Christensen.

        The purpose of this is to be defensive. Ideally these wouldn't actually be used, but it's
        a good idea to be safe and have them specified anyway.

        I didn't provide default values for members whose types already have something well-defined,
        like variants or optionals. But I did for ints and enums.

        Where possible, I've matched the default values listed in the spec.

        * pal/graphics/WebGPU/WebGPUBindGroupEntry.h:
        * pal/graphics/WebGPU/WebGPUBindGroupLayoutEntry.h:
        * pal/graphics/WebGPU/WebGPUBlendComponent.h:
        * pal/graphics/WebGPU/WebGPUBufferBinding.h:
        * pal/graphics/WebGPU/WebGPUBufferBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUBufferDescriptor.h:
        * pal/graphics/WebGPU/WebGPUCanvasConfiguration.h:
        * pal/graphics/WebGPU/WebGPUColor.h:
        * pal/graphics/WebGPU/WebGPUColorTargetState.h:
        * pal/graphics/WebGPU/WebGPUCompilationMessage.h:
        * pal/graphics/WebGPU/WebGPUComputePassTimestampWrites.h:
        * pal/graphics/WebGPU/WebGPUDepthStencilState.h:
        * pal/graphics/WebGPU/WebGPUExtent3D.h:
        * pal/graphics/WebGPU/WebGPUExternalTextureDescriptor.h:
        * pal/graphics/WebGPU/WebGPUImageCopyTexture.h:
        * pal/graphics/WebGPU/WebGPUImageCopyTextureTagged.h:
        * pal/graphics/WebGPU/WebGPUImageDataLayout.h:
        * pal/graphics/WebGPU/WebGPUMultisampleState.h:
        * pal/graphics/WebGPU/WebGPUOrigin2D.h:
        * pal/graphics/WebGPU/WebGPUOrigin3D.h:
        * pal/graphics/WebGPU/WebGPUPipelineDescriptorBase.h:
        * pal/graphics/WebGPU/WebGPUPrimitiveState.h:
        * pal/graphics/WebGPU/WebGPUQuerySetDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderBundleEncoderDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderPassColorAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassDepthStencilAttachment.h:
        * pal/graphics/WebGPU/WebGPURenderPassDescriptor.h:
        * pal/graphics/WebGPU/WebGPURenderPassLayout.h:
        * pal/graphics/WebGPU/WebGPURenderPassTimestampWrites.h:
        * pal/graphics/WebGPU/WebGPURequestAdapterOptions.h:
        * pal/graphics/WebGPU/WebGPUSamplerBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUSamplerDescriptor.h:
        * pal/graphics/WebGPU/WebGPUStencilFaceState.h:
        * pal/graphics/WebGPU/WebGPUStorageTextureBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUTextureBindingLayout.h:
        * pal/graphics/WebGPU/WebGPUTextureDescriptor.h:
        * pal/graphics/WebGPU/WebGPUTextureViewDescriptor.h:
        * pal/graphics/WebGPU/WebGPUVertexAttribute.h:
        * pal/graphics/WebGPU/WebGPUVertexBufferLayout.h:

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

        [Model] clean up compile-time flags and condition IDL methods behind them
        https://bugs.webkit.org/show_bug.cgi?id=233407

        Reviewed by Tim Horton.

        We adopt the changes made to flags in wtf/PlatformEnableCocoa.h and wtf/PlatformHave.h.
        We also remove the use of existing flags in QuartzCoreSPI.h since they're not actually
        valid.

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

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

        [WebGPU] IPC class refactorings
        https://bugs.webkit.org/show_bug.cgi?id=233546

        Reviewed by Dean Jackson.

        Make classes fast allocated.

        GPUImpl gets a create() function with no arguments, for ease of callers.

        * pal/graphics/WebGPU/Impl/WebGPUAdapterImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUBindGroupLayoutImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUBufferImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUCommandBufferImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUCommandEncoderImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUComputePassEncoderImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUComputePipelineImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUConvertToBackingContext.h:
        * pal/graphics/WebGPU/Impl/WebGPUDeviceImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUDowncastConvertToBackingContext.h:
        * pal/graphics/WebGPU/Impl/WebGPUExternalTextureImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUImpl.cpp:
        (PAL::WebGPU::GPUImpl::create):
        * pal/graphics/WebGPU/Impl/WebGPUImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUPipelineLayoutImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUQuerySetImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUQueueImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleEncoderImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPURenderBundleImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPURenderPassEncoderImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPURenderPipelineImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUSamplerImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUShaderModuleImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUTextureImpl.h:
        * pal/graphics/WebGPU/Impl/WebGPUTextureViewImpl.h:

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.
