Simplify calls to LoaderStrategy::startPingLoad()
[WebKit-https.git] / Source / WebCore / ChangeLog
index 250dda9..856bbf8 100644 (file)
+2017-08-20  Chris Dumez  <cdumez@apple.com>
+
+        Simplify calls to LoaderStrategy::startPingLoad()
+        https://bugs.webkit.org/show_bug.cgi?id=175756
+
+        Reviewed by Sam Weinig.
+
+        Simplify calls to LoaderStrategy::startPingLoad() by passing the Frame to it
+        and let its implementation gets what it needs from the frame. This reduces
+        the number of parameters to startPingLoad() and is more easily extensible.
+
+        * dom/Document.h:
+        * loader/LoaderStrategy.h:
+        * loader/PingLoader.cpp:
+        (WebCore::PingLoader::loadImage):
+        (WebCore::PingLoader::sendPing):
+        (WebCore::PingLoader::sendViolationReport):
+        (WebCore::PingLoader::startPingLoad):
+        * loader/PingLoader.h:
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::load):
+
+2017-08-20  Antti Koivisto  <antti@apple.com>
+
+        Factor :before/:after render tree mutations into a RenderTreeUpdater helper class
+        https://bugs.webkit.org/show_bug.cgi?id=175752
+
+        Reviewed by Andreas Kling.
+
+        Move code that constructs generated content renderers out from PseudoElement.
+        Also refactor the related code from RenderTreeUpdater main class into
+        RenderTreeUpdater::GeneratedContent helper class.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/PseudoElement.cpp:
+        (WebCore::PseudoElement::resolveCustomStyle): Deleted.
+
+            Not needed anymore.
+
+        (WebCore::PseudoElement::didAttachRenderers): Deleted.
+
+            Moves to createContentRenderers in GeneratedContent.
+
+        (WebCore::PseudoElement::didRecalcStyle): Deleted.
+
+            Moves to updateStyleForContentRenderers in GeneratedContent.
+
+        * dom/PseudoElement.h:
+        * style/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::RenderTreeUpdater):
+        (WebCore::RenderTreeUpdater::~RenderTreeUpdater):
+        (WebCore::RenderTreeUpdater::commit):
+        (WebCore::RenderTreeUpdater::updateBeforeDescendants):
+        (WebCore::RenderTreeUpdater::updateAfterDescendants):
+        (WebCore::needsPseudoElement): Deleted.
+        (WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement): Deleted.
+        (WebCore::RenderTreeUpdater::updateQuotesUpTo): Deleted.
+
+            Quotes and other :before/:after support moves to GeneratedContent helpwe.
+
+        * style/RenderTreeUpdater.h:
+        (WebCore::RenderTreeUpdater::generatedContent):
+        * style/RenderTreeUpdaterGeneratedContent.cpp: Added.
+        (WebCore::RenderTreeUpdater::GeneratedContent::GeneratedContent):
+        (WebCore::RenderTreeUpdater::GeneratedContent::updateBeforePseudoElement):
+        (WebCore::RenderTreeUpdater::GeneratedContent::updateAfterPseudoElement):
+        (WebCore::RenderTreeUpdater::GeneratedContent::updateRemainingQuotes):
+        (WebCore::RenderTreeUpdater::GeneratedContent::updateQuotesUpTo):
+        (WebCore::createContentRenderers):
+        (WebCore::updateStyleForContentRenderers):
+        (WebCore::RenderTreeUpdater::GeneratedContent::updatePseudoElement):
+        (WebCore::RenderTreeUpdater::GeneratedContent::needsPseudoElement):
+        * style/RenderTreeUpdaterGeneratedContent.h: Added.
+
+2017-08-19  Andy Estes  <aestes@apple.com>
+
+        [Payment Request] Add interface stubs
+        https://bugs.webkit.org/show_bug.cgi?id=175730
+
+        Reviewed by Youenn Fablet.
+
+        * DerivedSources.make:
+        * Modules/paymentrequest/PaymentAddress.h: Added.
+        * Modules/paymentrequest/PaymentAddress.idl: Added.
+        * Modules/paymentrequest/PaymentComplete.h: Added.
+        * Modules/paymentrequest/PaymentComplete.idl: Added.
+        * Modules/paymentrequest/PaymentCurrencyAmount.h: Added.
+        * Modules/paymentrequest/PaymentCurrencyAmount.idl: Added.
+        * Modules/paymentrequest/PaymentDetailsBase.h: Added.
+        * Modules/paymentrequest/PaymentDetailsBase.idl: Added.
+        * Modules/paymentrequest/PaymentDetailsInit.h: Added.
+        * Modules/paymentrequest/PaymentDetailsInit.idl: Added.
+        * Modules/paymentrequest/PaymentDetailsModifier.h: Added.
+        * Modules/paymentrequest/PaymentDetailsModifier.idl: Added.
+        * Modules/paymentrequest/PaymentDetailsUpdate.h: Added.
+        * Modules/paymentrequest/PaymentDetailsUpdate.idl: Added.
+        * Modules/paymentrequest/PaymentItem.h: Added.
+        * Modules/paymentrequest/PaymentItem.idl: Added.
+        * Modules/paymentrequest/PaymentMethodData.h: Added.
+        * Modules/paymentrequest/PaymentMethodData.idl: Added.
+        * Modules/paymentrequest/PaymentOptions.h: Added.
+        * Modules/paymentrequest/PaymentOptions.idl: Added.
+        * Modules/paymentrequest/PaymentRequest.cpp: Added.
+        (WebCore::PaymentRequest::create):
+        (WebCore::PaymentRequest::PaymentRequest):
+        (WebCore::PaymentRequest::~PaymentRequest):
+        (WebCore::PaymentRequest::show):
+        (WebCore::PaymentRequest::abort):
+        (WebCore::PaymentRequest::canMakePayment):
+        * Modules/paymentrequest/PaymentRequest.h: Added.
+        * Modules/paymentrequest/PaymentRequest.idl: Added.
+        * Modules/paymentrequest/PaymentRequestUpdateEvent.cpp: Added.
+        (WebCore::PaymentRequestUpdateEvent::~PaymentRequestUpdateEvent):
+        (WebCore::PaymentRequestUpdateEvent::updateWith):
+        * Modules/paymentrequest/PaymentRequestUpdateEvent.h: Added.
+        * Modules/paymentrequest/PaymentRequestUpdateEvent.idl: Added.
+        * Modules/paymentrequest/PaymentRequestUpdateEventInit.h: Added.
+        * Modules/paymentrequest/PaymentRequestUpdateEventInit.idl: Added.
+        * Modules/paymentrequest/PaymentResponse.cpp: Added.
+        (WebCore::PaymentResponse::complete):
+        * Modules/paymentrequest/PaymentResponse.h: Added.
+        * Modules/paymentrequest/PaymentResponse.idl: Added.
+        * Modules/paymentrequest/PaymentShippingOption.h: Added.
+        * Modules/paymentrequest/PaymentShippingOption.idl: Added.
+        * Modules/paymentrequest/PaymentShippingType.h: Added.
+        * Modules/paymentrequest/PaymentShippingType.idl: Added.
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/EventNames.h:
+        * dom/EventNames.in:
+        * dom/EventTargetFactory.in:
+
+2017-08-19  Sam Weinig  <sam@webkit.org>
+
+        [WebCrypto] Remove the KeyAlgorithm type hierarchy
+        https://bugs.webkit.org/show_bug.cgi?id=175750
+
+        Reviewed by Chris Dumez.
+
+        Removes the unnecessary indirection that existed to generate a
+        KeyAlgorithm dictionary (or rather, one of its derived dictionaries)
+        for a CryptoKey. We were calling the virtual buildAlgorithm(), which
+        return a std::unique_ptr<KeyAlgorithm>, which we then casted to the 
+        correct derived class and called dictionary() on. This can now be
+        simplified by making each CryptoKey derived class override a function
+        that returns the KeyAlgorithm variant.
+
+        * crypto/CryptoKey.cpp:
+        (WebCore::CryptoKey::algorithm const): Deleted.
+        * crypto/CryptoKey.h:
+        (WebCore::CryptoKey::extractable const):
+        (WebCore::KeyAlgorithm::~KeyAlgorithm): Deleted.
+        (WebCore::KeyAlgorithm::name const): Deleted.
+        (WebCore::KeyAlgorithm::KeyAlgorithm): Deleted.
+        * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:
+        (WebCore::CryptoKeyRSA::algorithm const):
+        (WebCore::CryptoKeyRSA::buildAlgorithm const): Deleted.
+        * crypto/keys/CryptoKeyAES.cpp:
+        (WebCore::CryptoKeyAES::algorithm const):
+        (WebCore::AesKeyAlgorithm::dictionary const): Deleted.
+        (WebCore::CryptoKeyAES::buildAlgorithm const): Deleted.
+        * crypto/keys/CryptoKeyAES.h:
+        * crypto/keys/CryptoKeyEC.cpp:
+        (WebCore::CryptoKeyEC::algorithm const):
+        (WebCore::EcKeyAlgorithm::dictionary const): Deleted.
+        (WebCore::CryptoKeyEC::buildAlgorithm const): Deleted.
+        * crypto/keys/CryptoKeyEC.h:
+        (WebCore::EcKeyAlgorithm::EcKeyAlgorithm): Deleted.
+        (WebCore::EcKeyAlgorithm::namedCurve const): Deleted.
+        * crypto/keys/CryptoKeyHMAC.cpp:
+        (WebCore::CryptoKeyHMAC::algorithm const):
+        (WebCore::HmacKeyAlgorithm::dictionary const): Deleted.
+        (WebCore::CryptoKeyHMAC::buildAlgorithm const): Deleted.
+        * crypto/keys/CryptoKeyHMAC.h:
+        * crypto/keys/CryptoKeyRSA.cpp:
+        (WebCore::RsaKeyAlgorithm::dictionary const): Deleted.
+        (WebCore::RsaHashedKeyAlgorithm::dictionary const): Deleted.
+        * crypto/keys/CryptoKeyRSA.h:
+        (WebCore::RsaKeyAlgorithm::RsaKeyAlgorithm): Deleted.
+        (WebCore::RsaKeyAlgorithm::modulusLength const): Deleted.
+        (WebCore::RsaKeyAlgorithm::publicExponent const): Deleted.
+        * crypto/keys/CryptoKeyRaw.cpp:
+        (WebCore::CryptoKeyRaw::algorithm const):
+        (WebCore::RawKeyAlgorithm::dictionary const): Deleted.
+        (WebCore::CryptoKeyRaw::buildAlgorithm const): Deleted.
+        * crypto/keys/CryptoKeyRaw.h:
+        (WebCore::RawKeyAlgorithm::RawKeyAlgorithm): Deleted.
+        * crypto/mac/CryptoKeyRSAMac.cpp:
+        (WebCore::CryptoKeyRSA::algorithm const):
+        (WebCore::CryptoKeyRSA::buildAlgorithm const): Deleted.
+
+2017-08-19  Sam Weinig  <sam@webkit.org>
+
+        [Mac] Change uint8_t* to Vector<uint8_t> type in all crypto algorithm implementation
+        https://bugs.webkit.org/show_bug.cgi?id=164939
+
+        Reviewed by Chris Dumez.
+
+        Address FIXMEs, replacing uint8_t*/size_t parameters with Vector<uint8_t>&.
+
+        * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
+        (WebCore::transformAES_CBC):
+        (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
+        (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
+        * crypto/mac/CryptoAlgorithmAES_KWMac.cpp:
+        (WebCore::wrapKeyAES_KW):
+        (WebCore::unwrapKeyAES_KW):
+        (WebCore::CryptoAlgorithmAES_KW::platformWrapKey):
+        (WebCore::CryptoAlgorithmAES_KW::platformUnwrapKey):
+        * crypto/mac/CryptoAlgorithmHMACMac.cpp:
+        (WebCore::calculateSignature):
+        (WebCore::CryptoAlgorithmHMAC::platformSign):
+        (WebCore::CryptoAlgorithmHMAC::platformVerify):
+        * crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp:
+        (WebCore::encryptRSAES_PKCS1_v1_5):
+        (WebCore::decryptRSAES_PKCS1_v1_5):
+        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
+        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
+        * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
+        (WebCore::signRSASSA_PKCS1_v1_5):
+        (WebCore::verifyRSASSA_PKCS1_v1_5):
+        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
+        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
+        * crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
+        (WebCore::encryptRSA_OAEP):
+        (WebCore::decryptRSA_OAEP):
+        (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
+        (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
+
+2017-08-18  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Forbid setDragImage after dragstart
+        https://bugs.webkit.org/show_bug.cgi?id=175751
+
+        Reviewed by Wenson Hsieh.
+
+        Removed the code to allow setting the drag mage after dragstart had happened.
+
+        The feature was apparently used in Mac WebKit1 port but using it today causes the drag image
+        to disapepar while the user is moving the mouse cursor and being drawn once it's stopped
+        and results in the contionus flickering of the drag image.
+
+        The feaure was never supported in WebKit2 and doesn't match the HTML5 specification:
+        https://html.spec.whatwg.org/multipage/dnd.html#concept-dnd-rw
+        https://html.spec.whatwg.org/multipage/dnd.html#dom-datatransfer-setdragimage
+        or the behaviors of other browsers such as Chrome and Firefox.
+
+        No new tests. This patch simply removes code.
+
+        * dom/DataTransfer.cpp:
+        (WebCore::DataTransfer::setDragImage):
+        (WebCore::DataTransfer::canSetDragImage const): Deleted.
+        * dom/DataTransfer.h:
+        (WebCore::DataTransfer::makeDragImageWritable): Deleted.
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::handleDrag):
+
+2017-08-18  Sam Weinig  <sam@webkit.org>
+
+        [WebCrypto] Get rid of CryptoKeyData class and all its subclasses
+        https://bugs.webkit.org/show_bug.cgi?id=169806
+
+        Reviewed by Chris Dumez.
+
+        - Replaces the CryptoKeyData type hierarchy 
+
+            CryptoKeyData
+              - CryptoKeyDataOctetSequence
+              - CryptoKeyDataRSAComponents
+
+          with the renamed CryptoKeyRSAComponents.
+
+        - Removes pure virtual exportData function on CryptoKey, and all
+          the implementations except the one on CryptoKeyRSA, which now is
+          non-virtual, and returns a CryptoKeyRSAComponents. Update the one
+          external caller, SerializedScriptValue, to handle this.
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/SerializedScriptValue.cpp:
+        * crypto/CryptoAlgorithm.h:
+        * crypto/CryptoKey.h:
+        * crypto/CryptoKeyData.h: Removed.
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
+        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
+        * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:
+        (WebCore::CryptoKeyRSA::create):
+        (WebCore::CryptoKeyRSA::exportData const):
+        * crypto/keys/CryptoKeyAES.cpp:
+        (WebCore::CryptoKeyAES::exportData const): Deleted.
+        * crypto/keys/CryptoKeyAES.h:
+        * crypto/keys/CryptoKeyDataOctetSequence.cpp: Removed.
+        * crypto/keys/CryptoKeyDataOctetSequence.h: Removed.
+        * crypto/keys/CryptoKeyDataRSAComponents.cpp: Removed.
+        * crypto/keys/CryptoKeyDataRSAComponents.h: Removed.
+        * crypto/keys/CryptoKeyEC.cpp:
+        (WebCore::CryptoKeyEC::exportData const): Deleted.
+        * crypto/keys/CryptoKeyEC.h:
+        * crypto/keys/CryptoKeyHMAC.cpp:
+        (WebCore::CryptoKeyHMAC::exportData const): Deleted.
+        * crypto/keys/CryptoKeyHMAC.h:
+        * crypto/keys/CryptoKeyRSA.cpp:
+        (WebCore::CryptoKeyRSA::importJwk):
+        (WebCore::CryptoKeyRSA::exportJwk const):
+        * crypto/keys/CryptoKeyRSA.h:
+        * crypto/keys/CryptoKeyRSAComponents.cpp: Copied from crypto/keys/CryptoKeyDataRSAComponents.cpp.
+        (WebCore::CryptoKeyRSAComponents::CryptoKeyRSAComponents):
+        (WebCore::CryptoKeyRSAComponents::~CryptoKeyRSAComponents):
+        (WebCore::CryptoKeyDataRSAComponents::CryptoKeyDataRSAComponents): Deleted.
+        (WebCore::CryptoKeyDataRSAComponents::~CryptoKeyDataRSAComponents): Deleted.
+        * crypto/keys/CryptoKeyRSAComponents.h: Copied from crypto/keys/CryptoKeyDataRSAComponents.h.
+        (WebCore::CryptoKeyRSAComponents::createPublic):
+        (WebCore::CryptoKeyRSAComponents::createPrivate):
+        (WebCore::CryptoKeyRSAComponents::createPrivateWithAdditionalData):
+        * crypto/keys/CryptoKeyRaw.cpp:
+        (WebCore::CryptoKeyRaw::exportData const): Deleted.
+        * crypto/keys/CryptoKeyRaw.h:
+        * crypto/mac/CryptoKeyRSAMac.cpp:
+        (WebCore::getPrivateKeyComponents):
+        (WebCore::CryptoKeyRSA::create):
+        (WebCore::CryptoKeyRSA::exportData const):
+
+2017-08-18  Youenn Fablet  <youenn@apple.com>
+
+        [Cache API] Add support for being loaded responses
+        https://bugs.webkit.org/show_bug.cgi?id=175732
+
+        Reviewed by Chris Dumez.
+
+        Covered by existing and rebased tests.
+
+        Introducing a callback-based method to consume the body when the load is finished.
+        Using that new method in Cache::put and calling batchPutOperation when the load is finished.
+
+        Fixing the case of a fetch response being cloned, in which case its body should be marked as ReadableStream.
+
+        * Modules/cache/Cache.cpp:
+        (WebCore::Cache::put): Changing order of checks to reduce test flakiness risks as there is not yet support for putting responses with ReadableStream.
+        (WebCore::toConnectionRecord):
+        (WebCore::Cache::batchPutOperation):
+        * Modules/cache/Cache.h:
+        * Modules/fetch/FetchBody.cpp:
+        (WebCore::FetchBody::readableStreamBody): Deleted.
+        * Modules/fetch/FetchBody.h:
+        (WebCore::FetchBody::loadingBody):
+        (WebCore::FetchBody::setAsReadableStream):
+        * Modules/fetch/FetchResponse.cpp:
+        (WebCore::FetchResponse::BodyLoader::didSucceed):
+        (WebCore::FetchResponse::BodyLoader::didFail):
+        (WebCore::FetchResponse::consumeBody):
+        (WebCore::FetchResponse::consumeBodyWhenLoaded):
+        * Modules/fetch/FetchResponse.h:
+
+2017-08-18  Chris Dumez  <cdumez@apple.com>
+
+        [Beacon] Improve error reporting
+        https://bugs.webkit.org/show_bug.cgi?id=175723
+
+        Reviewed by Darin Adler.
+
+        Have Ping loads such as beacons report errors via their completion handler.
+        The Beacon API is using this error to log a console message when beacon loads
+        fail, provided that the page is still alive.
+
+        Test: http/wpt/beacon/beacon-async-error-logging.html
+
+        * Modules/beacon/NavigatorBeacon.cpp:
+        (WebCore::NavigatorBeacon::NavigatorBeacon):
+        (WebCore::NavigatorBeacon::~NavigatorBeacon):
+        (WebCore::NavigatorBeacon::from):
+        (WebCore::NavigatorBeacon::supplementName):
+        (WebCore::NavigatorBeacon::notifyFinished):
+        (WebCore::NavigatorBeacon::logError):
+        (WebCore::NavigatorBeacon::sendBeacon):
+        * Modules/beacon/NavigatorBeacon.h:
+        * loader/LoaderStrategy.h:
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::load):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::requestBeaconResource):
+        * loader/cache/CachedResourceLoader.h:
+        * platform/network/PingHandle.h:
+
+2017-08-18  Sam Weinig  <sam@webkit.org>
+
+        Remove the deprecated WebKitSubtleCrypto interface
+        https://bugs.webkit.org/show_bug.cgi?id=164938
+        <rdar://problem/29894563>
+
+        Reviewed by Chris Dumez.
+
+        Remove WebKitSubtleCrypto and all of its helper classes / functionality.
+
+        * CMakeLists.txt:
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSCryptoAlgorithmDictionary.cpp: Removed.
+        * bindings/js/JSCryptoAlgorithmDictionary.h: Removed.
+        * bindings/js/JSCryptoKeySerializationJWK.cpp: Removed.
+        * bindings/js/JSCryptoKeySerializationJWK.h: Removed.
+        * bindings/js/JSCryptoOperationData.cpp: Removed.
+        * bindings/js/JSCryptoOperationData.h: Removed.
+        * bindings/js/JSWebKitSubtleCryptoCustom.cpp: Removed.
+        * crypto/CryptoAlgorithm.cpp:
+        (WebCore::CryptoAlgorithm::deriveKey): Deleted.
+        (WebCore::CryptoAlgorithm::encryptForWrapKey): Deleted.
+        (WebCore::CryptoAlgorithm::decryptForUnwrapKey): Deleted.
+        * crypto/CryptoAlgorithm.h:
+        * crypto/CryptoAlgorithmParametersDeprecated.h: Removed.
+        * crypto/CryptoKeySerialization.h: Removed.
+        * crypto/WebKitSubtleCrypto.cpp: Removed.
+        * crypto/WebKitSubtleCrypto.h: Removed.
+        * crypto/WebKitSubtleCrypto.idl: Removed.
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+        (WebCore::CryptoAlgorithmAES_CBC::keyAlgorithmMatches const): Deleted.
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
+        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
+        (WebCore::CryptoAlgorithmAES_KW::encryptForWrapKey): Deleted.
+        (WebCore::CryptoAlgorithmAES_KW::decryptForUnwrapKey): Deleted.
+        * crypto/algorithms/CryptoAlgorithmAES_KW.h:
+        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
+        (WebCore::CryptoAlgorithmHMAC::keyAlgorithmMatches const): Deleted.
+        * crypto/algorithms/CryptoAlgorithmHMAC.h:
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
+        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches const): Deleted.
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
+        (WebCore::CryptoAlgorithmRSA_OAEP::keyAlgorithmMatches const): Deleted.
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
+        * crypto/algorithms/CryptoAlgorithmSHA1.cpp:
+        * crypto/algorithms/CryptoAlgorithmSHA1.h:
+        * crypto/algorithms/CryptoAlgorithmSHA224.cpp:
+        * crypto/algorithms/CryptoAlgorithmSHA224.h:
+        * crypto/algorithms/CryptoAlgorithmSHA256.cpp:
+        * crypto/algorithms/CryptoAlgorithmSHA256.h:
+        * crypto/algorithms/CryptoAlgorithmSHA384.cpp:
+        * crypto/algorithms/CryptoAlgorithmSHA384.h:
+        * crypto/algorithms/CryptoAlgorithmSHA512.cpp:
+        * crypto/algorithms/CryptoAlgorithmSHA512.h:
+        * crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp:
+        * crypto/gcrypt/CryptoAlgorithmAES_KWGCrypt.cpp:
+        (WebCore::CryptoAlgorithmAES_KW::platformEncrypt): Deleted.
+        (WebCore::CryptoAlgorithmAES_KW::platformDecrypt): Deleted.
+        * crypto/gcrypt/CryptoAlgorithmHMACGCrypt.cpp:
+        * crypto/gcrypt/CryptoAlgorithmRSAES_PKCS1_v1_5GCrypt.cpp:
+        * crypto/gcrypt/CryptoAlgorithmRSASSA_PKCS1_v1_5GCrypt.cpp:
+        * crypto/gcrypt/CryptoAlgorithmRSA_OAEPGCrypt.cpp:
+        * crypto/keys/CryptoKeySerializationRaw.cpp: Removed.
+        * crypto/keys/CryptoKeySerializationRaw.h: Removed.
+        * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
+        * crypto/mac/CryptoAlgorithmAES_KWMac.cpp:
+        (WebCore::CryptoAlgorithmAES_KW::platformEncrypt): Deleted.
+        (WebCore::CryptoAlgorithmAES_KW::platformDecrypt): Deleted.
+        * crypto/mac/CryptoAlgorithmHMACMac.cpp:
+        * crypto/mac/CryptoAlgorithmRSAES_PKCS1_v1_5Mac.cpp:
+        * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
+        * crypto/mac/CryptoAlgorithmRSA_OAEPMac.cpp:
+        * crypto/parameters/CryptoAlgorithmAesCbcParamsDeprecated.h: Removed.
+        * crypto/parameters/CryptoAlgorithmAesKeyGenParamsDeprecated.h: Removed.
+        * crypto/parameters/CryptoAlgorithmHmacKeyParamsDeprecated.h: Removed.
+        * crypto/parameters/CryptoAlgorithmHmacParamsDeprecated.h: Removed.
+        * crypto/parameters/CryptoAlgorithmRsaKeyGenParamsDeprecated.h: Removed.
+        * crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHashDeprecated.h: Removed.
+        * crypto/parameters/CryptoAlgorithmRsaOaepParamsDeprecated.h: Removed.
+        * crypto/parameters/CryptoAlgorithmRsaSsaParamsDeprecated.h: Removed.
+        * features.json:
+        * page/Crypto.cpp:
+        * page/Crypto.h:
+        * page/Crypto.idl:
+
+2017-08-18  Tim Horton  <timothy_horton@apple.com>
+
+        Remove classic mode screen scale clamping
+        https://bugs.webkit.org/show_bug.cgi?id=175739
+        <rdar://problem/33894531>
+
+        Reviewed by Andy Estes.
+
+        * platform/ios/PlatformScreenIOS.mm:
+        (WebCore::screenScaleFactor):
+        This code is no longer needed.
+
+2017-08-18  Daewoong Jang  <daewoong.jang@navercorp.com>
+
+        [Curl] Improve multi-threaded networking
+        https://bugs.webkit.org/show_bug.cgi?id=175713
+
+        Reviewed by Alex Christensen.
+
+        * platform/Curl.cmake:
+        * platform/network/ResourceHandleInternal.h:
+        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
+        (WebCore::ResourceHandleInternal::m_failureTimer): Deleted.
+        * platform/network/curl/CurlCacheManager.cpp:
+        (WebCore::CurlCacheManager::didReceiveResponse):
+        * platform/network/curl/CurlDownload.cpp:
+        (WebCore::CurlDownload::init):
+        (WebCore::CurlDownload::start):
+        (WebCore::CurlDownload::cancel):
+        (WebCore::CurlDownload::retain):
+        (WebCore::CurlDownload::release):
+        (WebCore::CurlDownload::setupRequest):
+        (WebCore::CurlDownload::notifyFinish):
+        (WebCore::CurlDownload::notifyFail):
+        * platform/network/curl/CurlDownload.h:
+        * platform/network/curl/CurlJobManager.cpp:
+        (WebCore::CurlJobList::isEmpty const):
+        (WebCore::CurlJobList::startJobs):
+        (WebCore::CurlJobList::finishJobs):
+        (WebCore::CurlJobList::notifyResult):
+        (WebCore::CurlJobManager::add):
+        (WebCore::CurlJobManager::cancel):
+        (WebCore::CurlJobManager::callOnJobThread):
+        (WebCore::CurlJobManager::startThreadIfNeeded):
+        (WebCore::CurlJobManager::updateJobList):
+        (WebCore::CurlJobManager::workerThread):
+        (WebCore::CurlJobList::append): Deleted.
+        (WebCore::CurlJobList::cancel): Deleted.
+        (WebCore::CurlJobList::complete): Deleted.
+        (WebCore::CurlJobList::withJob): Deleted.
+        (WebCore::CurlJobList::withCurlHandle): Deleted.
+        (WebCore::CurlJob::invoke): Deleted.
+        (WebCore::CurlJobManager::updateJobs): Deleted.
+        * platform/network/curl/CurlJobManager.h:
+        (WebCore::CurlJob::CurlJob): Deleted.
+        (WebCore::CurlJob::~CurlJob): Deleted.
+        (WebCore::CurlJob::operator=): Deleted.
+        (WebCore::CurlJob::curlHandle const): Deleted.
+        (WebCore::CurlJob::ticket const): Deleted.
+        (WebCore::CurlJob::finished): Deleted.
+        (WebCore::CurlJob::error): Deleted.
+        (WebCore::CurlJob::cancel): Deleted.
+        (WebCore::CurlJobManager::isActiveJob const): Deleted.
+        * platform/network/curl/MultipartHandle.cpp:
+        (WebCore::MultipartHandle::didReceiveData):
+        * platform/network/curl/ResourceHandleCurl.cpp:
+        (WebCore::ResourceHandleInternal::~ResourceHandleInternal):
+        (WebCore::ResourceHandle::start):
+        (WebCore::ResourceHandle::cancel):
+        (WebCore::ResourceHandle::platformSetDefersLoading):
+        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
+        (WebCore::ResourceHandle::receivedCredential):
+        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
+        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
+        (WebCore::ResourceHandleInternal::initialize): Deleted.
+        (WebCore::ResourceHandleInternal::applyAuthentication): Deleted.
+        (WebCore::getFormElementsCount): Deleted.
+        (WebCore::ResourceHandleInternal::setupPUT): Deleted.
+        (WebCore::ResourceHandleInternal::setupPOST): Deleted.
+        (WebCore::ResourceHandleInternal::setupFormData): Deleted.
+        (WebCore::ResourceHandleInternal::didFinish): Deleted.
+        (WebCore::ResourceHandleInternal::didFail): Deleted.
+        (WebCore::ResourceHandleInternal::calculateWebTimingInformations): Deleted.
+        (WebCore::ResourceHandleInternal::handleLocalReceiveResponse): Deleted.
+        (WebCore::isHttpInfo): Deleted.
+        (WebCore::isHttpRedirect): Deleted.
+        (WebCore::isHttpAuthentication): Deleted.
+        (WebCore::isHttpNotModified): Deleted.
+        (WebCore::isAppendableHeader): Deleted.
+        (WebCore::removeLeadingAndTrailingQuotes): Deleted.
+        (WebCore::getProtectionSpace): Deleted.
+        (WebCore::ResourceHandleInternal::willPrepareSendData): Deleted.
+        (WebCore::ResourceHandleInternal::didReceiveHeaderLine): Deleted.
+        (WebCore::ResourceHandleInternal::didReceiveAllHeaders): Deleted.
+        (WebCore::ResourceHandleInternal::didReceiveContentData): Deleted.
+        (WebCore::ResourceHandleInternal::readCallback): Deleted.
+        (WebCore::ResourceHandleInternal::headerCallback): Deleted.
+        (WebCore::ResourceHandleInternal::writeCallback): Deleted.
+        (WebCore::ResourceHandleInternal::dispatchSynchronousJob): Deleted.
+        (WebCore::ResourceHandleInternal::handleDataURL): Deleted.
+        * platform/network/curl/ResourceHandleCurlDelegate.cpp: Added.
+        (WebCore::ResourceHandleCurlDelegate::ResourceHandleCurlDelegate):
+        (WebCore::ResourceHandleCurlDelegate::~ResourceHandleCurlDelegate):
+        (WebCore::ResourceHandleCurlDelegate::hasHandle const):
+        (WebCore::ResourceHandleCurlDelegate::releaseHandle):
+        (WebCore::ResourceHandleCurlDelegate::start):
+        (WebCore::ResourceHandleCurlDelegate::cancel):
+        (WebCore::ResourceHandleCurlDelegate::setDefersLoading):
+        (WebCore::ResourceHandleCurlDelegate::setAuthentication):
+        (WebCore::ResourceHandleCurlDelegate::dispatchSynchronousJob):
+        (WebCore::ResourceHandleCurlDelegate::retain):
+        (WebCore::ResourceHandleCurlDelegate::release):
+        (WebCore::ResourceHandleCurlDelegate::setupRequest):
+        (WebCore::ResourceHandleCurlDelegate::notifyFinish):
+        (WebCore::ResourceHandleCurlDelegate::notifyFail):
+        (WebCore::ResourceHandleCurlDelegate::response):
+        (WebCore::ResourceHandleCurlDelegate::setupAuthentication):
+        (WebCore::removeLeadingAndTrailingQuotes):
+        (WebCore::ResourceHandleCurlDelegate::getProtectionSpace):
+        (WebCore::isHttpInfo):
+        (WebCore::isHttpRedirect):
+        (WebCore::isHttpAuthentication):
+        (WebCore::isHttpNotModified):
+        (WebCore::isAppendableHeader):
+        (WebCore::ResourceHandleCurlDelegate::didReceiveHeaderLine):
+        (WebCore::ResourceHandleCurlDelegate::didReceiveAllHeaders):
+        (WebCore::ResourceHandleCurlDelegate::didReceiveContentData):
+        (WebCore::ResourceHandleCurlDelegate::handleLocalReceiveResponse):
+        (WebCore::ResourceHandleCurlDelegate::prepareSendData):
+        (WebCore::ResourceHandleCurlDelegate::didFinish):
+        (WebCore::ResourceHandleCurlDelegate::didFail):
+        (WebCore::ResourceHandleCurlDelegate::handleDataURL):
+        (WebCore::ResourceHandleCurlDelegate::setupPOST):
+        (WebCore::ResourceHandleCurlDelegate::setupPUT):
+        (WebCore::ResourceHandleCurlDelegate::getFormElementsCount):
+        (WebCore::ResourceHandleCurlDelegate::setupFormData):
+        (WebCore::ResourceHandleCurlDelegate::applyAuthentication):
+        (WebCore::ResourceHandleCurlDelegate::setWebTimings):
+        (WebCore::ResourceHandleCurlDelegate::didReceiveHeader):
+        (WebCore::ResourceHandleCurlDelegate::didReceiveData):
+        (WebCore::ResourceHandleCurlDelegate::willSendData):
+        (WebCore::ResourceHandleCurlDelegate::didReceiveHeaderCallback):
+        (WebCore::ResourceHandleCurlDelegate::didReceiveDataCallback):
+        (WebCore::ResourceHandleCurlDelegate::willSendDataCallback):
+        * platform/network/curl/ResourceHandleCurlDelegate.h: Added.
+
+2017-08-18  Ryosuke Niwa  <rniwa@webkit.org>
+
+        iOS 10 debug build fix.
+
+        * dom/DataTransfer.cpp:
+        (WebCore::DataTransfer::DataTransfer):
+
+2017-08-18  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Rename DataTransferAccessPolicy to match spec and refactor related node
+        https://bugs.webkit.org/show_bug.cgi?id=175704
+
+        Reviewed by Wenson Hsieh.
+
+        Renamed DataTransferAccessPolicy to DataTransfer::StoreMode to match the drag data store mode concept
+        in the HTML5 specification:
+        https://html.spec.whatwg.org/multipage/dnd.html#drag-data-store-mode
+
+        DataTransfer in addition to those states can be disassociated from the drag data store when it becomes
+        no longer valid. We also support a special mode which allows only updating the drag image.
+        These two states, Invalid and DragImageWritable, are added in addition to the three states in the spec.
+
+        Also split DragAndDrop type of DataTransfer into DragAndDropData and DragAndDropFiles, and refactored
+        the related code.
+
+        No new tests since there should be no behavioral change.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/DataTransfer.cpp:
+        (WebCore::DataTransfer::DataTransfer): No longer takes forFileDrag boolean since it's folded into type.
+        (WebCore::DataTransfer::createForCopyAndPaste):
+        (WebCore::DataTransfer::~DataTransfer):
+        (WebCore::DataTransfer::setAccessPolicy): Deleted.
+        (WebCore::DataTransfer::canReadTypes const):
+        (WebCore::DataTransfer::canReadData const):
+        (WebCore::DataTransfer::canWriteData const):
+        (WebCore::DataTransfer::createForInputEvent):
+        (WebCore::DataTransfer::createForDrag):
+        (WebCore::DataTransfer::createForDrop):
+        (WebCore::DataTransfer::canSetDragImage const):
+        * dom/DataTransfer.h:
+        (WebCore::DataTransfer::makeInvalidForSecurity): Added.
+        (WebCore::DataTransfer::makeDragImageWritable): Added.
+        * dom/DataTransferAccessPolicy.h: Removed.
+        * editing/Editor.cpp:
+        (WebCore::dispatchClipboardEvent): Moved and renamed from dispatchCPPEvent. Now computes the store mode
+        inside the function to match the spec: https://w3c.github.io/clipboard-apis/#fire-a-clipboard-event
+        (WebCore::Editor::canDHTMLCut):
+        (WebCore::Editor::canDHTMLCopy):
+        (WebCore::Editor::canDHTMLPaste):
+        (WebCore::Editor::tryDHTMLCopy):
+        (WebCore::Editor::tryDHTMLCut):
+        (WebCore::Editor::tryDHTMLPaste):
+        (WebCore::Editor::dispatchCPPEvent): Deleted.
+        * editing/Editor.h:
+        * page/DragController.cpp:
+        (WebCore::createDataTransferToUpdateDrag): Extracted to share code.
+        (WebCore::DragController::dragExited):
+        (WebCore::DragController::performDragOperation):
+        (WebCore::DragController::tryDHTMLDrag):
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::invalidateDataTransfer):
+        (WebCore::EventHandler::handleDrag):
+
+2017-08-18  Said Abou-Hallawa  <sabouhallawa@apple.com>
+
+        Followup (r220289): RenderImageResourceStyleImage code clean up
+        https://bugs.webkit.org/show_bug.cgi?id=175444
+
+        Reviewed by Darin Adler.
+
+        RenderImageResourceStyleImage may be created with a StyleImage of type
+        StyleGeneratedImage. It may also be associated with a CachedImage which 
+        is loaded through a source URL. In this case, adding and removing m_renderer
+        as a client of the CachedImage will be done through 
+        RenderImageResource::setCachedImage().
+
+        RenderImageResource::setCachedImage() is already called from 
+        ImageLoader::updateRenderer() when the CachedImage finishes loading. This
+        call adds m_renderer to the clients of the CachedImage. 
+        RenderImageResource::setCachedImage() will also be called from 
+        RenderImageResourceStyleImage::shutdown() via RenderImageResource::shutdown()
+        to remove m_renderer from the clients of CachedImage by passing a null pointer.
+
+        * rendering/RenderImage.cpp:
+        (WebCore::RenderImage::styleWillChange):
+        * rendering/RenderImageResource.cpp:
+        (WebCore::RenderImageResource::initialize):
+        (WebCore::RenderImageResource::shutdown):
+        (WebCore::RenderImageResource::setCachedImage):
+        (WebCore::RenderImageResource::resetAnimation):
+        (WebCore::RenderImageResource::image const):
+        (WebCore::RenderImageResource::setContainerSizeForRenderer):
+        (WebCore::RenderImageResource::imageSize const):
+        (WebCore::RenderImageResource::~RenderImageResource): Deleted.
+        (WebCore::RenderImageResource::errorOccurred const): Deleted.
+        (WebCore::RenderImageResource::imageHasRelativeWidth const): Deleted.
+        (WebCore::RenderImageResource::imageHasRelativeHeight const): Deleted.
+        (WebCore::RenderImageResource::intrinsicSize const): Deleted.
+        (WebCore::RenderImageResource::getImageSize const): Deleted.
+        * rendering/RenderImageResource.h:
+        (WebCore::RenderImageResource::initialize):
+        (WebCore::RenderImageResource::renderer const):
+        (WebCore::RenderImageResource::errorOccurred const):
+        (WebCore::RenderImageResource::imageHasRelativeWidth const):
+        (WebCore::RenderImageResource::imageHasRelativeHeight const):
+        (WebCore::RenderImageResource::imageSize const):
+        (WebCore::RenderImageResource::intrinsicSize const):
+        (WebCore::RenderImageResource::imagePtr const):
+        * rendering/RenderImageResourceStyleImage.cpp:
+        (WebCore::RenderImageResourceStyleImage::initialize):
+        (WebCore::RenderImageResourceStyleImage::shutdown):
+        (WebCore::RenderImageResourceStyleImage::image const):
+        (WebCore::RenderImageResourceStyleImage::setContainerSizeForRenderer):
+        (WebCore::RenderImageResourceStyleImage::~RenderImageResourceStyleImage): Deleted.
+        * rendering/RenderImageResourceStyleImage.h:
+        * rendering/RenderSnapshottedPlugIn.cpp:
+        (WebCore::RenderSnapshottedPlugIn::RenderSnapshottedPlugIn):
+        * rendering/svg/RenderSVGImage.cpp:
+        (WebCore::RenderSVGImage::RenderSVGImage):
+
+2017-08-18  Jiewen Tan  <jiewen_tan@apple.com>
+
+        [WebCrypto][Mac] Replace CCECCryptorGetKeyComponents with CCECCryptorExportKey for exporting ECC JWKs
+        https://bugs.webkit.org/show_bug.cgi?id=175657
+        <rdar://problem/33797150>
+
+        Reviewed by Brent Fulgham.
+
+        CCECCryptorGetKeyComponents returns components in unpadded formats. In some minor cases, the ECC components
+        do need padding. Therefore, we occasionally see some corrupted outputs in JWKs. To overcome that, this patch
+        replaces CCECCryptorGetKeyComponents with CCECCryptorExportKey which does padding all the time.
+
+        In the meantime, this patch also makes export* methods return OperationError if any error occur in the
+        underlying operations though very unlikely.
+
+        Test: crypto/subtle/ecdsa-generate-export-import-jwk-sign-verify.html
+
+        * crypto/algorithms/CryptoAlgorithmECDH.cpp:
+        (WebCore::CryptoAlgorithmECDH::exportKey):
+        * crypto/algorithms/CryptoAlgorithmECDSA.cpp:
+        (WebCore::CryptoAlgorithmECDSA::exportKey):
+        * crypto/gcrypt/CryptoKeyECGCrypt.cpp:
+        (WebCore::CryptoKeyEC::platformAddFieldElements const):
+        * crypto/keys/CryptoKeyEC.cpp:
+        (WebCore::CryptoKeyEC::exportRaw const):
+        (WebCore::CryptoKeyEC::exportJwk const):
+        (WebCore::CryptoKeyEC::exportSpki const):
+        (WebCore::CryptoKeyEC::exportPkcs8 const):
+        * crypto/keys/CryptoKeyEC.h:
+        * crypto/mac/CryptoKeyECMac.cpp:
+        (WebCore::CryptoKeyEC::platformExportRaw const):
+        (WebCore::CryptoKeyEC::platformAddFieldElements const):
+        (WebCore::CryptoKeyEC::platformExportSpki const):
+        (WebCore::CryptoKeyEC::platformExportPkcs8 const):
+
+2017-08-18  Per Arne Vollan  <pvollan@apple.com>
+
+        [Win] accessibility/heading-crash-after-hidden.html is a flaky crash.
+        https://bugs.webkit.org/show_bug.cgi?id=173536
+
+        Reviewed by Brent Fulgham.
+
+        If the tree state is dirty, accessible objects are deleted while iterating over children
+        under AccessibilityNodeObject::textUnderElement when the style is updated. Make sure the
+        style is updated before this method is called.
+
+        No new tests, covered by existing tests.
+
+        * accessibility/win/AccessibilityObjectWrapperWin.cpp:
+        (WebCore::AccessibilityObjectWrapper::accessibilityAttributeValue):
+
+2017-08-18  Youenn Fablet  <youenn@apple.com>
+
+        [Cache API] Add response body storage
+        https://bugs.webkit.org/show_bug.cgi?id=175658
+
+        Reviewed by Alex Christensen.
+
+        Covered by rebased tests.
+        Tests are still flaky until waiting for end of fetch load is implemented.
+
+        Adding a response body within CacheStorageConnection::Record.
+        Adding ability to pass this body from/to the main thread.
+
+        Adding response body consumption into a CacheStorageConnection::Record.
+        Adding response body setting from a CacheStorageConnection::Record.
+
+        * Modules/beacon/NavigatorBeacon.cpp:
+        (WebCore::NavigatorBeacon::sendBeacon):
+        * Modules/cache/Cache.cpp:
+        (WebCore::Cache::put):
+        (WebCore::toConnectionRecord):
+        (WebCore::Cache::updateRecords):
+        * Modules/cache/CacheStorageConnection.cpp:
+        (WebCore::CacheStorageConnection::copyResponseBody):
+        (WebCore::CacheStorageConnection::isolatedResponseBody):
+        (WebCore::CacheStorageConnection::Record::copy const):
+        * Modules/cache/CacheStorageConnection.h:
+        * Modules/cache/WorkerCacheStorageConnection.cpp:
+        (WebCore::toCrossThreadRecordData):
+        (WebCore::fromCrossThreadRecordData):
+        * Modules/fetch/FetchBody.cpp:
+        (WebCore::FetchBody::bodyAsFormData const):
+        (WebCore::FetchBody::take):
+        (WebCore::FetchBody::bodyForInternalRequest const): Deleted.
+        * Modules/fetch/FetchBody.h:
+        (WebCore::FetchBody::setAsFormData):
+        * Modules/fetch/FetchBodyConsumer.h:
+        (WebCore::FetchBodyConsumer::setData):
+        * Modules/fetch/FetchRequest.cpp:
+        (WebCore::FetchRequest::resourceRequest const):
+        * Modules/fetch/FetchResponse.cpp:
+        (WebCore::FetchResponse::consumeBody):
+        (WebCore::FetchResponse::setBodyData):
+        * Modules/fetch/FetchResponse.h:
+
+2017-08-18  Youenn Fablet  <youenn@apple.com>
+
+        [Fetch API] Add support for a callback-based fetch
+        https://bugs.webkit.org/show_bug.cgi?id=175710
+
+        Reviewed by Alex Christensen.
+
+        No change of behavior.
+
+        Moving from a DOMPromise to a Callback taking an ExceptionOr<FetchResponse&>.
+        Updating window and worker call sites.
+
+        * Modules/fetch/DOMWindowFetch.cpp:
+        (WebCore::DOMWindowFetch::fetch):
+        * Modules/fetch/FetchResponse.cpp:
+        (WebCore::FetchResponse::fetch):
+        (WebCore::FetchResponse::BodyLoader::didFail):
+        (WebCore::FetchResponse::BodyLoader::BodyLoader):
+        (WebCore::FetchResponse::BodyLoader::didReceiveResponse):
+        (WebCore::FetchResponse::BodyLoader::stop):
+        * Modules/fetch/FetchResponse.h:
+        * Modules/fetch/WorkerGlobalScopeFetch.cpp:
+        (WebCore::WorkerGlobalScopeFetch::fetch):
+
+2017-08-18  Brady Eidson  <beidson@apple.com>
+
+        Bounce ServiceWorker jobs to the Storage Process.
+        https://bugs.webkit.org/show_bug.cgi?id=175650
+
+        Reviewed by Andy Estes.
+
+        No new tests (Covered by both changes and consistencies in existing tests)
+
+        This lays the groundwork for the SW job queue being in the StorageProcess by actually
+        setting up some objects for IPC communication and actually sending things over the wire.
+
+        The main point of IPC is the WebCore abstract base class "SWServer::Connection"
+
+        A collection of them will soon be managed by the SWServer itself in the StorageProcess.
+
+        That object will be the stand-in for IPC on both the WebProcess and StorageProcess side.
+
+        Currently, any job that we try to schedule still immediately rejects (though now it does
+        so asynchronously instead of synchronously).
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+
+        * dom/ExceptionData.h: Copied from Source/WebCore/workers/service/ServiceWorkerProvider.h.
+        (WebCore::ExceptionData::toException const):
+        (WebCore::ExceptionData::encode const):
+        (WebCore::ExceptionData::decode):
+
+        * workers/service/ServiceWorkerContainer.cpp:
+        (WebCore::ServiceWorkerContainer::addRegistration):
+        (WebCore::ServiceWorkerContainer::scheduleJob):
+        * workers/service/ServiceWorkerContainer.h:
+
+        * workers/service/ServiceWorkerJob.cpp:
+        (WebCore::ServiceWorkerJob::failedWithException):
+        (WebCore::ServiceWorkerJob::data const):
+        * workers/service/ServiceWorkerJob.h:
+
+        * workers/service/ServiceWorkerJobData.h: Copied from Source/WebCore/workers/service/ServiceWorkerProvider.h.
+        (WebCore::ServiceWorkerJobData::encode const):
+        (WebCore::ServiceWorkerJobData::decode):
+
+        * workers/service/ServiceWorkerJobType.h: Copied from Source/WebCore/workers/service/ServiceWorkerProvider.h.
+
+        * workers/service/ServiceWorkerProvider.h:
+
+        * workers/service/ServiceWorkerRegistrationParameters.h:
+
+        * workers/service/server/SWServer.cpp: Copied from Source/WebKit/WebProcess/Storage/WebServiceWorkerProvider.cpp.
+        (WebCore::SWServer::Connection::scheduleJob):
+        (WebCore::SWServer::Connection::jobRejected):
+        * workers/service/server/SWServer.h: Copied from Source/WebCore/workers/service/ServiceWorkerProvider.h.
+        (WebCore::SWServer::Connection::~Connection):
+
+2017-08-18  Chris Dumez  <cdumez@apple.com>
+
+        [Beacon] Add support for quota limitation
+        https://bugs.webkit.org/show_bug.cgi?id=175443
+        <rdar://problem/33729002>
+
+        Reviewed by Youenn Fablet.
+
+        LoaderStrategy::startPingLoad() now takes a completion handler parameter, allowing CachedResource::load()
+        to know when a Beacon load is complete. This was needed in order for the fetch in-flight keepalive request
+        quota limit to work properly for beacon loads as well. We need to know when the beacon load completes in
+        order to know if the beacon is in-flight or not and only free up its allocated quota once it is no longer
+        in-flight.
+
+        No new tests, updated existing test.
+
+        * loader/LoaderStrategy.h:
+        * loader/PingLoader.cpp:
+        (WebCore::PingLoader::startPingLoad):
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::load):
+        * platform/network/PingHandle.h:
+
+2017-08-18  Youenn Fablet  <youenn@apple.com>
+
+        [Cache API] Add a WK2 implementation of CacheStorageConnection
+        https://bugs.webkit.org/show_bug.cgi?id=175640
+
+        Reviewed by Alex Christensen & Chris Dumez.
+
+        * Modules/cache/CacheStorageConnection.cpp: Adding Internal error.
+        * Modules/cache/CacheStorageConnection.h: Ditto.
+        * WebCore.xcodeproj/project.pbxproj: Exporting CacheQueryOptions.h header.
+
+2017-08-18  Antti Koivisto  <antti@apple.com>
+
+        Factor render tree mutation code from RenderListItem to RenderTreeUpdater
+        https://bugs.webkit.org/show_bug.cgi?id=175718
+
+        Reviewed by Andreas Kling.
+
+        We already stopped doing layout time mutations. We can now move the code out too.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * rendering/RenderListItem.cpp:
+        (WebCore::isHTMLListElement):
+        (WebCore::getParentOfFirstLineBox): Deleted.
+        (WebCore::firstNonMarkerChild): Deleted.
+        (WebCore::RenderListItem::updateMarkerRenderer): Deleted.
+
+            Moved to RenderTreeUpdater::ListItem.
+
+        * rendering/RenderListItem.h:
+        * rendering/RenderListMarker.cpp:
+        (WebCore::RenderListMarker::willBeDestroyed):
+        * rendering/TextAutoSizing.cpp:
+        (WebCore::TextAutoSizingValue::adjustTextNodeSizes):
+        * style/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::pushParent):
+        (WebCore::RenderTreeUpdater::popParent):
+        (WebCore::RenderTreeUpdater::updateBeforeDescendants):
+        (WebCore::RenderTreeUpdater::updateAfterDescendants):
+
+            Factor pre/post update into functions.
+
+        (WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement):
+        * style/RenderTreeUpdater.h:
+        * style/RenderTreeUpdaterListItem.cpp: Added.
+
+            Mutation functions move here.
+
+        (WebCore::getParentOfFirstLineBox):
+        (WebCore::firstNonMarkerChild):
+        (WebCore::RenderTreeUpdater::ListItem::updateMarker):
+        * style/RenderTreeUpdaterListItem.h: Added.
+
+2017-08-18  Ms2ger  <Ms2ger@gmail.com>
+
+        [GTK] Show controls if a video element isn't allowed to play inline.
+        https://bugs.webkit.org/show_bug.cgi?id=141705
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        Test: covered by media/video-fullscreeen-only-controls.html [sic].
+
+        * Modules/mediacontrols/mediaControlsGtk.js:
+        (ControllerGtk.prototype.shouldHaveControls):
+
+2017-08-18  Zan Dobersek  <zdobersek@igalia.com>
+
+        [EME] MediaKeySession has to initiate playback resume on HTMLMediaElement
+        https://bugs.webkit.org/show_bug.cgi?id=175671
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        In MediaKeySession::updateKeyStatuses(), HTMLMediaElement objects that are
+        associated with the MediaKeys instance that created this session have to
+        be notified in order to run the 'Attempt to Resume Playback If Necessary'
+        algorithm.
+
+        MediaKeys object now tracks the sessions that were created through it.
+        MediaKeySession object is passed a MediaKeys reference, and has that
+        reference invalidated if/when the MediaKeys object is destroyed.
+
+        In MediaKeySession::updateKeyStatuses(), a task is now queued, notifying
+        the MediaKeys object, if any, that the associated HTMLMediaElement
+        instances have to run the mentioned algorithm. The associated media
+        elements are stored through CDMClient pointers, with HTMLMediaElement
+        class inheriting from the newly-introduced CDMClient interface.
+
+        HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary() is left
+        unimplemented for now. The object will attach itself to and detach from
+        the associated MediaKeys object in setMediaKeys() and the destructor,
+        enabling the MediaKeys object to properly dispatch the playback resume
+        requests for the attached clients.
+
+        * Modules/encryptedmedia/CDMClient.h: Copied from Source/WebCore/Modules/encryptedmedia/MediaKeys.h.
+        (WebCore::CDMClient::~CDMClient):
+        * Modules/encryptedmedia/MediaKeySession.cpp:
+        (WebCore::MediaKeySession::create):
+        (WebCore::MediaKeySession::MediaKeySession):
+        (WebCore::MediaKeySession::detachKeys):
+        (WebCore::MediaKeySession::updateKeyStatuses):
+        * Modules/encryptedmedia/MediaKeySession.h:
+        * Modules/encryptedmedia/MediaKeys.cpp:
+        (WebCore::MediaKeys::~MediaKeys):
+        (WebCore::MediaKeys::createSession):
+        (WebCore::MediaKeys::attachCDMClient):
+        (WebCore::MediaKeys::detachCDMClient):
+        (WebCore::MediaKeys::attemptToResumePlaybackOnClients):
+        * Modules/encryptedmedia/MediaKeys.h:
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::cdmClientAttemptToResumePlaybackIfNecessary):
+        * html/HTMLMediaElement.h:
+
+2017-08-18  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r220854.
+        https://bugs.webkit.org/show_bug.cgi?id=175716
+
+        I'm not sure we really need this (Requested by KaL on
+        #webkit).
+
+        Reverted changeset:
+
+        "[GTK][WPE] Add NTLM authentication enabled API"
+        https://bugs.webkit.org/show_bug.cgi?id=122952
+        http://trac.webkit.org/changeset/220854
+
+2017-08-17  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [Input Events] Rename inputType "formatForeColor" to "formatFontColor"
+        https://bugs.webkit.org/show_bug.cgi?id=175703
+
+        Reviewed by Ryosuke Niwa.
+
+        Renames an inputType value to match the spec. There is no other change in behavior.
+        Rebaselines fast/events/input-events-selection-forecolor-data.html and fast/events/input-events-forecolor-data.html.
+
+        * editing/EditCommand.cpp:
+        (WebCore::inputTypeNameForEditingAction):
+
+2017-08-17  Daewoong Jang  <daewoong.jang@navercorp.com>
+
+        [Curl] Improve multi-threaded networking
+        https://bugs.webkit.org/show_bug.cgi?id=175253
+
+        Reviewed by Alex Christensen.
+
+        * platform/network/curl/CurlContext.cpp:
+        (WebCore::CurlMultiHandle::CurlMultiHandle):
+        (WebCore::CurlHandle::CurlHandle):
+        (WebCore::CurlHandle::initialize):
+        (WebCore::CurlHandle::setSslKeyPassword):
+        (WebCore::CurlHandle::setSslErrors):
+        (WebCore::CurlHandle::getSslErrors):
+        * platform/network/curl/CurlContext.h:
+        * platform/network/curl/CurlDownload.cpp:
+        (WebCore::CurlDownload::init):
+        (WebCore::CurlDownload::getResponse const):
+        (WebCore::CurlDownload::setupRequest):
+        (WebCore::CurlDownload::didReceiveHeader):
+        (WebCore::CurlDownload::didReceiveData):
+        (WebCore::CurlDownload::headerCallback):
+        (WebCore::CurlDownload::getTempPath const): Deleted.
+        (WebCore::CurlDownload::getUrl const): Deleted.
+        (WebCore::CurlDownload::downloadFinishedCallback): Deleted.
+        (WebCore::CurlDownload::downloadFailedCallback): Deleted.
+        (WebCore::CurlDownload::receivedDataCallback): Deleted.
+        (WebCore::CurlDownload::receivedResponseCallback): Deleted.
+        * platform/network/curl/CurlDownload.h:
+        * platform/network/curl/ResourceError.h:
+        (WebCore::ResourceError::ResourceError):
+        (WebCore::ResourceError::sslErrors const):
+        (WebCore::ResourceError::setSSLErrors): Deleted.
+        * platform/network/curl/ResourceHandleCurl.cpp:
+        (WebCore::ResourceHandleInternal::initialize):
+        (WebCore::ResourceHandleInternal::didFail):
+        (WebCore::ResourceHandleInternal::dispatchSynchronousJob):
+        * platform/network/curl/SSLHandle.cpp:
+        (WebCore::allowedClientHosts):
+        (WebCore::addAllowedClientCertificate):
+        (WebCore::getSSLClientCertificate):
+        (WebCore::certVerifyCallback):
+        (WebCore::setSSLVerifyOptions):
+        (WebCore::setSSLClientCertificate): Deleted.
+        * platform/network/curl/SSLHandle.h:
+
+2017-08-17  Chris Dumez  <cdumez@apple.com>
+
+        Regression(r220817): We should only copy the original request headers for Ping loads
+        https://bugs.webkit.org/show_bug.cgi?id=175679
+
+        Reviewed by Youenn Fablet.
+
+        For performance reason, we should only copy the original request headers for Ping loads
+        (Beacon at the moment), not for all CachedResourceRequests.
+
+        * loader/LoaderStrategy.h:
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::CachedResource):
+        (WebCore::CachedResource::load):
+        * loader/cache/CachedResource.h:
+        (WebCore::CachedResource::shouldUsePingLoad):
+        (WebCore::CachedResource::setOriginalRequestHeaders):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::requestResource):
+        * loader/cache/CachedResourceRequest.cpp:
+        (WebCore::CachedResourceRequest::CachedResourceRequest):
+        * loader/cache/CachedResourceRequest.h:
+        (WebCore::CachedResourceRequest::releaseResourceRequest):
+        (WebCore::CachedResourceRequest::releaseOriginalRequestHeaders): Deleted.
+
+2017-08-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [PAL] Relocate SessionID to root
+        https://bugs.webkit.org/show_bug.cgi?id=175684
+
+        Reviewed by Alex Christensen.
+
+        No new tests. No change in functionality.
+
+        * dom/Document.h:
+        * html/HTMLMediaElement.cpp:
+        * loader/cache/CachedResource.h:
+        * loader/cache/CachedResourceLoader.cpp:
+        * loader/cache/MemoryCache.h:
+        * loader/cocoa/DiskCacheMonitorCocoa.h:
+        * page/CacheStorageProvider.h:
+        * page/Page.h:
+        * page/PlugInClient.h:
+        * page/SocketProvider.h:
+        * platform/CookiesStrategy.h:
+        * platform/WebCoreCrossThreadCopier.cpp:
+        * platform/network/CacheValidation.h:
+        * platform/network/NetworkStorageSession.cpp:
+        * platform/network/NetworkStorageSession.h:
+        * platform/network/cf/SocketStreamHandleImpl.h:
+        * platform/network/curl/SocketStreamHandleImpl.h:
+        * platform/network/soup/SocketStreamHandleImpl.h:
+        * workers/WorkerGlobalScope.h:
+        * workers/service/ServiceWorkerContainer.h:
+        * workers/service/ServiceWorkerRegistrationParameters.h:
+
+2017-08-17  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Fix the build on other platforms after r220865
+        https://bugs.webkit.org/show_bug.cgi?id=175683
+
+        Reviewed by Tim Horton.
+
+        Instead of special casing iOS 10 behavior with __IPHONE_OS_VERSION_MAX_ALLOWED < 110000, revert to special
+        casing iOS 11 behavior with __IPHONE_OS_VERSION_MAX_ALLOWED >= 110000. This is because other targets that are
+        neither iOS 10 nor 11 will fail the "before iOS 11" compile-time check, and subsequently assume that item
+        providers exist. To fix this, flip the compiler-time checks and the order of codeblocks in the
+        PlatformPasteboard::write methods.
+
+        There is no change in behavior.
+
+        * platform/ios/PlatformPasteboardIOS.mm:
+        (WebCore::registerItemToPasteboard):
+        (WebCore::PlatformPasteboard::write):
+
+2017-08-17  Michael Catanzaro  <mcatanzaro@igalia.com>
+
+        -Wreturn-type warnings in CryptoKey.cpp and SubtleCrypto.cpp
+        https://bugs.webkit.org/show_bug.cgi?id=175675
+
+        Reviewed by Jiewen Tan.
+
+        * crypto/CryptoKey.cpp:
+        (WebCore::CryptoKey::algorithm const):
+        * crypto/SubtleCrypto.cpp:
+        (WebCore::toCryptoKeyUsageBitmap):
+        (WebCore::toKeyData):
+
+2017-08-17  Andreas Kling  <akling@apple.com>
+
+        Disable CSS regions at compile time
+        https://bugs.webkit.org/show_bug.cgi?id=175630
+
+        Reviewed by Antti Koivisto.
+
+        * Configurations/FeatureDefines.xcconfig:
+
+2017-08-17  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        [iOS] Respect type fidelities when copying image elements to the pasteboard
+        https://bugs.webkit.org/show_bug.cgi?id=175638
+        <rdar://problem/26556043>
+
+        Reviewed by Ryosuke Niwa.
+
+        Ensures that we respect type fidelities when copying on iOS, by unifying pasteboard writing codepaths across
+        dragging and copying. When dragging and copying, we now generate and set UIItemProviders on the UIPasteboard.
+
+        Tests: ActionSheetTests.CopyImageElementWithHREF
+               ActionSheetTests.CopyImageElementWithoutHREF
+
+        * platform/PlatformPasteboard.h:
+
+        Remove all variants of the writeObjectRepresentations helper method. Now that both paths for writing to the
+        pasteboard are unified, it's no longer useful to separate out item-provider-based pasteboard logic.
+
+        * platform/ios/AbstractPasteboard.h:
+        * platform/ios/PlatformPasteboardIOS.mm:
+
+        Replaces -setItemsUsingRegistrationInfoLists: with -setRegistrationInfoLists:. Rather than have a helper that
+        both sets up item providers and item registration lists, split this functionality out into two setters. This is
+        because UIPasteboard does not need to know about the registration info lists used to set up the item providers
+        in the first place, but internal drag-and-drop clients require this information immediately when starting a drag
+        in order to construct custom drag previews.
+
+        (WebCore::richTextRepresentationsForPasteboardWebContent):
+        (WebCore::registerItemToPasteboard):
+
+        Add a new helper to register item providers to the pasteboard, given an WebItemProviderRegistrationInfoList.
+
+        (WebCore::PlatformPasteboard::write):
+        (WebCore::PlatformPasteboard::writeObjectRepresentations): Deleted.
+
+        Refactors PlatformPasteboard::write to always generate and set item providers, unless we're building for an SDK
+        prior to iOS 11. For images, strings and URLs, we can simply transition to using the new item-provider-based
+        codepaths used for drag and drop. For web content, we add two additional UTIs that were present when copying,
+        but not when dragging: flat RTFD and a string constant used to indicate to UIKit that the pasteboard contains
+        rich text.
+
+        * platform/ios/WebItemProviderPasteboard.h:
+        * platform/ios/WebItemProviderPasteboard.mm:
+        (-[WebItemProviderRegistrationInfoList init]):
+        (-[WebItemProviderRegistrationInfoList addData:forType:]):
+        (-[WebItemProviderRegistrationInfoList addRepresentingObject:]):
+        (-[WebItemProviderRegistrationInfoList numberOfItems]):
+        (-[WebItemProviderRegistrationInfoList itemAtIndex:]):
+        (-[WebItemProviderRegistrationInfoList itemProvider]):
+        (-[WebItemProviderRegistrationInfoList description]):
+
+        Make some small tweaks in WebItemProviderPasteboard (and related classes):
+        1. Transition to preferredPresentationSize from estimatedDisplayedSize, which is now deprecated.
+        2. Remove calls to -initWithItemProviderData:typeIdentifier:error:, which is deprecated.
+        3. Rename _items to _representations to better reflect the role of WebItemProviderRegistrationInfo.
+        4. Implement -description for WebItemProviderRegistrationInfoList for debugging purposes.
+
+        (-[WebItemProviderPasteboard valuesForPasteboardType:inItemSet:]):
+        (-[WebItemProviderPasteboard setRegistrationInfoLists:]):
+        (-[WebItemProviderPasteboard setItemsUsingRegistrationInfoLists:]): Deleted.
+
+2017-08-17  Youenn Fablet  <youenn@apple.com>
+
+        Add a DOMPromiseDeferred method to handle ExceptionOr<> results
+        https://bugs.webkit.org/show_bug.cgi?id=175603
+
+        Reviewed by Darin Adler.
+
+        No change of behavior.
+
+        Introduce DOMPromiseDeferred::settle to reject/resolve a promise with an ExceptionOr<>.
+        Making batchPutOperation/batchDeleteOperation take a Function with an ExceptionOr<>.
+        Using DOMPromiseDeferred::settle in Cache put/remove.
+        Updated CacheStorageConnection to create ExceptionOr<> from CacheStorageConnection::Error.
+
+        * Modules/cache/Cache.cpp:
+        (WebCore::Cache::put):
+        (WebCore::Cache::remove):
+        (WebCore::Cache::batchDeleteOperation):
+        (WebCore::Cache::batchPutOperation):
+        * Modules/cache/Cache.h:
+        * Modules/cache/CacheStorage.cpp:
+        (WebCore::CacheStorage::open):
+        (WebCore::CacheStorage::remove):
+        * Modules/cache/CacheStorageConnection.cpp:
+        (WebCore::CacheStorageConnection::errorToException):
+        * Modules/cache/CacheStorageConnection.h:
+        (WebCore::CacheStorageConnection::errorToException):
+        (WebCore::CacheStorageConnection::exceptionOrResult):
+        * bindings/js/JSDOMPromiseDeferred.h:
+        (WebCore::DOMPromiseDeferred::settle):
+        (WebCore::DOMPromiseDeferred<void>::settle):
+
+2017-08-17  Zan Dobersek  <zdobersek@igalia.com>
+
+        [GStreamer] AppendPipeline: support dispatch of decryption-specific GstStructure into the pipeline
+        https://bugs.webkit.org/show_bug.cgi?id=175668
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        Add the AppendPipeline::dispatchDecryptionStructure() method. Callers can
+        pass in a GstStructure object that contains all the information the
+        decryption elements in the pipeline will require to properly decrypt the
+        content. In case the decryptor element isn't available yet, the
+        GstStructure is stored and dispatched when that element becomes available.
+
+        The dispatch itself simply creates a new custom GstEvent that adopts the
+        given GstStructure object, sends that into the pipeline element, and
+        shifts the state to 'ongoing'.
+
+        * platform/graphics/gstreamer/mse/AppendPipeline.cpp:
+        (WebCore::AppendPipeline::connectDemuxerSrcPadToAppsinkFromAnyThread):
+        (WebCore::AppendPipeline::dispatchPendingDecryptionStructure):
+        (WebCore::AppendPipeline::dispatchDecryptionStructure):
+        * platform/graphics/gstreamer/mse/AppendPipeline.h: Remove a redundant private: label.
+
+2017-08-17  Zan Dobersek  <zdobersek@igalia.com>
+
+        [GStreamer] GstStructure shouldn't be handled through GRefPtr
+        https://bugs.webkit.org/show_bug.cgi?id=175673
+
+        Reviewed by Xabier Rodriguez-Calvar.
+
+        * platform/graphics/gstreamer/eme/WebKitCommonEncryptionDecryptorGStreamer.cpp:
+        (webkitMediaCommonEncryptionDecryptTransformCaps): GstStructure isn't
+        ref-counted, so it should be handled through the GUniquePtr<GstStructure>
+        smart pointer.
+
+2017-08-17  Youenn Fablet  <youenn@apple.com>
+
+        [Mac/iOS] Increase the audio buffer size when audio capture is on but web audio is not used
+        https://bugs.webkit.org/show_bug.cgi?id=175631
+
+        Reviewed by Eric Carlson.
+
+        * platform/audio/cocoa/MediaSessionManagerCocoa.cpp:
+        (PlatformMediaSessionManager::updateSessionState): Change value from 128 to the equivalent of 20ms when audio capture happens but not web audio.
+
+2017-08-17  Antti Koivisto  <antti@apple.com>
+
+        RenderListItem - Avoid render tree mutation during layout
+        https://bugs.webkit.org/show_bug.cgi?id=175666
+
+        Reviewed by Andreas Kling.
+
+        Mutations should be done by RenderTreeUpdater only.
+
+        * rendering/RenderListItem.cpp:
+        (WebCore::RenderListItem::updateMarkerRenderer):
+
+            This is now called by RenderTreeUpdater only.
+            Remove code dealing with this being called at layout time.
+            Merged marker construction code from styleDidChange here and renamed for clarity.
+
+        (WebCore::RenderListItem::layout):
+        (WebCore::RenderListItem::computePreferredLogicalWidths):
+
+            Remove mutating calls.
+
+        (WebCore::RenderListItem::styleDidChange): Deleted.
+        (WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded): Deleted.
+        * rendering/RenderListItem.h:
+        * rendering/TextAutoSizing.cpp:
+        (WebCore::TextAutoSizingValue::adjustTextNodeSizes):
+
+            Call updateMarkerRenderer.
+
+        * style/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::popParent):
+        (WebCore::RenderTreeUpdater::updateBeforeOrAfterPseudoElement):
+
+            Call updateMarkerRenderer.
+
+2017-08-17  Don Olmstead  <don.olmstead@sony.com>
+
+        [PAL] Move SessionID into PAL
+        https://bugs.webkit.org/show_bug.cgi?id=174192
+
+        Reviewed by Antti Koivisto.
+
+        No new tests. No change in behavior.
+
+        * CMakeLists.txt:
+        * Modules/websockets/WebSocketChannel.cpp:
+        (WebCore::WebSocketChannel::connect):
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/Document.cpp:
+        (WebCore::Document::sessionID const):
+        * dom/Document.h:
+        * dom/ScriptExecutionContext.h:
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::elementWithID):
+        (WebCore::HTMLMediaElement::finishParsingChildren):
+        (WebCore::HTMLMediaElement::scheduleEvent):
+        (WebCore::HTMLMediaElement::canPlayType const):
+        (WebCore::HTMLMediaElement::load):
+        (WebCore::HTMLMediaElement::loadResource):
+        (WebCore::HTMLMediaElement::textTracksAreReady const):
+        (WebCore::HTMLMediaElement::textTrackModeChanged):
+        (WebCore::HTMLMediaElement::noneSupported):
+        (WebCore::HTMLMediaElement::mediaLoadingFailedFatally):
+        (WebCore::HTMLMediaElement::mediaLoadingFailed):
+        (WebCore::HTMLMediaElement::setReadyState):
+        (WebCore::HTMLMediaElement::addPlayedRange):
+        (WebCore::HTMLMediaElement::seekTask):
+        (WebCore::HTMLMediaElement::refreshCachedTime const):
+        (WebCore::HTMLMediaElement::currentMediaTime const):
+        (WebCore::HTMLMediaElement::setWebkitPreservesPitch):
+        (WebCore::HTMLMediaElement::ended const):
+        (WebCore::HTMLMediaElement::playInternal):
+        (WebCore::HTMLMediaElement::pause):
+        (WebCore::HTMLMediaElement::togglePlayState):
+        (WebCore::HTMLMediaElement::beginScrubbing):
+        (WebCore::HTMLMediaElement::playbackProgressTimerFired):
+        (WebCore::HTMLMediaElement::mediaPlayerDidAddTextTrack):
+        (WebCore::HTMLMediaElement::didAddTextTrack):
+        (WebCore::HTMLMediaElement::didRemoveTextTrack):
+        (WebCore::controllerJSValue):
+        (WebCore::HTMLMediaElement::configureTextTracks):
+        (WebCore::HTMLMediaElement::selectNextSourceChild):
+        (WebCore::HTMLMediaElement::sourceWasAdded):
+        (WebCore::HTMLMediaElement::sourceWasRemoved):
+        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged):
+        (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
+        (WebCore::HTMLMediaElement::potentiallyPlaying const):
+        (WebCore::HTMLMediaElement::endedPlayback const):
+        (WebCore::HTMLMediaElement::stoppedDueToErrors const):
+        (WebCore::HTMLMediaElement::updatePlayState):
+        (WebCore::HTMLMediaElement::userCancelledLoad):
+        (WebCore::HTMLMediaElement::canSuspendForDocumentSuspension const):
+        (WebCore::HTMLMediaElement::addEventListener):
+        (WebCore::HTMLMediaElement::isFullscreen const):
+        (WebCore::HTMLMediaElement::toggleStandardFullscreenState):
+        (WebCore::HTMLMediaElement::waitForPreparedForInlineThen):
+        (WebCore::HTMLMediaElement::setVideoFullscreenLayer):
+        (WebCore::HTMLMediaElement::updateTextTrackDisplay):
+        (WebCore::HTMLMediaElement::mediaControls const):
+        (WebCore::HTMLMediaElement::configureTextTrackDisplay):
+        (WebCore::HTMLMediaElement::setMediaGroup):
+        (WebCore::HTMLMediaElement::setControllerForBindings):
+        (WebCore::HTMLMediaElement::isBlockedOnMediaController const):
+        (WebCore::HTMLMediaElement::prepareMediaFragmentURI):
+        (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot):
+        (WebCore::HTMLMediaElement::fileSize const):
+        (WebCore::HTMLMediaElement::mediaSessionTitle const):
+        (WebCore::needsSeekingSupportQuirk):
+        (WebCore::HTMLMediaElement::supportsSeeking const):
+        (WebCore::HTMLMediaElement::doesHaveAttribute const):
+        (WebCore::HTMLMediaElement::isVideoTooSmallForInlinePlayback):
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::continueAfterContentPolicy):
+        * loader/EmptyClients.cpp:
+        * loader/FrameLoaderClient.h:
+        * loader/cache/CachedCSSStyleSheet.cpp:
+        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
+        * loader/cache/CachedCSSStyleSheet.h:
+        * loader/cache/CachedFont.cpp:
+        (WebCore::CachedFont::CachedFont):
+        * loader/cache/CachedFont.h:
+        * loader/cache/CachedImage.cpp:
+        (WebCore::CachedImage::CachedImage):
+        * loader/cache/CachedImage.h:
+        * loader/cache/CachedRawResource.cpp:
+        (WebCore::CachedRawResource::CachedRawResource):
+        * loader/cache/CachedRawResource.h:
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::CachedResource):
+        * loader/cache/CachedResource.h:
+        (WebCore::CachedResource::sessionID const):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::createResource):
+        (WebCore::CachedResourceLoader::sessionID const):
+        * loader/cache/CachedResourceLoader.h:
+        * loader/cache/CachedSVGDocument.cpp:
+        (WebCore::CachedSVGDocument::CachedSVGDocument):
+        * loader/cache/CachedSVGDocument.h:
+        * loader/cache/CachedSVGFont.cpp:
+        (WebCore::CachedSVGFont::CachedSVGFont):
+        * loader/cache/CachedSVGFont.h:
+        * loader/cache/CachedScript.cpp:
+        (WebCore::CachedScript::CachedScript):
+        * loader/cache/CachedScript.h:
+        * loader/cache/CachedTextTrack.cpp:
+        (WebCore::CachedTextTrack::CachedTextTrack):
+        * loader/cache/CachedTextTrack.h:
+        * loader/cache/CachedXSLStyleSheet.cpp:
+        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
+        * loader/cache/CachedXSLStyleSheet.h:
+        * loader/cache/MemoryCache.cpp:
+        (WebCore::MemoryCache::sessionResourceMap const):
+        (WebCore::MemoryCache::ensureSessionResourceMap):
+        (WebCore::MemoryCache::resourceForRequest):
+        (WebCore::MemoryCache::addImageToCache):
+        (WebCore::MemoryCache::removeImageFromCache):
+        (WebCore::MemoryCache::forEachSessionResource):
+        (WebCore::MemoryCache::removeResourcesWithOrigins):
+        (WebCore::MemoryCache::originsWithCache const):
+        (WebCore::MemoryCache::evictResources):
+        * loader/cache/MemoryCache.h:
+        * loader/cocoa/DiskCacheMonitorCocoa.h:
+        (WebCore::DiskCacheMonitor::sessionID const):
+        * loader/cocoa/DiskCacheMonitorCocoa.mm:
+        (WebCore::DiskCacheMonitor::monitorFileBackingStoreCreation):
+        (WebCore::DiskCacheMonitor::DiskCacheMonitor):
+        * page/CacheStorageProvider.h:
+        * page/DatabaseProvider.h:
+        * page/Page.cpp:
+        (WebCore::Page::Page):
+        (WebCore::Page::enableLegacyPrivateBrowsing):
+        (WebCore::Page::sessionID const):
+        (WebCore::Page::setSessionID):
+        * page/Page.h:
+        * page/PlugInClient.h:
+        * page/SocketProvider.cpp:
+        (WebCore::SocketProvider::createSocketStreamHandle):
+        * page/SocketProvider.h:
+        * platform/CookiesStrategy.h:
+        * platform/WebCoreCrossThreadCopier.cpp:
+        (WTF::PAL::SessionID>::copy):
+        (WTF::WebCore::SessionID>::copy): Deleted.
+        * platform/WebCoreCrossThreadCopier.h:
+        * platform/network/CacheValidation.cpp:
+        (WebCore::headerValueForVary):
+        (WebCore::collectVaryingRequestHeaders):
+        (WebCore::verifyVaryingRequestHeaders):
+        * platform/network/CacheValidation.h:
+        * platform/network/NetworkStorageSession.cpp:
+        (WebCore::NetworkStorageSession::globalSessionMap):
+        (WebCore::NetworkStorageSession::storageSession):
+        (WebCore::NetworkStorageSession::destroySession):
+        * platform/network/NetworkStorageSession.h:
+        (WebCore::NetworkStorageSession::sessionID const):
+        * platform/network/NetworkStorageSessionStub.cpp:
+        (WebCore::NetworkStorageSession::NetworkStorageSession):
+        (WebCore::NetworkStorageSession::ensurePrivateBrowsingSession):
+        (WebCore::NetworkStorageSession::ensureSession):
+        (WebCore::NetworkStorageSession::defaultStorageSession):
+        * platform/network/cf/NetworkStorageSessionCFNet.cpp:
+        (WebCore::NetworkStorageSession::NetworkStorageSession):
+        (WebCore::NetworkStorageSession::switchToNewTestingSession):
+        (WebCore::NetworkStorageSession::defaultStorageSession):
+        (WebCore::NetworkStorageSession::ensurePrivateBrowsingSession):
+        (WebCore::NetworkStorageSession::ensureSession):
+        * platform/network/cf/SocketStreamHandleImpl.h:
+        (WebCore::SocketStreamHandleImpl::create):
+        * platform/network/cf/SocketStreamHandleImplCFNet.cpp:
+        (WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
+        * platform/network/curl/SocketStreamHandleImpl.h:
+        (WebCore::SocketStreamHandleImpl::create):
+        * platform/network/soup/NetworkStorageSessionSoup.cpp:
+        (WebCore::NetworkStorageSession::NetworkStorageSession):
+        (WebCore::NetworkStorageSession::defaultStorageSession):
+        (WebCore::NetworkStorageSession::ensurePrivateBrowsingSession):
+        (WebCore::NetworkStorageSession::ensureSession):
+        (WebCore::NetworkStorageSession::switchToNewTestingSession):
+        * platform/network/soup/SocketStreamHandleImpl.h:
+        * platform/network/soup/SocketStreamHandleImplSoup.cpp:
+        (WebCore::SocketStreamHandleImpl::create):
+        * workers/DedicatedWorkerGlobalScope.cpp:
+        (WebCore::DedicatedWorkerGlobalScope::create):
+        (WebCore::DedicatedWorkerGlobalScope::DedicatedWorkerGlobalScope):
+        * workers/DedicatedWorkerGlobalScope.h:
+        * workers/DedicatedWorkerThread.cpp:
+        (WebCore::DedicatedWorkerThread::DedicatedWorkerThread):
+        (WebCore::DedicatedWorkerThread::createWorkerGlobalScope):
+        * workers/DedicatedWorkerThread.h:
+        * workers/Worker.cpp:
+        (WebCore::Worker::notifyFinished):
+        * workers/WorkerGlobalScope.cpp:
+        (WebCore::WorkerGlobalScope::WorkerGlobalScope):
+        * workers/WorkerGlobalScope.h:
+        * workers/WorkerGlobalScopeProxy.h:
+        * workers/WorkerMessagingProxy.cpp:
+        (WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
+        * workers/WorkerMessagingProxy.h:
+        * workers/WorkerThread.cpp:
+        (WebCore::WorkerThreadStartupData::WorkerThreadStartupData):
+        (WebCore::WorkerThread::WorkerThread):
+        * workers/WorkerThread.h:
+        * workers/service/ServiceWorkerContainer.h:
+        * workers/service/ServiceWorkerRegistrationParameters.h:
+
+2017-08-17  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK][WPE] Add NTLM authentication enabled API
+        https://bugs.webkit.org/show_bug.cgi?id=122952
+
+        Reviewed by Michael Catanzaro.
+
+        Add/remove NTLM feature to/from soup session depending on whether the feature is enabled or disabled.
+
+        * platform/network/soup/SoupNetworkSession.cpp:
+        (WebCore::SoupNetworkSession::SoupNetworkSession):
+        (WebCore::SoupNetworkSession::setInitialNTLMAuthenticationEnabled):
+        (WebCore::SoupNetworkSession::setNTLMAuthenticationEnabled):
+        * platform/network/soup/SoupNetworkSession.h:
+
+2017-08-16  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Add the support for mutating clipboard data via DataTransferItemList
+        https://bugs.webkit.org/show_bug.cgi?id=175639
+
+        Reviewed by Wenson Hsieh.
+
+        Added the support for adding plaintext data via dataTransfer.items.add, clearing data via clear,
+        and removing an entry via remove. When DataTransferItem is removed from DataTransferItemList,
+        we must put into the disabled mode.
+
+        To support the removal of DataTransferItem, this patch replaces a reference to DataTransfer by
+        a WeakPtr to DataTransferItemList, and stops forwarding ref from DataTransferItem to DataTransfer.
+        This means that DataTransfer can now be GC'ed before DataTransferItem is GC'ed.
+
+        Because the identify and the order of DataTransferItems need to be preserved, we can't simply
+        re-popluate m_itemList in DataTransferItemList. Instead, whenever the clipboard content is mutated,
+        we make the parallel modifications to m_itemList. This includes changes made via DataTransfer
+        methods such as setData and clearData.
+
+        Test: editing/pasteboard/datatransfer-items-copy-plaintext.html
+
+        * dom/DataTransfer.cpp:
+        (WebCore::DataTransfer::clearData): Invoke didClearStringData when m_itemList exists.
+        (WebCore::DataTransfer::setData): Ditto.
+        (WebCore::DataTransfer::createForInputEvent):
+        (WebCore::DataTransfer::createForDrag):
+        (WebCore::DataTransfer::createForDrop):
+        * dom/DataTransferItem.cpp:
+        (WebCore::DataTransferItem::create):
+        (WebCore::DataTransferItem::DataTransferItem):
+        (WebCore::DataTransferItem::clearListAndPutIntoDisabledMode): Added.
+        (WebCore::DataTransferItem::type const): Moved from the header.
+        (WebCore::DataTransferItem::getAsString const):
+        (WebCore::DataTransferItem::getAsFile const):
+        * dom/DataTransferItem.h:
+        (WebCore::DataTransferItem::ref): Deleted.
+        (WebCore::DataTransferItem::deref): Deleted.
+        (WebCore::DataTransferItem::isFile const): Added.
+        (WebCore::DataTransferItem::type const): Move to the cpp file.
+        * dom/DataTransferItemList.cpp:
+        (WebCore::isSupportedType): Moved.
+        (WebCore::DataTransferItemList::DataTransferItemList): Moved from the header.
+        (WebCore::DataTransferItemList::~DataTransferItemList): Added.
+        (WebCore::DataTransferItemList::item):
+        (WebCore::DataTransferItemList::add): Implemented the variant to add string data.
+        (WebCore::DataTransferItemList::remove): Implemented. For now, we don't have to deal with removing
+        a file since a writable dataTransfer never contains a File object.
+        (WebCore::DataTransferItemList::clear): Implemented.
+        (WebCore::DataTransferItemList::ensureItems const):
+        (WebCore::removeStringItemOfLowercasedType): Added.
+        (WebCore::DataTransferItemList::didClearStringData): Called when dataTransfer.clear is called.
+        (WebCore::DataTransferItemList::didSetStringData): Ditto for 
+        * dom/DataTransferItemList.h:
+        (WebCore::DataTransferItemList): Added a WeakPtrFactory. Also use a vector of Ref<DataTransferItem>
+        instead of unique_ptr<DataTransferItem> since DataTransferItem can outlive DataTransferItemList.
+        (WebCore::DataTransferItemList::dataTransfer): Added.
+        * dom/DataTransferItemList.idl:
+
+2017-08-16  Andy Estes  <aestes@apple.com>
+
+        [Apple Pay] Rename PaymentRequest to ApplePaySessionPaymentRequest
+        https://bugs.webkit.org/show_bug.cgi?id=175648
+
+        Reviewed by Tim Horton.
+
+        The W3C Payment Request API defines an interface called PaymentRequest, which conflicts with
+        an existing Apple Pay class. This patch renames PaymentRequest to
+        ApplePaySessionPaymentRequest so that a follow-on patch can introduce PaymentRequest for the
+        W3C API.
+
+        * Modules/applepay/ApplePayError.h:
+        * Modules/applepay/ApplePayLineItem.h:
+        * Modules/applepay/ApplePayPaymentRequest.h:
+        * Modules/applepay/ApplePaySession.cpp:
+        (WebCore::convertAndValidateTotal):
+        (WebCore::convertAndValidate):
+        (WebCore::ApplePaySession::ApplePaySession):
+        (WebCore::ApplePaySession::didSelectShippingMethod):
+        * Modules/applepay/ApplePaySession.h:
+        * Modules/applepay/ApplePaySessionPaymentRequest.cpp: Renamed from Source/WebCore/Modules/applepay/PaymentRequest.cpp.
+        (WebCore::ApplePaySessionPaymentRequest::ApplePaySessionPaymentRequest):
+        (WebCore::ApplePaySessionPaymentRequest::~ApplePaySessionPaymentRequest):
+        (WebCore::ApplePaySessionPaymentRequest::isValidSupportedNetwork):
+        * Modules/applepay/ApplePaySessionPaymentRequest.h: Renamed from Source/WebCore/Modules/applepay/PaymentRequest.h.
+        * Modules/applepay/ApplePayShippingMethodSelectedEvent.cpp:
+        (WebCore::convert):
+        (WebCore::ApplePayShippingMethodSelectedEvent::ApplePayShippingMethodSelectedEvent):
+        * Modules/applepay/ApplePayShippingMethodSelectedEvent.h:
+        * Modules/applepay/PaymentCoordinator.cpp:
+        (WebCore::PaymentCoordinator::beginPaymentSession):
+        (WebCore::PaymentCoordinator::didSelectShippingMethod):
+        * Modules/applepay/PaymentCoordinator.h:
+        * Modules/applepay/PaymentCoordinatorClient.h:
+        * Modules/applepay/PaymentHeaders.h:
+        * Modules/applepay/PaymentRequestValidator.cpp:
+        (WebCore::PaymentRequestValidator::validate):
+        (WebCore::PaymentRequestValidator::validateTotal):
+        (WebCore::validateMerchantCapabilities):
+        (WebCore::validateShippingMethod):
+        (WebCore::validateShippingMethods):
+        * Modules/applepay/PaymentRequestValidator.h:
+        * WebCore.xcodeproj/project.pbxproj:
+        * loader/EmptyClients.cpp:
+
+2017-08-16  Chris Dumez  <cdumez@apple.com>
+
+        Cross origin Beacon requests with a ArrayBuffer / ArrayBufferView payload should not do a CORS preflight
+        https://bugs.webkit.org/show_bug.cgi?id=175628
+        <rdar://problem/33919278>
+
+        Reviewed by Geoffrey Garen.
+
+        Cross origin Beacon requests with a ArrayBuffer / ArrayBufferView payload should not do a CORS preflight.
+        To achieve this, the following changes were made:
+        1. Revert r220779 which caused us to use a non CORS-safelisted Content-Type header for such payload
+        2. Teach PingLoad how to deal with "simple" cross origin requests (i.e. Don't assume we need a CORS
+           preflight merely because the fetch mode is set to "cors").
+
+        Test: http/wpt/beacon/cors/crossorigin-arraybufferview-no-preflight.html
+
+        * Modules/fetch/FetchBody.cpp:
+        (WebCore::FetchBody::extract):
+        * loader/CrossOriginAccessControl.h:
+        * loader/LoaderStrategy.h:
+        * loader/PingLoader.cpp:
+        (WebCore::PingLoader::loadImage):
+        (WebCore::PingLoader::sendPing):
+        (WebCore::PingLoader::sendViolationReport):
+        (WebCore::PingLoader::startPingLoad):
+        * loader/PingLoader.h:
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::CachedResource):
+        (WebCore::CachedResource::load):
+        * loader/cache/CachedResource.h:
+        * loader/cache/CachedResourceRequest.cpp:
+        (WebCore::CachedResourceRequest::CachedResourceRequest):
+        * loader/cache/CachedResourceRequest.h:
+        (WebCore::CachedResourceRequest::releaseOriginalRequestHeaders):
+        * platform/network/HTTPHeaderValues.cpp:
+        * platform/network/HTTPHeaderValues.h:
+
+2017-08-16  Matt Baker  <mattbaker@apple.com>
+
+        Web Inspector: capture async stack trace when workers/main context posts a message
+        https://bugs.webkit.org/show_bug.cgi?id=167084
+        <rdar://problem/30033673>
+
+        Reviewed by Brian Burg.
+
+        Add instrumentation to DOMWindow to support showing asynchronous
+        stack traces when the debugger pauses in a MessageEvent handler.
+
+        Test: inspector/debugger/async-stack-trace.html
+
+        * inspector/InspectorInstrumentation.cpp:
+        (WebCore::InspectorInstrumentation::didPostMessageImpl):
+        (WebCore::InspectorInstrumentation::didFailPostMessageImpl):
+        (WebCore::InspectorInstrumentation::willDispatchPostMessageImpl):
+        (WebCore::InspectorInstrumentation::didDispatchPostMessageImpl):
+
+        * inspector/InspectorInstrumentation.h:
+        (WebCore::InspectorInstrumentation::didPostMessage):
+        (WebCore::InspectorInstrumentation::didFailPostMessage):
+        (WebCore::InspectorInstrumentation::willDispatchPostMessage):
+        (WebCore::InspectorInstrumentation::didDispatchPostMessage):
+
+        * inspector/PageDebuggerAgent.cpp:
+        (WebCore::PageDebuggerAgent::didClearAsyncStackTraceData):
+        (WebCore::PageDebuggerAgent::didPostMessage):
+        (WebCore::PageDebuggerAgent::didFailPostMessage):
+        (WebCore::PageDebuggerAgent::willDispatchPostMessage):
+        (WebCore::PageDebuggerAgent::didDispatchPostMessage):
+        * inspector/PageDebuggerAgent.h:
+
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::postMessage):
+        (WebCore::DOMWindow::postMessageTimerFired):
+
+2017-08-16  Timothy Horton  <timothy_horton@apple.com>
+
+        Try to fix the build
+
+        * platform/ios/PlatformPasteboardIOS.mm:
+
+2017-08-16  Simon Fraser  <simon.fraser@apple.com>
+
+        Build fix after r220812
+
+        Fix builds where LOG_DISABLED is defined.
+
+        * css/MediaQueryEvaluator.cpp:
+
+2017-08-16  Simon Fraser  <simon.fraser@apple.com>
+
+        Add a log channel for media queries
+        https://bugs.webkit.org/show_bug.cgi?id=175591
+
+        Reviewed by Zalan Bujtas.
+
+        Add a "MediaQueries" log channel which logs data about media query evaluation.
+
+        * css/MediaList.cpp:
+        (WebCore::MediaQuerySet::MediaQuerySet):
+        (WebCore::operator<<):
+        * css/MediaList.h:
+        * css/MediaQuery.cpp:
+        (WebCore::operator<<):
+        * css/MediaQuery.h:
+        * css/MediaQueryEvaluator.cpp:
+        (WebCore::operator<<):
+        (WebCore::MediaQueryEvaluator::evaluate const):
+        (WebCore::aspectRatioValueAsString):
+        (WebCore::orientationEvaluate):
+        (WebCore::aspectRatioEvaluate):
+        (WebCore::deviceAspectRatioEvaluate):
+        (WebCore::evaluateResolution):
+        (WebCore::deviceHeightEvaluate):
+        (WebCore::deviceWidthEvaluate):
+        (WebCore::heightEvaluate):
+        (WebCore::widthEvaluate):
+        * css/MediaQueryExpression.cpp:
+        (WebCore::operator<<):
+        * css/MediaQueryExpression.h:
+        * css/MediaQueryMatcher.cpp:
+        (WebCore::MediaQueryMatcher::styleResolverChanged):
+        * css/StyleResolver.cpp:
+        (WebCore::StyleResolver::hasMediaQueriesAffectedByViewportChange const):
+        (WebCore::StyleResolver::hasMediaQueriesAffectedByAccessibilitySettingsChange const):
+        * dom/InlineStyleSheetOwner.cpp:
+        (WebCore::InlineStyleSheetOwner::createSheet):
+        * html/HTMLImageElement.cpp:
+        (WebCore::HTMLImageElement::bestFitSourceFromPictureElement):
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::process):
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::selectNextSourceChild):
+        * html/HTMLPictureElement.cpp:
+        (WebCore::HTMLPictureElement::viewportChangeAffectedPicture const):
+        * html/parser/HTMLPreloadScanner.cpp:
+        (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
+        * page/FrameView.cpp:
+        (WebCore::FrameView::layout):
+        * platform/Logging.cpp:
+        (WebCore::initializeLogChannelsIfNecessary):
+        * platform/Logging.h:
+        * platform/URL.cpp:
+        (WebCore::isSchemeFirstChar):
+        (WebCore::operator<<):
+        * platform/URL.h:
+
+2017-08-16  Sam Weinig  <sam@webkit.org>
+
+        [WebIDL] Remove the need for JSSubtleCryptoCustom.cpp
+        https://bugs.webkit.org/show_bug.cgi?id=175526
+
+        Reviewed by Chris Dumez.
+
+        - Generates bindings for all of SubtleCrypto except AlgorithmIdentifier normalization, 
+          which is defined in the WebCrypto spec to happen after normal IDL operations.
+        - Adds initial support for IDL object types in unions (some, unneeded at the moment,
+          edge cases remain).
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSSubtleCryptoCustom.cpp: Removed.
+
+            Remove JSSubtleCryptoCustom.cpp, added CryptoKeyFormat.h
+
+        * bindings/js/JSDOMConvertObject.h:
+
+            Add needed, when included in generated code, #include of StrongInlines.h
+
+        * bindings/js/JSDOMConvertUnion.h:
+        
+            Add initial support for object (needed for AlgorithmIdentifier which is 
+            (object or DOMString)). Remaining support will be handled by https://webkit.org/b/175616
+
+            Also add remaining spec comments while in the area.
+
+        * bindings/js/JSDOMPromiseDeferred.cpp:
+        (WebCore::DeferredPromise::reject):
+
+            Add support for the special ExistingExceptionError error code. Capturing
+            the current exception and using it as the rejection value.
+
+        * crypto/SubtleCrypto.cpp:
+        (WebCore::SubtleCrypto::~SubtleCrypto):
+        (WebCore::toHashIdentifier):
+        (WebCore::normalizeCryptoAlgorithmParameters):
+        (WebCore::toCryptoKeyUsageBitmap):
+        (WebCore::rejectWithException):
+        (WebCore::normalizeJsonWebKey):
+        (WebCore::toKeyData):
+        (WebCore::copyToVector):
+        (WebCore::isSupportedExportKey):
+        (WebCore::SubtleCrypto::encrypt):
+        (WebCore::SubtleCrypto::decrypt):
+        (WebCore::SubtleCrypto::sign):
+        (WebCore::SubtleCrypto::verify):
+        (WebCore::SubtleCrypto::digest):
+        (WebCore::SubtleCrypto::generateKey):
+        (WebCore::SubtleCrypto::deriveKey):
+        (WebCore::SubtleCrypto::deriveBits):
+        (WebCore::SubtleCrypto::importKey):
+        (WebCore::SubtleCrypto::exportKey):
+        (WebCore::SubtleCrypto::wrapKey):
+        (WebCore::SubtleCrypto::unwrapKey):
+        * crypto/SubtleCrypto.h:
+        * crypto/SubtleCrypto.idl:
+
+            Moves implementation from JSSubtleCryptoCustom.cpp -> here. Important changes that come
+            with that are:
+            - All parameters are now converted / type checked for us.
+            - Rather than throwing exceptions and expecting the bindings layer to convert
+              them to promise rejections, all rejections are now explicitly made.
+            - Algorithms are no longer checked for being supported twice, once in normalizeCryptoAlgorithmParameters
+              and then again in the operation. We instead rely on normalizeCryptoAlgorithmParameters to return
+              an Exception if its not supported.
+            - Shaves 251 lines off the file.
+
+        * crypto/CryptoKeyFormat.h: Added.
+
+            Add new header for unified key format enum. (For bindings purposes, SubtleCrypto
+            re aliases it to SubtleCrypto::KeyFormat).
+
+        * bindings/js/JSWebKitSubtleCryptoCustom.cpp:
+        * crypto/CryptoAlgorithm.cpp:
+        * crypto/CryptoAlgorithm.h:
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.h:
+        * crypto/algorithms/CryptoAlgorithmAES_CFB.cpp:
+        * crypto/algorithms/CryptoAlgorithmAES_CFB.h:
+        * crypto/algorithms/CryptoAlgorithmAES_CTR.cpp:
+        * crypto/algorithms/CryptoAlgorithmAES_CTR.h:
+        * crypto/algorithms/CryptoAlgorithmAES_GCM.cpp:
+        * crypto/algorithms/CryptoAlgorithmAES_GCM.h:
+        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
+        * crypto/algorithms/CryptoAlgorithmAES_KW.h:
+        * crypto/algorithms/CryptoAlgorithmECDH.cpp:
+        * crypto/algorithms/CryptoAlgorithmECDH.h:
+        * crypto/algorithms/CryptoAlgorithmECDSA.cpp:
+        * crypto/algorithms/CryptoAlgorithmECDSA.h:
+        * crypto/algorithms/CryptoAlgorithmHKDF.cpp:
+        * crypto/algorithms/CryptoAlgorithmHKDF.h:
+        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
+        * crypto/algorithms/CryptoAlgorithmHMAC.h:
+        * crypto/algorithms/CryptoAlgorithmPBKDF2.cpp:
+        * crypto/algorithms/CryptoAlgorithmPBKDF2.h:
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.h:
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.h:
+        * crypto/algorithms/CryptoAlgorithmRSA_PSS.cpp:
+        * crypto/algorithms/CryptoAlgorithmRSA_PSS.h:
+
+            Use CryptoKeyFormat enum directly, rather than SubtleCrypto::KeyFormat,
+            to allow not including SubtleCrypto.h.
+
+        * crypto/parameters/CryptoAlgorithmEcdsaParams.h:
+        * crypto/parameters/CryptoAlgorithmHkdfParams.h:
+        * crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
+        * crypto/parameters/CryptoAlgorithmPbkdf2Params.h:
+        * crypto/parameters/CryptoAlgorithmRsaHashedImportParams.h:
+        * crypto/parameters/CryptoAlgorithmRsaHashedKeyGenParams.h:
+        * crypto/parameters/EcdsaParams.idl:
+        * crypto/parameters/HkdfParams.idl:
+        * crypto/parameters/HmacKeyParams.idl:
+        * crypto/parameters/Pbkdf2Params.idl:
+        * crypto/parameters/RsaHashedImportParams.idl:
+        * crypto/parameters/RsaHashedKeyGenParams.idl:
+
+            Update IDLs and implementations to use the correct definition of HashAlgorithmIdentifier,
+            which is (object or DOMString), now that it is supported.
+
+2017-08-16  Youenn Fablet  <youenn@apple.com>
+
+        [Cache API] Implement Worker connection to the Cache storage engine
+        https://bugs.webkit.org/show_bug.cgi?id=175599
+
+        Reviewed by Chris Dumez.
+
+        Covered by existing tests.
+
+        Adding a WorkerCacheStorageConnection to connect workers Cache/CacheStorage
+        to the cache storage engine.
+        WorkerCacheStorageConnection does this by hopping to the main thread to call the document cache storage connection to do the actual job.
+        Doing some CacheStorageConnection refactoring to share code with WK2 implementation of the cache storage connection. 
+
+        * Modules/cache/CacheQueryOptions.h:
+        (WebCore::CacheQueryOptions::isolatedCopy const):
+        * Modules/cache/CacheStorageConnection.cpp:
+        (WebCore::CacheStorageConnection::open):
+        (WebCore::CacheStorageConnection::remove):
+        (WebCore::CacheStorageConnection::retrieveCaches):
+        (WebCore::CacheStorageConnection::retrieveRecords):
+        (WebCore::CacheStorageConnection::batchDeleteOperation):
+        (WebCore::CacheStorageConnection::batchPutOperation):
+        (WebCore::CacheStorageConnection::openOrRemoveCompleted):
+        (WebCore::CacheStorageConnection::updateCaches):
+        (WebCore::CacheStorageConnection::updateRecords):
+        (WebCore::CacheStorageConnection::removeRecordsCompleted):
+        (WebCore::CacheStorageConnection::putRecordsCompleted):
+        * Modules/cache/CacheStorageConnection.h:
+        (WebCore::CacheStorageConnection::openCompleted):
+        (WebCore::CacheStorageConnection::removeCompleted):
+        (WebCore::CacheStorageConnection::doOpen):
+        (WebCore::CacheStorageConnection::doRemove):
+        (WebCore::CacheStorageConnection::doRetrieveCaches):
+        (WebCore::CacheStorageConnection::doRetrieveRecords):
+        (WebCore::CacheStorageConnection::doBatchDeleteOperation):
+        (WebCore::CacheStorageConnection::doBatchPutOperation):
+        * Modules/cache/WorkerCacheStorageConnection.cpp: Added.
+        (WebCore::toCrossThreadRecordData):
+        (WebCore::fromCrossThreadRecordData):
+        (WebCore::WorkerCacheStorageConnection::create):
+        (WebCore::WorkerCacheStorageConnection::WorkerCacheStorageConnection):
+        (WebCore::WorkerCacheStorageConnection::doOpen):
+        (WebCore::WorkerCacheStorageConnection::doRemove):
+        (WebCore::WorkerCacheStorageConnection::doRetrieveCaches):
+        (WebCore::WorkerCacheStorageConnection::doRetrieveRecords):
+        (WebCore::WorkerCacheStorageConnection::doBatchDeleteOperation):
+        (WebCore::WorkerCacheStorageConnection::doBatchPutOperation):
+        * Modules/cache/WorkerCacheStorageConnection.h: Added.
+        * Modules/cache/WorkerGlobalScopeCaches.cpp:
+        (WebCore::WorkerGlobalScopeCaches::caches const):
+        * WebCore.xcodeproj/project.pbxproj:
+        * loader/FetchOptions.h:
+        (WebCore::FetchOptions::isolatedCopy const):
+        * workers/WorkerGlobalScope.cpp:
+        (WebCore::WorkerGlobalScope::cacheStorageConnection):
+        * workers/WorkerGlobalScope.h:
+
+2017-08-16  Yoshiaki Jitsukawa  <Yoshiaki.Jitsukawa@sony.com>
+
+        [PAL] Move spi/ios and spi/win directories into PAL
+        https://bugs.webkit.org/show_bug.cgi?id=175171
+
+        Reviewed by Antti Koivisto.
+
+        * PlatformWin.cmake:
+        * WebCore.xcodeproj/project.pbxproj:
+        * editing/cocoa/DataDetection.mm:
+        * loader/ios/PreviewLoader.mm:
+        * page/CaptionUserPreferencesMediaAF.cpp:
+        * page/cocoa/MemoryReleaseCocoa.mm:
+        * page/cocoa/SettingsCocoa.mm:
+        * page/ios/UserAgentIOS.mm:
+        * platform/audio/ios/MediaSessionManagerIOS.mm:
+        * platform/graphics/ca/PlatformCALayer.cpp:
+        * platform/graphics/cocoa/FontCascadeCocoa.mm:
+        * platform/graphics/cocoa/GraphicsContext3DCocoa.mm:
+        * platform/graphics/opentype/OpenTypeCG.h:
+        * platform/graphics/win/SimpleFontDataCGWin.cpp:
+        * platform/graphics/win/SimpleFontDataDirect2D.cpp:
+        * platform/ios/Device.h:
+        * platform/ios/PlatformPasteboardIOS.mm:
+        * platform/ios/PlatformScreenIOS.mm:
+        * platform/ios/QuickLookSoftLink.h:
+        * platform/ios/QuickLookSoftLink.mm:
+        * platform/ios/ValidationBubbleIOS.mm:
+        * platform/ios/WebItemProviderPasteboard.mm:
+        * platform/network/ios/PreviewConverter.mm:
+        * platform/sql/SQLiteFileSystem.cpp:
+        * rendering/RenderThemeIOS.mm:
+
+2017-08-16  Tim Horton  <timothy_horton@apple.com>
+
+        2-3% of main thread time under UTTypeCreatePreferredIdentifierForTag on wunderground map
+        https://bugs.webkit.org/show_bug.cgi?id=175618
+
+        Reviewed by Simon Fraser.
+
+        No new tests, just a perf win.
+
+        UTTypeCreatePreferredIdentifierForTag is fairly expensive, and is called
+        under every toDataURL, which the Wunderground wundermap does a /lot/.
+
+        Keep a 16-item LRU cache of MIMEType->UTI mappings.
+
+        Also, make other callers of UTTypeCreatePreferredIdentifierForTag use
+        the UTIUtilities version so they can share in the caching.
+
+        Also, as a drive-by, add and make other callers use mimeTypeFromUTI too,
+        and make the UTIUtilities operate on Strings for a slightly more WebCore-y feel.
+
+        * editing/ios/EditorIOS.mm:
+        (WebCore::Editor::WebContentReader::readImage):
+        * platform/MIMETypeRegistry.cpp:
+        (WebCore::initializeSupportedImageMIMETypes):
+        (WebCore::initializeSupportedImageMIMETypesForEncoding):
+        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
+        (WebCore::createFileTypesSet):
+        * platform/graphics/cg/ImageSourceCGMac.mm:
+        (WebCore::MIMETypeForImageSourceType):
+        Adopt newly-added MIMETypeFromUTI().
+
+        * platform/graphics/cg/ImageBufferCG.cpp:
+        (WebCore::utiFromImageBufferMIMEType):
+        (WebCore::ImageBuffer::toCFData const):
+        (WebCore::cfData):
+        (WebCore::utiFromMIMEType): Deleted.
+        Adopt UTIFromMIMEType, and rename the local helper that does something
+        different (a small static map) on iOS and Windows to not have an overlapping name.
+
+        * platform/ios/PasteboardIOS.mm:
+        (WebCore::Pasteboard::resourceMIMEType):
+        (WebCore::utiTypeFromCocoaType):
+        Adopt UTIFromMIMEType().
+
+        * platform/ios/PlatformPasteboardIOS.mm:
+        (WebCore::PlatformPasteboard::writeObjectRepresentations):
+        * platform/mac/PasteboardMac.mm:
+        (WebCore::cocoaTypeFromHTMLClipboardType):
+        Adopt isDeclaredUTI and UTIFromMIMEType().
+
+        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
+        (WebCore::WebCoreAVFResourceLoader::responseReceived):
+        * platform/network/ios/WebCoreURLResponseIOS.mm:
+        (WebCore::adjustMIMETypeIfNecessary):
+        * platform/network/mac/WebCoreURLResponse.mm:
+        (WebCore::adjustMIMETypeIfNecessary):
+        * rendering/RenderThemeIOS.mm:
+        (WebCore::iconForAttachment):
+        * rendering/RenderThemeMac.mm:
+        (WebCore::iconForAttachment):
+        Deal with the fact that UTI utilities deal in Strings now.
+
+        * platform/network/mac/UTIUtilities.h:
+        * platform/network/mac/UTIUtilities.mm:
+        (WebCore::MIMETypeFromUTI):
+        Added. This doesn't crawl up the UTI tree if the first conversion fails,
+        which is what most of the existing code does. It's possible we want to
+        use MIMETypeFromUTITree's logic everywhere, but I didn't want to change
+        that in this patch.
+
+        (WebCore::MIMETypeFromUTITree):
+        (WebCore::isDeclaredUTI):
+        Take and return strings.
+
+        (WebCore::UTIFromMIMETypeCachePolicy::createValueForKey):
+        (WebCore::UTIFromMIMEType):
+        Add the aforementioned cache.
+
+2017-08-16  Simon Fraser  <simon.fraser@apple.com>
+
+        Make RenderLayer and RenderLayerBacking TextStream-loggable, and clean up compositing logging
+        https://bugs.webkit.org/show_bug.cgi?id=175634
+
+        Reviewed by Zalan Bujtas.
+
+        Add operator<<(TextStream&) for RenderLayer and RenderLayer backing, and use them for compositing logging.
+
+        Convert CompositingUpdateType to an enum class.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::updateCompositingLayersAfterLayout):
+        (WebCore::FrameView::updateCompositingLayersAfterScrolling):
+        * page/ios/FrameIOS.mm:
+        (WebCore::Frame::viewportOffsetChanged):
+        * rendering/RenderLayer.cpp:
+        (WebCore::RenderLayer::updateLayerPositionsAfterLayout):
+        (WebCore::RenderLayer::updateCompositingLayersAfterScroll):
+        (WebCore::RenderLayer::calculateClipRects const):
+        * rendering/RenderLayer.h:
+        * rendering/RenderLayerBacking.cpp:
+        (WebCore::RenderLayerBacking::updateAfterLayout):
+        (WebCore::RenderLayerBacking::updateGeometry):
+        (WebCore::operator<<):
+        * rendering/RenderLayerBacking.h:
+        * rendering/RenderLayerCompositor.cpp:
+        (WebCore::RenderLayerCompositor::didRecalcStyleWithNoPendingLayout):
+        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
+        (WebCore::RenderLayerCompositor::updateCompositingLayersTimerFired):
+        (WebCore::RenderLayerCompositor::updateCompositingLayers):
+        (WebCore::RenderLayerCompositor::layerTreeAsText):
+        (WebCore::operator<<):
+        * rendering/RenderLayerCompositor.h:
+
+2017-08-16  Eric Carlson  <eric.carlson@apple.com>
+
+        Consider allow gUM to be called from localhost without https
+        https://bugs.webkit.org/show_bug.cgi?id=173457
+        <rdar://problem/33900527>
+
+        Reviewed by Youenn Fablet.
+
+        Tests: http/tests/media/media-stream/get-user-media-localhost.html
+               http/tests/media/media-stream/get-user-media-loopback-ip.html
+
+        * Modules/mediastream/UserMediaRequest.cpp:
+        (WebCore::isSecure): Call SchemeRegistry::shouldTreatURLSchemeAsSecure instead of looking for
+        the string 'https'.
+        (WebCore::canCallGetUserMedia): Allow localhost or loopback address.
+
+        * page/SecurityOrigin.cpp:
+        (WebCore::isLoopbackIPAddress): Add a comment.
+        (WebCore::shouldTreatAsPotentionallyTrustworthy): Move tests for localhost and loopback address
+        to isLocalHostOrLoopbackIPAddress, call it.
+        (WebCore::SecurityOrigin::isLocalHostOrLoopbackIPAddress): 
+        * page/SecurityOrigin.h:
+
+2017-08-16  Chris Dumez  <cdumez@apple.com>
+
+        EventSource: ignore IDs with U+0000
+        https://bugs.webkit.org/show_bug.cgi?id=175178
+
+        Reviewed by Darin Adler.
+
+        EventSource: ignore IDs with U+0000 as per:
+        https://github.com/whatwg/html/pull/2849
+
+        Test: imported/w3c/web-platform-tests/eventsource/format-field-id-null.htm
+
+        * page/EventSource.cpp:
+        (WebCore::EventSource::parseEventStreamLine):
+
+2017-08-16  Fujii Hironori  <Hironori.Fujii@sony.com>
+
+        [HarfBuzz] Decomposed Vietnamese characters are rendered incorrectly
+        https://bugs.webkit.org/show_bug.cgi?id=174418
+
+        Reviewed by Michael Catanzaro.
+
+        HarfBuzzShaper should normalize the input text before collecting
+        HarfBuzzRuns. Actually, HarfBuzzShaper::setNormalizedBuffer does
+        the task. But, this function hasn't been called from anywhere
+        since Bug 90951.
+
+        Test: fast/text/international/vietnamese-nfd.html
+              imported/blink/fast/text/international/text-shaping-arabic-diffs.html
+
+        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
+        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
+        Call setNormalizedBuffer instead of normalizeCharacters.
+        (WebCore::normalizeCharacters): Deleted.
+        (WebCore::normalizeSpacesAndMirrorChars) Use
+        FontCascade::treatAsZeroWidthSpaceInComplexScript instead of
+        FontCascade::treatAsZeroWidthSpace to preserve ZWJ and ZWNJ.
+
+2017-08-16  Antti Koivisto  <antti@apple.com>
+
+        Move first-letter renderer mutation code out of RenderBlock and into RenderTreeUpdater
+        https://bugs.webkit.org/show_bug.cgi?id=175627
+
+        Reviewed by Andreas Kling.
+
+        Render tree should not mutate itself. We already fixed this for first-letter, supporting code
+        can now move to RenderTreeUpdater too.
+
+        * CMakeLists.txt:
+        * WebCore.xcodeproj/project.pbxproj:
+        * rendering/RenderBlock.cpp:
+        (WebCore::styleForFirstLetter): Deleted.
+        (WebCore::isPunctuationForFirstLetter): Deleted.
+        (WebCore::shouldSkipForFirstLetter): Deleted.
+        (WebCore::RenderBlock::updateFirstLetterStyle): Deleted.
+        (WebCore::RenderBlock::createFirstLetterRenderer): Deleted.
+        (WebCore::RenderBlock::updateFirstLetter): Deleted.
+        * rendering/RenderBlock.h:
+        * rendering/RenderRubyRun.cpp:
+        (WebCore::RenderRubyRun::updateFirstLetter): Deleted.
+        * rendering/RenderRubyRun.h:
+        * rendering/RenderTable.cpp:
+        (WebCore::RenderTable::updateFirstLetter): Deleted.
+        * rendering/RenderTable.h:
+
+            Virtual overrides just disabled first letter for some RenderBlock subclasses. This is now achieved via
+            supportsFirstLetter test in the first letter updater.
+
+        * rendering/TextAutoSizing.cpp:
+        (WebCore::TextAutoSizingValue::adjustTextNodeSizes):
+        * rendering/svg/RenderSVGText.cpp:
+        (WebCore::RenderSVGText::updateFirstLetter): Deleted.
+        * rendering/svg/RenderSVGText.h:
+        * style/RenderTreeUpdater.cpp:
+        (WebCore::RenderTreeUpdater::popParent):
+        * style/RenderTreeUpdater.h:
+        * style/RenderTreeUpdaterFirstLetter.cpp: Added.
+        (WebCore::styleForFirstLetter):
+        (WebCore::isPunctuationForFirstLetter):
+        (WebCore::shouldSkipForFirstLetter):
+        (WebCore::updateFirstLetterStyle):
+        (WebCore::createFirstLetterRenderer):
+        (WebCore::supportsFirstLetter):
+        (WebCore::RenderTreeUpdater::FirstLetter::update):
+        * style/RenderTreeUpdaterFirstLetter.h: Added.
+
+2017-08-16  Xabier Rodriguez Calvar  <calvaris@igalia.com>
+
+        [GStreamer][EME] Rework handling key systems and UUIDs
+        https://bugs.webkit.org/show_bug.cgi?id=175567
+
+        Reviewed by Žan Doberšek.
+
+        The UUIDs and key system strings were moved to the
+        GStreamerEMEUtilities class because so far they were managed by
+        the decryptors and that was ugly.
+
+        * platform/GStreamer.cmake:
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
+        (WebCore::MediaPlayerPrivateGStreamerBase::supportsKeySystem):
+        * platform/graphics/gstreamer/eme/GStreamerEMEUtilities.cpp: Added.
+        * platform/graphics/gstreamer/eme/GStreamerEMEUtilities.h: Added.
+        (WebCore::GStreamerEMEUtilities::isClearKeyKeySystem):
+        (WebCore::GStreamerEMEUtilities::keySystemToUuid):
+        * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.cpp:
+        (webkit_media_clear_key_decrypt_class_init):
+        * platform/graphics/gstreamer/eme/WebKitClearKeyDecryptorGStreamer.h:
+
+2017-08-16  Andy Estes  <aestes@apple.com>
+
+        [Payment Request] Add an ENABLE flag and an experimental feature preference
+        https://bugs.webkit.org/show_bug.cgi?id=175622
+
+        Reviewed by Tim Horton.
+
+        * Configurations/FeatureDefines.xcconfig:
+        * page/Settings.in:
+
+2017-08-15  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Make DataTransferItemList work with plain text entries
+        https://bugs.webkit.org/show_bug.cgi?id=175596
+
+        Reviewed by Wenson Hsieh.
+
+        Added the basic machinery to get the list of plain text items to DataTransferItemList and DataTransferItem.
+
+        Each DataTransferItem now depends on DataTransfer so it does ref-forwarding like DataTransferItemList to make
+        DataTransfer alive as long as any DataTransferItem is alive.
+
+        Specifications: https://html.spec.whatwg.org/multipage/dnd.html#the-datatransferitem-interface
+                        https://html.spec.whatwg.org/multipage/dnd.html#the-datatransferitemlist-interface
+
+        Tests: editing/pasteboard/datatransfer-items-drop-plaintext-file.html
+               editing/pasteboard/datatransfer-items-paste-plaintext.html
+
+        * dom/DataTransferItem.cpp:
+        (WebCore::DataTransferItem::DataTransferItem): Added two variants one for plain text and another one for a file.
+        (WebCore::DataTransferItem::kind const): Rewritten.
+        (WebCore::DataTransferItem::getAsString const): Implemented.
+        (WebCore::DataTransferItem::getAsFile const): Implemented.
+        * dom/DataTransferItem.h:
+        (WebCore::DataTransferItem::ref): Added.
+        (WebCore::DataTransferItem::deref): Added.
+        (WebCore::DataTransferItem::type const): Returns String instead of AtomicString.
+        (WebCore::DataTransferItem::kind const): Moved to cpp.
+        * dom/DataTransferItem.idl: Removed NoInterfaceObject since the interface object should exist on DOMWindow.
+        * dom/DataTransferItemList.cpp:
+        (WebCore::DataTransferItemList::length): Implemented.
+        (WebCore::DataTransferItemList::item): Ditto.
+        (WebCore::isSupportedType): Added. For now, we only support text/plain.
+        (WebCore::DataTransferItemList::ensureItems): Added. Constructs the list of DataTransferItems.
+        * dom/DataTransferItemList.h:
+        (DataTransferItemList): Added m_items. The list is filled lazily by ensureItems.
+        * dom/DataTransferItemList.idl: Removed NoInterfaceObject since the interface object should exist on DOMWindow.
+
+2017-08-15  Simon Fraser  <simon.fraser@apple.com>
+
+        Remove ScrollView::clipsRepaints() which was only used by Chromium
+        https://bugs.webkit.org/show_bug.cgi?id=175594
+
+        Reviewed by Tim Horton.
+
+        clipsRepaints() was added in r74568 but was only used by Chromium. It's always
+        true for other platforms, so remove conditionals that test for it and assume true.
+
+        * page/FrameView.cpp:
+        (WebCore::FrameView::scrollContentsFastPath):
+        * platform/ScrollView.cpp:
+        (WebCore::ScrollView::repaintContentRectangle):
+        (WebCore::ScrollView::setClipsRepaints): Deleted.
+        * platform/ScrollView.h:
+        (WebCore::ScrollView::clipsRepaints const): Deleted.
+
+2017-08-15  Simon Fraser  <simon.fraser@apple.com>
+
+        Allow WebCore logging channels to be set from the UI process
+        https://bugs.webkit.org/show_bug.cgi?id=175608
+
+        Reviewed by Tim Horton.
+
+        Change initializeLogChannelsIfNecessary() to take an optional String, which can
+        be a list of log channels passed from the UI process.
+
+        * platform/LogInitialization.h:
+        * platform/Logging.cpp:
+        (WebCore::initializeLogChannelsIfNecessary):
+
+2017-08-15  Chris Dumez  <cdumez@apple.com>
+
+        Fetch / Beacon: Use "application/octet-stream" Content-Type for payloads of type ArrayBuffer / ArrayBufferView
+        https://bugs.webkit.org/show_bug.cgi?id=175600
+
+        Reviewed by Youenn Fablet.
+
+        Use "application/octet-stream" Content-Type for payloads of type ArrayBuffer / ArrayBufferView in Fetch & Beacon.
+        If we don't set a Content-Type header, our underlying network stack is going to add a "application/x-www-form-urlencoded"
+        Content-Type header, which is worse.
+
+        Chrome is already using "application/octet-stream" Content-Type in Beacon, but use no Content-Type in Fetch.
+        The Fetch/Beacon specification says we should have no Content-Type header in this case but this is unfortunately
+        not something we can support at the moment. Using "application/octet-stream" Content-Type for now seems like the
+        lesser evil.
+
+        Test: http/wpt/fetch/fetch-request-arraybuffer-content-type.html
+
+        * Modules/fetch/FetchBody.cpp:
+        (WebCore::FetchBody::extract):
+        * platform/network/HTTPHeaderValues.cpp:
+        (WebCore::HTTPHeaderValues::octetStreamContentType):
+        * platform/network/HTTPHeaderValues.h:
+
+2017-08-15  Robin Morisset  <rmorisset@apple.com>
+
+        Change the order of arguments of JSWithScope::create() for consistency
+        https://bugs.webkit.org/show_bug.cgi?id=175585
+
+        Reviewed by Saam Barati.
+
+        No change of behavior.
+
+        * bindings/js/JSHTMLElementCustom.cpp:
+        (WebCore::JSHTMLElement::pushEventHandlerScope const):
+
+2017-08-15  Youenn Fablet  <youenn@apple.com>
+
+        [Cache API] Ensure ResourceResponse is not null when redirected/tainting/type fields are set
+        https://bugs.webkit.org/show_bug.cgi?id=175538
+
+        Reviewed by Chris Dumez.
+
+        No change of behavior.
+        This change ensures that response type is preserved when encoding/decoding ResourceResponse, in particular the error type.
+        This will allow Cache API to preserve responses when reading them from a different process.
+
+        * platform/network/ResourceResponseBase.cpp:
+        (WebCore::ResourceResponseBase::setType):
+        * platform/network/ResourceResponseBase.h:
+        (WebCore::ResourceResponseBase::setType):
+
+2017-08-15  Chris Dumez  <cdumez@apple.com>
+
+        Update CachedResourceLoader::requestResource() to return a WTF::Expected
+        https://bugs.webkit.org/show_bug.cgi?id=175505
+
+        Reviewed by Youenn Fablet.
+
+        Update CachedResourceLoader::requestResource() to return a WTF::Expected
+        type instead of using an out parameter for the ResourceError in case of
+        synchronous failure.
+
+        * Modules/beacon/NavigatorBeacon.cpp:
+        (WebCore::NavigatorBeacon::sendBeacon):
+        * bindings/js/CachedScriptFetcher.cpp:
+        (WebCore::CachedScriptFetcher::requestScriptWithCache const):
+        * css/CSSFontFaceSrcValue.cpp:
+        (WebCore::CSSFontFaceSrcValue::cachedFont):
+        * css/CSSImageSetValue.cpp:
+        (WebCore::CSSImageSetValue::loadBestFitImage):
+        * css/CSSImageValue.cpp:
+        (WebCore::CSSImageValue::loadImage):
+        * css/StyleRuleImport.cpp:
+        (WebCore::StyleRuleImport::requestStyleSheet):
+        * dom/ProcessingInstruction.cpp:
+        (WebCore::ProcessingInstruction::checkStyleSheet):
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::process):
+        * loader/CrossOriginPreflightChecker.cpp:
+        (WebCore::CrossOriginPreflightChecker::startPreflight):
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::startLoadingMainResource):
+        * loader/DocumentThreadableLoader.cpp:
+        (WebCore::DocumentThreadableLoader::loadRequest):
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
+        * loader/FrameLoader.h:
+        * loader/ImageLoader.cpp:
+        (WebCore::ImageLoader::updateFromElement):
+        * loader/LinkLoader.cpp:
+        (WebCore::LinkLoader::preloadIfNeeded):
+        * loader/MediaResourceLoader.cpp:
+        (WebCore::MediaResourceLoader::requestResource):
+        * loader/TextTrackLoader.cpp:
+        (WebCore::TextTrackLoader::load):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::castCachedResourceTo):
+        (WebCore::CachedResourceLoader::requestImage):
+        (WebCore::CachedResourceLoader::requestFont):
+        (WebCore::CachedResourceLoader::requestTextTrack):
+        (WebCore::CachedResourceLoader::requestCSSStyleSheet):
+        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
+        (WebCore::CachedResourceLoader::requestScript):
+        (WebCore::CachedResourceLoader::requestXSLStyleSheet):
+        (WebCore::CachedResourceLoader::requestSVGDocument):
+        (WebCore::CachedResourceLoader::requestLinkResource):
+        (WebCore::CachedResourceLoader::requestMedia):
+        (WebCore::CachedResourceLoader::requestIcon):
+        (WebCore::CachedResourceLoader::requestRawResource):
+        (WebCore::CachedResourceLoader::requestBeaconResource):
+        (WebCore::CachedResourceLoader::requestMainResource):
+        (WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
+        (WebCore::CachedResourceLoader::requestResource):
+        (WebCore::CachedResourceLoader::preload):
+        * loader/cache/CachedResourceLoader.h:
+        * loader/cache/CachedSVGDocumentReference.cpp:
+        (WebCore::CachedSVGDocumentReference::load):
+        * loader/icon/IconLoader.cpp:
+        (WebCore::IconLoader::startLoading):
+        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
+        (WebCore::WebCoreAVFResourceLoader::startLoading):
+        * svg/SVGFEImageElement.cpp:
+        (WebCore::SVGFEImageElement::requestImageResource):
+        * svg/SVGFontFaceUriElement.cpp:
+        (WebCore::SVGFontFaceUriElement::loadFont):
+        * svg/SVGUseElement.cpp:
+        (WebCore::SVGUseElement::updateExternalDocument):
+        * xml/XSLImportRule.cpp:
+        (WebCore::XSLImportRule::loadSheet):
+
+2017-08-15  Don Olmstead  <don.olmstead@sony.com>
+
+        [PAL] Move Sleep classes into PAL
+        https://bugs.webkit.org/show_bug.cgi?id=175456
+
+        Reviewed by Ryosuke Niwa.
+
+        No new tests. No change in behavior.
+
+        * CMakeLists.txt:
+        * PlatformMac.cmake:
+        * WebCore.xcodeproj/project.pbxproj:
+        * html/HTMLMediaElement.cpp:
+        * html/HTMLMediaElement.h:
+        * platform/audio/PlatformMediaSessionManager.cpp:
+        * platform/audio/PlatformMediaSessionManager.h:
+        * platform/mac/WebVideoFullscreenController.h:
+        * platform/mac/WebVideoFullscreenController.mm:
+
+2017-08-15  Youenn Fablet  <youenn@apple.com>
+
+        [Cache API] Adding generic support for CacheStorage and Cache methods
+        https://bugs.webkit.org/show_bug.cgi?id=175455
+
+        Reviewed by Chris Dumez.
+
+        Covered by existing tests.
+
+        Adding a CacheStorageProvider abstraction that creates a CacheStorageConnection.
+        The CacheStorageProvider is accessed from the page for Document calls.
+        The CacheStorageConnection is responsible to implement the read/write operations on the cache database.
+        At the moment, it does nothing but return not implemented errors.
+
+        Implementing CacheStorage APIs and Cache APIs based on the CacheStorageConnection except for Cache add and addAll which will be implemented later on.
+        CacheStoragConnection is responsible to read/write CacheStorage list of caches and each individual cache.
+        The CacheStorageConnection is a generic connection and not tied to any document/context.
+        CacheStorage objects are manipulated by providing to the connection the origin of the context.
+        CacheStorage are global to all contexts with the same origin.
+        Cache objects are manipulated by an ID that is given initially by the CacheStorageEngine when opening the Cache object.
+
+        Adding various accessors and constructors for Fetch constructs as needed by the Cache API implementation.
+
+        * Modules/cache/Cache.cpp:
+        (WebCore::Cache::Cache):
+        (WebCore::Cache::~Cache):
+        The CacheStorageConnection is a generic connection and not tied to any document/context.
+        (WebCore::Cache::match): Implementation of https://www.w3.org/TR/service-workers-1/#cache-match.
+        Redirect to matchAll as per spec.
+        (WebCore::Cache::matchAll): Implementation of https://www.w3.org/TR/service-workers-1/#cache-matchAll.
+        Checks for request as per spec. Then either refresh the request to response map and return all responses.
+        Or call the query cache algorithm and return copies of the responses (using clone).
+        (WebCore::Cache::put):
+        Check the request and response as per spec.
+        Add temporary rejection cases (being loaded responses, responses with ReadableStream) as there is no support for them right now.
+        Call the batch put operation.
+        (WebCore::Cache::remove):
+        Check the request and response as per spec.
+        Call the batch delete operation.
+        (WebCore::Cache::keys):
+        Refresh the request to response map and return corresponding requests.
+        Making sure to reuse the same request objects as per spec.
+        As per spec, the request to response map is ordered. We implement it as a Vector.
+        (WebCore::Cache::refreshRequestToResponseMap):
+        Use the cache storage connection to get an up-to-date list of cached records.
+        (WebCore::Cache::queryCacheMatch):
+        Implements the match algorithm defined in https://www.w3.org/TR/service-workers-1/#query-cache-algorithm.
+        This is split for queryCache as cache storage engine will need to use it when implementing the delete operation.
+        (WebCore::Cache::queryCache):
+        Full implementation of https://www.w3.org/TR/service-workers-1/#query-cache-algorithm with no targetStorage argument.
+        (WebCore::Cache::queryCacheWithTargetStorage):
+        Full implementation of https://www.w3.org/TR/service-workers-1/#query-cache-algorithm with a provided targetStorage argument.
+        (WebCore::Cache::batchDeleteOperation):
+        Implementation of https://www.w3.org/TR/service-workers-1/#batch-cache-operations-algorithm but dedicated to a delete operation.
+        Delete operation are always done one at a time.
+        (WebCore::Cache::batchPutOperation):
+        Implementation of https://www.w3.org/TR/service-workers-1/#batch-cache-operations-algorithm dedicated to a put operation.
+        Put operation takes one record for put but can take several records in the case of addAll, hence the current design.
+        (WebCore::Cache::updateRequestToResponseMap):
+        Update the cache request to response map based on the records retrieved from the cache storage connection.
+        * Modules/cache/Cache.h:
+        (WebCore::Cache::create):
+        (WebCore::Cache::name const):
+        * Modules/cache/Cache.idl:
+        * Modules/cache/CacheStorage.cpp:
+        (WebCore::CacheStorage::origin const):
+        Computing the cache origin that is passed to the CacheStorageConnection.
+        (WebCore::CacheStorage::has):
+        Implementation of https://www.w3.org/TR/service-workers-1/#cache-storage-has.
+        Call the cache storage connection to refresh its cache map.
+        Then use it to check whether a cache exists.
+        (WebCore::CacheStorage::refreshCacheMap):
+        Use the cache storage connection to get the list of existing caches.
+        (WebCore::CacheStorage::open):
+        Implementation of https://www.w3.org/TR/service-workers-1/#cache-storage-open.
+        Refreshing the cache map so as to return a pre-existing cache if any.
+        (WebCore::CacheStorage::remove):
+        Implementation of https://www.w3.org/TR/service-workers-1/#cache-storage-delete-method.
+        Refreshing the cache map so as to do nothing if there is no cache to remove.
+        (WebCore::CacheStorage::keys):
+        Implementation of https://www.w3.org/TR/service-workers-1/#cache-storage-keys-method.
+        Refreshing the cache map and returnin its keys.
+        As per spec, the cache map is ordered. We implement it as a Vector.
+        (WebCore::CacheStorage::cacheMap):
+        Get the list of cache objects, used as a private accessor for JS built-ins.
+        * Modules/cache/CacheStorage.h:
+        (WebCore::CacheStorage::create):
+        (WebCore::CacheStorage::CacheStorage):
+        * Modules/cache/CacheStorageConnection.cpp: Added.
+        (WebCore::CacheStorageConnection::exceptionFromError):
+        * Modules/cache/CacheStorageConnection.h: Added.
+        Makes the link between Web facing Cache API and the cache storage engine.
+        Envisioned implementation are:
+        - One main thread connection used by all documents in the given process.
+        - One connection per worker that forwards the calls to the main thread and use the main thread connection afterwards.
+        (WebCore::CacheStorageConnection::create):
+        (WebCore::CacheStorageConnection::open):
+        (WebCore::CacheStorageConnection::remove):
+        (WebCore::CacheStorageConnection::refreshCacheMap):
+        (WebCore::CacheStorageConnection::refreshRequestToResponseMap):
+        (WebCore::CacheStorageConnection::batchDeleteOperation):
+        (WebCore::CacheStorageConnection::batchPutOperation):
+        * Modules/cache/CacheStorageRecord.h: Added. A fetch record from the Web facing cache API perspective.
+        * Modules/cache/DOMWindowCaches.cpp:
+        (WebCore::DOMWindowCaches::caches const):
+        * Modules/cache/WorkerGlobalScopeCaches.cpp:
+        (WebCore::WorkerGlobalScopeCaches::from):
+        (WebCore::WorkerGlobalScopeCaches::caches const):
+        * Modules/cache/WorkerGlobalScopeCaches.h:
+        (WebCore::WorkerGlobalScopeCaches::WorkerGlobalScopeCaches):
+        * Modules/fetch/FetchBodyOwner.h:
+        (WebCore::FetchBodyOwner::isReadableStreamBody const): Added getter as it is used by cache API.
+        * Modules/fetch/FetchHeaders.h:
+        (WebCore::FetchHeaders::create): Add another create as used by the cache API.
+        (WebCore::FetchHeaders::guard const): Added getter and IPC serializer as this is something that will be stored by the cache engine.
+        * Modules/fetch/FetchLoader.cpp:
+        (WebCore::FetchLoader::start):
+        * Modules/fetch/FetchRequest.cpp:
+        (WebCore::buildOptions): In case FetchRequest::create is called from C++, there is no need to set init.window to a null value.
+        Add a check so that no value at all is the same as a null/undefined value.
+        (WebCore::FetchRequest::resourceRequest const):
+        * Modules/fetch/FetchRequest.h:
+        * Modules/fetch/FetchResponse.h:
+        * WebCore.xcodeproj/project.pbxproj:
+        * inspector/InspectorOverlay.cpp:
+        (WebCore::InspectorOverlay::overlayPage):
+        * page/CacheStorageProvider.h: Added.
+        Interface to create main thread cache storage connection for the given page.
+        There will be one provider for each process.
+        Passing a sessionID so that we will create a connection per session.
+        * page/Page.cpp:
+        (WebCore::Page::Page):
+        * page/Page.h:
+        (WebCore::Page::cacheStorageProvider):
+        * page/PageConfiguration.cpp:
+        (WebCore::PageConfiguration::PageConfiguration):
+        * page/PageConfiguration.h:
+        * svg/graphics/SVGImage.cpp:
+        (WebCore::SVGImage::dataChanged):
+
+2017-08-15  Chris Dumez  <cdumez@apple.com>
+
+        Implement quota limitation for keepalive Fetch requests
+        https://bugs.webkit.org/show_bug.cgi?id=175482
+
+        Reviewed by Sam Weinig and Youenn Fablet.
+
+        Implement quota limitation for keepalive Fetch requests as per:
+        - https://fetch.spec.whatwg.org/#http-network-or-cache-fetch (Step 9)
+
+        This partly works for Beacon as well, meaning that no Beacon with a body
+        over 64Kb can be sent. However, we don't keep track about wether or not
+        beacon loads are inflight or not.
+
+        Also update CachedResourceLoader::requestResource() so that the caller
+        can get a ResourceError when it returns null. This is useful for both
+        Fetch and Beacon to return better error messages.
+
+        Test: http/wpt/beacon/beacon-quota.html
+
+        * CMakeLists.txt:
+        * Modules/beacon/NavigatorBeacon.cpp:
+        (WebCore::NavigatorBeacon::sendBeacon):
+        * Modules/fetch/FetchBodyOwner.cpp:
+        (WebCore::FetchBodyOwner::BlobLoader::didReceiveResponse):
+        (WebCore::FetchBodyOwner::BlobLoader::didFail):
+        * Modules/fetch/FetchBodyOwner.h:
+        * Modules/fetch/FetchLoader.cpp:
+        (WebCore::FetchLoader::start):
+        (WebCore::FetchLoader::didFail):
+        * Modules/fetch/FetchLoaderClient.h:
+        * Modules/fetch/FetchResponse.cpp:
+        (WebCore::FetchResponse::BodyLoader::didFail):
+        * Modules/fetch/FetchResponse.h:
+        * WebCore.xcodeproj/project.pbxproj:
+        * loader/DocumentThreadableLoader.cpp:
+        (WebCore::DocumentThreadableLoader::loadRequest):
+        * loader/cache/CachedResource.cpp:
+        (WebCore::CachedResource::load):
+        * loader/cache/CachedResource.h:
+        (WebCore::CachedResource::isMainOrMediaOrIconOrRawResource const):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::createResource):
+        (WebCore::CachedResourceLoader::requestImage):
+        (WebCore::CachedResourceLoader::requestFont):
+        (WebCore::CachedResourceLoader::requestTextTrack):
+        (WebCore::CachedResourceLoader::requestCSSStyleSheet):
+        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
+        (WebCore::CachedResourceLoader::requestScript):
+        (WebCore::CachedResourceLoader::requestXSLStyleSheet):
+        (WebCore::CachedResourceLoader::requestSVGDocument):
+        (WebCore::CachedResourceLoader::requestLinkResource):
+        (WebCore::CachedResourceLoader::requestMedia):
+        (WebCore::CachedResourceLoader::requestIcon):
+        (WebCore::CachedResourceLoader::requestRawResource):
+        (WebCore::CachedResourceLoader::requestBeaconResource):
+        (WebCore::CachedResourceLoader::requestMainResource):
+        (WebCore::CachedResourceLoader::requestResource):
+        (WebCore::CachedResourceLoader::preload):
+        * loader/cache/CachedResourceLoader.h:
+        * loader/cache/KeepaliveRequestTracker.cpp: Added.
+        (WebCore::KeepaliveRequestTracker::~KeepaliveRequestTracker):
+        (WebCore::KeepaliveRequestTracker::canLoadRequest):
+        (WebCore::KeepaliveRequestTracker::registerRequest):
+        (WebCore::KeepaliveRequestTracker::responseReceived):
+        (WebCore::KeepaliveRequestTracker::notifyFinished):
+        (WebCore::KeepaliveRequestTracker::unregisterRequest):
+        * loader/cache/KeepaliveRequestTracker.h: Added.
+        * platform/network/FormData.cpp:
+        (WebCore::FormDataElement::lengthInBytes const):
+        (WebCore::FormData::lengthInBytes const):
+        * platform/network/FormData.h:
+
+2017-08-15  Darin Adler  <darin@apple.com>
+
+        REGRESSION(r220052): http/tests/appcache/deferred-events-delete-while-raising-timer.html is crashing.
+        https://bugs.webkit.org/show_bug.cgi?id=175107
+
+        Reviewed by Alexey Proskuryakov.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::checkLoadComplete): Moved the assertion to after the null page check.
+
+2017-08-15  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r219504.
+        https://bugs.webkit.org/show_bug.cgi?id=175580
+
+        Broke Arabic text shaping (Requested by mcatanzaro on
+        #webkit).
+
+        Reverted changeset:
+
+        "[HarfBuzz] Decomposed Vietnamese characters are rendered
+        incorrectly"
+        https://bugs.webkit.org/show_bug.cgi?id=174418
+        http://trac.webkit.org/changeset/219504
+
+2017-08-14  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        WebDriver: handle click events on option elements
+        https://bugs.webkit.org/show_bug.cgi?id=174710
+        <rdar://problem/33459305>
+
+        Reviewed by Brian Burg.
+
+        Export WebCore symbols required by WebKit layer.
+
+        * html/HTMLOptGroupElement.h:
+        * html/HTMLOptionElement.h:
+
+2017-08-14  Simon Fraser  <simon.fraser@apple.com>
+
+        Remove Proximity Events and related code
+        https://bugs.webkit.org/show_bug.cgi?id=175545
+
+        Reviewed by Daniel Bates.
+
+        No platform enables Proximity Events, so remove code inside ENABLE(PROXIMITY_EVENTS)
+        and other related code.
+
+        * CMakeLists.txt:
+        * Configurations/FeatureDefines.xcconfig:
+        * DerivedSources.cpp:
+        * Modules/proximity/DeviceProximityClient.h: Removed.
+        * Modules/proximity/DeviceProximityController.cpp: Removed.
+        * Modules/proximity/DeviceProximityController.h: Removed.
+        * Modules/proximity/DeviceProximityEvent.cpp: Removed.
+        * Modules/proximity/DeviceProximityEvent.h: Removed.
+        * Modules/proximity/DeviceProximityEvent.idl: Removed.
+        * dom/EventNames.h:
+        * dom/EventNames.in:
+        * history/PageCache.cpp:
+        (WebCore::canCachePage):
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::addEventListener):
+        (WebCore::DOMWindow::removeEventListener):
+        (WebCore::DOMWindow::removeAllEventListeners):
+        * page/DOMWindow.idl:
+        * page/DiagnosticLoggingKeys.cpp:
+        (WebCore::DiagnosticLoggingKeys::deviceProximityKey): Deleted.
+        * page/DiagnosticLoggingKeys.h:
+        * testing/Internals.cpp:
+        (WebCore::Internals::setDeviceProximity): Deleted.
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+2017-08-14  Simon Fraser  <simon.fraser@apple.com>
+
+        Remove ENABLE(REQUEST_AUTOCOMPLETE) code, which was disabled everywhere
+        https://bugs.webkit.org/show_bug.cgi?id=175504
+
+        Reviewed by Sam Weinig.
+        
+        REQUEST_AUTOCOMPLETE was added in r133396 then removed in r148731, but brought back in r173596,
+        however no further work was done, and it was left disabled. So remove the code.
+
+        * Configurations/FeatureDefines.xcconfig:
+        * DerivedSources.make:
+        * WebCore.xcodeproj/project.pbxproj:
+        * dom/AutocompleteErrorEvent.h: Removed.
+        * dom/AutocompleteErrorEvent.idl: Removed.
+        * dom/EventNames.in:
+        * dom/GlobalEventHandlers.idl:
+        * html/HTMLFormElement.cpp:
+        (WebCore::HTMLFormElement::HTMLFormElement):
+        (WebCore::HTMLFormElement::requestAutocomplete): Deleted.
+        (WebCore::HTMLFormElement::finishRequestAutocomplete): Deleted.
+        (WebCore::HTMLFormElement::requestAutocompleteTimerFired): Deleted.
+        * html/HTMLFormElement.h:
+        * html/HTMLFormElement.idl:
+        * loader/EmptyClients.cpp:
+        * loader/FrameLoaderClient.h:
+
+2017-08-14  Chris Dumez  <cdumez@apple.com>
+
+        XHR should only fire an abort event if the cancellation was requested by the client
+        https://bugs.webkit.org/show_bug.cgi?id=175546
+
+        Reviewed by Youenn Fablet.
+
+        XHR should only fire an abort event if the cancellation was requested by the client, otherwise it should fire an error event.
+        Blink and Gecko already match the specification.
+
+        Specification:
+        - https://xhr.spec.whatwg.org/#handle-errors
+        - https://xhr.spec.whatwg.org/#the-abort()-method
+
+        Test: http/tests/navigation/page-cache-xhr-in-pagehide.html
+
+        * xml/XMLHttpRequest.cpp:
+        (WebCore::XMLHttpRequest::open):
+        (WebCore::XMLHttpRequest::abort):
+        (WebCore::XMLHttpRequest::abortError):
+        (WebCore::XMLHttpRequest::didFail):
+        * xml/XMLHttpRequest.h:
+
+2017-08-14  Simon Fraser  <simon.fraser@apple.com>
+
+        Remove ENABLE_VIEW_MODE_CSS_MEDIA and related code
+        https://bugs.webkit.org/show_bug.cgi?id=175557
+
+        Reviewed by Jon Lee.
+
+        No port cares about the ENABLE(VIEW_MODE_CSS_MEDIA) feature, so remove it.
+
+        * Configurations/FeatureDefines.xcconfig:
+        * css/CSSValueKeywords.in:
+        * css/MediaFeatureNames.h:
+        * css/MediaQueryEvaluator.cpp:
+        (WebCore::viewModeEvaluate): Deleted.
+        * css/MediaQueryExpression.cpp:
+        (WebCore::featureWithValidIdent):
+        (WebCore::isFeatureValidWithoutValue):
+        * page/Page.cpp:
+        (WebCore::Page::stringToViewMode): Deleted.
+        (WebCore::Page::setViewMode): Deleted.
+        * page/Page.h:
+        (WebCore::Page::viewMode const): Deleted.
+
+2017-08-14  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        Parse font-display
+        https://bugs.webkit.org/show_bug.cgi?id=175382
+
+        Reviewed by Simon Fraser.
+
+        The syntax is very simple: font-display: auto | block | swap | fallback | optional.
+        So, parsing support is quite straightfoward.
+
+        Test: fast/text/font-display/parse.html
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSFontFace.cpp:
+        (WebCore::CSSFontFace::setLoadingBehavior):
+        * css/CSSFontFace.h:
+        * css/CSSFontSelector.cpp:
+        (WebCore::CSSFontSelector::addFontFaceRule):
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        (WebCore::CSSPrimitiveValue::operator FontLoadingBehavior const):
+        * css/CSSProperties.json:
+        * css/CSSProperty.cpp:
+        (WebCore::CSSProperty::isDescriptorOnly):
+        * css/CSSValueKeywords.in:
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::consumeFontFaceFontDisplay):
+        (WebCore::CSSPropertyParser::parseFontFaceDescriptor):
+        * rendering/style/RenderStyleConstants.h:
+
+2017-08-14  Jer Noble  <jer.noble@apple.com>
+
+        Obj-C exception crash in AVStreamSession when using EME in Private Browsing mode
+        https://bugs.webkit.org/show_bug.cgi?id=175547
+
+        Reviewed by Eric Carlson.
+
+        When the storagePath() is empty, do not use those AVStreamSession APIs which require a valid file path to stored
+        proof-of-key-release data.
+
+        Drive-by fix: return emptyString() from HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory() when in Private
+        Browsing mode, to match the behavior of WebKitMediaKeySession.
+
+        * html/HTMLMediaElement.cpp:
+        (WebCore::HTMLMediaElement::mediaPlayerMediaKeysStorageDirectory const):
+        * platform/graphics/avfoundation/objc/CDMSessionAVStreamSession.mm:
+        (WebCore::CDMSessionAVStreamSession::releaseKeys):
+        (WebCore::CDMSessionAVStreamSession::update):
+        (WebCore::CDMSessionAVStreamSession::generateKeyReleaseMessage):
+
+2017-08-14  Andy Estes  <aestes@apple.com>
+
+        REGRESSION (r220456): Crash in PreviewLoader::shouldCreateForMIMEType() when a ResourceResponse has a null MIME type
+        https://bugs.webkit.org/show_bug.cgi?id=175548
+        <rdar://problem/33866206>
+
+        Reviewed by Brady Eidson.
+
+        New API test: QuickLook.ShouldCreateForMIMEType
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * loader/ios/PreviewLoader.h:
+        * loader/ios/PreviewLoader.mm:
+        (WebCore::PreviewLoader::shouldCreateForMIMEType): Check if mimeType is a null String before
+        calling HashSet::contains().
+
+2017-08-14  Andy Estes  <aestes@apple.com>
+
+        [Apple Pay] Add support for phonetic contact names
+        https://bugs.webkit.org/show_bug.cgi?id=175537
+        <rdar://problem/32002644>
+
+        Reviewed by Tim Horton.
+
+        * Modules/applepay/ApplePayError.idl: Defined "phoneticName" in ApplePayErrorContactField.
+        * Modules/applepay/ApplePayPaymentContact.h: Defined phoneticGivenName and phoneticFamilyName
+        in ApplePayPaymentContact.
+        * Modules/applepay/ApplePayPaymentContact.idl: Ditto.
+        * Modules/applepay/ApplePayPaymentRequest.h: Defined PhoneticName in
+        ApplePayPaymentRequest::ContactField.
+        * Modules/applepay/ApplePayPaymentRequest.idl: Defined "phoneticName" in ApplePayContactField.
+        * Modules/applepay/ApplePaySession.cpp:
+        (WebCore::convertAndValidate): Added a version parameter. Added code to convert
+        ContactField::PhoneticName, throwing an exception if version is less than 3.
+        * Modules/applepay/PaymentContact.h: Added a version parameter to fromApplePayPaymentContact().
+        * Modules/applepay/PaymentRequest.h: Defined phoneticName in PaymentRequest::ContactFields
+        and defined PhoneticName in PaymentError::ContactField.
+        * Modules/applepay/cocoa/PaymentContactCocoa.mm:
+        (WebCore::convert): Added a version parameter. Set a phoneticRepresentation on the
+        PKContact's name if there are non-empty phonetic names and version is 3 or greater.
+        (WebCore::PaymentContact::fromApplePayPaymentContact): Passed version to convert().
+
 2017-08-14  Said Abou-Hallawa  <sabouhallawa@apple.com>
 
         The none smooth stroke applied to an SVG shape breaks its hit testing