<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head><meta http-equiv="content-type" content="text/html; charset=utf-8" />
<title>[169075] branches/safari-538.34-branch/Source</title>
</head>
<body>
<style type="text/css"><!--
#msg dl.meta { border: 1px #006 solid; background: #369; padding: 6px; color: #fff; }
#msg dl.meta dt { float: left; width: 6em; font-weight: bold; }
#msg dt:after { content:':';}
#msg dl, #msg dt, #msg ul, #msg li, #header, #footer, #logmsg { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; }
#msg dl a { font-weight: bold}
#msg dl a:link { color:#fc3; }
#msg dl a:active { color:#ff0; }
#msg dl a:visited { color:#cc6; }
h3 { font-family: verdana,arial,helvetica,sans-serif; font-size: 10pt; font-weight: bold; }
#msg pre { overflow: auto; background: #ffc; border: 1px #fa0 solid; padding: 6px; }
#logmsg { background: #ffc; border: 1px #fa0 solid; padding: 1em 1em 0 1em; }
#logmsg p, #logmsg pre, #logmsg blockquote { margin: 0 0 1em 0; }
#logmsg p, #logmsg li, #logmsg dt, #logmsg dd { line-height: 14pt; }
#logmsg h1, #logmsg h2, #logmsg h3, #logmsg h4, #logmsg h5, #logmsg h6 { margin: .5em 0; }
#logmsg h1:first-child, #logmsg h2:first-child, #logmsg h3:first-child, #logmsg h4:first-child, #logmsg h5:first-child, #logmsg h6:first-child { margin-top: 0; }
#logmsg ul, #logmsg ol { padding: 0; list-style-position: inside; margin: 0 0 0 1em; }
#logmsg ul { text-indent: -1em; padding-left: 1em; }#logmsg ol { text-indent: -1.5em; padding-left: 1.5em; }
#logmsg > ul, #logmsg > ol { margin: 0 0 1em 0; }
#logmsg pre { background: #eee; padding: 1em; }
#logmsg blockquote { border: 1px solid #fa0; border-left-width: 10px; padding: 1em 1em 0 1em; background: white;}
#logmsg dl { margin: 0; }
#logmsg dt { font-weight: bold; }
#logmsg dd { margin: 0; padding: 0 0 0.5em 0; }
#logmsg dd:before { content:'\00bb';}
#logmsg table { border-spacing: 0px; border-collapse: collapse; border-top: 4px solid #fa0; border-bottom: 1px solid #fa0; background: #fff; }
#logmsg table th { text-align: left; font-weight: normal; padding: 0.2em 0.5em; border-top: 1px dotted #fa0; }
#logmsg table td { text-align: right; border-top: 1px dotted #fa0; padding: 0.2em 0.5em; }
#logmsg table thead th { text-align: center; border-bottom: 1px solid #fa0; }
#logmsg table th.Corner { text-align: left; }
#logmsg hr { border: none 0; border-top: 2px dashed #fa0; height: 1px; }
#header, #footer { color: #fff; background: #636; border: 1px #300 solid; padding: 6px; }
#patch { width: 100%; }
#patch h4 {font-family: verdana,arial,helvetica,sans-serif;font-size:10pt;padding:8px;background:#369;color:#fff;margin:0;}
#patch .propset h4, #patch .binary h4 {margin:0;}
#patch pre {padding:0;line-height:1.2em;margin:0;}
#patch .diff {width:100%;background:#eee;padding: 0 0 10px 0;overflow:auto;}
#patch .propset .diff, #patch .binary .diff {padding:10px 0;}
#patch span {display:block;padding:0 10px;}
#patch .modfile, #patch .addfile, #patch .delfile, #patch .propset, #patch .binary, #patch .copfile {border:1px solid #ccc;margin:10px 0;}
#patch ins {background:#dfd;text-decoration:none;display:block;padding:0 10px;}
#patch del {background:#fdd;text-decoration:none;display:block;padding:0 10px;}
#patch .lines, .info {color:#888;background:#fff;}
--></style>
<div id="msg">
<dl class="meta">
<dt>Revision</dt> <dd><a href="http://trac.webkit.org/projects/webkit/changeset/169075">169075</a></dd>
<dt>Author</dt> <dd>matthew_hanson@apple.com</dd>
<dt>Date</dt> <dd>2014-05-19 15:07:10 -0700 (Mon, 19 May 2014)</dd>
</dl>
<h3>Log Message</h3>
<pre>Merge <a href="http://trac.webkit.org/projects/webkit/changeset/168991">r168991</a>.</pre>
<h3>Modified Paths</h3>
<ul>
<li><a href="#branchessafari53834branchSourceWebCoreChangeLog">branches/safari-538.34-branch/Source/WebCore/ChangeLog</a></li>
<li><a href="#branchessafari53834branchSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCmm">branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm</a></li>
<li><a href="#branchessafari53834branchSourceWebCoreplatformgraphicsavfoundationobjcMediaSourcePrivateAVFObjCh">branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h</a></li>
<li><a href="#branchessafari53834branchSourceWebCoreplatformgraphicsavfoundationobjcMediaSourcePrivateAVFObjCmm">branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm</a></li>
<li><a href="#branchessafari53834branchSourceWebKit2ChangeLog">branches/safari-538.34-branch/Source/WebKit2/ChangeLog</a></li>
</ul>
</div>
<div id="patch">
<h3>Diff</h3>
<a id="branchessafari53834branchSourceWebCoreChangeLog"></a>
<div class="modfile"><h4>Modified: branches/safari-538.34-branch/Source/WebCore/ChangeLog (169074 => 169075)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-538.34-branch/Source/WebCore/ChangeLog        2014-05-19 22:04:29 UTC (rev 169074)
+++ branches/safari-538.34-branch/Source/WebCore/ChangeLog        2014-05-19 22:07:10 UTC (rev 169075)
</span><span class="lines">@@ -1,219 +1,809 @@
</span><del>-2014-05-19 Matthew Hanson <matthew_hanson@apple.com>
</del><ins>+2014-05-16 Jer Noble <jer.noble@apple.com>
</ins><span class="cx">
</span><del>- Merge r168974.
</del><ins>+ [Mac][MSE] setCurrentTime() goes down fastSeek path in MediaPlayerPrivateMediaSourceAVFObjC.
+ https://bugs.webkit.org/show_bug.cgi?id=133023
</ins><span class="cx">
</span><del>- 2014-05-16 Jer Noble <jer.noble@apple.com>
</del><ins>+ Reviewed by Eric Carlson.
</ins><span class="cx">
</span><del>- [MSE] Crash at WebCore::SourceBuffer::~SourceBuffer + 110
- https://bugs.webkit.org/show_bug.cgi?id=132973
</del><ins>+ When seeking a MSE video, do not go down the fastSeekForMediaTime() path if the
+ seek resulted from a setCurrentTime() call. The logic can lead to attempted seeks
+ before buffered ranges.
</ins><span class="cx">
</span><del>- Reviewed by Eric Carlson.
</del><ins>+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
+ * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
+ * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
+ (WebCore::MediaSourcePrivateAVFObjC::seekToTime):
</ins><span class="cx">
</span><del>- Change SourceBuffer::m_private into a Ref<>, and add an assertion to
- SourceBufferPrivateAVFObjC's destructor if its client has not been cleared.
</del><ins>+2014-05-16 Benjamin Poulain <bpoulain@apple.com>
</ins><span class="cx">
</span><del>- Eliminate unnecessary churn in MediaSourcePrivateAVFObjC by having the predicate
- functor take bare pointers, rather than a PassRefPtr.
</del><ins>+ [iOS] ScrollView::visibleContentRectInternal is bypassing the iOS code for unobscuredContentRect
+ https://bugs.webkit.org/show_bug.cgi?id=133008
</ins><span class="cx">
</span><del>- The underlying problem seems to be in WebAVStreamDataParserListener. RefPtrs were
- being created off the main thread to a non-thread safe ref counted class. In some
- situations, this would result in double decrementing the ref, which would cause an
- early destruction of the underlying object. Instead replace these RefPtr strong
- pointers with explicit weak ones. Ensure the parser and its delegate are not freed
- before the append operation completes by passing strong pointers into the async
- append operation lambda.
</del><ins>+ Reviewed by Simon Fraser.
</ins><span class="cx">
</span><del>- There were a few places where we weren't null checking m_mediaSource before using it,
- and at least one place where we weren't clearing m_mediaSource.
</del><ins>+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::visibleContentRectInternal):
+ ScrollView::visibleContentRectInternal() was calling the internal implementation of visibleContentRect().
+ That was skipping the iOS implementation and getting the framerect directly. That size is invalid on iOS
+ when the exposed rect and unobscured rect are not the same.
</ins><span class="cx">
</span><del>- * Modules/mediasource/SourceBuffer.cpp:
- (WebCore::SourceBuffer::SourceBuffer): Use Ref instead of RefPtr.
- (WebCore::SourceBuffer::appendBufferTimerFired): Ditto.
- * Modules/mediasource/SourceBuffer.h:
- * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
- (WebCore::MediaSourcePrivateAVFObjCHasAudio): Take a bare pointer, instead of a PassRefPtr.
- (WebCore::MediaSourcePrivateAVFObjCHasVideo): Ditto.
- * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
- (WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer): Clear the back pointer when removing a buffer.
- * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
- (-[WebAVStreamDataParserListener initWithParser:parent:WebCore::]): Use WeakPtr instead of RefPtr.
- (-[WebAVStreamDataParserListener invalidate]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
- (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
- (WebCore::SourceBufferPrivateAVFObjC::append): Ditto.
</del><ins>+2014-05-16 Jer Noble <jer.noble@apple.com>
</ins><span class="cx">
</span><del>-2014-05-19 Matthew Hanson <matthew_hanson@apple.com>
</del><ins>+ [Mac] naturalSize not updated when preload=metadata
+ https://bugs.webkit.org/show_bug.cgi?id=132994
</ins><span class="cx">
</span><del>- Merge r169023.
</del><ins>+ Reviewed by Eric Carlson.
</ins><span class="cx">
</span><del>- 2014-05-18 Sam Weinig <sam@webkit.org>
</del><ins>+ Test: media/video-load-preload-metadata-naturalsize.html
</ins><span class="cx">
</span><del>- [WebKit2] Implement ScriptMessageHandlers
- https://bugs.webkit.org/show_bug.cgi?id=133053
</del><ins>+ When preload=metadata, we never create an AVPlayerItem, and therefore never receive a
+ presentationSize KVO. When an AVAsset informs us that its tracks have changed, and there
+ is no AVPlayerItem, recalculate presentation size based on the first video track's natural
+ size.
</ins><span class="cx">
</span><del>- Reviewed by Anders Carlsson.
</del><ins>+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
</ins><span class="cx">
</span><del>- * DerivedSources.make:
- * WebCore.exp.in:
- * WebCore.xcodeproj/project.pbxproj:
- * bindings/js/JSDOMWindowBase.cpp:
- (WebCore::JSDOMWindowBase::finishCreation):
- * bindings/js/JSUserMessageHandlersNamespaceCustom.cpp: Added.
- (WebCore::JSUserMessageHandlersNamespace::getOwnPropertySlotDelegate):
- * page/DOMWindow.cpp:
- (WebCore::DOMWindow::shouldHaveWebKitNamespaceForWorld):
- (WebCore::DOMWindow::webkitNamespace):
- * page/DOMWindow.h:
- * page/UserContentController.cpp:
- (WebCore::UserContentController::addUserMessageHandlerDescriptor):
- (WebCore::UserContentController::removeUserMessageHandlerDescriptor):
- * page/UserContentController.h:
- (WebCore::UserContentController::userMessageHandlerDescriptors):
- * page/UserMessageHandler.cpp: Added.
- (WebCore::UserMessageHandler::UserMessageHandler):
- (WebCore::UserMessageHandler::~UserMessageHandler):
- (WebCore::UserMessageHandler::postMessage):
- (WebCore::UserMessageHandler::name):
- (WebCore::UserMessageHandler::world):
- * page/UserMessageHandler.h: Added.
- (WebCore::UserMessageHandler::create):
- * page/UserMessageHandler.idl: Added.
- * page/UserMessageHandlerDescriptor.cpp: Added.
- (WebCore::UserMessageHandlerDescriptor::UserMessageHandlerDescriptor):
- (WebCore::UserMessageHandlerDescriptor::~UserMessageHandlerDescriptor):
- (WebCore::UserMessageHandlerDescriptor::name):
- (WebCore::UserMessageHandlerDescriptor::world):
- * page/UserMessageHandlerDescriptor.h: Added.
- (WebCore::UserMessageHandlerDescriptor::Client::~Client):
- (WebCore::UserMessageHandlerDescriptor::create):
- (WebCore::UserMessageHandlerDescriptor::client):
- * page/UserMessageHandlerDescriptorTypes.h: Added.
- * page/UserMessageHandlersNamespace.cpp: Added.
- (WebCore::UserMessageHandlersNamespace::UserMessageHandlersNamespace):
- (WebCore::UserMessageHandlersNamespace::~UserMessageHandlersNamespace):
- (WebCore::UserMessageHandlersNamespace::handler):
- * page/UserMessageHandlersNamespace.h: Added.
- (WebCore::UserMessageHandlersNamespace::create):
- * page/UserMessageHandlersNamespace.idl: Added.
- * page/WebKitNamespace.cpp: Added.
- (WebCore::WebKitNamespace::WebKitNamespace):
- (WebCore::WebKitNamespace::~WebKitNamespace):
- (WebCore::WebKitNamespace::messageHandlers):
- * page/WebKitNamespace.h: Added.
- (WebCore::WebKitNamespace::create):
- * page/WebKitNamespace.idl: Added.
</del><ins>+2014-05-16 Simon Fraser <simon.fraser@apple.com>
</ins><span class="cx">
</span><del>-2014-05-19 Matthew Hanson <matthew_hanson@apple.com>
</del><ins>+ Remove "region-based columns" prefs
+ https://bugs.webkit.org/show_bug.cgi?id=133006
+ <rdar://problem/16945824>
</ins><span class="cx">
</span><del>- Merge r169015.
</del><ins>+ Reviewed by Dave Hyatt.
</ins><span class="cx">
</span><del>- 2014-05-18 Anders Carlsson <andersca@apple.com>
-
- Fix iOS build.
-
- * WebCore.exp.in:
- Move UserContentController symbols to the right place.
-
-2014-05-19 Matthew Hanson <matthew_hanson@apple.com>
</del><ins>+ Remove "region-based columns" prefs and related code, since this is only
+ way to render columns now.
</ins><span class="cx">
</span><del>- Merge r168994.
</del><ins>+ * page/Settings.in:
</ins><span class="cx">
</span><del>- 2014-05-16 Anders Carlsson <andersca@apple.com>
-
- Expose WKUserScript as API
- https://bugs.webkit.org/show_bug.cgi?id=133017
- <rdar://problem/16948059>
-
- Reviewed by Sam Weinig.
-
- * WebCore.exp.in:
- Export symbols.
-
- * WebCore.xcodeproj/project.pbxproj:
- Change UserContentController.h to be a private header.
-
- * page/Page.cpp:
- (WebCore::Page::Page):
- Set m_userContentController from the page configuration and add it if it's not null.
-
- * page/Page.h:
- Add UserContentController to PageClients.
-
- * page/PageGroup.cpp:
- (WebCore::PageGroup::addPage):
- Only try to add a user content controller if the page doesn't already have one.
-
- (WebCore::PageGroup::removePage):
- Only try to remove the user content controller if it's the group one.
-
-2014-05-16 Matthew Hanson <matthew_hanson@apple.com>
</del><ins>+2014-05-16 Antti Koivisto <antti@apple.com>
</ins><span class="cx">
</span><del>- Merge r168777.
</del><ins>+ Link search area for touch events is too large in some cases
+ https://bugs.webkit.org/show_bug.cgi?id=132988
+ <rdar://problem/16917843>
</ins><span class="cx">
</span><del>- 2014-05-13 Beth Dakin <bdakin@apple.com>
-
- m_layerForOverhangAreas is sometimes not positioned correctly when topContentInset
- has changed
- https://bugs.webkit.org/show_bug.cgi?id=132898
- -and corresponding-
- <rdar://problem/16644710>
-
- Reviewed by Anders Carlsson.
-
- This function is called whenever the topContentInset changes, so use it as an
- opportunity to ensure that m_layerForOverhangAreas has been positioned correctly.
- * rendering/RenderLayerCompositor.cpp:
- (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
-
- Everyone gets an anchor point!
- (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
-
-2014-05-15 Matthew Hanson <matthew_hanson@apple.com>
</del><ins>+ Reviewed by Simon Fraser.
</ins><span class="cx">
</span><del>- Merge r168870.
</del><ins>+ * page/ios/FrameIOS.mm:
+ (WebCore::Frame::qualifyingNodeAtViewportLocation):
+
+ - Adjust the search area to screen ppi.
+ - Remove cut-off at scale 1. This made us pick physically far-away elements when zoomed in.
+
+ * platform/PlatformScreen.h:
+ * platform/ios/PlatformScreenIOS.mm:
+ (WebCore::mobileGestaltFloatValue):
+ (WebCore::screenPPIFactor):
</ins><span class="cx">
</span><del>- 2014-05-14 Dean Jackson <dino@apple.com>
</del><ins>+ Figure out screens physical PPI relative to a base.
+
+2014-05-16 Jer Noble <jer.noble@apple.com>
+
+ [MSE] Crash at WebCore::SourceBuffer::~SourceBuffer + 110
+ https://bugs.webkit.org/show_bug.cgi?id=132973
+
+ Reviewed by Eric Carlson.
+
+ Change SourceBuffer::m_private into a Ref<>, and add an assertion to
+ SourceBufferPrivateAVFObjC's destructor if its client has not been cleared.
+
+ Eliminate unnecessary churn in MediaSourcePrivateAVFObjC by having the predicate
+ functor take bare pointers, rather than a PassRefPtr.
+
+ The underlying problem seems to be in WebAVStreamDataParserListener. RefPtrs were
+ being created off the main thread to a non-thread safe ref counted class. In some
+ situations, this would result in double decrementing the ref, which would cause an
+ early destruction of the underlying object. Instead replace these RefPtr strong
+ pointers with explicit weak ones. Ensure the parser and its delegate are not freed
+ before the append operation completes by passing strong pointers into the async
+ append operation lambda.
+
+ There were a few places where we weren't null checking m_mediaSource before using it,
+ and at least one place where we weren't clearing m_mediaSource.
+
+ * Modules/mediasource/SourceBuffer.cpp:
+ (WebCore::SourceBuffer::SourceBuffer): Use Ref instead of RefPtr.
+ (WebCore::SourceBuffer::appendBufferTimerFired): Ditto.
+ * Modules/mediasource/SourceBuffer.h:
+ * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
+ (WebCore::MediaSourcePrivateAVFObjCHasAudio): Take a bare pointer, instead of a PassRefPtr.
+ (WebCore::MediaSourcePrivateAVFObjCHasVideo): Ditto.
+ * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
+ (WebCore::MediaSourcePrivateAVFObjC::removeSourceBuffer): Clear the back pointer when removing a buffer.
+ * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
+ * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+ (-[WebAVStreamDataParserListener initWithParser:parent:WebCore::]): Use WeakPtr instead of RefPtr.
+ (-[WebAVStreamDataParserListener invalidate]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
+ (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC):
+ (WebCore::SourceBufferPrivateAVFObjC::append): Ditto.
+
+2014-05-16 Zalan Bujtas <zalan@apple.com>
+
+ Subpixel rendering: Push named flows in region to device pixel when painting.
+ https://bugs.webkit.org/show_bug.cgi?id=132986
+
+ Reviewed by Simon Fraser.
+
+ Remove integral rounding when named flow sets the painting offset on the graphics context.
+ Use device pixel snapping instead to ensure that we can paint on odd device pixel positions on retina displays.
+
+ Test: fast/regions/hidpi-region-with-auto-margin-on-subpixel-position.html
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::calculateClipRects):
+
+2014-05-16 Radu Stavila <stavila@adobe.com>
+
+ [CSS Regions] Add ASSERT to make sure using the flowThread cache does not return incorrect results
+ https://bugs.webkit.org/show_bug.cgi?id=132906
+
+ Reviewed by Simon Fraser.
+
+ If flowThreadContainingBlock() is called on an object which is in a different
+ flow thread than the one currently being laid out, this method will return an incorrect
+ result. I added an assertion for that to make sure we catch and treat any such scenarios.
+ For the moment, this assertion is only validated for regions, as multicol still has some issues.
+
+ No new tests required.
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
+ (WebCore::RenderObject::locateFlowThreadContainingBlock):
+ * rendering/RenderObject.h:
+
+2014-05-16 Martin Hock <mhock@apple.com>
+
+ MemoryCache::addImageToCache should return the result of add().
+ https://bugs.webkit.org/show_bug.cgi?id=132928
+ <rdar://problem/16651547>
+
+ Reviewed by Alexey Proskuryakov.
+
+ API test: WebKit1.MemoryCacheADdImageToCache (MemoryCacheAddImageToCacheIOS.mm)
+
+ * loader/cache/MemoryCache.cpp:
+ (WebCore::MemoryCache::addImageToCache):
+
+2014-05-16 Andrei Bucur <abucur@adobe.com>
+
+ [CSS Regions] Reduce the RenderRegion invasiveness in rendering code
+ https://bugs.webkit.org/show_bug.cgi?id=132121
+
+ Reviewed by Antti Koivisto.
+
+ Remove the RenderRegion / RenderNamedFlowFragment parameters and fields from
+ the painting / hit testing data structures and use a stateful approach to
+ correctly handle regions.
+
+ When painting or hit testing, the current flow thread is saved along the current
+ region. They are accessed through the |currentRenderNamedFlowFragment| helper
+ method on RenderObject or RenderLayer.
+
+ The patch also changes a bunch of 0s to nullptrs.
+
+ Tests: No new tests, no functional change.
+
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
+ * rendering/HitTestLocation.cpp:
+ (WebCore::HitTestLocation::HitTestLocation):
+ (WebCore::HitTestLocation::operator=):
+ * rendering/HitTestLocation.h:
+ (WebCore::HitTestLocation::region): Deleted.
+ * rendering/HitTestResult.h:
+ * rendering/PaintInfo.h:
+ (WebCore::PaintInfo::PaintInfo):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::paint):
+ (WebCore::RenderBlock::paintObject):
+ (WebCore::RenderBlock::selectionGaps):
+ (WebCore::RenderBlock::nodeAtPoint):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::nodeAtPoint):
+ (WebCore::RenderBox::paintBoxDecorations):
+ (WebCore::RenderBox::pushContentsClip):
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
+ (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+ * rendering/RenderBoxModelObject.h:
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paint):
+ (WebCore::RenderLayer::paintLayer):
+ (WebCore::RenderLayer::paintLayerContents):
+ (WebCore::RenderLayer::paintLayerByApplyingTransform):
+ (WebCore::RenderLayer::collectFragments):
+ (WebCore::RenderLayer::updatePaintingInfoForFragments):
+ (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
+ (WebCore::RenderLayer::paintBackgroundForFragments):
+ (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
+ (WebCore::RenderLayer::paintOutlineForFragments):
+ (WebCore::RenderLayer::paintMaskForFragments):
+ (WebCore::RenderLayer::hitTest):
+ (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
+ (WebCore::RenderLayer::hitTestLayer):
+ (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
+ (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
+ (WebCore::RenderLayer::calculateClipRects):
+ * rendering/RenderLayer.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateCompositedBounds):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::addToOverlapMap):
+ (WebCore::RenderLayerCompositor::clippedByAncestor):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::currentRenderNamedFlowFragment):
+ * rendering/RenderObject.h:
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::shouldPaint):
+ * rendering/RenderReplica.cpp:
+ (WebCore::RenderReplica::paint):
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::nodeAtPoint):
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::nodeAtPoint):
+ * rendering/RenderTreeAsText.cpp:
+ (WebCore::writeLayers):
+ * rendering/RootInlineBox.cpp:
+ (WebCore::RootInlineBox::paint):
+ * rendering/svg/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::paintReplaced):
+
+2014-05-16 Kiran <kiran.guduru@samsung.com>
+
+ RTCDtmfSender default values need to be updated.
+ https://bugs.webkit.org/show_bug.cgi?id=132952
+
+ Reviewed by Eric Carlson.
+
+ The default ToneDuration and ToneGap values are modified in the updated spec.
+ So these values need to be updated.
+
+ Test: fast/mediastream/RTCPeerConnection-dtmf.html.
+
+ * Modules/mediastream/RTCDTMFSender.cpp:
+
+2014-05-15 Daniel Bates <dabates@apple.com>
+
+ Attempt to fix the Apple Mavericks Release, Apple MountainLion Release,
+ Apple MountainLion Release (32-bit Build), EFL, and GTK builds following
+ <http://trac.webkit.org/changeset/168921> (https://bugs.webkit.org/show_bug.cgi?id=132669)
+
+ * dom/ContainerNode.cpp: Include SVGElement.h for the definition of Node::hasTagName(const SVGQualifiedName&).
+
+2014-05-15 Daniel Bates <dabates@apple.com>
+
+ ASSERT_NOT_REACHED() in DocumentOrderedMap::get() when removing SVG subtree
+ https://bugs.webkit.org/show_bug.cgi?id=132669
+ <rdar://problem/14931432>
+
+ Reviewed by Brent Fulgham and Ryosuke Niwa.
+
+ Fixes an assertion failure when removing an SVG element with a duplicate id.
+
+ When removing an SVG element with id A we synchronously instruct each element that references A
+ to find the first element with id A, call this N, from the document root and register itself to
+ either receive subsequent notifications from N (say, there is another element with id A) or as
+ waiting for an element with id A (say, N = nullptr; => we removed the last element with id A from
+ the document). Because the elements that reference A perform this operation synchronously when
+ removing an element they consult an transient state of the DocumentOrderedMap when querying for the
+ element with id A.
</ins><span class="cx">
</span><del>- [Mac] Search fields should not use centered look
- https://bugs.webkit.org/show_bug.cgi?id=132930
- <rdar://problem/16825842>
-
- Reviewed by Beth Dakin.
-
- We need to explicitly set the centeredLook property
- to NO on modern releases of Mac.
-
- * rendering/RenderThemeMac.mm: Declare a new private property and set it to NO.
- (WebCore::RenderThemeMac::search):
-
-2014-05-14 Matthew Hanson <matthew_hanson@apple.com>
</del><ins>+ Without loss of generality, let E, E_1, E_2, and E_3 be elements, where E_1, E_2, E_3 are children
+ of E in that order and E_1.id = E_2.id = A and E_3.href = #A (that is, it references an element
+ with id A). Suppose we remove E then we remove E_1, update DocumentOrderedMap to decrement its count
+ for id A, and notify E_3 to look for an element with id A. This leads to an assertion failure since
+ DocumentOrderedMap expects to find an element with id A, E_2, but cannot find such an element when
+ traversing from the document root because E was unlinked from the document root (i.e. E_2 is in a
+ disjoint subtree).
</ins><span class="cx">
</span><del>- Rollout r168821.
</del><ins>+ Tests: svg/custom/change-id-of-use-during-removal.html
+ svg/custom/remove-subtree-including-path-with-duplicate-id-referenced-by-later-textpath.html
+ svg/custom/remove-subtree-including-text-with-duplicate-id-referenced-by-later-tref.html
+ svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-earlier-use.html
+ svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-animate.html
+ svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-feimage.html
+ svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-mpath.html
+ svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-use.html
+ svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-later-use2.html
+ svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-use-in-different-subtree.html
+ svg/custom/remove-subtree-including-use-with-duplicate-id-referenced-by-use-with-duplicate-id-in-different-subtree.html
+ svg/custom/remove-use-with-duplicate-id-referenced-by-later-use.html
</ins><span class="cx">
</span><del>-2014-05-14 Matthew Hanson <matthew_hanson@apple.com>
</del><ins>+ * dom/ContainerNode.cpp:
+ (WebCore::ContainerNode::removeChild): Call SVGDocumentExtensions::rebuildElements() after we remove
+ a DOM subtree so that applicable SVG elements can update their referenced element when the DocumentOrderedMap
+ is in a stable-state.
+ (WebCore::ContainerNode::removeChildren): Ditto.
+ * svg/SVGDocumentExtensions.cpp:
+ (WebCore::SVGDocumentExtensions::rebuildElements): Added; notifies SVG elements that their href attribute
+ changed so that they query the DocumentOrderedMap for the element they reference by id in their href attribute.
+ (WebCore::SVGDocumentExtensions::clearTargetDependencies): Added; Called from removing
+ an SVG element S from the DOM. Appends all elements that reference the id of S to the end of a Vector of
+ elements to be rebuilt (when SVGDocumentExtensions::rebuildElements() is called) and notifies these elements
+ that have been marked to be rebuilt so that they can invalidate their state (e.g. stop animating).
+ (WebCore::SVGDocumentExtensions::rebuildAllElementReferencesForTarget): Changed to take its argument by reference
+ (since it's always non-null) and simplified logic to synchronously notify SVG updates that their referenced element
+ may have changed. Calling SVGElement::svgAttributeChanged() on an element E should at most remove the dependencies
+ of E.
+ * svg/SVGDocumentExtensions.h:
+ * svg/SVGElement.cpp:
+ (WebCore::SVGElement::~SVGElement): Substitute "*this" for "this" as SVGDocumentExtensions::rebuildAllElementReferencesForTarget()
+ now takes a reference instead of a pointer.
+ (WebCore::SVGElement::removedFrom): Modified to call SVGDocumentExtensions::clearTargetDependencies().
+ (WebCore::SVGElement::attributeChanged): Substitute "*this" for "this" as SVGDocumentExtensions::rebuildAllElementReferencesForTarget()
+ now takes a reference instead of a pointer.
+ * svg/SVGElement.h:
+ (WebCore::SVGElement::callClearTarget): Added; calls through to private virtual SVGElement::clearTarget().
+ (WebCore::SVGElement::clearTarget): Added.
+ * svg/SVGTRefElement.cpp:
+ (WebCore::SVGTRefElement::clearTarget): Added.
+ * svg/SVGTRefElement.h:
+ * svg/animation/SVGSMILElement.cpp:
+ (WebCore::SVGSMILElement::clearTarget): Added.
+ * svg/animation/SVGSMILElement.h:
</ins><span class="cx">
</span><del>- Rollout r168822.
</del><ins>+2014-05-15 Simon Fraser <simon.fraser@apple.com>
</ins><span class="cx">
</span><del>-2014-05-14 Matthew Hanson <matthew_hanson@apple.com>
</del><ins>+ [iOS WK2] When zoomed, fixed elements jump at the start of a scroll, and jump back at the end.
+ https://bugs.webkit.org/show_bug.cgi?id=132978
+ <rdar://problem/16894428>
</ins><span class="cx">
</span><del>- Merge r168859.
</del><ins>+ Reviewed by Benjamin Poulain.
</ins><span class="cx">
</span><del>- 2014-05-14 Brady Eidson <beidson@apple.com>
-
- Implement NSSharingServiceDelegate method "transitionImageForShareItem"
- <rdar://problem/16878020> and https://bugs.webkit.org/show_bug.cgi?id=132911
-
- Reviewed by Tim Horton.
-
- * WebCore.exp.in:
- * WebCore.xcodeproj/project.pbxproj:
-
</del><ins>+ This was the actual cause of the bug; r168560 changed the rect passed in here
+ to be the customFixedPositionRect rather than the unobscured rect, but we
+ used it to call FrameView::rectForViewportConstrainedObjects() which gave back
+ another bogus rect. So just use the rect passed in.
+
+ * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
+ (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterViewportChange):
+
+2014-05-15 Daniel Bates <dabates@apple.com>
+
+ SVG element may reference arbitrary DOM element before running its insertion logic
+ https://bugs.webkit.org/show_bug.cgi?id=132757
+ <rdar://problem/15703817>
+
+ Reviewed by Ryosuke Niwa.
+
+ Fixes an issue where an SVG element may reference an arbitrary DOM element e before e finished being
+ inserted in the tree.
+
+ Currently when an SVG element A is inserted into a document we use document.getElementById() to find the
+ element B it references (if any). If A is inserted before B and B has the same id as a later element in
+ the document then A can find B before B is notified that its been inserted into the document (i.e. before
+ Element::insertedFrom() is called on B). Instead, A should call document.getElementById() only after
+ cessation of the insertion operation that inserted it to ensure that all inserted nodes (including B)
+ processed their insertion-specific logic.
+
+ Tests: svg/custom/reparent-animate-element.html
+ svg/custom/reparent-feimage-element.html
+ svg/custom/reparent-mpath-element.html
+ svg/custom/reparent-textpath-element.html
+ svg/custom/reparent-tref-element.html
+ svg/custom/reparent-use-element.html
+
+ * svg/SVGFEImageElement.cpp:
+ (WebCore::SVGFEImageElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
+ we are called back to resolve our target element (i.e. call SVGFEImageElement::buildPendingResources())
+ after the subtree we're in is inserted.
+ (WebCore::SVGFEImageElement::didNotifySubtreeInsertions): Added; turns around and calls SVGFEImageElement::buildPendingResources().
+ * svg/SVGFEImageElement.h:
+ * svg/SVGMPathElement.cpp:
+ (WebCore::SVGMPathElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
+ we are called back to resolve our target element (i.e. call SVGMPathElement::buildPendingResources())
+ after the subtree we're in is inserted.
+ (WebCore::SVGMPathElement::didNotifySubtreeInsertions): Added; turns around and calls SVGMPathElement::buildPendingResources().
+ * svg/SVGMPathElement.h:
+ * svg/SVGTRefElement.cpp:
+ (WebCore::SVGTRefElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
+ we are called back to resolve our target element (i.e. call SVGTRefElement::buildPendingResources())
+ after the subtree we're in is inserted.
+ (WebCore::SVGTRefElement::didNotifySubtreeInsertions): Added; turns around and calls SVGTRefElement::buildPendingResources().
+ * svg/SVGTRefElement.h:
+ * svg/SVGTextPathElement.cpp:
+ (WebCore::SVGTextPathElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
+ we are called back to resolve our target element (i.e. call SVGTextPathElement::buildPendingResources())
+ after the subtree we're in is inserted.
+ (WebCore::SVGTextPathElement::didNotifySubtreeInsertions): Added; turns around and calls SVGTextPathElement::buildPendingResources().
+ * svg/SVGTextPathElement.h:
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
+ we are called back to resolve our target element (i.e. call SVGUseElement::buildPendingResources()) after its subtree is
+ inserted.
+ (WebCore::SVGUseElement::didNotifySubtreeInsertions): Added; turns around and calls SVGUseElement::buildPendingResources().
+ * svg/SVGUseElement.h:
+ * svg/animation/SVGSMILElement.cpp:
+ (WebCore::SVGSMILElement::insertedInto): Return InsertionShouldCallDidNotifySubtreeInsertions so that
+ we are called back to resolve our target element (i.e. call SVGSMILElement::buildPendingResources())
+ after the subtree we're in is inserted.
+ (WebCore::SVGSMILElement::didNotifySubtreeInsertions): Added; turns around and calls SVGSMILElement::buildPendingResources().
+ * svg/animation/SVGSMILElement.h:
+
+2014-05-15 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ JSDOMWindow should not claim HasImpureGetOwnPropertySlot
+ https://bugs.webkit.org/show_bug.cgi?id=132918
+
+ Reviewed by Geoffrey Garen.
+
+ Tests: js/cached-window-properties.html
+ js/cached-window-prototype-properties.html
+
+ We now correctly handle the impurity of JSDOMWindow's custom getOwnPropertySlot without needing the
+ blanket HasImpureGetOwnPropertySlot. We do this through the use of watchpoints and by explicitly forbidding
+ any caching beyond a certain point using PropertySlot::disableCaching. Getting rid of this flag will allow
+ us to cache many properties/methods on both the JSDOMWindow and its prototype, which are very commonly used
+ across the web.
+
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::getOwnPropertySlot):
+ * bindings/scripts/CodeGeneratorJS.pm:
+ (HasComplexGetOwnProperty):
+ (InterfaceRequiresAttributesOnInstance):
+ (InstanceOverridesGetOwnPropertySlot):
+ (GenerateHeader):
+
+2014-05-15 Alexey Proskuryakov <ap@apple.com>
+
+ NetworkProcess crashes at ResourceHandle::continueDidReceiveResponse
+ https://bugs.webkit.org/show_bug.cgi?id=132966
+ <rdar://problem/16373694>
+
+ Reviewed by Brady Eidson.
+
+ Covered by many fast/files tests.
+
+ * platform/network/BlobResourceHandle.cpp: (WebCore::BlobResourceHandle::continueDidReceiveResponse):
+ * platform/network/BlobResourceHandle.h:
+ * platform/network/ResourceHandle.h:
+ Don't call delegate's continueDidReceiveResponse when loading a blob:// URL,
+ the delegate is null. On the Mac, we used to lazily create it, which was also wrong,
+ but at least not observable.
+
+2014-05-15 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r168899.
+ https://bugs.webkit.org/show_bug.cgi?id=132965
+
+ Broke some compositing regions tests on Mavericks (Requested
+ by mihnea___ on #webkit).
+
+ Reverted changeset:
+
+ "[CSS Regions] Reduce the RenderRegion invasiveness in
+ rendering code"
+ https://bugs.webkit.org/show_bug.cgi?id=132121
+ http://trac.webkit.org/changeset/168899
+
+2014-05-15 Alex Christensen <achristensen@webkit.org>
+
+ Add pointer lock to features without enabling it.
+ https://bugs.webkit.org/show_bug.cgi?id=132961
+
+ Reviewed by Sam Weinig.
+
+ * Configurations/FeatureDefines.xcconfig:
+ Added ENABLE_POINTER_LOCK to list of features.
+ * WebCore.exp.in:
+ Added linker symbols which differ with pointer lock enabled.
+ * WebCore.xcodeproj/project.pbxproj:
+ Added PointerLockController.cpp to build.
+
+2014-05-15 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ Move subframe name getter lookup later in JSDOMWindow::getOwnPropertySlot
+ https://bugs.webkit.org/show_bug.cgi?id=132922
+
+ Reviewed by Geoffrey Garen.
+
+ No new tests.
+
+ In JSDOMWindow::getOwnPropertySlot, we currently look for the property on the JSDOMWindow,
+ then we search the window's subframes for name getters, then we look in the window's prototype
+ chain. Apparently we were doing the lookup in this order to be compatible with Mozilla, but
+ Mozilla no longer implements this behavior. Instead, they do the lookup on the prototype before
+ looking for subframe name getters. We should change this to match Mozilla. This has the convenient
+ side effect of allowing us to cache lookups in the window's prototype chain.
+
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::getOwnPropertySlot):
+
+2014-05-15 Simon Fraser <simon.fraser@apple.com>
+
+ [UI-side compositing] Fix copying animations between layers, and pausing them
+ https://bugs.webkit.org/show_bug.cgi?id=132943
+ <rdar://problem/16906369&16906541>
+
+ Reviewed by Tim Horton.
+
+ Pass the animation key back to animationStarted(), though this isn't used
+ when animations are running in-process.
+
+ * platform/graphics/ca/PlatformCALayer.h:
+ * platform/graphics/ca/mac/PlatformCALayerMac.h:
+ * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+ (-[WebAnimationDelegate animationDidStart:]):
+ (PlatformCALayerMac::animationStarted):
+ * platform/graphics/ca/win/PlatformCALayerWin.cpp:
+ (PlatformCALayerWin::animationStarted):
+ * platform/graphics/ca/win/PlatformCALayerWin.h:
+
+2014-05-15 Andrei Bucur <abucur@adobe.com>
+
+ [CSS Regions] Reduce the RenderRegion invasiveness in rendering code
+ https://bugs.webkit.org/show_bug.cgi?id=132121
+
+ Reviewed by Antti Koivisto.
+
+ Remove the RenderRegion / RenderNamedFlowFragment parameters and fields from
+ the painting / hit testing data structures and use a stateful approach to
+ correctly handle regions.
+
+ When painting or hit testing, the current flow thread is saved along the current
+ region. They are accessed through the |currentRenderNamedFlowFragment| helper
+ method on RenderObject or RenderLayer.
+
+ The patch also changes a bunch of 0s to nullptrs.
+
+ Tests: No new tests, no functional change.
+
+ * html/shadow/MediaControlElements.cpp:
+ (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
+ * rendering/HitTestLocation.cpp:
+ (WebCore::HitTestLocation::HitTestLocation):
+ (WebCore::HitTestLocation::operator=):
+ * rendering/HitTestLocation.h:
+ (WebCore::HitTestLocation::region): Deleted.
+ * rendering/HitTestResult.h:
+ * rendering/PaintInfo.h:
+ (WebCore::PaintInfo::PaintInfo):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::paint):
+ (WebCore::RenderBlock::paintObject):
+ (WebCore::RenderBlock::selectionGaps):
+ (WebCore::RenderBlock::nodeAtPoint):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::nodeAtPoint):
+ (WebCore::RenderBox::paintBoxDecorations):
+ (WebCore::RenderBox::pushContentsClip):
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
+ (WebCore::RenderBoxModelObject::paintFillLayerExtended):
+ * rendering/RenderBoxModelObject.h:
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::paint):
+ (WebCore::RenderLayer::paintLayer):
+ (WebCore::RenderLayer::paintLayerContents):
+ (WebCore::RenderLayer::paintLayerByApplyingTransform):
+ (WebCore::RenderLayer::collectFragments):
+ (WebCore::RenderLayer::updatePaintingInfoForFragments):
+ (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
+ (WebCore::RenderLayer::paintBackgroundForFragments):
+ (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
+ (WebCore::RenderLayer::paintOutlineForFragments):
+ (WebCore::RenderLayer::paintMaskForFragments):
+ (WebCore::RenderLayer::hitTest):
+ (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
+ (WebCore::RenderLayer::hitTestLayer):
+ (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
+ (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
+ (WebCore::RenderLayer::calculateClipRects):
+ * rendering/RenderLayer.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateCompositedBounds):
+ (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::addToOverlapMap):
+ (WebCore::RenderLayerCompositor::clippedByAncestor):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::currentRenderNamedFlowFragment):
+ * rendering/RenderObject.h:
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::shouldPaint):
+ * rendering/RenderReplica.cpp:
+ (WebCore::RenderReplica::paint):
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::nodeAtPoint):
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::nodeAtPoint):
+ * rendering/RenderTreeAsText.cpp:
+ (WebCore::writeLayers):
+ * rendering/RootInlineBox.cpp:
+ (WebCore::RootInlineBox::paint):
+ * rendering/svg/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::paintReplaced):
+
+2014-05-14 Simon Fraser <simon.fraser@apple.com>
+
+ Clean up "has non-zero begin time" terminology in animations
+ https://bugs.webkit.org/show_bug.cgi?id=132942
+
+ Reviewed by Tim Horton.
+
+ Change the "non-zero beginTime" terminology in the platform CA animations
+ code to "explicit beginTime": this flag really means that we explicitly set
+ the beginTime of the animation, rather than let CA set the beginTime when
+ committing the animation. This flag is used for animations with negative
+ delay, and when pausing.
+
+ The WKNonZeroBeginTimeFlag key was spread across PlatformCALayerMac and PlatformCAAnimationMac,
+ so hide it behind getter/setter functions.
+
+ Remove lots of m_layer.get() in PlatformCAAnimationMac.
+
+ * platform/graphics/ca/mac/PlatformCAAnimationMac.h:
+ * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
+ (WebCore::hasExplicitBeginTime):
+ (WebCore::setHasExplicitBeginTime):
+ (PlatformCAAnimationMac::copy):
+ (PlatformCAAnimationMac::keyPath):
+ (PlatformCAAnimationMac::beginTime):
+ (PlatformCAAnimationMac::setBeginTime):
+ (PlatformCAAnimationMac::duration):
+ (PlatformCAAnimationMac::setDuration):
+ (PlatformCAAnimationMac::speed):
+ (PlatformCAAnimationMac::setSpeed):
+ (PlatformCAAnimationMac::timeOffset):
+ (PlatformCAAnimationMac::setTimeOffset):
+ (PlatformCAAnimationMac::repeatCount):
+ (PlatformCAAnimationMac::setRepeatCount):
+ (PlatformCAAnimationMac::autoreverses):
+ (PlatformCAAnimationMac::setAutoreverses):
+ (PlatformCAAnimationMac::fillMode):
+ (PlatformCAAnimationMac::setFillMode):
+ (PlatformCAAnimationMac::setTimingFunction):
+ (PlatformCAAnimationMac::copyTimingFunctionFrom):
+ (PlatformCAAnimationMac::isRemovedOnCompletion):
+ (PlatformCAAnimationMac::setRemovedOnCompletion):
+ (PlatformCAAnimationMac::isAdditive):
+ (PlatformCAAnimationMac::setAdditive):
+ (PlatformCAAnimationMac::valueFunction):
+ (PlatformCAAnimationMac::setValueFunction):
+ (hasNonZeroBeginTimeFlag): Deleted.
+ (setNonZeroBeginTimeFlag): Deleted.
+ * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+ (-[WebAnimationDelegate animationDidStart:]):
+
+2014-05-15 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Compile all installed resources as GResources
+ https://bugs.webkit.org/show_bug.cgi?id=131099
+
+ Reviewed by Philippe Normand.
+
+ * PlatformGTK.cmake: Do not install the resources.
+ * platform/audio/gtk/AudioBusGtk.cpp:
+ (WebCore::AudioBus::loadPlatformResource): Load the audio resource
+ from GResources and use createBusFromInMemoryAudioFile().
+ * platform/graphics/Image.h: Remove unsued function loadPlatformThemeIcon.
+ * platform/graphics/gtk/ImageGtk.cpp:
+ (WebCore::loadImageFromGResource): Load the given icon name from GResources.
+ (WebCore::loadResourceSharedBuffer): Use char* instead of CString.
+ (WebCore::loadMissingImageIconFromTheme): Try to load the missing
+ icon from the current GTK icon theme.
+ (WebCore::Image::loadPlatformResource): Call
+ loadMissingImageIconFromTheme for missing icon or
+ loadImageFromGResource for any other icon name.
+ (WebCore::getPathToImageResource): Deleted.
+ (WebCore::getThemeIconFileName): Deleted.
+ (WebCore::loadImageFromFile): Deleted.
+ (WebCore::Image::loadPlatformThemeIcon): Deleted.
+
+2014-05-14 Beth Dakin <bdakin@apple.com>
+
+ Tiled scrolling indicator needs to take topContentInset into account
+ https://bugs.webkit.org/show_bug.cgi?id=132940
+
+ Reviewed by Simon Fraser.
+
+ The tiled scrolling indicator needs to move down by the value of the
+ topContentInset. This patch makes that happen by caching the topContentInset in
+ the TileController. This does feel a little silly since there is already a
+ function called setTiledScrollingIndicatorPosition() on TiledBacking. However, it
+ was often the case that calling that function had no effect because m_coverageMap
+ had not yet been created, and then the information was lost. So instead, we cache
+ the value.
+
+ Set TiledBacking’s copy of topContentInset whenever it changes for the FrameView.
+ * page/FrameView.cpp:
+ (WebCore::FrameView::topContentInsetDidChange):
+
+ New function to set the inset. Use the inset to position the coverage map.
+ * platform/graphics/TiledBacking.h:
+ * platform/graphics/ca/mac/TileController.h:
+ * platform/graphics/ca/mac/TileController.mm:
+ (WebCore::TileController::TileController):
+ (WebCore::TileController::setTopContentInset):
+
+ When the coverage map is created, consult the value of the inset.
+ * platform/graphics/ca/mac/TileCoverageMap.mm:
+ (WebCore::TileCoverageMap::TileCoverageMap):
+
+ Once the backing has been ensured, set the inset.
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateBacking):
+
+2014-05-14 Brent Fulgham <bfulgham@apple.com>
+
+ Merge r1267628 from branch.
+ <rdar://problem/15751219>
+
+ Pratik Solanki <psolanki@apple.com>
+
+ Reviewed by Simon Fraser.",
+
+ TileController relied on the tiling mode in TileCache to determine if it should use low-res
+ tiles when zooming. Unfortunately, sometimes the tiling mode gets set to Zooming even though
+ it's actually a pan. Thus we can end up with blurry tiles. Fix this by adding a new flag on
+ TileCache that controls this behavior and have UIKit set it only when we have an actual zoom
+ operation.
+
+ * platform/ios/LegacyTileCache.h:
+ (WebCore::LegacyTileCache::tileControllerShouldUseLowScaleTiles):
+ (WebCore::LegacyTileCache::setTileControllerShouldUseLowScaleTiles):
+ * platform/ios/LegacyTileCache.mm:
+ (WebCore::LegacyTileCache::LegacyTileCache):
+ * platform/ios/wak/WAKWindow.h:
+ * platform/ios/wak/WAKWindow.mm:
+ (-[WAKWindow setTileControllerShouldUseLowScaleTiles:]):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::contentsScaleMultiplierForNewTiles):
+
+2014-05-14 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r168750.
+ https://bugs.webkit.org/show_bug.cgi?id=132935
+
+ Caused repaint bugs (Requested by weinig on #webkit).
+
+ Reverted changeset:
+
+ "Text decorations do not contribute to visual overflow"
+ https://bugs.webkit.org/show_bug.cgi?id=132773
+ http://trac.webkit.org/changeset/168750
+
+2014-05-14 Simon Fraser <simon.fraser@apple.com>
+
+ [New multicolumn] Spin in RenderMultiColumnSet::repaintFlowThreadContent()
+ https://bugs.webkit.org/show_bug.cgi?id=132884
+
+ Reviewed by Beth Dakin.
+
+ On iOS, wikipedia pages can hang under RenderMultiColumnSet::repaintFlowThreadContent().
+ It appears that computedColumnHeight is set to 0 in prepareForLayout, but layout never happens
+ on the RenderMultiColumnSet in some cases, leaving the column height set to zero.
+ This caused columnIndexAtOffset() to return bad values, which resulted in very long loops
+ in repaintFlowThreadContent().
+
+ This fix is a stop-gap.
+
+ * rendering/RenderMultiColumnSet.cpp:
+ (WebCore::RenderMultiColumnSet::columnIndexAtOffset):
+
+2014-05-14 Benjamin Poulain <bpoulain@apple.com>
+
+ Remove FrameView::viewportConstrainedExtentRect, it is unused
+ https://bugs.webkit.org/show_bug.cgi?id=132927
+
+ Reviewed by Simon Fraser.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::viewportConstrainedExtentRect): Deleted.
+ * page/FrameView.h:
+ Simon replaced this by viewportConstrainedVisibleContentRect, remove the old code.
+
</ins><span class="cx"> 2014-05-14 Matthew Hanson <matthew_hanson@apple.com>
</span><span class="cx">
</span><span class="cx"> Only define MAX_GRID_TRACK_REPETITIONS if CSS_GRID_LAYOUT is enabled.
</span><span class="lines">@@ -224,831 +814,3658 @@
</span><span class="cx">
</span><span class="cx"> * css/CSSParser.cpp: Add include guard.
</span><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+2014-05-14 Beth Dakin <bdakin@apple.com>
</ins><span class="cx">
</span><del>- Merge r168767
</del><ins>+ Tile cache has way too many tiles when pinch-zoomed in
+ https://bugs.webkit.org/show_bug.cgi?id=132929
+ -and corresponding-
+ <rdar://problem/16527172>
</ins><span class="cx">
</span><del>- 2014-05-13 Dean Jackson <dino@apple.com>
</del><ins>+ Reviewed by Benjamin Poulain.
</ins><span class="cx">
</span><del>- Attempted build fix after https://bugs.webkit.org/show_bug.cgi?id=132891
</del><ins>+ This patch makes the margin sizing functions return the set margin size scaled by
+ the TileGrid's scale. We also need to get rid of the old notion we used to have
+ that margin tiles might be allowed to have a different size than the other tiles.
+ We don't want that. They should have the normal margin size, but they should
+ affect the overall coverage area.
</ins><span class="cx">
</span><del>- * page/PageDebuggable.cpp:
</del><ins>+ Scale by the TileGrid's scale.
+ * platform/graphics/ca/mac/TileController.mm:
+ (WebCore::TileController::topMarginHeight):
+ (WebCore::TileController::bottomMarginHeight):
+ (WebCore::TileController::leftMarginWidth):
+ (WebCore::TileController::rightMarginWidth):
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Get rid of adjustRectAtTileIndexForMargin() since we do not want to ever do this
+ adjustment. Use tileSize instead of margin size for all sizing computations.
+ * platform/graphics/ca/mac/TileGrid.h:
+ * platform/graphics/ca/mac/TileGrid.mm:
+ (WebCore::TileGrid::rectForTileIndex):
+ (WebCore::TileGrid::getTileIndexRangeForRect):
+ (WebCore::TileGrid::adjustRectAtTileIndexForMargin): Deleted.
</ins><span class="cx">
</span><del>- Merge r168764
</del><ins>+2014-05-14 Dean Jackson <dino@apple.com>
</ins><span class="cx">
</span><del>- 2014-05-13 Timothy Hatcher <timothy@apple.com>
</del><ins>+ [Mac] Search fields should not use centered look
+ https://bugs.webkit.org/show_bug.cgi?id=132930
+ <rdar://problem/16825842>
</ins><span class="cx">
</span><del>- Force developerExtrasEnabled when a remote Inspector client connects.
</del><ins>+ Reviewed by Beth Dakin.
</ins><span class="cx">
</span><del>- https://bugs.webkit.org/show_bug.cgi?id=132891
</del><ins>+ We need to explicitly set the centeredLook property
+ to NO on modern releases of Mac.
</ins><span class="cx">
</span><del>- Reviewed by Joseph Pecoraro.
</del><ins>+ * rendering/RenderThemeMac.mm: Declare a new private property and set it to NO.
+ (WebCore::RenderThemeMac::search):
</ins><span class="cx">
</span><del>- * page/PageDebuggable.cpp:
- (WebCore::PageDebuggable::PageDebuggable): Initialize m_forcedDeveloperExtrasEnabled to false.
- (WebCore::PageDebuggable::connect): Set m_forcedDeveloperExtrasEnabled if the setting is changed.
- (WebCore::PageDebuggable::disconnect): Switch developerExtrasEnabled back to false
- if m_forcedDeveloperExtrasEnabled is true.
- * page/PageDebuggable.h: Added m_forcedDeveloperExtrasEnabled.
</del><ins>+2014-05-14 Zalan Bujtas <zalan@apple.com>
</ins><span class="cx">
</span><del>-2014-05-14 Dean Jackson <dino@apple.com>
</del><ins>+ Subpixel layout: Change Element.offset* client* scroll* return type to double.
+ https://bugs.webkit.org/show_bug.cgi?id=132895
</ins><span class="cx">
</span><del>- Disable some features on the safari-538.34 branch.
- <rdar://problem/16650338>
</del><ins>+ Reviewed by Simon Fraser.
</ins><span class="cx">
</span><ins>+ This patch changes Element.offset*, Element.client* and Element.scroll* APIs return
+ type from long to double to match the latest CSSOM View Module spec[1].
+ Element.offset* and Element.client* do return subpixel values from now on.
+ Element.scroll* still return integral values as the scrolling code hasn't adopted to subpixel rendering yet.
+
+ subpixelCSSOMElementMetricsEnabled setting is added to be able to turn this feature on/off
+ from WK2 preferences. It toggles the return value from subpixel to floored integral.
+ It does not change layout/rendering behavior.
+
+ Reference list of what other browsers do:
+ IE: http://blogs.msdn.com/b/ie/archive/2012/02/17/sub-pixel-rendering-and-the-css-object-model.aspx
+ Blink: http://www.chromestatus.com/features/5497402177880064
+ Firefox: https://bugzilla.mozilla.org/show_bug.cgi?id=825607
+
+ [1] http://www.w3.org/TR/2013/WD-cssom-view-20131217/
+
+ Test: cssom/subpixel-offsetleft-top-width-height-values.html
+
+ * dom/Element.cpp:
+ (WebCore::localZoomForRenderer):
+ (WebCore::adjustForLocalZoom):
+ (WebCore::convertToNonSubpixelValueIfNeeded):
+ (WebCore::Element::offsetLeft):
+ (WebCore::Element::offsetTop):
+ (WebCore::Element::offsetWidth):
+ (WebCore::Element::offsetHeight):
+ (WebCore::Element::clientLeft):
+ (WebCore::Element::clientTop):
+ (WebCore::Element::clientWidth):
+ (WebCore::Element::clientHeight):
+ (WebCore::Element::scrollLeft):
+ (WebCore::Element::scrollTop):
+ (WebCore::Element::setScrollLeft):
+ (WebCore::Element::setScrollTop):
+ (WebCore::Element::scrollWidth):
+ (WebCore::Element::scrollHeight):
+ * dom/Element.h:
+ * dom/Element.idl:
+ * html/HTMLBodyElement.cpp:
+ (WebCore::adjustForZoom):
+ (WebCore::HTMLBodyElement::scrollLeft):
+ (WebCore::HTMLBodyElement::setScrollLeft):
+ (WebCore::HTMLBodyElement::scrollTop):
+ (WebCore::HTMLBodyElement::setScrollTop):
+ (WebCore::HTMLBodyElement::scrollHeight):
+ (WebCore::HTMLBodyElement::scrollWidth):
+ * html/HTMLBodyElement.h:
+ * page/Settings.in:
+
+2014-05-14 Brady Eidson <beidson@apple.com>
+
+ Implement NSSharingServiceDelegate method "transitionImageForShareItem"
+ <rdar://problem/16878020> and https://bugs.webkit.org/show_bug.cgi?id=132911
+
+ Reviewed by Tim Horton.
+
+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+
+2014-05-14 Alex Christensen <achristensen@webkit.org>
+
+ Another unreviewed build fix.
+
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::getTimingData):
+ Added necessary UNUSED_PARAMs.
+
+2014-05-14 Alex Christensen <achristensen@webkit.org>
+
+ Unreviewed build fix after r168849.
+
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::getTimingData):
+ Protect use of timing data with ENABLE(WEB_TIMING).
+
+2014-05-14 Alex Christensen <achristensen@webkit.org>
+
+ Refactor duplicate code in web timing.
+ https://bugs.webkit.org/show_bug.cgi?id=132917
+
+ Reviewed by Alexey Proskuryakov.
+
+ * platform/network/ResourceHandle.h:
+ Added getTimingData declaration.
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::getTimingData):
+ * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
+ (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
+ * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
+ (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
+ Moved duplicate code to ResourceHandle.
+
+2014-05-14 Alex Christensen <achristensen@webkit.org>
+
+ Use references instead of pointers with ResourceLoadTiming.
+ https://bugs.webkit.org/show_bug.cgi?id=132846
+
+ Reviewed by Alexey Proskuryakov.
+
+ * WebCore.exp.in:
+ Removed ResourceResponseBase::setResourceLoadTiming linker symbol.
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::buildObjectForResourceResponse):
+ * page/PerformanceResourceTiming.cpp:
+ (WebCore::PerformanceResourceTiming::domainLookupStart):
+ (WebCore::PerformanceResourceTiming::domainLookupEnd):
+ (WebCore::PerformanceResourceTiming::connectStart):
+ (WebCore::PerformanceResourceTiming::connectEnd):
+ (WebCore::PerformanceResourceTiming::secureConnectionStart):
+ (WebCore::PerformanceResourceTiming::requestStart):
+ Use references instead of pointers.
+ * page/PerformanceResourceTiming.h:
+ Make an instance instead of a RefPtr.
+ * page/PerformanceTiming.cpp:
+ (WebCore::PerformanceTiming::domainLookupStart):
+ (WebCore::PerformanceTiming::domainLookupEnd):
+ (WebCore::PerformanceTiming::connectStart):
+ (WebCore::PerformanceTiming::connectEnd):
+ (WebCore::PerformanceTiming::secureConnectionStart):
+ (WebCore::PerformanceTiming::requestStart):
+ (WebCore::PerformanceTiming::responseStart):
+ Check to see if the loader exists, then use ResourceLoadTiming reference.
+ (WebCore::PerformanceTiming::resourceLoadTiming): Deleted.
+ * page/PerformanceTiming.h:
+ Removed resourceLoadTiming declaration.
+ * platform/network/ResourceLoadTiming.h:
+ (WebCore::ResourceLoadTiming::ResourceLoadTiming):
+ (WebCore::ResourceLoadTiming::operator=):
+ Replaced reference counting with copy constructors.
+ (WebCore::ResourceLoadTiming::create): Deleted.
+ (WebCore::ResourceLoadTiming::deepCopy): Deleted.
+ * platform/network/ResourceResponseBase.cpp:
+ (WebCore::ResourceResponseBase::adopt):
+ (WebCore::ResourceResponseBase::copyData):
+ (WebCore::ResourceResponseBase::resourceLoadTiming):
+ (WebCore::ResourceResponseBase::setResourceLoadTiming):
+ (WebCore::ResourceResponseBase::compare):
+ * platform/network/ResourceResponseBase.h:
+ * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
+ (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
+ * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
+ (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::ResourceHandle::didStartRequest):
+ (WebCore::networkEventCallback):
+ Use references instead of pointers.
+
+2014-05-14 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r168837.
+ https://bugs.webkit.org/show_bug.cgi?id=132913
+
+ The patch added an assertion which fires on 6 tests (Requested
+ by ap on #webkit).
+
+ Reverted changeset:
+
+ "[CSS Regions] Add ASSERT to make sure using the flowThread
+ cache does not return incorrect results"
+ https://bugs.webkit.org/show_bug.cgi?id=132906
+ http://trac.webkit.org/changeset/168837
+
+2014-05-13 Jon Honeycutt <jhoneycutt@apple.com>
+
+ Revert "Don't dispatch 'beforeload' event inside FrameView::layout()",
+ commit 84fe8cf6fbe8b5de9a06300ca3ef6d0ffc96948c, and associated
+ follow-up fixes:
+
+ "platform/mac/plugins/testplugin-onnew-onpaint.html failing after
+ r168668", commit c17be3bf5127baf94310af4b4b9bf5a57d29aaf4
+ "[Win] Unreviewed build fix after r168668.", commit
+ 4fa470ad12c38ee7d4c114541b6dd321181a8bc9
+
+ The original merged patch appears to have caused a regression in
+ fast/dom/HTMLObjectElement/object-as-frame.html.
+
+ <https://bugs.webkit.org/show_bug.cgi?id=132886>
+
+ Reviewed by Alexey Proskuryakov.
+
+ * WebCore.exp.in:
+ * dom/Document.cpp:
+ (WebCore::Document::updateLayoutIgnorePendingStylesheets):
+ * dom/Document.h:
+ * html/HTMLAppletElement.cpp:
+ (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
+ * html/HTMLEmbedElement.cpp:
+ (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
+ * html/HTMLObjectElement.cpp:
+ (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::FrameView):
+ (WebCore::FrameView::reset):
+ (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
+ (WebCore::FrameView::performPostLayoutTasks):
+ (WebCore::FrameView::updateEmbeddedObjectsTimerFired): Deleted.
+ * page/FrameView.h:
+ * testing/Internals.cpp:
+ (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks): Deleted.
+ * testing/Internals.h:
+ * testing/Internals.idl:
+
+2014-05-14 Kiran <kiran.guduru@samsung.com>
+
+ alidation for getUserMedia() errorCallback is missing.
+ https://bugs.webkit.org/show_bug.cgi?id=132901
+
+ Reviewed by Darin Adler.
+
+ The patch adds the validation for getUserMedia errorCallBack
+ and throws TypeMismatchError.
+
+ Test: fast/mediastream/getusermedia.html
+
+ * Modules/mediastream/NavigatorUserMedia.cpp:
+ (WebCore::NavigatorUserMedia::webkitGetUserMedia):
+
+2014-05-14 Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com>
+
+ Remove CSS_STICKY_POSITION guards
+ https://bugs.webkit.org/show_bug.cgi?id=132676
+
</ins><span class="cx"> Reviewed by Simon Fraser.
</span><span class="cx">
</span><del>- Disable:
- - CSS_EXCLUSIONS
- - CSS_GRID_LAYOUT
- - INPUT_TYPE_COLOR
- - INPUT_TYPE_COLOR_POPUP
- - CANVAS_PATH
- - CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED
- - INDIE_UI
- - SHARED_WORKERS
- - WEB_TIMING
-
</del><span class="cx"> * Configurations/FeatureDefines.xcconfig:
</span><ins>+ * css/CSSParser.cpp:
+ (WebCore::isValidKeywordPropertyAndValue):
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+ (WebCore::CSSPrimitiveValue::operator EPosition):
+ * css/CSSValueKeywords.in:
+ * editing/EditingStyle.cpp:
+ (WebCore::EditingStyle::convertPositionStyle):
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+2014-05-14 Radu Stavila <stavila@adobe.com>
</ins><span class="cx">
</span><del>- Merge r168758
</del><ins>+ [CSS Regions] Add ASSERT to make sure using the flowThread cache does not return incorrect results
+ https://bugs.webkit.org/show_bug.cgi?id=132906
</ins><span class="cx">
</span><del>- 2014-05-13 Eric Carlson <eric.carlson@apple.com>
</del><ins>+ Reviewed by Andrei Bucur.
</ins><span class="cx">
</span><del>- Unreviewed build fix after r168755.
</del><ins>+ If flowThreadContainingBlock() is called on an object which is in a different
+ flow thread than the one currently being laid out, this method will return an incorrect
+ result. I added an assertion for that to make sure we catch and treat any such scenarios.
</ins><span class="cx">
</span><del>- * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
</del><ins>+ No new tests required.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
+ (WebCore::RenderObject::locateFlowThreadContainingBlock):
+ * rendering/RenderObject.h:
</ins><span class="cx">
</span><del>- Merge r168755
</del><ins>+2014-05-14 Andrei Bucur <abucur@adobe.com>
</ins><span class="cx">
</span><del>- 2014-05-13 Eric Carlson <eric.carlson@apple.com>
</del><ins>+ [CSS Regions] Don't relayout when updating the region range unless necessary
+ https://bugs.webkit.org/show_bug.cgi?id=132120
</ins><span class="cx">
</span><del>- [Mac] hasVideo should return true when video is ready to display
- https://bugs.webkit.org/show_bug.cgi?id=132885
</del><ins>+ Reviewed by Antti Koivisto.
</ins><span class="cx">
</span><del>- Reviewed by Jer Noble.
</del><ins>+ The patch reduces the cases when a relayout is made for boxes that change the region range.
+ This lowers the amount of nested layouts in most cases and produces big layout speedups for trees
+ without overhanging floats.
</ins><span class="cx">
</span><del>- * html/HTMLMediaElement.cpp:
- (WebCore::HTMLMediaElement::parseAttribute):
</del><ins>+ Tests: Major performance improvement with speedups of 50-60% on:
+ Layout/RegionsAuto.html, Layout/RegionsAutoMaxHeight.html and Layout/RegionsFixed.html
</ins><span class="cx">
</span><del>- * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
- (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
- enabled state of the AVPlayerItemTrack during setup.
</del><ins>+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::updateRegionRangeForBoxChild): Ask the child box if it needs a relayout
+ in case its region range changes.
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::layoutBlockChild): It's not necessary to do two layouts here because
+ there's no block direction position change between them for the child.
+ (WebCore::RenderBlockFlow::needsLayoutAfterRegionRangeChange): If the block doesn't have floats
+ or if it expands to enclose the floats it doesn't need to relayout after a region range chage.
+ It's not possible for it to have a float inside overflow that must be repositioned using the new
+ range.
+ * rendering/RenderBlockFlow.h:
+ * rendering/RenderBox.h:
+ (WebCore::RenderBox::needsLayoutAfterRegionRangeChange): By default don't relayout after a region
+ range change.
</ins><span class="cx">
</span><del>- * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
- * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
- (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
- m_cachedIsReadyForDisplay.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Remove "enabled" KVO observers.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Observe "readyForDisplay"
- change notifications.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Remove for "readyForDisplay"
- observer.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame): Return cached readyForDisplay
- state instead of polling every time.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Call setHasVideo(true) if the
- player layer is ready for display.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): Update logging.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): Ditto.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::firstFrameAvailableDidChange): Cache readyForDisplay
- state, call tracksChanged() if we haven't seen a video track yet.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::trackEnabledDidChange): New.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Correct logging.
- (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Remove old "enabled" listeners
- before release tracks, add new ones to new tracks.
- (WebCore::assetTrackMetadataKeyNames): Add "enabled" to the list of properties we require to
- be loaded before announcing that metadata has loaded.
- (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Observe
- "readyForDisplay" and "enabled".
</del><ins>+2014-05-14 Antti Koivisto <antti@apple.com>
</ins><span class="cx">
</span><del>- * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
- (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
- enabled state of the AVPlayerItemTrack during setup.
</del><ins>+ RuleData should ref the StyleRule
+ https://bugs.webkit.org/show_bug.cgi?id=132865
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Reviewed by Andreas Kling.
</ins><span class="cx">
</span><del>- Merge r168750
</del><ins>+ As a defensive move make RuleData ref the StyleRule.
+ This adds some ref churn but the overall performance impact should be minimal.
</ins><span class="cx">
</span><del>- 2014-05-13 Myles C. Maxfield <litherum@gmail.com>
</del><ins>+ * css/RuleSet.h:
+ (WebCore::RuleData::rule):
</ins><span class="cx">
</span><del>- Text decorations do not contribute to visual overflow
- https://bugs.webkit.org/show_bug.cgi?id=132773
</del><ins>+2014-05-14 Antti Koivisto <antti@apple.com>
</ins><span class="cx">
</span><del>- Reviewed by Darin Adler.
</del><ins>+ GIF animations don't restart after scrolling on iOS WebKit1
+ https://bugs.webkit.org/show_bug.cgi?id=132900
</ins><span class="cx">
</span><del>- Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
</del><ins>+ Reviewed by Andreas Kling.
</ins><span class="cx">
</span><del>- * rendering/InlineTextBox.cpp:
- (WebCore::textDecorationStrokeThickness): Refactor into a common function
- (WebCore::wavyOffsetFromDecoration): Ditto
- (WebCore::InlineTextBox::extendVerticalVisualOverflowForDecorations): Given
- vertical overflow bounds, possibly extend those to include location of
- decorations.
- (WebCore::InlineTextBox::paintDecoration): Use refactored functions.
- * rendering/InlineTextBox.h: Function signature
- * rendering/RenderBlockLineLayout.cpp:
- (WebCore::setLogicalWidthForTextRun): Call extendVerticalVisualOverflowForDecorations()
- * rendering/style/RenderStyle.cpp:
- (WebCore::RenderStyle::changeAffectsVisualOverflow): Inspects shadows and text decorations
- (WebCore::RenderStyle::changeRequiresLayout): Calls changeAffectsVisualOverflow()
- (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Moved code from here
- to changeAffectsVisualOverflow().
- * rendering/style/RenderStyle.h: Function signature
</del><ins>+ * WebCore.exp.in:
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+2014-05-13 Andrei Bucur <abucur@adobe.com>
</ins><span class="cx">
</span><del>- Merge r168599
</del><ins>+ [CSS Regions] Assertion failure in some cases with inline blocks
+ https://bugs.webkit.org/show_bug.cgi?id=132859
</ins><span class="cx">
</span><del>- 2014-05-09 Myles C. Maxfield <litherum@gmail.com>
</del><ins>+ Reviewed by Mihnea Ovidenie.
</ins><span class="cx">
</span><del>- [Mac] [iOS] Underlines are too low
- https://bugs.webkit.org/show_bug.cgi?id=132770
</del><ins>+ The patch hardens the conditions when the region range caches are
+ populated to avoid desynchronizations when objects move during layout.
+ This is true especially in the case of the boxes found inside
+ inline blocks, that get their range from the containing line.
</ins><span class="cx">
</span><del>- Reviewed by Darin Adler.
</del><ins>+ There is a new function |computedRegionRangeForBox| that will always
+ return a region range for a box using a best effort algorithm. This should
+ be used only when there's no need to cache region information.
</ins><span class="cx">
</span><del>- computeUnderlineOffset() inside InlineTextBox.cpp lowers underlines from text
- baseline by a value that is proportional to the font size. However, this
- lowering was done a second time in
- GraphicsContext::computeLineBoundsAndAntialiasingModeForText(). This patch
- removes this second, platform-dependent lowering.
</del><ins>+ This change also allows better control over the lifecycle of the
+ |RenderBoxRegionInfo| objects stored on the regions. We can now iterate
+ over the full range of the box when cleaning up the region box info. The
+ same applies for the width change detection function.
</ins><span class="cx">
</span><del>- This duplication was caused by merging iOS into open source, where iOS used
- the GraphicsContext approach and open source used the InlineTextBox approach.
</del><ins>+ Test: fast/regions/inline-block-shifted-region.html
</ins><span class="cx">
</span><del>- Covered by fast/css3-text/css3-text-decoration/text-decoration-thickness.html.
</del><ins>+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::RenderBlockFlow::updateRegionForLine): Don't set the containing
+ region if the block doesn't have a range. The returned value would not
+ be correctly clamped.
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBlock::hasRegionRangeInFlowThread):
+ * rendering/RenderBox.h:
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::removeRenderBoxRegionInfo): Iterate only over
+ the range of the box, not from the start of the region chain.
+ (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock): Same as
+ above.
+ (WebCore::RenderFlowThread::hasCachedRegionRangeForBox):
+ (WebCore::RenderFlowThread::getRegionRangeForBoxFromCachedInfo):
+ (WebCore::RenderFlowThread::getRegionRangeForBox):
+ (WebCore::RenderFlowThread::computedRegionRangeForBox): Best effort function
+ to determine the range of a box. It will always return something as long
+ as the flow thread has regions.
+ (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion): Use the new function
+ to determine the range.
+ * rendering/RenderFlowThread.h:
+ * rendering/RenderNamedFlowThread.cpp:
+ (WebCore::RenderNamedFlowThread::absoluteQuadsForBox): Use the new function to determine
+ the range.
</ins><span class="cx">
</span><del>- * platform/graphics/GraphicsContext.cpp:
- (WebCore::GraphicsContext::computeLineBoundsAndAntialiasingModeForText): Remove
- redundant lowering code
- * rendering/InlineTextBox.cpp:
- (WebCore::InlineTextBox::paintDecoration): Clean up textDecorationThickness
- variable
</del><ins>+2014-05-13 Simon Fraser <simon.fraser@apple.com>
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Fix "ASSERTION FAILED: m_representation == PlatformLayerRepresentation" with UI-side compositing
+ https://bugs.webkit.org/show_bug.cgi?id=132899
</ins><span class="cx">
</span><del>- Merge r168744
</del><ins>+ Reviewed by Beth Dakin.
</ins><span class="cx">
</span><del>- 2014-05-13 Enrica Casucci <enrica@apple.com>
</del><ins>+ Export some things
</ins><span class="cx">
</span><del>- REGRESSION (WebKit2): Zooming to text field leaves it partially hidden by the form assistant.
- https://bugs.webkit.org/show_bug.cgi?id=132879
- <rdar://problem/16318049>
</del><ins>+ * WebCore.exp.in:
</ins><span class="cx">
</span><del>- Reviewed by Benjamin Poulain.
</del><ins>+2014-05-13 Hans Muller <hmuller@adobe.com>
</ins><span class="cx">
</span><del>- Adding some exports. The fix to setScrollPosition is to avoid clamping the scroll
- position when using delegate scrolling.
</del><ins>+ [CSS Shapes] line height grows around polygon and incorrectly causes text to wrap to next line
+ https://bugs.webkit.org/show_bug.cgi?id=131622
</ins><span class="cx">
</span><del>- * WebCore.exp.in:
- * platform/ScrollView.cpp:
- (WebCore::ScrollView::setScrollPosition):
</del><ins>+ Reviewed by Bem Jones-Bey.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Corrected an earlier PolygonShape fix https://bugs.webkit.org/show_bug.cgi?id=132132
+ When the top or bottom of a layout line is coincident with a polygon edge vertex, we
+ only consider it an intersection if the edge extends into the line.
</ins><span class="cx">
</span><del>- Merge r168670
</del><ins>+ Test: fast/shapes/shape-outside-floats/shape-outside-edge-case.html
</ins><span class="cx">
</span><del>- 2014-05-12 Simon Fraser <simon.fraser@apple.com>
</del><ins>+ * rendering/shapes/PolygonShape.cpp:
+ (WebCore::OffsetPolygonEdge::clippedEdgeXRange):
</ins><span class="cx">
</span><del>- [iOS] Fixed items are sometimes clipped after rubber-banding
- https://bugs.webkit.org/show_bug.cgi?id=132851
- <rdar://problem/16870790>
</del><ins>+2014-05-13 Beth Dakin <bdakin@apple.com>
</ins><span class="cx">
</span><del>- Reviewed by Benjamin Poulain.
</del><ins>+ m_layerForOverhangAreas is sometimes not positioned correctly when topContentInset
+ has changed
+ https://bugs.webkit.org/show_bug.cgi?id=132898
+ -and corresponding-
+ <rdar://problem/16644710>
</ins><span class="cx">
</span><del>- On iOS fixed-position layers would get clipped to the document rect,
- but with rubber-banding, we can now have a custom fixed postion rect
- that extends outside the document rect.
</del><ins>+ Reviewed by Anders Carlsson.
</ins><span class="cx">
</span><del>- Another issue was that we would un-composite fixed elements sometimes
- when scrolling fast, again because they could fall outside of the document rect.
</del><ins>+ This function is called whenever the topContentInset changes, so use it as an
+ opportunity to ensure that m_layerForOverhangAreas has been positioned correctly.
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
</ins><span class="cx">
</span><del>- A final issue was that pinching could reveal parts of fixed elements that should
- lie outside the viewport, rather than clipping the layers.
</del><ins>+ Everyone gets an anchor point!
+ (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
</ins><span class="cx">
</span><del>- Fix by converting both call points to use viewportConstrainedVisibleContentRect()
- rather than viewportConstrainedExtentRect(). On non-iOS platforms these are
- the same, but on iOS viewportConstrainedVisibleContentRect() uses the
- custom fixed position rect, which is the correct rect to intersect with.
</del><ins>+2014-05-13 Dean Jackson <dino@apple.com>
</ins><span class="cx">
</span><del>- * rendering/RenderLayerBacking.cpp:
- (WebCore::RenderLayerBacking::updateCompositedBounds):
- * rendering/RenderLayerCompositor.cpp:
- (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
</del><ins>+ Attempted build fix after https://bugs.webkit.org/show_bug.cgi?id=132891
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ * page/PageDebuggable.cpp:
</ins><span class="cx">
</span><del>- Merge r168661
</del><ins>+2014-05-13 Timothy Hatcher <timothy@apple.com>
</ins><span class="cx">
</span><del>- 2014-05-12 Simon Fraser <simon.fraser@apple.com>
</del><ins>+ Force developerExtrasEnabled when a remote Inspector client connects.
</ins><span class="cx">
</span><del>- [iOS WK2] Fuzzy tiles on some sites on loading
- https://bugs.webkit.org/show_bug.cgi?id=132847
- <rdar://problem/16816178>
</del><ins>+ https://bugs.webkit.org/show_bug.cgi?id=132891
</ins><span class="cx">
</span><del>- Reviewed by Benjamin Poulain.
</del><ins>+ Reviewed by Joseph Pecoraro.
</ins><span class="cx">
</span><del>- Export WebCore::TileController::contentsScale() const
</del><ins>+ * page/PageDebuggable.cpp:
+ (WebCore::PageDebuggable::PageDebuggable): Initialize m_forcedDeveloperExtrasEnabled to false.
+ (WebCore::PageDebuggable::connect): Set m_forcedDeveloperExtrasEnabled if the setting is changed.
+ (WebCore::PageDebuggable::disconnect): Switch developerExtrasEnabled back to false
+ if m_forcedDeveloperExtrasEnabled is true.
+ * page/PageDebuggable.h: Added m_forcedDeveloperExtrasEnabled.
</ins><span class="cx">
</span><del>- * WebCore.exp.in:
</del><ins>+2014-05-13 Beth Dakin <bdakin@apple.com>
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ REGRESSION (topContentInset): Searching through Facebook Messenger's chat causes
+ scrolling in News Feed
+ https://bugs.webkit.org/show_bug.cgi?id=132889
+ -and corresponding-
+ <rdar://problem/16715716>
</ins><span class="cx">
</span><del>- Merge r168655
</del><ins>+ Reviewed by Simon Fraser.
</ins><span class="cx">
</span><del>- 2014-05-12 Beth Dakin <bdakin@apple.com>
</del><ins>+ First of all, scrollOffsetRelativeToDocument() was very poorly named. This patch
+ re-names it to the much more accurate documentScrollOffsetRelativeToViewOrigin().
+ Re-naming it makes it clear that ONE call site was not getting the right offset.
+ That call site does not want to know the document’s position relative to the view
+ origin, but rather it wants to know the Document’s position relative to the
+ scrolling origin.
</ins><span class="cx">
</span><del>- Content shadow layer needs to move in sync with the content layer
- https://bugs.webkit.org/show_bug.cgi?id=132841
- -and corresponding-
- <rdar://problem/16641115>
</del><ins>+ Export new name.
+ * WebCore.exp.in:
</ins><span class="cx">
</span><del>- Reviewed by Simon Fraser.
</del><ins>+ Use newly re-named documentScrollPositionRelativeToViewOrigin().
+ * page/FrameView.cpp:
+ (WebCore::FrameView::convertToRenderer):
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin):
+ (WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin):
+ (WebCore::ScrollView::documentScrollOffsetRelativeToScrollableAreaOrigin):
+ (WebCore::ScrollView::rootViewToContents):
+ (WebCore::ScrollView::windowToContents):
+ (WebCore::ScrollView::scrollOffsetRelativeToDocument): Deleted.
+ (WebCore::ScrollView::scrollPositionRelativeToDocument): Deleted.
+ * platform/ScrollView.h:
</ins><span class="cx">
</span><del>- Now that the root content layer moves a little bit (for y scroll positions between
- 0 and topContentInset), the shadow layer needs to move along with it since the
- shadow layer should always have the same position as the root content layer.
</del><ins>+ THIS is the spot that needs the new function,
+ documentScrollOffsetRelativeToScrollableAreaOrigin()()
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::scrollRectToVisible):
</ins><span class="cx">
</span><del>- Set the root state node’s shadow layer, and update the position whenever the root
- content layer’s position is updated.
- * page/scrolling/AsyncScrollingCoordinator.cpp:
- (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
- (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
</del><ins>+2014-05-13 Dean Jackson <dino@apple.com>
</ins><span class="cx">
</span><del>- Fetch the compositor’s layerForContentShadow().
- * page/scrolling/ScrollingCoordinator.cpp:
- (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
- * page/scrolling/ScrollingCoordinator.h:
</del><ins>+ [iOS] Page scale update messages for media controls should only fire at the end of zooming
+ https://bugs.webkit.org/show_bug.cgi?id=132857
+ <rdar://problem/16631009>
</ins><span class="cx">
</span><del>- Hook up the contentShadowLayer in the state node.
- * page/scrolling/ScrollingStateScrollingNode.cpp:
- (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
- (WebCore::ScrollingStateScrollingNode::setContentShadowLayer):
</del><ins>+ Reviewed by Simon Fraser.
</ins><span class="cx">
</span><del>- Hook it up in the ScrollingTreeNode as well. Move the layer whenever the m
- _scrolledContentsLayer is moved.
- * page/scrolling/ScrollingStateScrollingNode.h:
- * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
- * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
- (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
- (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
</del><ins>+ As the user was zooming, the media controls that responded
+ to the page scale (and resized themselves) would do so
+ slightly out of sync with the screen refreshes, and it looked
+ terrible. They really only need to get told at the end
+ of the zoom that they need to relayout.
</ins><span class="cx">
</span><del>- The shadow layer needs an anchor point now that we are moving it around.
- * rendering/RenderLayerCompositor.cpp:
- (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
</del><ins>+ Allow setPageScaleFactor to accept another parameter
+ that indicates if the change is stable. That way, changes
+ during a user triggers zoom gesture can be ignored for
+ media controls.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ * WebCore.exp.in: Page::setPageScaleFactor takes a new parameter.
+ * dom/Document.cpp:
+ (WebCore::Document::pageScaleFactorChangedAndStable): Renamed from pageScaleFactorChanged.
+ (WebCore::Document::pageScaleFactorChanged): Deleted.
+ * dom/Document.h:
+ * page/Page.cpp:
+ (WebCore::Page::setPageScaleFactor): Accepts a new inStableState parameter,
+ and tells the main frame that the scale factor has changed if it's stable.
+ * page/Page.h:
</ins><span class="cx">
</span><del>- Merge r168643
</del><ins>+2014-05-13 Eric Carlson <eric.carlson@apple.com>
</ins><span class="cx">
</span><del>- 2014-05-12 Beth Dakin <bdakin@apple.com>
</del><ins>+ Unreviewed build fix after r168755.
</ins><span class="cx">
</span><del>- Layer for bottom overhang area needs to be offset by the topContentInset
- https://bugs.webkit.org/show_bug.cgi?id=132835
- -and corresponding-
- <rdar://problem/16641115>
</del><ins>+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
</ins><span class="cx">
</span><del>- Reviewed by Simon Fraser.
</del><ins>+2014-05-13 Eric Carlson <eric.carlson@apple.com>
</ins><span class="cx">
</span><del>- Push this layer down by the topContentInset in addition to the root layer height,
- footer height, and header height.
- * rendering/RenderLayerCompositor.cpp:
- (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
</del><ins>+ [Mac] hasVideo should return true when video is ready to display
+ https://bugs.webkit.org/show_bug.cgi?id=132885
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Reviewed by Jer Noble.
</ins><span class="cx">
</span><del>- Merge r168602
</del><ins>+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::parseAttribute):
</ins><span class="cx">
</span><del>- 2014-05-11 Beth Dakin <bdakin@apple.com>
</del><ins>+ * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
+ (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
+ enabled state of the AVPlayerItemTrack during setup.
</ins><span class="cx">
</span><del>- Headers and footers are not positioned correctly with topContentInset
- https://bugs.webkit.org/show_bug.cgi?id=132787
- -and corresponding-
- <rdar://problem/16641115>
</del><ins>+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
+ m_cachedIsReadyForDisplay.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Remove "enabled" KVO observers.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Observe "readyForDisplay"
+ change notifications.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Remove for "readyForDisplay"
+ observer.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::hasAvailableVideoFrame): Return cached readyForDisplay
+ state instead of polling every time.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Call setHasVideo(true) if the
+ player layer is ready for display.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateAudioTracks): Update logging.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoTracks): Ditto.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::firstFrameAvailableDidChange): Cache readyForDisplay
+ state, call tracksChanged() if we haven't seen a video track yet.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::trackEnabledDidChange): New.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Correct logging.
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Remove old "enabled" listeners
+ before release tracks, add new ones to new tracks.
+ (WebCore::assetTrackMetadataKeyNames): Add "enabled" to the list of properties we require to
+ be loaded before announcing that metadata has loaded.
+ (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Observe
+ "readyForDisplay" and "enabled".
</ins><span class="cx">
</span><del>- Reviewed by Tim Horton.
</del><ins>+ * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
+ (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
+ enabled state of the AVPlayerItemTrack during setup.
</ins><span class="cx">
</span><del>- Headers and footers need to take the inset into account, and they also need to
- factor in the fact that the root layer moves around now too.
</del><ins>+2014-05-13 Myles C. Maxfield <litherum@gmail.com>
</ins><span class="cx">
</span><del>- The existing yPositionForRootContentLayer() is actually the right calculation for
- the header layer. The root content layer wants that value, but pushed down by the
- header height. Now there are static functions for both of them and the footer to
- avoid duplicated code in the three spots where we need this information.
- * page/FrameView.cpp:
- (WebCore::FrameView::yPositionForHeaderLayer):
- (WebCore::FrameView::yPositionForRootContentLayer):
- (WebCore::FrameView::yPositionForFooterLayer):
- * page/FrameView.h:
</del><ins>+ Text decorations do not contribute to visual overflow
+ https://bugs.webkit.org/show_bug.cgi?id=132773
</ins><span class="cx">
</span><del>- Use the static functions to compute the layer positions.
- * page/scrolling/AsyncScrollingCoordinator.cpp:
- (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
</del><ins>+ Reviewed by Darin Adler.
</ins><span class="cx">
</span><del>- How did headers ever work with this bug?? I don’t know. We need to return that
- layer.
- * page/scrolling/ScrollingCoordinator.cpp:
- (WebCore::ScrollingCoordinator::headerLayerForFrameView):
</del><ins>+ Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
</ins><span class="cx">
</span><del>- Use the static functions to compute the layer positions.
- * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
- (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
- * rendering/RenderLayerCompositor.cpp:
- (WebCore::RenderLayerCompositor::updateRootLayerPosition):
- (WebCore::RenderLayerCompositor::updateLayerForHeader):
- (WebCore::RenderLayerCompositor::updateLayerForFooter):
</del><ins>+ * rendering/InlineTextBox.cpp:
+ (WebCore::textDecorationStrokeThickness): Refactor into a common function
+ (WebCore::wavyOffsetFromDecoration): Ditto
+ (WebCore::InlineTextBox::extendVerticalVisualOverflowForDecorations): Given
+ vertical overflow bounds, possibly extend those to include location of
+ decorations.
+ (WebCore::InlineTextBox::paintDecoration): Use refactored functions.
+ * rendering/InlineTextBox.h: Function signature
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::setLogicalWidthForTextRun): Call extendVerticalVisualOverflowForDecorations()
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::changeAffectsVisualOverflow): Inspects shadows and text decorations
+ (WebCore::RenderStyle::changeRequiresLayout): Calls changeAffectsVisualOverflow()
+ (WebCore::RenderStyle::changeRequiresRepaintIfTextOrBorderOrOutline): Moved code from here
+ to changeAffectsVisualOverflow().
+ * rendering/style/RenderStyle.h: Function signature
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+2014-05-13 Enrica Casucci <enrica@apple.com>
</ins><span class="cx">
</span><del>- Merge r168557
</del><ins>+ REGRESSION (WebKit2): Zooming to text field leaves it partially hidden by the form assistant.
+ https://bugs.webkit.org/show_bug.cgi?id=132879
+ <rdar://problem/16318049>
</ins><span class="cx">
</span><del>- 2014-05-09 Benjamin Poulain <bpoulain@apple.com>
</del><ins>+ Reviewed by Benjamin Poulain.
</ins><span class="cx">
</span><del>- Fix the export file after r168556
</del><ins>+ Adding some exports. The fix to setScrollPosition is to avoid clamping the scroll
+ position when using delegate scrolling.
</ins><span class="cx">
</span><del>- * WebCore.exp.in: I forgot to fix the export file before landing.
</del><ins>+ * WebCore.exp.in:
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::setScrollPosition):
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+2014-05-13 Brady Eidson <beidson@apple.com>
</ins><span class="cx">
</span><del>- Merge r168556
</del><ins>+ Followup to: Update positioning/drawing of the image controls button.
+ <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
</ins><span class="cx">
</span><del>- 2014-05-09 Benjamin Poulain <bpoulain@apple.com>
</del><ins>+ Reviewed by Tim Horton.
</ins><span class="cx">
</span><del>- [iOS][WK2] Set up the resize events
- https://bugs.webkit.org/show_bug.cgi?id=132726
</del><ins>+ Cleared up the actual intent behind review feedback on the original patch.
</ins><span class="cx">
</span><del>- Reviewed by Darin Adler and Simon Fraser.
</del><ins>+ * html/shadow/mac/ImageControlsButtonElementMac.cpp:
+ (WebCore::ImageControlsButtonElementMac::maybeCreate):
</ins><span class="cx">
</span><del>- Let the WebKit2 layer override the size used for resize events.
</del><ins>+2014-05-13 Brady Eidson <beidson@apple.com>
</ins><span class="cx">
</span><del>- * WebCore.exp.in:
- * page/FrameView.cpp:
- (WebCore::FrameView::layout):
- (WebCore::FrameView::sizeForResizeEvent):
- (WebCore::FrameView::sendResizeEventIfNeeded):
- (WebCore::FrameView::setCustomSizeForResizeEvent):
- * page/FrameView.h:
</del><ins>+ Update positioning/drawing of the image controls button.
+ <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Reviewed by Tim Horton.
</ins><span class="cx">
</span><del>- Merge r168513
</del><ins>+ * html/shadow/mac/ImageControlsButtonElementMac.cpp:
+ (WebCore::ImageControlsButtonElementMac::maybeCreate): Add inline style for top/right
+ positioning based on the metrics from the render theme.
</ins><span class="cx">
</span><del>- 2014-05-08 Simon Fraser <simon.fraser@apple.com>
</del><ins>+ * html/shadow/mac/imageControlsMac.css:
+ (.x-webkit-image-controls-button): Can’t hard code any positioning.
</ins><span class="cx">
</span><del>- [iOS WK2] Bottom-relative position:fixed elements are misplaced on page load
- https://bugs.webkit.org/show_bug.cgi?id=132719
- <rdar://problem/16860837>
</del><ins>+ * rendering/RenderTheme.h:
+ (WebCore::RenderTheme::imageControlsButtonPositionOffset):
+ * rendering/RenderThemeMac.h:
+ * rendering/RenderThemeMac.mm:
+ (WebCore::RenderThemeMac::servicesRolloverButtonCell):
+ (WebCore::RenderThemeMac::imageControlsButtonPositionOffset):
</ins><span class="cx">
</span><del>- Reviewed by Benjamin Poulain.
</del><ins>+2014-05-13 Simon Fraser <simon.fraser@apple.com>
</ins><span class="cx">
</span><del>- Add a couple of functions, and sort.
</del><ins>+ [iOS WK2] background-attachment:fixed behaves very poorly
+ https://bugs.webkit.org/show_bug.cgi?id=132881
+ <rdar://problem/16789526>
</ins><span class="cx">
</span><del>- * WebCore.exp.in:
</del><ins>+ Reviewed by Beth Dakin.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Remove the old ENABLE_FAST_MOBILE_SCROLLING code, and add a setting that
+ controls whether fixed backgrounds paint relative to the document, which
+ is enabled for iOS (WK1 and WK2). This setting is consulted when we repaint
+ fixed backgrounds on scrolling, when we paint them, and when we decide to make
+ a layer for fixed backgrounds.
+
+ * page/Settings.cpp:
+ * page/Settings.in:
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
+ * rendering/RenderElement.cpp:
+ (WebCore::RenderElement::styleWillChange):
+ (WebCore::RenderElement::willBeRemovedFromTree):
+ (WebCore::shouldRepaintFixedBackgroundsOnScroll): Deleted.
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::needsFixedRootBackgroundLayer):
</ins><span class="cx">
</span><del>- Merge r168536
</del><ins>+2014-05-13 Zalan Bujtas <zalan@apple.com>
</ins><span class="cx">
</span><del>- 2014-05-09 Jer Noble <jer.noble@apple.com>
</del><ins>+ REGRESSSION(r168528) Subpixel rendering: Selection rect is not positioned properly when SVG text is selected.
+ https://bugs.webkit.org/show_bug.cgi?id=132868
</ins><span class="cx">
</span><del>- [MSE][Mac] Destroy the AVStreamDataParser when the SourceBuffer is removed from its MediaSource.
- https://bugs.webkit.org/show_bug.cgi?id=132710
</del><ins>+ Reviewed by Dirk Schulze.
</ins><span class="cx">
</span><del>- Reviewed by Eric Carlson.
</del><ins>+ Scale the selection rect. r168528 missed applying this final transform on the selection/painting rect.
</ins><span class="cx">
</span><del>- The AVStreamDataParser should be destroyed when the SourceBuffer is removed, so that subsequent
- SourceBuffers can utilize resources released by the parser on destruction.
</del><ins>+ Test: svg/text/hidpi-text-selection-rect-position.html
</ins><span class="cx">
</span><del>- * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
- (-[WebAVStreamDataParserListener invalidate]):
- (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Protect against _parent being invalidated.
- (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
- (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): Call destroyParser();.
- (WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource): Ditto.
- (WebCore::SourceBufferPrivateAVFObjC::destroyParser): Call -[WebAVStreamDataParserListener invalidate].
</del><ins>+ * rendering/svg/SVGInlineTextBox.cpp:
+ (WebCore::SVGInlineTextBox::selectionRectForTextFragment):
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+2014-05-13 Martin Hodovan <mhodovan.u-szeged@partner.samsung.com>
</ins><span class="cx">
</span><del>- Merge r168519
</del><ins>+ ASSERTION FAILED: leftCategory != CalcOther && rightCategory != CalcOther
+ in WebCore::CSSCalcBinaryOperation::createSimplified
+ https://bugs.webkit.org/show_bug.cgi?id=132870
</ins><span class="cx">
</span><del>- 2014-05-08 Brent Fulgham <bfulgham@apple.com>
</del><ins>+ According to the standard, calc() should be able to handle angle, time
+ and frequency values as well: http://www.w3.org/TR/css3-values/#calc
</ins><span class="cx">
</span><del>- Multiple (stacked) cues when shuttling through video while playing closed captions
- https://bugs.webkit.org/show_bug.cgi?id=132715
- <rdar://problem/16795782>
</del><ins>+ Reviewed by Darin Adler.
</ins><span class="cx">
</span><del>- Reviewed by Eric Carlson.
</del><ins>+ Test: fast/css/calc-with-angle-time-frequency.html
</ins><span class="cx">
</span><del>- Tests: media/track/track-in-band-cues-added-once.html
</del><ins>+ * css/CSSCalculationValue.cpp:
+ (WebCore::unitCategory):
+ (WebCore::CSSCalcPrimitiveValue::createCalcExpression):
+ (WebCore::CSSCalcPrimitiveValue::computeLengthPx):
+ (WebCore::CSSCalcPrimitiveValue::addSubtractResult):
+ (WebCore::CSSCalcPrimitiveValue::determineCategory):
+ (WebCore::CSSCalcBinaryOperation::primitiveType)
+ * css/CSSCalculationValue.h: extending CalculationCategory
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::validCalculationUnit):
+ * css/CSSPrimitiveValue.cpp:
+ (WebCore::CSSPrimitiveValue::primitiveType):
</ins><span class="cx">
</span><del>- * html/track/TextTrack.cpp:
- (WebCore::TextTrack::hasCue): Revise to use a relaxed time equality.
- * html/track/TextTrackCue.cpp:
- (WebCore::TextTrackCue::isEqual): Ditto.
- (WebCore::TextTrackCue::hasEquivalentStartTime): Added.
- * html/track/TextTrackCue.h:
- (WebCore::TextTrackCue::startTimeVariance): Added.
- * html/track/TextTrackCueGeneric.h:
- * html/track/TextTrackCueGeneric.cpp:
- (WebCore::TextTrackCueGeneric::isEqual): Do not call the VTTCue::isEqual method from
- this class, since cueType() will not equal VTTCue, and the equality will fail.
</del><ins>+2014-05-13 Darin Adler <darin@apple.com>
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Try to fix the !ENABLE(ICONDATABASE) build
</ins><span class="cx">
</span><del>- Merge r168514
</del><ins>+ * loader/icon/IconDatabase.h: Include WTFString.h.
</ins><span class="cx">
</span><del>- 2014-05-08 Simon Fraser <simon.fraser@apple.com>
</del><ins>+2014-05-13 Carlos Garcia Campos <cgarcia@igalia.com>
</ins><span class="cx">
</span><del>- Occasional crash under AsyncScrollingCoordinator::frameViewRootLayerDidChange() on history navigation
- https://bugs.webkit.org/show_bug.cgi?id=132723
</del><ins>+ REGRESSION(r167771): [GTK] Text fields and areas are rendered unthemed
+ https://bugs.webkit.org/show_bug.cgi?id=132864
</ins><span class="cx">
</span><del>- Reviewed by Sam Weinig.
</del><ins>+ Reviewed by Philippe Normand.
</ins><span class="cx">
</span><del>- Crash reports suggest that when we call AsyncScrollingCoordinator::frameViewRootLayerDidChange()
- from HistoryController::restoreScrollPositionAndViewState(), the FrameView may not have a
- scrolling node ID, which suggests that either the FrameView doesn't have a RenderView,
- or compositing hasn't happened yet.
</del><ins>+ This is because the virtual methods changed the API in the parent,
+ and since we don't have the methods marked as override we didn't
+ noticed it. After using override keyword for all virtual methods
+ in the derived class another problem showed up, the ActiveListBox
+ selection methods were incorrectly named.
</ins><span class="cx">
</span><del>- So if we enter AsyncScrollingCoordinator::frameViewRootLayerDidChange()
- and the FrameView has no scrollLayerID, just return. We'll fix things up
- when compositing kicks in later.
</del><ins>+ * platform/gtk/RenderThemeGtk.cpp:
+ (WebCore::RenderThemeGtk::paintTextArea): Update to API changes in the
+ parent class.
+ * platform/gtk/RenderThemeGtk.h: Mark all virtual methods as
+ override and the class as final.
+ * platform/gtk/RenderThemeGtk2.cpp:
+ (WebCore::RenderThemeGtk::paintTextField): Update to API changes
+ in the parent class.
+ (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
+ (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
+ (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
+ (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
+ (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor): Deleted.
+ (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor): Deleted.
+ (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor): Deleted.
+ (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor): Deleted.
+ * platform/gtk/RenderThemeGtk3.cpp:
+ (WebCore::RenderThemeGtk::paintTextField): Update to API changes
+ in the parent class.
+ (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
+ (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
+ (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
+ (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):
+ (WebCore::RenderThemeGtk::activeListBoxSelectionBackgroundColor): Deleted.
+ (WebCore::RenderThemeGtk::inactiveListBoxSelectionBackgroundColor): Deleted.
+ (WebCore::RenderThemeGtk::activeListBoxSelectionForegroundColor): Deleted.
+ (WebCore::RenderThemeGtk::inactiveListBoxSelectionForegroundColor): Deleted.
</ins><span class="cx">
</span><del>- * page/scrolling/AsyncScrollingCoordinator.cpp:
- (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
</del><ins>+2014-05-13 Xabier Rodriguez Calvar <calvaris@igalia.com>
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ [GStreamer] Move toGstClockTime to utilities
+ https://bugs.webkit.org/show_bug.cgi?id=132702
</ins><span class="cx">
</span><del>- Merge r168508
</del><ins>+ Reviewed by Philippe Normand.
</ins><span class="cx">
</span><del>- 2014-05-08 Jer Noble <jer.noble@apple.com>
</del><ins>+ toGstClockTime should be in GStreamerUtilities and corrected typo
+ in getGstPlayFlag.
</ins><span class="cx">
</span><del>- [MSE][Mac] Move AVStreamDataParser off-main-thread.
- https://bugs.webkit.org/show_bug.cgi?id=132698
</del><ins>+ No new tests needed.
</ins><span class="cx">
</span><del>- Reviewed by Eric Carlson.
</del><ins>+ * platform/graphics/gstreamer/GStreamerUtilities.cpp:
+ (WebCore::getGstPlayFlag): Renamed from getGstPlaysFlag.
+ (WebCore::toGstClockTime): Moved from MediaPlayerPrivateGStreamer.
+ (WebCore::getGstPlaysFlag): Deleted.
+ * platform/graphics/gstreamer/GStreamerUtilities.h:
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::setDownloadBuffering):
+ Corrected getGstPlayFlag typo.
+ (WebCore::toGstClockTime): Deleted.
</ins><span class="cx">
</span><del>- -[AVStreamDataParser appendStreamData:] can casue the main thread to hang when a
- large amount of media data is appended at once. Move the actual parsing of data
- to a background (synchronous) dispatch queue, and split SourceBuffer::appendBufferTimerFired
- into two functions, the latter of which will be called after the background queue
- completes.
</del><ins>+2014-05-12 Darin Adler <darin@apple.com>
</ins><span class="cx">
</span><del>- * Modules/mediasource/SourceBuffer.cpp:
- (WebCore::SourceBuffer::appendBufferTimerFired): Split into sourceBufferPrivateAppendComplete.
- (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Split from appendBufferTimerFired.
- * Modules/mediasource/SourceBuffer.h:
- * platform/graphics/SourceBufferPrivate.h:
- * platform/graphics/SourceBufferPrivateClient.h:
- * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
- * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
- (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Re-dispatch to the
- web thread.
- (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
- (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
- (WebCore::globalDataParserQueue): Added.
- (WebCore::SourceBufferPrivateAVFObjC::append): Dispatch to the globalDataParserQueue.
- (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): Added.
- * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
- (WebCore::MockSourceBufferPrivate::append): Adopt sourceBufferPrivateAppendComplete.
- * platform/mock/mediasource/MockSourceBufferPrivate.h:
</del><ins>+ Make a few icon database improvements
+ https://bugs.webkit.org/show_bug.cgi?id=132812
</ins><span class="cx">
</span><del>- Update SourceBufferPrivateGStreamer to match the new append return value:
- * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:
- (WebCore::SourceBufferPrivateGStreamer::append):
- * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h:
</del><ins>+ Reviewed by Brady Eidson.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ * WebCore.exp.in: Export more IconDatabase functions, since they are now called
+ by WebKit2 through pointers to a class marked final.
</ins><span class="cx">
</span><del>- Merge r168473
</del><ins>+ * loader/icon/IconDatabase.cpp: Removed unneeded includes. Use override for
+ virtual functions.
</ins><span class="cx">
</span><del>- 2014-05-08 Antti Koivisto <antti@apple.com>
</del><ins>+ * loader/icon/IconDatabase.h: Removed unneeded includes. Marked the class final.
+ Use override for virtual functions. Use a public constructor instead of a create
+ function.
</ins><span class="cx">
</span><del>- [iOS WebKit2] Can't activate text fields on Facebook
- https://bugs.webkit.org/show_bug.cgi?id=132682
</del><ins>+ * loader/icon/IconDatabaseBase.h: Removed unneeded includes.
</ins><span class="cx">
</span><del>- Reviewed by Enrica Casucci.
</del><ins>+2014-05-13 Kiran <kiran.guduru@samsung.com>
</ins><span class="cx">
</span><del>- * page/DOMTimer.cpp:
- (WebCore::DOMTimer::fired):
</del><ins>+ [MediaStream] MediaStream.addTrack Should not check for active state.
+ https://bugs.webkit.org/show_bug.cgi?id=132558
</ins><span class="cx">
</span><del>- The isDocument() test here had reversed in the merge breaking content change observer callback.
</del><ins>+ Reviewed by Eric Carlson.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ MediaStream.addTrack method is checking for active state of a
+ MediaStream, but it should not check for active state while adding a Track.
</ins><span class="cx">
</span><del>- Merge r168452
</del><ins>+ Test: fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html
</ins><span class="cx">
</span><del>- 2014-05-07 Pratik Solanki <psolanki@apple.com>
</del><ins>+ * Modules/mediastream/MediaStream.cpp:
+ (WebCore::MediaStream::addTrack):
</ins><span class="cx">
</span><del>- Use system defaults for hardware jpeg decoding
- https://bugs.webkit.org/show_bug.cgi?id=132661
- <rdar://problem/11348201>
</del><ins>+2014-05-12 Mark Lam <mark.lam@apple.com>
</ins><span class="cx">
</span><del>- Reviewed by Tim Horton.
</del><ins>+ WebKit2 on iOS needs to capture the main thread's floating point environment.
+ <https://webkit.org/b/132755>
</ins><span class="cx">
</span><del>- Remove code that explicitly disabled hardware image decoding. Let the system decide what to do.
</del><ins>+ Reviewed by Geoffrey Garen.
</ins><span class="cx">
</span><del>- * WebCore.exp.in:
- * platform/graphics/ImageSource.h:
- (WebCore::ImageSource::acceleratedImageDecodingEnabled): Deleted.
- (WebCore::ImageSource::setAcceleratedImageDecodingEnabled): Deleted.
- * platform/graphics/cg/ImageSourceCG.cpp:
- (WebCore::ImageSource::imageSourceOptions):
</del><ins>+ For iOS, WorkerThread::workerThread() expects to be able to initialize the
+ worker thread's floating point environment to be the same as the one in the
+ main thread. The FP env of the main thread is expected to have been captured
+ in the mainThreadFEnv global. On WebKit2 for iOS, we neglected to initialize
+ mainThreadFEnv.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ We now introduce a FloatingPointEnvironment class that will encapsulate the main
+ thread (aka "UIThread") fenv, and we'll call FloatingPointEnv::saveMainThreadEnvironment()
+ from ChildProcess::platformInitialize() to ensure that the FloatingPointEnvironment
+ singleton instance is initialized properly for WebKit2.
</ins><span class="cx">
</span><del>- Merge r168447
</del><ins>+ In the ChildProcess::platformInitialize(), we also need to initialize the ARMv7
+ FP env to support denormalized numbers. We'll do this before calling
+ saveMainThreadEnvironment().
</ins><span class="cx">
</span><del>- 2014-05-07 Enrica Casucci <enrica@apple.com>
</del><ins>+ Tests: fast/workers/worker-floating-point.html
+ js/floating-point-denormalized.html
</ins><span class="cx">
</span><del>- WK2: Programatic scroll requests during scroll or zoom animation to reveal focused element are ignored.
- https://bugs.webkit.org/show_bug.cgi?id=132657
- <rdar://problem/16468462>
</del><ins>+ * WebCore.exp.in:
+ * WebCore.xcodeproj/project.pbxproj:
+ * platform/ios/wak/FloatingPointEnvironment.cpp: Added.
+ (WebCore::FloatingPointEnvironment::env):
+ (WebCore::FloatingPointEnvironment::FloatingPointEnvironment):
+ (WebCore::FloatingPointEnvironment::enableDenormalSupport):
+ (WebCore::FloatingPointEnvironment::saveMainThreadEnvironment):
+ (WebCore::FloatingPointEnvironment::propagateMainThreadEnvironment):
+ * platform/ios/wak/FloatingPointEnvironment.h: Added.
+ * platform/ios/wak/WebCoreThread.h:
+ * platform/ios/wak/WebCoreThread.mm:
+ (RunWebThread):
+ (StartWebThread):
+ * workers/WorkerThread.cpp:
+ (WebCore::WorkerThread::workerThread):
</ins><span class="cx">
</span><del>- Reviewed by Benjamin Poulain.
</del><ins>+2014-05-12 Dirk Schulze <krit@webkit.org>
</ins><span class="cx">
</span><del>- With the scrolling model we use on iOS, a programatic scroll
- request can be received while we are still animating to reveal
- the focused input element. The WebProcess is unaware that the
- scroll position is being changed in the UIProcess, and does not
- honor the scroll request from JavaScript.
- This is patch changes the behavior for clients using scroll delegates
- to always send the scroll request to the UIProcess without checking
- the current scroll position.
</del><ins>+ SVG root element accepts background color but fails to repaint it
+ https://bugs.webkit.org/show_bug.cgi?id=63153
</ins><span class="cx">
</span><del>- * page/FrameView.h:
- * platform/ScrollView.cpp:
- (WebCore::ScrollView::setScrollPosition):
- * platform/ScrollView.h:
- (WebCore::ScrollView::inProgrammaticScroll):
</del><ins>+ Reviewed by Dean Jackson.
</ins><span class="cx">
</span><del>-2014-05-13 Babak Shafiei <bshafiei@apple.com>
</del><ins>+ This is back ported from Blink. Don't know the exact commit though.
+ The patch checks if the SVGSVGElement is an outermost root element.
+ If it is, mark the whole element for repaint.
</ins><span class="cx">
</span><del>- Merge r168742
</del><ins>+ Test: svg/custom/svg-root-background.html
</ins><span class="cx">
</span><del>- 2014-05-13 Brady Eidson <beidson@apple.com>
-
- Followup to: Update positioning/drawing of the image controls button.
- <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
</del><ins>+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::calculateHasBoxDecorations):
+ (WebCore::RenderBoxModelObject::updateFromStyle):
+ * rendering/RenderBoxModelObject.h:
+ * rendering/svg/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::RenderSVGRoot):
+ (WebCore::RenderSVGRoot::layout):
+ (WebCore::RenderSVGRoot::paintReplaced):
+ (WebCore::RenderSVGRoot::clippedOverflowRectForRepaint):
+ This is a simple optimization by taking the necessary parts
+ from RenderReplaced and SVGRenderSupport.
+ * rendering/svg/RenderSVGRoot.h:
</ins><span class="cx">
</span><del>- Reviewed by Tim Horton.
</del><ins>+2014-05-12 Simon Fraser <simon.fraser@apple.com>
</ins><span class="cx">
</span><del>- Cleared up the actual intent behind review feedback on the original patch.
</del><ins>+ [iOS] Fixed items are sometimes clipped after rubber-banding
+ https://bugs.webkit.org/show_bug.cgi?id=132851
+ <rdar://problem/16870790>
</ins><span class="cx">
</span><del>- * html/shadow/mac/ImageControlsButtonElementMac.cpp:
- (WebCore::ImageControlsButtonElementMac::maybeCreate):
</del><ins>+ Reviewed by Benjamin Poulain.
</ins><span class="cx">
</span><del>-2014-05-13 Babak Shafiei <bshafiei@apple.com>
</del><ins>+ On iOS fixed-position layers would get clipped to the document rect,
+ but with rubber-banding, we can now have a custom fixed postion rect
+ that extends outside the document rect.
+
+ Another issue was that we would un-composite fixed elements sometimes
+ when scrolling fast, again because they could fall outside of the document rect.
+
+ A final issue was that pinching could reveal parts of fixed elements that should
+ lie outside the viewport, rather than clipping the layers.
+
+ Fix by converting both call points to use viewportConstrainedVisibleContentRect()
+ rather than viewportConstrainedExtentRect(). On non-iOS platforms these are
+ the same, but on iOS viewportConstrainedVisibleContentRect() uses the
+ custom fixed position rect, which is the correct rect to intersect with.
</ins><span class="cx">
</span><del>- Merge r168728
</del><ins>+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateCompositedBounds):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
</ins><span class="cx">
</span><del>- 2014-05-13 Brady Eidson <beidson@apple.com>
</del><ins>+2014-05-06 Jon Honeycutt <jhoneycutt@apple.com>
</ins><span class="cx">
</span><del>- Update positioning/drawing of the image controls button.
- <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883
</del><ins>+ Don't dispatch 'beforeload' event inside FrameView::layout()
</ins><span class="cx">
</span><del>- Reviewed by Tim Horton.
</del><ins>+ https://bugs.webkit.org/show_bug.cgi?id=132621
+ <rdar://problem/15661470>
</ins><span class="cx">
</span><del>- * html/shadow/mac/ImageControlsButtonElementMac.cpp:
- (WebCore::ImageControlsButtonElementMac::maybeCreate): Add inline style for top/right
- positioning based on the metrics from the render theme.
</del><ins>+ This merges Blink revision 162073 with minor renaming and style
+ changes. From that commit:
</ins><span class="cx">
</span><del>- * html/shadow/mac/imageControlsMac.css:
- (.x-webkit-image-controls-button): Can’t hard code any positioning.
</del><ins>+ Executing JavaScript code inside FrameView::layout() is problematic.
+ e.g. an assertion failure tested in fast/events/beforeload-assertion.html.
+ We should avoid it.
</ins><span class="cx">
</span><del>- * rendering/RenderTheme.h:
- (WebCore::RenderTheme::imageControlsButtonPositionOffset):
- * rendering/RenderThemeMac.h:
- * rendering/RenderThemeMac.mm:
- (WebCore::RenderThemeMac::servicesRolloverButtonCell):
- (WebCore::RenderThemeMac::imageControlsButtonPositionOffset):
</del><ins>+ This CL makes 'beforeload' event dispatching for plugins and iframes asynchronous,
+ except plugin access from JavaScript code (HTMLPlugInElement::
+ renderWidgetForJSBindings).
</ins><span class="cx">
</span><del>-2014-05-13 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Reviewed by Brent Fulgham.
</ins><span class="cx">
</span><del>- Merge r168442
</del><ins>+ Tests: fast/events/beforeload-assertion.html
+ fast/events/beforeload-iframe-crash.html
+ fast/events/beforeload-input-time-crash.html
</ins><span class="cx">
</span><del>- 2014-05-07 Brent Fulgham <bfulgham@apple.com>
</del><ins>+ * WebCore.exp.in:
+ * dom/Document.cpp:
+ (WebCore::Document::updateLayoutIgnorePendingStylesheets):
+ * dom/Document.h:
+ * html/HTMLAppletElement.cpp:
+ (WebCore::HTMLAppletElement::renderWidgetForJSBindings):
+ * html/HTMLEmbedElement.cpp:
+ (WebCore::HTMLEmbedElement::renderWidgetForJSBindings):
+ * html/HTMLObjectElement.cpp:
+ (WebCore::HTMLObjectElement::renderWidgetForJSBindings):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::FrameView):
+ (WebCore::FrameView::reset):
+ (WebCore::FrameView::updateEmbeddedObjectsTimerFired):
+ (WebCore::FrameView::flushAnyPendingPostLayoutTasks):
+ (WebCore::FrameView::performPostLayoutTasks):
+ * page/FrameView.h:
+ * testing/Internals.cpp:
+ (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
+ * testing/Internals.h:
+ * testing/Internals.idl:
</ins><span class="cx">
</span><del>- [Mac, iOS] REGRESSION: WK2 YouTube support
- https://bugs.webkit.org/show_bug.cgi?id=132568
- <rdar://problem/11464344>
</del><ins>+2014-05-12 Roger Fong <roger_fong@apple.com>
</ins><span class="cx">
</span><del>- Reviewed by Darin Adler.
</del><ins>+ Limit number of active graphics contexts per web process.
+ https://bugs.webkit.org/show_bug.cgi?id=132833.
+ <rdar://problem/16888459>
</ins><span class="cx">
</span><del>- Move the custom YouTube loader code out of the WebFrameLoaderClient into a
- PluginReplacement-based class.
</del><ins>+ Reviewed by Dean Jackson.
</ins><span class="cx">
</span><del>- * Modules/plugins/PluginReplacement.h:
- (WebCore::PluginReplacement::supportsURL): New predicate so we can restrict
- use of a plugin to a particular category of URLs.
- * Modules/plugins/QuickTimePluginReplacement.mm:
- (WebCore::QuickTimePluginReplacement): Updated for new registrar signature.
- * Modules/plugins/YouTubePluginReplacement.h: Added.
- (WebCore::YouTubePluginReplacement::parentElement):
- * Modules/plugins/YouTubePluginReplacement.cpp: Added.
- (WebCore::YouTubePluginReplacement::registerPluginReplacement):
- (WebCore::YouTubePluginReplacement::create):
- (WebCore::YouTubePluginReplacement::supportsMimeType):
- (WebCore::YouTubePluginReplacement::supportsFileExtension):
- (WebCore::kit):
- (WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
- (WebCore::YouTubePluginReplacement::createElementRenderer):
- (WebCore::objectForKey):
- (WebCore::YouTubePluginReplacement::installReplacement):
- (WebCore::createYouTubeURL):
- (WebCore::processAndCreateYouTubeURL):
- (WebCore::YouTubePluginReplacement::youTubeURL):
- * WebCore.exp.in: Add new export from WebCore.
- * WebCore.xcodeproj/project.pbxproj:
- * html/HTMLPlugInElement.cpp:
- (WebCore::pluginReplacementForType): Update to also check that the URL is supported
- by the plugin.
- (WebCore::registeredPluginReplacements): Add new YouTubePluginReplacement to registry.
- * html/HTMLPlugInImageElement.cpp:
- (WebCore::HTMLPlugInImageElement::createElementRenderer): Remove custom YouTube code
- now that this logic is handled in the plugin replacement class.
- (WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree): Deleted.
- * html/HTMLPlugInImageElement.h:
- * html/shadow/YouTubeEmbedShadowElement.cpp:
- (WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
- (WebCore::YouTubeEmbedShadowElement::shadowPseudoId): Use correct pseudoID for the
- plugin replacement architecture.
- * html/shadow/YouTubeEmbedShadowElement.h:
- * platform/mac/WebCoreNSURLExtras.h:
- * platform/mac/WebCoreNSURLExtras.mm:
- (WebCore::unescapedQueryValue): Moved from WebKit/Misc/WebNSURLExtras.
- (WebCore::queryKeysAndValues): Ditto.
</del><ins>+ Test: webgl/many-contexts.html
</ins><span class="cx">
</span><del>-2014-05-13 Lucas Forschler <lforschler@apple.com>
</del><ins>+ * platform/graphics/GraphicsContext3D.h:
+ * platform/graphics/mac/GraphicsContext3DMac.mm: Limit number of active contexts to 16.
+ (WebCore::GraphicsContext3D::create):
+ (WebCore::GraphicsContext3D::~GraphicsContext3D):
</ins><span class="cx">
</span><del>- Merge r168439
</del><ins>+2014-05-12 Simon Fraser <simon.fraser@apple.com>
</ins><span class="cx">
</span><del>- 2014-05-07 Jeremy Jones <jeremyj@apple.com>
</del><ins>+ Build fix fix.
</ins><span class="cx">
</span><del>- HTMLMediaElement should exitFullscreen when view is removed from the window.
- https://bugs.webkit.org/show_bug.cgi?id=132506
</del><ins>+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
</ins><span class="cx">
</span><del>- Reviewed by Tim Horton.
</del><ins>+2014-05-12 Brent Fulgham <bfulgham@apple.com>
</ins><span class="cx">
</span><del>- * platform/ios/WebVideoFullscreenControllerAVKit.h:
- Add -requestExitFullscreen.
</del><ins>+ DataDetectorUI doesn't update with resize
+ https://bugs.webkit.org/show_bug.cgi?id=132830
+ <rdar://problem/16871179>
</ins><span class="cx">
</span><del>- * platform/ios/WebVideoFullscreenControllerAVKit.mm:
- (-[WebVideoFullscreenController requestExitFullscreen]):
- Forward request onto WebVideoFullscreenModelMediaElement.
</del><ins>+ Reviewed by Simon Fraser.
</ins><span class="cx">
</span><del>- * platform/ios/WebVideoFullscreenModelMediaElement.mm:
- (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
- Add some protection here since this may be called when not in fullscreen.
</del><ins>+ * editing/Editor.cpp:
+ (WebCore::Editor::scanSelectionForTelephoneNumbers): Add public, no-argument
+ version that can be called after layout changes.
+ (WebCore::Editor::didLayout): Reprocess telephone number data
+ since Ranges will have changed.
+ * editing/Editor.h:
+ * editing/FrameSelection.cpp:
+ (WebCore::FrameSelection::updateDataDetectorsForSelection): Added.
+ * editing/FrameSelection.h:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::performPostLayoutTasks): Ask the FrameSelection to update the
+ Range information for selected phone numbers.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+2014-05-12 Simon Fraser <simon.fraser@apple.com>
</ins><span class="cx">
</span><del>- Merge r168658
</del><ins>+ Fix the iOS build.
</ins><span class="cx">
</span><del>- 2014-05-12 Brady Eidson <beidson@apple.com>
</del><ins>+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
</ins><span class="cx">
</span><del>- Followup to "Teach Editor to support more direct replacement of a Node"
- <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
</del><ins>+2014-05-12 Simon Fraser <simon.fraser@apple.com>
</ins><span class="cx">
</span><del>- Pair programmed and pair reviewed by Brady Eidson and Darin Adler.
</del><ins>+ [iOS WK2] Fuzzy tiles on some sites on loading
+ https://bugs.webkit.org/show_bug.cgi?id=132847
+ <rdar://problem/16816178>
</ins><span class="cx">
</span><del>- * editing/mac/EditorMac.mm:
- (WebCore::maybeCopyNodeAttributesToFragment):
- (WebCore::Editor::replaceNodeFromPasteboard):
</del><ins>+ Reviewed by Benjamin Poulain.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Export WebCore::TileController::contentsScale() const
</ins><span class="cx">
</span><del>- Merge r168650
</del><ins>+ * WebCore.exp.in:
</ins><span class="cx">
</span><del>- 2014-05-12 Brady Eidson <beidson@apple.com>
</del><ins>+2014-05-12 Simon Fraser <simon.fraser@apple.com>
</ins><span class="cx">
</span><del>- Teach Editor to support more direct replacement of a Node
- <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
</del><ins>+ Add debug dumping for ViewportConfiguration
+ https://bugs.webkit.org/show_bug.cgi?id=132843
</ins><span class="cx">
</span><del>- Reviewed by Enrica Casucci.
</del><ins>+ Reviewed by Benjamin Poulain.
</ins><span class="cx">
</span><del>- The new method "Editor::replaceNodeFromPasteboard" has the intent that the new DocumentFragment
- from the pasteboard is as similar to the old Node as possible.
</del><ins>+ Add some TextStream-based dumping for ViewportConfiguration.
</ins><span class="cx">
</span><del>- In practice, the new DocumentFragment:
- 1 - Can represent a single node that's missing various attributes the original Node had.
- 2 - Can be an unwanted fragment of arbitrary depth when the replacement happens inside Mail.app
</del><ins>+ * page/ViewportConfiguration.cpp:
+ (WebCore::ViewportConfiguration::updateConfiguration):
+ (WebCore::ViewportConfigurationTextStream::ViewportConfigurationTextStream):
+ (WebCore::ViewportConfigurationTextStream::increaseIndent):
+ (WebCore::ViewportConfigurationTextStream::decreaseIndent):
+ (WebCore::dumpProperty):
+ (WebCore::ViewportConfigurationTextStream::writeIndent):
+ (WebCore::ViewportConfigurationTextStream::operator<<):
+ (WebCore::ViewportConfiguration::description):
+ (WebCore::ViewportConfiguration::dump):
+ * page/ViewportConfiguration.h:
</ins><span class="cx">
</span><del>- This fixes both of these issues.
</del><ins>+2014-05-12 Brady Eidson <beidson@apple.com>
</ins><span class="cx">
</span><del>- Add a MailBlockquoteHandling enum class for various Editor operations to pass through to the
- ReplaceSelectionCommand:
- * editing/Editor.cpp:
- (WebCore::Editor::handleTextEvent):
- (WebCore::Editor::pasteAsFragment):
- (WebCore::Editor::pasteWithPasteboard):
- (WebCore::Editor::replaceSelectionWithFragment):
- * editing/Editor.h:
</del><ins>+ Followup to "Teach Editor to support more direct replacement of a Node"
+ <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
</ins><span class="cx">
</span><del>- * dom/TextEvent.cpp:
- (WebCore::TextEvent::createForPlainTextPaste):
- (WebCore::TextEvent::createForFragmentPaste):
- (WebCore::TextEvent::TextEvent):
- * dom/TextEvent.h:
- (WebCore::TextEvent::mailBlockquoteHandling):
</del><ins>+ Pair programmed and pair reviewed by Brady Eidson and Darin Adler.
</ins><span class="cx">
</span><del>- * editing/ReplaceSelectionCommand.cpp:
- (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
- (WebCore::ReplaceSelectionCommand::doApply): Consider whether or not this particular Editor
- operation was meant to give special consideration to Mail's Blockquotes.
- * editing/ReplaceSelectionCommand.h:
</del><ins>+ * editing/mac/EditorMac.mm:
+ (WebCore::maybeCopyNodeAttributesToFragment):
+ (WebCore::Editor::replaceNodeFromPasteboard):
</ins><span class="cx">
</span><del>- * editing/efl/EditorEfl.cpp:
- (WebCore::Editor::pasteWithPasteboard):
- * editing/ios/EditorIOS.mm:
- (WebCore::Editor::pasteWithPasteboard):
</del><ins>+2014-05-12 Beth Dakin <bdakin@apple.com>
</ins><span class="cx">
</span><del>- * editing/mac/EditorMac.mm:
- (WebCore::Editor::pasteWithPasteboard):
- (WebCore::Editor::readSelectionFromPasteboard):
- (WebCore::maybeCopyNodeAttributesToFragment): If the new DocumentFragment represents a single HTML node
- with the same tag name is the original HTML node, copy over most attributes from the original node.
- (WebCore::Editor::replaceNodeFromPasteboard): Create the fragment, run it through maybeCopyNodeAttributesToFragment.
</del><ins>+ Content shadow layer needs to move in sync with the content layer
+ https://bugs.webkit.org/show_bug.cgi?id=132841
+ -and corresponding-
+ <rdar://problem/16641115>
</ins><span class="cx">
</span><del>- * WebCore.exp.in:
</del><ins>+ Reviewed by Simon Fraser.
</ins><span class="cx">
</span><del>-2014-05-14 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Now that the root content layer moves a little bit (for y scroll positions between
+ 0 and topContentInset), the shadow layer needs to move along with it since the
+ shadow layer should always have the same position as the root content layer.
</ins><span class="cx">
</span><del>- Merge r168565
</del><ins>+ Set the root state node’s shadow layer, and update the position whenever the root
+ content layer’s position is updated.
+ * page/scrolling/AsyncScrollingCoordinator.cpp:
+ (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
+ (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
</ins><span class="cx">
</span><del>- 2014-05-09 Joseph Pecoraro <pecoraro@apple.com>
</del><ins>+ Fetch the compositor’s layerForContentShadow().
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
+ * page/scrolling/ScrollingCoordinator.h:
</ins><span class="cx">
</span><del>- Web Inspector: Allow Remote Inspector to entitlement check UIProcess through WebProcess
- https://bugs.webkit.org/show_bug.cgi?id=132409
</del><ins>+ Hook up the contentShadowLayer in the state node.
+ * page/scrolling/ScrollingStateScrollingNode.cpp:
+ (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
+ (WebCore::ScrollingStateScrollingNode::setContentShadowLayer):
</ins><span class="cx">
</span><del>- Reviewed by Timothy Hatcher.
</del><ins>+ Hook it up in the ScrollingTreeNode as well. Move the layer whenever the m
+ _scrolledContentsLayer is moved.
+ * page/scrolling/ScrollingStateScrollingNode.h:
+ * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
+ * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
+ (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):
+ (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
</ins><span class="cx">
</span><del>- * inspector/InspectorClient.h:
- (WebCore::InspectorClient::parentProcessIdentifier): Deleted.
- * page/PageDebuggable.cpp:
- (WebCore::PageDebuggable::parentProcessIdentifier): Deleted.
- * page/PageDebuggable.h:
- pid per debuggable is no longer needed.
</del><ins>+ The shadow layer needs an anchor point now that we are moving it around.
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
</ins><span class="cx">
</span><del>-2014-05-09 Lucas Forschler <lforschler@apple.com>
</del><ins>+2014-05-12 Dirk Schulze <krit@webkit.org>
</ins><span class="cx">
</span><del>- Merge r168460
</del><ins>+ <svg> with opacity and compositing double-applies its opacity
+ https://bugs.webkit.org/show_bug.cgi?id=116856
</ins><span class="cx">
</span><del>- 2014-05-06 Myles C. Maxfield <mmaxfield@apple.com>
</del><ins>+ Reviewed by Simon Fraser.
</ins><span class="cx">
</span><del>- Dragging text from one paragraph to another does not render as expected
- https://bugs.webkit.org/show_bug.cgi?id=132633
</del><ins>+ The opacity is applied by the compositor. However, all SVG elements
+ create transparency layers on their own to apply opacity. So did
+ SVGSVGElement.
</ins><span class="cx">
</span><del>- Reviewed by Darin Adler and Ryosuke Niwa.
</del><ins>+ Added a check if the current element has a compositing layer and skip
+ creating transparency layer if it has.
</ins><span class="cx">
</span><del>- When we are dragging and dropping into a content editable field, we detect
- if we are trying to put a <p> into an existing <p>, and if so, split the
- outer <p> and insert the new <p> as its sibling. However, the outer <p>
- might not be editable, so we don't want to do any splitting and inserting
- at that location.
</del><ins>+ Test: svg/custom/composited-svg-with-opacity.html
</ins><span class="cx">
</span><del>- Test: editing/pasteboard/drag-drop-paragraph-crasher.html
</del><ins>+ * rendering/svg/SVGRenderingContext.cpp:
+ (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
</ins><span class="cx">
</span><del>- * editing/ReplaceSelectionCommand.cpp:
- (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
</del><ins>+2014-05-12 Brady Eidson <beidson@apple.com>
</ins><span class="cx">
</span><del>-2014-05-07 Lucas Forschler <lforschler@apple.com>
</del><ins>+ Teach Editor to support more direct replacement of a Node
+ <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834
</ins><span class="cx">
</span><del>- Merge r168440
</del><ins>+ Reviewed by Enrica Casucci.
</ins><span class="cx">
</span><del>- 2014-05-07 Simon Fraser <simon.fraser@apple.com>
</del><ins>+ The new method "Editor::replaceNodeFromPasteboard" has the intent that the new DocumentFragment
+ from the pasteboard is as similar to the old Node as possible.
</ins><span class="cx">
</span><del>- [iOS] Acclerated overflow-scrolling broken in WK1
- https://bugs.webkit.org/show_bug.cgi?id=132665
- <rdar://problem/16842909>
</del><ins>+ In practice, the new DocumentFragment:
+ 1 - Can represent a single node that's missing various attributes the original Node had.
+ 2 - Can be an unwanted fragment of arbitrary depth when the replacement happens inside Mail.app
</ins><span class="cx">
</span><del>- Reviewed by Tim Horton.
</del><ins>+ This fixes both of these issues.
</ins><span class="cx">
</span><del>- r168301 added a CALayer delegate to disable implicit animations,
- but for some layers we wrap them in UIViews (which are themselves
- layer delegates), so bad things happened.
</del><ins>+ Add a MailBlockquoteHandling enum class for various Editor operations to pass through to the
+ ReplaceSelectionCommand:
+ * editing/Editor.cpp:
+ (WebCore::Editor::handleTextEvent):
+ (WebCore::Editor::pasteAsFragment):
+ (WebCore::Editor::pasteWithPasteboard):
+ (WebCore::Editor::replaceSelectionWithFragment):
+ * editing/Editor.h:
</ins><span class="cx">
</span><del>- Fix by falling back to setting the null actions dictionary for
- layers with custom scrolling behavior.
</del><ins>+ * dom/TextEvent.cpp:
+ (WebCore::TextEvent::createForPlainTextPaste):
+ (WebCore::TextEvent::createForFragmentPaste):
+ (WebCore::TextEvent::TextEvent):
+ * dom/TextEvent.h:
+ (WebCore::TextEvent::mailBlockquoteHandling):
</ins><span class="cx">
</span><del>- * platform/graphics/GraphicsLayer.h:
- * platform/graphics/ca/mac/PlatformCALayerMac.h:
- * platform/graphics/ca/mac/PlatformCALayerMac.mm:
- (PlatformCALayerMac::updateCustomBehavior):
- * rendering/RenderLayerBacking.cpp:
- (WebCore::RenderLayerBacking::updateScrollingLayers):
</del><ins>+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::ReplaceSelectionCommand::ReplaceSelectionCommand):
+ (WebCore::ReplaceSelectionCommand::doApply): Consider whether or not this particular Editor
+ operation was meant to give special consideration to Mail's Blockquotes.
+ * editing/ReplaceSelectionCommand.h:
</ins><span class="cx">
</span><ins>+ * editing/efl/EditorEfl.cpp:
+ (WebCore::Editor::pasteWithPasteboard):
+ * editing/ios/EditorIOS.mm:
+ (WebCore::Editor::pasteWithPasteboard):
+
+ * editing/mac/EditorMac.mm:
+ (WebCore::Editor::pasteWithPasteboard):
+ (WebCore::Editor::readSelectionFromPasteboard):
+ (WebCore::maybeCopyNodeAttributesToFragment): If the new DocumentFragment represents a single HTML node
+ with the same tag name is the original HTML node, copy over most attributes from the original node.
+ (WebCore::Editor::replaceNodeFromPasteboard): Create the fragment, run it through maybeCopyNodeAttributesToFragment.
+
+ * WebCore.exp.in:
+
+2014-05-12 Alex Christensen <achristensen@webkit.org>
+
+ Progress on web timing.
+ https://bugs.webkit.org/show_bug.cgi?id=132574
+
+ Reviewed by Alexey Proskuryakov.
+
+ * CMakeLists.txt:
+ Removed ResourceLoadTiming.cpp.
+ * WebCore.exp.in:
+ Added linker symbols for ResourceLoadTiming.
+ * WebCore.xcodeproj/project.pbxproj:
+ * WebCore.vcxproj/WebCore.vcxproj:
+ * WebCore.vcxproj/WebCore.vcxproj.filters:
+ Removed ResourceLoadTiming.cpp.
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::buildObjectForTiming):
+ * inspector/protocol/Network.json:
+ Updated ResourceTiming structure.
+ * loader/DocumentLoadTiming.cpp:
+ (WebCore::DocumentLoadTiming::setNavigationStart):
+ * loader/DocumentLoadTiming.h:
+ Deleted unused setNavigationStart function.
+ * page/Performance.idl:
+ Updated spec URL.
+ * page/PerformanceResourceTiming.cpp:
+ (WebCore::PerformanceResourceTiming::domainLookupStart):
+ (WebCore::PerformanceResourceTiming::domainLookupEnd):
+ (WebCore::PerformanceResourceTiming::connectStart):
+ (WebCore::PerformanceResourceTiming::secureConnectionStart):
+ (WebCore::PerformanceResourceTiming::responseEnd):
+ Updated ResourceLoadTiming member variable names.
+ (WebCore::PerformanceResourceTiming::responseStart):
+ * page/PerformanceResourceTiming.h:
+ * page/PerformanceResourceTiming.idl:
+ Deleted responseStart because it is not in the spec.
+ * page/PerformanceTiming.cpp:
+ (WebCore::PerformanceTiming::domainLookupStart):
+ (WebCore::PerformanceTiming::domainLookupEnd):
+ (WebCore::PerformanceTiming::connectStart):
+ (WebCore::PerformanceTiming::secureConnectionStart):
+ (WebCore::PerformanceTiming::requestStart):
+ (WebCore::PerformanceTiming::responseStart):
+ Updated ResourceLoadTiming member variable names.
+ (WebCore::PerformanceTiming::resourceLoadTimeRelativeToAbsolute):
+ Use navigationStart as base for resource load times.
+ * page/PerformanceTiming.idl:
+ Updated spec URL.
+ * platform/network/HTTPParsers.h:
+ Removed unused class declarations.
+ * platform/network/ResourceHandle.h:
+ Moved soup request time from ResourceLoadTiming to ResourceHandle.
+ * platform/network/ResourceLoadTiming.cpp: Removed.
+ * platform/network/ResourceLoadTiming.h:
+ (WebCore::ResourceLoadTiming::deepCopy):
+ (WebCore::ResourceLoadTiming::operator==):
+ (WebCore::ResourceLoadTiming::ResourceLoadTiming):
+ Updated ResourceLoadTiming member variable names.
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::createNSURLConnection):
+ Collect timing data.
+ * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
+ (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
+ * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
+ (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
+ Save timing data to a ResourceLoadTiming on the ResourceResponse.
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::gotHeadersCallback):
+ (WebCore::restartedCallback):
+ (WebCore::milisecondsSinceRequest):
+ (WebCore::ResourceHandle::didStartRequest):
+ (WebCore::networkEventCallback):
+ (WebCore::createSoupMessageForHandleAndRequest):
+ (WebCore::ResourceHandle::sendPendingRequest):
+ Updated ResourceLoadTiming member variable names.
+ (WebCore::wroteBodyCallback): Deleted.
+
+2014-05-12 Dirk Schulze <krit@webkit.org>
+
+ SVG outline property is broken and inefficient
+ https://bugs.webkit.org/show_bug.cgi?id=113666
+
+ Reviewed by Dean Jackson.
+
+ Patch by Erik Dahlström backported from Blink.
+
+ "[SVG2] css 'outline' property should apply to svg elements
+
+ The 'outline' property was only partially working in SVG before
+ this patch, this makes it work on text and text content child
+ elements too.
+
+ This makes SVG render the outlines as part of the foreground paint
+ phase.
+
+ Partly based on Florin Malita's webkit patch https://bugs.webkitorg/show_bug.cgi?id=113666#c12."
+
+ Tests: svg/custom/outline-stacking-expected.svg
+ svg/custom/outline-stacking.svg
+ svg/custom/rgba-color-outline.svg
+ svg/text/text-outline-expected.svg
+ svg/text/text-outline-rgba.html
+ svg/text/text-outline.html
+ svg/text/textpath-outline-expected.svg
+ svg/text/textpath-outline.svg
+ svg/text/tspan-multiple-outline.svg
+ svg/text/tspan-outline-2-expected.svg
+ svg/text/tspan-outline-2.svg
+ svg/text/tspan-outline-expected.svg
+ svg/text/tspan-outline.html
+
+ * rendering/svg/RenderSVGContainer.cpp:
+ (WebCore::RenderSVGContainer::paint): Draw outline in forground
+ paint phase.
+ * rendering/svg/RenderSVGImage.cpp:
+ (WebCore::RenderSVGImage::paint): Draw outline in forground
+ paint phase.
+ * rendering/svg/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::paintReplaced): Pass paint offset.
+ * rendering/svg/RenderSVGShape.cpp:
+ (WebCore::RenderSVGShape::paint): Draw outline in forground
+ paint phase.
+ * rendering/svg/RenderSVGText.cpp:
+ (WebCore::RenderSVGText::paint): Draw outline in forground
+ paint phase.
+ * rendering/svg/SVGInlineFlowBox.cpp:
+ (WebCore::SVGInlineFlowBox::paint): Pass paint offset.
+ * rendering/svg/SVGInlineTextBox.cpp:
+ (WebCore::SVGInlineTextBox::paint): Draw outline in forground
+ paint phase.
+ * rendering/svg/SVGRootInlineBox.cpp:
+ (WebCore::SVGRootInlineBox::paint): Pass paint offset.
+
+2014-05-12 Beth Dakin <bdakin@apple.com>
+
+ Layer for bottom overhang area needs to be offset by the topContentInset
+ https://bugs.webkit.org/show_bug.cgi?id=132835
+ -and corresponding-
+ <rdar://problem/16641115>
+
+ Reviewed by Simon Fraser.
+
+ Push this layer down by the topContentInset in addition to the root layer height,
+ footer height, and header height.
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
+
+2014-05-09 Jon Honeycutt <jhoneycutt@apple.com>
+
+ REGRESSION (r167818): editing/inserting/typing-space-to-trigger-smart-link.html fails on WebKit1 bots
+
+ <https://bugs.webkit.org/show_bug.cgi?id=132207>
+ <rdar://problem/16730393>
+
+ Reverts the previous workaround in favor of a more specific fix for the
+ null dereference.
+
+ Reviewed by Darin Adler.
+
+ * editing/ApplyStyleCommand.cpp:
+ (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
+ Check whether the run's start and end are still in the document, as
+ removeConflictingInlineStyleFromRun() may have removed them.
+
+ * editing/CompositeEditCommand.cpp:
+ (WebCore::CompositeEditCommand::apply):
+ Reverted previous workaround.
+ (WebCore::ApplyEditCommand::ReentrancyGuard::isRecursiveCall): Deleted.
+ (WebCore::ApplyEditCommand::ReentrancyGuard::Scope::Scope): Deleted.
+ (WebCore::ApplyEditCommand::ReentrancyGuard::Scope::~Scope): Deleted.
+
+2014-05-12 Zan Dobersek <zdobersek@igalia.com>
+
+ Clean up CrossThreadTask
+ https://bugs.webkit.org/show_bug.cgi?id=132800
+
+ Reviewed by Darin Adler.
+
+ Remove the createCallbackTask overloads and the related CrossThreadTask helper classes.
+
+ Instead, have one simple CrossThreadTask class that derives from ScriptExecutionContext::Task.
+ Its templated constructor takes in the method and the variadic pack of parameters. The cross-thread
+ copies of the parameters are then bound to that method and the resulting bind expression is used to
+ initialize the base class. The bind expression is constructed with a placeholder for the
+ ScriptExecutionContext* parameter that's provided through ScriptExecutionContext::Task::performTask().
+
+ * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
+ (WebCore::ThreadableWebSocketChannelClientWrapper::didConnect):
+ (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessage):
+ (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryData):
+ (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmount):
+ (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshake):
+ (WebCore::ThreadableWebSocketChannelClientWrapper::didClose):
+ (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageError):
+ (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks):
+ * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
+ (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
+ (WebCore::WorkerThreadableWebSocketChannel::Peer::bufferedAmount):
+ (WebCore::WorkerThreadableWebSocketChannel::Peer::didConnect):
+ (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessage):
+ (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveBinaryData):
+ (WebCore::WorkerThreadableWebSocketChannel::Peer::didUpdateBufferedAmount):
+ (WebCore::WorkerThreadableWebSocketChannel::Peer::didStartClosingHandshake):
+ (WebCore::WorkerThreadableWebSocketChannel::Peer::didClose):
+ (WebCore::WorkerThreadableWebSocketChannel::Peer::didReceiveMessageError):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::initialize):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::connect):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::bufferedAmount):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::close):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::fail):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::suspend):
+ (WebCore::WorkerThreadableWebSocketChannel::Bridge::resume):
+ * dom/CrossThreadTask.h:
+ (WebCore::CrossThreadTask::CrossThreadTask):
+ (WebCore::CrossThreadTask1::CrossThreadTask1): Deleted.
+ (WebCore::CrossThreadTask1::performTask): Deleted.
+ (WebCore::CrossThreadTask2::CrossThreadTask2): Deleted.
+ (WebCore::CrossThreadTask2::performTask): Deleted.
+ (WebCore::CrossThreadTask3::CrossThreadTask3): Deleted.
+ (WebCore::CrossThreadTask3::performTask): Deleted.
+ (WebCore::CrossThreadTask4::CrossThreadTask4): Deleted.
+ (WebCore::CrossThreadTask4::performTask): Deleted.
+ (WebCore::CrossThreadTask5::CrossThreadTask5): Deleted.
+ (WebCore::CrossThreadTask5::performTask): Deleted.
+ (WebCore::CrossThreadTask6::CrossThreadTask6): Deleted.
+ (WebCore::CrossThreadTask6::performTask): Deleted.
+ (WebCore::CrossThreadTask7::CrossThreadTask7): Deleted.
+ (WebCore::CrossThreadTask7::performTask): Deleted.
+ (WebCore::CrossThreadTask8::CrossThreadTask8): Deleted.
+ (WebCore::CrossThreadTask8::performTask): Deleted.
+ (WebCore::createCallbackTask): Deleted.
+ * fileapi/FileReader.cpp:
+ (WebCore::FileReader::abort):
+ * loader/WorkerThreadableLoader.cpp:
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailAccessControlCheck):
+ (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):
+ * loader/WorkerThreadableLoader.h:
+ * loader/cache/MemoryCache.cpp:
+ (WebCore::MemoryCache::removeRequestFromCache):
+ (WebCore::MemoryCache::removeRequestFromSessionCaches):
+ * workers/DefaultSharedWorkerRepository.cpp:
+ (WebCore::SharedWorkerProxy::postExceptionToWorkerObject):
+ (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
+ * workers/WorkerMessagingProxy.cpp:
+ (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
+ (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
+ (WebCore::WorkerMessagingProxy::connectToInspector):
+ (WebCore::WorkerMessagingProxy::disconnectFromInspector):
+ (WebCore::WorkerMessagingProxy::sendMessageToInspector):
+
+2014-05-12 Alex Christensen <achristensen@webkit.org>
+
+ Implement EXT_shader_texture_lod in WebGL.
+ https://bugs.webkit.org/show_bug.cgi?id=128985
+ <rdar://problem/16111396>
+
+ Based on Chromium patch by bajones@chromium.org.
+ https://src.chromium.org/viewvc/blink?revision=171465&view=revision
+
+ Reviewed by Dean Jackson.
+
+ Test: webgl/conformance/extensions/ext-shader-texture-lod.html
+
+ * CMakeLists.txt:
+ * DerivedSources.cpp:
+ * DerivedSources.make:
+ * WebCore.vcxproj/WebCore.vcxproj:
+ * WebCore.vcxproj/WebCore.vcxproj.filters:
+ * WebCore.xcodeproj/project.pbxproj:
+ Added new EXTShaderTextureLOD files.
+ * bindings/js/JSWebGLRenderingContextCustom.cpp:
+ (WebCore::toJS):
+ Added EXTShaderTextureLOD.
+ * html/canvas/EXTShaderTextureLOD.cpp: Added.
+ (WebCore::EXTShaderTextureLOD::EXTShaderTextureLOD):
+ (WebCore::EXTShaderTextureLOD::~EXTShaderTextureLOD):
+ (WebCore::EXTShaderTextureLOD::getName):
+ * html/canvas/EXTShaderTextureLOD.h: Added.
+ * html/canvas/EXTShaderTextureLOD.idl: Added.
+ * html/canvas/WebGLExtension.h:
+ Added EXTShaderTextureLODName.
+ * html/canvas/WebGLObject.cpp:
+ Removed unused inclusion of EXTTextureFilterAnisotropic.h.
+ * html/canvas/WebGLRenderingContext.cpp:
+ (WebCore::WebGLRenderingContext::getExtension):
+ Added EXT_shader_texture_lod.
+ * html/canvas/WebGLRenderingContext.h:
+ Added a EXTShaderTextureLOD member variable.
+
+2014-05-12 Martin Hock <mhock@apple.com>
+
+ Disallow drag and drop of non-displayable resources.
+ https://bugs.webkit.org/show_bug.cgi?id=132745
+ <rdar://problem/10562662>
+
+ Reviewed by Alexey Proskuryakov.
+
+ Test: http/tests/security/drag-drop-local-file.html
+
+ * page/DragController.cpp:
+ (WebCore::DragController::startDrag):
+
+2014-05-12 Jozsef Berta <jberta.u-szeged@partner.samsung.com>
+
+ WinCairo buildfix after r168611
+ https://bugs.webkit.org/show_bug.cgi?id=132825
+
+ Reviewed by Darin Adler.
+
+ * platform/network/curl/CurlDownload.cpp:
+ (WebCore::CurlDownloadManager::downloadThread):
+ (WebCore::CurlDownload::didReceiveHeader):
+ (WebCore::CurlDownload::didReceiveData):
+
+2014-05-12 Antti Koivisto <antti@apple.com>
+
+ REGRESSION (r159560): Text clips on tile border if line-height < font-size
+ https://bugs.webkit.org/show_bug.cgi?id=132822
+
+ Reviewed by Andreas Kling.
+
+ The first line of simple line layout run range was miscomputed.
+
+ Test: fast/text/simple-lines-range-low-line-height.html
+
+ * rendering/SimpleLineLayoutResolver.h:
+ (WebCore::SimpleLineLayout::RunResolver::lineIndexForHeight):
+
+ Lines may overlap if line-height < font-size. Apply different adjustment when searching for range begin
+ so that overflowing earlier lines are taken into account.
+
+ (WebCore::SimpleLineLayout::RunResolver::rangeForRect):
+
+2014-05-12 Radu Stavila <stavila@adobe.com>
+
+ Invalid information remaining in lineToRegion map of RenderFlowThread.
+ https://bugs.webkit.org/show_bug.cgi?id=132690
+
+ Reviewed by Antti Koivisto.
+
+ Test: fast/multicol/newmulticol/lines-region-map-crash.html
+
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::deleteLines):
+ * rendering/RenderFlowThread.h:
+
+2014-05-12 Zan Dobersek <zdobersek@igalia.com>
+
+ Clean up MainThreadTask
+ https://bugs.webkit.org/show_bug.cgi?id=132799
+
+ Reviewed by Darin Adler.
+
+ Only have one simple MainThreadTask class that derives from std::function<void ()>.
+ Its templated constructor takes in the method and a variadic pack of parameters.
+ The cross-thread copies of the parameter are then bound to the given method through
+ std::bind(), with the resulting bind expression used to initialize the base
+ std::function<void ()> class.
+
+ The WebCore::callOnMainThread() functions and the helper classes are removed in favor
+ of passing MainThreadTask rvalues directly to WTF::callOnMainThread().
+
+ * fileapi/AsyncFileStream.cpp:
+ (WebCore::AsyncFileStream::startOnFileThread):
+ (WebCore::AsyncFileStream::stopOnFileThread):
+ (WebCore::AsyncFileStream::getSizeOnFileThread):
+ (WebCore::AsyncFileStream::openForReadOnFileThread):
+ (WebCore::AsyncFileStream::openForWriteOnFileThread):
+ (WebCore::AsyncFileStream::readOnFileThread):
+ (WebCore::AsyncFileStream::writeOnFileThread):
+ (WebCore::AsyncFileStream::truncateOnFileThread):
+ * platform/MainThreadTask.h:
+ (WebCore::MainThreadTask::MainThreadTask):
+ (WebCore::MainThreadTaskBase::MainThreadTaskBase): Deleted.
+ (WebCore::MainThreadTaskBase::~MainThreadTaskBase): Deleted.
+ (WebCore::MainThreadTask1::create): Deleted.
+ (WebCore::MainThreadTask1::MainThreadTask1): Deleted.
+ (WebCore::MainThreadTask2::create): Deleted.
+ (WebCore::MainThreadTask2::MainThreadTask2): Deleted.
+ (WebCore::MainThreadTask3::create): Deleted.
+ (WebCore::MainThreadTask3::MainThreadTask3): Deleted.
+ (WebCore::MainThreadTask4::create): Deleted.
+ (WebCore::MainThreadTask4::MainThreadTask4): Deleted.
+ (WebCore::MainThreadTask5::create): Deleted.
+ (WebCore::MainThreadTask5::MainThreadTask5): Deleted.
+ (WebCore::MainThreadTask6::create): Deleted.
+ (WebCore::MainThreadTask6::MainThreadTask6): Deleted.
+ (WebCore::MainThreadTask7::create): Deleted.
+ (WebCore::MainThreadTask7::MainThreadTask7): Deleted.
+ (WebCore::MainThreadTask8::create): Deleted.
+ (WebCore::MainThreadTask8::MainThreadTask8): Deleted.
+ (WebCore::executeMainThreadTask): Deleted.
+ (WebCore::callOnMainThread): Deleted.
+
+2014-05-11 Zan Dobersek <zdobersek@igalia.com>
+
+ Simplify FileThread::Task usage
+ https://bugs.webkit.org/show_bug.cgi?id=132798
+
+ Reviewed by Darin Adler.
+
+ Remove the createFileThreadTask functions and the related FileThreadTask helper classes.
+
+ Instead, the FileThread::Task class now has a templated constructor that takes in a pointer
+ to the object instance, a method, and a variadic pack of parameters. The pointer and the
+ cross-thread copies of all the parameters are then bound to the given method through std::bind().
+
+ Instead of createFileThreadTask, std::make_unique<>() should be used to construct unique pointers
+ that wrap FileThread::Task objects.
+
+ * WebCore.vcxproj/WebCore.vcxproj:
+ * WebCore.vcxproj/WebCore.vcxproj.filters:
+ * WebCore.xcodeproj/project.pbxproj:
+ * fileapi/AsyncFileStream.cpp:
+ (WebCore::AsyncFileStream::create):
+ (WebCore::AsyncFileStream::stop):
+ (WebCore::AsyncFileStream::getSize):
+ (WebCore::AsyncFileStream::openForRead):
+ (WebCore::AsyncFileStream::openForWrite):
+ (WebCore::AsyncFileStream::close):
+ (WebCore::AsyncFileStream::read):
+ (WebCore::AsyncFileStream::write):
+ (WebCore::AsyncFileStream::truncate):
+ * fileapi/FileThread.h:
+ (WebCore::FileThread::Task::Task):
+ (WebCore::FileThread::Task::performTask):
+ (WebCore::FileThread::Task::~Task): Deleted.
+ * fileapi/FileThreadTask.h: Removed.
+
+2014-05-11 Benjamin Poulain <benjamin@webkit.org>
+
+ Do not create a temporary string to append the SVGLength's unit
+ https://bugs.webkit.org/show_bug.cgi?id=132807
+
+ Reviewed by Geoffrey Garen.
+
+ * svg/SVGLength.cpp:
+ (WebCore::lengthTypeToString):
+ The caller just append the string to a number string. The function
+ lengthTypeToString() was creating a new WTF::String from scratch,
+ copied the characters to make a new string, and destroyed the WTF::String.
+
+ Instead, just append the string literal.
+
+2014-05-11 Yusuke Suzuki <utatane.tea@gmail.com>
+
+ CSS JIT: reduce cost of computing backtracking height
+ https://bugs.webkit.org/show_bug.cgi?id=132546
+
+ Reviewed by Benjamin Poulain.
+
+ Because compiler previously compute backtracking height for
+ previous child fragment, by leveraging this, we can limit the
+ `maxPrefixSize` for `computeBacktrackingHeightFromDescendant`.
+
+ For example, consider selector "c>a>b>d>a>b e"'s descendant chain,
+ "c>a>b>d>a>b".
+
+ At the <a> position, we have matching pattern [b, a, d, b, a] and
+ calculate the backtracking height by following method.
+
+ pattern: [b, a, d, b, a]
+ candidate0: [b, a, d, b] => Not matched.
+ candidate1: [b, a, d] => Not matched.
+ candidate2: [b, a] => Matched against the pattern.
+
+ At this time, first candidate0's pattern size is `pattern.size() - 1`.
+ And get backtracking height from descendant 3, that is
+ `pattern.size() - candidate.size()`, `5 - 2`.
+
+ And next, at the <c> position, we calcucate the backtracking height
+ for this pattern.
+
+ pattern: [b, a, d, b, a, c]
+ candidate0: [b, a, d, b, a] => Not matched.
+ candidate1: [b, a, d, b] => Not matched.
+ candidate2: [b, a, d] => Not matched.
+ candidate3: [b, a] => Not matched.
+ candidate4: [b] => Not matched.
+ candidate5: [] => Matched against the pattern.
+
+ Then, we get the backtracking height, which is 6 (6 - 0).
+ However, in the above case, we already know that attempts from candidate0
+ to candidate1 always fail, since parts of these are already tested at
+ the <b> position trial and we know they don't match.
+
+ So in this case, we should start this computation from candidate2,
+ such as,
+
+ pattern: [b, a, d, b, a, c]
+ candidate2: [b, a, d] => Not matched.
+ candidate3: [b, a] => Not matched.
+ candidate4: [b] => Not matched.
+ candidate5: [] => Matched against the pattern.
+
+ We can start computation with candidate size
+ `pattern.size() - previousChildFragmentBacktrackingHeight`.
+ In this example, `pattern.size()` is 6 and
+ `previousChildFragmentBacktrackingHeight` is 3, so candidate size is
+ 3, that is candidate2.
+
+ * cssjit/SelectorCompiler.cpp:
+ (WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant):
+ (WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
+
+2014-05-11 Beth Dakin <bdakin@apple.com>
+
+ Headers and footers are not positioned correctly with topContentInset
+ https://bugs.webkit.org/show_bug.cgi?id=132787
+ -and corresponding-
+ <rdar://problem/16641115>
+
+ Reviewed by Tim Horton.
+
+ Headers and footers need to take the inset into account, and they also need to
+ factor in the fact that the root layer moves around now too.
+
+ The existing yPositionForRootContentLayer() is actually the right calculation for
+ the header layer. The root content layer wants that value, but pushed down by the
+ header height. Now there are static functions for both of them and the footer to
+ avoid duplicated code in the three spots where we need this information.
+ * page/FrameView.cpp:
+ (WebCore::FrameView::yPositionForHeaderLayer):
+ (WebCore::FrameView::yPositionForRootContentLayer):
+ (WebCore::FrameView::yPositionForFooterLayer):
+ * page/FrameView.h:
+
+ Use the static functions to compute the layer positions.
+ * page/scrolling/AsyncScrollingCoordinator.cpp:
+ (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
+
+ How did headers ever work with this bug?? I don’t know. We need to return that
+ layer.
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::headerLayerForFrameView):
+
+ Use the static functions to compute the layer positions.
+ * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
+ (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateRootLayerPosition):
+ (WebCore::RenderLayerCompositor::updateLayerForHeader):
+ (WebCore::RenderLayerCompositor::updateLayerForFooter):
+
+2014-05-11 Zalan Bujtas <zalan@apple.com>
+
+ Subpixel rendering[iOS]: <select> decoration is misaligned when the renderer is on subpixel position.
+ https://bugs.webkit.org/show_bug.cgi?id=132779
+ <rdar://problem/16631071>
+
+ Reviewed by Simon Fraser.
+
+ Push <select> theme decoration's rect to device pixel position to ensure
+ that the theme bounds are aligned with the renderer's bounds. (in painting terms)
+ However, as the decoration code paints multiple items, they all need to use snapped
+ final coordinates for painting : tracked here https://bugs.webkit.org/show_bug.cgi?id=132780
+ This patch also changes the padding values for <select> [iOS] to compensate for the integer
+ truncation that happened before subpixel.
+
+ Not testable.
+
+ * css/html.css:
+ (select):
+ * platform/efl/RenderThemeEfl.cpp:
+ (WebCore::RenderThemeEfl::paintMenuListButtonDecorations):
+ * platform/efl/RenderThemeEfl.h:
+ * platform/gtk/RenderThemeGtk.cpp:
+ (WebCore::RenderThemeGtk::paintMenuListButtonDecorations):
+ * platform/gtk/RenderThemeGtk.h:
+ * rendering/RenderTheme.cpp:
+ (WebCore::RenderTheme::paintDecorations):
+ * rendering/RenderTheme.h:
+ (WebCore::RenderTheme::paintMenuListButtonDecorations):
+ * rendering/RenderThemeIOS.h:
+ * rendering/RenderThemeIOS.mm:
+ (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
+ * rendering/RenderThemeMac.h:
+ * rendering/RenderThemeMac.mm:
+ (WebCore::RenderThemeMac::paintMenuListButtonDecorations):
+ * rendering/RenderThemeSafari.cpp:
+ (WebCore::RenderThemeSafari::paintMenuListButtonDecorations):
+ * rendering/RenderThemeSafari.h:
+ * rendering/RenderThemeWin.cpp:
+ (WebCore::RenderThemeWin::paintMenuList):
+ (WebCore::RenderThemeWin::paintMenuListButtonDecorations):
+ * rendering/RenderThemeWin.h:
+
+2014-05-11 Zan Dobersek <zdobersek@igalia.com>
+
+ Move Source/WebCore/workers/ code to std::unique_ptr
+ https://bugs.webkit.org/show_bug.cgi?id=132401
+
+ Reviewed by Darin Adler.
+
+ Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/workers (and related places)
+ with std::unique_ptr.
+
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::setTimeout):
+ (WebCore::JSDOMWindow::setInterval):
+ * bindings/js/JSWorkerGlobalScopeCustom.cpp:
+ (WebCore::JSWorkerGlobalScope::setTimeout):
+ (WebCore::JSWorkerGlobalScope::setInterval):
+ * bindings/js/ScheduledAction.cpp:
+ (WebCore::ScheduledAction::create):
+ * bindings/js/ScheduledAction.h:
+ * page/DOMTimer.cpp:
+ (WebCore::DOMTimer::DOMTimer):
+ (WebCore::DOMTimer::install):
+ (WebCore::DOMTimer::fired):
+ (WebCore::DOMTimer::didStop):
+ * page/DOMTimer.h:
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::setTimeout):
+ (WebCore::DOMWindow::setInterval):
+ * page/DOMWindow.h:
+ * workers/WorkerEventQueue.h:
+ * workers/WorkerGlobalScope.cpp:
+ (WebCore::WorkerGlobalScope::WorkerGlobalScope):
+ (WebCore::WorkerGlobalScope::setTimeout):
+ (WebCore::WorkerGlobalScope::setInterval):
+ * workers/WorkerGlobalScope.h:
+ (WebCore::WorkerGlobalScope::clearScript):
+ * workers/WorkerLoaderProxy.h:
+ * workers/WorkerMessagingProxy.h:
+ * workers/WorkerRunLoop.cpp:
+ (WebCore::WorkerRunLoop::WorkerRunLoop):
+ * workers/WorkerRunLoop.h:
+ * workers/WorkerScriptLoader.cpp:
+ (WebCore::WorkerScriptLoader::loadSynchronously):
+ (WebCore::WorkerScriptLoader::loadAsynchronously):
+ (WebCore::WorkerScriptLoader::createResourceRequest):
+ * workers/WorkerScriptLoader.h:
+ * workers/WorkerThread.cpp:
+ (WebCore::WorkerThread::WorkerThread):
+ (WebCore::WorkerThread::workerThread):
+ (WebCore::WorkerThreadStartupData::create): Deleted.
+ * workers/WorkerThread.h:
+
+2014-05-09 Myles C. Maxfield <litherum@gmail.com>
+
+ [Mac] [iOS] Underlines are too low
+ https://bugs.webkit.org/show_bug.cgi?id=132770
+
+ Reviewed by Darin Adler.
+
+ computeUnderlineOffset() inside InlineTextBox.cpp lowers underlines from text
+ baseline by a value that is proportional to the font size. However, this
+ lowering was done a second time in
+ GraphicsContext::computeLineBoundsAndAntialiasingModeForText(). This patch
+ removes this second, platform-dependent lowering.
+
+ This duplication was caused by merging iOS into open source, where iOS used
+ the GraphicsContext approach and open source used the InlineTextBox approach.
+
+ Covered by fast/css3-text/css3-text-decoration/text-decoration-thickness.html.
+
+ * platform/graphics/GraphicsContext.cpp:
+ (WebCore::GraphicsContext::computeLineBoundsAndAntialiasingModeForText): Remove
+ redundant lowering code
+ * rendering/InlineTextBox.cpp:
+ (WebCore::InlineTextBox::paintDecoration): Clean up textDecorationThickness
+ variable
+
+2014-05-11 Antti Koivisto <antti@apple.com>
+
+ Text with simple line layout not getting pushed below float when there is not enough space for it
+ https://bugs.webkit.org/show_bug.cgi?id=126991
+
+ Reviewed by Andreas Kling.
+
+ Tests: fast/text/simple-lines-intruding-wide-float-dynamic.html
+ fast/text/simple-lines-intruding-wide-float.html
+
+ * rendering/RenderBlockFlow.cpp:
+ (WebCore::RenderBlockFlow::markLinesDirtyInBlockRange):
+
+ Invalidate the line layout path when floats change. We need to check SimpleLineLayout::canUseFor again as
+ intruding floats may make this flow ineligible to use the path.
+
+ * rendering/RenderBlockFlow.h:
+ (WebCore::RenderBlockFlow::floatingObjectSet):
+ * rendering/SimpleLineLayout.cpp:
+ (WebCore::SimpleLineLayout::canUseFor):
+
+ Test the top positions of all floats for case that would push text below the float instead of just testing
+ the first line. We may have floats in the middle of the paragraph too.
+
+2014-05-11 peavo@outlook.com <peavo@outlook.com>
+
+ WinCairo crashes on acid3 test
+ https://bugs.webkit.org/show_bug.cgi?id=131364
+
+ Reviewed by Brent Fulgham.
+
+ When the 304 (Not-modified) response is received, the Curl backend should look up the cached response,
+ and call the client method didReceiveResponse with the cached response, instead of the 304 response.
+ Otherwise the response will contain an empty MIME type, which causes the request to be cancelled, and the client deleted.
+ When the Curl cache manager then accesses the client afterwards, it is deleted, and we crash.
+
+ * platform/network/curl/CurlCacheManager.cpp:
+ (WebCore::CurlCacheManager::didReceiveResponse): Return early if request is cancelled.
+ (WebCore::CurlCacheManager::getCachedResponse): Added method to get cached response.
+ * platform/network/curl/CurlCacheManager.h: Ditto.
+ * platform/network/curl/ResourceHandleManager.cpp:
+ (WebCore::headerCallback): When 304 response is received, look up cached response, and use it.
+
+2014-05-10 Tim Horton <timothy_horton@apple.com>
+
+ [WKWebView _updateScrollViewBackground] churns UI-and-CGColors while repainting
+ https://bugs.webkit.org/show_bug.cgi?id=132793
+ <rdar://problem/16877870>
+
+ Reviewed by Dan Bernstein.
+
+ * WebCore.exp.in:
+ Export a Color convenience function.
+
+2014-05-10 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r168578.
+ https://bugs.webkit.org/show_bug.cgi?id=132789
+
+ Speculative rollout since this appears to break PLT3.
+ (Requested by kling on #webkit).
+
+ Reverted changeset:
+
+ "Move Source/WebCore/workers/ code to std::unique_ptr"
+ https://bugs.webkit.org/show_bug.cgi?id=132401
+ http://trac.webkit.org/changeset/168578
+
+2014-05-10 Darin Adler <darin@apple.com>
+
+ REGRESSION (r166853): fast/preloader/document-write.html is very flaky
+ https://bugs.webkit.org/show_bug.cgi?id=130942
+
+ Reviewed by Anders Carlsson.
+
+ * style/StyleResolveTree.cpp:
+ (WebCore::Style::suspendMemoryCacheClientCalls): Use a RefPtr to the main
+ frame as a weak pointer to a Page that will work unless the page is destroyed.
+ The old code tried to do it with a RefPtr to a document, but as the FIXME
+ points out, that won't work if the document is disassociated with its frame.
+
+2014-05-10 Anders Carlsson <andersca@apple.com>
+
+ Block exceptions when trying to convert attributed strings to RTF and RTFD
+ https://bugs.webkit.org/show_bug.cgi?id=132778
+ <rdar://problem/16675805>
+
+ Reviewed by Darin Adler.
+
+ When the iOS WebHTMLConverter was upstreamed, converting some attributed strings to RTF and RTFD
+ started throwing Objective-C exceptions (see <rdar://problem/16876920>).
+
+ In WebKit2, we now crash on unhandled exceptions so work around that crash by adding exception blocking macros.
+
+ * editing/ios/EditorIOS.mm:
+ (WebCore::dataInRTFDFormat):
+ (WebCore::dataInRTFFormat):
+ * editing/mac/EditorMac.mm:
+ (WebCore::dataInRTFDFormat):
+ (WebCore::dataInRTFFormat):
+
+2014-05-10 Zan Dobersek <zdobersek@igalia.com>
+
+ Move Source/WebCore/workers/ code to std::unique_ptr
+ https://bugs.webkit.org/show_bug.cgi?id=132401
+
+ Reviewed by Andreas Kling.
+
+ Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/workers (and related places)
+ with std::unique_ptr.
+
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::setTimeout):
+ (WebCore::JSDOMWindow::setInterval):
+ * bindings/js/JSWorkerGlobalScopeCustom.cpp:
+ (WebCore::JSWorkerGlobalScope::setTimeout):
+ (WebCore::JSWorkerGlobalScope::setInterval):
+ * bindings/js/ScheduledAction.cpp:
+ (WebCore::ScheduledAction::create):
+ * bindings/js/ScheduledAction.h:
+ * page/DOMTimer.cpp:
+ (WebCore::DOMTimer::DOMTimer):
+ (WebCore::DOMTimer::install):
+ (WebCore::DOMTimer::fired):
+ (WebCore::DOMTimer::didStop):
+ * page/DOMTimer.h:
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::setTimeout):
+ (WebCore::DOMWindow::setInterval):
+ * page/DOMWindow.h:
+ * workers/WorkerEventQueue.h:
+ * workers/WorkerGlobalScope.cpp:
+ (WebCore::WorkerGlobalScope::WorkerGlobalScope):
+ (WebCore::WorkerGlobalScope::setTimeout):
+ (WebCore::WorkerGlobalScope::setInterval):
+ * workers/WorkerGlobalScope.h:
+ (WebCore::WorkerGlobalScope::clearScript):
+ * workers/WorkerLoaderProxy.h:
+ * workers/WorkerMessagingProxy.h:
+ * workers/WorkerRunLoop.cpp:
+ (WebCore::WorkerRunLoop::WorkerRunLoop):
+ * workers/WorkerRunLoop.h:
+ * workers/WorkerScriptLoader.cpp:
+ (WebCore::WorkerScriptLoader::loadSynchronously):
+ (WebCore::WorkerScriptLoader::loadAsynchronously):
+ (WebCore::WorkerScriptLoader::createResourceRequest):
+ * workers/WorkerScriptLoader.h:
+ * workers/WorkerThread.cpp:
+ (WebCore::WorkerThread::WorkerThread):
+ (WebCore::WorkerThread::workerThread):
+ (WebCore::WorkerThreadStartupData::create): Deleted.
+ * workers/WorkerThread.h:
+
+2014-05-09 Dean Jackson <dino@apple.com>
+
+ -webkit-filter prevents rendering at retina scale
+ https://bugs.webkit.org/show_bug.cgi?id=93471
+
+ Reviewed by Dirk Schulze.
+
+ Implement 2x support for filters that go through
+ the -webkit-filter property. This includes all
+ shorthand filters, and any referenced SVG-style filters
+ (as long as they use only the supported subset of
+ operations - basically the same as is exposed for
+ the shorthands).
+
+ Tests: fast/hidpi/filters-blur.html
+ fast/hidpi/filters-hue-rotate.html
+ fast/hidpi/filters-invert.html
+ fast/hidpi/filters-multiple.html
+ fast/hidpi/filters-reference.html
+ fast/hidpi/filters-shadow.html
+
+ * platform/graphics/cg/ImageBufferCG.cpp:
+ (WebCore::ImageBuffer::getUnmultipliedImageData): Scale the source rectangle if the method was
+ called using LogicalCoordinates.
+ (WebCore::ImageBuffer::getPremultipliedImageData): Ditto.
+ (WebCore::ImageBuffer::putByteArray): Ditto.
+
+ * platform/graphics/filters/FEDropShadow.cpp:
+ (WebCore::FEDropShadow::platformApplySoftware): Make sure to scale the blur radius by the filter
+ resolution, and call the byte-array methods with the native coordinate system.
+ * platform/graphics/filters/FEGaussianBlur.cpp:
+ (WebCore::FEGaussianBlur::calculateUnscaledKernelSize): Fix typo.
+ (WebCore::FEGaussianBlur::platformApplySoftware): Scale the kernel and paint rectangles
+ by the filter scale.
+
+ * platform/graphics/filters/Filter.h:
+ (WebCore::Filter::Filter): Initialise the filter scale.
+ (WebCore::Filter::filterScale): New property which reflects the mapping between logical pixels
+ and device pixels.
+ (WebCore::Filter::setFilterScale):
+
+ * platform/graphics/filters/FilterEffect.cpp:
+ (WebCore::FilterEffect::asImageBuffer): Make sure buffer creation takes scale into account.
+ (WebCore::FilterEffect::asUnmultipliedImage): Ditto.
+ (WebCore::FilterEffect::asPremultipliedImage): Ditto.
+ (WebCore::FilterEffect::copyImageBytes): Scale any incoming regions if they are talking about
+ device pixels rather than logical pixels.
+ (WebCore::FilterEffect::copyUnmultipliedImage): Ditto.
+ (WebCore::FilterEffect::copyPremultipliedImage): Ditto.
+ (WebCore::FilterEffect::createImageBufferResult): Take scale into account when creating byte array.
+ (WebCore::FilterEffect::createUnmultipliedImageResult): Ditto.
+ (WebCore::FilterEffect::createPremultipliedImageResult): Ditto.
+
+ * rendering/FilterEffectRenderer.cpp:
+ (WebCore::FilterEffectRenderer::allocateBackingStoreIfNeeded): Pass filter scale into buffer creation.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateOrRemoveFilterEffectRenderer): Make sure to set the filter scale to
+ the device scale factor, and notice if we ever change scales.
+
+2014-05-10 Praveen R Jadhav <praveen.j@samsung.com>
+
+ [MediaStream] Rename NavigatorMediaStream as NavigatorUserMedia.
+ https://bugs.webkit.org/show_bug.cgi?id=132734
+
+ Reviewed by Eric Carlson.
+
+ Spec: http://www.w3.org/TR/mediacapture-streams/#navigatorusermedia
+
+ This patch replaces 'NavigatorMediaStream' with 'NavigatorUserMedia'
+ throughout the code to be consistent with W3C specifications.
+ Test cases remain the same as 'Navigator' implies 'NavigatorUserMedia'.
+
+ * CMakeLists.txt: Compiles NavigatorUserMedia.cpp
+ * DerivedSources.make: Compiles NavigatorUserMedia.idl
+ * Modules/mediastream/NavigatorMediaStream.cpp: Removed.
+ * Modules/mediastream/NavigatorMediaStream.h: Removed.
+ * Modules/mediastream/NavigatorMediaStream.idl: Removed.
+ * Modules/mediastream/NavigatorUserMedia.cpp: Added.
+ (WebCore::NavigatorUserMedia::NavigatorUserMedia):
+ (WebCore::NavigatorUserMedia::~NavigatorUserMedia):
+ (WebCore::NavigatorUserMedia::webkitGetUserMedia):
+ * Modules/mediastream/NavigatorUserMedia.h: Added.
+ * Modules/mediastream/NavigatorUserMedia.idl: Added.
+ * WebCore.xcodeproj/project.pbxproj:
+ * bindings/js/JSNavigatorCustom.cpp:
+ (WebCore::JSNavigator::webkitGetUserMedia): NavigatorUserMedia
+ class is used instead of NavigatorMediaStream.
+
+2014-05-10 Zalan Bujtas <zalan@apple.com>
+
+ Subpixel rendering: Empty rects should remain empty after integrally enclosing them.
+ https://bugs.webkit.org/show_bug.cgi?id=132753
+ <rdar://problem/16846801>
+
+ Reviewed by Simon Fraser.
+
+ This patch ensures that empty LayoutRects remain empty after converting to integral enclosing rect.
+ LayoutRects with fractional position get expanded even if they are empty. This makes rectangle
+ operations unreliable and can result in undesired side effects.
+
+ No testable/covered by existing tests.
+
+ * platform/graphics/LayoutRect.cpp:
+ (WebCore::enclosingIntRect):
+ * rendering/InlineTextBox.cpp:
+ (WebCore::InlineTextBox::localSelectionRect):
+ (WebCore::InlineTextBox::paintDocumentMarker):
+ (WebCore::InlineTextBox::paintTextMatchMarker):
+ (WebCore::InlineTextBox::computeRectForReplacementMarker):
+ (WebCore::integralEnclosingRectForSelection): Deleted.
+
+2014-05-09 Joseph Pecoraro <pecoraro@apple.com>
+
+ Web Inspector: Allow Remote Inspector to entitlement check UIProcess through WebProcess
+ https://bugs.webkit.org/show_bug.cgi?id=132409
+
+ Reviewed by Timothy Hatcher.
+
+ * inspector/InspectorClient.h:
+ (WebCore::InspectorClient::parentProcessIdentifier): Deleted.
+ * page/PageDebuggable.cpp:
+ (WebCore::PageDebuggable::parentProcessIdentifier): Deleted.
+ * page/PageDebuggable.h:
+ pid per debuggable is no longer needed.
+
+2014-05-09 Dean Jackson <dino@apple.com>
+
+ [fullscreen] cursor should auto-hide when over video
+ https://bugs.webkit.org/show_bug.cgi?id=132758
+
+ Unreviewed followup based on test failure.
+
+ * css/fullscreen.css: Append the previous rule - video children of fullscreen elements.
+
+2014-05-09 Dean Jackson <dino@apple.com>
+
+ [fullscreen] cursor should auto-hide when over video
+ https://bugs.webkit.org/show_bug.cgi?id=132758
+
+ Reviewed by Brent Fulgham.
+
+ Cursors were not auto-hiding over fullscreen video. There was
+ a small error in the CSS we load for fullscreen content.
+
+ * css/fullscreen.css: Don't hide when video is a child of the fullscreen element - hide when it *is* the fullscreen element.
+ (video:-webkit-full-screen):
+ (:-webkit-full-screen video:hover): Deleted.
+
+2014-05-09 Zalan Bujtas <zalan@apple.com>
+
+ Subpixel rendering[iOS]: Top bar on apple.com/support jiggles when the swoosh animates.
+ https://bugs.webkit.org/show_bug.cgi?id=132750
+ <rdar://problem/16803281>
+
+ Reviewed by Simon Fraser.
+
+ This patch ensures that GraphicsLayer and RemoteLayerBackingStore have the same dimensions.
+
+ Remove integral enclosing when we set the size on RemoteLayerBackingStore. It makes the layer's size
+ different from the backingstore when the passed value is fractional.
+ We scale and integral round this value to size the shareable bitmap later. Rounding ensures that
+ the final size value matches what we calculated at GraphicsLayerCA::updateGeometry()
+
+ Currently not testable.
+
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayerCA::updateGeometry):
+ (WebCore::GraphicsLayerCA::computePixelAlignment): include device scale factor to be able calculate the final content scale.
+ * platform/graphics/ca/GraphicsLayerCA.h:
+
+2014-05-09 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ JSDOMWindow should disable property caching after a certain point
+ https://bugs.webkit.org/show_bug.cgi?id=132751
+
+ Reviewed by Filip Pizlo.
+
+ No new tests.
+
+ This is part of removing HasImpureGetOwnPropertySlot from JSDOMWindow. After the lookup in the static
+ hash table for JSDOMWindow fails we want to disable property caching even if the code that follows thinks
+ that it has provided a cacheable value.
+
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::getOwnPropertySlot):
+
+2014-05-09 Benjamin Poulain <bpoulain@apple.com>
+
+ Fix the export file after r168556
+
+ * WebCore.exp.in: I forgot to fix the export file before landing.
+
+2014-05-09 Benjamin Poulain <bpoulain@apple.com>
+
+ [iOS][WK2] Set up the resize events
+ https://bugs.webkit.org/show_bug.cgi?id=132726
+
+ Reviewed by Darin Adler and Simon Fraser.
+
+ Let the WebKit2 layer override the size used for resize events.
+
+ * WebCore.exp.in:
+ * page/FrameView.cpp:
+ (WebCore::FrameView::layout):
+ (WebCore::FrameView::sizeForResizeEvent):
+ (WebCore::FrameView::sendResizeEventIfNeeded):
+ (WebCore::FrameView::setCustomSizeForResizeEvent):
+ * page/FrameView.h:
+
+2014-05-09 Alexey Proskuryakov <ap@apple.com>
+
+ REGRESSION (r168518): Multiple tests for workers in blobs assert
+ https://bugs.webkit.org/show_bug.cgi?id=132728
+
+ Reviewed by Geoffrey Garen.
+
+ Change File serialization to include name, so that we don't have to regenerate anything
+ on a secondary thread after deserialization.
+
+ Files and Blobs can't be stored persistently, because URLs are transient (IndexedDB
+ has an explicit check, and fails if there were any blob URLs). API doesn't have the
+ check, but given that anyone who tried to use these to serialize a File would fail,
+ it seems OK to change the format.
+
+ * bindings/js/SerializedScriptValue.cpp:
+ (WebCore::CloneSerializer::write):
+ (WebCore::CloneDeserializer::readFile):
+ * fileapi/File.cpp:
+ (WebCore::File::File):
+ * fileapi/File.h:
+
+2014-05-08 Mark Hahnenberg <mhahnenberg@apple.com>
+
+ JSDOMWindow should have a WatchpointSet to fire on window close
+ https://bugs.webkit.org/show_bug.cgi?id=132721
+
+ Reviewed by Filip Pizlo.
+
+ No new tests.
+
+ This patch allows us to reset the inline caches that assumed they could skip
+ the first part of JSDOMWindow::getOwnPropertySlot that checks if the window has
+ been closed. This is part of getting rid of HasImpureGetOwnPropertySlot on JSDOMWindow.
+
+ JSDOMWindowBase now has a WatchpointSet that the underlying DOMWindow fires when its
+ frame is cleared. In getOwnPropertySlot, we now pass this WatchpointSet to PropertySlot
+ which will shepherd it back up to the code that generates the inline cache (and the
+ Watchpoint for clearing it).
+
+ * bindings/js/JSDOMWindowBase.cpp:
+ (WebCore::JSDOMWindowBase::JSDOMWindowBase):
+ (WebCore::JSDOMWindowBase::fireFrameClearedWatchpointsForWindow):
+ * bindings/js/JSDOMWindowBase.h:
+ * bindings/js/JSDOMWindowCustom.cpp:
+ (WebCore::JSDOMWindow::getOwnPropertySlot):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::frameDestroyed):
+
+2014-05-09 Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com>
+
+ ASSERTION FAILED: object->style()->overflowX() == object->style()->overflowY()
+ https://bugs.webkit.org/show_bug.cgi?id=121682
+
+ Reviewed by Dirk Schulze.
+
+ Add more overflow freedom to the SVG element:
+ -overflow-x and overflow-y for controlling each scrollbar independently is now supported
+ -overflow:scroll will display scrollbars regardless of the svg overflowing or not (as required by CSS)
+ -overflow:hidden will cause overflow to be clipped away and scrollbars to be hidden
+
+ Merged from Blink r172126 by <ed@opera.com>
+
+ Tests: svg/W3C-SVG-1.1-SE/painting-marker-05-f.svg
+ svg/W3C-SVG-1.1-SE/painting-marker-06-f.svg
+ svg/animations/animate-viewport-overflow-2.html
+ svg/animations/animate-viewport-overflow.html
+ svg/in-html/overflow-repaint.html
+ svg/in-html/overflow-svg-root-attr.html
+ svg/in-html/overflow-svg-root-style.html
+ svg/in-html/overflow-svg-root.html
+ svg/overflow/overflow-on-outermost-svg-element-horizontal-auto.svg
+ svg/overflow/overflow-on-outermost-svg-element-vertical-auto.svg
+ svg/overflow/overflow-scroll-on-outermost-svg-element.svg
+ svg/overflow/overflow-x-hidden-on-outermost-svg-element-expected.svg
+ svg/overflow/overflow-x-hidden-on-outermost-svg-element.svg
+ svg/overflow/overflow-y-hidden-on-outermost-svg-element-expected.svg
+ svg/overflow/overflow-y-hidden-on-outermost-svg-element.svg
+
+ * css/StyleResolver.cpp:
+ (WebCore::StyleResolver::adjustRenderStyle):
+ * page/FrameView.cpp:
+ (WebCore::FrameView::applyOverflowToViewport):
+ * rendering/svg/RenderSVGRoot.cpp:
+ (WebCore::RenderSVGRoot::layout):
+ (WebCore::RenderSVGRoot::shouldApplyViewportClip):
+ (WebCore::RenderSVGRoot::paintReplaced):
+ (WebCore::RenderSVGRoot::computeFloatRectForRepaint):
+ * rendering/svg/RenderSVGRoot.h:
+ * rendering/svg/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::isOverflowHidden):
+
+2014-05-09 Jer Noble <jer.noble@apple.com>
+
+ [MSE][Mac] Destroy the AVStreamDataParser when the SourceBuffer is removed from its MediaSource.
+ https://bugs.webkit.org/show_bug.cgi?id=132710
+
+ Reviewed by Eric Carlson.
+
+ The AVStreamDataParser should be destroyed when the SourceBuffer is removed, so that subsequent
+ SourceBuffers can utilize resources released by the parser on destruction.
+
+ * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
+ * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+ (-[WebAVStreamDataParserListener invalidate]):
+ (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Protect against _parent being invalidated.
+ (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
+ (WebCore::SourceBufferPrivateAVFObjC::~SourceBufferPrivateAVFObjC): Call destroyParser();.
+ (WebCore::SourceBufferPrivateAVFObjC::removedFromMediaSource): Ditto.
+ (WebCore::SourceBufferPrivateAVFObjC::destroyParser): Call -[WebAVStreamDataParserListener invalidate].
+
+2014-05-09 Andrei Bucur <abucur@adobe.com>
+
+ [CSS Regions] 1-2% performance regression in html5-full-render after r168286
+ https://bugs.webkit.org/show_bug.cgi?id=132672
+
+ Reviewed by Mihnea Ovidenie.
+
+ The patch optimizes the search of regions when there's a single region in the chain.
+ There's no need to execute advanced search logic, we can directly return that region.
+
+ Tests: No function change, no tests.
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::canComputeRegionRangeForBox):
+ * rendering/RenderFlowThread.cpp:
+ (WebCore::RenderFlowThread::regionAtBlockOffset):
+ (WebCore::RenderFlowThread::hasCachedRegionRangeForBox): Renamed from hasRegionRangeForBox to
+ better suggest what the function does.
+ (WebCore::RenderFlowThread::getRegionRangeForBox):
+ (WebCore::RenderFlowThread::hasRegionRangeForBox): Deleted.
+ * rendering/RenderFlowThread.h:
+
+2014-05-09 Jer Noble <jer.noble@apple.com>
+
+ [EME] Call suspendIfNeeded() in the MediaKeySession create() method to avoid an ASSERT.
+ https://bugs.webkit.org/show_bug.cgi?id=132712
+
+ Reviewed by Eric Carlson.
+
+ All ActiveDOMObject subclasses must call suspendIfNeeded() immediately after creation.
+
+ * Modules/encryptedmedia/MediaKeySession.cpp:
+ (WebCore::MediaKeySession::MediaKeySession):
+
+2014-05-09 Zalan Bujtas <zalan@apple.com>
+
+ Unreviewed. Another attempt to fix Windows build after r168528.
+
+ * platform/graphics/win/FontWin.cpp:
+ (WebCore::Font::adjustSelectionRectForComplexText):
+
+2014-05-09 Zalan Bujtas <zalan@apple.com>
+
+ Unreviewed build fix for Win after r168528.
+
+ * platform/graphics/win/FontWin.cpp:
+ (WebCore::Font::adjustSelectionRectForComplexText):
+
+2014-05-09 Zalan Bujtas <zalan@apple.com>
+
+ REGRESSION (r168095): 1-pixel gap between adjacent selection inlines
+ https://bugs.webkit.org/show_bug.cgi?id=132474
+ <rdar://problem/16797394>
+
+ Reviewed by David Hyatt.
+
+ This patch changes text selection rectangle calculation from integral to device
+ pixel snapping. It ensures that selection rect painting matches box boundaries for inline elements.
+ Directional rounding (horizontal only atm) is moved out from Font class and now accessible
+ to all the painting code. RTL snapping strategy is changed from floor to round to match ltr behavior.
+ However this patch does not address all the integral snapping across inline elements. There are
+ a few places where we still calculate enclosing rects where snapping is sufficient.
+
+ Test: fast/inline/hidpi-pixel-gap-between-adjacent-selection-inlines.html
+
+ * platform/LayoutUnit.h:
+ (WebCore::roundToDevicePixel): added fudge factor to change rounding direction as directed.
+ * platform/graphics/Font.cpp:
+ (WebCore::Font::adjustSelectionRectForText):
+ (WebCore::Font::selectionRectForText): Deleted.
+ * platform/graphics/Font.h:
+ * platform/graphics/FontFastPath.cpp:
+ (WebCore::Font::adjustSelectionRectForSimpleText): removed directional rounding.
+ (WebCore::Font::selectionRectForSimpleText): Deleted.
+ * platform/graphics/GraphicsContext.cpp:
+ (WebCore::GraphicsContext::drawHighlightForText): Deleted.
+ * platform/graphics/GraphicsContext.h:
+ * platform/graphics/LayoutPoint.h:
+ (WebCore::roundedForPainting):
+ * platform/graphics/LayoutRect.h:
+ (WebCore::directionalPixelSnappedForPainting): Snap top right corner for rtl direction.
+ * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
+ (WebCore::Font::adjustSelectionRectForComplexText):
+ (WebCore::Font::selectionRectForComplexText): Deleted.
+ * platform/graphics/mac/FontComplexTextMac.cpp:
+ (WebCore::Font::adjustSelectionRectForComplexText): removed directional rounding.
+ (WebCore::Font::selectionRectForComplexText): Deleted.
+ * platform/graphics/win/FontWin.cpp:
+ (WebCore::Font::adjustSelectionRectForComplexText):
+ (WebCore::Font::selectionRectForComplexText): Deleted.
+ * rendering/EllipsisBox.cpp:
+ (WebCore::EllipsisBox::selectionRect):
+ (WebCore::EllipsisBox::paintSelection):
+ * rendering/InlineTextBox.cpp:
+ (WebCore::integralEnclosingRectForSelection): helper to address enclosing empty rect problem.
+ (WebCore::InlineTextBox::localSelectionRect):
+ (WebCore::InlineTextBox::paintSelection):
+ (WebCore::InlineTextBox::paintCompositionBackground):
+ (WebCore::InlineTextBox::paintDocumentMarker):
+ (WebCore::InlineTextBox::paintTextMatchMarker):
+ (WebCore::InlineTextBox::computeRectForReplacementMarker):
+ (WebCore::InlineTextBox::positionForOffset):
+ * rendering/svg/SVGInlineTextBox.cpp:
+ (WebCore::SVGInlineTextBox::selectionRectForTextFragment):
+
+2014-05-09 Martin Hodovan <mhodovan@inf.u-szeged.hu>
+
+ ASSERTION FAILED: !m_code || m_code == defaultExceptionCode
+ in WebCore::constructQualifiedName
+ https://bugs.webkit.org/show_bug.cgi?id=132343
+
+ 'Remove bad assertion in SVGSMILElement's constructQualifiedName() by passing
+ IGNORE_EXCEPTION instead ASSERT_NO_EXCEPTION to Document::parseQualifiedName().
+ The constructQualifiedName() function handles parseQualifiedName() failures
+ propertly by returning early so there is no reason to assert on parsing
+ failures.'
+
+ Blink merge: http://src.chromium.org/viewvc/blink?view=revision&revision=173564
+ Based on the patch made by Christophe Dumez <ch.dumez@samsung.com>.
+
+ Reviewed by Dirk Schulze.
+
+ Test: svg/custom/bad-attributeName-crash.html
+
+ * svg/animation/SVGSMILElement.cpp:
+ (WebCore::constructQualifiedName):
+
+2014-05-08 Brent Fulgham <bfulgham@apple.com>
+
+ Multiple (stacked) cues when shuttling through video while playing closed captions
+ https://bugs.webkit.org/show_bug.cgi?id=132715
+ <rdar://problem/16795782>
+
+ Reviewed by Eric Carlson.
+
+ Tests: media/track/track-in-band-cues-added-once.html
+
+ * html/track/TextTrack.cpp:
+ (WebCore::TextTrack::hasCue): Revise to use a relaxed time equality.
+ * html/track/TextTrackCue.cpp:
+ (WebCore::TextTrackCue::isEqual): Ditto.
+ (WebCore::TextTrackCue::hasEquivalentStartTime): Added.
+ * html/track/TextTrackCue.h:
+ (WebCore::TextTrackCue::startTimeVariance): Added.
+ * html/track/TextTrackCueGeneric.h:
+ * html/track/TextTrackCueGeneric.cpp:
+ (WebCore::TextTrackCueGeneric::isEqual): Do not call the VTTCue::isEqual method from
+ this class, since cueType() will not equal VTTCue, and the equality will fail.
+
+2014-05-08 Alexey Proskuryakov <ap@apple.com>
+
+ Automatically zip document bundles used via File API
+ https://bugs.webkit.org/show_bug.cgi?id=132713
+ <rdar://problem/13397892>
+
+ Reviewed by Anders Carlsson.
+
+ Tests: fast/files/filereader-zip-bundle.html
+ http/tests/local/fileapi/upload-zip-bundle-as-blob.html
+
+ * FileMac.mm: Added.
+ (WebCore::File::shouldReplaceFile):
+ (WebCore::File::computeNameAndContentTypeForReplacedFile):
+ Added code that decides what to do with a bundle. We need this to happen in
+ WebProcess, because HTML5 dropzone depends on this, it needs to know file type
+ even before a File object can be created.
+
+ * WebCore.exp.in: Export new functions.
+
+ * WebCore.xcodeproj/project.pbxproj: Added new files.
+
+ * dom/DataTransfer.cpp: (WebCore::DataTransfer::hasFileOfType): Updated for File
+ interface change.
+
+ * fileapi/File.h:
+ * fileapi/File.cpp:
+ (WebCore::File::File):
+ (WebCore::File::computeNameAndContentType):
+ (WebCore::File::contentTypeForFile):
+ (WebCore::File::contentTypeFromFilePathOrName): Deleted.
+ Make it possible for a subclass to affect file name and content type calculation.
+
+ * platform/network/BlobDataFileReference.cpp:
+ (WebCore::BlobDataFileReference::BlobDataFileReference):
+ (WebCore::BlobDataFileReference::~BlobDataFileReference):
+ (WebCore::BlobDataFileReference::path):
+ (WebCore::BlobDataFileReference::size):
+ (WebCore::BlobDataFileReference::expectedModificationTime):
+ (WebCore::BlobDataFileReference::startTrackingModifications):
+ * platform/network/BlobDataFileReference.h:
+ (WebCore::BlobDataFileReference::path): Deleted.
+ (WebCore::BlobDataFileReference::BlobDataFileReference): Deleted.
+ Use original or replaced file, as appropriate.
+
+ * platform/network/mac/BlobDataFileReferenceMac.mm: Added.
+ (WebCore::BlobDataFileReference::generateReplacementFile): Implements generateReplacementFile().
+
+ * platform/network/FormData.h: Added a FIXME.
+
+ * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::send): Always use Blob code path
+ for blobs, don't unwrap them into a file path.
+
+2014-05-08 Simon Fraser <simon.fraser@apple.com>
+
+ Occasional crash under AsyncScrollingCoordinator::frameViewRootLayerDidChange() on history navigation
+ https://bugs.webkit.org/show_bug.cgi?id=132723
+
+ Reviewed by Sam Weinig.
+
+ Crash reports suggest that when we call AsyncScrollingCoordinator::frameViewRootLayerDidChange()
+ from HistoryController::restoreScrollPositionAndViewState(), the FrameView may not have a
+ scrolling node ID, which suggests that either the FrameView doesn't have a RenderView,
+ or compositing hasn't happened yet.
+
+ So if we enter AsyncScrollingCoordinator::frameViewRootLayerDidChange()
+ and the FrameView has no scrollLayerID, just return. We'll fix things up
+ when compositing kicks in later.
+
+ * page/scrolling/AsyncScrollingCoordinator.cpp:
+ (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
+
+2014-05-08 Simon Fraser <simon.fraser@apple.com>
+
+ [iOS WK2] Bottom-relative position:fixed elements are misplaced on page load
+ https://bugs.webkit.org/show_bug.cgi?id=132719
+ <rdar://problem/16860837>
+
+ Reviewed by Benjamin Poulain.
+
+ Add a couple of functions, and sort.
+
+ * WebCore.exp.in:
+
+2014-05-08 Jer Noble <jer.noble@apple.com>
+
+ [Mac, iOS] Add source application accounting to AVURLAsset.
+ https://bugs.webkit.org/show_bug.cgi?id=132637
+
+ Reviewed by Eric Carlson.
+
+ Properly account for the application responisble for data loading by passing the source
+ application identifier through to AVFoundation through AVURLAsset options.
+
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::parseAttribute):
+ * html/HTMLMediaElement.h:
+ * platform/graphics/MediaPlayer.cpp:
+ (WebCore::MediaPlayer::sourceApplicationIdentifier):
+ * platform/graphics/MediaPlayer.h:
+ (WebCore::MediaPlayerClient::mediaPlayerSourceApplicationIdentifier):
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
+ (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
+ * platform/network/NetworkingContext.h:
+
+2014-05-08 Jer Noble <jer.noble@apple.com>
+
+ [MSE][Mac] Move AVStreamDataParser off-main-thread.
+ https://bugs.webkit.org/show_bug.cgi?id=132698
+
+ Reviewed by Eric Carlson.
+
+ -[AVStreamDataParser appendStreamData:] can casue the main thread to hang when a
+ large amount of media data is appended at once. Move the actual parsing of data
+ to a background (synchronous) dispatch queue, and split SourceBuffer::appendBufferTimerFired
+ into two functions, the latter of which will be called after the background queue
+ completes.
+
+ * Modules/mediasource/SourceBuffer.cpp:
+ (WebCore::SourceBuffer::appendBufferTimerFired): Split into sourceBufferPrivateAppendComplete.
+ (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Split from appendBufferTimerFired.
+ * Modules/mediasource/SourceBuffer.h:
+ * platform/graphics/SourceBufferPrivate.h:
+ * platform/graphics/SourceBufferPrivateClient.h:
+ * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
+ * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
+ (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:]): Re-dispatch to the
+ web thread.
+ (-[WebAVStreamDataParserListener streamDataParser:didParseStreamDataAsAsset:withDiscontinuity:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didFailToParseStreamDataWithError:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didProvideMediaData:forTrackID:mediaType:flags:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didReachEndOfTrackWithTrackID:mediaType:]): Ditto.
+ (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]): Ditto.
+ (WebCore::globalDataParserQueue): Added.
+ (WebCore::SourceBufferPrivateAVFObjC::append): Dispatch to the globalDataParserQueue.
+ (WebCore::SourceBufferPrivateAVFObjC::appendCompleted): Added.
+ * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
+ (WebCore::MockSourceBufferPrivate::append): Adopt sourceBufferPrivateAppendComplete.
+ * platform/mock/mediasource/MockSourceBufferPrivate.h:
+
+ Update SourceBufferPrivateGStreamer to match the new append return value:
+ * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.cpp:
+ (WebCore::SourceBufferPrivateGStreamer::append):
+ * platform/graphics/gstreamer/SourceBufferPrivateGStreamer.h:
+
+2014-05-08 Commit Queue <commit-queue@webkit.org>
+
+ Unreviewed, rolling out r168498.
+ https://bugs.webkit.org/show_bug.cgi?id=132714
+
+ broke Mavericks WK2 (Requested by litherum on #webkit).
+
+ Reverted changeset:
+
+ "http/tests/security/xss-DENIED-xsl-document-redirect.xml
+ fails with NetworkProcess"
+ https://bugs.webkit.org/show_bug.cgi?id=132523
+ http://trac.webkit.org/changeset/168498
+
+2014-05-08 Myles C. Maxfield <mmaxfield@apple.com>
+
+ http/tests/security/xss-DENIED-xsl-document-redirect.xml fails with NetworkProcess
+ https://bugs.webkit.org/show_bug.cgi?id=132523
+
+ Reviewed by Alexey Proskuryakov.
+
+ We should not manufacture a response in the event of an error during a
+ synchronous XHR. In addition, this test removes one place that is
+ sensitive to such a manufactured response.
+
+ Updates test expectations.
+
+ * platform/network/cf/ResourceHandleCFNet.cpp:
+ (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
+ manufacture a response
+ * platform/network/mac/ResourceHandleMac.mm:
+ (WebCore::ResourceHandle::platformLoadResourceSynchronously): Do not
+ manufacture a response
+ * xml/XSLTProcessorLibxslt.cpp:
+ (WebCore::docLoaderFunc): Only use the response's URL if no error
+ occurred.
+
+2014-05-08 Andreas Kling <akling@apple.com>
+
+ [iOS] WebKit should listen to critical memory warnings.
+ <https://webkit.org/b/132704>
+ <rdar://problem/16857112>
+
+ Listen for DISPATCH_MEMORYSTATUS_PRESSURE_CRITICAL in addition to
+ DISPATCH_MEMORYSTATUS_PRESSURE_WARN, since we may only get the critical
+ notification on some systems.
+
+ Reviewed by Gavin Barraclough.
+
+ * platform/cocoa/MemoryPressureHandlerCocoa.mm:
+ (WebCore::MemoryPressureHandler::install):
+
+2014-05-08 Joseph Pecoraro <pecoraro@apple.com>
+
+ Web Inspector: InspectorDOMAgent::getAccessibilityPropertiesForNode should gracefully handle bad node
+ https://bugs.webkit.org/show_bug.cgi?id=132697
+
+ Reviewed by Timothy Hatcher.
+
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
+ Gracefully handle no node.
+
+2014-05-08 Tim Horton <timothy_horton@apple.com>
+
+ Fix the iOS build after r168476.
+
+ * platform/graphics/mac/GraphicsContextMac.mm:
+ (WebCore::GraphicsContext::drawFocusRing):
+
+2014-05-08 Bem Jones-Bey <bjonesbe@adobe.com>
+
+ [CSS Shapes] Shapes do not resolve dimensions specified in viewport units
+ https://bugs.webkit.org/show_bug.cgi?id=124052
+
+ Reviewed by Dirk Schulze.
+
+ Viewport unit resolution doesn't work unless the RenderView is passed
+ down into the floatValueForLength methods. All this does is plumb down
+ a RenderView in all of these cases.
+
+ Tests: css3/masking/clip-path-polygon-viewport-units.html
+ fast/shapes/shape-outside-floats/shape-outside-floats-viewport-units.html
+
+ * css/BasicShapeFunctions.cpp:
+ (WebCore::floatValueForCenterCoordinate):
+ * css/BasicShapeFunctions.h:
+ * css/LengthFunctions.cpp:
+ (WebCore::floatSizeForLengthSize):
+ * css/LengthFunctions.h:
+ * rendering/ClipPathOperation.h:
+ (WebCore::ShapeClipPathOperation::pathForReferenceRect):
+ (WebCore::BoxClipPathOperation::pathForReferenceRect):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::setupClipPath):
+ * rendering/shapes/Shape.cpp:
+ (WebCore::Shape::createShape):
+ * rendering/shapes/Shape.h:
+ * rendering/shapes/ShapeOutsideInfo.cpp:
+ (WebCore::ShapeOutsideInfo::computedShape):
+ * rendering/style/BasicShapes.cpp:
+ (WebCore::BasicShapeCircle::floatValueForRadiusInBox):
+ (WebCore::BasicShapeCircle::path):
+ (WebCore::BasicShapeEllipse::floatValueForRadiusInBox):
+ (WebCore::BasicShapeEllipse::path):
+ (WebCore::BasicShapePolygon::path):
+ (WebCore::floatSizeForLengthSize):
+ (WebCore::BasicShapeInset::path):
+ * rendering/style/BasicShapes.h:
+ * rendering/svg/SVGRenderingContext.cpp:
+ (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
+
+2014-05-08 Brent Fulgham <bfulgham@apple.com>
+
+ Cue display events may not be registered during page load.
+ https://bugs.webkit.org/show_bug.cgi?id=132696
+ <rdar://problem/16652874>
+
+ Reviewed by Eric Carlson.
+
+ * Modules/mediacontrols/mediaControlsApple.js:
+ (Controller.prototype.handleTextTrackAdd): Don't register
+ for 'cuechange' events anymore.
+ (Controller.prototype.handleTextTrackRemove): Ditto.
+ (Controller.prototype.updateCaptionContainer): Reduce CSS
+ churn by not adding/removing 'Hidden' class every time a
+ new cue is processed. Only do this when transitioning
+ track display state.
+ (Controller.prototype.handleTextTrackCueChange): Deleted.
+ * html/HTMLMediaElement.cpp:
+ (WebCore::HTMLMediaElement::updateTextTrackDisplay): Call
+ 'updateTextTrackContainer' directory when processing cues,
+ rather than trampolining through the JS layer.
+
+2014-05-08 Alexey Proskuryakov <ap@apple.com>
+
+ Make BlobDataFileReference manage its sandbox extension
+ https://bugs.webkit.org/show_bug.cgi?id=132689
+
+ Reviewed by Anders Carlsson.
+
+ * WebCore.exp.in: Export symbols that are now needed in WebKit2 to subclass BlobDataFileReference.
+
+ * fileapi/ThreadableBlobRegistry.cpp: (WebCore::ThreadableBlobRegistry::registerFileBlobURL):
+ * platform/network/BlobData.cpp: (WebCore::BlobData::appendFile):
+ * platform/network/BlobData.h: (WebCore::BlobDataItem::BlobDataItem):
+ * platform/network/BlobRegistry.h:
+ * platform/network/BlobRegistryImpl.cpp: (WebCore::BlobRegistryImpl::registerFileBlobURL):
+ * platform/network/BlobRegistryImpl.h:
+ BlobRegistry now takes a BlobDataFileReference and not a path, so that WebKit2
+ could pass objects that include sandbox extensions.
+
+ * platform/network/BlobDataFileReference.h:
+ * platform/network/BlobDataFileReference.cpp:
+ (WebCore::BlobDataFileReference::~BlobDataFileReference): Added a virtual destructor.
+ (WebCore::BlobDataFileReference::size): We now record the size and modification time right away, no need to lazily calculate them.
+ (WebCore::BlobDataFileReference::expectedModificationTime): Ditto.
+ (WebCore::BlobDataFileReference::startTrackingModifications): Record time and size
+ (since it's a single call). However, size calculation will become complicated again soon.
+ (WebCore::BlobDataFileReference::prepareForFileAccess): A hook for subclasses.
+ (WebCore::BlobDataFileReference::revokeFileAccess): Ditto.
+ (WebCore::BlobDataFileReference::computeFileSystemData): Deleted.
+
+2014-05-08 Rik Cabanier <cabanier@adobe.com>
+
+ Add support for drawFocusIfNeeded
+ https://bugs.webkit.org/show_bug.cgi?id=132584
+
+ Reviewed by Dirk Schulze.
+
+ The drawFocusIfNeeded API will draw a focus ring if the element that is passed
+ in is focused and a child element of the canvas.
+
+ Test: fast/canvas/draw-focus-if-needed.html
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):
+ * html/canvas/CanvasRenderingContext2D.h:
+ * html/canvas/CanvasRenderingContext2D.idl:
+
+2014-05-08 Antti Koivisto <antti@apple.com>
+
+ [iOS WebKit2] Can't activate text fields on Facebook
+ https://bugs.webkit.org/show_bug.cgi?id=132682
+
+ Reviewed by Enrica Casucci.
+
+ * page/DOMTimer.cpp:
+ (WebCore::DOMTimer::fired):
+
+ The isDocument() test here had reversed in the merge breaking content change observer callback.
+
+2014-05-07 Sergio Villar Senin <svillar@igalia.com>
+
+ Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in svg/
+ https://bugs.webkit.org/show_bug.cgi?id=132647
+
+ Reviewed by Darin Adler.
+
+ * svg/SVGAElement.cpp:
+ (WebCore::SVGAElement::isSupportedAttribute):
+ * svg/SVGAnimateMotionElement.cpp:
+ (WebCore::SVGAnimateMotionElement::isSupportedAttribute):
+ * svg/SVGAnimateTransformElement.cpp:
+ (WebCore::SVGAnimateTransformElement::isSupportedAttribute):
+ * svg/SVGAnimatedLength.cpp:
+ (WebCore::sharedSVGLength):
+ * svg/SVGAnimationElement.cpp:
+ (WebCore::SVGAnimationElement::isSupportedAttribute):
+ * svg/SVGCircleElement.cpp:
+ (WebCore::SVGCircleElement::isSupportedAttribute):
+ * svg/SVGClipPathElement.cpp:
+ (WebCore::SVGClipPathElement::isSupportedAttribute):
+ * svg/SVGComponentTransferFunctionElement.cpp:
+ (WebCore::SVGComponentTransferFunctionElement::isSupportedAttribute):
+ * svg/SVGCursorElement.cpp:
+ (WebCore::SVGCursorElement::isSupportedAttribute):
+ * svg/SVGElement.cpp:
+ (WebCore::SVGElement::instancesForElement):
+ (WebCore::SVGElement::childShouldCreateRenderer):
+ * svg/SVGEllipseElement.cpp:
+ (WebCore::SVGEllipseElement::isSupportedAttribute):
+ * svg/SVGFEBlendElement.cpp:
+ (WebCore::SVGFEBlendElement::isSupportedAttribute):
+ * svg/SVGFEColorMatrixElement.cpp:
+ (WebCore::SVGFEColorMatrixElement::isSupportedAttribute):
+ * svg/SVGFEComponentTransferElement.cpp:
+ (WebCore::SVGFEComponentTransferElement::isSupportedAttribute):
+ * svg/SVGFECompositeElement.cpp:
+ (WebCore::SVGFECompositeElement::isSupportedAttribute):
+ * svg/SVGFEConvolveMatrixElement.cpp:
+ (WebCore::SVGFEConvolveMatrixElement::isSupportedAttribute):
+ * svg/SVGFEDiffuseLightingElement.cpp:
+ (WebCore::SVGFEDiffuseLightingElement::isSupportedAttribute):
+ * svg/SVGFEDisplacementMapElement.cpp:
+ (WebCore::SVGFEDisplacementMapElement::isSupportedAttribute):
+ * svg/SVGFEDropShadowElement.cpp:
+ (WebCore::SVGFEDropShadowElement::isSupportedAttribute):
+ * svg/SVGFEGaussianBlurElement.cpp:
+ (WebCore::SVGFEGaussianBlurElement::isSupportedAttribute):
+ * svg/SVGFEImageElement.cpp:
+ (WebCore::SVGFEImageElement::isSupportedAttribute):
+ * svg/SVGFELightElement.cpp:
+ (WebCore::SVGFELightElement::isSupportedAttribute):
+ * svg/SVGFEMergeNodeElement.cpp:
+ (WebCore::SVGFEMergeNodeElement::isSupportedAttribute):
+ * svg/SVGFEMorphologyElement.cpp:
+ (WebCore::SVGFEMorphologyElement::isSupportedAttribute):
+ * svg/SVGFEOffsetElement.cpp:
+ (WebCore::SVGFEOffsetElement::isSupportedAttribute):
+ * svg/SVGFESpecularLightingElement.cpp:
+ (WebCore::SVGFESpecularLightingElement::isSupportedAttribute):
+ * svg/SVGFETileElement.cpp:
+ (WebCore::SVGFETileElement::isSupportedAttribute):
+ * svg/SVGFETurbulenceElement.cpp:
+ (WebCore::SVGFETurbulenceElement::isSupportedAttribute):
+ * svg/SVGFilterElement.cpp:
+ (WebCore::SVGFilterElement::isSupportedAttribute):
+ (WebCore::SVGFilterElement::childShouldCreateRenderer):
+ * svg/SVGFilterPrimitiveStandardAttributes.cpp:
+ (WebCore::SVGFilterPrimitiveStandardAttributes::isSupportedAttribute):
+ * svg/SVGForeignObjectElement.cpp:
+ (WebCore::SVGForeignObjectElement::isSupportedAttribute):
+ * svg/SVGGElement.cpp:
+ (WebCore::SVGGElement::isSupportedAttribute):
+ * svg/SVGGradientElement.cpp:
+ (WebCore::SVGGradientElement::isSupportedAttribute):
+ * svg/SVGGraphicsElement.cpp:
+ (WebCore::SVGGraphicsElement::isSupportedAttribute):
+ * svg/SVGImageElement.cpp:
+ (WebCore::SVGImageElement::isSupportedAttribute):
+ * svg/SVGLength.cpp:
+ (WebCore::SVGLength::lengthModeForAnimatedLengthAttribute):
+ * svg/SVGLineElement.cpp:
+ (WebCore::SVGLineElement::isSupportedAttribute):
+ * svg/SVGLinearGradientElement.cpp:
+ (WebCore::SVGLinearGradientElement::isSupportedAttribute):
+ * svg/SVGMPathElement.cpp:
+ (WebCore::SVGMPathElement::isSupportedAttribute):
+ * svg/SVGMarkerElement.cpp:
+ (WebCore::SVGMarkerElement::isSupportedAttribute):
+ * svg/SVGMaskElement.cpp:
+ (WebCore::SVGMaskElement::isSupportedAttribute):
+ * svg/SVGPathElement.cpp:
+ (WebCore::SVGPathElement::isSupportedAttribute):
+ * svg/SVGPatternElement.cpp:
+ (WebCore::SVGPatternElement::isSupportedAttribute):
+ * svg/SVGPolyElement.cpp:
+ (WebCore::SVGPolyElement::isSupportedAttribute):
+ * svg/SVGRadialGradientElement.cpp:
+ (WebCore::SVGRadialGradientElement::isSupportedAttribute):
+ * svg/SVGRectElement.cpp:
+ (WebCore::SVGRectElement::isSupportedAttribute):
+ * svg/SVGScriptElement.cpp:
+ (WebCore::SVGScriptElement::isSupportedAttribute):
+ * svg/SVGStopElement.cpp:
+ (WebCore::SVGStopElement::isSupportedAttribute):
+ * svg/SVGStyleElement.cpp:
+ (WebCore::SVGStyleElement::isSupportedAttribute):
+ * svg/SVGSymbolElement.cpp:
+ (WebCore::SVGSymbolElement::isSupportedAttribute):
+ * svg/SVGTRefElement.cpp:
+ (WebCore::SVGTRefElement::isSupportedAttribute):
+ * svg/SVGTests.cpp:
+ (WebCore::SVGTests::attributeToPropertyMap):
+ * svg/SVGTextContentElement.cpp:
+ (WebCore::SVGTextContentElement::textLengthAnimated):
+ (WebCore::SVGTextContentElement::isSupportedAttribute):
+ * svg/SVGTextPathElement.cpp:
+ (WebCore::SVGTextPathElement::isSupportedAttribute):
+ * svg/SVGTextPositioningElement.cpp:
+ (WebCore::SVGTextPositioningElement::isSupportedAttribute):
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::isSupportedAttribute):
+ (WebCore::isDisallowedElement):
+ * svg/SVGViewElement.cpp:
+ (WebCore::SVGViewElement::isSupportedAttribute):
+
+2014-05-08 Ion Rosca <rosca@adobe.com>
+
+ [CSS Blending] Replacing Unisolated with NotIsolated in variables and methods names
+ https://bugs.webkit.org/show_bug.cgi?id=132677
+
+ Reviewed by Dirk Schulze.
+
+ No new tests required.
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::RenderLayer):
+ (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
+ (WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
+ (WebCore::RenderLayer::updateDescendantDependentFlags):
+ hasUnisolatedBlendingDescendants -> hasNotIsolatedBlendingDescendants
+ (WebCore::RenderLayer::addChild):
+ (WebCore::RenderLayer::removeChild):
+ (WebCore::RenderLayer::updateStackingContextsAfterStyleChange):
+ * rendering/RenderLayer.h:
+ m_hasUnisolatedBlendingDescendants -> m_hasNotIsolatedBlendingDescendants
+ m_hasUnisolatedBlendingDescendantsStatusDirty -> m_hasNotIsolatedBlendingDescendantsStatusDirty
+ hasUnisolatedBlendingDescendants() -> hasNotIsolatedBlendingDescendants()
+ hasUnisolatedBlendingDescendantsStatusDirty() -> hasNotIsolatedBlendingDescendantsStatusDirty()
+ m_hasUnisolatedCompositedBlendingDescendants -> m_hasNotIsolatedCompositedBlendingDescendants
+ hasUnisolatedCompositedBlendingDescendants() -> hasNotIsolatedCompositedBlendingDescendants()
+ setHasUnisolatedCompositedBlendingDescendants() -> setHasNotIsolatedCompositedBlendingDescendants
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::CompositingState::CompositingState):
+ m_hasUnisolatedCompositedBlendingDescendants -> m_hasNotIsolatedCompositedBlendingDescendants
+ (WebCore::RenderLayerCompositor::computeCompositingRequirements):
+
+2014-05-08 Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+ [GTK] Enable skipped http/tests/media/hls/video-controls-live-stream.html
+ https://bugs.webkit.org/show_bug.cgi?id=132329
+
+ Reviewed by Eric Carlson.
+
+ GTK port needed to define what happened with live stream media
+ controls. Now we disable and dim the timeline and tweak the
+ timers.
+
+ Test: http/tests/media/hls/video-controls-live-stream.html.
+
+ * Modules/mediacontrols/mediaControlsGtk.js:
+ (ControllerGtk.prototype.configureControls): Moved logic from
+ setControlsType and changed to use an early return.
+ (ControllerGtk.prototype.reconnectControls): Redefined to just
+ configure the controls.
+ (ControllerGtk.prototype.handlePlay): If stream is live we don't
+ activate the current time just in case.
+ (ControllerGtk.prototype.updateDuration): Calls the superclass and
+ sets timeline.max to 0.
+ (ControllerGtk.prototype.setControlsType): Deleted.
+ (ControllerGtk.prototype.setIsLive): Configures controls and
+ disables the timeline if stream is live.
+ * css/mediaControlsGtk.css:
+ (audio::-webkit-media-controls-timeline[disabled])
+ (video::-webkit-media-controls-timeline[disabled]): Dimmed the
+ timeline by setting opacity to 0.3.
+
+2014-05-08 Ion Rosca <rosca@adobe.com>
+
+ [CSS Blending] Changing isolation CSS property should not trigger repaint in RenderStyle::changeRequiresLayerRepaint
+ https://bugs.webkit.org/show_bug.cgi?id=131436
+
+ Reviewed by Dirk Schulze.
+
+ The isolation:isolate property will create a stacking context. This is done in
+ StyleResolver::adjustRenderStyle where z-index is forced to 0.
+ If the element is already a stacking context for any other reason,
+ changing the isolation flag should not have any effect.
+
+ Tests: css3/blending/repaint/blend-mode-turn-off-isolation-no-effect.html
+ css3/blending/repaint/blend-mode-turn-off-isolation.html
+
+ * rendering/style/RenderStyle.cpp:
+ (WebCore::RenderStyle::changeRequiresLayerRepaint):
+ do not request repaint if isolation has changed.
+
+2014-05-08 Manuel Rego Casasnovas <rego@igalia.com>
+
+ REGRESSION (r167652): SelectionState is not set properly for non leaf objects in pages with regions
+ https://bugs.webkit.org/show_bug.cgi?id=132493
+
+ Reviewed by David Hyatt.
+
+ Non selection leaf elements were not included in the selection ranges,
+ that was causing that their selection state was not set properly and
+ when one of the element was removed as it was marked as SelectionNone
+ current selection was not removed.
+
+ Due to this fix, the regression detected in bug #131982 arose again.
+ Reverted changes from r167675 and reopened bug as previous fix was not
+ right. Updated TestExpectations accordingly.
+
+ Test: fast/regions/selection/crash-select-all.html
+
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::splitSelectionBetweenSubtrees): We need to include
+ non selection leafs in the range, otherwise we won't be marking
+ selection state of some elements properly.
+
+2014-05-08 Zoltan Horvath <zoltan@webkit.org>
+
+ [CSS Shapes] Can't select content within the area of the floating box when clip-path is applied
+ https://bugs.webkit.org/show_bug.cgi?id=131375
+
+ Reviewed by Dirk Schulze.
+
+ According to http://www.w3.org/TR/css-masking-1/, the clipped part of the element should
+ not have pointer event dispatching. So add this logic to RenderBlock::nodeAtPoint. This
+ fixes the bug as it disallows selection on any clipped parts.
+
+ I implemented the proper selection for the various CSS box types and added testing
+ for them. Also, I made and run performance tests for exposing mouse events over the
+ clipped/non-clipped area, which results can be seen in bugzilla.
+
+ Based on the patch made by Rob Buis <rob.buis@samsung.com>
+ Blink revision: http://src.chromium.org/viewvc/blink?view=revision&revision=172619
+
+ Tests: fast/masking/clip-path-selection.html
+ fast/shapes/shape-outside-floats/shape-outside-clip-path-selection.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::nodeAtPoint):
+
+2014-05-07 Ion Rosca <rosca@adobe.com>
+
+ [CSS Blending] Blending doesn't work if the parent stacking context is not a self painting layer
+ https://bugs.webkit.org/show_bug.cgi?id=130891
+
+ Reviewed by Dean Jackson.
+
+ The stacking context layers having unisolated blending descendants should be able
+ to create transparency layers or to become composited in order to restrict blending
+ content to accessing the information outside the current stacking context.
+ Some layers are not self painting layers and these layers cannot crate transparency
+ layers and cannot be composited, thus they are not able to isolate blending descendants
+ when it's required.
+
+ The solution in this patch is to make a layer isSelfPaintingLayer when
+ it needs to isolate blending descendants (hasUnisolatedBlendingDescendants).
+
+ Tests: css3/blending/blend-mode-isolation-accelerated-overflow-hidden.html
+ css3/blending/blend-mode-isolation-overflow-hidden.html
+ css3/blending/blend-mode-isolation-turn-off-self-painting-layer.html
+ css3/blending/blend-mode-isolation-turn-off-self-painting-layer1.html
+ css3/blending/blend-mode-isolation-turn-off-self-painting-layer2.html
+ css3/blending/blend-mode-isolation-turn-on-self-painting-layer.html
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
+ When hasUnisolatedBlendingDescendants is set we make sure that isSelfPaintingLayer flag is set too.
+ (WebCore::RenderLayer::updateDescendantDependentFlags):
+ The flags might be read or changed while walking the descendants, so we don't want to reset
+ them before traversing the tree.
+ (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
+ Adding isolatesBlending() condition for a layer to be self painting.
+ * rendering/RenderLayer.h:
+ Removing ASSERT from hasUnisolatedBlendingDescendants(). It crashes in minibrowser
+ and in layout tests when painting contents. Similar bugs on other flags: #71044, #71277.
+ * rendering/RenderLayerModelObject.cpp:
+ (WebCore::RenderLayerModelObject::styleDidChange):
+ Telling ancestors that blend mode property has been removed from CSS when the layer for
+ this element is going to be removed; styleChanged will not be called anymore.
+
+2014-05-06 Myles C. Maxfield <mmaxfield@apple.com>
+
+ Dragging text from one paragraph to another does not render as expected
+ https://bugs.webkit.org/show_bug.cgi?id=132633
+
+ Reviewed by Darin Adler and Ryosuke Niwa.
+
+ When we are dragging and dropping into a content editable field, we detect
+ if we are trying to put a <p> into an existing <p>, and if so, split the
+ outer <p> and insert the new <p> as its sibling. However, the outer <p>
+ might not be editable, so we don't want to do any splitting and inserting
+ at that location.
+
+ Test: editing/pasteboard/drag-drop-paragraph-crasher.html
+
+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
+
+2014-05-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ [CoordinatedGraphics][WK2] Scale factor and scroll position is not being restored properly in a back/forward load
+ https://bugs.webkit.org/show_bug.cgi?id=126022
+
+ Reviewed by Benjamin Poulain.
+
+ Original author : Thiago de Barros Lacerda, and finished by Gyuyoung Kim.
+
+ When user is navigating back/forward to a page that has been scrolled and/or scaled, that page must be shown
+ with its last scroll position and scale factor. However, when fixed layout was enabled with CoordinatedGraphics
+ and TILED_BACKING_STORE, Page::setPageScaleFactor() doesn't send previous scroll position since r165652 and r165913.
+
+ This patch allows the Page::setPageScaleFactor() send stored position to WK2 implementation by calling delegatedScrollRequested()
+ directly when delegatesScrolling() is on.
+
+ * page/Page.cpp:
+ (WebCore::Page::setPageScaleFactor): TILED_BACKING_STORE and delegateScrolling are enabled, we pass new scroll position to WK2 though
+ delegateScrolling is disabled.
+ * platform/ScrollView.cpp: delegatedScrollRequested() call is moved from ScrollView::setScrollPosition() to Page::setPageScaleFactor().
+ (WebCore::ScrollView::setScrollPosition):
+
+2014-05-07 Dean Jackson <dino@apple.com>
+
+ Using a fill pattern much larger than actual canvas reliably segfaults browser
+ https://bugs.webkit.org/show_bug.cgi?id=132635
+
+ Reviewed by Simon Fraser.
+
+ Make sure that createPattern checks that the canvas it is about to use
+ as a source is valid.
+
+ Test: fast/canvas/pattern-too-large-to-create.html
+
+ * html/canvas/CanvasRenderingContext2D.cpp:
+ (WebCore::CanvasRenderingContext2D::createPattern): Check that the source canvas has
+ an ok ImageBuffer.
+
+2014-05-07 Pratik Solanki <psolanki@apple.com>
+
+ Use system defaults for hardware jpeg decoding
+ https://bugs.webkit.org/show_bug.cgi?id=132661
+ <rdar://problem/11348201>
+
+ Reviewed by Tim Horton.
+
+ Remove code that explicitly disabled hardware image decoding. Let the system decide what to do.
+
+ * WebCore.exp.in:
+ * platform/graphics/ImageSource.h:
+ (WebCore::ImageSource::acceleratedImageDecodingEnabled): Deleted.
+ (WebCore::ImageSource::setAcceleratedImageDecodingEnabled): Deleted.
+ * platform/graphics/cg/ImageSourceCG.cpp:
+ (WebCore::ImageSource::imageSourceOptions):
+
+2014-05-07 Radu Stavila <stavila@adobe.com>
+
+ Use after free in WebCore::RenderObject::nextSibling / WebCore::RenderBoxModelObject::moveChildrenTo
+ https://bugs.webkit.org/show_bug.cgi?id=132625
+
+ Reviewed by David Hyatt.
+
+ Fixed problem with dynamically inserting first letter elements.
+
+ Test: fast/multicol/newmulticol/first-letter-create.html
+
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::getFirstLetter):
+ (WebCore::RenderBlock::updateFirstLetter):
+ * rendering/RenderBlock.h:
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::moveChildrenTo):
+
+2014-05-07 Enrica Casucci <enrica@apple.com>
+
+ WK2: Programatic scroll requests during scroll or zoom animation to reveal focused element are ignored.
+ https://bugs.webkit.org/show_bug.cgi?id=132657
+ <rdar://problem/16468462>
+
+ Reviewed by Benjamin Poulain.
+
+ With the scrolling model we use on iOS, a programatic scroll
+ request can be received while we are still animating to reveal
+ the focused input element. The WebProcess is unaware that the
+ scroll position is being changed in the UIProcess, and does not
+ honor the scroll request from JavaScript.
+ This is patch changes the behavior for clients using scroll delegates
+ to always send the scroll request to the UIProcess without checking
+ the current scroll position.
+
+ * page/FrameView.h:
+ * platform/ScrollView.cpp:
+ (WebCore::ScrollView::setScrollPosition):
+ * platform/ScrollView.h:
+ (WebCore::ScrollView::inProgrammaticScroll):
+
+2014-05-07 Brent Fulgham <bfulgham@apple.com>
+
+ [Mac, iOS] REGRESSION: WK2 YouTube support
+ https://bugs.webkit.org/show_bug.cgi?id=132568
+ <rdar://problem/11464344>
+
+ Reviewed by Darin Adler.
+
+ Move the custom YouTube loader code out of the WebFrameLoaderClient into a
+ PluginReplacement-based class.
+
+ * Modules/plugins/PluginReplacement.h:
+ (WebCore::PluginReplacement::supportsURL): New predicate so we can restrict
+ use of a plugin to a particular category of URLs.
+ * Modules/plugins/QuickTimePluginReplacement.mm:
+ (WebCore::QuickTimePluginReplacement): Updated for new registrar signature.
+ * Modules/plugins/YouTubePluginReplacement.h: Added.
+ (WebCore::YouTubePluginReplacement::parentElement):
+ * Modules/plugins/YouTubePluginReplacement.cpp: Added.
+ (WebCore::YouTubePluginReplacement::registerPluginReplacement):
+ (WebCore::YouTubePluginReplacement::create):
+ (WebCore::YouTubePluginReplacement::supportsMimeType):
+ (WebCore::YouTubePluginReplacement::supportsFileExtension):
+ (WebCore::kit):
+ (WebCore::YouTubePluginReplacement::YouTubePluginReplacement):
+ (WebCore::YouTubePluginReplacement::createElementRenderer):
+ (WebCore::objectForKey):
+ (WebCore::YouTubePluginReplacement::installReplacement):
+ (WebCore::createYouTubeURL):
+ (WebCore::processAndCreateYouTubeURL):
+ (WebCore::YouTubePluginReplacement::youTubeURL):
+ * WebCore.exp.in: Add new export from WebCore.
+ * WebCore.xcodeproj/project.pbxproj:
+ * html/HTMLPlugInElement.cpp:
+ (WebCore::pluginReplacementForType): Update to also check that the URL is supported
+ by the plugin.
+ (WebCore::registeredPluginReplacements): Add new YouTubePluginReplacement to registry.
+ * html/HTMLPlugInImageElement.cpp:
+ (WebCore::HTMLPlugInImageElement::createElementRenderer): Remove custom YouTube code
+ now that this logic is handled in the plugin replacement class.
+ (WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree): Deleted.
+ * html/HTMLPlugInImageElement.h:
+ * html/shadow/YouTubeEmbedShadowElement.cpp:
+ (WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
+ (WebCore::YouTubeEmbedShadowElement::shadowPseudoId): Use correct pseudoID for the
+ plugin replacement architecture.
+ * html/shadow/YouTubeEmbedShadowElement.h:
+ * platform/mac/WebCoreNSURLExtras.h:
+ * platform/mac/WebCoreNSURLExtras.mm:
+ (WebCore::unescapedQueryValue): Moved from WebKit/Misc/WebNSURLExtras.
+ (WebCore::queryKeysAndValues): Ditto.
+
+2014-05-07 Simon Fraser <simon.fraser@apple.com>
+
+ [iOS] Acclerated overflow-scrolling broken in WK1
+ https://bugs.webkit.org/show_bug.cgi?id=132665
+ <rdar://problem/16842909>
+
+ Reviewed by Tim Horton.
+
+ r168301 added a CALayer delegate to disable implicit animations,
+ but for some layers we wrap them in UIViews (which are themselves
+ layer delegates), so bad things happened.
+
+ Fix by falling back to setting the null actions dictionary for
+ layers with custom scrolling behavior.
+
+ * platform/graphics/GraphicsLayer.h:
+ * platform/graphics/ca/mac/PlatformCALayerMac.h:
+ * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+ (PlatformCALayerMac::updateCustomBehavior):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::updateScrollingLayers):
+
+2014-05-07 Jeremy Jones <jeremyj@apple.com>
+
+ HTMLMediaElement should exitFullscreen when view is removed from the window.
+ https://bugs.webkit.org/show_bug.cgi?id=132506
+
+ Reviewed by Tim Horton.
+
+ * platform/ios/WebVideoFullscreenControllerAVKit.h:
+ Add -requestExitFullscreen.
+
+ * platform/ios/WebVideoFullscreenControllerAVKit.mm:
+ (-[WebVideoFullscreenController requestExitFullscreen]):
+ Forward request onto WebVideoFullscreenModelMediaElement.
+
+ * platform/ios/WebVideoFullscreenModelMediaElement.mm:
+ (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
+ Add some protection here since this may be called when not in fullscreen.
+
+2014-05-07 Dean Jackson <dino@apple.com>
+
+ Clean up the difference between painting focus rings and adding PDF annotations
+ https://bugs.webkit.org/show_bug.cgi?id=132638
+
+ Follow-up comments from Darin Adler.
+
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::paintOutline): Move "else if" to a separate "if" for clarity.
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::paintFocusRing): Don't guard against outlineIsAuto(). ASSERT instead.
+ (WebCore::RenderObject::addPDFURLRect): Give "rect" variable a better name.
+ (WebCore::RenderObject::paintOutline): Move "else if" to a separate "if" for clarity.
+
+2014-05-07 Alexey Proskuryakov <ap@apple.com>
+
+ Make blob size computation lazy
+ https://bugs.webkit.org/show_bug.cgi?id=132653
+
+ Reviewed by Anders Carlsson.
+
+ * fileapi/Blob.cpp:
+ (WebCore::Blob::Blob):
+ (WebCore::Blob::size):
+ * fileapi/Blob.h:
+ (WebCore::Blob::size): Deleted.
+ * fileapi/File.cpp:
+ (WebCore::File::size): Deleted.
+ * fileapi/File.h:
+ * fileapi/ThreadableBlobRegistry.cpp:
+ (WebCore::ThreadableBlobRegistry::registerFileBlobURL):
+ (WebCore::ThreadableBlobRegistry::registerBlobURL):
+ (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
+ (WebCore::ThreadableBlobRegistry::blobSize):
+ (WebCore::ThreadableBlobRegistry::unregisterBlobURL):
+ (WebCore::unregisterBlobURLTask): Deleted.
+ * fileapi/ThreadableBlobRegistry.h:
+ * platform/network/BlobData.cpp:
+ (WebCore::BlobData::appendData):
+ * platform/network/BlobRegistry.h:
+ * platform/network/BlobRegistryImpl.cpp:
+ (WebCore::BlobRegistryImpl::registerBlobURL):
+ (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
+ * platform/network/BlobRegistryImpl.h:
+
+2014-05-06 Simon Fraser <simon.fraser@apple.com>
+
+ Add scrolling tree logging to RemoteLayerTree output
+ https://bugs.webkit.org/show_bug.cgi?id=132640
+
+ Reviewed by Beth Dakin.
+
+ Support scrolling tree logging in the RemoteLayerTree log channel
+ output.
+
+ ScrollingStateTree::commit() unconditionally set treeStateClone->m_hasChangedProperties
+ to true, but we should set it based on original scrolling state tree's
+ m_hasChangedProperties.
+
+ We have to encode all of the scrolling state nodes anyway (they only encode
+ changed properties), but we can use this for future optimizations, and to
+ avoid spurious logging.
+
+ * WebCore.exp.in: Export a couple of things we need.
+ * page/scrolling/ScrollingStateTree.cpp:
+ (WebCore::ScrollingStateTree::commit):
+
+2014-05-07 Chris Fleizach <cfleizach@apple.com>
+
+ AX: aria-expanded changes are not communicated to clients
+ https://bugs.webkit.org/show_bug.cgi?id=132642
+
+ Reviewed by Mario Sanchez Prada.
+
+ When aria-expanded changes on non list/tree items, send out a generic
+ AXExpandedChange notification.
+
+ Test: platform/mac/accessibility/expanded-notification.html
+
+ * accessibility/AXObjectCache.h:
+ * accessibility/AccessibilityRenderObject.cpp:
+ (WebCore::AccessibilityRenderObject::handleAriaExpandedChanged):
+ * accessibility/mac/AXObjectCacheMac.mm:
+ (WebCore::AXObjectCache::postPlatformNotification):
+
+2014-05-07 Alexey Proskuryakov <ap@apple.com>
+
+ Release build fix.
+
+ * platform/MIMETypeRegistry.cpp: (WebCore::initializeSupportedImageMIMETypes):
+ Removed unused globals.
+
+2014-05-07 Alexey Proskuryakov <ap@apple.com>
+
+ Eliminate "well known MIME type" support
+ https://bugs.webkit.org/show_bug.cgi?id=132654
+
+ Reviewed by Anders Carlsson.
+
+ Vestiges of FileSystem API.
+
+ * dom/DataTransfer.cpp:
+ (WebCore::DataTransfer::files):
+ (WebCore::DataTransfer::hasFileOfType):
+ * fileapi/File.cpp:
+ (WebCore::File::File):
+ (WebCore::File::contentTypeFromFilePathOrName):
+ * fileapi/File.h:
+ * html/FileInputType.cpp:
+ (WebCore::FileInputType::createFileList):
+ * platform/MIMETypeRegistry.cpp:
+ (WebCore::initializeSupportedImageMIMETypes):
+ (WebCore::findMimeType): Deleted.
+ (WebCore::MIMETypeRegistry::getWellKnownMIMETypeForExtension): Deleted.
+ * platform/MIMETypeRegistry.h:
+
+2014-05-07 Christophe Dumez <ch.dumez@samsung.com>
+
+ [HTML] Default argument to HTMLTableElement.insertRow() should be -1
+ https://bugs.webkit.org/show_bug.cgi?id=132651
+
+ Reviewed by Alexey Proskuryakov.
+
+ HTMLTableElement.insertRow()'s argument default value should be -1, not 0,
+ as per the specification:
+ http://www.whatwg.org/specs/web-apps/current-work/multipage/tabular-data.html#htmltableelement
+
+ The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
+ https://codereview.chromium.org/270213007/
+
+ Test: fast/dom/HTMLTableElement/insertRow-default-argument.html
+
+ * html/HTMLTableElement.h:
+ * html/HTMLTableElement.idl:
+
+2014-05-07 Chris Fleizach <cfleizach@apple.com>
+
+ AX: AXSelectTextWithCriteria should support capitalize/lowercase/uppercase
+ https://bugs.webkit.org/show_bug.cgi?id=132622
+
+ Reviewed by Mario Sanchez Prada.
+
+ The select text with criteria mechanism used through accessibility needs to support
+ a few more parameters to be complete (including capitalize, lowercase and uppercase).
+
+ Updated: accessibility/select-text.html
+
+ * accessibility/AccessibilityObject.cpp:
+ (WebCore::AccessibilityObject::selectText):
+ * accessibility/AccessibilityObject.h:
+ * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
+ (accessibilitySelectTextCriteriaForCriteriaParameterizedAttribute):
+ * rendering/RenderText.cpp:
+ (WebCore::makeCapitalized):
+ * rendering/RenderText.h:
+
+2014-05-07 peavo@outlook.com <peavo@outlook.com>
+
+ DocumentLoader::dataReceived assertion failed
+ https://bugs.webkit.org/show_bug.cgi?id=132017
+
+ Reviewed by Brent Fulgham.
+
+ We need to call didReceiveResponse client method before the didReceiveData client method, otherwise we get a lot of asserts.
+ This patch also fixes frequent crashes in downloadTimerCallback method on page loading.
+
+ * platform/network/curl/ResourceHandleManager.cpp:
+ (WebCore::calculateWebTimingInformations): Initialize local variables.
+ (WebCore::headerCallback): Call didReceiveResponse client method here instead of in downloadTimerCallback.
+ (WebCore::ResourceHandleManager::downloadTimerCallback): Remove call to didReceiveResponse method.
+ (WebCore::ResourceHandleManager::dispatchSynchronousJob): Removed empty line.
+
+2014-05-06 Antti Koivisto <antti@apple.com>
+
+ REGRESSION: Animated GIF inside compositing layer never resumes animation when scrolled back into view
+ https://bugs.webkit.org/show_bug.cgi?id=132608
+
+ Reviewed by Simon Fraser.
+
+ Test: fast/repaint/animation-after-layer-scroll.html
+
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::scrollTo):
+
+ Check if any animations need to be restarted after layer scroll.
+
+2014-05-07 Hyowon Kim <hw1008.kim@samsung.com>
+
+ GraphicsLayer::client() should return a reference.
+ https://bugs.webkit.org/show_bug.cgi?id=126372
+
+ Reviewed by Simon Fraser.
+
+ GraphicsLayers always have a GraphicsLayerClient attached,
+ so make client() a reference and remove some unnecessary branches.
+ The author of the changes in the mac port is Andreas Kling <akling@apple.com>.
+
+ * WebCore.exp.in:
+ * platform/graphics/GraphicsLayer.cpp:
+ (WebCore::GraphicsLayer::GraphicsLayer):
+ (WebCore::GraphicsLayer::willBeDestroyed):
+ (WebCore::GraphicsLayer::paintGraphicsLayerContents):
+ (WebCore::GraphicsLayer::addRepaintRect):
+ (WebCore::dumpChildren):
+ (WebCore::GraphicsLayer::dumpProperties):
+ * platform/graphics/GraphicsLayer.h:
+ (WebCore::GraphicsLayer::client):
+ (WebCore::GraphicsLayer::pageScaleFactor):
+ (WebCore::GraphicsLayer::deviceScaleFactor):
+ * platform/graphics/GraphicsLayerFactory.h:
+ * platform/graphics/ca/GraphicsLayerCA.cpp:
+ (WebCore::GraphicsLayer::create):
+ (WebCore::GraphicsLayerCA::GraphicsLayerCA):
+ (WebCore::GraphicsLayerCA::initialize):
+ (WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
+ (WebCore::GraphicsLayerCA::computePositionRelativeToBase):
+ (WebCore::GraphicsLayerCA::flushCompositingStateForThisLayerOnly):
+ (WebCore::GraphicsLayerCA::computeVisibleRect):
+ (WebCore::GraphicsLayerCA::recursiveCommitChanges):
+ (WebCore::GraphicsLayerCA::platformCALayerContentsScaleMultiplierForNewTiles):
+ (WebCore::GraphicsLayerCA::platformCALayerShouldAggressivelyRetainTiles):
+ (WebCore::GraphicsLayerCA::platformCALayerShouldTemporarilyRetainTileCohorts):
+ (WebCore::GraphicsLayerCA::updateContentsOpaque):
+ (WebCore::GraphicsLayerCA::updateContentsScale):
+ (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
+ (WebCore::GraphicsLayerCA::noteLayerPropertyChanged):
+ * platform/graphics/ca/GraphicsLayerCA.h:
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
+ (WebCore::GraphicsLayer::create):
+ (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
+ (WebCore::GraphicsLayerTextureMapper::notifyChange):
+ (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
+ * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
+ * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
+ (WebCore::CompositingCoordinator::createRootLayer):
+ (WebCore::CompositingCoordinator::createGraphicsLayer):
+ * platform/graphics/texmap/coordinated/CompositingCoordinator.h:
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
+ (WebCore::CoordinatedGraphicsLayer::notifyFlushRequired):
+ (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
+ (WebCore::CoordinatedGraphicsLayer::computeTransformedVisibleRect):
+ (WebCore::CoordinatedGraphicsLayer::animationStartedTimerFired):
+ * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::createGraphicsLayer):
+ * rendering/RenderLayerCompositor.cpp:
+ (WebCore::RenderLayerCompositor::updateLayerForTopOverhangArea):
+ (WebCore::RenderLayerCompositor::updateLayerForBottomOverhangArea):
+ (WebCore::RenderLayerCompositor::updateLayerForHeader):
+ (WebCore::RenderLayerCompositor::updateLayerForFooter):
+ (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
+ (WebCore::RenderLayerCompositor::ensureRootLayer):
+
+2014-05-07 Xabier Rodriguez Calvar <calvaris@igalia.com>
+
+ [GStreamer] Corrected typo
+ https://bugs.webkit.org/show_bug.cgi?id=132609
+
+ Reviewed by Martin Robinson.
+
+ Corrected m_canFallBackToLastFinishedSeekPositon typo and
+ initialized in the constructor to prevent problems in the future.
+
+ No test needed.
+
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+ (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
+ Initialized m_canFallBackToLastFinishedSeekPosition as false.
+ (WebCore::MediaPlayerPrivateGStreamer::playbackPosition):
+ (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
+ (WebCore::MediaPlayerPrivateGStreamer::asyncStateChangeDone):
+ * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
+ m_canFallBackToLastFinishedSeekPositon ->
+ m_canFallBackToLastFinishedSeekPosition
+
+2014-05-07 Gyuyoung Kim <gyuyoung.kim@samsung.com>
+
+ Convert PassOwnPtr to unique_ptr in CrossThreadTask.h
+ https://bugs.webkit.org/show_bug.cgi?id=132605
+
+ Reviewed by Dirk Schulze.
+
+ * dom/CrossThreadTask.h: Converted.
+
+2014-05-07 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [SOUP] TLSErrors do not cause page load to fail when not ignored
+ https://bugs.webkit.org/show_bug.cgi?id=121548
+
+ Reviewed by Sergio Villar Senin.
+
+ This only happens in case of redirection, when the initial URL is
+ an HTTPS site with an invalid certificate, that redirects to
+ another location. We are starting the redirection without checking
+ the TLS errors.
+
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::sendRequestCallback): Check TLS errors before starting a
+ possible redirection.
+
+2014-05-07 Manuel Rego Casasnovas <rego@igalia.com>
+
+ [CSS Grid Layout] Remove runtime feature
+ https://bugs.webkit.org/show_bug.cgi?id=132382
+
+ Reviewed by Benjamin Poulain.
+
+ Remove cssGridLayoutEnabled setting. Update methods using it accordingly.
+
+ * WebCore.order:
+ * css/CSSParser.cpp:
+ (WebCore::CSSParserContext::CSSParserContext):
+ (WebCore::operator==):
+ (WebCore::isValidKeywordPropertyAndValue):
+ (WebCore::CSSParser::parseValue):
+ (WebCore::CSSParser::parseGridTemplateShorthand):
+ (WebCore::CSSParser::parseGridAreaShorthand):
+ (WebCore::CSSParser::cssGridLayoutEnabled): Deleted.
+ * css/CSSParser.h:
+ * css/CSSParserMode.h:
+ * dom/Document.cpp:
+ (WebCore::Document::cssGridLayoutEnabled): Deleted.
+ * dom/Document.h:
+ * page/Settings.in:
+
+2014-05-07 Praveen R Jadhav <praveen.j@samsung.com>
+
+ Fix build errors for BlobDataItem after r168391.
+ https://bugs.webkit.org/show_bug.cgi?id=132643
+
+ Reviewed by Carlos Garcia Campos.
+
+ Patch updates BlobDataItem params usage in ResourceHandleSoup.cpp
+ to be inline with r168391.
+
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::blobIsOutOfDate): BlobDataItem class is updated in r168391.
+ Corresponding parameter changes are done to resolve build error.
+ (WebCore::addEncodedBlobItemToSoupMessageBody): BlobDataItem class is updated
+ in r168391. Corresponding parameter changes are done to resolve build error.
+
</ins><span class="cx"> 2014-05-06 Dean Jackson <dino@apple.com>
</span><span class="cx">
</span><span class="cx"> Clean up the difference between painting focus rings and adding PDF annotations
</span></span></pre></div>
<a id="branchessafari53834branchSourceWebCoreplatformgraphicsavfoundationobjcMediaPlayerPrivateMediaSourceAVFObjCmm"></a>
<div class="modfile"><h4>Modified: branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm (169074 => 169075)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm        2014-05-19 22:04:29 UTC (rev 169074)
+++ branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm        2014-05-19 22:07:10 UTC (rev 169075)
</span><span class="lines">@@ -417,8 +417,15 @@
</span><span class="cx">
</span><span class="cx"> void MediaPlayerPrivateMediaSourceAVFObjC::seekInternal(double time, double negativeThreshold, double positiveThreshold)
</span><span class="cx"> {
</span><del>- MediaTime seekTime = m_mediaSourcePrivate ? m_mediaSourcePrivate->seekToTime(MediaTime::createWithDouble(time), MediaTime::createWithDouble(positiveThreshold), MediaTime::createWithDouble(negativeThreshold)) : MediaTime::zeroTime();
</del><ins>+ if (!m_mediaSourcePrivate)
+ return;
</ins><span class="cx">
</span><ins>+ MediaTime seekTime = MediaTime::createWithDouble(time);
+ if (!negativeThreshold && !positiveThreshold)
+ m_mediaSourcePrivate->seekToTime(seekTime);
+ else
+ seekTime = m_mediaSourcePrivate->seekToTime(seekTime, MediaTime::createWithDouble(positiveThreshold), MediaTime::createWithDouble(negativeThreshold));
+
</ins><span class="cx"> [m_synchronizer setRate:(m_playing ? m_rate : 0) time:toCMTime(seekTime)];
</span><span class="cx"> }
</span><span class="cx">
</span></span></pre></div>
<a id="branchessafari53834branchSourceWebCoreplatformgraphicsavfoundationobjcMediaSourcePrivateAVFObjCh"></a>
<div class="modfile"><h4>Modified: branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h (169074 => 169075)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h        2014-05-19 22:04:29 UTC (rev 169074)
+++ branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h        2014-05-19 22:07:10 UTC (rev 169075)
</span><span class="lines">@@ -67,6 +67,7 @@
</span><span class="cx"> bool hasAudio() const;
</span><span class="cx"> bool hasVideo() const;
</span><span class="cx">
</span><ins>+ void seekToTime(MediaTime);
</ins><span class="cx"> MediaTime seekToTime(MediaTime, MediaTime negativeThreshold, MediaTime positiveThreshold);
</span><span class="cx"> IntSize naturalSize() const;
</span><span class="cx">
</span></span></pre></div>
<a id="branchessafari53834branchSourceWebCoreplatformgraphicsavfoundationobjcMediaSourcePrivateAVFObjCmm"></a>
<div class="modfile"><h4>Modified: branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm (169074 => 169075)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm        2014-05-19 22:04:29 UTC (rev 169074)
+++ branches/safari-538.34-branch/Source/WebCore/platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm        2014-05-19 22:07:10 UTC (rev 169075)
</span><span class="lines">@@ -178,17 +178,23 @@
</span><span class="cx"> return std::any_of(m_activeSourceBuffers.begin(), m_activeSourceBuffers.end(), MediaSourcePrivateAVFObjCHasVideo);
</span><span class="cx"> }
</span><span class="cx">
</span><ins>+void MediaSourcePrivateAVFObjC::seekToTime(MediaTime time)
+{
+ for (auto& buffer : m_activeSourceBuffers)
+ buffer->seekToTime(time);
+}
+
</ins><span class="cx"> MediaTime MediaSourcePrivateAVFObjC::seekToTime(MediaTime targetTime, MediaTime negativeThreshold, MediaTime positiveThreshold)
</span><span class="cx"> {
</span><span class="cx"> MediaTime seekTime = targetTime;
</span><ins>+
</ins><span class="cx"> for (auto it = m_activeSourceBuffers.begin(), end = m_activeSourceBuffers.end(); it != end; ++it) {
</span><span class="cx"> MediaTime sourceSeekTime = (*it)->fastSeekTimeForMediaTime(targetTime, negativeThreshold, positiveThreshold);
</span><span class="cx"> if (abs(targetTime - sourceSeekTime) > abs(targetTime - seekTime))
</span><span class="cx"> seekTime = sourceSeekTime;
</span><span class="cx"> }
</span><span class="cx">
</span><del>- for (auto it = m_activeSourceBuffers.begin(), end = m_activeSourceBuffers.end(); it != end; ++it)
- (*it)->seekToTime(seekTime);
</del><ins>+ seekToTime(seekTime);
</ins><span class="cx">
</span><span class="cx"> return seekTime;
</span><span class="cx"> }
</span></span></pre></div>
<a id="branchessafari53834branchSourceWebKit2ChangeLog"></a>
<div class="modfile"><h4>Modified: branches/safari-538.34-branch/Source/WebKit2/ChangeLog (169074 => 169075)</h4>
<pre class="diff"><span>
<span class="info">--- branches/safari-538.34-branch/Source/WebKit2/ChangeLog        2014-05-19 22:04:29 UTC (rev 169074)
+++ branches/safari-538.34-branch/Source/WebKit2/ChangeLog        2014-05-19 22:07:10 UTC (rev 169075)
</span><span class="lines">@@ -2,6 +2,27 @@
</span><span class="cx">
</span><span class="cx"> Merge r169039.
</span><span class="cx">
</span><ins>+ 2014-05-16 Jer Noble <jer.noble@apple.com>
+
+ [Mac][MSE] setCurrentTime() goes down fastSeek path in MediaPlayerPrivateMediaSourceAVFObjC.
+ https://bugs.webkit.org/show_bug.cgi?id=133023
+
+ Reviewed by Eric Carlson.
+
+ When seeking a MSE video, do not go down the fastSeekForMediaTime() path if the
+ seek resulted from a setCurrentTime() call. The logic can lead to attempted seeks
+ before buffered ranges.
+
+ * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
+ (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
+ * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
+ * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
+ (WebCore::MediaSourcePrivateAVFObjC::seekToTime):
+
+2014-05-19 Matthew Hanson <matthew_hanson@apple.com>
+
+ Merge r169039.
+
</ins><span class="cx"> 2014-05-19 Mark Rowe <mrowe@apple.com>
</span><span class="cx">
</span><span class="cx"> Build fix after r169023.
</span></span></pre>
</div>
</div>
</body>
</html>