Unprefix CSS cursor values grab and grabbing
[WebKit-https.git] / Source / WebCore / ChangeLog
index 0fa1da4..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
+        https://bugs.webkit.org/show_bug.cgi?id=170519
+        <rdar://problem/31174326>
+
+        Unreviewed, address review comments missed in the initial checkin.
+
+        * Modules/mediastream/MediaStream.cpp:
+        (WebCore::MediaStream::MediaStream): Mute the private stream if the page doesn't allow
+        capture.
+        (WebCore::MediaStream::pageMutedStateDidChange): setMuted -> setCaptureTracksMuted.
+
+        * platform/mediastream/MediaStreamPrivate.cpp:
+        (WebCore::MediaStreamPrivate::addTrack): Don't track muted state, the capture source already does.
+        (WebCore::MediaStreamPrivate::startProducingData):  Ditto.
+        (WebCore::MediaStreamPrivate::setCaptureTracksMuted): Renamed from setMuted.
+        (WebCore::MediaStreamPrivate::setMuted): Deleted.
+        * platform/mediastream/MediaStreamPrivate.h:
+
+2017-04-05  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>
+
+        Reviewed by Youenn Fablet.
+
+        No new tests, fast/mediastream/MediaStream-page-muted.html was updated.
+
+        * Modules/mediastream/MediaStream.cpp:
+        (WebCore::MediaStream::~MediaStream): Fix a typo.
+        (WebCore::MediaStream::pageMutedStateDidChange): Don't store muted state, let the private
+        stream store it.
+        (WebCore::MediaStream::mediaState): Deal with new muted state flags.
+        * Modules/mediastream/MediaStream.h:
+
+        * dom/Document.cpp:
+        (WebCore::Document::prepareForDestruction): Clear media state before the frame is cleared.
+
+        * page/MediaProducer.h: Add muted flags.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::checkSelectedVideoTrack): The display layer
+        should not be visible when the video track is muted.
+
+        * platform/mediastream/MediaStreamPrivate.cpp:
+        (WebCore::MediaStreamPrivate::addTrack): Mute the new track if necessary.
+        (WebCore::MediaStreamPrivate::startProducingData): Do nothing when muted.
+        (WebCore::MediaStreamPrivate::setExternallyMuted): New, mute/unmute tracks.
+        * platform/mediastream/MediaStreamPrivate.h:
+
+        * platform/mediastream/RealtimeMediaSource.cpp:
+        (WebCore::RealtimeMediaSource::setMuted): Start/stop producing data.
+
+        * testing/Internals.cpp:
+        (WebCore::Internals::pageMediaState): Support new media stream muted flags.
+
+2017-04-05  Andreas Kling  <akling@apple.com>
+
+        Make inactive web processes behave as though under memory pressure.
+        https://bugs.webkit.org/show_bug.cgi?id=170042
+        <rdar://problem/31038445>
+
+        Reviewed by Antti Koivisto.
+
+        Prevent PerformanceMonitor from marking the process as inactive at startup.
+        This fixes the API test failure that caused this patch to get rolled out.
+
+        * page/PerformanceMonitor.h:
+
+2017-04-05  Youenn Fablet  <youenn@apple.com>
+
+        Switch to kCVPixelFormatType_420YpCbCr8BiPlanarFullRange for Mac video capture format
+        https://bugs.webkit.org/show_bug.cgi?id=170509
+
+        Reviewed by Eric Carlson.
+
+        Covered by existing tests.
+
+        * platform/mediastream/mac/AVVideoCaptureSource.mm:
+
+2017-04-05  Javier Fernandez  <jfernandez@igalia.com>
+
+        [css-align] Implement the place-items shorthand
+        https://bugs.webkit.org/show_bug.cgi?id=168847
+
+        Reviewed by David Hyatt.
+
+        The CSS Box Alignment specification defines a new shorthand to set the
+        Content Alignment properties (align-items and justify-items) at the
+        same time.
+
+        This patch provides the implementation of the CSS parsing logic and the
+        required regression tests. For the time being, as it happens with the
+        rest of the new alignment properties, the new parsing logic is
+        implemented behind the CSS Grid Layout runtime flag.
+
+        Test: css3/parse-place-items.html
+
+        * css/CSSComputedStyleDeclaration.cpp:
+        (WebCore::ComputedStyleExtractor::propertyValue):
+        * css/CSSProperties.json:
+        * css/StyleProperties.cpp:
+        (WebCore::StyleProperties::getPropertyValue):
+        (WebCore::StyleProperties::getAlignmentShorthandValue):
+        * css/StyleProperties.h:
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::isAutoOrNormalOrStretch):
+        (WebCore::consumeSelfPositionOverflowPosition):
+        (WebCore::consumeSimplifiedItemPosition):
+        (WebCore::CSSPropertyParser::consumePlaceItemsShorthand):
+        * css/parser/CSSPropertyParser.h:
+
+2017-04-05  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r214932.
+
+        This change broke an internal build.
+
+        Reverted changeset:
+
+        "[ios-simulator] API test WebKit2.DataDetectionReferenceDate
+        timing out"
+        https://bugs.webkit.org/show_bug.cgi?id=161967
+        http://trac.webkit.org/changeset/214932
+
+2017-04-05  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r214962.
+
+        Roll r214937 back in because it wasn't at fault for the build
+        breakage.
+
+        Reverted changeset:
+
+        "Unreviewed, rolling out r214937."
+        https://bugs.webkit.org/show_bug.cgi?id=170365
+        http://trac.webkit.org/changeset/214962
+
+2017-04-05  Ryan Haddad  <ryanhaddad@apple.com>
+
+        Unreviewed, rolling out r214937.
+
+        This change broke an internal build.
+
+        Reverted changeset:
+
+        "REGRESSION (r202472): Data Detection overwrites existing
+        links in detected ranges"
+        https://bugs.webkit.org/show_bug.cgi?id=170365
+        http://trac.webkit.org/changeset/214937
+
+2017-04-05  Carlos Alberto Lopez Perez  <clopez@igalia.com>
+
+        [WebRTC][OpenWebRTC] Add support for SDP BUNDLE ("a:group:BUNDLE" and "a=bundle-only" lines)
+        https://bugs.webkit.org/show_bug.cgi?id=170157
+
+        Reviewed by Alejandro G. Castro.
+
+        This implements support on the SDPProcessor for generating an "a=group:BUNDLE"
+        attribute with the MID identifiers specified in the bundle group in the most
+        recent answer.
+        It also implements support for generating "a=bundle-only" attributes on the
+        "m=" sections of the SDP according to the bundlePolicy defined.
+
+        Test: fast/mediastream/RTCPeerConnection-inspect-offer-bundlePolicy-bundle-only.html
+
+        * Modules/mediastream/MediaEndpointPeerConnection.cpp:
+        (WebCore::MediaEndpointPeerConnection::createOfferTask):
+        (WebCore::MediaEndpointPeerConnection::createAnswerTask):
+        * Modules/mediastream/SDPProcessor.cpp:
+        (WebCore::getBundlePolicyName):
+        (WebCore::configurationToJSON):
+        * Modules/mediastream/sdp.js:
+        (SDP.generate):
+        * platform/mediastream/MediaEndpointSessionConfiguration.h:
+        (WebCore::MediaEndpointSessionConfiguration::bundlePolicy):
+        (WebCore::MediaEndpointSessionConfiguration::setBundlePolicy):
+        (WebCore::MediaEndpointSessionConfiguration::clone):
+
+2017-04-05  Jer Noble  <jer.noble@apple.com>
+
+        [MSE] Seeks to currentTime=0 will fail if currentTime is already 0.
+        https://bugs.webkit.org/show_bug.cgi?id=170510
+        <rdar://problem/30988403>
+
+        Reviewed by Eric Carlson.
+
+        Test: media/media-source/media-source-unnecessary-seek-seeked.html
+
+        The AVSampleBufferRenderSynchronizer won't fire a time jumped notification if no seek is actully
+        necessary. So short circuit the seek logic if the seek time is identical to the current synchronizer
+        time.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
+
+2017-04-05  Chris Dumez  <cdumez@apple.com>
+
+        <input type="range"> changing to disabled while active breaks all pointer events
+        https://bugs.webkit.org/show_bug.cgi?id=170447
+        <rdar://problem/31442875>
+
+        Reviewed by Geoffrey Garen.
+
+        When a range's slider is being moved, we set SliderThumbElement's m_inDragMode flag
+        to true and mark the range elements as the CapturingMouseEventsElement. When we get
+        the mouseUp event, we are supposed to exit drag mode. However, when the range element
+        gets disabled while dragging, we do not get the mouseUp event and we need to make
+        sure we exit dragging mode anyway. r112547 tried to fix this by calling stopDragging()
+        in SliderThumbElement::defaultEventHandler() when the input element is disabled.
+        While this often works, this is fragile and we sometimes fail to exit dragging mode
+        when we should.
+
+        This patch addressed the issue by calling stopDragging() in
+        SliderThumbElement::disabledAttributeChanged() instead. This is much safer as we
+        guarantee will exit dragging mode whenever the range element gets disabled, even
+        if SliderThumbElement::defaultEventHandler() does not get called after that.
+
+        Test: fast/forms/range/disabled-while-dragging.html
+
+        * html/RangeInputType.cpp:
+        (WebCore::RangeInputType::disabledAttributeChanged):
+        * html/RangeInputType.h:
+        * html/shadow/SliderThumbElement.cpp:
+        (WebCore::SliderThumbElement::defaultEventHandler):
+        (WebCore::SliderThumbElement::disabledAttributeChanged):
+        * html/shadow/SliderThumbElement.h:
+
+2017-04-05  Eric Carlson  <eric.carlson@apple.com>
+
+        [MediaStream] Video doesn't render in fullscreen on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=170404
+
+        Reviewed by Youenn Fablet.
+        
+        No new tests, filed https://bugs.webkit.org/show_bug.cgi?id=170512.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::MediaPlayerPrivateMediaStreamAVFObjC): Include
+        video fullscreen manager on iOS too.
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::videoTransformationMatrix): Add paramater
+        to force transform recalculation.
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::enqueueVideoSample): Restructure code since
+        the display layer resize happens elsewhere.
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::ensureLayers): Include video fullscreen
+        manager on iOS too.
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::destroyLayers): Ditto.
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::platformLayer): Ditto.
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::setVideoFullscreenLayer): Ditto.
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::backgroundLayerBoundsChanged): Change the
+        display layer size and position immediately instead of waiting for the next sample buffer
+        so the display is correct when fullscreen mode changes when paused.
+
+2017-04-05  Youenn Fablet  <youenn@apple.com>
+
+        Deprecate and remove URL.createObjectURL(mediastream)
+        https://bugs.webkit.org/show_bug.cgi?id=167518
+        <rdar://problem/31149607>
+
+        Reviewed by Eric Carlson.
+
+        Covered by updated tests.
+
+        * CMakeLists.txt:
+        * DerivedSources.cpp:
+        * DerivedSources.make:
+        * Modules/mediastream/DOMURLMediaStream.cpp: Removed.
+        * Modules/mediastream/DOMURLMediaStream.h: Removed.
+        * Modules/mediastream/DOMURLMediaStream.idl: Removed.
+        * WebCore.xcodeproj/project.pbxproj:
+        * html/DOMURL.idl:
+
+2017-04-05  Alejandro G. Castro  <alex@igalia.com>
+
+        [Webrtc] Mock realtime sources factories should be static after r213941
+        https://bugs.webkit.org/show_bug.cgi?id=170282
+
+        Reviewed by Alex Christensen.
+
+        If we don't make the variables static we would be returning a
+        local variable.
+
+        * platform/mock/MockRealtimeAudioSource.cpp:
+        (WebCore::MockRealtimeAudioSource::factory):
+        * platform/mock/MockRealtimeVideoSource.cpp:
+        (WebCore::MockRealtimeVideoSource::factory):
+
+2017-04-05  Alex Christensen  <achristensen@webkit.org>
+
+        Fix CMake build.
+
+        * platform/graphics/avfoundation/objc/MediaSampleAVFObjC.mm:
+        Some JavaScript inline functions were not being accessed from this file with different enable flags.
+        * platform/spi/cf/CFNetworkSPI.h:
+        * platform/spi/cocoa/NSURLConnectionSPI.h:
+        Moved NSURLSession-specific SPI from NSURLConnectionSPI.h to CFNetworkSPI.h.
+
+2017-04-05  Chris Dumez  <cdumez@apple.com>
+
+        _blank / _self / _parent / _top browsing context names should be case-insensitive
+        https://bugs.webkit.org/show_bug.cgi?id=169747
+
+        Reviewed by Alex Christensen.
+
+        _blank / _self / _parent / _top browsing context names should be case-insensitive
+        as per the HTML specification:
+        - https://html.spec.whatwg.org/#browsing-context-names
+
+        This aligns our behavior with Firefox as well. See discussion at:
+        - https://github.com/whatwg/html/issues/2443
+
+        Tests: imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-_blank.html
+               imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-choose-parent-001.html
+               imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-choose-parent-002.html
+               imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-choose-parent-003.html
+               imported/w3c/web-platform-tests/html/browsers/windows/browsing-context-names/browsing-context-choose-parent-004.html
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
+        (WebCore::createWindow):
+        * page/DOMWindow.cpp:
+        (WebCore::DOMWindow::open):
+        * page/FrameTree.cpp:
+        (WebCore::FrameTree::uniqueChildName):
+        (WebCore::FrameTree::find):
+
+2017-04-05  Miguel Gomez  <magomez@igalia.com>
+
+        [GTK+] PNG animations that should run once are not played at all
+        https://bugs.webkit.org/show_bug.cgi?id=170499
+
+        Reviewed by Carlos Garcia Campos.
+
+        The repetition count reported bu the PNGImageDecoder is wrong. It's returning m_playCount - 1, which
+        means 0 for the animations that need to be played once. Change it to return an appropriate value.
+
+        Covered by existent tests.
+
+        * platform/image-decoders/png/PNGImageDecoder.cpp:
+        (WebCore::PNGImageDecoder::repetitionCount):
+        * platform/image-decoders/png/PNGImageDecoder.h:
+
+2017-04-05  Andy Estes  <aestes@apple.com>
+
+        REGRESSION (r202472): Data Detection overwrites existing links in detected ranges
+        https://bugs.webkit.org/show_bug.cgi?id=170365
+        <rdar://problem/29205721>
+
+        Reviewed by Tim Horton.
+
+        r202472 changed the node traversal in searchForLinkRemovingExistingDDLinks() to only
+        consider nodes that are descendants of startNode, but we need to traverse all nodes between
+        startNode and endNode to find existing non-DD links.
+
+        As a result, we'd add a Data Detector link to the following snippet and make the original
+        links un-clickable:
+
+            <a href='#'>tomorrow</a> <a href='#'>night</a>
+
+        Fix this by not specifying a stayWithin node when calling NodeTraversal::next(). The loop
+        will terminate when we reach endNode.
+
+        Updated WebKit2.DataDetectionReferenceDate API test.
+
+        * editing/cocoa/DataDetection.mm:
+        (WebCore::searchForLinkRemovingExistingDDLinks):
+
+2017-04-04  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        Move WebErrors from WebProcess to Shared and get rid of ErrorsGtk in WebCore
+        https://bugs.webkit.org/show_bug.cgi?id=156974
+
+        Reviewed by Sam Weinig.
+
+        Remove ErrorsGtk.
+
+        * PlatformGTK.cmake:
+        * platform/gtk/ErrorsGtk.cpp: Removed.
+        * platform/gtk/ErrorsGtk.h: Removed.
+
+2017-04-05  Andy Estes  <aestes@apple.com>
+
+        [ios-simulator] API test WebKit2.DataDetectionReferenceDate timing out
+        https://bugs.webkit.org/show_bug.cgi?id=161967
+
+        Reviewed by Alexey Proskuryakov.
+
+        DataDetectorsCoreSPI.h defined DDQueryOffset as a struct of two CFIndexes, which is 16 bytes
+        on LP64, but the struct is actually defined as two CFIndex-typed 32-bit bitfields, which is
+        8 bytes on LP64. This breaks the ABI on Public SDK builds when calling functions that take
+        or return DDQueryOffsets.
+
+        * platform/spi/cocoa/DataDetectorsCoreSPI.h: Updated the DDQueryOffset definition for
+        Public SDK builds, and added a static_assert to detect future size changes at compile time.
+
+2017-04-04  Jer Noble  <jer.noble@apple.com>
+
+        Move AVSampleBufferDisplayLayer declarations into AVFoundationSPI.h
+        https://bugs.webkit.org/show_bug.cgi?id=170471
+
+        Reviewed by Eric Carlson.
+
+        Move the declaration of AVSampleBufferDisplayLayer (and related classes) into AVFoundationSPI.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        * platform/spi/mac/AVFoundationSPI.h:
+
+2017-04-04  Youenn Fablet  <youenn@apple.com>
+
+        Canvas is tainted when painting a video with MediaStreamTrack
+        https://bugs.webkit.org/show_bug.cgi?id=170486
+
+        Reviewed by Eric Carlson.
+
+        Test: http/tests/media/media-stream/getusermedia-with-canvas.html
+
+        Adding the notion of isolated source so that we can later on implement WebRTC isolated tracks.
+        For now, canvas will not be tainted if painted from a MediaStreamTrack.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.h:
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaStreamAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaStreamAVFObjC::didPassCORSAccessCheck):
+        * platform/mediastream/MediaStreamTrackPrivate.h:
+        (WebCore::MediaStreamTrackPrivate::isIsolated):
+        * platform/mediastream/RealtimeMediaSource.h:
+
+2017-04-04  Commit Queue  <commit-queue@webkit.org>
+
+        Unreviewed, rolling out r214894, r214895, r214907, r214912,
+        and r214918.
+        https://bugs.webkit.org/show_bug.cgi?id=170491
+
+        Caused build failures on Mac (Requested by rniwa on #webkit).
+
+        Reverted changesets:
+
+        "Build fix."
+        http://trac.webkit.org/changeset/214894
+
+        "Rolling back the build fix, as it broke other builds."
+        http://trac.webkit.org/changeset/214895
+
+        "Move AVSampleBufferDisplayLayer declarations into
+        AVFoundationSPI.h"
+        https://bugs.webkit.org/show_bug.cgi?id=170471
+        http://trac.webkit.org/changeset/214907
+
+        "Unreviewed build fix: fix compilation error on Sierra."
+        http://trac.webkit.org/changeset/214912
+
+        "More build fixing."
+        http://trac.webkit.org/changeset/214918
+
+2017-04-04  Youenn Fablet  <youenn@apple.com>
+
+        [Mac] Add back web audio support for getUserMedia MediaStreamTrack
+        https://bugs.webkit.org/show_bug.cgi?id=170482
+
+        Reviewed by Eric Carlson.
+
+        ´Covered by reenabled test.
+
+        Exporting method and class used in WebKit2.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * platform/audio/mac/CAAudioStreamDescription.h:
+        * platform/mediastream/mac/WebAudioSourceProviderAVFObjC.h:
+
+2017-04-04  Alexey Proskuryakov  <ap@apple.com>
+
+        More build fixing.
+
+        * platform/spi/mac/AVFoundationSPI.h:
+
+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-04  Brent Fulgham  <bfulgham@apple.com>
+
+        Do not assert when CharacterData representing an Attr fires events
+        https://bugs.webkit.org/show_bug.cgi?id=170454
+        <rdar://problem/30979320>
+
+        Reviewed by Ryosuke Niwa.
+
+        Make the NoEventDispatchAssertion in CharacterData::notifyParentAfterChange conditional
+        since Attr elements should be allowed to fire events.
+
+        Tests: fast/dom/no-assert-for-malformed-js-url-attribute.html
+
+        * dom/CharacterData.cpp:
+        (WebCore::CharacterData::notifyParentAfterChange):
+
+2017-04-04  Youenn Fablet  <youenn@apple.com>
+
+        LayoutTest webrtc/libwebrtc/descriptionGetters.html is a flaky failure
+        https://bugs.webkit.org/show_bug.cgi?id=169481
+
+        Reviewed by Eric Carlson.
+
+        No need to enumerate all network interfaces in most layout tests.
+        Adding an Internals API for that in case we want to use TCP localhost candidates.
+
+        * testing/Internals.cpp:
+        (WebCore::Internals::Internals):
+        (WebCore::Internals::setEnumeratingAllNetworkInterfacesEnabled):
+        * testing/Internals.h:
+        * testing/Internals.idl:
+
+
+2017-04-04  Jer Noble  <jer.noble@apple.com>
+
+        Unreviewed build fix: fix compilation error on Sierra.
+
+        * platform/spi/mac/AVFoundationSPI.h:
+
+2017-04-04  Jer Noble  <jer.noble@apple.com>
+
+        Move AVSampleBufferDisplayLayer declarations into AVFoundationSPI.h
+        https://bugs.webkit.org/show_bug.cgi?id=170471
+
+        Reviewed by Eric Carlson.
+
+        Move the declaration of AVSampleBufferDisplayLayer (and related classes) into AVFoundationSPI.
+
+        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addDisplayLayer): Deleted.
+        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::removeDisplayLayer): Deleted.
+        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+        * platform/spi/mac/AVFoundationSPI.h:
+
+2017-04-04  Saam Barati  <sbarati@apple.com>
+
+        WebAssembly: JSWebAssemblyCallee should not be a JSCell
+        https://bugs.webkit.org/show_bug.cgi?id=170135
+
+        Reviewed by Michael Saboff.
+
+        * bindings/js/JSDOMWindowBase.cpp:
+        (WebCore::callerDOMWindow):
+
+2017-04-04  Simon Fraser  <simon.fraser@apple.com>
+
+        Change Document's lastHandledUserGestureTimestamp to be a MonotonicTime
+        https://bugs.webkit.org/show_bug.cgi?id=170468
+
+        Reviewed by Zalan Bujtas.
+        
+        Change the double to MonotonicTime. No behavior change.
+
+        * dom/Document.cpp:
+        (WebCore::Document::updateLastHandledUserGestureTimestamp):
+        * dom/Document.h:
+        (WebCore::Document::lastHandledUserGestureTimestamp):
+        * html/HTMLPlugInImageElement.cpp:
+        (WebCore::documentHadRecentUserGesture):
+        * loader/FrameLoader.cpp:
+        (WebCore::shouldAskForNavigationConfirmation):
+
+2017-04-04  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.
+
+        No change of behavior.
+
+        * bindings/js/JSDOMPromise.cpp:
+        (WebCore::DeferredPromise::reject): Adding early ASSERT that creating an exception is happening correctly.
+
+2017-04-04  Alexey Proskuryakov  <ap@apple.com>
+
+        Rolling back the build fix, as it broke other builds.
+
+        * platform/spi/mac/AVFoundationSPI.h:
+
+2017-04-04  Alexey Proskuryakov  <ap@apple.com>
+
+        Build fix.
+
+        Rubber-stamped by Jer Noble.
+
+        * platform/spi/mac/AVFoundationSPI.h:
+
+2017-04-04  Tim Horton  <timothy_horton@apple.com>
+
+        [Mac] -[WKWebView findMatchesForString:relativeToMatch:findOptions:maxResults:resultCollector:] invokes the resultCollector with didWrap = NO even when it wraps
+        https://bugs.webkit.org/show_bug.cgi?id=165801
+        <rdar://problem/29649535>
+
+        Reviewed by Wenson Hsieh.
+
+        New API tests: WebKit2.FindInPageWrapping*
+
+        * page/FrameTree.cpp:
+        (WebCore::FrameTree::traverseNextWithWrap):
+        (WebCore::FrameTree::traversePreviousWithWrap):
+        (WebCore::FrameTree::traverseNextInPostOrderWithWrap):
+        * page/FrameTree.h:
+        Add CanWrap and DidWrap boolean enums, and add an optional out argument
+        to traverse*WithWrap indicating whether a wrap actually occurred.
+
+        * history/CachedPage.cpp:
+        (WebCore::firePageShowAndPopStateEvents):
+        * history/PageCache.cpp:
+        (WebCore::destroyRenderTree):
+        Adjust to the new CanWrap enum.
+        
+        * page/Page.cpp:
+        (WebCore::incrementFrame):
+        (WebCore::Page::findString):
+        (WebCore::Page::findStringMatchingRanges):
+        (WebCore::Page::rangeOfString):
+        (WebCore::Page::findMatchesForText):
+        (WebCore::Page::unmarkAllTextMatches):
+        * page/Page.h:
+        Adjust to the new CanWrap enum, and optionally plumb DidWrap through
+        to callers of findString().
+
+2017-04-04  Carlos Garcia Campos  <cgarcia@igalia.com>
+
+        [GTK] PLATFORM(GTK) && !USE(COORDINATED_GRAPHICS_THREADED) is no longer possible
+        https://bugs.webkit.org/show_bug.cgi?id=170458
+
+        Reviewed by Carlos Alberto Lopez Perez.
+
+        That is not supported anymore, so we can remove dead code from VideoSinkGStreamer.cpp
+
+        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
+        (VideoRenderRequestScheduler::VideoRenderRequestScheduler):
+
+2017-04-04  Per Arne Vollan  <pvollan@apple.com>
+
+        Unreviewed Windows build fix.
+
+        * bindings/js/JSDOMGuardedObject.h:
+
+2017-04-03  Wenson Hsieh  <wenson_hsieh@apple.com>
+
+        Data interaction should register type identifiers in order of priority
+        https://bugs.webkit.org/show_bug.cgi?id=170428
+        <rdar://problem/30633296>
+
+        Reviewed by Tim Horton.
+
+        Currently, due to the shared logic for writing to a UIPasteboard (in the case of copy/paste) and the shared
+        UIItemProvider-based pasteboard wrapper (in the case of data interaction), we don't enforce any particular
+        ordering in which type identifiers are registered in the generated item provider. This is because
+        -[UIPasteboard setItems:] only takes an unordered mapping of type identifiers to objects.
+
+        To fix this, we introduce a separate way to set pasteboard data that first writes a list of object
+        representations in order of priority (which is dependent on the content being interacted with) and then register
+        individual type-data mappings at the end.
+
+        Augmented existing API tests in DataInteractionTests to check for the existence and priority of type identifiers
+        in the UIItemProviders created upon starting data interaction. Also adds a new unit test:
+        DataInteractionTests.TextAreaToInput.
+
+        * WebCore.xcodeproj/project.pbxproj:
+        * editing/cocoa/EditorCocoa.mm:
+        (WebCore::archivedDataForAttributedString):
+        (WebCore::Editor::writeSelectionToPasteboard):
+        (WebCore::Editor::writeSelection):
+        * platform/Pasteboard.h:
+        * platform/PasteboardWriterData.h:
+        * platform/PlatformPasteboard.h:
+        * platform/ios/AbstractPasteboard.h:
+        * platform/ios/AbstractPasteboard.mm: Copied from Source/WebCore/platform/ios/AbstractPasteboard.h.
+
+        Introduce WebPasteboardItemData, a wrapper around a list of objects representating the pasteboard data in order
+        of priority, and a dictionary containing additional NSData blobs that contain data useful for private clients.
+
+        (+[WebPasteboardItemData itemWithRepresentingObjects:additionalData:]):
+        (-[WebPasteboardItemData initWithRepresentingObjects:additionalData:]):
+        (-[WebPasteboardItemData representingObjects]):
+        (-[WebPasteboardItemData additionalData]):
+        * platform/ios/PlatformPasteboardIOS.mm:
+        (WebCore::richTextRepresentationsForPasteboardWebContent):
+        (WebCore::PlatformPasteboard::writeObjectRepresentations):
+        (WebCore::PlatformPasteboard::write):
+
+        Tweaked to check whether the pasteboard responds to -setItemsFromObjectRepresentations:. If so, uses the
+        PlatformPasteboard::writeObjectRepresentations codepath to write data to the pasteboard, respecting type
+        priority.
+
+        * platform/ios/WebItemProviderPasteboard.mm:
+        (-[WebItemProviderPasteboard pasteboardTypes]):
+        (-[WebItemProviderPasteboard setItemProviders:]):
+        (-[WebItemProviderPasteboard setItemsFromObjectRepresentations:]):
+
+        Replaces -setItems: with -setItemsFromObjectRepresentations:, which respects the priority of each object
+        representation of the data in the pasteboard.
+
+        (-[WebItemProviderPasteboard setItems:]): Deleted.
+
+2017-04-03  Javier Fernandez  <jfernandez@igalia.com>
+
+        [css-align] Adapt place-content alignment shorthand to the new baseline syntax
+        https://bugs.webkit.org/show_bug.cgi?id=170340
+
+        Reviewed by David Hyatt.
+
+        Now that the align-content and justify-content CSS properties are
+        adapted to the new baseline-position CSS values syntax we can adapt the
+        shorthand that controls such properties to the new syntax as well.
+
+        No new tests, just adding some additional cases to the tests we already have.
+
+        * css/StyleProperties.cpp:
+        (WebCore::StyleProperties::getPropertyValue):
+        (WebCore::StyleProperties::placeContentPropertyValue):
+        * css/StyleProperties.h:
+        * css/parser/CSSPropertyParser.cpp:
+        (WebCore::isContentDistributionKeyword):
+        (WebCore::isContentPositionKeyword):
+        (WebCore::isOverflowKeyword):
+        (WebCore::getBaselineKeyword):
+        (WebCore::consumeContentDistributionOverflowPosition):
+        (WebCore::consumeSimplifiedContentPosition):
+
+2017-04-03  Nan Wang  <n_wang@apple.com>
+
+        AX: Expose link children when doing search predication on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=170424
+        <rdar://problem/31413335>
+
+        The children of links are accessible elements on iOS instead of the link itself, 
+        so we should expose the children when doing predicated searches as well.
+
+        Reviewed by Chris Fleizach.
+
+        Test: accessibility/ios-simulator/ios-search-predicate-link-children.html
+
+        * accessibility/AccessibilityObject.cpp:
+        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
+
+2017-04-03  Jer Noble  <jer.noble@apple.com>
+
+        No audio output for MediaStream-backed audio elements on iOS
+        https://bugs.webkit.org/show_bug.cgi?id=170427
+
+        Reviewed by Eric Carlson.
+
+        The logic for setting the output timestamp offset in AudioSampleDataSource was reversed; instead of
+        subtracting out the timestamp of the first pull request, it effectively doubled it.
+
+        * platform/audio/mac/AudioSampleDataSource.mm:
+        (WebCore::AudioSampleDataSource::pullSamplesInternal):
+
+2017-04-03  Dave Hyatt  <hyatt@apple.com>
+
+        Japanese fonts in vertical text should support synthesized italics
+        https://bugs.webkit.org/show_bug.cgi?id=169301
+
+        Reviewed by Simon Fraser.
+
+        Updated test in fast/text/international.
+
+        * platform/graphics/Font.cpp:
+        (WebCore::Font::nonSyntheticItalicFont): Deleted.
+        * platform/graphics/Font.h:
+        Removed the non-synthetic italic font member, since it's not used.
+
+        * platform/graphics/FontCascadeFonts.cpp:
+        (WebCore::glyphDataForNonCJKCharacterWithGlyphOrientation):
+        Patched to ensure that a text-orientation-fallback font data is always
+        returned in the synthetic oblique case, so that non-CJK and CJK are
+        guaranteed to be broken up so that their slants can be applied differently.
+
+        (WebCore::FontCascadeFonts::glyphDataForSystemFallback):
+        (WebCore::FontCascadeFonts::glyphDataForNormalVariant):
+        (WebCore::glyphDataForCJKCharacterWithoutSyntheticItalic): Deleted.
+        Patched to no longer turn off synthetic oblique for CJK.
+
+        * platform/graphics/cocoa/FontCascadeCocoa.mm:
+        (WebCore::FontCascade::drawGlyphs):
+        Apply the correct italic transform to CJK when in vertical text.
+
+2017-04-03  Chris Dumez  <cdumez@apple.com>
+
+        REGRESSION (r206744): CSS background-image in style attribute ignored when using createHTMLDocument method of DOM parsing
+        https://bugs.webkit.org/show_bug.cgi?id=170285
+        <rdar://problem/31378543>
+
+        Reviewed by Andy Estes.
+
+        r206744 caused up to stop trying to resolve relative URLs when trying to load an image
+        referred to by CSS. We already try to resolve the relative URL when parsing the CSS
+        property so this will usually work fine. However, in the case when the CSS property
+        is parsed in detached document and then moved to another document, we will not have
+        the complete URL.
+
+        Test: fast/images/background-image-relative-url-changes-document.html
+
+        * css/CSSImageValue.cpp:
+        (WebCore::CSSImageValue::loadImage):
+
 2017-04-03  Jeremy Jones  <jeremyj@apple.com>
 
         Do not set WebAVPlayerLayerView background to black in fullscreen.