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.
