Unprefix CSS cursor values grab and grabbing
[WebKit-https.git] / Source / WebCore / ChangeLog
index d785e8e..d6256aa 100644 (file)
+2017-04-08  Simon Fraser  <simon.fraser@apple.com>
+
+        Unprefix CSS cursor values grab and grabbing
+        https://bugs.webkit.org/show_bug.cgi?id=170543
+
+        Reviewed by Jon Lee.
+
+        Add support for unprefixed "grab" and "grabbing" values for cursor (retaining
+        support for the prefixed values) which are now in <https://drafts.csswg.org/css-ui-3/#cursor>
+
+        Canonicalize the order of the values based on the order in the spec in the enums
+        and switch statements.
+
+        Tested by fast/css/cursor-parsing.html
+
+        * css/CSSPrimitiveValueMappings.h:
+        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+        (WebCore::CSSPrimitiveValue::operator ECursor):
+        * css/CSSProperties.json:
+        * css/CSSValueKeywords.in:
+        * page/EventHandler.cpp:
+        (WebCore::EventHandler::selectCursor):
+        * rendering/style/RenderStyleConstants.h:
+
+2017-04-08  Youenn Fablet  <youenn@apple.com>
+
+        WebRTC tests gardening
+        https://bugs.webkit.org/show_bug.cgi?id=170508
+
+        Reviewed by Eric Carlson.
+
+        * Configurations/FeatureDefines.xcconfig: Changing webrtc enabling for ios.
+
+2017-04-08  Youenn Fablet  <youenn@apple.com>
+
+        MediaStreamTrack id should be preserved by PeerConnection
+        https://bugs.webkit.org/show_bug.cgi?id=170624
+
+        Reviewed by Eric Carlson.
+
+        Covered by updated test.
+
+        * Modules/mediastream/libwebrtc/LibWebRTCPeerConnectionBackend.cpp:
+        (WebCore::createReceiverForSource): Setting track id according source id.
+
+2017-04-08  Chris Dumez  <cdumez@apple.com>
+
+        Timer's nextFireInterval() / repeatInterval() should return Seconds
+        https://bugs.webkit.org/show_bug.cgi?id=170639
+
+        Reviewed by Simon Fraser.
+
+        Timer's nextFireInterval() / repeatInterval() should return Seconds, not double.
+
+        * loader/NavigationScheduler.cpp:
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::updateTimerIntervalIfNecessary):
+        * page/SuspendableTimer.cpp:
+        (WebCore::SuspendableTimer::suspend):
+        (WebCore::SuspendableTimer::repeatInterval):
+        * page/SuspendableTimer.h:
+        * page/animation/AnimationBase.cpp:
+        (WebCore::AnimationBase::timeToNextService):
+        (WebCore::AnimationBase::getTimeToNextEvent):
+        (WebCore::AnimationBase::goIntoEndingOrLoopingState):
+        * page/animation/AnimationBase.h:
+        * page/animation/CSSAnimationController.cpp:
+        (WebCore::CSSAnimationControllerPrivate::updateAnimations):
+        (WebCore::CSSAnimationControllerPrivate::updateAnimationTimerForRenderer):
+        (WebCore::CSSAnimationControllerPrivate::updateAnimationTimer):
+        (WebCore::CSSAnimationControllerPrivate::animationFrameCallbackFired):
+        * page/animation/CSSAnimationControllerPrivate.h:
+        * page/animation/CompositeAnimation.cpp:
+        (WebCore::CompositeAnimation::timeToNextService):
+        * page/animation/CompositeAnimation.h:
+        * page/animation/ImplicitAnimation.cpp:
+        (WebCore::ImplicitAnimation::timeToNextService):
+        * page/animation/ImplicitAnimation.h:
+        * page/animation/KeyframeAnimation.cpp:
+        (WebCore::KeyframeAnimation::timeToNextService):
+        * page/animation/KeyframeAnimation.h:
+        * platform/ThreadTimers.cpp:
+        (WebCore::ThreadTimers::sharedTimerFiredInternal):
+        * platform/Timer.cpp:
+        (WebCore::TimerBase::nextFireInterval):
+        * platform/Timer.h:
+        (WebCore::TimerBase::repeatInterval):
+        * platform/graphics/ca/TileController.cpp:
+        (WebCore::TileController::setIsInWindow):
+        (WebCore::TileController::scheduleTileRevalidation):
+        * platform/graphics/ca/TileController.h:
+        * platform/graphics/ca/TileGrid.cpp:
+        (WebCore::TileGrid::revalidateTiles):
+
+2017-04-08  Csaba Osztrogonác  <ossy@webkit.org>
+
+        Unreviewed Mac cmake buildfix after r215051, just for fun.
+        https://bugs.webkit.org/show_bug.cgi?id=169761
+
+        * PlatformMac.cmake:
+
+2017-04-07  Simon Fraser  <simon.fraser@apple.com>
+
+        Build fix: TimerBase::start(double, double) can't be inline and exported,
+        so make it non-inline.
+
+        * platform/Timer.cpp:
+        (WebCore::TimerBase::start):
+        * platform/Timer.h:
+        (WebCore::TimerBase::start): Deleted.
+
+2017-04-07  Chris Dumez  <cdumez@apple.com>
+
+        REGRESSION (r203941): iAd Producer widgets fail to play in iBooks
+        https://bugs.webkit.org/show_bug.cgi?id=170635
+        <rdar://problem/30797958>
+
+        Reviewed by Daniel Bates.
+
+        Extend the MouseEvent::initMouseEvent() workaround we added for iAd Producer
+        to iBooks since the iBooks widgets generated by iAd Producer contain the same
+        bug.
+
+        * dom/MouseEvent.cpp:
+        (WebCore::MouseEvent::initMouseEventQuirk):
+
+2017-04-07  Chris Dumez  <cdumez@apple.com>
+
+        Start using MonotonicTime / Seconds in Timer class
+        https://bugs.webkit.org/show_bug.cgi?id=170625
+
+        Reviewed by Simon Fraser.
+
+        Start using MonotonicTime / Seconds in Timer class. More work will be needed
+        for the transition to be complete. I plan to do this in a follow-up.
+
+        * page/DOMTimer.cpp:
+        (WebCore::DOMTimer::alignedFireTime):
+        * page/DOMTimer.h:
+        * page/SuspendableTimer.cpp:
+        (WebCore::SuspendableTimer::suspend):
+        (WebCore::SuspendableTimer::startRepeating):
+        (WebCore::SuspendableTimer::startOneShot):
+        (WebCore::SuspendableTimer::repeatInterval):
+        (WebCore::SuspendableTimer::augmentFireInterval):
+        (WebCore::SuspendableTimer::augmentRepeatInterval):
+        * page/SuspendableTimer.h:
+        (WebCore::SuspendableTimer::startRepeating):
+        (WebCore::SuspendableTimer::startOneShot):
+        (WebCore::SuspendableTimer::augmentFireInterval):
+        (WebCore::SuspendableTimer::augmentRepeatInterval):
+        * platform/ThreadTimers.cpp:
+        (WebCore::ThreadTimers::ThreadTimers):
+        (WebCore::ThreadTimers::setSharedTimer):
+        (WebCore::ThreadTimers::updateSharedTimer):
+        (WebCore::ThreadTimers::sharedTimerFiredInternal):
+        (WebCore::ThreadTimers::fireTimersInNestedEventLoop):
+        * platform/ThreadTimers.h:
+        * platform/Timer.cpp:
+        (WebCore::TimerHeapLessThanFunction::operator()):
+        (WebCore::TimerBase::TimerBase):
+        (WebCore::TimerBase::start):
+        (WebCore::TimerBase::stop):
+        (WebCore::TimerBase::nextFireInterval):
+        (WebCore::TimerBase::heapPop):
+        (WebCore::TimerBase::updateHeapIfNeeded):
+        (WebCore::TimerBase::setNextFireTime):
+        (WebCore::TimerBase::nextUnalignedFireInterval):
+        * platform/Timer.h:
+        (WebCore::TimerBase::start):
+        (WebCore::TimerBase::startOneShot):
+        (WebCore::TimerBase::repeatInterval):
+        (WebCore::TimerBase::repeatIntervalSeconds):
+        (WebCore::TimerBase::augmentFireInterval):
+        (WebCore::TimerBase::augmentRepeatInterval):
+        (WebCore::TimerBase::alignedFireTime):
+        (WebCore::TimerBase::isActive):
+        * testing/Internals.cpp:
+        (WebCore::Internals::isTimerThrottled):
+
+2017-04-07  Yuichiro Kikura  <y.kikura@gmail.com>
+
+        WebGPU: implement ComputeCommandEncoder and related components
+        https://bugs.webkit.org/show_bug.cgi?id=170444
+
+        Reviewed by Alex Christensen.
+
+        I implemented WebGPUComputeCommandEncoder and related components based on the WebGPU proposal.
+        https://webkit.org/wp-content/uploads/webgpu-api-proposal.html
+
+        Test: fast/canvas/webgpu/webgpu-dispatch.html
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * PlatformMac.cmake:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSWebGPUCommandBufferCustom.cpp: Added.
+        (WebCore::JSWebGPUCommandBuffer::completed):
+        * html/canvas/WebGPUCommandBuffer.cpp:
+        (WebCore::WebGPUCommandBuffer::createComputeCommandEncoder):
+        * html/canvas/WebGPUCommandBuffer.h:
+        * html/canvas/WebGPUCommandBuffer.idl:
+        * html/canvas/WebGPUComputeCommandEncoder.cpp: Added.
+        (WebCore::GPUSizeMake):
+        (WebCore::WebGPUComputeCommandEncoder::create):
+        (WebCore::WebGPUComputeCommandEncoder::WebGPUComputeCommandEncoder):
+        (WebCore::WebGPUComputeCommandEncoder::~WebGPUComputeCommandEncoder):
+        (WebCore::WebGPUComputeCommandEncoder::setComputePipelineState):
+        (WebCore::WebGPUComputeCommandEncoder::setBuffer):
+        (WebCore::WebGPUComputeCommandEncoder::dispatch):
+        (WebCore::WebGPUComputeCommandEncoder::endEncoding):
+        * html/canvas/WebGPUComputeCommandEncoder.h: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.h.
+        (WebCore::WebGPUComputeCommandEncoder::computeCommandEncoder):
+        * html/canvas/WebGPUComputeCommandEncoder.idl: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl.
+        * html/canvas/WebGPUComputePipelineState.cpp: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.cpp.
+        (WebCore::WebGPUComputePipelineState::create):
+        (WebCore::WebGPUComputePipelineState::WebGPUComputePipelineState):
+        (WebCore::WebGPUComputePipelineState::~WebGPUComputePipelineState):
+        * html/canvas/WebGPUComputePipelineState.h: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.h.
+        (WebCore::WebGPUComputePipelineState::computePipelineState):
+        * html/canvas/WebGPUComputePipelineState.idl: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl.
+        * html/canvas/WebGPURenderingContext.cpp:
+        (WebCore::WebGPURenderingContext::createComputePipelineState):
+        * html/canvas/WebGPURenderingContext.h:
+        * html/canvas/WebGPURenderingContext.idl:
+        * html/canvas/WebGPUSize.h: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl.
+        * html/canvas/WebGPUSize.idl: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl.
+        * platform/graphics/cocoa/GPUCommandBufferMetal.mm:
+        (WebCore::GPUCommandBuffer::completed):
+        * platform/graphics/cocoa/GPUComputeCommandEncoderMetal.mm: Added.
+        (WebCore::MTLSizeMake):
+        (WebCore::GPUComputeCommandEncoder::GPUComputeCommandEncoder):
+        (WebCore::GPUComputeCommandEncoder::setComputePipelineState):
+        (WebCore::GPUComputeCommandEncoder::setBuffer):
+        (WebCore::GPUComputeCommandEncoder::dispatch):
+        (WebCore::GPUComputeCommandEncoder::endEncoding):
+        (WebCore::GPUComputeCommandEncoder::platformComputeCommandEncoder):
+        * platform/graphics/cocoa/GPUComputePipelineStateMetal.mm: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.cpp.
+        (WebCore::GPUComputePipelineState::GPUComputePipelineState):
+        (WebCore::GPUComputePipelineState::platformComputePipelineState):
+        * platform/graphics/gpu/GPUCommandBuffer.cpp:
+        (WebCore::GPUCommandBuffer::createComputeCommandEncoder):
+        * platform/graphics/gpu/GPUCommandBuffer.h:
+        * platform/graphics/gpu/GPUComputeCommandEncoder.cpp: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.cpp.
+        (WebCore::GPUComputeCommandEncoder::create):
+        (WebCore::GPUComputeCommandEncoder::~GPUComputeCommandEncoder):
+        (WebCore::GPUComputeCommandEncoder::setComputePipelineState):
+        (WebCore::GPUComputeCommandEncoder::setBuffer):
+        (WebCore::GPUComputeCommandEncoder::endEncoding):
+        * platform/graphics/gpu/GPUComputeCommandEncoder.h: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.h.
+        * platform/graphics/gpu/GPUComputePipelineState.cpp: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl.
+        (WebCore::GPUComputePipelineState::create):
+        (WebCore::GPUComputePipelineState::~GPUComputePipelineState):
+        * platform/graphics/gpu/GPUComputePipelineState.h: Copied from Source/WebCore/platform/graphics/gpu/GPUCommandBuffer.h.
+        * platform/graphics/gpu/GPUSize.h: Copied from Source/WebCore/html/canvas/WebGPUCommandBuffer.idl.
+
+2017-04-07  Alex Christensen  <achristensen@webkit.org>
+
+        Private browsing sessions should not look in keychain for client certificates
+        https://bugs.webkit.org/show_bug.cgi?id=170618
+        <rdar://problem/18457427>
+
+        Reviewed by Dan Bernstein.
+
+        Our client certificate testing in WebKit leaves much to be desired.
+        See rdar://problem/17694210 for reproduction steps.
+
+        * platform/spi/cf/CFNetworkSPI.h:
+        Add some new SPI.
+
+2017-04-07  Zalan Bujtas  <zalan@apple.com>
+
+        Simple line layout: FlowContents::segmentIndexForRunSlow skips empty runs.
+        https://bugs.webkit.org/show_bug.cgi?id=170552
+
+        Reviewed by Antti Koivisto.
+
+        The compare function passed to std::lower_bound completely misses empty runs. 
+
+        Test: fast/text/simple-line-layout-hover-over-subsequent-linebreaks.html
+
+        * rendering/SimpleLineLayoutFlowContents.cpp:
+        (WebCore::SimpleLineLayout::FlowContents::segmentIndexForRunSlow):
+
+2017-04-07  Chris Dumez  <cdumez@apple.com>
+
+        We should log how much CPU a background process was using when killing it due to CPU limiting
+        https://bugs.webkit.org/show_bug.cgi?id=170619
+
+        Reviewed by Andreas Kling.
+
+        CPUMonitor now passes the CPU usage to the callback when it exceeds the threashold.
+
+        * platform/CPUMonitor.cpp:
+        (WebCore::CPUMonitor::timerFired):
+        * platform/CPUMonitor.h:
+
+2017-04-07  Chris Dumez  <cdumez@apple.com>
+
+        Audible autoplay videos should not get paused when outside the viewport
+        https://bugs.webkit.org/show_bug.cgi?id=170610
+        <rdar://problem/31505984>
+
+        Reviewed by Eric Carlson.
+
+        Audible autoplay videos should not get paused when outside the viewport as this
+        would be observable by the user.
+
+        Test: media/video-restricted-invisible-autoplay-allowed-if-audible.html
+
+        * html/MediaElementSession.cpp:
+        (WebCore::MediaElementSession::autoplayPermitted):
+
+2017-04-07  Myles C. Maxfield  <mmaxfield@apple.com>
+
+        REGRESSION(r211382): Complex text with justification erroneously overflows containers
+        https://bugs.webkit.org/show_bug.cgi?id=170399
+        <rdar://problem/31442008>
+
+        Reviewed by Simon Fraser.
+
+        When we perform justification, we adjust glyphs' advances to add extra space between words.
+        ComplexTextController maintains an invariant where m_totalWidth is equal to the sum of these
+        advances. However, in RTL text, inserting extra justification space to the left of a glyph
+        would break that invariant, and would increase the advances of two glyphs instead of just
+        one. Then, when we go to draw the text, the sum of the advances is wider than m_totalWidth,
+        which means the glyphs would be drawn outside of their container.
+
+        This regressed in r211382 simply because of an oversight and because there were no tests for
+        this codepath.
+
+        Test: ComplexTextControllerTest.TotalWidthWithJustification
+
+        * platform/graphics/ComplexTextController.cpp:
+        (WebCore::ComplexTextController::adjustGlyphsAndAdvances):
+        * rendering/InlineBox.h:
+        (WebCore::InlineBox::InlineBox):
+
+2017-04-07  Chris Dumez  <cdumez@apple.com>
+
+        Throttle / Align DOM Timers in cross-origin iframes to 30fps
+        https://bugs.webkit.org/show_bug.cgi?id=170613
+        <rdar://problem/31506444>
+
+        Reviewed by Simon Fraser.
+
+        Throttle / Align DOM Timers in cross-origin iframes to 30fps unless the user
+        has interacted with them, in order to reduce power use.
+
+        Test: http/tests/frame-throttling/timer-throttle-in-cross-origin-subframe.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::domTimerAlignmentInterval):
+        (WebCore::Document::updateLastHandledUserGestureTimestamp):
+        * page/DOMTimer.h:
+
+2017-04-07  John Wilander  <wilander@apple.com>
+
+        Follow-up fix for Soup platform.
+        https://bugs.webkit.org/show_bug.cgi?id=170322
+
+        Unreviewed build fix. Error introduced by me in
+        https://trac.webkit.org/changeset/215104/webkit.
+
+        No new tests.
+
+        * platform/network/soup/SocketStreamHandleImpl.h:
+            Move parameter change to the right
+            SocketStreamHandleImpl::create() function.
+
+2017-04-07  John Wilander  <wilander@apple.com>
+
+        WebSocket streams should have network usage attributed to correct process
+        https://bugs.webkit.org/show_bug.cgi?id=170322
+        <rdar://problem/26413551>
+
+        Reviewed by Alex Christensen.
+
+        Tested manually since it requires a per-app VPN.
+
+        * page/SocketProvider.cpp:
+        (WebCore::SocketProvider::createSocketStreamHandle):
+            Sends in an empty struct since it doesn't have access to
+            platform dependent sourceApplicationAuditData.
+        * platform/network/SocketStreamHandle.h:
+            Declaration of a per-platform struct to hold CF data for
+            Cocoa platforms.
+        * platform/network/cf/SocketStreamHandleImpl.h:
+        (WebCore::SocketStreamHandleImpl::create):
+            Now takes WebCore::SourceApplicationAuditToken which is
+            passed on to the constructor.
+        * platform/network/cf/SocketStreamHandleImplCFNet.cpp:
+        (WebCore::SocketStreamHandleImpl::SocketStreamHandleImpl):
+            Now takes WebCore::SourceApplicationAuditToken which is
+            passed on to the streams once created.
+        (WebCore::SocketStreamHandleImpl::createStreams):
+            Now sets kCFStreamPropertySourceApplication for the two
+            streams.
+        * platform/network/curl/SocketStreamHandleImpl.h:
+        (WebCore::SocketStreamHandleImpl::create):
+            Added unused WebCore::SourceApplicationAuditToken parameter.
+        * platform/network/soup/SocketStreamHandleImpl.h:
+        * platform/network/soup/SocketStreamHandleImplSoup.cpp:
+        (WebCore::SocketStreamHandleImpl::create):
+            Added unused WebCore::SourceApplicationAuditToken parameter.
+
+2017-04-07  Alex Christensen  <achristensen@webkit.org>
+
+        REGRESSION(r204512): WebSocket errors with "Failed to send WebSocket frame."  if too much data is sent
+        https://bugs.webkit.org/show_bug.cgi?id=170463
+
+        Reviewed by Michael Catanzaro.
+
+        This only reproduces when using WebSockets to communicate with an external server.
+        When communicating with a local server, CFWriteStreamWrite succeeds too reliably, so
+        CFWriteStreamCanAcceptBytes returns true, when sometimes it doesn't when communicating
+        across the real internet.
+
+        * platform/network/cf/SocketStreamHandleImplCFNet.cpp:
+        (WebCore::SocketStreamHandleImpl::platformSendInternal):
+        * platform/network/soup/SocketStreamHandleImplSoup.cpp:
+        (WebCore::SocketStreamHandleImpl::platformSendInternal):
+        Returning std::nullopt means there was an error, which is not true when the socket stream
+        is in a state where it cannot be written to because it is actively communicating.
+        Returning 0 means 0 new bytes were sent, so we will try again later.
+
+2017-04-07  Eric Carlson  <eric.carlson@apple.com>
+
+        MediaSample should store video sample rotation instead of orientation
+        https://bugs.webkit.org/show_bug.cgi?id=170598
+
+        Reviewed by Youenn Fablet.
+
+        No new tests, no functional change.
+
+        * platform/MediaSample.h:
+        (WebCore::MediaSample::videoRotation):
+        (WebCore::MediaSample::videoOrientation): Deleted.
+        * platform/graphics/avfoundation/MediaSampleAVFObjC.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoTransformationMatrix):
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample):
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::updateDisplayLayer):
+
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+        (WebCore::AVVideoCaptureSource::processNewFrame):
+
+        * platform/mediastream/mac/RealtimeIncomingVideoSource.cpp:
+        (WebCore::RealtimeIncomingVideoSource::OnFrame):
+        (WebCore::RealtimeIncomingVideoSource::processNewSample):
+        * platform/mediastream/mac/RealtimeIncomingVideoSource.h:
+
+        * platform/mediastream/mac/RealtimeOutgoingVideoSource.cpp:
+        (WebCore::RealtimeOutgoingVideoSource::videoSampleAvailable):
+
+2017-04-07  Brent Fulgham  <bfulgham@apple.com>
+
+        WebKit should percent encode single quotes in query strings
+        https://bugs.webkit.org/show_bug.cgi?id=170561
+        <rdar://problem/7415154>
+
+        Reviewed by Alex Christensen.
+
+        Modify the characterClassTable to instruct the URLParser to convert
+        the single-quote character ' to %27 in URL query strings.
+
+        Tests: URLParserTest in TestWebKitAPI.
+            fast/events/popup-blocked-from-unique-frame-via-window-open-named-sibling-frame.html
+            fast/frames/xss-auditor-handles-file-urls.html
+            http/tests/security/xssAuditor
+
+        * platform/URLParser.cpp:
+
+2017-04-07  Zalan Bujtas  <zalan@apple.com>
+
+        Text insertion cursor disappears after pressing enter
+        https://bugs.webkit.org/show_bug.cgi?id=169291
+        <rdar://problem/30899611>
+
+        Reviewed by Tim Horton.
+
+        Positon upstream/downstream (as the result of VisiblePosition -> canonicalPosition) require
+        linebox tree. In addition to regular text, we need to bail out of simple line layout on line breaks too.
+
+        Test: editing/simple-line-layout-caret-is-gone.html
+
+        * dom/Position.cpp:
+        (WebCore::ensureLineBoxesIfNeeded):
+        (WebCore::Position::upstream):
+        (WebCore::Position::downstream):
+        (WebCore::Position::getInlineBoxAndOffset):
+        * rendering/RenderLineBreak.cpp:
+        (WebCore::RenderLineBreak::ensureLineBoxes):
+        (WebCore::RenderLineBreak::positionForPoint):
+        (WebCore::RenderLineBreak::setSelectionState):
+        (WebCore::RenderLineBreak::collectSelectionRects):
+        (WebCore::ensureLineBoxes): Deleted.
+        * rendering/RenderLineBreak.h:
+
+2017-04-07  Xan Lopez  <xlopez@igalia.com>
+
+        [GTK] Fix codec name in OWR ASSERT
+        https://bugs.webkit.org/show_bug.cgi?id=170600
+
+        Reviewed by Carlos Garcia Campos.
+
+        * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
+        (WebCore::MediaEndpointOwr::prepareMediaSession): uppercase the
+        codec name we are looking for, that's how they appear in the
+        vector.
+
+2017-04-07  Per Arne Vollan  <pvollan@apple.com>
+
+        Add hasVideo property to WebAVPlayerController.
+        https://bugs.webkit.org/show_bug.cgi?id=170545
+        rdar://problem/31325182
+
+        Reviewed by Eric Carlson.
+
+        Add a new "hasVideo" property which can be used to discover if any video content is present in the playback item,
+        whether video content is currently enabled or not.
+
+        * platform/ios/WebAVPlayerController.h:
+        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
+        (WebVideoFullscreenInterfaceAVKit::hasVideoChanged):
+
+2017-04-07  Miguel Gomez  <magomez@igalia.com>
+
+        [GTK+] Animations not played properly when using synchronous decoding
+        https://bugs.webkit.org/show_bug.cgi?id=170591
+
+        Reviewed by Carlos Garcia Campos.
+
+        Fix an index error when destroying decoded frames that was sometimes deleting the frame we wanted
+        to keep.
+
+        Covered by exitent tests.
+
+        * platform/graphics/ImageFrameCache.cpp:
+        (WebCore::ImageFrameCache::destroyDecodedData):
+
+2017-04-07  Xan Lopez  <xan@igalia.com>
+
+        [GTK] Add message about missing codecs to ASSERT in OWR
+        https://bugs.webkit.org/show_bug.cgi?id=170596
+
+        Reviewed by Carlos Garcia Campos.
+
+        * platform/mediastream/openwebrtc/MediaEndpointOwr.cpp:
+        (WebCore::MediaEndpointOwr::prepareMediaSession): add a message
+        about the missing coded to the ASSERT.
+
+2017-04-07  Tomas Popela  <tpopela@redhat.com>
+
+        AX: Don't crash if no renderer is available for AccessibilityRenderObject
+        https://bugs.webkit.org/show_bug.cgi?id=170448
+
+        Reviewed by Chris Fleizach.
+
+        Don't crash or assert if no renderer is available, but early return
+        gracefully (as in other places in the AccessibilityRenderObject.cpp).
+        Spotted by running some tests through dogtail.
+
+        * accessibility/AccessibilityRenderObject.cpp:
+        (WebCore::AccessibilityRenderObject::isOffScreen):
+        (WebCore::AccessibilityRenderObject::isUnvisited):
+        (WebCore::AccessibilityRenderObject::isVisited):
+
+2017-04-07  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] Update the priorities used in glib main loop sources
+        https://bugs.webkit.org/show_bug.cgi?id=170457
+
+        Reviewed by Žan Doberšek.
+
+        * platform/glib/MainThreadSharedTimerGLib.cpp:
+        (WebCore::MainThreadSharedTimer::MainThreadSharedTimer):
+        * platform/graphics/texmap/TextureMapperPlatformLayerProxy.cpp:
+        (WebCore::TextureMapperPlatformLayerProxy::TextureMapperPlatformLayerProxy):
+        (WebCore::TextureMapperPlatformLayerProxy::activateOnCompositingThread):
+
+2017-04-07  Zan Dobersek  <zdobersek@igalia.com>
+
+        [GCrypt] Implement AES_CBC support
+        https://bugs.webkit.org/show_bug.cgi?id=170550
+
+        Reviewed by Michael Catanzaro.
+
+        Implement the CryptoAlgorithmAES_CBC::platform{Encrypt,Decrypt}
+        functionality for configurations that use libgcrypt. This is done
+        by leveraging the gcry_cipher_* APIs for the AES algorithm that's
+        deduced appropriately from the key size and the CBC cipher mode.
+        Additionally, the PKCS#7 padding is implemented for each operation,
+        as demanded by the Web Crypto specification.
+
+        No new tests -- current ones cover this sufficiently, but are not yet
+        enabled due to missing platform-specific SUBTLE_CRYPTO implementations.
+
+        * crypto/gcrypt/CryptoAlgorithmAES_CBCGCrypt.cpp:
+        (WebCore::gcryptEncrypt):
+        (WebCore::gcryptDecrypt):
+        (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
+        (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
+
+2017-04-07  Zan Dobersek  <zdobersek@igalia.com>
+
+        [GCrypt] Implement raw and JWK imports and exports for EC keys
+        https://bugs.webkit.org/show_bug.cgi?id=170546
+
+        Reviewed by Michael Catanzaro.
+
+        Implement import and export operations for EC keys, covering the raw
+        and JWK import/export types.
+
+        CryptoKeyEC::platformImportRaw() builds a public-key s-expression,
+        providing the curve name and the key data, and yields the gcry_sexp_t
+        object to the new CryptoKeyEC.
+
+        CryptoKeyEC::platformImportJWKPublic() first constructs a Vector<uint8_t>
+        object that contains the EC point in the uncompressed format. It then
+        puts that data into a newly-constructed public-key s-expression that is
+        then used to construct the new CryptoKeyEC object.
+
+        CryptoKeyEC::platformImportJWKPrivate() constructs the EC point data just
+        the same, but it also lays out the private key field element data into
+        the private-key s-expression that's then handed off to the CryptoKeyEC
+        object.
+
+        CryptoKeyEC::platformExportRaw() constructs a new EC operations context
+        and then uses it to retrieve the q parameter as an MPI. A Vector<uint8_t>
+        is retrieved from the MPI data through the extractMPIData() helper
+        function.
+
+        CryptoKeyEC::platformAddFieldElements() similarly uses the EC operations
+        context to retrieve the q parameter data, which it then splits into the
+        x and y field elements and Base64 URL-encodes them into a form that can
+        be placed in a JsonWebKey. If the key is private, the d parameter is
+        retrieved in the same fashion and again Base64 URL-encoded and stored
+        in the JsonWebKey object.
+
+        No new tests -- current ones cover this sufficiently, but are not yet
+        enabled due to other missing platform-specific SUBTLE_CRYPTO
+        implementations.
+
+        * crypto/gcrypt/CryptoKeyECGCrypt.cpp:
+        (WebCore::uncompressedPointSizeForCurve):
+        (WebCore::uncompressedFieldElementSizeForCurve):
+        (WebCore::extractMPIData):
+        (WebCore::CryptoKeyEC::platformImportRaw):
+        (WebCore::CryptoKeyEC::platformImportJWKPublic):
+        (WebCore::CryptoKeyEC::platformImportJWKPrivate):
+        (WebCore::CryptoKeyEC::platformExportRaw):
+        (WebCore::CryptoKeyEC::platformAddFieldElements):
+
+2017-04-07  Zan Dobersek  <zdobersek@igalia.com>
+
+        [GCrypt] Implement CryptoKeyRSA::generatePair()
+        https://bugs.webkit.org/show_bug.cgi?id=170350
+
+        Reviewed by Michael Catanzaro.
+
+        Start implementing the libgcrypt-based platform bits of CryptoKeyRSA.
+
+        Implement generatePair() by constructing a genkey s-expression
+        that requests a generation of an RSA key that should use a modulus
+        of the specified bit-length and the specified exponent. The exponent
+        is extracted from an uint8_t array through a helper function. The
+        modulus length value is checked to be at least 16, since libgcrypt
+        does not support generating primes of less than that length in bits.
+
+        The returned s-expression upon request will contain the data for
+        both the public and the private key. gcry_sexp_t handles representing
+        those s-expressions are then passed to CryptoKeyRSA::create() before
+        invoking the success callback with a new CryptoKeyPair object in a
+        separate ScriptExecutionContext task.
+
+        The CryptoKeyRSA constructor simply has the notImplemented() call
+        removed. The destructor now invokes the HandleDeleter<gcry_sexp_t>
+        object instance to destroy the object represented by the
+        m_platformKey handle.
+
+        The methods in CryptoKeyRSA.cpp are also reordered to follow the
+        declaration order used in the header.
+
+        No new tests -- current ones cover this sufficiently, but are not yet
+        enabled due to other missing platform-specific SUBTLE_CRYPTO
+        implementations.
+
+        * crypto/gcrypt/CryptoKeyRSAGCrypt.cpp:
+        (WebCore::CryptoKeyRSA::CryptoKeyRSA):
+        (WebCore::CryptoKeyRSA::~CryptoKeyRSA):
+        (WebCore::exponentVectorToUInt32):
+        (WebCore::CryptoKeyRSA::generatePair):
+        (WebCore::CryptoKeyRSA::importSpki):
+        (WebCore::CryptoKeyRSA::importPkcs8):
+        (WebCore::CryptoKeyRSA::exportPkcs8):
+        (WebCore::CryptoKeyRSA::buildAlgorithm):
+        (WebCore::CryptoKeyRSA::exportData):
+        * crypto/keys/CryptoKeyRSA.h:
+
+2017-04-06  Youenn Fablet  <youenn@apple.com>
+
+        [Debug] ASSERT(!throwScope.exception()) on imported/w3c/web-platform-tests/fetch/api/cors/cors-preflight-status-worker.html
+        https://bugs.webkit.org/show_bug.cgi?id=170395
+        <rdar://problem/31394017>
+
+        Reviewed by Mark Lam.
+
+        * bindings/js/JSDOMPromise.cpp:
+        (WebCore::DeferredPromise::reject): Exiting early in case of scope having an exception.
+        Adding an assertion to ensure this is a worker termination exception.
+
+2017-04-06  Andreas Kling  <akling@apple.com>
+
+        Inaudible background tabs should become eligible for memory kill after 8 minutes
+        https://bugs.webkit.org/show_bug.cgi?id=170574
+        <rdar://problem/31488686>
+
+        Reviewed by Gavin Barraclough.
+
+        Lower the delay for potentially marking background tabs as inactive from 60 minutes to 8 minutes.
+        Letting a tab misbehave in the background for an entire hour was overly charitable.
+
+        * page/PerformanceMonitor.cpp:
+
+2017-04-06  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Scroll offset jumps after a programmatic scroll in an overflow container with scroll snapping
+        https://bugs.webkit.org/show_bug.cgi?id=170560
+        <rdar://problem/31484693>
+
+        Reviewed by Tim Horton.
+
+        Test: css3/scroll-snap/scroll-snap-programmatic-overflow-scroll.html
+
+        Logic for maintaining the scroll snap state in ScrollController was previously removed from iOS when refactoring
+        ScrollController. This was done because scroll snapping on iOS is driven not by the ScrollController (as it is
+        on Mac) but rather by sending scroll snap offsets to the UI process and hooking into UIScrollView delegates to
+        handle retargeted scrolling.
+
+        However, on iOS, this ScrollController state is still important for the purposes of keeping the last active
+        snap point index in sync with the UI process when the scroll offset changes outside of a user gesture (i.e.
+        programmatic scrolling). Since the UI process does not get a chance to update the active snap offset during a
+        programmatic scroll, our last active snap offset state was only being updated to the last snap position that the
+        user manually scrolled to, making programmatic scrolling jump to this offset.
+
+        To fix this, we need to update scroll snap state on iOS within ScrollController. Also adds a new Layout test
+        that exercises programmatic scrolling in an overflow scrolling container on all platforms.
+
+        * platform/cocoa/ScrollController.mm:
+        (WebCore::otherScrollEventAxis):
+        (WebCore::ScrollController::updateScrollSnapState):
+        (WebCore::ScrollController::updateScrollSnapPoints):
+
+2017-04-05  Simon Fraser  <simon.fraser@apple.com>
+
+        Throttle requestAnimationFrame in cross-origin iframes to 30fps
+        https://bugs.webkit.org/show_bug.cgi?id=170534
+
+        Reviewed by Dan Bates.
+
+        Add a throttling reason to ScriptedAnimationController which is NonInteractedCrossOriginFrame,
+        set on cross-origin iframes whose documents have never seen a user interaction. It's cleared
+        as soon as an interaction on this frame or a child frame is detected.
+
+        Move the initialization of the LowPowerMode throttling reason to Document::requestAnimationFrame(),
+        since it's more appropriate to compute NonInteractedCrossOriginFrame here than down in ScriptedAnimationController,
+        and best to do both in the same place.
+
+        Tests: http/tests/frame-throttling/raf-throttle-in-cross-origin-subframe.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::requestAnimationFrame):
+        (WebCore::Document::updateLastHandledUserGestureTimestamp):
+        * dom/Document.h:
+        (WebCore::Document::hasHadUserInteraction):
+        * dom/ScriptedAnimationController.cpp:
+        (WebCore::ScriptedAnimationController::ScriptedAnimationController):
+        (WebCore::throttlingReasonToString):
+        (WebCore::ScriptedAnimationController::interval):
+        * dom/ScriptedAnimationController.h:
+        * loader/FrameLoader.cpp:
+        (WebCore::shouldAskForNavigationConfirmation):
+
+2017-04-05  Simon Fraser  <simon.fraser@apple.com>
+
+        Use the Accelerate framework to optimize FEColorMatrix operations
+        https://bugs.webkit.org/show_bug.cgi?id=170518
+
+        Reviewed by Tim Horton.
+
+        On macOS and iOS, we can use the Accelerate framework (vImage) to do color matrix
+        math to optimize color matrix, hue rotate, saturation and luminosity to alpha filters.
+        
+        Change ImageBuffer::getUnmultipliedImageData() and getPremultipliedImageData() to
+        return the size of the returned Uint8ClampedArray in physical pixels, because we
+        need to pass that to vImage.
+
+        * html/canvas/CanvasRenderingContext2D.cpp:
+        (WebCore::CanvasRenderingContext2D::getImageData):
+        * platform/graphics/ImageBuffer.h:
+        * platform/graphics/cairo/ImageBufferCairo.cpp:
+        (WebCore::ImageBuffer::getUnmultipliedImageData):
+        (WebCore::ImageBuffer::getPremultipliedImageData):
+        * platform/graphics/cg/ImageBufferCG.cpp:
+        (WebCore::ImageBuffer::getUnmultipliedImageData):
+        (WebCore::ImageBuffer::getPremultipliedImageData):
+        * platform/graphics/filters/FEColorMatrix.cpp:
+        (WebCore::effectApplyAccelerated):
+        (WebCore::effectType):
+        (WebCore::FEColorMatrix::platformApplySoftware):
+        * platform/graphics/filters/FEDropShadow.cpp:
+        (WebCore::FEDropShadow::platformApplySoftware):
+        * platform/graphics/win/ImageBufferDirect2D.cpp:
+        (WebCore::ImageBuffer::getUnmultipliedImageData):
+        (WebCore::ImageBuffer::getPremultipliedImageData):
+
+2017-04-04  Simon Fraser  <simon.fraser@apple.com>
+
+        Do some minor FEColorMatrix code cleanup and optimization
+        https://bugs.webkit.org/show_bug.cgi?id=170474
+
+        Reviewed by Dean Jackson.
+
+        Don't switch inside of a pixel processing loop; repeat the loop inside switch (filterType).
+        
+        Change matrix() and saturateAndHueRotate() to dereference the source pixels once, instead
+        of multiple times, which is faster.
+        
+        This kind of code benefits from aligning things with spaces for readability, so do so,
+        violating webkit style.
+        
+        Add some off-by-default performance logging code.
+
+        Increases pixel processing performance from about 86ms per megapixel to 65ms per megapixel.
+
+        * platform/graphics/filters/FEColorMatrix.cpp:
+        (WebCore::matrix):
+        (WebCore::saturateAndHueRotate):
+        (WebCore::effectType):
+        (WebCore::FEColorMatrix::platformApplySoftware):
+
+2017-04-06  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r215041.
+
+        The LayoutTest for this change is failing on ios-simulator.
+
+        Reverted changeset:
+
+        "Rendering flexbox children across columns"
+        https://bugs.webkit.org/show_bug.cgi?id=164166
+        http://trac.webkit.org/changeset/215041
+
+2017-04-06  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r215046.
+
+        This change broke internal builds.
+
+        Reverted changeset:
+
+        "WebRTC tests gardening"
+        https://bugs.webkit.org/show_bug.cgi?id=170508
+        http://trac.webkit.org/changeset/215046
+
+2017-04-06  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Only Capture Extra Network Load Metrics when there is a Web Inspector Frontend
+        https://bugs.webkit.org/show_bug.cgi?id=170525
+
+        Reviewed by Youenn Fablet.
+
+        Covered by existing tests that when Web Inspector is open we enable collecting the extra data.
+
+        * inspector/InspectorInstrumentation.cpp:
+        (WebCore::InspectorInstrumentation::firstFrontendCreated):
+        (WebCore::InspectorInstrumentation::lastFrontendDeleted):
+        * inspector/InspectorInstrumentation.h:
+        (WebCore::InspectorInstrumentation::frontendCreated):
+        (WebCore::InspectorInstrumentation::frontendDeleted):
+        When the first frontend is created enable a new loader strategy to
+        collect extra network load metrics. When the last frontend is closed
+        disable the extra metrics.
+
+        * loader/LoaderStrategy.h:
+        * platform/PlatformStrategies.h:
+        New load strategy to enable/disable new metrics.
+
+2017-04-06  Joseph Pecoraro  <pecoraro@apple.com>
+
+        Web Inspector: Show all headers in the Request Headers section of the Resource details sidebar
+        https://bugs.webkit.org/show_bug.cgi?id=16531
+        <rdar://problem/5712895>
+
+        Reviewed by Timothy Hatcher.
+
+        Test: http/tests/inspector/network/resource-request-headers.html
+
+        * loader/ResourceTiming.cpp:
+        (WebCore::ResourceTiming::ResourceTiming):
+        Eliminate unnecessary data from the NetworkLoadTiming object
+        when it is used for ResourceTiming. This clears up some memory
+        that will otherwise never be used.
+
+        * platform/network/NetworkLoadMetrics.h:
+        (WebCore::NetworkLoadMetrics::isolatedCopy):
+        (WebCore::NetworkLoadMetrics::reset):
+        (WebCore::NetworkLoadMetrics::clearNonTimingData):
+        (WebCore::NetworkLoadMetrics::operator==):
+        (WebCore::NetworkLoadMetrics::encode):
+        (WebCore::NetworkLoadMetrics::decode):
+        Include an optional HTTPHeaderMap for a refined list of
+        request headers for this network load.
+
+        * inspector/InspectorNetworkAgent.cpp:
+        (WebCore::InspectorNetworkAgent::buildObjectForMetrics):
+        Include request headers with other optional metrics data
+        when the load is completed.
+
+2017-04-06  Tim Horton  <timothy_horton@apple.com>
+
+        Follow up to r209304, remove line numbers from one more StyleRule construction
+        https://bugs.webkit.org/show_bug.cgi?id=170564
+
+        Reviewed by Simon Fraser.
+
+        * css/StyleRule.cpp:
+        (WebCore::StyleRuleViewport::StyleRuleViewport):
+        This one was missed in r209304.
+
+2017-04-06  Timothy Horton  <timothy_horton@apple.com>
+
+        Remove an unused member and constructor parameter from CSSPropertyParser
+        https://bugs.webkit.org/show_bug.cgi?id=170562
+
+        Reviewed by Simon Fraser.
+
+        * css/parser/CSSParser.cpp:
+        (WebCore::CSSParser::parseSingleValue):
+        (WebCore::CSSParser::parseValueWithVariableReferences):
+        * css/parser/CSSParserImpl.cpp:
+        (WebCore::CSSParserImpl::consumeDeclarationValue):
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::CSSPropertyParser::CSSPropertyParser):
+        (WebCore::CSSPropertyParser::parseValue):
+        (WebCore::CSSPropertyParser::parseSingleValue):
+        * css/parser/CSSPropertyParser.h:
+        It is possible to get Clang to complain about the unused member, though
+        I'm not sure why it doesn't in the build today.
+
+2017-04-06  Zalan Bujtas  <zalan@apple.com>
+
+        Simple line layout: Hittest always returns the first renderer in the block.
+        https://bugs.webkit.org/show_bug.cgi?id=170520
+        <rdar://problem/30979175>
+
+        Reviewed by Antti Koivisto.
+
+        This is incorrect now with <br> support (multiple renderers within the same block flow).
+
+        Test: fast/dom/Document/CaretRangeFromPoint/simple-line-layout-hittest-with-caret-range-from-point.html
+
+        * rendering/RenderText.cpp:
+        (WebCore::RenderText::positionForPoint): Related fix. We don't yet support positionForPoint with multiple renderes. 
+        * rendering/SimpleLineLayoutFlowContents.h:
+        (WebCore::SimpleLineLayout::FlowContents::segmentForRun): Empty runs are all valid.
+        * rendering/SimpleLineLayoutFunctions.cpp:
+        (WebCore::SimpleLineLayout::hitTestFlow):
+        (WebCore::SimpleLineLayout::collectFlowOverflow):
+        * rendering/SimpleLineLayoutResolver.cpp:
+        (WebCore::SimpleLineLayout::LineResolver::Iterator::operator*): This should eventually return a list of renderes.
+        * rendering/SimpleLineLayoutResolver.h:
+        (WebCore::SimpleLineLayout::RunResolver::flowContents):
+
+2017-04-06  Jon Davis  <jond@apple.com>
+
+        Updates feature status for recently shipped features
+        https://bugs.webkit.org/show_bug.cgi?id=170359
+
+        Reviewed by Brian Burg.
+
+        Added missing Gamepad entry.
+        Changed "Done" status to "Supported".
+        Also changed status from "In Development" to "Supported" for:
+        
+        - CSS Grid Layout Level 1
+        - CSS Inline Layout Module Level 3
+        - CSS Scroll Snap Points Module Level 1
+        - CSS Color Level 4
+        - Fetch API
+        - Indexed Database 2.0
+        - Media Capture and Streams
+        - Pointer Lock
+        - Preload
+        - Input Events
+
+        * features.json:
+
+2017-03-31  Jiewen Tan  <jiewen_tan@apple.com>
+
+        [WebCrypto] Add support for AES-CTR
+        https://bugs.webkit.org/show_bug.cgi?id=169761
+        <rdar://problem/31331321>
+
+        Reviewed by Brent Fulgham.
+
+        This patch adds support for AES-CTR. Operations of AES-CTR include: encrypt, decrypt, generateKey,
+        importKey, exportKey, wrapKey, and unwrapKey. This implementation follows the latest WebCryptoAPI
+        spec: https://www.w3.org/TR/WebCryptoAPI/#aes-ctr.
+
+        Tests: crypto/subtle/aes-ctr-encrypt-malformed-parameters.html
+               crypto/subtle/aes-ctr-encrypt-overflow.html
+               crypto/subtle/aes-ctr-generate-export-key-jwk-length-128.html
+               crypto/subtle/aes-ctr-generate-export-key-jwk-length-192.html
+               crypto/subtle/aes-ctr-generate-export-key-jwk-length-256.html
+               crypto/subtle/aes-ctr-generate-export-raw-key.html
+               crypto/subtle/aes-ctr-generate-key-encrypt-decrypt.html
+               crypto/subtle/aes-ctr-generate-key.html
+               crypto/subtle/aes-ctr-import-jwk-key-length-128.html
+               crypto/subtle/aes-ctr-import-jwk-key-length-192.html
+               crypto/subtle/aes-ctr-import-jwk-key-length-256.html
+               crypto/subtle/aes-ctr-import-key-decrypt.html
+               crypto/subtle/aes-ctr-import-key-encrypt.html
+               crypto/subtle/aes-ctr-import-key-unwrap-jwk-key.html
+               crypto/subtle/aes-ctr-import-key-unwrap-raw-key.html
+               crypto/subtle/aes-ctr-import-key-wrap-jwk-key.html
+               crypto/subtle/aes-ctr-import-key-wrap-raw-key.html
+               crypto/subtle/aes-ctr-import-raw-key.html
+               crypto/workers/subtle/aes-ctr-import-key-decrypt.html
+               crypto/workers/subtle/aes-ctr-import-key-encrypt.html
+               crypto/workers/subtle/aes-ctr-import-key-unwrap-key.html
+               crypto/workers/subtle/aes-ctr-import-key-wrap-key.html
+
+        * CMakeLists.txt:
+        * DerivedSources.make:
+        * PlatformGTK.cmake:
+        * PlatformMac.cmake:
+        * WebCore.xcodeproj/project.pbxproj:
+        * bindings/js/JSSubtleCryptoCustom.cpp:
+        (WebCore::normalizeCryptoAlgorithmParameters):
+        * crypto/CryptoAlgorithmParameters.h:
+        * crypto/algorithms/CryptoAlgorithmAES_CTR.cpp: Added.
+        (WebCore::usagesAreInvalidForCryptoAlgorithmAES_CTR):
+        (WebCore::parametersAreValid):
+        (WebCore::CryptoAlgorithmAES_CTR::create):
+        (WebCore::CryptoAlgorithmAES_CTR::identifier):
+        (WebCore::CryptoAlgorithmAES_CTR::encrypt):
+        (WebCore::CryptoAlgorithmAES_CTR::decrypt):
+        (WebCore::CryptoAlgorithmAES_CTR::generateKey):
+        (WebCore::CryptoAlgorithmAES_CTR::importKey):
+        (WebCore::CryptoAlgorithmAES_CTR::exportKey):
+        (WebCore::CryptoAlgorithmAES_CTR::getKeyLength):
+        * crypto/algorithms/CryptoAlgorithmAES_CTR.h: Added.
+        * crypto/gcrypt/CryptoAlgorithmAES_CTRGCrypt.cpp: Added.
+        (WebCore::CryptoAlgorithmAES_CTR::platformEncrypt):
+        (WebCore::CryptoAlgorithmAES_CTR::platformDecrypt):
+        * crypto/mac/CryptoAlgorithmAES_CTRMac.cpp: Added.
+        (WebCore::bigIntegerToSize):
+        (WebCore::transformAES_CTR):
+        (WebCore::CryptoAlgorithmAES_CTR::platformEncrypt):
+        (WebCore::CryptoAlgorithmAES_CTR::platformDecrypt):
+        * crypto/mac/CryptoAlgorithmRegistryMac.cpp:
+        (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
+        * crypto/parameters/AesCtrParams.idl: Added.
+        * crypto/parameters/CryptoAlgorithmAesCtrParams.h: Added.
+
+2017-04-06  Youenn Fablet  <youenn@apple.com>
+
+        WebRTC tests gardening
+        https://bugs.webkit.org/show_bug.cgi?id=170508
+
+        Reviewed by Eric Carlson.
+
+        * Configurations/FeatureDefines.xcconfig: Changing webrtc enabling for ios.
+
+2017-04-06  Andreas Kling  <akling@apple.com>
+
+        Stop forcing CA commit when memory pressure changes.
+        https://bugs.webkit.org/show_bug.cgi?id=170522
+        <rdar://problem/31460236>
+
+        Reviewed by Antti Koivisto.
+
+        Don't force a CA commit when reaching critical memory pressure. We're already doing a ton
+        of work in response to the pressure, and this was really a hack to try to react quickly on
+        512 MB devices which we don't support anymore.
+
+        * page/MemoryRelease.cpp:
+        (WebCore::releaseCriticalMemory):
+
+2017-04-06  Romain Bellessort  <romain.bellessort@crf.canon.fr>
+
+        [Readable Streams API] Implement ReadableStreamBYOBRequest respondWithNewView()
+        https://bugs.webkit.org/show_bug.cgi?id=170339
+
+        Reviewed by Youenn Fablet.
+
+        Implemented ReadableStreamBYOBRequest respondWithNewView().
+
+        Added new tests to check respondWithNewView() behaviour.
+
+        * Modules/streams/ReadableByteStreamInternals.js:
+        (readableByteStreamControllerRespondWithNewView): Added.
+        * Modules/streams/ReadableStreamBYOBRequest.js:
+        (respondWithNewView): Updated.
+
+2017-04-06  Eric Carlson  <eric.carlson@apple.com>
+
+        [MediaStream] Host application should be able to mute and unmute media streams
+        https://bugs.webkit.org/show_bug.cgi?id=170519
+        <rdar://problem/31174326>
+
+        Unreviewed, fix crash introduced in r214980.
+
+        * Modules/mediastream/MediaStream.cpp:
+        (WebCore::MediaStream::MediaStream): NULL-check page.
+
+2017-04-06  Dave Hyatt  <hyatt@apple.com>
+
+        Rendering flexbox children across columns
+        https://bugs.webkit.org/show_bug.cgi?id=164166
+        <rdar://problem/29055587>
+
+        Reviewed by Zalan Bujtas.
+
+        Added fast/multicol/flexbox-rows.html.
+
+        * rendering/RenderBlockFlow.cpp:
+        (WebCore::RenderBlockFlow::adjustForUnsplittableChild):
+        Treat block-level flexboxes that occur inside block flows the same as replaced
+        and unsplittable elements and push them to the next page if they don't fit. We don't
+        update the minimum page height though, since the flexbox is not really unsplittable.
+
+2017-04-05  Simon Fraser  <simon.fraser@apple.com>
+
+        Set lastHandledUserGestureTimestamp on all ancestor documents, not just the top document
+        https://bugs.webkit.org/show_bug.cgi?id=170479
+
+        Reviewed by Sam Weinig.
+
+        When interacting with a subframe document, set lastHandledUserGestureTimestamp on all ancestor
+        documents up to the root.
+
+        This will be used in future for requestAnimationFrame throttling.
+
+        Test: fast/frames/user-gesture-timestamp-propagation.html
+
+        * dom/Document.cpp:
+        (WebCore::Document::updateLastHandledUserGestureTimestamp):
+        * dom/Document.h:
+        * dom/UserGestureIndicator.cpp:
+        (WebCore::UserGestureIndicator::UserGestureIndicator):
+        * testing/Internals.cpp:
+        (WebCore::Internals::lastHandledUserGestureTimestamp):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
 2017-04-05  Eric Carlson  <eric.carlson@apple.com>
 
         [MediaStream] Host application should be able to mute and unmute media streams