Resource Load Statistics: Add alternate classification method
[WebKit-https.git] / Source / WebCore / ChangeLog
index 2704078..5caa6ae 100644 (file)
@@ -1,3 +1,603 @@
+2017-02-21  John Wilander  <wilander@apple.com>
+
+        Resource Load Statistics: Add alternate classification method
+        https://bugs.webkit.org/show_bug.cgi?id=168347
+        <rdar://problem/30352793>
+
+        Reviewed by Alex Christensen.
+
+        This patch only adds test infrastructure in WebCore.
+
+        Tests: http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html
+               http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html
+               http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html
+               http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html
+               http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html
+               http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html
+               http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html
+               http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html
+
+        * loader/ResourceLoadObserver.cpp:
+        (WebCore::ResourceLoadObserver::setSubframeUnderTopFrameOrigin):
+        (WebCore::ResourceLoadObserver::setSubresourceUnderTopFrameOrigin):
+        (WebCore::ResourceLoadObserver::setSubresourceUniqueRedirectTo):
+        * loader/ResourceLoadObserver.h:
+
+2017-02-21  Alex Christensen  <achristensen@webkit.org>
+
+        Fix CMake build.
+
+        * PlatformMac.cmake:
+
+2017-02-21  Simon Fraser  <simon.fraser@apple.com>
+
+        Add Media Streams and Capture to features.json.
+
+        * features.json:
+
+2017-02-21  Jiewen Tan  <jiewen_tan@apple.com>
+
+        Clarify the status of 'webkitSubtle' and 'subtle' attributes on the WebCrypto API.
+
+        * features.json:
+
+2017-02-21  Romain Bellessort  <romain.bellessort@crf.canon.fr>
+
+        [Readable Streams API] Add ReadableStreamBYOBRequest view getter
+        https://bugs.webkit.org/show_bug.cgi?id=168652
+
+        Reviewed by Youenn Fablet.
+
+        Implemented getter for ReadableStreamBYOBRequest view attribute.
+        
+        Added 1 test checking that view length corresponds to autoAllocateChunkSize.
+        Also updated test expectations for W3C imported tests.
+
+        * Modules/streams/ReadableByteStreamInternals.js:
+        (isReadableStreamBYOBRequest): Added.
+        * Modules/streams/ReadableStreamBYOBRequest.js:
+        (view): Added.
+
+2017-02-21  Simon Fraser  <simon.fraser@apple.com>
+
+        Clarify the status of 'webkitSubtle' and 'subtle' attributes on the WebCrypto API.
+
+        * features.json:
+
+2017-02-21  Youenn Fablet  <youenn@apple.com>
+
+        [WebRTC] ICE candidates should be filtered according a policy
+        https://bugs.webkit.org/show_bug.cgi?id=168348
+
+        Reviewed by Alex Christensen.
+
+        Covered by manual tests. Should be covered in the future by layout tests with dedicated internals API.
+
+        Adding support for ICE candidate filtering at RTCPeerConnection level.
+        If ICE candidate filtering is on (by default), host candidates are stored and not sent immediately.
+        Reflexive candidates are purged from raddr information to not leak the host IP address.
+
+        Stored candidates may be advertised to the JS layer if RTCController is notified of a change of filtering policy.
+        To implement that, PeerConnectionBackend stores all filtered out candidates and RTCPeerConnection register
+        themselves to RTCController to get notifications of filtering policy changes.
+
+        Making RTCPeerConnection use setPendingActivity throughout its lifetime.
+        This ensures it does not get collected until the page is off or close() is called on the object.
+
+        Adding support for enumerating or not all interfaces at libwebrtc level.
+        This choice is done at creation of the peer connection.
+
+        * Modules/mediastream/PeerConnectionBackend.cpp:
+        (WebCore::PeerConnectionBackend::enableICECandidateFiltering):
+        (WebCore::PeerConnectionBackend::disableICECandidateFiltering):
+        (WebCore::filterICECandidate):
+        (WebCore::PeerConnectionBackend::newICECandidate):
+        * Modules/mediastream/PeerConnectionBackend.h:
+        * Modules/mediastream/RTCController.cpp: Added.
+        (WebCore::RTCController::remove):
+        (WebCore::RTCController::add):
+        (WebCore::RTCController::disableICECandidateFiltering):
+        (WebCore::RTCController::enableICECandidateFiltering):
+        * Modules/mediastream/RTCController.h: Added.
+        * Modules/mediastream/RTCPeerConnection.cpp:
+        (WebCore::RTCPeerConnection::create):
+        (WebCore::RTCPeerConnection::close):
+        (WebCore::RTCPeerConnection::rtcController):
+        (WebCore::RTCPeerConnection::registerToController):
+        (WebCore::RTCPeerConnection::unregisterFromController):
+        * Modules/mediastream/RTCPeerConnection.h:
+        * Modules/mediastream/libwebrtc/LibWebRTCMediaEndpoint.cpp:
+        (WebCore::LibWebRTCMediaEndpoint::OnIceCandidate):
+        * WebCore.xcodeproj/project.pbxproj:
+        * page/Page.h:
+        (WebCore::Page::rtcController):
+        * platform/mediastream/libwebrtc/LibWebRTCProvider.cpp:
+        (WebCore::LibWebRTCProvider::createPeerConnection):
+        * platform/mediastream/libwebrtc/LibWebRTCProvider.h:
+
+2017-02-21  Jiewen Tan  <jiewen_tan@apple.com>
+
+        Unreviewed, update WebCrypto API feature status.
+
+        * features.json:
+
+2017-02-21  Simon Fraser  <simon.fraser@apple.com>
+
+        Fix the bad JSON.
+
+        * features.json:
+
+2017-02-21  Andreas Kling  <akling@apple.com>
+
+        [iOS] WebKit1 should use shared memory pressure handler code.
+        <https://webkit.org/b/168653>
+
+        Reviewed by Antti Koivisto.
+
+        Remove iOS WebKit1 specific members and code from MemoryPressureHandler in favor
+        of using the same code that iOS WebKit2 and macOS WebKit uses.
+
+        * page/cocoa/MemoryReleaseCocoa.mm:
+        (WebCore::platformReleaseMemory): Add two cleanup calls that were only in the iOS WebView code.
+        * platform/MemoryPressureHandler.h:
+        (WebCore::MemoryPressureHandler::m_releaseMemoryBlock): Deleted.
+        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
+        (WebCore::respondToMemoryPressureCallback): Deleted.
+        (WebCore::MemoryPressureHandler::installMemoryReleaseBlock): Deleted.
+        (WebCore::MemoryPressureHandler::setReceivedMemoryPressure): Deleted.
+        (WebCore::MemoryPressureHandler::clearMemoryPressure): Deleted.
+        (WebCore::MemoryPressureHandler::shouldWaitForMemoryClearMessage): Deleted.
+        (WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded): Deleted.
+
+2017-02-21  Anders Carlsson  <andersca@apple.com>
+
+        Fix two failing WebKit legacy tests
+        https://bugs.webkit.org/show_bug.cgi?id=168667
+
+        Reviewed by Tim Horton.
+
+        Handle the NSPasteboardTypeString type.
+
+        * platform/mac/PasteboardMac.mm:
+        (WebCore::Pasteboard::read):
+        (WebCore::addHTMLClipboardTypesForCocoaType):
+
+2017-02-21  Simon Fraser  <simon.fraser@apple.com>
+
+        Add Web Audio and Web MIDI to features.json.
+
+        * features.json:
+
+2017-02-21  Antti Koivisto  <antti@apple.com>
+
+        REGRESSION(r207669): Crash after mutating selector text
+        https://bugs.webkit.org/show_bug.cgi?id=168655
+        <rdar://problem/30632111>
+
+        Reviewed by Brent Fulgham.
+
+        Test: fast/css/selector-text-mutation-crash.html
+
+        * style/StyleScope.cpp:
+        (WebCore::Style::Scope::scheduleUpdate):
+
+        Clear the style resolver immediately if style sheet content changes. The resolver may
+        have data structures that point to the old sheet contents.
+
+        The resolver would get wiped anyway when the scheduled update actually occurs.
+
+2017-02-21  Jiewen Tan  <jiewen_tan@apple.com>
+
+        [WebCrypto] Add support for AES-CFB
+        https://bugs.webkit.org/show_bug.cgi?id=168344
+        <rdar://problem/20940221>
+
+        Reviewed by Brent Fulgham.
+
+        This patch adds support for AES-CFB. Operations of AES-CFB include: encrypt, decrypt, generateKey,
+        importKey, exportKey, wrapKey, and unwrapKey. This implementation follows a slightly old version
+        of WebCryptoAPI spec: https://www.w3.org/TR/2014/CR-WebCryptoAPI-20141211/#aes-cfb.
+
+        Tests: crypto/subtle/aes-cbc-cfb-decrypt-malformed-parameters.html
+               crypto/subtle/aes-cbc-cfb-encrypt-malformed-parameters.html
+               crypto/subtle/aes-cbc-import-key-unwrap-jwk-rsa-key-public.html
+               crypto/subtle/aes-cfb-generate-export-key-jwk-length-128.html
+               crypto/subtle/aes-cfb-generate-export-key-jwk-length-192.html
+               crypto/subtle/aes-cfb-generate-export-key-jwk-length-256.html
+               crypto/subtle/aes-cfb-generate-export-raw-key.html
+               crypto/subtle/aes-cfb-generate-key-encrypt-decrypt.html
+               crypto/subtle/aes-cfb-generate-key.html
+               crypto/subtle/aes-cfb-import-jwk-key-length-128.html
+               crypto/subtle/aes-cfb-import-jwk-key-length-192.html
+               crypto/subtle/aes-cfb-import-jwk-key-length-256.html
+               crypto/subtle/aes-cfb-import-key-decrypt.html
+               crypto/subtle/aes-cfb-import-key-encrypt.html
+               crypto/subtle/aes-cfb-import-key-unwrap-jwk-key.html
+               crypto/subtle/aes-cfb-import-key-unwrap-raw-key.html
+               crypto/subtle/aes-cfb-import-key-wrap-jwk-key.html
+               crypto/subtle/aes-cfb-import-key-wrap-raw-key.html
+               crypto/subtle/aes-cfb-import-raw-key.html
+               crypto/workers/subtle/aes-cfb-import-key-decrypt.html
+               crypto/workers/subtle/aes-cfb-import-key-encrypt.html
+               crypto/workers/subtle/aes-cfb-import-key-unwrap-key.html
+               crypto/workers/subtle/aes-cfb-import-key-wrap-key.html
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * PlatformGTK.cmake:
+        * PlatformMac.cmake:
+        * WebCore.xcodeproj/project.pbxproj:
+        Add CryptoAlgorithmAES_CFB.cpp,
+        change AesCbcParams.idl to AesCbcCfbParams.idl.
+        * bindings/js/JSSubtleCryptoCustom.cpp:
+        (WebCore::normalizeCryptoAlgorithmParameters):
+        Add support for AES-CFB.
+        * crypto/CryptoAlgorithm.h:
+        Include <wtf/Variant.h>.
+        * crypto/CryptoAlgorithmParameters.h:
+        Add support for AES-CFB.
+        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
+        (WebCore::CryptoAlgorithmAES_CBC::encrypt):
+        (WebCore::CryptoAlgorithmAES_CBC::decrypt):
+        Rename CryptoAlgorithmAesCbcParams to CryptoAlgorithmAesCbcCfbParams.
+        * crypto/algorithms/CryptoAlgorithmAES_CFB.cpp: Added.
+        (WebCore::usagesAreInvalidForCryptoAlgorithmAES_CFB):
+        (WebCore::CryptoAlgorithmAES_CFB::create):
+        (WebCore::CryptoAlgorithmAES_CFB::identifier):
+        (WebCore::CryptoAlgorithmAES_CFB::encrypt):
+        (WebCore::CryptoAlgorithmAES_CFB::decrypt):
+        (WebCore::CryptoAlgorithmAES_CFB::generateKey):
+        (WebCore::CryptoAlgorithmAES_CFB::importKey):
+        (WebCore::CryptoAlgorithmAES_CFB::exportKey):
+        * crypto/algorithms/CryptoAlgorithmAES_CFB.h: Added.
+        * crypto/gnutls/CryptoAlgorithmAES_CFBGnuTLS.cpp: Added.
+        (WebCore::CryptoAlgorithmAES_CFB::platformEncrypt):
+        (WebCore::CryptoAlgorithmAES_CFB::platformDecrypt):
+        Add dummy support of AES_CFB for GTK+.
+        * crypto/mac/CryptoAlgorithmAES_CBCMac.cpp:
+        (WebCore::transformAES_CBC):
+        Drop conditional PLATFORM(COCOA).
+        (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
+        (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
+        Rename CryptoAlgorithmAesCbcParams to CryptoAlgorithmAesCbcCfbParams.
+        * crypto/mac/CryptoAlgorithmAES_CFBMac.cpp: Added.
+        (WebCore::transformAES_CFB):
+        (WebCore::CryptoAlgorithmAES_CFB::platformEncrypt):
+        (WebCore::CryptoAlgorithmAES_CFB::platformDecrypt):
+        * crypto/mac/CryptoAlgorithmRegistryMac.cpp:
+        (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
+        Add support for AES-CFB.
+        * crypto/parameters/AesCbcCfbParams.idl: Renamed from Source/WebCore/crypto/parameters/AesCbcParams.idl.
+        * crypto/parameters/CryptoAlgorithmAesCbcCfbParams.h: Renamed from Source/WebCore/crypto/parameters/CryptoAlgorithmAesCbcParams.h.
+        Since dictionaries AesCbcParams and AesCfbParams are essentially the same, I combine them together in our implementations.
+
+2017-02-21  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Unreviewed, fix the ToT iOS build
+
+        Adopt updated UIKit SPI and remove calls to the deprecated version.
+
+        * platform/ios/WebItemProviderPasteboard.mm:
+        (-[WebItemProviderPasteboard setItems:]):
+
+2017-02-21  Per Arne Vollan  <pvollan@apple.com>
+
+        [Win] WebView is not painting in accelerated compositing mode.
+        https://bugs.webkit.org/show_bug.cgi?id=168654
+
+        Reviewed by Brent Fulgham.
+
+        Initializing the uncommitted layer change flags to CoverageRectChanged in GraphicsLayerCA,
+        stops WebView painting in accelerated mode.
+
+        Covered by existing tests.
+
+        * platform/graphics/ca/GraphicsLayerCA.h:
+
+2017-02-21  Jer Noble  <jer.noble@apple.com>
+
+        Make logging in high-priority audio threads less expensive
+        https://bugs.webkit.org/show_bug.cgi?id=168639
+
+        Reviewed by Jon Lee.
+
+        Logging from inside a high-priority audio thread will make a number of calls to malloc, block, and
+        therefore cause audio glitches. Make this logging less expensive by dispatching to the main thread
+        before creating and outputting the log string.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/audio/mac/AudioSampleDataSource.mm: Renamed from Source/WebCore/platform/audio/mac/AudioSampleDataSource.cpp.
+        (WebCore::AudioSampleDataSource::pushSamplesInternal):
+        (WebCore::AudioSampleDataSource::pullSamplesInternal):
+
+2017-02-21  Jer Noble  <jer.noble@apple.com>
+
+        Give the Mock audio input a "hum" to make drop-outs more detectable
+        https://bugs.webkit.org/show_bug.cgi?id=168641
+
+        Reviewed by Eric Carlson.
+
+        Add two helper functions to generate waveforms: addHum() and writeHum(). Use these methods
+        to create a bip-bop audio buffer which can be used to "blit" a portion the waveform into the
+        destination buffer during rendering. The background hum must be seamless across multiple
+        pull operations, so add the hum sound during rendering.
+
+        To ensure the waveform buffer is created, initialize the sampleRate to zero, then call
+        applySampleRate() with the desired default rate, 44.1kHz.
+
+        * platform/mediastream/mac/MockRealtimeAudioSourceMac.h:
+        * platform/mediastream/mac/MockRealtimeAudioSourceMac.mm:
+        (WebCore::writeHum):
+        (WebCore::addHum):
+        (WebCore::MockRealtimeAudioSource::create):
+        (WebCore::MockRealtimeAudioSourceMac::render):
+        (WebCore::MockRealtimeAudioSourceMac::applySampleRate):
+
+2017-02-21  Jer Noble  <jer.noble@apple.com>
+
+        Make TrackPrivateBase ThreadSafeRefCounted, so that it can be retained in non-main threads
+        https://bugs.webkit.org/show_bug.cgi?id=168642
+
+        Reviewed by Eric Carlson.
+
+        AudioTrackPrivateMediaStreamCocoa has two entry points from background threads:
+        audioSamplesAvailable() and render(). Protect against being destroyed mid-execution by
+        retaining this for the duration of those methods.
+
+        * platform/graphics/TrackPrivateBase.h:
+        * platform/mediastream/mac/AudioTrackPrivateMediaStreamCocoa.cpp:
+        (WebCore::AudioTrackPrivateMediaStreamCocoa::audioSamplesAvailable):
+        (WebCore::AudioTrackPrivateMediaStreamCocoa::render):
+
+2017-02-21  Jer Noble  <jer.noble@apple.com>
+
+        Pulling too quickly from an AudioSampleDataSource should increase the pre-buffer amount
+        https://bugs.webkit.org/show_bug.cgi?id=168645
+
+        Reviewed by Eric Carlson.
+
+        If a pull operation runs past the end of the buffered range of a CARingBuffer, the underrun
+        is zero-filled, causing an audible glitch.  In this case, bias m_outputSampleOffset by the
+        amount of the underrun, which should keep the underrun from reoccurring.
+
+        * platform/audio/mac/AudioSampleDataSource.cpp:
+        (WebCore::AudioSampleDataSource::pullSamplesInternal):
+
+2017-02-21  Jer Noble  <jer.noble@apple.com>
+
+        AudioSampleBufferList::zeroABL() takes a byte-count, not a sample-count.
+        https://bugs.webkit.org/show_bug.cgi?id=168635
+
+        Reviewed by Jon Lee.
+
+        * platform/audio/mac/AudioSampleDataSource.cpp:
+        (WebCore::AudioSampleDataSource::pullSamplesInternal):
+        (WebCore::AudioSampleDataSource::pullAvalaibleSamplesAsChunks):
+
+2017-02-21  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        REGRESSION(r212681): Crash when dragging links without a drag image
+        https://bugs.webkit.org/show_bug.cgi?id=168648
+
+        Reviewed by Tim Horton.
+
+        This happens in GTK+ port, because we don't use a drag image for links.
+
+        Fixes: editing/pasteboard/drop-link.html
+               editing/pasteboard/drop-text-without-selection.html
+               editing/pasteboard/files-during-page-drags.html
+               fast/events/content-changed-during-drop.html
+               fast/events/drag-and-drop-link-fast-multiple-times-does-not-crash.html
+               fast/events/drag-and-drop-link-into-focused-contenteditable.html
+               fast/events/drag-and-drop-link.html
+               fast/events/drag-in-frames.html
+               fast/events/drag-parent-node.html
+               fast/events/shift-drag-selection-on-link-triggers-drag-n-drop.html
+
+        * page/DragController.cpp:
+        (WebCore::DragController::startDrag): Do not try to use drag image and its size when createDragImageForLink
+        returns nullptr.
+
+2017-02-21  Alex Christensen  <achristensen@webkit.org>
+
+        Unreviewed, rolling out r212699.
+
+        Internal build not ready
+
+        Reverted changeset:
+
+        "[WebRTC][Mac] Activate libwebrtc"
+        https://bugs.webkit.org/show_bug.cgi?id=167293
+        http://trac.webkit.org/changeset/212699
+
+2017-02-20  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Remove ENABLE_THREADED_COMPOSITOR build option
+        https://bugs.webkit.org/show_bug.cgi?id=168606
+
+        Reviewed by Michael Catanzaro.
+
+        * platform/TextureMapper.cmake:
+
+2017-02-20  Alex Christensen  <achristensen@webkit.org>
+
+        Fix some 32-bit builds after r212699
+
+        * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:
+        (WebCore::RealtimeIncomingVideoSource::OnFrame):
+        Explicitly cast OSStatus to int for logging.
+
+2017-02-20  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Remove unnecessary PerformanceEntry virtual methods
+        https://bugs.webkit.org/show_bug.cgi?id=168633
+
+        Reviewed by Ryosuke Niwa.
+
+        * page/PerformanceEntry.h:
+        (WebCore::PerformanceEntry::isResource):
+        (WebCore::PerformanceEntry::isMark):
+        (WebCore::PerformanceEntry::isMeasure):
+        Implement based on the Type.
+
+        * page/PerformanceMark.h:
+        * page/PerformanceMeasure.h:
+        * page/PerformanceResourceTiming.h:
+        Remove virtual overrides.
+
+2017-02-20  Youenn Fablet  <youenn@apple.com>
+
+        [WebRTC][Mac] Activate libwebrtc
+        https://bugs.webkit.org/show_bug.cgi?id=167293
+
+        Reviewed by Alex Christensen.
+
+        * Configurations/WebCore.xcconfig:
+        * Configurations/WebCoreTestSupport.xcconfig:
+
+2017-02-20  Joseph Pecoraro  <pecoraro@apple.com>
+
+        ASSERTION FAILED: m_normalWorld->hasOneRef() under WorkerThread::stop
+        https://bugs.webkit.org/show_bug.cgi?id=168356
+        <rdar://problem/30592486>
+
+        Reviewed by Ryosuke Niwa.
+
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::removeAllEventListeners):
+        Remove Performance object EventListeners.
+
+        * workers/WorkerGlobalScope.cpp:
+        (WebCore::WorkerGlobalScope::~WorkerGlobalScope):
+        (WebCore::WorkerGlobalScope::removeAllEventListeners):
+        (WebCore::WorkerGlobalScope::performance):
+        * workers/WorkerGlobalScope.h:
+        Remove Performance object EventListeners.
+        Also clear Performance early in destruction since its ContextDestructionObserver
+        destruction makes checks about the WorkerThread.
+
+2017-02-20  Jer Noble  <jer.noble@apple.com>
+
+        Local audio-only stream will not trigger playback to begin
+        https://bugs.webkit.org/show_bug.cgi?id=168412
+
+        Reviewed by Youenn Fablet.
+
+        Test: fast/mediastream/local-audio-playing-event.html
+
+        With video-bearing streams, the first video sample emitted from the stream causes the
+        readyState to move from HAVE_NOTHING to HAVE_ENOUGH_DATA. Wire up this same behavior for
+        audio-bearing streams. Add a MediaStreamTrackPrivate::Observer callback method
+        audioSamplesAvailable(), which gets passed up to MediaPlayerPrivateMediaStreamAVFObjC.
+        Because this callback may be (and probably will be) called on a background thread, run the
+        updateReadyState() task in a scheduledDeferredTask().
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::audioSamplesAvailable):
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateTracks):
+        * platform/mediastream/MediaStreamTrackPrivate.cpp:
+        (WebCore::MediaStreamTrackPrivate::audioSamplesAvailable):
+        * platform/mediastream/MediaStreamTrackPrivate.h:
+        (WebCore::MediaStreamTrackPrivate::Observer::audioSamplesAvailable):
+
+2017-02-20  Zalan Bujtas  <zalan@apple.com>
+
+        Simple line layout: Implement absoluteQuadsForRange.
+        https://bugs.webkit.org/show_bug.cgi?id=168613
+        <rdar://problem/30614618>
+
+        Reviewed by Simon Fraser.
+
+        This patch ensures that the commonly used Range::getClientRects calls do not
+        throw us off of the simple line layout path.
+
+        Test: fast/dom/Range/simple-line-layout-getclientrects.html
+
+        * rendering/RenderText.cpp:
+        (WebCore::RenderText::absoluteQuadsForRange):
+        * rendering/SimpleLineLayoutFunctions.cpp:
+        (WebCore::SimpleLineLayout::collectAbsoluteQuadsForRange): Special case empty ranges with multiple empty runs.
+        * rendering/SimpleLineLayoutFunctions.h:
+        * rendering/SimpleLineLayoutResolver.cpp:
+        (WebCore::SimpleLineLayout::RunResolver::rangeForRendererWithOffsets):
+        * rendering/SimpleLineLayoutResolver.h:
+
+2017-02-20  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r212685.
+
+        This change broke the 32-bit Sierra build.
+
+        Reverted changeset:
+
+        "Resource Load Statistics: Add alternate classification
+        method"
+        https://bugs.webkit.org/show_bug.cgi?id=168347
+        http://trac.webkit.org/changeset/212685
+
+2017-02-20  Sam Weinig  <sam@webkit.org>
+
+        [WebIDL] Add support for constructors that have variadic parameters
+        https://bugs.webkit.org/show_bug.cgi?id=168614
+
+        Reviewed by Alex Christensen.
+
+        In preparation of removing some more custom bindings, move the constructor calling
+        code over to using GenerateParametersCheck completely. This required
+        - Removing special case of NamedConstructors automatically getting a Document passed
+          to them. The three named constructors that expected this have been updated to add
+          the required attributes.
+        - Add a version of the GenerateCallWith prologue for constructors.
+        - Remove now unnecessary argumentCount return value from GenerateParametersCheck.
+
+        * bindings/scripts/CodeGeneratorJS.pm:
+        (GenerateImplementation):
+        (GenerateCallWithUsingReferences):
+        (GenerateCallWithUsingPointers):
+        (GenerateConstructorCallWithUsingPointers):
+        (GenerateCallWith):
+        (GenerateParametersCheck):
+        (GenerateConstructorDefinition):
+
+        * bindings/scripts/test/JS/JSTestInterface.cpp:
+        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
+        * bindings/scripts/test/JS/JSTestObj.cpp:
+        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
+        Update results for more consistent placement of ScriptExecutionContext and Document
+        accessors, add UNLIKELY to context checks, and remove automatic Document passing
+        for NamedConstructors.
+
+        * html/HTMLAudioElement.idl:
+        * html/HTMLImageElement.idl:
+        * html/HTMLOptionElement.idl:
+        Add ConstructorCallWith=Document.
+
+2017-02-20  John Wilander  <wilander@apple.com>
+
+        Resource Load Statistics: Add alternate classification method
+        https://bugs.webkit.org/show_bug.cgi?id=168347
+        <rdar://problem/30352793>
+
+        Reviewed by Alex Christensen.
+
+        This patch only adds test infrastructure in WebCore.
+
+        Tests: http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-mixed-statistics.html
+               http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-sub-frame-under-top-frame-origins.html
+               http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-under-top-frame-origins.html
+               http/tests/loading/resourceLoadStatistics/classify-as-non-prevalent-based-on-subresource-unique-redirects-to.html
+               http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-mixed-statistics.html
+               http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-sub-frame-under-top-frame-origins.html
+               http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-under-top-frame-origins.html
+               http/tests/loading/resourceLoadStatistics/classify-as-prevalent-based-on-subresource-unique-redirects-to.html
+
+        * loader/ResourceLoadObserver.cpp:
+        (WebCore::ResourceLoadObserver::setSubframeUnderTopFrameOrigin):
+        (WebCore::ResourceLoadObserver::setSubresourceUnderTopFrameOrigin):
+        (WebCore::ResourceLoadObserver::setSubresourceUniqueRedirectTo):
+        * loader/ResourceLoadObserver.h:
+
 2017-02-20  Anders Carlsson  <andersca@apple.com>
 
         Use the new drag code path when dragging links