Unprefix CSS cursor values grab and grabbing
[WebKit-https.git] / Source / WebCore / ChangeLog
index 511fe56..d6256aa 100644 (file)
@@ -1,3 +1,704 @@
+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