ChangeLog   [plain text]


2020-04-16  Alan Coon  <alancoon@apple.com>

        Cherry-pick r259980. rdar://problem/61888315

    Follow-up: WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
    <https://webkit.org/b/210238>
    <rdar://problem/61491575>
    
    Changes based on feedback from Alex Christensen and Darin Adler:
    - Remove WARN_UNUSED_RETURN from methods returning Optional<>.
    - Place WARN_UNUSED_RETURN consistently before the return type.
    
    * wtf/persistence/PersistentDecoder.h:
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259980 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

            Follow-up: WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
            <https://webkit.org/b/210238>
            <rdar://problem/61491575>

            Changes based on feedback from Alex Christensen and Darin Adler:
            - Remove WARN_UNUSED_RETURN from methods returning Optional<>.
            - Place WARN_UNUSED_RETURN consistently before the return type.

            * wtf/persistence/PersistentDecoder.h:

2020-04-16  Alan Coon  <alancoon@apple.com>

        Cherry-pick r259814. rdar://problem/61888315

    WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
    <https://webkit.org/b/210238>
    <rdar://problem/61491575>
    
    Reviewed by Darin Adler.
    
    Source/WebKit:
    
    * NetworkProcess/cache/NetworkCacheEntry.cpp:
    (WebKit::NetworkCache::Entry::decodeStorageRecord):
    - Add missing return value check for decode.decode().
    
    Source/WTF:
    
    * wtf/persistence/PersistentCoders.cpp:
    (WTF::Persistence::decodeStringText):
    - Add WARN_UNUSED_RETURN.
    
    * wtf/persistence/PersistentCoders.h:
    (WTF::Persistence::Coder<Optional<T>>::decode):
    (WTF::Persistence::Coder<Seconds>::decode):
    (WTF::Persistence::Coder<WallTime>::decode):
    - Add WARN_UNUSED_RETURN.
    - Add missing return value check for
      decode.decodeFixedLengthData().
    
    * wtf/persistence/PersistentDecoder.h:
    (WTF::Persistence::Decoder::decode):
    (WTF::Persistence::Decoder::decodeEnum):
    (WTF::Persistence::Decoder::bufferIsLargeEnoughToContain const):
    - Add WARN_UNUSED_RETURN.
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259814 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

            WTF::Persistence::Coder and WTF::Persistence::Decoder should use WARN_UNUSED_RETURN
            <https://webkit.org/b/210238>
            <rdar://problem/61491575>

            Reviewed by Darin Adler.

            * wtf/persistence/PersistentCoders.cpp:
            (WTF::Persistence::decodeStringText):
            - Add WARN_UNUSED_RETURN.

            * wtf/persistence/PersistentCoders.h:
            (WTF::Persistence::Coder<Optional<T>>::decode):
            (WTF::Persistence::Coder<Seconds>::decode):
            (WTF::Persistence::Coder<WallTime>::decode):
            - Add WARN_UNUSED_RETURN.
            - Add missing return value check for
              decode.decodeFixedLengthData().

            * wtf/persistence/PersistentDecoder.h:
            (WTF::Persistence::Decoder::decode):
            (WTF::Persistence::Decoder::decodeEnum):
            (WTF::Persistence::Decoder::bufferIsLargeEnoughToContain const):
            - Add WARN_UNUSED_RETURN.

2020-04-12  Alan Coon  <alancoon@apple.com>

        Cherry-pick r259316. rdar://problem/61269751

    IndexedDB: destroy WebIDBServer when session is removed in network process
    https://bugs.webkit.org/show_bug.cgi?id=209606
    <rdar://problem/59310081>
    
    Reviewed by Geoffrey Garen.
    
    Source/WebCore:
    
    Rename immediateCloseForUserDelete to immediateClose as we now use it in destructor of IDBServer to make sure
    everything in database finishes correctly.
    
    * Modules/indexeddb/server/IDBServer.cpp:
    (WebCore::IDBServer::IDBServer::~IDBServer):
    (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
    (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
    * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
    (WebCore::IDBServer::UniqueIDBDatabase::immediateClose):
    (WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete): Deleted.
    * Modules/indexeddb/server/UniqueIDBDatabase.h:
    
    Source/WebKit:
    
    Tested manually to verify WebIDBServer is removed and its thread ends when session is removed.
    
    * NetworkProcess/IndexedDB/WebIDBServer.cpp:
    (WebKit::WebIDBServer::~WebIDBServer):
    (WebKit::WebIDBServer::addConnection):
    (WebKit::WebIDBServer::removeConnection):
    (WebKit::WebIDBServer::close):
    * NetworkProcess/IndexedDB/WebIDBServer.h:
    * NetworkProcess/NetworkProcess.cpp:
    (WebKit::NetworkProcess::destroySession):
    (WebKit::NetworkProcess::connectionToWebProcessClosed):
    
    Source/WTF:
    
    Add function to kill CrossThreadTaskHandler and make thread finish. Also add a callback to be called before
    thread finishes.
    
    * wtf/CrossThreadTaskHandler.cpp:
    (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
    (WTF::CrossThreadTaskHandler::setCompletionCallback):
    (WTF::CrossThreadTaskHandler::kill):
    * wtf/CrossThreadTaskHandler.h:
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259316 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-03-31  Sihui Liu  <sihui_liu@apple.com>

            IndexedDB: destroy WebIDBServer when session is removed in network process
            https://bugs.webkit.org/show_bug.cgi?id=209606
            <rdar://problem/59310081>

            Reviewed by Geoffrey Garen.

            Add function to kill CrossThreadTaskHandler and make thread finish. Also add a callback to be called before
            thread finishes.

            * wtf/CrossThreadTaskHandler.cpp:
            (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
            (WTF::CrossThreadTaskHandler::setCompletionCallback):
            (WTF::CrossThreadTaskHandler::kill):
            * wtf/CrossThreadTaskHandler.h:

2020-04-09  Alan Coon  <alancoon@apple.com>

        Revert r259689. rdar://problem/61269751

2020-04-07  Russell Epstein  <repstein@apple.com>

        Cherry-pick r259316. rdar://problem/61269751

    IndexedDB: destroy WebIDBServer when session is removed in network process
    https://bugs.webkit.org/show_bug.cgi?id=209606
    <rdar://problem/59310081>
    
    Reviewed by Geoffrey Garen.
    
    Source/WebCore:
    
    Rename immediateCloseForUserDelete to immediateClose as we now use it in destructor of IDBServer to make sure
    everything in database finishes correctly.
    
    * Modules/indexeddb/server/IDBServer.cpp:
    (WebCore::IDBServer::IDBServer::~IDBServer):
    (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesModifiedSince):
    (WebCore::IDBServer::IDBServer::closeAndDeleteDatabasesForOrigins):
    * Modules/indexeddb/server/UniqueIDBDatabase.cpp:
    (WebCore::IDBServer::UniqueIDBDatabase::immediateClose):
    (WebCore::IDBServer::UniqueIDBDatabase::immediateCloseForUserDelete): Deleted.
    * Modules/indexeddb/server/UniqueIDBDatabase.h:
    
    Source/WebKit:
    
    Tested manually to verify WebIDBServer is removed and its thread ends when session is removed.
    
    * NetworkProcess/IndexedDB/WebIDBServer.cpp:
    (WebKit::WebIDBServer::~WebIDBServer):
    (WebKit::WebIDBServer::addConnection):
    (WebKit::WebIDBServer::removeConnection):
    (WebKit::WebIDBServer::close):
    * NetworkProcess/IndexedDB/WebIDBServer.h:
    * NetworkProcess/NetworkProcess.cpp:
    (WebKit::NetworkProcess::destroySession):
    (WebKit::NetworkProcess::connectionToWebProcessClosed):
    
    Source/WTF:
    
    Add function to kill CrossThreadTaskHandler and make thread finish. Also add a callback to be called before
    thread finishes.
    
    * wtf/CrossThreadTaskHandler.cpp:
    (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
    (WTF::CrossThreadTaskHandler::setCompletionCallback):
    (WTF::CrossThreadTaskHandler::kill):
    * wtf/CrossThreadTaskHandler.h:
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@259316 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-03-31  Sihui Liu  <sihui_liu@apple.com>

            IndexedDB: destroy WebIDBServer when session is removed in network process
            https://bugs.webkit.org/show_bug.cgi?id=209606
            <rdar://problem/59310081>

            Reviewed by Geoffrey Garen.

            Add function to kill CrossThreadTaskHandler and make thread finish. Also add a callback to be called before
            thread finishes.

            * wtf/CrossThreadTaskHandler.cpp:
            (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
            (WTF::CrossThreadTaskHandler::setCompletionCallback):
            (WTF::CrossThreadTaskHandler::kill):
            * wtf/CrossThreadTaskHandler.h:

2020-02-20  Russell Epstein  <repstein@apple.com>

        Cherry-pick r256806. rdar://problem/59576023

    Add and adopt HAVE(LOOKUP_GESTURE_RECOGNIZER)
    https://bugs.webkit.org/show_bug.cgi?id=207876
    
    Reviewed by Wenson Hsieh.
    
    * wtf/Platform.h:
    
    * UIProcess/ios/WKContentViewInteraction.h:
    * UIProcess/ios/WKContentViewInteraction.mm:
    (-[WKContentView setupInteraction]):
    (-[WKContentView cleanupInteraction]):
    (-[WKContentView _removeDefaultGestureRecognizers]):
    (-[WKContentView _addDefaultGestureRecognizers]):
    (-[WKContentView gestureRecognizer:shouldReceiveTouch:]):
    For symmetry's sake, introduce a HAVE for this gesture.
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256806 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

            Add and adopt HAVE(LOOKUP_GESTURE_RECOGNIZER)
            https://bugs.webkit.org/show_bug.cgi?id=207876

            Reviewed by Wenson Hsieh.

            * wtf/Platform.h:
            For symmetry's sake, introduce a HAVE for this gesture.

2020-02-18  Alan Coon  <alancoon@apple.com>

        Cherry-pick r256191. rdar://problem/59447003

    Disallow setting base URL to a data or JavaScript URL
    https://bugs.webkit.org/show_bug.cgi?id=207136
    
    Source/WebCore:
    
    Reviewed by Brent Fulgham.
    
    Inspired by <https://bugs.chromium.org/p/chromium/issues/detail?id=679318>.
    
    Block setting the base URL to a data URL or JavaScript URL as such usage is questionable.
    This makes WebKit match the behavior of Chrome and Firefox and is in the spirit of the
    discussion in <https://github.com/whatwg/html/issues/2249>.
    
    On Mac and iOS, this restriction is applied only to apps linked against a future SDK to
    avoid breaking shipped apps.
    
    For all other ports, this restriction is enabled by default.
    
    Tests: fast/url/relative2.html
           fast/url/segments-from-data-url2.html
           http/tests/security/allowed-base-url-data-url-via-setting.html
           http/tests/security/denied-base-url-data-url.html
           http/tests/security/denied-base-url-javascript-url.html
    
    * dom/Document.cpp:
    (WebCore::Document::processBaseElement): Condition updating the parsed
    base URL on whether is has an allowed scheme, if restrictions are enabled. Otherwise,
    do what we do now. If the scheme is disallowed then log a message to the console to
    explain this to web developers.
    * html/parser/HTMLPreloadScanner.cpp:
    (WebCore::TokenPreloadScanner::scan): Pass whether to apply restrictons to the base URL
    to updatePredictedBaseURL(). This depends on whether the setting is enabled or not.
    (WebCore::TokenPreloadScanner::updatePredictedBaseURL): Modifed to take a boolean as to
    whether to apply restrictions. If restrictions are not to be applied do what we do now.
    Otherwise, only do what we do now if the scheme for the predicated base URL is allowed.
    * html/parser/HTMLPreloadScanner.h:
    * page/SecurityPolicy.cpp:
    (WebCore::SecurityPolicy::isBaseURLSchemeAllowed): Added.
    * page/SecurityPolicy.h:
    * page/Settings.yaml: Add a setting to toggle restrictions on the base URL scheme.
    
    Source/WebKit:
    
    Reviewed by Brent Fulgham.
    
    Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
    
    * Shared/WebPreferences.yaml:
    * UIProcess/API/Cocoa/WKWebView.mm:
    (shouldRestrictBaseURLSchemes): Added.
    (-[WKWebView _setupPageConfiguration:]): Update settings.
    * UIProcess/Cocoa/VersionChecks.h:
    
    Source/WebKitLegacy/mac:
    
    Reviewed by Brent Fulgham.
    
    Apply base URL restrictions to apps linked to a future WebKit to avoid breaking existing apps.
    
    * Misc/WebKitVersionChecks.h:
    * WebView/WebView.mm:
    (shouldRestrictBaseURLSchemes): Added.
    (-[WebView _commonInitializationWithFrameName:groupName:]): Update settings.
    
    Source/WTF:
    
    Reviewed by Brent Fulgham.
    
    Add some more macro definitions.
    
    * wtf/spi/darwin/dyldSPI.h:
    
    LayoutTests:
    
    RReviewed by Brent Fulgham.
    
    Add some tests. Update others to toggle the setting to apply or unapply the new behavior.
    
    The test denied-base-url-javascript-url.html is derived from the test base-url-javascript.html,
    included in <https://chromium.googlesource.com/chromium/src.git/+/c133efa0b915430701930b76a7cfe35608b9a403>.
    
    * fast/url/relative-expected.txt:
    * fast/url/relative.html:
    * fast/url/relative2-expected.txt: Copied from LayoutTests/fast/url/relative-expected.txt.
    * fast/url/relative2.html: Copied from LayoutTests/fast/url/relative.html.
    * fast/url/resources/utilities.js:
    (setShouldEllipsizeFileURLPaths): Added. Toggles ellipsizing the path portion of a file URL to simplify matching.
    Otherwise, file URLs could be machine-specific.
    (canonicalizedPathname): Added.
    (segments): Modified to optionally call canonicalizedPathname.
    (canonicalize): Ditto.
    * fast/url/segments-from-data-url-expected.txt:
    * fast/url/segments-from-data-url.html:
    * fast/url/segments-from-data-url2-expected.txt: Copied from LayoutTests/fast/url/segments-from-data-url-expected.txt.
    * fast/url/segments-from-data-url2.html: Copied from LayoutTests/fast/url/segments-from-data-url.html.
    * fetch/fetch-url-serialization-expected.txt:
    * http/tests/plugins/navigation-during-load-embed.html:
    * http/tests/plugins/navigation-during-load.html:
    * http/tests/security/allowed-base-url-data-url-via-setting-expected.txt: Added.
    * http/tests/security/allowed-base-url-data-url-via-setting.html: Added.
    * http/tests/security/denied-base-url-data-url-expected.txt: Added.
    * http/tests/security/denied-base-url-data-url.html: Added.
    * http/tests/security/denied-base-url-javascript-url-expected.txt: Added.
    * http/tests/security/denied-base-url-javascript-url.html: Added.
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256191 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-10  Daniel Bates  <dabates@apple.com>

            Disallow setting base URL to a data or JavaScript URL
            https://bugs.webkit.org/show_bug.cgi?id=207136

            Reviewed by Brent Fulgham.

            Add some more macro definitions.

            * wtf/spi/darwin/dyldSPI.h:

2020-02-17  Alan Coon  <alancoon@apple.com>

        Apply patch. rdar://problem/59447004

    Apply content from rdar://problem/59447004

    2020-02-14  Russell Epstein  <repstein@apple.com>

                 Cherry-pick r256629. rdar://problem/59478949

                 [JSC] Introduce UnlinkedCodeBlockGenerator and reduce sizeof(UnlinkedCodeBlock
                 https://bugs.webkit.org/show_bug.cgi?id=207087
                 Reviewed by Tadeu Zagallo.

                 Add more useful methods for RefCountedArray.
                 * wtf/RefCountedArray.h
                 * (WTF::RefCountedArray::operator):
                 * (WTF::RefCountedArray::isEmpty const
                 * (WTF::RefCountedArray::front
                 * (WTF::RefCountedArray::front const):
                 * (WTF::RefCountedArray::last
                 * (WTF::RefCountedArray::last const):

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r256629. rdar://problem/59478949

    Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
    https://bugs.webkit.org/show_bug.cgi?id=207360
    <rdar://problem/57825317>
    
    Patch by Alex Christensen <achristensen@webkit.org> on 2020-02-14
    Reviewed by Ryosuke Niwa.
    
    Source/WTF:
    
    * wtf/URLHelpers.cpp:
    (WTF::URLHelpers::mapHostName):
    
    Tools:
    
    * TestWebKitAPI/Tests/WTF/cocoa/URLExtras.mm:
    (TestWebKitAPI::TEST):
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256629 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-14  Alex Christensen  <achristensen@webkit.org>

            Allow UIDNAInfo.errors from uidna_nameToUnicode that would not cause URL parsing failures
            https://bugs.webkit.org/show_bug.cgi?id=207360
            <rdar://problem/57825317>

            Reviewed by Ryosuke Niwa.

            * wtf/URLHelpers.cpp:
            (WTF::URLHelpers::mapHostName):

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r256498. rdar://problem/59478929

    [JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
    https://bugs.webkit.org/show_bug.cgi?id=207673
    
    Reviewed by Mark Lam.
    
    Source/JavaScriptCore:
    
    While BytecodeIndex is 4 bytes, CodeLocation is 8 bytes. So the tuple of them "JITCodeMap::Entry"
    becomes 16 bytes because it adds 4 bytes padding. We should store BytecodeIndex and CodeLocation separately
    to avoid this padding.
    
    This patch introduces JITCodeMapBuilder. We use this to build JITCodeMap data structure as a immutable final result.
    
    * jit/JIT.cpp:
    (JSC::JIT::link):
    * jit/JITCodeMap.h:
    (JSC::JITCodeMap::JITCodeMap):
    (JSC::JITCodeMap::find const):
    (JSC::JITCodeMap::operator bool const):
    (JSC::JITCodeMap::codeLocations const):
    (JSC::JITCodeMap::indexes const):
    (JSC::JITCodeMapBuilder::append):
    (JSC::JITCodeMapBuilder::finalize):
    (JSC::JITCodeMap::Entry::Entry): Deleted.
    (JSC::JITCodeMap::Entry::bytecodeIndex const): Deleted.
    (JSC::JITCodeMap::Entry::codeLocation): Deleted.
    (JSC::JITCodeMap::append): Deleted.
    (JSC::JITCodeMap::finish): Deleted.
    
    Source/WTF:
    
    * wtf/MallocPtr.h:
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256498 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-12  Yusuke Suzuki  <ysuzuki@apple.com>

            [JSC] Compact JITCodeMap by storing BytecodeIndex and CodeLocation separately
            https://bugs.webkit.org/show_bug.cgi?id=207673

            Reviewed by Mark Lam.

            * wtf/MallocPtr.h:

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r256482. rdar://problem/59478881

    Shrink CachedResource
    https://bugs.webkit.org/show_bug.cgi?id=207618
    
    Reviewed by Mark Lam.
    
    Source/WebCore:
    
    This patch shrinks sizeof(CachedResource) by 80 bytes by aggressively using bit-fields and Markable<>.
    For each enum class, we define `bitsOfXXX` value, which indicates # of bits to represent it. And using
    this value for bit-field's width.
    
    No behavior change.
    
    * loader/FetchOptions.h:
    (WebCore::FetchOptions::encode const):
    * loader/ResourceLoaderOptions.h:
    (WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
    (WebCore::ResourceLoaderOptions::loadedFromOpaqueSource):
    * loader/cache/CachedImage.cpp:
    (WebCore::CachedImage::CachedImage):
    (WebCore::CachedImage::shouldDeferUpdateImageData const):
    (WebCore::CachedImage::didUpdateImageData):
    * loader/cache/CachedImage.h:
    * loader/cache/CachedResource.cpp:
    (WebCore::CachedResource::CachedResource):
    (WebCore::CachedResource::load):
    (WebCore::CachedResource::finish):
    * loader/cache/CachedResource.h:
    (WebCore::CachedResource::setStatus):
    * page/csp/ContentSecurityPolicyResponseHeaders.h:
    (WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::isEmptyValue):
    (WebCore::ContentSecurityPolicyResponseHeaders::MarkableTraits::emptyValue):
    (WebCore::ContentSecurityPolicyResponseHeaders::ContentSecurityPolicyResponseHeaders):
    * platform/network/NetworkLoadMetrics.h:
    (WebCore::NetworkLoadMetrics::isolatedCopy const):
    (WebCore::NetworkLoadMetrics::clearNonTimingData):
    (WebCore::NetworkLoadMetrics::operator== const):
    (WebCore::NetworkLoadMetrics::encode const):
    (WebCore::NetworkLoadMetrics::decode):
    * platform/network/ResourceLoadPriority.h:
    * platform/network/ResourceRequestBase.h:
    (WebCore::ResourceRequestBase::ResourceRequestBase):
    * platform/network/ResourceResponseBase.h:
    * platform/network/StoredCredentialsPolicy.h:
    
    Source/WTF:
    
    * wtf/Markable.h:
    (WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.
    * wtf/ObjectIdentifier.h:
    (WTF::ObjectIdentifier::MarkableTraits::isEmptyValue):
    (WTF::ObjectIdentifier::MarkableTraits::emptyValue):
    (WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256482 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-12  Yusuke Suzuki  <ysuzuki@apple.com>

            Shrink CachedResource
            https://bugs.webkit.org/show_bug.cgi?id=207618

            Reviewed by Mark Lam.

            * wtf/Markable.h:
            (WTF::Markable::asOptional const): Add helper method to get Optional easily from Markable.
            * wtf/ObjectIdentifier.h:
            (WTF::ObjectIdentifier::MarkableTraits::isEmptyValue):
            (WTF::ObjectIdentifier::MarkableTraits::emptyValue):
            (WTF::ObjectIdentifier::ObjectIdentifier): Add MarkableTraits for ObjectIdentifier.

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r254681. rdar://problem/59474790

    [Win] Fix AppleWin build
    https://bugs.webkit.org/show_bug.cgi?id=206299
    
    Reviewed by Brent Fulgham.
    
    .:
    
    This patch has been created by don.olmstead@sony.com and pvollan@apple.com. Add target files for WTF and
    JavaScriptCore. Also, to make sure headers are copied to the forwarding headers directory, add the CMake
    keywork ALL when adding custom target for copying files.
    
    * Source/cmake/TargetJavaScriptCore.cmake: Added.
    * Source/cmake/TargetWTF.cmake: Added.
    * Source/cmake/WebKitMacros.cmake:
    
    Source/JavaScriptCore:
    
    Include required target. Build internal builds with VS2019.
    
    * CMakeLists.txt:
    * JavaScriptCore.vcxproj/JavaScriptCore.proj:
    
    Source/WebCore:
    
    Include required targets. Build internal builds with VS2019.
    
    * CMakeLists.txt:
    * WebCore.vcxproj/WebCore.proj:
    
    Source/WebKitLegacy:
    
    Include required targets. Build internal builds with VS2019.
    
    * CMakeLists.txt:
    * WebKitLegacy.vcxproj/WebKitLegacy.proj:
    
    Source/WTF:
    
    Build internal builds with VS2019.
    
    * WTF.vcxproj/WTF.proj:
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254681 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-01-16  Per Arne Vollan  <pvollan@apple.com>

            [Win] Fix AppleWin build
            https://bugs.webkit.org/show_bug.cgi?id=206299

            Reviewed by Brent Fulgham.

            Build internal builds with VS2019.

            * WTF.vcxproj/WTF.proj:

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r256203. rdar://problem/59446995

    Unreviewed, speculative build fix on watchOS simulator
    https://bugs.webkit.org/show_bug.cgi?id=207183
    
    * wtf/HashTable.h:
    (WTF::HashTableCapacityForSize::capacityForSize):
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256203 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-10  Yusuke Suzuki  <ysuzuki@apple.com>

            Unreviewed, speculative build fix on watchOS simulator
            https://bugs.webkit.org/show_bug.cgi?id=207183

            * wtf/HashTable.h:
            (WTF::HashTableCapacityForSize::capacityForSize):

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r256194. rdar://problem/59446995

    Unreviewed, fix build failure on watchOS simulator
    https://bugs.webkit.org/show_bug.cgi?id=207183
    
    * wtf/HashTable.h:
    (WTF::HashTableCapacityForSize::capacityForSize):
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256194 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-10  Yusuke Suzuki  <ysuzuki@apple.com>

            Unreviewed, fix build failure on watchOS simulator
            https://bugs.webkit.org/show_bug.cgi?id=207183

            * wtf/HashTable.h:
            (WTF::HashTableCapacityForSize::capacityForSize):

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r256093. rdar://problem/59446995

    [WTF] Try using 75% load factor for HashTable
    https://bugs.webkit.org/show_bug.cgi?id=207183
    
    Reviewed by Mark Lam.
    
    Source/WTF:
    
    We know that hash-table is one of the most memory consuming part in WebKit.
    By analyzing many production hash-table implementations[1], I found that many
    of them are using 75% load-factor while our one is 50%.
    
    This patch changes the load-factor from 50% to 75%. But we pick 75% only for
    small tables which capacity is <= 1024 based on collected data by micro-benchmarking.
    The collected data is telling that longer probe-length affects on performance if table
    size gets larger.
    
    [1]: LLVM DenseMap, Abseil's, rust's, and so on.
    
    * wtf/HashTable.h:
    (WTF::HashTableCapacityForSize::shouldExpand):
    (WTF::HashTableCapacityForSize::capacityForSize):
    (WTF::HashTable::shouldExpand const):
    (WTF::KeyTraits>::computeBestTableSize):
    
    Tools:
    
    * TestWebKitAPI/Tests/WTF/HashSet.cpp:
    (TestWebKitAPI::testInitialCapacity):
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256093 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-08  Yusuke Suzuki  <ysuzuki@apple.com>

            [WTF] Try using 75% load factor for HashTable
            https://bugs.webkit.org/show_bug.cgi?id=207183

            Reviewed by Mark Lam.

            We know that hash-table is one of the most memory consuming part in WebKit.
            By analyzing many production hash-table implementations[1], I found that many
            of them are using 75% load-factor while our one is 50%.

            This patch changes the load-factor from 50% to 75%. But we pick 75% only for
            small tables which capacity is <= 1024 based on collected data by micro-benchmarking.
            The collected data is telling that longer probe-length affects on performance if table
            size gets larger.

            [1]: LLVM DenseMap, Abseil's, rust's, and so on.

            * wtf/HashTable.h:
            (WTF::HashTableCapacityForSize::shouldExpand):
            (WTF::HashTableCapacityForSize::capacityForSize):
            (WTF::HashTable::shouldExpand const):
            (WTF::KeyTraits>::computeBestTableSize):

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r256011. rdar://problem/59446995

    Unreviewed, revert 75% load-factor because of JetStream2/string-unpack-code-SP regression
    https://bugs.webkit.org/show_bug.cgi?id=207183
    
    Source/WTF:
    
    * wtf/HashTable.h:
    (WTF::HashTable::shouldExpand const):
    (WTF::KeyTraits>::computeBestTableSize):
    (WTF::HashTable::shouldExpand): Deleted.
    (WTF::HashTableCapacityForSize::capacityForSize): Deleted.
    
    Tools:
    
    * TestWebKitAPI/Tests/WTF/HashSet.cpp:
    (TestWebKitAPI::testInitialCapacity):
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256011 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-07  Yusuke Suzuki  <ysuzuki@apple.com>

            Unreviewed, revert 75% load-factor because of JetStream2/string-unpack-code-SP regression
            https://bugs.webkit.org/show_bug.cgi?id=207183

            * wtf/HashTable.h:
            (WTF::HashTable::shouldExpand const):
            (WTF::KeyTraits>::computeBestTableSize):
            (WTF::HashTable::shouldExpand): Deleted.
            (WTF::HashTableCapacityForSize::capacityForSize): Deleted.

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r255889. rdar://problem/59446995

    [WTF] Try using 75% load factor for HashTable
    https://bugs.webkit.org/show_bug.cgi?id=207183
    
    Reviewed by Mark Lam.
    
    Source/WTF:
    
    We know that hash-table is one of the most memory consuming part in WebKit.
    By analyzing many production hash-table implementations[1], I found that many
    of them are using 75% load-factor while our one is 50%.
    
    A/B test shows that 75% load-factor is performance-neutral in Speedometer2 and
    JetStream2, while it offers 2~% improvement in Membuster. This means that we are
    wasting too much memory for no-performance-improvement.
    
    This patch changes the load-factor from 50% to 75%.
    
    [1]: LLVM DenseMap, Abseil's, rust's, and so on.
    
    * wtf/HashTable.h:
    (WTF::HashTable::shouldExpand):
    (WTF::HashTable::shouldExpand const):
    (WTF::HashTableCapacityForSize::capacityForSize):
    (WTF::KeyTraits>::computeBestTableSize):
    
    Tools:
    
    Fix load-factor assumption in existing tests.
    
    * TestWebKitAPI/Tests/WTF/HashSet.cpp:
    (TestWebKitAPI::testInitialCapacity):
    
    LayoutTests:
    
    It seems that this test is relying on hash-table's order.
    
    * http/tests/resourceLoadStatistics/aggregate-sorted-data-no-storage-access-expected.txt:
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255889 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-05  Yusuke Suzuki  <ysuzuki@apple.com>

            [WTF] Try using 75% load factor for HashTable
            https://bugs.webkit.org/show_bug.cgi?id=207183

            Reviewed by Mark Lam.

            We know that hash-table is one of the most memory consuming part in WebKit.
            By analyzing many production hash-table implementations[1], I found that many
            of them are using 75% load-factor while our one is 50%.

            A/B test shows that 75% load-factor is performance-neutral in Speedometer2 and
            JetStream2, while it offers 2~% improvement in Membuster. This means that we are
            wasting too much memory for no-performance-improvement.

            This patch changes the load-factor from 50% to 75%.

            [1]: LLVM DenseMap, Abseil's, rust's, and so on.

            * wtf/HashTable.h:
            (WTF::HashTable::shouldExpand):
            (WTF::HashTable::shouldExpand const):
            (WTF::HashTableCapacityForSize::capacityForSize):
            (WTF::KeyTraits>::computeBestTableSize):

2020-02-14  Russell Epstein  <repstein@apple.com>

        Cherry-pick r255611. rdar://problem/59446995

    Reduce size of HashMap and HashSet
    https://bugs.webkit.org/show_bug.cgi?id=207138
    
    Reviewed by Yusuke Suzuki.
    
    Source/WTF:
    
    This reduces sizeof(HashMap) and sizeof(HashSet) from 24 to 8 on 64-bit systems.
    I measured that the overwhelming majority of HashMaps and HashSets never see more than 0 elements,
    so I moved the table metadata (tableSize, tableSizeMask, keyCount, deletedCount) to inside the
    dynamically allocated memory.  This makes another branch in size() for non-empty tables
    and an additional read and write when rehashing in exchange for fewer writes in the constructor
    and increased cache locality of everything that uses HashMap and HashSet, which is basically everything.
    
    * wtf/HashTable.h:
    (WTF::HashTable::~HashTable):
    (WTF::HashTable::end):
    (WTF::HashTable::end const):
    (WTF::HashTable::random):
    (WTF::HashTable::size const):
    (WTF::HashTable::capacity const):
    (WTF::HashTable::isEmpty const):
    (WTF::HashTable::reserveInitialCapacity):
    (WTF::HashTable::shouldExpand const):
    (WTF::HashTable::mustRehashInPlace const):
    (WTF::HashTable::shouldShrink const):
    (WTF::HashTable::shrink):
    (WTF::HashTable::makeIterator):
    (WTF::HashTable::makeConstIterator const):
    (WTF::HashTable::makeKnownGoodIterator):
    (WTF::HashTable::makeKnownGoodConstIterator const):
    (WTF::HashTable::tableSize const):
    (WTF::HashTable::setTableSize const):
    (WTF::HashTable::tableSizeMask const):
    (WTF::HashTable::setTableSizeMask):
    (WTF::HashTable::keyCount const):
    (WTF::HashTable::setKeyCount const):
    (WTF::HashTable::deletedCount const):
    (WTF::HashTable::setDeletedCount const):
    (WTF::KeyTraits>::HashTable):
    (WTF::KeyTraits>::inlineLookup):
    (WTF::KeyTraits>::lookupForWriting):
    (WTF::KeyTraits>::fullLookupForWriting):
    (WTF::KeyTraits>::addUniqueForInitialization):
    (WTF::KeyTraits>::add):
    (WTF::KeyTraits>::addPassingHashCode):
    (WTF::KeyTraits>::remove):
    (WTF::KeyTraits>::removeIf):
    (WTF::KeyTraits>::allocateTable):
    (WTF::KeyTraits>::deallocateTable):
    (WTF::KeyTraits>::expand):
    (WTF::KeyTraits>::shrinkToBestSize):
    (WTF::KeyTraits>::deleteReleasedWeakBuckets):
    (WTF::KeyTraits>::rehash):
    (WTF::KeyTraits>::clear):
    (WTF::KeyTraits>::swap):
    (WTF::KeyTraits>::checkTableConsistencyExceptSize const):
    
    Tools:
    
    * TestWebKitAPI/Tests/WTF/HashMap.cpp:
    (TestWebKitAPI::TEST):
    * TestWebKitAPI/Tests/WTF/HashSet.cpp:
    (TestWebKitAPI::TEST):
    
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255611 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-03  Alex Christensen  <achristensen@webkit.org>

            Reduce size of HashMap and HashSet
            https://bugs.webkit.org/show_bug.cgi?id=207138

            Reviewed by Yusuke Suzuki.

            This reduces sizeof(HashMap) and sizeof(HashSet) from 24 to 8 on 64-bit systems.
            I measured that the overwhelming majority of HashMaps and HashSets never see more than 0 elements,
            so I moved the table metadata (tableSize, tableSizeMask, keyCount, deletedCount) to inside the
            dynamically allocated memory.  This makes another branch in size() for non-empty tables
            and an additional read and write when rehashing in exchange for fewer writes in the constructor
            and increased cache locality of everything that uses HashMap and HashSet, which is basically everything.

            * wtf/HashTable.h:
            (WTF::HashTable::~HashTable):
            (WTF::HashTable::end):
            (WTF::HashTable::end const):
            (WTF::HashTable::random):
            (WTF::HashTable::size const):
            (WTF::HashTable::capacity const):
            (WTF::HashTable::isEmpty const):
            (WTF::HashTable::reserveInitialCapacity):
            (WTF::HashTable::shouldExpand const):
            (WTF::HashTable::mustRehashInPlace const):
            (WTF::HashTable::shouldShrink const):
            (WTF::HashTable::shrink):
            (WTF::HashTable::makeIterator):
            (WTF::HashTable::makeConstIterator const):
            (WTF::HashTable::makeKnownGoodIterator):
            (WTF::HashTable::makeKnownGoodConstIterator const):
            (WTF::HashTable::tableSize const):
            (WTF::HashTable::setTableSize const):
            (WTF::HashTable::tableSizeMask const):
            (WTF::HashTable::setTableSizeMask):
            (WTF::HashTable::keyCount const):
            (WTF::HashTable::setKeyCount const):
            (WTF::HashTable::deletedCount const):
            (WTF::HashTable::setDeletedCount const):
            (WTF::KeyTraits>::HashTable):
            (WTF::KeyTraits>::inlineLookup):
            (WTF::KeyTraits>::lookupForWriting):
            (WTF::KeyTraits>::fullLookupForWriting):
            (WTF::KeyTraits>::addUniqueForInitialization):
            (WTF::KeyTraits>::add):
            (WTF::KeyTraits>::addPassingHashCode):
            (WTF::KeyTraits>::remove):
            (WTF::KeyTraits>::removeIf):
            (WTF::KeyTraits>::allocateTable):
            (WTF::KeyTraits>::deallocateTable):
            (WTF::KeyTraits>::expand):
            (WTF::KeyTraits>::shrinkToBestSize):
            (WTF::KeyTraits>::deleteReleasedWeakBuckets):
            (WTF::KeyTraits>::rehash):
            (WTF::KeyTraits>::clear):
            (WTF::KeyTraits>::swap):
            (WTF::KeyTraits>::checkTableConsistencyExceptSize const):

2020-02-11  Alan Coon  <alancoon@apple.com>

        Cherry-pick r255846. rdar://problem/59299151

    Make WKWebView._negotiatedLegacyTLS accurate when loading main resouorce from network or cache
    https://bugs.webkit.org/show_bug.cgi?id=207207
    
    Reviewed by Chris Dumez.
    
    Source/WebCore:
    
    * platform/network/ResourceResponseBase.cpp:
    (WebCore::ResourceResponseBase::includeCertificateInfo const):
    * platform/network/ResourceResponseBase.h:
    (WebCore::ResourceResponseBase::usedLegacyTLS const):
    (WebCore::ResourceResponseBase::encode const):
    (WebCore::ResourceResponseBase::decode):
    
    Source/WebKit:
    
    In PageLoadState::didCommitLoad, I was resetting the value of _negotiatedLegacyTLS to false.
    That created a race condition when loading the main resource because the NetworkProcess would
    message the UIProcess setting _negotiatedLegacyTLS to false, while the NetworkProcess would
    message the WebProcess which would message the UIProcess to call PageLoadState::didCommitLoad
    which would reset it to false.  Now it resets it to the correct value, whatever it is.
    
    Updating the ResourceResponseBase serialization code has the desirable side effect that the disk
    cache will remember whether legacy TLS was used to fetch each resource.  This will make it so
    _negotiatedLegacyTLS is true if we read content from the disk cache that was originally fetched
    using legacy TLS.
    
    In order to not increase the memory footprint of ResourceResponse, I changed m_httpStatusCode from
    an int to a short.  It just needs to be able to cover the values 0-600 or so, which really only needs 10 bits.
    
    Covered by new API tests.
    
    * NetworkProcess/NetworkCORSPreflightChecker.cpp:
    (WebKit::NetworkCORSPreflightChecker::didReceiveResponse):
    * NetworkProcess/NetworkCORSPreflightChecker.h:
    * NetworkProcess/NetworkDataTask.cpp:
    (WebKit::NetworkDataTask::didReceiveResponse):
    (WebKit::NetworkDataTask::negotiatedLegacyTLS const): Deleted.
    * NetworkProcess/NetworkDataTask.h:
    (WebKit::NetworkDataTaskClient::negotiatedLegacyTLS const): Deleted.
    * NetworkProcess/NetworkDataTaskBlob.cpp:
    (WebKit::NetworkDataTaskBlob::dispatchDidReceiveResponse):
    * NetworkProcess/NetworkLoad.cpp:
    (WebKit::NetworkLoad::didReceiveResponse):
    (WebKit::NetworkLoad::notifyDidReceiveResponse):
    (WebKit::NetworkLoad::throttleDelayCompleted):
    (WebKit::NetworkLoad::negotiatedLegacyTLS const): Deleted.
    * NetworkProcess/NetworkLoad.h:
    * NetworkProcess/NetworkResourceLoader.h:
    * NetworkProcess/PingLoad.cpp:
    (WebKit::PingLoad::didReceiveResponse):
    * NetworkProcess/PingLoad.h:
    * NetworkProcess/cocoa/NetworkDataTaskCocoa.h:
    * NetworkProcess/cocoa/NetworkDataTaskCocoa.mm:
    (WebKit::NetworkDataTaskCocoa::didReceiveResponse):
    * NetworkProcess/cocoa/NetworkSessionCocoa.mm:
    (-[WKNetworkSessionDelegate URLSession:dataTask:didReceiveResponse:completionHandler:]):
    * NetworkProcess/curl/NetworkDataTaskCurl.cpp:
    (WebKit::NetworkDataTaskCurl::invokeDidReceiveResponse):
    * NetworkProcess/soup/NetworkDataTaskSoup.cpp:
    (WebKit::NetworkDataTaskSoup::dispatchDidReceiveResponse):
    * UIProcess/PageLoadState.cpp:
    (WebKit::PageLoadState::didCommitLoad):
    * UIProcess/PageLoadState.h:
    * UIProcess/ProvisionalPageProxy.cpp:
    (WebKit::ProvisionalPageProxy::didCommitLoadForFrame):
    * UIProcess/ProvisionalPageProxy.h:
    * UIProcess/WebPageProxy.cpp:
    (WebKit::WebPageProxy::commitProvisionalPage):
    (WebKit::WebPageProxy::didCommitLoadForFrame):
    * UIProcess/WebPageProxy.h:
    * UIProcess/WebPageProxy.messages.in:
    * WebProcess/WebCoreSupport/WebFrameLoaderClient.cpp:
    (WebKit::WebFrameLoaderClient::dispatchDidCommitLoad):
    
    Source/WTF:
    
    * wtf/persistence/PersistentDecoder.cpp:
    (WTF::Persistence::Decoder::decode):
    * wtf/persistence/PersistentDecoder.h:
    * wtf/persistence/PersistentEncoder.cpp:
    (WTF::Persistence::Encoder::encode):
    * wtf/persistence/PersistentEncoder.h:
    
    Tools:
    
    HTTPServer now supports HTTPS. Tell your friends!
    
    * TestWebKitAPI/Tests/WebKitCocoa/Challenge.mm:
    (testCertificate):
    (testIdentity):
    (credentialWithIdentity):
    * TestWebKitAPI/Tests/WebKitCocoa/TLSDeprecation.mm:
    (TestWebKitAPI::webViewWithNavigationDelegate):
    (TestWebKitAPI::TEST):
    * TestWebKitAPI/cocoa/HTTPServer.h:
    * TestWebKitAPI/cocoa/HTTPServer.mm:
    (TestWebKitAPI::HTTPServer::HTTPServer):
    (TestWebKitAPI::HTTPServer::request const):
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255846 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-05  Alex Christensen  <achristensen@webkit.org>

            Make WKWebView._negotiatedLegacyTLS accurate when loading main resouorce from network or cache
            https://bugs.webkit.org/show_bug.cgi?id=207207

            Reviewed by Chris Dumez.

            * wtf/persistence/PersistentDecoder.cpp:
            (WTF::Persistence::Decoder::decode):
            * wtf/persistence/PersistentDecoder.h:
            * wtf/persistence/PersistentEncoder.cpp:
            (WTF::Persistence::Encoder::encode):
            * wtf/persistence/PersistentEncoder.h:

2020-02-10  Kocsen Chung  <kocsen_chung@apple.com>

        Cherry-pick r256030. rdar://problem/59298146

    Mandate UUID version 4 for mDNS ICE candidates
    https://bugs.webkit.org/show_bug.cgi?id=207329
    <rdar://problem/59221606>
    
    Address post-commit comments from Darin by using isASCIIHexDigit.
    
    Unreviewed.
    
    
    * wtf/UUID.cpp:
    (WTF::isVersion4UUID):
    (WTF::isHexadecimalCharacter): Deleted.
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256030 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-07  youenn fablet  <youenn@apple.com>

            Mandate UUID version 4 for mDNS ICE candidates
            https://bugs.webkit.org/show_bug.cgi?id=207329
            <rdar://problem/59221606>

            Address post-commit comments from Darin by using isASCIIHexDigit.

            Unreviewed.

            * wtf/UUID.cpp:
            (WTF::isVersion4UUID):
            (WTF::isHexadecimalCharacter): Deleted.

2020-02-10  Kocsen Chung  <kocsen_chung@apple.com>

        Cherry-pick r256016. rdar://problem/59298146

    Mandate UUID version 4 for mDNS ICE candidates
    https://bugs.webkit.org/show_bug.cgi?id=207329
    
    Reviewed by Alex Christensen.
    
    Source/WebCore:
    
    Ignore ICE candidates if they are mDNS but not UUID version 4.
    Covered by existing tests relying on mDNS to do the connection.
    
    * Modules/mediastream/PeerConnectionBackend.cpp:
    (WebCore::shouldIgnoreCandidate):
    (WebCore::PeerConnectionBackend::addIceCandidate):
    
    Source/WebKit:
    
    * NetworkProcess/webrtc/NetworkMDNSRegister.cpp:
    (WebKit::NetworkMDNSRegister::registerMDNSName):
    Remove the count at the end of the mDNS name to make it a fully version 4 UUID.
    
    Source/WTF:
    
    Add a routine to validate version 4 UUID.
    
    * wtf/UUID.cpp:
    (WTF::isHexadecimalCharacter):
    (WTF::isVersion4UUID):
    * wtf/UUID.h:
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@256016 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-07  youenn fablet  <youenn@apple.com>

            Mandate UUID version 4 for mDNS ICE candidates
            https://bugs.webkit.org/show_bug.cgi?id=207329

            Reviewed by Alex Christensen.

            Add a routine to validate version 4 UUID.

            * wtf/UUID.cpp:
            (WTF::isHexadecimalCharacter):
            (WTF::isVersion4UUID):
            * wtf/UUID.h:

2020-02-10  Kocsen Chung  <kocsen_chung@apple.com>

        Cherry-pick r255874. rdar://problem/59298178

    [iOS] Do not create sandbox reports when the UI process cannot issue extensions to diagnostics service
    https://bugs.webkit.org/show_bug.cgi?id=207279
    <rdar://problem/59030957>
    Source/WebKit:
    
    Reviewed by Brent Fulgham.
    
    Do not create sandbox reports when the UI process cannot issue mach extensions to the diagnostics service.
    The majority of clients are capable of doing this.
    
    No new tests, since it is not trivial to test if no sandbox reports are generated for a violation.
    
    * Shared/Cocoa/SandboxExtensionCocoa.mm:
    (WebKit::SandboxExtensionImpl::create):
    (WebKit::SandboxExtensionImpl::sandboxExtensionForType):
    (WebKit::SandboxExtensionImpl::SandboxExtensionImpl):
    (WebKit::SandboxExtension::createHandleForMachLookup):
    * Shared/SandboxExtension.h:
    * UIProcess/Cocoa/WebProcessPoolCocoa.mm:
    (WebKit::WebProcessPool::platformInitializeWebProcess):
    
    Source/WTF:
    
    Reviewed by Brent Fulgham.
    
    Add flag which avoids generating sandbox reports.
    
    * wtf/spi/darwin/SandboxSPI.h:
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255874 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-02-05  Per Arne Vollan  <pvollan@apple.com>

            [iOS] Do not create sandbox reports when the UI process cannot issue extensions to diagnostics service
            https://bugs.webkit.org/show_bug.cgi?id=207279
            <rdar://problem/59030957>

            Reviewed by Brent Fulgham.

            Add flag which avoids generating sandbox reports.

            * wtf/spi/darwin/SandboxSPI.h:

2020-02-03  Russell Epstein  <repstein@apple.com>

        Cherry-pick r255120. rdar://problem/58942705

    Move singleton Intl string locales out of JSGlobalObject.
    https://bugs.webkit.org/show_bug.cgi?id=206791
    <rdar://problem/58889037>
    
    Source/JavaScriptCore:
    
    Reviewed by Yusuke Suzuki and Andy Wagoner.
    
    We were creating an instance of these for each JSGlobalObject when they can be a
    global singleton since they are always initialized with the same intl data
    (barring a mid-flight change in intl settings, which we don't support even in the
    existing code).
    
    It turns out that intlPluralRulesAvailableLocales() wasn't called anywhere.
    IntlPluralRules code currently just uses intlNumberFormatAvailableLocales().
    To document that this is intentional, we do the following:
    1. have IntlPluralRules code call intlPluralRulesAvailableLocales(), and
    2. have intlPluralRulesAvailableLocales() call intlNumberFormatAvailableLocales()
       for its implementation.
    See https://bugs.webkit.org/show_bug.cgi?id=206791#c7 and
    https://bugs.webkit.org/show_bug.cgi?id=206791#c8.
    
    In addMissingScriptLocales(), I'm deliberately naming the string with underscores
    because it's much easier to read pa_PK_String and see that it refers to "pa-PK"
    as opposed to paPKString.  Ditto for zh_CN_String, zh_HK_String, zh_SG_String,
    and zh_TW_String.
    
    * runtime/IntlCollator.cpp:
    (JSC::IntlCollator::initializeCollator):
    * runtime/IntlCollatorConstructor.cpp:
    (JSC::IntlCollatorConstructorFuncSupportedLocalesOf):
    * runtime/IntlDateTimeFormat.cpp:
    (JSC::IntlDateTimeFormat::initializeDateTimeFormat):
    * runtime/IntlDateTimeFormatConstructor.cpp:
    (JSC::IntlDateTimeFormatConstructorFuncSupportedLocalesOf):
    * runtime/IntlNumberFormat.cpp:
    (JSC::IntlNumberFormat::initializeNumberFormat):
    * runtime/IntlNumberFormatConstructor.cpp:
    (JSC::IntlNumberFormatConstructorFuncSupportedLocalesOf):
    * runtime/IntlObject.cpp:
    (JSC::convertICULocaleToBCP47LanguageTag):
    (JSC::addMissingScriptLocales):
    (JSC::intlCollatorAvailableLocales):
    (JSC::intlDateTimeFormatAvailableLocales):
    (JSC::intlNumberFormatAvailableLocales):
    (JSC::defaultLocale):
    * runtime/IntlObject.h:
    * runtime/IntlPluralRules.cpp:
    (JSC::IntlPluralRules::initializePluralRules):
    * runtime/IntlPluralRulesConstructor.cpp:
    (JSC::IntlPluralRulesConstructorFuncSupportedLocalesOf):
    * runtime/JSGlobalObject.cpp:
    (JSC::addMissingScriptLocales): Deleted.
    (JSC::JSGlobalObject::intlCollatorAvailableLocales): Deleted.
    (JSC::JSGlobalObject::intlDateTimeFormatAvailableLocales): Deleted.
    (JSC::JSGlobalObject::intlNumberFormatAvailableLocales): Deleted.
    (JSC::JSGlobalObject::intlPluralRulesAvailableLocales): Deleted.
    * runtime/JSGlobalObject.h:
    
    Source/WTF:
    
    Reviewed by Yusuke Suzuki.
    
    Fix a bug in StringImpl::createStaticStringImpl(): I forgot to set its hash value
    when I introduced it.  StaticStringImpls require that its hash code be set ahead
    of time, and cannot be mutated at runtime.  See the comment in the definition of
    StaticStringImpl in StringImpl.h.
    
    * wtf/text/StringImpl.cpp:
    (WTF::StringImpl::createStaticStringImpl):
    
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255120 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-01-24  Mark Lam  <mark.lam@apple.com>

            Move singleton Intl string locales out of JSGlobalObject.
            https://bugs.webkit.org/show_bug.cgi?id=206791
            <rdar://problem/58889037>

            Reviewed by Yusuke Suzuki.

            Fix a bug in StringImpl::createStaticStringImpl(): I forgot to set its hash value
            when I introduced it.  StaticStringImpls require that its hash code be set ahead
            of time, and cannot be mutated at runtime.  See the comment in the definition of
            StaticStringImpl in StringImpl.h.

            * wtf/text/StringImpl.cpp:
            (WTF::StringImpl::createStaticStringImpl):

2020-02-03  Russell Epstein  <repstein@apple.com>

        Cherry-pick r255112. rdar://problem/58942707

    IntlObject's cached strings should be immortal and safe for concurrent access.
    https://bugs.webkit.org/show_bug.cgi?id=206779
    <rdar://problem/58831763>
    
    Reviewed by Yusuke Suzuki.
    
    JSTests:
    
    * stress/numberingSystemsForLocale-cached-strings-should-be-immortal-and-safe-for-concurrent-access.js: Added.
    
    Source/JavaScriptCore:
    
    In IntlObject's numberingSystemsForLocale(), we have a never destroyed
    cachedNumberingSystems which is a singleton vector of Strings which are shared
    multiple VMs.  Hence, the strings in this vector should be a StaticStringImpl
    so that it will be immortal, and can be access concurrently from multiple VMs
    on different threads without any ref/deref'ing race issues.
    
    * runtime/IntlObject.cpp:
    (JSC::numberingSystemsForLocale):
    
    Source/WTF:
    
    Add a factory for creating a dynamically allocated StaticStringImpl.
    
    Note: StaticStringImpl is guaranteed to have the same shape as StringImpl.
    The only difference is that s_refCountFlagIsStaticString is set on the refCount
    for StaticStringImpl.  Since the client will use the StaticStringImpl as a
    StringImpl, we implement the factory by using StringImpl::createInternal() for
    simplicity, and set the s_refCountFlagIsStaticString flag thereafter.
    
    * wtf/text/StringImpl.cpp:
    (WTF::StringImpl::createStaticStringImpl):
    * wtf/text/StringImpl.h:
    
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255112 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-01-24  Mark Lam  <mark.lam@apple.com>

            IntlObject's cached strings should be immortal and safe for concurrent access.
            https://bugs.webkit.org/show_bug.cgi?id=206779
            <rdar://problem/58831763>

            Reviewed by Yusuke Suzuki.

            Add a factory for creating a dynamically allocated StaticStringImpl.

            Note: StaticStringImpl is guaranteed to have the same shape as StringImpl.
            The only difference is that s_refCountFlagIsStaticString is set on the refCount
            for StaticStringImpl.  Since the client will use the StaticStringImpl as a
            StringImpl, we implement the factory by using StringImpl::createInternal() for
            simplicity, and set the s_refCountFlagIsStaticString flag thereafter.

            * wtf/text/StringImpl.cpp:
            (WTF::StringImpl::createStaticStringImpl):
            * wtf/text/StringImpl.h:

2020-01-27  Russell Epstein  <repstein@apple.com>

        Cherry-pick r255087. rdar://problem/58920164

    Fix internal Apple builds after r254411
    https://bugs.webkit.org/show_bug.cgi?id=206723
    <rdar://problem/58844735>
    
    Reviewed by Maciej Stachowiak.
    
    The default Xcode build configuration has changed between macOS 10.13
    and macOS 10.15, such that references to some frameworks when bulding
    for the latter don't work when building for the former. Fix this by
    explicitly adding support for the desired build location rather than
    assuming such support will be provided for us.
    
    * Configurations/WTF.xcconfig:
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@255087 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-01-24  Keith Rollin  <krollin@apple.com>

            Fix internal Apple builds after r254411
            https://bugs.webkit.org/show_bug.cgi?id=206723
            <rdar://problem/58844735>

            Reviewed by Maciej Stachowiak.

            The default Xcode build configuration has changed between macOS 10.13
            and macOS 10.15, such that references to some frameworks when bulding
            for the latter don't work when building for the former. Fix this by
            explicitly adding support for the desired build location rather than
            assuming such support will be provided for us.

            * Configurations/WTF.xcconfig:

2020-01-21  Alan Coon  <alancoon@apple.com>

        Cherry-pick r254632. rdar://problem/58764714

    Revert bytecode checkpoints since it breaks watch
    https://bugs.webkit.org/show_bug.cgi?id=206301
    
    Unreviewed, revert.
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254632 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-01-15  Keith Miller  <keith_miller@apple.com>

            Revert bytecode checkpoints since it breaks watch
            https://bugs.webkit.org/show_bug.cgi?id=206301

            Unreviewed, revert.

2020-01-15  Alan Coon  <alancoon@apple.com>

        Cherry-pick r254187. rdar://problem/58605950

    Implement css3-images image-orientation
    https://bugs.webkit.org/show_bug.cgi?id=89052
    
    Patch by Said Abou-Hallawa <sabouhallawa@apple.com> on 2020-01-07
    Reviewed by Simon Fraser.
    
    LayoutTests/imported/w3c:
    
    * web-platform-tests/css/css-images/inheritance-expected.txt:
    * web-platform-tests/css/css-images/inheritance.html:
    This test is re-synced from upstream
    
    * web-platform-tests/css/css-images/parsing/image-orientation-computed-expected.txt:
    * web-platform-tests/css/css-images/parsing/image-orientation-valid-expected.txt:
    
    Source/JavaScriptCore:
    
    Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
    
    * Configurations/FeatureDefines.xcconfig:
    
    Source/WebCore:
    
    Implement the CSS image-orientation property for content images. The valid
    values are "from-image" or "none". The default value is "from-image".
    
    Specification: https://drafts.csswg.org/css-images-3/#the-image-orientation
    GitHub issue: https://github.com/w3c/csswg-drafts/issues/4164
    
    Tests: fast/images/image-orientation-dynamic-from-image.html
           fast/images/image-orientation-dynamic-none.html
           fast/images/image-orientation-none.html
    
    * Configurations/FeatureDefines.xcconfig:
    * css/CSSComputedStyleDeclaration.cpp:
    (WebCore::ComputedStyleExtractor::valueForPropertyInStyle):
    * css/CSSPrimitiveValueMappings.h:
    (WebCore::CSSPrimitiveValue::operator ImageOrientation const): Deleted.
    * css/CSSProperties.json:
    * css/CSSValueKeywords.in:
    * css/parser/CSSPropertyParser.cpp:
    (WebCore::consumeImageOrientation):
    (WebCore::CSSPropertyParser::parseSingleValue):
    * rendering/RenderElement.cpp:
    (WebCore::RenderElement::imageOrientation const):
    * rendering/RenderImage.cpp:
    (WebCore::RenderImage::styleDidChange):
    * rendering/style/RenderStyle.cpp:
    (WebCore::rareInheritedDataChangeRequiresLayout):
    * rendering/style/RenderStyle.h:
    (WebCore::RenderStyle::setImageOrientation):
    (WebCore::RenderStyle::initialImageOrientation):
    (WebCore::RenderStyle::imageOrientation const):
    * rendering/style/StyleRareInheritedData.cpp:
    (WebCore::StyleRareInheritedData::StyleRareInheritedData):
    (WebCore::StyleRareInheritedData::operator== const):
    * rendering/style/StyleRareInheritedData.h:
    * style/StyleBuilderConverter.h:
    (WebCore::Style::BuilderConverter::convertImageOrientation):
    
    Source/WebCore/PAL:
    
    Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
    
    * Configurations/FeatureDefines.xcconfig:
    
    Source/WebKit:
    
    Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
    
    * Configurations/FeatureDefines.xcconfig:
    
    Source/WebKitLegacy/mac:
    
    Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
    
    * Configurations/FeatureDefines.xcconfig:
    
    Source/WTF:
    
    Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
    
    * wtf/FeatureDefines.h:
    
    Tools:
    
    Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.
    
    * TestWebKitAPI/Configurations/FeatureDefines.xcconfig:
    
    LayoutTests:
    
    Test the css image-orientation property.
    
    * fast/images/image-orientation-dynamic-from-image-expected.html: Added.
    * fast/images/image-orientation-dynamic-from-image.html: Added.
    * fast/images/image-orientation-dynamic-none-expected.html: Added.
    * fast/images/image-orientation-dynamic-none.html: Added.
    * fast/images/image-orientation-none-expected.html: Added.
    * fast/images/image-orientation-none.html: Added.
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254187 268f45cc-cd09-0410-ab3c-d52691b4dbfc

    2020-01-07  Said Abou-Hallawa  <sabouhallawa@apple.com>

            Implement css3-images image-orientation
            https://bugs.webkit.org/show_bug.cgi?id=89052

            Reviewed by Simon Fraser.

            Remove the ENABLE_CSS_IMAGE_ORIENTATION feature flag.

            * wtf/FeatureDefines.h:

2020-01-15  Alan Coon  <alancoon@apple.com>

        Cherry-pick r254413. rdar://problem/58548648

    REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
    https://bugs.webkit.org/show_bug.cgi?id=200043
    
    Unreviewed.
    
    Fix build.
    
    * wtf/cocoa/LanguageCocoa.mm:
    (WTF::canMinimizeLanguages):
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254413 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

            REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
            https://bugs.webkit.org/show_bug.cgi?id=200043

            Unreviewed.

            Fix build.

            * wtf/cocoa/LanguageCocoa.mm:
            (WTF::canMinimizeLanguages):

2020-01-15  Alan Coon  <alancoon@apple.com>

        Cherry-pick r254412. rdar://problem/58548648

    REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
    https://bugs.webkit.org/show_bug.cgi?id=200043
    
    Unreviewed.
    
    Addressing additional review comments.
    
    Source/WTF:
    
    * wtf/cocoa/LanguageCocoa.mm:
    (WTF::canMinimizeLanguages):
    
    LayoutTests:
    
    * fast/text/international/system-language/navigator-language/navigator-language-en-GB.html:
    * fast/text/international/system-language/navigator-language/navigator-language-en-US.html:
    * fast/text/international/system-language/navigator-language/navigator-language-en.html:
    * fast/text/international/system-language/navigator-language/navigator-language-es-419.html:
    * fast/text/international/system-language/navigator-language/navigator-language-es-ES.html:
    * fast/text/international/system-language/navigator-language/navigator-language-es-MX.html:
    * fast/text/international/system-language/navigator-language/navigator-language-es.html:
    * fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html:
    * fast/text/international/system-language/navigator-language/navigator-language-fr.html:
    * fast/text/international/system-language/navigator-language/navigator-language-hi.html:
    * fast/text/international/system-language/navigator-language/navigator-language-ja.html:
    * fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html:
    * fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html:
    * fast/text/international/system-language/navigator-language/navigator-language-ru.html:
    * fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html:
    * fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html:
    * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html:
    * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html:
    * fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html:
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254412 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

            REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
            https://bugs.webkit.org/show_bug.cgi?id=200043

            Unreviewed.

            Addressing additional review comments.

            * wtf/cocoa/LanguageCocoa.mm:
            (WTF::canMinimizeLanguages):

2020-01-15  Alan Coon  <alancoon@apple.com>

        Cherry-pick r254411. rdar://problem/58548648

    Fix internal Apple builds after r254389
    https://bugs.webkit.org/show_bug.cgi?id=206135
    
    Rubber stamped by Zalan Bujtas.
    
    * wtf/spi/cocoa/NSLocaleSPI.h:
    
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254411 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

            Fix internal Apple builds after r254389
            https://bugs.webkit.org/show_bug.cgi?id=206135

            Rubber stamped by Zalan Bujtas.

            * wtf/spi/cocoa/NSLocaleSPI.h:

2020-01-15  Alan Coon  <alancoon@apple.com>

        Cherry-pick r254389. rdar://problem/58548648

    REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
    https://bugs.webkit.org/show_bug.cgi?id=200043
    Source/WTF:
    
    <rdar://problem/44119496>
    
    Reviewed by Dean Jackson.
    
    We ask the system for the current locale using CFLocaleCopyPreferredLanguages(), and then round-trip
    it through CFBundleGetLocalizationInfoForLocalization() / CFBundleCopyLocalizationForLocalizationInfo().
    This was to work around the fact that CFLocaleCopyPreferredLanguages() previously didn't report BCP47
    language codes. However, that round-tripping was introducing errors, such as "zh-Hant-HK" was getting
    turned into "zh-Hant-TW" which is clearly wrong. The CFBundle functions were never supposed to be used
    in this way.
    
    Instead, we can use CFLocaleCreateCanonicalLanguageIdentifierFromString() which is intended to
    canonicalize locale identifiers, and does return BCP47 language codes. However, this function preserves
    more fingerprinting entropy than the old code path, so we pass the input through new NSLocale SPI to
    minimize the entropy revealed.
    
    * WTF.xcodeproj/project.pbxproj:
    * wtf/Language.h:
    * wtf/Platform.h:
    * wtf/PlatformMac.cmake:
    * wtf/cf/LanguageCF.cpp:
    (WTF::httpStyleLanguageCode):
    (WTF::platformUserPreferredLanguages):
    * wtf/cocoa/LanguageCocoa.mm: Added.
    (WTF::minimizedLanguagesFromLanguages):
    * wtf/spi/cocoa/NSLocaleSPI.h: Added.
    
    Tools:
    
    Reviewed by Dean Jackson.
    
    Migrate system language tests to LayoutTests, to match the rest of our system language tests.
    
    * TestWebKitAPI/TestWebKitAPI.xcodeproj/project.pbxproj:
    * TestWebKitAPI/Tests/mac/NavigatorLanguage.mm: Removed.
    
    LayoutTests:
    
    <rdar://problem/44119496>
    
    Reviewed by Dean Jackson.
    
    Migrate and update tests from TestWebKitAPI to LayoutTests, to match the rest of our system language tests.
    
    * platform/mac/TestExpectations: Mark these tests as possibly failing on older versions of macOS.
    * fast/text/international/system-language/navigator-language/navigator-language-en-GB-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-en-GB.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-en-US-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-en-US.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-en-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-en.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-es-419-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-es-419.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-es-ES-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-es-ES.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-es-MX-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-es-MX.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-es-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-es.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-fr-CA-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-fr-CA.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-fr-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-fr.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-hi-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-hi.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-ja-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-ja.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-pt-BR-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-pt-BR.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-pt-PT-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-pt-PT.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-ru-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-ru.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-HK-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-HK.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-Hans-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-Hans.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-HK.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-Hant.html: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-TW-expected.txt: Added.
    * fast/text/international/system-language/navigator-language/navigator-language-zh-TW.html: Added.
    * js/dom/navigator-language-expected.txt:
    
    git-svn-id: https://svn.webkit.org/repository/webkit/trunk@254389 268f45cc-cd09-0410-ab3c-d52691b4dbfc

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

            REGRESSION(r185816): In the Hong Kong locale, navigator.language reports it's in the Taiwan locale
            https://bugs.webkit.org/show_bug.cgi?id=200043
            <rdar://problem/44119496>

            Reviewed by Dean Jackson.

            We ask the system for the current locale using CFLocaleCopyPreferredLanguages(), and then round-trip
            it through CFBundleGetLocalizationInfoForLocalization() / CFBundleCopyLocalizationForLocalizationInfo().
            This was to work around the fact that CFLocaleCopyPreferredLanguages() previously didn't report BCP47
            language codes. However, that round-tripping was introducing errors, such as "zh-Hant-HK" was getting
            turned into "zh-Hant-TW" which is clearly wrong. The CFBundle functions were never supposed to be used
            in this way.

            Instead, we can use CFLocaleCreateCanonicalLanguageIdentifierFromString() which is intended to
            canonicalize locale identifiers, and does return BCP47 language codes. However, this function preserves
            more fingerprinting entropy than the old code path, so we pass the input through new NSLocale SPI to
            minimize the entropy revealed.

            * WTF.xcodeproj/project.pbxproj:
            * wtf/Language.h:
            * wtf/Platform.h:
            * wtf/PlatformMac.cmake:
            * wtf/cf/LanguageCF.cpp:
            (WTF::httpStyleLanguageCode):
            (WTF::platformUserPreferredLanguages):
            * wtf/cocoa/LanguageCocoa.mm: Added.
            (WTF::minimizedLanguagesFromLanguages):
            * wtf/spi/cocoa/NSLocaleSPI.h: Added.

2020-01-03  Dean Jackson  <dino@apple.com>

        [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
        https://bugs.webkit.org/show_bug.cgi?id=205483
        <rdar://problem/58097701>

        Reverting this from trunk (was r253926) due to the number of
        flakey tests and failures.

        * wtf/Platform.h:

2020-01-03  Simon Fraser  <simon.fraser@apple.com>

        Add some shared schemes to the WebKit.xcworkspace
        https://bugs.webkit.org/show_bug.cgi?id=205698

        Reviewed by Tim Horton.

        Make WebKit.xcworkspace show the following schemes by default:
            All Source
            All Tools
            WTF
            JavaScriptCore
            WebCore
            WebKit
            WebKitLegacy
            DumpRenderTree
            WebKitTestRunner
            TestWebKitAPI
            MiniBrowser
            MobileMiniBrowser.
            
        Also remove the MobileMiniBrowserUITests scheme.

        * WTF.xcodeproj/xcshareddata/xcschemes/WTF.xcscheme: Copied from Tools/MobileMiniBrowser/MobileMiniBrowser.xcodeproj/xcshareddata/xcschemes/MobileMiniBrowserUITests.xcscheme.

2020-01-02  Yusuke Suzuki  <ysuzuki@apple.com> and Simon Fraser  <simon.fraser@apple.com>

        Experiment: create lots of different malloc zones for easier accounting of memory use
        https://bugs.webkit.org/show_bug.cgi?id=186422

        Reviewed by Saam Barati.

        This patch introduces ENABLE(MALLOC_HEAP_BREAKDOWN). If this is enabled, we allocate malloc_zone per malloc kind.
        This offers the way to investigate the usage of memory per kind by using vmmap, like the following.

            VIRTUAL   RESIDENT      DIRTY    SWAPPED ALLOCATION      BYTES DIRTY+SWAP          REGION
            MALLOC ZONE                                                      SIZE       SIZE       SIZE       SIZE      COUNT  ALLOCATED  FRAG SIZE  % FRAG   COUNT
            ===========                                                   =======  =========  =========  =========  =========  =========  =========  ======  ======
            StringImpl_0x116efd000                                         188.0M      69.3M      30.9M         0K     139456      18.0M      12.9M     42%      34
            DefaultMallocZone_0x10f487000                                  176.0M      53.9M      14.1M         0K     115956      9955K      4497K     32%      22
            Vector_0x116eff000                                             162.0M      56.3M      55.3M         0K     140715      17.3M      37.9M     69%      36
            MetadataTable_0x11843b000                                      152.0M      17.5M      17.5M         0K      14200      2353K      15.2M     87%      26
            WebKit Using System Malloc_0x114cbe000                         150.0M      31.6M      21.8M         0K      87422      16.7M      5278K     24%      23
            InstructionStream_0x118469000                                  150.0M      5764K      5764K         0K      14470      4688K      1076K     19%      24
            AssemblerData_0x117ee6000                                      150.0M      1928K      1928K         0K          1         16      1928K    100%      24

        To achieve this goal without making very large change, we put a template type in various containers.
        For example, Vector will take Malloc parameter (the default one is FastMalloc allocator). If ENABLE(MALLOC_HEAP_BREAKDOWN) is enabled, we change this to
        specific VectorMalloc allocator, and vmmap can show memory usage of this allocator. This patch also supports malloc_zone per IsoHeap. So we can see memory
        allocation per IsoHeap in vmmap.

        To use this feature, we need to flip two compile time flags, ENABLE(MALLOC_HEAP_BREAKDOWN) in WTF and BENABLE_MALLOC_HEAP_BREAKDOWN in bmalloc.
        And use `vmmap $PID` to dump malloc zones. To allocate objects of a class with a specific malloc-zone, use WTF_MAKE_FAST_ALLOCATED_WITH_HEAP_IDENTIFIER(HeapIdentifier) for the class,
        and define allocator by DECLARE_ALLOCATOR_WITH_HEAP_IDENTIFIER(HeapIdentifier) in a header and DEFINE_ALLOCATOR_WITH_HEAP_IDENTIFIER(HeapIdentifier) in a cpp file.

        This patch also introduce callstack collector for malloc. Vector, HashMap etc. are used to allocate various things, but the above malloc_zone feature only tells thing like "Vector
        takes XXX MB memory". But what we want to know in this case is what Vector is consuming memory. We collect StackShot for each malloc call, and combine these information to tell
        which callsite is consuming much memory, which tell us that what Vector is consuming memory.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/Bag.cpp: Copied from Source/JavaScriptCore/parser/SourceProviderCache.cpp.
        * wtf/Bag.h:
        (WTF::Private::BagNode::BagNode): Deleted.
        * wtf/BitVector.cpp:
        (WTF::BitVector::OutOfLineBits::create):
        (WTF::BitVector::OutOfLineBits::destroy):
        * wtf/CMakeLists.txt:
        * wtf/ConcurrentBuffer.cpp: Copied from Source/JavaScriptCore/parser/SourceProviderCache.cpp.
        * wtf/ConcurrentBuffer.h:
        * wtf/DebugHeap.cpp: Copied from Source/JavaScriptCore/runtime/CachePayload.cpp.
        (WTF::DebugHeap::DebugHeap):
        (WTF::DebugHeap::malloc):
        (WTF::DebugHeap::calloc):
        (WTF::DebugHeap::memalign):
        (WTF::DebugHeap::realloc):
        (WTF::DebugHeap::free):
        * wtf/DebugHeap.h: Added.
        * wtf/FastBitVector.cpp:
        (WTF::FastBitVectorWordOwner::setEqualsSlow):
        (WTF::FastBitVectorWordOwner::resizeSlow):
        * wtf/FastBitVector.h:
        (WTF::FastBitVectorWordOwner::~FastBitVectorWordOwner):
        * wtf/FastMalloc.cpp:
        (WTF::fastMallocDumpMallocStats):
        (WTF::AvoidRecordingScope::AvoidRecordingScope):
        (WTF::AvoidRecordingScope::~AvoidRecordingScope):
        (WTF::MallocCallTracker::MallocSiteData::MallocSiteData):
        (WTF::MallocCallTracker::singleton):
        (WTF::MallocCallTracker::MallocCallTracker):
        (WTF::MallocCallTracker::recordMalloc):
        (WTF::MallocCallTracker::recordRealloc):
        (WTF::MallocCallTracker::recordFree):
        (WTF::MallocCallTracker::dumpStats):
        (WTF::fastMalloc):
        (WTF::fastRealloc):
        (WTF::fastFree):
        (WTF::fastAlignedMalloc):
        (WTF::tryFastAlignedMalloc):
        (WTF::fastAlignedFree):
        * wtf/FastMalloc.h:
        (WTF::FastMalloc::zeroedMalloc):
        (WTF::FastMalloc::tryZeroedMalloc):
        * wtf/Forward.h:
        * wtf/HashTable.cpp:
        * wtf/HashTable.h:
        (WTF::KeyTraits>::allocateTable):
        (WTF::KeyTraits>::deallocateTable):
        (WTF::KeyTraits>::rehash):
        * wtf/MallocPtr.h:
        (WTF::MallocPtr::MallocPtr):
        (WTF::MallocPtr::malloc):
        (WTF::MallocPtr::zeroedMalloc):
        (WTF::MallocPtr::tryMalloc):
        (WTF::MallocPtr::tryZeroedMalloc):
        (WTF::adoptMallocPtr):
        * wtf/MetaAllocator.cpp:
        (WTF::MetaAllocator::allocFreeSpaceNode):
        (WTF::MetaAllocator::freeFreeSpaceNode):
        * wtf/MetaAllocatorHandle.h:
        * wtf/Platform.h:
        * wtf/RefCountedArray.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
        * wtf/RefCountedArray.h:
        (WTF::RefCountedArray::RefCountedArray):
        (WTF::RefCountedArray::~RefCountedArray):
        (WTF::RefCountedArray::assign):
        * wtf/SegmentedVector.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
        * wtf/SegmentedVector.h:
        * wtf/SmallPtrSet.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
        * wtf/SmallPtrSet.h:
        (WTF::SmallPtrSet::~SmallPtrSet):
        (WTF::SmallPtrSet::grow):
        * wtf/UniqueArray.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
        * wtf/UniqueArray.h:
        (WTF::UniqueArrayFree::operator() const):
        (WTF::UniqueArrayFree<T::operator() const):
        * wtf/Vector.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
        * wtf/Vector.h:
        (WTF::VectorBufferBase::allocateBuffer):
        (WTF::VectorBufferBase::tryAllocateBuffer):
        (WTF::VectorBufferBase::reallocateBuffer):
        (WTF::VectorBufferBase::deallocateBuffer):
        (WTF::VectorBufferBase::releaseBuffer):
        (WTF::VectorBuffer::releaseBuffer):
        (WTF::Vector::swap):
        (WTF::Malloc>::Vector):
        (WTF::=):
        (WTF::Malloc>::contains const):
        (WTF::Malloc>::findMatching const):
        (WTF::Malloc>::find const):
        (WTF::Malloc>::reverseFind const):
        (WTF::Malloc>::appendIfNotContains):
        (WTF::Malloc>::fill):
        (WTF::Malloc>::appendRange):
        (WTF::Malloc>::expandCapacity):
        (WTF::Malloc>::tryExpandCapacity):
        (WTF::Malloc>::resize):
        (WTF::Malloc>::resizeToFit):
        (WTF::Malloc>::shrink):
        (WTF::Malloc>::grow):
        (WTF::Malloc>::asanSetInitialBufferSizeTo):
        (WTF::Malloc>::asanSetBufferSizeToFullCapacity):
        (WTF::Malloc>::asanBufferSizeWillChangeTo):
        (WTF::Malloc>::reserveCapacity):
        (WTF::Malloc>::tryReserveCapacity):
        (WTF::Malloc>::reserveInitialCapacity):
        (WTF::Malloc>::shrinkCapacity):
        (WTF::Malloc>::append):
        (WTF::Malloc>::tryAppend):
        (WTF::Malloc>::constructAndAppend):
        (WTF::Malloc>::tryConstructAndAppend):
        (WTF::Malloc>::appendSlowCase):
        (WTF::Malloc>::constructAndAppendSlowCase):
        (WTF::Malloc>::tryConstructAndAppendSlowCase):
        (WTF::Malloc>::uncheckedAppend):
        (WTF::Malloc>::uncheckedConstructAndAppend):
        (WTF::Malloc>::appendVector):
        (WTF::Malloc>::insert):
        (WTF::Malloc>::insertVector):
        (WTF::Malloc>::remove):
        (WTF::Malloc>::removeFirst):
        (WTF::Malloc>::removeFirstMatching):
        (WTF::Malloc>::removeAll):
        (WTF::Malloc>::removeAllMatching):
        (WTF::Malloc>::reverse):
        (WTF::Malloc>::map const):
        (WTF::Malloc>::releaseBuffer):
        (WTF::Malloc>::checkConsistency):
        (WTF::swap):
        (WTF::operator==):
        (WTF::operator!=):
        (WTF::Malloc>::isolatedCopy const):
        (WTF::removeRepeatedElements):
        (WTF::minCapacity>::Vector): Deleted.
        (WTF::minCapacity>::contains const): Deleted.
        (WTF::minCapacity>::findMatching const): Deleted.
        (WTF::minCapacity>::find const): Deleted.
        (WTF::minCapacity>::reverseFind const): Deleted.
        (WTF::minCapacity>::appendIfNotContains): Deleted.
        (WTF::minCapacity>::fill): Deleted.
        (WTF::minCapacity>::appendRange): Deleted.
        (WTF::minCapacity>::expandCapacity): Deleted.
        (WTF::minCapacity>::tryExpandCapacity): Deleted.
        (WTF::minCapacity>::resize): Deleted.
        (WTF::minCapacity>::resizeToFit): Deleted.
        (WTF::minCapacity>::shrink): Deleted.
        (WTF::minCapacity>::grow): Deleted.
        (WTF::minCapacity>::asanSetInitialBufferSizeTo): Deleted.
        (WTF::minCapacity>::asanSetBufferSizeToFullCapacity): Deleted.
        (WTF::minCapacity>::asanBufferSizeWillChangeTo): Deleted.
        (WTF::minCapacity>::reserveCapacity): Deleted.
        (WTF::minCapacity>::tryReserveCapacity): Deleted.
        (WTF::minCapacity>::reserveInitialCapacity): Deleted.
        (WTF::minCapacity>::shrinkCapacity): Deleted.
        (WTF::minCapacity>::append): Deleted.
        (WTF::minCapacity>::tryAppend): Deleted.
        (WTF::minCapacity>::constructAndAppend): Deleted.
        (WTF::minCapacity>::tryConstructAndAppend): Deleted.
        (WTF::minCapacity>::appendSlowCase): Deleted.
        (WTF::minCapacity>::constructAndAppendSlowCase): Deleted.
        (WTF::minCapacity>::tryConstructAndAppendSlowCase): Deleted.
        (WTF::minCapacity>::uncheckedAppend): Deleted.
        (WTF::minCapacity>::uncheckedConstructAndAppend): Deleted.
        (WTF::minCapacity>::appendVector): Deleted.
        (WTF::minCapacity>::insert): Deleted.
        (WTF::minCapacity>::insertVector): Deleted.
        (WTF::minCapacity>::remove): Deleted.
        (WTF::minCapacity>::removeFirst): Deleted.
        (WTF::minCapacity>::removeFirstMatching): Deleted.
        (WTF::minCapacity>::removeAll): Deleted.
        (WTF::minCapacity>::removeAllMatching): Deleted.
        (WTF::minCapacity>::reverse): Deleted.
        (WTF::minCapacity>::map const): Deleted.
        (WTF::minCapacity>::releaseBuffer): Deleted.
        (WTF::minCapacity>::checkConsistency): Deleted.
        (WTF::minCapacity>::isolatedCopy const): Deleted.
        * wtf/text/CString.cpp:
        (WTF::CStringBuffer::createUninitialized):
        * wtf/text/CString.h:
        * wtf/text/StringBuffer.cpp: Copied from Source/JavaScriptCore/bytecode/InstructionStream.cpp.
        * wtf/text/StringBuffer.h:
        (WTF::StringBuffer::StringBuffer):
        (WTF::StringBuffer::~StringBuffer):
        (WTF::StringBuffer::resize):
        (WTF::StringBuffer::release):
        * wtf/text/StringImpl.cpp:
        (WTF::StringImpl::~StringImpl):
        (WTF::StringImpl::destroy):
        (WTF::StringImpl::createUninitializedInternalNonEmpty):
        (WTF::StringImpl::reallocateInternal):
        * wtf/text/StringImpl.h:
        (WTF::StringImpl::StringImpl):
        (WTF::StringImpl::createSubstringSharingImpl):
        (WTF::StringImpl::tryCreateUninitialized):
        (WTF::StringImpl::adopt):
        * wtf/text/cf/StringImplCF.cpp:
        (WTF::StringWrapperCFAllocator::allocate):
        (WTF::StringWrapperCFAllocator::reallocate):
        (WTF::StringWrapperCFAllocator::deallocate):

2020-01-02  Dean Jackson  <dino@apple.com>

        REGRESSION(r253926): Crash at libANGLE-shared.dylib: gl::LogMessage::~LogMessage
        https://bugs.webkit.org/show_bug.cgi?id=205690
        rdar://58279401

        Reviewed by Eric Carlson.

        Only enable ANGLE for iOS hardware while we investigate this fatal error.

        * wtf/Platform.h:

2020-01-02  Sam Weinig  <weinig@apple.com>

        Simplify StringBuilder API/align with makeString by removing appendFixed* functions and using FormatNumber struct instead
        https://bugs.webkit.org/show_bug.cgi?id=205671

        Reviewed by Alex Christensen.

        In an ongoing attempt to simplify the StringBuilder interface and unify it's functionality with makeString,
        this change removes appendFixedPrecisionNumber() and appendFixedWidthNumber(), replacing their uses
        with direct calls to append(), using a FormattedNumber object to direct it to the appropriate StringTypeAdapter.

        * wtf/text/StringBuilder.h:
        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::appendFixedPrecisionNumber): Deleted.
        (WTF::StringBuilder::appendFixedWidthNumber): Deleted.
        Remove StringBuilder::appendFixedPrecisionNumber() and StringBuilder::appendFixedWidthNumber(). The same functionality
        is available and more flexible by passing FormattedNumbers to the variadic append() function.
        
        * wtf/text/TextStream.cpp:
        (WTF::TextStream::operator<<):
        * wtf/MediaTime.cpp:
        (WTF::MediaTime::toString const):
        Replace all uses of builder.appendFixedPrecisionNumber(...) with builder.append(FormattedNumber::fixedPrecision(...))
        and builder.appendFixedWidthNumber(...) with with builder.append(FormattedNumber::fixedWidth(...))

2019-12-20  Darin Adler  <darin@apple.com>

        Tidy a bit of StringBuilder usage
        https://bugs.webkit.org/show_bug.cgi?id=205509

        Reviewed by Sam Weinig.

        * wtf/FileSystem.cpp:
        (WTF::FileSystemImpl::decodeFromFilename): Fix misleading variable name "hexDigit"
        for result of decoding "%+XXXX"; what's decoded is a character, not a hex digit.

        * wtf/HexNumber.h: Remove unused appendUnsignedAsHexFixedSize function for
        destinations other than StringBuilder. Don't need it at this time, could add
        it later if we ever decide we do.

        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::appendSubstring): Improved logic in appendSubstring so it
        will handle even absurd values for offset and length correctly, and added a
        default length of "infinity" just like in String::substring.

        * wtf/text/StringImpl.cpp:
        (WTF::StringImpl::convertToLowercaseWithoutLocale): Use isASCII.
        (WTF::StringImpl::convertToLowercaseWithoutLocaleStartingAtFailingIndex8Bit): Ditto.

        * wtf/text/WTFString.cpp:
        (asciiDebug): Use StringBuilder to build the string; this was the one place that
        used appendUnsignedAsHexFixedSize on something else, and there is no need.

2019-12-30  youenn fablet  <youenn@apple.com>

        Ignore URL host for schemes that are not using host information
        https://bugs.webkit.org/show_bug.cgi?id=205157
        <rdar://problem/57825963>

        Reviewed by Darin Adler.

        * wtf/URL.cpp:
        (WTF::URL::removeHostAndPort):
        * wtf/URL.h:

2019-12-25  Dean Jackson  <dino@apple.com>

        [WebGL] Enable ANGLE by default for Cocoa platforms (except simulator)
        https://bugs.webkit.org/show_bug.cgi?id=205483
        rdar://56925821

        Reviewed by Simon Fraser.

        Turn USE_ANGLE on for Cocoa, with the exception of the simulator.

        * wtf/Platform.h:

2019-12-24  Eric Carlson  <eric.carlson@apple.com>

        [Media in GPU process] Enable media player proxy logging
        https://bugs.webkit.org/show_bug.cgi?id=205557
        <rdar://problem/58160932>

        Reviewed by Youenn Fablet.

        * wtf/Logger.h:
        (WTF::Logger::willLog const): Minor optimization: don't check m_enabled unnecessarily.

2019-12-23  Keith Miller  <keith_miller@apple.com>

        DFG/FTL should be able to exit to the middle of a bytecode
        https://bugs.webkit.org/show_bug.cgi?id=205232

        Reviewed by Saam Barati.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/Bitmap.h:
        (WTF::WordType>::invert):
        (WTF::WordType>::operator):
        (WTF::WordType>::operator const const):
        * wtf/CMakeLists.txt:
        * wtf/EnumClassOperatorOverloads.h: Added.
        * wtf/FastBitVector.h:
        (WTF::FastBitReference::operator bool const):
        (WTF::FastBitReference::operator|=):
        (WTF::FastBitReference::operator&=):
        (WTF::FastBitVector::fill):
        (WTF::FastBitVector::grow):
        * wtf/UnalignedAccess.h:
        (WTF::unalignedLoad):
        (WTF::unalignedStore):

2019-12-21  Antti Koivisto  <antti@apple.com>

        Move Vector HashTraits to HashTraits.h to fix GCC build
        https://bugs.webkit.org/show_bug.cgi?id=205540

        Reviewed by Zalan Bujtas.

        GCC is stricter than LLVM with partial specializations

        Error: partial specialization of struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >
        after instantiation of struct WTF::HashTraits<WTF::Vector<WTF::String> >

        * wtf/HashTraits.h:
        * wtf/VectorHash.h:

2019-12-20  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r253820.

        Broke Mac testing

        Reverted changeset:

        "Invalidate only affected elements after media query
        evaluation changes"
        https://bugs.webkit.org/show_bug.cgi?id=205392
        https://trac.webkit.org/changeset/253820

2019-12-20  Antti Koivisto  <antti@apple.com>

        Invalidate only affected elements after media query evaluation changes
        https://bugs.webkit.org/show_bug.cgi?id=205392

        Reviewed by Zalan Bujtas.

        Fix GCC build error

        Error: partial specialization of ‘struct WTF::HashTraits<WTF::Vector<U, otherCapacity, WTF::CrashOnOverflow, 16> >’
               after instantiation of ‘struct WTF::HashTraits<WTF::Vector<WTF::String> >’

        * wtf/HashTraits.h:
        * wtf/VectorHash.h:

        Move to HashTraits to HashTraits.h so it gets specialized before any instantiation.

2019-12-19  Antti Koivisto  <antti@apple.com>

        Allow Vectors as hash keys
        https://bugs.webkit.org/show_bug.cgi?id=205449

        Reviewed by Geoff Garen.

        Add traits to allow Vectors of hashable types to act as hash keys.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/Vector.h:
        (WTF::Vector::Vector):
        (WTF::Vector::~Vector):
        (WTF::Vector::isHashTableDeletedValue const):

        Use m_size = numeric_limits::max() as the deleted value.

        * wtf/VectorHash.h: Added.
        (WTF::VectorHash::hash):
        (WTF::VectorHash::equal):

        Add traits. Empty Vector is the empty value.

2019-12-19  Jer Noble  <jer.noble@apple.com>

        Safely iterate observers in languageDidChange()
        https://bugs.webkit.org/show_bug.cgi?id=205452
        <rdar://problem/57937765>

        Reviewed by Eric Carlson.

        Use the "copyToVector() then verify each item is still in the original
        map" pattern to safely iterate over the observerMap().

        * wtf/Language.cpp:
        (WTF::languageDidChange):

2019-12-18  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, build fix after r253730
        https://bugs.webkit.org/show_bug.cgi?id=204398

        Thread::destructTLS is always required in POSIX environments

        * wtf/Threading.h:

2019-12-18  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win] Use thread_local to hold Ref<WTF::Thread> in the thread rather than using FLS
        https://bugs.webkit.org/show_bug.cgi?id=204398

        Reviewed by Yusuke Suzuki.

        Use thread_local which is faster than FLS.

        * wtf/Threading.cpp:
        (WTF::initializeThreading):
        * wtf/Threading.h:
        (WTF::Thread::current):
        * wtf/ThreadingPrimitives.h: Deleted threadSpecificKeyCreate and
        related functions which aren't used now in Windows port. Deleted
        THREAD_SPECIFIC_CALL macro which isn't used now.
        * wtf/win/ThreadingWin.cpp: Added a thread_local variable s_threadHolder.
        (WTF::Thread::ThreadHolder::~ThreadHolder): Added.
        (WTF::Thread::currentMayBeNull):
        (WTF::Thread::initializeTLS): Store a reference of Thread into s_threadHolder.
        (WTF::Thread::initializeTLSKey): Deleted.
        (WTF::Thread::destructTLS): Deleted.

2019-12-18  Ben Nham  <nham@apple.com>

        Add network loading signposts
        https://bugs.webkit.org/show_bug.cgi?id=204822
        <rdar://problem/57608824>

        Reviewed by Alex Christensen.

        This adds os_signposts related to network loads to aid in debugging networking performance
        issues. Since URLs are logged in the signposts, this capability is only enabled on Apple
        internal builds when an environment variable is set.

        * wtf/Platform.h:
        Add HAVE_OS_SIGNPOST.

2019-12-17  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Update to use CTFontCreateForCharactersWithLanguageAndOption()
        https://bugs.webkit.org/show_bug.cgi?id=205310

        Reviewed by Simon Fraser.

        All our bots are on the appropriate OS version.

        * wtf/Platform.h:

2019-12-17  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] 8Bit JSRopeString can contain 16Bit string in its rope
        https://bugs.webkit.org/show_bug.cgi?id=205323

        Reviewed by Mark Lam.

        * wtf/text/StringImpl.h:
        (WTF::StringImpl::copyCharacters):

2019-12-17  Tim Horton  <timothy_horton@apple.com>

        macCatalyst: Cursor should update on mouse movement and style change
        https://bugs.webkit.org/show_bug.cgi?id=205317
        <rdar://problem/46793696>

        Reviewed by Anders Carlsson.

        * wtf/FeatureDefines.h:
        Make ENABLE_CURSOR_SUPPORT true on iOS, for macCatalyst. This results
        in it being true everywhere, so remove it.

        Add a new ENABLE_CUSTOM_CURSOR_SUPPORT, indicating whether we support
        custom bitmap cursors. It covers the subset of ENABLE_CURSOR_SUPPORT
        code that we still don't support in macCatalyst.

        * wtf/Platform.h:
        Add HAVE_HISERVICES (true on macOS but not macCatalyst) and
        HAVE_NSCURSOR (true on macOS and macCatalyst but not e.g. iOS).

2019-12-16  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Remove ArrayBufferNeuteringWatchpointSet
        https://bugs.webkit.org/show_bug.cgi?id=205194

        Reviewed by Saam Barati.

        This patch adds PackedRef and PackedRefPtr. They are Ref and RefPtr, but its internal pointer is packed.
        So we can represent them in 6 bytes with 1 byte alignment.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/Packed.h:
        (WTF::alignof):
        * wtf/PackedRef.h: Copied from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
        * wtf/PackedRefPtr.h: Renamed from Source/JavaScriptCore/runtime/ArrayBufferNeuteringWatchpointSet.h.
        * wtf/RefPtr.h:
        (WTF::RefPtr::operator UnspecifiedBoolType const):
        (WTF::RefPtr::unspecifiedBoolTypeInstance const):

2019-12-13  Saam Barati  <sbarati@apple.com>

        Add a Heap::finalize function that takes WTF::Function<void()>
        https://bugs.webkit.org/show_bug.cgi?id=205211

        Reviewed by Geoffrey Garen.

        * wtf/Function.h:
        (WTF::Function<Out):

2019-12-13  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Deny mach lookup access to "*.apple-extension-service" in the WebContent process
        https://bugs.webkit.org/show_bug.cgi?id=205134
        <rdar://problem/56984257>

        Reviewed by Brent Fulgham.

        Add enum value for the XPC service name filter type.

        * wtf/spi/darwin/SandboxSPI.h:

2019-12-09  Fujii Hironori  <Hironori.Fujii@sony.com>

        [MSVC] writeNumberToBufferUnsigned is unsafe for bool type
        https://bugs.webkit.org/show_bug.cgi?id=204873

        Reviewed by Darin Adler.

        MSVC reports warning for using / operator for bool type.
        > warning C4804: '/': unsafe use of type 'bool' in operation

        And, 'bool' isn't expected to be serialized as '0' or '1'. 'bool' isn't supported.

        * wtf/text/IntegerToStringConversion.h: Added a static_assert to ensure UnsignedIntegerType isn't bool.

2019-07-13  Darin Adler  <darin@apple.com>

        Streamline PODIntervalTree code and remove ValueToString
        https://bugs.webkit.org/show_bug.cgi?id=199782

        Reviewed by Anders Carlsson.

        * WTF.xcodeproj/project.pbxproj: Remove ValueToString.h.
        * wtf/CMakeLists.txt: Ditto.

        * wtf/MediaTime.cpp:
        (WTF::operator<<): Implement debug-only TextStream serialization
        based on toJSONString.
        * wtf/MediaTime.h: Ditto.

        * wtf/text/ValueToString.h: Removed.

2019-12-06  Zan Dobersek  <zdobersek@igalia.com>

        [GTK][WPE] Use bmalloc's memory footprint API for JSC heap growth management
        https://bugs.webkit.org/show_bug.cgi?id=204576

        Reviewed by Saam Barati.

        Add the new USE_BMALLOC_MEMORY_FOOTPRINT_API, enabled for the iOS-family
        ports and the Linux ports, as long as system malloc enforcement is
        disabled and bmalloc is subsequently built and used. The flag is used in
        JavaScriptCore to enable usage of bmalloc's memory footprint API for
        JSC heap growth control.

        * wtf/Platform.h:

2019-12-05  Chris Dumez  <cdumez@apple.com>

        [IPC] Fail ObjectIdentifier decoding if the decoded integer is not a valid ID
        https://bugs.webkit.org/show_bug.cgi?id=204921
        <rdar://problem/57677747>

        Reviewed by Ryosuke Niwa.

        * wtf/ObjectIdentifier.h:
        (WTF::ObjectIdentifier::decode):

2019-12-03  Sunny He  <sunny_he@apple.com>

        Enable security assertions on all ASAN builds
        https://bugs.webkit.org/show_bug.cgi?id=204802

        Reviewed by Ryosuke Niwa.

        * wtf/FeatureDefines.h:

2019-12-03  Christopher Reid  <chris.reid@sony.com>

        Regular expression hangs in Safari only
        https://bugs.webkit.org/show_bug.cgi?id=202882
        <rdar://problem/56236654>

        Reviewed by Yusuke Suzuki.

        BumpPointerPool::ensureCapacityCrossPool can cause an infinite loop
        if multiple large pools are deallocated and a new capacity does not
        fit in the deallocated pools. BumpPointerPool should try using
        more pools if the next one isn't large enough.

        * wtf/BumpPointerAllocator.h:
        (WTF::BumpPointerPool::ensureCapacityCrossPool):

2019-11-28  Fujii Hironori  <Hironori.Fujii@sony.com>

        Remove ENABLE_KEYBOARD_CODE_ATTRIBUTE and ENABLE_KEYBOARD_KEY_ATTRIBUTE macros
        https://bugs.webkit.org/show_bug.cgi?id=204666

        Reviewed by Ross Kirsling and Don Olmstead.

        * wtf/FeatureDefines.h:

2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win] Update KeyboardEvent as per the latest specification
        https://bugs.webkit.org/show_bug.cgi?id=202183

        Reviewed by Ross Kirsling.

        * wtf/FeatureDefines.h:

2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Add DefaultHash<OptionSet<T>> and HashTrait<OptionSet<T>> specializations
        https://bugs.webkit.org/show_bug.cgi?id=204562

        Reviewed by Daniel Bates.

        * WTF.xcodeproj/project.pbxproj: Added OptionSetHash.h
        * wtf/CMakeLists.txt: Ditto.
        * wtf/OptionSet.h: Made StorageType public, and use C++14 types.
        * wtf/OptionSetHash.h: Added.
        (WTF::DefaultHash<OptionSet<T>>::Hash::hash):
        (WTF::DefaultHash<OptionSet<T>>::Hash::equal):
        (WTF::HashTraits<OptionSet<T>>::emptyValue):
        (WTF::HashTraits<OptionSet<T>>::constructDeletedValue):
        (WTF::HashTraits<OptionSet<T>>::isDeletedValue):

2019-11-25  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r252770): [GTK][WPE] Remote inspector no longer works if debugger is in a different kind of system
        https://bugs.webkit.org/show_bug.cgi?id=204572

        Reviewed by Žan Doberšek.

        This patch adds the following changes:

         - Use uint32_t instead of size_t to store the body size in the message header, because size_t has a different
           size in 32 and 64 bit platforms.
         - Use htonl/ntohl to write/read the body size in the header.
         - Add a flags byte to the header to include the message byte order. The sender always uses the host byter order
           and the receiver does the byte swapping if needed.

        * wtf/glib/SocketConnection.cpp:
        (WTF::messageIsByteSwapped):
        (WTF::SocketConnection::readMessage):
        (WTF::SocketConnection::sendMessage):

2019-11-25  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r252770): [GTK][WPE] Remote inspector broken in debug builds after r252770
        https://bugs.webkit.org/show_bug.cgi?id=204569

        Reviewed by Žan Doberšek.

        We need to call relaxAdoptionRequirement() in SocketConnection constructor because we are taking a reference for
        the read monitor lambda.

        * wtf/glib/SocketConnection.cpp:
        (WTF::SocketConnection::SocketConnection):

2019-11-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Ran sort-Xcode-project-file.

        Unreviewed.

        * WTF.xcodeproj/project.pbxproj:

2019-11-23  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Try to fix the GTK WebDriver tests in the bots after r252770

        They are failing in the bots because g_variant_new_from_data() is failing due to the given data not being
        properly aligned for the type being loaded. This is not a problem since GLib 2.60 that checks the alignment and
        reallocates the buffer in aligned memory only if needed. For previous versions we need to ensure the memory we
        pass to g_variant_new_from_data() is aligned.

        * wtf/glib/SocketConnection.cpp:
        (WTF::SocketConnection::readMessage):

2019-11-22  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed FTW build fix after r252687.

        * wtf/PlatformFTW.cmake:

2019-11-22  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK][WPE] RemoteInspector: use sockets instead of DBus
        https://bugs.webkit.org/show_bug.cgi?id=204503

        Reviewed by Žan Doberšek.

        Add SocketConnection class.

        * wtf/PlatformGTK.cmake:
        * wtf/PlatformWPE.cmake:
        * wtf/glib/GSocketMonitor.cpp: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.cpp.
        (WTF::GSocketMonitor::start):
        * wtf/glib/GSocketMonitor.h: Renamed from Source/WebKit/Platform/IPC/glib/GSocketMonitor.h.
        (WTF::GSocketMonitor::isActive const):
        * wtf/glib/GTypedefs.h:
        * wtf/glib/GUniquePtr.h:
        * wtf/glib/SocketConnection.cpp: Added.
        (WTF::SocketConnection::SocketConnection):
        (WTF::SocketConnection::~SocketConnection):
        (WTF::SocketConnection::read):
        (WTF::SocketConnection::readMessage):
        (WTF::SocketConnection::sendMessage):
        (WTF::SocketConnection::write):
        (WTF::SocketConnection::waitForSocketWritability):
        (WTF::SocketConnection::close):
        (WTF::SocketConnection::didClose):
        * wtf/glib/SocketConnection.h: Added.
        (WTF::SocketConnection::create):
        (WTF::SocketConnection::isClosed const):

2019-11-21  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, rolling in again, regression is not caused by it
        https://bugs.webkit.org/show_bug.cgi?id=202471

        * wtf/text/StringCommon.h:
        (WTF::findCommon):

2019-11-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r252683 and r252721.
        https://bugs.webkit.org/show_bug.cgi?id=204475

        13% regression in JetStream2/prepack-wtb (Requested by
        yusukesuzuki on #webkit).

        Reverted changesets:

        "Implement String.prototype.replaceAll"
        https://bugs.webkit.org/show_bug.cgi?id=202471
        https://trac.webkit.org/changeset/252683

        "Unreviewed, address Darin's feedback on r252683."
        https://trac.webkit.org/changeset/252721

2019-11-21  Tuomas Karkkainen  <tuomas.webkit@apple.com>

        add ASSERT_NOT_REACHED_WITH_MESSAGE and RELEASE_ASSERT_NOT_REACHED_WITH_MESSAGE
        https://bugs.webkit.org/show_bug.cgi?id=204445

        Reviewed by Antti Koivisto.

        Add assertions that combine ASSERT_NOT_REACHED and ASSERT_WITH_MESSAGE.

        * wtf/Assertions.h:

2019-11-20  Ross Kirsling  <ross.kirsling@sony.com>

        Unreviewed, address Darin's feedback on r252683.

        * wtf/text/StringCommon.h:
        (WTF::findCommon):

2019-11-20  ChangSeok Oh  <changseok@webkit.org>

        [GTK] Add ANGLE backend to GTK port
        https://bugs.webkit.org/show_bug.cgi?id=199060

        Reviewed by Žan Doberšek.

        The GTK port uses TEXTURE_MAPPER that has a gl context for accelerated rendering,
        and ANGLE has an egl context for WebGL. We want to make both live together
        so an exception is made where TEXTURE_MAPPER is enabled.

        * wtf/Platform.h:

2019-11-20  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win] Implement WTF::ThreadSpecific in WTF::Thread
        https://bugs.webkit.org/show_bug.cgi?id=204341

        Reviewed by Brent Fulgham and Yusuke Suzuki.

        Thread::destructTLS had a tricky code to defer destroying
        WTF::Thread in TLS in order to ensure WTF::Thread is destructed
        after other ThreadSpecific are destructed, which is a part of
        cause of nasty hanging issue in the process termination (Bug 204192).

        This change implements WTF::ThreadSpecific in WTF::Thread by
        adding a new class Thread::SpecificStorage to manage TLS. Simplify
        Thread::destructTLS. Remove threadMapMutex in ThreadingWin.cpp

        * wtf/PlatformWin.cmake:
        * wtf/ThreadSpecific.h:
        (WTF::canBeGCThread>::ThreadSpecific):
        (WTF::canBeGCThread>::get):
        (WTF::canBeGCThread>::setInTLS):
        (WTF::canBeGCThread>::destroy):
        (WTF::canBeGCThread>::~ThreadSpecific): Deleted.
        * wtf/Threading.h:
        (WTF::Thread::specificStorage):
        (WTF::Thread::current):
        * wtf/win/ThreadSpecificWin.cpp: Removed.
        * wtf/win/ThreadingWin.cpp:
        (WTF::Thread::initializeTLSKey):
        (WTF::Thread::initializeTLS):
        (WTF::Thread::destructTLS):
        (WTF::Thread::SpecificStorage::allocateKey):
        (WTF::Thread::SpecificStorage::get):
        (WTF::Thread::SpecificStorage::set):
        (WTF::Thread::SpecificStorage::destroySlots):
        (): Deleted.
        (WTF::Thread::currentDying): Deleted.
        (WTF::Thread::get): Deleted.

2019-11-19  Ross Kirsling  <ross.kirsling@sony.com>

        Implement String.prototype.replaceAll
        https://bugs.webkit.org/show_bug.cgi?id=202471

        Reviewed by Yusuke Suzuki.

        * wtf/text/StringCommon.h:
        (WTF::findCommon):
        Fix logic: "start > length" early out should come before "empty search string" early out.

2019-11-19  Yusuke Suzuki  <ysuzuki@apple.com>

        [IndexedDB] IndexedDB's threading assertion should respect Web thread
        https://bugs.webkit.org/show_bug.cgi?id=204346

        Reviewed by Daniel Bates.

        * wtf/MainThread.cpp:
        (WTF::canCurrentThreadAccessThreadLocalData):
        (WTF::canAccessThreadLocalDataForThread): Deleted.
        * wtf/MainThread.h:
        * wtf/cocoa/MainThreadCocoa.mm:
        (WTF::canCurrentThreadAccessThreadLocalData):
        (WTF::canAccessThreadLocalDataForThread): Deleted.

2019-11-18  Fujii Hironori  <Hironori.Fujii@sony.com>

        Remove self-defined C++14 features in StdLibExtras.h
        https://bugs.webkit.org/show_bug.cgi?id=204220

        Reviewed by Ross Kirsling.

        Remove std::conjunction, std::in_place_t and std::make_unique definitions.
        Remove unsued std::clz.

        * wtf/StdLibExtras.h:
        (std::make_unique): Deleted.
        (std::exchange): Deleted.
        (std::clz): Deleted.

2019-11-18  Alex Christensen  <achristensen@webkit.org>

        Use SecTrustEvaluateWithError instead of SecTrustEvaluate where available
        https://bugs.webkit.org/show_bug.cgi?id=204159
        <rdar://problem/45894288>

        Reviewed by Darin Adler.

        * wtf/Platform.h:

2019-11-15  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Remove index-masking on ScopedArguments and put it in IsoSubspace
        https://bugs.webkit.org/show_bug.cgi?id=204269

        Reviewed by Saam Barati.

        * wtf/MathExtras.h:
        (WTF::computeIndexingMask): Deleted.
        (WTF::preciseIndexMaskShiftForSize): Deleted.
        (WTF::preciseIndexMaskShift): Deleted.
        (WTF::opaque): Deleted.
        (WTF::preciseIndexMaskPtr): Deleted.

2019-11-14  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] BlockDirectory's bits should be compact
        https://bugs.webkit.org/show_bug.cgi?id=204149

        Reviewed by Robin Morisset.

        * wtf/FastBitVector.h:
        (WTF::fastBitVectorArrayLength):
        (WTF::FastBitVectorImpl::unsafeWords):
        (WTF::FastBitVectorImpl::unsafeWords const):
        (WTF::FastBitReference::FastBitReference):
        (WTF::FastBitReference::operator bool const):
        (WTF::FastBitReference::operator=):
        (WTF::FastBitVector::at):
        (WTF::FastBitVector::operator[]):
        (WTF::FastBitVector::BitReference::BitReference): Deleted.
        (WTF::FastBitVector::BitReference::operator bool const): Deleted.
        (WTF::FastBitVector::BitReference::operator=): Deleted.

2019-11-11  Ross Kirsling  <ross.kirsling@sony.com>

        UTC offset for Samoa is miscalculated when !HAVE(TIMEGM)
        https://bugs.webkit.org/show_bug.cgi?id=204032

        Reviewed by Yusuke Suzuki.

        We have code assuming that the world's time zones haven't changed in the past decade,
        but Samoa changed from UTC-11 to UTC+13 at the beginning of 2012.

        (Note: "Samoa" here means the Independent State of Samoa (Pacific/Apia) and not American Samoa (Pacific/Samoa).
               See https://en.wikipedia.org/wiki/Time_in_Samoa for more information.)

        * wtf/DateMath.cpp:
        (WTF::calculateUTCOffset):
        Update "canned date" from 2009 to 2019.

2019-11-07  Mark Lam  <mark.lam@apple.com>

        Add a stack overflow check in Yarr::ByteCompiler::emitDisjunction().
        https://bugs.webkit.org/show_bug.cgi?id=203936
        <rdar://problem/56624724>

        Reviewed by Saam Barati.

        1. Add a StackCheck utility class so that we don't have to keep reinventing this
           every time we need to add stack checking somewhere.
        2. Rename some arguments and constants in StackBounds to be more descriptive of
           what they actually are.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/StackBounds.h:
        (WTF::StackBounds::recursionLimit const):
        * wtf/StackCheck.h: Added.
        (WTF::StackCheck::StackCheck):
        (WTF::StackCheck::isSafeToRecurse):

2019-11-06  Mark Lam  <mark.lam@apple.com>

        Remove remnants of support code for an upwards growing stack.
        https://bugs.webkit.org/show_bug.cgi?id=203942

        Reviewed by Yusuke Suzuki.

        We haven't supported an upwards growing stack in years, and a lot of code has
        since been written specifically with only a downwards growing stack in mind (e.g.
        the LLInt, the JITs).  Also, all our currently supported platforms use a downward
        growing stack.

        We should remove the remnants of support code for an upwards growing stack.  The
        presence of that code is deceptive in that it conveys support for an upwards
        growing stack where this hasn't been the case in years.

        * wtf/StackBounds.cpp:
        (WTF::StackBounds::newThreadStackBounds):
        (WTF::StackBounds::currentThreadStackBoundsInternal):
        (WTF::StackBounds::stackDirection): Deleted.
        (WTF::testStackDirection2): Deleted.
        (WTF::testStackDirection): Deleted.
        * wtf/StackBounds.h:
        (WTF::StackBounds::size const):
        (WTF::StackBounds::contains const):
        (WTF::StackBounds::recursionLimit const):
        (WTF::StackBounds::StackBounds):
        (WTF::StackBounds::isGrowingDownwards const):
        (WTF::StackBounds::checkConsistency const):
        (WTF::StackBounds::isGrowingDownward const): Deleted.
        * wtf/StackStats.cpp:
        (WTF::StackStats::CheckPoint::CheckPoint):
        (WTF::StackStats::CheckPoint::~CheckPoint):
        (WTF::StackStats::probe):
        (WTF::StackStats::LayoutCheckPoint::LayoutCheckPoint):

2019-11-05  Mark Lam  <mark.lam@apple.com>

        WTF::RunLoop should not depend on isMainThread() idiom.
        https://bugs.webkit.org/show_bug.cgi?id=203873
        <rdar://problem/56524251>

        Reviewed by Saam Barati, Ryosuke Niwa, and Devin Rousso.

        The isMainThread() idiom is only meaningful for WebCore.  It is less meaningful
        for JSC since a VM instance can be entered from multiple threads, as long as only
        one thread enters it at any time.  Hence, the concept of a main thread doesn't
        make sense at the JSC level.

        Since r251036, we started using a WTF::String to represent the RunLoop mode.
        This caused problems for JSC clients when USE(CF) since it necessitated the use of
        StringWrapperCFAllocator to track the life cycle of the CFStringRef generated from
        the WTF::String.

        To fix this problem, we should restore the original behavior of using CFStringRefs
        as the RunLoop mode token.

        * wtf/RunLoop.h:
        (WTF::RunLoop::cycle): Deleted.
        * wtf/cf/RunLoopCF.cpp:
        (WTF::RunLoop::cycle):
        * wtf/generic/RunLoopGeneric.cpp:
        (WTF::RunLoop::cycle):
        * wtf/glib/RunLoopGLib.cpp:
        (WTF::RunLoop::cycle):
        * wtf/win/RunLoopWin.cpp:
        (WTF::RunLoop::cycle):

2019-11-05  Tuomas Karkkainen  <tuomas.webkit@apple.com>

        Add definitions of ANSI colors for colorful log output
        https://bugs.webkit.org/show_bug.cgi?id=203805

        Reviewed by Saam Barati.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/AnsiColors.h: Added.
        * wtf/CMakeLists.txt:

2019-11-05  Tuomas Karkkainen  <tuomas.webkit@apple.com>

        move CrashReporterClientSPI.h and parts of WKCrashReporter to WTF so it can be used in JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=203803

        Reviewed by Saam Barati.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/PlatformMac.cmake:
        * wtf/cocoa/CrashReporter.cpp: Added.
        (WTF::setCrashLogMessage):
        * wtf/cocoa/CrashReporter.h: Added.
        * wtf/spi/cocoa/CrashReporterClientSPI.h: Renamed from Source/WebKit/Platform/spi/Cocoa/CrashReporterClientSPI.h.

2019-11-02  Devin Rousso  <drousso@apple.com>

        Web Inspector: Add diagnostic logging for frontend feature usage
        https://bugs.webkit.org/show_bug.cgi?id=203579
        <rdar://problem/56717410>

        Reviewed by Brian Burg.

        Original patch by Matt Baker <mattbaker@apple.com>.

        * wtf/FeatureDefines.h:
        Add `ENABLE_INSPECTOR_TELEMETRY`, which is only enabled for macOS.

2019-11-01  Devin Rousso  <drousso@apple.com>

        Web Inspector: Timelines: add a timeline that shows information about any recorded CSS animation/transition
        https://bugs.webkit.org/show_bug.cgi?id=203651
        <rdar://problem/56128726>

        Reviewed by Brian Burg.

        * wtf/Markable.h:
        (WTF::operator==):
        (WTF::operator!=):
        Add extra utility operators.

2019-10-31  Tim Horton  <timothy_horton@apple.com>

        Turn on IOSurface support in the iOS Simulator
        https://bugs.webkit.org/show_bug.cgi?id=203026
        <rdar://problem/56320993>

        Reviewed by Simon Fraser.

        * wtf/Platform.h:
        Turn on HAVE(IOSURFACE) and USE(IOSURFACE_CANVAS_BACKING_STORE) in the simulator.
        Add HAVE(IOSURFACE_COREIMAGE_SUPPORT).

2019-10-31  Jer Noble  <jer.noble@apple.com>

        [EME] Batch multiple key requests into one request and response
        https://bugs.webkit.org/show_bug.cgi?id=203580
        <rdar://problem/54853345>

        Reviewed by Eric Carlson.

        Support appending an r-value reference Vector to another.

        * wtf/Vector.h:
        (WTF::minCapacity>::appendVector):

2019-10-31  Alex Christensen  <achristensen@webkit.org>

        Remove unneeded HAVE_TIMINGDATAOPTIONS
        https://bugs.webkit.org/show_bug.cgi?id=202990

        Reviewed by Brady Eidson.

        * wtf/Platform.h:

2019-10-31  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] DateMath should have TimeClipped version
        https://bugs.webkit.org/show_bug.cgi?id=203550

        Reviewed by Saam Barati.

        We found that our Date constructor is slow because GregorianDateTime calculation takes so long.
        We are doing many `fmod`, floating division, `floor` etc. These operations, in particular `fmod`, takes
        very long time. As a result, 30% of JetStream2/date-format-xparb is taken by `fmod` function.

        But since we are performance timeClip operation, double value in DateInstance is always Int52. We should
        have integer version of GregorianDateTime calculation which avoids many unnecessary fmod etc.

        While integer division is truncate-to-zero, many Date calculation requires `floor(value / xxx)`. For now,
        we use integer fast path only when the value is Int52 and positive.

        We see 10~ % improvement in JetStream2/date-format-xparb-SP (from 201 to 239).

        * wtf/DateMath.cpp:
        (WTF::isLeapYear): Deleted.
        (WTF::daysInYear): Deleted.
        (WTF::daysFrom1970ToYear): Deleted.
        (WTF::msToDays): Deleted.
        (WTF::msToYear): Deleted.
        (WTF::dayInYear): Deleted.
        (WTF::msToMinutes): Deleted.
        (WTF::msToHours): Deleted.
        (WTF::monthFromDayInYear): Deleted.
        (WTF::checkMonth): Deleted.
        (WTF::dayInMonthFromDayInYear): Deleted.
        (WTF::dateToDaysFrom1970): Deleted.
        (WTF::timeClip): Deleted.
        * wtf/DateMath.h:
        (WTF::TimeClippedPositiveMilliseconds::TimeClippedPositiveMilliseconds):
        (WTF::TimeClippedPositiveMilliseconds::value const):
        (WTF::TimeClippedPositiveMilliseconds::asDouble const):
        (WTF::timeClip):
        (WTF::daysFrom1970ToYear):
        (WTF::daysFrom1970ToYearTimeClippedPositive):
        (WTF::isLeapYear):
        (WTF::daysInYear):
        (WTF::msToDays):
        (WTF::dayInYear):
        (WTF::dateToDaysFrom1970):
        (WTF::msToYear):
        (WTF::msToMinutes):
        (WTF::msToHours):
        (WTF::msToSeconds):
        (WTF::msToWeekDay):
        (WTF::monthFromDayInYear):
        (WTF::dayInMonthFromDayInYear):
        * wtf/GregorianDateTime.cpp:
        (WTF::GregorianDateTime::GregorianDateTime):
        * wtf/GregorianDateTime.h:

2019-10-30  Alex Christensen  <achristensen@webkit.org>

        Prevent Mac CMake build from bit rotting
        https://bugs.webkit.org/show_bug.cgi?id=203647

        Reviewed by Tim Horton.

        * wtf/PlatformMac.cmake:

2019-10-30  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Date functions should have intrinsic
        https://bugs.webkit.org/show_bug.cgi?id=202187

        Reviewed by Keith Miller.

        * wtf/DateMath.h:
        * wtf/GregorianDateTime.cpp:
        (WTF::GregorianDateTime::setToCurrentLocalTime):
        * wtf/GregorianDateTime.h:

2019-10-30  Per Arne Vollan  <pvollan@apple.com>

        It should be possible to create a mach sandbox extension for the WebContent process before the audit token is known
        https://bugs.webkit.org/show_bug.cgi?id=203618

        Reviewed by Brent Fulgham.

        Added SPI to create mach extension without PID or audit token.

        * wtf/spi/darwin/SandboxSPI.h:

2019-10-30  Daniel Bates  <dabates@apple.com>

        Add pretty printer for CompactPointerTuple
        https://bugs.webkit.org/show_bug.cgi?id=203495

        Reviewed by Jer Noble.

        #include <wtf/FastMalloc.h> for the definition of WTF_MAKE_FAST_ALLOCATED.

        * wtf/CompactPointerTuple.h:

2019-10-29  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Add fast path for String#localeCompare
        https://bugs.webkit.org/show_bug.cgi?id=202676

        Reviewed by Mark Lam.

        * wtf/text/StringView.h:
        (WTF::StringView::isAllASCII const):

2019-10-26  Chris Lord  <clord@igalia.com>

        Put OffscreenCanvas behind a build flag
        https://bugs.webkit.org/show_bug.cgi?id=203146

        Reviewed by Ryosuke Niwa.

        * wtf/FeatureDefines.h:

2019-10-25  Andy Estes  <aestes@apple.com>

        [Quick Look] Move the QLPreviewConverter delegate into PreviewConverter and vend a C++ client interface
        https://bugs.webkit.org/show_bug.cgi?id=203396

        Reviewed by Alex Christensen.

        * wtf/FeatureDefines.h: Defined ENABLE_PREVIEW_CONVERTER.

2019-10-23  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Figure out missing prepareCallOperation
        https://bugs.webkit.org/show_bug.cgi?id=203285

        Reviewed by Mark Lam.

        Enable USE(BUILTIN_FRAME_ADDRESS) regardless of platform is the compilers and architectures match.

        * wtf/Platform.h:

2019-10-23  Tim Horton  <timothy_horton@apple.com>

        macCatalyst: Should dispatch contextmenu event on right click
        https://bugs.webkit.org/show_bug.cgi?id=203316
        <rdar://problem/54617376>

        Reviewed by Wenson Hsieh.

        * wtf/FeatureDefines.h:

2019-10-23  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r251261.

        This broke multiple tests

        Reverted changeset:

        "Using version 1 CFRunloopSource for faster task dispatch"
        https://bugs.webkit.org/show_bug.cgi?id=202874
        https://trac.webkit.org/changeset/251261

2019-10-23  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Remove Hiragino Sans site-specific quirk for Yahoo Japan
        https://bugs.webkit.org/show_bug.cgi?id=203345

        Reviewed by Simon Fraser.

        * wtf/Platform.h:

2019-10-22  Yusuke Suzuki  <ysuzuki@apple.com>

        Make `JSGlobalObject*` threading change more stabilized by adding tests and assertions
        https://bugs.webkit.org/show_bug.cgi?id=203274

        Reviewed by Saam Barati.

        * wtf/Platform.h:

2019-10-22  Antti Koivisto  <antti@apple.com>

        operator==(Vector, Vector) should work with different inline capacities
        https://bugs.webkit.org/show_bug.cgi?id=203245

        Reviewed by Alex Christensen.

        Also allow different overflow behavior and minimum capacity.

        * wtf/Vector.h:
        (WTF::operator==):
        (WTF::operator!=):

2019-10-22  Rob Buis  <rbuis@igalia.com>

        https://bugs.webkit.org/show_bug.cgi?id=169667
        URL: protocol setter needs to be more restrictive around file

        Reviewed by Alex Christensen.

        Restrict setting protocol to "file" as indictaed in the spec [1].

        Test: imported/w3c/web-platform-tests/url/url-setters.html

        [1] https://url.spec.whatwg.org/#scheme-state steps 2.1.3 and 2.1.4.

        * wtf/URL.cpp:
        (WTF::URL::setProtocol):

2019-10-21  Tim Horton  <timothy_horton@apple.com>

        macCatalyst: Swipe navigation gestures do not work
        https://bugs.webkit.org/show_bug.cgi?id=203205
        <rdar://problem/54617473>

        Reviewed by Wenson Hsieh.

        * wtf/Platform.h:
        Add a new HAVE.

2019-10-20  Mark Lam  <mark.lam@apple.com>

        Remove all uses of untagCodePtr in debugging code.
        https://bugs.webkit.org/show_bug.cgi?id=203188
        <rdar://problem/56453043> 

        Reviewed by Yusuke Suzuki.

        We want the ability to always assert on failure to authenticate in untagCodePtr
        (though we don't currently do that yet).

        * wtf/PtrTag.cpp:
        (WTF::tagForPtr):
        * wtf/PtrTag.h:
        (WTF::retagCodePtrImpl):
        (WTF::tagCFunctionPtrImpl):
        (WTF::untagCFunctionPtrImpl):
        (WTF::assertIsCFunctionPtr):
        (WTF::isTaggedWith):

2019-10-19  Simon Fraser  <simon.fraser@apple.com>

        Add support to TextStream for dumping HashMap<> and HashSet<>
        https://bugs.webkit.org/show_bug.cgi?id=202969

        Reviewed by Dean Jackson.
        
        Make it possible to output HashMap<> and HashSet<> to TextStream,
        so long as key and value types are streamable. Also implement operator<<(char)
        so that chars show as ASCII, rather than numbers.

        * wtf/text/TextStream.cpp:
        (WTF::TextStream::operator<<):
        * wtf/text/TextStream.h:
        (WTF::operator<<):

2019-10-18  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Make ConcurrentJSLock Lock even if ENABLE_CONCURRENT_JS=OFF
        https://bugs.webkit.org/show_bug.cgi?id=202892

        Reviewed by Mark Lam.

        BaselineJIT also has concurrent compiler. ENABLE(CONCURRENT_JS) should not rely on ENABLE(DFG_JIT).
        It should rely on ENABLE(JIT) instead.

        * wtf/Platform.h:

2019-10-17  Mark Lam  <mark.lam@apple.com>

        Use constexpr in more places and remove some unnecessary external linkage.
        https://bugs.webkit.org/show_bug.cgi?id=203115

        Reviewed by Yusuke Suzuki.

        Also removed unused lockSpinLimit in Threading.h.

        * wtf/MD5.h:
        * wtf/SHA1.h:
        * wtf/StackBounds.h:
        * wtf/Threading.h:

2019-10-17  Sihui Liu  <sihui_liu@apple.com>

        Using version 1 CFRunloopSource for faster task dispatch
        https://bugs.webkit.org/show_bug.cgi?id=202874

        Reviewed by Geoffrey Garen.

        We used CFRunLoopWakeUp to wake up runloop to process source, which seems to be slow according to profiling. To 
        avoid calling CFRunLoopWakeUp, we should use version 1 CFRunloopSource instead of version 0. This patch brings
        about 15% speedup for test PerformanceTests/IndexedDB/basic/objectstore-get.html.

        * wtf/RunLoop.cpp:
        (WTF::RunLoop::initializeWebRunLoop):
        (WTF::RunLoop::web):
        * wtf/RunLoop.h:
        * wtf/cf/RunLoopCF.cpp:
        (WTF::RunLoop::performWork):
        (WTF::RunLoop::RunLoop):
        (WTF::RunLoop::~RunLoop):
        (WTF::RunLoop::wakeUp):
        * wtf/cocoa/MainThreadCocoa.mm:
        (WTF::initializeMainThreadPlatform):
        (WTF::scheduleDispatchFunctionsOnMainThread):
        (WTF::initializeWebThread):
        (-[JSWTFMainThreadCaller call]): Deleted.

2019-10-16  Wenson Hsieh  <wenson_hsieh@apple.com>

        Unreviewed, fix the internal macOS 10.13 and 10.14 builds after r251171

        * wtf/Platform.h: Add a HAVE() macro for AXClientType, which is only available on macOS 10.15+ SDKs.

2019-10-15  Chris Dumez  <cdumez@apple.com>

        [macOS] Simplify main thread initialization
        https://bugs.webkit.org/show_bug.cgi?id=203001

        Reviewed by Geoff Garen.

        Simplify main thread initialization on macOS by always using pthread main as main thread.
        The complexity is now isolated to the USE(WEB_THREAD) code path.

        This patch also adds a debug assertion in WTF::initializeWebThreadPlatform() to make sure
        it gets called on the actual main thread. In release, it will log a fault message indicating
        it was called on the wrong thread.

        * wtf/MainThread.cpp:
        * wtf/MainThread.h:
        * wtf/RefCounted.h:
        (WTF::RefCountedBase::RefCountedBase):
        (WTF::RefCountedBase::applyRefDerefThreadingCheck const):
        * wtf/cocoa/MainThreadCocoa.mm:
        (WTF::initializeMainThreadPlatform):
        (WTF::scheduleDispatchFunctionsOnMainThread):
        (WTF::initializeWebThreadPlatform):
        (WTF::canAccessThreadLocalDataForThread):
        (WTF::isMainThread):
        * wtf/generic/MainThreadGeneric.cpp:
        * wtf/text/cf/StringImplCF.cpp:
        (WTF::StringImpl::createCFString):
        * wtf/win/MainThreadWin.cpp:

2019-10-14  Tim Horton  <timothy_horton@apple.com>

        Unify sources for bindings more densely
        https://bugs.webkit.org/show_bug.cgi?id=202918

        Reviewed by Simon Fraser.

        * Scripts/generate-unified-source-bundles.rb:
        Add an option to separate and more densely unify sources that match
        a given glob pattern.

2019-10-14  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=202820
        <rdar://problem/56164838>

        Reviewed by Anders Carlsson.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Devin Rousso was involved. These changes are isolated
        from other similar changes in order to facilitate the reviewing
        process.

        * wtf/Platform.h:

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

        REGRESSION: [iOS 13?] TestWebKitAPI.SharedBufferTest.tryCreateArrayBufferLargeSegments is failing
        https://bugs.webkit.org/show_bug.cgi?id=201902

        Reviewed by Ryosuke Niwa.

        * wtf/Vector.h:
        The code introduced in r108153 to workaround a warning when building Chrome was causing us to use uninitialized memory
        when we create a Vector with the size_t/{signed,unsigned}char constructor with a constexpr size_t.
        This was the cause of bug 201902 and bug 201620 which only manifested themselves in release builds with some compilers.

2019-10-14  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Sandbox extensions should be created with audit tokens, not PIDs
        https://bugs.webkit.org/show_bug.cgi?id=201828

        Reviewed by Brent Fulgham.

        Remove HAVE macro for issuing sandbox extension by PID, and fix version checks for the HAVE
        macros related to issuing sandbox extensions by audit token. Remove SPI for creating
        extensions by PID, and add SPI for creating mach extension by audit token. Also remove an
        unneeded flag.
        
        * wtf/Platform.h:
        * wtf/spi/darwin/SandboxSPI.h:

2019-10-08  Ryosuke Niwa  <rniwa@webkit.org>

        Make WebInspector's remote debug EventLoop code into RunLoop
        https://bugs.webkit.org/show_bug.cgi?id=202716

        Reviewed by Joseph Pecoraro.

        This patch merges WebInspector's EventLoop code into RunLoop as a static function.

        * wtf/RunLoop.h:
        (WTF::RunLoop::cycle):
        * wtf/cf/RunLoopCF.cpp:
        (WTF::RunLoop::cycle): Added.
        * wtf/generic/RunLoopGeneric.cpp:
        (WTF::RunLoop::cycle): Added.
        * wtf/glib/RunLoopGLib.cpp:
        (WTF::RunLoop::cycle): Added.
        * wtf/win/RunLoopWin.cpp:
        (WTF::RunLoop::cycle): Added.

2019-10-10  Ryosuke Niwa  <rniwa@webkit.org>

        Make it safe to store a ThreadSafeRefCounted object in Ref & RefPtr safe inside its destructor
        https://bugs.webkit.org/show_bug.cgi?id=201576

        Reviewed by Geoffrey Garen and Mark Lam.

        This patch leaves m_refCount 1 inside the last deref call to ThreadSafeRefCounted
        so that storing an instance of this object in Ref or RefPtr would not trigger a recursive delete.

        Note: this patch does not try to fix a race condition by which another thread tries to ref()
        this object after the "last" call to deref had happened since such a code would ref() this object
        long after it had been removed (UAF), nor some code calling deref() before calling ref() inside
        a destructor since there is no way to defend against unpaired calls to ref() & deref() like that.

        Also added m_deletionHasBegun like RefCounted.

        * wtf/ThreadSafeRefCounted.h:
        (WTF::ThreadSafeRefCountedBase::ref const):
        (WTF::ThreadSafeRefCountedBase::hasOneRef const):
        (WTF::ThreadSafeRefCountedBase::derefBase const):

2019-10-11  Alex Christensen  <achristensen@webkit.org>

        Only use CFNetwork SPI for metrics where needed
        https://bugs.webkit.org/show_bug.cgi?id=202825

        Reviewed by Joseph Pecoraro.

        * wtf/Platform.h:

2019-10-11  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=202819
        <rdar://problem/56164233>

        Reviewed by Anders Carlsson.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Jiewen Tan was involved. These changes are isolated
        from other similar changes in order to facilitate the reviewing
        process.

        * wtf/Platform.h:

2019-10-11  Jonathan Bedard  <jbedard@apple.com>

        Unreviewed, rolling out r250945.

        Broke 18 Debug API tests

        Reverted changeset:

        "Add support for CompactPointerTuple<..., OptionSet<...>>"
        https://bugs.webkit.org/show_bug.cgi?id=201316
        https://trac.webkit.org/changeset/250945

2019-10-11  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        MediaTime pretty printer can print if time is invalid
        https://bugs.webkit.org/show_bug.cgi?id=202735

        Reviewed by Eric Carlson.

        * wtf/MediaTime.cpp:
        (WTF::MediaTime::toString const): Append ", invalid" if isInvalid().
        (WTF::MediaTime::toJSONObject const): Set boolean invalid to true
        when invalid.

2019-10-09  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=202371
        <rdar://problem/55853960>

        Reviewed by Youenn Fablet.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Dean Jackson was involved. These changes are isolated
        from other similar changes in order to facilitate the reviewing
        process.

        * wtf/FeatureDefines.h:
        * wtf/Platform.h:

2019-10-09  Daniel Bates  <dabates@apple.com>

        Add support for CompactPointerTuple<..., OptionSet<...>>
        https://bugs.webkit.org/show_bug.cgi?id=201316

        Reviewed by Yusuke Suzuki.

        Support using an OptionSet<> for the byte value portion of a CompactPointerTuple so that
        you can encode both a pointer and 8-bit bitmask in a type-safe way. Another benefit of
        supporting OptionSet<> is that we have a LLDB pretty-printer for it so this makes it easy
        to see the set flags in such a CompactPointerTuple.

        * wtf/CompactPointerTuple.h:

2019-10-09  Russell Epstein  <repstein@apple.com>

        Unreviewed, rolling out r250930.

        Broke watchOS Builds

        Reverted changeset:

        "Add support for CompactPointerTuple<..., OptionSet<...>>"
        https://bugs.webkit.org/show_bug.cgi?id=201316
        https://trac.webkit.org/changeset/250930

2019-10-09  Daniel Bates  <dabates@apple.com>

        Add support for CompactPointerTuple<..., OptionSet<...>>
        https://bugs.webkit.org/show_bug.cgi?id=201316

        Reviewed by Yusuke Suzuki.

        Support using an OptionSet<> for the byte value portion of a CompactPointerTuple so that
        you can encode both a pointer and 8-bit bitmask in a type-safe way. Another benefit of
        supporting OptionSet<> is that we have a LLDB pretty-printer for it so this makes it easy
        to see the set flags in such a CompactPointerTuple.

        * wtf/CompactPointerTuple.h:

2019-10-08  Robin Morisset  <rmorisset@apple.com>

        dataLogIf should be ALWAYS_INLINE
        https://bugs.webkit.org/show_bug.cgi?id=202703

        Reviewed by Saam Barati.

        We often have the following pattern:
        ```
        static constexpr bool verbose = false;
        ...
        dataLogLnIf(verbose, "Something is happening");
        ```
        To make sure that these are always properly eliminated I'd like to make dataLogIf/dataLogLnIf ALWAYS_INLINE.
        
        We may as well mark the branch as UNLIKELY too, for the cases where the condition comes from Options::verboseSomething() and is only known at runtime.

        * wtf/DataLog.h:
        (WTF::dataLogIf):
        (WTF::dataLogLnIf):

2019-10-07  Alexey Proskuryakov  <ap@apple.com>

        Build failure in WebHTMLView.mm with the public SDK (Xcode 11 and Mojave)
        https://bugs.webkit.org/show_bug.cgi?id=199705

        Patch by Dan Bernstein and Kenneth Russell.
        Reviewed by Alexey Proskuryakov.

        * wtf/Platform.h: Added HAVE_SUBVIEWS_IVAR_DECLARED_BY_SDK.

2019-10-04  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r250762.
        https://bugs.webkit.org/show_bug.cgi?id=202609

        Broke JSC tests by breaking refCount check in
        DropAllLocks::DropAllLocks (Requested by rniwa on #webkit).

        Reverted changeset:

        "Make a ThreadSafeRefCounted object safe to ref & deref inside
        its destructor"
        https://bugs.webkit.org/show_bug.cgi?id=201576
        https://trac.webkit.org/changeset/250762

2019-10-04  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix for macOS Catalina.

        * wtf/spi/darwin/SandboxSPI.h:

2019-10-04  Ryosuke Niwa  <rniwa@webkit.org>

        Make a ThreadSafeRefCounted object safe to ref & deref inside its destructor
        https://bugs.webkit.org/show_bug.cgi?id=201576

        Reviewed by Geoffrey Garen.

        This patch leaves m_refCount 1 inside the last deref call to ThreadSafeRefCounted
        such that ref'ing and deref'ing it again inside its destructor would never try
        to double delete the object.

        Also added m_deletionHasBegun like RefCounted.

        * wtf/ThreadSafeRefCounted.h:
        (WTF::ThreadSafeRefCountedBase::ref const):
        (WTF::ThreadSafeRefCountedBase::hasOneRef const):
        (WTF::ThreadSafeRefCountedBase::derefBase const):

2019-10-04  Heiko Becker  <heirecka@exherbo.org>

        Fix build with icu 65.1
        https://bugs.webkit.org/show_bug.cgi?id=202600

        Reviewed by Konstantin Tokarev.

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):

2019-10-04  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r250583.

        Broke multiple internal API tests

        Reverted changeset:

        "[JSC] Place VM* in TLS"
        https://bugs.webkit.org/show_bug.cgi?id=202391
        https://trac.webkit.org/changeset/250583

2019-10-03  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=202549
        <rdar://problem/55967232>

        Reviewed by Alex Christensen.

        Remove some support for iOS versions less than 13.0. 

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Michael Saboff was involved. These changes are
        isolated from other similar changes in order to facilitate the
        reviewing process.

        * wtf/spi/darwin/ProcessMemoryFootprint.h:

2019-10-03  Per Arne Vollan  <pvollan@apple.com>

        REGRESSION(249649): Unable to open local files in MiniBrowser on macOS
        https://bugs.webkit.org/show_bug.cgi?id=201798

        Reviewed by Brent Fulgham.

        Add HAVE_AUDIT_TOKEN and SANDBOX_ISSUE_READ_EXTENSION_TO_PROCESS_BY_AUDIT_TOKEN defines.

        * wtf/Platform.h:

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

        REGRESSION (r245672): <select> dropdown with text-rendering: optimizeLegibility freezes Safari
        https://bugs.webkit.org/show_bug.cgi?id=202198

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2019-10-02  Mark Lam  <mark.lam@apple.com>

        DoubleToStringConverter::ToExponential() should null terminate its string.
        https://bugs.webkit.org/show_bug.cgi?id=202492
        <rdar://problem/55907708>

        Reviewed by Filip Pizlo.

        * wtf/dtoa/double-conversion.cc:
        - DoubleToStringConverter::DoubleToAscii() always produces a null terminated
          string.  Fixed the padding loop in DoubleToStringConverter::ToExponential()
          that follows it to also keep the null terminator.

        * wtf/dtoa/utils.h:
        (WTF::double_conversion::StringBuilder::AddSubstring):
        - An assertion in here was using strlen() which indicates that it expects a null
          terminator in the incoming string.  However, this requirement is too restrictive.
          The code does not actually depend on the string having a null terminator, only
          that a null terminator does not manifest before the nth character.  Changed
          the assertion to use strnlen() instead to reflect this.

2019-10-02  Zan Dobersek  <zdobersek@igalia.com>

        [Nicosia] Enable async scrolling at build-time for Nicosia-using ports
        https://bugs.webkit.org/show_bug.cgi?id=202397

        Reviewed by Carlos Garcia Campos.

        * wtf/Platform.h:
        Flip ENABLE_KINETIC_SCROLLING to 1 also for PlayStation and WPE ports
        when ASYNC_SCROLLING is enabled.
2019-10-01  Jonathan Bedard  <jbedard@apple.com>

        WebKitTestRunner: Many tests timeout on macOS Catalina
        https://bugs.webkit.org/show_bug.cgi?id=201616
        <rdar://problem/55200897>

        Reviewed by Alexey Proskuryakov.

        * wtf/Platform.h: USE_SOURCE_APPLICATION_AUDIT_DATA should only be enabled on
        builds which allow restricted entitlements.

2019-10-01  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Place VM* in TLS
        https://bugs.webkit.org/show_bug.cgi?id=202391

        Reviewed by Mark Lam.

        Changed FastTLS's key name from WTF_GC_TLC_KEY to WTF_VM_KEY.

        * wtf/FastTLS.h:

2019-10-01  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=202386
        <rdar://problem/55863017>

        Reviewed by Eric Carlson.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Jer Noble was involved. These changes are isolated
        from other similar changes in order to facilitate the reviewing
        process.

        * wtf/Platform.h:


2019-09-30  Alex Christensen  <achristensen@webkit.org>

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

        Rubber-stamped by Tim Horton.

        * wtf/PlatformMac.cmake:

2019-09-30  Mark Lam  <mark.lam@apple.com>

        Add some assertions to convertUTF8ToUTF16().
        https://bugs.webkit.org/show_bug.cgi?id=202356
        <rdar://problem/52846813>

        Reviewed by Filip Pizlo.

        * wtf/unicode/UTF8Conversion.cpp:
        (WTF::Unicode::convertUTF8ToUTF16):

2019-09-30  Guillaume Emont  <guijemont@igalia.com>

        Don't try to use backtrace() on MIPS
        https://bugs.webkit.org/show_bug.cgi?id=202196

        Reviewed by Carlos Garcia Campos.

        backtrace() on mips seems to always return 1 on mips/glibc (I tried
        with buildroot, debian stable and debian testing, with and without
        libunwind), which renders it useless and breaks a RELEASE_ASSERT in
        StackTrace::captureStackTrace().

        * wtf/Platform.h:

2019-09-29  Keith Rollin  <krollin@apple.com>

        Address static analysis warning in ParkingLot.cpp: Access to field 'size' results in a dereference of a null pointer
        https://bugs.webkit.org/show_bug.cgi?id=202154
        <rdar://problem/55672103>

        Reviewed by Brent Fulgham.

        Static analysis reports the following:

            .../OpenSource/Source/WTF/wtf/ParkingLot.cpp:376:30: warning: Access to field 'size' results in a dereference of a null pointer (loaded from variable 'oldHashtable')
                RELEASE_ASSERT(newSize > oldHashtable->size);
                                         ^~~~~~~~~~~~~~~~~~

        This warning arises because earlier code checks to see if oldHashtable
        is NULL, leading the static analyzer to think that it *could* be NULL.
        However, even earlier code actually ensures that oldHashtable will not
        be NULL. Address this by removing the NULL check, and back it up with
        an ASSERT to ensure that it's not NULL.

        * wtf/ParkingLot.cpp:

2019-09-26  Alexey Shvayka  <shvaikalesh@gmail.com>

        toExponential, toFixed, and toPrecision should allow arguments up to 100
        https://bugs.webkit.org/show_bug.cgi?id=199163

        Reviewed by Ross Kirsling.

        Increase size of NumberToStringBuffer: <21 digits> + decimal point + <100 digits> + null char = 123.
        Increase kMaxFixedDigitsAfterPoint to make Number.prototype.toFixed work with arguments up to 100.
        Also update other constants to their correct values.

        * wtf/dtoa.h:
        * wtf/dtoa/double-conversion.cc:
        * wtf/dtoa/double-conversion.h:

2019-09-25  Keith Rollin  <krollin@apple.com>

        Address static analysis warning in UTextProviderLatin1.cpp: Array access results in a null pointer dereference
        https://bugs.webkit.org/show_bug.cgi?id=202155
        <rdar://problem/55672422>

        Reviewed by Geoffrey Garen.

        Xcode's static analysis reports:

            .../OpenSource/Source/WTF/wtf/text/icu/UTextProviderLatin1.cpp:185:22: warning: Array access (from variable 'dest') results in a null pointer dereference
                    dest[length] = 0;
                    ~~~~         ^

        This error is due to an earlier "if" statement that caused the static
        analyzer to infer that "dest" could be NULL. It turns out that that
        previous check was in error, in that it tested for "!dest" when it
        should have tested for "dest". So this patch fixes that.

        Even with that error fixed, the static analyzer will still infer that
        "dest" could be NULL at the point shown above. Therefore, add a "dest"
        test just before the assignment.

        * wtf/text/icu/UTextProviderLatin1.cpp:
        (WTF::uTextLatin1Extract):

2019-09-25  Wenson Hsieh  <wenson_hsieh@apple.com>

        [iPadOS] [DataActivation] Focus moves away after focusing input fields on www.att.com
        https://bugs.webkit.org/show_bug.cgi?id=202167
        <rdar://problem/55185021>

        Reviewed by Tim Horton.

        Declare DYLD_IOS_VERSION_13_2.

        * wtf/spi/darwin/dyldSPI.h:

2019-09-24  Keith Rollin  <krollin@apple.com>

        Coalesce or remove PLATFORM(MAC) || PLATFORM(IOS_FAMILY)
        https://bugs.webkit.org/show_bug.cgi?id=202119
        <rdar://problem/55638792>

        Reviewed by Alex Christensen.

        After refactoring and other code evolution, some platform checks have
        ended up looking like PLATFORM(MAC) || PLATFORM(IOS_FAMILY) (or
        vice-versa). These can be converted into the equivalent
        PLATFORM(COCOA). Where the instance occurs in a Cocoa-only file, the
        check can be removed altogether (along with any "#else" branches).

        * wtf/Platform.h:
        * wtf/text/TextBreakIterator.h:

2019-09-21  David Kilzer  <ddkilzer@apple.com>

        clang-tidy: Fix unnecessary copy/ref churn of for loop variables in WTF/JavaScriptCore
        <https://webkit.org/b/202069>

        Reviewed by Mark Lam.

        Fix unwanted copying/ref churn of loop variables by making them
        const references.

        * wtf/AggregateLogger.h:
        (WTF::AggregateLogger::log const):

2019-09-20  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=201967
        <rdar://problem/55504738>

        Reviewed by Andy Estes.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        After version checks have been removed, there are some cases where the
        preprocessor conditional looks like "#if PLATFORM(MAC) ||
        PLATFORM(IOS_FAMILY)". These can be collapsed into "#if
        PLATFORM(COCOA)". This additional cleanup will be performed in a
        subsequent patch.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Andy Estes was involved. These changes are isolated
        from other similar changes in order to facilitate the reviewing
        process.

        * wtf/FeatureDefines.h:

2019-09-20  Keith Rollin  <krollin@apple.com>

        Remove some support for < iOS 13
        https://bugs.webkit.org/show_bug.cgi?id=201973
        <rdar://problem/55506966>

        Reviewed by Alex Christensen.

        Remove some support for iOS versions less than 13.0.

        Update conditionals that reference __IPHONE_OS_VERSION_MIN_REQUIRED
        and __IPHONE_OS_VERSION_MAX_ALLOWED, assuming that they both have
        values >= 130000. This means that expressions like
        "__IPHONE_OS_VERSION_MIN_REQUIRED < 101300" are always False and
        "__IPHONE_OS_VERSION_MIN_REQUIRED >= 101300" are always True.

        This removal is part of a series of patches effecting the removal of
        dead code for old versions of iOS. This particular pass involves
        changes in which Chris Dumez was involved. These changes are isolated
        from other similar changes in order to facilitate the reviewing
        process.

        * wtf/FeatureDefines.h:

2019-09-20  Paulo Matos  <pmatos@igalia.com>

        Implement memory monitoring functions for Linux OS
        https://bugs.webkit.org/show_bug.cgi?id=200391

        Reviewed by Žan Doberšek.

        * wtf/PlatformGTK.cmake:
        * wtf/PlatformJSCOnly.cmake:
        * wtf/PlatformWPE.cmake:
        * wtf/linux/ProcessMemoryFootprint.h: Added.
        (ProcessMemoryFootprint::now):
        (ProcessMemoryFootprint::resetPeak):

2019-09-20  Libor Bukata  <libor.bukata@oracle.com>

        UI process crash when using callOnMainThread() after the main thread dispatcher has been destroyed
        https://bugs.webkit.org/show_bug.cgi?id=197266

        Reviewed by Carlos Garcia Campos.

        * wtf/generic/MainThreadGeneric.cpp:
        (WTF::scheduleDispatchFunctionsOnMainThread):

2019-09-17  Mark Lam  <mark.lam@apple.com>

        Use constexpr instead of const in symbol definitions that are obviously constexpr.
        https://bugs.webkit.org/show_bug.cgi?id=201879

        Rubber-stamped by Joseph Pecoraro.

        * wtf/Assertions.cpp:
        * wtf/AutomaticThread.cpp:
        * wtf/BitVector.h:
        * wtf/Bitmap.h:
        * wtf/BloomFilter.h:
        * wtf/Brigand.h:
        * wtf/CheckedArithmetic.h:
        * wtf/CrossThreadCopier.h:
        * wtf/CurrentTime.cpp:
        * wtf/DataLog.cpp:
        * wtf/DateMath.cpp:
        (WTF::daysFrom1970ToYear):
        * wtf/DeferrableRefCounted.h:
        * wtf/GetPtr.h:
        * wtf/HashFunctions.h:
        * wtf/HashMap.h:
        * wtf/HashTable.h:
        * wtf/HashTraits.h:
        * wtf/JSONValues.cpp:
        * wtf/JSONValues.h:
        * wtf/ListHashSet.h:
        * wtf/Lock.h:
        * wtf/LockAlgorithm.h:
        * wtf/LockAlgorithmInlines.h:
        (WTF::Hooks>::lockSlow):
        * wtf/Logger.h:
        * wtf/LoggerHelper.h:
        (WTF::LoggerHelper::childLogIdentifier const):
        * wtf/MainThread.cpp:
        * wtf/MetaAllocatorPtr.h:
        * wtf/MonotonicTime.h:
        * wtf/NaturalLoops.h:
        (WTF::NaturalLoops::NaturalLoops):
        * wtf/ObjectIdentifier.h:
        * wtf/RAMSize.cpp:
        * wtf/Ref.h:
        * wtf/RefPtr.h:
        * wtf/RetainPtr.h:
        * wtf/SchedulePair.h:
        * wtf/StackShot.h:
        * wtf/StdLibExtras.h:
        * wtf/TinyPtrSet.h:
        * wtf/URL.cpp:
        * wtf/URLHash.h:
        * wtf/URLParser.cpp:
        (WTF::URLParser::defaultPortForProtocol):
        * wtf/Vector.h:
        * wtf/VectorTraits.h:
        * wtf/WallTime.h:
        * wtf/WeakHashSet.h:
        * wtf/WordLock.h:
        * wtf/cocoa/CPUTimeCocoa.cpp:
        * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
        * wtf/persistence/PersistentDecoder.h:
        * wtf/persistence/PersistentEncoder.h:
        * wtf/text/AtomStringHash.h:
        * wtf/text/CString.h:
        * wtf/text/StringBuilder.cpp:
        (WTF::expandedCapacity):
        * wtf/text/StringHash.h:
        * wtf/text/StringImpl.h:
        * wtf/text/StringToIntegerConversion.h:
        (WTF::toIntegralType):
        * wtf/text/SymbolRegistry.h:
        * wtf/text/TextStream.cpp:
        (WTF::hasFractions):
        * wtf/text/WTFString.h:
        * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:

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

        Remove "gopher" from list of special schemes in URLParser
        https://bugs.webkit.org/show_bug.cgi?id=201852

        Reviewed by Simon Fraser.

        There is little meaningful content on gopher servers, and WebKit does not actually support gopher.
        This makes WebKit match the behavior of Gecko and goes along with a change proposed at
        https://github.com/whatwg/url/issues/342

        * wtf/URLParser.cpp:
        (WTF::URLParser::defaultPortForProtocol):
        (WTF::scheme):
        (WTF::URLParser::copyURLPartsUntil):
        (WTF::URLParser::parse):

2019-09-14  Yusuke Suzuki  <ysuzuki@apple.com>

        Retire x86 32bit JIT support
        https://bugs.webkit.org/show_bug.cgi?id=201790

        Reviewed by Mark Lam.

        * wtf/Platform.h:

2019-09-13  Jonathan Bedard  <jbedard@apple.com>

        iOS 13: Some SPI targets 13.1
        https://bugs.webkit.org/show_bug.cgi?id=201777

        Reviewed by Alexey Proskuryakov.

        * wtf/Platform.h:

2019-09-12  Mark Lam  <mark.lam@apple.com>

        Harden JSC against the abuse of runtime options.
        https://bugs.webkit.org/show_bug.cgi?id=201597
        <rdar://problem/55167068>

        Reviewed by Filip Pizlo.

        Add a source file that was missing so that Xcode can search its contents too.

        * WTF.xcodeproj/project.pbxproj:

2019-09-09  Tim Horton  <timothy_horton@apple.com>

        Clarify some macCatalyst feature flags
        https://bugs.webkit.org/show_bug.cgi?id=201619
        <rdar://problem/54615618>

        Reviewed by Megan Gardner.

        * wtf/Platform.h:
        We prefer specific flags over platform checks.

2019-09-07  David Quesada  <david_quesada@apple.com>

        REGRESSION(r248533): Unable to use WTF::RefCounted when building in a debug configuration against a non-debug WebKit
        https://bugs.webkit.org/show_bug.cgi?id=201585
        rdar://problem/55153369

        Reviewed by Chris Dumez.

        Export WTF::RefCountedBase::areThreadingChecksEnabledGlobally regardless of whether or not assertions
        are enabled for the WTF being built. This allows WebKit-based projects to use RefCounted for their own
        objects in a debug configuration without requiring a debug build of WebKit.

        * wtf/RefCounted.cpp:
        * wtf/RefCounted.h:

2019-09-07  Mark Lam  <mark.lam@apple.com>

        performJITMemcpy() source buffer should not be in the Gigacage.
        https://bugs.webkit.org/show_bug.cgi?id=201577
        <rdar://problem/55142606>

        Reviewed by Michael Saboff.

        * wtf/Gigacage.h:
        (Gigacage::contains):

2019-09-06  Mark Lam  <mark.lam@apple.com>

        Harden protection of the Gigacage Config parameters.
        https://bugs.webkit.org/show_bug.cgi?id=201570
        <rdar://problem/55134229>

        Reviewed by Saam Barati.

        Just renaming some function names here.

        * wtf/Gigacage.h:
        (Gigacage::forbidDisablingPrimitiveGigacage):
        (Gigacage::isDisablingPrimitiveGigacageForbidden):
        (Gigacage::disableDisablingPrimitiveGigacageIfShouldBeEnabled): Deleted.
        (Gigacage::isDisablingPrimitiveGigacageDisabled): Deleted.

2019-09-05  Mark Lam  <mark.lam@apple.com>

        Refactor the Gigacage code to require less pointer casting.
        https://bugs.webkit.org/show_bug.cgi?id=201521

        Reviewed by Saam Barati.

        Remove some unneeded stubs in WTF Gigacage.h.

        * wtf/Gigacage.cpp:
        * wtf/Gigacage.h:
        (Gigacage::name):
        (Gigacage::isEnabled):
        (Gigacage::basePtr): Deleted.
        (Gigacage::basePtrs): Deleted.

2019-08-30  Alex Christensen  <achristensen@webkit.org>

        Remove HAVE_CFNETWORK_WITH_AUTO_ADDED_HTTP_HEADER_SUPPRESSION_SUPPORT conditional
        https://bugs.webkit.org/show_bug.cgi?id=201280

        Reviewed by Youenn Fablet.

        * wtf/Platform.h:

2019-08-30  Alex Christensen  <achristensen@webkit.org>

        Remove HAVE_CFNETWORK_WITH_IGNORE_HSTS conditional
        https://bugs.webkit.org/show_bug.cgi?id=201279

        Reviewed by Darin Adler.

        * wtf/Platform.h:

2019-08-30  Alex Christensen  <achristensen@webkit.org>

        Fix non-iOS iOS-family and catalyst builds after r249019
        https://bugs.webkit.org/show_bug.cgi?id=200945

        * wtf/Platform.h:
        State that they have tls_protocol_version_t

2019-08-30  Simon Fraser  <simon.fraser@apple.com>

        Add system tracing points for compositing updates, and touch-event dispatching
        https://bugs.webkit.org/show_bug.cgi?id=201327

        Reviewed by Alex Christensen.

        * wtf/SystemTracing.h:

2019-08-30  Keith Rollin  <krollin@apple.com>

        Remove AppKitCompatibilityDeclarations.h
        https://bugs.webkit.org/show_bug.cgi?id=201283
        <rdar://problem/54822042>

        Reviewed by Alexey Proskuryakov.

        The two copies of these files -- on in WTF, one in MiniBrowser -- are
        empty and can be removed.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/PlatformMac.cmake:
        * wtf/mac/AppKitCompatibilityDeclarations.h: Removed.

2019-08-29  Keith Rollin  <krollin@apple.com>

        Remove HAVE_PASSKIT_GRANULAR_ERRORS conditional
        https://bugs.webkit.org/show_bug.cgi?id=201278
        <rdar://problem/54821052>

        Reviewed by Alex Christensen.

        HAVE_PASSKIT_GRANULAR_ERRORS is always True, so remove the conditional
        tests, keeping the True branches and removing the False branches.

        * wtf/FeatureDefines.h:

2019-08-29  Keith Rollin  <krollin@apple.com>

        Update .xcconfig symbols to reflect the current set of past and future product versions.
        https://bugs.webkit.org/show_bug.cgi?id=200720
        <rdar://problem/54305032>

        Reviewed by Alex Christensen.

        Remove version symbols related to old OS's we no longer support,
        ensure that version symbols are defined for OS's we do support.

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

2019-08-29  Keith Rollin  <krollin@apple.com>

        Remove 32-bit macOS support
        https://bugs.webkit.org/show_bug.cgi?id=201282
        <rdar://problem/54821667>

        Reviewed by Anders Carlsson.

        WebKit doesn’t support 32-bit Mac any more, so remove checks and code
        for that platform.

        * wtf/Platform.h:

2019-08-29  Chris Dumez  <cdumez@apple.com>

        CompletionHandler default constructor does not initialize `m_wasConstructedOnMainThread`
        https://bugs.webkit.org/show_bug.cgi?id=201249

        Reviewed by Joseph Pecoraro and Alex Christensen.

        * wtf/CompletionHandler.h:
        (WTF::CompletionHandler<Out):

2019-08-29  Chris Dumez  <cdumez@apple.com>

        Crash when mach_port_deallocate() returns KERN_INVALID_NAME
        https://bugs.webkit.org/show_bug.cgi?id=201248
        <rdar://problem/54813890>

        Reviewed by Alex Christensen.

        * wtf/cocoa/MachSendRight.cpp:
        (WTF::deallocateSendRightSafely):

2019-08-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Regression(r248533) Assertion hit in isMainThread() for some clients using WTF because the main thread is not initialized
        https://bugs.webkit.org/show_bug.cgi?id=201083
        <rdar://problem/54651993>

        Unreviewed build fox for Windows.

        * wtf/win/MainThreadWin.cpp:
        (WTF::isMainThreadInitialized): Added.

2019-08-23  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, build fix after r249059

        * wtf/Platform.h:
        Make HAVE_NEAR_FIELD available only on iOS 13+ and macOS Catalina+.

2019-08-23  Chris Dumez  <cdumez@apple.com>

        Regression(r248533) Assertion hit in isMainThread() for some clients using WTF because the main thread is not initialized
        https://bugs.webkit.org/show_bug.cgi?id=201083

        Reviewed by Alex Christensen.

        An assertion is hit in isMainThread() for some clients using WTF because the main thread is not initialized, since r248533.
        Clients can work around this by calling WTF::initializeMainThread() before using WTF but it seems unfortunate to force them
        to do so. I propose we disable the assertion until the main thread is initialized.

        * wtf/MainThread.h:
        * wtf/RefCounted.h:
        (WTF::RefCountedBase::RefCountedBase):
        (WTF::RefCountedBase::applyRefDerefThreadingCheck const):
        * wtf/cocoa/MainThreadCocoa.mm:
        (WTF::isMainThreadInitialized):
        * wtf/generic/MainThreadGeneric.cpp:
        (WTF::isMainThreadInitialized):

2019-08-21  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthn] Support NFC authenticators for iOS
        https://bugs.webkit.org/show_bug.cgi?id=188624
        <rdar://problem/43354214>

        Reviewed by Chris Dumez.

        * wtf/Platform.h:
        Add a feature flag for NearField.

2019-08-22  Andy Estes  <aestes@apple.com>

        [watchOS] Disable Content Filtering in the simulator build
        https://bugs.webkit.org/show_bug.cgi?id=201047

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2019-08-22  Keith Rollin  <krollin@apple.com>

        Remove support for tvOS < 13.0
        https://bugs.webkit.org/show_bug.cgi?id=200963
        <rdar://problem/54541355>

        Reviewed by Tim Horton.

        Update conditionals that reference __TV_OS_VERSION_MIN_REQUIRED and
        __TV_OS_VERSION_MAX_ALLOWED, assuming that they both have values >=
        130000. This means that expressions like "__TV_OS_VERSION_MIN_REQUIRED
        < 130000" are always False and "__TV_OS_VERSION_MIN_REQUIRED >=
        130000" are always True.

        * wtf/FeatureDefines.h:
        * wtf/Platform.h:

2019-08-22  Kate Cheney  <katherine_cheney@apple.com>

        Logging in FileSystem::deleteFile should avoid logging unsurprising errors
        https://bugs.webkit.org/show_bug.cgi?id=200831

        Reviewed by Chris Dumez.

        To avoid overlogging unnecessary information, added a check to avoid logging
        ENOENT (file not found) errors.

        * wtf/posix/FileSystemPOSIX.cpp:
        (WTF::FileSystemImpl::deleteFile):

2019-08-22  Alex Christensen  <achristensen@webkit.org>

        Disable legacy TLS versions and add a temporary default to re-enable it
        https://bugs.webkit.org/show_bug.cgi?id=200945

        Reviewed by Brady Eidson.

        * wtf/Platform.h:

2019-08-22  Darin Adler  <darin@apple.com>

        Rename StringBuilder functions to avoid unclear "append uninitialized" terminology
        https://bugs.webkit.org/show_bug.cgi?id=201020

        Reviewed by Alex Christensen.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::allocateBuffer): Use std::memcpy instead of just memcpy.
        (WTF::StringBuilder::extendBufferForAppending): Renamed.
        (WTF::StringBuilder::extendBufferForAppendingWithoutOverflowCheck): Ditto.
        (WTF::StringBuilder::extendBufferForAppending8): Ditto.
        (WTF::StringBuilder::extendBufferForAppending16): Ditto.
        (WTF::StringBuilder::extendBufferForAppendingSlowPath): Ditto.
        (WTF::StringBuilder::appendCharacters): Updated for new names.
        * wtf/text/StringBuilder.h: Updated for new names.

2019-08-17  Darin Adler  <darin@apple.com>

        Use makeString and multi-argument StringBuilder::append instead of less efficient multiple appends
        https://bugs.webkit.org/show_bug.cgi?id=200862

        Reviewed by Ryosuke Niwa.

        * wtf/DateMath.cpp:
        (WTF::makeRFC2822DateString): Use one append instead of multiple.
        * wtf/JSONValues.cpp:
        (WTF::appendDoubleQuotedString): Ditto.

2019-08-21  Mark Lam  <mark.lam@apple.com>

        Fix infinite recursion in WTFCrashWithInfo() after r248930.
        https://bugs.webkit.org/show_bug.cgi?id=201022

        Reviewed by Saam Barati.

        * wtf/Assertions.cpp:
        (WTFCrashWithInfoImpl):
        (WTFCrashWithInfo): Deleted.
        * wtf/Assertions.h:
        (WTFCrashWithInfo):

2019-08-21  Chris Dumez  <cdumez@apple.com>

        registrableDomainsToRemoveWebsiteDataFor() does not need to return a HashMap
        https://bugs.webkit.org/show_bug.cgi?id=200985

        Reviewed by John Wilander.

        Allow calling crossThreadCopy() on a std::pair<>.

        * wtf/CrossThreadCopier.h:

2019-08-21  Keith Rollin  <krollin@apple.com>

        Remove support for watchOS < 6.0
        https://bugs.webkit.org/show_bug.cgi?id=200937
        <rdar://problem/54524009>

        Reviewed by Darin Adler.

        Update conditionals that reference __WATCH_OS_VERSION_MIN_REQUIRED and
        __WATCH_OS_VERSION_MAX_ALLOWED, assuming that they both have values >=
        60000. This means that expressions like
        "__WATCH_OS_VERSION_MIN_REQUIRED < 60000" are always False and
        "__WATCH_OS_VERSION_MIN_REQUIRED >= 60000" are always True.

        * wtf/FeatureDefines.h:
        * wtf/Platform.h:

2019-08-20  Mark Lam  <mark.lam@apple.com>

        Make it easier to pass pointers to WTFCrashWithInfo.
        https://bugs.webkit.org/show_bug.cgi?id=200960

        Reviewed by Saam Barati and Yusuke Suzuki.

        Now, we don't have to explicitly cast them to uint64_ts first.  The template
        wrappers will take care of it for us.

        * wtf/Assertions.h:
        (wtfCrashArg):
        (WTFCrashWithInfo):
        (WTF::isIntegralOrPointerType):
        (WTF::isIntegralType): Deleted.

2019-08-20  Saam Barati  <sbarati@apple.com>

        Unreviewed. Followup to r248903. It's not valid to remove
        hasOverflowed() checks from appendCharacters.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::appendCharacters):

2019-08-20  Darin Adler  <darin@apple.com>

        Variadic StringBuilder::append does not handle upconverting from 8-bit to 16-bit correctly
        https://bugs.webkit.org/show_bug.cgi?id=200921

        Reviewed by Saam Barati.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::appendUninitialized8): Renamed from
        appendUninitializedWithoutOverflowCheckForLChar and moved the length overflow
        check in here to cut down on unnecessary inlining and code size.
        (WTF::StringBuilder::appendUninitialized16): Renamed from
        appendUninitializedWithoutOverflowCheckForUChar, moved the length overflow check
        in here, and moved the necessary upconversion code from the const UChar* overload of
        the appendCharacters function.
        (WTF::StringBuilder::appendCharacters): Removed unneeded "length has already overflowed"
        check at the start of the function since the code in the function already handles that
        case correctly. Refactored the const UChar* overload to use the new appendCharacters16
        function so it can share more code with StringBuilder::appendFromAdapters.

        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::appendFromAdapters): Updated the function names for the
        two appendUninitialized functions, which now do a bit more than before. Removed the
        overflow check since the appendUninitialized8/16 functions now handle that; better to
        not make the inlined code larger to handle a failure case.

2019-08-19  Sam Weinig  <weinig@apple.com>

        [WHLSL] Make generated Metal code should be indented properly to ease reading while debugging
        https://bugs.webkit.org/show_bug.cgi?id=200870

        Reviewed by Saam Barati.

        Adds simple Indentation class to allow programatic indenting compatible with StringTypeAdapter
        aware functions/class (e.g. makeString and StringBuilder). Templatized on the number of spaces
        to indent.
        
        Also adds IndentationScope, which uses RAII to increment/decrement the indentation value.

        * wtf/text/StringConcatenate.h:
        (WTF::Indentation::operator++):
        (WTF::Indentation::operator--):
        (WTF::IndentationScope::IndentationScope):
        (WTF::IndentationScope::~IndentationScope):

2019-08-19  Per Arne Vollan  <pvollan@apple.com>

        Unreviewed build fix for macOS 10.14 after r248832.

        * wtf/Platform.h:

2019-08-19  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Add makeUnique<T>, which ensures T is fast-allocated, actual static_assert part
        https://bugs.webkit.org/show_bug.cgi?id=200620

        Reviewed by Geoff Garen.

        This is the last part of the split patch from https://bugs.webkit.org/show_bug.cgi?id=200620.
        Expose T::webkitFastMalloced type to perform static_assert in makeUnique.
        makeUnique and makeUniqueRef start performing static_assert check to ensure that the type T is FastMalloced / IsoHeaped.

        * wtf/FastMalloc.h:
        * wtf/StdLibExtras.h:
        (WTF::makeUnique):
        * wtf/UniqueRef.h:
        (WTF::makeUniqueRef):

2019-08-18  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Add makeUnique<T>, which ensures T is fast-allocated, makeUnique / makeUniqueWithoutFastMallocCheck part
        https://bugs.webkit.org/show_bug.cgi?id=200620

        Reviewed by Geoff Garen.

        This patch is second part of bug 200620 patch. I split I split it into three pieces to make roll-out easy.
        his part, we convert std::make_unique to WTF::makeUnique or WTF::makeUniqueWithoutFastMallocCheck.
        In the third patch, we will add a static_assert to makeUnique, which ensures the given class T is FastMalloced or IsoHeaped.

        This patch adds `WTF::makeUnique<T>` and `WTF::makeUniqueWithoutFastMallocCheck<T>` as drop-in replacement for `std::make_unique<T>`.
        `WTF::makeUnique<T>` has one additional `static_assert` check which ensures `T` FastMalloc / IsoHeap annotated. If it is not, the
        compile error happens.

        In this patch, I tried using this everywhere in WebKit as much as possible. And we found that surprisingly many classes are missing
        FastMalloc annotation and allocated from system-malloc. Using WTF::makeUnique enforces classes / structs to use FastMalloc.

        WTF::makeUniqueWithoutFastMallocCheck is offered for the corner cases. This is identical to std::make_unique. We use this for classes
        that are offered by non-WebKit code base, like, zlib. This clear name can make us easily find this allocation is intentionally done
        by system-malloc.

        We do not take the following direction, `WTF::makeUnique` automatically allocates FastMalloc even if FastMalloc annotation is not attached.
        Since default deleter is performing `delete` and this is not what we want for FastMalloced ones, we need to return
        std::unique_ptr<T, FastFreeDeleter> for T if T does not have FastMalloc-annotation. Automatically doing this sounds a bit dangerous.

            auto pointer = WTF::makeUnique<T>();
            // Super dangerous, but sometimes it is required...
            auto* rawPointer = pointer.release();
            // Passing rawPointer to somewhere, and
            delete rawPointer;

        The above one becomes invalid because pointer may start requiring non `delete` destroying function.
        In the above case, the correct way becomes the following.

            rawPointer->~T();
            fastFree(rawPointer);

        This looks non-intuitive. And having two ways to destroying objects (`delete` or the above one) can be error-prone.
        If we have WTF_MAKE_FAST_ALLOCATED for T, we do not need to care about this. "new" and "delete" operators are defined, and C++ way works.
        The simple invariant, "makeUnique just does `new` internally. And `delete` operator does `delete`. default deleter is just doing `delete`", is kept.

        While we need to annotate many classes with WTF_MAKE_FAST_ALLOCATED, it is one time cost when we add a class.
        And, by introducing `WTF::makeUnique<>`, we no longer forget adding this.

            makeUnique(...)
            static_assert(T is FastMalloced or IsoHeaped);
            return make_unique<T>(...)

        * benchmarks/LockFairnessTest.cpp:
        * benchmarks/LockSpeedTest.cpp:
        * wtf/ConcurrentVector.h:
        * wtf/CrossThreadTaskHandler.cpp:
        (WTF::CrossThreadTaskHandler::taskRunLoop):
        * wtf/FilePrintStream.cpp:
        (WTF::FilePrintStream::open):
        * wtf/Function.h:
        (WTF::Function<Out):
        * wtf/HashTable.h:
        (WTF::KeyTraits>::HashTable):
        * wtf/MemoryPressureHandler.cpp:
        (WTF::MemoryPressureHandler::setShouldUsePeriodicMemoryMonitor):
        * wtf/StdLibExtras.h:
        (WTF::makeUnique):
        (WTF::makeUniqueWithoutFastMallocCheck):
        * wtf/StreamBuffer.h:
        (WTF::StreamBuffer::append):
        * wtf/UniqueRef.h:
        (WTF::makeUniqueRefWithoutFastMallocCheck):
        (WTF::makeUniqueRef):
        * wtf/glib/RunLoopGLib.cpp:
        (WTF::RunLoop::dispatchAfter):
        * wtf/text/StringView.cpp:
        (WTF::StringView::GraphemeClusters::Iterator::Iterator):

2019-08-18  Per Arne Vollan  <pvollan@apple.com>

        [Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions
        https://bugs.webkit.org/show_bug.cgi?id=200543
        <rdar://problem/49394015>

        Reviewed by Brent Fulgham.

        Add new SPI.
        
        * wtf/Platform.h:
        * wtf/spi/darwin/SandboxSPI.h:

2019-08-17  Darin Adler  <darin@apple.com>

        Tidy up checks to see if a character is in the Latin-1 range by using isLatin1 consistently
        https://bugs.webkit.org/show_bug.cgi?id=200861

        Reviewed by Ross Kirsling.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::appendCharacters): Use isLatin1 and also call append rather than
        calling appendCharacters, since it's the same thing, inlined, and removes the need for
        a local variable. Also tweaked the idiom of the code using memcpy.
        (WTF::StringBuilder::canShrink const): Reworded a comment.

        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::append): Use isLatin1.

        * wtf/text/StringCommon.h:
        (WTF::isLatin1): Moved this function template here so it can be used here.
        (WTF::find): Use isLatin1.

        * wtf/text/StringImpl.h:
        (WTF::isLatin1): Deleted. Moved to StringCommon.h.
        (WTF::reverseFind): Use isLatin1.
        (WTF::isSpaceOrNewline): Ditto.

2019-08-17  Eric Liang  <ericliang@apple.com>

        Added HAVE_ACCESSIBILITY_BUNDLES_PATH
        https://bugs.webkit.org/show_bug.cgi?id=200367

        Reviewed by Darin Adler.

        * wtf/Platform.h:

2019-08-17  Sam Weinig  <weinig@apple.com>

        Rename StringBuilder::flexibleAppend(...) to StringBuilder::append(...)
        https://bugs.webkit.org/show_bug.cgi?id=200756

        Reviewed by Darin Adler.

        Now that there are no remaining multi-parameter or behavior changing overloads
        of StringBuilder::append(...), we can rename StringBuilder::flexibleAppend(...)
        to StringBuilder::append(...).
        
        This change leaves the existing single parameter overloads StringBuilder::append(...)
        for now, and since they have specify specific types, they will continue to be prefered
        in overload resolution. Once we have concluded the variadic StringBuilder::append(...)
        can provide the same performance as the single parameter variant, we can remove the
        single parameter variant.

        * wtf/posix/FileSystemPOSIX.cpp:
        (WTF::FileSystemImpl::pathByAppendingComponents):
        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::appendFromAdapters):
        (WTF::StringBuilder::append):
        (WTF::StringBuilder::flexibleAppendFromAdapters): Deleted.
        (WTF::StringBuilder::flexibleAppend): Deleted.
        Update for rename from StringBuilder::flexibleAppend(...) to StringBuilder::append(...).

2019-08-15  Ryosuke Niwa  <rniwa@webkit.org>

        Don't use union to store NodeRareData* and RenderObject*
        https://bugs.webkit.org/show_bug.cgi?id=200744

        Reviewed by Antti Koivisto.

        Moved the static assert which requires the type of the object to which the pointer type points
        into setPointer so that we can use CompactPointerTuple<T*, U> as a member variable
        with just a forward declaration of T.

        * wtf/CompactPointerTuple.h:
        (WTF::CompactPointerTuple::setPointer):

2019-08-15  Zalan Bujtas  <zalan@apple.com>

        [ContentChangeObserver] Keep track of all the visibility candidates.
        https://bugs.webkit.org/show_bug.cgi?id=200777
        <rdar://problem/54356331>

        Reviewed by Simon Fraser.

        * wtf/WeakHashSet.h:

2019-08-15  Brent Fulgham  <bfulgham@apple.com>

        [FTW] Enable CoreFoundation use if building for Apple target
        https://bugs.webkit.org/show_bug.cgi?id=200799

        Reviewed by Alex Christensen.

        * wtf/PlatformFTW.cmake: Add missing files.

2019-08-15  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r248440.
        https://bugs.webkit.org/show_bug.cgi?id=200772

        Introduced regressions related to loading of local files.
        (Requested by perarne on #webkit).

        Reverted changeset:

        "[Mac] Use the PID of the WebContent process when issuing
        local file read sandbox extensions"
        https://bugs.webkit.org/show_bug.cgi?id=200543
        https://trac.webkit.org/changeset/248440

2019-08-14  Kate Cheney  <katherine_cheney@apple.com>

        FileSystem::deleteFile should log error status (178347)
        https://bugs.webkit.org/show_bug.cgi?id=178347

        Reviewed by Brent Fulgham.

        I added logging to the FileSystem::deleteFile function so that the debugger will
        be able to see the associated errno string and better understand the reason for an
        unlink failure or will know if the fileSystemRepresentation call was not
        successful (or returned null).

        * wtf/posix/FileSystemPOSIX.cpp:
        (WTF::FileSystemImpl::deleteFile):

2019-08-14  Keith Rollin  <krollin@apple.com>

        Remove support for macOS < 10.13
        https://bugs.webkit.org/show_bug.cgi?id=200694
        <rdar://problem/54278851>

        Reviewed by Youenn Fablet.

        Update conditionals that reference __MAC_OS_X_VERSION_MIN_REQUIRED and
        __MAC_OS_X_VERSION_MAX_ALLOWED, assuming that they both have values >=
        101300. This means that expressions like
        "__MAC_OS_X_VERSION_MIN_REQUIRED < 101300" are always False and
        "__MAC_OS_X_VERSION_MIN_REQUIRED >= 101300" are always True.

        * wtf/FeatureDefines.h:
        * wtf/Platform.h:
        * wtf/mac/AppKitCompatibilityDeclarations.h:
        * wtf/spi/darwin/SandboxSPI.h:

2019-08-14  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Less contended MetaAllocator
        https://bugs.webkit.org/show_bug.cgi?id=200278

        Reviewed by Mark Lam.

        * wtf/MetaAllocator.cpp:
        (WTF::MetaAllocator::incrementPageOccupancy):
        (WTF::MetaAllocator::decrementPageOccupancy):
        * wtf/MetaAllocator.h:

2019-08-14  Samuel Groß  <saelo@google.com>

        [JSCOnly] JSCOnly port doesn't build on macOS
        https://bugs.webkit.org/show_bug.cgi?id=200667

        spi/darwin/ProcessMemoryFootprint.h is required by jsc.cpp so we add it to the WTF_PUBLIC_HEADERS.

        Reviewed by Alex Christensen.

        * wtf/PlatformJSCOnly.cmake:
        * wtf/PlatformMac.cmake:

2019-08-13  Sam Weinig  <weinig@apple.com>

        Rename StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32) to avoid accidental change in behavior when replacing append with flexibleAppend
        https://bugs.webkit.org/show_bug.cgi?id=200675

        Reviewed by Darin Adler.

        When we switch StringBuilder::append(...) to be based on the StringConcatenate/makeString flexibleAppend 
        implementation, if we don't change anything, the behavior of StringBuilder::append(UChar32) will go from 
        appending a character to appending a stringified number.

        To work around this, we can rename StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32) 
        and update all the call sites.

        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::appendCharacter):
        Renamed StringBuilder::append(UChar32) to StringBuilder::appendCharacter(UChar32).

        * wtf/FileSystem.cpp:
        (WTF::FileSystemImpl::decodeFromFilename):
        Update for new name.

2019-08-13  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, build fix for Windows
        https://bugs.webkit.org/show_bug.cgi?id=200611

        * wtf/win/GDIObject.h:

2019-08-12  Takashi Komori  <Takashi.Komori@sony.com>

        [WTF] Thread::removeFromThreadGroup leaks weak pointers.
        https://bugs.webkit.org/show_bug.cgi?id=199857

        Reviewed by Yusuke Suzuki.

        Fix leaking of ThreadGroup's weak pointers.

        Tests: WTF.ThreadGroupRemove API tests

        * wtf/Threading.cpp:
        (WTF::Thread::didExit):
        (WTF::Thread::addToThreadGroup):
        (WTF::Thread::removeFromThreadGroup):
        (WTF::Thread::numberOfThreadGroups):
        * wtf/Threading.h:

2019-08-12  Sam Weinig  <weinig@apple.com>

        Replace multiparameter overloads of append() in StringBuilder as a first step toward standardizinging on the flexibleAppend() implementation
        https://bugs.webkit.org/show_bug.cgi?id=200614

        Reviewed by Darin Adler.

        Renames StringBuilder::append(const LChar*, unsigned), StringBuilder::append(const UChar*, unsigned) and 
        StringBuilder::append(const char*, unsigned) to StringBuilder::appendCharacters(...).
        
        Renames StringBuilder::append(const String& string, unsigned offset, unsigned length) to 
        StringBuilder::appendSubstring(...).

        * wtf/HexNumber.h:
        (WTF::appendUnsignedAsHexFixedSize):
        Add overload that explicitly takes a StringBuilder to work around rename from append to appendCharacters.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::appendCharacters):
        (WTF::StringBuilder::append):
        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::appendCharacters):
        (WTF::StringBuilder::append):
        (WTF::StringBuilder::appendSubstring):
        (WTF::StringBuilder::appendLiteral):
        (WTF::IntegerToStringConversionTrait<StringBuilder>::flush):
        Update for renames.

2019-08-12  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF][JSC] Make JSC and WTF aggressively-fast-malloced
        https://bugs.webkit.org/show_bug.cgi?id=200611

        Reviewed by Saam Barati.

        WTF has many data structures, in particular, containers. And these containers can be allocated like `std::make_unique<Container>()`.
        Without WTF_MAKE_FAST_ALLOCATED, this container itself is allocated from the system malloc. This patch attaches WTF_MAKE_FAST_ALLOCATED
        more aggressively not to allocate them from the system malloc. And we add some `final` to containers and classes that would be never inherited.

        * wtf/Assertions.cpp:
        * wtf/Atomics.h:
        * wtf/AutodrainedPool.h:
        * wtf/Bag.h:
        (WTF::Bag::Bag): Deleted.
        (WTF::Bag::~Bag): Deleted.
        (WTF::Bag::clear): Deleted.
        (WTF::Bag::add): Deleted.
        (WTF::Bag::iterator::iterator): Deleted.
        (WTF::Bag::iterator::operator! const): Deleted.
        (WTF::Bag::iterator::operator* const): Deleted.
        (WTF::Bag::iterator::operator++): Deleted.
        (WTF::Bag::iterator::operator== const): Deleted.
        (WTF::Bag::iterator::operator!= const): Deleted.
        (WTF::Bag::begin): Deleted.
        (WTF::Bag::begin const): Deleted.
        (WTF::Bag::end const): Deleted.
        (WTF::Bag::isEmpty const): Deleted.
        (WTF::Bag::unwrappedHead const): Deleted.
        * wtf/BitVector.h:
        (WTF::BitVector::BitVector): Deleted.
        (WTF::BitVector::~BitVector): Deleted.
        (WTF::BitVector::operator=): Deleted.
        (WTF::BitVector::size const): Deleted.
        (WTF::BitVector::ensureSize): Deleted.
        (WTF::BitVector::quickGet const): Deleted.
        (WTF::BitVector::quickSet): Deleted.
        (WTF::BitVector::quickClear): Deleted.
        (WTF::BitVector::get const): Deleted.
        (WTF::BitVector::contains const): Deleted.
        (WTF::BitVector::set): Deleted.
        (WTF::BitVector::add): Deleted.
        (WTF::BitVector::ensureSizeAndSet): Deleted.
        (WTF::BitVector::clear): Deleted.
        (WTF::BitVector::remove): Deleted.
        (WTF::BitVector::merge): Deleted.
        (WTF::BitVector::filter): Deleted.
        (WTF::BitVector::exclude): Deleted.
        (WTF::BitVector::bitCount const): Deleted.
        (WTF::BitVector::isEmpty const): Deleted.
        (WTF::BitVector::findBit const): Deleted.
        (WTF::BitVector::isEmptyValue const): Deleted.
        (WTF::BitVector::isDeletedValue const): Deleted.
        (WTF::BitVector::isEmptyOrDeletedValue const): Deleted.
        (WTF::BitVector::operator== const): Deleted.
        (WTF::BitVector::hash const): Deleted.
        (WTF::BitVector::iterator::iterator): Deleted.
        (WTF::BitVector::iterator::operator* const): Deleted.
        (WTF::BitVector::iterator::operator++): Deleted.
        (WTF::BitVector::iterator::isAtEnd const): Deleted.
        (WTF::BitVector::iterator::operator== const): Deleted.
        (WTF::BitVector::iterator::operator!= const): Deleted.
        (WTF::BitVector::begin const): Deleted.
        (WTF::BitVector::end const): Deleted.
        (WTF::BitVector::bitsInPointer): Deleted.
        (WTF::BitVector::maxInlineBits): Deleted.
        (WTF::BitVector::byteCount): Deleted.
        (WTF::BitVector::makeInlineBits): Deleted.
        (WTF::BitVector::cleanseInlineBits): Deleted.
        (WTF::BitVector::bitCount): Deleted.
        (WTF::BitVector::findBitFast const): Deleted.
        (WTF::BitVector::findBitSimple const): Deleted.
        (WTF::BitVector::OutOfLineBits::numBits const): Deleted.
        (WTF::BitVector::OutOfLineBits::numWords const): Deleted.
        (WTF::BitVector::OutOfLineBits::bits): Deleted.
        (WTF::BitVector::OutOfLineBits::bits const): Deleted.
        (WTF::BitVector::OutOfLineBits::OutOfLineBits): Deleted.
        (WTF::BitVector::isInline const): Deleted.
        (WTF::BitVector::outOfLineBits const): Deleted.
        (WTF::BitVector::outOfLineBits): Deleted.
        (WTF::BitVector::bits): Deleted.
        (WTF::BitVector::bits const): Deleted.
        * wtf/Bitmap.h:
        (WTF::Bitmap::size): Deleted.
        (WTF::Bitmap::iterator::iterator): Deleted.
        (WTF::Bitmap::iterator::operator* const): Deleted.
        (WTF::Bitmap::iterator::operator++): Deleted.
        (WTF::Bitmap::iterator::operator== const): Deleted.
        (WTF::Bitmap::iterator::operator!= const): Deleted.
        (WTF::Bitmap::begin const): Deleted.
        (WTF::Bitmap::end const): Deleted.
        * wtf/Box.h:
        * wtf/BumpPointerAllocator.h:
        * wtf/CPUTime.h:
        * wtf/CheckedBoolean.h:
        * wtf/CommaPrinter.h:
        (WTF::CommaPrinter::CommaPrinter): Deleted.
        (WTF::CommaPrinter::dump const): Deleted.
        (WTF::CommaPrinter::didPrint const): Deleted.
        * wtf/CompactPointerTuple.h:
        (WTF::CompactPointerTuple::encodeType): Deleted.
        (WTF::CompactPointerTuple::decodeType): Deleted.
        (WTF::CompactPointerTuple::CompactPointerTuple): Deleted.
        (WTF::CompactPointerTuple::pointer const): Deleted.
        (WTF::CompactPointerTuple::setPointer): Deleted.
        (WTF::CompactPointerTuple::type const): Deleted.
        (WTF::CompactPointerTuple::setType): Deleted.
        * wtf/CompilationThread.h:
        (WTF::CompilationScope::CompilationScope): Deleted.
        (WTF::CompilationScope::~CompilationScope): Deleted.
        (WTF::CompilationScope::leaveEarly): Deleted.
        * wtf/CompletionHandler.h:
        (WTF::CompletionHandler<Out):
        (WTF::Detail::CallableWrapper<CompletionHandler<Out):
        (WTF::CompletionHandlerCallingScope::CompletionHandlerCallingScope): Deleted.
        (WTF::CompletionHandlerCallingScope::~CompletionHandlerCallingScope): Deleted.
        (WTF::CompletionHandlerCallingScope::CompletionHandler<void): Deleted.
        * wtf/ConcurrentBuffer.h:
        (WTF::ConcurrentBuffer::ConcurrentBuffer): Deleted.
        (WTF::ConcurrentBuffer::~ConcurrentBuffer): Deleted.
        (WTF::ConcurrentBuffer::growExact): Deleted.
        (WTF::ConcurrentBuffer::grow): Deleted.
        (WTF::ConcurrentBuffer::array const): Deleted.
        (WTF::ConcurrentBuffer::operator[]): Deleted.
        (WTF::ConcurrentBuffer::operator[] const): Deleted.
        (WTF::ConcurrentBuffer::createArray): Deleted.
        * wtf/ConcurrentPtrHashSet.h:
        (WTF::ConcurrentPtrHashSet::contains): Deleted.
        (WTF::ConcurrentPtrHashSet::add): Deleted.
        (WTF::ConcurrentPtrHashSet::size const): Deleted.
        (WTF::ConcurrentPtrHashSet::Table::maxLoad const): Deleted.
        (WTF::ConcurrentPtrHashSet::hash): Deleted.
        (WTF::ConcurrentPtrHashSet::cast): Deleted.
        (WTF::ConcurrentPtrHashSet::containsImpl const): Deleted.
        (WTF::ConcurrentPtrHashSet::addImpl): Deleted.
        * wtf/ConcurrentVector.h:
        (WTF::ConcurrentVector::~ConcurrentVector): Deleted.
        (WTF::ConcurrentVector::size const): Deleted.
        (WTF::ConcurrentVector::isEmpty const): Deleted.
        (WTF::ConcurrentVector::at): Deleted.
        (WTF::ConcurrentVector::at const): Deleted.
        (WTF::ConcurrentVector::operator[]): Deleted.
        (WTF::ConcurrentVector::operator[] const): Deleted.
        (WTF::ConcurrentVector::first): Deleted.
        (WTF::ConcurrentVector::first const): Deleted.
        (WTF::ConcurrentVector::last): Deleted.
        (WTF::ConcurrentVector::last const): Deleted.
        (WTF::ConcurrentVector::takeLast): Deleted.
        (WTF::ConcurrentVector::append): Deleted.
        (WTF::ConcurrentVector::alloc): Deleted.
        (WTF::ConcurrentVector::removeLast): Deleted.
        (WTF::ConcurrentVector::grow): Deleted.
        (WTF::ConcurrentVector::begin): Deleted.
        (WTF::ConcurrentVector::end): Deleted.
        (WTF::ConcurrentVector::segmentExistsFor): Deleted.
        (WTF::ConcurrentVector::segmentFor): Deleted.
        (WTF::ConcurrentVector::subscriptFor): Deleted.
        (WTF::ConcurrentVector::ensureSegmentsFor): Deleted.
        (WTF::ConcurrentVector::ensureSegment): Deleted.
        (WTF::ConcurrentVector::allocateSegment): Deleted.
        * wtf/Condition.h:
        (WTF::Condition::waitUntil): Deleted.
        (WTF::Condition::waitFor): Deleted.
        (WTF::Condition::wait): Deleted.
        (WTF::Condition::notifyOne): Deleted.
        (WTF::Condition::notifyAll): Deleted.
        * wtf/CountingLock.h:
        (WTF::CountingLock::LockHooks::lockHook): Deleted.
        (WTF::CountingLock::LockHooks::unlockHook): Deleted.
        (WTF::CountingLock::LockHooks::parkHook): Deleted.
        (WTF::CountingLock::LockHooks::handoffHook): Deleted.
        (WTF::CountingLock::tryLock): Deleted.
        (WTF::CountingLock::lock): Deleted.
        (WTF::CountingLock::unlock): Deleted.
        (WTF::CountingLock::isHeld const): Deleted.
        (WTF::CountingLock::isLocked const): Deleted.
        (WTF::CountingLock::Count::operator bool const): Deleted.
        (WTF::CountingLock::Count::operator== const): Deleted.
        (WTF::CountingLock::Count::operator!= const): Deleted.
        (WTF::CountingLock::tryOptimisticRead): Deleted.
        (WTF::CountingLock::validate): Deleted.
        (WTF::CountingLock::doOptimizedRead): Deleted.
        (WTF::CountingLock::tryOptimisticFencelessRead): Deleted.
        (WTF::CountingLock::fencelessValidate): Deleted.
        (WTF::CountingLock::doOptimizedFencelessRead): Deleted.
        (WTF::CountingLock::getCount): Deleted.
        * wtf/CrossThreadQueue.h:
        * wtf/CrossThreadTask.h:
        * wtf/CryptographicallyRandomNumber.cpp:
        * wtf/DataMutex.h:
        * wtf/DateMath.h:
        * wtf/Deque.h:
        (WTF::Deque::size const): Deleted.
        (WTF::Deque::isEmpty const): Deleted.
        (WTF::Deque::begin): Deleted.
        (WTF::Deque::end): Deleted.
        (WTF::Deque::begin const): Deleted.
        (WTF::Deque::end const): Deleted.
        (WTF::Deque::rbegin): Deleted.
        (WTF::Deque::rend): Deleted.
        (WTF::Deque::rbegin const): Deleted.
        (WTF::Deque::rend const): Deleted.
        (WTF::Deque::first): Deleted.
        (WTF::Deque::first const): Deleted.
        (WTF::Deque::last): Deleted.
        (WTF::Deque::last const): Deleted.
        (WTF::Deque::append): Deleted.
        * wtf/Dominators.h:
        * wtf/DoublyLinkedList.h:
        * wtf/Expected.h:
        * wtf/FastBitVector.h:
        * wtf/FileMetadata.h:
        * wtf/FileSystem.h:
        * wtf/GraphNodeWorklist.h:
        * wtf/GregorianDateTime.h:
        (WTF::GregorianDateTime::GregorianDateTime): Deleted.
        (WTF::GregorianDateTime::year const): Deleted.
        (WTF::GregorianDateTime::month const): Deleted.
        (WTF::GregorianDateTime::yearDay const): Deleted.
        (WTF::GregorianDateTime::monthDay const): Deleted.
        (WTF::GregorianDateTime::weekDay const): Deleted.
        (WTF::GregorianDateTime::hour const): Deleted.
        (WTF::GregorianDateTime::minute const): Deleted.
        (WTF::GregorianDateTime::second const): Deleted.
        (WTF::GregorianDateTime::utcOffset const): Deleted.
        (WTF::GregorianDateTime::isDST const): Deleted.
        (WTF::GregorianDateTime::setYear): Deleted.
        (WTF::GregorianDateTime::setMonth): Deleted.
        (WTF::GregorianDateTime::setYearDay): Deleted.
        (WTF::GregorianDateTime::setMonthDay): Deleted.
        (WTF::GregorianDateTime::setWeekDay): Deleted.
        (WTF::GregorianDateTime::setHour): Deleted.
        (WTF::GregorianDateTime::setMinute): Deleted.
        (WTF::GregorianDateTime::setSecond): Deleted.
        (WTF::GregorianDateTime::setUtcOffset): Deleted.
        (WTF::GregorianDateTime::setIsDST): Deleted.
        (WTF::GregorianDateTime::operator tm const): Deleted.
        (WTF::GregorianDateTime::copyFrom): Deleted.
        * wtf/HashTable.h:
        * wtf/Hasher.h:
        * wtf/HexNumber.h:
        * wtf/Indenter.h:
        * wtf/IndexMap.h:
        * wtf/IndexSet.h:
        * wtf/IndexSparseSet.h:
        * wtf/IndexedContainerIterator.h:
        * wtf/Insertion.h:
        * wtf/IteratorAdaptors.h:
        * wtf/IteratorRange.h:
        * wtf/KeyValuePair.h:
        * wtf/ListHashSet.h:
        (WTF::ListHashSet::begin): Deleted.
        (WTF::ListHashSet::end): Deleted.
        (WTF::ListHashSet::begin const): Deleted.
        (WTF::ListHashSet::end const): Deleted.
        (WTF::ListHashSet::random): Deleted.
        (WTF::ListHashSet::random const): Deleted.
        (WTF::ListHashSet::rbegin): Deleted.
        (WTF::ListHashSet::rend): Deleted.
        (WTF::ListHashSet::rbegin const): Deleted.
        (WTF::ListHashSet::rend const): Deleted.
        * wtf/Liveness.h:
        * wtf/LocklessBag.h:
        (WTF::LocklessBag::LocklessBag): Deleted.
        (WTF::LocklessBag::add): Deleted.
        (WTF::LocklessBag::iterate): Deleted.
        (WTF::LocklessBag::consumeAll): Deleted.
        (WTF::LocklessBag::consumeAllWithNode): Deleted.
        (WTF::LocklessBag::~LocklessBag): Deleted.
        * wtf/LoggingHashID.h:
        * wtf/MD5.h:
        * wtf/MachSendRight.h:
        * wtf/MainThreadData.h:
        * wtf/Markable.h:
        * wtf/MediaTime.h:
        * wtf/MemoryPressureHandler.h:
        * wtf/MessageQueue.h:
        (WTF::MessageQueue::MessageQueue): Deleted.
        * wtf/MetaAllocator.h:
        * wtf/MonotonicTime.h:
        (WTF::MonotonicTime::MonotonicTime): Deleted.
        (WTF::MonotonicTime::fromRawSeconds): Deleted.
        (WTF::MonotonicTime::infinity): Deleted.
        (WTF::MonotonicTime::nan): Deleted.
        (WTF::MonotonicTime::secondsSinceEpoch const): Deleted.
        (WTF::MonotonicTime::approximateMonotonicTime const): Deleted.
        (WTF::MonotonicTime::operator bool const): Deleted.
        (WTF::MonotonicTime::operator+ const): Deleted.
        (WTF::MonotonicTime::operator- const): Deleted.
        (WTF::MonotonicTime::operator% const): Deleted.
        (WTF::MonotonicTime::operator+=): Deleted.
        (WTF::MonotonicTime::operator-=): Deleted.
        (WTF::MonotonicTime::operator== const): Deleted.
        (WTF::MonotonicTime::operator!= const): Deleted.
        (WTF::MonotonicTime::operator< const): Deleted.
        (WTF::MonotonicTime::operator> const): Deleted.
        (WTF::MonotonicTime::operator<= const): Deleted.
        (WTF::MonotonicTime::operator>= const): Deleted.
        (WTF::MonotonicTime::isolatedCopy const): Deleted.
        (WTF::MonotonicTime::encode const): Deleted.
        (WTF::MonotonicTime::decode): Deleted.
        * wtf/NaturalLoops.h:
        * wtf/NoLock.h:
        * wtf/OSAllocator.h:
        * wtf/OptionSet.h:
        * wtf/Optional.h:
        * wtf/OrderMaker.h:
        * wtf/Packed.h:
        (WTF::alignof):
        * wtf/PackedIntVector.h:
        (WTF::PackedIntVector::PackedIntVector): Deleted.
        (WTF::PackedIntVector::operator=): Deleted.
        (WTF::PackedIntVector::size const): Deleted.
        (WTF::PackedIntVector::ensureSize): Deleted.
        (WTF::PackedIntVector::resize): Deleted.
        (WTF::PackedIntVector::clearAll): Deleted.
        (WTF::PackedIntVector::get const): Deleted.
        (WTF::PackedIntVector::set): Deleted.
        (WTF::PackedIntVector::mask): Deleted.
        * wtf/PageBlock.h:
        * wtf/ParallelJobsOpenMP.h:
        * wtf/ParkingLot.h:
        * wtf/PriorityQueue.h:
        (WTF::PriorityQueue::size const): Deleted.
        (WTF::PriorityQueue::isEmpty const): Deleted.
        (WTF::PriorityQueue::enqueue): Deleted.
        (WTF::PriorityQueue::peek const): Deleted.
        (WTF::PriorityQueue::dequeue): Deleted.
        (WTF::PriorityQueue::decreaseKey): Deleted.
        (WTF::PriorityQueue::increaseKey): Deleted.
        (WTF::PriorityQueue::begin const): Deleted.
        (WTF::PriorityQueue::end const): Deleted.
        (WTF::PriorityQueue::isValidHeap const): Deleted.
        (WTF::PriorityQueue::parentOf): Deleted.
        (WTF::PriorityQueue::leftChildOf): Deleted.
        (WTF::PriorityQueue::rightChildOf): Deleted.
        (WTF::PriorityQueue::siftUp): Deleted.
        (WTF::PriorityQueue::siftDown): Deleted.
        * wtf/RandomDevice.h:
        * wtf/Range.h:
        * wtf/RangeSet.h:
        (WTF::RangeSet::RangeSet): Deleted.
        (WTF::RangeSet::~RangeSet): Deleted.
        (WTF::RangeSet::add): Deleted.
        (WTF::RangeSet::contains const): Deleted.
        (WTF::RangeSet::overlaps const): Deleted.
        (WTF::RangeSet::clear): Deleted.
        (WTF::RangeSet::dump const): Deleted.
        (WTF::RangeSet::dumpRaw const): Deleted.
        (WTF::RangeSet::begin const): Deleted.
        (WTF::RangeSet::end const): Deleted.
        (WTF::RangeSet::addAll): Deleted.
        (WTF::RangeSet::compact): Deleted.
        (WTF::RangeSet::overlapsNonEmpty): Deleted.
        (WTF::RangeSet::subsumesNonEmpty): Deleted.
        (WTF::RangeSet::findRange const): Deleted.
        * wtf/RecursableLambda.h:
        * wtf/RedBlackTree.h:
        (WTF::RedBlackTree::Node::successor const): Deleted.
        (WTF::RedBlackTree::Node::predecessor const): Deleted.
        (WTF::RedBlackTree::Node::successor): Deleted.
        (WTF::RedBlackTree::Node::predecessor): Deleted.
        (WTF::RedBlackTree::Node::reset): Deleted.
        (WTF::RedBlackTree::Node::parent const): Deleted.
        (WTF::RedBlackTree::Node::setParent): Deleted.
        (WTF::RedBlackTree::Node::left const): Deleted.
        (WTF::RedBlackTree::Node::setLeft): Deleted.
        (WTF::RedBlackTree::Node::right const): Deleted.
        (WTF::RedBlackTree::Node::setRight): Deleted.
        (WTF::RedBlackTree::Node::color const): Deleted.
        (WTF::RedBlackTree::Node::setColor): Deleted.
        (WTF::RedBlackTree::RedBlackTree): Deleted.
        (WTF::RedBlackTree::insert): Deleted.
        (WTF::RedBlackTree::remove): Deleted.
        (WTF::RedBlackTree::findExact const): Deleted.
        (WTF::RedBlackTree::findLeastGreaterThanOrEqual const): Deleted.
        (WTF::RedBlackTree::findGreatestLessThanOrEqual const): Deleted.
        (WTF::RedBlackTree::first const): Deleted.
        (WTF::RedBlackTree::last const): Deleted.
        (WTF::RedBlackTree::size): Deleted.
        (WTF::RedBlackTree::isEmpty): Deleted.
        (WTF::RedBlackTree::treeMinimum): Deleted.
        (WTF::RedBlackTree::treeMaximum): Deleted.
        (WTF::RedBlackTree::treeInsert): Deleted.
        (WTF::RedBlackTree::leftRotate): Deleted.
        (WTF::RedBlackTree::rightRotate): Deleted.
        (WTF::RedBlackTree::removeFixup): Deleted.
        * wtf/ResourceUsage.h:
        * wtf/RunLoop.cpp:
        * wtf/RunLoopTimer.h:
        * wtf/SHA1.h:
        * wtf/Seconds.h:
        (WTF::Seconds::Seconds): Deleted.
        (WTF::Seconds::value const): Deleted.
        (WTF::Seconds::minutes const): Deleted.
        (WTF::Seconds::seconds const): Deleted.
        (WTF::Seconds::milliseconds const): Deleted.
        (WTF::Seconds::microseconds const): Deleted.
        (WTF::Seconds::nanoseconds const): Deleted.
        (WTF::Seconds::minutesAs const): Deleted.
        (WTF::Seconds::secondsAs const): Deleted.
        (WTF::Seconds::millisecondsAs const): Deleted.
        (WTF::Seconds::microsecondsAs const): Deleted.
        (WTF::Seconds::nanosecondsAs const): Deleted.
        (WTF::Seconds::fromMinutes): Deleted.
        (WTF::Seconds::fromHours): Deleted.
        (WTF::Seconds::fromMilliseconds): Deleted.
        (WTF::Seconds::fromMicroseconds): Deleted.
        (WTF::Seconds::fromNanoseconds): Deleted.
        (WTF::Seconds::infinity): Deleted.
        (WTF::Seconds::nan): Deleted.
        (WTF::Seconds::operator bool const): Deleted.
        (WTF::Seconds::operator+ const): Deleted.
        (WTF::Seconds::operator- const): Deleted.
        (WTF::Seconds::operator* const): Deleted.
        (WTF::Seconds::operator/ const): Deleted.
        (WTF::Seconds::operator% const): Deleted.
        (WTF::Seconds::operator+=): Deleted.
        (WTF::Seconds::operator-=): Deleted.
        (WTF::Seconds::operator*=): Deleted.
        (WTF::Seconds::operator/=): Deleted.
        (WTF::Seconds::operator%=): Deleted.
        (WTF::Seconds::operator== const): Deleted.
        (WTF::Seconds::operator!= const): Deleted.
        (WTF::Seconds::operator< const): Deleted.
        (WTF::Seconds::operator> const): Deleted.
        (WTF::Seconds::operator<= const): Deleted.
        (WTF::Seconds::operator>= const): Deleted.
        (WTF::Seconds::isolatedCopy const): Deleted.
        (WTF::Seconds::encode const): Deleted.
        (WTF::Seconds::decode): Deleted.
        * wtf/SegmentedVector.h:
        (WTF::SegmentedVector::~SegmentedVector): Deleted.
        (WTF::SegmentedVector::size const): Deleted.
        (WTF::SegmentedVector::isEmpty const): Deleted.
        (WTF::SegmentedVector::at): Deleted.
        (WTF::SegmentedVector::at const): Deleted.
        (WTF::SegmentedVector::operator[]): Deleted.
        (WTF::SegmentedVector::operator[] const): Deleted.
        (WTF::SegmentedVector::first): Deleted.
        (WTF::SegmentedVector::first const): Deleted.
        (WTF::SegmentedVector::last): Deleted.
        (WTF::SegmentedVector::last const): Deleted.
        (WTF::SegmentedVector::takeLast): Deleted.
        (WTF::SegmentedVector::append): Deleted.
        (WTF::SegmentedVector::alloc): Deleted.
        (WTF::SegmentedVector::removeLast): Deleted.
        (WTF::SegmentedVector::grow): Deleted.
        (WTF::SegmentedVector::clear): Deleted.
        (WTF::SegmentedVector::begin): Deleted.
        (WTF::SegmentedVector::end): Deleted.
        (WTF::SegmentedVector::shrinkToFit): Deleted.
        (WTF::SegmentedVector::deleteAllSegments): Deleted.
        (WTF::SegmentedVector::segmentExistsFor): Deleted.
        (WTF::SegmentedVector::segmentFor): Deleted.
        (WTF::SegmentedVector::subscriptFor): Deleted.
        (WTF::SegmentedVector::ensureSegmentsFor): Deleted.
        (WTF::SegmentedVector::ensureSegment): Deleted.
        (WTF::SegmentedVector::allocateSegment): Deleted.
        * wtf/SetForScope.h:
        * wtf/SingleRootGraph.h:
        * wtf/SinglyLinkedList.h:
        * wtf/SmallPtrSet.h:
        * wtf/SpanningTree.h:
        * wtf/Spectrum.h:
        * wtf/StackBounds.h:
        * wtf/StackShot.h:
        * wtf/StackShotProfiler.h:
        * wtf/StackStats.h:
        * wtf/StackTrace.h:
        * wtf/StreamBuffer.h:
        * wtf/SynchronizedFixedQueue.h:
        (WTF::SynchronizedFixedQueue::create): Deleted.
        (WTF::SynchronizedFixedQueue::open): Deleted.
        (WTF::SynchronizedFixedQueue::close): Deleted.
        (WTF::SynchronizedFixedQueue::isOpen): Deleted.
        (WTF::SynchronizedFixedQueue::enqueue): Deleted.
        (WTF::SynchronizedFixedQueue::dequeue): Deleted.
        (WTF::SynchronizedFixedQueue::SynchronizedFixedQueue): Deleted.
        * wtf/SystemTracing.h:
        * wtf/ThreadGroup.h:
        (WTF::ThreadGroup::create): Deleted.
        (WTF::ThreadGroup::threads const): Deleted.
        (WTF::ThreadGroup::getLock): Deleted.
        (WTF::ThreadGroup::weakFromThis): Deleted.
        * wtf/ThreadSpecific.h:
        * wtf/ThreadingPrimitives.h:
        (WTF::Mutex::impl): Deleted.
        * wtf/TimeWithDynamicClockType.h:
        (WTF::TimeWithDynamicClockType::TimeWithDynamicClockType): Deleted.
        (WTF::TimeWithDynamicClockType::fromRawSeconds): Deleted.
        (WTF::TimeWithDynamicClockType::secondsSinceEpoch const): Deleted.
        (WTF::TimeWithDynamicClockType::clockType const): Deleted.
        (WTF::TimeWithDynamicClockType::withSameClockAndRawSeconds const): Deleted.
        (WTF::TimeWithDynamicClockType::operator bool const): Deleted.
        (WTF::TimeWithDynamicClockType::operator+ const): Deleted.
        (WTF::TimeWithDynamicClockType::operator- const): Deleted.
        (WTF::TimeWithDynamicClockType::operator+=): Deleted.
        (WTF::TimeWithDynamicClockType::operator-=): Deleted.
        (WTF::TimeWithDynamicClockType::operator== const): Deleted.
        (WTF::TimeWithDynamicClockType::operator!= const): Deleted.
        * wtf/TimingScope.h:
        * wtf/TinyLRUCache.h:
        * wtf/TinyPtrSet.h:
        * wtf/URLParser.cpp:
        * wtf/URLParser.h:
        * wtf/Unexpected.h:
        * wtf/Variant.h:
        * wtf/WTFSemaphore.h:
        (WTF::Semaphore::Semaphore): Deleted.
        (WTF::Semaphore::signal): Deleted.
        (WTF::Semaphore::waitUntil): Deleted.
        (WTF::Semaphore::waitFor): Deleted.
        (WTF::Semaphore::wait): Deleted.
        * wtf/WallTime.h:
        (WTF::WallTime::WallTime): Deleted.
        (WTF::WallTime::fromRawSeconds): Deleted.
        (WTF::WallTime::infinity): Deleted.
        (WTF::WallTime::nan): Deleted.
        (WTF::WallTime::secondsSinceEpoch const): Deleted.
        (WTF::WallTime::approximateWallTime const): Deleted.
        (WTF::WallTime::operator bool const): Deleted.
        (WTF::WallTime::operator+ const): Deleted.
        (WTF::WallTime::operator- const): Deleted.
        (WTF::WallTime::operator+=): Deleted.
        (WTF::WallTime::operator-=): Deleted.
        (WTF::WallTime::operator== const): Deleted.
        (WTF::WallTime::operator!= const): Deleted.
        (WTF::WallTime::operator< const): Deleted.
        (WTF::WallTime::operator> const): Deleted.
        (WTF::WallTime::operator<= const): Deleted.
        (WTF::WallTime::operator>= const): Deleted.
        (WTF::WallTime::isolatedCopy const): Deleted.
        * wtf/WeakHashSet.h:
        (WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator): Deleted.
        (WTF::WeakHashSet::WeakHashSetConstIterator::get const): Deleted.
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator* const): Deleted.
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator-> const): Deleted.
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator++): Deleted.
        (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets): Deleted.
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator== const): Deleted.
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator!= const): Deleted.
        (WTF::WeakHashSet::WeakHashSet): Deleted.
        (WTF::WeakHashSet::begin const): Deleted.
        (WTF::WeakHashSet::end const): Deleted.
        (WTF::WeakHashSet::add): Deleted.
        (WTF::WeakHashSet::remove): Deleted.
        (WTF::WeakHashSet::contains const): Deleted.
        (WTF::WeakHashSet::capacity const): Deleted.
        (WTF::WeakHashSet::computesEmpty const): Deleted.
        (WTF::WeakHashSet::hasNullReferences const): Deleted.
        (WTF::WeakHashSet::computeSize const): Deleted.
        (WTF::WeakHashSet::checkConsistency const): Deleted.
        * wtf/WeakRandom.h:
        (WTF::WeakRandom::WeakRandom): Deleted.
        (WTF::WeakRandom::setSeed): Deleted.
        (WTF::WeakRandom::seed const): Deleted.
        (WTF::WeakRandom::get): Deleted.
        (WTF::WeakRandom::getUint32): Deleted.
        (WTF::WeakRandom::lowOffset): Deleted.
        (WTF::WeakRandom::highOffset): Deleted.
        (WTF::WeakRandom::nextState): Deleted.
        (WTF::WeakRandom::generate): Deleted.
        (WTF::WeakRandom::advance): Deleted.
        * wtf/WordLock.h:
        (WTF::WordLock::lock): Deleted.
        (WTF::WordLock::unlock): Deleted.
        (WTF::WordLock::isHeld const): Deleted.
        (WTF::WordLock::isLocked const): Deleted.
        (WTF::WordLock::isFullyReset const): Deleted.
        * wtf/generic/MainThreadGeneric.cpp:
        * wtf/glib/GMutexLocker.h:
        * wtf/linux/CurrentProcessMemoryStatus.h:
        * wtf/posix/ThreadingPOSIX.cpp:
        (WTF::Semaphore::Semaphore): Deleted.
        (WTF::Semaphore::~Semaphore): Deleted.
        (WTF::Semaphore::wait): Deleted.
        (WTF::Semaphore::post): Deleted.
        * wtf/text/ASCIILiteral.h:
        (WTF::ASCIILiteral::operator const char* const): Deleted.
        (WTF::ASCIILiteral::fromLiteralUnsafe): Deleted.
        (WTF::ASCIILiteral::null): Deleted.
        (WTF::ASCIILiteral::characters const): Deleted.
        (WTF::ASCIILiteral::ASCIILiteral): Deleted.
        * wtf/text/AtomString.h:
        (WTF::AtomString::operator=): Deleted.
        (WTF::AtomString::isHashTableDeletedValue const): Deleted.
        (WTF::AtomString::existingHash const): Deleted.
        (WTF::AtomString::operator const String& const): Deleted.
        (WTF::AtomString::string const): Deleted.
        (WTF::AtomString::impl const): Deleted.
        (WTF::AtomString::is8Bit const): Deleted.
        (WTF::AtomString::characters8 const): Deleted.
        (WTF::AtomString::characters16 const): Deleted.
        (WTF::AtomString::length const): Deleted.
        (WTF::AtomString::operator[] const): Deleted.
        (WTF::AtomString::contains const): Deleted.
        (WTF::AtomString::containsIgnoringASCIICase const): Deleted.
        (WTF::AtomString::find const): Deleted.
        (WTF::AtomString::findIgnoringASCIICase const): Deleted.
        (WTF::AtomString::startsWith const): Deleted.
        (WTF::AtomString::startsWithIgnoringASCIICase const): Deleted.
        (WTF::AtomString::endsWith const): Deleted.
        (WTF::AtomString::endsWithIgnoringASCIICase const): Deleted.
        (WTF::AtomString::toInt const): Deleted.
        (WTF::AtomString::toDouble const): Deleted.
        (WTF::AtomString::toFloat const): Deleted.
        (WTF::AtomString::percentage const): Deleted.
        (WTF::AtomString::isNull const): Deleted.
        (WTF::AtomString::isEmpty const): Deleted.
        (WTF::AtomString::operator NSString * const): Deleted.
        * wtf/text/AtomStringImpl.h:
        (WTF::AtomStringImpl::lookUp): Deleted.
        (WTF::AtomStringImpl::add): Deleted.
        (WTF::AtomStringImpl::addWithStringTableProvider): Deleted.
        * wtf/text/CString.h:
        (WTF::CStringBuffer::data): Deleted.
        (WTF::CStringBuffer::length const): Deleted.
        (WTF::CStringBuffer::CStringBuffer): Deleted.
        (WTF::CStringBuffer::mutableData): Deleted.
        (WTF::CString::CString): Deleted.
        (WTF::CString::data const): Deleted.
        (WTF::CString::length const): Deleted.
        (WTF::CString::isNull const): Deleted.
        (WTF::CString::buffer const): Deleted.
        (WTF::CString::isHashTableDeletedValue const): Deleted.
        * wtf/text/ExternalStringImpl.h:
        (WTF::ExternalStringImpl::freeExternalBuffer): Deleted.
        * wtf/text/LineBreakIteratorPoolICU.h:
        * wtf/text/NullTextBreakIterator.h:
        * wtf/text/OrdinalNumber.h:
        * wtf/text/StringBuffer.h:
        * wtf/text/StringBuilder.h:
        * wtf/text/StringConcatenateNumbers.h:
        * wtf/text/StringHasher.h:
        * wtf/text/StringImpl.h:
        * wtf/text/StringView.cpp:
        * wtf/text/StringView.h:
        (WTF::StringView::left const): Deleted.
        (WTF::StringView::right const): Deleted.
        (WTF::StringView::underlyingStringIsValid const): Deleted.
        (WTF::StringView::setUnderlyingString): Deleted.
        * wtf/text/SymbolImpl.h:
        (WTF::SymbolImpl::StaticSymbolImpl::StaticSymbolImpl): Deleted.
        (WTF::SymbolImpl::StaticSymbolImpl::operator SymbolImpl&): Deleted.
        (WTF::PrivateSymbolImpl::PrivateSymbolImpl): Deleted.
        (WTF::RegisteredSymbolImpl::symbolRegistry const): Deleted.
        (WTF::RegisteredSymbolImpl::clearSymbolRegistry): Deleted.
        (WTF::RegisteredSymbolImpl::RegisteredSymbolImpl): Deleted.
        * wtf/text/SymbolRegistry.h:
        * wtf/text/TextBreakIterator.h:
        * wtf/text/TextPosition.h:
        * wtf/text/TextStream.h:
        * wtf/text/WTFString.h:
        (WTF::String::swap): Deleted.
        (WTF::String::adopt): Deleted.
        (WTF::String::isNull const): Deleted.
        (WTF::String::isEmpty const): Deleted.
        (WTF::String::impl const): Deleted.
        (WTF::String::releaseImpl): Deleted.
        (WTF::String::length const): Deleted.
        (WTF::String::characters8 const): Deleted.
        (WTF::String::characters16 const): Deleted.
        (WTF::String::is8Bit const): Deleted.
        (WTF::String::sizeInBytes const): Deleted.
        (WTF::String::operator[] const): Deleted.
        (WTF::String::find const): Deleted.
        (WTF::String::findIgnoringASCIICase const): Deleted.
        (WTF::String::reverseFind const): Deleted.
        (WTF::String::contains const): Deleted.
        (WTF::String::containsIgnoringASCIICase const): Deleted.
        (WTF::String::startsWith const): Deleted.
        (WTF::String::startsWithIgnoringASCIICase const): Deleted.
        (WTF::String::hasInfixStartingAt const): Deleted.
        (WTF::String::endsWith const): Deleted.
        (WTF::String::endsWithIgnoringASCIICase const): Deleted.
        (WTF::String::hasInfixEndingAt const): Deleted.
        (WTF::String::append): Deleted.
        (WTF::String::left const): Deleted.
        (WTF::String::right const): Deleted.
        (WTF::String::createUninitialized): Deleted.
        (WTF::String::fromUTF8WithLatin1Fallback): Deleted.
        (WTF::String::isAllASCII const): Deleted.
        (WTF::String::isAllLatin1 const): Deleted.
        (WTF::String::isSpecialCharacter const): Deleted.
        (WTF::String::isHashTableDeletedValue const): Deleted.
        (WTF::String::hash const): Deleted.
        (WTF::String::existingHash const): Deleted.
        * wtf/text/cf/TextBreakIteratorCF.h:
        * wtf/text/icu/TextBreakIteratorICU.h:
        * wtf/text/icu/UTextProviderLatin1.h:
        * wtf/threads/BinarySemaphore.h:
        (WTF::BinarySemaphore::waitFor): Deleted.
        (WTF::BinarySemaphore::wait): Deleted.
        * wtf/unicode/Collator.h:
        * wtf/win/GDIObject.h:
        * wtf/win/PathWalker.h:
        * wtf/win/Win32Handle.h:

2019-08-12  Chris Dumez  <cdumez@apple.com>

        Unreviewed, fix post landing review comments for r248533 from Darin.

        * wtf/RefCounted.h:
        (WTF::RefCountedBase::ref const):
        (WTF::RefCountedBase::applyRefDerefThreadingCheck const):
        (WTF::RefCountedBase::derefBase const):
        (WTF::RefCountedBase::areThreadingCheckedEnabled const): Deleted.

2019-08-12  Chris Dumez  <cdumez@apple.com>

        Add threading assertions to RefCounted
        https://bugs.webkit.org/show_bug.cgi?id=200507

        Reviewed by Ryosuke Niwa.

        Add threading assertions to RefCounted to try and catch unsafe concurrent ref'ing / derefing of
        RefCounted objects from several threads. If you hit these new assertions, it likely means you either
        need to:
        1. Have your class subclass ThreadSafeRefCounted instead of RefCounted
        or
        2. Make sure your objects always gets ref'd / deref'd from the same thread.

        These assertions already found several thread safety bugs in our code base, which I fixed via
        dependency bugs.

        These assertions are currently enabled in WebKit (UIProcess, child processes and
        WebKitLegacy), they do not apply other JavascriptCore API clients.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/RefCounted.cpp: Added.
        * wtf/RefCounted.h:
        (WTF::RefCountedBase::ref const):
        (WTF::RefCountedBase::disableThreadingChecks):
        (WTF::RefCountedBase::enableThreadingChecksGlobally):
        (WTF::RefCountedBase::RefCountedBase):
        (WTF::RefCountedBase::areThreadingCheckedEnabled const):
        (WTF::RefCountedBase::derefBase const):
        * wtf/SizeLimits.cpp:

2019-08-12  Chris Dumez  <cdumez@apple.com>

        Unreviewed, rolling out r248525.

        Revert new threading assertions while I work on fixing the
        issues they exposed

        Reverted changeset:

        "Add threading assertions to RefCounted"
        https://bugs.webkit.org/show_bug.cgi?id=200507
        https://trac.webkit.org/changeset/248525

2019-08-11  Chris Dumez  <cdumez@apple.com>

        Add threading assertions to RefCounted
        https://bugs.webkit.org/show_bug.cgi?id=200507

        Reviewed by Ryosuke Niwa.

        Add threading assertions to RefCounted to try and catch unsafe concurrent ref'ing / derefing of
        RefCounted objects from several threads. If you hit these new assertions, it likely means you either
        need to:
        1. Have your class subclass ThreadSafeRefCounted instead of RefCounted
        or
        2. Make sure your objects always gets ref'd / deref'd from the same thread.

        These assertions already found several thread safety bugs in our code base, which I fixed via
        dependency bugs.

        These assertions are currently enabled in WebKit (UIProcess, child processes and
        WebKitLegacy), they do not apply other JavascriptCore API clients.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/RefCounted.cpp: Added.
        * wtf/RefCounted.h:
        (WTF::RefCountedBase::ref const):
        (WTF::RefCountedBase::disableThreadingChecks):
        (WTF::RefCountedBase::enableThreadingChecksGlobally):
        (WTF::RefCountedBase::RefCountedBase):
        (WTF::RefCountedBase::areThreadingCheckedEnabled const):
        (WTF::RefCountedBase::derefBase const):
        * wtf/SizeLimits.cpp:

2019-08-09  Saam Barati  <sbarati@apple.com>

        [WHLSL] Devirtualize the AST
        https://bugs.webkit.org/show_bug.cgi?id=200522

        Reviewed by Robin Morisset.

        Make RefCounted use std::default_delete instead of explicitly calling delete.
        This allows uses of RefCounted to define their own custom deleter.

        * wtf/RefCounted.h:
        (WTF::RefCounted::deref const):
        * wtf/UniqueRef.h:
        (WTF::UniqueRef::UniqueRef):

2019-08-08  Chris Dumez  <cdumez@apple.com>

        Fix thread safety issue in AudioSampleDataSource() constructor
        https://bugs.webkit.org/show_bug.cgi?id=200547

        Reviewed by Alex Christensen.

        Make Logger ThreadSafeRefCounted as it is ref'd / deref'd from various
        threads (including the main thread and the WebKitWebRTCAudioModule thread).

        * wtf/Logger.h:

2019-08-08  Michael Saboff  <msaboff@apple.com>

        OpenSource MemoryFootprint API for JSC command line tool
        https://bugs.webkit.org/show_bug.cgi?id=200541

        Reviewed by Saam Barati.

        OpenSource version of WebKitAdditions/MemoryFootprint.h.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/spi/darwin/ProcessMemoryFootprint.h: Added.
        (ProcessMemoryFootprint::now):
        (ProcessMemoryFootprint::resetPeak):

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

        [Mac] Use the PID of the WebContent process when issuing local file read sandbox extensions
        https://bugs.webkit.org/show_bug.cgi?id=200543
        <rdar://problem/49394015>

        Reviewed by Brent Fulgham.

        Add new SPI.

        * wtf/Platform.h:
        * wtf/spi/darwin/SandboxSPI.h:

2019-08-07  Chris Dumez  <cdumez@apple.com>

        Tighten WeakPtr threading assertions for GC threads
        https://bugs.webkit.org/show_bug.cgi?id=200451

        Reviewed by Youenn Fablet.

        Make sure our GC threads do not dereference WeakPtr for main thread
        objects by tightening our threading assertions in WeakPtr. They are
        still allowed to call WeakPtr::get() for now though.

        * wtf/WeakPtr.h:
        (WTF::WeakPtrImpl::get):
        (WTF::WeakPtrImpl::wasConstructedOnMainThread const):
        (WTF::WeakPtr::get const):
        (WTF::WeakPtr::operator-> const):
        (WTF::WeakPtr::operator* const):

2019-08-06  Jiewen Tan  <jiewen_tan@apple.com>

        Unreviewed, a build fix after r248308

        Use kSecUseDataProtectionKeychain for iOS 13 and macOS Catalina or newer.

        * wtf/Platform.h:

2019-08-06  Chris Dumez  <cdumez@apple.com>

        Fix inefficiency in HTTPHeaderMap::set(CFStringRef, const String&)
        https://bugs.webkit.org/show_bug.cgi?id=200475

        Reviewed by Darin Adler.

        Add convenience constuctor to StringView which takes in a const char*
        and an unsigned length, similarly to what we already have for String.

        * wtf/URL.cpp:
        (WTF::URL::protocolIs const):
        (WTF::protocolIsInternal):
        * wtf/text/StringView.h:
        (WTF::StringView::StringView):
        (WTF::StringView::empty):

2019-08-06  Jiewen Tan  <jiewen_tan@apple.com>

        [WebAuthN] Enable LocalAuthenticator for macOS
        https://bugs.webkit.org/show_bug.cgi?id=182772
        <rdar://problem/43347920>

        Reviewed by Brent Fulgham.

        * wtf/Platform.h:
        Adds HAVE_DEVICE_IDENTITY.
        * wtf/spi/cocoa/SecuritySPI.h:
        Adds a SPI for telling macOS keychain to use the modern one.

2019-08-06  Claudio Saavedra  <csaavedra@igalia.com>

        FileSystem: silent build warning

        Unreviewed compilation warning fix.

        Remove unused parameter in empty method
        * wtf/FileSystem.cpp:
        (WTF::FileSystemImpl::createTemporaryZipArchive):

2019-08-05  Youenn Fablet  <youenn@apple.com>

        Make Logger::log thread safe so that it can be used from background threads
        https://bugs.webkit.org/show_bug.cgi?id=200448

        Reviewed by Eric Carlson.

        Add a lock to ensure calling log is thread-safe.

        * wtf/Logger.h:
        (WTF::Logger::addObserver):
        (WTF::Logger::removeObserver):
        (WTF::Logger::log):
        (WTF::Logger::observerLock):

2019-08-05  Takashi Komori  <Takashi.Komori@sony.com>

        [Curl] implement CertificateInfo::summaryInfo
        https://bugs.webkit.org/show_bug.cgi?id=191498

        Reviewed by Alex Christensen.

        Fixed function template for encoding vector.

        * wtf/persistence/PersistentCoders.h:

2019-08-02  Mark Lam  <mark.lam@apple.com>

        [ARM64E] Harden the diversity of the DOMJIT::Signature::unsafeFunction pointer.
        https://bugs.webkit.org/show_bug.cgi?id=200292
        <rdar://problem/53706881>

        Reviewed by Geoffrey Garen.

        * wtf/PtrTag.h:
        - Introducing WTF_VTBL_FUNCPTR_PTRAUTH and WTF_VTBL_FUNCPTR_PTRAUTH_STR macros for
          defining vtbl function pointer style pointer signing modifier.

2019-08-02  Eric Carlson  <eric.carlson@apple.com>

        uniqueLogIdentifier() should generate a 64-bit identifier
        https://bugs.webkit.org/show_bug.cgi?id=200403
        <rdar://problem/53878447>

        Reviewed by Youenn Fablet.

        * wtf/LoggerHelper.h:
        (WTF::LoggerHelper::childLogIdentifier const): Use uint64_t masks.
        (WTF::LoggerHelper::uniqueLogIdentifier): cryptographicallyRandomNumber returns a
        uint32_t so use two to generate a 64-bit identifier.

2019-08-02  Alex Christensen  <achristensen@webkit.org>

        Fix an internal build after r248139
        https://bugs.webkit.org/show_bug.cgi?id=200102

        * wtf/cocoa/FileSystemCocoa.mm:
        Some internal builds couldn't find BOM framework headers.
        No problem.  They're not needed.  Just remove references to them.

2019-08-01  Alex Christensen  <achristensen@webkit.org>

        Move FormData zip file generation to NetworkProcess and enable it for all WebKit clients for uploading directories
        https://bugs.webkit.org/show_bug.cgi?id=200102
        <rdar://problem/53275114>

        Reviewed by Darin Adler.

        Move code from BlobDataFileReference::generateReplacementFile to FileSystem::createZipArchive.

        * wtf/FileSystem.cpp:
        (WTF::FileSystemImpl::createZipArchive):
        * wtf/FileSystem.h:
        * wtf/cocoa/FileSystemCocoa.mm:
        (WTF::FileSystemImpl::createZipArchive):

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

        Initialize memory pressure flag in MemoryPressureHandler
        https://bugs.webkit.org/show_bug.cgi?id=200353

        Reviewed by Geoffrey Garen.

        The flag 'm_underMemoryPressure' in MemoryPressureHandler should be initialized to 'false'.

        * wtf/MemoryPressureHandler.h:

2019-08-01  Chris Dumez  <cdumez@apple.com>

        Add threading assertion to WeakPtr's operator->()
        https://bugs.webkit.org/show_bug.cgi?id=199922

        Reviewed by Ryosuke Niwa.

        Add threading assertion to WeakPtr's operator->() to make sure that the WeakPtr
        always gets dereferenced on the same thread it was constructed on.

        * wtf/WeakPtr.h:
        (WTF::WeakPtrImpl::get):
        (WTF::WeakPtrImpl::WeakPtrImpl):

2019-07-31  Youenn Fablet  <youenn@apple.com>

        Use CTFontCreateForCharactersWithLanguageAndOption if available instead of CTFontCreateForCharactersWithLanguage
        https://bugs.webkit.org/show_bug.cgi?id=200241

        Reviewed by Myles C. Maxfield.

        * wtf/Platform.h: Add macro to enable/disable new SPI.

2019-07-31  Keith Rollin  <krollin@apple.com>

        Fix 64-bit vs 32-bit mismatch in PersistentCoders.h
        https://bugs.webkit.org/show_bug.cgi?id=200288
        <rdar://problem/53734203>

        Reviewed by Chris Dumez.

        hashMapSize is declared as a uint64_t. It is passed to
        HashMapType::reserveInitialCapacity, which takes an unsigned int. This
        is a 32-bit value on 32-bit platforms, leading to a compile time
        error. Fix his by casting hashMapSize to the expected type.

        * wtf/persistence/PersistentCoders.h:

2019-07-31  Keith Rollin  <krollin@apple.com>

        Fix 64-bit vs 32-bit mismatch in LogArgument
        https://bugs.webkit.org/show_bug.cgi?id=200286
        <rdar://problem/53733671>

        Reviewed by Darin Adler.

        LogArgument is a utility for converting scalars into strings. It has a
        number of versions of a toString() method that is specialized for each
        type and converts the value to a string in a manner appropriate for
        that type. However, the versions of toString() for "long long" and
        "unsigned long long" are actually declared to take an "long" or
        "unsigned long" as a parameter. This difference leads to a 64-bit vs
        32-bit build error on 32-bit systems. Fix this by specifying
        correct/matching types.

        * wtf/Logger.h:
        (WTF::LogArgument::toString):

2019-07-30  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION(r241288): Text on Yahoo Japan mobile looks too bold
        https://bugs.webkit.org/show_bug.cgi?id=200065
        <rdar://problem/50912757>

        Reviewed by Simon Fraser.

        * wtf/Platform.h:

2019-07-30  Michael Catanzaro  <mcatanzaro@igalia.com>

        Fix CRASH_WITH_INFO() so that it doesn't complain about unused parameters on non Clang / MSVC compilers.
        https://bugs.webkit.org/show_bug.cgi?id=200243

        Reviewed by Mark Lam.

        For GCC, we'll implement WTFCrashWithInfo as a function rather than a macro. To use
        ##__VA_ARGS we would need to enable GNU extensions, and don't want to do that. The proper
        solution, format __VA_OPT__(,) __VA_ARGS__, requires C++20. So just use an inline function
        for now as a workaround.

        * wtf/Assertions.h:
        (CRASH_WITH_INFO):
        (CRASH_WITH_SECURITY_IMPLICATION_AND_INFO):

2019-07-25  Dean Jackson  <dino@apple.com>

        Add helper for ignoring deprecated implementation warnings
        https://bugs.webkit.org/show_bug.cgi?id=200135

        Reviewed by Wenson Hsieh.

        Add ALLOW_DEPRECATED_IMPLEMENTATIONS_BEGIN/END macro which
        is IGNORE_WARNINGS_BEGIN("deprecated-implementations")

        * wtf/Compiler.h:

2019-07-24  Yusuke Suzuki  <ysuzuki@apple.com>

        [bmalloc] Add IsoHeap test to ensure that IsoHeap pages are not allocating too large VA
        https://bugs.webkit.org/show_bug.cgi?id=200103

        Reviewed by Mark Lam.

        We move VMTag page investigation code from PAL to WTF to use it in TestWTF.
        And we also accumulate allocated VA size in `reserved` field of `TagInfo`.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/PlatformMac.cmake:
        * wtf/ResourceUsage.h: Added.
        * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
        * wtf/cocoa/ResourceUsageCocoa.cpp: Added.
        (WTF::vmPageSize):
        (WTF::logFootprintComparison):
        (WTF::displayNameForVMTag):
        (WTF::pagesPerVMTag):
        * wtf/spi/cocoa/MachVMSPI.h: Added.

2019-07-23  Keith Miller  <keith_miller@apple.com>

        Add cheat sheet comment for HashMap/Set iterator/AddResult
        https://bugs.webkit.org/show_bug.cgi?id=200061

        Reviewed by Saam Barati.

        * wtf/HashMap.h:
        * wtf/HashSet.h:

2019-07-23  Keith Rollin  <krollin@apple.com>

        Remove rest of NavigatorContentUtils support
        https://bugs.webkit.org/show_bug.cgi?id=200052
        <rdar://problem/53467357>

        Reviewed by Alex Christensen.

        Bug 196070 removes most of the support for the never-used
        NavigatorContentUtils facility. However, there were still a couple of
        left-over references after that change. This patch sweeps those up.

        * wtf/FeatureDefines.h:

2019-07-23  Keith Rollin  <krollin@apple.com>

        Enable HAVE_APP_LINKS_WITH_ISENABLED for entire iOS family
        https://bugs.webkit.org/show_bug.cgi?id=200040
        <rdar://problem/53457670>

        Reviewed by Tim Horton.

        This feature was enabled for just iOS, but should be enabled for tvOS
        and watchOS, too.

        * wtf/Platform.h:

2019-07-23  Alicia Boya García  <aboya@igalia.com>

        [WTF] Add DataMutex and MainThreadData wrappers
        https://bugs.webkit.org/show_bug.cgi?id=199831

        Reviewed by Alex Christensen.

        This patch adds two new wrapper classes:

        DataMutex<T> stores an instance of T in a private member along with a
        mutex. In order to use its fields, users need to instantiate a
        DataMutex<T>::LockedWrapper instance in the stack. This class uses
        RAII to lock and unlock the mutex in construction and destruction
        respectively, and by using the arrow operator lets the user access T's
        members.

        This way, DataMutex<T> prevents most instances of accidental access to
        data fields that should only be read and modified in an atomic matter.

        Still, both the Lock and the LockHolder are exposed once the user has
        taken the lock so that special cases such as waiting for a condition
        variable or performing an early unlock are doable.

        MainThreadData<T> is another wrapper class, in this case for data
        fields that should only be accessed from the main thread. In this
        case, it works similar to a smart pointer, except that (1) there is no
        actual memory indirection, T is stored directly inside
        MainThreadData<T> and (2) attempts to use the -> or * operator have an
        isMainThread() assertion.

        Together, these two wrapper classes make it easier to write
        multi-threaded code in a safer, more self-documented way by letting
        the author group data into structures that have certain access safety
        requirements.

        These structures were originally part of the new GStreamer
        WebKitMediaSrc rework patch: https://bugs.webkit.org/show_bug.cgi?id=199719

        * wtf/CMakeLists.txt:
        * wtf/DataMutex.h: Added.
        (WTF::DataMutex::DataMutex):
        (WTF::DataMutex::LockedWrapper::LockedWrapper):
        (WTF::DataMutex::LockedWrapper::operator->):
        (WTF::DataMutex::LockedWrapper::operator*):
        (WTF::DataMutex::LockedWrapper::mutex):
        (WTF::DataMutex::LockedWrapper::lockHolder):
        * wtf/MainThreadData.h: Added.
        (WTF::MainThreadData::MainThreadData):
        (WTF::MainThreadData::operator->):
        (WTF::MainThreadData::operator*):

2019-07-22  Yusuke Suzuki  <ysuzuki@apple.com>

        [bmalloc] Each IsoPage gets 1MB VA because VMHeap::tryAllocateLargeChunk rounds up
        https://bugs.webkit.org/show_bug.cgi?id=200024

        Reviewed by Saam Barati.

        Start using a VM tag for IsoHeap instead of CLoop Stack.

        * wtf/OSAllocator.h:
        * wtf/VMTags.h:

2019-07-20  Chris Dumez  <cdumez@apple.com>

        Speed up HashTable decoding by reserving capacity and avoiding rehashing
        https://bugs.webkit.org/show_bug.cgi?id=199982

        Reviewed by Saam Barati.

        Introduce reserveInitialCapacity() on HashMap to reserve capacity on a
        HashMap and cut down on rehashing cost when possible.

        * wtf/HashMap.h:
        * wtf/HashTable.h:
        (WTF::HashTable::reserveInitialCapacity):

        * wtf/persistence/PersistentCoders.h:
        Use HashMap::reserveInitialCapacity() in the HashMap persistent decoder for
        performance.

2019-07-20  Alexander Mikhaylenko  <exalm7659@gmail.com>

        REGRESSION(r246033/r246496): [GTK] Kinetic scrolling doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=199322

        Reviewed by Michael Catanzaro.

        Introduce ENABLE_KINETIC_SCROLLING to explicitly always have kinetic scrolling on GTK.

        * wtf/Platform.h:

2019-07-18  Youenn Fablet  <youenn@apple.com>

        Make sure to set kCTFontFallbackOptionAttribute to kCTFontFallbackOptionSystem for system fonts
        https://bugs.webkit.org/show_bug.cgi?id=199769
        <rdar://problem/49390297>

        Reviewed by Myles C. Maxfield.

        * wtf/Platform.h:

2019-07-17  Christopher Reid  <chris.reid@sony.com>

        Bytecode cache should use FileSystem
        https://bugs.webkit.org/show_bug.cgi?id=199759

        Reviewed by Yusuke Suzuki.

        * wtf/FileSystem.cpp:
        * wtf/FileSystem.h:
        Add support for creating MappedFileData from a preexisting file handle
        for use with locked files. Also support creating MappedFileData
        with either private or shared mappings.

        * wtf/UUID.cpp:
        Avoid ASSERT with returning a LazyNeverDestroyed object that hasn't been created.

        * wtf/glib/FileSystemGlib.cpp:
        * wtf/win/FileSystemWin.cpp:
        Add truncateFile implementations.

2019-07-17  Sam Weinig  <weinig@apple.com>

        Add StringBuilder member function which allows makeString() style variadic argument construction
        https://bugs.webkit.org/show_bug.cgi?id=198997

        Reviewed by Darin Adler.

        Adds new StringBuilder::flexibleAppend(...) member function which allows passing one or more 
        string-adaptable (in the sense that there is StringTypeAdapter specialization for the 
        type) parameters. This re-ususes the variadic template infrastructure in StringConcatenate.h
        that is used for makeString(...) allowing for improvements in one to benefit the other.

        The advantage of StringBuilder::flexibleAppend(...) over calling StringBuilder::append(...)
        multiple times (beyond the code sharing with makeString(...) is that it can avoid unnecessary
        additional re-allocations when the StringBuilder needs to expand it's capacity. It does this
        by computing the complete required length for all the passed arguments and then ensuring enough
        capacity is available. It also reduces the allocation overhead versus the anti-pattern of
        builder.append(makeString(...)).

        Ideally, this member function should eventually just be called StringBuilder::append(...), but
        the current overload set for StringBuilder::append(...) makes this complicated due to overloads
        that take two arguments such as StringBuilder::append(const UChar*, unsigned). Going forward, we
        should rename or remove those overloads and move to a standard interface. 

        * wtf/posix/FileSystemPOSIX.cpp:
        (WTF::FileSystemImpl::pathByAppendingComponents):
        Adopt StringBuilder::flexibleAppend, using to combine the append of '/' and component.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::appendUninitialized):
        (WTF::StringBuilder::appendUninitializedWithoutOverflowCheck):
        Extract the part of appendUnitialized that doesn't do the overflow check
        into it's own member function to allow callers that have already done the
        overflow check to bypass it.

        (WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForUChar):
        (WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForLChar):
        Added to allow template member function flexibleAppendFromAdapters to call
        appendUninitializedWithoutOverflowCheck without moving it to the header.
        
        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::flexibleAppendFromAdapters):
        (WTF::StringBuilder::flexibleAppend):
        Modeled on tryMakeStringFromAdapters in StringConcatenate.h, these
        eagerly compute the required length, expand the buffer and then use
        the existing string type adaptor accumulation functions used by makeString. 

        * wtf/text/StringConcatenate.h:
        (WTF::stringTypeAdapterAccumulator):
        (WTF::tryMakeStringFromAdapters):
        (WTF::makeStringAccumulator): Deleted.
        Renames makeStringAccumulator to stringTypeAdapterAccumulator now that it is used
        by more than just makeString.

2019-07-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r247505.
        https://bugs.webkit.org/show_bug.cgi?id=199871

        "Caused failed ASSERT in stress test" (Requested by creid on
        #webkit).

        Reverted changeset:

        "Bytecode cache should use FileSystem"
        https://bugs.webkit.org/show_bug.cgi?id=199759
        https://trac.webkit.org/changeset/247505

2019-07-16  Christopher Reid  <chris.reid@sony.com>

        Bytecode cache should use FileSystem
        https://bugs.webkit.org/show_bug.cgi?id=199759

        Reviewed by Yusuke Suzuki.

        * wtf/FileSystem.cpp:
        * wtf/FileSystem.h:
        Add support for creating MappedFileData from a preexisting file handle
        for use with locked files. Also support creating MappedFileData
        with either private or shared mappings.

        * wtf/UUID.cpp:
        Avoid ASSERT with returning a LazyNeverDestroyed object that hasn't been created.

        * wtf/glib/FileSystemGlib.cpp:
        * wtf/win/FileSystemWin.cpp:
        Add truncateFile implementations.

2019-07-16  Myles C. Maxfield  <mmaxfield@apple.com>

        New York font erroneously gets synthetic bold
        https://bugs.webkit.org/show_bug.cgi?id=199653

        Unreviewed MacCatalyst build fix.

        * wtf/Platform.h:

2019-07-16  Michael Catanzaro  <mcatanzaro@igalia.com>

        [WPE][GTK] Improvements and fixes in FileSystemGlib.cpp
        https://bugs.webkit.org/show_bug.cgi?id=199800

        Reviewed by Carlos Garcia Campos.

        Use nullptr.

        Fix a GFileInfo leak in getFileSize.

        Use GRefPtr to clarify ownership of the GFileIOStream in openFile.

        * wtf/glib/FileSystemGlib.cpp:
        (WTF::FileSystemImpl::getFileSize):
        (WTF::FileSystemImpl::getVolumeFreeSpace):
        (WTF::FileSystemImpl::openTemporaryFile):
        (WTF::FileSystemImpl::openFile):
        (WTF::FileSystemImpl::seekFile):
        (WTF::FileSystemImpl::writeToFile):
        (WTF::FileSystemImpl::readFromFile):

2019-07-15  Myles C. Maxfield  <mmaxfield@apple.com>

        New York font erroneously gets synthetic bold
        https://bugs.webkit.org/show_bug.cgi?id=199653

        Unreviewed watchOS build fix.

        * wtf/Platform.h:

2019-07-15  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r247462.
        https://bugs.webkit.org/show_bug.cgi?id=199816

        completely messed up the patch (Requested by litherum on
        #webkit).

        Reverted changeset:

        "New York font erroneously gets synthetic bold"
        https://bugs.webkit.org/show_bug.cgi?id=199653
        https://trac.webkit.org/changeset/247462

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

        New York font erroneously gets synthetic bold
        https://bugs.webkit.org/show_bug.cgi?id=199653
        <rdar://problem/51692592>

        Reviewed by Simon Fraser.

        * wtf/Platform.h:

2019-07-15  Brady Eidson  <beidson@apple.com>

        Make WKURLSchemeTask thread safe.
        <rdar://problem/50471863> and https://bugs.webkit.org/show_bug.cgi?id=199764

        Reviewed by Alex Christensen.

        * wtf/MainThread.cpp:
        (WTF::callOnMainAndWait):
        (WTF::callOnMainRunLoopAndWait):
        (WTF::callOnMainThreadAndWait):
        * wtf/MainThread.h:

2019-07-15  Dean Jackson  <dino@apple.com>

        MacCatalyst asserts when command key is raised
        https://bugs.webkit.org/show_bug.cgi?id=199805
        <rdar://problem/53120393>

        Reviewed by Tim Horton.

        Add USE_UIKIT_KEYBOARD_ADDITIONS for iOS 13+ and macCatalyst.

        * wtf/FeatureDefines.h:

2019-07-14  Chris Dumez  <cdumez@apple.com>

        Add threading assertion to WeakPtrFactory::createWeakPtr()
        https://bugs.webkit.org/show_bug.cgi?id=199639

        Reviewed by Ryosuke Niwa.

        Add threading assertion to WeakPtrFactory::createWeakPtr() to make sure it
        is called on the same thread where the WeakPtrFactory wad constructed.

        * wtf/WeakPtr.h:
        (WTF::WeakPtrFactory::WeakPtrFactory):
        (WTF::WeakPtrFactory::createWeakPtr const):

2019-07-14  Dean Jackson  <dino@apple.com>

        WebGL not supported on WKWebView on UIKit for Mac
        https://bugs.webkit.org/show_bug.cgi?id=199785
        <rdar://problem/52911449>

        Reviewed by Antoine Quint.

        MacCatalyst has Apple Graphics Control, although
        this area is very messy, see <rdar://53062794>.

        * wtf/Platform.h:

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

        New York font erroneously gets synthetic bold
        https://bugs.webkit.org/show_bug.cgi?id=199653
        <rdar://problem/51692592>

        Reviewed by Simon Fraser.

        * wtf/Platform.h:

2019-07-11  Pablo Saavedra  <psaavedra@igalia.com>

        [WPE][GTK] Build failure with ENABLE_ACCESSIBILITY=OFF
        https://bugs.webkit.org/show_bug.cgi?id=199625

        Added ENABLE(ACCESSIBILITY) and replaced HAVE(ACCESSIBILITY)
        with ENABLE(ACCESSIBILITY) in the code.

        Additionally, the TestRunner code generator now honors the
        Conditional IDL format.

        Reviewed by Konstantin Tokarev.

        * wtf/FeatureDefines.h:
        * wtf/Platform.h:

2019-07-10  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r247286.

        Caused TestWTF.WTF.StringOperators to fail on debug bots

        Reverted changeset:

        "Add StringBuilder member function which allows makeString()
        style variadic argument construction"
        https://bugs.webkit.org/show_bug.cgi?id=198997
        https://trac.webkit.org/changeset/247286

2019-07-09  Michael Catanzaro  <mcatanzaro@igalia.com>

        [WPE][GTK] GUniqueOutPtr::release should return a raw pointer
        https://bugs.webkit.org/show_bug.cgi?id=199579

        Reviewed by Carlos Garcia Campos.

        GUniqueOutPtr::release should release to a raw pointer, rather than a GUniquePtr. If a
        GUniquePtr is desired, it's trivial to construct one from the raw pointer, but all existing
        callsites under Source/ would rather have a raw pointer. Currently they have to call
        release().release() to get the raw pointer, which is annoying.

        * wtf/glib/GUniquePtr.h:
        (WTF::GUniqueOutPtr::release):

2019-07-09  Sam Weinig  <weinig@apple.com>

        Add StringBuilder member function which allows makeString() style variadic argument construction
        https://bugs.webkit.org/show_bug.cgi?id=198997

        Reviewed by Darin Adler.

        Adds new StringBuilder::flexibleAppend(...) member function which allows passing one or more 
        string-adaptable (in the sense that there is StringTypeAdapter specialization for the 
        type) parameters. This re-ususes the variadic template infrastructure in StringConcatenate.h
        that is used for makeString(...) allowing for improvements in one to benefit the other.

        The advantage of StringBuilder::flexibleAppend(...) over calling StringBuilder::append(...)
        multiple times (beyond the code sharing with makeString(...) is that it can avoid unnecessary
        additional re-allocations when the StringBuilder needs to expand it's capacity. It does this
        by computing the complete required length for all the passed arguments and then ensuring enough
        capacity is available. It also reduces the allocation overhead versus the anti-pattern of
        builder.append(makeString(...)).

        Ideally, this member function should eventually just be called StringBuilder::append(...), but
        the current overload set for StringBuilder::append(...) makes this complicated due to overloads
        that take two arguments such as StringBuilder::append(const UChar*, unsigned). Going forward, we
        should rename or remove those overloads and move to a standard interface. 

        * wtf/posix/FileSystemPOSIX.cpp:
        (WTF::FileSystemImpl::pathByAppendingComponents):
        Adopt StringBuilder::flexibleAppend, using to combine the append of '/' and component.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::appendUninitialized):
        (WTF::StringBuilder::appendUninitializedWithoutOverflowCheck):
        Extract the part of appendUnitialized that doesn't do the overflow check
        into it's own member function to allow callers that have already done the
        overflow check to bypass it.

        (WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForUChar):
        (WTF::StringBuilder::appendUninitializedWithoutOverflowCheckForLChar):
        Added to allow template member function flexibleAppendFromAdapters to call
        appendUninitializedWithoutOverflowCheck without moving it to the header.
        
        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::flexibleAppendFromAdapters):
        (WTF::StringBuilder::flexibleAppend):
        Modeled on tryMakeStringFromAdapters in StringConcatenate.h, these
        eagerly compute the required length, expand the buffer and then use
        the existing string type adaptor accumulation functions used by makeString. 

        * wtf/text/StringConcatenate.h:
        (WTF::stringTypeAdapterAccumulator):
        (WTF::tryMakeStringFromAdapters):
        (WTF::makeStringAccumulator): Deleted.
        Renames makeStringAccumulator to stringTypeAdapterAccumulator now that it is used
        by more than just makeString.

2019-07-09  Alex Christensen  <achristensen@webkit.org>

        When parsing an IPv4 address, wait until after deciding it is indeed an IPv4 address before reporting syntax violations
        https://bugs.webkit.org/show_bug.cgi?id=199628

        Reviewed by Brady Eidson.

        Otherwise, we sometimes report syntax violations on things that are not IPv4 addresses and don't have syntax violations.
        I added a unit test with one such URL that used to cause an assertion.

        * wtf/URLParser.cpp:
        (WTF::URLParser::parseIPv4Host):

2019-07-09  Alex Christensen  <achristensen@webkit.org>

        Remove invalid assertion in URLParser::domainToASCII
        https://bugs.webkit.org/show_bug.cgi?id=199624

        Reviewed by Brady Eidson.

        When a non-ASCII domain's punycode encoding is longer than 63 characters,
        the URL is supposed to fail to parse, according to https://www.unicode.org/reports/tr46/#ToASCII
        We and all other browsers do this.  When uidna_nameToASCII tries to punycode encode such a domain,
        it can return a number larger than 63.  In this case, processingDetails.errors is UIDNA_ERROR_LABEL_TOO_LONG
        and we fail to parse as desired and uidna_nameToASCII did not write out of bounds, so it was just the assertion
        that was wrong.  I added some unit tests that would have hit the assertion and verify that we fail at the correct length.

        * wtf/URLParser.cpp:
        (WTF::URLParser::domainToASCII):

2019-07-09  Alex Christensen  <achristensen@webkit.org>

        URLParser should reserialize IPv6 addresses that end with a colon
        https://bugs.webkit.org/show_bug.cgi?id=199627

        Reviewed by Brady Eidson.

        When an IPv6 address ends in a colon, the colon should be removed which means the
        serialized output is different than the input, which the URLParser calls a syntax violation.
        This matches the URL specification, and I added a unit test that used to assert.

        * wtf/URLParser.cpp:
        (WTF::URLParser::parseIPv6Host):

2019-07-08  Chris Dumez  <cdumez@apple.com>

        Use WeakHashSet for WebUserContentControllerProxy::m_processes
        https://bugs.webkit.org/show_bug.cgi?id=199591
        <rdar://problem/52798721>

        Reviewed by Youenn Fablet.

        Update WeakHashSet::add() to return an AddResult type, similarly to our other containers.

        * wtf/WeakHashSet.h:
        (WTF::WeakHashSet::add):

2019-07-08  Christopher Reid  <chris.reid@sony.com>

        Implement MappedFileData for Windows
        https://bugs.webkit.org/show_bug.cgi?id=198269

        Reviewed by Darin Adler.

        Original patch by Fujii Hironori.

        Add Windows implementations for MappedFileData constructor and destructor.

        * wtf/FileSystem.cpp:
        * wtf/FileSystem.h:
        * wtf/win/FileSystemWin.cpp:

2019-07-08  Chris Dumez  <cdumez@apple.com>

        Add threading assertion to WTF::CompletionHandler
        https://bugs.webkit.org/show_bug.cgi?id=199516

        Reviewed by Alex Christensen.

        Add threading assertion to WTF::CompletionHandler to try and catch common cases
        of unsafe usage (completion handler constructed on one thread but called on
        another).

        * wtf/CompletionHandler.h:
        (WTF::CompletionHandler<Out):

2019-07-08  Antoine Quint  <graouts@apple.com>

        [Pointer Events] Enable only on the most recent version of the supported iOS family
        https://bugs.webkit.org/show_bug.cgi?id=199562
        <rdar://problem/52766511>

        Reviewed by Dean Jackson.

        We really don't need HAVE_UI_WEB_TOUCH_EVENTS_GESTURE_RECOGNIZER_WITH_ACTIVE_TOUCHES_BY_ID since the UIKit SPI
        that was added in iOS 13 that it's checking for is really required for all parts of the implementation of Pointer
        Events, including dispatch of the "pointercancel" event and support for the "touch-action" CSS property.

        * wtf/Platform.h:

2019-07-05  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r247115.

        Breaks lldbWebKitTester (and by extension, test-webkitpy)

        Reverted changeset:

        "[WHLSL] Standard library is too big to directly include in
        WebCore"
        https://bugs.webkit.org/show_bug.cgi?id=198186
        https://trac.webkit.org/changeset/247115

2019-07-03  Jonathan Bedard  <jbedard@apple.com>

        [Catalina] Enable WebKit build
        https://bugs.webkit.org/show_bug.cgi?id=199209

        Reviewed by Darin Adler.

        * wtf/spi/cocoa/SecuritySPI.h: Declare SecTrustedApplicationCreateFromPath(...).

2019-07-03  Keith Miller  <keith_miller@apple.com>

        PACCage should first cage leaving PAC bits intact then authenticate
        https://bugs.webkit.org/show_bug.cgi?id=199372

        Reviewed by Saam Barati.

        * wtf/CagedPtr.h:
        (WTF::CagedPtr::get const):
        (WTF::CagedPtr::getMayBeNull const):
        (WTF::CagedPtr::mergePointers):

2019-07-03  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r246616.

        Caused http/tests/inspector/network/har/har-page.html to fail
        on Catalina.

        Reverted changeset:

        "Web Inspector: Network: replace CFNetwork SPI with new API
        where able"
        https://bugs.webkit.org/show_bug.cgi?id=198762
        https://trac.webkit.org/changeset/246616

2019-07-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r247041.
        https://bugs.webkit.org/show_bug.cgi?id=199425

        broke some iOS arm64e tests (Requested by keith_miller on
        #webkit).

        Reverted changeset:

        "PACCage should first cage leaving PAC bits intact then
        authenticate"
        https://bugs.webkit.org/show_bug.cgi?id=199372
        https://trac.webkit.org/changeset/247041

2019-07-02  Chris Dumez  <cdumez@apple.com>

        ThreadSafeRefCounted<DestructionThread::Main> is not safe to use in the UIProcess
        https://bugs.webkit.org/show_bug.cgi?id=199420
        <rdar://problem/52289717>

        Reviewed by Ryosuke Niwa.

        * wtf/MainThread.cpp:
        (WTF::isMainRunLoop):
        (WTF::callOnMainRunLoop):
        * wtf/MainThread.h:
        Add some function to MainThread.h to be used by ThreadSafeRefCounted to interact with the
        main RunLoop. This is used to avoid a circular dependency between RunLoop (which is
        ThreadSafeRefCounted) and ThreadSafeReCounted.

        * wtf/ThreadSafeRefCounted.h:
        (WTF::ThreadSafeRefCounted::deref const):
        Add a new DestructionThread::MainRunLoop enum value to be used by classes that need to
        be destroyed on the main RunLoop rather than the main thread (which may be different
        when WK1 is invoved)

2019-07-02  Robin Morisset  <rmorisset@apple.com>

        [WHLSL] the initializer in VariableDeclaration should be a std::unique_ptr, not Optional<UniqueRef<..>>
        https://bugs.webkit.org/show_bug.cgi?id=199389

        Reviewed by Sam Weinig.

        * wtf/UniqueRef.h:
        (WTF::UniqueRef::moveToUniquePtr): Added.

2019-07-02  Keith Miller  <keith_miller@apple.com>

        PACCage should first cage leaving PAC bits intact then authenticate
        https://bugs.webkit.org/show_bug.cgi?id=199372

        Reviewed by Saam Barati.

        * wtf/CagedPtr.h:
        (WTF::CagedPtr::get const):
        (WTF::CagedPtr::getMayBeNull const):
        (WTF::CagedPtr::mergePointers):

2019-07-01  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] Cannot play Bert's Bytes radio stream from http://radio.dos.nl/
        https://bugs.webkit.org/show_bug.cgi?id=198376

        Reviewed by Xabier Rodriguez-Calvar.

        * wtf/glib/GLibUtilities.h:
        (enumToString): Utility function to get a string representation of of a GLib enum.

2019-06-22  Darin Adler  <darin@apple.com>

        Streamline some string code, focusing on functions that were using substringSharingImpl
        https://bugs.webkit.org/show_bug.cgi?id=198898

        Reviewed by Daniel Bates.

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::applyHostNameFunctionToURLString): Change code using
        substringSharingImpl so it could call String::find to call StringView::contains
        instead. Also rewrote lambdas to be simpler and likely more efficient.
        Rewrote another case using substringSharingImpl so it could call String::find
        to call StringView::find instead.

        * wtf/text/StringView.cpp:
        (WTF::StringView::startsWith const): Added.

        * wtf/text/StringView.h: Tweaked style a bit, and added an overload of
        StringView::contains that takes a CodeUnitMatchFunction and an overload
        of startsWith that cakes a UChar.

2019-06-28  Konstantin Tokarev  <annulen@yandex.ru>

        Remove traces of ENABLE_ICONDATABASE remaining after its removal in 219733
        https://bugs.webkit.org/show_bug.cgi?id=199317

        Reviewed by Michael Catanzaro.

        While IconDatabase and all code using it was removed,
        ENABLE_ICONDATABASE still exists as build option and C++ macro.

        * wtf/FeatureDefines.h:

2019-06-27  Konstantin Tokarev  <annulen@yandex.ru>

        Avoid using WTF::Function for passing local function pointers and closures in URLHelpers.cpp
        https://bugs.webkit.org/show_bug.cgi?id=199271

        Reviewed by Yusuke Suzuki.

        WTF::Function allocates memory on heap, which is totally redundant in this
        case.

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):

2019-06-27  Timothy Hatcher  <timothy@apple.com>

        Move WebKitLegacy off of a couple AppKit ivars.
        https://bugs.webkit.org/show_bug.cgi?id=199279
        rdar://problem/34983438

        Reviewed by Tim Horton.

        * wtf/Platform.h: Added HAVE_SUBVIEWS_IVAR_SPI.

2019-06-27  Beth Dakin  <bdakin@apple.com>

        Upstream use of MACCATALYST
        https://bugs.webkit.org/show_bug.cgi?id=199245
        rdar://problem/51687723

        Reviewed by Tim Horton.

        * Configurations/SDKVariant.xcconfig:
        * wtf/FeatureDefines.h:
        * wtf/Platform.h:

2019-06-27  Don Olmstead  <don.olmstead@sony.com>

        [FTW] Build JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=199254

        Reviewed by Brent Fulgham.

        * wtf/PlatformFTW.cmake: Added.

2019-06-27  Fujii Hironori  <Hironori.Fujii@sony.com>

        [CMake] Bump cmake_minimum_required version to 3.10
        https://bugs.webkit.org/show_bug.cgi?id=199181

        Reviewed by Don Olmstead.

        * CMakeLists.txt:

2019-06-26  Konstantin Tokarev  <annulen@yandex.ru>

        Remove unneeded #include <wtf/glib/GRefPtr.h>
        https://bugs.webkit.org/show_bug.cgi?id=199228

        Reviewed by Michael Catanzaro.

        * wtf/MemoryPressureHandler.h:

2019-06-26  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION: ( r246394 ) webgpu/whlsl-buffer-fragment.html and webgpu/whlsl-buffer-vertex.html are failing
        https://bugs.webkit.org/show_bug.cgi?id=199012

        Reviewed by Saam Barati.

        * wtf/Platform.h:

2019-06-25  Keith Miller  <keith_miller@apple.com>

        CagedPtr doesn't merge PAC bits back into the resulting caged pointer.
        https://bugs.webkit.org/show_bug.cgi?id=199214

        Reviewed by Yusuke Suzuki.

        The current code means that caging will just strip the any failed
        authentication bits. Adding this code doesn't appear to be a
        regression on iPhone Xs.

        * wtf/CagedPtr.h:
        (WTF::CagedPtr::get const):
        (WTF::CagedPtr::getMayBeNull const):
        (WTF::CagedPtr::getUnsafe const):
        (WTF::CagedPtr::mergePointers):

2019-06-25  Sam Weinig  <weinig@apple.com>

        Experiment with simple structured bindings use
        https://bugs.webkit.org/show_bug.cgi?id=198905

        Reviewed by Darin Adler.

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::mapHostNames):
        Simplify code using c++ structured bindings (https://en.cppreference.com/w/cpp/language/structured_binding)
        to see if all the platforms will work with it.

2019-06-25  Adam Barth  <abarth@webkit.org>

        [fuchsia] Update to newer zx_clock_get syscall
        https://bugs.webkit.org/show_bug.cgi?id=199191

        Reviewed by Sam Weinig.

        Fuchsia has changed the zx_clock_get syscall to return the clock value
        via an out parameter rather than via its return value. This change
        makes zx_clock_get consistent with all the other syscalls.

        This patch updates our use of zx_clock_get to use the new syscall. The
        old syscall is no longer supported by Fuchsia.

        * wtf/fuchsia/CPUTimeFuchsia.cpp:
        (WTF::CPUTime::get): Switch to using the out parameter.
        (WTF::CPUTime::forCurrentThread): Switch to using the out parameter.

2019-06-25  Michael Catanzaro  <mcatanzaro@igalia.com>

        Fully rename WebKitGTK+ -> WebKitGTK everywhere
        https://bugs.webkit.org/show_bug.cgi?id=199159

        Reviewed by Carlos Garcia Campos.

        * wtf/URLParser.cpp:
        (WTF::URLParser::internationalDomainNameTranscoder):

2019-06-25  Michael Catanzaro  <mcatanzaro@igalia.com>

        Require GCC 7
        https://bugs.webkit.org/show_bug.cgi?id=198914

        Reviewed by Darin Adler.

        Remove now-stale GCC version check.

        * wtf/Compiler.h:

2019-06-23  Simon Fraser  <simon.fraser@apple.com>

        Add OverflowScrollProxyNodes to the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=199132

        Reviewed by Antti Koivisto.
        
        Setting indent is useful if you want to make a new stream with the indent of an
        existing stream.

        * wtf/text/TextStream.h:
        (WTF::TextStream::setIndent):

2019-06-20  Fujii Hironori  <Hironori.Fujii@sony.com>

        Try to use C++14 std::enable_if_t in CheckedArithmetic.h again
        https://bugs.webkit.org/show_bug.cgi?id=199099

        Reviewed by Ross Kirsling.

        r242235 changed CheckedArithmetic to not use C++14. Let's try
        C++14 again.

        * wtf/CheckedArithmetic.h: Use C++14 std::make_unsigned_t and std::enable_if_t.

2019-06-18  Darin Adler  <darin@apple.com>

        Tidy up the remaining bits of the AtomicString to AtomString rename
        https://bugs.webkit.org/show_bug.cgi?id=198990

        Reviewed by Michael Catanzaro.

        * wtf/text/AtomString.cpp: Fix a comment.
        * wtf/text/AtomString.h: Tweak formatting a bit. Use nullptr instead of 0.
        Removed "using AtomicString = AtomString".
        * wtf/text/AtomStringImpl.cpp:
        (WTF::CStringTranslator::translate): Use setIsAtom instead of setIsAtomic.
        (WTF::UCharBufferTranslator::translate): Ditto.
        (WTF::HashAndUTF8CharactersTranslator::translate): Ditto.
        (WTF::SubstringTranslator::translate): Ditto.
        (WTF::LCharBufferTranslator::translate): Ditto.
        (WTF::BufferFromStaticDataTranslator::translate): Ditto.
        (WTF::AtomStringImpl::addSlowCase): Ditto.
        (WTF::AtomStringImpl::lookUpSlowCase): Updated assertion message.

        * wtf/text/AtomStringImpl.h: Tweaked the implementation of add.
        Updated comments to say AtomString.

        * wtf/text/AtomStringTable.cpp:
        (WTF::AtomStringTable::~AtomStringTable): Use setIsAtom.

        * wtf/text/StringImpl.h: Updated name of StringAtomic and
        s_hashFlagStringKindIsAtom. Renamed to flagIsAtom and setIsAtom.

        * wtf/text/WTFString.cpp:
        (WTF::String::isSafeToSendToAnotherThread const): Updated comment.

2019-06-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove support for GTK2 plugins
        https://bugs.webkit.org/show_bug.cgi?id=199065

        Reviewed by Sergio Villar Senin.

        * wtf/Platform.h:
        * wtf/glib/GTypedefs.h:

2019-06-19  Yusuke Suzuki  <ysuzuki@apple.com>

        [bmalloc] IsoHeap's initialization is racy with IsoHeap::isInitialized
        https://bugs.webkit.org/show_bug.cgi?id=199053

        Reviewed by Saam Barati.

        Add constexpr static functions to generate pseudo random numbers from __LINE__.

        * wtf/WeakRandom.h:
        (WTF::WeakRandom::nextState):
        (WTF::WeakRandom::generate):
        (WTF::WeakRandom::advance):

2019-06-19  Fujii Hironori  <Hironori.Fujii@sony.com>

        Add WTF::crossThreadCopy(T&&) to utilize String::isolatedCopy() &&
        https://bugs.webkit.org/show_bug.cgi?id=198957

        Reviewed by Alex Christensen.

        &&-qualified String::isolatedCopy() has a optimization path which
        does just WTFMove if it isSafeToSendToAnotherThread which means
        the object hasOneRef.

        However, WTF::crossThreadCopy was using only &-qualified
        isolatedCopy. To use the optimization, added
        WTF::crossThreadCopy(T&&) overloading.

        * wtf/CrossThreadCopier.h:
        (WTF::crossThreadCopy): Added a overload of (T&&).
        * wtf/CrossThreadTask.h:
        (WTF::createCrossThreadTask): Removed explicit template arguments of crossThreadCopy.

2019-06-19  Devin Rousso  <drousso@apple.com>

        Web Inspector: Network: replace CFNetwork SPI with new API where able
        https://bugs.webkit.org/show_bug.cgi?id=198762

        Reviewed by Timothy Hatcher.

        * wtf/Platform.h:

2019-06-19  Alex Christensen  <achristensen@webkit.org>

        Add a unit test for client certificate authentication
        https://bugs.webkit.org/show_bug.cgi?id=197800

        Reviewed by Youenn Fablet.

        * wtf/spi/cocoa/SecuritySPI.h:
        Move declarations from ArgumentCodersCF.cpp so they can be shared.

2019-06-19  Adrian Perez de Castro  <aperez@igalia.com>

        [WPE][GTK] Fix build with unified sources disabled
        https://bugs.webkit.org/show_bug.cgi?id=198752

        Reviewed by Michael Catanzaro.

        * wtf/text/StringBuilder.h: Add missing include of StringConcatenateNumbers.h

2019-06-19  Zan Dobersek  <zdobersek@igalia.com>

        USE_ANGLE macro can be evaluated without being defined
        https://bugs.webkit.org/show_bug.cgi?id=198991

        Reviewed by Carlos Garcia Campos.

        * wtf/Platform.h: On platforms not yet defining USE_ANGLE, the
        incompatibility check with some other flags leads to the macro being
        evaluated even when it was not defined, producing compiler warnings.
        To avoid this, the macro should be defined to 0 before the check in
        case it was not defined already.

2019-06-18  Dean Jackson  <dino@apple.com>

        UIContextMenuInteraction implementation for WKContentView
        https://bugs.webkit.org/show_bug.cgi?id=198986
        <rdar://problem/51875189>

        Reviewed by Andy Estes.

        Add USE_UICONTEXTMENU for iOS 13+.

        * wtf/Platform.h:

2019-06-18  Kenneth Russell  <kbr@chromium.org>

        Add preliminary ANGLE backend to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=197755

        Reviewed by Dean Jackson.

        Add a USE_ANGLE definition to wtf/Platform.h (currently disabled)
        which, when enabled, uses ANGLE instead of the OpenGL or OpenGL ES
        backend.

        * wtf/Platform.h:

2019-06-17  Jiewen Tan  <jiewen_tan@apple.com>

        Move SOAuthorization from WebKitAdditions to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=198874
        <rdar://problem/47573431>

        Reviewed by Brent Fulgham.

        * wtf/Platform.h:
        Adds a feature flag to detect AppSSO framework.

2019-06-17  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r246501.

        Breaks Apple internal builds.

        Reverted changeset:

        "Support using ANGLE as the backend for the WebGL
        implementation"
        https://bugs.webkit.org/show_bug.cgi?id=197755
        https://trac.webkit.org/changeset/246501

2019-06-17  Kenneth Russell  <kbr@chromium.org>

        Support using ANGLE as the backend for the WebGL implementation
        https://bugs.webkit.org/show_bug.cgi?id=197755

        Reviewed by Dean Jackson.

        Add a USE_ANGLE definition to wtf/Platform.h (currently disabled)
        which, when enabled, uses ANGLE instead of the OpenGL or OpenGL ES
        backend.

        * wtf/Platform.h:

2019-06-16  Darin Adler  <darin@apple.com>

        Rename AtomicString to AtomString
        https://bugs.webkit.org/show_bug.cgi?id=195276

        Reviewed by Michael Catanzaro.

        * many files: Let do-webcore-rename do the renaming.

        * wtf/text/AtomString.h: After renaming, added AtomicString as a synonym for
        now; helps smooth things over with a tiny bit of Apple internal software so
        we don't have to do this all at once. Can remove it soon.

2019-06-16  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Avoid roundoff error when setting AVCapture min/max frame rate
        https://bugs.webkit.org/show_bug.cgi?id=198875
        <rdar://problem/51768374>

        Reviewed by Youenn Fablet.

        * wtf/MediaTime.h:
        (WTF::LogArgument<MediaTime>::toString):
        (WTF::LogArgument<MediaTimeRange>::toString):

2019-06-12  Antoine Quint  <graouts@apple.com>

        Show the web page URL when sharing an AR model
        https://bugs.webkit.org/show_bug.cgi?id=198812
        <rdar://problem/48689498>

        Reviewed by Dean Jackson.

        * wtf/Platform.h:

2019-06-12  Youenn Fablet  <youenn@apple.com>

        Use NSURLSession for WebSocket
        https://bugs.webkit.org/show_bug.cgi?id=198568

        Reviewed by Geoffrey Garen.

        * wtf/Platform.h:
        Introduce compile flag for WebSocket NSURLSession

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

        Unreviewed, rolling out r246322.
        https://bugs.webkit.org/show_bug.cgi?id=198796

        "It's a huge page load regression on iOS" (Requested by
        saamyjoon on #webkit).

        Reverted changeset:

        "Roll out PAC cage"
        https://bugs.webkit.org/show_bug.cgi?id=198726
        https://trac.webkit.org/changeset/246322

2019-06-10  Simon Fraser  <simon.fraser@apple.com>

        Add logging for UI-side compositing hit-testing
        https://bugs.webkit.org/show_bug.cgi?id=198739

        Reviewed by Antti Koivisto.

        Make it possible to output an Objective-C object to TextStream, which will
        log its -description.

        Also add a template for OptionSet<> printing.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/text/TextStream.h:
        (WTF::operator<<):
        * wtf/text/cocoa/TextStreamCocoa.mm: Added.
        (WTF::TextStream::operator<<):

2019-06-11  Saam Barati  <sbarati@apple.com>

        Roll out PAC cage
        https://bugs.webkit.org/show_bug.cgi?id=198726

        Reviewed by Keith Miller.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/CagedPtr.h:
        (WTF::CagedPtr::CagedPtr):
        (WTF::CagedPtr::get const):
        (WTF::CagedPtr::getMayBeNull const):
        (WTF::CagedPtr::operator=):
        (WTF::CagedPtr::operator== const):
        (WTF::CagedPtr::operator!= const):
        (WTF::CagedPtr::operator bool const):
        (WTF::CagedPtr::operator* const):
        (WTF::CagedPtr::operator-> const):
        (WTF::CagedPtr::operator[] const):
        (WTF::CagedPtr::getUnsafe const): Deleted.
        (WTF::CagedPtr::at const): Deleted.
        (WTF::CagedPtr::recage): Deleted.
        * wtf/CagedUniquePtr.h:
        (WTF::CagedUniquePtr::CagedUniquePtr):
        (WTF::CagedUniquePtr::create):
        (WTF::CagedUniquePtr::operator=):
        (WTF::CagedUniquePtr::~CagedUniquePtr):
        (WTF::CagedUniquePtr::destroy):
        * wtf/Gigacage.h:
        (Gigacage::caged):
        (Gigacage::cagedMayBeNull): Deleted.
        * wtf/PtrTag.h:
        (WTF::tagArrayPtr): Deleted.
        (WTF::untagArrayPtr): Deleted.
        (WTF::removeArrayPtrTag): Deleted.
        (WTF::retagArrayPtr): Deleted.
        * wtf/TaggedArrayStoragePtr.h:
        (WTF::TaggedArrayStoragePtr::TaggedArrayStoragePtr): Deleted.
        (WTF::TaggedArrayStoragePtr::get const): Deleted.
        (WTF::TaggedArrayStoragePtr::getUnsafe const): Deleted.
        (WTF::TaggedArrayStoragePtr::resize): Deleted.
        (WTF::TaggedArrayStoragePtr::operator bool const): Deleted.

2019-06-10  Andy Estes  <aestes@apple.com>

        [iOS] Use PDFKit SPI for taking snapshots when the hosting app is not entitled for global capture
        https://bugs.webkit.org/show_bug.cgi?id=198731
        <rdar://problem/46215174>

        Reviewed by Tim Horton.

        * wtf/FeatureDefines.h:

2019-06-10  Sam Weinig  <weinig@apple.com>

        Remove Dashboard support
        https://bugs.webkit.org/show_bug.cgi?id=198615

        Reviewed by Ryosuke Niwa.

        * wtf/FeatureDefines.h:

2019-06-10  Timothy Hatcher  <timothy@apple.com>

        Integrate dark mode support for iOS.
        https://bugs.webkit.org/show_bug.cgi?id=198687
        rdar://problem/51545643

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2019-06-08  Andy Estes  <aestes@apple.com>

        [Apple Pay] If we have a bound interface identifier, set it on new PKPaymentRequests
        https://bugs.webkit.org/show_bug.cgi?id=198690
        <rdar://problem/48041803>

        Reviewed by Tim Horton.

        * wtf/FeatureDefines.h: Defined HAVE_PASSKIT_BOUND_INTERFACE_IDENTIFIER, and cleaned up some
        other PassKit HAVEs.

2019-06-06  Caio Lima  <ticaiolima@gmail.com>

        [JSCOnly] JSCOnly port is not building on macOS
        https://bugs.webkit.org/show_bug.cgi?id=198563

        Reviewed by Don Olmstead.

        We are adding `<mach/vm_types.h>` to fix build issues when compiling
        JSCOnly port on macOS.

        * wtf/WTFAssertions.cpp:

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

        Unreviewed, rolling out r246022.
        https://bugs.webkit.org/show_bug.cgi?id=198486

        Causing Internal build failures and JSC test failures
        (Requested by ShawnRoberts on #webkit).

        Reverted changeset:

        "Reenable Gigacage on ARM64."
        https://bugs.webkit.org/show_bug.cgi?id=198453
        https://trac.webkit.org/changeset/246022

2019-06-03  Darin Adler  <darin@apple.com>

        Finish cleanup of String::number for floating point
        https://bugs.webkit.org/show_bug.cgi?id=198471

        Reviewed by Yusuke Suzuki.

        * wtf/JSONValues.cpp:
        (WTF::JSONImpl::Value::writeJSON const): Use appendNumber instead of
        appendECMAScriptNumber, since that's now the default.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::appendNumber): Renamed from appendShortestFormNumber.
        * wtf/text/StringBuilder.h: Removed appendShortestFormNumber and
        appendECMAScriptNumber, replacing both with overload of appendNumber.

        * wtf/text/WTFString.cpp:
        (WTF::String::number): Renamed from numberToStringShortest.
        * wtf/text/WTFString.h: Removed numberToStringShortest and
        numberToStringECMAScript, replacing both with overload of number.

2019-06-02  Keith Miller  <keith_miller@apple.com>

        Reenable Gigacage on ARM64.
        https://bugs.webkit.org/show_bug.cgi?id=198453

        Reviewed by Filip Pizlo.

        * wtf/CagedPtr.h:
        (WTF::CagedPtr::authenticatingLoad):
        (WTF::CagedPtr::get const):
        (WTF::CagedPtr::getMayBeNull const):

2019-05-31  Alex Christensen  <achristensen@webkit.org>

        URLParser::parseIPv6Host should properly parse 0's around compression
        https://bugs.webkit.org/show_bug.cgi?id=198424

        Reviewed by Tim Horton.

        * wtf/URLParser.cpp:
        (WTF::URLParser::parseIPv6Host):

2019-05-31  Alex Christensen  <achristensen@webkit.org>

        URLParser::parseHostAndPort should not allow non-port characters after an ipv6 host
        https://bugs.webkit.org/show_bug.cgi?id=198428
        <rdar://problem/51209196>

        Reviewed by Tim Horton.

        This matches Chrome and Firefox.

        * wtf/URLParser.cpp:
        (WTF::URLParser::parseHostAndPort):

2019-05-31  Tim Horton  <timothy_horton@apple.com>

        Optionally respect device management restrictions when loading from the network
        https://bugs.webkit.org/show_bug.cgi?id=198318
        <rdar://problem/44263806>

        Reviewed by Alex Christensen.

        * wtf/Platform.h:
        Add a HAVE flag for DeviceManagement.framework.
        It does exist in the simulator, but does not function; pretend it doesn't exist.

2019-05-31  Geoffrey Garen  <ggaren@apple.com>

        Some WeakPtr cleanup
        https://bugs.webkit.org/show_bug.cgi?id=198390

        Reviewed by Chris Dumez.

        * wtf/WeakHashSet.h:
        (WTF::HashTraits<Ref<WeakPtrImpl>>::isReleasedWeakValue):
        (WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator):
        Updated for rename to WeakPtrImpl.

        (WTF::WeakHashSet::WeakHashSetConstIterator::get const): Updated for new
        get() interface. Also, switched to iterator operator* to help clarify
        the double dereference here.

        (WTF::WeakHashSet::add):
        (WTF::WeakHashSet::remove):
        (WTF::WeakHashSet::contains const):
        (WTF::WeakHashSet::computeSize const):
        (WTF::HashTraits<Ref<WeakReference>>::isReleasedWeakValue): Deleted.
        Updated for rename to WeakPtrImpl.

        * wtf/WeakPtr.h:
        (WTF::WeakPtrImpl::create):
        (WTF::WeakPtrImpl::~WeakPtrImpl): Renamed WeakReference to WeakPtrImpl.
        Now we don't need a comment explaining that this class is the backing
        implementation of WeakPtr.

        (WTF::WeakPtrImpl::get): Return the pointer type we stored, rather than
        the pointer type requested by our client. It's a little too surprising
        for a field to store one pointer type and load another.

        (WTF::WeakPtrImpl::WeakPtrImpl): Fixed a theoretical type safety bug.
        Make sure to store T::WeakValueType* instead of T*, since they might
        not be the same pointer value. (In practice, T and T::WeakValueType*
        are always the same type in this constructor because WeakPtrFactory
        makes them so, but it's best not to depend on implementation details
        across classes.)

        (WTF::WeakPtr::get const): Updated for new get() interface.

        (WTF::WeakPtr::operator bool const):
        (WTF::WeakPtr::operator=):
        (WTF::WeakPtr::clear):
        (WTF::WeakPtr::WeakPtr): Updated for WeakPtrImpl rename.

        (WTF::WeakPtrFactory::~WeakPtrFactory): Updated for WeakPtrImpl rename.

        (WTF::WeakPtrFactory::createWeakPtr const): ASSERT that the passed-in
        pointer is equal to the stored pointer. As a space optimization, we
        require our client to remind us what we point to each time a weak
        pointer is created -- but nothing guarantees that our client will do
        this correctly.

        (WTF::WeakPtrFactory::revokeAll): Updated for WeakPtrImpl rename.

        (WTF::CanMakeWeakPtr::weakPtrFactory const):
        (WTF::CanMakeWeakPtr::weakPtrFactory): Use idiomatic accessor naming.

        (WTF::weak_ptr_impl_cast): Fixed a theoretical type safety bug.
        Previously, if Base and Derived both inherited CanMakeWeakPtr, and
        you casted WeakPtr<Base> to WeakPtr<Derived> (or vice versa), and
        casting Base <-> Derived required pointer fixup, the previous
        compile-time check would accept the cast, even though the stored pointer
        would be wrong.

        (WTF::WeakPtr<T>::WeakPtr):
        (WTF::=):
        (WTF::makeWeakPtr):
        (WTF::WeakReference::create): Deleted.
        (WTF::WeakReference::~WeakReference): Deleted.
        (WTF::WeakReference::get const): Deleted.
        (WTF::WeakReference::operator bool const): Deleted.
        (WTF::WeakReference::clear): Deleted.
        (WTF::WeakReference::WeakReference): Deleted.
        (WTF::weak_reference_cast): Deleted. Updated for rename to WeakPtrImpl.

        Don't export WeakPtrImpl because it's an implmenetation detail and
        it shouldn't be easy to use outside WTF.

2019-05-31  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Add WebKit::WTF target
        https://bugs.webkit.org/show_bug.cgi?id=198400

        Reviewed by Konstantin Tokarev.

        Create the WebKit::WTF target and use that to propagate headers. Use
        WEBKIT_COPY_FILES instead of WEBKIT_MAKE_FORWARDING_HEADERS.

        * wtf/CMakeLists.txt:

2019-05-30  Saam Barati  <sbarati@apple.com>

        [WHLSL] Enforce variable lifetimes
        https://bugs.webkit.org/show_bug.cgi?id=195794
        <rdar://problem/50746293>

        Reviewed by Myles C. Maxfield.

        * wtf/PrintStream.h:

2019-05-30  Keith Rollin  <krollin@apple.com>

        Fix yet more deprecated uses of -[UIApplication interfaceOrientation]
        https://bugs.webkit.org/show_bug.cgi?id=198381
        <rdar://problem/51265846>

        Reviewed by Wenson Hsieh.

        r245267, r245272, and r245874 fixed many instances of this issue; this
        change fixes the issue for tvOS.

        * wtf/FeatureDefines.h:

2019-05-29  David Kilzer  <ddkilzer@apple.com>

        Clean up a few #include statements in WTF
        <https://webkit.org/b/198351>

        Reviewed by Alex Christensen.

        * benchmarks/HashSetDFGReplay.cpp:
        - Add missing "config.h" include.
        * wtf/ParallelJobsGeneric.cpp:
        - Replace include of ParallelJobs.h with
          ParallelJobsGeneric.h.
        * wtf/StackBounds.cpp:
        - Fix include ordering of StackBounds.h.

2019-05-29  Keith Rollin  <krollin@apple.com>

        Followup to r245267 and r245272: fix even more deprecated uses of -[UIApplication interfaceOrientation]
        https://bugs.webkit.org/show_bug.cgi?id=198348
        <rdar://problem/51234077>

        Reviewed by Wenson Hsieh.

        r245267 and r245272 fixed many instances of this issue; this change
        fixes the issue for watchOS.

        * wtf/FeatureDefines.h:

2019-05-29  David Kilzer  <ddkilzer@apple.com>

        IndexedDatabase Server thread in com.apple.WebKit.Networking process leaks objects into an autoreleasePool that's never cleared
        <https://webkit.org/b/198346>
        <rdar://problem/50895658>

        Reviewed by Brent Fulgham.

        * wtf/CrossThreadTaskHandler.cpp:
        (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
        - Add optional second argument to enable use of an
          AutodrainedPool when running the runloop.
        (WTF::CrossThreadTaskHandler::taskRunLoop):
        - Create an AutodrainedPool if requested when
          CrossThreadTaskHandler was created.
        * wtf/CrossThreadTaskHandler.h:
        (WTF::CrossThreadTaskHandler::AutodrainedPoolForRunLoop):
        - Add enum class for enabling an AutodrainedPool for
          CrossThreadTaskHandler::taskRunLoop().
        (WTF::CrossThreadTaskHandler::CrossThreadTaskHandler):
        - Add optional second argument to enable use of an
          AutodrainedPool when running the runloop.

2019-05-29  Geoffrey Garen  <ggaren@apple.com>

        WeakPtr breaks vtables when upcasting to base classes
        https://bugs.webkit.org/show_bug.cgi?id=188799

        Reviewed by Youenn Fablet.

        This patch switches from reinterpret_cast to static_cast when loading
        from WeakReference storage.

        We know which type to cast *to* because it's specified by the type of
        the calling WeakPtr.

        We know which type to cast *from* because it's specified by a typedef
        in CanMakeWeakPtr.

        (Our convention is that we store a pointer to the class that derives
        from CanMakeWeakPtr. We cast from that pointer to derived pointers when
        we get(). This means that #include of the derived type header is now
        required in order to get() the pointer.)

        * wtf/WeakHashSet.h:
        (WTF::HashTraits<Ref<WeakReference>>::isReleasedWeakValue): Definition
        is now eagerly required because WeakReference is not a template anymore.

        (WTF::WeakHashSet::WeakHashSetConstIterator::get const):
        (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
        (WTF::WeakHashSet::remove):
        (WTF::WeakHashSet::contains const):
        (WTF::WeakHashSet::computesEmpty const):
        (WTF::WeakHashSet::hasNullReferences const):
        (WTF::WeakHashSet::computeSize const):
        (WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue): Deleted.
        Updated for new WeakReference get() API.

        * wtf/WeakPtr.h: Use a macro for TestAPI support. We can't use template
        specialization because WeakReference is not a class template anymore.
        (Or maybe we could have kept it working with a dummy template argument?
        Felt weird, so I switched.)

        (WTF::WeakReference::create):
        (WTF::WeakReference::~WeakReference):
        (WTF::WeakReference::get const):
        (WTF::WeakReference::operator bool const):
        (WTF::WeakReference::WeakReference): WeakReference is just a void* now.
        It's the caller's responsibility, when creating and getting, to use
        a consistent storage type. We ensure a canonical storage type using a
        typedef inside CanMakeWeakPtr.

        (WTF::WeakPtr::WeakPtr):
        (WTF::WeakPtr::get const):
        (WTF::WeakPtr::operator bool const):
        (WTF::WeakPtr::operator-> const):
        (WTF::WeakPtr::operator* const): Adopted new WeakReference API.

        (WTF::WeakPtrFactory::createWeakPtr const): No need for reinterpret_cast.

        (WTF::weak_reference_cast): This isn't required for correctness, but it's
        nice to show a complier error at WeakPtr construction sites when you know
        that the types won't work. Otherwise, you get compiler errors at
        dereference sites, which are slightly more mysterious ways of saying that
        you constructed your WeakPtr incorrectly.

        (WTF::WeakPtr<T>::WeakPtr):
        (WTF::=):
        (WTF::makeWeakPtr):
        (WTF::weak_reference_upcast): Deleted.
        (WTF::weak_reference_downcast): Deleted.

2019-05-29  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r245857.

        Breaks internal builds.

        Reverted changeset:

        "WeakPtr breaks vtables when upcasting to base classes"
        https://bugs.webkit.org/show_bug.cgi?id=188799
        https://trac.webkit.org/changeset/245857

2019-05-28  Geoffrey Garen  <ggaren@apple.com>

        WeakPtr breaks vtables when upcasting to base classes
        https://bugs.webkit.org/show_bug.cgi?id=188799

        Reviewed by Youenn Fablet.

        This patch switches from reinterpret_cast to static_cast when loading
        from WeakReference storage.

        We know which type to cast *to* because it's specified by the type of
        the calling WeakPtr.

        We know which type to cast *from* because it's specified by a typedef
        in CanMakeWeakPtr.

        (Our convention is that we store a pointer to the class that derives
        from CanMakeWeakPtr. We cast from that pointer to derived pointers when
        we get(). This means that #include of the derived type header is now
        required in order to get() the pointer.)

        * wtf/WeakHashSet.h:
        (WTF::HashTraits<Ref<WeakReference>>::isReleasedWeakValue): Definition
        is now eagerly required because WeakReference is not a template anymore.

        (WTF::WeakHashSet::WeakHashSetConstIterator::get const):
        (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
        (WTF::WeakHashSet::remove):
        (WTF::WeakHashSet::contains const):
        (WTF::WeakHashSet::computesEmpty const):
        (WTF::WeakHashSet::hasNullReferences const):
        (WTF::WeakHashSet::computeSize const):
        (WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue): Deleted.
        Updated for new WeakReference get() API.

        * wtf/WeakPtr.h: Use a macro for TestAPI support. We can't use template
        specialization because WeakReference is not a class template anymore.
        (Or maybe we could have kept it working with a dummy template argument?
        Felt weird, so I switched.)

        (WTF::WeakReference::create):
        (WTF::WeakReference::~WeakReference):
        (WTF::WeakReference::get const):
        (WTF::WeakReference::operator bool const):
        (WTF::WeakReference::WeakReference): WeakReference is just a void* now.
        It's the caller's responsibility, when creating and getting, to use
        a consistent storage type. We ensure a canonical storage type using a
        typedef inside CanMakeWeakPtr.

        (WTF::WeakPtr::WeakPtr):
        (WTF::WeakPtr::get const):
        (WTF::WeakPtr::operator bool const):
        (WTF::WeakPtr::operator-> const):
        (WTF::WeakPtr::operator* const): Adopted new WeakReference API.

        (WTF::WeakPtrFactory::createWeakPtr const): No need for reinterpret_cast.

        (WTF::weak_reference_cast): This isn't required for correctness, but it's
        nice to show a complier error at WeakPtr construction sites when you know
        that the types won't work. Otherwise, you get compiler errors at
        dereference sites, which are slightly more mysterious ways of saying that
        you constructed your WeakPtr incorrectly.

        (WTF::WeakPtr<T>::WeakPtr):
        (WTF::=):
        (WTF::makeWeakPtr):
        (WTF::weak_reference_upcast): Deleted.
        (WTF::weak_reference_downcast): Deleted.

2019-05-27  Chris Dumez  <cdumez@apple.com>

        Use a strongly-typed identifier for pages
        https://bugs.webkit.org/show_bug.cgi?id=198206

        Reviewed by Youenn Fablet.

        * wtf/ObjectIdentifier.h:
        (WTF::operator<<):

2019-05-23  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Use target oriented design for bmalloc
        https://bugs.webkit.org/show_bug.cgi?id=198046

        Reviewed by Konstantin Tokarev.

        Use WebKit::bmalloc target.

        * wtf/CMakeLists.txt:

2019-05-23  Ross Kirsling  <ross.kirsling@sony.com>

        [PlayStation] Implement platformUserPreferredLanguages.
        https://bugs.webkit.org/show_bug.cgi?id=198149

        Reviewed by Fujii Hironori.

        * wtf/PlatformPlayStation.cmake:
        * wtf/playstation/LanguagePlayStation.cpp: Added.
        (WTF::platformUserPreferredLanguages):

2019-05-22  Myles C. Maxfield  <mmaxfield@apple.com>

        font-optical-sizing applies the wrong variation value
        https://bugs.webkit.org/show_bug.cgi?id=197528
        <rdar://problem/50152854>

        Reviewed by Antti Koivisto.

        * wtf/Platform.h:

2019-05-22  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r245598.

        Breaks watchOS build.

        Reverted changeset:

        "font-optical-sizing applies the wrong variation value"
        https://bugs.webkit.org/show_bug.cgi?id=197528
        https://trac.webkit.org/changeset/245598

2019-05-21  Ross Kirsling  <ross.kirsling@sony.com>

        [PlayStation] Don't call fcntl.
        https://bugs.webkit.org/show_bug.cgi?id=197961

        Reviewed by Fujii Hironori.

        * wtf/PlatformGTK.cmake:
        * wtf/PlatformJSCOnly.cmake:
        * wtf/PlatformPlayStation.cmake:
        * wtf/PlatformWPE.cmake:
        * wtf/UniStdExtras.h:
        * wtf/playstation/UniStdExtrasPlayStation.cpp: Added.
        (WTF::setCloseOnExec):
        (WTF::dupCloseOnExec):
        (WTF::setNonBlock):
        * wtf/unix/UniStdExtrasUnix.cpp: Renamed from Source/WTF/wtf/UniStdExtras.cpp.
        (WTF::setNonBlock):
        Move UniStdExtras to unix/, add a PlayStation version that doesn't use fcntl, add an abstraction for O_NONBLOCK.

2019-05-20  Tadeu Zagallo  <tzagallo@apple.com>

        Only cache bytecode for API clients in data vaults
        https://bugs.webkit.org/show_bug.cgi?id=197898

        Reviewed by Keith Miller.

        Add SPI to check if a filesystem path is restricted as a data vault.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/spi/darwin/DataVaultSPI.h: Added.

2019-05-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GLIB] Repeating timer is not stopped when stop is called from the callback
        https://bugs.webkit.org/show_bug.cgi?id=197986

        Reviewed by Michael Catanzaro.

        In case of repeating timers we always update the ready time to fire interval after the user callback is called.

        * wtf/glib/RunLoopGLib.cpp:
        (WTF::RunLoop::TimerBase::stop): Reset m_fireInterval and m_isRepeating.

2019-05-19  Darin Adler  <darin@apple.com>

        Change String::number to use "shortest" instead of "fixed precision 6 digits"
        https://bugs.webkit.org/show_bug.cgi?id=178319

        Reviewed by Sam Weinig.

        * wtf/text/StringBuilder.h: Delete appendNumber for floating point and
        appendECMAScriptNumber for single-precision.

        * wtf/text/WTFString.h: Delete String::number for floating point and
        numberToStringECMAScript for single-precision.

2019-05-18  Tadeu Zagallo  <tzagallo@apple.com>

        Add extra information to dumpJITMemory
        https://bugs.webkit.org/show_bug.cgi?id=197998

        Reviewed by Saam Barati.

        Add a new trace point code for JSC::dumpJITMemory

        * wtf/SystemTracing.h:

2019-05-17  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Use builtin FindICU
        https://bugs.webkit.org/show_bug.cgi?id=197934

        Reviewed by Michael Catanzaro.

        Remove uses of ICU_INCLUDE_DIRS and ICU_LIBRARIES. Use ICU:: targets which end
        up propagating to all consumers of WTF.

        * wtf/CMakeLists.txt:
        * wtf/PlatformPlayStation.cmake:

2019-05-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r245418.
        https://bugs.webkit.org/show_bug.cgi?id=197989

        New API test causing crashes on Mojave testers (Requested by
        ShawnRoberts on #webkit).

        Reverted changeset:

        "Add a unit test for client certificate authentication"
        https://bugs.webkit.org/show_bug.cgi?id=197800
        https://trac.webkit.org/changeset/245418

2019-05-16  Keith Miller  <keith_miller@apple.com>

        Wasm should cage the memory base pointers in structs
        https://bugs.webkit.org/show_bug.cgi?id=197620

        Reviewed by Saam Barati.

        Rename reauthenticate to recage.

        * wtf/CagedPtr.h:
        (WTF::CagedPtr::recage):
        (WTF::CagedPtr::reauthenticate): Deleted.

2019-05-16  Alex Christensen  <achristensen@webkit.org>

        Add a unit test for client certificate authentication
        https://bugs.webkit.org/show_bug.cgi?id=197800

        Reviewed by Youenn Fablet.

        * wtf/spi/cocoa/SecuritySPI.h:
        Move declarations from ArgumentCodersCF.cpp so they can be shared.

2019-05-16  Eike Rathke  <erack@redhat.com>

        Fix memcpy() call for big endian
        https://bugs.webkit.org/show_bug.cgi?id=197945

        Reviewed by Michael Catanzaro.

        * wtf/Packed.h:
        (WTF::alignof):

2019-05-15  Ross Kirsling  <ross.kirsling@sony.com>

        [PlayStation] WTFCrash should preserve register state.
        https://bugs.webkit.org/show_bug.cgi?id=197932

        Reviewed by Don Olmstead.

        * wtf/Assertions.cpp:
        * wtf/Assertions.h:
        Let r196397 apply to PlayStation port as well.

2019-05-15  Simon Fraser  <simon.fraser@apple.com>

        Make LOG_WITH_STREAM more efficient
        https://bugs.webkit.org/show_bug.cgi?id=197905

        Reviewed by Alex Christensen.

        Add a streamable repeat() class that can be used to output a series of characters.
        This is useful for indenting output.

        * wtf/text/TextStream.h:
        (WTF::TextStream::repeat::repeat):
        (WTF::TextStream::operator<<):

2019-05-15  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>

        compilation failure with clang 9
        https://bugs.webkit.org/show_bug.cgi?id=197911

        Reviewed by Alex Christensen.

        Use std namespace for nullptr_t in tagArrayPtr templates.

        * wtf/PtrTag.h:
        (WTF::tagArrayPtr):

2019-05-14  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r245281.
        https://bugs.webkit.org/show_bug.cgi?id=197887

        Broke API Test TestWebKitAPI.Challenge.ClientCertificate
        (Requested by aakashjain on #webkit).

        Reverted changeset:

        "Add a unit test for client certificate authentication"
        https://bugs.webkit.org/show_bug.cgi?id=197800
        https://trac.webkit.org/changeset/245281

2019-05-14  Alex Christensen  <achristensen@webkit.org>

        Add a unit test for client certificate authentication
        https://bugs.webkit.org/show_bug.cgi?id=197800

        Reviewed by Youenn Fablet.

        * wtf/spi/cocoa/SecuritySPI.h:
        Move declarations from ArgumentCodersCF.cpp so they can be shared.

2019-05-13  Robin Morisset  <rmorisset@apple.com>

        IndexSet::isEmpty should use BitVector::isEmpty() instead of size()
        https://bugs.webkit.org/show_bug.cgi?id=197857

        Reviewed by Darin Adler.

        * wtf/IndexSet.h:
        (WTF::IndexSet::isEmpty const):

2019-05-13  Youenn Fablet  <youenn@apple.com>

        [Mac] Use realpath for dlopen_preflight
        https://bugs.webkit.org/show_bug.cgi?id=197803

        Reviewed by Eric Carlson.

        * wtf/cocoa/SoftLinking.h:

2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, wrokaround for MACH_VM_MAX_ADDRESS in ARM32_64
        https://bugs.webkit.org/show_bug.cgi?id=197730

        Interestingly, MACH_VM_MAX_ADDRESS is larger than 32bit in ARM32_64, I think this is a bug.
        But for now, we workaround for this case by using `CPU(ADDRESS64)`.

        * wtf/WTFAssertions.cpp:

2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Remove Threading workaround for support libraries in Windows
        https://bugs.webkit.org/show_bug.cgi?id=197350

        Reviewed by Darin Adler.

        We kept old APIs for some support libraries at 2017. This patch removes them.

        * wtf/Threading.h:
        * wtf/win/ThreadingWin.cpp:
        (WTF::createThread): Deleted.
        (WTF::waitForThreadCompletion): Deleted.

2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Simplify GCThread and CompilationThread flags by adding them to WTF::Thread
        https://bugs.webkit.org/show_bug.cgi?id=197146

        Reviewed by Saam Barati.

        Since GCThread and CompilationThread flags exist in WTF, we put these flags into WTF::Thread directly instead of holding them in ThreadSpecific<>.
        And this patch removes dependency from Threading.h to ThreadSpecific.h. ThreadSpecific.h's OS threading primitives are moved to ThreadingPrimitives.h,
        and Threading.h relies on it instead.

        * wtf/CompilationThread.cpp:
        (WTF::isCompilationThread):
        (WTF::initializeCompilationThreads): Deleted.
        (WTF::exchangeIsCompilationThread): Deleted.
        * wtf/CompilationThread.h:
        (WTF::CompilationScope::CompilationScope):
        (WTF::CompilationScope::~CompilationScope):
        (WTF::CompilationScope::leaveEarly):
        * wtf/MainThread.cpp:
        (WTF::initializeMainThread):
        (WTF::initializeMainThreadToProcessMainThread):
        (WTF::isMainThreadOrGCThread):
        (WTF::initializeGCThreads): Deleted.
        (WTF::registerGCThread): Deleted.
        (WTF::mayBeGCThread): Deleted.
        * wtf/MainThread.h:
        * wtf/ThreadSpecific.h:
        (WTF::canBeGCThread>::ThreadSpecific):
        (WTF::canBeGCThread>::set):
        (WTF::threadSpecificKeyCreate): Deleted.
        (WTF::threadSpecificKeyDelete): Deleted.
        (WTF::threadSpecificSet): Deleted.
        (WTF::threadSpecificGet): Deleted.
        * wtf/Threading.cpp:
        (WTF::Thread::exchangeIsCompilationThread):
        (WTF::Thread::registerGCThread):
        (WTF::Thread::mayBeGCThread):
        * wtf/Threading.h:
        (WTF::Thread::isCompilationThread const):
        (WTF::Thread::gcThreadType const):
        (WTF::Thread::joinableState const):
        (WTF::Thread::hasExited const):
        (WTF::Thread::Thread):
        (WTF::Thread::joinableState): Deleted.
        (WTF::Thread::hasExited): Deleted.
        * wtf/ThreadingPrimitives.h:
        (WTF::threadSpecificKeyCreate):
        (WTF::threadSpecificKeyDelete):
        (WTF::threadSpecificSet):
        (WTF::threadSpecificGet):
        * wtf/win/ThreadSpecificWin.cpp:
        (WTF::flsKeys):

2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, follow-up after r245214
        https://bugs.webkit.org/show_bug.cgi?id=197730

        Suggested by Sam. We should have static_assert with MACH_VM_MAX_ADDRESS.

        * wtf/WTFAssertions.cpp:

2019-05-13  Youenn Fablet  <youenn@apple.com>

        Use kDNSServiceFlagsKnownUnique for DNSServiceRegisterRecord only on platforms supporting it
        https://bugs.webkit.org/show_bug.cgi?id=197802

        Reviewed by Eric Carlson.

        * wtf/Platform.h:

2019-05-13  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Compress miscelaneous JIT related data structures with Packed<>
        https://bugs.webkit.org/show_bug.cgi?id=197830

        Reviewed by Saam Barati.

        * wtf/Packed.h:
        (WTF::alignof):

2019-05-13  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, fix unused variable warnings in release builds

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::escapeUnsafeCharacters):

2019-05-12  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Compress Watchpoint size by using enum type and Packed<> data structure
        https://bugs.webkit.org/show_bug.cgi?id=197730

        Reviewed by Filip Pizlo.

        This patch introduces a new data structures, WTF::Packed, WTF::PackedPtr, and WTF::PackedAlignedPtr.

        - WTF::Packed

            WTF::Packed is data storage. We can read and write trivial (in C++ term [1]) data to this storage. The difference to
            the usual storage is that the alignment of this storage is always 1. We access the underlying data by using unalignedLoad/unalignedStore.
            This class offers alignment = 1 data structure instead of missing the following characteristics.

                1. Load / Store are non atomic even if the data size is within a pointer width. We should not use this for a member which can be accessed
                   in a racy way. (e.g. fields accessed optimistically from the concurrent compilers).

                2. We cannot take reference / pointer to the underlying storage since they are unaligned.

                3. Access to this storage is unaligned access. The code is using memcpy, and the compiler will convert to an appropriate unaligned access
                   in certain architectures (x86_64 / ARM64). It could be slow. So use it for non performance sensitive & memory sensitive places.

        - WTF::PackedPtr

            WTF::PackedPtr is a specialization of WTF::Packed<T*>. And it is basically WTF::PackedAlignedPtr with alignment = 1. We further compact
            the pointer by leveraging the platform specific knowledge. In 64bit architectures, the effective width of pointers are less than 64 bit.
            In x86_64, it is 48 bits. And Darwin ARM64 is further smaller, 36 bits. This information allows us to compact the pointer to 6 bytes in
            x86_64 and 5 bytes in Darwin ARM64.

        - WTF::PackedAlignedPtr

            WTF::PackedAlignedPtr is the WTF::PackedPtr with alignment information of the T. If we use this alignment information, we could reduce the
            size of packed pointer further in some cases. For example, since we guarantee that JSCells are 16 byte aligned, low 4 bits are empty. Leveraging
            this information in Darwin ARM64 platform allows us to make packed JSCell pointer 4 bytes (36 - 4 bits). We do not use passed alignment
            information if it is not profitable.

        We also have PackedPtrTraits. This is new PtrTraits and use it for various data structures such as Bag<>.

        [1]: https://en.cppreference.com/w/cpp/types/is_trivial

        * WTF.xcodeproj/project.pbxproj:
        * wtf/Bag.h:
        (WTF::Bag::clear):
        (WTF::Bag::iterator::operator++):
        * wtf/CMakeLists.txt:
        * wtf/DumbPtrTraits.h:
        * wtf/DumbValueTraits.h:
        * wtf/MathExtras.h:
        (WTF::clzConstexpr):
        (WTF::clz):
        (WTF::ctzConstexpr):
        (WTF::ctz):
        (WTF::getLSBSetConstexpr):
        (WTF::getMSBSetConstexpr):
        * wtf/Packed.h: Added.
        (WTF::Packed::Packed):
        (WTF::Packed::get const):
        (WTF::Packed::set):
        (WTF::Packed::operator=):
        (WTF::Packed::exchange):
        (WTF::Packed::swap):
        (WTF::alignof):
        (WTF::PackedPtrTraits::exchange):
        (WTF::PackedPtrTraits::swap):
        (WTF::PackedPtrTraits::unwrap):
        * wtf/Platform.h:
        * wtf/SentinelLinkedList.h:
        (WTF::BasicRawSentinelNode::BasicRawSentinelNode):
        (WTF::BasicRawSentinelNode::prev):
        (WTF::BasicRawSentinelNode::next):
        (WTF::PtrTraits>::remove):
        (WTF::PtrTraits>::prepend):
        (WTF::PtrTraits>::append):
        (WTF::RawNode>::SentinelLinkedList):
        (WTF::RawNode>::remove):
        (WTF::BasicRawSentinelNode<T>::remove): Deleted.
        (WTF::BasicRawSentinelNode<T>::prepend): Deleted.
        (WTF::BasicRawSentinelNode<T>::append): Deleted.
        * wtf/StdLibExtras.h:
        (WTF::roundUpToMultipleOfImpl):
        (WTF::roundUpToMultipleOfImpl0): Deleted.
        * wtf/UnalignedAccess.h:
        (WTF::unalignedLoad):
        (WTF::unalignedStore):

2019-05-10  Saam barati  <sbarati@apple.com>

        Bag's move operator= leaks memory
        https://bugs.webkit.org/show_bug.cgi?id=197757

        Reviewed by Keith Miller.

        It was unused. So I'm just removing it. We can implement it properly
        if we ever need it.

        * wtf/Bag.h:
        (WTF::Bag::operator=): Deleted.

2019-05-10  Fujii Hironori  <Hironori.Fujii@sony.com>

        [WinCairo] storage/indexeddb tests are timing out
        https://bugs.webkit.org/show_bug.cgi?id=196289

        Reviewed by Alex Christensen.

        * wtf/FileSystem.h: Added hardLink.
        * wtf/glib/FileSystemGlib.cpp:
        (WTF::FileSystemImpl::hardLink):
        (WTF::FileSystemImpl::hardLinkOrCopyFile):
        * wtf/posix/FileSystemPOSIX.cpp:
        (WTF::FileSystemImpl::hardLink):
        (WTF::FileSystemImpl::hardLinkOrCopyFile):
        * wtf/win/FileSystemWin.cpp:
        (WTF::FileSystemImpl::hardLink):
        (WTF::FileSystemImpl::hardLinkOrCopyFile):
        Added hardLink. Let hardLinkOrCopyFile use the hardLink.

2019-05-10  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Remove "private:" from Noncopyable and Nonmovable macros
        https://bugs.webkit.org/show_bug.cgi?id=197767

        Reviewed by Saam Barati.

        We no longer need "private:".

        * wtf/Noncopyable.h:
        * wtf/Nonmovable.h:

2019-05-08  Zan Dobersek  <zdobersek@igalia.com>

        [GLib] Rework WPE RunLoopSourcePriority values
        https://bugs.webkit.org/show_bug.cgi?id=197167

        Reviewed by Carlos Garcia Campos.

        The GLib priorities for the WPE port were initially aligned on the -70
        value, theory being that this would help avoid any default-priority
        GSources spawned in different dependency libraries affecting our
        scheduling. Today it seems that extra caution might not be really
        necessary.

        This change aligns the base priority value with GLib's default priority
        value of 0. We maintain the relativity of priority values by effectively
        increasing each priority by 70.

        * wtf/glib/RunLoopSourcePriority.h:

2019-05-08  Alex Christensen  <achristensen@webkit.org>

        Add SPI to set HSTS storage directory
        https://bugs.webkit.org/show_bug.cgi?id=197259

        Reviewed by Brady Eidson.

        * wtf/Platform.h:

2019-05-08  Keith Miller  <keith_miller@apple.com>

        Remove Gigacage from arm64 and use PAC for arm64e instead
        https://bugs.webkit.org/show_bug.cgi?id=197110

        Reviewed by Saam Barati.

        This patch changes the Gigacage to use PAC on arm64e. As part of
        this process all platforms must provide their length when
        materializing the caged pointer. Since it would be somewhat
        confusing to have two parameters for an operator [] those methods
        have been removed. Lastly, this patch removes the specializations
        for void* caged pointers, instead opting to use enable_if on the
        methods that would normally fail on void* e.g. anything that
        returns a T&.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/CagedPtr.h:
        (WTF::CagedPtr::CagedPtr):
        (WTF::CagedPtr::get const):
        (WTF::CagedPtr::getMayBeNull const):
        (WTF::CagedPtr::getUnsafe const):
        (WTF::CagedPtr::at const):
        (WTF::CagedPtr::reauthenticate):
        (WTF::CagedPtr::operator=):
        (WTF::CagedPtr::operator== const):
        (WTF::CagedPtr::operator bool const):
        (WTF::CagedPtr::operator* const): Deleted.
        (WTF::CagedPtr::operator-> const): Deleted.
        (WTF::CagedPtr::operator[] const): Deleted.
        (): Deleted.
        * wtf/CagedUniquePtr.h:
        (WTF::CagedUniquePtr::CagedUniquePtr):
        (WTF::CagedUniquePtr::create):
        (WTF::CagedUniquePtr::~CagedUniquePtr):
        (WTF::CagedUniquePtr::destroy):
        (): Deleted.
        * wtf/Gigacage.h:
        (Gigacage::cagedMayBeNull):
        * wtf/PtrTag.h:
        (WTF::tagArrayPtr):
        (WTF::untagArrayPtr):
        (WTF::removeArrayPtrTag):
        (WTF::retagArrayPtr):
        * wtf/TaggedArrayStoragePtr.h: Copied from Source/JavaScriptCore/runtime/ArrayBufferView.cpp.
        (WTF::TaggedArrayStoragePtr::TaggedArrayStoragePtr):
        (WTF::TaggedArrayStoragePtr::get const):
        (WTF::TaggedArrayStoragePtr::getUnsafe const):
        (WTF::TaggedArrayStoragePtr::resize):
        (WTF::TaggedArrayStoragePtr::operator bool const):

2019-05-08  Robin Morisset  <rmorisset@apple.com>

        WTF::TimingScope should show the total duration and not just the mean
        https://bugs.webkit.org/show_bug.cgi?id=197672

        Reviewed by Alex Christensen.

        * wtf/TimingScope.cpp:
        (WTF::TimingScope::scopeDidEnd):

2019-05-07  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] LLIntPrototypeLoadAdaptiveStructureWatchpoint does not require Bag<>
        https://bugs.webkit.org/show_bug.cgi?id=197645

        Reviewed by Saam Barati.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/Nonmovable.h: Copied from Source/JavaScriptCore/bytecode/LLIntPrototypeLoadAdaptiveStructureWatchpoint.h.
        * wtf/Vector.h:
        (WTF::minCapacity>::uncheckedConstructAndAppend):

2019-05-07  Eric Carlson  <eric.carlson@apple.com>

        Define media buffering policy
        https://bugs.webkit.org/show_bug.cgi?id=196979
        <rdar://problem/28383861>

        Reviewed by Jer Noble.

        * wtf/Platform.h:

2019-05-07  Robin Morisset  <rmorisset@apple.com>

        WTF::BitVector should have an isEmpty() method
        https://bugs.webkit.org/show_bug.cgi?id=197637

        Reviewed by Keith Miller.

        * wtf/BitVector.cpp:
        (WTF::BitVector::isEmptySlow const):
        * wtf/BitVector.h:
        (WTF::BitVector::isEmpty const):

2019-05-07  Brent Fulgham  <bfulgham@apple.com>

        Correct JSON parser to address unterminated escape character
        https://bugs.webkit.org/show_bug.cgi?id=197582
        <rdar://problem/50459177>

        Reviewed by Alex Christensen.

        Correct JSON parser code to properly deal with unterminated escape
        characters.

        * wtf/JSONValues.cpp:
        (WTF::JSONImpl::decodeString):
        (WTF::JSONImpl::parseStringToken):

2019-05-07  Alex Christensen  <achristensen@webkit.org>

        Add a release assertion that Functions can only be constructed from non-null CompletionHandlers
        https://bugs.webkit.org/show_bug.cgi?id=197641

        Reviewed by Chris Dumez.

        This will help us find the cause of rdar://problem/48679972 by seeing the crash when the Function is dispatched,
        not when it's called with no interesting stack trace.  I manually verified this assertion is hit in such a case.
        We should also have no legitimate use of creating a Function out of a null CompletionHandler then never calling it.

        * wtf/CompletionHandler.h:
        (WTF::Detail::CallableWrapper<CompletionHandler<Out):
        * wtf/Function.h:
        (WTF::Detail::CallableWrapperBase::~CallableWrapperBase):
        (WTF::Detail::CallableWrapper::CallableWrapper):
        (WTF::Function<Out):

2019-05-06  Christopher Reid  <chris.reid@sony.com>

        [JSC] Respect already defined USE_LLINT_EMBEDDED_OPCODE_ID compiler variable.
        https://bugs.webkit.org/show_bug.cgi?id=197633

        Reviewed by Don Olmstead.

        When the variable `USE_LLINT_EMBEDDED_OPCODE_ID` is defined, stop defining
        its value with platform default one.

        * wtf/Platform.h:

2019-05-03  Sihui Liu  <sihui_liu@apple.com>

        Add assertion to check whether shm files have maximum FileProtection of CompleteUnlessOpen
        https://bugs.webkit.org/show_bug.cgi?id=197390
        <rdar://problem/42685773>

        Reviewed by Geoffrey Garen.

        * wtf/FileSystem.cpp:
        (WTF::FileSystemImpl::isSafeToUseMemoryMapForPath):
        (WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):
        * wtf/FileSystem.h:
        * wtf/cocoa/FileSystemCocoa.mm:
        (WTF::FileSystemImpl::isSafeToUseMemoryMapForPath):
        (WTF::FileSystemImpl::makeSafeToUseMemoryMapForPath):

2019-05-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r244881.
        https://bugs.webkit.org/show_bug.cgi?id=197559

        Breaks compilation of jsconly on linux, breaking compilation
        for jsc-i386-ews, jsc-mips-ews and jsc-armv7-ews (Requested by
        guijemont on #webkit).

        Reverted changeset:

        "[CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into
        WEBKIT_COPY_FILES"
        https://bugs.webkit.org/show_bug.cgi?id=197174
        https://trac.webkit.org/changeset/244881

2019-05-02  Alex Christensen  <achristensen@webkit.org>

        Mark U+01C0 as a homograph of U+006C
        https://bugs.webkit.org/show_bug.cgi?id=197526
        <rdar://problem/50301904>

        Reviewed by Tim Horton.

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::isLookalikeCharacter):

2019-05-02  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Refactor WEBKIT_MAKE_FORWARDING_HEADERS into WEBKIT_COPY_FILES
        https://bugs.webkit.org/show_bug.cgi?id=197174

        Reviewed by Alex Christensen.

        Replace WEBKIT_MAKE_FORWARDING_HEADERS with WEBKIT_COPY_FILES.

        * wtf/CMakeLists.txt:

2019-05-01  Darin Adler  <darin@apple.com>

        WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
        https://bugs.webkit.org/show_bug.cgi?id=195535

        Reviewed by Alexey Proskuryakov.

        * wtf/text/AtomicString.cpp:
        (WTF::AtomicString::fromUTF8Internal): Added code to compute string length when the
        end is nullptr; this behavior used to be implemented inside the
        calculateStringHashAndLengthFromUTF8MaskingTop8Bits function.

        * wtf/text/AtomicStringImpl.cpp:
        (WTF::HashAndUTF8CharactersTranslator::translate): Updated for change to
        convertUTF8ToUTF16.

        * wtf/text/AtomicStringImpl.h: Took the WTF_EXPORT_PRIVATE off of the
        AtomicStringImpl::addUTF8 function. This is used only inside a non-inlined function in
        the AtomicString class and its behavior changed subtly in this patch; it's helpful
        to document that it's not exported.

        * wtf/text/StringImpl.cpp:
        (WTF::StringImpl::utf8Impl): Don't pass "true" for strictness to convertUTF16ToUTF8
        since strict is the default. Also updated for changes to ConversionResult.
        (WTF::StringImpl::utf8ForCharacters): Updated for change to convertLatin1ToUTF8.
        (WTF::StringImpl::tryGetUtf8ForRange const): Ditto.

        * wtf/text/StringView.cpp: Removed uneeded include of UTF8Conversion.h.

        * wtf/text/WTFString.cpp:
        (WTF::String::fromUTF8): Updated for change to convertUTF8ToUTF16.

        * wtf/unicode/UTF8Conversion.cpp:
        (WTF::Unicode::inlineUTF8SequenceLengthNonASCII): Deleted.
        (WTF::Unicode::inlineUTF8SequenceLength): Deleted.
        (WTF::Unicode::UTF8SequenceLength): Deleted.
        (WTF::Unicode::decodeUTF8Sequence): Deleted.
        (WTF::Unicode::convertLatin1ToUTF8): Use U8_APPEND, enabling us to remove
        almost everything in the function. Also changed resturn value to be a boolean
        to indicate success since there is only one possible failure (target exhausted).
        There is room for further simplification, since most callers have lengths rather
        than end pointers for the source buffer, and all but one caller supplies a buffer
        size known to be sufficient, so those don't need a return value, nor do they need
        to pass an end of buffer pointer.
        (WTF::Unicode::convertUTF16ToUTF8): Use U_IS_LEAD, U_IS_TRAIL,
        U16_GET_SUPPLEMENTARY, U_IS_SURROGATE, and U8_APPEND. Also changed behavior
        for non-strict mode so that unpaired surrogates will be turned into the
        replacement character instead of invalid UTF-8 sequences, because U8_APPEND
        won't create an invalid UTF-8 sequence, and because we don't need to do that
        for any good reason at any call site.
        (WTF::Unicode::isLegalUTF8): Deleted.
        (WTF::Unicode::readUTF8Sequence): Deleted.
        (WTF::Unicode::convertUTF8ToUTF16): Use U8_NEXT instead of
        inlineUTF8SequenceLength, isLegalUTF8, and readUTF8Sequence. Use
        U16_APPEND instead of lots of code that does the same thing. There is
        room for further simplification since most callers don't need the "all ASCII"
        feature and could probably pass the arguments in a more natural way.
        (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
        Use U8_NEXT instead of isLegalUTF8, readUTF8Sequence, and various
        error handling checks for things that are handled by U8_NEXT. Also removed
        support for passing nullptr for end to specify a null-terminated string.
        (WTF::Unicode::equalUTF16WithUTF8): Ditto.

        * wtf/unicode/UTF8Conversion.h: Removed UTF8SequenceLength and
        decodeUTF8Sequence. Changed the ConversionResult to match WebKit coding
        style, with an eye toward perhaps removing it in the future. Changed
        the convertUTF8ToUTF16 return value to a boolean and removed the "strict"
        argument since no caller was passing false. Changed the convertLatin1ToUTF8
        return value to a boolean. Tweaked comments.

2019-05-01  Shawn Roberts  <sroberts@apple.com>

        Unreviewed, rolling out r244821.

        Causing

        Reverted changeset:

        "WebKit has too much of its own UTF-8 code and should rely
        more on ICU's UTF-8 support"
        https://bugs.webkit.org/show_bug.cgi?id=195535
        https://trac.webkit.org/changeset/244821

2019-05-01  Shawn Roberts  <sroberts@apple.com>

        Unreviewed, rolling out r244822.

        Causing 4 Test262 failures on JSC Release and Debug

        Reverted changeset:

        https://trac.webkit.org/changeset/244822 https://trac.webkit.org/changeset/244821

2019-04-29  Darin Adler  <darin@apple.com>

        WebKit has too much of its own UTF-8 code and should rely more on ICU's UTF-8 support
        https://bugs.webkit.org/show_bug.cgi?id=195535

        Reviewed by Alexey Proskuryakov.

        * wtf/text/AtomicString.cpp:
        (WTF::AtomicString::fromUTF8Internal): Added code to compute string length when the
        end is nullptr; this behavior used to be implemented inside the
        calculateStringHashAndLengthFromUTF8MaskingTop8Bits function.

        * wtf/text/AtomicStringImpl.cpp:
        (WTF::HashAndUTF8CharactersTranslator::translate): Updated for change to
        convertUTF8ToUTF16.

        * wtf/text/AtomicStringImpl.h: Took the WTF_EXPORT_PRIVATE off of the
        AtomicStringImpl::addUTF8 function. This is used only inside a non-inlined function in
        the AtomicString class and its behavior changed subtly in this patch; it's helpful
        to document that it's not exported.

        * wtf/text/StringImpl.cpp:
        (WTF::StringImpl::utf8Impl): Don't pass "true" for strictness to convertUTF16ToUTF8
        since strict is the default. Also updated for changes to ConversionResult.
        (WTF::StringImpl::utf8ForCharacters): Updated for change to convertLatin1ToUTF8.
        (WTF::StringImpl::tryGetUtf8ForRange const): Ditto.

        * wtf/text/StringView.cpp: Removed uneeded include of UTF8Conversion.h.

        * wtf/text/WTFString.cpp:
        (WTF::String::fromUTF8): Updated for change to convertUTF8ToUTF16.

        * wtf/unicode/UTF8Conversion.cpp:
        (WTF::Unicode::inlineUTF8SequenceLengthNonASCII): Deleted.
        (WTF::Unicode::inlineUTF8SequenceLength): Deleted.
        (WTF::Unicode::UTF8SequenceLength): Deleted.
        (WTF::Unicode::decodeUTF8Sequence): Deleted.
        (WTF::Unicode::convertLatin1ToUTF8): Use U8_APPEND, enabling us to remove
        almost everything in the function. Also changed resturn value to be a boolean
        to indicate success since there is only one possible failure (target exhausted).
        There is room for further simplification, since most callers have lengths rather
        than end pointers for the source buffer, and all but one caller supplies a buffer
        size known to be sufficient, so those don't need a return value, nor do they need
        to pass an end of buffer pointer.
        (WTF::Unicode::convertUTF16ToUTF8): Use U_IS_LEAD, U_IS_TRAIL,
        U16_GET_SUPPLEMENTARY, U_IS_SURROGATE, and U8_APPEND. Also changed behavior
        for non-strict mode so that unpaired surrogates will be turned into the
        replacement character instead of invalid UTF-8 sequences, because U8_APPEND
        won't create an invalid UTF-8 sequence, and because we don't need to do that
        for any good reason at any call site.
        (WTF::Unicode::isLegalUTF8): Deleted.
        (WTF::Unicode::readUTF8Sequence): Deleted.
        (WTF::Unicode::convertUTF8ToUTF16): Use U8_NEXT instead of
        inlineUTF8SequenceLength, isLegalUTF8, and readUTF8Sequence. Use
        U16_APPEND instead of lots of code that does the same thing. There is
        room for further simplification since most callers don't need the "all ASCII"
        feature and could probably pass the arguments in a more natural way.
        (WTF::Unicode::calculateStringHashAndLengthFromUTF8MaskingTop8Bits):
        Use U8_NEXT instead of isLegalUTF8, readUTF8Sequence, and various
        error handling checks for things that are handled by U8_NEXT. Also removed
        support for passing nullptr for end to specify a null-terminated string.
        (WTF::Unicode::equalUTF16WithUTF8): Ditto.

        * wtf/unicode/UTF8Conversion.h: Removed UTF8SequenceLength and
        decodeUTF8Sequence. Changed the ConversionResult to match WebKit coding
        style, with an eye toward perhaps removing it in the future. Changed
        the convertUTF8ToUTF16 return value to a boolean and removed the "strict"
        argument since no caller was passing false. Changed the convertLatin1ToUTF8
        return value to a boolean. Tweaked comments.

2019-04-30  John Wilander  <wilander@apple.com>

        Add logging of Ad Click Attribution errors and events to a dedicated channel
        https://bugs.webkit.org/show_bug.cgi?id=197332
        <rdar://problem/49918800>

        Reviewed by Youenn Fablet.

        Added missing RELEASE_LOG_INFO and RELEASE_LOG_INFO_IF dummies
        for RELEASE_LOG_DISABLED.

        * wtf/Assertions.h:

2019-04-30  Youenn Fablet  <youenn@apple.com>

        Make Document audio producers use WeakPtr
        https://bugs.webkit.org/show_bug.cgi?id=197382

        Reviewed by Eric Carlson.

        * wtf/WeakHashSet.h:
        (WTF::WeakHashSet::hasNullReferences const):

2019-04-30  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r244773.
        https://bugs.webkit.org/show_bug.cgi?id=197436

        Causing assertion failures on debug queues (Requested by
        ShawnRoberts on #webkit).

        Reverted changeset:

        "Make Document audio producers use WeakPtr"
        https://bugs.webkit.org/show_bug.cgi?id=197382
        https://trac.webkit.org/changeset/244773

2019-04-30  Youenn Fablet  <youenn@apple.com>

        Make Document audio producers use WeakPtr
        https://bugs.webkit.org/show_bug.cgi?id=197382

        Reviewed by Eric Carlson.

        * wtf/WeakHashSet.h:
        (WTF::WeakHashSet::hasNullReferences const):

2019-04-29  Alex Christensen  <achristensen@webkit.org>

        <rdar://problem/50299396> Fix internal High Sierra build
        https://bugs.webkit.org/show_bug.cgi?id=197388

        * Configurations/Base.xcconfig:

2019-04-29  Yusuke Suzuki  <ysuzuki@apple.com>

        JITStubRoutineSet wastes 180KB of HashTable capacity on can.com
        https://bugs.webkit.org/show_bug.cgi?id=186732

        Reviewed by Saam Barati.

        * wtf/Range.h:
        (WTF::Range::contains const):

2019-04-29  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Win] Add flag to enable version information stamping and disable by default.
        https://bugs.webkit.org/show_bug.cgi?id=197249
        <rdar://problem/50224412>

        Reviewed by Ross Kirsling.

        This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
        Then enable it by default on AppleWin.

        * wtf/CMakeLists.txt:

2019-04-26  Don Olmstead  <don.olmstead@sony.com>

        Add WTF::findIgnoringASCIICaseWithoutLength to replace strcasestr
        https://bugs.webkit.org/show_bug.cgi?id=197291

        Reviewed by Konstantin Tokarev.

        Adds an implementation of strcasestr within WTF.

        * wtf/text/StringCommon.h:
        (WTF::findIgnoringASCIICaseWithoutLength):

2019-04-26  Sihui Liu  <sihui_liu@apple.com>

        Stop IDB transactions to release locked database files when network process is ready to suspend
        https://bugs.webkit.org/show_bug.cgi?id=196372
        <rdar://problem/48930116>

        Reviewed by Brady Eidson.

        Provide a method to suspend the thread and block main thread until the thread is suspended.

        * wtf/CrossThreadTaskHandler.cpp:
        (WTF::CrossThreadTaskHandler::taskRunLoop):
        (WTF::CrossThreadTaskHandler::suspendAndWait):
        (WTF::CrossThreadTaskHandler::resume):
        * wtf/CrossThreadTaskHandler.h:

2019-04-25  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed, rolling out r244669.

        Windows ports can't clean build.

        Reverted changeset:

        "[Win] Add flag to enable version information stamping and
        disable by default."
        https://bugs.webkit.org/show_bug.cgi?id=197249
        https://trac.webkit.org/changeset/244669

2019-04-25  Basuke Suzuki  <Basuke.Suzuki@sony.com>

        [Win] Add flag to enable version information stamping and disable by default.
        https://bugs.webkit.org/show_bug.cgi?id=197249

        Reviewed by Ross Kirsling.

        This feature is only used in AppleWin port. Add flag for this task and make it OFF by default.
        Then enable it by default on AppleWin.

        * wtf/CMakeLists.txt:

2019-04-25  Timothy Hatcher  <timothy@apple.com>

        Disable date and time inputs on iOSMac.
        https://bugs.webkit.org/show_bug.cgi?id=197287
        rdar://problem/46794376

        Reviewed by Wenson Hsieh.

        * wtf/FeatureDefines.h:

2019-04-25  Alex Christensen  <achristensen@webkit.org>

        Fix High Sierra build after r244653
        https://bugs.webkit.org/show_bug.cgi?id=197131

        * wtf/StdLibExtras.h:
        High Sierra thinks __cplusplus is 201406 even when using C++17.
        Removing the __cplusplus check resolves the build failure on High Sierra.
        We can clean up StdLibExtras more later.

2019-04-25  Alex Christensen  <achristensen@webkit.org>

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

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig:
        * wtf/CMakeLists.txt:
        * wtf/Variant.h:
        (WTF::switchOn):

2019-04-25  Alex Christensen  <achristensen@webkit.org>

        Remove DeprecatedOptional
        https://bugs.webkit.org/show_bug.cgi?id=197161

        Reviewed by Darin Adler.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/DeprecatedOptional.h: Removed.

2019-04-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Hardcoded text color in input fields
        https://bugs.webkit.org/show_bug.cgi?id=126907

        Reviewed by Michael Catanzaro.

        Define HAVE_OS_DARK_MODE_SUPPORT for GTK port.

        * wtf/Platform.h:

2019-04-24  Tim Horton  <timothy_horton@apple.com>

        Clean up WKActionSheetAssistant's use of LaunchServices
        https://bugs.webkit.org/show_bug.cgi?id=194645
        <rdar://problem/47707952>

        Reviewed by Andy Estes.

        * wtf/Platform.h:

2019-04-24  chris fleizach  <cfleizach@apple.com>

        AX: Remove deprecated Accessibility Object Model events
        https://bugs.webkit.org/show_bug.cgi?id=197073
        <rdar://problem/50027819>

        Reviewed by Ryosuke Niwa.

        * wtf/Platform.h:

2019-04-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r244558.
        https://bugs.webkit.org/show_bug.cgi?id=197219

        Causing crashes on iOS Sim Release and Debug (Requested by
        ShawnRoberts on #webkit).

        Reverted changeset:

        "Remove DeprecatedOptional"
        https://bugs.webkit.org/show_bug.cgi?id=197161
        https://trac.webkit.org/changeset/244558

2019-04-23  Alex Christensen  <achristensen@webkit.org>

        Remove DeprecatedOptional
        https://bugs.webkit.org/show_bug.cgi?id=197161

        Reviewed by Darin Adler.

        This was added in r209326 to be compatible with a shipping version of Safari.
        We have released several versions of Safari since then, so do what the comments say and remove it.
        The existence of this std::optional makes migrating to C++17 harder, and there's no reason to keep it.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/DeprecatedOptional.h: Removed.

2019-04-21  Zan Dobersek  <zdobersek@igalia.com>

        [WTF] Generic memoryFootprint() implementation should use bmalloc on Linux
        https://bugs.webkit.org/show_bug.cgi?id=196963

        Reviewed by Don Olmstead.

        Have the generic memoryFootprint() implementation use bmalloc's
        memoryFootprint() API on Linux, whenever the system malloc option is
        not enabled. Limitation to Linux platforms is due to the bmalloc
        implementation being limited to those configurations (excluding iOS
        which doesn't use MemoryFootprintGeneric.cpp).

        * wtf/PlatformWPE.cmake: Switch to building MemoryFootprintGeneric.cpp.
        * wtf/generic/MemoryFootprintGeneric.cpp:
        (WTF::memoryFootprint):

2019-04-19  Ryosuke Niwa  <rniwa@webkit.org>

        HashTable::removeIf always shrinks the hash table by half even if there is nothing left
        https://bugs.webkit.org/show_bug.cgi?id=196681
        <rdar://problem/49917764>

        Reviewed by Darin Adler.

        Address Darin's comments by removing the explicit type from std::max.

        * wtf/HashTable.h:
        (WTF::KeyTraits>::computeBestTableSize):
        (WTF::KeyTraits>::shrinkToBestSize):

2019-04-18  Chris Dumez  <cdumez@apple.com>

        [iOS] Improve detection of when web views go to background / foreground
        https://bugs.webkit.org/show_bug.cgi?id=197035
        <rdar://problem/45281182>

        Reviewed by Tim Horton.

        Add build time flag.

        * wtf/FeatureDefines.h:

2019-04-18  Jer Noble  <jer.noble@apple.com>

        Add support for parsing FairPlayStreaming PSSH boxes.
        https://bugs.webkit.org/show_bug.cgi?id=197064

        Reviewed by Eric Carlson.

        * wtf/Platform.h:

2019-04-18  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] StringBuilder should set correct m_is8Bit flag when merging
        https://bugs.webkit.org/show_bug.cgi?id=197053

        Reviewed by Saam Barati.

        When appending StringBuilder to the other StringBuilder, we have a path that does not set m_is8Bit flag correctly.
        This patch correctly sets this flag. And we also change 0 to nullptr when we are using 0 as a pointer.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::reserveCapacity):
        (WTF::StringBuilder::appendUninitializedSlow):
        (WTF::StringBuilder::append):
        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::append):
        (WTF::StringBuilder::characters8 const):
        (WTF::StringBuilder::characters16 const):
        (WTF::StringBuilder::clear):

2019-04-17  Tim Horton  <timothy_horton@apple.com>

        Adopt different scroll view flashing SPI
        https://bugs.webkit.org/show_bug.cgi?id=197043
        <rdar://problem/49996476>

        Reviewed by Wenson Hsieh.

        * wtf/Platform.h:

2019-04-17  Jer Noble  <jer.noble@apple.com>

        Enable HAVE_AVFOUNDATION_VIDEO_OUTPUT on PLATFORM(IOSMAC)
        https://bugs.webkit.org/show_bug.cgi?id=196994
        <rdar://problem/44158331>

        Reviewed by Alex Christensen.

        * wtf/Platform.h:

2019-04-16  Stephan Szabo  <stephan.szabo@sony.com>

        [PlayStation] Update port for system library changes
        https://bugs.webkit.org/show_bug.cgi?id=196978

        Reviewed by Ross Kirsling.

        * wtf/PlatformPlayStation.cmake:
        Remove reference to deleted system library

2019-04-16  Jer Noble  <jer.noble@apple.com>

        Enable HAVE_AVKIT on PLATFORM(IOSMAC)
        https://bugs.webkit.org/show_bug.cgi?id=196987

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2019-04-16  Robin Morisset  <rmorisset@apple.com>

        [WTF] holdLock should be marked WARN_UNUSED_RETURN
        https://bugs.webkit.org/show_bug.cgi?id=196922

        Reviewed by Keith Miller.

        * wtf/Locker.h:

2019-04-16  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Set WTF_SCRIPTS_DIR
        https://bugs.webkit.org/show_bug.cgi?id=196917

        Reviewed by Konstantin Tokarev.

        Use WTF_SCRIPTS_DIR for copying the unified sources script.

        * wtf/CMakeLists.txt:

2019-04-15  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] FontPlatformData objects aren't cached at all when using font-family:system-ui
        https://bugs.webkit.org/show_bug.cgi?id=196846
        <rdar://problem/49499971>

        Reviewed by Simon Fraser and Darin Adler.

        * wtf/RetainPtr.h:
        (WTF::safeCFEqual):
        (WTF::safeCFHash):

2019-04-12  Ryosuke Niwa  <rniwa@webkit.org>

        HashTable::removeIf always shrinks the hash table by half even if there is nothing left
        https://bugs.webkit.org/show_bug.cgi?id=196681

        Reviewed by Darin Adler.

        Made HashTable::removeIf shrink to the "best size", which is the least power of two bigger
        than twice the key count as already used in the copy constructor.

        * wtf/HashTable.h:
        (WTF::HashTable::computeBestTableSize): Extracted from the copy constructor.
        (WTF::HashTable::shrinkToBestSize): Added.
        (WTF::HashTable::removeIf): Use shrinkToBestSize instead of shrink.
        (WTF::HashTable::HashTable):

2019-04-12  Eric Carlson  <eric.carlson@apple.com>

        Update AudioSession route sharing policy
        https://bugs.webkit.org/show_bug.cgi?id=196776
        <rdar://problem/46501611>

        Reviewed by Jer Noble.

        * wtf/Platform.h: Define HAVE_ROUTE_SHARING_POLICY_LONG_FORM_VIDEO.

2019-04-10  Said Abou-Hallawa  <sabouhallawa@apple.com>

        requestAnimationFrame should execute before the next frame
        https://bugs.webkit.org/show_bug.cgi?id=177484

        Reviewed by Simon Fraser.

        Add trace points for the page RenderingUpdate.

        * wtf/SystemTracing.h:

2019-04-10  Claudio Saavedra  <csaavedra@igalia.com>

        Do not generate empty unified sources when unified builds are disabled
        https://bugs.webkit.org/show_bug.cgi?id=196767

        Reviewed by Konstantin Tokarev.

        If unified builds are disabled, the ruby script to generate them
        is still used to list the sources that need to be
        compiled. Currently, the script always generates bundled unified
        sources, even if it's being used just to list all the sources. So
        when the unified builds are disabled and no files are going to be
        bundled, the script generates one empty file per bundle manager
        (that is, one C++ and one ObjectiveC), that gets added to the
        sources to be compiled.

        * Scripts/generate-unified-source-bundles.rb: Only go through the
        bundle managers file generation when not running in
        PrintAllSources mode, to avoid generating empty bundle files.

2019-04-10  Enrique Ocaña González  <eocanha@igalia.com>

        [WPE] Avoid async IO starving timers
        https://bugs.webkit.org/show_bug.cgi?id=196733

        Reviewed by Carlos Garcia Campos.

        If AsyncIONetwork and DiskCacheRead priorities are higher than
        MainThreadSharedTimer the timers get starved. This causes the NetworkProcess
        to accumulate MB of data instead of handing it down to the WebProcess (done
        using a Timer). This eventually causes an Out Of Memory kill on the
        NetworkProcess on some embedded platforms with low memory limits.

        This patch levels the three priorities to the same value, while still leaving
        DiskCacheWrite with less priority than DiskCacheRead.

        * wtf/glib/RunLoopSourcePriority.h: Changed RunLoopSourcePriority values for WPE.

2019-04-09  Don Olmstead  <don.olmstead@sony.com>

        [CMake] WTF derived sources should only be referenced inside WTF
        https://bugs.webkit.org/show_bug.cgi?id=196706

        Reviewed by Konstantin Tokarev.

        Use ${WTF_DERIVED_SOURCES_DIR} instead of ${DERIVED_SOURCES_DIR} within WTF.

        * wtf/CMakeLists.txt:
        * wtf/PlatformJSCOnly.cmake:
        * wtf/PlatformMac.cmake:

2019-04-09  Don Olmstead  <don.olmstead@sony.com>

        [CMake] Apple builds should use ICU_INCLUDE_DIRS
        https://bugs.webkit.org/show_bug.cgi?id=196720

        Reviewed by Konstantin Tokarev.

        Copy ICU headers for Apple builds into ICU_INCLUDE_DIRS.

        * CMakeLists.txt:
        * wtf/PlatformMac.cmake:

2019-04-08  Don Olmstead  <don.olmstead@sony.com>

        [CMake][WinCairo] Separate copied headers into different directories
        https://bugs.webkit.org/show_bug.cgi?id=196655

        Reviewed by Michael Catanzaro.

        * wtf/CMakeLists.txt:

2019-04-08  Guillaume Emont  <guijemont@igalia.com>

        Enable DFG on MIPS
        https://bugs.webkit.org/show_bug.cgi?id=196689

        Reviewed by Žan Doberšek.

        Since the bytecode change, we enabled the baseline JIT on mips in
        r240432, but DFG is still missing. With this change, all tests are
        passing on a ci20 board.

        * wtf/Platform.h: Enable DFG on MIPS by default.

2019-04-06  Ryosuke Niwa  <rniwa@webkit.org>

        Added tests for WeakHashSet::computesEmpty and WeakHashSet::computeSize
        https://bugs.webkit.org/show_bug.cgi?id=196669

        Reviewed by Geoffrey Garen.

        Removed the superflous type names from forward declarations, and made WeakHashSet::add
        take a const object to match other container types in WTF.

        * wtf/WeakHashSet.h:
        (WTF::WeakHashSet::add):
        * wtf/WeakPtr.h:

2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>

        Make WeakPtr<Element> possible and deploy it in form associated elements code
        https://bugs.webkit.org/show_bug.cgi?id=196626

        Reviewed by Antti Koivisto.

        Make it possible to call WeakHashSet::remove and WeakHashSet::contains with
        a subclass type U of a type T used to define WeakReference<T>.

        Also added computesEmpty, which is slightly more efficient than computeSize
        when m_set is either empty or when there are non-released weak references in the set.

        * wtf/WeakHashSet.h:
        (WTF::WeakHashSet::remove):
        (WTF::WeakHashSet::contains const):
        (WTF::WeakHashSet::computesEmpty const): Added.
        * wtf/WeakPtr.h: Added an explicit forward declaration of WeakHashSet to avoid
        build failures in GTK+ and WPE ports.

2019-04-05  Eric Carlson  <eric.carlson@apple.com>

        Remove AUDIO_TOOLBOX_AUDIO_SESSION
        https://bugs.webkit.org/show_bug.cgi?id=196653
        <rdar://problem/49652098>

        Reviewed by Jer Noble.

        * wtf/Platform.h:

2019-04-05  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed manual rollout of r243929
        https://bugs.webkit.org/show_bug.cgi?id=196626

        * wtf/WeakHashSet.h:
        (WTF::WeakHashSet::remove):
        (WTF::WeakHashSet::contains const):
        (WTF::WeakHashSet::computesEmpty const): Deleted.

2019-04-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r243833.
        https://bugs.webkit.org/show_bug.cgi?id=196645

        This change breaks build of WPE and GTK ports (Requested by
        annulen on #webkit).

        Reverted changeset:

        "[CMake][WTF] Mirror XCode header directories"
        https://bugs.webkit.org/show_bug.cgi?id=191662
        https://trac.webkit.org/changeset/243833

2019-04-05  Ryosuke Niwa  <rniwa@webkit.org>

        Make WeakPtr<Element> possible and deploy it in form associated elements code
        https://bugs.webkit.org/show_bug.cgi?id=196626

        Reviewed by Antti Koivisto.

        Make it possible to call WeakHashSet::remove and WeakHashSet::contains with
        a subclass type U of a type T used to define WeakReference<T>.

        Also added computesEmpty, which is slightly more efficient than computeSize
        when m_set is either empty or when there are non-released weak references in the set.

        * wtf/WeakHashSet.h:
        (WTF::WeakHashSet::remove):
        (WTF::WeakHashSet::contains const):
        (WTF::WeakHashSet::computesEmpty const): Added.

2019-04-04  Yusuke Suzuki  <ysuzuki@apple.com>

        [WebCore] Put most of derived classes of ScriptWrappable into IsoHeap
        https://bugs.webkit.org/show_bug.cgi?id=196475

        Reviewed by Saam Barati.

        * wtf/ForbidHeapAllocation.h:
        * wtf/IsoMalloc.h:
        * wtf/IsoMallocInlines.h:

2019-04-03  Don Olmstead  <don.olmstead@sony.com>

        [CMake][WTF] Mirror XCode header directories
        https://bugs.webkit.org/show_bug.cgi?id=191662

        Reviewed by Konstantin Tokarev.

        Rename WTF forwarding header target to WTFFramework and update the install location
        to WTF_FRAMEWORK_HEADERS_DIR.

        * wtf/CMakeLists.txt:

2019-04-03  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remote Inspector indicate callback should always happen on the main thread
        https://bugs.webkit.org/show_bug.cgi?id=196513
        <rdar://problem/49498284>

        Reviewed by Devin Rousso.

        * wtf/MainThread.h:
        * wtf/cocoa/MainThreadCocoa.mm:
        (WTF::dispatchAsyncOnMainThreadWithWebThreadLockIfNeeded):
        * wtf/ios/WebCoreThread.cpp:
        * wtf/ios/WebCoreThread.h:

2019-04-02  Keith Rollin  <krollin@apple.com>

        Inhibit CFNetwork logging in private sessions
        https://bugs.webkit.org/show_bug.cgi?id=196268
        <rdar://problem/48210793>

        Fix a conditional in Platform.h where IOS should have been used
        instead of IOS_FAMILY. The latter happened to work, but we really want
        to be using the proper symbol here.

        Reviewed by Alexey Proskuryakov.

        * wtf/Platform.h:

2019-04-01  Michael Catanzaro  <mcatanzaro@igalia.com>

        Stop trying to support building JSC with clang 3.8
        https://bugs.webkit.org/show_bug.cgi?id=195947
        <rdar://problem/49069219>

        Reviewed by Darin Adler.

        It seems WebKit hasn't built with clang 3.8 in a while, no devs are using this compiler, we
        don't know how much effort it would be to make JSC work again, and it's making the code
        worse. Remove my hacks to support clang 3.8 from WTF.

        * wtf/MetaAllocator.cpp:
        (WTF::MetaAllocator::allocate):
        * wtf/text/StringConcatenate.h:
        (WTF::tryMakeStringFromAdapters):

2019-03-31  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Butterfly allocation from LargeAllocation should try "realloc" behavior if collector thread is not active
        https://bugs.webkit.org/show_bug.cgi?id=196160

        Reviewed by Saam Barati.

        * wtf/FastMalloc.h:
        (WTF::FastMalloc::tryRealloc):
        * wtf/Gigacage.cpp:
        (Gigacage::tryRealloc):
        * wtf/Gigacage.h:

2019-03-31  Andy Estes  <aestes@apple.com>

        [iOS] WebKit should consult the navigation response policy delegate before previewing a QuickLook document
        https://bugs.webkit.org/show_bug.cgi?id=196433
        <rdar://problem/49293305>

        Reviewed by Tim Horton.

        * wtf/NeverDestroyed.h:
        (WTF::NeverDestroyed::operator->):
        (WTF::NeverDestroyed::operator-> const):

2019-03-28  Fujii Hironori  <Hironori.Fujii@sony.com>

        Unreviewed build fix.

        * wtf/CMakeLists.txt: Added SpanningTree.h to WTF_PUBLIC_HEADERS.

2019-03-28  Saam Barati  <sbarati@apple.com>

        BackwardsGraph needs to consider back edges as the backward's root successor
        https://bugs.webkit.org/show_bug.cgi?id=195991

        Reviewed by Filip Pizlo.

        Previously, our backwards graph analysis was slightly wrong. The idea of
        backwards graph is that the root of the graph has edges to terminals in
        the original graph. And then the original directed edges in the graph are flipped.
        
        However, we weren't considering loops as a form of terminality. For example,
        we wouldn't consider an infinite loop as a terminal. So there were no edges
        from the root to a node in the infinite loop. This lead us to make mistakes
        when we used backwards dominators to compute control flow equivalence.
        
        This is better understood in an example:
        
        ```
        preheader:
        while (1) {
            if (!isCell(v))
                continue;
            load structure ID
            if (cond)
               continue;
            return
        }
        ```
        
        In the previous version of this algorithm, the only edge from the backwards
        root would be to the block containing the return. This would lead us to
        believe that the loading of the structureID backwards dominates the preheader,
        leading us to believe it's control flow equivalent to preheader. This is
        obviously wrong, since we can loop forever if "v" isn't a cell.
        
        The solution here is to treat any backedge in the graph as a "terminal" node.
        Since a backedge implies the existence of a loop.
        
        In the above example, the backwards root now has an edge to both blocks with
        "continue". This prevents us from falsely claiming that the return is control
        flow equivalent with the preheader.
        
        This patch uses DFS spanning trees to compute back edges. An edge
        u->v is a back edge when u is a descendent of v in the DFS spanning
        tree of the Graph.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/BackwardsGraph.h:
        (WTF::BackwardsGraph::BackwardsGraph):
        * wtf/SpanningTree.h: Added.
        (SpanningTree::SpanningTree):
        (SpanningTree::isDescendent):

2019-03-28  Tim Horton  <timothy_horton@apple.com>

        Un-fix the build

        * wtf/Platform.h:
        It is no longer necessary to exclude this from PLATFORM(IOSMAC).

2019-03-27  Per Arne Vollan  <pvollan@apple.com>

        Layout Test js/math-clz32.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=196209

        Reviewed by Ross Kirsling.

        Use the correct number of loop iterations when counting leading zeros. Also, the
        count was off by one for the Win64 case.

        * wtf/MathExtras.h:
        (WTF::clz):

2019-03-26  Keith Rollin  <krollin@apple.com>

        Inhibit CFNetwork logging in private sessions
        https://bugs.webkit.org/show_bug.cgi?id=196268
        <rdar://problem/48210793>

        Reviewed by Alex Christensen.

        Before performing any logging, the NetworkProcess checks to see if
        it's performing an operation associated with a private (ephemeral)
        browsing session. If so, it skips the logging. However, networking
        layers below the NetworkProcess don't know about private browsing, so
        they would still perform their own logging. CFNetwork now has a flag
        that lets us control that, so set it to False if private browsing.

        * wtf/Platform.h:

2019-03-25  Alex Christensen  <achristensen@webkit.org>

        Expected shouldn't assume its contained types are copyable
        https://bugs.webkit.org/show_bug.cgi?id=195986

        Reviewed by JF Bastien.

        * wtf/Expected.h:
        (std::experimental::fundamentals_v3::__expected_detail::constexpr_base::constexpr_base):
        (std::experimental::fundamentals_v3::operator==):
        (std::experimental::fundamentals_v3::operator!=):
        * wtf/Unexpected.h:
        (std::experimental::fundamentals_v3::unexpected::unexpected):

2019-03-24  Keith Miller  <keith_miller@apple.com>

        Unreviewed, forgot to refactor variable name for windows build in
        r243418.

        * wtf/MathExtras.h:
        (WTF::clz):
        (WTF::ctz):

2019-03-24  Andy Estes  <aestes@apple.com>

        [watchOS] Remove unused Proximity Networking code
        https://bugs.webkit.org/show_bug.cgi?id=196188

        Reviewed by Tim Horton.

        * wtf/FeatureDefines.h:

2019-03-23  Keith Miller  <keith_miller@apple.com>

        Refactor clz/ctz and fix getLSBSet.
        https://bugs.webkit.org/show_bug.cgi?id=196162

        Reviewed by Saam Barati.

        This patch makes clz32/64 and ctz32 generic so they work on any
        numeric type. Since these methods work on any type we don't need
        to have a separate implementation of getLSBSet, which also
        happened to be getMSBSet. This patch also adds getMSBSet as there
        may be users who want that in the future.

        * wtf/MathExtras.h:
        (WTF::clz):
        (WTF::ctz):
        (WTF::getLSBSet):
        (WTF::getMSBSet):
        (getLSBSet): Deleted.
        (WTF::clz32): Deleted.
        (WTF::clz64): Deleted.
        (WTF::ctz32): Deleted.

2019-03-22  Keith Rollin  <krollin@apple.com>

        Enable ThinLTO support in Production builds
        https://bugs.webkit.org/show_bug.cgi?id=190758
        <rdar://problem/45413233>

        Reviewed by Daniel Bates.

        Enable building with Thin LTO in Production when using Xcode 10.2 or
        later. This change results in a 1.45% progression in PLT5. Full
        Production build times increase about 2-3%. Incremental build times
        are more severely affected, and so LTO is not enabled for local
        engineering builds.

        LTO is enabled only on macOS for now, until rdar://problem/49013399,
        which affects ARM builds, is fixed.

        To change the LTO setting when building locally:

        - If building with `make`, specify WK_LTO_MODE={none,thin,full} on the
          command line.
        - If building with `build-webkit`, specify --lto-mode={none,thin,full}
          on the command line.
        - If building with `build-root`, specify --lto={none,thin,full} on the
          command line.
        - If building with Xcode, create a LocalOverrides.xcconfig file at the
          top level of your repository directory (if needed) and define
          WK_LTO_MODE to full, thin, or none.

        * Configurations/Base.xcconfig:

2019-03-22  Tim Horton  <timothy_horton@apple.com>

        Fix the build after r243354

        * wtf/Platform.h:

2019-03-22  Tim Horton  <timothy_horton@apple.com>

        Fix the build after r243354
        https://bugs.webkit.org/show_bug.cgi?id=196138
        <rdar://problem/49145951>

        * wtf/Platform.h:

2019-03-21  Eric Carlson  <eric.carlson@apple.com>

        Add UI process WebRTC runtime logging.
        https://bugs.webkit.org/show_bug.cgi?id=196020
        <rdar://problem/49071443>

        Reviewed by Youenn Fablet.

        * wtf/Logger.h:
        (WTF::LogArgument::toString): Add long long and unsigned long long variants.

2019-03-20  Simon Fraser  <simon.fraser@apple.com>

        Rename ENABLE_ACCELERATED_OVERFLOW_SCROLLING macro to ENABLE_OVERFLOW_SCROLLING_TOUCH
        https://bugs.webkit.org/show_bug.cgi?id=196049

        Reviewed by Tim Horton.

        This macro is about the -webkit-overflow-scrolling CSS property, not accelerated
        overflow scrolling in general, so rename it.

        * wtf/FeatureDefines.h:

2019-03-20  Mark Lam  <mark.lam@apple.com>

        Open source arm64e code.
        https://bugs.webkit.org/show_bug.cgi?id=196012
        <rdar://problem/49066237>

        Reviewed by Keith Miller.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/BlockPtr.h:
        * wtf/Platform.h:
        * wtf/PlatformRegisters.cpp: Added.
        (WTF::threadStateLRInternal):
        (WTF::threadStatePCInternal):
        * wtf/PlatformRegisters.h:
        * wtf/PointerPreparations.h:
        * wtf/PtrTag.cpp: Added.
        (WTF::tagForPtr):
        (WTF::ptrTagName):
        (WTF::registerPtrTagLookup):
        (WTF::reportBadTag):
        * wtf/PtrTag.h:
        (WTF::removeCodePtrTag):
        (WTF::tagCodePtrImpl):
        (WTF::tagCodePtr):
        (WTF::untagCodePtrImplHelper):
        (WTF::untagCodePtrImpl):
        (WTF::untagCodePtr):
        (WTF::retagCodePtrImplHelper):
        (WTF::retagCodePtrImpl):
        (WTF::retagCodePtr):
        (WTF::tagCFunctionPtrImpl):
        (WTF::tagCFunctionPtr):
        (WTF::untagCFunctionPtrImpl):
        (WTF::untagCFunctionPtr):
        (WTF::tagInt):
        (WTF::assertIsCFunctionPtr):
        (WTF::assertIsNullOrCFunctionPtr):
        (WTF::assertIsNotTagged):
        (WTF::assertIsTagged):
        (WTF::assertIsNullOrTagged):
        (WTF::isTaggedWith):
        (WTF::assertIsTaggedWith):
        (WTF::assertIsNullOrTaggedWith):
        (WTF::usesPointerTagging):
        (WTF::registerPtrTagLookup):
        (WTF::reportBadTag):
        (WTF::tagForPtr): Deleted.

2019-03-20  Keith Rollin  <krollin@apple.com>

        Update checks that determine if WebKit is system WebKit
        https://bugs.webkit.org/show_bug.cgi?id=195756

        Reviewed by Alexey Proskuryakov.

        The system WebKit can be installed in additional locations, so check
        for and allow those, too.

        * wtf/Platform.h:

2019-03-20  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, further attempt to fix clang 3.8 build
        https://bugs.webkit.org/show_bug.cgi?id=195947

        * wtf/MetaAllocator.cpp:
        (WTF::MetaAllocator::allocate):

2019-03-20  Michael Catanzaro  <mcatanzaro@igalia.com>

        REGRESSION(r243115) breaks build for clang 3.8
        https://bugs.webkit.org/show_bug.cgi?id=195947

        Reviewed by Chris Dumez.

        * wtf/text/StringConcatenate.h:
        (WTF::tryMakeStringFromAdapters):

2019-03-20  Tim Horton  <timothy_horton@apple.com>

        Add an platform-driven spell-checking mechanism
        https://bugs.webkit.org/show_bug.cgi?id=195795

        Reviewed by Ryosuke Niwa.

        * wtf/Platform.h:
        Add an ENABLE flag.

2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>

        Build cleanly with GCC 9
        https://bugs.webkit.org/show_bug.cgi?id=195920

        Reviewed by Chris Dumez.

        WebKit triggers three new GCC 9 warnings:

        """
        -Wdeprecated-copy, implied by -Wextra, warns about the C++11 deprecation of implicitly
        declared copy constructor and assignment operator if one of them is user-provided.
        """

        Solution is to either add a copy constructor or copy assignment operator, if required, or
        else remove one if it is redundant.

        """
        -Wredundant-move, implied by -Wextra, warns about redundant calls to std::move.
        -Wpessimizing-move, implied by -Wall, warns when a call to std::move prevents copy elision.
        """

        These account for most of this patch. Solution is to just remove the bad WTFMove().

        Additionally, -Wclass-memaccess has been enhanced to catch a few cases that GCC 8 didn't.
        These are solved by casting nontrivial types to void* before using memcpy. (Of course, it
        would be safer to not use memcpy on nontrivial types, but that's too complex for this
        patch. Searching for memcpy used with static_cast<void*> will reveal other cases to fix.)

        * wtf/CheckedArithmetic.h:
        (WTF::Checked::Checked):
        * wtf/MetaAllocator.cpp:
        (WTF::MetaAllocator::allocate):
        * wtf/URLParser.cpp:
        (WTF::CodePointIterator::operator!= const):
        (WTF::CodePointIterator::operator=): Deleted.
        * wtf/text/StringView.h:
        (WTF::StringView::CodePoints::Iterator::operator=): Deleted.

2019-03-19  Alex Christensen  <achristensen@webkit.org>

        Make WTFLogChannelState and WTFLogLevel enum classes
        https://bugs.webkit.org/show_bug.cgi?id=195904

        Reviewed by Eric Carlson.

        * wtf/Assertions.cpp:
        * wtf/Assertions.h:
        * wtf/Logger.h:
        (WTF::Logger::logAlways const):
        (WTF::Logger::error const):
        (WTF::Logger::warning const):
        (WTF::Logger::info const):
        (WTF::Logger::debug const):
        (WTF::Logger::willLog const):
        (WTF::Logger::log):
        * wtf/MemoryPressureHandler.cpp:
        * wtf/RefCountedLeakCounter.cpp:

2019-03-19  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, rolling out r243132.

        Broke GTK build

        Reverted changeset:

        "Make WTFLogChannelState and WTFLogLevel enum classes"
        https://bugs.webkit.org/show_bug.cgi?id=195904
        https://trac.webkit.org/changeset/243132

2019-03-18  Alex Christensen  <achristensen@webkit.org>

        Make WTFLogChannelState and WTFLogLevel enum classes
        https://bugs.webkit.org/show_bug.cgi?id=195904

        Reviewed by Eric Carlson.

        * wtf/Assertions.cpp:
        * wtf/Assertions.h:
        * wtf/Logger.h:
        (WTF::Logger::logAlways const):
        (WTF::Logger::error const):
        (WTF::Logger::warning const):
        (WTF::Logger::info const):
        (WTF::Logger::debug const):
        (WTF::Logger::willLog const):
        (WTF::Logger::log):
        * wtf/MemoryPressureHandler.cpp:
        * wtf/RefCountedLeakCounter.cpp:

2019-03-18  Darin Adler  <darin@apple.com>

        Cut down on use of StringBuffer, possibly leading toward removing it entirely
        https://bugs.webkit.org/show_bug.cgi?id=195870

        Reviewed by Daniel Bates.

        * wtf/URL.cpp: Remove a now-inaccurate comment mentioning StringBuffer.

        * wtf/text/StringView.cpp:
        (WTF::convertASCIICase): Use createUninitialized instead of StringBuffer.

2019-03-18  Xan Lopez  <xan@igalia.com>

        [WTF] Remove redundant std::move in StringConcatenate
        https://bugs.webkit.org/show_bug.cgi?id=195798

        Reviewed by Darin Adler.

        Remove redundant calls to WTFMove in return values for this
        method. C++ will already do an implicit move here since we are
        returning a local value where copy/move elision is not applicable.

        * wtf/text/StringConcatenate.h:
        (WTF::tryMakeStringFromAdapters):

2019-03-16  Darin Adler  <darin@apple.com>

        Improve normalization code, including moving from unorm.h to unorm2.h
        https://bugs.webkit.org/show_bug.cgi?id=195330

        Reviewed by Michael Catanzaro.

        * wtf/URLHelpers.cpp: Removed unneeded include of unorm.h since the
        normalization code is now in StringView.cpp.
        (WTF::URLHelpers::escapeUnsafeCharacters): Renamed from
        createStringWithEscapedUnsafeCharacters since it now only creates
        a new string if one is needed. Use unsigned for string lengths, since
        that's what WTF::String uses, not size_t. Added a first loop so that
        we can return the string unmodified if no lookalike characters are
        found. Removed unnecessary round trip from UTF-16 and then back in
        the case where the character is not a lookalike.
        (WTF::URLHelpers::toNormalizationFormC): Deleted. Moved this logic
        into the WTF::normalizedNFC function in StringView.cpp.
        (WTF::URLHelpers::userVisibleURL): Call escapeUnsafeCharacters and
        normalizedNFC. The normalizedNFC function is better in multiple ways,
        but primarily it handles 8-bit strings and other already-normalized
        strings much more efficiently.

        * wtf/text/StringView.cpp:
        (WTF::normalizedNFC): Added. This has two overloads. One is for when
        we already have a String, and want to re-use it if no normalization
        is needed, and another is when we only have a StringView, and may need
        to allocate a String to hold the result. Includes a fast special case
        for 8-bit and already-normalized strings, and uses the same strategy
        that JSC::normalize was already using: calls unorm2_normalize twice,
        first just to determine the length.

        * wtf/text/StringView.h: Added normalizedNFC, which can be called with
        either a StringView or a String. Also moved StringViewWithUnderlyingString
        here from JSString.h, here for use as the return value of normalizedNFC;
        it is used for a similar purpose in the JavaScriptCore rope implementation.
        Also removed an inaccurate comment.

2019-03-16  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] [WPE] Fix compilation errors due to undefined ALWAYS_LOG_IF
        https://bugs.webkit.org/show_bug.cgi?id=195850

        Unreviewed build fix after r243033. 

        * wtf/LoggerHelper.h:

2019-03-15  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Block the accessibility server when accessibility is not enabled.
        https://bugs.webkit.org/show_bug.cgi?id=195342

        Reviewed by Brent Fulgham.

        Add SPI to issue a mach extension to a process by pid. Also, add a macro for
        the availability of this SPI.

        * wtf/Platform.h:
        * wtf/spi/darwin/SandboxSPI.h:

2019-03-15  Eric Carlson  <eric.carlson@apple.com>

        Add media stream release logging
        https://bugs.webkit.org/show_bug.cgi?id=195823

        Reviewed by Youenn Fablet.

        * wtf/LoggerHelper.h: Add LOG_IF variants that check a condition before logging.

2019-03-15  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r243008.

        This revision broke High Sierra builders

        Reverted changeset:

        "[iOS] Block the accessibility server when accessibility is
        not enabled."
        https://bugs.webkit.org/show_bug.cgi?id=195342
        https://trac.webkit.org/changeset/243008

2019-03-15  Per Arne Vollan  <pvollan@apple.com>

        [iOS] Block the accessibility server when accessibility is not enabled.
        https://bugs.webkit.org/show_bug.cgi?id=195342

        Reviewed by Brent Fulgham.

        Add SPI to issue a mach extension to a process by pid.

        * wtf/spi/darwin/SandboxSPI.h:

2019-03-13  Sam Weinig  <sam@webkit.org>

        Add utility function to allow easy reverse range-based iteration of a container
        https://bugs.webkit.org/show_bug.cgi?id=195542

        Reviewed by Antti Koivisto.

        Add functions to create an IteratorRange<T> that will iterate a container backwards. It
        works with any container that is compatible with std::rbegin() and std::rend(). It is
        expected to be used in conjunction with range-based for-loops like so:

        for (auto& value : WTF::makeReversedRange(myContainer)) 
            ...

        * wtf/IteratorRange.h:
        (WTF::makeReversedRange):

2019-03-13  Keith Rollin  <krollin@apple.com>

        Add support for new StagedFrameworks layout
        https://bugs.webkit.org/show_bug.cgi?id=195543

        Reviewed by Alexey Proskuryakov.

        Opportunistic cleanup: remove unused JAVASCRIPTCORE_FRAMEWORKS_DIR
        variable.

        * Configurations/Base.xcconfig:

2019-03-13  Dominik Infuehr  <dinfuehr@igalia.com>

        String overflow when using StringBuilder in JSC::createError
        https://bugs.webkit.org/show_bug.cgi?id=194957

        Reviewed by Mark Lam.

        When calculating the new capacity of a StringBuilder object,
        use a limit of MaxLength instead of MaxLength+1.  Allocating
        a string of size MaxLength+1 always fails. This means that expanding
        a StringBuilder only worked when the newly doubled capacity is less or
        equal to MaxLength.

        * wtf/text/StringBuilder.cpp:

2019-03-13  Chris Dumez  <cdumez@apple.com>

        Better build fix after r242901.

        Reviewed by Jer Noble.

        * wtf/Logger.h:
        (WTF::LogArgument::toString):

2019-03-13  Jer Noble  <jer.noble@apple.com>

        Add AggregateLogger, a Logger specialization for singleton classes.
        https://bugs.webkit.org/show_bug.cgi?id=195644

        Reviewed by Eric Carlson.

        Add a new class, AggregateLogger, which will log messages to each of its aggregated loggers.

        Drive-by fixes: allow "const void*" to be directly logged by converting the pointer to a hex string.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/AggregateLogger.h: Added.
        (WTF::AggregateLogger::create):
        (WTF::AggregateLogger::addLogger):
        (WTF::AggregateLogger::removeLogger):
        (WTF::AggregateLogger::logAlways const):
        (WTF::AggregateLogger::error const):
        (WTF::AggregateLogger::warning const):
        (WTF::AggregateLogger::info const):
        (WTF::AggregateLogger::debug const):
        (WTF::AggregateLogger::willLog const):
        (WTF::AggregateLogger::AggregateLogger):
        (WTF::AggregateLogger::log const):
        * wtf/CMakeLists.h:
        * wtf/Logger.cpp:
        (WTF::>::toString):
        * wtf/Logger.h:

2019-03-12  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r242747.
        https://bugs.webkit.org/show_bug.cgi?id=195641

        Performance measurement is difficult in this period, rolling
        out it and rolling in later to isolate it from the other
        sensitive patches (Requested by yusukesuzuki on #webkit).

        Reverted changeset:

        "[JSC] Make StaticStringImpl & StaticSymbolImpl actually
        static"
        https://bugs.webkit.org/show_bug.cgi?id=194212
        https://trac.webkit.org/changeset/242747

2019-03-12  Robin Morisset  <rmorisset@apple.com>

        A lot more classes have padding that can be reduced by reordering their fields
        https://bugs.webkit.org/show_bug.cgi?id=195579

        Reviewed by Mark Lam.

        * wtf/CrossThreadQueue.h:
        * wtf/Logger.h:
        * wtf/MemoryPressureHandler.h:
        * wtf/MetaAllocator.h:
        * wtf/Threading.cpp:

2019-03-11  Alex Christensen  <achristensen@webkit.org>

        WTF::Expected should use std::addressof instead of operator&
        https://bugs.webkit.org/show_bug.cgi?id=195604

        Reviewed by Myles Maxfield.

        The latter was causing problems with types that do tricky things with constructors and operator&,
        specifically UniqueRef but I made a reduced test case.  When it used operator&, it would get the contained
        type and call the constructor that takes a contained type instead of the move constructor.

        * wtf/Expected.h:
        (std::experimental::fundamentals_v3::__expected_detail::base::base):
        (std::experimental::fundamentals_v3::expected::swap):

2019-03-11  Ross Kirsling  <ross.kirsling@sony.com>

        Add Optional to Forward.h.
        https://bugs.webkit.org/show_bug.cgi?id=195586

        Reviewed by Darin Adler.

        * wtf/Forward.h:
        Add forward declaration for Optional.

        * wtf/CPUTime.h:
        * wtf/Expected.h:
        * wtf/MainThread.h:
        * wtf/MemoryFootprint.h:
        * wtf/URLHelpers.cpp:
        * wtf/URLHelpers.h:
        * wtf/cocoa/CPUTimeCocoa.cpp:
        * wtf/fuchsia/CPUTimeFuchsia.cpp:
        * wtf/unix/CPUTimeUnix.cpp:
        * wtf/win/CPUTimeWin.cpp:
        Remove unnecessary includes from headers.

2019-03-11  Andy Estes  <aestes@apple.com>

        [Apple Pay] Use PKPaymentAuthorizationController to present the Apple Pay UI remotely from the Networking service on iOS
        https://bugs.webkit.org/show_bug.cgi?id=195530
        <rdar://problem/48747164>

        Reviewed by Alex Christensen.

        * wtf/FeatureDefines.h: Defined ENABLE_APPLE_PAY_REMOTE_UI.

2019-03-11  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Make StaticStringImpl & StaticSymbolImpl actually static
        https://bugs.webkit.org/show_bug.cgi?id=194212

        Reviewed by Mark Lam.

        Avoid mutation onto refcounts if `isStatic()` returns true so that the content of StaticStringImpl never gets modified.

        * wtf/text/StringImpl.h:
        (WTF::StringImpl::ref):
        (WTF::StringImpl::deref):

2019-03-11  Sihui Liu  <sihui_liu@apple.com>

        Crash under WebCore::IDBDatabase::connectionToServerLost
        https://bugs.webkit.org/show_bug.cgi?id=195563
        <rdar://problem/37193655>

        CrossThreadTask should protect callee if it is ThreadSafeRefCounted.

        Reviewed by Geoffrey Garen.

        * wtf/CrossThreadTask.h:
        (WTF::createCrossThreadTask):

2019-03-11  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r242688, r242643, r242624.

        Caused multiple layout test failures and crashes on iOS and macOS.

        Reverted changeset:

        "requestAnimationFrame should execute before the next frame"
        https://bugs.webkit.org/show_bug.cgi?id=177484
        https://trac.webkit.org/changeset/242624/webkit

        * wtf/SystemTracing.h:

2019-03-11  Darin Adler  <darin@apple.com>

        Specify fixed precision explicitly to prepare to change String::number and StringBuilder::appendNumber floating point behavior
        https://bugs.webkit.org/show_bug.cgi?id=195533

        Reviewed by Brent Fulgham.

        Soon, we will change String::number and StringBuilder::appendNumber for floating
        point to use "shortest form" serialization instead of the current default, which is
        "6-digit fixed precision stripping trailing zeros". To prepare to do this safely
        without accidentally changing any behavior, changing callers to call the explicit
        versions. Later, we may want to return and change many of them to use shortest form
        instead, but that may require rebaselining tests, and in some extreme cases, getting
        rid of flawed logic that converts between different single and double precision
        floating point; such problems may be hidden by fixed precision serialization.

        Since "shortest form" is already the behavior for AtomicString::number and
        for makeString, no changes required for clients of either of those.

        * wtf/Logger.h:
        (WTF::LogArgument::toString): Use numberToStringFixedPrecision.
        * wtf/MediaTime.cpp:
        (WTF::MediaTime::toString const): Use appendFixedPrecisionNumber.
        * wtf/text/ValueToString.h:
        (WTF::ValueToString<float>::string): Use numberToStringFixedPrecision.
        (WTF::ValueToString<double>::string): Ditto.

2019-03-11  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r242702.

        Broke High Sierra builders.

        Reverted changeset:

        "Add utility function to allow easy reverse range-based
        iteration of a container"
        https://bugs.webkit.org/show_bug.cgi?id=195542
        https://trac.webkit.org/changeset/242702

2019-03-11  Sam Weinig  <sam@webkit.org>

        Add utility function to allow easy reverse range-based iteration of a container
        https://bugs.webkit.org/show_bug.cgi?id=195542

        Reviewed by Antti Koivisto.

        Add functions to create an IteratorRange<T> that will iterate a container backwards. It
        works with any container that is compatible with std::rbegin() and std::rend(). It is
        expected to be used in conjunction with range-based for-loops like so:

        for (auto& value : WTF::makeReversedRange(myContainer)) 
            ...

        * wtf/IteratorRange.h:
        (WTF::makeReversedRange):

2019-03-10  Yusuke Suzuki <utatane.tea@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>

        [WTF] Align assumption in RunLoopWin to the other platform's RunLoop
        https://bugs.webkit.org/show_bug.cgi?id=181151

        Reviewed by Don Olmstead.

        This patch fixes RunLoop in Windows to align it to the implementations in the other platforms
        to use RunLoop more aggressively.

        * wtf/RunLoop.h:
        (WTF::RunLoop::Timer::Timer):
        * wtf/win/MainThreadWin.cpp:
        (initializeMainThreadPlatform): Call RunLoop::registerRunLoopMessageWindowClass.
        * wtf/win/RunLoopWin.cpp:
        (WTF::RunLoop::wndProc):
        (WTF::RunLoop::iterate):
        (WTF::RunLoop::stop):
        PostQuitMessage is only available in the RunLoop's thread. We should post a message and call
        it inside this task.

        (WTF::RunLoop::registerRunLoopMessageWindowClass):
        Changed the return type from bool to void, and added RELEASE_ASSERT to check the return value of RegisterClass.

        (WTF::RunLoop::~RunLoop):
        When the RunLoop's thread is freed, its associated window is freed. We do not need to do here.

        (WTF::RunLoop::TimerBase::timerFired):
        (WTF::RunLoop::TimerBase::TimerBase):
        (WTF::RunLoop::TimerBase::start):
        (WTF::RunLoop::TimerBase::stop):
        (WTF::RunLoop::TimerBase::isActive const):
        (WTF::RunLoop::TimerBase::secondsUntilFire const):
        (WTF::generateTimerID): Deleted.
        We can use TimerBase's pointer as ID since it is uintptr_t.

2019-03-07  Said Abou-Hallawa  <sabouhallawa@apple.com>

        requestAnimationFrame should execute before the next frame
        https://bugs.webkit.org/show_bug.cgi?id=177484

        Reviewed by Simon Fraser.

        Add trace points for the page RenderingUpdate.

        * wtf/SystemTracing.h:

2019-03-06  Ross Kirsling  <ross.kirsling@sony.com>

        [Win] Remove -DUCHAR_TYPE=wchar_t stopgap and learn to live with char16_t.
        https://bugs.webkit.org/show_bug.cgi?id=195346

        Reviewed by Fujii Hironori.

        * wtf/PlatformWin.cmake:
        * wtf/text/AtomicString.h:
        (WTF::AtomicString::AtomicString):
        * wtf/text/WTFString.h:
        (WTF::String::String):
        * wtf/text/win/StringWin.cpp: Added.
        (WTF::String::wideCharacters const): Renamed from WTF::stringToNullTerminatedWChar.
        * wtf/text/win/WCharStringExtras.h:
        (WTF::ucharFrom):
        (WTF::wcharFrom):
        (WTF::stringToNullTerminatedWChar): Deleted.
        (WTF::wcharToString): Deleted.
        (WTF::nullTerminatedWCharToString): Deleted.
        Add static_assert-guarded reinterpret_cast wrappers for going between UChar* and wchar_t*.
        Move existing to/from-String helpers into the String (and AtomicString) class(es).

        * wtf/win/FileSystemWin.cpp:
        (WTF::FileSystemImpl::getFindData):
        (WTF::FileSystemImpl::getFinalPathName):
        (WTF::FileSystemImpl::createSymbolicLink):
        (WTF::FileSystemImpl::deleteFile):
        (WTF::FileSystemImpl::deleteEmptyDirectory):
        (WTF::FileSystemImpl::moveFile):
        (WTF::FileSystemImpl::pathByAppendingComponent):
        (WTF::FileSystemImpl::fileSystemRepresentation):
        (WTF::FileSystemImpl::makeAllDirectories):
        (WTF::FileSystemImpl::pathGetFileName):
        (WTF::FileSystemImpl::storageDirectory):
        (WTF::FileSystemImpl::generateTemporaryPath):
        (WTF::FileSystemImpl::openTemporaryFile):
        (WTF::FileSystemImpl::openFile):
        (WTF::FileSystemImpl::hardLinkOrCopyFile):
        (WTF::FileSystemImpl::deleteNonEmptyDirectory):
        * wtf/win/LanguageWin.cpp:
        (WTF::localeInfo):
        * wtf/win/PathWalker.cpp:
        (WTF::PathWalker::PathWalker):
        Use wchar helpers as needed.

2019-02-28  Ryosuke Niwa  <rniwa@webkit.org>

        Add WeakHashSet
        https://bugs.webkit.org/show_bug.cgi?id=195152

        Reviewed by Antti Koivisto.

        Added WeakHashSet which is a HashSet of WeakPtr. When the object pointed by WeakPtr is deleted,
        WeakHashSet treats the key to be no longer in the set. That is, WeakHashSet::contains returns false
        and const_iterator skips such a WeakPtr in the set.

        We decided not to make HashSet<WeahPtr<T>> work because it involves weird semantics such as making
        find(X) delete the table entry as remove(find(X)) would be a no-op otherwise as find(X) would return
        necessarily need to return HashSet<WeakPtr<T>>::end().

        Furthermore, we cannot determine the true size of this set in O(1) because the objected pointed by
        some of WeakPtr in the set may have already been deleted. This has implications that we can't have
        size(), isEmpty(), random(), etc... as O(1) operation.

        WeakHashSet is implemented as HashSet<WeakReference<T>>. HashTable::rehash has been updated to delete
        WeakReference<T>'s whose m_ptr has become null, and HashTable::expand first deletes any such entry
        before deciding an actual expansion is needed. This is accomplished via newly added hash trait,
        hasIsReleasedWeakValueFunction, and HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue which
        returns true for when WeakReference<T> pointed by Ref<WeakReference<T>> has null m_ptr, not to be
        confused with Ref<WeakReference<T>> itself pointing to a null WeakReference<T>.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/Forward.h:
        * wtf/HashSet.h:
        (WTF::HashSet<T, U, V>::checkConsistency const): Added.
        * wtf/HashTable.h:
        (WTF::HashTable::isReleasedWeakBucket): Added.
        (WTF::HashTable::expand): Delete WeakReference<T> with null m_ptr first. This updates m_keyCount
        and may make mustRehashInPlace() return true.
        (WTF::HashTable::deleteReleasedWeakBuckets): Added.
        (WTF::HashTable::rehash): Delete WeakReference<T> with null m_ptr. Also refactored the code a bit
        to avoid keep repeating oldTable[i].
        * wtf/HashTraits.h:
        (WTF::HashTraits<T>::isHashTraitsReleasedWeakValue): Added.
        (WTF::RefHashTraits<T>): Extracted from HashTraits<Ref<P>> to share code with
        HashTraits<Ref<WeakReference<T>>>.
        (WTF::HashTraitsReleasedWeakValueChecker<Traits, hasIsReleasedWeakValueFunction>): Added.
        (WTF::isHashTraitsReleasedWeakValue<Traits, hasIsReleasedWeakValueFunction>): Added.
        * wtf/WeakHashSet.h: Added.
        (WTF::WeakHashSet): Added.
        (WTF::WeakHashSet::WeakHashSetConstIterator::WeakHashSetConstIterator):
        (WTF::WeakHashSet::WeakHashSetConstIterator::get const):
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator* const):
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator-> const):
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator++):
        (WTF::WeakHashSet::WeakHashSetConstIterator::skipEmptyBuckets):
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator== const):
        (WTF::WeakHashSet::WeakHashSetConstIterator::operator!= const):
        (WTF::WeakHashSet::WeakHashSet):
        (WTF::WeakHashSet::begin const):
        (WTF::WeakHashSet::end const):
        (WTF::WeakHashSet::add):
        (WTF::WeakHashSet::remove):
        (WTF::WeakHashSet::contains const):
        (WTF::WeakHashSet::capacity const):
        (WTF::WeakHashSet::computeSize const): Deletes any WeakReference<T> with null m_ptr first.
        (WTF::WeakHashSet::checkConsistency const):
        (WTF::HashTraits<Ref<WeakReference<T>>>): Added. This hash traits triggers the new code in HashTable's
        expand and rehash methods to delete WeakReference<T> with null m_ptr.
        (WTF::HashTraits<Ref<WeakReference<T>>>::isReleasedWeakValue):
        * wtf/WeakPtr.h:
        (WTF::WeakReference::~WeakReference): Added so that we can keep track the number of live WeakReference
        in API tests by template specializations.

2019-03-03  Darin Adler  <darin@apple.com>

        Prepare to improve handling of conversion of float to strings
        https://bugs.webkit.org/show_bug.cgi?id=195262

        Reviewed by Daniel Bates.

        * wtf/dtoa.cpp:
        (WTF::truncateTrailingZeros): Renamed from
        formatStringTruncatingTrailingZerosIfNeeded and removed the calls
        to double_conversion::StringBuilder::Finalizer, since the caller
        already does that.
        (WTF::numberToFixedPrecisionString): Added an overload for float
        and updated to use the new truncateTrailingZeros.
        (WTF::numberToFixedWidthString): Added an overload for float.

        * wtf/text/AtomicString.cpp:
        (WTF::AtomicString::number): Added float overload. This is a
        behavior change, but in all cases for the better. The old behavior
        was to convert to double first and then do "shortest form"
        conversion, and it's always better to just do that as float.
        * wtf/text/AtomicString.h: Added float overload of AtomicString::number.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::appendFixedPrecisionNumber): Added float
        overload.
        (WTF::StringBuilder::appendShortestFormNumber): Renamed from
        appendECMAScriptNumber and did the above.
        (WTF::StringBuilder::appendFixedWidthNumber): Ditto.
        * wtf/text/StringBuilder.h: Added overloads for float and
        appendShortestFormNumber. The appendNumber and appendECMAScriptNumber
        functions are now inlines in the header, since they are expressed
        entirely in terms of the other functions.

        * wtf/text/WTFString.cpp:
        (WTF::String::numberToStringFixedPrecision): Added float overload.
        Removed unnecessary explicit conversion to String.
        (WTF::String::numberToStringShortest): Renamed from
        numberToStringECMAScript and did the above.
        (WTF::String::numberToStringFixedWidth): Ditto.

        * wtf/text/WTFString.h: Added overloads for float and
        numberToStringShortest. The number and numberToStringECMAScript
        functions are now inlines in the header, since they are expressed
        entirely in terms of the other functions.

2019-03-04  Andy Estes  <aestes@apple.com>

        [Apple Pay] Move WebPaymentCoordinatorProxy from Source/WebKit/UIProcess to Source/WebKit/Shared
        https://bugs.webkit.org/show_bug.cgi?id=195080
        <rdar://problem/48421558>

        Reviewed by Antti Koivisto.

        * wtf/FeatureDefines.h:

2019-03-04  Michael Catanzaro  <mcatanzaro@igalia.com>

        URLHelpers should use unorm2_quickCheck before converting to NFC
        https://bugs.webkit.org/show_bug.cgi?id=194272

        Reviewed by Darin Adler.

        If the string is already in normalization form C, don't try to normalize it.

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::toNormalizationFormC):

2019-03-02  Darin Adler  <darin@apple.com>

        Retire legacy dtoa function and DecimalNumber class
        https://bugs.webkit.org/show_bug.cgi?id=195253

        Reviewed by Daniel Bates.

        * WTF.xcodeproj/project.pbxproj: Removed DecimalNumber.cpp/h.
        * wtf/CMakeLists.txt: Ditto.

        * wtf/DecimalNumber.cpp: Removed.
        * wtf/DecimalNumber.h: Removed.

        * wtf/JSONValues.cpp:
        (WTF::JSONImpl::Value::writeJSON const): Use
        StringBuilder::appendECMAScriptNumber instead of custom logic
        using the DecimalNumber class.

        * wtf/dtoa.cpp:
        (WTF::storeInc): Deleted.
        (WTF::BigInt): Deleted.
        (WTF::multadd): Deleted.
        (WTF::hi0bits): Deleted.
        (WTF::lo0bits): Deleted.
        (WTF::i2b): Deleted.
        (WTF::mult): Deleted.
        (WTF::P5Node::P5Node): Deleted.
        (WTF::pow5mult): Deleted.
        (WTF::lshift): Deleted.
        (WTF::cmp): Deleted.
        (WTF::diff): Deleted.
        (WTF::d2b): Deleted.
        (WTF::quorem): Deleted.
        (WTF::dtoa): Deleted.

        * wtf/dtoa.h: Removed DtoaBuffer, dtoa, and NumberToStringBufferLength.

2019-02-27  Darin Adler  <darin@apple.com>

        Fixed makeString(float) to do shortest-form serialization without first converting to double
        https://bugs.webkit.org/show_bug.cgi?id=195142

        Reviewed by Daniel Bates.

        * wtf/DecimalNumber.cpp: Removed unneeded includes.

        * wtf/DecimalNumber.h: Removed unused constructors; over time we will be
        deprecating DecimalNumber, so we should removed the unused parts. Also
        marked the constructor explicit, removed types used only for arguments for
        the constructors, and removed the sign, exponent, significand, and precision
        member functions.

        * wtf/JSONValues.cpp:
        (WTF::JSONImpl::Value::writeJSON const): Updated for changes to DecimalNumber
        switched from NumberToLStringBuffer to NumberToStringBuffer, and for use of
        std::array instead of C arrays.

        * wtf/dtoa.cpp: Removed unused dtoaRoundSF and dtoaRoundDP functions.
        (WTF::dtoa): Updated to use std::array instead of C arrays.
        (WTF::dtoaRoundSF): Removed.
        (WTF::dtoaRoundDP): Removed.
        (WTF::numberToString): Added an overload for float and updated to use std::array.
        (WTF::formatStringTruncatingTrailingZerosIfNeeded): Updated to use std::array.
        (WTF::numberToFixedPrecisionString): Ditto.
        (WTF::numberToFixedWidthString): Ditto.

        * wtf/dtoa.h: Changed arrays to be std::array instead of C arrays so the
        array types will be checked. Removed dtoaRoundSF and dtoaRoundDP.
        Added float overloads for numberToString, numberToFixedPrecisionString,
        and numberToFixedWidthString. The only one of these that is called at this
        time is numberToString, called by the floating point StringTypeAdapter in
        StringConcatenateNummbers.h.

        * wtf/text/StringConcatenateNumbers.h: Updated for std::array.

2019-03-01  Darin Adler  <darin@apple.com>

        Finish removing String::format
        https://bugs.webkit.org/show_bug.cgi?id=194893

        Reviewed by Daniel Bates.

        * wtf/Assertions.cpp:
        (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
        (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.

        * wtf/HexNumber.h: Deleted unneeded toString function.

        * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
        StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
        a bit. Use function templates for writeTo functions rather than having two of each.
        Removed unused toString functions. Optimized case where we use have a UChar* and
        a length of zero to not force the result to be 16-bit. Also gets rid of a small
        NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
        static member helper functions to compute string lengths. Added the pad function
        and the PaddingSpecification struct template, so we can add padding to anything
        we can turn into a string. Got rid of the special case overload for single
        arguments, since it only worked for things that the String constructor can handle.
        Instead we will now use StringTypeAdapter, which works for more types. Possibly
        less optimal for some special cases, which we could specialize for later if we like.
        * wtf/text/StringConcatenateNumbers.h: Ditto.
        * wtf/text/StringOperators.h: Ditto.
        * wtf/text/StringView.h: Ditto.

        * wtf/text/WTFString.cpp:
        (WTF::createWithFormatAndArguments): Deleted.
        (WTF::String::format): Deleted.
        * wtf/text/WTFString.h: Deleted declaration of String::format.

2019-03-01  Alex Christensen  <achristensen@webkit.org>

        Revert r241223, r241235, and r241287
        https://bugs.webkit.org/show_bug.cgi?id=194427
        <rdar://48045861>

        * wtf/spi/darwin/XPCSPI.h:

2019-03-01  Simon Fraser  <simon.fraser@apple.com>

        Add a system trace scope for event region building
        https://bugs.webkit.org/show_bug.cgi?id=195226

        Reviewed by Jon Lee.

        This trace scope measures the time spend converting element rects into Region objects,
        which can be large on some pages.

        The value for "Display Refresh Dispatch to main thread" was wrong and I fixed it.

        * wtf/SystemTracing.h:

2019-02-28  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] sizeof(JSString) should be 16
        https://bugs.webkit.org/show_bug.cgi?id=194375

        Reviewed by Saam Barati.

        * wtf/text/StringImpl.h:
        (WTF::StringImpl::flagIs8Bit):
        (WTF::StringImpl::flagIsAtomic):
        (WTF::StringImpl::flagIsSymbol):
        (WTF::StringImpl::maskStringKind):
        * wtf/text/WTFString.cpp:
        (WTF::nullString):
        * wtf/text/WTFString.h:

2019-02-28  Mark Lam  <mark.lam@apple.com>

        Change CheckedArithmetic to not use std::enable_if_t.
        https://bugs.webkit.org/show_bug.cgi?id=195187
        <rdar://problem/48464665>

        Reviewed by Keith Miller.

        Because C++11 does not like std::enable_if_t and there's a need to use this file with C++11.

        * wtf/CheckedArithmetic.h:

2019-02-27  Simon Fraser  <simon.fraser@apple.com>

        Roll out r242014; it caused crashes in compositing logging (webkit.org/b/195141)

        * wtf/Assertions.cpp:
        (WTF::createWithFormatAndArguments): Deleted.
        * wtf/HexNumber.h:
        (WTF::StringTypeAdapter<HexNumberBuffer>::toString const):
        * wtf/text/StringConcatenate.h:
        (WTF::makeString):
        (WTF::pad): Deleted.
        (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::StringTypeAdapter): Deleted.
        (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::length const): Deleted.
        (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::is8Bit const): Deleted.
        (WTF::StringTypeAdapter<PaddingSpecification<UnderlyingAdapterType>>::writeTo const): Deleted.
        * wtf/text/StringConcatenateNumbers.h:
        (WTF::FormattedNumber::fixedPrecision):
        (WTF::FormattedNumber::fixedWidth):
        (WTF::StringTypeAdapter<FormattedNumber>::toString const):
        * wtf/text/StringOperators.h:
        (WTF::StringAppend::StringAppend):
        * wtf/text/StringView.h:
        (WTF::StringView::invalidate):
        * wtf/text/WTFString.cpp:
        (WTF::createWithFormatAndArguments):
        (WTF::String::format):
        * wtf/text/WTFString.h:

2019-02-26  Mark Lam  <mark.lam@apple.com>

        Remove remaining poisoning code.
        https://bugs.webkit.org/show_bug.cgi?id=194138

        Reviewed by Saam Barati.

        This patch removes the instantiation of Poisoned variants of the various containers
        but retains the ability of those containers to work with pointer traits.  This
        allows us to use them with smart pointers in the future (just like we used to with
        Poisoned values).  At minimum, this ability will be useful when we want to insert
        an observer into the container storage type for debugging purposes, or to collect
        statistics for profiling.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/Bag.h:
        * wtf/CMakeLists.txt:
        * wtf/Platform.h:
        * wtf/Poisoned.cpp: Removed.
        * wtf/Poisoned.h: Removed.
        * wtf/PoisonedUniquePtr.h: Removed.
        * wtf/Ref.h:
        * wtf/RefCountedArray.h:
        * wtf/RefPtr.h:
        * wtf/WTFAssertions.cpp:

2019-02-26  Keith Miller  <keith_miller@apple.com>

        Code quality cleanup in NeverDestroyed
        https://bugs.webkit.org/show_bug.cgi?id=194824

        Reviewed by Yusuke Suzuki.

        First, move data members to the end of the class per WebKit
        style. Also, add forbid heap allocation since we expect the
        NeverDestroyed classes to be static.

        * wtf/NeverDestroyed.h:

2019-02-25  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        Fix WTFLogVerbose variadic parameters forwarding
        https://bugs.webkit.org/show_bug.cgi?id=194920

        Reviewed by Alex Christensen.

        WTFLogVerbose was passing the va_list to WTFLog but this function
        also used variadic parameters and this is not allowed in C (that
        part of the code is extern "C").

        * wtf/Assertions.cpp:
        (WTF::WTFLogVaList): Created to take a va_list argument instead of
        variadic parameters.
        (WTF::WTFLog): Kept with variadic parameters, which are
        transformed to va_list and passed to WTFLogVaList.
        (WTF::WTFLogVerbose): Use WTFLogVaList instead of WTFLog.

2019-02-25  Sam Weinig  <sam@webkit.org>

        Update double-conversion to the latest version
        https://bugs.webkit.org/show_bug.cgi?id=194994

        Import the latest version of the double-conversion library based on
        https://github.com/google/double-conversion/commit/990c44707c70832dc1ce1578048c2198bafd3307

        In additon to importing the code, the following changes were applied (or re-applied) to maintain 
        parity with what we had previously:
             - Add #include "config.h" to each cpp file.
             - Put everything inside the WTF namespace.
             - Changed all in library includes to be of the form #include <wtf/dtoa/FILE.h>.
             - Renamed double_conversion::Vector<> to double_conversion::BufferReference<>.
             - Replaced duplicated functions with ASCIICType.h variants
             - Made CachedPower table a constexpr.
             - Exported (via WTF_EXPORT_PRIVATE) several functions in double-conversion.h.
             - Made substantial changes to StringToDoubleConverter to avoid unnecessary overhead of 
               parameterization, as we only ever want one configuration. Instead of constructing a
               configured class and calling StringToDouble on it, StringToDouble is now a static
               function. This allows a bunch of now dead code (hex support, octal support, etc.) to
               be eliminated. As StringToDoubleConverter now supports single precision floats, some
               additional templating of StringToIeee was added to avoid extra unnecessary branching.
             - Added RemoveCharacters function to double_conversion::StringBuilder.

        Reviewed by Darin Adler.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/dtoa/AUTHORS: Added.
        * wtf/dtoa/README: Removed.
        * wtf/dtoa/README.md: Added.
        * wtf/dtoa/bignum-dtoa.cc:
        * wtf/dtoa/bignum-dtoa.h:
        * wtf/dtoa/bignum.cc:
        * wtf/dtoa/bignum.h:
        (WTF::double_conversion::Bignum::Times10):
        (WTF::double_conversion::Bignum::Equal):
        (WTF::double_conversion::Bignum::LessEqual):
        (WTF::double_conversion::Bignum::Less):
        (WTF::double_conversion::Bignum::PlusEqual):
        (WTF::double_conversion::Bignum::PlusLessEqual):
        (WTF::double_conversion::Bignum::PlusLess):
        (WTF::double_conversion::Bignum::EnsureCapacity):
        (WTF::double_conversion::Bignum::BigitLength const):
        * wtf/dtoa/cached-powers.cc:
        * wtf/dtoa/cached-powers.h:
        * wtf/dtoa/diy-fp.cc:
        * wtf/dtoa/diy-fp.h:
        (WTF::double_conversion::DiyFp::DiyFp):
        (WTF::double_conversion::DiyFp::Subtract):
        (WTF::double_conversion::DiyFp::Minus):
        (WTF::double_conversion::DiyFp::Times):
        (WTF::double_conversion::DiyFp::Normalize):
        (WTF::double_conversion::DiyFp::f const):
        (WTF::double_conversion::DiyFp::e const):
        (WTF::double_conversion::DiyFp::set_f):
        (WTF::double_conversion::DiyFp::set_e):
        * wtf/dtoa/double-conversion.cc:
        * wtf/dtoa/double-conversion.h:
        (WTF::double_conversion::DoubleToStringConverter::DoubleToStringConverter):
        (WTF::double_conversion::DoubleToStringConverter::ToShortest const):
        (WTF::double_conversion::DoubleToStringConverter::ToShortestSingle const):
        (WTF::double_conversion::StringToDoubleConverter::StringToDoubleConverter):
        * wtf/dtoa/double.h: Removed.
        * wtf/dtoa/fast-dtoa.cc:
        * wtf/dtoa/fast-dtoa.h:
        * wtf/dtoa/fixed-dtoa.cc:
        * wtf/dtoa/fixed-dtoa.h:
        * wtf/dtoa/ieee.h: Added.
        (WTF::double_conversion::double_to_uint64):
        (WTF::double_conversion::uint64_to_double):
        (WTF::double_conversion::float_to_uint32):
        (WTF::double_conversion::uint32_to_float):
        (WTF::double_conversion::Double::Double):
        (WTF::double_conversion::Double::AsDiyFp const):
        (WTF::double_conversion::Double::AsNormalizedDiyFp const):
        (WTF::double_conversion::Double::AsUint64 const):
        (WTF::double_conversion::Double::NextDouble const):
        (WTF::double_conversion::Double::PreviousDouble const):
        (WTF::double_conversion::Double::Exponent const):
        (WTF::double_conversion::Double::Significand const):
        (WTF::double_conversion::Double::IsDenormal const):
        (WTF::double_conversion::Double::IsSpecial const):
        (WTF::double_conversion::Double::IsNan const):
        (WTF::double_conversion::Double::IsInfinite const):
        (WTF::double_conversion::Double::Sign const):
        (WTF::double_conversion::Double::UpperBoundary const):
        (WTF::double_conversion::Double::NormalizedBoundaries const):
        (WTF::double_conversion::Double::LowerBoundaryIsCloser const):
        (WTF::double_conversion::Double::value const):
        (WTF::double_conversion::Double::SignificandSizeForOrderOfMagnitude):
        (WTF::double_conversion::Double::Infinity):
        (WTF::double_conversion::Double::NaN):
        (WTF::double_conversion::Double::DiyFpToUint64):
        (WTF::double_conversion::Single::Single):
        (WTF::double_conversion::Single::AsDiyFp const):
        (WTF::double_conversion::Single::AsUint32 const):
        (WTF::double_conversion::Single::Exponent const):
        (WTF::double_conversion::Single::Significand const):
        (WTF::double_conversion::Single::IsDenormal const):
        (WTF::double_conversion::Single::IsSpecial const):
        (WTF::double_conversion::Single::IsNan const):
        (WTF::double_conversion::Single::IsInfinite const):
        (WTF::double_conversion::Single::Sign const):
        (WTF::double_conversion::Single::NormalizedBoundaries const):
        (WTF::double_conversion::Single::UpperBoundary const):
        (WTF::double_conversion::Single::LowerBoundaryIsCloser const):
        (WTF::double_conversion::Single::value const):
        (WTF::double_conversion::Single::Infinity):
        (WTF::double_conversion::Single::NaN):
        * wtf/dtoa/strtod.cc:
        * wtf/dtoa/strtod.h:
        * wtf/dtoa/utils.h:
        (abort_noreturn):
        (WTF::double_conversion::Max):
        (WTF::double_conversion::Min):
        (WTF::double_conversion::StrLength):
        (WTF::double_conversion::BufferReference::BufferReference):
        (WTF::double_conversion::BufferReference::SubVector):
        (WTF::double_conversion::BufferReference::length const):
        (WTF::double_conversion::BufferReference::is_empty const):
        (WTF::double_conversion::BufferReference::start const):
        (WTF::double_conversion::BufferReference::operator[] const):
        (WTF::double_conversion::BufferReference::first):
        (WTF::double_conversion::BufferReference::last):
        (WTF::double_conversion::StringBuilder::StringBuilder):
        (WTF::double_conversion::StringBuilder::~StringBuilder):
        (WTF::double_conversion::StringBuilder::size const):
        (WTF::double_conversion::StringBuilder::position const):
        (WTF::double_conversion::StringBuilder::Reset):
        (WTF::double_conversion::StringBuilder::AddCharacter):
        (WTF::double_conversion::StringBuilder::AddString):
        (WTF::double_conversion::StringBuilder::AddSubstring):
        (WTF::double_conversion::StringBuilder::AddPadding):
        (WTF::double_conversion::StringBuilder::RemoveCharacters):
        (WTF::double_conversion::StringBuilder::Finalize):
        (WTF::double_conversion::StringBuilder::is_finalized const):
        (WTF::double_conversion::BitCast):
        (WTF::double_conversion::BufferReference::SubBufferReference): Deleted.
        (WTF::double_conversion::StringBuilder::SetPosition): Deleted.

2019-02-20  Darin Adler  <darin@apple.com>

        Finish removing String::format
        https://bugs.webkit.org/show_bug.cgi?id=194893

        Reviewed by Daniel Bates.

        * wtf/Assertions.cpp:
        (WTF::createWithFormatAndArguments): Moved this here from WTFString.cpp.
        (WTFLog): Use WTF::createWithFormatAndArguments instead of String::format.

        * wtf/HexNumber.h: Deleted unneeded toString function.

        * wtf/text/StringConcatenate.h: Got rid of unneeded forward declaration of
        StringTypeAdapter, since that's now in Forward.h. Tweaked formatting of templates
        a bit. Use function templates for writeTo functions rather than having two of each.
        Removed unused toString functions. Optimized case where we use have a UChar* and
        a length of zero to not force the result to be 16-bit. Also gets rid of a small
        NO_RETURN_DUE_TO_CRASH mess that we don't need. Refactored constructors to use some
        static member helper functions to compute string lengths. Added the pad function
        and the PaddingSpecification struct template, so we can add padding to anything
        we can turn into a string. Got rid of the special case overload for single
        arguments, since it only worked for things that the String constructor can handle.
        Instead we will now use StringTypeAdapter, which works for more types. Possibly
        less optimal for some special cases, which we could specialize for later if we like.
        * wtf/text/StringConcatenateNumbers.h: Ditto.
        * wtf/text/StringOperators.h: Ditto.
        * wtf/text/StringView.h: Ditto.

        * wtf/text/WTFString.cpp:
        (WTF::createWithFormatAndArguments): Deleted.
        (WTF::String::format): Deleted.
        * wtf/text/WTFString.h: Deleted declaration of String::format.

2019-02-23  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, fix find/replace error from r232178

        Looks like this was the only such error in that commit.

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::isLookalikeCharacter):

2019-02-23  Mark Lam  <mark.lam@apple.com>

        Add an exception check and some assertions in StringPrototype.cpp.
        https://bugs.webkit.org/show_bug.cgi?id=194962
        <rdar://problem/48013416>

        Reviewed by Yusuke Suzuki and Saam Barati.

        Add an AssertNoOverflow overflow handler which allows us to do CheckedArithmetic
        for assertion purpose only on debug builds but sacrifices no performance on
        release builds.

        * wtf/CheckedArithmetic.h:
        (WTF::AssertNoOverflow::overflowed):
        (WTF::AssertNoOverflow::clearOverflow):
        (WTF::AssertNoOverflow::crash):
        (WTF::AssertNoOverflow::hasOverflowed const):
        (WTF::observesOverflow):
        (WTF::observesOverflow<AssertNoOverflow>):
        (WTF::safeAdd):
        (WTF::safeSub):
        (WTF::safeMultiply):
        (WTF::Checked::operator+=):
        (WTF::Checked::operator-=):
        (WTF::Checked::operator*=):
        (WTF::operator+):
        (WTF::operator-):
        (WTF::operator*):

2019-02-23  Keith Miller  <keith_miller@apple.com>

        Add new mac target numbers
        https://bugs.webkit.org/show_bug.cgi?id=194955

        Reviewed by Tim Horton.

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

2019-02-21  Antoine Quint  <graouts@apple.com>

        Move UIWebTouchEventsGestureRecognizer.activeTouchesByIdentifier to SPI
        https://bugs.webkit.org/show_bug.cgi?id=194531
        <rdar://problem/47714562>

        Reviewed by Tim Horton.

        Follow-up commit to ensure this SPI is only called on newer versions of iOS.

        * wtf/Platform.h:

2019-02-21  Dean Jackson  <dino@apple.com>

        Rotation animations sometimes use the wrong origin (affects apple.com)
        https://bugs.webkit.org/show_bug.cgi?id=194878
        <rdar://problem/43908047>

        Follow-up commit to ensure this change only affects newer versions
        of iOS.

        * wtf/Platform.h: Add a version check.

2019-02-20  Alex Christensen  <achristensen@webkit.org>

        URL percent-encode operations should use checked arithmetic for buffer allocation length
        https://bugs.webkit.org/show_bug.cgi?id=194877
        <rdar://problem/48212062>

        Reviewed by Tim Horton.

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::userVisibleURL):
        * wtf/cocoa/NSURLExtras.mm:
        (WTF::dataWithUserTypedString):

2019-02-20  Dean Jackson  <dino@apple.com>

        Rotation animations sometimes use the wrong origin (affects apple.com)
        https://bugs.webkit.org/show_bug.cgi?id=194878
        <rdar://problem/43908047>

        Reviewed by Simon Fraser.

        * wtf/Platform.h: Add HAVE(CA_WHERE_ADDITIVE_TRANSFORMS_ARE_REVERSED).

2019-02-20  Andy Estes  <aestes@apple.com>

        [Xcode] Add SDKVariant.xcconfig to various Xcode projects
        https://bugs.webkit.org/show_bug.cgi?id=194869

        Rubber-stamped by Jer Noble.

        * WTF.xcodeproj/project.pbxproj:

2019-02-20  Adrian Perez de Castro  <aperez@igalia.com>

        [WPE][GTK] Enable support for CONTENT_EXTENSIONS
        https://bugs.webkit.org/show_bug.cgi?id=167941

        Reviewed by Carlos Garcia Campos.

        Add specialization of the refGPtr() and derefGPtr() templates for GMappedFile.

        * wtf/glib/GRefPtr.cpp:
        (WTF::refGPtr): Added.
        (WTF::derefGPtr): Added.
        * wtf/glib/GRefPtr.h: Declare template specializations.

2019-02-19  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r241770.
        https://bugs.webkit.org/show_bug.cgi?id=194833

        Caused crashes (Requested by smfr on #webkit).

        Reverted changeset:

        "Code quality cleanup in NeverDestroyed"
        https://bugs.webkit.org/show_bug.cgi?id=194824
        https://trac.webkit.org/changeset/241770

2019-02-19  Keith Miller  <keith_miller@apple.com>

        Code quality cleanup in NeverDestroyed
        https://bugs.webkit.org/show_bug.cgi?id=194824

        Reviewed by Yusuke Suzuki.

        First, move data members to the end of the class per WebKit
        style. Also, add forbid heap allocation since we expect the
        NeverDestroyed classes to be static.

        * wtf/NeverDestroyed.h:

2019-02-16  Darin Adler  <darin@apple.com>

        Continue reducing use of String::format, now focusing on hex: "%p", "%x", etc.
        https://bugs.webkit.org/show_bug.cgi?id=194752

        Reviewed by Daniel Bates.

        * WTF.xcodeproj/project.pbxproj: Added HexNumber.cpp and Logger.cpp.
        * wtf/CMakeLists.txt: Ditto.

        * wtf/HexNumber.cpp: Added.
        (WTF::Internal::appendHex): Non-inline, non-template hex formatting logic.

        * wtf/HexNumber.h:
        (WTF::Internal::appendHex): Refactored main logic of appendUnsignedAsHex and
        appendUnsignedAsHexFixedSize so they can be reused in a function named hex for
        use with StringTypeAdapter.
        (WTF::appendUnsignedAsHex): Ditto.
        (WTF::appendUnsignedAsHexFixedSize): Ditto.
        (WTF::hex): Added.
        (WTF::StringTypeAdapter<HexNumberBuffer>): Added.

        * wtf/Logger.cpp: Added.
        (WTF::Logger::LogSiteIdentifier::toString const): Made this a non-template
        function and moved it here so that we don't need to include HexNumber.h
        in Logger.h. Since HexNumber.h has substantial code in it, it's good if we
        don't include it in any other headers.

        * wtf/Logger.h:
        (WTF::LogArgument<Logger::LogSiteIdentifier>::toString): Changed to call
        a non-template function, LogSiteIdentifier::toString.

        * wtf/text/StringConcatenateNumbers.h: Replaced overloaded writeTo functions
        with function templates and used StringImpl::copyCharacters instead of
        hand-written loops.

2019-02-18  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Better categorize CPU usage per-thread / worker
        https://bugs.webkit.org/show_bug.cgi?id=194564

        Reviewed by Devin Rousso.

        * wtf/Threading.h:
        * wtf/Threading.cpp:
        (WTF::Thread::allThreadsMutex):
        (WTF::Thread::create):
        (WTF::Thread::didExit):
        Add a set of all WTF::Thread created threads.

2019-02-18  Tadeu Zagallo  <tzagallo@apple.com>

        Bytecode cache should a have a boot-specific validation
        https://bugs.webkit.org/show_bug.cgi?id=194769
        <rdar://problem/48149509>

        Reviewed by Keith Miller.

        Add helper to get kern.bootsessionuuid from sysctl

        * wtf/UUID.cpp:
        (WTF::bootSessionUUIDString):
        * wtf/UUID.h:

2019-02-17  David Kilzer  <ddkilzer@apple.com>

        Unreviewed, rolling out r241620.

        "Causes use-after-free crashes running layout tests with ASan and GuardMalloc."
        (Requested by ddkilzer on #webkit.)

        Reverted changeset:

        "[WTF] Add environment variable helpers"
        https://bugs.webkit.org/show_bug.cgi?id=192405
        https://trac.webkit.org/changeset/241620

2019-02-15  Ross Kirsling  <ross.kirsling@sony.com>

        [WTF] Add environment variable helpers
        https://bugs.webkit.org/show_bug.cgi?id=192405

        Reviewed by Michael Catanzaro.

        Create a new Environment API as a platform-independent, thread-safe(r)
        way to get and set environment variables.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/Environment.h: Added.
        * wtf/PlatformGTK.cmake:
        * wtf/PlatformJSCOnly.cmake:
        * wtf/PlatformMac.cmake:
        * wtf/PlatformPlayStation.cmake:
        * wtf/PlatformWPE.cmake:
        * wtf/PlatformWin.cmake:
        * wtf/posix/EnvironmentPOSIX.cpp: Added.
        * wtf/win/EnvironmentWin.cpp: Added.
        Introduce WTF::Environment.

        * wtf/Threading.cpp:
        (WTF::threadingIsInitialized):
        (WTF::initializeThreading):
        * wtf/Threading.h:
        Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
        false before setting an environment variable through the new API.

        * wtf/DataLog.cpp:
        (WTF::initializeLogFileOnce):
        * wtf/NumberOfCores.cpp:
        (WTF::numberOfProcessorCores):
        * wtf/posix/FileSystemPOSIX.cpp:
        (WTF::FileSystemImpl::openTemporaryFile):
        Utilize WTF::Environment where possible.

2019-02-15  Brian Burg  <bburg@apple.com>

        [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
        https://bugs.webkit.org/show_bug.cgi?id=194411
        <rdar://problem/47787614>

        Reviewed by Joseph Pecoraro.

        * wtf/cocoa/SoftLinking.h:
        Remove macro that now has no uses.

2019-02-15  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r241559 and r241566.
        https://bugs.webkit.org/show_bug.cgi?id=194710

        Causes layout test crashes under GuardMalloc (Requested by
        ryanhaddad on #webkit).

        Reverted changesets:

        "[WTF] Add environment variable helpers"
        https://bugs.webkit.org/show_bug.cgi?id=192405
        https://trac.webkit.org/changeset/241559

        "Unreviewed build fix for WinCairo Debug after r241559."
        https://trac.webkit.org/changeset/241566

2019-02-15  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r241564.

        Caused 50+ Timeouts on Mac WK2, mostly in the http/ directory

        Reverted changeset:

        "[Mac] WebInspectorUI.framework does not need to be soft-
        linked anymore"
        https://bugs.webkit.org/show_bug.cgi?id=194411
        https://trac.webkit.org/changeset/241564

2019-02-15  Dominik Infuehr  <dinfuehr@igalia.com>

        Fix deadlock on Linux/x64 between SamplingProfiler and VMTraps
        https://bugs.webkit.org/show_bug.cgi?id=194014

        Reviewed by Michael Catanzaro.

        Do not block SIGUSR1 when installing signal handlers, since this signal
        is used to suspend/resume machine threads on Linux.

        ftl-ai-filter-phantoms-should-clear-clear-value.js deadlocked with
        enabled watchdog and sampling.

        Deadlock happened in the following situation:

        Thread 1 (Sampling): SamplingProfiler.cpp:takeSample takes all needed locks
        and then tries to suspend the main thread.

        Thread 2 (Watchdog/VMTraps): Before the Sampling-Thread suspends the main thread
        a signal is caught and the signal handler is invoked (VMTraps.cpp:SignalSender).
        SignalSender tries to lock codeBlockSet, but this is already locked by the
        SamplingProfiler.

        The SamplingProfiler can only give up the lock when it suspends
        the thread. However since the VMTraps signal handler is active, all other signals blocked,
        therefore the SamplingProfiler also waits until its signal handler is invoked.

        This patch fixes this by not blocking SIGUSR1 in installSignalHandler, since
        it is used to suspend/resume threads on Linux.

        * wtf/Threading.h:
        * wtf/posix/ThreadingPOSIX.cpp:
        * wtf/threads/Signals.cpp:
        (WTF::installSignalHandler):

2019-02-15  Saam barati  <sbarati@apple.com>

        [WebAssembly] Write a new register allocator for Air O0 and make BBQ use it
        https://bugs.webkit.org/show_bug.cgi?id=194036

        Reviewed by Yusuke Suzuki.

        * wtf/IndexMap.h:
        (WTF::IndexMap::at):
        (WTF::IndexMap::at const):
        (WTF::IndexMap::operator[]):
        (WTF::IndexMap::operator[] const):

2019-02-14  Brian Burg  <bburg@apple.com>

        [Mac] WebInspectorUI.framework does not need to be soft-linked anymore
        https://bugs.webkit.org/show_bug.cgi?id=194411
        <rdar://problem/47787614>

        Reviewed by Joseph Pecoraro.

        * wtf/cocoa/SoftLinking.h:
        Remove macro that now has no uses.

2019-02-14  Ross Kirsling  <ross.kirsling@sony.com>

        [WTF] Add environment variable helpers
        https://bugs.webkit.org/show_bug.cgi?id=192405

        Reviewed by Michael Catanzaro.

        Create a new Environment API as a platform-independent, thread-safe(r)
        way to get and set environment variables.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/Environment.h: Added.
        * wtf/PlatformGTK.cmake:
        * wtf/PlatformJSCOnly.cmake:
        * wtf/PlatformMac.cmake:
        * wtf/PlatformPlayStation.cmake:
        * wtf/PlatformWPE.cmake:
        * wtf/PlatformWin.cmake:
        * wtf/posix/EnvironmentPOSIX.cpp: Added.
        * wtf/win/EnvironmentWin.cpp: Added.
        Introduce WTF::Environment.

        * wtf/Threading.cpp:
        (WTF::threadingIsInitialized):
        (WTF::initializeThreading):
        * wtf/Threading.h:
        Introduce WTF::threadingIsInitialized() so that we can ASSERT that it's
        false before setting an environment variable through the new API.

        * wtf/DataLog.cpp:
        (WTF::initializeLogFileOnce):
        * wtf/NumberOfCores.cpp:
        (WTF::numberOfProcessorCores):
        * wtf/posix/FileSystemPOSIX.cpp:
        (WTF::FileSystemImpl::openTemporaryFile):
        Utilize WTF::Environment where possible.

2019-02-13  Yusuke Suzuki  <ysuzuki@apple.com>

        We should only make rope strings when concatenating strings long enough.
        https://bugs.webkit.org/show_bug.cgi?id=194465

        Reviewed by Mark Lam.

        * wtf/text/StringImpl.h:
        (WTF::StringImpl::headerSize):

2019-02-12  Tim Horton  <timothy_horton@apple.com>

        Remove WKLegacyPDFView
        https://bugs.webkit.org/show_bug.cgi?id=194559

        Reviewed by Andy Estes.

        * wtf/FeatureDefines.h:

2019-02-12  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r238955, r240494): Soft-linking optional Lookup.framework triggers release assertion when missing
        <https://webkit.org/b/194529>
        <rdar://problem/47924449>

        Reviewed by Eric Carlson.

        * wtf/cocoa/SoftLinking.h:
        (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL): Rename
        SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_ASSERTION() to this
        and change `assertion` argument to `isOptional`.  Pass
        `isOptional` to framework##Library() method to control assertion
        behavior.  Only check RELEASE_ASSERT() if `!isOptional`, else
        that code should be optimized out by the compiler.  This fixes
        the crash.
        (NO_ASSERT): Remove macro since it's no longer used.
        (SOFT_LINK_IS_OPTIONAL): Add macro to use for soft-linking
        optional classes.
        (SOFT_LINK_IS_NOT_OPTIONAL): Add macro to use for soft-linking
        non-optional classes.
        (SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT): Update to use new
        SOFT_LINK_CLASS_FOR_SOURCE_WITH_EXPORT_AND_IS_OPTIONAL() macro.
        (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT): Ditto.
        (SOFT_LINK_CLASS_FOR_SOURCE): Ditto.
        (SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL): Ditto.

2019-02-12  Andy Estes  <aestes@apple.com>

        [iOSMac] Enable Parental Controls Content Filtering
        https://bugs.webkit.org/show_bug.cgi?id=194521
        <rdar://39732376>

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2019-02-11  Myles C. Maxfield  <mmaxfield@apple.com>

        [Cocoa] Ask platform for generic font family mappings
        https://bugs.webkit.org/show_bug.cgi?id=187723
        <rdar://problem/41892438>

        Reviewed by Brent Fulgham.

        Add an ENABLE in Platform.

        * wtf/Platform.h:

2019-02-11  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r241229.

        Revision broke internal builds for watchOS.

        Reverted changeset:

        "[Cocoa] Ask platform for generic font family mappings"
        https://bugs.webkit.org/show_bug.cgi?id=187723
        https://trac.webkit.org/changeset/241229

2019-02-10  Darin Adler  <darin@apple.com>

        Switch uses of StringBuilder with String::format for hex numbers to use HexNumber.h instead
        https://bugs.webkit.org/show_bug.cgi?id=194485

        Reviewed by Daniel Bates.

        * wtf/HexNumber.h: Removed unused functions placeByteAsHexCompressIfPossible and
        placeByteAsHex. Can always bring them back if someone needs them. Updated
        appendUnsignedAsHex to be a template so we can use it on any integer type,
        got rid of unnecessary use of Vector and unnecessary reversing, and got rid of
        appendUnsigned64AsHex since callers can now just use appendUnsignedAsHex.
        Rewrote appendUnsignedAsHexFixedSize to share mode code rather than replicating.

        * wtf/Logger.h: Use appendUnsignedAsHex instead of appendUnsigned64AsHex.

        * wtf/URL.cpp: Removed unnecessary include of HexNumber.h.

        * wtf/cocoa/NSURLExtras.h: Added missing include of Foundation.h that was
        worked around in NSURLExtras.mm.
        * wtf/cocoa/NSURLExtras.mm: Removed unnecessary includes of HexNumber.h
        and Foundation.h.

2019-02-09  Darin Adler  <darin@apple.com>

        Eliminate unnecessary String temporaries by using StringConcatenateNumbers
        https://bugs.webkit.org/show_bug.cgi?id=194021

        Reviewed by Geoffrey Garen.

        * wtf/URL.cpp:
        (WTF::URL::setPort): Remove String::number and let makeString do the conversion
        without allocating/destroying a String. Added a cast to "unsigned" to sidestep the
        ambiguity with 16-bit unsigned types that are sometimes used for numbers (uint16_t)
        and sometimes used for UTF-16 code units (UChar) and can be the same type.

        * wtf/text/StringConcatenateNumbers.h:
        Changed FormattedNumber::fixedPrecision to more closely match String::number and
        StringBuilder::appendNumber by defaulting to truncating trailing zeros and using
        a named enumeration for the truncation policy rather than a boolean.


2019-02-09  Yusuke Suzuki  <ysuzuki@apple.com>

        Unreviewed, rolling in r241237 again
        https://bugs.webkit.org/show_bug.cgi?id=194469

        After the measurement, this patch was unrelated to recent regression.

        * wtf/text/StringImpl.h:
        (WTF::StringImpl::isSubString const):
        (WTF::StringImpl::createSubstringSharingImpl):

2019-02-09  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r241237.
        https://bugs.webkit.org/show_bug.cgi?id=194474

        Shows significant memory increase in WSL (Requested by
        yusukesuzuki on #webkit).

        Reverted changeset:

        "[WTF] Use BufferInternal StringImpl if substring StringImpl
        takes more memory"
        https://bugs.webkit.org/show_bug.cgi?id=194469
        https://trac.webkit.org/changeset/241237

2019-02-08  Yusuke Suzuki  <ysuzuki@apple.com>

        [WTF] Use BufferInternal StringImpl if substring StringImpl takes more memory
        https://bugs.webkit.org/show_bug.cgi?id=194469

        Reviewed by Geoffrey Garen.

        Because pointer is large and aligned in 64bit in 64bit architecture, BufferSubstring StringImpl
        implementation takes more memory than BufferInternal StringImpl implementation for small strings.
        And BufferInternal StringImpl does not have a problem like, small substring StringImpl keeps super
        large owner StringImpl. This patch calculates the required size of memory and selects the more efficient one.

        * wtf/text/StringImpl.h:
        (WTF::StringImpl::isSubString const):
        (WTF::StringImpl::createSubstringSharingImpl):

2019-02-08  Alex Christensen  <achristensen@webkit.org>

        Add SPI to use networking daemon instead of XPC service
        https://bugs.webkit.org/show_bug.cgi?id=194427

        Reviewed by Geoffrey Garen.

        * wtf/spi/darwin/XPCSPI.h:
        Instead of using XPC bootstrap SPI, we just send a separate message.
        xpc_copy_bootstrap does not seem to work in  daemons.

2019-02-08  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r241197.

        Broke iOS Simulator Debug build and casued 1 API failure on
        High Sierra

        Reverted changeset:

        "Add SPI to use networking daemon instead of XPC service"
        https://bugs.webkit.org/show_bug.cgi?id=194427
        https://trac.webkit.org/changeset/241197

2019-02-08  Alex Christensen  <achristensen@webkit.org>

        Add SPI to use networking daemon instead of XPC service
        https://bugs.webkit.org/show_bug.cgi?id=194427

        Reviewed by Geoffrey Garen.

        * wtf/spi/darwin/XPCSPI.h:
        Instead of using XPC bootstrap SPI, we just send a separate message.
        xpc_copy_bootstrap does not seem to work in  daemons.

2019-02-08  Benjamin Poulain  <benjamin@webkit.org>

        clampTo(): do not convert the input to double when dealing with integers
        https://bugs.webkit.org/show_bug.cgi?id=194263
        <rdar://problem/47692312>

        Reviewed by Darin Adler.

        Previously, every use of clampTo() was converting the input to double,
        doing the comparison in double, then casting back to whatever type was needed.

        In many case, that was very wasteful. WebKit has many cases of clampTo() with
        the same type as input/output, or with integer types of different size/sign.

        This patch adds a few versions of clampTo() for the common cases seen in WebKit.
        In each case, I tried to minimize the amount of conversion needed at runtime.

        * wtf/MathExtras.h:
        (clampTo):

2019-02-07  Chris Dumez  <cdumez@apple.com>

        Mark more heap-allocated classes as fast allocated
        https://bugs.webkit.org/show_bug.cgi?id=194422

        Reviewed by Ryosuke Niwa.

        * wtf/Function.h:
        (WTF::Function<Out):
        * wtf/RefCounter.h:
        * wtf/URL.h:
        * wtf/text/StringView.cpp:

2019-02-07  Per Arne Vollan  <pvollan@apple.com>

        [macOS] Block coreservicesd in sandbox.
        https://bugs.webkit.org/show_bug.cgi?id=192670

        Reviewed by Alexey Proskuryakov.

        Add HAVE_CSCHECKFIXDISABLE define.

        * wtf/Platform.h:

2019-02-07  Eric Carlson  <eric.carlson@apple.com>

        [MSE] Convert debug-only logging to runtime logging
        https://bugs.webkit.org/show_bug.cgi?id=194348
        <rdar://problem/47566449>

        Reviewed by Jer Noble.

        * wtf/LoggerHelper.h:
        (WTF::LoggerHelper::childLogIdentifier const): Helper to generate a log identifier for an
        object that is associated with another logging object.
        * wtf/MediaTime.cpp:
        (WTF::MediaTime::toJSONObject const):
        (WTF::MediaTime::toJSONString const):
        (WTF::MediaTimeRange::toJSONString const):
        (WTF::toJSONStringInternal): Deleted.
        * wtf/MediaTime.h:

2019-02-05  Keith Rollin  <krollin@apple.com>

        Enable the automatic checking and regenerations of .xcfilelists during builds
        https://bugs.webkit.org/show_bug.cgi?id=194124
        <rdar://problem/47721277>

        Reviewed by Tim Horton.

        Bug 193790 add a facility for checking -- during build time -- that
        any needed .xcfilelist files are up-to-date and for updating them if
        they are not. This facility was initially opt-in by setting
        WK_ENABLE_CHECK_XCFILELISTS until other pieces were in place and until
        the process seemed robust. Its now time to enable this facility and
        make it opt-out. If there is a need to disable this facility, set and
        export WK_DISABLE_CHECK_XCFILELISTS=1 in your environment before
        running `make` or `build-webkit`, or before running Xcode from the
        command line.

        Additionally, remove the step that generates a list of source files
        going into the UnifiedSources build step. It's only necessarily to
        specify Sources.txt and SourcesCocoa.txt as inputs.

        * Scripts/generate-unified-source-bundles.rb:

2019-02-05  Yusuke Suzuki  <ysuzuki@apple.com>

        [JSC] Shrink sizeof(UnlinkedCodeBlock)
        https://bugs.webkit.org/show_bug.cgi?id=194281

        Reviewed by Michael Saboff.

        * wtf/TriState.h:

2019-02-05  Zan Dobersek  <zdobersek@igalia.com>

        [GLib] Stop URI-escaping file system representations
        https://bugs.webkit.org/show_bug.cgi?id=194213

        Reviewed by Carlos Garcia Campos.

        Stop URI-escaping of file representation strings in
        FileSystem::stringFromFileSystemRepresentation(), and URI-unescaping
        of strings in FileSystem::fileSystemRepresentation().

        This behavior deviates from POSIX and CF implementations and is
        currently breaking IndexedDB-specific calculation of database sizes due
        to directory components used in that process that are URL-based and are
        as such URI-escaped. When unescaped, those single directory components
        explode into multiple directory components, leading to incorrect total
        database size calculation when iterating the database directory.

        FileSystem::stringFromFileSystemRepresentation() now retrieves GLib's
        filename charsets and in worst case converts the filesystem
        representation to UTF-8 before String::fromUTF8() is used.
        FileSystem::fileSystemRepresentation() reverses that process, taking
        String's UTF-8 data and converting it to target charset if necessary.

        Other FileSystem functions are adjusted to convert passed-in String
        objects to filesystem representations.

        * wtf/glib/FileSystemGlib.cpp:
        (WTF::FileSystemImpl::stringFromFileSystemRepresentation):
        (WTF::FileSystemImpl::fileSystemRepresentation):
        (WTF::FileSystemImpl::validRepresentation):
        (WTF::FileSystemImpl::filenameForDisplay):
        (WTF::FileSystemImpl::fileExists):
        (WTF::FileSystemImpl::deleteFile):
        (WTF::FileSystemImpl::deleteEmptyDirectory):
        (WTF::FileSystemImpl::getFileStat):
        (WTF::FileSystemImpl::getFileLStat):
        (WTF::FileSystemImpl::makeAllDirectories):
        (WTF::FileSystemImpl::createSymbolicLink):
        (WTF::FileSystemImpl::pathGetFileName):
        (WTF::FileSystemImpl::getVolumeFreeSpace):
        (WTF::FileSystemImpl::directoryName):
        (WTF::FileSystemImpl::listDirectory):
        (WTF::FileSystemImpl::openFile):
        (WTF::FileSystemImpl::moveFile):
        (WTF::FileSystemImpl::hardLinkOrCopyFile):
        (WTF::FileSystemImpl::getFileDeviceId): Align with POSIX implementation
        and treat input CString as an existing filesystem representation.
        (WTF::FileSystemImpl::unescapedFilename): Deleted.

2019-02-04  Ms2ger  <Ms2ger@igalia.com>

        [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
        https://bugs.webkit.org/show_bug.cgi?id=174816

        Reviewed by Michael Catanzaro.

        Translate userVisibleString and dependent code into platform-neutral C++
        in wtf/URLHelpers.{h,cpp}.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/URLHelpers.cpp: Added.
        (WTF::URLHelpers::loadIDNScriptWhiteList):
        (WTF::URLHelpers::isArmenianLookalikeCharacter):
        (WTF::URLHelpers::isArmenianScriptCharacter):
        (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
        (WTF::URLHelpers::isLookalikeCharacter):
        (WTF::URLHelpers::whiteListIDNScript):
        (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
        (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
        (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
        (WTF::URLHelpers::isRussianDomainNameCharacter):
        (WTF::URLHelpers::allCharactersAllowedByTLDRules):
        (WTF::URLHelpers::mapHostName):
        (WTF::URLHelpers::collectRangesThatNeedMapping):
        (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
        (WTF::URLHelpers::applyHostNameFunctionToURLString):
        (WTF::URLHelpers::mapHostNames):
        (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
        (WTF::URLHelpers::toNormalizationFormC):
        (WTF::URLHelpers::userVisibleURL):
        * wtf/URLHelpers.h: Added.
        * wtf/cocoa/NSURLExtras.mm:
        (WTF::URLHelpers::loadIDNScriptWhiteList):
        (WTF::decodePercentEscapes):
        (WTF::decodeHostName):
        (WTF::encodeHostName):
        (WTF::URLWithUserTypedString):
        (WTF::userVisibleString):

2019-02-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r240896.
        https://bugs.webkit.org/show_bug.cgi?id=194202

        "Fixes leaks, but is probably not the correct fix." (Requested
        by ddkilzer on #webkit).

        Reverted changeset:

        "Leak of WTF::StringImpl under SymbolImpl::createNullSymbol()
        (48 bytes) in com.apple.WebKit.WebContent running layout
        tests"
        https://bugs.webkit.org/show_bug.cgi?id=193291
        https://trac.webkit.org/changeset/240896

2019-02-02  David Kilzer  <ddkilzer@apple.com>

        Leak of WTF::StringImpl under SymbolImpl::createNullSymbol() (48 bytes) in com.apple.WebKit.WebContent running layout tests
        <https://webkit.org/b/193291>
        <rdar://problem/46655953>

        Reviewed by Keith Miller.

        * wtf/text/SymbolImpl.h:
        (WTF::SymbolImpl::~SymbolImpl): Fix the leak by implementing the
        class destructor that calls StringImpl::deref() on `m_owner`.
        Two of the three constructors leak the StringImpl when setting
        `m_owner`, so we need to balance that by manually calling
        deref().

2018-12-16  Darin Adler  <darin@apple.com>

        Convert additional String::format clients to alternative approaches
        https://bugs.webkit.org/show_bug.cgi?id=192746

        Reviewed by Alexey Proskuryakov.

        * wtf/JSONValues.cpp:
        (WTF::appendDoubleQuotedStringEscapedCharacter): Renamed from
        escapeChar and reordered arguments to make sense as an append function.
        (WTF::appendDoubleQuotedString): Renamed from doubleQuoteString,
        reordered arguments to make sense as an append function, take a
        StringView instead of a String, used early exit to make the code
        a bit easier to read. Use the ASCIIHexDigit functions to construct
        a hex number a nibble at a time rather than using String::format.
        (WTF::JSONImpl::Value::writeJSON const): Update for name change.
        (WTF::JSONImpl::ObjectBase::writeJSON const): Ditto.

2019-01-31  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix WPE compile warnings due to deprecated glib API.

        * wtf/Platform.h:

2019-01-29  Chris Dumez  <cdumez@apple.com>

        Make sure WTF::generateObjectIdentifier() internal counter does not get duplicated
        https://bugs.webkit.org/show_bug.cgi?id=193848

        Reviewed by Youenn Fablet.

        Move WTF::generateObjectIdentifier()'s internal counter out-of-line so make sure it never gets
        duplicated at each call site. This has caused some hard-to-debug issues with duplicate
        identifiers such as Bug 193761.

        Also move it to ObjectIdentifier and rename it to generate() as this make call sites nicer
        when they have a typedef for the ObjectIdentifier<T> type.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/ObjectIdentifier.cpp: Copied from Source/WebCore/platform/Process.cpp.
        (WTF::ObjectIdentifierBase::generateIdentifierInternal):
        (WTF::ObjectIdentifierBase::generateThreadSafeIdentifierInternal):
        * wtf/ObjectIdentifier.h:
        (WTF::ObjectIdentifier::generate):
        (WTF::ObjectIdentifier::generateThreadSafe):

2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>

        Move platform-specific files out of WTF root directory.
        https://bugs.webkit.org/show_bug.cgi?id=193929

        Reviewed by Alex Christensen.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/PlatformGTK.cmake:
        * wtf/PlatformJSCOnly.cmake:
        * wtf/PlatformMac.cmake:
        * wtf/PlatformPlayStation.cmake:
        * wtf/PlatformWPE.cmake:
        * wtf/PlatformWin.cmake:
        * wtf/cf/RunLoopTimerCF.cpp: Renamed from Source/WTF/wtf/RunLoopTimerCF.cpp.
        * wtf/cf/SchedulePairCF.cpp: Renamed from Source/WTF/wtf/SchedulePairCF.cpp.
        * wtf/mac/SchedulePairMac.mm: Renamed from Source/WTF/wtf/SchedulePairMac.mm.
        * wtf/posix/OSAllocatorPOSIX.cpp: Renamed from Source/WTF/wtf/OSAllocatorPosix.cpp.
        * wtf/posix/ThreadingPOSIX.cpp: Renamed from Source/WTF/wtf/ThreadingPthreads.cpp.
        * wtf/win/CONTRIBUTORS.pthreads-win32: Renamed from Source/WTF/wtf/CONTRIBUTORS.pthreads-win32.
        * wtf/win/OSAllocatorWin.cpp: Renamed from Source/WTF/wtf/OSAllocatorWin.cpp.
        * wtf/win/ThreadSpecificWin.cpp: Renamed from Source/WTF/wtf/ThreadSpecificWin.cpp.
        * wtf/win/ThreadingWin.cpp: Renamed from Source/WTF/wtf/ThreadingWin.cpp.

2019-01-28  Andy Estes  <aestes@apple.com>

        [watchOS] Enable Parental Controls content filtering
        https://bugs.webkit.org/show_bug.cgi?id=193939
        <rdar://problem/46641912>

        Reviewed by Ryosuke Niwa.

        * wtf/Platform.h:

2019-01-28  Ross Kirsling  <ross.kirsling@sony.com>

        [JSCOnly][WTF] Expose FileSystem.
        https://bugs.webkit.org/show_bug.cgi?id=193789

        Reviewed by Don Olmstead.

        * wtf/FileSystem.h:
        * wtf/PlatformJSCOnly.cmake:
        * wtf/posix/FileSystemPOSIX.cpp:
        (WTF::FileSystemImpl::getVolumeFreeSpace):
        * wtf/win/FileSystemWin.cpp:
        (WTF::FileSystemImpl::fileSystemRepresentation):

2019-01-28  Eric Carlson  <eric.carlson@apple.com>

        AVStreamSession isn't always available, make a HAVE compile flag for it
        https://bugs.webkit.org/show_bug.cgi?id=193889
        <rdar://problem/47452863>

        Reviewed by Jer Noble.

        * wtf/FeatureDefines.h:

2018-12-15  Darin Adler  <darin@apple.com>

        Replace many uses of String::format with more type-safe alternatives
        https://bugs.webkit.org/show_bug.cgi?id=192742

        Reviewed by Mark Lam.

        * wtf/WorkQueue.cpp:
        (WTF::WorkQueue::concurrentApply): Use makeString.

        * wtf/dtoa.cpp:
        (WTF::dtoa): Use sprintf instead of String::format in the comments,
        since these functions have nothing to do with WTF::String.

2019-01-25  Chris Dumez  <cdumez@apple.com>

        [iOS] Add support for the download attribute
        https://bugs.webkit.org/show_bug.cgi?id=167341
        <rdar://problem/30296281>

        Reviewed by Geoffrey Garen.

        Turn on HTML download attribute support on iOS.

        * wtf/FeatureDefines.h:

2019-01-25  David Kilzer  <ddkilzer@apple.com>

        Move soft-linking of Lookup.framework out of LookupSPI.h
        <https://webkit.org/b/193815>

        Reviewed by Tim Horton.

        * wtf/cocoa/SoftLinking.h:
        (SOFT_LINK_CONSTANT_FOR_HEADER):
        (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
        (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_HEADER):
        - Remove local declaration of constant.  This should be handled
          by including *SPI.h or "real" headers.
        (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT):
        - Remove local declaration of constant.
        - Rename from SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE() and add
          `export` argument to support exporting of functions.
        (SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE):
        - Redefine in terms of
          SOFT_LINK_CONSTANT_MAY_FAIL_FOR_SOURCE_WITH_EXPORT().

2019-01-24  Youenn Fablet  <youenn@apple.com>

        Use MonotonicTime in WorkerRunLoop
        https://bugs.webkit.org/show_bug.cgi?id=193417

        Reviewed by Saam Barati.

        * wtf/MessageQueue.h:
        (WTF::MessageQueue<DataType>::waitForMessage):
        (WTF::MessageQueue<DataType>::waitForMessageFilteredWithTimeout):

2019-01-24  Ross Kirsling  <ross.kirsling@sony.com>

        Move FileSystem to WTF
        https://bugs.webkit.org/show_bug.cgi?id=193602

        Reviewed by Yusuke Suzuki.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/FileMetadata.h: Renamed from Source/WebCore/platform/FileMetadata.h.
        * wtf/FileSystem.cpp: Renamed from Source/WebCore/platform/FileSystem.cpp.
        * wtf/FileSystem.h: Renamed from Source/WebCore/platform/FileSystem.h.
        * wtf/PlatformGTK.cmake:
        * wtf/PlatformMac.cmake:
        * wtf/PlatformPlayStation.cmake:
        * wtf/PlatformWPE.cmake:
        * wtf/PlatformWin.cmake:
        * wtf/cf/FileSystemCF.cpp: Renamed from Source/WebCore/platform/cf/FileSystemCF.cpp.
        * wtf/cocoa/FileSystemCocoa.mm: Renamed from Source/WebCore/platform/cocoa/FileSystemCocoa.mm.
        * wtf/glib/FileSystemGlib.cpp: Renamed from Source/WebCore/platform/glib/FileSystemGlib.cpp.
        * wtf/mac/FileSystemMac.mm: Renamed from Source/WebCore/platform/mac/FileSystemMac.mm.
        * wtf/posix/FileSystemPOSIX.cpp: Renamed from Source/WebCore/platform/posix/FileSystemPOSIX.cpp.
        * wtf/spi/mac/MetadataSPI.h: Renamed from Source/WebCore/PAL/pal/spi/mac/MetadataSPI.h.
        * wtf/win/FileSystemWin.cpp: Renamed from Source/WebCore/platform/win/FileSystemWin.cpp.
        * wtf/win/PathWalker.cpp: Renamed from Source/WebCore/platform/win/PathWalker.cpp.
        * wtf/win/PathWalker.h: Renamed from Source/WebCore/platform/win/PathWalker.h.

2019-01-24  Guillaume Emont  <guijemont@igalia.com>

        [JSC] Reenable baseline JIT on mips
        https://bugs.webkit.org/show_bug.cgi?id=192983

        Reviewed by Mark Lam.

        Use baseline JIT by default on MIPS.

        * wtf/Platform.h:

2019-01-24  David Kilzer  <ddkilzer@apple.com>

        Duplicate global variables: WTF::asciiCaseFoldTable
        <https://webkit.org/b/193726>
        <rdar://problem/47334622>

        Reviewed by Michael Catanzaro.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        - Add ASCIICType.cpp to build systems.

        * wtf/ASCIICType.cpp: Added.
        (WTF::asciiCaseFoldTable): Move table to here so there is only
        one copy.  Mark as exported for other frameworks to use.
        * wtf/ASCIICType.h:
        (WTF::asciiCaseFoldTable): Change to extern declaration, and
        mark as exported for other frameworks to use.

2019-01-23  Mark Lam  <mark.lam@apple.com>

        ARM64E should not ENABLE(SEPARATED_WX_HEAP).
        https://bugs.webkit.org/show_bug.cgi?id=193744
        <rdar://problem/46262952>

        Reviewed by Saam Barati.

        * wtf/Platform.h:

2019-01-23  David Kilzer  <ddkilzer@apple.com>

        Switch remaining CoreMedia soft-linking in WebKit over to CoreMediaSoftLink.{cpp,h}
        <https://webkit.org/b/193694>
        <rdar://problem/47464025>

        Reviewed by Tim Horton.

        * wtf/win/SoftLinking.h:
        (SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT):
        - Implement for Windows.
        (SOFT_LINK_CONSTANT_FOR_SOURCE):
        - Define using SOFT_LINK_CONSTANT_FOR_SOURCE_WITH_EXPORT().

2019-01-22  Tadeu Zagallo  <tzagallo@apple.com>

        Cache bytecode to disk
        https://bugs.webkit.org/show_bug.cgi?id=192782
        <rdar://problem/46084932>

        Reviewed by Keith Miller.

        BitVectors have to be friends with JSC::CacheBitVector to allow
        serializing its buffer as part of the bytecode cache encoding.

        * wtf/BitVector.h:

2019-01-21  Claudio Saavedra  <csaavedra@igalia.com>

        [GTK] Speculative build fix for Ubuntu LTS
        https://bugs.webkit.org/show_bug.cgi?id=193651

        Unreviewed build fix.

        * wtf/Assertions.h: Add missing <cstdlib> include.

2019-01-20  Saam Barati  <sbarati@apple.com>

        Rollout r240210: It broke tests on iOS
        https://bugs.webkit.org/show_bug.cgi?id=193640

        Unreviewed.

        * wtf/BitVector.h:

2019-01-20  Tadeu Zagallo  <tzagallo@apple.com>

        Cache bytecode to disk
        https://bugs.webkit.org/show_bug.cgi?id=192782
        <rdar://problem/46084932>

        Reviewed by Keith Miller.

        BitVectors have to be friends with JSC::CacheBitVector to allow
        serializing its buffer as part of the bytecode cache encoding.

        * wtf/BitVector.h:

2019-01-18  Tim Horton  <timothy_horton@apple.com>

        Get rid of ADVANCED_SPELL_CHECKING
        https://bugs.webkit.org/show_bug.cgi?id=193592

        Reviewed by Wenson Hsieh.

        * wtf/Platform.h:

2019-01-18  Jer Noble  <jer.noble@apple.com>

        SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
        https://bugs.webkit.org/show_bug.cgi?id=189553

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/SDKVariant.xcconfig: Added.

2019-01-18  Keith Miller  <keith_miller@apple.com>

        Gigacages should start allocations from a slide
        https://bugs.webkit.org/show_bug.cgi?id=193523

        Reviewed by Mark Lam.

        This patch changes some macros into constants since macros are the
        devil.

        * wtf/Gigacage.cpp:
        * wtf/Gigacage.h:

2019-01-18  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r240160.

        This broke multiple internal builds.

        Reverted changeset:

        "Gigacages should start allocations from a slide"
        https://bugs.webkit.org/show_bug.cgi?id=193523
        https://trac.webkit.org/changeset/240160

2019-01-18  Keith Miller  <keith_miller@apple.com>

        Gigacages should start allocations from a slide
        https://bugs.webkit.org/show_bug.cgi?id=193523

        Reviewed by Mark Lam.

        This patch changes some macros into constants since macros are the
        devil.

        * wtf/Gigacage.cpp:
        * wtf/Gigacage.h:

2019-01-17  Truitt Savell  <tsavell@apple.com>

        Unreviewed, rolling out r240124.

        This commit broke an internal build.

        Reverted changeset:

        "SDK_VARIANT build destinations should be separate from non-
        SDK_VARIANT builds"
        https://bugs.webkit.org/show_bug.cgi?id=189553
        https://trac.webkit.org/changeset/240124

2019-01-17  Jer Noble  <jer.noble@apple.com>

        SDK_VARIANT build destinations should be separate from non-SDK_VARIANT builds
        https://bugs.webkit.org/show_bug.cgi?id=189553

        Reviewed by Tim Horton.

        * Configurations/Base.xcconfig:
        * Configurations/SDKVariant.xcconfig: Added.

2019-01-16  Keith Miller  <keith_miller@apple.com>

        bmalloc should use JSC VM tag for gigacage
        https://bugs.webkit.org/show_bug.cgi?id=193496

        Reviewed by Mark Lam.

        Move most of the macros for vm tagging to bmalloc.

        * wtf/VMTags.h:

2019-01-16  Alberto Garcia  <berto@igalia.com>

        [WTF] Compilation fails with system malloc
        https://bugs.webkit.org/show_bug.cgi?id=172445

        Reviewed by Michael Catanzaro.

        Follow-up to r217270. The sysinfo() system call is specific to
        Linux so update the #ifdef checks accordingly.

        * wtf/RAMSize.cpp:
        (WTF::computeRAMSize):

2019-01-15  Chris Dumez  <cdumez@apple.com>

        Unreviewed, revert part of r239997 as it is not needed to fix the build.

        * wtf/RefCounter.h:

2019-01-15  Alex Christensen  <achristensen@webkit.org>

        Fix iOS build after r239993
        https://bugs.webkit.org/show_bug.cgi?id=193361

        * wtf/RefCounter.h:

2019-01-14  Michael Catanzaro  <mcatanzaro@igalia.com>

        Use unorm2_normalize instead of precomposedStringWithCanonicalMapping in userVisibleString
        https://bugs.webkit.org/show_bug.cgi?id=192945

        Reviewed by Alex Christensen.

        Replace use of the nice NSString function precomposedStringWithCanonicalMapping with the ICU
        API unorm2_normalize. This is to prep the code for translation to cross-platform C++. Of
        course this is much worse than the preexisting code, but this is just a transitional
        measure and not the final state of the code. It wouldn't make sense to do this if the code
        were to remain Objective C++.

        * wtf/cocoa/NSURLExtras.mm:
        (WTF::toNormalizationFormC):
        (WTF::userVisibleString):

2019-01-14  Alex Christensen  <achristensen@webkit.org>

        Bulgarian TLD should not punycode-encode URLs with Bulgarian Cyrillic characters
        https://bugs.webkit.org/show_bug.cgi?id=193411
        <rdar://problem/47215929>

        Reviewed by Alexey Proskuryakov.

        * wtf/cocoa/NSURLExtras.mm:
        (WTF::allCharactersAllowedByTLDRules):

2019-01-12  Timothy Hatcher  <timothy@apple.com>

        Have prefers-color-scheme: light always match on macOS versions before Mojave.
        https://bugs.webkit.org/show_bug.cgi?id=191655
        rdar://problem/46074680

        Reviewed by Megan Gardner.

        * wtf/Platform.h: Define HAVE_OS_DARK_MODE_SUPPORT on macOS 10.14.

2019-01-11  David Kilzer  <ddkilzer@apple.com>

        Follow-up: WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
        https://bugs.webkit.org/show_bug.cgi?id=191350

        * wtf/WorkQueue.cpp:
        (WTF::WorkQueue::concurrentApply): Fix whitespace.

2019-01-11  Devin Rousso  <drousso@apple.com>

        Fix style CFNetworkSPI style checker warnings from r239698
        https://bugs.webkit.org/show_bug.cgi?id=193369

        Reviewed by Joseph Pecoraro.

        * wtf/Platform.h:

2019-01-11  Said Abou-Hallawa  <sabouhallawa@apple.com>

        WorkQueue::concurrentApply() passes a raw pointer to a temporary String to Thread::create().
        https://bugs.webkit.org/show_bug.cgi?id=191350

        Reviewed by Brent Fulgham.

        The non COCOA version of WorkQueue::concurrentApply() creates a temporary
        String for the threadName and passes the raw pointer of this String to
        Thread::create(). After freeing this String, Thread::entryPoint() uses
        the raw char pointer to internally initialize the thread.

        The fix is to use a single literal string for all the threads' names since
        they are created for a thread-pool.

        * wtf/WorkQueue.cpp:
        (WTF::WorkQueue::concurrentApply):

2019-01-11  Dominik Infuehr  <dinfuehr@igalia.com>

        Enable DFG on ARM/Linux again
        https://bugs.webkit.org/show_bug.cgi?id=192496

        Reviewed by Yusuke Suzuki.

        After changing the bytecode format DFG was disabled on all 32-bit
        architectures. Enable DFG now again on ARM/Linux.

        * wtf/Platform.h:

2019-01-10  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r239825.
        https://bugs.webkit.org/show_bug.cgi?id=193330

        Broke tests on armv7/linux bots (Requested by guijemont on
        #webkit).

        Reverted changeset:

        "Enable DFG on ARM/Linux again"
        https://bugs.webkit.org/show_bug.cgi?id=192496
        https://trac.webkit.org/changeset/239825

2019-01-10  John Wilander  <wilander@apple.com>

        Override the session configuration for cookieAcceptPolicy
        https://bugs.webkit.org/show_bug.cgi?id=190925
        <rdar://problem/45497382>

        Reviewed by Alexey Proskuryakov and Alex Christensen.

        * wtf/Platform.h:
            Definition of HAVE_CFNETWORK_OVERRIDE_SESSION_COOKIE_ACCEPT_POLICY.

2019-01-10  Dominik Infuehr  <dinfuehr@igalia.com>

        Enable DFG on ARM/Linux again
        https://bugs.webkit.org/show_bug.cgi?id=192496

        Reviewed by Yusuke Suzuki.

        After changing the bytecode format DFG was disabled on all 32-bit
        architectures. Enable DFG now again on ARM/Linux.

        * wtf/Platform.h:

2019-01-10  Carlos Garcia Campos  <cgarcia@igalia.com>

        [FreeType] Color emoji not properly supported
        https://bugs.webkit.org/show_bug.cgi?id=191976

        Reviewed by Michael Catanzaro.

        Add a name for combining enclosing keycap character.

        * wtf/unicode/CharacterNames.h:

2019-01-09  Carlos Eduardo Ramalho  <cadubentzen@gmail.com> and Fujii Hironori  <Hironori.Fujii@sony.com>

        Use directory local sequential numbers for Unified Sources filenames instead of global sequential numbers for CMake
        https://bugs.webkit.org/show_bug.cgi?id=192391

        Reviewed by Don Olmstead.

        Unified Source Builds are using global sequential numbers for
        bundle filenames UnifiedSource{sequential-number}.cpp. As the
        result, every new source file added would shift the next ones and
        prevent compiler caches from speeding up consecutive builds e.g.
        in git-bisect sessions.

        Changed it to directory local sequential numbers,
        UnifiedSource-{hash-of-dir-name}-{sequential-number-within-the-dir}.cpp.

        This is affecting only CMake builds which is where no
        '--max-cpp-bundle-count' nor '--max-obj-c-bundle-count' options
        are set. Xcode builds still use the old convention.

        * Scripts/generate-unified-source-bundles.rb: Add new instance
        variables @currentDirectory and @extraFiles to BundleManager.
        Still use global sequential numbers if --max-cpp-bundle-count or
        --max-obj-c-bundle-count is given.

2019-01-09  Alex Christensen  <achristensen@webkit.org>

        Expand use of sourceApplicationAuditData
        https://bugs.webkit.org/show_bug.cgi?id=192995
        <rdar://problem/46627875>

        Reviewed by Brady Eidson.

        * wtf/Platform.h:

2019-01-09  Mark Lam  <mark.lam@apple.com>

        Gigacage disabling checks should handle the GIGACAGE_ALLOCATION_CAN_FAIL case properly.
        https://bugs.webkit.org/show_bug.cgi?id=193292
        <rdar://problem/46485450>

        Reviewed by Yusuke Suzuki.

        Update the USE_SYSTEM_MALLOC version of Gigacage.h to match the bmalloc version.

        * wtf/Gigacage.h:

2019-01-07  David Kilzer  <ddkilzer@apple.com>

        Prefer RetainPtr<NSObject> to RetainPtr<NSObject *>
        <https://webkit.org/b/193056>

        Reviewed by Alex Christensen.

        * wtf/RetainPtr.h:
        (WTF::RetainPtr<T>::HelperPtrType):
        - Use C++ template metaprogramming to define a shared return
          type for adoptNS() and retainPtr() that uses
          RetainPtr<NSObject> instead of RetainPtr<NSObject *>.  The
          non-Objective-C typedef is used with retainPtr() for CFTypeRef
          objects.
        (WTF::adoptNS):
        - Only make declarations available when compilng with
          Objective-C.  The inline implementation is only available for
          Objective-C, so this makes the declarations consistent.
        - Change return type to remove '*' from NS types using
          RetainPtr<T>::HelperPtrType.
        (WTF::retainPtr):
        - Change return type to remove '*' from NS types using
          RetainPtr<T>::HelperPtrType.

        * wtf/SchedulePair.h:
        - Remove '*' from RetainPtr<> type.

2019-01-07  Eric Carlson  <eric.carlson@apple.com>

        A MediaTime timescale must never be zero
        https://bugs.webkit.org/show_bug.cgi?id=193156
        <rdar://problem/32504501>

        Reviewed by Jer Noble.

        * wtf/MediaTime.cpp:
        (WTF::greatestCommonDivisor): ASSERT if either parameter or return value is zero.
        (WTF::MediaTime::MediaTime): Create +/- infinity if passed zero timescale.
        (WTF::MediaTime::createWithFloat): Ditto.
        (WTF::MediaTime::createWithDouble): Ditto.
        (WTF::MediaTime::setTimeScale): Ditto.

2019-01-02  Alex Christensen  <achristensen@webkit.org>

        Homograph with LATIN SMALL LETTER R WITH FISHHOOK
        https://bugs.webkit.org/show_bug.cgi?id=192944

        Reviewed by Tim Horton.

        * wtf/cocoa/NSURLExtras.mm:
        (WTF::isLookalikeCharacter):

2019-01-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r239524.
        https://bugs.webkit.org/show_bug.cgi?id=193083

        basic browsing seems not to work (Requested by thorton on
        #webkit).

        Reverted changeset:

        "Expand use of sourceApplicationAuditData"
        https://bugs.webkit.org/show_bug.cgi?id=192995
        https://trac.webkit.org/changeset/239524

2018-12-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Add ENABLE_UNIFIED_BUILDS option to cmake ports
        https://bugs.webkit.org/show_bug.cgi?id=193045

        Reviewed by Don Olmstead.

        * Scripts/generate-unified-source-bundles.rb:

2018-12-27  Alex Christensen  <achristensen@webkit.org>

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

        Reviewed by Yusuke Suzuki.

        * wtf/PlatformMac.cmake:
        * wtf/cf/CFURLExtras.cpp:
        * wtf/cf/CFURLExtras.h:
        * wtf/cf/URLCF.cpp:
        * wtf/cocoa/NSURLExtras.h:
        * wtf/cocoa/NSURLExtras.mm:
        * wtf/cocoa/URLCocoa.mm:

2018-12-21  Dan Bernstein  <mitz@apple.com>

        Fixed building for macOS 10.13 using the macOS 10.14 SDK.

        * wtf/Platform.h: Changed HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE to depend on the
          deployment target, not the SDK.

2018-12-20  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        [JSC] Implement "well-formed JSON.stringify" proposal
        https://bugs.webkit.org/show_bug.cgi?id=191677

        Reviewed by Darin Adler.

        This patch implements "well-formed JSON.stringify" proposal[1], which is now stage 3.
        JSON.stringify appended surrogate pair codes even if it is not paired appropriately.
        The proposal requires that broken surrogate pairs are unicode-escaped.

        [1]: https://github.com/tc39/proposal-well-formed-stringify

        * wtf/text/StringBuilderJSON.cpp:
        (WTF::appendQuotedJSONStringInternal):

2018-12-21  Alex Christensen  <achristensen@webkit.org>

        Expand use of sourceApplicationAuditData
        https://bugs.webkit.org/show_bug.cgi?id=192995
        <rdar://problem/46627875>

        Reviewed by Brady Eidson.

        * wtf/Platform.h:

2018-12-21  Alex Christensen  <achristensen@webkit.org>

        Revert r239503.
        https://bugs.webkit.org/show_bug.cgi?id=192944

        * wtf/cocoa/NSURLExtras.mm:
        (WTF::isLookalikeCharacter):

2018-12-20  Brent Fulgham  <bfulgham@apple.com>

        Show punycode if URL contains Latin small letter dotless i
        https://bugs.webkit.org/show_bug.cgi?id=192944
        <rdar://problem/46103047>

        Reviewed by Andy Estes.

        Revise our "lookalike character" logic to include the small Latin
        dotless i character.

        Test: fast/url/host.html

        * wtf/cocoa/NSURLExtras.mm:
        (WTF::isLookalikeCharacter):

2018-12-20  Chris Dumez  <cdumez@apple.com>

        Use Optional::hasValue() instead of Optional::has_value()
        https://bugs.webkit.org/show_bug.cgi?id=192948

        Reviewed by Tim Horton.

        * wtf/Hasher.h:
        (WTF::add):
        * wtf/Optional.h:

2018-12-20  Chris Dumez  <cdumez@apple.com>

        Use Optional::valueOr() instead of Optional::value_or()
        https://bugs.webkit.org/show_bug.cgi?id=192933

        Reviewed by Geoffrey Garen.

        * wtf/Optional.h:
        (WTF::Optional<T::valueOr const):

2018-12-20  Tadeu Zagallo  <tzagallo@apple.com>

        Consistently use MaxLength for all WTF strings
        https://bugs.webkit.org/show_bug.cgi?id=192853
        <rdar://problem/45726906>

        Reviewed by Mark Lam.

        MaxLength was introduced to be INT_MAX for WTF::String and StringImpl,
        but all the assertions were still done using UINT_MAX. Change it to
        use MaxLength for all checks.

        * wtf/text/StringImpl.cpp:
        (WTF::StringImpl::createUninitializedInternalNonEmpty):
        (WTF::StringImpl::reallocateInternal):
        (WTF::StringImpl::create):
        (WTF::StringImpl::convertToLowercaseWithoutLocale):
        (WTF::StringImpl::convertToUppercaseWithoutLocale):
        (WTF::StringImpl::convertToLowercaseWithLocale):
        (WTF::StringImpl::convertToUppercaseWithLocale):
        (WTF::StringImpl::foldCase):
        (WTF::StringImpl::find):
        (WTF::StringImpl::replace):
        (WTF::StringImpl::utf8ForCharacters):
        (WTF::StringImpl::tryGetUtf8ForRange const):
        * wtf/text/StringImpl.h:
        (WTF::lengthOfNullTerminatedString):
        (WTF::StringImpl::tryCreateUninitialized):
        (WTF::StringImpl::adopt):
        (WTF::StringImpl::maxInternalLength):
        * wtf/text/WTFString.cpp:
        (WTF::String::append):
        (WTF::String::insert):
        (WTF::String::fromUTF8):
        * wtf/text/WTFString.h:
        (WTF::String::reverseFind const):

2018-12-19  Chris Dumez  <cdumez@apple.com>

        wtf/Optional.h: move-constructor and move-assignment operator should disengage the value being moved from
        https://bugs.webkit.org/show_bug.cgi?id=192728
        <rdar://problem/46746779>

        Reviewed by Geoff Garen.

        Update optional's move-constructor and move-assignment operator to disengage the value being moved from.
        Rename to optional to Optional, make_optional() to makeOptional(), and move class from std to WTF namespace.

        Based on patch by David Kilzer.

        * wtf/*:

2018-12-19  Eric Carlson  <eric.carlson@apple.com>

        [MediaStream] Force system camera/microphone TCC prompt if necessary
        https://bugs.webkit.org/show_bug.cgi?id=192820
        <rdar://problem/42680098>

        Reviewed by Jer Noble.

        * wtf/Platform.h: Define HAVE_AUTHORIZATION_STATUS_FOR_MEDIA_TYPE.

2018-12-17  Chris Fleizach  <cfleizach@apple.com>

        Some builds are broken after r239262
        https://bugs.webkit.org/show_bug.cgi?id=192777

        Reviewed by Simon Fraser.

        * wtf/Platform.h:

2018-12-17  Daniel Bates  <dabates@apple.com>

        Support concatenating StringView with other string types
        https://bugs.webkit.org/show_bug.cgi?id=177566

        Reviewed by Darin Adler.

        Add operator+ overloads to StringOperators.h to support concatenating a StringView with
        other string types (e.g. String). This lets a person write more naturally looking code:

        stringView + string

        Instead of:

        makeString(stringView, string)

        * wtf/text/StringOperators.h:
        (WTF::operator+): Added various operator+ overloads.

2018-12-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r239265 and r239274.
        https://bugs.webkit.org/show_bug.cgi?id=192765

        unorm_normalize is deprecated, and broke an internal build
        (Requested by Truitt on #webkit).

        Reverted changesets:

        "[GTK][WPE] Need a function to convert internal URI to display
        ("pretty") URI"
        https://bugs.webkit.org/show_bug.cgi?id=174816
        https://trac.webkit.org/changeset/239265

        "Fix the Apple Internal Mac build with a newer SDK"
        https://trac.webkit.org/changeset/239274

2018-12-17  Daniel Bates  <dabates@apple.com>

        Fix the Apple Internal Mac build with a newer SDK

        * wtf/URLHelpers.cpp:
        (WTF::URLHelpers::userVisibleURL):

2018-12-17  Matt Lewis  <jlewis3@apple.com>

        Unreviewed, rolling out r239254.

        This broke the Windows 10 Debug build

        Reverted changeset:

        "Replace many uses of String::format with more type-safe
        alternatives"
        https://bugs.webkit.org/show_bug.cgi?id=192742
        https://trac.webkit.org/changeset/239254

2018-12-17  Ms2ger  <Ms2ger@igalia.com>

        [GTK][WPE] Need a function to convert internal URI to display ("pretty") URI
        https://bugs.webkit.org/show_bug.cgi?id=174816

        Reviewed by Michael Catanzaro.

        Translate userVisibleString and dependent code into platform-neutral C++
        in wtf/URLHelpers.{h,cpp}.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/URLHelpers.cpp: Added.
        (WTF::URLHelpers::loadIDNScriptWhiteList):
        (WTF::URLHelpers::isArmenianLookalikeCharacter):
        (WTF::URLHelpers::isArmenianScriptCharacter):
        (WTF::URLHelpers::isASCIIDigitOrValidHostCharacter):
        (WTF::URLHelpers::isLookalikeCharacter):
        (WTF::URLHelpers::whiteListIDNScript):
        (WTF::URLHelpers::initializeDefaultIDNScriptWhiteList):
        (WTF::URLHelpers::allCharactersInIDNScriptWhiteList):
        (WTF::URLHelpers::isSecondLevelDomainNameAllowedByTLDRules):
        (WTF::URLHelpers::isRussianDomainNameCharacter):
        (WTF::URLHelpers::allCharactersAllowedByTLDRules):
        (WTF::URLHelpers::mapHostName):
        (WTF::URLHelpers::collectRangesThatNeedMapping):
        (WTF::URLHelpers::applyHostNameFunctionToMailToURLString):
        (WTF::URLHelpers::applyHostNameFunctionToURLString):
        (WTF::URLHelpers::mapHostNames):
        (WTF::URLHelpers::createStringWithEscapedUnsafeCharacters):
        (WTF::URLHelpers::userVisibleURL):
        * wtf/URLHelpers.h: Added.
        * wtf/cocoa/NSURLExtras.mm:
        (WTF::URLHelpers::loadIDNScriptWhiteList):
        (WTF::decodePercentEscapes):
        (WTF::decodeHostName):
        (WTF::encodeHostName):
        (WTF::URLWithUserTypedString):
        (WTF::userVisibleString):

2018-12-15  Darin Adler  <darin@apple.com>

        Use warning-ignoring macros more consistently and simply
        https://bugs.webkit.org/show_bug.cgi?id=192743

        Reviewed by Mark Lam.

        * wtf/Assertions.h: Use IGNORE_WARNINGS_BEGIN rather than
        IGNORE_CLANG_WARNINGS_BEGIN since we don't need special handling for
        non-clang compilers, in part since the code is already inside
        #if COMPILER(CLANG), but also because it would be harmless to ignore this
        warning on non-clang; we should almost never use IGNORE_CLANG_WARNINGS_BEGIN.

2018-12-15  Darin Adler  <darin@apple.com>

        Replace many uses of String::format with more type-safe alternatives
        https://bugs.webkit.org/show_bug.cgi?id=192742

        Reviewed by Mark Lam.

        * wtf/WorkQueue.cpp:
        (WTF::WorkQueue::concurrentApply): Use makeString.

        * wtf/dtoa.cpp:
        (WTF::dtoa): Use sprintf instead of String::format in the comments,
        since these functions have nothing to do with WTF::String.

2018-12-14  Darin Adler  <darin@apple.com>

        Verify size is valid in USE_SYSTEM_MALLOC version of tryAllocateZeroedVirtualPages
        https://bugs.webkit.org/show_bug.cgi?id=192738
        rdar://problem/37502342

        Reviewed by Mark Lam.

        * wtf/Gigacage.cpp:
        (Gigacage::tryAllocateZeroedVirtualPages): Added a RELEASE_ASSERT just
        like the one in tryLargeZeroedMemalignVirtual in bmalloc.

2018-12-14  David Kilzer  <ddkilzer@apple.com>

        clang-tidy: Fix unnecessary copy of AtomicString each time one is logged
        <https://webkit.org/b/192710>
        <rdar://problem/46738962>

        Reviewed by Eric Carlson.

        * wtf/Logger.h:
        (WTF::LogArgument::toString): Make argument a const reference to
        avoid the copy.

2018-12-14  Zan Dobersek  <zdobersek@igalia.com>

        [GLib] RunLoop::dispatchAfter() GSource requires microsecond precision
        https://bugs.webkit.org/show_bug.cgi?id=192696

        Reviewed by Michael Catanzaro.

        The GSource we set up in GLib's RunLoop::dispatchAfter() implementation
        should support microsecond-precision delays. Such delays are common in
        JSC's Watchdog implementation and missing support for them has been
        causing test failures in the `testapi` program as well as some JSC
        tests that depend on the termination determination functionality of the
        JSC::Watchdog class.

        RunLoop::dispatchAfter() is changed to spawn a raw GSource that uses the
        existing GSourceFuncs implementation used elsewhere in GLib's RunLoop.
        The GSource's ready time is set manually, now with the necessary
        microsecond precision.

        * wtf/glib/RunLoopGLib.cpp:
        (WTF::RunLoop::dispatchAfter):

2018-12-13  Saam Barati  <sbarati@apple.com>

        The JSC shell should listen for memory pressure events and respond to them
        https://bugs.webkit.org/show_bug.cgi?id=192647

        Reviewed by Keith Miller.

        * wtf/MemoryPressureHandler.cpp:
        (WTF::MemoryPressureHandler::MemoryPressureHandler):
        (WTF::MemoryPressureHandler::setDispatchQueue):
        Make it so that we can customize which dispatch queue memory pressure
        events get handled on.

        * wtf/MemoryPressureHandler.h:
        (WTF::MemoryPressureHandler::setShouldLogMemoryMemoryPressureEvents):
        Make it so that we can disable logging that happens on each memory
        pressure event.

        * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
        (WTF::MemoryPressureHandler::install):
        (WTF::MemoryPressureHandler::uninstall):
        (WTF::MemoryPressureHandler::holdOff):

2018-12-13  David Kilzer  <ddkilzer@apple.com>

        clang-tidy: Fix unnecessary parameter copies in ParallelHelperPool.cpp
        <https://webkit.org/b/192666>
        <rdar://problem/46697952>

        Reviewed by Alex Christensen.

        * wtf/ParallelHelperPool.cpp:
        (WTF::ParallelHelperClient::ParallelHelperClient): Use rvalue
        reference and WTFMove().
        (WTF::ParallelHelperClient::setTask): Ditto.
        (WTF::ParallelHelperClient::runTaskInParallel): Ditto.
        (WTF::ParallelHelperClient::runTask): Use const reference.
        * wtf/ParallelHelperPool.h: Update declarations to match
        implementations.

2018-12-12  Alex Christensen  <achristensen@webkit.org>

        Implement safe browsing in WebKit on WatchOS
        https://bugs.webkit.org/show_bug.cgi?id=192641
        <rdar://problem/46376188>

        Reviewed by Geoff Garen.

        * wtf/Platform.h:
        WatchOS has safe browsing, too!

2018-12-11  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win][Clang] Fix compilation warnings of WTF
        https://bugs.webkit.org/show_bug.cgi?id=192583

        Reviewed by Alex Christensen.

        clang-cl reports the following warnings.

        > [92/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\StackBounds.cpp.obj
        > ..\..\Source\WTF\wtf\StackBounds.cpp(163,48):  warning: missing field 'AllocationBase' initializer [-Wmissing-field-initializers]
        >     MEMORY_BASIC_INFORMATION stackOrigin = { 0 };
        >                                                ^
        > 1 warning generated.
        > [160/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\win\RunLoopWin.cpp.obj
        > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(34,54):  warning: ISO C++11 does not allow conversion from string literal to 'const LPWSTR' (aka 'wchar_t *const') [-Wwritable-strings]
        > static const LPWSTR kRunLoopMessageWindowClassName = L"RunLoopMessageWindow";
        >                                                      ^
        > ..\..\Source\WTF\wtf\win\RunLoopWin.cpp(86,32):  warning: missing field 'lpfnWndProc' initializer [-Wmissing-field-initializers]
        >     WNDCLASS windowClass = { 0 };
        >                                ^
        > 2 warnings generated.
        > [175/206] Building CXX object Source\WTF\wtf\CMakeFiles\WTF.dir\DateMath.cpp.obj
        > ..\..\Source\WTF\wtf\DateMath.cpp(125,20):  warning: unused function 'getLocalTime' [-Wunused-function]
        > static inline void getLocalTime(const time_t* localTime, struct tm* localTM)
        >                    ^
        > 1 warning generated.

        * wtf/DateMath.cpp:
        (WTF::getLocalTime): Defined only if used.
        * wtf/StackBounds.cpp:
        (WTF::StackBounds::currentThreadStackBoundsInternal): Initialize stackOrigin with '{ }'.
        * wtf/win/RunLoopWin.cpp: Change the type of kRunLoopMessageWindowClassName to LPCWSTR.
        (WTF::RunLoop::registerRunLoopMessageWindowClass): Initialize windowClass with '{ }'.

2018-12-11  Andy Estes  <aestes@apple.com>

        Introduce makeBlockPtr for lambdas
        https://bugs.webkit.org/show_bug.cgi?id=192594

        Reviewed by Alex Christensen.

        BlockPtr<...>::fromCallable is cumbersome because it requires repeating the callable's
        signature as a class template argument. This patch introduces an overload of makeBlockPtr
        that deduces the correct BlockPtr instantiation from a lambda's operator() signature.

        * wtf/BlockPtr.h:
        (WTF::makeBlockPtr):

        Adopted makeBlockPtr.

        * wtf/cocoa/WorkQueueCocoa.cpp:
        (WTF::WorkQueue::dispatch):
        (WTF::WorkQueue::dispatchAfter):
        (WTF::WorkQueue::concurrentApply):

2018-12-10  Don Olmstead  <don.olmstead@sony.com>

        Move ENABLE_RESOURCE_LOAD_STATISTICS to FeatureDefines.xcconfig
        https://bugs.webkit.org/show_bug.cgi?id=192573

        Reviewed by Simon Fraser.

        Remove ENABLE_RESOURCE_LOAD_STATISTICS from Platform.h and instead rely
        on it being set in FeatureDefines.xcconfig.

        * wtf/Platform.h:

2018-12-10  Alexey Proskuryakov  <ap@apple.com>

        Move ENABLE_SEC_ITEM_SHIM out of WebKit's config.h
        https://bugs.webkit.org/show_bug.cgi?id=192428

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2018-12-10  Alexey Proskuryakov  <ap@apple.com>

        Move more macros out of WebKit's config.h
        https://bugs.webkit.org/show_bug.cgi?id=192430

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Unreviewed, fix build failure on GCC 8.2, part 2

        Add RefCountedArray::assign, and use it instead of operator= internally.
        We should have operator=(const RefCountedArray&) since it will be automatically generated
        if we do not have correct implementation here.

        * wtf/RefCountedArray.h:
        (WTF::RefCountedArray::operator=):
        (WTF::RefCountedArray::assign):

2018-12-09  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Unreviewed, fix build failure on GCC 8.2

        We remove operator=<PtrTraits> call since it is not necessary.
        This is a workaround. It seems that GCC 8.2 fails to parse this specialization.

        * wtf/RefCountedArray.h:

2018-12-08  Darin Adler  <darin@apple.com>

        Fix stray-semicolon warning seen with a new version of clang in Xcode
        https://bugs.webkit.org/show_bug.cgi?id=192534

        Reviewed by Alexey Proskuryakov.

        * wtf/Lock.h: Removed an unneeded semicolon.

2018-12-08  Adrian Perez de Castro  <aperez@igalia.com>

        [WTF] Debug build fails due conflicting abort() method
        https://bugs.webkit.org/show_bug.cgi?id=192491

        Reviewed by Michael Catanzaro.

        * wtf/Assertions.h: Use namespaced std::abort() insted of plain abort() to avoid clashes
        inside classes which have an ::abort() method, but only when __cplusplus is defined to
        allow inclusion of the header in plain C sources.

2018-12-07  Andy Estes  <aestes@apple.com>

        [Cocoa] Add optional variants of SOFT_LINK_CLASS_FOR_SOURCE
        https://bugs.webkit.org/show_bug.cgi?id=192498

        Reviewed by Tim Horton.

        Added SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL and SOFT_LINK_CLASS_FOR_SOURCE_OPTIONAL_WITH_EXPORT,
        which behave like their non-optional variants but do not require their classes to exist.

        * wtf/cocoa/SoftLinking.h:

2018-12-06  Alexey Proskuryakov  <ap@apple.com>

        Move USE_NEW_THEME out of WebCore's config.h
        https://bugs.webkit.org/show_bug.cgi?id=192426

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2018-12-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        [SOUP] Move URLSoup back to WebCore after r238771
        https://bugs.webkit.org/show_bug.cgi?id=192306

        Reviewed by Michael Catanzaro.

        In r238771 URL was moved from WebCore to WTF, including the soup implementation. Unfortunately that added
        libsoup as a new dependency of libjavascriptcoregtk.

        * wtf/PlatformGTK.cmake:
        * wtf/PlatformWPE.cmake:
        * wtf/URL.h:
        * wtf/glib/URLGLib.cpp: Copied from Source/WTF/wtf/glib/URLSoup.cpp.

2018-12-03  Don Olmstead  <don.olmstead@sony.com>

        Fix some unused parameter warnings
        https://bugs.webkit.org/show_bug.cgi?id=192336

        Reviewed by Fujii Hironori.

        * wtf/StackTrace.cpp:
        (WTFGetBacktrace):
        (WTF::StackTrace::demangle):
        * wtf/generic/MemoryPressureHandlerGeneric.cpp:
        (WTF::MemoryPressureHandler::holdOff):
        (WTF::MemoryPressureHandler::respondToMemoryPressure):

2018-12-01  Alexey Proskuryakov  <ap@apple.com>

        Modernize version check for _suppressedAutoAddedHTTPHeaders
        https://bugs.webkit.org/show_bug.cgi?id=192175

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2018-11-30  Alex Christensen  <achristensen@webkit.org>

        Fix Windows build after r238771
        https://bugs.webkit.org/show_bug.cgi?id=190234

        * wtf/URLParser.h:
        Just make defaultPortForProtocol public so we don't have to worry about DLL linkage.

2018-11-30  Alex Christensen  <achristensen@webkit.org>

        Move URL from WebCore to WTF
        https://bugs.webkit.org/show_bug.cgi?id=190234

        Reviewed by Keith Miller.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/Forward.h:
        * wtf/PlatformGTK.cmake:
        * wtf/PlatformMac.cmake:
        * wtf/PlatformWPE.cmake:
        * wtf/PlatformWin.cmake:
        * wtf/URL.cpp: Renamed from Source/WebCore/platform/URL.cpp.
        (WTF::URL::protocolIs):
        * wtf/URL.h: Renamed from Source/WebCore/platform/URL.h.
        * wtf/URLHash.h: Renamed from Source/WebCore/platform/URLHash.h.
        (WTF::URLHash::hash):
        (WTF::URLHash::equal):
        * wtf/URLParser.cpp: Renamed from Source/WebCore/platform/URLParser.cpp.
        (WTF::URLParser::isInUserInfoEncodeSet):
        (WTF::URLParser::parseAuthority):
        * wtf/URLParser.h: Renamed from Source/WebCore/platform/URLParser.h.
        (WTF::URLParser::URLParser):
        (WTF::URLParser::result):
        * wtf/cf/CFURLExtras.cpp: Renamed from Source/WebCore/platform/cf/CFURLExtras.cpp.
        * wtf/cf/CFURLExtras.h: Renamed from Source/WebCore/platform/cf/CFURLExtras.h.
        * wtf/cf/URLCF.cpp: Renamed from Source/WebCore/platform/cf/URLCF.cpp.
        * wtf/cocoa/NSURLExtras.h: Copied from Source/WebCore/loader/archive/ArchiveResourceCollection.h.
        * wtf/cocoa/NSURLExtras.mm: Copied from Source/WebCore/platform/mac/WebCoreNSURLExtras.mm.
        (WTF::isArmenianLookalikeCharacter):
        (WTF::isArmenianScriptCharacter):
        (WTF::isASCIIDigitOrValidHostCharacter):
        (WTF::isLookalikeCharacter):
        (WTF::whiteListIDNScript):
        (WTF::readIDNScriptWhiteListFile):
        (WTF::allCharactersInIDNScriptWhiteList):
        (WTF::isSecondLevelDomainNameAllowedByTLDRules):
        (WTF::isRussianDomainNameCharacter):
        (WTF::allCharactersAllowedByTLDRules):
        (WTF::mapHostNameWithRange):
        (WTF::hostNameNeedsDecodingWithRange):
        (WTF::hostNameNeedsEncodingWithRange):
        (WTF::decodeHostNameWithRange):
        (WTF::encodeHostNameWithRange):
        (WTF::decodeHostName):
        (WTF::encodeHostName):
        (WTF::collectRangesThatNeedMapping):
        (WTF::collectRangesThatNeedEncoding):
        (WTF::collectRangesThatNeedDecoding):
        (WTF::applyHostNameFunctionToMailToURLString):
        (WTF::applyHostNameFunctionToURLString):
        (WTF::mapHostNames):
        (WTF::stringByTrimmingWhitespace):
        (WTF::URLByTruncatingOneCharacterBeforeComponent):
        (WTF::URLByRemovingResourceSpecifier):
        (WTF::URLWithData):
        (WTF::dataWithUserTypedString):
        (WTF::URLWithUserTypedString):
        (WTF::URLWithUserTypedStringDeprecated):
        (WTF::hasQuestionMarkOnlyQueryString):
        (WTF::dataForURLComponentType):
        (WTF::URLByRemovingComponentAndSubsequentCharacter):
        (WTF::URLByRemovingUserInfo):
        (WTF::originalURLData):
        (WTF::createStringWithEscapedUnsafeCharacters):
        (WTF::userVisibleString):
        (WTF::isUserVisibleURL):
        (WTF::rangeOfURLScheme):
        (WTF::looksLikeAbsoluteURL):
        * wtf/cocoa/URLCocoa.mm: Renamed from Source/WebCore/platform/mac/URLMac.mm.
        (WTF::URL::URL):
        (WTF::URL::createCFURL const):
        * wtf/glib/GUniquePtrSoup.h: Renamed from Source/WebCore/platform/network/soup/GUniquePtrSoup.h.
        * wtf/glib/URLSoup.cpp: Renamed from Source/WebCore/platform/soup/URLSoup.cpp.

2018-11-30  Alexey Proskuryakov  <ap@apple.com>

        Move USE_CFNETWORK_IGNORE_HSTS to its proper place
        https://bugs.webkit.org/show_bug.cgi?id=192173

        Reviewed by Tim Horton.

        * wtf/Platform.h: Also renamed it to better match other version checks.

2018-11-29  Alexey Proskuryakov  <ap@apple.com>

        Modernize the check for kCFURLRequestContentDecoderSkipURLCheck existence
        https://bugs.webkit.org/show_bug.cgi?id=192041

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2018-11-28  Mark Lam  <mark.lam@apple.com>

        ENABLE_SEPARATED_WX_HEAP needs to be defined in Platform.h.
        https://bugs.webkit.org/show_bug.cgi?id=192110
        <rdar://problem/46317746>

        Reviewed by Saam Barati.

        Contrary my previous claim in r238564, ENABLE_SEPARATED_WX_HEAP needs to be
        defined in Platform.h because it is also needed in WebCore for the CSS JIT.  Also
        contrary to my previous claim, ENABLE(FAST_JIT_PERMISSIONS) is defined for WebCore
        (and other projects) as well as JSC.  Hence, there's no reason why
        ENABLE_SEPARATED_WX_HEAP cannot be defined in Platform.h.

        * wtf/Platform.h:

2018-11-28  Keith Rollin  <krollin@apple.com>

        Update generate-unified-source-bundles.rb to generate .xcfilelist files
        https://bugs.webkit.org/show_bug.cgi?id=192029
        <rdar://problem/46285918>

        Reviewed by Alex Christensen.

        Update generate-unified-source-bundles.rb to generate output for
        .xcfilelist files. These files are used to indicate the sets of input
        and output files to Run Script build phases in Xcode. By invoking
        generate-unified-source-bundles.rb with -generate-xcfilelists, the
        script generates these .xcfilelist files. These .xcfilelist files can
        then be used to specify the inputs and outputs of the Generate Unified
        Sources build phases.

        * Scripts/generate-unified-source-bundles.rb:

2018-11-28  Alexey Proskuryakov  <ap@apple.com>

        Remove another OS version check from NetworkDataTaskCocoa.mm
        https://bugs.webkit.org/show_bug.cgi?id=192046

        Reviewed by Alex Christensen.

        * wtf/Platform.h:

2018-11-28  Alexey Proskuryakov  <ap@apple.com>

        Modernize version checks for same site cookie support
        https://bugs.webkit.org/show_bug.cgi?id=192054

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2018-11-27  Alexey Proskuryakov  <ap@apple.com>

        Modernize the check for async _saveCookies existence
        https://bugs.webkit.org/show_bug.cgi?id=191987

        Reviewed by Dean Jackson.

        * wtf/Platform.h: Added a specific macro for this. Not changing the behavior here,
        although it seems very likely that we want to do the same on other iOS family OSes.

2018-11-26  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win][Clang] SOFT_LINK reports warning: implicit conversion between pointer-to-function and pointer-to-object is a Microsoft extension [-Wmicrosoft-cast]
        https://bugs.webkit.org/show_bug.cgi?id=191960

        Reviewed by Alex Christensen.

        * wtf/win/SoftLinking.h: Do reinterpret_cast<void*> a function
        pointer argument of EncodePointer. Changed the type of stored
        function pointer returned by EncodePointer.

2018-11-26  Sam Weinig  <sam@webkit.org>

        Streamline ListHashSet use in floating object code
        https://bugs.webkit.org/show_bug.cgi?id=191957

        Reviewed by Alex Christensen.

        * wtf/ListHashSet.h:
        Reverses the order of the template arguments for the find() and contains()
        overload that allow specifying a hash translator to allow the compiler to
        deduce type T. This simplifies call sites and matches other WTF containers.

2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>

        CRASH() should call abort() except on Darwin and in developer builds
        https://bugs.webkit.org/show_bug.cgi?id=184408

        Reviewed by Daniel Bates.

        CRASH() should call abort() except on Darwin and in developer builds, as discussed on
        webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.

        On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
        can't do that.

        Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
        is reportedly useful in nightmare scenarios where core dumps are unavailable.

        We also have to define CRASH_UNDER_CONSTEXPR_CONTEXT(). It's a bit odd that it's possible to
        use a non-constexpr function here, but it works. Currently this macro uses WTFCrash(), which
        is also non-constexpr.

        * wtf/Assertions.h:

2018-11-25  Michael Catanzaro  <mcatanzaro@igalia.com>

        Unreviewed, rolling out r238469.

        Broke the build

        Reverted changeset:

        "CRASH() should call abort() except on Darwin and in developer
        builds"
        https://bugs.webkit.org/show_bug.cgi?id=184408
        https://trac.webkit.org/changeset/238469

2018-11-24  Andy Estes  <aestes@apple.com>

        [Cocoa] SOFT_LINK_CLASS_FOR_{HEADER,SOURCE} should generate a more concise getter function
        https://bugs.webkit.org/show_bug.cgi?id=191899

        Reviewed by Dean Jackson.

        Currently, SOFT_LINK_CLASS_FOR_HEADER declares a class getter function that includes the
        framework name. For example, NSView would have a class getter named
        namespace::get_AppKit_NSViewClass().

        Including the framework name in the getter is unnecessary. Objective-C classes already exist
        in a global namespace, so there is no need to disambiguate class names by framework. This
        patch elides the framework name from the getter function. For example, NSView would now have
        a getter named namespace::getNSViewClass().

        * wtf/cocoa/SoftLinking.h:

2018-11-24  Michael Catanzaro  <mcatanzaro@igalia.com>

        CRASH() should call abort() except on Darwin and in developer builds
        https://bugs.webkit.org/show_bug.cgi?id=184408

        Reviewed by Daniel Bates.

        CRASH() should call abort() except on Darwin and in developer builds, as discussed on
        webkit-dev. This should be slightly nicer than dereferencing 0xbadbeef.

        On Darwin, CRASH() uses a breakpoint trap, which seems to corrupt the stack on Linux, so we
        can't do that.

        Continue to call WTFCrash() in developer mode, and make no changes to WTFCrash(), since it
        is reportedly useful in nightmare scenarios where core dumps are unavailable.

        * wtf/Assertions.h:

2018-11-23  Sam Weinig  <sam@webkit.org>

        Add raw pointer overloads to ListHashSet via SmartPtr specialized functions
        https://bugs.webkit.org/show_bug.cgi?id=191936

        Reviewed by Zalan Bujtas.

        Adds overloads for find, contains, insertBefore and remove that take raw pointers
        when the value type V of a ListHashSet is true for the predicate IsSmartPtr<V>::value.
        This brings the interface to ListHashSet closer inline with HashSet, HashMap and HashCountedSet
        which already have this functionality. Like in the other collections, this is especially
        useful when using std::unique_ptr<> as the value, since there would be no way to pass it
        to these functions. One difference between this set of overloads is the inclusion of insertBefore,
        which is unique to ListHashSet. As would be expected, this specialization only changes the first
        parameter, the one that needs to be found, to support a raw pointer.  

        * wtf/ListHashSet.h:
        (WTF::U>::find):
        (WTF::U>::find const):
        (WTF::U>::contains const):
        (WTF::U>::insertBefore):
        (WTF::U>::remove):

2018-11-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        [JSC] Drop ARM_TRADITIONAL support in LLInt, baseline JIT, and DFG
        https://bugs.webkit.org/show_bug.cgi?id=191675

        Reviewed by Mark Lam.

        * wtf/InlineASM.h:
        * wtf/Platform.h:

2018-11-21  Andy Estes  <aestes@apple.com>

        [Cocoa] Create a soft-linking file for PassKit
        https://bugs.webkit.org/show_bug.cgi?id=191875
        <rdar://problem/46203215>

        Reviewed by Myles Maxfield.

        * wtf/Platform.h: Defined USE_PASSKIT.
        * wtf/cocoa/SoftLinking.h: Added _WITH_EXPORT variants of SOFT_LINK_FRAMEWORK_FOR_SOURCE,
        SOFT_LINK_PRIVATE_FRAMEWORK_FOR_SOURCE, SOFT_LINK_CLASS_FOR_SOURCE,
        SOFT_LINK_FUNCTION_FOR_SOURCE, and SOFT_LINK_CONSTANT_FOR_SOURCE.

2018-11-21  Dominik Infuehr  <dinfuehr@igalia.com>

        Enable JIT on ARM/Linux
        https://bugs.webkit.org/show_bug.cgi?id=191548

        Reviewed by Yusuke Suzuki.

        Enable JIT by default on ARMv7/Linux after it was disabled with
        recent bytcode format change.

        * wtf/Platform.h:

2018-11-14  Keith Rollin  <krollin@apple.com>

        Fix #end vs. #endif typo.
        https://bugs.webkit.org/show_bug.cgi?id=191668
        <rdar://problem/46081704>

        Reviewed by Alexey Proskuryakov.

        Source/WebCore/SourcesCocoa.txt had a #end that should have been a
        #endif. Fix this, an add a check to generate-unified-source-bundles.rb
        to detect similar typos.

        * Scripts/generate-unified-source-bundles.rb:

2018-11-12  Mark Lam  <mark.lam@apple.com>

        Add OOM detection to StringPrototype's substituteBackreferences().
        https://bugs.webkit.org/show_bug.cgi?id=191563
        <rdar://problem/45720428>

        Reviewed by Saam Barati.

        Enhanced StringBuilder::toString() to skip the shrinkToFit(), reifyString(), and
        the hasOverflowed() check if m_string is not null.  When m_string is not null,
        the StringBuilder either only has a single String in m_string (with m_buffer being 
        null), or reifyString() has already been called (resulting in a non-null m_string
        with a possibly non-null m_buffer).

        We can skip the overflow check because:
        1. if the StringBuilder only has a single String, then there cannot be an overflow.
        2. if reifyString() has already been called, then the hasOverflowed() checked has
           already been done because every code path that calls reifyString() first does
           the hasOverflowed() check.

        We can skip shrinkToFit() because it only applies to m_buffer.
        1. if the StringBuilder only has a single String, then there's no m_buffer to shrink.
        2. if reifyString() has already been called, then we either came down
           a. the toString() path with a null m_string previously, where we would have
              already called shrinkToFit() before reifyString(), or
           b. the toStringPreserveCapacity() path where we don't want to shrinkToFit().

        We can skip reifyString() because:
        1. if the StringBuilder only has a single String, then the string is already reified.
        2. if reifyString() has been already called, then the string is already reified.

        Note that if m_string is the null string and m_buffer is null, reifyString() will
        replace it with the empty string.  For this reason, we cannot solely check for
        !m_buffer because we need to reify the null string into the empty string.

        Note also that if m_string is null and m_buffer is non-null, reifyString() will
        create a String and set m_string to it.  However, m_buffer remains non-null.
        For this reason, we cannot assert !m_buffer alone when m_string is non-null.
        We add a m_isReified flag (only when assertions are enabled) to track the reified
        case where both m_buffer and m_string are non-null.

        * wtf/text/StringBuilder.cpp:
        (WTF::StringBuilder::reifyString const):
        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::toString):

2018-11-10  Benjamin Poulain  <benjamin@webkit.org>

        Fix a fixme: rename wtfObjcMsgSend to wtfObjCMsgSend
        https://bugs.webkit.org/show_bug.cgi?id=191492

        Reviewed by Alex Christensen.

        Because renaming ObjcRuntimeExtras.h to ObjCRuntimeExtras.h only changes
        the cases, some systems have issues with applying this patch.

        To work around the problem, the change is made is two patches, first rename to
        WTFObjCRuntimeExtras.h, then back to ObjCRuntimeExtras.h.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/WTFObjCRuntimeExtras.h: Renamed from Source/WTF/wtf/ObjcRuntimeExtras.h.
        (wtfObjCMsgSend):

2018-11-09  Keith Miller  <keith_miller@apple.com>

        LLInt VectorSizeOffset should be based on offset extraction
        https://bugs.webkit.org/show_bug.cgi?id=191468

        Reviewed by Yusuke Suzuki.

        Make things friends with LLIntOffsetsExtractor.

        * wtf/RefCountedArray.h:
        * wtf/Vector.h:

2018-11-09  Jim Mason  <jmason@ibinx.com>

        [WTF] Changes in bug 188867 break non-Linux Unix builds
        https://bugs.webkit.org/show_bug.cgi?id=191380

        The intention of 188867 was to split out platform-specific
        heap query/release code.  Any unsupported platform
        would use a generic, no-op stub.  However, wtf/PlatformGTK.cmake
        ended up sending all non-Linux platforms through the Linux
        implementation, which breaks the build for those platforms.
        This includes any user of the GTK target which is not Linux,
        such as the *BSDs, Solaris, etc.

        Reviewed by Yusuke Suzuki.

        * wtf/PlatformGTK.cmake: Updated to include Linux-specific
        code only for Linux; all other platforms use the generic stub.

2018-11-06  Geoffrey Garen  <ggaren@apple.com>

        Removed mbmalloc target from WTF
        https://bugs.webkit.org/show_bug.cgi?id=191313

        Reviewed by Saam Barati.

        For benchmarking, WTF::fastMalloc is no longer meaningfully different
        from bmalloc. (And bmalloc has its own mbmalloc target.)

        * Configurations/mbmalloc.xcconfig: Removed.
        * WTF.xcodeproj/project.pbxproj:
        * wtf/mbmalloc.cpp: Removed.

2018-11-08  Alexey Proskuryakov  <ap@apple.com>

        Re-add PLATFORM(IOS), now with the strict meaning
        https://bugs.webkit.org/show_bug.cgi?id=191281

        Reviewed by Tim Horton.

        * wtf/Platform.h: No change in behavior. Some of the macros look a bit weird
        when expanded, it might be that the values are incorrect for some flavors of iOS family.

2018-11-08  Dean Jackson  <dino@apple.com>

        Add a String literal that returns a String
        https://bugs.webkit.org/show_bug.cgi?id=191425
        <rdar://problem/45914556>

        Reviewed by Sam Weinig.

        Add a new String literal, _str, that will return a String type.
        This is useful when ""_s won't work, such as for things that
        don't take an ASCIILiteral directly e.g. ExceptionOr<String>
        or Variants.

        * wtf/text/WTFString.h:
        (WTF::StringLiterals::operator _str): Added.

2018-11-06  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Experimental prototype for WebGPURenderPipeline and WebGPUSwapChain
        https://bugs.webkit.org/show_bug.cgi?id=191291

        Reviewed by Myles Maxfield.

        Properly disable WEBGPU on all non-Metal platforms for now.

        * wtf/Platform.h:

2018-11-05  Myles C. Maxfield  <mmaxfield@apple.com>

        Cache glyph paths and share underline skipping code between all the ports
        https://bugs.webkit.org/show_bug.cgi?id=191239

        Reviewed by Alex Christensen.

        Remove CSS3_TEXT_DECORATION_SKIP_INK. It's now interoperable and part of the Web Platform.

        * wtf/Platform.h:

2018-11-05  Dominik Infuehr  <dinfuehr@igalia.com>

        Enable LLInt on ARMv7/Linux
        https://bugs.webkit.org/show_bug.cgi?id=191190

        Reviewed by Yusuke Suzuki.

        After enabling the new bytecode format in r237547, C_LOOP was
        forced on all 32-bit platforms. Now enable LLInt again on
        ARMv7-Thumb2/Linux by default.

        * wtf/Platform.h:

2018-11-04  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win] Use C++14, not C++17
        https://bugs.webkit.org/show_bug.cgi?id=191101

        Reviewed by Alex Christensen.

        * wtf/StdLibExtras.h: Use _MSVC_LANG to check C++ language version
        instead of _MSC_FULL_VER.

2018-11-02  Justin Fan  <justin_fan@apple.com>

        [WebGPU] Experimental prototype for MSL shaders
        https://bugs.webkit.org/show_bug.cgi?id=191084

        Reviewed by Dean Jackson.

        Disabling WebGPU on non-Cocoa platforms and iOS Simulator.

        * wtf/Platform.h:

2018-11-01  Jiewen Tan  <jiewen_tan@apple.com>

        Replace CommonRandom SPI with API
        https://bugs.webkit.org/show_bug.cgi?id=191178
        <rdar://problem/45722391>

        Reviewed by Brent Fulgham.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/RandomDevice.cpp:
        (WTF::RandomDevice::cryptographicallyRandomValues):
        * wtf/spi/darwin/CommonCryptoSPI.h: Removed.

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

        Rename <wtf/unicode/UTF8.h> to <wtf/unicode/UTF8Conversion.h> in order to avoid conflicting with ICU's unicode/utf8.h
        https://bugs.webkit.org/show_bug.cgi?id=189693

        Reviewed by Yusuke Suzuki.

        * WTF.xcodeproj/project.pbxproj: Replaced unicode/UTF8.{cpp,h} with unicode/UTF8Conversion.{cpp,h}.
        * wtf/CMakeLists.txt: Ditto.
        * wtf/text/AtomicStringImpl.cpp: Replaced <wtf/unicode/UTF8.h> with <wtf/unicode/UTF8Conversion.h>.
        * wtf/text/StringImpl.cpp: Ditto.
        * wtf/text/StringView.cpp: Ditto.
        * wtf/text/WTFString.cpp: Ditto.
        * wtf/unicode/UTF8Conversion.cpp: Renamed from Source/WTF/wtf/unicode/UTF8.cpp.
        * wtf/unicode/UTF8Conversion.h: Renamed from Source/WTF/wtf/unicode/UTF8.h.

2018-10-30  Don Olmstead  <don.olmstead@sony.com>

        [PlayStation] Enable JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=191072

        Reviewed by Brent Fulgham.

        Add platform files for the PlayStation port.

        * wtf/PlatformPlayStation.cmake: Added.

2018-10-30  David Kilzer  <ddkilzer@apple.com>

        XSLTProcessor should limit max transform depth
        <https://webkit.org/b/191075>
        <rdar://problem/45531453>

        Reviewed by Alex Christensen.

        * wtf/cocoa/SoftLinking.h:
        (SOFT_LINK_VARIABLE_FOR_HEADER):
        (SOFT_LINK_VARIABLE_FOR_SOURCE):
        - Add macros for non-constant global variables.

2018-10-30  Alexey Proskuryakov  <ap@apple.com>

        Clean up some obsolete MAX_ALLOWED macros
        https://bugs.webkit.org/show_bug.cgi?id=190916

        Reviewed by Tim Horton.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/PlatformMac.cmake:
        * wtf/spi/cocoa/NSMapTableSPI.h: Removed. This was only needed for old SDKs.

2018-10-29  Mark Lam  <mark.lam@apple.com>

        Correctly detect string overflow when using the 'Function' constructor.
        https://bugs.webkit.org/show_bug.cgi?id=184883
        <rdar://problem/36320331>

        Reviewed by Saam Barati.

        1. Enhanced StringBuilder so that it supports 2 modes of behavior:
           a. StringBuilder::OverflowHandler::CrashOnOverflow.
           b. StringBuilder::OverflowHandler::RecordOverflow.

           CrashOnOverflow will crash the moment an overflow or failure to allocate
           memory is detected.

           RecordOverflow will make StringBuilder::hasOverflowed() return true when an
           overflow or failure to allocate memory is detected.  However, if the user
           invokes toString(), toStringPreserveCapacity(), toAtomicString(), length(),
           capacity(), isEmpty(), characters8(), or characters16(), then the StringBuilder
           will crash regardless because these methods can only meaningfully do their
           work and return a result if and only if the builder has not overflowed.

           By default, the StringBuilder crashes on overflow (the old behavior) unless it
           is explicitly constructed with the StringBuilder::OverflowHandler::RecordOverflow
           enum.

           Design note:

           The StringBuilder can only be put in 1 of the 2 modes at the time of
           construction.  This means that we could have implemented it as a template
           that is parameterized on an OverflowHandler class (like CheckedArithmetic)
           instead of using a runtime check in the ConditionalCrashOnOverflow handler.

           However, I was not able to get clang to export the explicitly instantiated
           instances (despite the methods having being decorated with WTF_EXPORT_PRIVATE).
           Since the StringBuilder is a transient object (not stored for a long time on
           the heap), and the runtime check of the boolean is not that costly compared
           to other work that StringBuilder routinely does (e.g. memcpy), using the
           new ConditionalCrashOnOverflow (which does a runtime check to determine to
           crash or not on overflow) is fine.

           When clang is able to export explicitly instantiated template methods, we can
           templatize StringBuilder and do away with ConditionalCrashOnOverflow.
           See https://bugs.webkit.org/show_bug.cgi?id=191050.

        To support the above, we also did:

        2. Enhanced all StringBuilder append and buffer allocation methods to be able to
           fail without crashing.  This also meant that ...

        3. Added tryReallocate() support to StringImpl.  tryRealloc() was added to
           FastMalloc, and bmalloc (and related peers) to enable this.

        4. Added ConditionalCrashOnOverflow, which can choose at runtime whether to behave
           like CrashOnOverflow or RecordOverflow.

        * wtf/CheckedArithmetic.h:
        (WTF::ConditionalCrashOnOverflow::overflowed):
        (WTF::ConditionalCrashOnOverflow::shouldCrashOnOverflow const):
        (WTF::ConditionalCrashOnOverflow::setShouldCrashOnOverflow):
        (WTF::ConditionalCrashOnOverflow::hasOverflowed const):
        (WTF::ConditionalCrashOnOverflow::clearOverflow):
        (WTF::ConditionalCrashOnOverflow::crash):
        (WTF::RecordOverflow::overflowed):
        (WTF::Checked::unsafeGet const):
        * wtf/FastMalloc.cpp:
        (WTF::tryFastRealloc):
        * wtf/FastMalloc.h:
        * wtf/text/StringBuilder.cpp:
        (WTF::expandedCapacity):
        (WTF::StringBuilder::reifyString const):
        (WTF::StringBuilder::resize):
        (WTF::StringBuilder::allocateBuffer):
        (WTF::StringBuilder::allocateBufferUpConvert):
        (WTF::StringBuilder::reallocateBuffer<LChar>):
        (WTF::StringBuilder::reallocateBuffer<UChar>):
        (WTF::StringBuilder::reserveCapacity):
        (WTF::StringBuilder::appendUninitialized):
        (WTF::StringBuilder::appendUninitializedSlow):
        (WTF::StringBuilder::append):
        (WTF::StringBuilder::canShrink const):
        (WTF::StringBuilder::shrinkToFit):
        * wtf/text/StringBuilder.h:
        (WTF::StringBuilder::StringBuilder):
        (WTF::StringBuilder::didOverflow):
        (WTF::StringBuilder::hasOverflowed const):
        (WTF::StringBuilder::crashesOnOverflow const):
        (WTF::StringBuilder::append):
        (WTF::StringBuilder::toString):
        (WTF::StringBuilder::toStringPreserveCapacity const):
        (WTF::StringBuilder::toAtomicString const):
        (WTF::StringBuilder::length const):
        (WTF::StringBuilder::capacity const):
        (WTF::StringBuilder::operator[] const):
        (WTF::StringBuilder::swap):
        (WTF::StringBuilder::getBufferCharacters<UChar>):
        * wtf/text/StringBuilderJSON.cpp:
        (WTF::StringBuilder::appendQuotedJSONString):
        * wtf/text/StringImpl.cpp:
        (WTF::StringImpl::reallocateInternal):
        (WTF::StringImpl::reallocate):
        (WTF::StringImpl::tryReallocate):
        * wtf/text/StringImpl.h:

2018-10-29  Tim Horton  <timothy_horton@apple.com>

        Modernize WebKit nibs and lprojs for localization's sake
        https://bugs.webkit.org/show_bug.cgi?id=190911
        <rdar://problem/45349466>

        Reviewed by Dan Bernstein.

        * WTF.xcodeproj/project.pbxproj:
        English->en

2018-10-29  Tadeu Zagallo  <tzagallo@apple.com>

        New bytecode format for JSC
        https://bugs.webkit.org/show_bug.cgi?id=187373
        <rdar://problem/44186758>

        Reviewed by Filip Pizlo.

        * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
        a macro was passed multiple arguments
        * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
        * wtf/Vector.h:
        (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector

2018-10-28  Geoffrey Garen  <ggaren@apple.com>

        HashMap should support selecting a random entry
        https://bugs.webkit.org/show_bug.cgi?id=190814

        Reviewed by Ryosuke Niwa.

        * wtf/HashTable.h:
        (WTF::HashTable::random):
        (WTF::HashTable::random const): Merge the empty and deleted checks, and
        use more idiomatic addressing.

2018-10-26  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r237479 and r237484.
        https://bugs.webkit.org/show_bug.cgi?id=190978

        broke JSC on iOS (Requested by tadeuzagallo on #webkit).

        Reverted changesets:

        "New bytecode format for JSC"
        https://bugs.webkit.org/show_bug.cgi?id=187373
        https://trac.webkit.org/changeset/237479

        "Gardening: Build fix after r237479."
        https://bugs.webkit.org/show_bug.cgi?id=187373
        https://trac.webkit.org/changeset/237484

2018-10-26  Tadeu Zagallo  <tzagallo@apple.com>

        New bytecode format for JSC
        https://bugs.webkit.org/show_bug.cgi?id=187373
        <rdar://problem/44186758>

        Reviewed by Filip Pizlo.

        * wtf/Forward.h: Fix WTF_LAZY_FOR_EACH_TERM on MSVC and add WTF_LAZY_HAS_REST to check whether
        a macro was passed multiple arguments
        * wtf/Platform.h: Force ENABLE_JIT=false on all 32-bit platforms
        * wtf/Vector.h:
        (WTF::minCapacity>::insertVector): Allow vectors with different overflow handlers to be passed to insertVector

2018-10-26  Geoffrey Garen  <ggaren@apple.com>

        HashMap should support selecting a random entry
        https://bugs.webkit.org/show_bug.cgi?id=190814

        Reviewed by Antti Koivisto.

        * wtf/HashTable.h:
        (WTF::HashTable::random):
        (WTF::HashTable::random const): Draw a new random bucket any time we
        have a miss, to avoid bias caused by lopsided tables.

2018-10-26  Antti Koivisto  <antti@apple.com>

        hashSet.remove(hashSet.random()) doesn't build
        https://bugs.webkit.org/show_bug.cgi?id=190953

        Reviewed by Chris Dumez.

        * wtf/HashSet.h:

        Remove non-const random(). HashSet only returns const iterators (it is immutable via iterator).

        * wtf/HashTable.h:
        (WTF::HashTable::random const):

        Invoke const_iterator() by using static_cast<> instead of trying to do it directly.

2018-10-26  Alicia Boya García  <aboya@igalia.com>

        [MSE][WTF][Media] Invalid MediaTime should be falsy
        https://bugs.webkit.org/show_bug.cgi?id=190893

        Reviewed by Jer Noble.

        This patch modifies the definition of MediaTime so that invalid times
        are evaluated to false in the context of a boolean expression.

        * wtf/MediaTime.cpp:
        (WTF::MediaTime::operator! const):
        (WTF::MediaTime::operator bool const):

2018-10-26  Keith Miller  <keith_miller@apple.com>

        Some internal projects include wtf headers and build with C++11
        https://bugs.webkit.org/show_bug.cgi?id=190791

        Reviewed by Alexey Proskuryakov.

        C++11 doesn't support constexpr functions that contain
        statements. This patch removes getLSBSet set from builds before
        C++14 to avoid this for now.

        * wtf/MathExtras.h:
        (getLSBSet):

2018-10-25  Ross Kirsling  <ross.kirsling@sony.com>

        Cleanup: inline constexpr is redundant as constexpr implies inline
        https://bugs.webkit.org/show_bug.cgi?id=190819

        Reviewed by Mark Lam.

        * wtf/Bitmap.h:
        (WTF::WordType>::Bitmap):
        * wtf/LEBDecoder.h:
        (WTF::LEBDecoder::maxByteLength):
        * wtf/MathExtras.h:
        (defaultMinimumForClamp):
        (defaultMaximumForClamp):
        (clampToAccepting64):
        (isLessThan):
        (isLessThanEqual):
        (isGreaterThan):
        (isGreaterThanEqual):
        (WTF::roundUpToPowerOfTwo):
        (WTF::maskForSize):
        * wtf/Optional.h:
        * wtf/PtrTag.h:
        (WTF::tagCodePtr):
        (WTF::untagCodePtr):
        (WTF::retagCodePtr):
        (WTF::removeCodePtrTag):
        * wtf/StdLibExtras.h:
        (WTF::roundUpToMultipleOf):
        * wtf/Variant.h:
        (WTF::operator==):
        (WTF::operator!=):
        (WTF::operator>=):
        (WTF::operator<=):
        (WTF::operator>):
        (WTF::operator<):
        * wtf/text/StringImpl.h:
        (WTF::StringImplShape::StringImplShape):
        (WTF::StringImpl::StaticStringImpl::StaticStringImpl):

2018-10-25  Geoffrey Garen  <ggaren@apple.com>

        HashMap should support selecting a random entry
        https://bugs.webkit.org/show_bug.cgi?id=190814

        Reviewed by Antti Koivisto.

        In some cases, remove(begin()) is not quite good enough as a random
        eviction strategy. (See https://bugs.webkit.org/show_bug.cgi?id=190792.)
        So, let's support real random eviction.

        (And by "real" I mean "pseudo".)

        * wtf/HashCountedSet.h:
        * wtf/HashMap.h:
        * wtf/HashSet.h:
        * wtf/ListHashSet.h:
        (WTF::ListHashSet::random):
        (WTF::ListHashSet::random const):
        * wtf/LoggingHashMap.h:
        * wtf/LoggingHashSet.h: Plumb through the random() iterator.

        * wtf/HashTable.h:
        (WTF::HashTable::random):
        (WTF::HashTable::random const): Implement the random() iterator.
        makeIterator() already supports starting from any bucket, so this is
        pretty easy.

        In the subtle case where we select end(), we choose to wrap around and
        return begin(). We expect that clients don't really think of the end()
        bucket as being in the domain of the random search. Also, we don't want
        to annoy clients who know their tables are non-empty with needless
        checks for end().

        * wtf/RandomNumber.cpp:
        (WTF::weakRandomUint32):
        * wtf/RandomNumber.h: Added a free function for weak random numbers so
        that clients that want cheap random numbers aren't required to allocate
        storage for a WeakRandom generator.

2018-10-24  Megan Gardner  <megan_gardner@apple.com>

        Turn on Conic Gradients
        https://bugs.webkit.org/show_bug.cgi?id=190810

        Reviewed by Tim Horton.

        * wtf/FeatureDefines.h:

2018-10-24  Christopher Reid  <chris.reid@sony.com>

        [Win] Add function call name information to stack traces
        https://bugs.webkit.org/show_bug.cgi?id=190761

        Reviewed by Fujii Hironori.

        Add symbol information to stack traces using dbghelp.dll
        This library will use symbols files from these sources:
            - The current working directory
            - The directory containing the application's executable
            - _NT_SYMBOL_PATH environment variable
            - _NT_ALTERNATE_SYMBOL_PATH environment variable

        This functionality is currently only enabled in debug mode since dbghelp is not threadsafe.
        The DbgHelper class attempts to synchronize calls to dbghelp.dll but external code
        can still attempt to call the library at the same time as WebKit.

        * wtf/CMakeLists.txt:
        * wtf/PlatformWin.cmake:
        * wtf/StackTrace.cpp:
        * wtf/win/DbgHelperWin.cpp: Added.
        * wtf/win/DbgHelperWin.h: Added.

2018-10-22  Alexey Proskuryakov  <ap@apple.com>

        Really prevent PLATFORM(IOS) from being used
        https://bugs.webkit.org/show_bug.cgi?id=190813

        Reviewed by Tim Horton.

        * wtf/Platform.h: This relies on -Wundef, which we have enabled.

2018-10-22  Chris Dumez  <cdumez@apple.com>

        Deque's contains() and findIf() should be const
        https://bugs.webkit.org/show_bug.cgi?id=190796

        Reviewed by Antti Koivisto.

        Deque's contains() and findIf() should be const as they do not modify the container.

        * wtf/Deque.h:
        (WTF::inlineCapacity>::findIf):
        (WTF::inlineCapacity>::findIf const):
        (WTF::inlineCapacity>::contains const):
        (WTF::inlineCapacity>::contains): Deleted.

2018-10-18  Alicia Boya García  <aboya@igalia.com>

        [Media] Use nanoseconds as MaximumTimeScale
        https://bugs.webkit.org/show_bug.cgi?id=190631

        1e9 is a much more useful timescale than the previous one 2^31-1.
        Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
        common among some formats like WebM and frameworks like GStreamer
        where base 10 timescale is common... and it's those big timescales the
        ones that are usually scaled up to MaximumTimeScale.

        Reviewed by Jer Noble.

        * wtf/MediaTime.cpp:

2018-10-18  Alexey Proskuryakov  <ap@apple.com>

        Remove PLATFORM(IOS) for now
        https://bugs.webkit.org/show_bug.cgi?id=190737

        Reviewed by Tim Horton.

        * wtf/Platform.h:

2018-10-18  Alexey Proskuryakov  <ap@apple.com>

        Switch from PLATFORM(IOS) to PLATFORM(IOS_FAMILY)
        https://bugs.webkit.org/show_bug.cgi?id=190729

        Reviewed by Tim Horton.

        * wtf/Assertions.h:
        * wtf/FeatureDefines.h:
        * wtf/InlineASM.h:
        * wtf/MemoryPressureHandler.cpp:
        (WTF::thresholdForPolicy):
        * wtf/Platform.h:
        * wtf/cocoa/MemoryPressureHandlerCocoa.mm:
        (WTF::MemoryPressureHandler::install):
        (WTF::MemoryPressureHandler::respondToMemoryPressure):
        * wtf/spi/cocoa/NSMapTableSPI.h:
        * wtf/spi/darwin/XPCSPI.h:
        * wtf/text/StringCommon.h:
        * wtf/text/TextBreakIterator.cpp:
        * wtf/text/TextBreakIterator.h:
        * wtf/unicode/icu/CollatorICU.cpp:
        (WTF::copyDefaultLocale):

2018-10-18  Alex Christensen  <achristensen@webkit.org>

        Clean up FrameLoader two-state enums
        https://bugs.webkit.org/show_bug.cgi?id=190731

        Reviewed by Chris Dumez.

        * wtf/EnumTraits.h:
        (WTF::isValidEnum):

2018-10-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r237208.
        https://bugs.webkit.org/show_bug.cgi?id=190691

        Caused the API test that was changed to failure continuously
        (Requested by Truitt on #webkit).

        Reverted changeset:

        "[Media] Use nanoseconds as MaximumTimeScale"
        https://bugs.webkit.org/show_bug.cgi?id=190631
        https://trac.webkit.org/changeset/237208

2018-10-16  Alicia Boya García  <aboya@igalia.com>

        [Media] Use nanoseconds as MaximumTimeScale
        https://bugs.webkit.org/show_bug.cgi?id=190631

        1e9 is a much more useful timescale than the previous one 2^31-1.
        Unlike 2^31-1, which is a prime number, nanosecond scale is pretty
        common among some formats like WebM and frameworks like GStreamer
        where base 10 timescale is common... and it's those big timescales the
        ones that are usually scaled up to MaximumTimeScale.

        Reviewed by Jer Noble.

        * wtf/MediaTime.cpp:

2018-10-15  Keith Miller  <keith_miller@apple.com>

        Support arm64 CPUs with a 32-bit address space
        https://bugs.webkit.org/show_bug.cgi?id=190273

        Reviewed by Michael Saboff.

        Use WTF_CPU_ADDRESS64/32 to decide if the system is running on arm64_32.

        * wtf/MathExtras.h:
        (getLSBSet):
        * wtf/Platform.h:

2018-10-15  Timothy Hatcher  <timothy@apple.com>

        Add support for prefers-color-scheme media query
        https://bugs.webkit.org/show_bug.cgi?id=190499
        rdar://problem/45212025

        Reviewed by Dean Jackson.

        * wtf/FeatureDefines.h: Added ENABLE_DARK_MODE_CSS.

2018-10-15  Saam barati  <sbarati@apple.com>

        Emit fjcvtzs on ARM64E on Darwin
        https://bugs.webkit.org/show_bug.cgi?id=184023

        Reviewed by Yusuke Suzuki and Filip Pizlo.

        * wtf/Platform.h:

2018-10-15  Alex Christensen  <achristensen@webkit.org>

        Use pragma once in WTF
        https://bugs.webkit.org/show_bug.cgi?id=190527

        Reviewed by Chris Dumez.

        We also need to consistently include wtf headers from within wtf so we can build wtf without
        symbol redefinition errors from including the copy in Source and the copy in the build directory.

        * wtf/ASCIICType.h:
        * wtf/Assertions.cpp:
        * wtf/Assertions.h:
        * wtf/Atomics.h:
        * wtf/AutomaticThread.cpp:
        * wtf/AutomaticThread.h:
        * wtf/BackwardsGraph.h:
        * wtf/Bag.h:
        * wtf/BagToHashMap.h:
        * wtf/BitVector.cpp:
        * wtf/BitVector.h:
        * wtf/Bitmap.h:
        * wtf/BloomFilter.h:
        * wtf/Box.h:
        * wtf/BubbleSort.h:
        * wtf/BumpPointerAllocator.h:
        * wtf/ByteOrder.h:
        * wtf/CPUTime.cpp:
        * wtf/CallbackAggregator.h:
        * wtf/CheckedArithmetic.h:
        * wtf/CheckedBoolean.h:
        * wtf/ClockType.cpp:
        * wtf/ClockType.h:
        * wtf/CommaPrinter.h:
        * wtf/CompilationThread.cpp:
        * wtf/CompilationThread.h:
        * wtf/Compiler.h:
        * wtf/ConcurrentPtrHashSet.cpp:
        * wtf/ConcurrentVector.h:
        * wtf/Condition.h:
        * wtf/CountingLock.cpp:
        * wtf/CrossThreadTaskHandler.cpp:
        * wtf/CryptographicUtilities.cpp:
        * wtf/CryptographicUtilities.h:
        * wtf/CryptographicallyRandomNumber.cpp:
        * wtf/CryptographicallyRandomNumber.h:
        * wtf/CurrentTime.cpp:
        * wtf/DataLog.cpp:
        * wtf/DataLog.h:
        * wtf/DateMath.cpp:
        * wtf/DateMath.h:
        * wtf/DecimalNumber.cpp:
        * wtf/DecimalNumber.h:
        * wtf/Deque.h:
        * wtf/DisallowCType.h:
        * wtf/Dominators.h:
        * wtf/DoublyLinkedList.h:
        * wtf/FastBitVector.cpp:
        * wtf/FastMalloc.cpp:
        * wtf/FastMalloc.h:
        * wtf/FeatureDefines.h:
        * wtf/FilePrintStream.cpp:
        * wtf/FilePrintStream.h:
        * wtf/FlipBytes.h:
        * wtf/FunctionDispatcher.cpp:
        * wtf/FunctionDispatcher.h:
        * wtf/GetPtr.h:
        * wtf/Gigacage.cpp:
        * wtf/GlobalVersion.cpp:
        * wtf/GraphNodeWorklist.h:
        * wtf/GregorianDateTime.cpp:
        * wtf/GregorianDateTime.h:
        * wtf/HashFunctions.h:
        * wtf/HashMap.h:
        * wtf/HashMethod.h:
        * wtf/HashSet.h:
        * wtf/HashTable.cpp:
        * wtf/HashTraits.h:
        * wtf/Indenter.h:
        * wtf/IndexSparseSet.h:
        * wtf/InlineASM.h:
        * wtf/Insertion.h:
        * wtf/IteratorAdaptors.h:
        * wtf/IteratorRange.h:
        * wtf/JSONValues.cpp:
        * wtf/JSValueMalloc.cpp:
        * wtf/LEBDecoder.h:
        * wtf/Language.cpp:
        * wtf/ListDump.h:
        * wtf/Lock.cpp:
        * wtf/Lock.h:
        * wtf/LockAlgorithm.h:
        * wtf/LockedPrintStream.cpp:
        * wtf/Locker.h:
        * wtf/MD5.cpp:
        * wtf/MD5.h:
        * wtf/MainThread.cpp:
        * wtf/MainThread.h:
        * wtf/MallocPtr.h:
        * wtf/MathExtras.h:
        * wtf/MediaTime.cpp:
        * wtf/MediaTime.h:
        * wtf/MemoryPressureHandler.cpp:
        * wtf/MessageQueue.h:
        * wtf/MetaAllocator.cpp:
        * wtf/MetaAllocator.h:
        * wtf/MetaAllocatorHandle.h:
        * wtf/MonotonicTime.cpp:
        * wtf/MonotonicTime.h:
        * wtf/NakedPtr.h:
        * wtf/NoLock.h:
        * wtf/NoTailCalls.h:
        * wtf/Noncopyable.h:
        * wtf/NumberOfCores.cpp:
        * wtf/NumberOfCores.h:
        * wtf/OSAllocator.h:
        * wtf/OSAllocatorPosix.cpp:
        * wtf/OSRandomSource.cpp:
        * wtf/OSRandomSource.h:
        * wtf/ObjcRuntimeExtras.h:
        * wtf/OrderMaker.h:
        * wtf/PackedIntVector.h:
        * wtf/PageAllocation.h:
        * wtf/PageBlock.cpp:
        * wtf/PageBlock.h:
        * wtf/PageReservation.h:
        * wtf/ParallelHelperPool.cpp:
        * wtf/ParallelHelperPool.h:
        * wtf/ParallelJobs.h:
        * wtf/ParallelJobsLibdispatch.h:
        * wtf/ParallelVectorIterator.h:
        * wtf/ParkingLot.cpp:
        * wtf/ParkingLot.h:
        * wtf/Platform.h:
        * wtf/PointerComparison.h:
        * wtf/Poisoned.cpp:
        * wtf/PrintStream.cpp:
        * wtf/PrintStream.h:
        * wtf/ProcessID.h:
        * wtf/ProcessPrivilege.cpp:
        * wtf/RAMSize.cpp:
        * wtf/RAMSize.h:
        * wtf/RandomDevice.cpp:
        * wtf/RandomNumber.cpp:
        * wtf/RandomNumber.h:
        * wtf/RandomNumberSeed.h:
        * wtf/RangeSet.h:
        * wtf/RawPointer.h:
        * wtf/ReadWriteLock.cpp:
        * wtf/RedBlackTree.h:
        * wtf/Ref.h:
        * wtf/RefCountedArray.h:
        * wtf/RefCountedLeakCounter.cpp:
        * wtf/RefCountedLeakCounter.h:
        * wtf/RefCounter.h:
        * wtf/RefPtr.h:
        * wtf/RetainPtr.h:
        * wtf/RunLoop.cpp:
        * wtf/RunLoop.h:
        * wtf/RunLoopTimer.h:
        * wtf/RunLoopTimerCF.cpp:
        * wtf/SHA1.cpp:
        * wtf/SHA1.h:
        * wtf/SaturatedArithmetic.h:
        (saturatedSubtraction):
        * wtf/SchedulePair.h:
        * wtf/SchedulePairCF.cpp:
        * wtf/SchedulePairMac.mm:
        * wtf/ScopedLambda.h:
        * wtf/Seconds.cpp:
        * wtf/Seconds.h:
        * wtf/SegmentedVector.h:
        * wtf/SentinelLinkedList.h:
        * wtf/SharedTask.h:
        * wtf/SimpleStats.h:
        * wtf/SingleRootGraph.h:
        * wtf/SinglyLinkedList.h:
        * wtf/SixCharacterHash.cpp:
        * wtf/SixCharacterHash.h:
        * wtf/SmallPtrSet.h:
        * wtf/Spectrum.h:
        * wtf/StackBounds.cpp:
        * wtf/StackBounds.h:
        * wtf/StackStats.cpp:
        * wtf/StackStats.h:
        * wtf/StackTrace.cpp:
        * wtf/StdLibExtras.h:
        * wtf/StreamBuffer.h:
        * wtf/StringHashDumpContext.h:
        * wtf/StringPrintStream.cpp:
        * wtf/StringPrintStream.h:
        * wtf/ThreadGroup.cpp:
        * wtf/ThreadMessage.cpp:
        * wtf/ThreadSpecific.h:
        * wtf/Threading.cpp:
        * wtf/Threading.h:
        * wtf/ThreadingPrimitives.h:
        * wtf/ThreadingPthreads.cpp:
        * wtf/TimeWithDynamicClockType.cpp:
        * wtf/TimeWithDynamicClockType.h:
        * wtf/TimingScope.cpp:
        * wtf/TinyLRUCache.h:
        * wtf/TinyPtrSet.h:
        * wtf/TriState.h:
        * wtf/TypeCasts.h:
        * wtf/UUID.cpp:
        * wtf/UnionFind.h:
        * wtf/VMTags.h:
        * wtf/ValueCheck.h:
        * wtf/Vector.h:
        * wtf/VectorTraits.h:
        * wtf/WallTime.cpp:
        * wtf/WallTime.h:
        * wtf/WeakPtr.h:
        * wtf/WeakRandom.h:
        * wtf/WordLock.cpp:
        * wtf/WordLock.h:
        * wtf/WorkQueue.cpp:
        * wtf/WorkQueue.h:
        * wtf/WorkerPool.cpp:
        * wtf/cf/LanguageCF.cpp:
        * wtf/cf/RunLoopCF.cpp:
        * wtf/cocoa/Entitlements.mm:
        * wtf/cocoa/MachSendRight.cpp:
        * wtf/cocoa/MainThreadCocoa.mm:
        * wtf/cocoa/MemoryFootprintCocoa.cpp:
        * wtf/cocoa/WorkQueueCocoa.cpp:
        * wtf/dtoa.cpp:
        * wtf/dtoa.h:
        * wtf/ios/WebCoreThread.cpp:
        * wtf/ios/WebCoreThread.h:
        * wtf/mac/AppKitCompatibilityDeclarations.h:
        * wtf/mac/DeprecatedSymbolsUsedBySafari.mm:
        * wtf/mbmalloc.cpp:
        * wtf/persistence/PersistentCoders.cpp:
        * wtf/persistence/PersistentDecoder.cpp:
        * wtf/persistence/PersistentEncoder.cpp:
        * wtf/spi/cf/CFBundleSPI.h:
        * wtf/spi/darwin/CommonCryptoSPI.h:
        * wtf/text/ASCIIFastPath.h:
        * wtf/text/ASCIILiteral.cpp:
        * wtf/text/AtomicString.cpp:
        * wtf/text/AtomicString.h:
        * wtf/text/AtomicStringHash.h:
        * wtf/text/AtomicStringImpl.cpp:
        * wtf/text/AtomicStringImpl.h:
        * wtf/text/AtomicStringTable.cpp:
        * wtf/text/AtomicStringTable.h:
        * wtf/text/Base64.cpp:
        * wtf/text/CString.cpp:
        * wtf/text/CString.h:
        * wtf/text/ConversionMode.h:
        * wtf/text/ExternalStringImpl.cpp:
        * wtf/text/IntegerToStringConversion.h:
        * wtf/text/LChar.h:
        * wtf/text/LineEnding.cpp:
        * wtf/text/StringBuffer.h:
        * wtf/text/StringBuilder.cpp:
        * wtf/text/StringBuilder.h:
        * wtf/text/StringBuilderJSON.cpp:
        * wtf/text/StringCommon.h:
        * wtf/text/StringConcatenate.h:
        * wtf/text/StringHash.h:
        * wtf/text/StringImpl.cpp:
        * wtf/text/StringImpl.h:
        * wtf/text/StringOperators.h:
        * wtf/text/StringView.cpp:
        * wtf/text/StringView.h:
        * wtf/text/SymbolImpl.cpp:
        * wtf/text/SymbolRegistry.cpp:
        * wtf/text/SymbolRegistry.h:
        * wtf/text/TextBreakIterator.cpp:
        * wtf/text/TextBreakIterator.h:
        * wtf/text/TextBreakIteratorInternalICU.h:
        * wtf/text/TextPosition.h:
        * wtf/text/TextStream.cpp:
        * wtf/text/UniquedStringImpl.h:
        * wtf/text/WTFString.cpp:
        * wtf/text/WTFString.h:
        * wtf/text/cocoa/StringCocoa.mm:
        * wtf/text/cocoa/StringViewCocoa.mm:
        * wtf/text/cocoa/TextBreakIteratorInternalICUCocoa.cpp:
        * wtf/text/icu/UTextProvider.cpp:
        * wtf/text/icu/UTextProvider.h:
        * wtf/text/icu/UTextProviderLatin1.cpp:
        * wtf/text/icu/UTextProviderLatin1.h:
        * wtf/text/icu/UTextProviderUTF16.cpp:
        * wtf/text/icu/UTextProviderUTF16.h:
        * wtf/threads/BinarySemaphore.cpp:
        * wtf/threads/BinarySemaphore.h:
        * wtf/threads/Signals.cpp:
        * wtf/unicode/CharacterNames.h:
        * wtf/unicode/Collator.h:
        * wtf/unicode/CollatorDefault.cpp:
        * wtf/unicode/UTF8.cpp:
        * wtf/unicode/UTF8.h:

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

        Allow encoding of small enum classes
        https://bugs.webkit.org/show_bug.cgi?id=190531

        Reviewed by Tim Horton.

        * wtf/Forward.h:

2018-10-11  Alexey Proskuryakov  <ap@apple.com>

        Add PLATFORM(IOS_FAMILY) and OS(IOS_FAMILY)
        https://bugs.webkit.org/show_bug.cgi?id=190477

        Reviewed by Tim Horton.

        Currently, PLATFORM(IOS) and OS(IOS) are true when building for any
        TARGET_OS_IPHONE target, which is quite confusing. Add a better named alternative,
        as a first step towards mass replacing PLATFORM(IOS). Can't so it all at once
        because of dependencies in other source repositories.

        * wtf/Platform.h: Changed to the new name in this file though. Kept a few
        instances that actually target iOS only, having a version check.

2018-10-11  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Use currentStackPointer more
        https://bugs.webkit.org/show_bug.cgi?id=190503

        Reviewed by Saam Barati.

        Use WTF::currentStackPointer more in WebKit to adopt ASAN detect_stack_use_after_return option.

        * wtf/StackBounds.cpp:
        (WTF::testStackDirection2):
        (WTF::testStackDirection):
        * wtf/ThreadingPthreads.cpp:
        (WTF::Thread::signalHandlerSuspendResume):
        (WTF::getApproximateStackPointer): Deleted.

2018-10-11  Ross Kirsling  <ross.kirsling@sony.com>

        [WTF] Semaphore.h conflicts with POSIX header
        https://bugs.webkit.org/show_bug.cgi?id=190486

        Reviewed by Yusuke Suzuki.

        Rename Semaphore.h to WTFSemaphore.h to avoid conflict with POSIX semaphore.h on case-insensitive file systems.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/WTFSemaphore.h: Renamed from wtf/Semaphore.h.

2018-10-10  Mark Lam  <mark.lam@apple.com>

        Changes towards allowing use of the ASAN detect_stack_use_after_return option.
        https://bugs.webkit.org/show_bug.cgi?id=190405
        <rdar://problem/45131464>

        Reviewed by Michael Saboff.

        Introduce WTF::currentStackPointer() which computes its caller's stack pointer value.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/StackBounds.h:
        (WTF::StackBounds::checkConsistency const):
        * wtf/StackPointer.cpp: Added.
        (WTF::currentStackPointer):
        * wtf/StackPointer.h: Added.

2018-10-09  Mark Lam  <mark.lam@apple.com>

        StringTypeAdapter constructor is not properly enforcing String::MaxLength.
        https://bugs.webkit.org/show_bug.cgi?id=190392
        <rdar://problem/45116210>

        Reviewed by Saam Barati.

        Previously, the StringTypeAdapter constructor for a UChar* string was summing the
        unsigned length of the source string without an overflow check.  We now make that
        length a size_t which removes this issue, and assert that it's within
        String::MaxLength thereafter.

        Also made the StringTypeAdapter constructor for a LChar* string behave in an
        equivalent manner for consistency.  In both cases, we'll crash in a RELEASE_ASSERT
        if the source string length exceeds String::MaxLength.

        * wtf/text/StringConcatenate.h:

2018-10-09  Mark Lam  <mark.lam@apple.com>

        Revert temporary asserts for debugging a mysterious ASAN bot crash.
        https://bugs.webkit.org/show_bug.cgi?id=190396

        Reviewed by Yusuke Suzuki.

        * wtf/StackBounds.cpp:
        (WTF::StackBounds::newThreadStackBounds):
        * wtf/StackBounds.h:
        (WTF::StackBounds::checkConsistency const):

2018-10-08  Aditya Keerthi  <akeerthi@apple.com>

        Make <input type=color> a runtime enabled (on-by-default) feature
        https://bugs.webkit.org/show_bug.cgi?id=189162

        Reviewed by Wenson Hsieh and Tim Horton.

        * wtf/FeatureDefines.h:

2018-10-06  Mark Lam  <mark.lam@apple.com>

        Adding some temporary asserts with data logging to debug a mysterious ASAN bot crash.
        https://bugs.webkit.org/show_bug.cgi?id=190334
        <rdar://problem/45071303>

        Reviewed by Yusuke Suzuki.

        These assertions are needed because we can't reproduce the issue locally.
        We'll remove these asserts after the needed data has been collected from the bot.

        * wtf/StackBounds.cpp:
        (WTF::StackBounds::newThreadStackBounds):
        * wtf/StackBounds.h:
        (WTF::StackBounds::checkConsistency const):

2018-10-07  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        Name Heap threads
        https://bugs.webkit.org/show_bug.cgi?id=190337

        Reviewed by Mark Lam.

        Add a functionality naming threads of ParallelHelperPool.

        * wtf/ParallelHelperPool.cpp:
        (WTF::ParallelHelperPool::ParallelHelperPool):
        * wtf/ParallelHelperPool.h:

2018-10-06  Mark Lam  <mark.lam@apple.com>

        Adding some temporary asserts to debug a mysterious ASAN bot crash.
        https://bugs.webkit.org/show_bug.cgi?id=190331

        Reviewed by Filip Pizlo.

        These assertions are needed because we can't reproduce the issue locally.
        We'll remove these asserts after the needed data has been collected from the bot.

        * wtf/StackBounds.h:
        (WTF::StackBounds::checkConsistency const):

2018-10-05  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        [JSC][Linux] Support Perf JITDump logging
        https://bugs.webkit.org/show_bug.cgi?id=189893

        Reviewed by Mark Lam.

        * wtf/PageReservation.h:
        (WTF::PageReservation::reserveAndCommitWithGuardPages):

2018-10-03  Dan Bernstein  <mitz@apple.com>

        WTF part of [Xcode] Update some build settings as recommended by Xcode 10
        https://bugs.webkit.org/show_bug.cgi?id=190250

        Reviewed by Alex Christensen.

        * Configurations/Base.xcconfig: Enabled CLANG_WARN_COMMA, CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS,
          and CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF.

        * WTF.xcodeproj/project.pbxproj: Let Xcode update LastUpgradeCheck.

        * wtf/MathExtras.h:
        (WTF::fastLog2): Addressed newly-enabled CLANG_WARN_COMMA by splitting some comma-separated
          expressions into individual statements.

2018-10-03  Mark Lam  <mark.lam@apple.com>

        Make string MaxLength for all WTF and JS strings consistently equal to INT_MAX.
        https://bugs.webkit.org/show_bug.cgi?id=190187
        <rdar://problem/42512909>

        Reviewed by Michael Saboff.

        * wtf/text/StringConcatenate.h:
        (WTF::tryMakeStringFromAdapters):
        (WTF::sumWithOverflow): Deleted.
        * wtf/text/StringImpl.h:
        * wtf/text/WTFString.h:

2018-10-03  Michael Catanzaro  <mcatanzaro@igalia.com>

        -Wunused-variable in RenderLayer::updateScrollableAreaSet
        https://bugs.webkit.org/show_bug.cgi?id=190200

        Reviewed by Yusuke Suzuki.

        Add a new UNUSED_VARIABLE() macro. It's the same as UNUSED_PARAM(), just named differently.

        * wtf/Compiler.h:

2018-10-01  Dean Jackson  <dino@apple.com>

        [macOS] Switching to discrete GPU should be done in the UI process
        https://bugs.webkit.org/show_bug.cgi?id=189361
        <rdar://problem/43949622>

        Reviewed by Simon Fraser.

        Define GL_SILENCE_DEPRECATION to avoid deprecation warnings for OpenGL.

        * wtf/Platform.h:

2018-10-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r236624 and r236671.
        https://bugs.webkit.org/show_bug.cgi?id=190207

        The change in r236624 introduced crashes on the bots
        (Requested by ryanhaddad on #webkit).

        Reverted changesets:

        "Refactoring: eliminate raw pointer usage in Fullscreen code"
        https://bugs.webkit.org/show_bug.cgi?id=188747
        https://trac.webkit.org/changeset/236624

        "Unify implementation in VideoFullscreenInterfaceAVKit"
        https://bugs.webkit.org/show_bug.cgi?id=190091
        https://trac.webkit.org/changeset/236671

2018-10-02  Caio Lima  <ticaiolima@gmail.com>

        [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
        https://bugs.webkit.org/show_bug.cgi?id=190033

        Reviewed by Yusuke Suzuki.

        * wtf/MathExtras.h:
        (WTF::ctz32):

2018-10-01  Andy Estes  <aestes@apple.com>

        [watchOS] Adopt NSURLSessionCompanionProxyPreference
        https://bugs.webkit.org/show_bug.cgi?id=190177
        <rdar://problem/43402114>

        Reviewed by Wenson Hsieh.

        * wtf/FeatureDefines.h:

2018-10-01  Koby Boyango  <koby.b@mce-sys.com>

        [WTF][JSCONLY] Use MainThreadWin on Windows in the JSCOnly port
        https://bugs.webkit.org/show_bug.cgi?id=190121

        Reviewed by Yusuke Suzuki.

        This fixes JSCOnly build on Windows after r236617.

        * wtf/PlatformJSCOnly.cmake:

2018-10-01  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r236647.
        https://bugs.webkit.org/show_bug.cgi?id=190124

        Breaking test stress/big-int-to-string.js (Requested by
        caiolima_ on #webkit).

        Reverted changeset:

        "[BigInt] BigInt.proptotype.toString is broken when radix is
        power of 2"
        https://bugs.webkit.org/show_bug.cgi?id=190033
        https://trac.webkit.org/changeset/236647

2018-09-30  Caio Lima  <ticaiolima@gmail.com>

        [BigInt] BigInt.proptotype.toString is broken when radix is power of 2
        https://bugs.webkit.org/show_bug.cgi?id=190033

        Reviewed by Yusuke Suzuki.

        * wtf/MathExtras.h:
        (WTF::ctz32):

2018-09-28  Jer Noble  <jer.noble@apple.com>

        Refactoring: eliminate raw pointer usage in Fullscreen code
        https://bugs.webkit.org/show_bug.cgi?id=188747
        <rdar://problem/43541164>

        Reviewed by Alex Christensen.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/WeakPtrContainer.h: Added.

2018-09-28  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        [WTF] Make isMainThread more reliable
        https://bugs.webkit.org/show_bug.cgi?id=189880

        Reviewed by Mark Lam.

        isMainThread() relied on Thread::current(). This API becomes broken in Windows
        when the Thread is about to be destroyed since TLS is already cleared. This causes
        a bug since `isMainThread()` is called in Thread::didExit in Windows.

        This patch makes this `isMainThread` more reliable in all the platforms. In Windows,
        we use `Thread::currentID()` instead of `Thread::current()` since `Thread::currentID`
        uses Win32 GetCurrentThreadId directly. In the other system, we use `pthread_main_np`
        or `pthread_self` instead.

        We also move `holdLock` code inside `if (shouldRemoveThreadFromThreadGroup())`. If
        the other thread takes a mutex and destroyed, this `holdLock` waits forever. This problem
        only happens in Windows since Windows calls TLS destructor for the main thread.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/MainThread.cpp:
        (WTF::initializeMainThread):
        (): Deleted.
        (WTF::isMainThread): Deleted.
        (WTF::isMainThreadIfInitialized): Deleted.
        * wtf/Platform.h:
        * wtf/PlatformMac.cmake:
        * wtf/Threading.cpp:
        (WTF::Thread::didExit):
        * wtf/cocoa/MainThreadCocoa.mm: Renamed from Source/WTF/wtf/mac/MainThreadMac.mm.
        * wtf/generic/MainThreadGeneric.cpp:
        (WTF::initializeMainThreadPlatform):
        (WTF::isMainThread):
        (WTF::isMainThreadIfInitialized):
        * wtf/win/MainThreadWin.cpp:
        (WTF::initializeMainThreadPlatform):
        (WTF::isMainThread):
        (WTF::isMainThreadIfInitialized):

2018-09-28  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r236605.
        https://bugs.webkit.org/show_bug.cgi?id=190087

        caused three API test timeouts (Requested by jernoble on
        #webkit).

        Reverted changeset:

        "Refactoring: eliminate raw pointer usage in Fullscreen code"
        https://bugs.webkit.org/show_bug.cgi?id=188747
        https://trac.webkit.org/changeset/236605

2018-09-28  Brian Burg  <bburg@apple.com>

        Replace recently added line comments in Compiler.h
        https://bugs.webkit.org/show_bug.cgi?id=190062
        <rdar://problem/44838618>

        Reviewed by Joseph Pecoraro.

        This breaks some Apple-internal tooling. For now, work around it by
        changing the comment style. On the other side, the issue will be fixed
        more permanently by adopting the approach from r230213.

        * wtf/Compiler.h: Use multiline comments.

2018-09-28  Jer Noble  <jer.noble@apple.com>

        Refactoring: eliminate raw pointer usage in Fullscreen code
        https://bugs.webkit.org/show_bug.cgi?id=188747
        <rdar://problem/43541164>

        Reviewed by Alex Christensen.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/WeakPtrContainer.h: Added.

2018-09-28  Koby Boyango  <koby.b@mce.systems>

        [WTF] Add ExternalStringImpl, a StringImpl for user controlled buffers
        https://bugs.webkit.org/show_bug.cgi?id=189991

        Reviewed by Yusuke Suzuki.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/text/ExternalStringImpl.cpp: Added.
        * wtf/text/ExternalStringImpl.h: Added.
        * wtf/text/StringImpl.cpp:
        * wtf/text/StringImpl.h:

2018-09-27  Saam barati  <sbarati@apple.com>

        Verify the contents of AssemblerBuffer on arm64e
        https://bugs.webkit.org/show_bug.cgi?id=190057
        <rdar://problem/38916630>

        Reviewed by Mark Lam.

        * wtf/PtrTag.h:
        (WTF::tagInt):

2018-09-27  Jer Noble  <jer.noble@apple.com>

        MediaPlayer should have mediaPlayerWaitingForKeyChanged() / bool waitingForKey() accessor
        https://bugs.webkit.org/show_bug.cgi?id=189951

        Reviewed by Eric Carlson.

        Templated functions should take r-value references, as they have perfect type deduction for
        all parameter types; references, l-value references, and r-value references in template function
        parameters have special type deduction semantics.
        See: <https://en.cppreference.com/w/cpp/language/reference#Forwarding_references>

        Previously, const reference parameters would be copied when passed into anyOf(), and containers
        of Ref<> would generate compile errors when passed into anyOf, as they cannot be copied. Now,
        with r-value reference types in template parameters, a const reference is mapped to a const reference,
        a non-const reference is mapped to a non-const reference, and a r-value reference is mapped to
        an r-value reference.

        * wtf/Algorithms.h:
        (WTF::forEach):
        (WTF::anyOf):
        (WTF::allOf):

2018-09-25  John Wilander  <wilander@apple.com>

        Change from HAVE(CFNETWORK_STORAGE_PARTITIONING) to ENABLE(RESOURCE_LOAD_STATISTICS)
        https://bugs.webkit.org/show_bug.cgi?id=189959
        <rdar://problem/44767642>

        Reviewed by Chris Dumez.

        * wtf/Platform.h:
            Enables RESOURCE_LOAD_STATISTICS for Cocoa platforms.

2018-09-24  Fujii Hironori  <Hironori.Fujii@sony.com>

        Rename WTF_COMPILER_GCC_OR_CLANG to WTF_COMPILER_GCC_COMPATIBLE
        https://bugs.webkit.org/show_bug.cgi?id=189733

        Reviewed by Michael Catanzaro.

        Clang for Windows build enables WTF_COMPILER_CLANG and
        WTF_COMPILER_MSVC, but disables WTF_COMPILER_GCC_OR_CLANG. It is
        strange WTF_COMPILER_GCC_OR_CLANG is not enabled even though
        WTF_COMPILER_CLANG is enabled. However, Clang for Windows imitates
        MSVC, and codes for COMPILER(GCC_OR_CLANG) are for non MSVC. At
        least at the moment, it is not feasible to define
        WTF_COMPILER_GCC_OR_CLANG for Clang for Windows.

        To solve the issue, this change renames WTF_COMPILER_GCC_OR_CLANG
        to WTF_COMPILER_GCC_COMPATIBLE.

        As an exception, I'd like to use IGNORE_WARNINGS_* macros even in
        Clang for Windows builds.

        * wtf/Assertions.cpp: Replaced COMPILER(GCC_OR_CLANG) with COMPILER(GCC_COMPATIBLE).
        * wtf/Assertions.h: Ditto.
        * wtf/Atomics.h: Ditto.
        * wtf/CheckedArithmetic.h: Ditto.
        * wtf/FastMalloc.h: Ditto.
        * wtf/MathExtras.h: Ditto.
        * wtf/Platform.h: Ditto.
        * wtf/StdLibExtras.h: Ditto.
        * wtf/Vector.h: Ditto.
        * wtf/text/ASCIIFastPath.h: Ditto.
        * wtf/Compiler.h:  Ditto. Replaced "COMPILER(GCC_OR_CLANG)" with "COMPILER(GCC) || COMPILER(CLANG)" of IGNORE_WARNINGS_* macros.

2018-09-21  Yusuke Suzuki  <yusukesuzuki@slowstart.org>

        [JSC] Enable LLInt ASM interpreter on X64 and ARM64 in non JIT configuration
        https://bugs.webkit.org/show_bug.cgi?id=189778

        Reviewed by Keith Miller.

        This patch adds ENABLE(C_LOOP) which indicates we use CLoop as the interpreter.
        Previously, we used !ENABLE(JIT) for this configuration. But now, we have
        a build configuration that has LLInt ASM interpreter (not CLoop) and !ENABLE(JIT).

        We enable LLInt ASM interpreter for non JIT environment in X86_64 and ARM64 architectures.
        And we enable ENABLE(ASSEMBLER) for non JIT environment since it offers machine register
        information which is used for LLInt and SamplingProfiler.

        * wtf/Platform.h:

2018-09-21  Keith Miller  <keith_miller@apple.com>

        Add Promise SPI
        https://bugs.webkit.org/show_bug.cgi?id=189809

        Reviewed by Saam Barati.

        Fix issue where creating a JSContextRef off the main thread before
        creating initializing the main thread would cause an assertion
        failure.

        * wtf/MainThread.cpp:
        (WTF::isMainThreadIfInitialized):
        * wtf/MainThread.h:
        * wtf/mac/MainThreadMac.mm:
        (WTF::isMainThreadIfInitialized):
        * wtf/text/cf/StringImplCF.cpp:
        (WTF::StringImpl::createCFString):

2018-09-21  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r236359.

        Broke the Windows build.

        Reverted changeset:

        "Add Promise SPI"
        https://bugs.webkit.org/show_bug.cgi?id=189809
        https://trac.webkit.org/changeset/236359

2018-09-21  Keith Miller  <keith_miller@apple.com>

        Add Promise SPI
        https://bugs.webkit.org/show_bug.cgi?id=189809

        Reviewed by Saam Barati.

        Fix issue where creating a JSContextRef off the main thread before
        creating initializing the main thread would cause an assertion
        failure.

        * wtf/MainThread.cpp:
        (WTF::isMainThreadIfInitialized):
        * wtf/MainThread.h:
        * wtf/mac/MainThreadMac.mm:
        (WTF::isMainThreadIfInitialized):
        * wtf/text/cf/StringImplCF.cpp:
        (WTF::StringImpl::createCFString):

2018-09-20  Fujii Hironori  <Hironori.Fujii@sony.com>

        [Win][Clang] UNUSED_PARAM(this) causes compilation error of "cannot take the address of an rvalue of type"
        https://bugs.webkit.org/show_bug.cgi?id=189732

        Reviewed by Per Arne Vollan.

        Clang for Windows can't compile the MSVC workaround of
        UNUSED_PARAM which has been introduced for Windows CE and Visual
        Studio 10. I think it's safe just to remove it.

        * wtf/Compiler.h: Removed the code for COMPILER(MSVC).

2018-09-20  Alex Christensen  <achristensen@webkit.org>

        Unreviewed, rolling out r235976.

        Broke ARM

        Reverted changeset:

        "Use a Variant instead of a union in CSSSelector"
        https://bugs.webkit.org/show_bug.cgi?id=188559
        https://trac.webkit.org/changeset/235976

2018-09-17  Yusuke Suzuki  <utatane.tea@gmail.com>

        [WTF] Use Semaphore and BinarySemaphore instead of dispatch_semaphore_t
        https://bugs.webkit.org/show_bug.cgi?id=185339

        Reviewed by Mark Lam.

        This patch adds WTF::Semaphore, which is based on WTF::Lock and WTF::Condition.

        * WTF.xcodeproj/project.pbxproj:
        * wtf/CMakeLists.txt:
        * wtf/Semaphore.h: Added.
        (WTF::Semaphore::Semaphore):
        (WTF::Semaphore::signal):
        (WTF::Semaphore::waitUntil):
        (WTF::Semaphore::waitFor):
        (WTF::Semaphore::wait):
        * wtf/generic/WorkQueueGeneric.cpp:
        (WorkQueue::platformInitialize):
        * wtf/threads/BinarySemaphore.cpp:
        (WTF::BinarySemaphore::waitUntil):
        (WTF::BinarySemaphore::wait): Deleted.
        * wtf/threads/BinarySemaphore.h:
        (WTF::BinarySemaphore::waitFor):
        (WTF::BinarySemaphore::wait):
        Align the names of the functions to WTF::Condition.
        Add BinarySemaphore::wait(), which is the same to waitUntil(WallTime::infinity()).

2018-09-17  Jer Noble  <jer.noble@apple.com>

        Add support for HEVC codec types in Media Capabilities
        https://bugs.webkit.org/show_bug.cgi?id=189565

        Reviewed by Eric Carlson.

        Extract the toIntegralType template into its own header.

        * wtf/CMakeLists.txt:
        * wtf/text/StringConversion.h: Added.
        (isCharacterAllowedInBase):
        (toIntegralType):
        * wtf/text/WTFString.cpp:

2018-09-17  Jer Noble  <jer.noble@apple.com>

        Enable USE_MEDIAREMOTE on iOS
        https://bugs.webkit.org/show_bug.cgi?id=189096

        Reviewed by Eric Carlson.

        * wtf/Platform.h:

2018-09-17  Frederic Wang  <fwang@igalia.com>

        Build error in ImageBufferCG when compiled with IOSurfacePool
        https://bugs.webkit.org/show_bug.cgi?id=189579

        Reviewed by Tim Horton.

        IOSurface.h might be included with different value of IOSURFACE_CANVAS_BACKING_STORE, causing
        compilation errors when files in the same unified source do not agree on the definition.
        This patch moves the definition of IOSURFACE_CANVAS_BACKING_STORE from ImageBufferDataCG.h
        to Platform.h so that IOSURFACE_CANVAS_BACKING_STORE is set to the same value in all files.
        Finally some minors changes to explicitly declare/define ImageBuffer are performed in order
        to prevent future issues with Unified build rotating.

        * wtf/Platform.h: Move definition from ImageBufferDataCG.h.

2018-09-14  Ryan Haddad  <ryanhaddad@apple.com>

        Unreviewed, rolling out r235990.

        Introduced TestWebKitAPI.NowPlayingTest timeouts on iOS

        Reverted changeset:

        "Enable USE_MEDIAREMOTE on iOS"
        https://bugs.webkit.org/show_bug.cgi?id=189096
        https://trac.webkit.org/changeset/235990

2018-09-13  Jer Noble  <jer.noble@apple.com>

        Enable USE_MEDIAREMOTE on iOS
        https://bugs.webkit.org/show_bug.cgi?id=189096

        Reviewed by Eric Carlson.

        * wtf/Platform.h:

2018-09-13  Alex Christensen  <achristensen@webkit.org>

        Use a Variant instead of a union in CSSSelector
        https://bugs.webkit.org/show_bug.cgi?id=188559

        Reviewed by Antti Koivisto.

        * wtf/Variant.h:
        Add packing macros to make it so Variant-containing structures don't always have 7 bytes of padding per Variant.

2018-09-12  Guillaume Emont  <guijemont@igalia.com>

        Add IGNORE_WARNING_.* macros
        https://bugs.webkit.org/show_bug.cgi?id=188996

        Reviewed by Michael Catanzaro.

        * wtf/Assertions.cpp:
        * wtf/Assertions.h:
        * wtf/Compiler.h:
        * wtf/MD5.cpp:
        (WTF::MD5::MD5):
        (WTF::MD5::addBytes):
        (WTF::MD5::checksum):
        * wtf/PrintStream.cpp:
        (WTF::PrintStream::printfVariableFormat):
        * wtf/SHA1.cpp:
        (WTF::SHA1::SHA1):
        (WTF::SHA1::addBytes):
        (WTF::SHA1::computeHash):
        * wtf/ThreadingPthreads.cpp:
        * wtf/Vector.h:
        (WTF::VectorBuffer::endOfBuffer):
        * wtf/text/WTFString.cpp:
        (WTF::createWithFormatAndArguments):

== Rolled over to ChangeLog-2018-09-11 ==