ChangeLog-2014-10-07   [plain text]


2014-10-07  Andreas Kling  <akling@apple.com>

        Use more Ref and PassRef for Gradient.
        <https://webkit.org/b/137490>

        Codify the fact that CanvasGradient always has an internal WebCore::Gradient
        and make GraphicsContext gradient setters take PassRef, exposing some
        unnecessary null checks.

        Reviewed by Christophe Dumez.

        * WebCore.exp.in:
        * html/canvas/CanvasGradient.h:
        (WebCore::CanvasGradient::gradient):
        * platform/graphics/Gradient.h:
        (WebCore::Gradient::create):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::setStrokeGradient):
        (WebCore::GraphicsContext::setFillGradient):
        * platform/graphics/GraphicsContext.h:
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::paintProgressBar):
        * rendering/svg/RenderSVGPath.cpp:
        (WebCore::useStrokeStyleToFill):
        * rendering/svg/RenderSVGResourceGradient.cpp:
        (WebCore::RenderSVGResourceGradient::applyResource):

2014-10-07  Martin Hock  <mhock@apple.com>

        Defer resolution of viewport size.
        https://bugs.webkit.org/show_bug.cgi?id=137376
        rdar://problem/18558094

        Reviewed by Benjamin Poulain.

        ViewportConfiguration should resolve the viewport size on configuration update.

        * dom/Document.cpp:
        (WebCore::Document::processViewport): Defer resolution of viewport size.
        * dom/ViewportArguments.cpp:
        (WebCore::finalizeViewportArguments): Deleted.
        * dom/ViewportArguments.h:
        * page/ViewportConfiguration.cpp:
        (WebCore::ViewportConfiguration::updateConfiguration): Resolve viewport size.
        (WebCore::ViewportConfiguration::viewportArgumentsLength): Resolves width or height based on viewport arguments.
        * page/ViewportConfiguration.h:

2014-10-07  Pratik Solanki  <psolanki@apple.com>

        [iOS] WebKit1 clients crash in DiskCacheMonitor::tryGetFileBackedSharedBufferFromCFURLCachedResponse()
        https://bugs.webkit.org/show_bug.cgi?id=137495
        <rdar://problem/18495034>

        Reviewed by Andreas Kling.

        Retain/release the CFCachedURLResponseRef object otherwise we could access a deleted object
        and crash on the web thread.

        * loader/cocoa/DiskCacheMonitorCocoa.mm:
        (WebCore::DiskCacheMonitor::DiskCacheMonitor):

2014-10-07  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for RenderText / RenderTextFragment
        https://bugs.webkit.org/show_bug.cgi?id=137476

        Reviewed by Darin Adler.

        Use is<>() / downcast<>() for RenderText / RenderTextFragment, and
        clean up the surrounding code.

        No new tests, no behavior change.

        * WebCore.exp.in:
        Export symbol for RenderInline::linesBoundingBox() as it is used by
        RenderInline::orderBoundingBox() which is inlined and now called in
        WebRenderNode.mm.

        * WebCore.xcodeproj/project.pbxproj:
        Make RenderInline.h header as Private so that it can be included by
        WebRenderNode.mm, similarly to RenderText.h.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::textUnderElement):
        (WebCore::AccessibilityRenderObject::boundingBoxRect):
        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::passwordFieldValue):
        * accessibility/atk/AccessibilityObjectAtk.cpp:
        (WebCore::AccessibilityObject::getLengthForTextRange):
        * bindings/objc/DOMUIKitExtensions.mm:
        (-[DOMNode textHeight]):
        (-[DOMNode findExplodedTextNodeAtPoint:]):
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::getUpperLeftCorner):
        (WebCore::ContainerNode::getLowerRightCorner):
        * dom/DocumentMarkerController.cpp:
        (WebCore::DocumentMarkerController::addMarker):
        * dom/Position.cpp:
        (WebCore::hasInlineBoxWrapper):
        (WebCore::Position::upstream):
        (WebCore::Position::downstream):
        (WebCore::Position::hasRenderedNonAnonymousDescendantsWithHeight):
        (WebCore::Position::isCandidate):
        (WebCore::Position::rendersInDifferentPosition):
        (WebCore::searchAheadForBetterMatch):
        (WebCore::Position::getInlineBoxAndOffset):
        * dom/PositionIterator.cpp:
        (WebCore::PositionIterator::isCandidate):
        * dom/Range.cpp:
        (WebCore::Range::textRects):
        (WebCore::Range::textQuads):
        (WebCore::Range::getBorderAndTextQuads):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::debugRenderer):
        * editing/TextIterator.cpp:
        (WebCore::hasVisibleTextNode):
        (WebCore::TextIterator::handleTextNode):
        (WebCore::maxOffsetIncludingCollapsedSpaces):
        (WebCore::SimplifiedBackwardsTextIterator::handleFirstLetter):
        * editing/VisibleUnits.cpp:
        (WebCore::startOfParagraph):
        (WebCore::endOfParagraph):
        * page/FrameView.cpp:
        (WebCore::countRenderedCharactersInRenderObjectWithThreshold):
        * rendering/BidiRun.cpp:
        (WebCore::BidiRun::BidiRun):
        * rendering/InlineIterator.cpp:
        (WebCore::InlineIterator::surrogateTextDirection):
        * rendering/InlineIterator.h:
        (WebCore::InlineIterator::atTextParagraphSeparator):
        (WebCore::InlineIterator::atParagraphSeparator):
        (WebCore::isEmptyInline):
        (WebCore::InlineIterator::fastIncrementInTextNode):
        (WebCore::InlineIterator::increment):
        (WebCore::InlineIterator::characterAt):
        (WebCore::InlineIterator::direction):
        * rendering/InlineTextBox.h:
        (WebCore::InlineTextBox::renderer):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateFirstLetterStyle):
        (WebCore::RenderBlock::updateFirstLetter):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::deleteLineBoxesBeforeSimpleLineLayout):
        (WebCore::isVisibleRenderText):
        (WebCore::RenderBlockFlow::adjustComputedFontSizes):
        (WebCore::stripTrailingSpace):
        (WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::createInlineBoxForRenderer):
        (WebCore::dirtyLineBoxesForRenderer):
        (WebCore::reachedEndOfTextRenderer):
        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
        (WebCore::RenderBlockFlow::computeBlockDirectionPositionsForLine):
        (WebCore::RenderBlockFlow::handleTrailingSpaces):
        (WebCore::RenderBlockFlow::determineStartPosition):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::moveChildrenTo):
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::hasImmediateNonWhitespaceTextChildOrBorderOrOutline):
        (WebCore::RenderElement::addChild):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::generateCulledLineBoxRects):
        (WebCore::RenderInline::culledInlineFirstLineBox):
        (WebCore::RenderInline::culledInlineLastLineBox):
        (WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
        (WebCore::RenderInline::dirtyLineBoxes):
        * rendering/RenderInline.h:
        Make borderBoundingBox() public so that call sites (here
        WebRenderNode.mm) can use tighter typing and benefit from the virtual
        function being final.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLineBoxList.cpp:
        (WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::getRanges):
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::getOverhang):
        * rendering/RenderSelectionInfo.cpp:
        (WebCore::RenderSelectionInfo::RenderSelectionInfo):
        * rendering/RenderText.cpp:
        (WebCore::isInlineFlowOrEmptyText):
        (WebCore::RenderText::previousCharacter):
        * rendering/RenderText.h:
        (WebCore::Text::renderer):
        * rendering/RenderTextFragment.h:
        (isType):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::RenderTreeAsText::writeRenderObject):
        (WebCore::write):
        * rendering/SimpleLineLayout.cpp:
        (WebCore::SimpleLineLayout::canUseFor):
        (WebCore::SimpleLineLayout::create):
        * rendering/SimpleLineLayoutFunctions.cpp:
        (WebCore::SimpleLineLayout::paintFlow):
        (WebCore::SimpleLineLayout::hitTestFlow):
        * rendering/SimpleLineLayoutResolver.h:
        (WebCore::SimpleLineLayout::RunResolver::RunResolver):
        * rendering/TextAutoSizing.cpp:
        (WebCore::TextAutoSizingValue::addNode):
        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::containerIsRowOfLinks):
        (WebCore::TextAutosizer::measureDescendantTextWidth):
        * rendering/line/BreakingContextInlineHeaders.h:
        (WebCore::BreakingContext::commitLineBreakAtCurrentWidth):
        (WebCore::shouldAddBorderPaddingMargin):
        (WebCore::shouldSkipWhitespaceAfterStartObject):
        (WebCore::BreakingContext::handleText):
        (WebCore::textBeginsWithBreakablePosition):
        (WebCore::BreakingContext::canBreakAtThisPosition):

2014-10-07  Jer Noble  <jer.noble@apple.com>

        [Media] Expose AudioTracks in the "captions" menu.
        https://bugs.webkit.org/show_bug.cgi?id=137472

        Reviewed by Brent Fulgham.

        Test: media/video-controls-audiotracks-trackmenu.html

        If more than one AudioTrack is present in the video element, add those tracks to the
        captions menu:
        * English.lproj/mediaControlsLocalizedStrings.js:
        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.addVideoListeners):
        (Controller.prototype.removeVideoListeners):
        (Controller.prototype.handleAudioTrackChange):
        (Controller.prototype.handleAudioTrackAdd):
        (Controller.prototype.handleAudioTrackRemove):
        (Controller.prototype.updateCaptionButton):
        (Controller.prototype.buildCaptionMenu):
        (Controller.prototype.handleCaptionItemKeyUp):
        (Controller.prototype.audioTrackItemSelected):
        (Controller.prototype.focusSiblingAudioTrackItem):
        (Controller.prototype.handleAudioTrackItemKeyUp):

        Add support to MediaControlHost for retrieving the sorted audio track list, and the
        localized names for every audio track:
        * Modules/mediacontrols/MediaControlsHost.cpp:
        (WebCore::MediaControlsHost::sortedTrackListForMenu):
        (WebCore::MediaControlsHost::displayNameForTrack):
        * Modules/mediacontrols/MediaControlsHost.h:
        * Modules/mediacontrols/MediaControlsHost.idl:
        * page/CaptionUserPreferences.cpp:
        (WebCore::trackDisplayName):
        (WebCore::CaptionUserPreferences::displayNameForTrack):
        (WebCore::CaptionUserPreferences::sortedTrackListForMenu):
        * page/CaptionUserPreferences.h:
        * platform/LocalizedStrings.cpp:
        (WebCore::audioTrackNoLabelText):
        * platform/LocalizedStrings.h:
        * platform/efl/LocalizedStringsEfl.cpp:
        (WebCore::audioTrackNoLabelText):
        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::audioTrackNoLabelText):

        Drive-by fix; do not recurse into AudioTrackPrivate->setEnabled() when the enabled
        state changes.
        * html/track/AudioTrack.cpp:
        (WebCore::AudioTrack::enabledChanged):

        Fix possible out-of-bounds Vector access when adding tracks to a track list by
        sorting the list at insert time, rather than inserting into the track's reported
        position in the Vector:
        * html/track/AudioTrackList.cpp:
        (AudioTrackList::append):
        * html/track/VideoTrackList.cpp:
        (VideoTrackList::append):

        Correctly report the trackIndex of audio and video tracks from AVFoundation:
        * platform/graphics/avfoundation/AudioTrackPrivateAVF.h:
        (WebCore::AudioTrackPrivateAVF::trackIndex):
        (WebCore::AudioTrackPrivateAVF::setTrackIndex):
        (WebCore::AudioTrackPrivateAVF::AudioTrackPrivateAVF):
        * platform/graphics/avfoundation/VideoTrackPrivateAVF.h:
        (WebCore::VideoTrackPrivateAVF::trackIndex):
        (WebCore::VideoTrackPrivateAVF::setTrackIndex):
        (WebCore::VideoTrackPrivateAVF::VideoTrackPrivateAVF):
        * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
        (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack):
        * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
        (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack):

2014-10-07  Christophe Dumez  <cdumez@apple.com>

        [WK2] Use is<>() / downcast<>() for DrawingAreaProxy subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137477

        Reviewed by Andreas Kling.

        Include TypeCastsCF.h now that the header was renamed.

        No new tests, no behavior change.

        * platform/cf/SharedBufferCF.cpp:

2014-10-07  Carlos Garcia Campos  <cgarcia@igalia.com>

        [SOUP] TLS errors should take precedence over HTTP authentication
        https://bugs.webkit.org/show_bug.cgi?id=137300

        Reviewed by Sergio Villar Senin.

        Handle TLS errors in got-headers callback to make sure it happens
        before starting the authentication process.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::handleUnignoredTLSErrors): Refactored to receive the
        soup message.
        (WebCore::gotHeadersCallback): Return early and cancel the request in case of TLS errors.
        (WebCore::sendRequestCallback): Do not handle TLS errors here, the request should have already been
        cancelled at this point in case of TLS errors.

2014-10-07  Andy Estes  <aestes@apple.com>

        Fix a warning when passing an NSInteger to abs().
        https://bugs.webkit.org/show_bug.cgi?id=137480

        Reviewed by Mark Rowe.

        Use std::abs() instead, which is overloaded for both long (a.k.a. NSInteger) and int.

        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError):
        (WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError):

2014-10-06  Darin Adler  <darin@apple.com>

        Make StringView check the lifetime of the StringImpl it's created from
        https://bugs.webkit.org/show_bug.cgi?id=137202

        Reviewed by Anders Carlsson.

        * platform/graphics/TextRun.cpp: Update since TextRun's definition now
        uses a StringView.

2014-10-06  Andy Estes  <aestes@apple.com>

        [iOS] Fix remaining misuses of abs() and fabsf()
        https://bugs.webkit.org/show_bug.cgi?id=130947

        Reviewed by Simon Fraser.

        Fixed issues found when compiling with -Wabsolute-value.

        * platform/ios/ScrollAnimatorIOS.mm:
        (WebCore::ScrollAnimatorIOS::handleTouchEvent): Called abs() instead of fabsf for integral types. Explicitly
        cast the divisor to float in the call to atanf().
        * platform/ios/wak/WKView.mm:
        (_WKViewAutoresizeCoord): Explicitly cast origMarginsTotal to an int before calling abs(). Added a FIXME
        indicating the strange behavior when origMarginsTotal is in the range (0, 1) (as pointed out by Darin).

2014-10-06  Andreas Kling  <akling@apple.com>

        CanvasPattern always has an internal WebCore::Pattern.
        <https://webkit.org/b/137456>

        Use more Ref & PassRef for CanvasPattern and Pattern.

        Removed some impossible null checks in GraphicsContext that
        got exposed as compile errors with these changes.

        Reviewed by Anders Carlsson.

        * html/canvas/CanvasPattern.h:
        (WebCore::CanvasPattern::pattern):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::setStrokePattern):
        (WebCore::GraphicsContext::setFillPattern):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/Pattern.cpp:
        (WebCore::Pattern::create):
        * platform/graphics/Pattern.h:
        * platform/graphics/filters/FETile.cpp:
        (WebCore::FETile::platformApplySoftware):
        * rendering/svg/RenderSVGPath.cpp:
        (WebCore::useStrokeStyleToFill):
        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::applyResource):

2014-10-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Restore previous scroll position using restoreViewState()
        https://bugs.webkit.org/show_bug.cgi?id=136999

        Reviewed by Benjamin Poulain.

        There are duplicating code paths to restore previous scroll position and scale factor in
        HistoryController::restoreScrollPositionAndViewState. EFL port has processed the two code paths.
        It causes wrong rendering update or scroll position change when previous page's scroll position
        is restored. Thus EFL port begins to use restoreViewState() to restore scroll position and scale factor.
        This patch is first step to support it.

        Additionally EFL port has supported to use ScrollingCoordinatorCoordinatedGraphics::requestScrollPositionUpdate()
        since r173785. So EFL port can use the requestScrollPositionUpdate() to restore scroll position on previous page
        instead of delegatedScrollRequested(). However setScrollPosition() can't be used there for now, because iOS port
        should call it when delegatesScrolling is disabled. On the other hand, EFL port supports it only when delegatesScrolling
        is enabled.

        Test covered by WKViewRestoreZoomAndScrollBackForward API test.

        * loader/HistoryController.cpp:
        (WebCore::HistoryController::restoreScrollPositionAndViewState):
        EFL port only calls restoreViewState() to restore previous page's view state.

        * page/Page.cpp:
        (WebCore::Page::setPageScaleFactor):

2014-10-06  Benjamin Poulain  <bpoulain@apple.com>

        Web Inspector: Highlighted selectors in Rules sidebar break with selectors that contain nested selector lists
        https://bugs.webkit.org/show_bug.cgi?id=137378

        Reviewed by Joseph Pecoraro.

        We should not update the parser's selectorRange when matching a nested selector list.

        To implement this with low risk of unbalanced start+end and good error recovery,
        I have wrapped the parsing of selector_list between a start/end function at the grammar
        level. Whenever the parser enter a nested selector list, m_nestedSelectorLevel goes up
        by one. Any time the parsing is currently in a nested selector list, we never update
        the selector ranges.

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::CSSParser):
        (WebCore::CSSParser::markSelectorStart):
        (WebCore::CSSParser::markSelectorEnd):
        * css/CSSParser.h:
        (WebCore::CSSParser::startNestedSelectorList):
        (WebCore::CSSParser::endNestedSelectorList):

2014-10-06  Roger Fong  <roger_fong@apple.com>

        [Windows] Build fix for EWS bots.

        * WebCore.vcxproj/WebCoreGenerated.make: Make sure we always regenerate WebCore derived sources.

2014-10-06  Christophe Dumez  <cdumez@apple.com>

        Add is<>() / downcast<>() support for RenderObject subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137424

        Reviewed by Benjamin Poulain.

        Add is<>() / downcast<>() support for RenderObject subclasses, and
        get rid of IsRendererOfType traits struct as we can now rely on the
        TypeCastsTraits instead.

        toRender*() is still supported for most render objects because I did
        not want to remove all usages in this patch, to keep the size small.
        For now, only the MathML render objects were ported over to using
        is<>() / downcast<>(). Other render objects will be taken care of in
        follow-up patches and I will drop support for toRender*()
        incrementally.

        No new tests, no behavior change.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isMathFenceOperator):
        (WebCore::AccessibilityRenderObject::isMathSeparatorOperator):
        (WebCore::AccessibilityRenderObject::mathLineThickness):
        * dom/make_names.pl:
        (printTypeHelpers):
        * mathml/MathMLInlineContainerElement.cpp:
        (WebCore::MathMLInlineContainerElement::childrenChanged):
        * mathml/MathMLTextElement.cpp:
        (WebCore::MathMLTextElement::didAttachRenderers):
        (WebCore::MathMLTextElement::childrenChanged):
        * rendering/RenderAncestorIterator.h:
        (WebCore::lineageOfType):
        * rendering/RenderBlock.h:
        * rendering/RenderBlockFlow.h:
        * rendering/RenderBox.h:
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderButton.h:
        * rendering/RenderCombineText.h:
        * rendering/RenderCounter.h:
        * rendering/RenderDetailsMarker.h:
        * rendering/RenderElement.h:
        * rendering/RenderEmbeddedObject.h:
        * rendering/RenderFieldset.h:
        * rendering/RenderFileUploadControl.h:
        * rendering/RenderFlexibleBox.h:
        * rendering/RenderFlowThread.h:
        * rendering/RenderFrame.h:
        * rendering/RenderFrameSet.h:
        * rendering/RenderFullScreen.h:
        * rendering/RenderGrid.h:
        * rendering/RenderHTMLCanvas.h:
        * rendering/RenderIFrame.h:
        * rendering/RenderImage.h:
        * rendering/RenderInline.h:
        * rendering/RenderIterator.h:
        (WebCore::isRendererOfType):
        (WebCore::RenderTraversal::firstChild):
        (WebCore::RenderTraversal::lastChild):
        (WebCore::RenderTraversal::nextSibling):
        (WebCore::RenderTraversal::previousSibling):
        (WebCore::RenderTraversal::findAncestorOfType):
        * rendering/RenderLayerModelObject.h:
        * rendering/RenderLineBreak.h:
        * rendering/RenderListBox.h:
        * rendering/RenderListItem.h:
        * rendering/RenderListMarker.h:
        * rendering/RenderMedia.h:
        * rendering/RenderMenuList.h:
        * rendering/RenderMeter.h:
        * rendering/RenderMultiColumnFlowThread.h:
        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderMultiColumnSpannerPlaceholder.h:
        * rendering/RenderNamedFlowFragment.h:
        * rendering/RenderNamedFlowThread.h:
        * rendering/RenderObject.h:
        (WebCore::RenderObject>): Deleted.
        * rendering/RenderProgress.h:
        * rendering/RenderQuote.h:
        * rendering/RenderRegion.h:
        * rendering/RenderReplaced.h:
        * rendering/RenderRubyRun.h:
        * rendering/RenderScrollbarPart.h:
        * rendering/RenderSearchField.h:
        * rendering/RenderSlider.h:
        * rendering/RenderSnapshottedPlugIn.h:
        * rendering/RenderTable.h:
        * rendering/RenderTableCaption.h:
        * rendering/RenderTableCell.h:
        * rendering/RenderTableCol.h:
        * rendering/RenderTableRow.h:
        * rendering/RenderTableSection.h:
        * rendering/RenderText.h:
        * rendering/RenderTextControl.h:
        * rendering/RenderTextControlMultiLine.h:
        * rendering/RenderTextControlSingleLine.h:
        * rendering/RenderTextFragment.h:
        * rendering/RenderVideo.h:
        * rendering/RenderView.h:
        * rendering/RenderWidget.h:
        * rendering/mathml/RenderMathMLBlock.h:
        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::updateFromElement):
        * rendering/mathml/RenderMathMLFraction.cpp:
        (WebCore::RenderMathMLFraction::unembellishedOperator):
        * rendering/mathml/RenderMathMLFraction.h:
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLRadicalOperator.h:
        * rendering/mathml/RenderMathMLRoot.cpp:
        (WebCore::RenderMathMLRoot::baseWrapper):
        (WebCore::RenderMathMLRoot::radicalWrapper):
        (WebCore::RenderMathMLRoot::indexWrapper):
        (WebCore::RenderMathMLRoot::radicalOperator):
        (WebCore::RenderMathMLRootWrapper::removeChild):
        * rendering/mathml/RenderMathMLRoot.h:
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::updateOperatorProperties):
        (WebCore::RenderMathMLRow::layout):
        * rendering/mathml/RenderMathMLRow.h:
        * rendering/mathml/RenderMathMLScripts.cpp:
        (WebCore::RenderMathMLScripts::addChildInternal):
        (WebCore::RenderMathMLScripts::removeChildInternal):
        (WebCore::RenderMathMLScripts::unembellishedOperator):
        (WebCore::RenderMathMLScripts::layout):
        (WebCore::RenderMathMLScriptsWrapper::addChildInternal):
        (WebCore::RenderMathMLScriptsWrapper::addChild):
        (WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
        (WebCore::RenderMathMLScriptsWrapper::removeChild):
        * rendering/mathml/RenderMathMLScripts.h:
        * rendering/mathml/RenderMathMLSpace.h:
        * rendering/mathml/RenderMathMLSquareRoot.h:
        * rendering/mathml/RenderMathMLToken.h:
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        (WebCore::RenderMathMLUnderOver::unembellishedOperator):
        * rendering/svg/RenderSVGContainer.h:
        * rendering/svg/RenderSVGGradientStop.h:
        * rendering/svg/RenderSVGImage.h:
        * rendering/svg/RenderSVGInlineText.h:
        * rendering/svg/RenderSVGModelObject.h:
        * rendering/svg/RenderSVGPath.h:
        * rendering/svg/RenderSVGResourceContainer.h:
        * rendering/svg/RenderSVGResourceFilter.h:
        * rendering/svg/RenderSVGRoot.h:
        * rendering/svg/RenderSVGShape.h:
        * rendering/svg/RenderSVGText.h:
        * rendering/svg/RenderSVGTextPath.h:
        * rendering/svg/RenderSVGViewportContainer.h:

2014-10-06  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for ScrollingTreeNode subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137451

        Reviewed by Tim Horton.

        Use is<>() / downcast<>() for ScrollingTreeNode subclasses.

        No new tests, no behavior change.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::handleWheelEvent):
        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
        * page/scrolling/ScrollingTreeNode.h:
        * page/scrolling/ScrollingTreeOverflowScrollingNode.h:
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/mac/ScrollingTreeFixedNode.h:
        * page/scrolling/mac/ScrollingTreeStickyNode.h:
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):

2014-10-06  Myles C. Maxfield  <mmaxfield@apple.com>

        Addressing post-review comment on r174297.
        https://bugs.webkit.org/show_bug.cgi?id=137355

        Unreviewed.

        * rendering/RenderText.cpp:
        (WebCore::RenderText::stringView):

2014-10-06  Myles C. Maxfield  <mmaxfield@apple.com>

        Unreviewed merge fix for r174279.
        https://bugs.webkit.org/show_bug.cgi?id=137097

        * svg/SVGToOTFFontConversion.cpp:
        (WebCore::SVGToOTFFontConverter::convertSVGToOTFFont):

2014-10-06  David Hyatt  <hyatt@apple.com>

        REGRESSION (Simple Line Layout): Inline block baselines computed incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=137461

        Reviewed by Simon Fraser.

        Added fast/inline-block/simple-line-layout.html

        * rendering/SimpleLineLayoutFunctions.h:
        (WebCore::SimpleLineLayout::computeFlowFirstLineBaseline):
        (WebCore::SimpleLineLayout::computeFlowLastLineBaseline):
        Fix the baseline computation functions in simple line layout to
        use lineCount rather than runCount.

2014-10-06  Ada Chan  <adachan@apple.com>

        Add ChromeClient::isPlayingAudioDidChange().
        https://bugs.webkit.org/show_bug.cgi?id=137220

        Reviewed by Jer Noble.

        This is called when the Page's m_isPlayingAudio changes.

        No new tests, no behavior change.

        * page/ChromeClient.h:
        (WebCore::ChromeClient::isPlayingAudioDidChange):
        * page/Page.cpp:
        (WebCore::Page::updateIsPlayingAudio):

2014-10-06  Benjamin Poulain  <benjamin@webkit.org>

        Unreviewed, rolling out r174336.

        Mozilla's Dromaeo still relies on the deprecated function.

        Reverted changeset:

        "Add a deprecation warning for Element.webkitMatchesSelector"
        https://bugs.webkit.org/show_bug.cgi?id=137417
        http://trac.webkit.org/changeset/174336

2014-10-06  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for CryptoKey subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137436

        Reviewed by Ryosuke Niwa.

        Use is<>() / downcast<>() for CryptoKey subclasses.

        No new tests, no behavior change.

        * bindings/js/JSCryptoKeySerializationJWK.cpp:
        (WebCore::addJWKAlgorithmToJSON):
        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::CloneSerializer::write):
        * crypto/CryptoKey.h:
        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
        (WebCore::CryptoAlgorithmAES_CBC::keyAlgorithmMatches):
        (WebCore::CryptoAlgorithmAES_CBC::encrypt):
        (WebCore::CryptoAlgorithmAES_CBC::decrypt):
        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
        (WebCore::CryptoAlgorithmAES_KW::keyAlgorithmMatches):
        (WebCore::CryptoAlgorithmAES_KW::encryptForWrapKey):
        (WebCore::CryptoAlgorithmAES_KW::decryptForUnwrapKey):
        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
        (WebCore::CryptoAlgorithmHMAC::keyAlgorithmMatches):
        (WebCore::CryptoAlgorithmHMAC::sign):
        (WebCore::CryptoAlgorithmHMAC::verify):
        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::keyAlgorithmMatches):
        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::encrypt):
        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::decrypt):
        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::keyAlgorithmMatches):
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
        (WebCore::CryptoAlgorithmRSA_OAEP::keyAlgorithmMatches):
        (WebCore::CryptoAlgorithmRSA_OAEP::encrypt):
        (WebCore::CryptoAlgorithmRSA_OAEP::decrypt):
        * crypto/keys/CryptoKeyAES.h:
        (WebCore::isCryptoKeyAES): Deleted.
        * crypto/keys/CryptoKeyHMAC.h:
        (WebCore::isCryptoKeyHMAC): Deleted.
        * crypto/keys/CryptoKeyRSA.h:
        (WebCore::isCryptoKeyRSA): Deleted.

2014-10-06  Simon Fraser  <simon.fraser@apple.com>

        Some compositing logic cleanup
        https://bugs.webkit.org/show_bug.cgi?id=133060

        Reviewed by Zalan Bujtas.

        Move compositing-related code from RenderLayer::styleChanged() to
        RenderLayerCompositor::layerStyleChanged(). Combine various tests
        (many clip-related) for changes that require layer rebuilding into 
        styleChangeRequiresLayerRebuild().
        
        Remove code that calls setBackingNeedsRepaint() after filters change
        between being composited or not; I verified that existing "repaint after
        style change" code takes care those repaints.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        (WebCore::RenderLayer::checkIfDescendantClippingContextNeedsUpdate): Deleted.
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::checkIfDescendantClippingContextNeedsUpdate):
        (WebCore::styleChangeRequiresLayerRebuild):
        (WebCore::RenderLayerCompositor::layerStyleChanged):
        * rendering/RenderLayerCompositor.h:

2014-10-06  Ada Chan  <adachan@apple.com>

        Fix the iOS build after https://trac.webkit.org/changeset/174353.

        * platform/audio/ios/AudioDestinationIOS.h:

2014-10-06  Ada Chan  <adachan@apple.com>

        Implement Page::isPlayingAudio().
        https://bugs.webkit.org/show_bug.cgi?id=137218

        Reviewed by Eric Carlson.

        - Add a hasMediaCharacteristics() method to MediaSession. There are three characteristics:
        audible, visual, and legible. MediaSession gets the media characteristics information from
        its MediaSessionClient.
        - Add a mediaStateDidChange() method to MediaSessionClient that MediaSession can call when its
        state changes.
        - Each Document keeps a set of MediaSessions it contains. When that set changes, or when a MediaSession
        changes state, or when its characteristics change, Document::updateIsPlayingAudio() is called. That method
        iterates through all its MediaSessions to check if the overall isPlayingAudio state has changed in the Document.
        - Each Page caches its overall isPlayingAudio state. Whenever a Document's isPlayingAudio state changes,
        it calls Page::updateIsPlayingAudio() which iterates through its frames' documents to calculate its
        overall isPlayingAudio state.

        No new tests, no behavior change.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        Initialize m_isPlayingAudio.
        (WebCore::Document::registerMediaSession):
        Add the MediaSession to m_mediaSessions. Call updateIsPlayingAudio().
        (WebCore::Document::unregisterMediaSession):
        Remove the MediaSession from m_mediaSessions. Call updateIsPlayingAudio().
        (WebCore::Document::updateIsPlayingAudio):
        Go through all the MediaSessions in this Document and check if any has the Audible characteristic
        and is playing. If the overall isPlayingAudio state changes, call Page::updateIsPlayingAudio().
        * dom/Document.h:
        (WebCore::Document::isPlayingAudio):

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::registerWithDocument):
        Call Document::registerMediaSession().
        (WebCore::HTMLMediaElement::unregisterWithDocument):
        Call Document::unregisterMediaSession().
        (WebCore::HTMLMediaElement::mediaPlayerCharacteristicChanged):
        Call Document::updateIsPlayingAudio().
        (WebCore::HTMLMediaElement::stop):
        Call MediaSession::clientWillPausePlayback() so the MediaSession's state can be set back to Paused.
        (WebCore::HTMLMediaElement::hasMediaCharacteristics):
        Call hasAudio() to check if the HTMLMediaElement has the Audible characteristic. Call hasVideo()
        to check if it has the Visual characteristic. Call hasClosedCaptions() to check if it has the
        Legible characteristic.
        (WebCore::HTMLMediaElement::mediaStateDidChange):
        Call Document::updateIsPlayingAudio().
        * html/HTMLMediaElement.h:

        * page/Page.cpp:
        (WebCore::Page::Page):
        Initialize m_isPlayingAudio.
        (WebCore::Page::updateIsPlayingAudio):
        Iterate through all its frames' documents to check if any has audio playing. If the overall isPlayingAudio
        state has changed, update m_isPlayingAudio.
        * page/Page.h:
        (WebCore::Page::isPlayingAudio):

        * platform/audio/MediaSession.cpp:
        (WebCore::MediaSession::setState):
        If the MediaSession's state has changed, call Document::updateIsPlayingAudio().
        (WebCore::MediaSession::hasMediaCharacteristics):
        Call MediaSessionClient::hasMediaCharacteristics().
        * platform/audio/MediaSession.h:
        (WebCore::MediaSessionClient::mediaStateDidChange):

        * platform/audio/mac/AudioDestinationMac.h:
        AudioDestination only has the Audible characteristic.

2014-10-06  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for ScrollingTree subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137449

        Reviewed by Ryosuke Niwa.

        Use is<>() / downcast<>() for ScrollingTree subclasses.

        No new tests, no behavior change.

        * page/scrolling/ScrollingTree.h:
        * page/scrolling/ThreadedScrollingTree.h:
        * page/scrolling/ios/ScrollingTreeIOS.h:
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::handleWheelEvent):
        (WebCore::ScrollingCoordinatorMac::commitTreeState):

2014-10-06  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix aftr r174347.

        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Use correct build
        macro to prevent build break when ENCRYPTED_MEDIA_V2 is not enabled.

2014-10-06  Brent Fulgham  <bfulgham@apple.com>

        [Win] Project file gardening.

        * WebCore.vcxproj/WebCore.vcxproj.filters: Move EditorWin.cpp and
          MediatTimeAVFoundation to proper folder locations in project.

2014-10-06  Brent Fulgham  <bfulgham@apple.com>

        [Win] Extend AVFoundationCF Media Implementation
        https://bugs.webkit.org/show_bug.cgi?id=137409

        Reviewed by Eric Carlson.

        This code is not yet being built and tested by our system. Appropriate
        tests will be activated when we enable the build.

        Most of this patch involves correcting some misuse of the AVFoundationCF API.
        1. It is never appropriate in AVCF to pass a null CFErrorRef; instead you must
           pass a CFErrorRef with error type kCFURLErrorUnknown.
        2. Because of the asynchronous way we handle the request/response, it is possible
           for AVCF to make two AVCF requests while negotiating the key exchange.

        * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Add
        missing declaration.
        * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp:
        (WebCore::CDMSessionAVFoundationCF::generateKeyRequest): Tighten up scope
        of 'underlyingError'.
        (WebCore::CDMSessionAVFoundationCF::update): Add call to complete the
        loading process.
        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
        (WebCore::InbandTextTrackPrivateAVCF::label): Handle null titles CFArray
        found during testing.
        (WebCore::InbandTextTrackPrivateAVCF::language): Ditto for a null locale.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine): Add support
        for the new 'supportsKeySystem' method.
        (WebCore::MediaPlayerPrivateAVFoundationCF::createContextVideoRenderer): Add
        assertion for mainThread.
        (WebCore::MediaPlayerPrivateAVFoundationCF::destroyContextVideoRenderer): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationCF::createVideoLayer): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationCF::destroyVideoLayer): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayer): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationCF::createAVPlayerItem): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformLayer): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformSetVisible): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationCF::paintCurrentFrameInContext): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationCF::paint): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationCF::supportsKeySystem): Added.
        (WebCore::MediaPlayerPrivateAVFoundationCF::sizeChanged): Add assertion that this
        is being called on the main thread.
        (WebCore::MediaPlayerPrivateAVFoundationCF::processMediaSelectionOptions): Handle
        the allows empty media selection properly based on test behavior.
        (WebCore::AVFWrapper::AVFWrapper): Initialize resource loader callback structure
        when building with AVFOUNDATION_LOADER_DELEGATE.
        (WebCore::AVFWrapper::createAssetForURL): Use AVFWrapper's loader callback struct,
        rather than passing the address of a temporary value.
        (WebCore::AVFWrapper::processNotification): Stop using the deprecated 
        'dispatch_get_current_queue' function.
        (WebCore::AVFWrapper::processCue): Ditto.
        (WebCore::AVFWrapper::legibleOutputCallback): Ditto.
        (WebCore::AVFWrapper::processShouldWaitForLoadingOfResource): Pass a valid CFError
        object; nullptr is not allowed as an argument to the "...FinishedLoadingWithError"
        method.
        (WebCore::AVFWrapper::shouldWaitForLoadingOfResource): Add support for multiple
        in-flight requests.
        (WebCore::AVFWrapper::platformLayer): Assert we are on the main thread.
        (WebCore::AVFWrapper::setRequestForKey): Add support for multiple in-flight requests.
        (WebCore::AVFWrapper::takeRequestForKeyURI): Ditto.
        (WebCore::LayerClient::platformCALayerLayoutSublayersOfLayer): Ditto.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
        * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp: Make sure we pass
        valid CFError objects, rather than nullptr.

2014-10-06  Chris Fleizach  <cfleizach@apple.com>

        AX: Performance: Certain Web site causes Safari to hang completely while entering form data
        https://bugs.webkit.org/show_bug.cgi?id=137420

        Reviewed by Mario Sanchez Prada.

        If a website has multiple nested tables that are not "accessibility" tables, the performance of accessibility slows to a crawl because:
          1) We are re-computing accessibilityIsIgnored many times.
               As a solution, we can enable the isIgnoredCache when updating children.
          2) When asking if an object isTableCell, we'd go up the parent chain, asking each of those parents the same question, which exploded into calling this many times.
              As a solution, I've changed our determination of isTableCell to instead check if the parent is an accessibiltyTable which should be much faster.

        No new functionality. Existing tests cover changes.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::updateChildrenIfNecessary):
        (WebCore::AccessibilityObject::accessibilityIsIgnored):
        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::parentTable):
        (WebCore::AccessibilityTableCell::isTableCell):

2014-10-06  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed, touch testing/Internals.idl to try to fix Windows EWS after r174315.

        * testing/Internals.idl: Remove unnecessary whitespaces.

2014-10-05  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for ScrollingCoordinator / ScrollingStateNode subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137440

        Reviewed by Ryosuke Niwa.

        Use is<>() / downcast<>() for ScrollingCoordinator / ScrollingStateNode subclasses.

        No new tests, no behavior change.

        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
        (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
        (WebCore::AsyncScrollingCoordinator::requestScrollPositionUpdate):
        (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
        (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
        (WebCore::AsyncScrollingCoordinator::updateViewportConstrainedNode):
        (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
        * page/scrolling/AsyncScrollingCoordinator.h:
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/ScrollingStateFixedNode.h:
        * page/scrolling/ScrollingStateFrameScrollingNode.h:
        * page/scrolling/ScrollingStateNode.h:
        * page/scrolling/ScrollingStateOverflowScrollingNode.h:
        * page/scrolling/ScrollingStateScrollingNode.h:
        * page/scrolling/ScrollingStateStickyNode.h:
        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
        (WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
        (WebCore::ScrollingTreeScrollingNode::updateAfterChildren):
        * page/scrolling/coordinatedgraphics/ScrollingCoordinatorCoordinatedGraphics.cpp:
        (WebCore::ScrollingCoordinatorCoordinatedGraphics::updateViewportConstrainedNode):
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateBeforeChildren):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateAfterChildren):
        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::updateBeforeChildren):
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateAfterChildren):
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::updateBeforeChildren):

2014-10-05  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for CachedRawResource
        https://bugs.webkit.org/show_bug.cgi?id=137439

        Reviewed by Ryosuke Niwa.

        Use is<>() / downcast<>() for CachedRawResource.

        No new tests, no behavior change.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::switchClientsToRevalidatedResource):
        * loader/cache/CachedRawResource.h:
        (isType):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestRawResource):
        (WebCore::CachedResourceLoader::requestMainResource):

2014-10-05  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for TextTrack subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137438

        Reviewed by Ryosuke Niwa.

        Use is<>() / downcast<>() for TextTrack subclasses.

        No new tests, no behavior change.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/track/InbandTextTrack.h:
        (isType):
        * html/track/LoadableTextTrack.h:
        (isType):
        * html/track/TextTrackList.cpp:
        (TextTrackList::getTrackIndex):
        (TextTrackList::append): Deleted.

2014-10-05  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for CryptoKeyData subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137437

        Reviewed by Ryosuke Niwa.

        Use is<>() / downcast<>() for CryptoKeyData subclasses.

        No new tests, no behavior change.

        * bindings/js/JSCryptoKeySerializationJWK.cpp:
        (WebCore::JSCryptoKeySerializationJWK::serialize):
        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::CloneSerializer::write):
        * crypto/CryptoKeyData.h:
        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
        (WebCore::CryptoAlgorithmAES_CBC::importKey):
        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
        (WebCore::CryptoAlgorithmAES_KW::importKey):
        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
        (WebCore::CryptoAlgorithmHMAC::importKey):
        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::importKey):
        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
        (WebCore::CryptoAlgorithmRSA_OAEP::importKey):
        * crypto/keys/CryptoKeyDataOctetSequence.h:
        (WebCore::isCryptoKeyDataOctetSequence): Deleted.
        * crypto/keys/CryptoKeyDataRSAComponents.h:
        (WebCore::isCryptoKeyDataRSAComponents): Deleted.
        * crypto/keys/CryptoKeySerializationRaw.cpp:
        (WebCore::CryptoKeySerializationRaw::serialize):

2014-10-05  Benjamin Poulain  <bpoulain@apple.com>

        Add a deprecation warning for Element.webkitMatchesSelector
        https://bugs.webkit.org/show_bug.cgi?id=137417

        Reviewed by Christophe Dumez.

        Many scripts have assumed that the unprefixed version of ElementwebkitMatchesSelector
        would be Element.matchesSelector. Feature detection scripts too often test
        for Element.matchesSelector instead of Element.matches before calling Element.webkitMatchesSelector.

        This patch add a deprecation warning for Element.webkitMatchesSelector with the hope
        that it will push the adoption of the unprefixed version.

        * dom/Element.cpp:
        (WebCore::Element::webkitMatchesSelector):
        * dom/Element.h:
        * dom/Element.idl:

2014-10-05  Benjamin Poulain  <benjamin@webkit.org>

        Element.matches()'s argument is not supposed to be optional
        https://bugs.webkit.org/show_bug.cgi?id=137427

        Reviewed by Christophe Dumez.

        The argument was marked as optional, it is not supposed to:
        https://dom.spec.whatwg.org/#interface-element

        Also update the webkit-prefixed version: webkitMatchesSelector().

        Tests: fast/dom/SelectorAPI/closest-definition.html
               fast/dom/SelectorAPI/closest-null-undefined.html
               fast/dom/SelectorAPI/matches-definition.html
               fast/dom/SelectorAPI/matches-null-undefined.html

        * dom/Element.idl:

2014-10-05  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for CachedResource subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137431

        Reviewed by Benjamin Poulain.

        Use is<>() / downcast<>() for CachedResource subclasses.

        No new tests, no behavior change.

        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::cachedResourceContent):
        * loader/cache/CachedCSSStyleSheet.h:
        * loader/cache/CachedFont.h:
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::switchClientsToRevalidatedResource):
        * loader/cache/CachedImage.h:
        * loader/cache/CachedResource.h:
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestImage):
        (WebCore::CachedResourceLoader::requestFont):
        (WebCore::CachedResourceLoader::requestTextTrack):
        (WebCore::CachedResourceLoader::requestCSSStyleSheet):
        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
        (WebCore::CachedResourceLoader::requestScript):
        (WebCore::CachedResourceLoader::requestXSLStyleSheet):
        (WebCore::CachedResourceLoader::requestSVGDocument):
        (WebCore::CachedResourceLoader::reloadImagesIfNotDeferred):
        * loader/cache/CachedSVGDocument.h:
        * loader/cache/CachedScript.h:
        * loader/cache/CachedTextTrack.h:
        * loader/cache/CachedXSLStyleSheet.h:
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::removeImageFromCache):

2014-10-05  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for StyleSheet subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137429

        Reviewed by Benjamin Poulain.

        Use is<>() / downcast<>() for StyleSheet subclasses.

        No new tests, no behavior change.

        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap):
        * css/CSSStyleSheet.h:
        (isType):
        * css/StyleSheet.h:
        * dom/Document.cpp:
        (WebCore::Document::applyXSLTransform):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::filterEnabledNonemptyCSSStyleSheets):
        * dom/ProcessingInstruction.cpp:
        (WebCore::ProcessingInstruction::parseStyleSheet):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getAllStyleSheets):
        * xml/XSLStyleSheet.h:
        (isType):

2014-10-05  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for CryptoAlgorithmParameters subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137432

        Reviewed by Benjamin Poulain.

        Use is<>() / downcast<>() for CryptoAlgorithmParameters subclasses.

        No new tests, no behavior change.

        * bindings/js/JSCryptoKeySerializationJWK.cpp:
        (WebCore::JSCryptoKeySerializationJWK::reconcileAlgorithm):
        * crypto/CryptoAlgorithmParameters.h:
        * crypto/algorithms/CryptoAlgorithmAES_CBC.cpp:
        (WebCore::CryptoAlgorithmAES_CBC::encrypt):
        (WebCore::CryptoAlgorithmAES_CBC::decrypt):
        (WebCore::CryptoAlgorithmAES_CBC::generateKey):
        * crypto/algorithms/CryptoAlgorithmAES_KW.cpp:
        (WebCore::CryptoAlgorithmAES_KW::generateKey):
        * crypto/algorithms/CryptoAlgorithmHMAC.cpp:
        (WebCore::CryptoAlgorithmHMAC::sign):
        (WebCore::CryptoAlgorithmHMAC::verify):
        (WebCore::CryptoAlgorithmHMAC::generateKey):
        (WebCore::CryptoAlgorithmHMAC::importKey):
        * crypto/algorithms/CryptoAlgorithmRSAES_PKCS1_v1_5.cpp:
        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::generateKey):
        * crypto/algorithms/CryptoAlgorithmRSASSA_PKCS1_v1_5.cpp:
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::sign):
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::verify):
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::generateKey):
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::importKey):
        * crypto/algorithms/CryptoAlgorithmRSA_OAEP.cpp:
        (WebCore::CryptoAlgorithmRSA_OAEP::encrypt):
        (WebCore::CryptoAlgorithmRSA_OAEP::decrypt):
        (WebCore::CryptoAlgorithmRSA_OAEP::generateKey):
        (WebCore::CryptoAlgorithmRSA_OAEP::importKey):
        * crypto/parameters/CryptoAlgorithmAesCbcParams.h:
        * crypto/parameters/CryptoAlgorithmAesKeyGenParams.h:
        * crypto/parameters/CryptoAlgorithmHmacKeyParams.h:
        * crypto/parameters/CryptoAlgorithmHmacParams.h:
        * crypto/parameters/CryptoAlgorithmRsaKeyGenParams.h:
        * crypto/parameters/CryptoAlgorithmRsaKeyParamsWithHash.h:
        * crypto/parameters/CryptoAlgorithmRsaOaepParams.h:
        * crypto/parameters/CryptoAlgorithmRsaSsaParams.h:

2014-10-05  Chris Fleizach  <cfleizach@apple.com>

        AX: iOS8: Crash at -[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]
        https://bugs.webkit.org/show_bug.cgi?id=137289

        Reviewed by Mario Sanchez Prada.

        Casting a NSInteger to an unsigned can bypass the check we were hoping to achieve, 
        because size_t is not the same as unsigned.

        Test: platform/ios-sim/accessibility/out-of-bounds-child-access.html

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):

2014-10-05  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for ElementData subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137430

        Reviewed by Benjamin Poulain.

        Use is<>() / downcast<>() for ElementData subclasses.

        No new tests, no behavior change.

        * dom/Element.cpp:
        (WebCore::Element::cloneAttributesFromElement):
        (WebCore::Element::createUniqueElementData):
        * dom/ElementData.cpp:
        (WebCore::ElementData::destroy):
        * dom/ElementData.h:
        (WebCore::ElementData::length):
        (WebCore::ElementData::attributeBase):
        (WebCore::ElementData::presentationAttributeStyle):
        (WebCore::ElementData::attributesIterator):
        (WebCore::ElementData::findAttributeByName):
        (isType):

2014-10-05  Lorenzo Tilve  <ltilve@igalia.com>

        [GTK] Fix build when DRAG_SUPPORT is disabled
        https://bugs.webkit.org/show_bug.cgi?id=137361

        Reviewed by Carlos Garcia Campos.

        Flag out unbuildable code without DRAG_SUPPORT.

        * platform/gtk/GtkDragAndDropHelper.cpp:
        * platform/gtk/GtkDragAndDropHelper.h:

2014-10-05  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Do not generate a symlink in derived sources for every header in WebCore/bindings/gobject
        https://bugs.webkit.org/show_bug.cgi?id=137389

        Reviewed by Martin Robinson.

        We only need a symlink for static sources that are included in
        public generated headers, because they are added with as
        <webkitdom/WebKitDOMFoo.h> so they need to be inside a webkitdom
        directory. Also use proper targets and commands to create the
        symlinks only when needed instead of for every build.

        * PlatformGTK.cmake:

2014-10-04  Myles C. Maxfield  <mmaxfield@apple.com>

        [SVG -> OTF Converter] Arabic forms are not substituted correctly
        https://bugs.webkit.org/show_bug.cgi?id=137092

        Reviewed by Darin Adler.

        Tests: svg/W3C-SVG-1.1/fonts-glyph-02-t.svg
               svg/custom/glyph-selection-arabic-forms.svg

        * svg/SVGToOTFFontConversion.cpp:
        (WebCore::SVGToOTFFontConverter::appendArabicReplacementSubtable): Invoked for each of the three
        Arabic form substitutions.
        (WebCore::SVGToOTFFontConverter::appendGSUBTable): OpenType "Advanced Typographic Table":
        "Glyph substitution data"
        (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Re-order the m_codepointsToIndicesMap
        to prefer isolated forms of glyphs.
        (WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): Append the GSUB table.
        (WebCore::calculateChecksum): Deleted.

2014-10-04  Dhi Aurrahman  <diorahman@rockybars.com>

        Implement Element.closest() API
        https://bugs.webkit.org/show_bug.cgi?id=137418

        Reviewed by Benjamin Poulain.

        Implement Element.closest() API as specified in [1].

        [1]: https://dom.spec.whatwg.org/#dom-element-closest

        Tests: fast/selectors/closest-general.html
               fast/selectors/closest-scope.html

        * dom/Element.cpp:
        (WebCore::Element::closest):
        * dom/Element.h:
        * dom/Element.idl:
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::selectorClosest):
        (WebCore::SelectorDataList::closest):
        * dom/SelectorQuery.h:
        (WebCore::SelectorQuery::closest):

2014-10-04  Brian J. Burg  <burg@cs.washington.edu>

        Unreviewed, rolling out r174319.

        Causes assertions in fast/profiler tests. Needs nontrivial
        investigation, will take offline.

        Reverted changeset:

        "Web Inspector: timelines should not count time elapsed while
        paused in the debugger"
        https://bugs.webkit.org/show_bug.cgi?id=136351
        http://trac.webkit.org/changeset/174319

2014-10-04  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: timelines should not count time elapsed while paused in the debugger
        https://bugs.webkit.org/show_bug.cgi?id=136351

        Reviewed by Timothy Hatcher.

        To avoid counting time elapsed while the debugger is paused, timeline records should
        keep track of time elapsed since the start of timeline capturing, rather than wall clock
        timestamps. We can easily compute elapsed time by sharing Stopwatch instance among
        all timeline record-generating code. The stopwatch is paused while the debugger is paused,
        so subsequent time measurements will not include time elapsed while the debugger is paused.

        Agents use the shared stopwatch to generate timestamps if the timeline agent is active
        (i.e., a timeline recording is being captured). If not, use a zero timestamp since the timing data is only revealed through the Timeline interface.

        This refactoring is safe because start and end times are only used to graph records; the
        timestamp's actual value is irrelevant and is not displayed in the user interface. Date
        timestamps are still included with network-related records as part of their header data.

        No new tests, because we cannot reliably test timing changes induced by debugger pauses.
        It is possible for records to accrue time before the debugger pauses or after it resumes.

        * inspector/InspectorCSSAgent.cpp: Remove unused include.
        * inspector/InspectorPageAgent.cpp: Use timestamps from the shared stopwatch.
        (WebCore::InspectorPageAgent::timestamp):
        (WebCore::InspectorPageAgent::domContentEventFired):
        (WebCore::InspectorPageAgent::loadEventFired):
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorResourceAgent.cpp: Use timestamps from the shared stopwatch.
        (WebCore::InspectorResourceAgent::timestamp):
        (WebCore::InspectorResourceAgent::willSendRequest):
        (WebCore::InspectorResourceAgent::didReceiveResponse):
        (WebCore::InspectorResourceAgent::didReceiveData):
        (WebCore::InspectorResourceAgent::didFinishLoading):
        (WebCore::InspectorResourceAgent::didFailLoading):
        (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
        (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
        (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
        (WebCore::InspectorResourceAgent::didCloseWebSocket):
        (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
        (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
        (WebCore::InspectorResourceAgent::didReceiveWebSocketFrameError):
        * inspector/InspectorResourceAgent.h:
        * inspector/InspectorTimelineAgent.cpp: Add calls to reset, start, and stop the stopwatch.
        (WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
        (WebCore::InspectorTimelineAgent::internalStart):
        (WebCore::InspectorTimelineAgent::internalStop):
        (WebCore::startProfiling):
        (WebCore::InspectorTimelineAgent::startFromConsole):
        (WebCore::InspectorTimelineAgent::willCallFunction):
        (WebCore::InspectorTimelineAgent::willEvaluateScript):
        (WebCore::InspectorTimelineAgent::didPause):
        (WebCore::InspectorTimelineAgent::didContinue):
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        (WebCore::InspectorTimelineAgent::timestamp):
        (WebCore::TimelineTimeConverter::reset): Deleted.
        * inspector/InspectorTimelineAgent.h: Make timestamp() public, and remove old timepieces.
        (WebCore::TimelineTimeConverter::TimelineTimeConverter): Deleted.
        (WebCore::TimelineTimeConverter::fromMonotonicallyIncreasingTime): Deleted.
        (WebCore::InspectorTimelineAgent::timeConverter): Deleted.
        * inspector/TimelineRecordFactory.cpp:

2014-10-04  Tim Horton  <timothy_horton@apple.com>

        Make it possible to test page overlays
        https://bugs.webkit.org/show_bug.cgi?id=137339

        Reviewed by Dan Bernstein.

        Tests: pageoverlay/overlay-installation.html
               pageoverlay/overlay-large-document-scrolled.html
               pageoverlay/overlay-large-document.html

        Do some initial work to make page overlays testable.
        There are many more tests to be written, but this lays the groundwork.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
        * WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters:
        * CMakeLists.txt:
        Add MockPageOverlayClient.

        * platform/graphics/GraphicsLayer.h:
        * page/PageOverlayController.h:
        * page/PageOverlayController.cpp:
        (WebCore::PageOverlayController::shouldSkipLayerInDump):
        Don't skip PageOverlayController-owned layers in the layer tree dump if the
        layerTreeAsText behavior says that we should include them.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::dumpChildren):
        
        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::shouldSkipLayerInDump):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::shouldSkipLayerInDump):
        * rendering/RenderLayerBacking.h:
        Pass the LayerTreeAsTextBehavior through shouldSkipLayerInDump.

        * testing/Internals.cpp:
        (WebCore::Internals::resetToConsistentState):
        Uninstall all page overlays when resetting to a consistent state.

        (WebCore::Internals::installMockPageOverlay):
        (WebCore::Internals::pageOverlayLayerTreeAsText):
        Expose two new internals functions.
        installMockPageOverlay takes "view" or "document", allowing script
        to choose the appropriate overlay type.
        pageOverlayLayerTreeAsText dumps both view and document-relative
        overlays, from each overlay container layer.

        * testing/Internals.h:
        * testing/Internals.idl:
        Fix some typos.

        * testing/MockPageOverlayClient.cpp: Added.
        (WebCore::MockPageOverlayClient::shared):
        (WebCore::MockPageOverlayClient::MockPageOverlayClient):
        (WebCore::MockPageOverlayClient::installOverlay):
        (WebCore::MockPageOverlayClient::uninstallAllOverlays):
        (WebCore::MockPageOverlayClient::layerTreeAsText):
        (WebCore::MockPageOverlayClient::pageOverlayDestroyed):
        (WebCore::MockPageOverlayClient::willMoveToPage):
        (WebCore::MockPageOverlayClient::didMoveToPage):
        When the overlay is parented, mark it as needing repaint.
        Future tests might want to test overlays without content,
        but for now this is a reasonable default behavior.

        (WebCore::MockPageOverlayClient::drawRect):
        Paint the overlay rects as described in the LayoutTests ChangeLog.

        (WebCore::MockPageOverlayClient::mouseEvent):
        (WebCore::MockPageOverlayClient::didScrollFrame):
        (WebCore::MockPageOverlayClient::copyAccessibilityAttributeStringValueForPoint):
        (WebCore::MockPageOverlayClient::copyAccessibilityAttributeBoolValueForPoint):
        (WebCore::MockPageOverlayClient::copyAccessibilityAttributeNames):

        * testing/MockPageOverlayClient.h: Added.

2014-10-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        Move DragController::createFragmentFromDragData implementation to the editor
        https://bugs.webkit.org/show_bug.cgi?id=136819

        Reviewed by Darin Adler.

        Make Editor::webContentFromPasteboard() common to all ports and
        add a implementation for every port.

        * PlatformWin.cmake: Add new files to compilation.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * editing/Editor.cpp:
        (WebCore::Editor::pasteWithPasteboard): Move to EditorWin.cpp
        since this is only used by windows port.
        * editing/Editor.h:
        * editing/efl/EditorEfl.cpp:
        (WebCore::Editor::webContentFromPasteboard):
        * editing/gtk/EditorGtk.cpp:
        (WebCore::Editor::webContentFromPasteboard):
        * editing/win/EditorWin.cpp: Added.
        (WebCore::Editor::pasteWithPasteboard):
        (WebCore::Editor::webContentFromPasteboard):
        * page/DragController.cpp:
        (WebCore::documentFragmentFromDragData): Use the editor instead of
        createFragmentFromDragData() that has been removed. Also made this
        method a static funtion again.
        * page/DragController.h:
        * page/efl/DragControllerEfl.cpp: Remove createFragmentFromDragData().
        * page/gtk/DragControllerGtk.cpp: Ditto.
        * page/mac/DragControllerMac.mm: Ditto.
        * page/win/DragControllerWin.cpp: Ditto.
        * platform/Pasteboard.h:
        (WebCore::Pasteboard::dragDataMap): Add a getter for m_dragDataMap
        as required by Editor::webContentFromPasteboard for windows.

2014-10-04  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for CSS StyleProperties
        https://bugs.webkit.org/show_bug.cgi?id=137398

        Reviewed by Benjamin Poulain.

        Use is<>() / downcast<>() for CSS StyleProperties subclasses.

        No new tests, no behavior change.

        * css/StyleProperties.cpp:
        (WebCore::StyleProperties::immutableCopyIfNeeded):
        (WebCore::MutableStyleProperties::MutableStyleProperties):
        (WebCore::StyleProperties::hasCSSOMWrapper):
        * css/StyleProperties.h:
        (WebCore::StyleProperties::PropertyReference::propertyMetadata):
        (WebCore::StyleProperties::PropertyReference::propertyValue):
        (WebCore::StyleProperties::propertyCount):
        (WebCore::StyleProperties::deref):
        (WebCore::StyleProperties::findPropertyIndex):
        (isType):
        (WebCore::toMutableStyleProperties): Deleted.
        (WebCore::toImmutableStyleProperties): Deleted.
        * css/StyleRule.cpp:
        (WebCore::StyleRule::mutableProperties):
        (WebCore::StyleRulePage::mutableProperties):
        (WebCore::StyleRuleFontFace::mutableProperties):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::StyleKeyframe::mutableProperties):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::ensureMutableInlineStyle):
        (WebCore::StyledElement::setInlineStyleFromString):

2014-10-04  Zan Dobersek  <zdobersek@igalia.com>

        [TexMap] Clean up GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded()
        https://bugs.webkit.org/show_bug.cgi?id=137263

        Reviewed by Darin Adler.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::prepareBackingStoreIfNeeded): Clean up
        the method a bit. When the backing store will not be in use the change mask
        should only get updated if there was a backing store present beforehand.

2014-10-04  Zan Dobersek  <zdobersek@igalia.com>

        [TexMap] Remove QDoc comments in GraphicsLayerTextureMapper
        https://bugs.webkit.org/show_bug.cgi?id=137264

        Reviewed by Andreas Kling.

        Remove all the QDoc comments in the class that were
        left over by the Qt port.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setNeedsDisplay):

2014-10-03  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for CSSValue subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137381

        Reviewed by Benjamin Poulain.

        Use is<>() / downcast<>() for CSSValue subclasses.

        No new tests, no behavior change.

        * css/CSSAspectRatioValue.h:
        * css/CSSBorderImageSliceValue.h:
        * css/CSSCalculationValue.cpp:
        (WebCore::CSSCalcExpressionNodeParser::parseValue):
        * css/CSSCalculationValue.h:
        * css/CSSCanvasValue.h:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::getBorderRadiusShorthandValue):
        (WebCore::ComputedStyleExtractor::propertyMatches):
        * css/CSSCrossfadeValue.cpp:
        (WebCore::subimageKnownToBeOpaque):
        * css/CSSCrossfadeValue.h:
        * css/CSSCursorImageValue.cpp:
        (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
        (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
        (WebCore::CSSCursorImageValue::cachedImage):
        (WebCore::CSSCursorImageValue::cachedOrPendingImage):
        (WebCore::CSSCursorImageValue::isSVGCursor):
        * css/CSSCursorImageValue.h:
        * css/CSSFilterImageValue.h:
        * css/CSSFontFaceSrcValue.h:
        * css/CSSFontFeatureValue.h:
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/CSSFontValue.h:
        * css/CSSFunctionValue.h:
        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::image):
        (WebCore::CSSGradientValue::gradientWithStylesResolved):
        * css/CSSGradientValue.h:
        * css/CSSGridLineNamesValue.h:
        * css/CSSGridTemplateAreasValue.h:
        * css/CSSImageGeneratorValue.cpp:
        (WebCore::CSSImageGeneratorValue::image):
        (WebCore::CSSImageGeneratorValue::isFixedSize):
        (WebCore::CSSImageGeneratorValue::fixedSize):
        (WebCore::CSSImageGeneratorValue::isPending):
        (WebCore::CSSImageGeneratorValue::knownToBeOpaque):
        (WebCore::CSSImageGeneratorValue::loadSubimages):
        (WebCore::CSSImageGeneratorValue::subimageIsPending):
        (WebCore::CSSImageGeneratorValue::cachedImageForCSSValue):
        * css/CSSImageGeneratorValue.h:
        * css/CSSImageSetValue.cpp:
        (WebCore::CSSImageSetValue::fillImageSet):
        * css/CSSImageSetValue.h:
        * css/CSSImageValue.h:
        * css/CSSInheritedValue.h:
        * css/CSSInitialValue.h:
        * css/CSSLineBoxContainValue.h:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseColor):
        (WebCore::CSSParser::addFillValue):
        (WebCore::CSSParser::addAnimationValue):
        (WebCore::CSSParser::parse3ValuesFillPosition):
        (WebCore::CSSParser::parseFillPosition):
        (WebCore::CSSParser::parseFillRepeat):
        (WebCore::gridMissingGridPositionValue):
        (WebCore::CSSParser::parseGridTemplateRowsAndAreas):
        (WebCore::CSSParser::parseBasicShapeCircle):
        (WebCore::CSSParser::parseBasicShapeEllipse):
        (WebCore::CSSParser::parseDeprecatedGradient):
        (WebCore::CSSParser::parseDeprecatedRadialGradient):
        (WebCore::CSSParser::parseRadialGradient):
        (WebCore::CSSParser::createFontFaceRule):
        * css/CSSPrimitiveValue.h:
        * css/CSSReflectValue.h:
        * css/CSSShadowValue.h:
        * css/CSSTimingFunctionValue.h:
        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::mapFillAttachment):
        (WebCore::CSSToStyleMap::mapFillClip):
        (WebCore::CSSToStyleMap::mapFillComposite):
        (WebCore::CSSToStyleMap::mapFillBlendMode):
        (WebCore::CSSToStyleMap::mapFillOrigin):
        (WebCore::CSSToStyleMap::mapFillRepeatX):
        (WebCore::CSSToStyleMap::mapFillRepeatY):
        (WebCore::CSSToStyleMap::mapFillSize):
        (WebCore::CSSToStyleMap::mapFillXPosition):
        (WebCore::CSSToStyleMap::mapFillYPosition):
        (WebCore::CSSToStyleMap::mapFillMaskSourceType):
        (WebCore::CSSToStyleMap::mapAnimationDelay):
        (WebCore::CSSToStyleMap::mapAnimationDirection):
        (WebCore::CSSToStyleMap::mapAnimationDuration):
        (WebCore::CSSToStyleMap::mapAnimationFillMode):
        (WebCore::CSSToStyleMap::mapAnimationIterationCount):
        (WebCore::CSSToStyleMap::mapAnimationName):
        (WebCore::CSSToStyleMap::mapAnimationPlayState):
        (WebCore::CSSToStyleMap::mapAnimationProperty):
        (WebCore::CSSToStyleMap::mapAnimationTimingFunction):
        (WebCore::CSSToStyleMap::mapNinePieceImage):
        (WebCore::CSSToStyleMap::mapNinePieceImageSlice):
        (WebCore::CSSToStyleMap::mapNinePieceImageQuad):
        (WebCore::CSSToStyleMap::mapNinePieceImageRepeat):
        * css/CSSUnicodeRangeValue.h:
        * css/CSSValue.cpp:
        (WebCore::CSSValue::isImplicitInitialValue):
        (WebCore::CSSValue::addSubresourceStyleURLs):
        (WebCore::CSSValue::hasFailedOrCanceledSubresources):
        (WebCore::CSSValue::equals):
        (WebCore::CSSValue::cssText):
        (WebCore::CSSValue::destroy):
        (WebCore::CSSValue::cloneForCSSOM):
        * css/CSSValue.h:
        * css/CSSValueList.h:
        (WebCore::CSSValueListInspector::CSSValueListInspector):
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyDefault::applyValue):
        (WebCore::ApplyPropertyNumber::applyValue):
        (WebCore::ApplyPropertyAuto::applyValue):
        (WebCore::ApplyPropertyClip::applyValue):
        (WebCore::ApplyPropertyColor::applyValue):
        (WebCore::ApplyPropertyLength::applyValue):
        (WebCore::ApplyPropertyString::applyValue):
        (WebCore::ApplyPropertyBorderRadius::applyValue):
        (WebCore::ApplyPropertyFillLayer::applyValue):
        (WebCore::ApplyPropertyComputeLength::applyValue):
        (WebCore::ApplyPropertyFont::applyValue):
        (WebCore::ApplyPropertyFontFamily::applyValue):
        (WebCore::ApplyPropertyFontSize::applyValue):
        (WebCore::ApplyPropertyFontWeight::applyValue):
        (WebCore::ApplyPropertyFontVariantLigatures::applyValue):
        (WebCore::ApplyPropertyCounter::applyValue):
        (WebCore::ApplyPropertyCursor::applyValue):
        (WebCore::ApplyPropertyTextAlign::applyValue):
        (WebCore::ApplyPropertyTextDecoration::applyValue):
        (WebCore::ApplyPropertyTextDecorationSkip::applyValue):
        (WebCore::ApplyPropertyMarqueeIncrement::applyValue):
        (WebCore::ApplyPropertyMarqueeRepetition::applyValue):
        (WebCore::ApplyPropertyMarqueeSpeed::applyValue):
        (WebCore::ApplyPropertyTextUnderlinePosition::applyValue):
        (WebCore::ApplyPropertyLineHeight::applyValue):
        (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
        (WebCore::ApplyPropertyWordSpacing::applyValue):
        (WebCore::ApplyPropertyPageSize::applyValue):
        (WebCore::ApplyPropertyTextEmphasisStyle::applyValue):
        (WebCore::ApplyPropertyTextEmphasisPosition::applyValue):
        (WebCore::ApplyPropertyResize::applyValue):
        (WebCore::ApplyPropertyVerticalAlign::applyValue):
        (WebCore::ApplyPropertyAspectRatio::applyValue):
        (WebCore::ApplyPropertyZoom::applyValue):
        (WebCore::ApplyPropertyDisplay::applyValue):
        (WebCore::ApplyPropertyClipPath::applyValue):
        (WebCore::ApplyPropertyShape::applyValue):
        (WebCore::ApplyPropertyImageResolution::applyValue):
        (WebCore::ApplyPropertyTextIndent::applyValue):
        * css/MediaList.cpp:
        (WebCore::reportMediaQueryWarningIfNeeded):
        * css/MediaQueryEvaluator.cpp:
        (WebCore::compareAspectRatioValue):
        (WebCore::numberValue):
        (WebCore::orientationMediaFeatureEval):
        (WebCore::evalResolution):
        (WebCore::device_pixel_ratioMediaFeatureEval):
        (WebCore::resolutionMediaFeatureEval):
        (WebCore::computeLength):
        (WebCore::view_modeMediaFeatureEval):
        (WebCore::pointerMediaFeatureEval):
        * css/SVGCSSComputedStyleDeclaration.cpp:
        (WebCore::strokeDashArrayToCSSValueList):
        (WebCore::ComputedStyleExtractor::svgPropertyValue):
        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):
        * css/SourceSizeList.cpp:
        (WebCore::computeLength):
        * css/StyleProperties.cpp:
        (WebCore::StyleProperties::getLayeredShorthandValue):
        * css/StyleResolver.cpp:
        (WebCore::extractDirectionAndWritingMode):
        (WebCore::createGridTrackSize):
        (WebCore::createGridTrackList):
        (WebCore::createGridPosition):
        (WebCore::StyleResolver::parseSnapCoordinate):
        (WebCore::StyleResolver::parseSnapPoints):
        (WebCore::StyleResolver::applyProperty):
        (WebCore::StyleResolver::styleImage):
        (WebCore::StyleResolver::generatedOrPendingFromValue):
        (WebCore::StyleResolver::createFilterOperations):
        * css/TransformFunctions.cpp:
        (WebCore::transformsForValue):
        * css/ViewportStyleResolver.cpp:
        (WebCore::ViewportStyleResolver::getViewportArgumentValue):
        * css/WebKitCSSFilterValue.h:
        * css/WebKitCSSMatrix.cpp:
        (WebCore::WebKitCSSMatrix::setMatrixValue):
        * css/WebKitCSSTransformValue.h:
        (WebCore::toWebKitCSSTransformValue): Deleted.
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::computedFontSize):
        * editing/EditingStyle.cpp:
        (WebCore::identifierForStyleProperty):
        (WebCore::HTMLElementEquivalent::valueIsPresentInStyle):
        (WebCore::HTMLTextDecorationEquivalent::valueIsPresentInStyle):
        (WebCore::cssValueToRGBA):
        (WebCore::EditingStyle::extractFontSizeDelta):
        (WebCore::EditingStyle::textDirection):
        (WebCore::EditingStyle::prepareToApplyAt):
        (WebCore::EditingStyle::mergeStyle):
        (WebCore::EditingStyle::mergeStyleFromRulesForSerialization):
        (WebCore::EditingStyle::legacyFontSize):
        (WebCore::EditingStyle::textDirectionForSelection):
        (WebCore::StyleChange::extractTextStyles):
        (WebCore::diffTextDecorations):
        (WebCore::fontWeightIsBold):
        (WebCore::isTransparentColorValue):
        * editing/EditorCommand.cpp:
        (WebCore::executeToggleStyleInList):
        * editing/cocoa/HTMLConverter.mm:
        (stringFromCSSValue):
        (HTMLConverterCaches::floatPropertyValueForNode):
        (HTMLConverterCaches::colorPropertyValueForNode):
        * editing/markup.cpp:
        (WebCore::propertyMissingOrEqualToNone):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::retrieveResourcesForProperties):
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::blendFunc):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::adjustInnerTextStyle):
        * rendering/style/StylePendingImage.h:
        (WebCore::StylePendingImage::cssImageValue):
        (WebCore::StylePendingImage::cssCursorImageValue):
        (WebCore::StylePendingImage::cssImageSetValue):
        * svg/SVGColor.h:
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        * svg/SVGPaint.h:

2014-10-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Clean up interface to Font::expansionOpportunityCount()
        https://bugs.webkit.org/show_bug.cgi?id=137355

        Reviewed by Dean Jackson.

        There are two overloads of Font::expansionOpportunityCount() which perform the same
        operation. One overload takes a UChar*, the other takes an LChar*, and they both
        take a length. This is the abstraction that StringView was designed to be. Instead
        of forcing each caller to take a different overload based on if their data is
        8 bit or not, allow the caller to construct a StringView and pass that into
        Font::expansionOpportunityCount() instead of a raw pointer/length.

        No new tests because there is no behavior change.

        * platform/graphics/Font.cpp:
        (WebCore::Font::expansionOpportunityCountInternal): Original two functions,
        renamed.
        (WebCore::Font::expansionOpportunityCount): Takes a StringView, calls 
        expansionOpportunityCountInternal().
        * platform/graphics/Font.h: Update signatures.
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::WidthIterator): Use new signature to
        Font::expansionOpportunityCount().
        * platform/graphics/mac/ComplexTextController.cpp:
        (WebCore::ComplexTextController::ComplexTextController): Ditto.
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment): Ditto.
        * rendering/RenderText.cpp:
        (WebCore::RenderText::stringView): Accessor to encapsulate character pointer
        and length.
        * rendering/RenderText.h: Signature of new accessor.

2014-10-03  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix for MSVC 2013 SP 3.

        The std::array initializer is not fully implemented in SP3 and causes a
        build error.

        * platform/graphics/transforms/AffineTransform.cpp: Use old style assignment
        initialization for MSVC builds until this bug is fixed.

2014-10-03  Tim Horton  <timothy_horton@apple.com>

        WKWebView snapshot of Daring Fireball has the wrong color in the obscured inset
        https://bugs.webkit.org/show_bug.cgi?id=137383
        <rdar://problem/18535439>

        Reviewed by Sam Weinig.

        * rendering/RenderView.cpp:
        (WebCore::RenderView::paintBoxDecorations):
        Use documentBackgroundColor instead of baseBackgroundColor if backgroundShouldExtendBeyondPage is set.

2014-10-03  Dean Jackson  <dino@apple.com>

        webkit-appearance: default-button styling does not set the button font color to white
        https://bugs.webkit.org/show_bug.cgi?id=137399
        rdar://problem/17788616

        Reviewed by Dave Hyatt.

        When a button is styled with -webkit-appearance: default-button, it should
        use the CSSValueActivebuttontext value for its text color when the window
        is active, and the normal value when the window is inactive.

        Since activating (focus/blur) windows doesn't cause a style recalculation, this
        is applied as a paint-time operation. However, the render tree children that
        paint the text don't know that they are contained within a RenderButton
        and that the button is a default type. So I added an inherited flag, similar
        to what we use for visited links, to remember if we're in a button. And then
        computeTextPaintStyle chooses the correct value.

        We can't test this because our LayoutTest system doesn't have
        an active window, and thus the default button renders like a normal
        button. This should cause no regressions though. Also, the appearance is
        protected behind an SPI (or Setting), so this is not exposed to the Web.

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle): Set the flag if we're inside a default button.
        * rendering/TextPaintStyle.cpp:
        (WebCore::computeTextPaintStyle): If we're in a default button inside an active window,
        use the CSSValueActivebuttontext color.
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::RenderStyle): Add and expose the new inherited flag: ._insideDefaultButton.
        (WebCore::RenderStyle::changeRequiresRepaint): Ditto.
        * rendering/style/RenderStyle.h: Ditto.

2014-09-28  Myles C. Maxfield  <mmaxfield@apple.com>

        [SVG -> OTF Converter] Support non-BMP codepoints
        https://bugs.webkit.org/show_bug.cgi?id=137097

        Reviewed by Darin Adler.

        This patch has two pieces:

        1) Moves write16(), overwrite32() and overwrite16() inside SVGToOTFFontConverter. This
        is so that we don't have to keep passing around references to m_result everywhere. Instead,
        put the output vector inside the class as an instance member variable. In addition, rename
        write32() and write16() to append32() and append16(), and provide a copy of append32 inside
        SVGToOTFFontConverter.

        2) Change the "Codepoint" typedef to be a String, and rename it to Codepoints. This is so that
        we can implement ligatures later on. Update all the places that use this variable to work with
        a String of multiple codepoints.

        This patch updates the CMAP table to use format 12 instead of format 4. It currently only maps
        single codepoints to glyph IDs and skips all multi-codepoint glyphs. We will implement
        ligatures in another patch.

        Test: svg/custom/glyph-selection-non-bmp.svg

        * svg/SVGToOTFFontConversion.cpp:
        (WebCore::append32): Append a result to a given vector. This is for the path transcoder.
        (WebCore::SVGToOTFFontConverter::releaseResult): WTF::move()'s the result.
        (WebCore::SVGToOTFFontConverter::GlyphData::GlyphData): Update to take Codepoints instead of Codepoint.
        (WebCore::SVGToOTFFontConverter::append32): Piece 1 above.
        (WebCore::SVGToOTFFontConverter::append16): Ditto.
        (WebCore::SVGToOTFFontConverter::append4ByteCode): Convenience function.
        (WebCore::SVGToOTFFontConverter::overwrite32): Piece 1 above.
        (WebCore::SVGToOTFFontConverter::overwrite16): Ditto.
        (WebCore::SVGToOTFFontConverter::appendCMAPTable): Update to format 12.
        (WebCore::SVGToOTFFontConverter::appendHEADTable): Passing in a result vector is no longer necessary.
        (WebCore::SVGToOTFFontConverter::appendHHEATable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendHMTXTable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendMAXPTable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendNAMETable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendOS2Table): Ditto.
        (WebCore::SVGToOTFFontConverter::appendPOSTTable): Ditto.
        (WebCore::isValidStringForCFF): Ditto.
        (WebCore::SVGToOTFFontConverter::appendCFFValidString): Ditto.
        (WebCore::SVGToOTFFontConverter::appendCFFTable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendVORGTable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendVHEATable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendVMTXTable): Ditto.
        (WebCore::SVGToOTFFontConverter::addCodepointRanges): Update for Codepoints.
        (WebCore::SVGToOTFFontConverter::addCodepoints): Ditto.
        (WebCore::SVGToOTFFontConverter::addGlyphNames): Ditto.
        (WebCore::SVGToOTFFontConverter::appendKERNSubtable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendKERNTable): Ditto.
        (WebCore::writeCFFEncodedNumber): Passing in a result vector is no longer necessary.
        (WebCore::SVGToOTFFontConverter::appendGlyphData): Update for Codepoints.
        (WebCore::SVGToOTFFontConverter::processGlyphElement): Update for Codepoints.
        (WebCore::SVGToOTFFontConverter::compareCodepointsLexicographically): Comparing Codepoints
        (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Update for Codepoints.
        (WebCore::SVGToOTFFontConverter::calculateChecksum): Passing in a result vector is no longer necessary.
        (WebCore::SVGToOTFFontConverter::appendTable): Ditto.
        (WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): Ditto.
        (WebCore::convertSVGToOTFFont): Move out of the result vector.
        (WebCore::write32): Deleted.
        (WebCore::write16): Deleted.
        (WebCore::overwrite32): Deleted.
        (WebCore::appendCFFValidString): Deleted.
        (WebCore::transcodeGlyphPaths): Deleted.
        (WebCore::calculateChecksum): Deleted.

2014-10-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r174270.
        https://bugs.webkit.org/show_bug.cgi?id=137397

        crashes on the bots (Requested by dethbakin on #webkit).

        Reverted changeset:

        "EventSender dispatches should be per-Document"
        https://bugs.webkit.org/show_bug.cgi?id=136051
        http://trac.webkit.org/changeset/174270

2014-10-03  Jer Noble  <jer.noble@apple.com>

        [iOS] Back-to-back fullscreen videos result in incorrectly sized videos
        https://bugs.webkit.org/show_bug.cgi?id=137380

        Reviewed by Eric Carlson.

        During a normal workflow, a <video> element will create an AVPlayerLayer, then it will get a
        fullscreen (hosted) parent layer, then it will be told an explicit fullscreen size. But when
        a <video> element creates an AVPlayerLayer after the <video> element is already in
        fullscreen mode, it sets that AVPlayerLayer's frame using the size of the hosted parent
        layer, rather than the explicit fullscreen size. Instead, use the (already set) explicit
        fullscreen size after creating the AVPlayerLayer.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::ensureAVPlayerLayer):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer):

2014-10-03 Bear Travis <betravis@adobe.com>

        REGRESSION (r173531): Use after free in WebCore::RenderStyle::fontMetrics /
        WebCore::CSSPrimitiveValue::computeLengthDouble
        https://bugs.webkit.org/show_bug.cgi?id=136864

        Reviewed by Andreas Kling.

        FontLoader previously called updateDocumentStyleIfNeeded,
        which would reset styles currently in use as part of
        the tabIndex calculation. The FontLoader should instead
        wait for pending stylesheets to load.

        Tests: fast/css/fontloader-tab-index.html

        * css/FontLoader.cpp:
        (WebCore::FontLoader::notifyWhenFontsReady): Do not immediately
        call loadingDone().
        (WebCore::FontLoader::loadingDone): Wait for stylesheets to
        finish loading rather than updating document styles.
        * css/FontLoader.h:
        (WebCore::FontLoader::loading): Include JS font loads when testing
        for the loading state.

2014-10-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Unreviewed build fix.

        Fixing the Windows build after r174269.

        * platform/graphics/win/UniscribeController.cpp:
        (WebCore::UniscribeController::shapeAndPlaceItem):

2014-10-01  Brian J. Burg  <burg@cs.washington.edu>

        EventSender dispatches should be per-Document
        https://bugs.webkit.org/show_bug.cgi?id=136051

        Reviewed by Andreas Kling.

        EventSender uses a Timer to asynchronously dispatch the same event to multiple
        elements of the same type on a future run loop. However, we previously dispatched events
        to elements from any Document rather than the one that requested the event send.

        This patch changes EventSender to be associated with a single Document. EventSenders
        for each Document are lazily allocated. Further per-Document or global optimizations
        are possible.

        This change also lays the groundwork for making EventSender-related DOM events
        deterministic during web replay, tracked at <https://webkit.org/b/137090>.

        No new tests, covered by fast/text/svg-font-trigger-load-event.html.

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/DOMAllInOne.cpp:
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::implicitClose):
        Dispatch pending events for this document only. Rename local variable f to frame.

        * dom/Document.h:
        (WebCore::Document::sharedEventSenders):
        * dom/EventSender.h:
        (WebCore::EventSender::EventSender):
        (WebCore::EventSender::hasPendingEvents):
        (WebCore::EventSender<T>::dispatchEventSoon):
        (WebCore::EventSender<T>::cancelEvent):
        (WebCore::EventSender<T>::dispatchPendingEvents):
        (WebCore::EventSender<T>::EventSender): Deleted. The type argument was not necessary.
        * dom/SharedEventSenders.cpp: Added. Lazily creates event senders as they are requested.
        (WebCore::SharedEventSenders::linkLoadEventSender):
        (WebCore::SharedEventSenders::styleLoadEventSender):
        (WebCore::SharedEventSenders::imageBeforeloadEventSender):
        (WebCore::SharedEventSenders::imageLoadEventSender):
        (WebCore::SharedEventSenders::imageErrorEventSender):
        * dom/SharedEventSenders.h: Added.
        (WebCore::SharedEventSenders::SharedEventSenders):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::~HTMLLinkElement):
        (WebCore::HTMLLinkElement::dispatchPendingEvent):
        (WebCore::HTMLLinkElement::notifyLoadedSheetAndAllCriticalSubresources):
        (WebCore::linkLoadEventSender): Deleted.
        (WebCore::HTMLLinkElement::dispatchPendingLoadEvents): Deleted.
        * html/HTMLLinkElement.h:
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::~HTMLStyleElement):
        (WebCore::HTMLStyleElement::dispatchPendingEvent):
        (WebCore::HTMLStyleElement::notifyLoadedSheetAndAllCriticalSubresources):
        (WebCore::styleLoadEventSender): Deleted.
        (WebCore::HTMLStyleElement::dispatchPendingLoadEvents): Deleted.
        * html/HTMLStyleElement.h:
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::beforeLoadEventSender):
        (WebCore::ImageLoader::loadEventSender):
        (WebCore::ImageLoader::errorEventSender):
        (WebCore::ImageLoader::dispatchPendingEvent):
        (WebCore::beforeLoadEventSender): Deleted.
        (WebCore::loadEventSender): Deleted.
        (WebCore::errorEventSender): Deleted.
        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvents): Deleted.
        (WebCore::ImageLoader::dispatchPendingLoadEvents): Deleted.
        (WebCore::ImageLoader::dispatchPendingErrorEvents): Deleted.
        * loader/ImageLoader.h:
        * xml/parser/XMLDocumentParser.cpp:
        (WebCore::XMLDocumentParser::append): Remove an early call to the EventSender for image
        beforeload events. This was a performance optimization, but is no longer safe since the
        document (and thus the event sender) may not be available in a synchronous document write.

2014-10-03  Myles C. Maxfield  <mmaxfield@apple.com>

        TextRun::length() should return an unsigned
        https://bugs.webkit.org/show_bug.cgi?id=137354

        Reviewed by Antti Koivisto.

        Currently, the m_len instance variable that backs the TextRun::length() function is
        an unsigned, but the length() function implicitly casts that to an int when
        returning it. This patch makes the function return an unsigned, and makes the
        do any casting if necessary.

        No new tests because there is no behavior change.

        * platform/graphics/Font.cpp:
        (WebCore::Font::drawText): Cast result to int.
        (WebCore::Font::drawEmphasisMarks): Ditto.
        (WebCore::Font::adjustSelectionRectForText): Ditto.
        (WebCore::computeUnderlineType): Update internal type to be unsigned.
        * platform/graphics/GlyphBuffer.h:
        (WebCore::GlyphBuffer::add): Update sentinel value to be unsigned.
        (WebCore::GlyphBuffer::saveOffsetsInString): Ditto.
        * platform/graphics/GraphicsContext.cpp: Update internal type to be unsigned.
        * platform/graphics/TextRun.h:
        (WebCore::TextRun::length): Update return type.
        (WebCore::TextRun::charactersLength): Ditto.
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::advanceInternal): Cast result to int.
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair): Remove
        unnecessary casts.
        (WebCore::SVGTextMetricsBuilder::advance): Ditto.
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection): Cast result to int.

2014-10-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Fix build break since r174231 and r174256
        https://bugs.webkit.org/show_bug.cgi?id=137384

        Unreviewed, EFL build fix.

        r174231 and r174256 didn't consider EFL port and CoordinatedGraphics area.

        * css/WebKitCSSViewportRule.cpp:
        (WebCore::WebKitCSSViewportRule::WebKitCSSViewportRule):
        * css/WebKitCSSViewportRule.h:

2014-10-03  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS Selectors Level 4: Add parsing for :matches
        https://bugs.webkit.org/show_bug.cgi?id=137348

        Reviewed by Benjamin Poulain.

        Add initial parsing functionality of :matches pseudo class in Selectors Level 4.
        It accepts selector list as a parameter. It can contain pseudo elements.
        And now at the parsing phase, multiple pseudo elements are allowed.
        Currently :not doesn't accept any functional pseudo classes, :not(:matches(...)) is rejected.
        And currently, :matches(:visited, :link) is allowed in the parsing phase.

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::detectFunctionTypeToken):
        * css/CSSSelector.cpp:
        (WebCore::appendSelectorList):
        (WebCore::CSSSelector::selectorText):
        * css/CSSSelector.h:
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorPseudoClassAndCompatibilityElementMap.in:
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):

2014-10-02  Andreas Kling  <akling@apple.com>

        CSSOM rule wrappers always have a corresponding internal style object.
        <https://webkit.org/b/137379>

        Make the CSSOM rule wrapper classes use references & Ref instead of
        raw pointers and RefPtr for pointing to the internal style rule.

        Also changed the signature of reattach() to take a StyleRuleBase&
        since it's never called with a null pointer.

        Finally marked the rule classes final.

        Reviewed by Geoffrey Garen.

        * css/CSSCharsetRule.h:
        * css/CSSFontFaceRule.cpp:
        (WebCore::CSSFontFaceRule::CSSFontFaceRule):
        (WebCore::CSSFontFaceRule::reattach):
        * css/CSSFontFaceRule.h:
        (WebCore::CSSFontFaceRule::create): Deleted.
        * css/CSSGroupingRule.cpp:
        (WebCore::CSSGroupingRule::CSSGroupingRule):
        (WebCore::CSSGroupingRule::reattach):
        * css/CSSGroupingRule.h:
        * css/CSSImportRule.cpp:
        (WebCore::CSSImportRule::CSSImportRule):
        (WebCore::CSSImportRule::href):
        (WebCore::CSSImportRule::media):
        (WebCore::CSSImportRule::cssText):
        (WebCore::CSSImportRule::styleSheet):
        (WebCore::CSSImportRule::reattach):
        * css/CSSImportRule.h:
        (WebCore::CSSImportRule::create): Deleted.
        * css/CSSMediaRule.cpp:
        (WebCore::CSSMediaRule::CSSMediaRule):
        (WebCore::CSSMediaRule::mediaQueries):
        (WebCore::CSSMediaRule::reattach):
        * css/CSSMediaRule.h:
        (WebCore::CSSMediaRule::create): Deleted.
        * css/CSSPageRule.cpp:
        (WebCore::CSSPageRule::CSSPageRule):
        (WebCore::CSSPageRule::reattach):
        * css/CSSPageRule.h:
        (WebCore::CSSPageRule::create): Deleted.
        * css/CSSRule.h:
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::CSSStyleRule):
        (WebCore::CSSStyleRule::reattach):
        * css/CSSStyleRule.h:
        (WebCore::CSSStyleRule::create): Deleted.
        (WebCore::CSSStyleRule::styleRule): Deleted.
        * css/CSSStyleSheet.cpp:
        (WebCore::CSSStyleSheet::reattachChildRuleCSSOMWrappers):
        * css/CSSSupportsRule.cpp:
        (WebCore::CSSSupportsRule::CSSSupportsRule):
        (WebCore::CSSSupportsRule::conditionText):
        * css/CSSSupportsRule.h:
        (WebCore::CSSSupportsRule::create):
        * css/CSSUnknownRule.h:
        * css/StyleRule.cpp:
        (WebCore::StyleRuleBase::createCSSOMWrapper):
        * css/StyleRuleImport.h:
        (WebCore::StyleRuleImport::mediaQueries):
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::WebKitCSSKeyframeRule):
        (WebCore::WebKitCSSKeyframeRule::reattach):
        * css/WebKitCSSKeyframeRule.h:
        * css/WebKitCSSKeyframesRule.cpp:
        (WebCore::WebKitCSSKeyframesRule::WebKitCSSKeyframesRule):
        (WebCore::WebKitCSSKeyframesRule::item):
        (WebCore::WebKitCSSKeyframesRule::reattach):
        * css/WebKitCSSKeyframesRule.h:
        (WebCore::WebKitCSSKeyframesRule::create):
        * css/WebKitCSSRegionRule.cpp:
        (WebCore::WebKitCSSRegionRule::WebKitCSSRegionRule):
        (WebCore::WebKitCSSRegionRule::cssText):
        * css/WebKitCSSRegionRule.h:
        (WebCore::WebKitCSSRegionRule::create):
        * css/WebKitCSSViewportRule.cpp:
        (WebCore::WebKitCSSViewportRule::reattach):
        * css/WebKitCSSViewportRule.h:

2014-10-02  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for CSSRule subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137364

        Reviewed by Benjamin Poulain.

        Use is<>() / downcast<>() functions for CSSRule subclasses.

        No new tests, no behavior change.

        * css/CSSFontFaceRule.h:
        * css/CSSImportRule.h:
        * css/CSSMediaRule.h:
        * css/CSSRule.h:
        * css/CSSStyleRule.h:
        * css/CSSSupportsRule.h:
        * css/InspectorCSSOMWrappers.cpp:
        (WebCore::InspectorCSSOMWrappers::collect):
        * css/WebKitCSSKeyframesRule.h:
        * css/WebKitCSSRegionRule.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::asCSSStyleRule):
        (WebCore::InspectorCSSAgent::collectStyleSheets):
        (WebCore::InspectorCSSAgent::buildArrayForRuleList):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::asCSSRuleList):
        (WebCore::fillMediaListChain):
        (WebCore::InspectorStyleSheet::addRule):
        (WebCore::InspectorStyleSheet::collectFlatRules):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeCSSStyleSheet):

2014-10-02  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/18531395> REGRESSION (r173272): Crash in ResourceResponse::platformSuggestedFilename() when called on the null response
        https://bugs.webkit.org/show_bug.cgi?id=137239

        Reviewed by Pratik Solanki.

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::platformSuggestedFilename): Return the null String if
        m_cfResponse is null.

2014-10-02  Andy Estes  <aestes@apple.com>

        [iOS] Create an SPI wrapper for _UIHighlightView and use it in WKContentView
        https://bugs.webkit.org/show_bug.cgi?id=137370

        Reviewed by Tim Horton.

        Added _UIHighlightViewSPI.h. When building against the internal SDK it imports <UIKit/_UIHighlightView.h>. Otherwise, it redeclares the SPI we use in WebKit2.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/spi/ios/_UIHighlightViewSPI.h: Added.

2014-10-02  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: add the initial implementation of :nth-child(An+B of selector)
        https://bugs.webkit.org/show_bug.cgi?id=137285

        Reviewed by Andreas Kling.

        This patch adds the baseline support for JIT compiling :nth-child(An+B of selector).

        The simple optimizations from the classic :nth-child() are carried over to :nth-child(An+B of selector),
        but the new code generation is pretty much left completely unoptimized.

        The main challenge introduced with the new functional pseudo classes is the possibility of backtracking
        while already inside a backtracking chain.

        For example:
            :nth-child(odd of a+a+a~a)+b+b~b
        has to backtrack the chain a+a+a while already in the backtracking chain b+b+b.

        The easiest way to solve this would have been to have each subselector generate a new function.
        The generator for :nth-child() would simply call the function call for each sibling.

        In the example, we would have:
            functionA(): a+a+a~a
            selectorChecker(): :nth-child(odd of functionA())+b+b~b

        I decided against explicit functions because I believe the would be counterproductive for the common cases.
        I expect most use of :nth-child(of) to be done with a light filter without combinators, things like:
            :nth-child(odd of .class)
            :nth-child(odd of type.class)
            :nth-child(odd of type[attribute=value])
            etc.

        For simple cases, inlining the internal filter will greatly simplify the generated code.

        In this particular patch, the selector checkers are inlined, but we do not attempt to have good code generation.
        The optimizations will come later.

        To implement backtracking in the subselectors, the backtracking implementation was abstracted into the structure
        BacktrackingLevel. Every time the code generator starts a new subselector, a new BacktrackingLevel is pushed onto
        the multilevel backtracking stack. The code generation always use the latest BacktrackingLevel for code generation
        until the subselector is finished, and code generation can continue with the existing state.

        Tests: fast/selectors/nth-child-of-backtracking-adjacent-2.html
               fast/selectors/nth-child-of-backtracking-adjacent-optimized.html
               fast/selectors/nth-child-of-backtracking-adjacent.html
               fast/selectors/nth-child-of-boundaries-1.html
               fast/selectors/nth-child-of-boundaries-2.html
               fast/selectors/nth-child-of-boundaries-3.html
               fast/selectors/nth-child-of-chained-2.html
               fast/selectors/nth-child-of-has-parent.html
               fast/selectors/nth-child-of-never-matching-selector.html
               fast/selectors/nth-child-of-with-invalid-An+B.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::minimumRegisterRequirements):
        (WebCore::SelectorCompiler::computeBacktrackingMemoryRequirements):
        Previously, we only needed stack space for the adjacent backtracking entry.

        Now we can have several backtracking level active at the same time. We compute how much stack we need
        initially and each backtracking level take stack references as needed.

        (WebCore::SelectorCompiler::computeBacktrackingInformation):
        The entire backtracking infrastructure already works great for multilevel backtracking. It is actually
        amazing how everything fits nicely together :)

        The only addition here is logging facility in case we run into a bug.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorCheckerExcludingPseudoElements):
        generateSelectorChecker() has handling for pseudo elements, which should not be used
        for :nth-child(of). The core generator was moved to generateSelectorCheckerExcludingPseudoElements()
        to be used for code generation of subselectors.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDescendantBacktrackingTail):
        The two main changes are:
        1) Adopt the BacktrackingLevel to handle multilevel generation.
        2) Descendant backtracking can use the stack if we have multi level descendant backtracking.
           In that case, we just use the stack like for adjacent backtracking.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChildOf):
        This is very similar to generateElementIsNthChild(). The main difference is we cannot use
        the cache in this case.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::nthFilterIsAlwaysSatisified):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateNthFilterTest):

2014-10-02  Pratik Solanki  <psolanki@apple.com>

        [iOS] Networking process stops loading web pages while running Alexa test with random URL list
        https://bugs.webkit.org/show_bug.cgi?id=137362
        <rdar://problem/18507382>

        Reviewed by Alexey Proskuryakov.

        ResourceHandleCFURLConnectionDelegateWithOperationQueue needs to signal threads waiting on
        its semaphore when the handle is being destroyed. Otherwise, we can leave dispatch threads
        hanging around waiting for a response. This can happen when the Web Content process dies.
        Any thread/queue waiting on a response from that web process will leak and stay around
        forever. If we reach the dispatch queue limit of 64, then all networking will cease to
        happen in the Networking process. Fix this by signalling waiting threads and clearing out
        our state in much the same way that -[WebCoreResourceHandleAsOperationQueueDelegate
        detachHandle] does for Mac.

        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::releaseHandle):
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:

2014-10-02  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for CSSBasicShape objects
        https://bugs.webkit.org/show_bug.cgi?id=137331

        Reviewed by Andreas Kling.

        Use is<>() / downcast<>() for CSSBasicShape objects.

        No new tests, no behavior change.

        * css/BasicShapeFunctions.cpp:
        (WebCore::basicShapeForValue):
        * css/CSSBasicShapes.cpp:
        (WebCore::CSSBasicShapeCircle::equals):
        (WebCore::CSSBasicShapeEllipse::equals):
        (WebCore::CSSBasicShapePolygon::equals):
        (WebCore::CSSBasicShapeInset::equals):
        * css/CSSBasicShapes.h:

2014-10-02  Chris Dumez  <cdumez@apple.com>

        XMLHttpRequestProgressEventThrottle shouldn't throttle / defer progress events if there are no listeners
        https://bugs.webkit.org/show_bug.cgi?id=137346

        Reviewed by Alexey Proskuryakov.

        Previously XMLHttpRequestProgressEventThrottle would throttle / defer
        progress events, which involves queueing events and starting timers,
        even if there were no listeners for those events (which is fairly
        common case).

        This patch updates XMLHttpRequestProgressEventThrottle to make sure
        there are actual progress event listeners *before* attempting to
        throttle and do extra processing, to avoid doing unnecessary work.

        This patch also makes XMLHttpRequestProgressEventThrottle::dispatchEvent()
        private as this method is only called from other dispatch methods of
        the class and never from the outside.

        No new tests, no behavior change.

        * xml/XMLHttpRequestProgressEventThrottle.cpp:
        (WebCore::XMLHttpRequestProgressEventThrottle::dispatchThrottledProgressEvent):
        (WebCore::XMLHttpRequestProgressEventThrottle::dispatchProgressEvent):

2014-10-01  Myles C. Maxfield  <mmaxfield@apple.com>

        [Subpixel] Use floats instead of ints for text justification expansion
        https://bugs.webkit.org/show_bug.cgi?id=137327

        Reviewed by Zalan Bujtas.

        Use a float instead of an int for the expansion variable in InlineBox. The int was inside an inner class
        that held a collection of bitfields, and this patch removes that inner-inner variable.

        No new tests because there is plenty of existing coverage and existing tests are rebaselined.

        * rendering/InlineBox.cpp: Update static_assert for the size of InlineBox.
        * rendering/InlineBox.h: Use a float for the justification expansion amount instead of an int bitfield.
        (WebCore::InlineBox::InlineBoxBitfields::InlineBoxBitfields): Remove int bitfield.
        (WebCore::InlineBox::InlineBox): Initialize float expansion.
        (WebCore::InlineBox::expansion): Return a float.
        (WebCore::InlineBox::setExpansion): Take a float.
        (WebCore::InlineBox::InlineBoxBitfields::expansion): Deleted. Moved to InlineBox.
        (WebCore::InlineBox::InlineBoxBitfields::setExpansion): Deleted. Ditto.
        * rendering/InlineTextBox.h:
        (WebCore::InlineTextBox::setExpansion): Take a float.

2014-10-02  Tim Horton  <timothy_horton@apple.com>

        Move PageOverlay[Controller] to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=137164
        <rdar://problem/18508258>

        Reviewed by Anders Carlsson.

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        Make the appropriate build system changes.

        * WebCore.exp.in:
        Export the new PageOverlay[Controller] symbols from WebCore.

        * loader/EmptyClients.h:
        * page/ChromeClient.h:
        (WebCore::ChromeClient::documentOverlayLayerForFrame): Deleted.
        Add attachViewOverlayGraphicsLayer, which allows PageOverlayController
        to push view-relative page overlay root layers down to WebKit to be
        installed just inside the view.

        Remove documentOverlayLayerForFrame because RenderLayerCompositor can now
        talk directly to PageOverlayController.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::mouseMoved):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        When the mouse is moved, pressed, or released, give PageOverlayController
        the first shot at handling the event.

        * page/FrameView.cpp:
        (WebCore::FrameView::setFrameRect):
        Inform PageOverlayController that the main FrameView's size changed,
        so it can update the size of view-relative overlays.

        (WebCore::FrameView::setContentsSize):
        Inform PageOverlayController that the main FrameView's contents size changed,
        so it can update the size of document-relative overlays.

        (WebCore::FrameView::setFixedVisibleContentRect):
        (WebCore::FrameView::didChangeScrollOffset):
        (WebCore::FrameView::scrollTo):
        (WebCore::FrameView::wheelEvent):
        Inform PageOverlayController that something scrolled.

        (WebCore::FrameView::setExposedRect):
        Inform PageOverlayController that the exposed rect changed, so it can push
        the new exposed rect down to the overlays.

        * page/FrameView.h:
        Add didChangeScrollOffset.

        * page/MainFrame.cpp:
        (WebCore::MainFrame::MainFrame):
        * page/MainFrame.h:
        Keep one PageOverlayController per MainFrame.

        * page/Page.cpp:
        (WebCore::Page::setDeviceScaleFactor):
        Inform PageOverlayController that the device scale factor changed.

        (WebCore::Page::setSessionID):
        Remove a blank line.

        * page/PageOverlay.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/PageOverlay.cpp.
        Move PageOverlay from WebKit2 to WebCore.
        A few overarching changes that I won't detail in each place:
            - references instead of pointers in many places
            - WebCore types instead of WebKit2 types everywhere

        (WebCore::PageOverlay::bounds):
        It is possible to install an overlay before we have a FrameView.
        We will eventually get a view/contents size changed notification and try again.

        (WebCore::PageOverlay::copyAccessibilityAttributeStringValueForPoint):
        (WebCore::PageOverlay::copyAccessibilityAttributeBoolValueForPoint):
        (WebCore::PageOverlay::copyAccessibilityAttributeNames):
        Split copyAccessibilityAttribute into "StringValueForPoint" and "BoolValueForPoint"
        variants, because we don't have anything like WKTypeRef here.

        * page/PageOverlay.h: Renamed from Source/WebKit2/WebProcess/WebPage/PageOverlay.h.
        Make PageOverlay a normal RefCounted object instead of a WebKit2 API object.
        Leave a comment noting that we should move the PageOverlay's GraphicsLayer
        to PageOverlay instead of a map on PageOverlayController.

        * page/PageOverlayController.cpp: Renamed from Source/WebKit2/WebProcess/WebPage/PageOverlayController.cpp.
        Move PageOverlayController from WebKit2 to WebCore.
        A few overarching changes that I won't detail in each place:
            - references instead of pointers in many places
            - WebCore types instead of WebKit2 types everywhere

        Leave a FIXME that didChangeSettings is not currently called when settings change.
        This is not a problem for normal use of overlays, only for dynamically changing
        layer border/repaint counter settings.

        (WebCore::PageOverlayController::PageOverlayController):
        (WebCore::PageOverlayController::createRootLayersIfNeeded):
        We will now lazily initialize the root layers when we first try to use them,
        because otherwise we try to create them before the ChromeClient's GraphicsLayerFactory
        is hooked up, in some cases, and that can cause us to create the wrong kind of GraphicsLayers.

        (WebCore::PageOverlayController::installPageOverlay):
        Enter compositing mode when installing a PageOverlay.
        Avoid pushing the Page to the PageOverlay until after we've set up
        its root layer, so that the installation process can make use of that layer;
        clients may, for example, expect to be able to setNeedsDisplay() in the
        didMoveToPage callback.
        Avoid updateOverlayGeometry until the layer is created and we've pushed
        the Page down, so that e.g. bounds() will use the right Page.

        (WebCore::PageOverlayController::didChangeSettings):
        Leave a FIXME about a future improvement to didChangeSettings.

        (WebCore::PageOverlayController::deviceScaleFactor):
        (WebCore::PageOverlayController::notifyFlushRequired):
        Null-check Page; these can get called when tearing down the Frame.

        * page/PageOverlayController.h: Renamed from Source/WebKit2/WebProcess/WebPage/PageOverlayController.h.

        * platform/graphics/GraphicsLayerClient.h:
        Add wtf/Forward.h, because GraphicsLayerClient.h uses String.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollTo):
        Inform PageOverlayController that something scrolled.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::hasAnyAdditionalCompositedLayers):
        Make hasAnyAdditionalCompositedLayers return true if there are any page overlays,
        because we need to avoid falling out of compositing mode if we still have
        page overlays.

        (WebCore::RenderLayerCompositor::updateCompositingLayers):
        Enter compositing mode if we have page overlays.

        (WebCore::RenderLayerCompositor::appendOverlayLayers): Deleted.
        (WebCore::RenderLayerCompositor::appendDocumentOverlayLayers):
        Rename appendOverlayLayers -> appendDocumentOverlayLayers.

        (WebCore::RenderLayerCompositor::attachRootLayer):
        (WebCore::RenderLayerCompositor::detachRootLayer):
        Attach/detach the view overlay root layer when attaching/detaching the
        normal compositing root layer.

        (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
        * rendering/RenderLayerCompositor.h:

2014-10-02  Myles C. Maxfield  <mmaxfield@apple.com>

        Back TextRun with a StringView
        https://bugs.webkit.org/show_bug.cgi?id=137352

        Reviewed by Antti Koivisto.

        TextRun contains a union of a UChar* and an LChar* as well as a length, which is the abstraction
        that StringView is intended to be. This patch cleans up TextRun by replacing the union and length
        with a StringView instance member.

        No new tests because there is no behavior change.

        * platform/graphics/TextRun.h:
        (WebCore::TextRun::TextRun):
        (WebCore::TextRun::subRun):
        (WebCore::TextRun::operator[]):
        (WebCore::TextRun::data8):
        (WebCore::TextRun::data16):
        (WebCore::TextRun::characters8):
        (WebCore::TextRun::characters16):
        (WebCore::TextRun::is8Bit):
        (WebCore::TextRun::length):
        (WebCore::TextRun::string):
        (WebCore::TextRun::setText):
        (WebCore::TextRun::stringView):

2014-10-01  Christophe Dumez  <cdumez@apple.com>

        Have is<>(T*) function do a null check on the pointer argument
        https://bugs.webkit.org/show_bug.cgi?id=137333

        Reviewed by Gavin Barraclough.

        Have is<>(T*) function do a null check on the argument instead of a
        simple assertion. This makes sense for 2 reasons:
        1. It is more consistent with downcast<>(T*), which will succeed even
           if the argument is a nullptr.
        2. It simplifies the code a bit as it gets rid of a lot of explicit
           null checks.

        No new tests, no behavior change.

        * Modules/indexeddb/IDBFactory.cpp:
        * Modules/webaudio/OfflineAudioContext.cpp:
        (WebCore::OfflineAudioContext::create):
        * Modules/websockets/ThreadableWebSocketChannel.cpp:
        (WebCore::ThreadableWebSocketChannel::create):
        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::connect):
        * Modules/websockets/WebSocketHandshake.cpp:
        (WebCore::WebSocketHandshake::clientHandshakeMessage):
        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::focusedUIElementForPage):
        (WebCore::createFromRenderer):
        (WebCore::AXObjectCache::getOrCreate):
        (WebCore::AXObjectCache::handleLiveRegionCreated):
        (WebCore::AXObjectCache::handleAttributeChanged):
        (WebCore::AXObjectCache::labelChanged):
        (WebCore::AXObjectCache::rootAXEditableElement):
        (WebCore::isNodeAriaVisible):
        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::isEnabled):
        (WebCore::AccessibilityListBoxOption::isSelected):
        (WebCore::AccessibilityListBoxOption::canSetSelectedAttribute):
        (WebCore::AccessibilityListBoxOption::stringValue):
        (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaTimeline::valueDescription):
        * accessibility/AccessibilityMenuListPopup.cpp:
        (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
        (WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
        (WebCore::AccessibilityNodeObject::isNativeTextControl):
        (WebCore::AccessibilityNodeObject::isNativeImage):
        (WebCore::AccessibilityNodeObject::isInputImage):
        (WebCore::AccessibilityNodeObject::isEnabled):
        (WebCore::AccessibilityNodeObject::isPressed):
        (WebCore::AccessibilityNodeObject::isHovered):
        (WebCore::AccessibilityNodeObject::isReadOnly):
        (WebCore::AccessibilityNodeObject::isRequired):
        (WebCore::AccessibilityNodeObject::valueForRange):
        (WebCore::AccessibilityNodeObject::maxValueForRange):
        (WebCore::AccessibilityNodeObject::minValueForRange):
        (WebCore::AccessibilityNodeObject::isControl):
        (WebCore::AccessibilityNodeObject::anchorElement):
        (WebCore::isNodeActionElement):
        (WebCore::AccessibilityNodeObject::mouseButtonListener):
        (WebCore::AccessibilityNodeObject::labelForElement):
        (WebCore::AccessibilityNodeObject::titleElementText):
        (WebCore::AccessibilityNodeObject::alternativeText):
        (WebCore::AccessibilityNodeObject::visibleText):
        (WebCore::AccessibilityNodeObject::accessibilityDescription):
        (WebCore::AccessibilityNodeObject::helpText):
        (WebCore::AccessibilityNodeObject::hierarchicalLevel):
        (WebCore::AccessibilityNodeObject::textUnderElement):
        (WebCore::AccessibilityNodeObject::title):
        (WebCore::AccessibilityNodeObject::colorValue):
        (WebCore::accessibleNameForNode):
        (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::press):
        (WebCore::AccessibilityObject::hasTagName):
        (WebCore::AccessibilityObject::hasAttribute):
        (WebCore::AccessibilityObject::element):
        (WebCore::AccessibilityObject::classList):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isFileUploadButton):
        (WebCore::AccessibilityRenderObject::anchorElement):
        (WebCore::AccessibilityRenderObject::helpText):
        (WebCore::AccessibilityRenderObject::labelElementContainer):
        (WebCore::AccessibilityRenderObject::internalLinkElement):
        (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
        (WebCore::AccessibilityRenderObject::titleUIElement):
        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::accessKey):
        (WebCore::AccessibilityRenderObject::url):
        (WebCore::AccessibilityRenderObject::setElementAttributeValue):
        (WebCore::AccessibilityRenderObject::setFocused):
        (WebCore::AccessibilityRenderObject::setValue):
        (WebCore::AccessibilityRenderObject::getDocumentLinks):
        (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
        (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
        (WebCore::AccessibilityRenderObject::renderObjectIsObservable):
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
        (WebCore::AccessibilityRenderObject::addTextFieldChildren):
        (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
        (WebCore::AccessibilityRenderObject::setAccessibleName):
        (WebCore::AccessibilityRenderObject::stringValueForMSAA):
        (WebCore::AccessibilityRenderObject::isLinked):
        (WebCore::AccessibilityRenderObject::stringRoleForMSAA):
        (WebCore::AccessibilityRenderObject::isMathElement):
        * accessibility/AccessibilitySearchFieldButtons.cpp:
        (WebCore::AccessibilitySearchFieldCancelButton::press):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::tableElement):
        (WebCore::AccessibilityTable::isDataTable):
        (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
        (WebCore::AccessibilityTable::title):
        * accessibility/atk/AXObjectCacheAtk.cpp:
        (WebCore::notifyChildrenSelectionChange):
        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
        (webkitAccessibleTableGetCaption):
        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetName):
        (webkitAccessibleGetDescription):
        (webkitAccessibleGetAttributes):
        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap):
        * bindings/js/JSAudioContextCustom.cpp:
        (WebCore::constructJSAudioContext):
        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::toJSDOMGlobalObject):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::namedItemGetter):
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
        * bindings/js/JSElementCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSErrorHandler.cpp:
        (WebCore::JSErrorHandler::handleEvent):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::nameGetter):
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::JSLazyEventListener::initializeJSFunction):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::isReachableFromDOM):
        (WebCore::createWrapperInline):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/js/ScriptState.cpp:
        (WebCore::frameFromExecState):
        * bindings/objc/DOM.mm:
        (kitClass):
        * css/CSSCursorImageValue.cpp:
        (WebCore::resourceReferencedByCursorElement):
        * css/CSSStyleSheet.cpp:
        (WebCore::isAcceptableCSSStyleSheetParent):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isAutofilled):
        (WebCore::isDisabled):
        (WebCore::isEnabled):
        (WebCore::isChecked):
        (WebCore::matchesLangPseudoClass):
        (WebCore::matchesFutureCuePseudoClass):
        (WebCore::matchesPastCuePseudoClass):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::State::initElement):
        (WebCore::StyleResolver::locateCousinList):
        (WebCore::elementHasDirectionAuto):
        (WebCore::StyleResolver::canShareStyleWithElement):
        (WebCore::StyleResolver::findSiblingForStyleSharing):
        (WebCore::StyleResolver::adjustRenderStyle):
        (WebCore::StyleResolver::useSVGZoomRulesForLength):
        * css/StyleSheetList.cpp:
        (WebCore::StyleSheetList::getNamedItem):
        * dom/Attr.cpp:
        (WebCore::Attr::style):
        * dom/CharacterData.cpp:
        (WebCore::CharacterData::parserAppendData):
        (WebCore::CharacterData::setDataAndUpdate):
        * dom/ContainerNode.cpp:
        (WebCore::checkAcceptChild):
        (WebCore::ContainerNode::notifyChildRemoved):
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
        (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):
        * dom/CurrentScriptIncrementer.h:
        (WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer):
        * dom/DataTransfer.cpp:
        (WebCore::DataTransfer::setDragImage):
        * dom/Document.cpp:
        (WebCore::Document::elementFromPoint):
        (WebCore::Document::setTitle):
        (WebCore::Document::iconURLs):
        (WebCore::eventTargetElementForDocument):
        (WebCore::Document::updateHoverActiveState):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
        * dom/Element.cpp:
        (WebCore::Element::computeInheritedLanguage):
        * dom/Element.h:
        (WebCore::Node::parentElement):
        * dom/ElementTraversal.h:
        (WebCore::Traversal<Element>::nextTemplate):
        (WebCore::ElementTraversal::previousIncludingPseudo):
        (WebCore::ElementTraversal::nextIncludingPseudo):
        (WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
        (WebCore::ElementTraversal::pseudoAwarePreviousSibling):
        * dom/EventDispatcher.cpp:
        (WebCore::WindowEventContext::WindowEventContext):
        (WebCore::EventDispatcher::dispatchEvent):
        (WebCore::nodeOrHostIfPseudoElement):
        (WebCore::EventPath::EventPath):
        * dom/EventTarget.cpp:
        (WebCore::EventTarget::fireEventListeners):
        * dom/KeyboardEvent.cpp:
        (WebCore::findKeyboardEvent):
        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::namedItem):
        * dom/MessagePort.cpp:
        (WebCore::MessagePort::dispatchMessages):
        * dom/MouseEvent.cpp:
        (WebCore::SimulatedMouseEvent::SimulatedMouseEvent):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setNamedItem):
        * dom/Node.cpp:
        (WebCore::Node::dumpStatistics):
        (WebCore::Node::pseudoAwarePreviousSibling):
        (WebCore::Node::pseudoAwareNextSibling):
        (WebCore::Node::computedStyle):
        (WebCore::Node::parentOrShadowHostElement):
        (WebCore::Node::rootEditableElement):
        (WebCore::Node::ancestorElement):
        (WebCore::Node::compareDocumentPosition):
        (WebCore::appendAttributeDesc):
        (WebCore::Node::showNodePathForThis):
        (WebCore::Node::enclosingLinkEventParentOrSelf):
        (WebCore::Node::dispatchEvent):
        (WebCore::Node::defaultEventHandler):
        * dom/NodeRenderingTraversal.cpp:
        (WebCore::NodeRenderingTraversal::nodeCanBeDistributed):
        (WebCore::NodeRenderingTraversal::traverseParent):
        * dom/NodeTraversal.cpp:
        (WebCore::NodeTraversal::previousIncludingPseudo):
        (WebCore::NodeTraversal::nextIncludingPseudo):
        (WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
        * dom/Position.cpp:
        (WebCore::Position::element):
        (WebCore::endsOfNodeAreVisuallyDistinctPositions):
        (WebCore::Position::isRenderedCharacter):
        (WebCore::Position::leadingWhitespacePosition):
        * dom/Range.cpp:
        (WebCore::Range::insertNode):
        (WebCore::Range::getBorderAndTextQuads):
        * dom/ScriptElement.cpp:
        (WebCore::toScriptElementIfPossible):
        * dom/ShadowRoot.h:
        (WebCore::Node::parentOrShadowHostNode):
        * dom/Text.cpp:
        (WebCore::earliestLogicallyAdjacentTextNode):
        (WebCore::latestLogicallyAdjacentTextNode):
        (WebCore::isSVGShadowText):
        * dom/TextNodeTraversal.cpp:
        (WebCore::TextNodeTraversal::contentsAsString):
        * dom/TextNodeTraversal.h:
        (WebCore::TextNodeTraversal::firstTextChildTemplate):
        (WebCore::TextNodeTraversal::firstTextWithinTemplate):
        (WebCore::TextNodeTraversal::traverseNextTextTemplate):
        (WebCore::TextNodeTraversal::nextSibling):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
        * editing/ApplyBlockElementCommand.cpp:
        (WebCore::isNewLineAtPosition):
        (WebCore::ApplyBlockElementCommand::endOfNextParagrahSplittingTextNodesIfNeeded):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::isLegacyAppleStyleSpan):
        (WebCore::isStyleSpanOrSpanWithOnlyStyleAttribute):
        (WebCore::isSpanWithoutAttributesOrUnstyledStyleSpan):
        (WebCore::isEmptyFontTag):
        (WebCore::ApplyStyleCommand::applyBlockStyle):
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::dummySpanAncestorForNode):
        (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
        (WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle):
        (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
        (WebCore::ApplyStyleCommand::splitTextAtEnd):
        (WebCore::ApplyStyleCommand::splitTextElementAtEnd):
        (WebCore::ApplyStyleCommand::shouldSplitTextElement):
        (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
        (WebCore::ApplyStyleCommand::applyInlineStyleChange):
        (WebCore::ApplyStyleCommand::joinChildTextNodes):
        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::isRemovableBlock):
        (WebCore::CompositeEditCommand::insertNodeAt):
        (WebCore::CompositeEditCommand::canRebalance):
        (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
        (WebCore::CompositeEditCommand::deleteInsignificantText):
        (WebCore::CompositeEditCommand::removePlaceholderAt):
        (WebCore::CompositeEditCommand::cleanupAfterDeletion):
        (WebCore::CompositeEditCommand::moveParagraphs):
        * editing/DeleteButtonController.cpp:
        (WebCore::enclosingDeletableElement):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        (WebCore::DeleteSelectionCommand::fixupWhitespace):
        (WebCore::DeleteSelectionCommand::doApply):
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::wrappingStyleForSerialization):
        * editing/Editor.cpp:
        (WebCore::imageElementFromImageDocument):
        (WebCore::Editor::shouldInsertFragment):
        (WebCore::Editor::setBaseWritingDirection):
        (WebCore::Editor::setComposition):
        (WebCore::Editor::isSpellCheckingEnabledFor):
        (WebCore::Editor::applyEditingStyleToElement):
        * editing/FormatBlockCommand.cpp:
        (WebCore::isElementForFormatBlock):
        * editing/FrameSelection.cpp:
        (WebCore::removingNodeRemovesPosition):
        (WebCore::CaretBase::paintCaret):
        (WebCore::FrameSelection::debugRenderer):
        (WebCore::FrameSelection::selectAll):
        (WebCore::scanForForm):
        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::doApply):
        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::mergeWithNeighboringLists):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/InsertTextCommand.cpp:
        (WebCore::InsertTextCommand::insertTab):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::haveSameTagName):
        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
        (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
        (WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace):
        (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
        (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
        (WebCore::ReplaceSelectionCommand::insertAsListItems):
        (WebCore::ReplaceSelectionCommand::performTrivialReplace):
        * editing/SpellChecker.cpp:
        (WebCore::SpellChecker::isCheckable):
        * editing/SplitTextNodeContainingElementCommand.cpp:
        (WebCore::SplitTextNodeContainingElementCommand::doApply):
        * editing/TextIterator.cpp:
        (WebCore::isRendererReplacedElement):
        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::isInPasswordField):
        * editing/VisibleUnits.cpp:
        (WebCore::startPositionForLine):
        (WebCore::endPositionForLine):
        (WebCore::startOfParagraph):
        (WebCore::endOfParagraph):
        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::aggregatedAttributesForAncestors):
        (HTMLConverter::aggregatedAttributesForElementAndItsAncestors):
        (WebCore::editingAttributedStringFromRange):
        * editing/htmlediting.cpp:
        (WebCore::enclosingBlock):
        (WebCore::enclosingElementWithTag):
        (WebCore::enclosingAnchorElement):
        (WebCore::enclosingList):
        (WebCore::lineBreakExistsAtPosition):
        (WebCore::areIdenticalElements):
        (WebCore::isNonTableCellHTMLBlockElement):
        (WebCore::deprecatedEnclosingBlockFlowElement):
        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::appendText):
        (WebCore::ancestorToRetainStructureAndAppearanceForBlock):
        (WebCore::isPlainTextMarkup):
        * fileapi/FileReader.cpp:
        (WebCore::FileReader::readAsArrayBuffer):
        (WebCore::FileReader::readAsBinaryString):
        (WebCore::FileReader::readAsText):
        (WebCore::FileReader::readAsDataURL):
        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
        * html/FTPDirectoryDocument.cpp:
        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
        * html/FormAssociatedElement.cpp:
        (WebCore::FormAssociatedElement::findAssociatedForm):
        * html/HTMLAnchorElement.cpp:
        (WebCore::appendServerMapMousePosition):
        (WebCore::HTMLAnchorElement::defaultEventHandler):
        (WebCore::HTMLAnchorElement::eventType):
        (WebCore::isEnterKeyKeydownEvent):
        (WebCore::isLinkClick):
        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::imageElement):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::insertedInto):
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::defaultEventHandler):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::namedItem):
        (WebCore::HTMLCollection::updateNamedElementCache):
        * html/HTMLDocument.cpp:
        (WebCore::HTMLDocument::bgColor):
        (WebCore::HTMLDocument::setBgColor):
        (WebCore::HTMLDocument::fgColor):
        (WebCore::HTMLDocument::setFgColor):
        (WebCore::HTMLDocument::alinkColor):
        (WebCore::HTMLDocument::setAlinkColor):
        (WebCore::HTMLDocument::linkColor):
        (WebCore::HTMLDocument::setLinkColor):
        (WebCore::HTMLDocument::vlinkColor):
        (WebCore::HTMLDocument::setVlinkColor):
        (WebCore::HTMLDocument::isFrameSet):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::matchesReadWritePseudoClass):
        (WebCore::mergeWithNextTextNode):
        (WebCore::HTMLElement::setOuterHTML):
        (WebCore::HTMLElement::setOuterText):
        (WebCore::HTMLElement::insertAdjacentElement):
        (WebCore::contextElementForInsertion):
        (WebCore::HTMLElement::directionality):
        (WebCore::HTMLElement::dirAttributeChanged):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::rendererIsNeeded):
        * html/HTMLFieldSetElement.cpp:
        (WebCore::updateFromControlElementsAncestorDisabledStateUnder):
        (WebCore::HTMLFieldSetElement::disabledStateChanged):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):
        (WebCore::shouldAutofocus):
        (WebCore::HTMLFormControlElement::enclosingFormControlElement):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::rendererIsNeeded):
        (WebCore::HTMLFormElement::submitImplicitly):
        (WebCore::submitElementFromEvent):
        (WebCore::HTMLFormElement::validateInteractively):
        (WebCore::HTMLFormElement::submit):
        (WebCore::HTMLFormElement::reset):
        (WebCore::HTMLFormElement::defaultButton):
        (WebCore::HTMLFormElement::documentDidResumeFromPageCache):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::getSVGDocument):
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::defaultEventHandler):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::defaultEventHandler):
        (WebCore::HTMLInputElement::dataList):
        * html/HTMLLabelElement.cpp:
        (WebCore::nodeAsSupportedLabelableElement):
        * html/HTMLLegendElement.cpp:
        (WebCore::HTMLLegendElement::virtualForm):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::hasFallbackContent):
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::recalcSelectOptions):
        (WebCore::HTMLOptGroupElement::ownerSelectElement):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::setText):
        (WebCore::HTMLOptionElement::index):
        (WebCore::HTMLOptionElement::ownerDataListElement):
        (WebCore::HTMLOptionElement::ownerSelectElement):
        (WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel):
        (WebCore::HTMLOptionElement::isDisabledFormControl):
        (WebCore::HTMLOptionElement::collectOptionInnerText):
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::addPlugInsFromNodeListMatchingPlugInOrigin):
        (WebCore::HTMLPlugInImageElement::defaultEventHandler):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::setText):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::nextValidIndex):
        (WebCore::HTMLSelectElement::saveLastSelection):
        (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
        (WebCore::HTMLSelectElement::updateListBoxSelection):
        (WebCore::HTMLSelectElement::listBoxOnChange):
        (WebCore::HTMLSelectElement::recalcListItems):
        (WebCore::HTMLSelectElement::selectedIndex):
        (WebCore::HTMLSelectElement::selectOption):
        (WebCore::HTMLSelectElement::optionToListIndex):
        (WebCore::HTMLSelectElement::listToOptionIndex):
        (WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
        (WebCore::HTMLSelectElement::saveFormControlState):
        (WebCore::HTMLSelectElement::searchOptionsForValue):
        (WebCore::HTMLSelectElement::restoreFormControlState):
        (WebCore::HTMLSelectElement::appendFormData):
        (WebCore::HTMLSelectElement::reset):
        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
        (WebCore::HTMLSelectElement::updateSelectedState):
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
        (WebCore::HTMLSelectElement::defaultEventHandler):
        (WebCore::HTMLSelectElement::lastSelectedListIndex):
        (WebCore::HTMLSelectElement::optionAtIndex):
        (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
        (WebCore::HTMLSelectElement::length):
        * html/HTMLSourceElement.cpp:
        (WebCore::HTMLSourceElement::insertedInto):
        (WebCore::HTMLSourceElement::removedFrom):
        * html/HTMLSummaryElement.cpp:
        (WebCore::isClickableControl):
        (WebCore::HTMLSummaryElement::defaultEventHandler):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::caption):
        * html/HTMLTablePartElement.cpp:
        (WebCore::HTMLTablePartElement::findParentTable):
        * html/HTMLTableRowElement.cpp:
        (WebCore::HTMLTableRowElement::rowIndex):
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::rowAfter):
        (WebCore::HTMLTableRowsCollection::lastRow):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::defaultEventHandler):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::innerTextValue):
        (WebCore::positionForIndex):
        (WebCore::HTMLTextFormControlElement::indexForPosition):
        (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
        * html/HTMLTitleElement.cpp:
        (WebCore::HTMLTitleElement::setText):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::mediaElement):
        * html/ImageDocument.cpp:
        (WebCore::ImageEventListener::handleEvent):
        * html/InputType.cpp:
        (WebCore::InputType::shouldSubmitImplicitly):
        * html/MediaDocument.cpp:
        (WebCore::ancestorVideoElement):
        (WebCore::MediaDocument::defaultEventHandler):
        * html/RadioInputType.cpp:
        (WebCore::RadioInputType::handleKeydownEvent):
        (WebCore::RadioInputType::isKeyboardFocusable):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::shouldSubmitImplicitly):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::hasImpliedEndTag):
        (WebCore::HTMLConstructionSite::attachLater):
        (WebCore::HTMLConstructionSite::insertHTMLFormElement):
        (WebCore::HTMLConstructionSite::insertTextNode):
        (WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
        (WebCore::HTMLConstructionSite::findFosterSite):
        * html/parser/HTMLElementStack.cpp:
        (WebCore::HTMLNames::isScopeMarker):
        (WebCore::HTMLNames::isTableScopeMarker):
        (WebCore::HTMLNames::isSelectScopeMarker):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processStartTag):
        (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
        * html/shadow/InsertionPoint.h:
        (WebCore::isActiveInsertionPoint):
        (WebCore::parentNodeForDistribution):
        (WebCore::parentElementForDistribution):
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::parentMediaElement):
        (WebCore::mediaControlElementType):
        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::defaultEventHandler):
        (WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler):
        (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler):
        (WebCore::MediaControlTimelineElement::defaultEventHandler):
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::containsRelatedTarget):
        * html/shadow/MediaControlsApple.cpp:
        (WebCore::MediaControlsAppleEventListener::handleEvent):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::SliderThumbElement::defaultEventHandler):
        * html/shadow/SpinButtonElement.cpp:
        (WebCore::SpinButtonElement::defaultEventHandler):
        (WebCore::SpinButtonElement::forwardEvent):
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::copyWebVTTNodeToDOMTree):
        (WebCore::VTTCue::markFutureAndPastNodes):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::elementForId):
        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::unbind):
        (WebCore::InspectorDOMAgent::assertDocument):
        (WebCore::InspectorDOMAgent::assertElement):
        (WebCore::InspectorDOMAgent::querySelector):
        (WebCore::InspectorDOMAgent::querySelectorAll):
        (WebCore::InspectorDOMAgent::setNodeName):
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        (WebCore::InspectorDOMAgent::innerParentNode):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::frameForScriptExecutionContext):
        (WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
        * inspector/InspectorNodeFinder.cpp:
        (WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
        (WebCore::InspectorNodeFinder::searchUsingXPath):
        (WebCore::InspectorNodeFinder::searchUsingCSSSelectors):
        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForElementInfo):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::inlineStyleSheetText):
        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::create):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::handleFallbackContent):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadPlugin):
        * loader/ThreadableLoader.cpp:
        (WebCore::ThreadableLoader::create):
        (WebCore::ThreadableLoader::loadResourceSynchronously):
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::removeRequestFromCache):
        (WebCore::MemoryCache::removeRequestFromSessionCaches):
        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::attributeChanged):
        * mathml/MathMLSelectElement.cpp:
        (WebCore::MathMLSelectElement::getSelectedSemanticsChild):
        * page/Chrome.cpp:
        (WebCore::Chrome::setToolTip):
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::maybeCreateContextMenu):
        (WebCore::ContextMenuController::populate):
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::install):
        (WebCore::DOMTimer::fired):
        * page/DragController.cpp:
        (WebCore::elementUnderMouse):
        (WebCore::DragController::operationForLoad):
        (WebCore::DragController::canProcessDrag):
        (WebCore::DragController::draggableElement):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::isSubmitImage):
        (WebCore::targetIsFrame):
        (WebCore::findDropZone):
        (WebCore::EventHandler::updateDragAndDrop):
        (WebCore::EventHandler::updateMouseEventTargetNode):
        (WebCore::EventHandler::handleTextInputEvent):
        * page/FocusController.cpp:
        (WebCore::FocusNavigationScope::owner):
        (WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument):
        (WebCore::FocusController::findFocusableElementAcrossFocusScope):
        (WebCore::FocusController::findElementWithExactTabIndex):
        (WebCore::nextElementWithGreaterTabIndex):
        (WebCore::previousElementWithLowerTabIndex):
        (WebCore::FocusController::nextFocusableElement):
        (WebCore::FocusController::previousFocusableElement):
        (WebCore::clearSelectionIfNeeded):
        (WebCore::FocusController::advanceFocusDirectionally):
        * page/Frame.cpp:
        (WebCore::Frame::searchForLabelsBeforeElement):
        (WebCore::Frame::setPageAndTextZoomFactors):
        * page/FrameView.cpp:
        (WebCore::FrameView::init):
        (WebCore::FrameView::scrollToAnchor):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeFrame):
        * page/SpatialNavigation.cpp:
        (WebCore::FocusCandidate::FocusCandidate):
        (WebCore::scrollInDirection):
        (WebCore::scrollableEnclosingBoxOrParentFrameForNodeInDirection):
        (WebCore::canScrollInDirection):
        (WebCore::nodeRectInAbsoluteCoordinates):
        (WebCore::areElementsOnSameLine):
        * page/ios/FrameIOS.mm:
        (WebCore::ancestorRespondingToClickEvents):
        * platform/network/FormData.cpp:
        (WebCore::FormData::appendKeyValuePairItems):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::setInnerNode):
        (WebCore::HitTestResult::setInnerNonSharedNode):
        (WebCore::HitTestResult::title):
        (WebCore::HitTestResult::innerTextIfTruncated):
        (WebCore::HitTestResult::mediaSupportsFullscreen):
        (WebCore::HitTestResult::enterFullscreenForVideo):
        (WebCore::HitTestResult::mediaIsVideo):
        (WebCore::HitTestResult::innerElement):
        (WebCore::HitTestResult::innerNonSharedElement):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::resizeTextPermitted):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::sizesLogicalWidthToFitContent):
        * rendering/RenderCounter.cpp:
        (WebCore::planCounter):
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::isOpen):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::uploadButton):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintAreaElementFocusRing):
        (WebCore::RenderImage::paintIntoRect):
        (WebCore::RenderImage::imageMap):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):
        (WebCore::RenderLayer::resize):
        (WebCore::RenderLayer::updateSnapOffsets):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::isRestartedPlugin):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::updateFromElement):
        (WebCore::RenderListBox::addFocusRingRects):
        (WebCore::RenderListBox::paintItemForeground):
        (WebCore::RenderListBox::paintItemBackground):
        * rendering/RenderMarquee.cpp:
        (WebCore::RenderMarquee::marqueeSpeed):
        * rendering/RenderMenuList.cpp:
        (WebCore::selectedOptionCount):
        (RenderMenuList::updateOptionsWidth):
        (RenderMenuList::setTextFromOption):
        (RenderMenuList::itemText):
        (RenderMenuList::itemIsEnabled):
        (RenderMenuList::itemIsLabel):
        (RenderMenuList::itemIsSelected):
        * rendering/RenderMeter.cpp:
        (WebCore::RenderMeter::meterElement):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::isChildAllowed):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::addPDFURLRect):
        (WebCore::RenderObject::shouldRespectImageOrientation):
        (WebCore::RenderObject::updateDragState):
        (WebCore::RenderObject::getUncachedPseudoStyle):
        (WebCore::RenderObject::getTextDecorationColors):
        * rendering/RenderProgress.cpp:
        (WebCore::RenderProgress::progressElement):
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::handleEvent):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
        (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::parseColSpanFromDOM):
        (WebCore::RenderTableCell::parseRowSpanFromDOM):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::isEnabled):
        (WebCore::RenderTheme::isFocused):
        (WebCore::RenderTheme::isPressed):
        (WebCore::RenderTheme::isSpinUpButtonPartPressed):
        (WebCore::RenderTheme::isReadOnlyControl):
        (WebCore::RenderTheme::isHovered):
        (WebCore::RenderTheme::isSpinUpButtonPartHovered):
        (WebCore::RenderTheme::paintSliderTicks):
        * rendering/RenderThemeGtk.cpp:
        (WebCore::getMediaElementFromRenderObject):
        (WebCore::nodeHasClass):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::updatePressedState):
        (WebCore::RenderThemeMac::paintSliderThumb):
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
        (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::isEmptyOrUnstyledAppleStyleSpan):
        (WebCore::RenderTreeAsText::writeRenderObject):
        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::isAutosizingContainer):
        (WebCore::TextAutosizer::containerContainsOneOfTags):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::isChildAllowed):
        * rendering/svg/RenderSVGGradientStop.cpp:
        (WebCore::RenderSVGGradientStop::gradientElement):
        * rendering/svg/RenderSVGTransformableContainer.cpp:
        (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
        * style/StyleResolveTree.cpp:
        (WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
        (WebCore::Style::attachChildren):
        (WebCore::Style::attachDistributedChildren):
        (WebCore::Style::detachDistributedChildren):
        (WebCore::Style::detachChildren):
        (WebCore::Style::resolveShadowTree):
        (WebCore::Style::resolveTree):
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::defaultEventHandler):
        * svg/SVGAltGlyphElement.cpp:
        (WebCore::SVGAltGlyphElement::hasValidGlyphElements):
        * svg/SVGAnimateMotionElement.cpp:
        (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
        * svg/SVGDocument.cpp:
        (WebCore::SVGDocument::rootElement):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::isOutermostSVGSVGElement):
        (WebCore::SVGElement::ownerSVGElement):
        (WebCore::SVGElement::viewportElement):
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::associatedFontElement):
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        * svg/SVGFontFaceSrcElement.cpp:
        (WebCore::SVGFontFaceSrcElement::childrenChanged):
        * svg/SVGGlyphElement.cpp:
        (WebCore::SVGGlyphElement::invalidateGlyphCache):
        * svg/SVGHKernElement.cpp:
        (WebCore::SVGHKernElement::insertedInto):
        (WebCore::SVGHKernElement::removedFrom):
        * svg/SVGLengthContext.cpp:
        (WebCore::SVGLengthContext::determineViewport):
        * svg/SVGLinearGradientElement.cpp:
        (WebCore::SVGLinearGradientElement::collectGradientAttributes):
        * svg/SVGLocatable.cpp:
        (WebCore::isViewportElement):
        (WebCore::SVGLocatable::getTransformToElement):
        * svg/SVGMPathElement.cpp:
        (WebCore::SVGMPathElement::pathElement):
        (WebCore::SVGMPathElement::notifyParentOfPathChange):
        * svg/SVGPathElement.cpp:
        (WebCore::SVGPathElement::invalidateMPathDependencies):
        * svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::collectPatternAttributes):
        * svg/SVGRadialGradientElement.cpp:
        (WebCore::SVGRadialGradientElement::collectGradientAttributes):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::setupInitialView):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::elementFromRenderer):
        * svg/SVGUseElement.cpp:
        (WebCore::dumpInstanceTree):
        (WebCore::SVGUseElement::toClipPath):
        (WebCore::SVGUseElement::expandUseElementsInShadowTree):
        (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
        * svg/SVGVKernElement.cpp:
        (WebCore::SVGVKernElement::insertedInto):
        (WebCore::SVGVKernElement::removedFrom):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::buildPendingResource):
        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::imageForRenderer):
        * testing/Internals.cpp:
        (WebCore::Internals::shadowRootType):
        (WebCore::Internals::visiblePlaceholder):
        (WebCore::Internals::selectColorInColorChooser):
        (WebCore::Internals::wasLastChangeUserEdit):
        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
        (WebCore::Internals::isSelectPopupVisible):
        * testing/js/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::injectInternalsObject):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::open):
        * xml/XPathFunctions.cpp:
        (WebCore::XPath::expandedNameLocalPart):
        (WebCore::XPath::FunLang::evaluate):
        * xml/XPathNodeSet.cpp:
        (WebCore::XPath::sortBlock):
        (WebCore::XPath::NodeSet::sort):
        (WebCore::XPath::findRootNode):
        (WebCore::XPath::NodeSet::traversalSort):
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser):

2014-10-02  Rik Cabanier  <cabanier@adobe.com>

        Clean up loops in CSSGradientValue.cpp
        https://bugs.webkit.org/show_bug.cgi?id=137332

        Reviewed by Andreas Kling.

        This patch cleans up a couple of for loops by using C++11 syntax and
        fixes some grammar in a comment.

        No new tests, no behavior change.

        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::gradientWithStylesResolved): Move for loops to C++11.
        (WebCore::CSSGradientValue::addStops): Update grammar in comment for gradient midpoints.

2014-10-02  Krzysztof Czech  <k.czech@samsung.com>

        AX: Default orientation for aria scrollbars should be vertical
        https://bugs.webkit.org/show_bug.cgi?id=137341

        Reviewed by Chris Fleizach.

        Default orientation for aria scrollbars regarding w3c spec should be vertical

        No new tests, covering by existing one.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::orientation):

2014-10-02  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Fix minimal build warnings
        https://bugs.webkit.org/show_bug.cgi?id=137066

        Reviewed by Daniel Bates.

        No new tests, no behavior change.

        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
        * page/Page.cpp:
        (WebCore::Page::setPageScaleFactor):
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::glyphDataForCharacter):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::prepareGraphicsContextForTextPainting):

2014-10-01  Benjamin Poulain  <bpoulain@apple.com>

        Click events offset in webkit-overflow-scrolling iframes
        https://bugs.webkit.org/show_bug.cgi?id=134596

        Reviewed by Sam Weinig.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::visibleContentRectInternal):
        When converting coordinates from the main frame to a subframe's document, the position
        is first converted to the subframe's FrameView coordinate system, then offset by the scroll
        offset of the subframe itself.

        The bug in this case was that the scroll offset used was the global scroll offset of the frame
        in the view instead of the scroll offset of the document in its own frameview.

        The regression was introduced by the refactoring r162663. On iOS WebKit1, the coordinate system
        is different depending on VisibleContentRectIncludesScrollbars. In r162663, the value was set
        such that the rect returned is always in absolute coordinate.

        The ideal solution would be to refactor ScrollView::platformVisibleContentRect() to always return
        the offsets in scroll view coordinates and verify and update all the call sites to use explicit
        conversion to the top frame. In this patch I only reverted the coordinate change of r162663 to avoid
        large scale impact.

2014-10-01  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for File
        https://bugs.webkit.org/show_bug.cgi?id=137318

        Reviewed by Gyuyoung Kim.

        Use is<>() / downcast<>() for File instead of isFile() / toFile().

        No new tests, no behavior change.

        * fileapi/Blob.h:
        * fileapi/File.h:
        (isType):
        * fileapi/FileReader.cpp:
        (WebCore::FileReader::readAsArrayBuffer):
        (WebCore::FileReader::readAsBinaryString):
        (WebCore::FileReader::readAsText):
        (WebCore::FileReader::readAsDataURL):
        * platform/network/FormData.cpp:
        (WebCore::FormData::appendKeyValuePairItems):

2014-10-01  Rik Cabanier  <cabanier@adobe.com>

        Add support for midpoint to CSS gradients
        https://bugs.webkit.org/show_bug.cgi?id=137171

        Reviewed by Darin Adler.

        This patch adds support for gradient midpoints. It also updates the 
        gradient tests so they use the feature.
        Spec: http://dev.w3.org/csswg/css-images-4/#color-interpolation-hint

        Tests: fast/gradients/unprefixed-color-stops2.html
               fast/gradients/unprefixed-gradient-parsing.html
               fast/gradients/unprefixed-linear-angle-gradients2.html
               fast/gradients/unprefixed-radial-gradients.html
               fast/gradients/unprefixed-radial-gradients2.html
               fast/gradients/unprefixed-repeating-linear-gradient.html
               fast/gradients/unprefixed-repeating-radial-gradients.html

        * css/CSSGradientValue.cpp:
        (WebCore::GradientStop::GradientStop): constructor initializes the midpoint variable
        (WebCore::CSSGradientValue::gradientWithStylesResolved): this function checks for midpoint color stops
        (WebCore::CSSGradientValue::addStops): this function processes midpoints and converts them to regular color stops
        (WebCore::CSSLinearGradientValue::customCSSText): this routine was updated to do correct parsing for midpoints
        (WebCore::CSSRadialGradientValue::customCSSText):
        * css/CSSGradientValue.h:
        (WebCore::CSSGradientColorStop::CSSGradientColorStop): this function stores if a stop is a midpoint
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGradientColorStops): this function now allows color stops with no color

2014-10-01  Chris Dumez  <cdumez@apple.com>

        Add basic caching for Document.cookie API
        https://bugs.webkit.org/show_bug.cgi?id=137225

        Reviewed by Alexey Proskuryakov.

        While profiling the load of nytimes.com, I noticed that the site is
        accessing ~250 times document.cookie, just during page load. Accessing
        document.cookie is currently slow because we:
        - Call WebPlatformStrategies::cookiesForDOM() virtual function
        - Send a sync IPC message to the Network process to retrieve the
          cookies
            - The Network process gets the list of cookies from CFNetwork then
              serializes the result to send it back to the WebProcess
        - We unserialize the cookies into an NSList of cookies
        - We filter-out the cookies that are 'httpOnly' and construct a new
          NSList of cookies
        - We create a WTF String out of the cookies NSList

        In the case of nytimes.com, it turns out that up to 100 calls to
        document.cookie() are made in the same event loop iteration. This patch
        thus caches / freezes the cookies until we return to the event
        loop so that consecutive calls to document.cookie() are extremely fast.
        Doing so seems to be sufficient to achieve a ~87% cache hit for
        nytimes.com page load.

        The cookies cache is invalidated whenever:
        - document.cookie is set
        - we return to the event loop
        - a network resource is loaded synchronously as it may cause cookies to
          be set before we return to the event loop

        Test: http/tests/cookies/sync-xhr-set-cookie-invalidates-cache.html

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::open):
        (WebCore::Document::cookie):
        (WebCore::Document::setCookie):
        (WebCore::Document::setCookieURL):
        (WebCore::Document::initSecurityContext):
        (WebCore::Document::setDOMCookieCache):
        (WebCore::Document::invalidateDOMCookieCache):
        (WebCore::Document::domCookieCacheExpiryTimerFired):
        (WebCore::Document::didLoadResourceSynchronously):
        * dom/Document.h:
        (WebCore::Document::domCookieCache):
        (WebCore::Document::isDOMCookieCacheValid):
        (WebCore::Document::setCookieURL): Deleted.
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::didLoadResourceSynchronously):
        * dom/ScriptExecutionContext.h:
        * loader/ThreadableLoader.cpp:
        (WebCore::ThreadableLoader::loadResourceSynchronously):

2014-10-01  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for Event classes
        https://bugs.webkit.org/show_bug.cgi?id=137284

        Reviewed by Andreas Kling.

        Use is<>() / downcast<>() for Event classes.

        No new tests, no behavior change.

        * bindings/js/JSErrorHandler.cpp:
        (WebCore::JSErrorHandler::handleEvent):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * dom/BeforeTextInsertedEvent.h:
        * dom/BeforeUnloadEvent.h:
        * dom/ErrorEvent.h:
        * dom/Event.h:
        * dom/EventContext.cpp:
        (WebCore::MouseOrFocusEventContext::handleLocalEvents):
        * dom/FocusEvent.h:
        * dom/KeyboardEvent.cpp:
        (WebCore::findKeyboardEvent):
        * dom/KeyboardEvent.h:
        * dom/MouseEvent.cpp:
        (WebCore::SimulatedMouseEvent::SimulatedMouseEvent):
        * dom/MouseEvent.h:
        * dom/Node.cpp:
        (WebCore::Node::defaultEventHandler):
        * dom/TextEvent.h:
        * dom/UIEvent.h:
        * dom/WheelEvent.h:
        * html/HTMLAnchorElement.cpp:
        (WebCore::appendServerMapMousePosition):
        (WebCore::HTMLAnchorElement::defaultEventHandler):
        (WebCore::HTMLAnchorElement::eventType):
        (WebCore::isEnterKeyKeydownEvent):
        (WebCore::isLinkClick):
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::defaultEventHandler):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::submitImplicitly):
        * html/HTMLFormElement.h:
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::defaultEventHandler):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::willDispatchEvent):
        (WebCore::HTMLInputElement::defaultEventHandler):
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::defaultEventHandler):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
        (WebCore::HTMLSelectElement::defaultEventHandler):
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::defaultEventHandler):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::defaultEventHandler):
        * html/ImageDocument.cpp:
        (WebCore::ImageEventListener::handleEvent):
        * html/ImageInputType.cpp:
        (WebCore::ImageInputType::handleDOMActivateEvent):
        * html/InputType.cpp:
        (WebCore::InputType::shouldSubmitImplicitly):
        * html/InputType.h:
        * html/MediaDocument.cpp:
        (WebCore::MediaDocument::defaultEventHandler):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::shouldSubmitImplicitly):
        * html/TextFieldInputType.h:
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::MediaControlVolumeSliderElement::defaultEventHandler):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::defaultEventHandler):
        (WebCore::MediaControlVolumeSliderContainerElement::defaultEventHandler):
        (WebCore::MediaControlTimelineElement::defaultEventHandler):
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::containsRelatedTarget):
        * html/shadow/MediaControlsApple.cpp:
        (WebCore::MediaControlsAppleEventListener::handleEvent):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::SliderThumbElement::defaultEventHandler):
        * html/shadow/SpinButtonElement.cpp:
        (WebCore::SpinButtonElement::defaultEventHandler):
        (WebCore::SpinButtonElement::forwardEvent):
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::dispatchEventAsContextMenuEvent):
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::maybeCreateContextMenu):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleTextInputEvent):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
        (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
        * rendering/RenderEmbeddedObject.h:
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::handleEvent):

2014-10-01  Zan Dobersek  <zdobersek@igalia.com>

        [TexMap] Sprinkle range-based for-loops in GraphicsLayerTextureMapper, TextureMapperLayer
        https://bugs.webkit.org/show_bug.cgi?id=137271

        Reviewed by Sergio Villar Senin.

        Switch to using C++11 range-based for-loops in the
        GraphicsLayerTextureMapper and TextureMapperLayer classes.

        The for loops that remained unchanged either do further computation
        with the loop index or must iterate over the container in reverse.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::toTextureMapperLayerVector):
        (WebCore::GraphicsLayerTextureMapper::flushCompositingState):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::computeTransformsRecursive):
        (WebCore::TextureMapperLayer::paintSelfAndChildren):
        (WebCore::TextureMapperLayer::computeOverlapRegions):
        (WebCore::TextureMapperLayer::paintUsingOverlapRegions):
        (WebCore::TextureMapperLayer::~TextureMapperLayer):
        (WebCore::TextureMapperLayer::setChildren):
        (WebCore::TextureMapperLayer::descendantsOrSelfHaveRunningAnimations):
        (WebCore::TextureMapperLayer::applyAnimationsRecursively):

2014-10-01  Dan Bernstein  <mitz@apple.com>

        Windows build fix.

        * platform/network/cf/ResourceResponseCFNet.cpp:

2014-10-01  Dan Bernstein  <mitz@apple.com>

        REGRESSION (r173423): [iOS] Sites with EV certificates appear as normal HTTPS sites
        https://bugs.webkit.org/show_bug.cgi?id=137262

        Reviewed by Antti Koivisto.

        No new tests, because the API test harness doesn’t run an HTTP server to test against.

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::platformCertificateInfo): Return a CertificateInfo initialized
        with the certificate array from the response.

2014-09-30  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: Enable multiple stack references allocation by allocateUninitialized
        https://bugs.webkit.org/show_bug.cgi?id=135293

        Reviewed by Benjamin Poulain.

        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::stackTop):
            Add stackTop method to check references are allocated easily.
        (WebCore::StackAllocator::allocateUninitialized):

2014-09-30  Chris Dumez  <cdumez@apple.com>

        Drop getPtr() overload taking a Document reference in argument
        https://bugs.webkit.org/show_bug.cgi?id=137280

        Reviewed by Daniel Bates.

        Drop getPtr() overload taking a Document reference in argument. This is
        no longer needed as the generic getPtr() function converts references
        into pointers just fine after r173765.

        No new tests, no behavior change.

        * dom/Document.h:
        (WTF::getPtr): Deleted.

2014-09-30  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: ErrorString should be passed by reference
        https://bugs.webkit.org/show_bug.cgi?id=137257

        Reviewed by Joseph Pecoraro.

        Pass the leading ErrorString argument by reference, since it is always an out parameter.
        Clean up callsites where the error message is written.

        No new tests, no behavior changed.

        * inspector/CommandLineAPIHost.cpp:
        (WebCore::CommandLineAPIHost::clearConsoleMessages):
        * inspector/DOMEditor.cpp:
        (WebCore::populateErrorString):
        (WebCore::DOMEditor::insertBefore):
        (WebCore::DOMEditor::removeChild):
        (WebCore::DOMEditor::setAttribute):
        (WebCore::DOMEditor::removeAttribute):
        (WebCore::DOMEditor::setOuterHTML):
        (WebCore::DOMEditor::replaceWholeText):
        * inspector/DOMEditor.h:
        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::enable):
        (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
        (WebCore::InspectorApplicationCacheAgent::assertFrameWithDocumentLoader):
        (WebCore::InspectorApplicationCacheAgent::getManifestForFrame):
        (WebCore::InspectorApplicationCacheAgent::getApplicationCacheForFrame):
        * inspector/InspectorApplicationCacheAgent.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::enable):
        (WebCore::InspectorCSSAgent::disable):
        (WebCore::InspectorCSSAgent::didCreateNamedFlow):
        (WebCore::InspectorCSSAgent::regionOversetChanged):
        (WebCore::InspectorCSSAgent::didRegisterNamedFlowContentElement):
        (WebCore::InspectorCSSAgent::didUnregisterNamedFlowContentElement):
        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
        (WebCore::InspectorCSSAgent::getInlineStylesForNode):
        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
        (WebCore::InspectorCSSAgent::getAllStyleSheets):
        (WebCore::InspectorCSSAgent::getStyleSheet):
        (WebCore::InspectorCSSAgent::getStyleSheetText):
        (WebCore::InspectorCSSAgent::setStyleSheetText):
        (WebCore::InspectorCSSAgent::setStyleText):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        (WebCore::InspectorCSSAgent::setRuleSelector):
        (WebCore::InspectorCSSAgent::addRule):
        (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
        (WebCore::InspectorCSSAgent::forcePseudoState):
        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
        (WebCore::InspectorCSSAgent::elementForId):
        (WebCore::InspectorCSSAgent::assertStyleSheetForId):
        (WebCore::InspectorCSSAgent::buildArrayForRegions):
        (WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::hideHighlight):
        (WebCore::InspectorController::setProfilerEnabled):
        (WebCore::InspectorController::resume):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorDOMAgent::assertNode):
        (WebCore::InspectorDOMAgent::assertDocument):
        (WebCore::InspectorDOMAgent::assertElement):
        (WebCore::InspectorDOMAgent::assertEditableNode):
        (WebCore::InspectorDOMAgent::assertEditableElement):
        (WebCore::InspectorDOMAgent::getDocument):
        (WebCore::InspectorDOMAgent::pushNodeToFrontend):
        (WebCore::InspectorDOMAgent::requestChildNodes):
        (WebCore::InspectorDOMAgent::querySelector):
        (WebCore::InspectorDOMAgent::querySelectorAll):
        (WebCore::InspectorDOMAgent::releaseBackendNodeIds):
        (WebCore::InspectorDOMAgent::setAttributeValue):
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::removeAttribute):
        (WebCore::InspectorDOMAgent::removeNode):
        (WebCore::InspectorDOMAgent::setNodeName):
        (WebCore::InspectorDOMAgent::getOuterHTML):
        (WebCore::InspectorDOMAgent::setOuterHTML):
        (WebCore::InspectorDOMAgent::setNodeValue):
        (WebCore::InspectorDOMAgent::getEventListenersForNode):
        (WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
        (WebCore::InspectorDOMAgent::performSearch):
        (WebCore::InspectorDOMAgent::getSearchResults):
        (WebCore::InspectorDOMAgent::discardSearchResults):
        (WebCore::InspectorDOMAgent::inspect):
        (WebCore::InspectorDOMAgent::setSearchingForNode):
        (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
        (WebCore::InspectorDOMAgent::setInspectModeEnabled):
        (WebCore::InspectorDOMAgent::highlightRect):
        (WebCore::InspectorDOMAgent::highlightQuad):
        (WebCore::InspectorDOMAgent::highlightNode):
        (WebCore::InspectorDOMAgent::highlightFrame):
        (WebCore::InspectorDOMAgent::hideHighlight):
        (WebCore::InspectorDOMAgent::moveTo):
        (WebCore::InspectorDOMAgent::undo):
        (WebCore::InspectorDOMAgent::redo):
        (WebCore::InspectorDOMAgent::markUndoableState):
        (WebCore::InspectorDOMAgent::focus):
        (WebCore::InspectorDOMAgent::resolveNode):
        (WebCore::InspectorDOMAgent::getAttributes):
        (WebCore::InspectorDOMAgent::requestNode):
        (WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
        (WebCore::InspectorDOMAgent::pushNodeByBackendIdToFrontend):
        * inspector/InspectorDOMAgent.h:
        * inspector/InspectorDOMDebuggerAgent.cpp:
        (WebCore::InspectorDOMDebuggerAgent::setEventListenerBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::setInstrumentationBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::setBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::removeEventListenerBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::removeInstrumentationBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::removeBreakpoint):
        (WebCore::domTypeForName):
        (WebCore::InspectorDOMDebuggerAgent::setDOMBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::removeDOMBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::setXHRBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::removeXHRBreakpoint):
        (WebCore::InspectorDOMDebuggerAgent::willSendXMLHttpRequest):
        * inspector/InspectorDOMDebuggerAgent.h:
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorDOMStorageAgent::enable):
        (WebCore::InspectorDOMStorageAgent::disable):
        (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
        (WebCore::InspectorDOMStorageAgent::setDOMStorageItem):
        (WebCore::InspectorDOMStorageAgent::removeDOMStorageItem):
        (WebCore::InspectorDOMStorageAgent::findStorageArea):
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.cpp:
        (WebCore::InspectorDatabaseAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorDatabaseAgent::enable):
        (WebCore::InspectorDatabaseAgent::disable):
        (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
        (WebCore::InspectorDatabaseAgent::executeSQL):
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore::InspectorIndexedDBAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorIndexedDBAgent::enable):
        (WebCore::InspectorIndexedDBAgent::disable):
        (WebCore::assertDocument):
        (WebCore::assertIDBFactory):
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNames):
        (WebCore::InspectorIndexedDBAgent::requestDatabase):
        (WebCore::InspectorIndexedDBAgent::requestData):
        (WebCore::InspectorIndexedDBAgent::clearObjectStore):
        * inspector/InspectorIndexedDBAgent.h:
        * inspector/InspectorLayerTreeAgent.cpp:
        (WebCore::InspectorLayerTreeAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorLayerTreeAgent::enable):
        (WebCore::InspectorLayerTreeAgent::disable):
        (WebCore::InspectorLayerTreeAgent::layersForNode):
        (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
        (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
        (WebCore::InspectorLayerTreeAgent::idForNode):
        (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
        * inspector/InspectorLayerTreeAgent.h:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::cachedResourceContent):
        (WebCore::InspectorPageAgent::resourceContent):
        (WebCore::InspectorPageAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorPageAgent::enable):
        (WebCore::InspectorPageAgent::disable):
        (WebCore::InspectorPageAgent::addScriptToEvaluateOnLoad):
        (WebCore::InspectorPageAgent::removeScriptToEvaluateOnLoad):
        (WebCore::InspectorPageAgent::reload):
        (WebCore::InspectorPageAgent::navigate):
        (WebCore::InspectorPageAgent::getCookies):
        (WebCore::InspectorPageAgent::deleteCookie):
        (WebCore::InspectorPageAgent::getResourceTree):
        (WebCore::InspectorPageAgent::getResourceContent):
        (WebCore::InspectorPageAgent::searchInResource):
        (WebCore::InspectorPageAgent::searchInResources):
        (WebCore::InspectorPageAgent::setDocumentContent):
        (WebCore::InspectorPageAgent::setShowPaintRects):
        (WebCore::InspectorPageAgent::canShowDebugBorders):
        (WebCore::InspectorPageAgent::setShowDebugBorders):
        (WebCore::InspectorPageAgent::canShowFPSCounter):
        (WebCore::InspectorPageAgent::setShowFPSCounter):
        (WebCore::InspectorPageAgent::canContinuouslyPaint):
        (WebCore::InspectorPageAgent::setContinuousPaintingEnabled):
        (WebCore::InspectorPageAgent::getScriptExecutionStatus):
        (WebCore::InspectorPageAgent::setScriptExecutionDisabled):
        (WebCore::InspectorPageAgent::assertFrame):
        (WebCore::InspectorPageAgent::assertDocumentLoader):
        (WebCore::InspectorPageAgent::setTouchEmulationEnabled):
        (WebCore::InspectorPageAgent::setEmulatedMedia):
        (WebCore::InspectorPageAgent::getCompositingBordersVisible):
        (WebCore::InspectorPageAgent::setCompositingBordersVisible):
        (WebCore::InspectorPageAgent::snapshotNode):
        (WebCore::InspectorPageAgent::snapshotRect):
        (WebCore::InspectorPageAgent::handleJavaScriptDialog):
        (WebCore::InspectorPageAgent::archive):
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorReplayAgent.cpp:
        (WebCore::InspectorReplayAgent::startCapturing):
        (WebCore::InspectorReplayAgent::stopCapturing):
        (WebCore::InspectorReplayAgent::replayToPosition):
        (WebCore::InspectorReplayAgent::replayToCompletion):
        (WebCore::InspectorReplayAgent::pausePlayback):
        (WebCore::InspectorReplayAgent::cancelPlayback):
        (WebCore::InspectorReplayAgent::switchSession):
        (WebCore::InspectorReplayAgent::insertSessionSegment):
        (WebCore::InspectorReplayAgent::removeSessionSegment):
        (WebCore::InspectorReplayAgent::findSession):
        (WebCore::InspectorReplayAgent::findSegment):
        (WebCore::InspectorReplayAgent::currentReplayState):
        (WebCore::InspectorReplayAgent::getAvailableSessions):
        (WebCore::InspectorReplayAgent::getSessionData):
        (WebCore::InspectorReplayAgent::getSegmentData):
        * inspector/InspectorReplayAgent.h:
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorResourceAgent::~InspectorResourceAgent):
        (WebCore::InspectorResourceAgent::enable):
        (WebCore::InspectorResourceAgent::disable):
        (WebCore::InspectorResourceAgent::setExtraHTTPHeaders):
        (WebCore::InspectorResourceAgent::getResponseBody):
        (WebCore::InspectorResourceAgent::replayXHR):
        (WebCore::InspectorResourceAgent::canClearBrowserCache):
        (WebCore::InspectorResourceAgent::clearBrowserCache):
        (WebCore::InspectorResourceAgent::canClearBrowserCookies):
        (WebCore::InspectorResourceAgent::clearBrowserCookies):
        (WebCore::InspectorResourceAgent::setCacheDisabled):
        (WebCore::InspectorResourceAgent::loadResource):
        * inspector/InspectorResourceAgent.h:
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::resourceStyleSheetText):
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorTimelineAgent::start):
        (WebCore::InspectorTimelineAgent::stop):
        * inspector/InspectorTimelineAgent.h:
        * inspector/InspectorWorkerAgent.cpp:
        (WebCore::InspectorWorkerAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorWorkerAgent::enable):
        (WebCore::InspectorWorkerAgent::disable):
        (WebCore::InspectorWorkerAgent::canInspectWorkers):
        (WebCore::InspectorWorkerAgent::connectToWorker):
        (WebCore::InspectorWorkerAgent::disconnectFromWorker):
        (WebCore::InspectorWorkerAgent::sendMessageToWorker):
        (WebCore::InspectorWorkerAgent::setAutoconnectToWorkers):
        * inspector/InspectorWorkerAgent.h:
        * inspector/PageConsoleAgent.cpp:
        (WebCore::PageConsoleAgent::clearMessages):
        (WebCore::PageConsoleAgent::addInspectedNode):
        * inspector/PageConsoleAgent.h:
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::injectedScriptForEval):
        (WebCore::PageDebuggerAgent::setOverlayMessage):
        * inspector/PageDebuggerAgent.h:
        * inspector/PageRuntimeAgent.cpp:
        (WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
        (WebCore::PageRuntimeAgent::enable):
        (WebCore::PageRuntimeAgent::disable):
        (WebCore::PageRuntimeAgent::injectedScriptForEval):
        * inspector/PageRuntimeAgent.h:
        * inspector/WebConsoleAgent.cpp:
        (WebCore::WebConsoleAgent::setMonitoringXHREnabled):
        * inspector/WebConsoleAgent.h:
        * inspector/WorkerConsoleAgent.cpp:
        (WebCore::WorkerConsoleAgent::addInspectedNode):
        * inspector/WorkerConsoleAgent.h:
        * inspector/WorkerDebuggerAgent.cpp:
        (WebCore::WorkerDebuggerAgent::injectedScriptForEval):
        * inspector/WorkerDebuggerAgent.h:
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::resume):
        * inspector/WorkerRuntimeAgent.cpp:
        (WebCore::WorkerRuntimeAgent::injectedScriptForEval):
        (WebCore::WorkerRuntimeAgent::run):
        * inspector/WorkerRuntimeAgent.h:

2014-09-30  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Stack overflow with enormous SVG filter
        https://bugs.webkit.org/show_bug.cgi?id=63290

        Prevent building an SVG filter if it has more than 200 FilterEffect nodes in its map 
        regardless whether they will be connected to its lastEffect or not. Also discard any
        filter which has more 100 contributing FilterEffect nodes in its tree.

        Reviewed by Dean Jackson.

        Tests: svg/filters/svg-deeply-nested-crash.html

        * platform/graphics/filters/FilterEffect.cpp:
        (WebCore::collectEffects):
        (WebCore::FilterEffect::totalNumberOfEffectInputs):
        * platform/graphics/filters/FilterEffect.h:
        -- Add a method to return the total number of input FilterEffect's contributing to a FilterEffect.
        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::RenderSVGResourceFilter::buildPrimitives):
        -- Do not build a filter if it has more than 200 FilterEffects in its map.
        (WebCore::RenderSVGResourceFilter::applyResource):
        -- Discard a filter after it was built if it has more than 100 FilterEffects in its tree.

2014-09-30  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for ContainerNode
        https://bugs.webkit.org/show_bug.cgi?id=137270

        Reviewed by Andreas Kling.

        Use is<>() / downcast<>() for ContainerNode instead of isContainerNode()
        / toContainerNode(). Also kill the NODE_TYPE_CASTS() macro as this was
        its last user.

        No new tests, no behavior change.

        * dom/ContainerNode.cpp:
        (WebCore::collectChildrenAndRemoveFromOldParent):
        (WebCore::ContainerNode::willRemoveChild):
        (WebCore::cloneChildNodesAvoidingDeleteButton):
        * dom/ContainerNode.h:
        (WebCore::Node::countChildNodes):
        (WebCore::Node::traverseToChildAt):
        (WebCore::Node::firstChild):
        (WebCore::Node::lastChild):
        (isType):
        (WebCore::isContainerNode): Deleted.
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoTree):
        (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):
        * dom/ContainerNodeAlgorithms.h:
        (WebCore::ChildNodeInsertionNotifier::notifyNodeInsertedIntoDocument):
        (WebCore::ChildNodeInsertionNotifier::notify):
        (WebCore::ChildNodeRemovalNotifier::notifyNodeRemovedFromDocument):
        (WebCore::ChildNodeRemovalNotifier::notify):
        * dom/Node.cpp:
        (WebCore::Node::childNodes):
        (WebCore::Node::insertBefore):
        (WebCore::Node::replaceChild):
        (WebCore::Node::removeChild):
        (WebCore::Node::appendChild):
        (WebCore::Node::setTextContent):
        * dom/Node.h:
        * dom/Range.cpp:
        (WebCore::Range::surroundContents):
        * dom/TextNodeTraversal.cpp:
        (WebCore::TextNodeTraversal::contentsAsString):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyBlockStyle):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::insertNodeAt):
        * editing/Editor.cpp:
        (WebCore::correctSpellcheckingPreservingTextCheckingParagraph):
        * html/MediaDocument.cpp:
        (WebCore::MediaDocument::defaultEventHandler):
        * html/parser/HTMLConstructionSite.h:
        (WebCore::HTMLConstructionSiteTask::oldParent):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::copyWebVTTNodeToDOMTree):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::querySelector):
        (WebCore::InspectorDOMAgent::querySelectorAll):
        * inspector/InspectorNodeFinder.cpp:
        (WebCore::InspectorNodeFinder::searchUsingCSSSelectors):

2014-09-30  Roger Fong  <roger_fong@apple.com>

        [Windows] Remove an errant WTFLogAlways that makes test output hard to read and generates stderr output.

        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
        (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didFinishLoading):

2014-09-30  David Hyatt  <hyatt@apple.com>

        Remove a multicolumn ASSERT and replace with a guard.
        https://bugs.webkit.org/show_bug.cgi?id=137272
        
        Reviewed by Alexey Proskuryakov.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::isValidColumnSpanner):
        For now remove the assert that is tripping and replace it with a guard
        until we can figure out why it's getting hit.

2014-09-30  Christophe Dumez  <cdumez@apple.com>

        Generalize is<>() / downcast<>() support to all types
        https://bugs.webkit.org/show_bug.cgi?id=137243

        Reviewed by Benjamin Poulain.

        Generalize is<>() / downcast<>() support to all types, not just Nodes.
        To achieve this, the following changes were made:
        - Move is<> / downcast<>() and NodeTypeCastTraits from Node.h to a new
          wtf/TypeCasts.h header. Also move them to WTF namespace instead of
          WebCore namespace as they can be used for classes in other namespaces
          (e.g. WebKit namespace).
        - Rename NodeTypeCastsTraits to TypeCastTraits as it can be specialized
          for non-Nodes.
        - Since C++ does not allow template specializations in different
          namespaces, I had to move all the SPECIALIZE_TYPE_TRAITS_*() uses to
          the global scope and use the WebCore:: namespace explicitly in those.
          This is a bit unfortunate but I couldn't find a better way.

        This patch also takes care of supporting is<>() / downcast<>() for
        the WorkerGlobalScope class, which does not derive from Node.

        No new tests, no behavior change.

        * Modules/indexeddb/IDBFactory.cpp:
        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
        (WebCore::WorkerGlobalScopeIndexedDatabase::from):
        * Modules/websockets/ThreadableWebSocketChannel.cpp:
        (WebCore::ThreadableWebSocketChannel::create):
        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::toJSDOMGlobalObject):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * dom/Attr.h:
        (isType):
        (WebCore::isAttr): Deleted.
        * dom/CDATASection.h:
        (isType):
        (WebCore::isCDATASection): Deleted.
        * dom/CharacterData.h:
        (isType):
        (WebCore::isCharacterData): Deleted.
        * dom/Comment.h:
        (isType):
        (WebCore::isComment): Deleted.
        * dom/Document.h:
        (isType):
        (WebCore::isDocument): Deleted.
        * dom/DocumentFragment.h:
        (isType):
        (WebCore::isDocumentFragment): Deleted.
        * dom/DocumentType.h:
        (isType):
        (WebCore::isDocumentType): Deleted.
        * dom/Element.h:
        * dom/MessagePort.cpp:
        (WebCore::MessagePort::dispatchMessages):
        * dom/Node.h:
        (WebCore::is): Deleted.
        (WebCore::downcast): Deleted.
        * dom/ProcessingInstruction.h:
        (isType):
        (WebCore::isProcessingInstruction): Deleted.
        * dom/PseudoElement.h:
        (isType):
        (WebCore::isPseudoElement): Deleted.
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::createdMessagePort):
        (WebCore::ScriptExecutionContext::destroyedMessagePort):
        (WebCore::ScriptExecutionContext::vm):
        * dom/ScriptExecutionContext.h:
        * dom/ShadowRoot.h:
        (isType):
        (WebCore::isShadowRoot): Deleted.
        * dom/StyledElement.h:
        (isType):
        (WebCore::isStyledElement): Deleted.
        * dom/Text.h:
        (isType):
        (WebCore::isText): Deleted.
        * dom/make_names.pl:
        (printTypeHelpers):
        (printTypeHelpersHeaderFile):
        * html/HTMLDocument.h:
        (isType):
        (WebCore::isHTMLDocument): Deleted.
        * html/HTMLElement.h:
        (isType):
        (WebCore::isHTMLElement): Deleted.
        * html/HTMLFormControlElement.h:
        (isType):
        (WebCore::isHTMLFormControlElement): Deleted.
        * html/HTMLFrameElementBase.h:
        (isType):
        (WebCore::isHTMLFrameElementBase): Deleted.
        * html/HTMLFrameOwnerElement.h:
        (isType):
        (WebCore::isHTMLFrameOwnerElement): Deleted.
        * html/HTMLMediaElement.h:
        (isType):
        (WebCore::isHTMLMediaElement): Deleted.
        * html/HTMLPlugInElement.h:
        (isType):
        (WebCore::isHTMLPlugInElement): Deleted.
        * html/HTMLPlugInImageElement.h:
        (isType):
        (WebCore::isHTMLPlugInImageElement): Deleted.
        * html/HTMLTableCellElement.h:
        (isType):
        (WebCore::isHTMLTableCellElement): Deleted.
        * html/HTMLTableSectionElement.h:
        (isType):
        (WebCore::isHTMLTableSectionElement): Deleted.
        * html/HTMLTextFormControlElement.h:
        (isType):
        (WebCore::isHTMLTextFormControlElement): Deleted.
        * html/ImageDocument.h:
        (isType):
        (WebCore::isImageDocument): Deleted.
        * html/LabelableElement.h:
        (isType):
        (WebCore::isLabelableElement): Deleted.
        * html/MediaDocument.h:
        (isType):
        (WebCore::isMediaDocument): Deleted.
        * html/PluginDocument.h:
        (isType):
        (WebCore::isPluginDocument): Deleted.
        * html/shadow/InsertionPoint.h:
        (isType):
        (WebCore::isInsertionPoint): Deleted.
        * html/shadow/TextControlInnerElements.h:
        (isType):
        (WebCore::isTextControlInnerTextElement): Deleted.
        * html/track/WebVTTElement.h:
        (isType):
        (WebCore::isWebVTTElement): Deleted.
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::instrumentingAgentsForNonDocumentContext):
        * loader/ThreadableLoader.cpp:
        (WebCore::ThreadableLoader::create):
        (WebCore::ThreadableLoader::loadResourceSynchronously):
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::removeRequestFromCache):
        (WebCore::MemoryCache::removeRequestFromSessionCaches):
        * mathml/MathMLElement.h:
        (isType):
        (WebCore::isMathMLElement): Deleted.
        * svg/SVGAnimateElementBase.h:
        (isType):
        (WebCore::isSVGAnimateElementBase): Deleted.
        * svg/SVGDocument.h:
        (isType):
        (WebCore::isSVGDocument): Deleted.
        * svg/SVGElement.h:
        (isType):
        (WebCore::isSVGElement): Deleted.
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        (isType):
        (WebCore::isSVGFilterPrimitiveStandardAttributes): Deleted.
        * svg/SVGGradientElement.h:
        (isType):
        (WebCore::isSVGGradientElement): Deleted.
        * svg/SVGGraphicsElement.h:
        (isType):
        (WebCore::isSVGGraphicsElement): Deleted.
        * svg/SVGPolyElement.h:
        (isType):
        (WebCore::isSVGPolyElement): Deleted.
        * svg/SVGTextContentElement.h:
        (isType):
        (WebCore::isSVGTextContentElement): Deleted.
        * svg/animation/SVGSMILElement.h:
        (isType):
        (WebCore::isSVGSMILElement): Deleted.
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
        * workers/WorkerGlobalScope.cpp:
        (WebCore::WorkerGlobalScope::close):
        * workers/WorkerGlobalScope.h:
        (isType):
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::WorkerMessagingProxy):
        (WebCore::WorkerMessagingProxy::~WorkerMessagingProxy):
        (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
        (WebCore::WorkerMessagingProxy::connectToInspector):
        (WebCore::WorkerMessagingProxy::disconnectFromInspector):
        (WebCore::WorkerMessagingProxy::sendMessageToInspector):
        * workers/WorkerScriptLoader.cpp:
        (WebCore::WorkerScriptLoader::loadSynchronously):
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::stop):

2014-09-30  Chris Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for Element
        https://bugs.webkit.org/show_bug.cgi?id=137241

        Reviewed by Andreas Kling.

        Use is<>() / downcast<>() for Element instead of isElementNode() /
        toElement().

        No new tests, no behavior change.

        * accessibility/AXObjectCache.cpp:
        (WebCore::nodeHasRole):
        (WebCore::createFromRenderer):
        (WebCore::AXObjectCache::handleLiveRegionCreated):
        (WebCore::AXObjectCache::handleMenuItemSelected):
        (WebCore::AXObjectCache::rootAXEditableElement):
        (WebCore::isNodeAriaVisible):
        * accessibility/AccessibilityMenuList.cpp:
        (WebCore::AccessibilityMenuList::canSetFocusAttribute):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
        (WebCore::AccessibilityNodeObject::canvasHasFallbackContent):
        (WebCore::AccessibilityNodeObject::isEnabled):
        (WebCore::AccessibilityNodeObject::isPressed):
        (WebCore::AccessibilityNodeObject::isHovered):
        (WebCore::AccessibilityNodeObject::anchorElement):
        (WebCore::nativeActionElement):
        (WebCore::AccessibilityNodeObject::actionElement):
        (WebCore::AccessibilityNodeObject::mouseButtonListener):
        (WebCore::AccessibilityNodeObject::titleElementText):
        (WebCore::AccessibilityNodeObject::helpText):
        (WebCore::AccessibilityNodeObject::hierarchicalLevel):
        (WebCore::AccessibilityNodeObject::title):
        (WebCore::AccessibilityNodeObject::text):
        (WebCore::accessibleNameForNode):
        (WebCore::AccessibilityNodeObject::canSetFocusAttribute):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::press):
        (WebCore::AccessibilityObject::hasTagName):
        (WebCore::AccessibilityObject::hasAttribute):
        (WebCore::AccessibilityObject::element):
        (WebCore::AccessibilityObject::classList):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::anchorElement):
        (WebCore::AccessibilityRenderObject::helpText):
        (WebCore::AccessibilityRenderObject::checkboxOrRadioRect):
        (WebCore::AccessibilityRenderObject::titleUIElement):
        (WebCore::AccessibilityRenderObject::accessKey):
        (WebCore::AccessibilityRenderObject::setElementAttributeValue):
        (WebCore::AccessibilityRenderObject::setFocused):
        (WebCore::AccessibilityRenderObject::setValue):
        (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
        (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
        (WebCore::AccessibilityRenderObject::renderObjectIsObservable):
        (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
        (WebCore::AccessibilityRenderObject::setAccessibleName):
        (WebCore::AccessibilityRenderObject::stringRoleForMSAA):
        * accessibility/AccessibilitySearchFieldButtons.cpp:
        (WebCore::AccessibilitySearchFieldCancelButton::press):
        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetAttributes):
        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::isReachableFromDOM):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::styledNode):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::locateCousinList):
        * dom/ContainerNode.cpp:
        (WebCore::destroyRenderTreeIfNeeded):
        (WebCore::ContainerNode::notifyChildRemoved):
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
        (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromDocument):
        (WebCore::ChildNodeRemovalNotifier::notifyDescendantRemovedFromTree):
        (WebCore::assertConnectedSubrameCountIsConsistent):
        * dom/Document.cpp:
        (WebCore::Document::importNode):
        (WebCore::Document::elementFromPoint):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
        * dom/Element.cpp:
        (WebCore::Element::computeInheritedLanguage):
        * dom/Element.h:
        (WebCore::isElement):
        (WebCore::Node::hasAttributes):
        (WebCore::Node::attributes):
        (WebCore::Node::parentElement):
        * dom/ElementTraversal.h:
        (WebCore::Traversal<Element>::nextTemplate):
        (WebCore::ElementTraversal::previousIncludingPseudo):
        (WebCore::ElementTraversal::nextIncludingPseudo):
        (WebCore::ElementTraversal::nextIncludingPseudoSkippingChildren):
        (WebCore::ElementTraversal::pseudoAwarePreviousSibling):
        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::namedItem):
        * dom/Node.cpp:
        (WebCore::Node::dumpStatistics):
        (WebCore::Node::normalize):
        (WebCore::Node::pseudoAwareFirstChild):
        (WebCore::Node::pseudoAwareLastChild):
        (WebCore::Node::computedStyle):
        (WebCore::Node::parentOrShadowHostElement):
        (WebCore::Node::rootEditableElement):
        (WebCore::Node::isEqualNode):
        (WebCore::Node::isDefaultNamespace):
        (WebCore::Node::lookupNamespacePrefix):
        (WebCore::Node::ancestorElement):
        (WebCore::appendAttributeDesc):
        (WebCore::Node::showNodePathForThis):
        (WebCore::Node::enclosingLinkEventParentOrSelf):
        (WebCore::Node::handleLocalEvents):
        (WebCore::Node::willRespondToMouseMoveEvents):
        (WebCore::Node::willRespondToMouseClickEvents):
        * dom/NodeRenderingTraversal.cpp:
        (WebCore::NodeRenderingTraversal::nodeCanBeDistributed):
        * dom/Position.cpp:
        (WebCore::Position::element):
        * dom/Range.cpp:
        (WebCore::Range::getBorderAndTextQuads):
        * dom/ShadowRoot.h:
        (WebCore::Node::shadowRoot):
        * dom/StaticNodeList.cpp:
        (WebCore::StaticNodeList::namedItem):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveTreeToNewScope):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::dummySpanAncestorForNode):
        (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
        (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
        (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
        (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
        (WebCore::ApplyStyleCommand::surroundNodeRangeWithElement):
        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::isRemovableBlock):
        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
        (WebCore::CompositeEditCommand::moveParagraphs):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::makeStylingElementsDirectChildrenOfEditableRootToPreventStyleLoss):
        * editing/Editor.cpp:
        (WebCore::Editor::isSpellCheckingEnabledFor):
        (WebCore::Editor::applyEditingStyleToBodyElement):
        * editing/FormatBlockCommand.cpp:
        (WebCore::isElementForFormatBlock):
        (WebCore::FormatBlockCommand::elementForFormatBlockCommand):
        * editing/FrameSelection.cpp:
        (WebCore::removingNodeRemovesPosition):
        (WebCore::CaretBase::paintCaret):
        (WebCore::FrameSelection::debugRenderer):
        * editing/IndentOutdentCommand.cpp:
        (WebCore::IndentOutdentCommand::outdentParagraph):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
        (WebCore::MarkupAccumulator::appendStartMarkup):
        * editing/MarkupAccumulator.h:
        (WebCore::MarkupAccumulator::appendEndTag):
        * editing/ModifySelectionListLevel.cpp:
        (WebCore::IncreaseSelectionListLevelCommand::doApply):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::isMailPasteAsQuotationNode):
        (WebCore::haveSameTagName):
        (WebCore::handleStyleSpansBeforeInsertion):
        (WebCore::ReplaceSelectionCommand::doApply):
        * editing/SpellChecker.cpp:
        (WebCore::SpellChecker::isCheckable):
        * editing/SplitTextNodeContainingElementCommand.cpp:
        (WebCore::SplitTextNodeContainingElementCommand::doApply):
        * editing/TextIterator.cpp:
        (WebCore::isRendererReplacedElement):
        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverterCaches::propertyValueForNode):
        (HTMLConverterCaches::floatPropertyValueForNode):
        (HTMLConverterCaches::colorPropertyValueForNode):
        (HTMLConverter::aggregatedAttributesForAncestors):
        (HTMLConverter::aggregatedAttributesForElementAndItsAncestors):
        (HTMLConverter::_traverseNode):
        (WebCore::editingAttributedStringFromRange):
        * editing/htmlediting.cpp:
        (WebCore::unsplittableElementForPosition):
        (WebCore::enclosingBlock):
        (WebCore::enclosingElementWithTag):
        (WebCore::enclosingTableCell):
        (WebCore::enclosingAnchorElement):
        (WebCore::areIdenticalElements):
        (WebCore::isNonTableCellHTMLBlockElement):
        (WebCore::deprecatedEnclosingBlockFlowElement):
        (WebCore::rendererForCaretPainting):
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::wrapWithNode):
        (WebCore::createMarkupInternal):
        (WebCore::createFragmentFromText):
        * html/HTMLDetailsElement.cpp:
        (WebCore::DetailsSummaryElement::fallbackSummary):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::insertAdjacentElement):
        (WebCore::contextElementForInsertion):
        (WebCore::HTMLElement::directionality):
        * html/HTMLFormControlElement.h:
        (WebCore::isHTMLFormControlElement):
        * html/HTMLMediaElement.h:
        (WebCore::isHTMLMediaElement):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::collectOptionInnerText):
        * html/HTMLSourceElement.cpp:
        (WebCore::HTMLSourceElement::removedFrom):
        * html/HTMLSummaryElement.cpp:
        (WebCore::isClickableControl):
        * html/HTMLTextFormControlElement.h:
        (WebCore::isHTMLTextFormControlElement):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::attachLater):
        * html/parser/HTMLElementStack.cpp:
        (WebCore::HTMLElementStack::htmlElement):
        * html/parser/HTMLStackItem.h:
        (WebCore::HTMLStackItem::element):
        * html/shadow/InsertionPoint.h:
        (WebCore::parentElementForDistribution):
        (WebCore::shadowRootOfParentForDistribution):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlClosedCaptionsTrackListElement::defaultEventHandler):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::markFutureAndPastNodes):
        * inspector/DOMPatchSupport.cpp:
        (WebCore::DOMPatchSupport::innerPatchNode):
        (WebCore::DOMPatchSupport::createDigest):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::elementForId):
        (WebCore::InspectorCSSAgent::buildArrayForRegions):
        (WebCore::InspectorCSSAgent::resetPseudoStates):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::unbind):
        (WebCore::InspectorDOMAgent::assertElement):
        (WebCore::InspectorDOMAgent::setAttributesAsText):
        (WebCore::InspectorDOMAgent::setNodeName):
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        (WebCore::InspectorDOMAgent::didInvalidateStyleAttr):
        * inspector/InspectorNodeFinder.cpp:
        (WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForElementInfo):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::inlineStyleSheetText):
        * page/DragController.cpp:
        (WebCore::elementUnderMouse):
        * page/EventHandler.cpp:
        (WebCore::findDropZone):
        (WebCore::EventHandler::updateDragAndDrop):
        (WebCore::EventHandler::updateMouseEventTargetNode):
        * page/FocusController.cpp:
        (WebCore::FocusNavigationScope::focusNavigationScopeOwnedByShadowHost):
        (WebCore::isFocusableShadowHost):
        (WebCore::adjustedTabIndex):
        (WebCore::FocusController::findFocusableElementAcrossFocusScope):
        (WebCore::FocusController::findElementWithExactTabIndex):
        (WebCore::nextElementWithGreaterTabIndex):
        (WebCore::previousElementWithLowerTabIndex):
        (WebCore::FocusController::nextFocusableElement):
        (WebCore::FocusController::previousFocusableElement):
        (WebCore::FocusController::advanceFocusDirectionallyInContainer):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeFrame):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::title):
        (WebCore::HitTestResult::innerTextIfTruncated):
        (WebCore::HitTestResult::absoluteImageURL):
        (WebCore::HitTestResult::innerElement):
        (WebCore::HitTestResult::innerNonSharedElement):
        * rendering/RenderDeprecatedFlexibleBox.h:
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::isOpen):
        * rendering/RenderElement.h:
        (WebCore::RenderElement::element):
        (WebCore::RenderElement::nonPseudoElement):
        (WebCore::RenderElement::generatingElement):
        * rendering/RenderGrid.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::isRestartedPlugin):
        * rendering/RenderListItem.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::isChildAllowed):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::addPDFURLRect):
        (WebCore::RenderObject::updateDragState):
        (WebCore::RenderObject::getUncachedPseudoStyle):
        * rendering/RenderRuby.h:
        * rendering/RenderRubyText.h:
        * rendering/RenderTableCaption.h:
        * rendering/RenderTableCol.h:
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::isEnabled):
        (WebCore::RenderTheme::isFocused):
        (WebCore::RenderTheme::isPressed):
        (WebCore::RenderTheme::isSpinUpButtonPartPressed):
        (WebCore::RenderTheme::isReadOnlyControl):
        (WebCore::RenderTheme::isHovered):
        (WebCore::RenderTheme::isSpinUpButtonPartHovered):
        * rendering/RenderThemeGtk.cpp:
        (WebCore::nodeHasClass):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::updatePressedState):
        (WebCore::RenderThemeMac::paintSliderThumb):
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::RenderTreeAsText::writeRenderObject):
        * rendering/TextAutosizer.cpp:
        (WebCore::TextAutosizer::isAutosizingContainer):
        (WebCore::TextAutosizer::containerContainsOneOfTags):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::isChildAllowed):
        * style/StyleResolveTree.cpp:
        (WebCore::Style::attachChildren):
        (WebCore::Style::attachDistributedChildren):
        (WebCore::Style::detachDistributedChildren):
        (WebCore::Style::detachChildren):
        (WebCore::Style::resolveShadowTree):
        (WebCore::Style::resolveTree):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::expandSymbolElementsInShadowTree):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::buildPendingResource):
        * xml/XPathFunctions.cpp:
        (WebCore::XPath::FunLang::evaluate):
        * xml/XPathNodeSet.cpp:
        (WebCore::XPath::NodeSet::traversalSort):
        * xml/XPathStep.cpp:
        (WebCore::XPath::nodeMatchesBasicTest):
        (WebCore::XPath::Step::nodesInAxis):
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::XMLDocumentParser):
        (WebCore::XMLDocumentParser::endElementNs):

2014-09-30  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: use static Strings instead of AtomicStrings for replay input type tags
        https://bugs.webkit.org/show_bug.cgi?id=137086

        Reviewed by Joseph Pecoraro.

        This pattern doesn't work when we want to define some inputs in WebKit2,
        since the ReplayInputTypes class is generated from WebCore inputs only.

        Replace tag-checking uses of ReplayInputTypes with InputTraits<T>::type().
        Remove thread-local input types, and switch to using a plain const String instead
        of const AtomicString.

        No new tests, no behavior changed.

        * CMakeLists.txt:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorReplayAgent.cpp:
        (WebCore::SerializeInputToJSONFunctor::operator()):
        * platform/ThreadGlobalData.cpp:
        (WebCore::ThreadGlobalData::ThreadGlobalData):
        (WebCore::ThreadGlobalData::destroy):
        * platform/ThreadGlobalData.h:
        (WebCore::ThreadGlobalData::inputTypes): Deleted.
        * replay/AllReplayInputs.h:
        * replay/EventLoopInput.h:
        * replay/EventLoopInputDispatcher.cpp:
        (WebCore::EventLoopInputDispatcher::dispatchInput):
        * replay/MemoizedDOMResult.cpp:
        (WebCore::MemoizedDOMResultBase::type):
        (JSC::InputTraits<MemoizedDOMResultBase>::type):
        * replay/MemoizedDOMResult.h:
        * replay/ReplayInputTypes.cpp: Removed.
        * replay/ReplayInputTypes.h: Removed.
        * replay/ReplayingInputCursor.cpp:
        (WebCore::ReplayingInputCursor::loadInput):
        * replay/SegmentedInputStorage.cpp:
        (WebCore::SegmentedInputStorage::load):
        (WebCore::SegmentedInputStorage::store):
        * replay/SerializationMethods.cpp:
        (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
        (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):

2014-09-30  Eric Carlson  <eric.carlson@apple.com>

        [Mac] MediaPlayerPrivateQTKit should not use FrameView
        https://bugs.webkit.org/show_bug.cgi?id=137119

        Reviewed by Carlos Garcia Campos.

        Remove obsolete QTKit code that would fall back to rendering into an NSView.
        Aside from being dead code, it was only used when accelerated compositing
        was not enabled and tha hasn't been possible for a long time, it required a
        layering violation to get the FrameView.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivateQTKit::currentRenderingMode):
        (WebCore::MediaPlayerPrivateQTKit::preferredRenderingMode):
        (WebCore::MediaPlayerPrivateQTKit::setUpVideoRendering):
        (WebCore::MediaPlayerPrivateQTKit::tearDownVideoRendering):
        (WebCore::MediaPlayerPrivateQTKit::hasSetUpVideoRendering):
        (WebCore::MediaPlayerPrivateQTKit::setSize):
        (WebCore::MediaPlayerPrivateQTKit::paint):
        (WebCore::mainThreadSetNeedsDisplay): Deleted.
        (WebCore::MediaPlayerPrivateQTKit::createQTMovieView): Deleted.
        (WebCore::MediaPlayerPrivateQTKit::detachQTMovieView): Deleted.
        (-[WebCoreMovieObserver menuForEventDelegate:]): Deleted.
        (-[WebCoreMovieObserver setView:]): Deleted.

2014-09-30  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Move GtkPopupMenu implementation to WebPopupMenuProxyGtk
        https://bugs.webkit.org/show_bug.cgi?id=137193

        Reviewed by Gustavo Noronha Silva.

        Remove GtkPopupMenu from platform.

        * PlatformGTK.cmake:
        * platform/gtk/GtkPopupMenu.cpp: Removed.
        * platform/gtk/GtkPopupMenu.h: Removed.

2014-09-30  Zan Dobersek  <zdobersek@igalia.com>

        Avoid copying the iterated-over items in range-based for-loops in RenderGrid
        https://bugs.webkit.org/show_bug.cgi?id=137246

        Reviewed by Sergio Villar Senin.

        Adjust the range-based for-loops in RenderGrid to avoid the unnecessary copying
        of the items that are being iterated.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computeNormalizedFractionBreadth):
        (WebCore::RenderGrid::insertItemIntoGrid):
        (WebCore::RenderGrid::gridAreaBreadthForChild):

2014-09-29  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Use modern for-loops in RenderGrid
        https://bugs.webkit.org/show_bug.cgi?id=137214

        Reviewed by Darin Adler.

        New code is already using modern range based for loops. We had some
        "old" code pending to be migrated.

        No new tests as there is no change in functionality.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
        (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
        (WebCore::RenderGrid::computeNormalizedFractionBreadth):
        (WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
        (WebCore::RenderGrid::layoutGridItems):

2014-08-01  Sergio Villar Senin  <svillar@igalia.com>

        Caret not shown at the end of line in overtype mode
        https://bugs.webkit.org/show_bug.cgi?id=135508

        Reviewed by Ryosuke Niwa.

        When overtype mode is enabled we usually replace the 'normal'
        blinking caret shown in contenteditable elements by a block cursor
        that covers the next character to be replaced. The exception is the
        end of line where we fallback to the blinking caret even in overtype
        mode (as there is no next character to replace).

        We were not showing anything at the end of lines in overtype mode
        because the detection of the end of line was incorrect and not very
        understandable. Replaced the old code with a proper and clean end of
        line detection mechanism compatible with bidi text.

        Tests: editing/selection/block-cursor-overtype-mode-end-of-line-rtl.html
               editing/selection/block-cursor-overtype-mode-end-of-line.html

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::updateAppearance):
        * editing/VisibleUnits.cpp:
        (WebCore::isLogicalEndOfLine):
        * editing/VisibleUnits.h:

2014-09-29  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: InjectedScripts should not be profiled or displayed in Timeline
        https://bugs.webkit.org/show_bug.cgi?id=136806

        Reviewed by Timothy Hatcher.

        Instead of creating timeline records for injected scripts, suspend profiling
        of the current page before and after calling injected script functions.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::willCallInjectedScriptFunction):
        (WebCore::InspectorController::didCallInjectedScriptFunction):

2014-09-29  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: InspectorValues should use references for out parameters
        https://bugs.webkit.org/show_bug.cgi?id=137190

        Reviewed by Joseph Pecoraro.

        Clean up some call sites to explicitly check for cast success, and simplify
        some exceptional control flows.

        No new tests, no behavior changed.

        * inspector/CommandLineAPIHost.cpp:
        (WebCore::CommandLineAPIHost::inspectImpl):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::computePseudoClassMask):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::parseColor):
        (WebCore::parseConfigColor):
        (WebCore::parseQuad):
        (WebCore::InspectorDOMAgent::performSearch):
        (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
        (WebCore::InspectorDOMAgent::innerHighlightQuad):
        (WebCore::InspectorDOMAgent::highlightFrame):
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::findStorageArea):
        * inspector/InspectorIndexedDBAgent.cpp: Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL.
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
        * inspector/InspectorReplayAgent.cpp:
        (WebCore::InspectorReplayAgent::replayToPosition):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::willSendRequest):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyle::styleWithProperties):
        * inspector/InspectorStyleSheet.h:
        (WebCore::InspectorCSSId::InspectorCSSId):
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::startFromConsole):
        (WebCore::InspectorTimelineAgent::stopFromConsole):
        * inspector/InspectorWorkerAgent.cpp:

2014-09-29  Christophe Dumez  <cdumez@apple.com>

        Use is<>() / downcast<>() for Document
        https://bugs.webkit.org/show_bug.cgi?id=137221

        Reviewed by Andreas Kling.

        Use is<>() / downcast<>() for Document instead of isDocumentNode() /
        toDocument().

        No new tests, no behavior change.

        * Modules/geolocation/Geolocation.cpp:
        (WebCore::Geolocation::document):
        (WebCore::Geolocation::frame):
        (WebCore::Geolocation::page):
        * Modules/indexeddb/IDBFactory.cpp:
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::document):
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        * Modules/notifications/Notification.cpp:
        (WebCore::Notification::Notification):
        (WebCore::Notification::show):
        (WebCore::Notification::permission):
        (WebCore::Notification::requestPermission):
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::document):
        * Modules/webaudio/OfflineAudioContext.cpp:
        (WebCore::OfflineAudioContext::create):
        * Modules/webdatabase/DatabaseContext.cpp:
        (WebCore::DatabaseContext::allowDatabaseAccess):
        (WebCore::DatabaseContext::databaseExceededQuota):
        * Modules/websockets/ThreadableWebSocketChannel.cpp:
        (WebCore::ThreadableWebSocketChannel::create):
        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::connect):
        * Modules/websockets/WebSocketHandshake.cpp:
        (WebCore::WebSocketHandshake::clientHandshakeMessage):
        (WebCore::WebSocketHandshake::clientHandshakeRequest):
        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
        (WebCore::WorkerThreadableWebSocketChannel::Peer::Peer):
        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap):
        * bindings/js/DOMConstructorWithDocument.h:
        (WebCore::DOMConstructorWithDocument::document):
        * bindings/js/DOMRequestState.h:
        (WebCore::DOMRequestState::DOMRequestState):
        (WebCore::DOMRequestState::clear):
        * bindings/js/JSAudioContextCustom.cpp:
        (WebCore::constructJSAudioContext):
        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::toJSDOMGlobalObject):
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::JSLazyEventListener::initializeJSFunction):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::createWrapperInline):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/js/ScriptState.cpp:
        (WebCore::frameFromExecState):
        * crypto/SubtleCrypto.cpp:
        (WebCore::SubtleCrypto::document):
        * dom/Comment.cpp:
        (WebCore::Comment::create):
        * dom/ContainerNode.cpp:
        (WebCore::checkAcceptChild):
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::ChildNodeInsertionNotifier::notifyDescendantInsertedIntoDocument):
        * dom/Document.h:
        (WebCore::isDocument):
        * dom/DocumentFragment.cpp:
        (WebCore::DocumentFragment::create):
        * dom/Element.cpp:
        (WebCore::Element::computeInheritedLanguage):
        * dom/EventDispatcher.cpp:
        (WebCore::WindowEventContext::WindowEventContext):
        * dom/EventTarget.cpp:
        (WebCore::EventTarget::fireEventListeners):
        * dom/NamedFlowCollection.cpp:
        (WebCore::NamedFlowCollection::document):
        * dom/Node.cpp:
        (WebCore::Node::isDefaultNamespace):
        (WebCore::Node::lookupPrefix):
        (WebCore::Node::lookupNamespaceURI):
        (WebCore::Node::removedLastRef):
        * dom/Range.cpp:
        (WebCore::Range::create):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::dispatchErrorEvent):
        * dom/Text.cpp:
        (WebCore::Text::create):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendStartMarkup):
        * html/HTMLDocument.h:
        (WebCore::isHTMLDocument):
        * html/HTMLNameCollection.h:
        (WebCore::HTMLNameCollection::document):
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::insertedInto):
        * html/ImageDocument.h:
        (WebCore::isImageDocument):
        * html/MediaDocument.h:
        (WebCore::isMediaDocument):
        * html/PluginDocument.h:
        (WebCore::isPluginDocument):
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::ownerDocument):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::initialize):
        * html/track/VTTRegion.h:
        (WebCore::VTTRegion::ownerDocument):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::assertDocument):
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        (WebCore::InspectorDOMAgent::innerParentNode):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::frameForScriptExecutionContext):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::instrumentingAgentsForContext):
        * loader/TextTrackLoader.cpp:
        (WebCore::TextTrackLoader::corsPolicyPreventedLoad):
        (WebCore::TextTrackLoader::notifyFinished):
        (WebCore::TextTrackLoader::load):
        * loader/ThreadableLoader.cpp:
        (WebCore::ThreadableLoader::create):
        (WebCore::ThreadableLoader::loadResourceSynchronously):
        * loader/WorkerThreadableLoader.cpp:
        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::reportViolation):
        * page/Crypto.cpp:
        (WebCore::Crypto::document):
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::install):
        (WebCore::DOMTimer::fired):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::focus):
        (WebCore::DOMWindow::close):
        (WebCore::DOMWindow::document):
        (WebCore::DOMWindow::styleMedia):
        (WebCore::DOMWindow::getComputedStyle):
        * page/DragController.cpp:
        (WebCore::DragController::dragExited):
        (WebCore::DragController::dragEnteredOrUpdated):
        * page/EventSource.cpp:
        (WebCore::EventSource::create):
        * page/FocusController.cpp:
        (WebCore::FocusController::advanceFocusDirectionally):
        * page/History.cpp:
        (WebCore::History::go):
        * page/SpatialNavigation.cpp:
        (WebCore::scrollInDirection):
        (WebCore::scrollableEnclosingBoxOrParentFrameForNodeInDirection):
        (WebCore::canScrollInDirection):
        (WebCore::nodeRectInAbsoluteCoordinates):
        * svg/SVGDocument.h:
        (WebCore::isSVGDocument):
        * testing/Internals.cpp:
        (WebCore::Internals::contextDocument):
        (WebCore::Internals::frame):
        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
        * testing/js/WebCoreTestSupport.cpp:
        (WebCoreTestSupport::injectInternalsObject):
        (WebCoreTestSupport::resetInternalsObject):
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::addToWorkerDocuments):
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::document):
        (WebCore::XMLHttpRequest::open):

2014-09-29  David Hyatt  <hyatt@apple.com>

        REGRESSION (r168046): Confused column spans when combined with dynamic animations
        https://bugs.webkit.org/show_bug.cgi?id=134048.

        Reviewed by Dean Jackson.

        Added fast/multicol/multicol-fieldset-span-changes.html

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::processPossibleSpannerDescendant):
        Refactor handling of insertions into the multicolumn flow thread into
        a helper function, processPossibleSpannerDescendant. This makes it easier
        to call the code from more than one place.

        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
        Modify the nested columns span shifting code to avoid problems. The
        new code suppresses notifications and does the move of the spanner back
        into the original spot *before* removing the placeholder. This ensures that
        the placeholder parent still exists.
        
        The stale placeholder is then removed and destroyed after the spanner has been put back
        into place.

        (WebCore::RenderMultiColumnFlowThread::handleSpannerRemoval):
        (WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
        Refactor the removal notifications for spanners into a helper function so that it can
        be called to do cleanup from the code that cleans up stale placeholders on a shift.

        * rendering/RenderMultiColumnFlowThread.h:
        Modified to add the new helpers.

2014-09-29  Christophe Dumez  <cdumez@apple.com>

        Use SPECIALIZE_TYPE_TRAITS_*() macro for MathMLElement
        https://bugs.webkit.org/show_bug.cgi?id=137222

        Reviewed by Ryosuke Niwa.

        Use SPECIALIZE_TYPE_TRAITS_*() macro for MathMLElement instead of
        NODE_TYPE_CASTS() + NodeTypeCastTraits template specialization.

        No new tests, no behavior change.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::accessibilityDescription):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isMathElement):
        * css/CSSDefaultStyleSheets.cpp:
        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::attributeChanged):
        * mathml/MathMLElement.h:
        (WebCore::isMathMLElement):
        * mathml/MathMLSelectElement.cpp:
        (WebCore::MathMLSelectElement::getSelectedSemanticsChild):

2014-09-29  Eric Carlson  <eric.carlson@apple.com>

        [Mac] Remove MediaPlayerPrivateQTKit frame rate code
        https://bugs.webkit.org/show_bug.cgi?id=137217

        Reviewed by Carlos Garcia Campos.

        No new tests, this removes obsolete code.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivateQTKit::MediaPlayerPrivateQTKit):
        (WebCore::MediaPlayerPrivateQTKit::play):
        (WebCore::MediaPlayerPrivateQTKit::pause):
        (WebCore::MediaPlayerPrivateQTKit::didEnd):
        (WebCore::MediaPlayerPrivateQTKit::repaint):
        (WebCore::MediaPlayerPrivateQTKit::paint):

2014-09-29  Chris Fleizach  <cfleizach@apple.com>

        AX: in an aria-labelledby computation, do not traverse into elements whose nameFrom value does not include 'contents'
        https://bugs.webkit.org/show_bug.cgi?id=136714

        Reviewed by Darin Adler.

        There are certain ARIA elements that tell us we should not query their children when determining the name of the object.
        Those ones have the "nameFrom" property set to "author" instead of "contents." WebKit needs to honor that status.

        Test: accessibility/aria-namefrom-author.html
              Modified: accessibility/aria-labelledby-with-descendants.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::shouldUseAccessiblityObjectInnerText):
        (WebCore::shouldAddSpaceBeforeAppendingNextElement):
        (WebCore::appendNameToStringBuilder):
        (WebCore::AccessibilityNodeObject::textUnderElement):
        (WebCore::accessibleNameForNode):
        (WebCore::AccessibilityNodeObject::accessibilityDescriptionForElements):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::accessibleNameDerivesFromContent):
        (WebCore::initializeRoleMap):
        * accessibility/AccessibilityObject.h:

2014-09-29  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Optimize media controls AirPlay discovery
        https://bugs.webkit.org/show_bug.cgi?id=137180

        Reviewed by Darin Adler.
        
        AirPlay discovery mode uses increases power consumption, so don't enable it when there
        is no chance an AirPlay target picker will be useful.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS): Initialize isListeningForPlaybackTargetAvailabilityEvent.
        (ControllerIOS.prototype.addVideoListeners): Don't enable register wireless playback event
            listeners, it isn't possible to show the target picker until there is an inline controller.
        (ControllerIOS.prototype.removeVideoListeners): Call setShouldListenForPlaybackTargetAvailabilityEvent.
        (ControllerIOS.prototype.setControlsType): Add wireless event listers on when not showing 
            the one button controller.
        (ControllerIOS.prototype.updateStatusDisplay): Unregister wireless event listeners when the
            media element is in an error state.
        (ControllerIOS.prototype.setShouldListenForPlaybackTargetAvailabilityEvent): New, add or
            remove event listeners. 

2014-09-29  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Remove obsolete playbackTargetAvailabilityChanged methods
        https://bugs.webkit.org/show_bug.cgi?id=137179

        Reviewed by Darin Adler.

        No new tests, this just removes unused code.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerPlaybackTargetAvailabilityChanged): Deleted.
        * html/HTMLMediaElement.h:

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::playbackTargetAvailabilityChanged): Deleted.
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerPlaybackTargetAvailabilityChanged): Deleted.

2014-09-29  Christophe Dumez  <cdumez@apple.com>

        Use the new is<>() / downcast<>() for ShadowRoot and StyledElement
        https://bugs.webkit.org/show_bug.cgi?id=137199

        Reviewed by Darin Adler.

        Use the new is<>() / downcast<>() for ShadowRoot and StyledElement and
        move towards getting rid of the NODE_TYPE_CASTS() macro.

        No new tests, no behavior change.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::matchAllRules):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::State::initElement):
        (WebCore::StyleResolver::State::initForStyleResolve):
        (WebCore::StyleResolver::locateCousinList):
        (WebCore::StyleResolver::findSiblingForStyleSharing):
        * dom/Attr.cpp:
        (WebCore::Attr::style):
        * dom/Element.cpp:
        (WebCore::Element::removeAttribute):
        * dom/EventDispatcher.cpp:
        (WebCore::EventRelatedNodeResolver::moveToParentOrShadowHost):
        (WebCore::EventRelatedNodeResolver::findHostOfTreeScopeInTargetTreeScope):
        (WebCore::eventTargetRespectingTargetRules):
        (WebCore::EventPath::EventPath):
        * dom/Node.cpp:
        (WebCore::Node::containingShadowRoot):
        (WebCore::Node::parentOrShadowHostElement):
        (WebCore::Node::showNodePathForThis):
        * dom/NodeRenderingTraversal.cpp:
        (WebCore::NodeRenderingTraversal::traverseParent):
        * dom/ShadowRoot.h:
        (WebCore::isShadowRoot):
        (WebCore::Node::shadowRoot):
        (WebCore::Node::parentOrShadowHostNode):
        * dom/StyledElement.h:
        (WebCore::StyledElement::presentationAttributeStyle):
        (WebCore::isStyledElement):
        * dom/Text.cpp:
        (WebCore::isSVGShadowText):
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::focusedElement):
        * dom/TreeScopeAdopter.cpp:
        (WebCore::TreeScopeAdopter::moveNodeToNewDocument):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
        (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::wrappingStyleForSerialization):
        * editing/Editor.cpp:
        (WebCore::Editor::applyEditingStyleToElement):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverterCaches::inlineStylePropertyForElement):
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::appendElement):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForElementInfo):
        * page/DragController.cpp:
        (WebCore::asFileInput):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        * page/FocusController.cpp:
        (WebCore::FocusNavigationScope::owner):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeFrame):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::resize):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::title):
        * testing/Internals.cpp:
        (WebCore::Internals::shadowRoot):
        (WebCore::Internals::shadowRootType):
        (WebCore::Internals::includerFor):

2014-09-29  Christophe Dumez  <cdumez@apple.com>

        Use the new is<>() / downcast<>() for Text Nodes
        https://bugs.webkit.org/show_bug.cgi?id=137188

        Reviewed by Darin Adler.

        Use the new is<>() / downcast<>() functions for Text Nodes instead of
        isText() / toText().

        No new tests, no behavior change.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::textUnderElement):
        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * dom/CharacterData.cpp:
        (WebCore::CharacterData::parserAppendData):
        (WebCore::CharacterData::setDataAndUpdate):
        * dom/ContainerNode.cpp:
        (WebCore::destroyRenderTreeIfNeeded):
        * dom/Node.cpp:
        (WebCore::Node::normalize):
        * dom/Position.cpp:
        (WebCore::Position::containerNode):
        (WebCore::Position::containerText):
        (WebCore::Position::isRenderedCharacter):
        (WebCore::Position::leadingWhitespacePosition):
        * dom/Range.cpp:
        (WebCore::Range::insertNode):
        (WebCore::Range::getBorderAndTextQuads):
        * dom/Text.cpp:
        (WebCore::earliestLogicallyAdjacentTextNode):
        (WebCore::latestLogicallyAdjacentTextNode):
        * dom/Text.h:
        (WebCore::isText):
        * dom/TextNodeTraversal.cpp:
        (WebCore::TextNodeTraversal::contentsAsString):
        * dom/TextNodeTraversal.h:
        (WebCore::TextNodeTraversal::firstTextChildTemplate):
        (WebCore::TextNodeTraversal::firstTextWithinTemplate):
        (WebCore::TextNodeTraversal::traverseNextTextTemplate):
        (WebCore::TextNodeTraversal::nextSibling):
        * editing/ApplyBlockElementCommand.cpp:
        (WebCore::isNewLineAtPosition):
        (WebCore::ApplyBlockElementCommand::endOfNextParagrahSplittingTextNodesIfNeeded):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::splitTextAtEnd):
        (WebCore::ApplyStyleCommand::splitTextElementAtEnd):
        (WebCore::ApplyStyleCommand::joinChildTextNodes):
        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::insertNodeAt):
        (WebCore::CompositeEditCommand::positionOutsideTabSpan):
        (WebCore::CompositeEditCommand::canRebalance):
        (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
        (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
        (WebCore::CompositeEditCommand::deleteInsignificantText):
        (WebCore::CompositeEditCommand::removePlaceholderAt):
        (WebCore::CompositeEditCommand::cleanupAfterDeletion):
        (WebCore::CompositeEditCommand::moveParagraphs):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        (WebCore::DeleteSelectionCommand::fixupWhitespace):
        (WebCore::DeleteSelectionCommand::doApply):
        * editing/Editor.cpp:
        (WebCore::Editor::setComposition):
        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::doApply):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/InsertTextCommand.cpp:
        (WebCore::InsertTextCommand::insertTab):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendStartMarkup):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds):
        (WebCore::ReplaceSelectionCommand::addSpacesForSmartReplace):
        (WebCore::ReplaceSelectionCommand::mergeTextNodesAroundPosition):
        (WebCore::ReplaceSelectionCommand::insertAsListItems):
        (WebCore::ReplaceSelectionCommand::performTrivialReplace):
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::handleTextNode):
        (WebCore::TextIterator::handleTextBox):
        (WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
        * editing/VisibleUnits.cpp:
        (WebCore::startPositionForLine):
        (WebCore::endPositionForLine):
        (WebCore::startOfParagraph):
        (WebCore::endOfParagraph):
        * editing/htmlediting.cpp:
        (WebCore::lineBreakExistsAtPosition):
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::renderedText):
        (WebCore::replaceChildrenWithFragment):
        (WebCore::replaceChildrenWithText):
        * html/HTMLElement.cpp:
        (WebCore::mergeWithNextTextNode):
        (WebCore::HTMLElement::setOuterHTML):
        (WebCore::HTMLElement::setOuterText):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::hasFallbackContent):
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::setText):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::setText):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::innerTextValue):
        (WebCore::positionForIndex):
        (WebCore::HTMLTextFormControlElement::indexForPosition):
        (WebCore::HTMLTextFormControlElement::valueWithHardLineBreaks):
        * html/HTMLTitleElement.cpp:
        (WebCore::HTMLTitleElement::setText):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::insertTextNode):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::setNodeValue):
        * rendering/RenderCombineText.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::getRanges):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::textNode):
        * rendering/svg/RenderSVGInlineText.h:
        * style/StyleResolveTree.cpp:
        (WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
        (WebCore::Style::attachChildren):
        (WebCore::Style::attachDistributedChildren):
        (WebCore::Style::detachDistributedChildren):
        (WebCore::Style::detachChildren):
        (WebCore::Style::resolveShadowTree):
        (WebCore::Style::resolveTree):

2014-09-29  Christophe Dumez  <cdumez@apple.com>

        Remove remaining uses of NODE_TYPE_CASTS() from html/
        https://bugs.webkit.org/show_bug.cgi?id=137172

        Reviewed by Darin Adler.

        Remove remaining uses of NODE_TYPE_CASTS() from html/ and use the new
        SPECIALIZE_TYPE_TRAITS_*() macro instead so that is<>() / downcast<>()
        works for those types.

        No new tests, no behavior change.

        * css/SelectorCheckerTestFunctions.h:
        (WebCore::matchesLangPseudoClass):
        (WebCore::matchesFutureCuePseudoClass):
        (WebCore::matchesPastCuePseudoClass):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):
        The new casting function found a bad cast from a StyledElement to VTTElement.
        Those two types are unrelated as VTTElement inherits directly from Element.
        Knowing that |element| in this method cannot be a VTTElement simplifies the
        logic a bit.

        * dom/NodeRenderingTraversal.cpp:
        (WebCore::NodeRenderingTraversal::findFirstEnteringInsertionPoints):
        (WebCore::NodeRenderingTraversal::findLastEnteringInsertionPoints):
        (WebCore::NodeRenderingTraversal::traverseParent):
        * html/HTMLLabelElement.cpp:
        (WebCore::nodeAsSupportedLabelableElement):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::innerTextElement):
        * html/LabelableElement.h:
        (WebCore::isLabelableElement):
        * html/shadow/ContentDistributor.cpp:
        (WebCore::ContentDistributor::ensureInsertionPointList):
        * html/shadow/InsertionPoint.h:
        (WebCore::isInsertionPoint):
        (WebCore::isActiveInsertionPoint):
        (WebCore::parentNodeForDistribution):
        * html/shadow/TextControlInnerElements.h:
        (WebCore::isTextControlInnerTextElement):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::copyWebVTTNodeToDOMTree):
        (WebCore::VTTCue::markFutureAndPastNodes):
        * html/track/WebVTTElement.h:
        (WebCore::isWebVTTElement):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTTreeBuilder::constructTreeFromToken):
        * style/StyleResolveTree.cpp:
        (WebCore::Style::attachRenderTree):
        (WebCore::Style::detachChildren):

2014-09-29  Christophe Dumez  <cdumez@apple.com>

        Make is<>() / downcast<>() work for HTMLDocument and its subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137169

        Reviewed by Darin Adler.

        Make is<>() / downcast<>() work for HTMLDocument and its subclasses by
        using the SPECIALIZE_TYPE_TRAITS_*() macro. Drop the DOCUMENT_TYPE_CASTS()
        macro as it is no longer needed.

        No new tests, no behavior change.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::namedItemGetter):
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
        * dom/Document.cpp:
        (WebCore::Document::prepareForDestruction):
        (WebCore::Document::processHttpEquiv):
        (WebCore::eventTargetElementForDocument):
        * dom/Document.h:
        * dom/Element.cpp:
        (WebCore::Element::insertedInto):
        (WebCore::Element::removedFrom):
        (WebCore::Element::updateName):
        (WebCore::Element::updateId):
        * html/HTMLDocument.h:
        (WebCore::isHTMLDocument):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::matchesReadWritePseudoClass):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::updateWidget):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseAttribute):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        * html/ImageDocument.cpp:
        (WebCore::ImageDocumentParser::document):
        * html/ImageDocument.h:
        (WebCore::isImageDocument):
        * html/MediaDocument.h:
        (WebCore::isMediaDocument):
        * html/PluginDocument.cpp:
        (WebCore::PluginDocumentParser::createDocumentStructure):
        * html/PluginDocument.h:
        (WebCore::isPluginDocument):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadPlugin):
        * page/DragController.cpp:
        (WebCore::DragController::operationForLoad):
        * page/FrameView.cpp:
        (WebCore::determineLayerFlushThrottleState):

2014-09-29  Bruno de Oliveira Abinader  <bruno.d@partner.samsung.com>

        Revert "Support for :enabled selector on Anchor & Area elements"
        https://bugs.webkit.org/show_bug.cgi?id=134826

        Reviewed by Darin Adler.

        HTML spec has been modified [1] to disable support for :enabled CSS
        selector on Anchor, Area & Link elements, after discussion on W3C
        Bugzilla [2].

        This reverts r171671.

        [1] https://html5.org/r/8818
        [2] https://www.w3.org/Bugs/Public/show_bug.cgi?id=26622

        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isEnabled):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseAttribute):

2014-09-29  Darin Adler  <darin@apple.com>

        Tweak and tighten SVG font converter
        https://bugs.webkit.org/show_bug.cgi?id=136956

        Reviewed by Myles Maxfield.

        * svg/SVGToOTFFontConversion.cpp: Fixed copyright date.
        (WebCore::overwrite32): Changed to use normal subscripting for clarity.
        (WebCore::overwrite16): Added.
        (WebCore::SVGToOTFFontConverter::GlyphData::GlyphData): Added a move
        to make constructing each GlyphData less expensive.
        (WebCore::SVGToOTFFontConverter::KerningData): Removed the < operator
        since it the struct contains more than what we want to sort it by, so it's
        not elegant to build the sorting rule into the struct.
        (WebCore::SVGToOTFFontConverter): Removed "k" prefix from some constants.
        Replaced many function templates with non-template functions. Changed
        key type for m_codepointToIndexMap to UChar32.
        (WebCore::integralLog2): Tweaked formatting.
        (WebCore::SVGToOTFFontConverter::appendCMAPTable): Removed a stray
        cast that doesn't have any effect. Use the Glyph type to index m_glyphs.
        (WebCore::SVGToOTFFontConverter::appendHEADTable): Append the magic
        number in a more straightforward way.
        (WebCore::clampTo): Tweak formatting of the template function.
        (WebCore::SVGToOTFFontConverter::appendHHEATable): Made some minor
        style changes and improved some comments.
        (WebCore::SVGToOTFFontConverter::appendOS2Table): Made some minor
        style changes and tightened up code that did parsing a bit, removing the
        dynamically allocated array for the fixed length Panose number.
        Also use first and last instead of hand-coded versions of those.
        (WebCore::appendValidCFFString): Renamed.
        (WebCore::SVGToOTFFontConverter::appendCFFTable): Made various tweaks,
        including more specific of null for the "no weight" value instead of
        either empty or null.
        (WebCore::SVGToOTFFontConverter::appendVORGTable): Simplified some of
        the numeric parsing, since toInt is guaranteed to return 0 when it also
        would return "false" for ok. Also got rid of a local vector and instead
        just fixed up the size of the table afterward.
        (WebCore::SVGToOTFFontConverter::appendVHEATable): Tweaked comment.
        (WebCore::SVGToOTFFontConverter::addCodepointRanges): Use isValidKey
        instead of a local hardcoded rule to check hash table key validity.
        Check for zero in the result of get rather than using find on the HashMap.
        (WebCore::SVGToOTFFontConverter::addCodepointRanges): Ditto.
        (WebCore::SVGToOTFFontConverter::addGlyphNames): Ditto.
        (WebCore::SVGToOTFFontConverter::addKerningPair): Added. Factored out from
        appendKERNSubtable to reduce template bloat and improve clarity.
        (WebCore::SVGToOTFFontConverter::appendKERNSubtable): Tweaked formatting.
        Moved the bulk of the function into non-template function.
        (WebCore::SVGToOTFFontConverter::finishAppendingKERNSubtable): Added.
        Non-template part of appendKERNSubtable. Also changed std::sort to supply
        custom comparison function rather than trying to use the < operator directly
        on KerningData.
        (WebCore::writeCFFEncodedNumber): Don't use powf just to multiply by
        2^16. It's pretty easy to do that with plain old multiplication.
        (WebCore::CFFBuilder::CFFBuilder): Renamed m_firstPoint to
        m_hasBoundingBox.
        (WebCore::CFFBuilder::boundingBox): Made this public and const and made
        the rest of the class private.
        (WebCore::CFFBuilder::updateBoundingBox): Used early return and revised
        to use m_hasBoundingBox.
        (WebCore::CFFBuilder::writePoint): Added. Used to keep the other
        functions below smaller.
        (WebCore::CFFBuilder::moveTo): Marked virtual and simplified using writePoint.
        Might find a way to simplify even further by teaching writePoint about
        the PathCoordinateMode.
        (WebCore::CFFBuilder::lineTo): Ditto.
        (WebCore::CFFBuilder::curveToCubic): Ditto. Also removed comment that said
        the function could be faster. Not sure that's important to state like this.
        (WebCore::SVGToOTFFontConverter::transcodeGlyphPaths): Changed into a
        non-template function. Tweaked logic and formatting a bit.
        (WebCore::SVGToOTFFontConverter::processGlyphElement): Changed into a
        non-template function. Moved the code from appendGlyphData in here.
        Use WTF::move so we don't copy the glyph paths when creating a GlyphData.
        (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Updated a bit for
        function changes above. Changed code to use isValidKey to check if we can
        add to m_codepointToIndexMap. Parse font-style rather than parsing
        font-weight twice. Round weights instead of truncating them. Change rule
        to "first wins" instead of "last wins" when there are multiple segments.
        Removed one vague and non-helpful comment.
        (WebCore::isFourByteAligned): Fixed minor formatting issue by making the
        function non-abstract. No reason not to hard-code the number 3 when the
        number four appears in the function name.
        (WebCore::calculateChecksum): Removed unneeded comment about why the
        checksum is little-endian; since this came from Windows documentation there
        is no doubt that little-endian is correct, so we don't need a comment creating
        fear, uncertainty, and doubt. If the checksum computation is wrong, it should
        become obvious that we have a bad checksum. Also changed the for loop to use
        its own loop variable instead of changing startingOffset, which is not logical.
        (WebCore::SVGToOTFFontConverter::appendTable): Updated for name changes.
        (WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): Ditto. Also streamlined
        the checksum code a little. The comment still is a little peculiar; I was
        tempted to take it out.

2014-09-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove MainFrameScrollbarGtk.cpp
        https://bugs.webkit.org/show_bug.cgi?id=137211

        Reviewed by Philippe Normand.

        This was only used by WebKit1.

        * PlatformGTK.cmake:
        * platform/gtk/MainFrameScrollbarGtk.cpp: Removed.
        * platform/gtk/MainFrameScrollbarGtk.h: Removed.

2014-09-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove IntPointGtk.cpp and IntRectGtk.cpp
        https://bugs.webkit.org/show_bug.cgi?id=137209

        Reviewed by Philippe Normand.

        IntPointGtk is unused and IntRectGtk is only required by GTK+2 and
        only used when building with GTK+2 in GtkInputMethodFilter.cpp
        that can be easily replaced.

        * PlatformGTK.cmake:
        * platform/graphics/IntPoint.h:
        * platform/graphics/IntRect.h:
        * platform/graphics/gtk/IntPointGtk.cpp: Removed.
        * platform/graphics/gtk/IntRectGtk.cpp: Removed.
        * platform/gtk/GtkInputMethodFilter.cpp:
        (WebCore::GtkInputMethodFilter::setCursorRect):

2014-09-02  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Handle percentages of indefinite sizes in minmax() and grid-auto-*
        https://bugs.webkit.org/show_bug.cgi?id=136453

        Reviewed by Darin Adler.

        After r165048 percentages of indefinite sizes were correctly
        computed to "auto". The problem is that we were not doing it when
        the percentage was inside the minmax() function. In those cases it
        should compute to min-content for the min track sizing function or
        to max-content for the max track sizing function.

        We were not doing it also for the track sizes specified in
        grid-auto-{column|row} properties. Fixed as well as the code is
        the same.

        Tests: fast/css-grid-layout/percent-of-indefinite-track-size-in-auto.html
               fast/css-grid-layout/percent-of-indefinite-track-size-in-minmax-crash.html
               fast/css-grid-layout/percent-of-indefinite-track-size.html

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::gridTrackSize):
        * rendering/RenderGrid.h:
        * rendering/style/GridLength.h:
        (WebCore::GridLength::isPercentage):
        * rendering/style/GridTrackSize.h:
        (WebCore::GridTrackSize::GridTrackSize):

2014-09-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Move sources not using GTK+ from WebCorePlatformGTK_SOURCES to WebCore_SOURCES.

        * PlatformGTK.cmake:

2014-09-29  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Use std::unique_ptr instead of PassOwnPtr|OwnPtr for NamedNodeMap
        https://bugs.webkit.org/show_bug.cgi?id=137201

        Reviewed by Darin Adler.

        No new tests, just refactoring patch.

        * dom/ElementRareData.h: Use std::unique_ptr instead of OwnPtr.
        (WebCore::ElementRareData::setAttributeMap): Use std::unique_ptr. 
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::create): ditto.

2014-09-28  Myles C. Maxfield  <mmaxfield@apple.com>

        Replace wkGetGlyphsForCharacters() with CGFontGetGlyphsForUnichars()
        https://bugs.webkit.org/show_bug.cgi?id=137197

        Reviewed by Alexey Proskuryakov.

        No new tests because there is no behavior change.

        * WebCore.exp.in:
        * WebCore.order:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
        (WebCore::GlyphPage::fill): Use SPI call instead of WKSI call
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        * platform/spi/cocoa/CGFontUnicodeSupport.h: Added for SPI call.

2014-09-28  Christophe Dumez  <cdumez@apple.com>

        Automatically generate template specializations for most Elements
        https://bugs.webkit.org/show_bug.cgi?id=137174

        Reviewed by Darin Adler.

        Previously, the template specializations to make is<>() / downcast<>()
        work for HTML/SVG/MathML elements were only generated if
        "generateTypeHelpers" parameter was explicitly specified for the
        corresponding tag name in the *Tags.in file.

        We are however able to generate the template specializations for most
        types so this patch drops the "generateTypeHelpers" parameter and
        generates those template specializations by default.

        One case we cannot generate the specialization ifor is when a class is
        associated to several tag names but this patch updates the
        make_names.pl script to detect this and skip those classes.

        No new tests, no behavior change.

        * CMakeLists.txt:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/make_names.pl:
        (defaultTagPropertyHash):
        (printTypeHelpers):
        * html/HTMLTagNames.in:
        * mathml/mathtags.in:
        * svg/SVGAllInOne.cpp:
        * svg/SVGAnimateColorElement.cpp:
        (WebCore::SVGAnimateColorElement::SVGAnimateColorElement):
        (WebCore::SVGAnimateColorElement::determinePropertyValueTypes):
        * svg/SVGAnimateColorElement.h:
        * svg/SVGAnimateElement.cpp:
        (WebCore::SVGAnimateElement::SVGAnimateElement):
        (WebCore::SVGAnimateElement::~SVGAnimateElement): Deleted.
        (WebCore::SVGAnimateElement::hasValidAttributeType): Deleted.
        (WebCore::SVGAnimateElement::determineAnimatedPropertyType): Deleted.
        (WebCore::SVGAnimateElement::calculateAnimatedValue): Deleted.
        (WebCore::SVGAnimateElement::calculateToAtEndOfDurationValue): Deleted.
        (WebCore::SVGAnimateElement::calculateFromAndToValues): Deleted.
        (WebCore::SVGAnimateElement::calculateFromAndByValues): Deleted.
        (WebCore::propertyTypesAreConsistent): Deleted.
        (WebCore::SVGAnimateElement::resetAnimatedType): Deleted.
        (WebCore::applyCSSPropertyToTarget): Deleted.
        (WebCore::removeCSSPropertyFromTarget): Deleted.
        (WebCore::applyCSSPropertyToTargetAndInstances): Deleted.
        (WebCore::removeCSSPropertyFromTargetAndInstances): Deleted.
        (WebCore::notifyTargetAboutAnimValChange): Deleted.
        (WebCore::notifyTargetAndInstancesAboutAnimValChange): Deleted.
        (WebCore::SVGAnimateElement::clearAnimatedType): Deleted.
        (WebCore::SVGAnimateElement::applyResultsToTarget): Deleted.
        (WebCore::SVGAnimateElement::animatedPropertyTypeSupportsAddition): Deleted.
        (WebCore::SVGAnimateElement::isAdditive): Deleted.
        (WebCore::SVGAnimateElement::calculateDistance): Deleted.
        (WebCore::SVGAnimateElement::setTargetElement): Deleted.
        (WebCore::SVGAnimateElement::setAttributeName): Deleted.
        (WebCore::SVGAnimateElement::resetAnimatedPropertyType): Deleted.
        (WebCore::SVGAnimateElement::ensureAnimator): Deleted.
        * svg/SVGAnimateElement.h:
        (WebCore::isSVGAnimateElement): Deleted.
        * svg/SVGAnimateElementBase.cpp: Copied from Source/WebCore/svg/SVGAnimateElement.cpp.
        (WebCore::SVGAnimateElementBase::SVGAnimateElementBase):
        (WebCore::SVGAnimateElementBase::~SVGAnimateElementBase):
        (WebCore::SVGAnimateElementBase::hasValidAttributeType):
        (WebCore::SVGAnimateElementBase::determineAnimatedPropertyType):
        (WebCore::SVGAnimateElementBase::calculateAnimatedValue):
        (WebCore::SVGAnimateElementBase::calculateToAtEndOfDurationValue):
        (WebCore::SVGAnimateElementBase::calculateFromAndToValues):
        (WebCore::SVGAnimateElementBase::calculateFromAndByValues):
        (WebCore::propertyTypesAreConsistent):
        (WebCore::SVGAnimateElementBase::resetAnimatedType):
        (WebCore::applyCSSPropertyToTarget):
        (WebCore::removeCSSPropertyFromTarget):
        (WebCore::applyCSSPropertyToTargetAndInstances):
        (WebCore::removeCSSPropertyFromTargetAndInstances):
        (WebCore::notifyTargetAboutAnimValChange):
        (WebCore::notifyTargetAndInstancesAboutAnimValChange):
        (WebCore::SVGAnimateElementBase::clearAnimatedType):
        (WebCore::SVGAnimateElementBase::applyResultsToTarget):
        (WebCore::SVGAnimateElementBase::animatedPropertyTypeSupportsAddition):
        (WebCore::SVGAnimateElementBase::isAdditive):
        (WebCore::SVGAnimateElementBase::calculateDistance):
        (WebCore::SVGAnimateElementBase::setTargetElement):
        (WebCore::SVGAnimateElementBase::setAttributeName):
        (WebCore::SVGAnimateElementBase::resetAnimatedPropertyType):
        (WebCore::SVGAnimateElementBase::ensureAnimator):
        * svg/SVGAnimateElementBase.h: Copied from Source/WebCore/svg/SVGAnimateElement.h.
        (WebCore::isSVGAnimateElementBase):
        * svg/SVGAnimateTransformElement.cpp:
        (WebCore::SVGAnimateTransformElement::SVGAnimateTransformElement):
        (WebCore::SVGAnimateTransformElement::parseAttribute):
        * svg/SVGAnimateTransformElement.h:
        * svg/SVGAnimatedAngle.cpp:
        * svg/SVGAnimatedBoolean.cpp:
        * svg/SVGAnimatedColor.cpp:
        * svg/SVGAnimatedInteger.cpp:
        * svg/SVGAnimatedIntegerOptionalInteger.cpp:
        * svg/SVGAnimatedLength.cpp:
        * svg/SVGAnimatedLengthList.cpp:
        * svg/SVGAnimatedNumber.cpp:
        * svg/SVGAnimatedNumberList.cpp:
        * svg/SVGAnimatedNumberOptionalNumber.cpp:
        * svg/SVGAnimatedPath.cpp:
        * svg/SVGAnimatedPointList.cpp:
        * svg/SVGAnimatedPreserveAspectRatio.cpp:
        * svg/SVGAnimatedRect.cpp:
        * svg/SVGAnimatedString.cpp:
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
        * svg/SVGSetElement.cpp:
        (WebCore::SVGSetElement::SVGSetElement):
        * svg/SVGSetElement.h:
        * svg/svgtags.in:

2014-09-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Use std::unique_ptr for ContextMenuController
        https://bugs.webkit.org/show_bug.cgi?id=137178

        Reviewed by Darin Adler.

        Switch to using std::unique_ptr instead of OwnPtr and PassOwnPtr
        for ContextMenuController class. Inherited class is changed by this use as well.

        No new tests, no behavior changes.

        * loader/EmptyClients.cpp:
        (WebCore::EmptyContextMenuClient::customizeMenu):
        * loader/EmptyClients.h:
        * page/ContextMenuClient.h:
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::clearContextMenu):
        (WebCore::ContextMenuController::maybeCreateContextMenu):
        (WebCore::ContextMenuController::showContextMenu):
        * page/ContextMenuController.h:

2014-09-28  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Move ColorInputType class to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=137173

        Reviewed by Darin Adler.

        Replace uses of PassOwnPtr in code under ColorInputType class with std::unique_ptr.
        Child classes follow this change as well.

        No new tests, no behavior changes.

        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::didEndChooser):
        * html/ColorInputType.h:
        * loader/EmptyClients.cpp:
        (WebCore::EmptyChromeClient::createColorChooser):
        * loader/EmptyClients.h:
        * page/Chrome.cpp:
        (WebCore::Chrome::createColorChooser):
        * page/Chrome.h:
        * page/ChromeClient.h:

2014-09-28  Sungmann Cho  <sungmann.cho@navercorp.com>

        Fix some minor typos: psuedo -> pseudo
        https://bugs.webkit.org/show_bug.cgi?id=137192

        Reviewed by Alexey Proskuryakov.

        No new tests, no behavior change.

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::specificityForOneSelector):

2014-09-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Move RenderThemeGtk.h from platform/gtk to rendering.

        I forgot to move this file in r173111.

        * rendering/RenderThemeGtk.h: Renamed from Source/WebCore/platform/gtk/RenderThemeGtk.h.

2014-09-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [ATK] WebKitAccessibleWrapperAtk should not depend on GTK
        https://bugs.webkit.org/show_bug.cgi?id=137177

        Reviewed by Martin Robinson.

        It's used to get the web view widget, but there's no GtkWidget in
        the web process and platformPageClient is always NULL.

        * PlatformGTK.cmake: Move accessibility sources to the WebCore
        sources list.
        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (atkParentOfRootObject): Remove code to get view GtkWidget.
        * editing/atk/FrameSelectionAtk.cpp: Remove unneeded header include.

2014-09-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove unused GtkPluginWidget
        https://bugs.webkit.org/show_bug.cgi?id=137176

        Reviewed by Csaba Osztrogonác.

        It was only used by WebKit1.

        * PlatformGTK.cmake:
        * platform/gtk/GtkPluginWidget.cpp: Removed.
        * platform/gtk/GtkPluginWidget.h: Removed.

2014-09-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [cairo] GraphicsContext should not depend on GTK+
        https://bugs.webkit.org/show_bug.cgi?id=137175

        Reviewed by Martin Robinson.

        Remove the unused methods depending on GDK and simplify
        GraphicsContext::drawFocusRing() using only cairo API.

        * PlatformGTK.cmake: Move GraphicsContextCairo.cpp to the webcore sources.
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::drawFocusRing): Iterate the rectangles
        instead of creating a region for the rectangles and call gdk_cairo_region().
        (WebCore::GraphicsContext::setGdkExposeEvent): Deleted.
        (WebCore::GraphicsContext::gdkExposeEvent): Deleted.
        (WebCore::GraphicsContext::gdkWindow): Deleted.
        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
        (WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):

2014-09-27  Chris Dumez  <cdumez@apple.com>

        HTMLPlugInElement::isUserObservable() is causing layout
        https://bugs.webkit.org/show_bug.cgi?id=137156

        Reviewed by Ryosuke Niwa.

        While profiling the page load of nytimes.com, I noticed that we were
        spending ~4-5% of cpu time in HTMLPlugInElement::isUserObservable().
        The reason is that the function calls pluginWidget(), which causes a
        layout update in HTMLObjectElement::renderWidgetForJSBindings(), to
        make sure the plugin is loaded and its renderer is created.

        HTMLPlugInElement::isUserObservable() shouldn't need to do a layout.
        This patch does the following to address the problem:
        - Rename renderWidgetForJSBindings() to renderWidgetLoadingPlugin()
          because this function is not always called from the JS Bindings
          nowadays. The new name makes it clearer that this will load the
          plugin if needed (to make sure the renderer is created, and by
          doing a layout).
        - Add a PluginLoadingPolicy argument to
          HTMLPlugInElement::pluginWidget() to let the caller control if the
          plugin should be loaded or not.
        - Update the call to pluginWidget() in isUserObservable() so that
          we do not attempt to load the plugin (thus not causing a layout).

        No new tests, no behavior change.

        * WebCore.exp.in:
        * WebCore.order:
        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::renderWidgetLoadingPlugin):
        (WebCore::HTMLAppletElement::renderWidgetForJSBindings): Deleted.
        * html/HTMLAppletElement.h:
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::renderWidgetLoadingPlugin):
        (WebCore::HTMLEmbedElement::renderWidgetForJSBindings): Deleted.
        * html/HTMLEmbedElement.h:
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::renderWidgetLoadingPlugin):
        (WebCore::HTMLObjectElement::renderWidgetForJSBindings): Deleted.
        * html/HTMLObjectElement.h:
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::pluginWidget):
        (WebCore::HTMLPlugInElement::isUserObservable):
        * html/HTMLPlugInElement.h:

2014-09-27  Christophe Dumez  <cdumez@apple.com>

        Use the new is<>() / downcast<>() for more Node subclasses
        https://bugs.webkit.org/show_bug.cgi?id=137184

        Reviewed by Ryosuke Niwa.

        Use the new is<>() / downcast<>() for more Node subclasses:
        CDATASection, CharacterData, Comment, DocumentType,
        ProcessingInstruction, and PseudoElement.

        No new tests, no behavior change.

        * dom/CDATASection.h:
        (WebCore::isCDATASection):
        * dom/CharacterData.cpp:
        (WebCore::CharacterData::setDataAndUpdate):
        * dom/CharacterData.h:
        (WebCore::isCharacterData):
        * dom/Comment.h:
        (WebCore::isComment):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
        * dom/DocumentType.h:
        (WebCore::isDocumentType):
        * dom/EventDispatcher.cpp:
        (WebCore::eventTargetRespectingTargetRules):
        (WebCore::nodeOrHostIfPseudoElement):
        * dom/Node.cpp:
        (WebCore::markAncestorsWithChildNeedsStyleRecalc):
        (WebCore::Node::pseudoAwarePreviousSibling):
        (WebCore::Node::pseudoAwareNextSibling):
        * dom/NodeTraversal.cpp:
        (WebCore::NodeTraversal::previousIncludingPseudo):
        (WebCore::NodeTraversal::nextIncludingPseudo):
        (WebCore::NodeTraversal::nextIncludingPseudoSkippingChildren):
        * dom/ProcessingInstruction.h:
        (WebCore::isProcessingInstruction):
        * dom/PseudoElement.h:
        (WebCore::isPseudoElement):
        * dom/Range.cpp:
        (WebCore::lengthOfContentsInNode):
        (WebCore::Range::processContentsBetweenOffsets):
        (WebCore::Range::checkNodeWOffset):
        * editing/Editor.cpp:
        (WebCore::Editor::shouldInsertFragment):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendStartMarkup):
        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_traverseNode):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * inspector/InspectorLayerTreeAgent.cpp:
        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::setInnerNode):
        (WebCore::HitTestResult::setInnerNonSharedNode):
        * rendering/RenderListItem.cpp:
        (WebCore::enclosingList):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::generatingPseudoHostElement):
        * xml/XPathFunctions.cpp:
        (WebCore::XPath::expandedNameLocalPart):

2014-09-27  Christophe Dumez  <cdumez@apple.com>

        Use the new is<>() / downcast<>() for Attr Nodes
        https://bugs.webkit.org/show_bug.cgi?id=137183

        Reviewed by Ryosuke Niwa.

        Use the new is<>() / downcast<>() for Attr Nodes instead of isAttr() /
        toAttr().

        No new tests, no behavior change.

        * dom/Attr.h:
        (WebCore::isAttr):
        * dom/Document.cpp:
        (WebCore::Document::importNode):
        (WebCore::Document::adoptNode):
        * dom/NamedNodeMap.cpp:
        (WebCore::NamedNodeMap::setNamedItem):
        * dom/Node.cpp:
        (WebCore::Node::compareDocumentPosition):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * inspector/InspectorNodeFinder.cpp:
        (WebCore::InspectorNodeFinder::searchUsingXPath):
        * xml/XPathNodeSet.cpp:
        (WebCore::XPath::sortBlock):
        (WebCore::XPath::NodeSet::sort):
        (WebCore::XPath::findRootNode):

2014-09-27  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: Playback position updates should be sent before the next event loop input is dispatched
        https://bugs.webkit.org/show_bug.cgi?id=137162

        Reviewed by Timothy Hatcher.

        To drive playback position updates in the Inspector UI, we send playbackHitPosition protocol
        messages as the replay backend dispatches inputs. However, right now the semantics of that
        message are muddy. The update is sent *after* the input at the offset is dispatched. This leads
        to unexpected results if the debugger pauses while the input is being dispatched: the frontend
        will only know about the previous (stale) playback position when the debugger pauses.

        With this patch, the backend sends the playbackHitPosition(segmentOffset=n, inputOffset=m)
        message when backend is about to dispatch input m, but has not yet begun to do so. Thus, any
        subsequent page execution events (profiling, debugger pauses, etc) until the next
        playbackHitPosition are caused by input m's being dispatched.

        * inspector/protocol/Replay.json: Clarify the message's semantics.
        * replay/ReplayController.cpp:
        (WebCore::ReplayController::willDispatchInput):
        (WebCore::ReplayController::didDispatchInput):

2014-09-27  Benjamin Poulain  <bpoulain@apple.com>

        Chaining multiple :nth-child() does not work properly
        https://bugs.webkit.org/show_bug.cgi?id=137032

        Reviewed by Gavin Barraclough.

        When multiple :nth-child() are chained, the evaluation of each "An+B" could depend on
        the execution of the previous "An+B". The reason is that the register holding the position
        of the current element could be modified by the evaluation of "An+B".

        There are two cases in which the register was used as the destination of an operation:
        1) When A and B are positive, the counter would be the destination of "counter - B".
        2) When A is not 1 or 2, the modulo operation was not preserving the input register.

        For (1), we a copy of the counter in that case of generateElementIsNthChild().

        For (2), we also preserve a copy of the input if it is used by the operation. In this case,
        if the input register is one of the argument we need for idiv, we preserve it on the stack
        or in a register depending on what is available.

        This increases the register requirements by 2 in the worst case on x86. The extra registers
        can push generateElementIsNthChild() above the 4 available registers. To accomodate for that,
        minimumRegisterRequirements() reserve more registers on x86.

        The extra register pressure has strictly no effect on performance, x86_64 has 9 registers
        available without pushing anything. The extra allocation is only necessary for debugging.

        Tests: fast/selectors/nth-child-basics.html
               fast/selectors/nth-child-chained.html
               fast/selectors/nth-child-of-basics-2.html
               fast/selectors/nth-child-of-chained.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::minimumRegisterRequirements):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):

2014-09-26  Christophe Dumez  <cdumez@apple.com>

        Stop using legacy NODE_TYPE_CASTS() macro for HTML Elements
        https://bugs.webkit.org/show_bug.cgi?id=137137

        Reviewed by Benjamin Poulain.

        Stop using legacy NODE_TYPE_CASTS() macro for HTML Elements and use the
        new SPECIALIZE_TYPE_TRAITS_*() macro instead so that is<>() /
        downcast<>() works for those types.

        No new tests, no behavior change.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::labelForElement):
        (WebCore::AccessibilityNodeObject::text):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::isDataTable):
        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetName):
        (webkitAccessibleGetDescription):
        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap):
        * bindings/js/JSElementCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::createWrapperInline):
        * bindings/js/JSPluginElementFunctions.cpp:
        (WebCore::pluginInstance):
        (WebCore::pluginScriptObjectFromPluginViewBase):
        (WebCore::pluginScriptObject):
        (WebCore::pluginElementCustomPut):
        (WebCore::isPluginElement): Deleted.
        * bindings/objc/DOM.mm:
        (kitClass):
        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::matchAllRules):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::locateCousinList):
        (WebCore::elementHasDirectionAuto):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::makeContextStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::makeElementStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::isPlaceholderShown):
        * dom/ContainerNodeAlgorithms.cpp:
        (WebCore::assertConnectedSubrameCountIsConsistent):
        (WebCore::collectFrameOwners):
        (WebCore::disconnectSubframes):
        * dom/Document.cpp:
        (WebCore::Document::adoptNode):
        (WebCore::Document::setBody):
        (WebCore::Document::iconURLs):
        (WebCore::Document::dispatchFullScreenChangeOrErrorEvent):
        (WebCore::Document::updateHoverActiveState):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
        * dom/Range.cpp:
        (WebCore::Range::createContextualFragment):
        * dom/make_names.pl:
        (printTypeHelpers):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::isLegacyAppleStyleSpan):
        (WebCore::isStyleSpanOrSpanWithOnlyStyleAttribute):
        (WebCore::isSpanWithoutAttributesOrUnstyledStyleSpan):
        (WebCore::isEmptyFontTag):
        (WebCore::ApplyStyleCommand::applyBlockStyle):
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::splitAncestorsWithUnicodeBidi):
        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
        (WebCore::ApplyStyleCommand::removeConflictingInlineStyleFromRun):
        (WebCore::ApplyStyleCommand::highestAncestorWithConflictingInlineStyle):
        (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
        (WebCore::ApplyStyleCommand::pushDownInlineStyleAroundNode):
        (WebCore::ApplyStyleCommand::removeInlineStyle):
        (WebCore::ApplyStyleCommand::shouldSplitTextElement):
        (WebCore::ApplyStyleCommand::applyInlineStyleChange):
        * editing/DeleteButtonController.cpp:
        (WebCore::enclosingDeletableElement):
        * editing/Editor.cpp:
        (WebCore::Editor::selectionForCommand):
        (WebCore::Editor::setBaseWritingDirection):
        (WebCore::findFirstMarkable):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::selectAll):
        (WebCore::scanForForm):
        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::mergeWithNeighboringLists):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::elementCannotHaveEndTag):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::removeRedundantStylesAndKeepStyleSpanInline):
        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
        (WebCore::ReplaceSelectionCommand::handleStyleSpans):
        (WebCore::ReplaceSelectionCommand::doApply):
        (WebCore::ReplaceSelectionCommand::insertAsListItems):
        * editing/TextIterator.cpp:
        (WebCore::shouldEmitNewlinesBeforeAndAfterNode):
        (WebCore::shouldEmitExtraNewlineForNode):
        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_addTableCellForElement):
        (HTMLConverter::_processElement):
        * editing/htmlediting.cpp:
        (WebCore::enclosingList):
        (WebCore::embeddedSublist):
        (WebCore::appendedSublist):
        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
        * editing/mac/EditorMac.mm:
        (WebCore::maybeCopyNodeAttributesToFragment):
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::appendElement):
        * html/BaseChooserOnlyDateAndTimeInputType.cpp:
        (WebCore::BaseChooserOnlyDateAndTimeInputType::updateAppearance):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::shadowColorSwatch):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::insertedInto):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::namedItem):
        (WebCore::HTMLCollection::updateNamedElementCache):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::matchesReadWritePseudoClass):
        (WebCore::HTMLElement::setOuterHTML):
        (WebCore::elementAffectsDirectionality):
        (WebCore::HTMLElement::directionality):
        (WebCore::HTMLElement::dirAttributeChanged):
        * html/HTMLElement.h:
        (WebCore::isHTMLElement):
        (WebCore::Node::hasTagName):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::getNamedElements):
        * html/HTMLFrameElementBase.h:
        (WebCore::isHTMLFrameElementBase):
        * html/HTMLFrameOwnerElement.h:
        (WebCore::isHTMLFrameOwnerElement):
        * html/HTMLMediaElement.h:
        (WebCore::isHTMLMediaElement):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::isDisabledFormControl):
        * html/HTMLPlugInElement.h:
        (WebCore::isHTMLPlugInElement):
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::addPlugInsFromNodeListMatchingPlugInOrigin):
        * html/HTMLPlugInImageElement.h:
        (WebCore::isHTMLPlugInImageElement):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::setOption):
        (WebCore::HTMLSelectElement::setLength):
        (WebCore::HTMLSelectElement::recalcListItems):
        * html/HTMLSourceElement.cpp:
        (WebCore::HTMLSourceElement::insertedInto):
        (WebCore::HTMLSourceElement::removedFrom):
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::cellAbove):
        * html/HTMLTableCellElement.h:
        (WebCore::isHTMLTableCellElement):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::tHead):
        (WebCore::HTMLTableElement::tFoot):
        (WebCore::HTMLTableElement::lastBody):
        * html/HTMLTableRowElement.cpp:
        (WebCore::HTMLTableRowElement::rowIndex):
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::isInSection):
        * html/HTMLTableSectionElement.h:
        (WebCore::isHTMLTableSectionElement):
        * html/HTMLTagNames.in:
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::enclosingTextFormControl):
        * html/HTMLTextFormControlElement.h:
        (WebCore::isHTMLTextFormControlElement):
        * html/HTMLTrackElement.cpp:
        (WebCore::HTMLTrackElement::removedFrom):
        (WebCore::HTMLTrackElement::mediaElement):
        * html/LabelableElement.h:
        (WebCore::isLabelableElement):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::sliderTrackElement):
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::parentMediaElement):
        (WebCore::mediaControlElementType):
        * html/shadow/TextControlInnerElements.h:
        (WebCore::isTextControlInnerTextElement):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * inspector/InspectorNodeFinder.cpp:
        (WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadSubframe):
        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::create):
        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::isPhrasingContent):
        (WebCore::MathMLElement::isFlowContent):
        (WebCore::MathMLElement::childShouldCreateRenderer):
        * mathml/mathtags.in:
        * page/DragController.cpp:
        (WebCore::DragController::canProcessDrag):
        * page/EventHandler.cpp:
        (WebCore::targetIsFrame):
        * page/FocusController.cpp:
        (WebCore::hasCustomFocusLogic):
        (WebCore::FocusController::findFocusableElementDescendingDownIntoFrameDocument):
        (WebCore::FocusController::advanceFocusInDocumentOrder):
        * page/Frame.cpp:
        (WebCore::Frame::searchForLabelsBeforeElement):
        * page/FrameView.cpp:
        (WebCore::FrameView::init):
        (WebCore::FrameView::addEmbeddedObjectToUpdate):
        (WebCore::FrameView::updateEmbeddedObject):
        * page/PageSerializer.cpp:
        (WebCore::isCharsetSpecifyingNode):
        (WebCore::SerializerMarkupAccumulator::appendCustomAttributes):
        * page/SpatialNavigation.cpp:
        (WebCore::frameOwnerElement):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::absolutePDFURL):
        (WebCore::HitTestResult::mediaElement):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::resizeTextPermitted):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::paintContents):
        (WebCore::RenderEmbeddedObject::layout):
        (WebCore::RenderEmbeddedObject::handleUnavailablePluginIndicatorEvent):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):
        (WebCore::RenderLayer::updateSnapOffsets):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateConfiguration):
        (WebCore::isRestartedPlugin):
        * rendering/RenderMedia.h:
        (WebCore::RenderMedia::mediaElement):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::offsetParent):
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::plugInImageElement):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::parseColSpanFromDOM):
        (WebCore::RenderTableCell::parseRowSpanFromDOM):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::textFormControlElement):
        * rendering/RenderThemeGtk.cpp:
        (WebCore::getMediaElementFromRenderObject):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
        (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::isEmptyOrUnstyledAppleStyleSpan):
        * rendering/RenderWidget.h:
        (WebCore::RenderWidget::frameOwnerElement):
        * testing/Internals.cpp:
        (WebCore::Internals::visiblePlaceholder):
        (WebCore::Internals::simulateAudioInterruption):
        (WebCore::Internals::isPluginSnapshotted):
        * xml/XPathStep.cpp:
        (WebCore::XPath::nodeMatchesBasicTest):

2014-09-26  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Automatic Inspection should continue once all breakpoints are loaded
        https://bugs.webkit.org/show_bug.cgi?id=137038

        Reviewed by Timothy Hatcher.

        Handle frontend initialization messages even though pages cannot
        be automatically inspected yet.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::disconnectFrontend):
        (WebCore::InspectorController::frontendInitialized):
        * inspector/InspectorController.h:
        * inspector/WorkerInspectorController.h:
        * page/Page.h:
        (WebCore::Page::inspectorDebuggable):

2014-09-26  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r173988): Fix unused variable warning in PDFDocumentImage.cpp

        Fixes the following build failure in release builds:

            WebCore/platform/graphics/cg/PDFDocumentImage.cpp:230:12: error: unused variable 'pageCount' [-Werror,-Wunused-variable]

        * platform/graphics/cg/PDFDocumentImage.cpp:
        (WebCore::PDFDocumentImage::computeBoundsForCurrentPage): Change
        ASSERT() to call pageCount().

2014-09-26  Brian J. Burg  <burg@cs.washington.edu>

        StorageTracker::deleteOrigin being called off the main thread (ASSERTs in inspector/test-harness-trivially-works.html test)
        https://bugs.webkit.org/show_bug.cgi?id=129642

        Apply post-review comments from Alexey Proskuryakov.

        * storage/StorageAreaSync.cpp:
        (WebCore::StorageAreaSync::deleteEmptyDatabase): Make a thread-safe isolated copy of the string.

2014-09-26  Myles C. Maxfield  <mmaxfield@apple.com>

        SVG -> OTF converter bug gardening
        https://bugs.webkit.org/show_bug.cgi?id=137088

        Reviewed by Darin Adler.

        This test fixes some (but not all) of the svg/ layout tests that never worked with the
        SVG -> OTF font converter. The actual list of tests this fixes is shown below. I will be
        filing bugs for the remaining issues along with the relevant tests that those issues
        cause to fail.

        Tests: svg/W3C-SVG-1.1/fonts-elem-05-t.svg
               svg/W3C-SVG-1.1/fonts-kern-01-t.svg
               svg/custom/glyph-setting-d-attribute.svg
               svg/custom/scrolling-embedded-svg-file-image-repaint-problem.html
               svg/custom/skip-underline-missing-glyph.html
               svg/custom/svg-fonts-fallback.xhtml
               svg/custom/svg-fonts-in-text-controls.html

        * svg/SVGToOTFFontConversion.cpp:
        (WebCore::SVGToOTFFontConverter::appendHEADTable): We use the font's minimum and maximum
        bounding box information to size <textarea>s and <input>s.
        (WebCore::SVGToOTFFontConverter::addCodepointRanges): Codepoint ranges are closed.
        (WebCore::SVGToOTFFontConverter::computeKerningData): Typo in appending glyphs to the
        wrong set.
        (WebCore::SVGToOTFFontConverter::transcodeGlyphPaths): Use the font's horizontal
        origin if the glyph doesn't have one.
        (WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): r173852 implemented vhea, vmtx,
        and kern.
        (WebCore::transcodeGlyphPaths): Moved inside SVGToOTFFontConverter.

2014-09-26  Dan Bernstein  <mitz@apple.com>

        iOS build fix following r173989.

        * page/ios/FrameIOS.mm:
        (WebCore::ancestorRespondingToClickEvents):

2014-09-26  Javier Fernandez  <jfernandez@igalia.com>

        [CSS Grid Layout] Empty string case already covered by containesOnlyWhiteSpace.
        https://bugs.webkit.org/show_bug.cgi?id=137146

        Reviewed by Sergio Villar Senin.

        When checking out for white-space only strings in the grid-template-areas
        property values, it's not neccessary to check out for empty strings as
        such case is already covered.

        No new tests, already covered by fast/css-grid-layout/grid-template-areas-empty-string-crash.html.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTemplateAreasRow):

2014-09-23  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Fix the handling of infinity in track growth limits
        https://bugs.webkit.org/show_bug.cgi?id=137019

        Reviewed by Darin Adler.

        The growth limit of content sized tracks is initialized to
        infinity which is internally represented as -1. We were not
        specialcasing this situation, and thus, -1 was used in the
        computations as any other value. This change makes the code aware
        of the existence of infinites (like when sorting tracks by growth
        potential or when initializing the track growth limits).

        There was another bug related to infinities. The code that was
        replacing a infinite growth limit by a finite one was not using
        the proper indexes so the tracks that were being updated were the
        wrong ones.

        Test: fast/css-grid-layout/grid-content-sized-columns-resolution.html

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
        (WebCore::sortByGridTrackGrowthPotential):
        (WebCore::RenderGrid::distributeSpaceToTracks):

2014-09-26  Lorenzo Tilve  <ltilve@igalia.com>

        [GTK] Fix support for the initial-letter CSS property to first-letter
        https://bugs.webkit.org/show_bug.cgi?id=137108

        Reviewed by Alejandro G. Castro.

        Add support for cap-height to the font system.

        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
        (WebCore::SimpleFontData::platformInit):

2014-09-25  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: FunctionCall timeline records omit profile data if the debugger has paused
        https://bugs.webkit.org/show_bug.cgi?id=136805

        Reviewed by Timothy Hatcher.

        TimelineAgent was mismanaging its call stack depth counter, which caused nested FunctionCall
        records to steal the parent FunctionCall's captured profile in the child's didCallFunction().
        Thus, the top FunctionCall node had no profile data and nested FunctionCall nodes each had
        their own profiles. The frontend expected just one profile, so it didn't show anything when
        it couldn't be found.

        Test: inspector/timeline/debugger-paused-while-recording.html

        * inspector/InspectorTimelineAgent.cpp: Rename m_recordingProfileDepth to m_callStackDepth.
        (WebCore::InspectorTimelineAgent::willCallFunction): Fix the call stack depth management.
        (WebCore::InspectorTimelineAgent::didCallFunction):
        (WebCore::InspectorTimelineAgent::willEvaluateScript):
        (WebCore::InspectorTimelineAgent::didEvaluateScript):
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        * inspector/InspectorTimelineAgent.h:

2014-09-25  Brian J. Burg  <burg@cs.washington.edu>

        StorageTracker::deleteOrigin being called off the main thread (ASSERTs in inspector/test-harness-trivially-works.html test)
        https://bugs.webkit.org/show_bug.cgi?id=129642

        Reviewed by Brady Eidson.

        When tearing down the inspector frontend's page, we trigger a threading violation
        in StorageAreaSync's final sync code underneath StorageAreaSync::deleteEmptyDatabase().

        No new tests. Regression is covered by inspector/test-harness-trivially-works.html.

        * storage/StorageAreaSync.cpp:
        (WebCore::StorageAreaSync::deleteEmptyDatabase): add a missing callOnMainThread() when
        calling StorageTracker::deleteOriginWithIdentifier().

2014-09-25  Sungmann Cho  <sungmann.cho@navercorp.com>

        Unprefix CSS cursor values zoom-in and zoom-out.
        https://bugs.webkit.org/show_bug.cgi?id=137061

        Reviewed by Benjamin Poulain.

        This patch unprefixes CSS cursor values zoom-in and zoom-out.
        -webkit-zoom-in and -webkit-zoom-out are kept as aliases.
        ECursor members use InterCaps with an initial capital letter for now.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator ECursor):
        * css/CSSValueKeywords.in:
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyCursor::applyValue):
        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::resizeImageToFit):
        (WebCore::ImageDocument::restoreImageSize):
        (WebCore::ImageDocument::windowSizeChanged):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectCursor):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:

2014-09-25  Brent Fulgham  <bfulgham@apple.com>

        [Win] Debug builds of TestWebKitAPI are crashing.
        https://bugs.webkit.org/show_bug.cgi?id=133553

        Reviewed by Dean Jackson.

        Avoid crash on shutdown due to invalid mutex state in the
        HashMap debug implementation during a static destruction operation.

        * dom/Node.cpp:
        (WebCore::ignoreSet): Convert static value into a NeverDestroyed.
        (WebCore::Node::trackForDebugging): Use new NeverDestroyed call.
        (WebCore::Node::~Node): Ditto.

2014-09-25  Christophe Dumez  <cdumez@apple.com>

        Add support for is<SVGDocument>() / downcast<SVGDocument>()
        https://bugs.webkit.org/show_bug.cgi?id=137128

        Reviewed by Ryosuke Niwa.

        Add support for is<SVGDocument>() / downcast<SVGDocument>() by using
        the SPECIALIZE_TYPE_TRAITS_*() macro, instead of the
        DOCUMENT_TYPE_CASTS() one.

        No new tests, no behavior change.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::getSVGDocument):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        * page/Frame.cpp:
        (WebCore::Frame::setPageAndTextZoomFactors):
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollToAnchor):
        * svg/SVGDocument.h:
        (WebCore::isSVGDocument):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::hasSingleSecurityOrigin):
        (WebCore::SVGImage::setContainerSize):
        (WebCore::SVGImage::containerSize):
        (WebCore::SVGImage::embeddedContentBox):
        (WebCore::SVGImage::hasRelativeWidth):
        (WebCore::SVGImage::hasRelativeHeight):
        (WebCore::SVGImage::computeIntrinsicDimensions):
        (WebCore::SVGImage::startAnimation):
        (WebCore::SVGImage::stopAnimation):

2014-09-25  Said Abou-Hallawa  <sabouhallawa@apple.com>

        Rename CSSKeyframesRule insertRule to appendRule (57910)
        https://bugs.webkit.org/show_bug.cgi?id=57910

        Reviewed by Dean Jackson.

        Tests: animations/change-keyframes.html

        * css/WebKitCSSKeyframesRule.h:
        (WebCore::WebKitCSSKeyframesRule::appendRule):
        -- Make WebKitCSSKeyframesRule::appendRule to be an alias of WebKitCSSKeyframesRule::insertRule()
           to conform with CSS specs
        * css/WebKitCSSKeyframesRule.idl:
        -- Add the new method WebKitCSSKeyframesRule::appendRule() but keep the original method
           WebKitCSSKeyframesRule::appendRule() to not break exiting customers' pages.

2014-09-25  Tim Horton  <timothy_horton@apple.com>

        Null deref in setStateScrollingNodeSnapOffsetsAsFloat
        https://bugs.webkit.org/show_bug.cgi?id=137133
        <rdar://problem/18447820>

        Reviewed by Beth Dakin.

        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
        (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
        Get the deviceScaleFactor from m_page instead of various other places,
        because scrolledContentsLayer can be null in the case of non-composited
        overflow scroll.

2014-09-25  Christophe Dumez  <cdumez@apple.com>

        Use is<HTML*Element>() instead of isHTML*Element() - Part 2
        https://bugs.webkit.org/show_bug.cgi?id=137103

        Reviewed by Benjamin Poulain.

        Use is<HTML*Element>() instead of isHTML*Element() and drop support for
        the generated isHTML*Element() macros.

        No new tests, no behavior change.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::focusedUIElementForPage):
        (WebCore::AXObjectCache::getOrCreate):
        (WebCore::AXObjectCache::handleAttributeChanged):
        (WebCore::AXObjectCache::labelChanged):
        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::isEnabled):
        (WebCore::AccessibilityListBoxOption::stringValue):
        (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
        (WebCore::AccessibilityNodeObject::isNativeImage):
        (WebCore::AccessibilityNodeObject::anchorElement):
        (WebCore::AccessibilityNodeObject::alternativeText):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::anchorElement):
        (WebCore::AccessibilityRenderObject::labelElementContainer):
        (WebCore::AccessibilityRenderObject::internalLinkElement):
        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::url):
        (WebCore::AccessibilityRenderObject::getDocumentLinks):
        (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        (WebCore::AccessibilityRenderObject::stringValueForMSAA):
        (WebCore::AccessibilityRenderObject::isLinked):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::tableElement):
        (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
        (WebCore::AccessibilityTable::title):
        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
        (webkitAccessibleTableGetCaption):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::nameGetter):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::isReachableFromDOM):
        * css/CSSDefaultStyleSheets.cpp:
        (WebCore::elementCanUseSimpleDefaultStyle):
        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
        * css/CSSStyleSheet.cpp:
        (WebCore::isAcceptableCSSStyleSheetParent):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        * css/StyleSheetList.cpp:
        (WebCore::StyleSheetList::getNamedItem):
        * dom/CurrentScriptIncrementer.h:
        (WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer):
        * dom/DataTransfer.cpp:
        (WebCore::DataTransfer::setDragImage):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::keyMatchesMapName):
        (WebCore::keyMatchesLowercasedMapName):
        (WebCore::keyMatchesLowercasedUsemap):
        (WebCore::keyMatchesLabelForAttribute):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
        * dom/Node.cpp:
        (WebCore::Node::enclosingLinkEventParentOrSelf):
        * dom/Position.cpp:
        (WebCore::endsOfNodeAreVisuallyDistinctPositions):
        * dom/ScriptElement.cpp:
        (WebCore::toScriptElementIfPossible):
        * dom/VisitedLinkState.cpp:
        (WebCore::linkHashForElement):
        (WebCore::VisitedLinkState::determineLinkStateSlowCase):
        * dom/make_names.pl:
        (printTypeHelpers):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        * editing/Editor.cpp:
        (WebCore::imageElementFromImageDocument):
        * editing/FrameSelection.cpp:
        (WebCore::scanForForm):
        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::doApply):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::removeHeadContents):
        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_processElement):
        * editing/htmlediting.cpp:
        (WebCore::isNonTableCellHTMLBlockElement):
        * editing/markup.cpp:
        (WebCore::ancestorToRetainStructureAndAppearanceForBlock):
        (WebCore::collectElementsToRemoveFromFragment):
        * html/FTPDirectoryDocument.cpp:
        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
        * html/FormAssociatedElement.cpp:
        (WebCore::FormAssociatedElement::findAssociatedForm):
        * html/HTMLAnchorElement.cpp:
        (WebCore::appendServerMapMousePosition):
        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::imageElement):
        * html/HTMLDocument.cpp:
        (WebCore::HTMLDocument::bgColor):
        (WebCore::HTMLDocument::setBgColor):
        (WebCore::HTMLDocument::fgColor):
        (WebCore::HTMLDocument::setFgColor):
        (WebCore::HTMLDocument::alinkColor):
        (WebCore::HTMLDocument::setAlinkColor):
        (WebCore::HTMLDocument::linkColor):
        (WebCore::HTMLDocument::setLinkColor):
        (WebCore::HTMLDocument::vlinkColor):
        (WebCore::HTMLDocument::setVlinkColor):
        (WebCore::HTMLDocument::isFrameSet):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::setInnerHTML):
        * html/HTMLFieldSetElement.cpp:
        (WebCore::updateFromControlElementsAncestorDisabledStateUnder):
        (WebCore::HTMLFieldSetElement::disabledStateChanged):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):
        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::HTMLFormControlsCollection):
        (WebCore::HTMLFormControlsCollection::formControlElements):
        (WebCore::HTMLFormControlsCollection::formImageElements):
        (WebCore::HTMLFormControlsCollection::namedItem):
        (WebCore::HTMLFormControlsCollection::updateNamedElementCache):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::rendererIsNeeded):
        * html/HTMLFrameElementBase.h:
        (WebCore::isHTMLFrameElementBase):
        * html/HTMLImageLoader.cpp:
        (WebCore::HTMLImageLoader::dispatchLoadEvent):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::dataList):
        * html/HTMLLegendElement.cpp:
        (WebCore::HTMLLegendElement::virtualForm):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLNameCollection.cpp:
        (WebCore::WindowNameCollection::elementMatchesIfNameAttributeMatch):
        (WebCore::DocumentNameCollection::elementMatches):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::ownerDataListElement):
        (WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel):
        (WebCore::HTMLOptionElement::isDisabledFormControl):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::recalcListItems):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::caption):
        * html/HTMLTablePartElement.cpp:
        (WebCore::HTMLTablePartElement::findParentTable):
        * html/HTMLTableRowElement.cpp:
        (WebCore::HTMLTableRowElement::rowIndex):
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::rowAfter):
        (WebCore::HTMLTableRowsCollection::lastRow):
        * html/HTMLTagNames.in:
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::elementMatches):
        * html/MediaDocument.cpp:
        (WebCore::descendentVideoElement):
        (WebCore::ancestorVideoElement):
        * html/RadioInputType.cpp:
        (WebCore::RadioInputType::handleKeydownEvent):
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::RadioNodeList):
        (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::hasImpliedEndTag):
        (WebCore::insert):
        (WebCore::HTMLConstructionSite::insertHTMLFormElement):
        (WebCore::HTMLConstructionSite::insertTextNode):
        (WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
        * html/parser/HTMLElementStack.cpp:
        (WebCore::HTMLNames::isScopeMarker):
        (WebCore::HTMLNames::isTableScopeMarker):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
        (WebCore::HTMLTreeBuilder::processStartTag):
        (WebCore::HTMLTreeBuilder::resetInsertionModeAppropriately):
        (WebCore::HTMLTreeBuilder::processEndTag):
        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyleSheet::inlineStyleSheetText):
        * page/DragController.cpp:
        (WebCore::DragController::draggableElement):
        * page/FocusController.cpp:
        (WebCore::FocusController::advanceFocusDirectionally):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeFrame):
        * page/SpatialNavigation.cpp:
        (WebCore::FocusCandidate::FocusCandidate):
        (WebCore::areElementsOnSameLine):
        * page/ios/FrameIOS.mm:
        (WebCore::ancestorRespondingToClickEvents):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::altDisplayString):
        (WebCore::HitTestResult::mediaSupportsFullscreen):
        (WebCore::HitTestResult::mediaElement):
        (WebCore::HitTestResult::enterFullscreenForVideo):
        (WebCore::HitTestResult::mediaIsVideo):
        (WebCore::HitTestResult::isLiveLink):
        * rendering/RenderCounter.cpp:
        (WebCore::planCounter):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::RenderImage):
        (WebCore::RenderImage::paintAreaElementFocusRing):
        (WebCore::RenderImage::paintIntoRect):
        (WebCore::RenderImage::imageMap):
        (WebCore::RenderImage::updateAltText):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::updateFromElement):
        (WebCore::RenderListBox::paintItemForeground):
        * rendering/RenderMarquee.cpp:
        (WebCore::RenderMarquee::marqueeSpeed):
        * rendering/RenderMenuList.cpp:
        (RenderMenuList::itemText):
        (RenderMenuList::itemIsEnabled):
        (RenderMenuList::itemIsLabel):
        * rendering/RenderMeter.cpp:
        (WebCore::RenderMeter::meterElement):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::shouldRespectImageOrientation):
        (WebCore::RenderObject::getTextDecorationColors):
        (WebCore::RenderObject::offsetParent):
        * rendering/RenderProgress.cpp:
        (WebCore::RenderProgress::progressElement):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
        (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::imageForRenderer):
        * testing/Internals.cpp:
        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::startElementNs):

2014-09-25  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: Check event loop input extents during replay too
        https://bugs.webkit.org/show_bug.cgi?id=136316

        Reviewed by Timothy Hatcher.

        Sometimes we see different nondeterminism during capture and replay
        executions, so we should support determinism checks during replay too.

        Move the withinEventLoopInputExtent flag to the base class.

        No new tests, no behavior changed.

        * replay/CapturingInputCursor.cpp:
        (WebCore::CapturingInputCursor::CapturingInputCursor):
        (WebCore::CapturingInputCursor::setWithinEventLoopInputExtent): Deleted.
        * replay/CapturingInputCursor.h:
        * replay/EventLoopInput.cpp:
        (WebCore::EventLoopInputExtent::EventLoopInputExtent):
        (WebCore::EventLoopInputExtent::~EventLoopInputExtent):
        Make m_cursor a pointer and add a new constructor so we can conditionally
        enter event loop input extents. This is useful in some network replay situations.

        * replay/EventLoopInput.h:
        * replay/ReplayController.cpp:
        (WebCore::ReplayController::willDispatchEvent): Expand the assertion to include replaying.

2014-09-25  Jeremy Jones  <jeremyj@apple.com>

        Race in ref pointer for WebVideoFullscreenInterfaceAVKit.
        https://bugs.webkit.org/show_bug.cgi?id=137123

        Reviewed by Eric Carlson.

        Add WebThreadRun to prevent race with RefPtr of WebVideoFullscreenInterfaceAVKit.

        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        (-[WebVideoFullscreenController didSetupFullscreen]): add WebThreadRun
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::setDuration): ditto
        (WebVideoFullscreenInterfaceAVKit::setCurrentTime): ditto
        (WebVideoFullscreenInterfaceAVKit::setRate): ditto
        (WebVideoFullscreenInterfaceAVKit::setVideoDimensions): ditto
        (WebVideoFullscreenInterfaceAVKit::setSeekableRanges): ditto
        (WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): ditto
        (WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): ditto
        (WebVideoFullscreenInterfaceAVKit::setExternalPlayback): ditto
        (WebVideoFullscreenInterfaceAVKit::setupFullscreen): ditto
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen): ditto
        (WebVideoFullscreenInterfaceAVKit::exitFullscreen): ditto
        (WebVideoFullscreenInterfaceAVKit::cleanupFullscreen): ditto
        (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): ditto

2014-09-25  Chris Dumez  <cdumez@apple.com>

        Unreviewed iOS build fix after r173944.

        Add a missing header include.
        See <rdar://problem/18454708> for more details.

        * html/parser/HTMLTreeBuilder.cpp:

2014-09-25  Christophe Dumez  <cdumez@apple.com>

        Stop using legacy NODE_TYPE_CASTS() macro in svg/
        https://bugs.webkit.org/show_bug.cgi?id=137106

        Reviewed by Ryosuke Niwa.

        Stop using legacy NODE_TYPE_CASTS() in svg/ and use the new
        SPECIALIZE_TYPE_TRAITS_*() macro instead so that is<>() / downcast<>()
        can be used for those types.

        No new tests, no behavior change.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * dom/Element.h:
        * dom/Node.h:
        (WebCore::is):
        * dom/make_names.pl:
        (printTypeHelpers):
        * html/HTMLElement.h:
        * html/HTMLMediaElement.h:
        * html/HTMLPlugInImageElement.h:
        * html/LabelableElement.h:
        * mathml/MathMLElement.h:
        Rename NodeTypeCastTraits::is() to NodeTypeCastTraits::isType() to
        avoid naming conflict with the global is<>() function. This was an
        issue when is<>() was called from one of the template specializations.

        * rendering/svg/RenderSVGBlock.h:
        (WebCore::RenderSVGBlock::graphicsElement):
        * rendering/svg/RenderSVGGradientStop.cpp:
        (WebCore::RenderSVGGradientStop::gradientElement):
        * rendering/svg/RenderSVGInline.h:
        (WebCore::RenderSVGInline::graphicsElement):
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::pathOnlyClipping):
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
        * rendering/svg/RenderSVGShape.h:
        (WebCore::RenderSVGShape::graphicsElement):
        * rendering/svg/RenderSVGTransformableContainer.h:
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending):
        * rendering/svg/SVGRenderTreeAsText.cpp:
        (WebCore::operator<<):
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
        * rendering/svg/SVGResources.cpp:
        (WebCore::targetReferenceFromResource):
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::defaultEventHandler):
        * svg/SVGAnimateElement.cpp:
        (WebCore::SVGAnimateElement::calculateAnimatedValue):
        (WebCore::isSVGAnimateElement): Deleted.
        Use is<>() / downcast<>() where appropriate.

        * svg/SVGAnimateElement.h:
        (WebCore::isSVGAnimateElement):
        Use SPECIALIZE_TYPE_TRAITS_*() instead of NODE_TYPE_CASTS() and add
        overload for isSVGAnimateElement() taking an SVGElement in argument to
        bypass the is<SVGElement>() check when the input type is an SVGElement.

        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::getBoundingBox):
        Use is<>() / downcast<>() where appropriate.

        * svg/SVGElement.h:
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        Use SPECIALIZE_TYPE_TRAITS_*() instead of NODE_TYPE_CASTS() and drop
        the pre-existing NodeTypeCastTraits template specialization as it is
        now generated by the macro.

        * svg/SVGGradientElement.cpp:
        (WebCore::isSVGGradientElement): Deleted.
        * svg/SVGGradientElement.h:
        (WebCore::isSVGGradientElement):
        Use SPECIALIZE_TYPE_TRAITS_*() instead of NODE_TYPE_CASTS() and add
        overload for isSVGAnimateElement() taking an SVGElement in argument to
        bypass the is<SVGElement>() check when the input type is an SVGElement.

        * svg/SVGGraphicsElement.h:
        (WebCore::isSVGGraphicsElement):
        Use SPECIALIZE_TYPE_TRAITS_*() instead of NODE_TYPE_CASTS().

        * svg/SVGLinearGradientElement.cpp:
        (WebCore::SVGLinearGradientElement::collectGradientAttributes):
        * svg/SVGLocatable.cpp:
        (WebCore::SVGLocatable::getTransformToElement):
        * svg/SVGPolyElement.cpp:
        (WebCore::SVGPolyElement::synchronizePoints):
        (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
        (WebCore::isSVGPolyElement): Deleted.
        Use is<>() / downcast<>() where appropriate.

        * svg/SVGPolyElement.h:
        (WebCore::isSVGPolyElement):
        Use SPECIALIZE_TYPE_TRAITS_*() instead of NODE_TYPE_CASTS() and add
        overload for isPolyElement() taking an SVGElement in argument to
        bypass the is<SVGElement>() check when the input type is an SVGElement.

        * svg/SVGRadialGradientElement.cpp:
        (WebCore::SVGRadialGradientElement::collectGradientAttributes):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::synchronizeTextLength):
        (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
        (WebCore::SVGTextContentElement::elementFromRenderer):
        Use is<>() / downcast<>() where appropriate.

        * svg/SVGTextContentElement.h:
        WebCore::isSVGTextContentElement):
        Use SPECIALIZE_TYPE_TRAITS_*() instead of NODE_TYPE_CASTS().

        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::toClipPath):
        Use is<>() / downcast<>() where appropriate. Also use tighter typing
        for value returned by shadowTreeElement().

        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::buildPendingResource):
        (WebCore::SVGSMILElement::connectConditions):
        (WebCore::SVGSMILElement::disconnectConditions):
        Use is<>() / downcast<>() where appropriate.

        * svg/animation/SVGSMILElement.h:
        (WebCore::isSVGSMILElement):
        Use SPECIALIZE_TYPE_TRAITS_*() instead of NODE_TYPE_CASTS() and drop
        the pre-existing NodeTypeCastTraits template specialization as it is
        now generated by the macro.

2014-09-25  Brent Fulgham  <bfulgham@apple.com>

        Minor refactoring to mediaType/presentationType
        https://bugs.webkit.org/show_bug.cgi?id=137085

        Reviewed by Eric Carlson.

        Add overloads for presentationType for the audio and video
        HTML elements so that we don't have to explicity check the
        tag name (via string comparison) to identify the type of
        element.

        No new tests. Should create no change in behavior.

        * html/HTMLAudioElement.h: Overload presentationType to always
        indicate audio type.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaType): Use the presentationType
        method implementation, rather than duplicating that code.
        * html/HTMLVideoElement.h: Overload presentationType to always
        return video type.

2014-09-25  Javier Fernandez  <jfernandez@igalia.com>

        ASSERTION FAILED: columnCount in WebCore::CSSParser::parseGridTemplateAreasRow
        https://bugs.webkit.org/show_bug.cgi?id=136945

        Reviewed by Sergio Villar Senin.

        Checking out whether the grid-template-areas value contains a white-space only
        string, which is not valid as it does not produce a cell token.

        Test: fast/css-grid-layout/grid-template-areas-empty-string-crash.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTemplateAreasRow):

2014-09-25  Csaba Osztrogonác  <ossy@webkit.org>

        Remove WinCE port from trunk
        https://bugs.webkit.org/show_bug.cgi?id=136951

        Reviewed by Alex Christensen.

        * Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp:
        * PlatformWinCE.cmake: Removed.
        * accessibility/AXObjectCache.cpp:
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::modifyMovingRight):
        * loader/icon/wince/IconDatabaseWinCE.cpp: Removed.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::sendContextMenuEventForKey):
        * page/Settings.cpp:
        * page/win/EventHandlerWin.cpp:
        (WebCore::EventHandler::createDraggingDataTransfer):
        * platform/ContextMenu.h:
        * platform/DragImage.cpp:
        * platform/FileSystem.h:
        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::mayFillWithSolidColor):
        * platform/graphics/FontGlyphs.cpp:
        (WebCore::FontGlyphs::glyphDataAndPageForCharacter):
        * platform/graphics/FontPlatformData.h:
        * platform/graphics/ImageBufferData.h:
        * platform/graphics/MediaPlayer.cpp:
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/opentype/OpenTypeUtilities.cpp:
        (WebCore::renameAndActivateFont):
        * platform/graphics/opentype/OpenTypeUtilities.h:
        * platform/graphics/win/DIBPixelData.cpp:
        (WebCore::DIBPixelData::setRGBABitmapAlpha):
        * platform/graphics/win/GDIExtras.cpp: Removed.
        * platform/graphics/win/GDIExtras.h:
        (WebCore::hasAlphaBlendSupport):
        (WebCore::alphaBlendIfSupported):
        * platform/graphics/win/IconWin.cpp:
        (WebCore::Icon::createIconForFiles):
        (WebCore::Icon::paint):
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::initGDIFont):
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::boundsForGDIGlyph):
        (WebCore::SimpleFontData::widthForGDIGlyph):
        (WebCore::SimpleFontData::scriptFontProperties):
        * platform/graphics/wince/FontCacheWinCE.cpp: Removed.
        * platform/graphics/wince/FontCustomPlatformData.cpp: Removed.
        * platform/graphics/wince/FontCustomPlatformData.h: Removed.
        * platform/graphics/wince/FontPlatformData.cpp: Removed.
        * platform/graphics/wince/FontPlatformData.h: Removed.
        * platform/graphics/wince/FontWinCE.cpp: Removed.
        * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp: Removed.
        * platform/graphics/wince/GradientWinCE.cpp: Removed.
        * platform/graphics/wince/GraphicsContextWinCE.cpp: Removed.
        * platform/graphics/wince/ImageBufferDataWince.h: Removed.
        * platform/graphics/wince/ImageBufferWinCE.cpp: Removed.
        * platform/graphics/wince/ImageWinCE.cpp: Removed.
        * platform/graphics/wince/MediaPlayerPrivateWinCE.h: Removed.
        * platform/graphics/wince/MediaPlayerProxy.cpp: Removed.
        * platform/graphics/wince/MediaPlayerProxy.h: Removed.
        * platform/graphics/wince/PathWinCE.cpp: Removed.
        * platform/graphics/wince/PlatformPathWinCE.cpp: Removed.
        * platform/graphics/wince/PlatformPathWinCE.h: Removed.
        * platform/graphics/wince/SharedBitmap.cpp: Removed.
        * platform/graphics/wince/SharedBitmap.h: Removed.
        * platform/graphics/wince/SimpleFontDataWinCE.cpp: Removed.
        * platform/graphics/wince/WinCEGraphicsExtras.h: Removed.
        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
        * platform/network/win/NetworkStateNotifierWin.cpp:
        (WebCore::NetworkStateNotifier::NetworkStateNotifier):
        * platform/win/COMPtr.h:
        * platform/win/ClipboardUtilitiesWin.cpp:
        * platform/win/ContextMenuItemWin.cpp:
        * platform/win/ContextMenuWin.cpp:
        (WebCore::ContextMenu::getContextMenuItems):
        (WebCore::ContextMenu::createPlatformContextMenuFromItems):
        * platform/win/DragImageWin.cpp:
        (WebCore::dragLabelFont):
        * platform/win/FileSystemWin.cpp:
        (WebCore::pathByAppendingComponent):
        (WebCore::pathGetFileName):
        (WebCore::storageDirectory):
        * platform/win/LoggingWin.cpp:
        (WebCore::logLevelString):
        * platform/win/PasteboardWin.cpp:
        (WebCore::PasteboardOwnerWndProc):
        (WebCore::Pasteboard::createForCopyAndPaste):
        (WebCore::pathRemoveBadFSCharacters):
        (WebCore::filesystemPathFromUrlOrTitle):
        (WebCore::createGlobalHDropContent):
        * platform/win/PlatformMouseEventWin.cpp:
        (WebCore::messageToEventType):
        (WebCore::PlatformMouseEvent::PlatformMouseEvent):
        * platform/win/PlatformScreenWin.cpp:
        (WebCore::deviceInfoForWidget):
        (WebCore::screenIsMonochrome):
        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenuWin::show):
        (WebCore::PopupMenuWin::paint):
        (WebCore::PopupMenuWin::registerClass):
        (WebCore::PopupMenuWin::wndProc):
        * platform/win/ScrollbarThemeWin.cpp:
        (WebCore::ScrollbarThemeWin::paintButton):
        * platform/win/SharedBufferWin.cpp:
        * platform/win/SharedTimerWin.cpp:
        (WebCore::TimerWindowWndProc):
        (WebCore::initializeOffScreenTimerWindow):
        (WebCore::queueTimerProc):
        (WebCore::setSharedTimerFireInterval):
        (WebCore::stopSharedTimer):
        * platform/win/SoftLinking.h:
        * platform/win/SystemInfo.cpp:
        (WebCore::windowsVersion):
        (WebCore::processorArchitecture):
        (WebCore::architectureTokenForUAString):
        * platform/win/WCDataObject.cpp:
        (WebCore::WCDataObject::CopyMedium):
        * plugins/PluginDatabase.cpp:
        * plugins/PluginView.cpp:
        (WebCore::PluginView::stop):
        * plugins/PluginViewNone.cpp:
        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::addWindowsMediaPlayerPluginDirectory):
        (WebCore::addMacromediaPluginDirectories):
        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackage::load):
        * plugins/win/PluginViewWin.cpp:
        (WebCore::setUpOffscreenPaintingHooks):
        (WebCore::registerPluginView):
        (WebCore::PluginView::wndProc):
        (WebCore::PluginView::updatePluginWidget):
        (WebCore::PluginView::paintIntoTransformedContext):
        (WebCore::PluginView::paint):
        (WebCore::PluginView::handleMouseEvent):
        (WebCore::PluginView::setParent):
        (WebCore::PluginView::setNPWindowRect):
        (WebCore::PluginView::platformStart):
        * rendering/RenderThemeWinCE.cpp: Removed.
        * rendering/RenderThemeWinCE.h: Removed.
        * storage/wince/DatabaseThreadWinCE.cpp: Removed.
        * storage/wince/DatabaseThreadWinCE.h: Removed.
        * storage/wince/StorageThreadWinCE.cpp: Removed.
        * storage/wince/StorageThreadWinCE.h: Removed.

2014-09-25  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build after r173944.

        * page/ContextMenuController.cpp: Add missing include.

2014-09-24  Christophe Dumez  <cdumez@apple.com>

        Use tighter typing for render objects in RenderGeometryMap
        https://bugs.webkit.org/show_bug.cgi?id=137102

        Reviewed by Ryosuke Niwa.

        Use tighter typing for render objects in RenderGeometryMap for clarity
        and efficiency.

        In particular, using RenderElement type instead of RenderObject
        in canMapBetweenRenderers() allows us to call the faster
        RenderElement::style() instead of RenderObject::style().

        No new tests, no behavior change.

        * rendering/RenderGeometryMap.cpp:
        (WebCore::canMapBetweenRenderers):
        (WebCore::RenderGeometryMap::pushMappingsToAncestor):

2014-09-24  Christophe Dumez  <cdumez@apple.com>

        Add initial is<>() / downcast<>() support for any type of Nodes
        https://bugs.webkit.org/show_bug.cgi?id=137056

        Reviewed by Benjamin Poulain.

        Add initial is<>() / downcast<>() support for any type of Nodes, not
        just Elements by:
        - Moving the is<>() / downcast<>() declarations from Element.h to
          Node.h
        - Introducing a SPECIALIZE_TYPE_TRAITS_*() macro that generates the
          needed template specializations for is<>() / downcast<>() to work.
          This macro will replace NODE_TYPE_CASTS() entirely once the code base
          is fully ported.

        This patch makes use of SPECIALIZE_TYPE_TRAITS_*() macro for
        HTMLFormControlElement, that is an HTMLElement for which the template
        specializations cannot be automatically generated because it requires
        special handling.

        This patch also makes use of SPECIALIZE_TYPE_TRAITS_*() macro for
        DocumentFragment to show that it can be used for non-Element Nodes.

        No new tests, no behavior change.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::isReadOnly):
        (WebCore::AccessibilityNodeObject::isRequired):
        (WebCore::AccessibilityNodeObject::isControl):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isAutofilled):
        (WebCore::isDisabled):
        (WebCore::isEnabled):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):
        (WebCore::StyleResolver::adjustRenderStyle):
        * dom/Document.cpp:
        (WebCore::Document::importNode):
        (WebCore::Document::setFocusedElement):
        * dom/DocumentFragment.h:
        (WebCore::isDocumentFragment):
        * dom/Element.cpp:
        (WebCore::Element::focus):
        * dom/Element.h:
        (WebCore::is): Deleted.
        (WebCore::downcast): Deleted.
        * dom/Node.h:
        (WebCore::is):
        (WebCore::downcast):
        * dom/make_names.pl:
        (printTypeHelpers):
        * editing/FrameSelection.cpp:
        (WebCore::scanForForm):
        * editing/TextIterator.cpp:
        (WebCore::isRendererReplacedElement):
        * html/FormAssociatedElement.h:
        * html/HTMLElement.h:
        * html/HTMLFieldSetElement.cpp:
        (WebCore::updateFromControlElementsAncestorDisabledStateUnder):
        (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::enclosingFormControlElement):
        * html/HTMLFormControlElement.h:
        (WebCore::isHTMLFormControlElement):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::submitImplicitly):
        (WebCore::submitElementFromEvent):
        (WebCore::HTMLFormElement::validateInteractively):
        (WebCore::HTMLFormElement::submit):
        (WebCore::HTMLFormElement::reset):
        (WebCore::HTMLFormElement::formElementIndex):
        (WebCore::HTMLFormElement::defaultButton):
        (WebCore::HTMLFormElement::checkInvalidControlsAndCollectUnhandled):
        (WebCore::HTMLFormElement::documentDidResumeFromPageCache):
        * html/HTMLMediaElement.h:
        * html/HTMLPlugInImageElement.h:
        * html/HTMLSummaryElement.cpp:
        (WebCore::isClickableControl):
        * html/LabelableElement.h:
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
        (WebCore::RadioNodeList::elementMatches):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::findFosterSite):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::disallowTelephoneNumberParsing):
        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::create):
        * mathml/MathMLElement.h:
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::populate):
        * page/Frame.cpp:
        (WebCore::Frame::searchForLabelsBeforeElement):
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::formControlElement):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::resize):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::isReadOnlyControl):
        * svg/SVGElement.h:
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        * svg/animation/SVGSMILElement.h:

2014-09-24  Darin Adler  <darin@apple.com>

        Old Turkic characters behave as left-to-right instead of right-to-left, because they are encoded as surrogate pairs.
        https://bugs.webkit.org/show_bug.cgi?id=70029

        Reviewed by Dan Bernstein.

        Test: fast/text/international/old-turkic-direction.html

        * CMakeLists.txt: Added InlineIterator.cpp.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * rendering/RenderingAllInOne.cpp: Ditto.

        * rendering/InlineIterator.cpp: Added.
        (WebCore::InlineIterator::surrogateTextDirection): New function used to compute the direction
        when a surrogate pair is involved.
        * rendering/InlineIterator.h: Made the characterAt function private.
        (WebCore::InlineIterator::previousInSameNode): Took out unneeded range check. A zero will underflow
        and become a large number and the characterAt function will return 0 in that case.
        (WebCore::InlineIterator::direction): Added code to check U16_IS_SINGLE before calling
        u_charDirection, and call surrogateTextDirection instead.

2014-09-24  Christophe Dumez  <cdumez@apple.com>

        Unreviewed build fix after r173941.

        Rename shadow to m_shadow.

        * rendering/TextPainter.h:
        (WebCore::ShadowApplier::shadowIsCompletelyCoveredByText):

2014-09-22  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION: Text with a zero offset, zero blur shadow vanishes
        https://bugs.webkit.org/show_bug.cgi?id=136801

        Reviewed by Darin Adler.

        This patch performs some cleanup regarding TextPainter's shadow logic and handles an
        additional case of empty shadows. Previously, there was tight coupling between
        applyShadowToGraphicalContext() and paintTextWithShadows(), as they both used a
        collection of variables to determine how shadows are to be drawn. This complexity has
        been moved into a helper class, ShadowApplier, which performs what
        applyShadowToGraphicsContext() used to do, and cleans up correctly in its destructor.
        This removes the tight coupling mentioned earlier.

        Test: fast/text/empty-shadow.html

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::applyShadowToGraphicsContext): Moved to ShadowApplier.
        * rendering/InlineTextBox.h: Deleted applyShadowToGraphicsContext signature.
        * rendering/TextPainter.cpp:
        (WebCore::ShadowApplier::ShadowApplier): Perform the contents of applyShadowToGraphicsContext()
        (WebCore::ShadowApplier::~ShadowApplier): Undo the work done previously
        (WebCore::paintTextWithShadows): Create a ShadowApplier to do the relevant shadow work. In addition,
        refactor some boolean flags to more meaningful ones with relation to the computation at hand.
        (WebCore::isEmptyShadow): Moved to TextPainter.h, named shadowIsCompletelyCoveredByText()
        * rendering/TextPainter.h:
        (WebCore::ShadowApplier::ShadowApplier): Moved from InlineTextBox::applyShadowToGraphicsContext().
        (WebCore::ShadowApplier::extraOffset): Getter.
        (WebCore::ShadowApplier::~ShadowApplier): Moved from TextPainter::paintTextWithShadows().
        (WebCore::isLastShadowIteration): Helper function.
        (WebCore::shadowIsCompletelyCoveredByText): Determines whether or not we should not draw the shadow.
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::paintTextWithShadows): Update to use ShadowApplier.

2014-09-24  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: subtract elapsed time while debugger is paused from profile nodes
        https://bugs.webkit.org/show_bug.cgi?id=136796

        Reviewed by Timothy Hatcher.

        * inspector/TimelineRecordFactory.cpp:
        (WebCore::buildInspectorObject):

2014-09-24  Christophe Dumez  <cdumez@apple.com>

        Use is<HTML*Element>() instead of isHTML*Element() - Part 1
        https://bugs.webkit.org/show_bug.cgi?id=137068

        Reviewed by Ryosuke Niwa.

        Start using is<HTML*Element>() instead of isHTML*Element().
        Remaining usages will be updated in a follow-up patch to
        reduce the size of the change.

        No new tests, no behavior change.

        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::isSelected):
        (WebCore::AccessibilityListBoxOption::canSetSelectedAttribute):
        (WebCore::AccessibilityListBoxOption::stringValue):
        (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaTimeline::valueDescription):
        * accessibility/AccessibilityMenuListOption.cpp:
        (WebCore::AccessibilityMenuListOption::setElement):
        * accessibility/AccessibilityMenuListPopup.cpp:
        (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
        (WebCore::AccessibilityNodeObject::isNativeTextControl):
        (WebCore::AccessibilityNodeObject::isNativeImage):
        (WebCore::AccessibilityNodeObject::isInputImage):
        (WebCore::AccessibilityNodeObject::isReadOnly):
        (WebCore::AccessibilityNodeObject::valueForRange):
        (WebCore::AccessibilityNodeObject::maxValueForRange):
        (WebCore::AccessibilityNodeObject::minValueForRange):
        (WebCore::isNodeActionElement):
        (WebCore::AccessibilityNodeObject::titleElementText):
        (WebCore::AccessibilityNodeObject::visibleText):
        (WebCore::AccessibilityNodeObject::title):
        (WebCore::AccessibilityNodeObject::colorValue):
        (WebCore::accessibleNameForNode):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isFileUploadButton):
        (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
        (WebCore::AccessibilityRenderObject::setValue):
        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        (WebCore::AccessibilityRenderObject::addTextFieldChildren):
        * accessibility/atk/AXObjectCacheAtk.cpp:
        (WebCore::notifyChildrenSelectionChange):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isDisabled):
        (WebCore::isEnabled):
        (WebCore::isChecked):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::dispatchEvent):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::selectAll):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace):
        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::isInPasswordField):
        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_processElement):
        * editing/gtk/EditorGtk.cpp:
        (WebCore::elementURL):
        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::appendText):
        (WebCore::isPlainTextMarkup):
        (WebCore::collectElementsToRemoveFromFragment):
        * html/HTMLCollection.cpp:
        (WebCore::isMatchingElement):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::rendererIsNeeded):
        * html/HTMLFormControlElement.cpp:
        (WebCore::shouldAutofocus):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::getTextFieldValues):
        (WebCore::HTMLFormElement::formElementIndex):
        * html/HTMLImageLoader.cpp:
        (WebCore::HTMLImageLoader::dispatchLoadEvent):
        (WebCore::HTMLImageLoader::notifyFinished):
        * html/HTMLNameCollection.cpp:
        (WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):
        (WebCore::DocumentNameCollection::elementMatchesIfNameAttributeMatch):
        (WebCore::DocumentNameCollection::elementMatches):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::recalcSelectOptions):
        (WebCore::HTMLOptGroupElement::ownerSelectElement):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::index):
        (WebCore::HTMLOptionElement::ownerSelectElement):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::add):
        (WebCore::HTMLSelectElement::value):
        (WebCore::HTMLSelectElement::setValue):
        (WebCore::HTMLSelectElement::childShouldCreateRenderer):
        (WebCore::HTMLSelectElement::setLength):
        (WebCore::HTMLSelectElement::nextValidIndex):
        (WebCore::HTMLSelectElement::saveLastSelection):
        (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
        (WebCore::HTMLSelectElement::updateListBoxSelection):
        (WebCore::HTMLSelectElement::listBoxOnChange):
        (WebCore::HTMLSelectElement::recalcListItems):
        (WebCore::HTMLSelectElement::selectedIndex):
        (WebCore::HTMLSelectElement::selectOption):
        (WebCore::HTMLSelectElement::optionToListIndex):
        (WebCore::HTMLSelectElement::listToOptionIndex):
        (WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
        (WebCore::HTMLSelectElement::saveFormControlState):
        (WebCore::HTMLSelectElement::searchOptionsForValue):
        (WebCore::HTMLSelectElement::restoreFormControlState):
        (WebCore::HTMLSelectElement::appendFormData):
        (WebCore::HTMLSelectElement::reset):
        (WebCore::HTMLSelectElement::updateSelectedState):
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
        (WebCore::HTMLSelectElement::lastSelectedListIndex):
        (WebCore::HTMLSelectElement::optionAtIndex):
        (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
        (WebCore::HTMLSelectElement::length):
        * html/HTMLTagNames.in:
        * html/RadioInputType.cpp:
        (WebCore::RadioInputType::handleKeydownEvent):
        (WebCore::RadioInputType::isKeyboardFocusable):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::hasImpliedEndTag):
        * html/parser/HTMLElementStack.cpp:
        (WebCore::HTMLNames::isSelectScopeMarker):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):
        (WebCore::HTMLTreeBuilder::processStartTag):
        (WebCore::HTMLTreeBuilder::processEndTag):
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::mediaControlElementType):
        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::create):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::handleFallbackContent):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::requestObject):
        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::create):
        * page/Chrome.cpp:
        (WebCore::Chrome::setToolTip):
        * page/EventHandler.cpp:
        (WebCore::isSubmitImage):
        (WebCore::EventHandler::handleMousePressEvent):
        * page/FocusController.cpp:
        (WebCore::clearSelectionIfNeeded):
        * page/FrameView.cpp:
        (WebCore::FrameView::addEmbeddedObjectToUpdate):
        (WebCore::FrameView::updateEmbeddedObject):
        * page/PageSerializer.cpp:
        (WebCore::frameOwnerURLAttributeName):
        * page/SpatialNavigation.cpp:
        (WebCore::canScrollInDirection):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::altDisplayString):
        (WebCore::HitTestResult::absoluteImageURL):
        (WebCore::HitTestResult::absolutePDFURL):
        (WebCore::HitTestResult::isContentEditable):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::resizeTextPermitted):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::sizesLogicalWidthToFitContent):
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::updateFromElement):
        (WebCore::RenderButton::canHaveGeneratedChildren):
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::isOpen):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::uploadButton):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::updateAltText):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::updateFromElement):
        (WebCore::RenderListBox::addFocusRingRects):
        (WebCore::RenderListBox::paintItemForeground):
        (WebCore::RenderListBox::paintItemBackground):
        * rendering/RenderMenuList.cpp:
        (WebCore::selectedOptionCount):
        (RenderMenuList::updateOptionsWidth):
        (RenderMenuList::setTextFromOption):
        (RenderMenuList::itemText):
        (RenderMenuList::itemIsEnabled):
        (RenderMenuList::itemIsSelected):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paintSliderTicks):
        * testing/Internals.cpp:
        (WebCore::Internals::selectColorInColorChooser):
        (WebCore::Internals::wasLastChangeUserEdit):
        (WebCore::Internals::isSelectPopupVisible):
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::startElementNs):

2014-09-24  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Remove MediaPlayer::setHasPlaybackTargetAvailabilityListeners
        https://bugs.webkit.org/show_bug.cgi?id=137075

        Reviewed by Dean Jackson.

        No new tests, this just removes unused code.

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::setHasPlaybackTargetAvailabilityListeners): Deleted.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::setHasPlaybackTargetAvailabilityListeners): Deleted.

2014-09-21  Timothy Hatcher  <timothy@apple.com>

        Make the Web Inspector use a separate web process.

        https://bugs.webkit.org/show_bug.cgi?id=135120

        Reviewed by Anders Carlsson.

        * English.lproj/Localizable.strings: Updated.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/ScriptGlobalObject.h:
        * bindings/js/ScriptState.h:
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorPageAgent.h:
        * page/Chrome.h:
        Exported a few functions and private headers.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::setInspectorFrontendClient):
        (WebCore::InspectorController::hasInspectorFrontendClient):
        (WebCore::InspectorController::show):
        * inspector/InspectorController.h:
        Make InspectorFrontendClient a pointer instead of a std::unique_ptr.
        This makes it easier to implement InspectorFrontendClient as
        part of an existing object that is externally owned.

        * testing/Internals.cpp:
        (WebCore::Internals::openDummyInspectorFrontend):
        (WebCore::Internals::closeDummyInspectorFrontend):
        * testing/Internals.h:
        Change InspectorFrontendClientDummy from being moved to owned.

2014-09-23  Dean Jackson  <dino@apple.com>

        [Yosemite] Button text doesn't go white while pushing the button, like it does for real buttons
        https://bugs.webkit.org/show_bug.cgi?id=137054
        rdar://problem/17559038

        Reviewed by Sam Weinig.

        On Yosemite and above, system buttons paint with white-ish text when they
        are pressed. Since this isn't exposed by API, I've hardcoded the value
        into RenderThemeMac.

        The actual state is exposed by adding a :active rule to html.css that
        uses a new CSSValueKeyword: ActiveButtonText.

        Unfortunately I can't find a way to test this, because the active state isn't
        testable. We should really expose the Inspector's forcePseudoState function into
        window.internals.

        * css/CSSValueKeywords.in: Add "activebuttontext".
        * css/html.css:
        (input[type="button"]:active, input[type="submit"]:active, input[type="reset"]:active, input[type="file"]::-webkit-file-upload-button:active, button:active): New rule for active
        button elements.
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::systemColor): Handle CSSValueActivebuttontext as black.
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::systemColor): Handle CSSValueActivebuttontext as
        white with 75% opacity.

2014-09-24  Christophe Dumez  <cdumez@apple.com>

        Use is<SVG*Element>() instead of isSVG*Element()
        https://bugs.webkit.org/show_bug.cgi?id=137058

        Reviewed by Dirk Schulze.

        Use is<SVG*Element>() instead of isSVG*Element() and drop support for
        generated isSVG*Element().

        No new tests, no behavior change.

        * css/CSSCursorImageValue.cpp:
        (WebCore::resourceReferencedByCursorElement):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::useSVGZoomRulesForLength):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
        * dom/ScriptElement.cpp:
        (WebCore::toScriptElementIfPossible):
        * dom/make_names.pl:
        (printTypeHelpers):
        * editing/gtk/EditorGtk.cpp:
        (WebCore::elementURL):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::absoluteImageURL):
        (WebCore::HitTestResult::isLiveLink):
        * rendering/svg/RenderSVGEllipse.cpp:
        (WebCore::RenderSVGEllipse::calculateRadiiAndCenter):
        * rendering/svg/RenderSVGTransformableContainer.cpp:
        (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
        * rendering/svg/SVGPathData.cpp:
        (WebCore::updatePathFromCircleElement):
        * rendering/svg/SVGRenderTreeAsText.cpp:
        (WebCore::operator<<):
        * rendering/svg/SVGResources.cpp:
        (WebCore::targetReferenceFromResource):
        * svg/SVGAltGlyphDefElement.cpp:
        (WebCore::SVGAltGlyphDefElement::hasValidGlyphElements):
        * svg/SVGAltGlyphElement.cpp:
        (WebCore::SVGAltGlyphElement::hasValidGlyphElements):
        * svg/SVGAnimateMotionElement.cpp:
        (WebCore::SVGAnimateMotionElement::hasValidAttributeType):
        * svg/SVGDocument.cpp:
        (WebCore::SVGDocument::rootElement):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::isOutermostSVGSVGElement):
        (WebCore::SVGElement::ownerSVGElement):
        (WebCore::SVGElement::viewportElement):
        * svg/SVGFEComponentTransferElement.cpp:
        (WebCore::SVGFEComponentTransferElement::build):
        * svg/SVGFELightElement.cpp:
        (WebCore::SVGFELightElement::findLightElement):
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        * svg/SVGFontElement.cpp:
        (WebCore::SVGFontElement::ensureGlyphCache):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::associatedFontElement):
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        * svg/SVGFontFaceSrcElement.cpp:
        (WebCore::SVGFontFaceSrcElement::srcValue):
        (WebCore::SVGFontFaceSrcElement::childrenChanged):
        * svg/SVGGlyphElement.cpp:
        (WebCore::SVGGlyphElement::invalidateGlyphCache):
        * svg/SVGHKernElement.cpp:
        (WebCore::SVGHKernElement::insertedInto):
        (WebCore::SVGHKernElement::removedFrom):
        * svg/SVGLengthContext.cpp:
        (WebCore::SVGLengthContext::determineViewport):
        * svg/SVGLocatable.cpp:
        (WebCore::isViewportElement):
        * svg/SVGMPathElement.cpp:
        (WebCore::SVGMPathElement::pathElement):
        (WebCore::SVGMPathElement::notifyParentOfPathChange):
        * svg/SVGPathElement.cpp:
        (WebCore::SVGPathElement::invalidateMPathDependencies):
        * svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::collectPatternAttributes):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::setupInitialView):
        * svg/SVGUseElement.cpp:
        (WebCore::dumpInstanceTree):
        (WebCore::SVGUseElement::expandUseElementsInShadowTree):
        * svg/SVGVKernElement.cpp:
        (WebCore::SVGVKernElement::insertedInto):
        (WebCore::SVGVKernElement::removedFrom):

2014-09-24  Benjamin Poulain  <bpoulain@apple.com>

        Remove the style marking from :nth-child()
        https://bugs.webkit.org/show_bug.cgi?id=137055

        Reviewed by Andreas Kling.

        Previously, :nth-child() had to mark the RenderStyle as unique in order
        to prevent it from being used for style sharing.

        After r173229, :nth-child() use the more generic element marking
        "StyleIsAffectedByPreviousSibling".

        In StyleResolver::canShareStyleWithElement(), StyleIsAffectedByPreviousSibling
        is already used to prevent style sharing of those elements, making the "Unique"
        flag redundant.

        Since it is now useless, remove the style marking from SelectorChecker and the CSS JIT.

        Tests: fast/css/nth-child-style-sharing-even.html
               fast/css/nth-child-style-sharing-fixed-integer.html
               fast/css/nth-child-style-sharing-odd.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        (WebCore::SelectorCompiler::setElementChildIndexAndUpdateStyle): Deleted.
        * rendering/style/RenderStyle.h:

2014-09-23  Chris Dumez  <cdumez@apple.com>

        Add support for is<HTML*Element>() for type checking
        https://bugs.webkit.org/show_bug.cgi?id=137015

        Reviewed by Benjamin Poulain.

        Add support for is<HTML*Element>() for type checking while keeping
        support for the legacy toHTML*Element() form until the code base is
        ported.

        toHTML*Element() helpers are now macros to the new is<HTML*Element>()
        type checking helpers.

        No new tests, no behavior change.

        * dom/Document.cpp:
        (WebCore::Document::setTitle):
        * dom/Element.cpp:
        (WebCore::Element::childShouldCreateRenderer):
        * dom/Element.h:
        (WebCore::is):
        (WebCore::downcast):
        (WebCore::isElementOfType): Deleted.
        * dom/ElementAncestorIterator.h:
        (WebCore::lineageOfType):
        * dom/ElementIterator.h:
        (WebCore::findElementAncestorOfType):
        * dom/ElementTraversal.h:
        (WebCore::Traversal<ElementType>::firstChildTemplate):
        (WebCore::Traversal<ElementType>::lastChildTemplate):
        (WebCore::Traversal<ElementType>::firstWithinTemplate):
        (WebCore::Traversal<ElementType>::lastWithinTemplate):
        (WebCore::Traversal<ElementType>::nextTemplate):
        (WebCore::Traversal<ElementType>::previous):
        (WebCore::Traversal<ElementType>::nextSibling):
        (WebCore::Traversal<ElementType>::previousSibling):
        (WebCore::Traversal<ElementType>::nextSkippingChildren):
        * dom/TypedElementDescendantIterator.h:
        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::from):
        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::from):
        * dom/make_names.pl:
        (printTypeHelpers):

2014-09-23  Benjamin Poulain  <bpoulain@apple.com>

        The style resolution cache applies properties incorrectly whenever direction != ltr
        https://bugs.webkit.org/show_bug.cgi?id=137052

        Reviewed by Andreas Kling.

        The optimization r135021 introduced a bug whenever the direction of subtree is not
        uniform in the whole page.

        When StyleResolver::applyMatchedProperties() resolves the style, some properties are
        resolved differently based on the writing-mode and the direction.

        In isCacheableInMatchedPropertiesCache(), the cases for writing-mode are already handled
        by not caching any style with anything else than the default.
        The direction was ignored, causing the bugs solved here.

        Tests: css3/flexbox/flex-flow-2.html
               fast/css/style-resolver-cache-direction-1.html
               fast/css/style-resolver-cache-direction-2.html
               fast/css/style-resolver-cache-direction-3.html

        * css/StyleResolver.cpp:
        (WebCore::isCacheableInMatchedPropertiesCache):

2014-09-23  Chris Dumez  <cdumez@apple.com>

        Have CSS classes' methods return more references
        https://bugs.webkit.org/show_bug.cgi?id=137036

        Reviewed by Ryosuke Niwa.

        Have CSS classes' methods return more references instead of pointers
        when possible.

        No new tests, no behavior change.

        * css/CSSFontFaceRule.cpp:
        (WebCore::CSSFontFaceRule::style):
        * css/CSSFontFaceRule.h:
        * css/CSSGroupingRule.cpp:
        (WebCore::CSSGroupingRule::cssRules):
        * css/CSSGroupingRule.h:
        * css/CSSImportRule.cpp:
        (WebCore::CSSImportRule::media):
        * css/CSSImportRule.h:
        * css/CSSPageRule.cpp:
        (WebCore::CSSPageRule::style):
        * css/CSSPageRule.h:
        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::style):
        * css/CSSStyleRule.h:
        * css/WebKitCSSKeyframeRule.cpp:
        (WebCore::WebKitCSSKeyframeRule::style):
        * css/WebKitCSSKeyframeRule.h:
        * css/WebKitCSSKeyframesRule.cpp:
        (WebCore::WebKitCSSKeyframesRule::cssRules):
        * css/WebKitCSSKeyframesRule.h:
        * css/WebKitCSSViewportRule.cpp:
        (WebCore::WebKitCSSViewportRule::style):
        * css/WebKitCSSViewportRule.h:
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::asCSSRuleList):
        (WebCore::fillMediaListChain):
        (WebCore::InspectorStyleSheet::setRuleSelector):
        (WebCore::InspectorStyleSheet::deleteRule):
        (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
        (WebCore::InspectorStyleSheet::buildObjectForRule):
        (WebCore::InspectorStyleSheet::styleForId):
        (WebCore::InspectorStyleSheet::ruleIndexByStyle):
        (WebCore::InspectorStyleSheet::ruleId):
        (WebCore::InspectorStyleSheet::revalidateStyle):

2014-09-23  Roger Fong  <roger_fong@apple.com>

        [Windows] Enable CSS Supports Rule on Windows.

        * css/CSSAllInOne.cpp:

2014-09-23  Christophe Dumez  <cdumez@apple.com>

        Unreviewed build fix after r173893.

        Partial revert of r173893 to fix debug builds.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::text):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::namedItemGetter):
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::makeContextStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::makeElementStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::isPlaceholderShown):
        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv):
        * dom/Element.cpp:
        (WebCore::Element::insertedInto):
        (WebCore::Element::removedFrom):
        (WebCore::Element::updateName):
        (WebCore::Element::updateId):
        * editing/Editor.cpp:
        (WebCore::Editor::selectionForCommand):
        (WebCore::findFirstMarkable):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::selectAll):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::matchesReadWritePseudoClass):
        (WebCore::HTMLElement::directionality):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseAttribute):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::addPlugInsFromNodeListMatchingPlugInOrigin):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::enclosingTextFormControl):
        * page/FrameView.cpp:
        (WebCore::FrameView::addEmbeddedObjectToUpdate):
        (WebCore::FrameView::updateEmbeddedObject):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::absolutePDFURL):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::paintContents):
        (WebCore::RenderEmbeddedObject::layout):
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::plugInImageElement):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::textFormControlElement):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
        (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
        * testing/Internals.cpp:
        (WebCore::Internals::visiblePlaceholder):

2014-09-22  Wenson Hsieh  <wenson_hsieh@apple.com>

        Implement snapping behavior for Mac overflow scrolling
        https://bugs.webkit.org/show_bug.cgi?id=135774

        Reviewed by Beth Dakin.

        Hooks into AxisScrollSnapAnimator to implement overflow scroll snapping on Mac.

        We need to find a way to test this!

        * dom/Element.cpp:
        (WebCore::Element::dispatchWheelEvent):
        * page/EventHandler.cpp:
        (WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis):
        * platform/ScrollAnimator.cpp:
        (WebCore::ScrollAnimator::handleWheelEvent):
        (WebCore::ScrollAnimator::updateScrollAnimatorsAndTimers):
        (WebCore::ScrollAnimator::scrollOffsetInAxis):
        (WebCore::ScrollAnimator::immediateScrollInAxis):
        (WebCore::ScrollAnimator::startScrollSnapTimer):
        (WebCore::ScrollAnimator::stopScrollSnapTimer):
        (WebCore::ScrollAnimator::horizontalScrollSnapTimerFired):
        (WebCore::ScrollAnimator::verticalScrollSnapTimerFired):
        * platform/ScrollAnimator.h:
        * platform/mac/AxisScrollSnapAnimator.h:
        * platform/mac/AxisScrollSnapAnimator.mm:
        (WebCore::AxisScrollSnapAnimator::AxisScrollSnapAnimator):
        (WebCore::AxisScrollSnapAnimator::beginScrollSnapAnimation):
        (WebCore::AxisScrollSnapAnimator::endScrollSnapAnimation):
        (WebCore::AxisScrollSnapAnimator::initializeGlideParameters):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollInfoAfterLayout):

2014-09-23  Chris Dumez  <cdumez@apple.com>

        Use downcast<HTML*Element>() instead of toHTML*Element()
        https://bugs.webkit.org/show_bug.cgi?id=137007

        Reviewed by Benjamin Poulain.

        Use downcast<HTML*Element>() instead of toHTML*Element() and drop
        transition macros for toHTML*Element().

        This patch also cleans up the surrounding code.

        No new tests, no behavior change.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::focusedUIElementForPage):
        (WebCore::AXObjectCache::labelChanged):
        * accessibility/AccessibilityListBox.cpp:
        (WebCore::AccessibilityListBox::canSetSelectedChildrenAttribute):
        (WebCore::AccessibilityListBox::addChildren):
        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::isSelected):
        (WebCore::AccessibilityListBoxOption::stringValue):
        (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaTimeline::valueDescription):
        * accessibility/AccessibilityMenuListOption.cpp:
        (WebCore::AccessibilityMenuListOption::isEnabled):
        (WebCore::AccessibilityMenuListOption::isSelected):
        (WebCore::AccessibilityMenuListOption::setSelected):
        (WebCore::AccessibilityMenuListOption::stringValue):
        * accessibility/AccessibilityMenuListPopup.cpp:
        (WebCore::AccessibilityMenuListPopup::addChildren):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::determineAccessibilityRole):
        (WebCore::AccessibilityNodeObject::isNativeTextControl):
        (WebCore::AccessibilityNodeObject::isNativeImage):
        (WebCore::AccessibilityNodeObject::isInputImage):
        (WebCore::AccessibilityNodeObject::isMultiSelectable):
        (WebCore::AccessibilityNodeObject::isReadOnly):
        (WebCore::AccessibilityNodeObject::valueForRange):
        (WebCore::AccessibilityNodeObject::maxValueForRange):
        (WebCore::AccessibilityNodeObject::minValueForRange):
        (WebCore::isNodeActionElement):
        (WebCore::AccessibilityNodeObject::alternativeText):
        (WebCore::AccessibilityNodeObject::visibleText):
        (WebCore::AccessibilityNodeObject::title):
        (WebCore::AccessibilityNodeObject::text):
        (WebCore::AccessibilityNodeObject::stringValue):
        (WebCore::AccessibilityNodeObject::colorValue):
        (WebCore::accessibleNameForNode):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isFileUploadButton):
        (WebCore::AccessibilityRenderObject::stringValue):
        (WebCore::AccessibilityRenderObject::labelElementContainer):
        (WebCore::AccessibilityRenderObject::internalLinkElement):
        (WebCore::AccessibilityRenderObject::addRadioButtonGroupMembers):
        (WebCore::AccessibilityRenderObject::url):
        (WebCore::AccessibilityRenderObject::setValue):
        (WebCore::AccessibilityRenderObject::getDocumentLinks):
        (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        (WebCore::AccessibilityRenderObject::addTextFieldChildren):
        (WebCore::AccessibilityRenderObject::stringValueForMSAA):
        (WebCore::AccessibilityRenderObject::isLinked):
        * accessibility/AccessibilitySlider.cpp:
        (WebCore::AccessibilitySlider::inputElement):
        (WebCore::AccessibilitySliderThumb::elementRect):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::tableElement):
        (WebCore::AccessibilityTable::title):
        * accessibility/atk/AXObjectCacheAtk.cpp:
        (WebCore::notifyChildrenSelectionChange):
        * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
        (optionFromSelection):
        (webkitAccessibleSelectionGetSelectionCount):
        * accessibility/atk/WebKitAccessibleInterfaceTable.cpp:
        (webkitAccessibleTableGetCaption):
        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetDescription):
        * accessibility/ios/AccessibilityObjectIOS.mm:
        (WebCore::AccessibilityObject::accessibilityPasswordFieldLength):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::namedItemGetter):
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::nameGetter):
        * bindings/js/JSHTMLFrameSetElementCustom.cpp:
        (WebCore::JSHTMLFrameSetElement::nameGetter):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::isReachableFromDOM):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isChecked):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        * css/StyleSheetList.cpp:
        (WebCore::StyleSheetList::getNamedItem):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::makeContextStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::makeElementStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::isPlaceholderShown):
        * dom/CurrentScriptIncrementer.h:
        (WebCore::CurrentScriptIncrementer::CurrentScriptIncrementer):
        * dom/DataTransfer.cpp:
        (WebCore::DataTransfer::setDragImage):
        * dom/Document.cpp:
        (WebCore::Document::setTitle):
        (WebCore::Document::processHttpEquiv):
        (WebCore::Document::iconURLs):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::keyMatchesMapName):
        (WebCore::keyMatchesLowercasedMapName):
        (WebCore::keyMatchesLowercasedUsemap):
        (WebCore::DocumentOrderedMap::getElementByMapName):
        (WebCore::DocumentOrderedMap::getElementByLowercasedMapName):
        (WebCore::DocumentOrderedMap::getElementByLowercasedUsemap):
        (WebCore::DocumentOrderedMap::getElementByLabelForAttribute):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
        * dom/Element.cpp:
        (WebCore::Element::insertedInto):
        (WebCore::Element::removedFrom):
        (WebCore::Element::updateName):
        (WebCore::Element::updateId):
        (WebCore::Element::updateLabel):
        (WebCore::Element::ensureCachedHTMLCollection):
        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::dispatchEvent):
        * dom/ScriptElement.cpp:
        (WebCore::toScriptElementIfPossible):
        * dom/VisitedLinkState.cpp:
        (WebCore::linkHashForElement):
        (WebCore::VisitedLinkState::determineLinkStateSlowCase):
        * dom/make_names.pl:
        (printTypeHelpers):
        * editing/Editor.cpp:
        (WebCore::Editor::selectionForCommand):
        (WebCore::imageElementFromImageDocument):
        (WebCore::findFirstMarkable):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::selectAll):
        (WebCore::scanForForm):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::serializeNodesWithNamespaces):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::shouldPerformSmartReplace):
        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::nonBoundaryShadowTreeRootNode):
        (WebCore::VisibleSelection::isInPasswordField):
        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_processElement):
        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::setTextAlignmentForChangedBaseWritingDirection):
        * editing/markup.cpp:
        (WebCore::isPlainTextMarkup):
        * html/ColorInputType.cpp:
        (WebCore::ColorInputType::suggestions):
        * html/FTPDirectoryDocument.cpp:
        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
        (WebCore::FTPDirectoryDocumentParser::createBasicDocument):
        * html/FormAssociatedElement.cpp:
        (WebCore::FormAssociatedElement::findAssociatedForm):
        * html/HTMLAnchorElement.cpp:
        (WebCore::appendServerMapMousePosition):
        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::imageElement):
        * html/HTMLCollection.cpp:
        (WebCore::isMatchingElement):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::matchesReadWritePseudoClass):
        (WebCore::HTMLElement::setInnerHTML):
        (WebCore::HTMLElement::directionality):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::rendererIsNeeded):
        * html/HTMLFieldSetElement.cpp:
        (WebCore::HTMLFieldSetElement::refreshElementsIfNeeded):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):
        (WebCore::shouldAutofocus):
        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::formControlElements):
        (WebCore::HTMLFormControlsCollection::formImageElements):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::getTextFieldValues):
        (WebCore::HTMLFormElement::assertItemCanBeInPastNamesMap):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseAttribute):
        * html/HTMLImageLoader.cpp:
        (WebCore::HTMLImageLoader::notifyFinished):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::dataList):
        (WebCore::HTMLInputElement::setupDateTimeChooserParameters):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::shadowSelect):
        * html/HTMLLegendElement.cpp:
        (WebCore::HTMLLegendElement::virtualForm):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLNameCollection.cpp:
        (WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):
        (WebCore::DocumentNameCollection::elementMatchesIfNameAttributeMatch):
        (WebCore::DocumentNameCollection::elementMatches):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateDocNamedItem):
        (WebCore::HTMLObjectElement::containsJavaApplet):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::recalcSelectOptions):
        (WebCore::HTMLOptGroupElement::ownerSelectElement):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::ownerDataListElement):
        (WebCore::HTMLOptionElement::ownerSelectElement):
        * html/HTMLOptionsCollection.cpp:
        (WebCore::HTMLOptionsCollection::add):
        * html/HTMLOptionsCollection.h:
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::addPlugInsFromNodeListMatchingPlugInOrigin):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::hasPlaceholderLabelOption):
        (WebCore::HTMLSelectElement::value):
        (WebCore::HTMLSelectElement::setValue):
        (WebCore::HTMLSelectElement::saveLastSelection):
        (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
        (WebCore::HTMLSelectElement::updateListBoxSelection):
        (WebCore::HTMLSelectElement::listBoxOnChange):
        (WebCore::HTMLSelectElement::recalcListItems):
        (WebCore::HTMLSelectElement::selectedIndex):
        (WebCore::HTMLSelectElement::selectOption):
        (WebCore::HTMLSelectElement::deselectItemsWithoutValidation):
        (WebCore::HTMLSelectElement::saveFormControlState):
        (WebCore::HTMLSelectElement::searchOptionsForValue):
        (WebCore::HTMLSelectElement::restoreFormControlState):
        (WebCore::HTMLSelectElement::appendFormData):
        (WebCore::HTMLSelectElement::reset):
        (WebCore::HTMLSelectElement::updateSelectedState):
        (WebCore::HTMLSelectElement::lastSelectedListIndex):
        (WebCore::HTMLSelectElement::optionAtIndex):
        (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
        * html/HTMLSummaryElement.cpp:
        (WebCore::HTMLSummaryElement::detailsElement):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::caption):
        * html/HTMLTablePartElement.cpp:
        (WebCore::HTMLTablePartElement::findParentTable):
        * html/HTMLTableRowElement.cpp:
        (WebCore::HTMLTableRowElement::rowIndex):
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::rowAfter):
        (WebCore::HTMLTableRowsCollection::lastRow):
        (WebCore::HTMLTableRowsCollection::customElementAfter):
        * html/HTMLTableRowsCollection.h:
        * html/HTMLTemplateElement.cpp:
        (WebCore::HTMLTemplateElement::cloneNode):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::enclosingTextFormControl):
        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::createDocumentStructure):
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::elementMatches):
        * html/MediaDocument.cpp:
        (WebCore::MediaDocumentParser::createDocumentStructure):
        (WebCore::descendentVideoElement):
        (WebCore::ancestorVideoElement):
        (WebCore::MediaDocument::replaceMediaElementTimerFired):
        * html/PluginDocument.cpp:
        (WebCore::PluginDocumentParser::createDocumentStructure):
        * html/RadioInputType.cpp:
        (WebCore::RadioInputType::handleKeydownEvent):
        (WebCore::RadioInputType::isKeyboardFocusable):
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::updateTickMarkValues):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::insert):
        (WebCore::HTMLConstructionSite::insertTextNode):
        (WebCore::HTMLConstructionSite::ownerDocumentForCurrentNode):
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::HTMLTreeBuilder):
        * html/shadow/DetailsMarkerControl.cpp:
        (WebCore::DetailsMarkerControl::rendererIsNeeded):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
        * html/shadow/MeterShadowElement.cpp:
        (WebCore::MeterShadowElement::meterElement):
        * html/shadow/ProgressShadowElement.cpp:
        (WebCore::ProgressShadowElement::progressElement):
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::SearchFieldResultsButtonElement::defaultEventHandler):
        (WebCore::SearchFieldCancelButtonElement::defaultEventHandler):
        (WebCore::SearchFieldCancelButtonElement::willRespondToMouseClickEvents):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::create):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::handleFallbackContent):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::requestObject):
        * page/Chrome.cpp:
        (WebCore::Chrome::setToolTip):
        * page/DragController.cpp:
        (WebCore::DragController::draggableElement):
        * page/EventHandler.cpp:
        (WebCore::isSubmitImage):
        * page/FocusController.cpp:
        (WebCore::FocusController::advanceFocusDirectionally):
        * page/FrameView.cpp:
        (WebCore::FrameView::addEmbeddedObjectToUpdate):
        (WebCore::FrameView::updateEmbeddedObject):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeFrame):
        * page/SpatialNavigation.cpp:
        (WebCore::FocusCandidate::FocusCandidate):
        * page/ios/FrameIOS.mm:
        (WebCore::ancestorRespondingToClickEvents):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::altDisplayString):
        (WebCore::HitTestResult::absolutePDFURL):
        (WebCore::HitTestResult::enterFullscreenForVideo):
        (WebCore::HitTestResult::mediaControlsEnabled):
        (WebCore::HitTestResult::isLiveLink):
        (WebCore::HitTestResult::isContentEditable):
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::updateFromElement):
        * rendering/RenderCounter.cpp:
        (WebCore::planCounter):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::paintContents):
        (WebCore::RenderEmbeddedObject::layout):
        * rendering/RenderFieldset.h:
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::inputElement):
        (WebCore::RenderFileUploadControl::uploadButton):
        * rendering/RenderFrame.cpp:
        (WebCore::RenderFrame::frameElement):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::frameSetElement):
        * rendering/RenderHTMLCanvas.cpp:
        (WebCore::RenderHTMLCanvas::canvasElement):
        * rendering/RenderIFrame.cpp:
        (WebCore::RenderIFrame::iframeElement):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::RenderImage):
        (WebCore::RenderImage::paintAreaElementFocusRing):
        (WebCore::RenderImage::paintIntoRect):
        (WebCore::RenderImage::imageMap):
        (WebCore::RenderImage::updateAltText):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::canvasCompositingStrategy):
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
        (WebCore::RenderLayerBacking::updateConfiguration):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForCanvas):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::selectElement):
        (WebCore::RenderListBox::updateFromElement):
        (WebCore::RenderListBox::paintItemForeground):
        (WebCore::RenderListBox::paintItemBackground):
        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::calcValue):
        (WebCore::RenderListItem::updateListMarkerNumbers):
        * rendering/RenderMarquee.cpp:
        (WebCore::RenderMarquee::marqueeSpeed):
        * rendering/RenderMenuList.cpp:
        (WebCore::selectedOptionCount):
        (RenderMenuList::selectElement):
        (RenderMenuList::updateOptionsWidth):
        (RenderMenuList::setTextFromOption):
        (RenderMenuList::itemText):
        (RenderMenuList::itemIsSelected):
        * rendering/RenderMeter.cpp:
        (WebCore::RenderMeter::meterElement):
        * rendering/RenderProgress.cpp:
        (WebCore::RenderProgress::progressElement):
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::element):
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::plugInImageElement):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::textFormControlElement):
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::textAreaElement):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::inputElement):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paintSliderTicks):
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
        (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::videoElement):
        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::imageForRenderer):
        * svg/svgtags.in:
        Generate helpers to SVGAElement so that isSVGAElement() can be used
        instead of hasTagName(SVGNames::aTag). I did such update in this
        patch.

        * testing/Internals.cpp:
        (WebCore::Internals::visiblePlaceholder):
        (WebCore::Internals::wasLastChangeUserEdit):
        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):
        (WebCore::Internals::isSelectPopupVisible):
        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::startElementNs):

2014-09-23  Chris Dumez  <cdumez@apple.com>

        Have DataTransfer::files() return a reference
        https://bugs.webkit.org/show_bug.cgi?id=137039

        Reviewed by Ryosuke Niwa.

        Have DataTransfer::files() return a reference instead of a pointer as
        it can never return null.

        No new tests, no behavior change.

        * dom/DataTransfer.cpp:
        (WebCore::DataTransfer::files):
        * dom/DataTransfer.h:

2014-09-23  Chris Dumez  <cdumez@apple.com>

        Have NamedNodeMap::element() and DOMStringMap::element() return a reference
        https://bugs.webkit.org/show_bug.cgi?id=137040

        Reviewed by Ryosuke Niwa.

        Have NamedNodeMap::element() and DOMStringMap::element() return a
        reference instead of a pointer as they can never return null.

        No new tests, no behavior change.

        * dom/DatasetDOMStringMap.h:
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::element):

2014-09-23  Chris Dumez  <cdumez@apple.com>

        Have DOMImplementation::document() and Element::attributes() return references
        https://bugs.webkit.org/show_bug.cgi?id=137035

        Reviewed by Andreas Kling.

        Have DOMImplementation::document() and Element::attributes() return
        references instead of pointers as they can never return null.

        No new tests, no behavior change.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        Update the JS Bindings code generator to use WTF::getPtr() in a couple
        more places so that the implementation can return references instead
        of pointers even when [GenerateIsReachable=xxx] IDL extended attribute
        is used.

        * dom/DOMImplementation.h:
        (WebCore::DOMImplementation::document):
        * dom/Element.cpp:
        (WebCore::Element::attributes):
        * dom/Element.h:
        (WebCore::Node::attributes):

2014-09-23  Chris Dumez  <cdumez@apple.com>

        Have Document::ensureTemplateDocument() return a reference
        https://bugs.webkit.org/show_bug.cgi?id=137033

        Reviewed by Ryosuke Niwa.

        Have Document::ensureTemplateDocument() return a reference instead of
        a pointer as it can never return null.

        No new tests, no behavior change.

        * dom/Document.cpp:
        (WebCore::Document::ensureTemplateDocument):
        * dom/Document.h:
        * editing/markup.cpp:
        (WebCore::createFragmentForInnerOuterHTML):
        * html/HTMLTemplateElement.cpp:
        (WebCore::HTMLTemplateElement::content):
        (WebCore::HTMLTemplateElement::didMoveToNewDocument):

2014-09-23  Chris Dumez  <cdumez@apple.com>

        Have Document::accessSVGExtensions() return a reference
        https://bugs.webkit.org/show_bug.cgi?id=137030

        Reviewed by Ryosuke Niwa.

        Have Document::accessSVGExtensions() return a reference instead of a
        pointer as it can never return null.

        No new tests, no behavior change.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChild):
        (WebCore::ContainerNode::removeChildren):
        * dom/Document.cpp:
        (WebCore::Document::commonTeardown):
        (WebCore::Document::implicitClose):
        (WebCore::Document::accessSVGExtensions):
        * dom/Document.h:
        * dom/Element.cpp:
        (WebCore::Element::~Element):
        (WebCore::Element::removedFrom):
        * editing/markup.cpp:
        (WebCore::isPlainTextMarkup):
        * history/CachedFrame.cpp:
        (WebCore::CachedFrameBase::restore):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::buildReferenceFilter):
        * rendering/svg/RenderSVGResource.cpp:
        (WebCore::removeFromCacheAndInvalidateDependencies):
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::svgExtensionsFromElement):
        * rendering/svg/RenderSVGResourceContainer.h:
        (WebCore::getRenderSVGResourceContainerById):
        (WebCore::getRenderSVGResourceById):
        * rendering/svg/SVGResources.cpp:
        (WebCore::registerPendingResource):
        (WebCore::SVGResources::buildCachedResources):
        * rendering/svg/SVGResourcesCache.cpp:
        (WebCore::resourcesCacheFromRenderer):
        (WebCore::SVGResourcesCache::resourceDestroyed):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::~SVGElement):
        (WebCore::SVGElement::reportAttributeParsingError):
        (WebCore::SVGElement::removedFrom):
        (WebCore::SVGElement::viewportElement):
        (WebCore::SVGElement::attributeChanged):
        (WebCore::SVGElement::buildPendingResourcesIfNeeded):
        (WebCore::SVGElement::accessDocumentSVGExtensions): Deleted.
        * svg/SVGElement.h:
        * svg/SVGFEConvolveMatrixElement.cpp:
        (WebCore::SVGFEConvolveMatrixElement::parseAttribute):
        * svg/SVGFEGaussianBlurElement.cpp:
        (WebCore::SVGFEGaussianBlurElement::parseAttribute):
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::clearResourceReferences):
        (WebCore::SVGFEImageElement::buildPendingResource):
        * svg/SVGFitToViewBox.cpp:
        (WebCore::SVGFitToViewBox::parseViewBox):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::insertedInto):
        (WebCore::SVGFontFaceElement::removedFrom):
        * svg/SVGMPathElement.cpp:
        (WebCore::SVGMPathElement::buildPendingResource):
        (WebCore::SVGMPathElement::clearResourceReferences):
        * svg/SVGPathElement.cpp:
        (WebCore::SVGPathElement::parseAttribute):
        (WebCore::SVGPathElement::invalidateMPathDependencies):
        * svg/SVGPolyElement.cpp:
        (WebCore::SVGPolyElement::parseAttribute):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::~SVGSVGElement):
        (WebCore::SVGSVGElement::insertedInto):
        (WebCore::SVGSVGElement::removedFrom):
        * svg/SVGTRefElement.cpp:
        (WebCore::SVGTRefElement::detachTarget):
        (WebCore::SVGTRefElement::buildPendingResource):
        * svg/SVGTextPathElement.cpp:
        (WebCore::SVGTextPathElement::clearResourceReferences):
        (WebCore::SVGTextPathElement::buildPendingResource):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::clearResourceReferences):
        (WebCore::SVGUseElement::buildPendingResource):
        (WebCore::SVGUseElement::toClipPath):
        (WebCore::SVGUseElement::buildInstanceTree):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::clearResourceReferences):
        (WebCore::SVGSMILElement::buildPendingResource):

2014-09-23  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
        https://bugs.webkit.org/show_bug.cgi?id=136893

        Reviewed by Timothy Hatcher.

        Automatic inspection is currently disabled for web pages.
        This just updates the interfaces that changed.

        * WebCore.exp.in:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::show):
        * inspector/InspectorController.h:
        * page/PageDebuggable.cpp:
        (WebCore::PageDebuggable::connect):
        * page/PageDebuggable.h:
        * testing/Internals.cpp:
        (WebCore::Internals::openDummyInspectorFrontend):

2014-09-23  Eduardo Lima Mitev  <elima@igalia.com>

        [GTK] Adds implementation of subtle crypto HMAC algorithm
        https://bugs.webkit.org/show_bug.cgi?id=133320

        Reviewed by Philippe Normand.

        Tests are already in place under crypto/subtle/hmac-*.html

        * crypto/gtk/CryptoAlgorithmHMACGtk.cpp:
        (WebCore::getGnutlsDigestAlgorithm):
        (WebCore::calculateSignature):
        (WebCore::CryptoAlgorithmHMAC::platformSign):
        (WebCore::CryptoAlgorithmHMAC::platformVerify):

2014-09-23  Eduardo Lima Mitev  <elima@igalia.com>

        [GTK] Adds implementation of Subtle Crypto digest algorithms
        https://bugs.webkit.org/show_bug.cgi?id=133319

        Reviewed by Philippe Normand.

        Tests are already in place under crypto/subtle/sha-*.html

        * crypto/gtk/CryptoDigestGtk.cpp:
        (WebCore::CryptoDigest::CryptoDigest):
        (WebCore::CryptoDigest::~CryptoDigest):
        (WebCore::CryptoDigest::create):
        (WebCore::CryptoDigest::addBytes):
        (WebCore::CryptoDigest::computeHash):

2014-09-15  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Do not grow tracks when the growth factor is 0
        https://bugs.webkit.org/show_bug.cgi?id=136575

        Reviewed by Darin Adler.

        A couple of performance optimizations for the track sizing
        algorithm. On the one hand we avoid the computation of the
        available logical space share if the track has no growth potential
        (the current breadth is the maximum breadth) and on the other
        hand, we avoid calling RenderGrid::distributeSpaceToTracks() if
        the available logical space is not greater than 0.

        The combined effect of these two changes is an impressive +16%
        improvement in auto-grid-lots-of-data.html performance test.

        No new tests as there is no change in the functionality.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
        (WebCore::RenderGrid::distributeSpaceToTracks):

2014-09-23  Ion Rosca  <rosca@adobe.com>

        [CSS Blending] The composited layers isolated by the page group should blend with the default white background color.
        https://bugs.webkit.org/show_bug.cgi?id=136563

        Reviewed by Simon Fraser.

        If a blending layer is not isolated, then it should blend with a white backdrop:
        http://dev.w3.org/fxtf/compositing-1/#pagebackdrop

        Tests: css3/blending/blend-mode-body-composited-child-background-color.html
               css3/blending/blend-mode-body-composited-child.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
        If the isolating composited layer is the root renderer, then it should have a backing store
        into which the initial white backdrop will be painted.

2014-09-22  Christophe Dumez  <cdumez@apple.com>

        Unreviewed build fix after r173859.

        Partial revert to fix debug build after r173859.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::getSVGDocument):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        * page/Frame.cpp:
        (WebCore::Frame::setPageAndTextZoomFactors):
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollToAnchor):
        * rendering/svg/RenderSVGBlock.h:
        (WebCore::RenderSVGBlock::graphicsElement):
        * rendering/svg/RenderSVGGradientStop.cpp:
        (WebCore::RenderSVGGradientStop::gradientElement):
        * rendering/svg/RenderSVGInline.h:
        (WebCore::RenderSVGInline::graphicsElement):
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::pathOnlyClipping):
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
        * rendering/svg/RenderSVGShape.h:
        (WebCore::RenderSVGShape::graphicsElement):
        * rendering/svg/RenderSVGTransformableContainer.h:
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending):
        * rendering/svg/SVGRenderTreeAsText.cpp:
        (WebCore::operator<<):
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
        * rendering/svg/SVGResources.cpp:
        (WebCore::targetReferenceFromResource):
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::defaultEventHandler):
        * svg/SVGAnimateElement.cpp:
        (WebCore::SVGAnimateElement::calculateAnimatedValue):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::getBoundingBox):
        * svg/SVGLinearGradientElement.cpp:
        (WebCore::SVGLinearGradientElement::collectGradientAttributes):
        * svg/SVGLocatable.cpp:
        (WebCore::SVGLocatable::getTransformToElement):
        * svg/SVGPolyElement.cpp:
        (WebCore::SVGPolyElement::synchronizePoints):
        (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
        * svg/SVGRadialGradientElement.cpp:
        (WebCore::SVGRadialGradientElement::collectGradientAttributes):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::synchronizeTextLength):
        (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
        (WebCore::SVGTextContentElement::elementFromRenderer):
        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::toClipPath):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::connectConditions):
        (WebCore::SVGSMILElement::disconnectConditions):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::hasSingleSecurityOrigin):
        (WebCore::SVGImage::setContainerSize):
        (WebCore::SVGImage::containerSize):
        (WebCore::SVGImage::embeddedContentBox):
        (WebCore::SVGImage::hasRelativeWidth):
        (WebCore::SVGImage::hasRelativeHeight):
        (WebCore::SVGImage::computeIntrinsicDimensions):
        (WebCore::SVGImage::startAnimation):
        (WebCore::SVGImage::stopAnimation):

2014-09-22  Simon Fraser  <simon.fraser@apple.com>

        Ensure that layout is up-to-date before hit-testing via RenderView
        https://bugs.webkit.org/show_bug.cgi?id=136651

        Reviewed by David Hyatt.

        Ensure that layout is up-to-date before we do hit-testing via the RenderView.
        Previously, RenderLayer::hitTest() called updateLayout(), but it's better
        to push that responsibility onto RenderView before entering the RenderLayer
        tree.
        
        Make callers a little more consistent in getting the RenderView via
        Frame::contentRenderer(), though perhaps we should remove that and just
        call Document::renderView() everywhere.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::press): Hit test via the RenderView, rather
        than doing so on the RenderView's layer, to ensure that we updateLayout().
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityHitTest): This code calls
        hitTest() on arbitrary layers, so needs to explicitly update layout.
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::contains):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::eventMayStartDrag):
        (WebCore::EventHandler::updateSelectionForMouseDrag):
        (WebCore::EventHandler::hitTestResultAtPoint): The explicit updateLayout() is
        no longer needed.
        (WebCore::EventHandler::updateCursor):
        (WebCore::EventHandler::handleWheelEvent):
        (WebCore::EventHandler::hoverTimerFired):
        (WebCore::hitTestResultInFrame):
        * page/Frame.cpp:
        (WebCore::Frame::contentRenderer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTest):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::hitTest): Here's where we ensure that layout is up-to-date.

2014-09-22  Christophe Dumez  <cdumez@apple.com>

        Use downcast<SVG*Element>() instead of toSVG*Element()
        https://bugs.webkit.org/show_bug.cgi?id=137004

        Reviewed by Benjamin Poulain.

        Use downcast<SVG*Element>() instead of toSVG*Element() for casting SVG
        Elements and get rid of the transition toSVG*Element() macros.

        Also use downcast<MathML*Element>() instead of toMathML*Element() for
        casting MathML Elements.

        The HTML Elements casting counterparts will be taken care of in a
        separate patch.

        No new tests, no behavior change.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::alternativeText):
        (WebCore::AccessibilityNodeObject::accessibilityDescription):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::remoteSVGRootElement):
        * bindings/js/JSElementCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::createWrapperInline):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSCursorImageValue.cpp:
        (WebCore::resourceReferencedByCursorElement):
        (WebCore::CSSCursorImageValue::updateIfSVGCursorIsUsed):
        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::matchAllRules):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::locateCousinList):
        (WebCore::StyleResolver::canShareStyleWithElement):
        (WebCore::StyleResolver::locateSharedStyle):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
        * dom/Element.cpp:
        (WebCore::Element::synchronizeAllAttributes):
        (WebCore::Element::synchronizeAttribute):
        (WebCore::Element::boundsInRootViewSpace):
        (WebCore::Element::getBoundingClientRect):
        (WebCore::Element::childShouldCreateRenderer):
        (WebCore::Element::fastAttributeLookupAllowed):
        * dom/EventDispatcher.cpp:
        (WebCore::eventTargetRespectingTargetRules):
        * dom/ScriptElement.cpp:
        (WebCore::toScriptElementIfPossible):
        * dom/make_names.pl:
        (printTypeHelpers):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::getSVGDocument):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::isPhrasingContent):
        (WebCore::MathMLElement::childShouldCreateRenderer):
        (WebCore::MathMLElement::attributeChanged):
        * mathml/MathMLElement.h:
        (WebCore::Node::hasTagName):
        * mathml/MathMLSelectElement.cpp:
        (WebCore::MathMLSelectElement::getSelectedSemanticsChild):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        (WebCore::instanceAssociatedWithShadowTreeElement):
        * page/Frame.cpp:
        (WebCore::Frame::setPageAndTextZoomFactors):
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollToAnchor):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::parseColSpanFromDOM):
        (WebCore::RenderTableCell::parseRowSpanFromDOM):
        (WebCore::RenderTableCell::computePreferredLogicalWidths):
        * rendering/mathml/RenderMathMLMenclose.cpp:
        (WebCore::RenderMathMLMenclose::addChild):
        (WebCore::RenderMathMLMenclose::computePreferredLogicalWidths):
        (WebCore::RenderMathMLMenclose::updateLogicalHeight):
        (WebCore::RenderMathMLMenclose::paint):
        * rendering/svg/RenderSVGBlock.h:
        (WebCore::RenderSVGBlock::graphicsElement):
        * rendering/svg/RenderSVGForeignObject.cpp:
        (WebCore::RenderSVGForeignObject::foreignObjectElement):
        * rendering/svg/RenderSVGGradientStop.cpp:
        (WebCore::RenderSVGGradientStop::gradientElement):
        * rendering/svg/RenderSVGGradientStop.h:
        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::imageElement):
        * rendering/svg/RenderSVGInline.h:
        (WebCore::RenderSVGInline::graphicsElement):
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::getElementCTM):
        (WebCore::RenderSVGModelObject::checkIntersection):
        (WebCore::RenderSVGModelObject::checkEnclosure):
        * rendering/svg/RenderSVGModelObject.h:
        (WebCore::RenderSVGModelObject::element):
        * rendering/svg/RenderSVGRect.cpp:
        (WebCore::RenderSVGRect::rectElement):
        * rendering/svg/RenderSVGResource.cpp:
        (WebCore::removeFromCacheAndInvalidateDependencies):
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::pathOnlyClipping):
        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):
        * rendering/svg/RenderSVGResourceClipper.h:
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::transformOnNonScalingStroke):
        * rendering/svg/RenderSVGResourceFilter.h:
        * rendering/svg/RenderSVGResourceLinearGradient.h:
        * rendering/svg/RenderSVGResourceMarker.h:
        * rendering/svg/RenderSVGResourceMasker.h:
        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::patternElement):
        * rendering/svg/RenderSVGResourceRadialGradient.h:
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::svgSVGElement):
        * rendering/svg/RenderSVGShape.h:
        (WebCore::RenderSVGShape::graphicsElement):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::textElement):
        * rendering/svg/RenderSVGTextPath.cpp:
        (WebCore::RenderSVGTextPath::textPathElement):
        (WebCore::RenderSVGTextPath::layoutPath):
        * rendering/svg/RenderSVGTransformableContainer.cpp:
        (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
        * rendering/svg/RenderSVGTransformableContainer.h:
        * rendering/svg/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::svgSVGElement):
        * rendering/svg/SVGPathData.cpp:
        (WebCore::updatePathFromLineElement):
        (WebCore::updatePathFromPathElement):
        (WebCore::updatePathFromPolygonElement):
        (WebCore::updatePathFromPolylineElement):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::layoutChildren):
        (WebCore::SVGRenderSupport::applyStrokeStyleToContext):
        (WebCore::SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending):
        * rendering/svg/SVGRenderTreeAsText.cpp:
        (WebCore::operator<<):
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
        * rendering/svg/SVGResources.cpp:
        (WebCore::targetReferenceFromResource):
        (WebCore::SVGResources::buildCachedResources):
        * rendering/svg/SVGTextLayoutEngine.cpp:
        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath):
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::createElementRenderer):
        (WebCore::SVGAElement::defaultEventHandler):
        * svg/SVGAltGlyphDefElement.cpp:
        (WebCore::SVGAltGlyphDefElement::hasValidGlyphElements):
        * svg/SVGAltGlyphElement.cpp:
        (WebCore::SVGAltGlyphElement::hasValidGlyphElements):
        * svg/SVGAnimateElement.cpp:
        (WebCore::SVGAnimateElement::calculateAnimatedValue):
        * svg/SVGAnimatedTransformList.cpp:
        (WebCore::SVGAnimatedTransformListAnimator::SVGAnimatedTransformListAnimator):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
        (WebCore::SVGAnimationElement::adjustForInheritance):
        * svg/SVGDocument.cpp:
        (WebCore::SVGDocument::rootElement):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::ownerSVGElement):
        (WebCore::SVGElement::viewportElement):
        (WebCore::SVGElement::getBoundingBox):
        (WebCore::SVGElement::childShouldCreateRenderer):
        (WebCore::SVGElement::title):
        (WebCore::SVGElement::updateRelativeLengthsInformation):
        * svg/SVGElement.h:
        (WebCore::Node::hasTagName):
        * svg/SVGFEComponentTransferElement.cpp:
        (WebCore::SVGFEComponentTransferElement::build):
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::buildPendingResource):
        * svg/SVGFilterElement.cpp:
        (WebCore::SVGFilterElement::childShouldCreateRenderer):
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        (WebCore::isSVGFilterPrimitiveStandardAttributes):
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        * svg/SVGFontElement.cpp:
        (WebCore::SVGFontElement::ensureGlyphCache):
        * svg/SVGFontFaceElement.cpp:
        (WebCore::SVGFontFaceElement::rebuildFontFace):
        * svg/SVGFontFaceFormatElement.cpp:
        (WebCore::SVGFontFaceFormatElement::childrenChanged):
        * svg/SVGFontFaceSrcElement.cpp:
        (WebCore::SVGFontFaceSrcElement::srcValue):
        (WebCore::SVGFontFaceSrcElement::childrenChanged):
        * svg/SVGFontFaceUriElement.cpp:
        (WebCore::SVGFontFaceUriElement::childrenChanged):
        * svg/SVGGlyphElement.cpp:
        (WebCore::SVGGlyphElement::invalidateGlyphCache):
        * svg/SVGGraphicsElement.h:
        (WebCore::isSVGGraphicsElement):
        * svg/SVGHKernElement.cpp:
        (WebCore::SVGHKernElement::insertedInto):
        (WebCore::SVGHKernElement::removedFrom):
        * svg/SVGImageLoader.cpp:
        (WebCore::SVGImageLoader::dispatchLoadEvent):
        * svg/SVGLengthContext.cpp:
        (WebCore::SVGLengthContext::determineViewport):
        * svg/SVGLinearGradientElement.cpp:
        (WebCore::setGradientAttributes):
        (WebCore::SVGLinearGradientElement::collectGradientAttributes):
        * svg/SVGLocatable.cpp:
        (WebCore::SVGLocatable::nearestViewportElement):
        (WebCore::SVGLocatable::farthestViewportElement):
        (WebCore::SVGLocatable::computeCTM):
        (WebCore::SVGLocatable::getTransformToElement):
        * svg/SVGMPathElement.cpp:
        (WebCore::SVGMPathElement::buildPendingResource):
        (WebCore::SVGMPathElement::pathElement):
        (WebCore::SVGMPathElement::notifyParentOfPathChange):
        * svg/SVGMarkerElement.cpp:
        (WebCore::SVGMarkerElement::synchronizeOrientType):
        (WebCore::SVGMarkerElement::lookupOrCreateOrientTypeWrapper):
        * svg/SVGPathElement.cpp:
        (WebCore::SVGPathElement::invalidateMPathDependencies):
        (WebCore::SVGPathElement::lookupOrCreateDWrapper):
        (WebCore::SVGPathElement::synchronizeD):
        * svg/SVGPathSegList.cpp:
        (WebCore::SVGPathSegList::commitChange):
        * svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::collectPatternAttributes):
        * svg/SVGPolyElement.cpp:
        (WebCore::SVGPolyElement::synchronizePoints):
        (WebCore::SVGPolyElement::lookupOrCreatePointsWrapper):
        * svg/SVGRadialGradientElement.cpp:
        (WebCore::setGradientAttributes):
        (WebCore::SVGRadialGradientElement::collectGradientAttributes):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::setupInitialView):
        * svg/SVGTextContentElement.cpp:
        (WebCore::SVGTextContentElement::synchronizeTextLength):
        (WebCore::SVGTextContentElement::lookupOrCreateTextLengthWrapper):
        (WebCore::SVGTextContentElement::elementFromRenderer):
        * svg/SVGTextContentElement.h:
        (WebCore::isSVGTextContentElement):
        * svg/SVGTextPathElement.cpp:
        (WebCore::SVGTextPathElement::buildPendingResource):
        * svg/SVGUseElement.cpp:
        (WebCore::dumpInstanceTree):
        (WebCore::SVGUseElement::buildPendingResource):
        (WebCore::SVGUseElement::toClipPath):
        (WebCore::SVGUseElement::buildInstanceTree):
        (WebCore::SVGUseElement::hasCycleUseReferencing):
        (WebCore::SVGUseElement::expandUseElementsInShadowTree):
        (WebCore::SVGUseElement::associateInstancesWithShadowTreeElements):
        * svg/SVGVKernElement.cpp:
        (WebCore::SVGVKernElement::insertedInto):
        (WebCore::SVGVKernElement::removedFrom):
        * svg/SVGViewSpec.cpp:
        (WebCore::SVGViewSpec::viewTarget):
        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::buildPendingResource):
        (WebCore::SVGSMILElement::connectConditions):
        (WebCore::SVGSMILElement::disconnectConditions):
        * svg/animation/SVGSMILElement.h:
        (WebCore::isSVGSMILElement):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::hasSingleSecurityOrigin):
        (WebCore::SVGImage::setContainerSize):
        (WebCore::SVGImage::containerSize):
        (WebCore::SVGImage::embeddedContentBox):
        (WebCore::SVGImage::hasRelativeWidth):
        (WebCore::SVGImage::hasRelativeHeight):
        (WebCore::SVGImage::computeIntrinsicDimensions):
        (WebCore::SVGImage::startAnimation):
        (WebCore::SVGImage::stopAnimation):
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::platformApplySoftware):
        * svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:
        (WebCore::SVGAnimatedPathSegListPropertyTearOff::animValDidChange):
        * svg/properties/SVGPathSegListPropertyTearOff.cpp:
        (WebCore::SVGPathSegListPropertyTearOff::contextElement):

2014-09-22  Pratik Solanki  <psolanki@apple.com>

        Follow on fix for [iOS] ASSERTION FAILED: WTF::isMainThread() in WebCore::memoryCache() when using WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=136962

        Rubber-stamped by Simon Fraser.

        Remove the const per review comment. It is not needed.

        * loader/cocoa/DiskCacheMonitorCocoa.mm:
        (WebCore::DiskCacheMonitor::DiskCacheMonitor):

2014-09-22  Simon Fraser  <simon.fraser@apple.com>

        Move nodeFromPoint() back to Document where it belongs
        https://bugs.webkit.org/show_bug.cgi?id=137012

        Reviewed by Zalan Bujtas.

        nodeFromPoint() was moved into TreeScope for ShadowDOM work, but now we can move
        it back to its logical place.
        
        Make versions of elementFromPoint and caretRangeFromPoint that take LayoutPoints,
        and change the current scale/offset code to be in layout units (which results
        in a small behavior change).
        
        elementFromPoint(int, int) and caretRangeFromPoint(int, int) are still required
        for bindings code.

        * dom/Document.cpp:
        (WebCore::Document::nodeFromPoint):
        (WebCore::Document::elementFromPoint):
        (WebCore::Document::caretRangeFromPoint):
        * dom/Document.h:
        (WebCore::Document::elementFromPoint): Move logic from TreeScope::elementFromPoint()
        here.
        * dom/TreeScope.cpp:
        (WebCore::nodeFromPoint): Deleted.
        (WebCore::TreeScope::elementFromPoint): Deleted.
        * dom/TreeScope.h:

2014-09-22  Benjamin Poulain  <bpoulain@apple.com>

        Add the baseline implementation of :nth-child(An+B of selector-list)
        https://bugs.webkit.org/show_bug.cgi?id=136975

        Reviewed by Darin Adler.

        Tests: fast/css/nth-child-of-classname.html
               fast/css/nth-child-of-complex-selector.html
               fast/css/nth-child-of-compound-selector.html
               fast/css/nth-child-of-tagname.html
               fast/selectors/nth-child-of-basics.html
               fast/selectors/nth-child-of-class-style-update.html
               fast/selectors/nth-child-of-complex-selectors.html
               fast/selectors/nth-child-of-selector-list.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        Pretty basic:
        -Go over the previous siblings.
        -For each sibling, test the selector list. If it matches, increase the count.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        Skip any case of the new selector. This will be implemented separately.

2014-09-19  Myles C. Maxfield  <mmaxfield@apple.com>

        Implement 'vhea', 'vmtx', and 'kern' tables in SVG -> OTF converter
        https://bugs.webkit.org/show_bug.cgi?id=136971

        Reviewed by Darin Adler.

        This patch fills in the tables related to vertical metrics and kerning. The vertical metrics tables are
        fairly straightforward. On the other hand, the 'kern' table has subtables which can be in a variety
        of formats; however, according to Microsoft, Windows only allows one particular format, which doesn't
        allow for ranges of glyphs to be described and therefore might lead to a large 'kern' table size. In
        the interest of platform agnosticism I have implemented this particular format, and have not actually
        witnessed any extremely large 'kern' tables in any of the fonts that I have looked at.

        I also added basic support for the horiz-origin-x and horiz-origin-y SVG properties, though support
        might not be perfect based on my testing.

        Regarding testing, after this patch, almost all of our SVG fonts tests pass (barring tiny rebaselining;
        the platform font system calculates slightly different advances than we did. These differences are tiny
        and expected from such a dramatic shift in text handling engines.) There are around two dozen failing
        tests left that look like they are actually indiciative of code problems.

        * svg/SVGFontElement.cpp:
        (WebCore::SVGFontElement::ensureGlyphCache): Refactor to accept new signature of
        SVG*KernElement::build*KerningPair().
        * svg/SVGHKernElement.cpp:
        (WebCore::SVGHKernElement::buildHorizontalKerningPair): Refactor to allow for intermediate data to be
        returned, which the SVG -> OTF font converter can use.
        * svg/SVGHKernElement.h: New signature for buildHorizontalKerningPair().
        * svg/SVGToOTFFontConversion.cpp:
        (WebCore::SVGToOTFFontConverter::GlyphData::GlyphData): Save the glyph's vertical advance along with
        the glyph's horizontal advance.
        (WebCore::SVGToOTFFontConverter::KerningData::KerningData): This data represents a record in one of
        the two 'kern' subtables, and as such needs to be sorted.
        (WebCore::SVGToOTFFontConverter::KerningData::operator<): Sort comparator.
        (WebCore::SVGToOTFFontConverter::appendHEADTable): Save the unitsPerEm locally to save a conditional.
        (WebCore::SVGToOTFFontConverter::appendHHEATable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendHMTXTable): Ditto. Also use the horizontal advance as opposed to
        the vertical advance.
        (WebCore::SVGToOTFFontConverter::appendOS2Table): Save the unitsPerEm locally to save a conditional.
        Also if the average advance isn't found in the font, use the missing glyph's advance. If there is no
        missing glyph, bail and use the unitsPerEm.
        (WebCore::SVGToOTFFontConverter::appendVORGTable): If the default vertical origin isn't found in the
        font, use the missing glyphs's vertical origin. If there is no missing glyph, bail and use 0.
        (WebCore::SVGToOTFFontConverter::appendVHEATable): Parallel of 'hhea' table, except for vertical info.
        (WebCore::SVGToOTFFontConverter::appendVMTXTable): Parallel of 'hmtx' table, except for vertical info.
        (WebCore::SVGToOTFFontConverter::appendKerningHelperFields): Computes and appends 4 fields that font
        parsers need in order to do a binary search on the kern records.
        (WebCore::SVGToOTFFontConverter::addCodepointRanges): For each codepoint in the ranges, look up its
        representative glyph and append it to a set.
        (WebCore::SVGToOTFFontConverter::addCodepoints): For each codepoint in the range, look up its
        representative glyph and append it to a set.
        (WebCore::SVGToOTFFontConverter::addGlyphNames): For each glyph name, look up its representative glyph
        and append it to a set.
        (WebCore::SVGToOTFFontConverter::computeKerningData): Call SVG*KernElement::build*KerningPair() and
        iterate through all the data it returned, building up records into a Vector.
        (WebCore::SVGToOTFFontConverter::appendKERNTable): Go through the vector that computeKerningData()
        returned and actually write out the two subtables. One is for horizontal kerning and the other is for
        vertical kerning.
        (WebCore::CFFBuilder::CFFBuilder): Use the position of the glyph origin to perform the initial moveto
        command.
        (WebCore::transcodeGlyphPaths): Get the glyph's origin and pass it to the CFFBuilder.
        (WebCore::SVGToOTFFontConverter::appendGlyphData): Templated overloading so that the missing glyph
        gets a null SVGGlyphElement pointer but the rest of the glyphs get a non-null one.
        (WebCore::SVGToOTFFontConverter::processGlyphElement): Called on both SVGGlyphElements and
        SVGMissingGlyphElements, this pulls out information from the element and computs its path information.
        (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Use the new templated version of
        processGlyphElement so we can get the same glyph parsing behavior on SVGMissingGlyphElements. In
        addition, populate two maps for the kerning table creation function to use.
        (WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): Append new tables.
        * svg/SVGVKernElement.cpp:
        (WebCore::SVGVKernElement::buildVerticalKerningPair): Refactor to allow for intermediate data to be
        returned, which the SVG -> OTF font converter can use.
        * svg/SVGVKernElement.h: New signature for buildVerticalKerningPair().

2014-09-22  Alexey Proskuryakov  <ap@apple.com>

        WebSocket crash when a connection is closed from server side
        https://bugs.webkit.org/show_bug.cgi?id=137009
        rdar://problem/18333977
        rdar://problem/12708225

        Reviewed by Brady Eidson.

        I don't think that this can be tested with our test server.

        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::WebSocketChannel): Added logging.
        (WebCore::WebSocketChannel::~WebSocketChannel): Ditto.
        (WebCore::WebSocketChannel::close): Protect self, because startClosingHandshake
        can release the last reference.
        (WebCore::WebSocketChannel::fail): Added an assertion that the channel is always
        closed after this function.
        (WebCore::WebSocketChannel::startClosingHandshake): Protect self, and don't change
        the stack from closed back to closing if after failing to send closing handshake.
        (WebCore::WebSocketChannel::processOutgoingFrameQueue): Protect self.

2014-09-22  David Hyatt  <hyatt@apple.com>

        Bad cast in isValidColumnSpanner.
        https://bugs.webkit.org/show_bug.cgi?id=133380.

        Reviewed by Simon Fraser.

        Added fast/multicol/multicol-crazy-nesting.html

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::isValidColumnSpanner):
        The crawl up the chain looking for unsplittable objects should use containing blocks
        and not be casting to parent boxes. You can have an inline in the parent chain, so
        this was not the right way to walk up the tree.

2014-09-22  David Hyatt  <hyatt@apple.com>

        ASSERT in RenderMultiColumnSet::requiresBalancing.
        https://bugs.webkit.org/show_bug.cgi?id=136376.

        Reviewed by David Kilzer.

        Added fast/multicol/multicol-selection.html.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::isValidColumnSpanner):
        Don't allow an object to become a spanner if it does not have the flow
        thread as its containing block. Otherwise the flow thread won't get notified
        of spanner placeholder insertions, and so the spanner ends up orphaned.

2014-09-19  Brent Fulgham  <bfulgham@apple.com>

        [Win] Implement cap height in SimpleFontDataWin to enable initial-letter support for Windows.
        https://bugs.webkit.org/show_bug.cgi?id=136841

        Reviewed by David Hyatt.

        * platform/graphics/win/SimpleFontDataCGWin.cpp:
        (WebCore::SimpleFontData::platformInit): Add missing calls to set up our fonts.

2014-09-22  Eric Carlson  <eric.carlson@apple.com>

        Update HTMLMediaElement logging
        https://bugs.webkit.org/show_bug.cgi?id=136991

        Reviewed by Alexey Proskuryakov.

        No new tests, only logging was changed.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::~HTMLMediaElement):
        (WebCore::HTMLMediaElement::parseAttribute):

2014-09-22  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        REGRESSION(r173631): It broke the !ENABLE(VIDEO) build
        https://bugs.webkit.org/show_bug.cgi?id=136946

        Reviewed by Jer Noble.

        No new tests required, no new functionality.

        * page/DragController.cpp:
        (WebCore::DragController::startDrag):

2014-09-22  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Use nullptr in regions code
        https://bugs.webkit.org/show_bug.cgi?id=137001

        Reviewed by Andrei Bucur.

        No new tests as no new functionality is introduced.

        * dom/DOMNamedFlowCollection.cpp:
        (WebCore::DOMNamedFlowCollection::item):
        (WebCore::DOMNamedFlowCollection::namedItem):
        * dom/NamedFlowCollection.cpp:
        (WebCore::NamedFlowCollection::flowByName):
        * dom/WebKitNamedFlow.cpp:
        (WebCore::WebKitNamedFlow::WebKitNamedFlow):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::getLayerListForRegion):
        (WebCore::RenderFlowThread::regionForCompositedLayer):
        (WebCore::RenderFlowThread::regionAtBlockOffset):
        (WebCore::RenderFlowThread::mapFromFlowToRegion):
        (WebCore::RenderFlowThread::firstRegion):
        (WebCore::RenderFlowThread::lastRegion):
        (WebCore::RenderFlowThread::currentActiveRenderBox):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::nextRendererForElement):

2014-09-17  Philippe Normand  <pnormand@igalia.com>

        [GStreamer] Cannot play Vimeo video
        https://bugs.webkit.org/show_bug.cgi?id=134969

        Reviewed by Sergio Villar Senin.

        Ensure the GStreamer HTTP source element also sends cookies when
        it's sending its requests. Some streaming platforms such as Vimeo
        do server-side cookie checks on incoming requests before serving
        media data.

        Test: http/tests/media/hls/video-cookie.html

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcStart): Set first-party cookie URL to the request so
        the ResourceLoader properly sets cookies in the HTTP request.

2014-09-22  Mihnea Ovidenie  <mihnea@adobe.com>

        Leverage RenderLayerBacking::renderer() instead of m_owningLayer.renderer()
        https://bugs.webkit.org/show_bug.cgi?id=136954

        Reviewed by Darin Adler.

        No new tests just refactoring.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateCompositedBounds):
        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
        (WebCore::RenderLayerBacking::paintIntoLayer):

2014-09-22  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSS Regions] Assertion failure and null dereference crash when using animations and regions
        https://bugs.webkit.org/show_bug.cgi?id=136918

        Reviewed by Andrei Bucur.

        In some situations, for instance when an image has an attached animation, the style change caused by the animation
        triggers a geometry update for the backing store associated with the image's layer. This may occur before
        the layout for the image has finished.

        Moreover, if the image in such situation - having a composited layer - is displayed in a region,
        sicne the layout did not finish yet, the mappings between the layers of the elements collected in the named flow
        and the regions associated with the named flow are not updated and cannot be used.

        Therefore in those situations, we have to bail out early and use these mappings only after the layout has finished.

        This patch also changes RenderLayerBacking method updateAfterDescendents -> updateAfterDescendants.

        Test: fast/regions/animated-image-in-region.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::cachedRegionForCompositedLayer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateAfterDescendants):
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
        (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
        (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):

2014-09-21  Chris Dumez  <cdumez@apple.com>

        Generate Element casting helper functions
        https://bugs.webkit.org/show_bug.cgi?id=136839

        Reviewed by Darin Adler.

        Generate Element casting helper functions instead of requiring explicit
        use of NODE_TYPE_CASTS() macro. Casting is now done using the following
        form: downcast<HTMLDivElement>(), instead of toHTMLDivElement().

        The previous form (i.e. toHTMLDivElement()) is still supported for now
        by generating macros that convert these calls into the new form, until
        the code base is ported to the new casting helpers.

        The plan is also to use is<HTMLDivElement>() instead of
        isHTMLDivElement() for consistency but this was not changed in this
        patch to avoid blowing up the size.

        This CL also updates the way we convert a JSValue into an
        implementation pointer. Instead of using toHTMLDivElement(), which
        looked like a cast, we now use JSHTMLDivElement::toWrapped(). This
        avoids conflicting with the toXXXElement() macros and makes it
        clearer this is not a simple cast.

        No new tests, no behavior change.

        * Modules/plugins/QuickTimePluginReplacement.mm:
        (WebCore::QuickTimePluginReplacement::installReplacement):
        * WebCore.exp.in:
        * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
        (WebCore::JSAudioBufferSourceNode::setBuffer):
        * bindings/js/JSBlobCustom.cpp:
        (WebCore::constructJSBlob):
        * bindings/js/JSCommandLineAPIHostCustom.cpp:
        (WebCore::JSCommandLineAPIHost::getEventListeners):
        (WebCore::JSCommandLineAPIHost::databaseId):
        (WebCore::JSCommandLineAPIHost::storageId):
        * bindings/js/JSDOMFormDataCustom.cpp:
        (WebCore::toHTMLFormElementOrNull):
        (WebCore::constructJSDOMFormData):
        (WebCore::JSDOMFormData::append):
        (WebCore::toHTMLFormElement): Deleted.
        * bindings/js/JSDOMStringListCustom.cpp:
        (WebCore::JSDOMStringList::toWrapped):
        (WebCore::toDOMStringList): Deleted.
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::toWrapped):
        (WebCore::toDOMWindow): Deleted.
        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::convertValue):
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::JSDocument::createTouchList):
        * bindings/js/JSEventTargetCustom.cpp:
        (WebCore::JSEventTarget::toWrapped):
        (WebCore::toEventTarget): Deleted.
        * bindings/js/JSExceptionBase.cpp:
        (WebCore::toExceptionBase):
        * bindings/js/JSHTMLMediaElementCustom.cpp:
        (WebCore::JSHTMLMediaElement::setController):
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::add):
        (WebCore::JSHTMLOptionsCollection::remove):
        * bindings/js/JSHTMLSelectElementCustom.cpp:
        (WebCore::JSHTMLSelectElement::remove):
        (WebCore::selectIndexSetter):
        * bindings/js/JSInspectorFrontendHostCustom.cpp:
        (WebCore::JSInspectorFrontendHost::showContextMenu):
        * bindings/js/JSMessageEventCustom.cpp:
        (WebCore::handleInitMessageEvent):
        * bindings/js/JSMessagePortCustom.cpp:
        (WebCore::fillMessagePortArray):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::JSNode::insertBefore):
        (WebCore::JSNode::replaceChild):
        (WebCore::JSNode::removeChild):
        (WebCore::JSNode::appendChild):
        * bindings/js/JSNodeFilterCustom.cpp:
        (WebCore::JSNodeFilter::toWrapped):
        (WebCore::toNodeFilter): Deleted.
        * bindings/js/JSSubtleCryptoCustom.cpp:
        (WebCore::JSSubtleCrypto::encrypt):
        (WebCore::JSSubtleCrypto::decrypt):
        (WebCore::JSSubtleCrypto::sign):
        (WebCore::JSSubtleCrypto::verify):
        (WebCore::JSSubtleCrypto::exportKey):
        (WebCore::JSSubtleCrypto::wrapKey):
        (WebCore::JSSubtleCrypto::unwrapKey):
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::JSWebGLRenderingContext::getAttachedShaders):
        (WebCore::JSWebGLRenderingContext::getProgramParameter):
        (WebCore::JSWebGLRenderingContext::getShaderParameter):
        (WebCore::JSWebGLRenderingContext::getUniform):
        (WebCore::dataFunctionf):
        (WebCore::dataFunctioni):
        (WebCore::dataFunctionMatrix):
        * bindings/js/JSXMLHttpRequestCustom.cpp:
        (WebCore::JSXMLHttpRequest::send):
        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::CloneSerializer::dumpIfTerminal):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        (GenerateParametersCheck):
        (JSValueToNative):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
        (WebCore::JSTestActiveDOMObject::toWrapped):
        (WebCore::toTestActiveDOMObject): Deleted.
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::JSTestCustomNamedGetter::toWrapped):
        (WebCore::toTestCustomNamedGetter): Deleted.
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::JSTestEventConstructor::toWrapped):
        (WebCore::toTestEventConstructor): Deleted.
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
        (WebCore::JSTestEventTarget::toWrapped):
        (WebCore::toTestEventTarget): Deleted.
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        * bindings/scripts/test/JS/JSTestException.cpp:
        (WebCore::JSTestException::toWrapped):
        (WebCore::toTestException): Deleted.
        * bindings/scripts/test/JS/JSTestException.h:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        (WebCore::JSTestGenerateIsReachable::toWrapped):
        (WebCore::toTestGenerateIsReachable): Deleted.
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::setJSTestInterfaceImplementsNode):
        (WebCore::setJSTestInterfaceSupplementalNode):
        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        (WebCore::JSTestInterface::toWrapped):
        (WebCore::toTestInterface): Deleted.
        * bindings/scripts/test/JS/JSTestInterface.h:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::JSTestMediaQueryListListener::toWrapped):
        (WebCore::toTestMediaQueryListListener): Deleted.
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructor::toWrapped):
        (WebCore::toTestNamedConstructor): Deleted.
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        (WebCore::JSTestNondeterministic::toWrapped):
        (WebCore::toTestNondeterministic): Deleted.
        * bindings/scripts/test/JS/JSTestNondeterministic.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::setJSTestObjTestObjAttr):
        (WebCore::setJSTestObjXMLObjAttr):
        (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
        (WebCore::setJSTestObjWithScriptStateAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::setJSTestObjMutablePoint):
        (WebCore::setJSTestObjImmutablePoint):
        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
        (WebCore::jsTestObjPrototypeFunctionConvert1):
        (WebCore::jsTestObjPrototypeFunctionConvert2):
        (WebCore::jsTestObjPrototypeFunctionConvert4):
        (WebCore::jsTestObjPrototypeFunctionConvert5):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
        (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
        (WebCore::JSTestObj::toWrapped):
        (WebCore::toTestObj): Deleted.
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        (WebCore::JSTestOverloadedConstructorsConstructor::constructJSTestOverloadedConstructors3):
        (WebCore::JSTestOverloadedConstructors::toWrapped):
        (WebCore::toTestOverloadedConstructors): Deleted.
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterface::toWrapped):
        (WebCore::toTestSerializedScriptValueInterface): Deleted.
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
        (WebCore::JSTestTypedefs::toWrapped):
        (WebCore::toTestTypedefs): Deleted.
        * bindings/scripts/test/JS/JSTestTypedefs.h:
        * bindings/scripts/test/JS/JSattribute.cpp:
        (WebCore::JSattribute::toWrapped):
        (WebCore::toattribute): Deleted.
        * bindings/scripts/test/JS/JSattribute.h:
        * bindings/scripts/test/JS/JSreadonly.cpp:
        (WebCore::JSreadonly::toWrapped):
        (WebCore::toreadonly): Deleted.
        * bindings/scripts/test/JS/JSreadonly.h:
        * dom/Element.h:
        (WebCore::downcast):
        * dom/make_names.pl:
        (printTypeHelpers):
        * html/HTMLAnchorElement.h:
        * html/HTMLAreaElement.h:
        * html/HTMLAudioElement.h:
        * html/HTMLBaseElement.h:
        * html/HTMLBodyElement.h:
        * html/HTMLCanvasElement.h:
        * html/HTMLDataListElement.h:
        * html/HTMLDetailsElement.h:
        * html/HTMLDivElement.h:
        * html/HTMLEmbedElement.h:
        * html/HTMLFieldSetElement.h:
        * html/HTMLFormElement.h:
        * html/HTMLFrameElement.h:
        * html/HTMLFrameSetElement.h:
        * html/HTMLHtmlElement.h:
        * html/HTMLIFrameElement.h:
        * html/HTMLImageElement.h:
        * html/HTMLInputElement.h:
        * html/HTMLLabelElement.h:
        * html/HTMLLegendElement.h:
        * html/HTMLLinkElement.h:
        * html/HTMLMapElement.h:
        * html/HTMLMarqueeElement.h:
        * html/HTMLMetaElement.h:
        * html/HTMLMeterElement.h:
        * html/HTMLOListElement.h:
        * html/HTMLObjectElement.h:
        * html/HTMLOptGroupElement.h:
        * html/HTMLOptionElement.h:
        * html/HTMLParamElement.h:
        * html/HTMLProgressElement.h:
        * html/HTMLScriptElement.h:
        * html/HTMLSelectElement.h:
        * html/HTMLSourceElement.h:
        * html/HTMLStyleElement.h:
        * html/HTMLSummaryElement.h:
        * html/HTMLTableCaptionElement.h:
        * html/HTMLTableElement.h:
        * html/HTMLTableRowElement.h:
        * html/HTMLTemplateElement.h:
        * html/HTMLTextAreaElement.h:
        * html/HTMLTitleElement.h:
        * html/HTMLTrackElement.h:
        * html/HTMLVideoElement.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::scriptValueAsNode):
        * mathml/MathMLMencloseElement.h:
        * svg/SVGAltGlyphDefElement.h:
        * svg/SVGAltGlyphElement.h:
        * svg/SVGAltGlyphItemElement.h:
        * svg/SVGAnimateMotionElement.h:
        * svg/SVGAnimateTransformElement.h:
        * svg/SVGCircleElement.h:
        * svg/SVGClipPathElement.h:
        * svg/SVGCursorElement.h:
        * svg/SVGEllipseElement.h:
        * svg/SVGFEDistantLightElement.h:
        * svg/SVGFEFuncAElement.h:
        * svg/SVGFEFuncBElement.h:
        * svg/SVGFEFuncGElement.h:
        * svg/SVGFEFuncRElement.h:
        * svg/SVGFEMergeNodeElement.h:
        * svg/SVGFEPointLightElement.h:
        * svg/SVGFESpotLightElement.h:
        * svg/SVGFilterElement.h:
        * svg/SVGFontElement.h:
        * svg/SVGFontFaceElement.h:
        * svg/SVGFontFaceNameElement.h:
        * svg/SVGFontFaceSrcElement.h:
        * svg/SVGFontFaceUriElement.h:
        * svg/SVGForeignObjectElement.h:
        * svg/SVGGlyphElement.h:
        * svg/SVGGlyphRefElement.h:
        * svg/SVGHKernElement.h:
        * svg/SVGImageElement.h:
        * svg/SVGLineElement.h:
        * svg/SVGLinearGradientElement.h:
        * svg/SVGMPathElement.h:
        * svg/SVGMarkerElement.h:
        * svg/SVGMaskElement.h:
        * svg/SVGMissingGlyphElement.h:
        * svg/SVGPathElement.h:
        * svg/SVGPatternElement.h:
        * svg/SVGPolygonElement.h:
        * svg/SVGPolylineElement.h:
        * svg/SVGRadialGradientElement.h:
        * svg/SVGRectElement.h:
        * svg/SVGSVGElement.h:
        * svg/SVGScriptElement.h:
        * svg/SVGStopElement.h:
        * svg/SVGStyleElement.h:
        * svg/SVGTextElement.h:
        * svg/SVGTextPathElement.h:
        * svg/SVGTitleElement.h:
        * svg/SVGUseElement.h:
        * svg/SVGVKernElement.h:
        * svg/SVGViewElement.h:

2014-09-21  Christophe Dumez  <cdumez@apple.com>

        Fix post-mortem nits for r173724
        https://bugs.webkit.org/show_bug.cgi?id=136986

        Reviewed by Darin Adler.

        Fix post-mortem nits for r173724.

        No new tests, no behavior change.

        * editing/EditingStyle.cpp:
        (WebCore::HTMLAttributeEquivalent::attributeValueAsCSSValue):
        (WebCore::HTMLFontSizeEquivalent::attributeValueAsCSSValue):
        Use nullptr instead of 0.

        * editing/SplitElementCommand.cpp:
        (WebCore::SplitElementCommand::doUnapply):
        Use getIdAttribute() / setIdAttribute().

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::computePreferredLogicalWidths):
        Use fastHasAttribute() for nowrap and do an early return to avoid
        calling styleOrColLogicalWidth() if the nowrap attribute is missing.

2014-09-21  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, speculative build fix.
        
        If you use typed arrays, you gotta include runtime/TypedArrayInlines.h.

        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:

2014-09-19  Jer Noble  <jer.noble@apple.com>

        [EME][Mac] Support secure proof of key release in the com.apple.fps.2_0 keysystem.
        https://bugs.webkit.org/show_bug.cgi?id=136898

        Reviewed by Eric Carlson.

        Add support for proof of key release to the CDM by supporting a new "mime" type called
        "keyrelease". When a session of type "keyrelease" is created, the initData is the server
        certificate, the keyMessage contains the first stored proof of key release if present,
        and closing the session will remove that proof from storage.

        * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm:
        (WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystemAndMimeType):
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest):
        (WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys):
        (WebCore::sessionStorageDirectory):
        (WebCore::CDMSessionMediaSourceAVFObjC::update):
        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyReleaseMessage):

2014-09-19  Jer Noble  <jer.noble@apple.com>

        [Media][Mac] Buffered range slides around as you resize a window
        https://bugs.webkit.org/show_bug.cgi?id=136960

        Reviewed by Dean Jackson.

        Rather than using a canvas as the background image for the timeline slider, use a generated SVG image
        to represent the buffered ranges.

        * Modules/mediacontrols/mediaControlsApple.css:
        (audio::-webkit-media-controls-timeline):
        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.createControls):
        (Controller.prototype.updateProgress):

2014-09-19  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CoordinatedGraphics][EFL] window.scrollTo(x, y) doesn't work when fixed layout is enabled
        https://bugs.webkit.org/show_bug.cgi?id=136917

        Reviewed by Darin Adler.

        When fixed layout is enabled, scrollTo doesn't work on EFL port with coordinated graphics.
        Since updateScrollbars() doesn't update scroll position when delegatesScrolling() is enabled. 
        To fix this issue, EFL port should update scroll position based on WK2 port. This patch
        update scroll position in FrameView::requestScrollPositionUpdate() as Mac port.

        TestWebKitAPI: Tools/TestWebKitAPI/Tests/WebKit2/efl/WKViewScrollTo

        * page/FrameView.cpp:
        (WebCore::FrameView::requestScrollPositionUpdate):

2014-09-19  Brent Fulgham  <bfulgham@apple.com>

        Latching in iframes is not working as expected
        https://bugs.webkit.org/show_bug.cgi?id=136729
        <rdar://problem/18370549>

        Reviewed by Simon Fraser.

        Test: platform/mac/fast/scrolling/scrolling-iframe-100pct.html

        Correct latching behavior by moving the concept of latching from the event handler to the main frame.
        The event handlers are per-document, and can improperly latch to the iframe element (rather than the
        scrollable content of the iframe) resulting in incorrect behavior.

        Also move the wheel event delta tracking to the main frame, as this is similarly "top-level" in nature.

        * WebCore.vcxproj/WebCore.vcxproj: Add new LatchedState class.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler): Update constructor after moving some members to the new
        LatchedState object.
        (WebCore::EventHandler::clear): Call 'clear' on the LatchedState class.
        (WebCore::EventHandler::platformRecordWheelEvent):  Update for new LatchedState class.
        (WebCore::EventHandler::handleWheelEvent): Ditto.
        (WebCore::EventHandler::clearLatchedState): Ditto.
        (WebCore::EventHandler::defaultWheelEventHandler): Ditto.
        * page/EventHandler.h:
        * page/LatchedState.cpp: Added.
        (WebCore::LatchedState::LatchedState):
        (WebCore::LatchedState::~LatchedState):
        (WebCore::LatchedState::clear):
        (WebCore::LatchedState::setWheelEventElement):
        (WebCore::LatchedState::setWidgetIsLatched):
        (WebCore::LatchedState::setPreviousWheelScrolledElement):
        (WebCore::LatchedState::setScrollableContainer):
        * page/LatchedState.h: Added.
        (WebCore::LatchedState::wheelEventElement):
        (WebCore::LatchedState::frame):
        (WebCore::LatchedState::setFrame):
        (WebCore::LatchedState::widgetIsLatched):
        (WebCore::LatchedState::previousWheelScrolledElement):
        (WebCore::LatchedState::scrollableContainer):
        (WebCore::LatchedState::startedGestureAtScrollLimit):
        (WebCore::LatchedState::setStartedGestureAtScrollLimit):
        * page/MainFrame.cpp:
        (WebCore::MainFrame::MainFrame): Update for new members (LatchedState and WheelEventDeltaTracker)
        * page/MainFrame.h:
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::platformPrepareForWheelEvents): Use mainFrame-located latching information.
        (WebCore::EventHandler::platformRecordWheelEvent): Use mainFrame-located wheel event delta tracking.
        (WebCore::EventHandler::platformCompleteWheelEvent): Make sure to use the latched frame as well as
        the latched element so that events get routed properly.
        (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Update for new mainFrame
        location for latched state information.

2014-09-19  Chris Dumez  <cdumez@apple.com>

        Minimize virtual function calls in MarkupAccumulator
        https://bugs.webkit.org/show_bug.cgi?id=136957

        Reviewed by Benjamin Poulain.

        This patch minimizes the number of virtual function calls in
        MarkupAccumulator by:
        - De-virtualizing MarkupAccumulator::appendString(), which is never
          overridden
        - Having MarkupAccumulator::appendEndTag() virtual function take an
          Element in argument instead of a Node, as it only applies to Element.
          Also add a non-virtual overload that takes a Node in argument and
          that does the isElementNode() check so that we don't need to explicitly
          do the check at each call site.

        No new tests, no behavior change.

        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendEndTag):
        (WebCore::MarkupAccumulator::shouldSelfClose):
        (WebCore::MarkupAccumulator::appendEndMarkup):
        * editing/MarkupAccumulator.h:
        (WebCore::MarkupAccumulator::appendEndTag):
        * page/PageSerializer.cpp:
        (WebCore::SerializerMarkupAccumulator::appendEndTag):

2014-09-19  Pratik Solanki  <psolanki@apple.com>

        [iOS] ASSERTION FAILED: WTF::isMainThread() in WebCore::memoryCache() when using WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=136962
        <rdar://problem/18342344>

        Reviewed by Geoffrey Garen.

        The disk cache monitor callback code was being executed on the main thread. This is wrong
        when the web thread is being used in WebKit1 on iOS. The code needs to run on the web
        thread. Use WebThreadRun to dispatch the block to the web thread. This works for WebKit2 as
        well since when web thread is not being used, WebThreadRun invokes the block directly.

        * loader/cocoa/DiskCacheMonitorCocoa.mm:
        (WebCore::DiskCacheMonitor::DiskCacheMonitor):

2014-09-19  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix; pass duration into the lambda.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationChanged):

2014-09-19  Dean Jackson  <dino@apple.com>

        Multithreaded WebGL is a bad idea - remove it
        https://bugs.webkit.org/show_bug.cgi?id=136964
        <rdar://problem/18399858>

        Reviewed by Brent Fulgham.

        We should not allow multithreaded GL access. Remove the
        feature.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::create):
        * page/Settings.in:
        * platform/graphics/GraphicsContext3D.h:
        (WebCore::GraphicsContext3D::Attributes::Attributes):
        * platform/graphics/mac/GraphicsContext3DMac.mm:
        (WebCore::GraphicsContext3D::GraphicsContext3D):

2014-09-19  Eric Carlson  <eric.carlson@apple.com>

        [MSE][Mac] work around AVSampleBufferRenderSynchronizer early callbacks
        https://bugs.webkit.org/show_bug.cgi?id=136958

        Reviewed by Jer Noble.

        No new tests, we have been unable to come up with a test case that reproduces
        this issue reliably.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationChanged): Set the synchronizer
            time to duration when the duration time observer is called early. Add more logging.

2014-09-19  Benjamin Poulain  <bpoulain@apple.com>

        CSS JIT: allocate the minimum required register count in debug
        https://bugs.webkit.org/show_bug.cgi?id=136933

        Reviewed by Andreas Kling.

        It is hard to catch bugs of minimumRegisterRequirements() because every CPU has a different
        number of registers available by default.

        This patch aims at improving testing by creating artificial register pressure when running
        in debug. When running in debug, we no longer allocate all the available registers right away.
        Instead, we allocate just enough to satisfy minimumRegisterRequirements().

        The expectation with this is that under-allocation would be detected quicker since they would
        crash debug builds.

        * cssjit/RegisterAllocator.h:
        (WebCore::RegisterAllocator::RegisterAllocator):
        (WebCore::RegisterAllocator::reserveCallerSavedRegisters):
        (WebCore::RegisterAllocator::availableRegisterCount): Deleted.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

2014-09-19  Benjamin Poulain  <bpoulain@apple.com>

        Add a size check for CSSSelector
        https://bugs.webkit.org/show_bug.cgi?id=136882

        Reviewed by Christophe Dumez.

        * css/CSSSelector.cpp:

2014-09-19  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        REGRESSION(r173464): It broke the !ENABLE(PICTURE_SIZES) build
        https://bugs.webkit.org/show_bug.cgi?id=136942

        Reviewed by Simon Fraser.

        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseAttribute):

2014-09-19  Simon Fraser  <simon.fraser@apple.com>

        Provide a default argument for the most commonly used HitTestRequest variant
        https://bugs.webkit.org/show_bug.cgi?id=136653

        Reviewed by Darin Adler.

        Make the default HitTestRequest flags be ReadOnly | Active | DisallowShadowContent
        and change call sites using the default flags to use a HitTestRequest temporary.

        * dom/TreeScope.cpp:
        (WebCore::nodeFromPoint):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::contains):
        * page/DragController.cpp:
        (WebCore::elementUnderMouse):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseDraggedEvent):
        (WebCore::EventHandler::handleMousePressEvent):
        * rendering/HitTestRequest.h:
        (WebCore::HitTestRequest::HitTestRequest):

2014-09-19  Chris Dumez  <cdumez@apple.com>

        Allow DOM methods to return references instead of pointers
        https://bugs.webkit.org/show_bug.cgi?id=136931

        Reviewed by Sam Weinig.

        It is common practice in WebKit to have methods return a reference
        instead of a pointer if the pointer can never be null. However, this
        unfortunately did not work for DOM methods (functions called by JS
        bindings). This prevented further refactoring.

        This patch brings support for having DOM methods to return references
        instead of pointers when the pointer cannot be null. The generated
        bindings were calling WTF::getPtr() on the pointer type returned by
        the implementation already (in case it was a smart pointer type).
        This patch leverages this by having WTF::getPtr() convert reference
        arguments into raw pointers.

        This patch also updates a few DOM methods on Document and Element
        classes to return a reference instead of a pointer, to test the change.
        There are likely more DOM methods that can be updated though.

        No new tests, no behavior change.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::classList):
        * bindings/js/JSDOMBinding.h:
        (WTF::getPtr): Deleted.
        * dom/Document.cpp:
        (WebCore::Document::implementation):
        (WebCore::Document::webkitGetNamedFlows):
        (WebCore::Document::namedFlows):
        (WebCore::Document::setXMLVersion):
        (WebCore::Document::setXMLStandalone):
        (WebCore::Document::securityPolicy):
        (WebCore::Document::styleSheets):
        * dom/Document.h:
        (WebCore::Document::timing):
        * dom/Element.cpp:
        (WebCore::Element::classList):
        (WebCore::Element::dataset):
        * dom/Element.h:
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::setPosition):
        (WebCore::MediaControlPanelElement::resetPosition):
        (WebCore::MediaControlClosedCaptionsTrackListElement::updateDisplay):
        * html/track/VTTRegion.cpp:
        (WebCore::VTTRegion::displayLastTextTrackCueBox):
        (WebCore::VTTRegion::willRemoveTextTrackCueBox):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getAllStyleSheets):
        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
        * page/PerformanceTiming.cpp:
        (WebCore::PerformanceTiming::documentTiming):
        * rendering/FlowThreadController.cpp:
        (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):

2014-09-19  Daniel Bates  <dabates@apple.com>

        Always assume internal SDK when building configuration Production
        https://bugs.webkit.org/show_bug.cgi?id=136925
        <rdar://problem/18362399>

        Reviewed by Dan Bernstein.

        As a side effect of this change we will always enable ENABLE_TOUCH_EVENTS, ENABLE_IOS_{GESTURE, TOUCH}_EVENTS,
        and ENABLE_XSLT when either building configuration Production or building with the Internal SDK.

        * Configurations/Base.xcconfig:

2014-09-19  Chris Dumez  <cdumez@apple.com>

        Optimize MarkupAccumulator::appendText()
        https://bugs.webkit.org/show_bug.cgi?id=136935

        Reviewed by Benjamin Poulain.

        MarkupAccumulator::appendText() was calling the generic appendNodeValue()
        method to append the text. appendNodeValue() supports any kind of Node and
        thus calls the Node::nodeValue() virtual function.

        Since appendText() is the only caller to appendNodeValue(), this patch
        inlines the code in appendText() and makes it specific to Text Node, and
        thus more efficient. The code now calls CharacterData::data() instead of
        the Node::nodeValue() virtual function. This patch also updates
        CharacterData::data() to return a const reference to avoid copying the
        return value.

        No new tests, no behavior change.

        * dom/CharacterData.h:
        (WebCore::CharacterData::data):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::appendText):
        (WebCore::MarkupAccumulator::appendNodeValue): Deleted.
        * editing/MarkupAccumulator.h:

2014-09-18  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Dot not allow to create delete-on-destroy GMainLoopSources
        https://bugs.webkit.org/show_bug.cgi?id=136923

        Reviewed by Gustavo Noronha Silva.

        * platform/gtk/GtkDragAndDropHelper.cpp:
        (WebCore::GtkDragAndDropHelper::handleDragLeave): Use GMainLoopSource::scheduleAndDeleteOnDestroy().

2014-09-18  Roger Fong  <roger_fong@apple.com>

        Add a move operator and constructor override to HashSet.
        https://bugs.webkit.org/show_bug.cgi?id=136934.

        * dom/Node.cpp:
        (WebCore::Document::invalidateNodeListAndCollectionCaches): Remove the now unneeded call to clear the HashSet.

2014-09-18  Roger Fong  <roger_fong@apple.com>

        [Windows] Media tests all fail because they cannot find localized strings.
        
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::mediaControlsScript):
        Make sure to use localized strings files in RenderThemeSafari.

2014-09-18  Simon Fraser  <simon.fraser@apple.com>

        Remove generator/yield terminology in RenderInline's GeneratorContext
        https://bugs.webkit.org/show_bug.cgi?id=119278

        Reviewed by Sam Weinig.
        
        Get rid of the icky Generator/yield syntax used for collecting rects in RenderInline.
        Just replace the operator() with an explicit addRect().
        
        Also some drive-by nullptr cleanup, and removing default arguments from
        addChildIgnoringContinuation() calls.

        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::willBeDestroyed):
        (WebCore::RenderInline::styleDidChange):
        (WebCore::RenderInline::splitInlines):
        (WebCore::RenderInline::addChildToContinuation):
        (WebCore::RenderInline::generateLineBoxRects):
        (WebCore::RenderInline::generateCulledLineBoxRects):
        * rendering/RenderInline.h:

2014-09-18  Jeremy Jones  <jeremyj@apple.com>

        Improve fullscreen video rotation animation.
        https://bugs.webkit.org/show_bug.cgi?id=136870

        Reviewed by Simon Fraser.

        Instead of setting the frame on the video layer, set position and bounds separately. This allows the position to be synchronized with the rest of the animation.
        When using a fencePort to synchronize animations, if the fence times out, pivoting around the center provides a better fallback.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVVideoLayer setVideoSublayer:]): added
        (-[WebAVVideoLayer videoSublayer]): added
        (-[WebAVVideoLayer setBounds:]):  set position and bounds insted of frame.
        (WebVideoFullscreenInterfaceAVKit::setupFullscreen): use setVideoSublayer
        * platform/ios/WebVideoFullscreenModelVideoElement.mm:
        (WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): set bounds and anchorPoint instead of frame
        (WebVideoFullscreenModelVideoElement::setVideoLayerFrame): set bounds instead of frame.

2014-09-17  Myles C. Maxfield  <mmaxfield@apple.com>

        Text laid out with the SVG -> OTF font converter does not have the same metrics as with the SVG font code path
        https://bugs.webkit.org/show_bug.cgi?id=136907

        Reviewed by Darin Adler.

        There are three things that are causing text laid out with the SVG -> OTF font converter to not have metrics that
        measure our existing SVG codepath. They are:

        1. Creating a font with a 0 ascent or descent makes OS X think that something is wrong with the font, and take
        a different codepath when trying to parse ascent and descent information. This patch checks for this condition
        and sets the ascent/descent to 1 FUnit instead (which is generally much smaller than a pixel).
        2. Our SVG font codepath hardcodes a line gap of 1/10th of the font size for every font. This patch makes the
        font converter obey this.
        3. The converter was not allowing for default glyph advances as per the SVG font specification. This patch
        does so.

        No new tests yet, but they will come soon! I promise!

        * svg/SVGToOTFFontConversion.cpp:
        (WebCore::SVGToOTFFontConverter::appendHHEATable):
        (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter):

2014-09-18  Daniel Bates  <dabates@apple.com>

        REGRESSION (r168921): SVG elements may be unnecessarily rebuilt
        https://bugs.webkit.org/show_bug.cgi?id=136373

        Reviewed by David Kilzer.

        Fixes an issue where a SVG element may be unnecessarily rebuilt. In particular,
        it is unnecessary to rebuild a SVG element that will be removed from the document.

        Test: svg/custom/remove-subtree-including-use-with-child-textpath-that-references-earlier-path.html

        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::removeAllElementReferencesForTarget): Modified to remove a SVG element
        from the list of elements to be rebuilt.

2014-09-18  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed rollout r173731. Broke multiple builds.

        * WebCore.exp.in:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::show):
        * inspector/InspectorController.h:
        * page/PageDebuggable.cpp:
        (WebCore::PageDebuggable::connect):
        * page/PageDebuggable.h:
        * testing/Internals.cpp:
        (WebCore::Internals::openDummyInspectorFrontend):

2014-09-18  Beth Dakin  <bdakin@apple.com>

        ASSERT in RenderBox::instrinsicScrollbarLogicalWidth opening the inspector
        https://bugs.webkit.org/show_bug.cgi?id=136929

        Reviewed by Simon Fraser.

        This is a regression from http://trac.webkit.org/changeset/173668 
        This code is wrong after that change because it assumes that overflow:scroll will 
        always have a scrollbar. That is no longer the case. We need to check to make sure 
        it’s an overflow:scroll that does NOT have overflow:auto behavior.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::instrinsicScrollbarLogicalWidth):

2014-09-18  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Should be able to attach a debugger to a JSContext before anything is executed
        https://bugs.webkit.org/show_bug.cgi?id=136893

        Reviewed by Timothy Hatcher.

        Automatic inspection is currently disabled for web pages.
        This just updates the interfaces that changed.

        * WebCore.exp.in:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::connectFrontend):
        (WebCore::InspectorController::show):
        * inspector/InspectorController.h:
        * page/PageDebuggable.cpp:
        (WebCore::PageDebuggable::connect):
        * page/PageDebuggable.h:
        * testing/Internals.cpp:
        (WebCore::Internals::openDummyInspectorFrontend):

2014-09-18  Chris Dumez  <cdumez@apple.com>

        Use fastHasAttribute() / fastGetAttribute() when possible
        https://bugs.webkit.org/show_bug.cgi?id=136900

        Reviewed by Benjamin Poulain.

        Use fastHasAttribute() / fastGetAttribute() when possible, that is when
        the attribute is not SVG-animated or the |style| attribute, to avoid
        synchronizing attributes unnecessarily.

        Also avoid calling hasAttribute(xxxAttr) then getAttribute(xxxAttr) as
        it causes 2 linear searches. It is best to call getAttribute(xxxAttr)
        directly and check if it returns the nullAtom.

        No new tests, no behavior change. Element::fastAttributeLookupAllowed()
        is there as a safety set for debug builds.

        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::isEnabled):
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
        (WebCore::AccessibilityNodeObject::hierarchicalLevel):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
        * dom/Document.cpp:
        (WebCore::Document::hasManifest):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::keyMatchesLabelForAttribute):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets):
        * dom/Element.cpp:
        (WebCore::Element::imageSourceURL):
        (WebCore::Element::pseudo):
        (WebCore::Element::spellcheckAttributeState):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::removeEmbeddingUpToEnclosingBlock):
        * editing/EditingStyle.cpp:
        (WebCore::HTMLAttributeEquivalent::attributeValueAsCSSValue):
        (WebCore::HTMLFontSizeEquivalent::attributeValueAsCSSValue):
        * editing/SplitElementCommand.cpp:
        (WebCore::SplitElementCommand::doUnapply):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::draggable):
        (WebCore::HTMLAnchorElement::sendPings):
        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::updateWidget):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::addSubresourceAttributeURLs):
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::value):
        * html/HTMLDocument.cpp:
        (WebCore::HTMLDocument::dir):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::imageSourceURL):
        (WebCore::HTMLEmbedElement::addSubresourceAttributeURLs):
        * html/HTMLFieldSetElement.cpp:
        (WebCore::HTMLFieldSetElement::~HTMLFieldSetElement):
        (WebCore::updateFromControlElementsAncestorDisabledStateUnder):
        (WebCore::HTMLFieldSetElement::disabledAttributeChanged):
        (WebCore::HTMLFieldSetElement::disabledStateChanged):
        (WebCore::HTMLFieldSetElement::childrenChanged):
        (WebCore::HTMLFieldSetElement::didMoveToNewDocument):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::action):
        * html/HTMLFrameElement.cpp:
        (WebCore::HTMLFrameElement::noResize):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::location):
        * html/HTMLHRElement.cpp:
        (WebCore::HTMLHRElement::collectStyleForPresentationAttribute):
        * html/HTMLHtmlElement.cpp:
        (WebCore::HTMLHtmlElement::insertedByParser):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::altText):
        (WebCore::HTMLImageElement::alt):
        (WebCore::HTMLImageElement::draggable):
        (WebCore::HTMLImageElement::src):
        (WebCore::HTMLImageElement::addSubresourceAttributeURLs):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::finishParsingChildren):
        (WebCore::HTMLInputElement::altText):
        (WebCore::HTMLInputElement::reset):
        * html/HTMLLabelElement.cpp:
        (WebCore::HTMLLabelElement::control):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::process):
        (WebCore::HTMLLinkElement::rel):
        * html/HTMLMetaElement.cpp:
        (WebCore::HTMLMetaElement::content):
        (WebCore::HTMLMetaElement::httpEquiv):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::imageSourceURL):
        (WebCore::HTMLObjectElement::addSubresourceAttributeURLs):
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::groupLabelText):
        * html/HTMLProgressElement.cpp:
        (WebCore::HTMLProgressElement::max):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::sourceAttributeValue):
        (WebCore::HTMLScriptElement::charsetAttributeValue):
        (WebCore::HTMLScriptElement::languageAttributeValue):
        (WebCore::HTMLScriptElement::forAttributeValue):
        (WebCore::HTMLScriptElement::eventAttributeValue):
        * html/HTMLTableCellElement.cpp:
        (WebCore::HTMLTableCellElement::addSubresourceAttributeURLs):
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::rules):
        (WebCore::HTMLTableElement::summary):
        (WebCore::HTMLTableElement::addSubresourceAttributeURLs):
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::align):
        (WebCore::HTMLTableSectionElement::ch):
        (WebCore::HTMLTableSectionElement::vAlign):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::maxLength):
        * html/SearchInputType.cpp:
        (WebCore::SearchInputType::searchEventsShouldBeDispatched):
        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::create):
        * page/Frame.cpp:
        (WebCore::Frame::matchLabelsAgainstElement):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeFrame):
        * platform/win/PasteboardWin.cpp:
        (WebCore::Pasteboard::writeImageToDataObject):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::altDisplayString):
        * rendering/RenderSearchField.cpp:
        (WebCore::RenderSearchField::autosaveName):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::computePreferredLogicalWidths):
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::drawContentIntoMaskImage):

2014-09-18  Chris Dumez  <cdumez@apple.com>

        Have LiveNodeLists / HTMLCollections's elementMatches() take a reference
        https://bugs.webkit.org/show_bug.cgi?id=136902

        Reviewed by Darin Adler.

        Have LiveNodeLists / HTMLCollections's elementMatches() take a reference
        in argument instead of a pointer as the Element can never be null.

        No new tests, no behavior change.

        * dom/ClassNodeList.h:
        (WebCore::ClassNodeList::elementMatches):
        * dom/DocumentOrderedMap.cpp:
        (WebCore::keyMatchesWindowNamedItem):
        (WebCore::keyMatchesDocumentNamedItem):
        * dom/Element.cpp:
        (WebCore::Element::updateNameForDocument):
        (WebCore::Element::updateIdForDocument):
        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::namedItem):
        * dom/LiveNodeList.h:
        (WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
        * dom/NameNodeList.h:
        (WebCore::NameNodeList::elementMatches):
        * dom/TagNodeList.h:
        (WebCore::TagNodeList::elementMatches):
        (WebCore::HTMLTagNodeList::elementMatches):
        * html/HTMLCollection.cpp:
        (WebCore::isMatchingElement):
        * html/HTMLNameCollection.cpp:
        (WebCore::WindowNameCollection::elementMatchesIfNameAttributeMatch):
        (WebCore::WindowNameCollection::elementMatches):
        (WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):
        (WebCore::DocumentNameCollection::elementMatchesIfNameAttributeMatch):
        (WebCore::DocumentNameCollection::elementMatches):
        * html/HTMLNameCollection.h:
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::elementMatches):
        * html/LabelsNodeList.h:
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):
        (WebCore::RadioNodeList::elementMatches):
        * html/RadioNodeList.h:

2014-09-18  Carlos Garcia Campos  <cgarcia@igalia.com>

        Remove unused methods from MediaPlayerClient
        https://bugs.webkit.org/show_bug.cgi?id=136884

        Reviewed by Eric Carlson.

        Remove unused methods from MediaPlayerClient that introduce
        dependencies on WebCore types.

        * html/HTMLMediaElement.cpp:
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerOwningDocument): Deleted.
        (WebCore::MediaPlayerClient::mediaPlayerHostWindow): Deleted.
        (WebCore::MediaPlayerClient::mediaPlayerWindowClipRect): Deleted.

2014-09-17  Iago Toral  <itoral@igalia.com> and Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Add Wayland support to GLContextEGL
        https://bugs.webkit.org/show_bug.cgi?id=136829

        Reviewed by Martin Robinson.

        * platform/graphics/egl/GLContextEGL.cpp:
        (WebCore::sharedEGLDisplay): Special-case the shared EGL display initialization
        for the GTK port when running under Wayland. In that case the pointer to the
        native wl_display object should be passed to eglGetDisplay(). If not running
        under Wayland we should fall back to using the shared X11 display (if support
        for that display system is enabled) or the EGL_DEFAULT_DISPLAY.

2014-09-17  Daniel Bates  <dabates@apple.com>

        Unreviewed, rolling out r173695.

        Broke building third-party Legacy WebKit apps; will
        investigate offline

        Reverted changeset:

        "[iOS] Make WebCore build with public iOS SDK"
        https://bugs.webkit.org/show_bug.cgi?id=136487
        http://trac.webkit.org/changeset/173695

2014-09-17  Roger Fong  <roger_fong@apple.com>

        Speculative fix for a fast\dom\html-collections-named-getter failing only in Debug builds.

        * dom/Node.cpp:
        (WebCore::Document::invalidateNodeListAndCollectionCaches):

2014-09-17  Benjamin Poulain  <bpoulain@apple.com>

        Add parsing for :nth-child(An+B of selector)
        https://bugs.webkit.org/show_bug.cgi?id=136845

        Reviewed by Antti Koivisto.

        Add support for parsing :nth-child(of). The implementation of selector matching
        will be in a follow up, there are enough edge cases here already.

        Spec here: http://dev.w3.org/csswg/selectors4/#the-nth-child-pseudo

        Test: fast/css/parsing-css-nth-child-of.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::detectFunctionTypeToken):
        (WebCore::CSSParser::realLex):
        The parser generate two new kinds of tokens:
        -NTHCHILDFUNCTION, matching the "nth-child" identifier.
        -NTHCHILDSELECTORSEPARATOR, matching the "of" keyword separating An+B from the selector list.

        NTHCHILDFUNCTION is used to extend the new syntax only for :nth-child() and not all the "nth" functions
        (e.g. :nth-of-type()).

        NTHCHILDSELECTORSEPARATOR exists for two reasons:
        -We must clear the "parsingMode" before parsing selectorList. If we failed to do that, the complex selectors
         would be parsed in NthChildMode, which has all kind of bad side effects.
        -The second reason is differentiacting "of" for all the other identifiers. Arguably, this could have been done
         in the grammar, but it is clearer this way since we already need the branches for the parsingMode.

        * css/CSSGrammar.y.in:
        Those are pretty much duplicates of the existing FUNCTION rules but supporting the new syntax.

        * css/CSSParserValues.cpp:
        (WebCore::selectorListMatchesPseudoElement):
        (WebCore::CSSParserSelector::matchesPseudoElement):
        Matching pseudo elements does not make much sense for those selectorList (e.g. :nth-child(2n of ::before)).
        Add helper function to fail parsing of those cases.

        * css/CSSParserValues.h:
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::selectorText):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::selectorList):
        Updated serialization code for CSS OM.

2014-09-17  Benjamin Poulain  <bpoulain@apple.com>

        CSS value in whitespace-separated list attribute selector (~=) mishandles tab/newline/etc.
        https://bugs.webkit.org/show_bug.cgi?id=136807

        Reviewed by Antti Koivisto.

        The spec defines selector lists as token separated by white space.

        The definition of white space for CSS Selectors is:
        "White space in Selectors consists of the code points SPACE (U+0020),
        TAB (U+0009), LINE FEED (U+000A), CARRIAGE RETURN (U+000D), and FORM FEED (U+000C)
        can occur in whitespace. Other space-like code points, such as EM SPACE (U+2003)
        and IDEOGRAPHIC SPACE (U+3000), are never part of white space."

        The old code was only matching SPACE (U+0020) which is buggy. This patch
        adds support for the other caracters.

        Tests: fast/selectors/attr-list-01.html
               fast/selectors/attribute-list-with-whitespace-in-selector.html
               fast/selectors/attribute-list-with-whitespace-in-value.html

        * css/SelectorChecker.cpp:
        (WebCore::attributeValueMatches):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::constructFragments):
        (WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
        Add the missing checks.

        * html/track/VTTRegion.cpp:
        (WebCore::VTTRegion::setRegionSettings):
        (WebCore::VTTRegion::parseSettingValue):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::hasRequiredFileIdentifier):
        (WebCore::WebVTTParser::collectTimingsAndSettings):
        * html/track/WebVTTParser.h:
        While looking for affected code, I discovered WebVTT redefines isHTMLSpace().
        I cleaned that code.

2014-09-17  Gavin Barraclough  <baraclough@apple.com>

        Aways have a PageThrottler (sometimes have a UserActivity::Impl)
        https://bugs.webkit.org/show_bug.cgi?id=136892

        Reviewed by Geoffrey Garen.

        Some instances of Page have a PageThrottler to track activity on the Page, and some do not.
        (Specifically, those created from WebPage in WK2 do, those related to WK1, SVG & inspector do not).

        We do this for three reasons:
            * We do not need to take AppNap assertions on WK1.
            * Some Pages do not track their visibility correctly, and would always claim to be visible.
            * Page VisibilityState is not set until after construction, so if we instantiate

        Creating the entire PageThrottler lazily has the drawback that we have to check for its existence at
        numerous points throughout the code, and we'll miss activity that occurs between the Page being created
        & the PageThrottler added to it (really a theoretical problem right now, since they're currently always
        created pretty much back to back).

        Instead, Page should always have a PageThrottler, & instead make the UserActivity::Impl on the
        PageThrottler be added later.

        * WebCore.exp.in:
            - createPageThrottler -> enablePageThrottler
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
            - Page::pageThrottler now returns a reference rather than a pointer
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::started):
            - Page::pageThrottler now returns a reference rather than a pointer
        * page/Page.cpp:
        (WebCore::Page::Page):
            - instantiate PageThrottler in constructor
        (WebCore::Page::enablePageThrottler):
            - renamed from createPageThrottler, instead of creating the PageThrottler this method now
              instruct PageThrottler to create a UserActivity::Impl
        (WebCore::Page::setViewState):
            - m_pageThrottler is not a pointer
        (WebCore::Page::createPageThrottler): Deleted.
            - renamed to enablePageThrottler
        * page/Page.h:
        (WebCore::Page::pageThrottler):
            - now returns a reference
        * page/PageThrottler.cpp:
        (WebCore::PageThrottler::PageThrottler):
            - no longer instantiate m_activity
        (WebCore::PageThrottler::createUserActivity):
            - lazily instantiate m_activity, call updateUserActivity
        (WebCore::PageThrottler::updateUserActivity):
            - m_activity may not yet be instantiated; added early return
        * page/PageThrottler.h:
            - m_activity becomes a std::unique_ptr, added createUserActivity

2014-09-17  Daniel Bates  <dabates@apple.com>

        [iOS] Make WebCore build with public iOS SDK
        https://bugs.webkit.org/show_bug.cgi?id=136487

        Reviewed by David Kilzer.

        Add headers that wrap Mac and iOS SPIs and update WebCore source files to include these
        headers instead of the corresponding actual SPI header(s).

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.vcxproj/WebCoreCG.props:
        * WebCore.vcxproj/copyForwardingHeaders.cmd:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/objc/DOMInternal.mm:
        * bridge/objc/objc_instance.mm:
        * platform/audio/ios/MediaSessionManagerIOS.mm:
        * platform/cocoa/DisplaySleepDisablerCocoa.cpp:
        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        * platform/graphics/cg/BitmapImageCG.cpp:
        * platform/graphics/cg/ColorCG.cpp:
        * platform/graphics/cg/GraphicsContextCG.cpp:
        * platform/graphics/cg/ImageSourceCG.cpp:
        * platform/graphics/cg/PDFDocumentImage.cpp:
        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
        * platform/graphics/ios/FontCacheIOS.mm:
        * platform/graphics/ios/FontServicesIOS.mm:
        * platform/graphics/ios/SimpleFontDataIOS.mm:
        * platform/graphics/mac/FontMac.mm:
        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
        * platform/graphics/mac/MediaPlayerProxy.h:
        * platform/graphics/mac/SimpleFontDataMac.mm:
        * platform/ios/LegacyTileCache.mm:
        * platform/ios/LegacyTileGrid.mm:
        * platform/ios/LegacyTileGridTile.mm:
        * platform/ios/PlatformEventFactoryIOS.mm:
        * platform/ios/PlatformScreenIOS.mm:
        * platform/ios/WebEvent.mm:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        * platform/ios/wak/WAKAppKitStubs.h:
        * platform/ios/wak/WAKView.h:
        * platform/ios/wak/WKGraphics.h:
        * platform/ios/wak/WKGraphics.mm:
        * platform/ios/wak/WebCoreThread.mm:
        * platform/network/ios/QuickLook.mm:
        * platform/spi/ca/CALayerSPI.h: Added.
        * platform/spi/ca/CATiledLayerSPI.h: Added.
        * platform/spi/cf/CFLocaleSPI.h: Modified to use EXTERN_C.
        * platform/spi/cf/CFNetworkConnectionCacheSPI.h: Ditto. Also changed header visibility from private to project.
        * platform/spi/cf/CFURLRequestSPI.h: Ditto. Also modified to unconditionally include header <CoreFoundation/CFBase.h>.
        * platform/spi/cg/CGColorTransformSPI.h: Added.
        * platform/spi/cg/CGContextSPI.h: Added.
        * platform/spi/cg/CGFloatSPI.h: Added.
        * platform/spi/cg/CGFontGlyphSupportSPI.h: Added.
        * platform/spi/cg/CGFontInfoSPI.h: Added.
        * platform/spi/cg/CGFontRenderingSPI.h: Added.
        * platform/spi/cg/CGFontUnicodeSupportSPI.h: Added.
        * platform/spi/cg/CGImageSPI.h: Added.
        * platform/spi/cg/CGSRegionSPI.h: Added.
        * platform/spi/cocoa/DispatchSPI.h: Added.
        * platform/spi/cocoa/IOPMLibSPI.h: Added.
        * platform/spi/cocoa/MachVMSPI.h: Added.
        * platform/spi/cocoa/NSFileManagerSPI.h: Added.
        * platform/spi/cocoa/NSGeometrySPI.h: Added.
        * platform/spi/cocoa/NSPointerFunctionsSPI.h: Added.
        * platform/spi/cocoa/dyldSPI.h: Added.
        * platform/spi/ios/AVPlayerControllerSPI.h: Added.
        * platform/spi/ios/AVPlayerViewControllerSPI.h: Added.
        * platform/spi/ios/AVValueTimingSPI.h: Added.
        * platform/spi/ios/AVVideoLayerSPI.h: Added.
        * platform/spi/ios/CTFontDescriptorSPI.h: Added.
        * platform/spi/ios/CTFontSPI.h: Added.
        * platform/spi/ios/CUICatalogSPI.h: Added.
        * platform/spi/ios/CUIStyleEffectConfigurationSPI.h: Added.
        * platform/spi/ios/MPAVRoutingControllerSPI.h: Added.
        * platform/spi/ios/MobileGestaltSPI.h: Added.
        * platform/spi/ios/QLPreviewConverterSPI.h: Added.
        * platform/spi/ios/QuickLookSPI.h: Added.
        * rendering/RenderThemeIOS.mm:

2014-09-17  Gavin Barraclough  <barraclough@apple.com>

        DOM timer throttling for hidden plugins
        https://bugs.webkit.org/show_bug.cgi?id=136197

        Reviewed by Geoff Garen & Andreas Kling.

        For non-visible web pages we slow timers (since they can't be driving animations, etc).
        We should do the same for plugins.

        There are a few steps to this:
            - JSPluginElementFunctions notifies DOMTimer when script interacts with a plugin.
            - DOMTimerFireState keeps a record of events that occur while a timer is firing.
            - DOMTimer::fired detects timers that interact with invisible/inaudible plugins, and flags itself for throtting.
            - DOMTimer::intervalClampedToMinimum sets timer intervals appropriately.

        * bindings/js/JSPluginElementFunctions.cpp:
        (WebCore::pluginScriptObject):
            - notify DOMTimer when script interacts with a plugin.
        * html/HTMLPlugInElement.cpp:
        (WebCore::HTMLPlugInElement::isDetectable):
        * html/HTMLPlugInElement.h:
            - added isDetectable, to check for visible / audible plugins.
        * page/DOMTimer.cpp:
        (WebCore::DOMTimerFireState::DOMTimerFireState):
        (WebCore::DOMTimerFireState::~DOMTimerFireState):
            - track current DOMTimerFireState.
        (WebCore::DOMTimer::DOMTimer):
            - initialize m_throttleState.
        (WebCore::DOMTimer::scriptDidInteractWithPlugin):
            - if interaction with a plugin occurs while a timer is firing, record on the DOMTimerFireState.
        (WebCore::DOMTimer::fired):
            - set DOMTimerFireState, and update m_throttleState accordingly.
        (WebCore::DOMTimer::updateTimerIntervalIfNecessary):
            - remove redundant check of maxTimerNestingLevel (covered by intervalClampedToMinimum).
        (WebCore::DOMTimer::intervalClampedToMinimum):
            - Also take m_throttleState into account when throttling.
        * page/DOMTimer.h:
            - added scriptDidInteractWithPlugin, m_throttleState.
        * platform/audio/AudioHardwareListener.h:
            - enum -> enum class.
        * plugins/PluginViewBase.h:
        (WebCore::PluginViewBase::audioHardwareActivity):
            - expose audioHardwareActivity on PluginViewBase (previously available in subclass).

2014-09-16  Gavin Barraclough  <baraclough@apple.com>

        Exclude page visibility from PageThrottler's hysteresis
        https://bugs.webkit.org/show_bug.cgi?id=136866

        Reviewed by Geoff Garen.

        Including visibility in the hysteresis mechanism has the effect of prolonging the visually
        idle timeout, and causing the page hide event to be run at foreground priority. Neither of
        these are particularly desirable. Instead separate visibility from the rest of the page
        activities we track (and apply hysteresis to), and feed this directly into determination
        of the UserActivity state.

        * page/PageThrottler.cpp:
        (WebCore::PageThrottler::PageThrottler):
            - when the PageThrottler is instantiated call updateUserActivity to set initial UserActivity.
        (WebCore::PageThrottler::incrementActivityCount):
            - simplified - when m_activityCount becomes non-zero, start m_hysteresis.
        (WebCore::PageThrottler::decrementActivityCount):
            - simplified - when m_activityCount becomes zero, stop m_hysteresis.
        (WebCore::PageThrottler::updateUserActivity):
            - end the UserActivity (allow AppNap) if visually idle and no page activity is taking place.
        (WebCore::PageThrottler::setViewState):
            - when the visually idle state changed call updateUserActivity to update the UserActivity.
        (WebCore::PageThrottler::started):
        (WebCore::PageThrottler::stopped):
            - when the hysteresis state changed call updateUserActivity to update the UserActivity.
        (WebCore::PageThrottler::updateHysteresis): Deleted.
            - removed: simplified the hysteresis trigger, we now incorporate visually idle state in updateUserActivity.
        * page/PageThrottler.h:
            - removed updateHysteresis, added updateUserActivity.
        * platform/HysteresisActivity.h:
        (WebCore::HysteresisActivity::state):
            - determine the curent state of the HysteresisActivity - started, waiting, or stopped.

2014-09-17  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Fix runtime critical warnings when writing to the clipboard after r173687
        https://bugs.webkit.org/show_bug.cgi?id=136891

        Reviewed by Philippe Normand.

        * platform/gtk/PasteboardHelper.cpp:
        (WebCore::PasteboardHelper::writeClipboardContents): Check passed
        callback is not null before trying to ref/unref it since
        g_closure_ref/unref are not null safe.

2014-09-17  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Add a helper function for display system deduction
        https://bugs.webkit.org/show_bug.cgi?id=136849

        Reviewed by Martin Robinson.

        getDisplaySystemType() is a helper function that checks the type of the
        default GdkDisplay object and initializes a static variable to the
        corresponding value. It then returns the value of that variable.

        When building with the GTK+2 API (still the case with the GTK+2 plugin
        process) we default to X11.

        The function is declared and implemented in GtkUtilities files.

        * platform/gtk/GtkUtilities.cpp:
        (WebCore::widgetIsOnscreenToplevelWindow):
        (WebCore::getDisplaySystemType):
        * platform/gtk/GtkUtilities.h:

2014-09-16  Yusuke Suzuki  <utatane.tea@gmail.com>

        filterRootById accidentally clears inAdjacentChain flag
        https://bugs.webkit.org/show_bug.cgi?id=136851

        Reviewed by Benjamin Poulain.

        Test: fast/selectors/filter-root-node-with-selector-contains-adjacents.html

        * dom/SelectorQuery.cpp:
        (WebCore::filterRootById):

2014-09-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Fix layering violations in PasteboardGtk
        https://bugs.webkit.org/show_bug.cgi?id=136802

        Reviewed by Darin Adler.

        Refactor the Pasteboard code moving the WebCore parts to the Editor.

        * PlatformGTK.cmake: Add new file to compilation.
        * editing/Editor.cpp:
        (WebCore::Editor::performCutOrCopy):
        (WebCore::Editor::copyImage):
        * editing/Editor.h:
        * editing/gtk/EditorGtk.cpp: Added.
        (WebCore::createFragmentFromPasteBoardData):
        (WebCore::Editor::pasteWithPasteboard):
        (WebCore::getImageAndURLForElement):
        (WebCore::Editor::writeImageToPasteboard):
        (WebCore::Editor::writeSelectionToPasteboard):
        * page/DragController.cpp:
        (WebCore::DragController::startDrag):
        * page/gtk/DragControllerGtk.cpp:
        (WebCore::DragController::declareAndWriteDragImage):
        * platform/Pasteboard.h:
        * platform/gtk/DataObjectGtk.cpp: Remove range member, the caller
        should call setText() + setMarkup() intead.
        (WebCore::DataObjectGtk::setText):
        (WebCore::DataObjectGtk::setMarkup):
        (WebCore::DataObjectGtk::clearText):
        (WebCore::DataObjectGtk::clearMarkup):
        (WebCore::DataObjectGtk::clearAllExceptFilenames):
        * platform/gtk/DataObjectGtk.h:
        (WebCore::DataObjectGtk::hasText):
        (WebCore::DataObjectGtk::hasMarkup):
        (WebCore::DataObjectGtk::clearImage):
        (WebCore::DataObjectGtk::text):
        (WebCore::DataObjectGtk::markup):
        (WebCore::DataObjectGtk::setRange): Deleted.
        * platform/gtk/GtkDragAndDropHelper.h:
        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::PasteboardImage::PasteboardImage):
        (WebCore::PasteboardImage::~PasteboardImage):
        (WebCore::Pasteboard::write):
        (WebCore::Pasteboard::writeSelection): Deleted.
        (WebCore::getURLForImageElement): Deleted.
        (WebCore::Pasteboard::writeImage): Deleted.
        (WebCore::Pasteboard::documentFragment): Deleted.
        * platform/gtk/PasteboardHelper.cpp:
        (WebCore::displayFromFrame): Deleted.
        (WebCore::PasteboardHelper::getPrimarySelectionClipboard): Deleted.
        * platform/gtk/PasteboardHelper.h:

2014-09-16  Carlos Garcia Campos  <cgarcia@igalia.com>

        DragData should not depend on Clipboard, DocumentFragment, and Document
        https://bugs.webkit.org/show_bug.cgi?id=21358

        Reviewed by Darin Adler.

        Refactor DragData to not depend on Frame, DocumentFragment,
        Document and Range. DragData::asFragment() has been moved to
        DragController and implemented in the platform specific file.
        DragData methods using Frame has been reworked in Mac to not use
        Frame, since all other ports were ignoreing the frame parameter.

        * page/DragController.cpp:
        (WebCore::DragController::documentFragmentFromDragData): Make it
        a static member to be able to use createFragmentFromDragData().
        (WebCore::DragController::performDragOperation): Update to
        DragData API changes.
        (WebCore::DragController::dispatchTextInputEventFor): Ditto.
        (WebCore::DragController::concludeEditDrag): Ditto.
        (WebCore::documentFragmentFromDragData): Deleted.
        * page/DragController.h:
        * page/efl/DragControllerEfl.cpp:
        (WebCore::DragController::createFragmentFromDragData): Move
        DragData::asFragment() implementation here.
        * page/gtk/DragControllerGtk.cpp:
        (WebCore::DragController::dragOperation):
        (WebCore::DragController::createFragmentFromDragData): Ditto.
        * page/mac/DragControllerMac.mm:
        (WebCore::DragController::dragOperation):
        (WebCore::DragController::createFragmentFromDragData): Ditto.
        * page/win/DragControllerWin.cpp:
        (WebCore::DragController::createFragmentFromDragData): Ditto.
        * platform/DragData.h:
        * platform/efl/DragDataEfl.cpp:
        (WebCore::DragData::asPlainText): Remove Frame parameter.
        (WebCore::DragData::containsURL): Ditto.
        (WebCore::DragData::asURL): Ditto.
        (WebCore::DragData::asFragment): Deleted.
        * platform/gtk/DragDataGtk.cpp:
        (WebCore::DragData::asPlainText): Remove Frame parameter.
        (WebCore::DragData::containsCompatibleContent):
        (WebCore::DragData::containsURL): Ditto.
        (WebCore::DragData::asURL): Ditto.
        (WebCore::DragData::asFragment): Deleted.
        * platform/mac/DragDataMac.mm:
        (WebCore::DragData::asPlainText): Same implementation as the
        Editor.
        (WebCore::DragData::containsURL): Remove Frame parameter.
        (WebCore::DragData::asURL): Use URLByCanonicalizingURL() instead
        of using the Editor client.
        (WebCore::DragData::asFragment): Deleted.
        * platform/win/DragDataWin.cpp:
        (WebCore::DragData::containsURL): Remove Frame parameter.
        (WebCore::DragData::asURL): Ditto.
        (WebCore::DragData::asPlainText): Ditto.
        (WebCore::DragData::containsCompatibleContent):
        (WebCore::DragData::asFragment): Deleted.

2014-09-16  Chris Dumez  <cdumez@apple.com>

        Rename Node::childNode(index) to traverseToChildAt(index) for clarity
        https://bugs.webkit.org/show_bug.cgi?id=136825

        Reviewed by Benjamin Poulain.

        Rename Node::childNode(index) to traverseToChildAt(index) to make it
        clearer that the method is actually traversing the children and thus
        potentially expensive.

        This patch also avoids calling traverseToChildAt() in a couple of
        easily avoidable cases.

        No new tests, no behavior change.

        * WebCore.exp.in:
        * WebCore.order:
        Remove symbol for ContainerNode::childNode() as it was renamed. It does
        not seem we need to expose ContainerNode::traverseToChildAt().

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::stringForVisiblePositionRange):
        (WebCore::AccessibilityObject::lengthForVisiblePositionRange):
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]):
        Mechanical renaming.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::traverseToChildAt):
        (WebCore::ContainerNode::childNode): Deleted.
        * dom/ContainerNode.h:
        (WebCore::Node::traverseToChildAt):
        (WebCore::Node::childNode): Deleted.
        * dom/Node.h:
        - Rename Node / ContainerNode's childNode(index) to
          traverseToChildAt(index) to make it clear that it is actually
          traversing the children and thus potentially expensive.
        - Clean up the implementation of ContainerNode::traverseToChildAt()
          to avoid the use of an extra |i| variable.

        * dom/Position.cpp:
        (WebCore::Position::computeNodeBeforePosition):
        Avoid calling traverseToChildAt(-1). Relying on the unsigned argument
        wrapping and the method returning null in this case is a bit obscure
        and causes unnecessary traversal of all children.

        (WebCore::Position::computeNodeAfterPosition):
        (WebCore::Position::previous):
        (WebCore::Position::next):
        Mechanical renaming and update variable names to stop using
        abbreviations as per coding style.

        * dom/PositionIterator.h:
        (WebCore::PositionIterator::PositionIterator):
        * dom/Range.cpp:
        (WebCore::Range::insertNode):
        (WebCore::Range::checkNodeWOffset):
        (WebCore::Range::firstNode):
        (WebCore::Range::pastLastNode):
        * dom/RangeBoundaryPoint.h:
        (WebCore::RangeBoundaryPoint::set):
        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::removeChildrenInRange):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/TextIterator.cpp:
        (WebCore::nextInPreOrderCrossingShadowBoundaries):
        (WebCore::TextIterator::node):
        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
        * editing/VisibleUnits.cpp:
        (WebCore::nextLinePosition):
        * editing/cocoa/HTMLConverter.mm:
        (WebCore::editingAttributedStringFromRange):
        Mechanical renaming.

        * inspector/DOMPatchSupport.cpp:
        (WebCore::DOMPatchSupport::innerPatchChildren):
        Iterate over children while incrementing the |i| variable to avoid
        calling traverseToChildAt(index) repeatedly and thus traversing the
        children from the beginning every time.

2014-09-16  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Reduce a bit of churn setting initial remote inspection state
        https://bugs.webkit.org/show_bug.cgi?id=136875

        Reviewed by Timothy Hatcher.

        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::finishCreation):
        We no longer need to toggle this state.

2014-09-16  Enrica Casucci  <enrica@apple.com>

        Should have an editing behavior specific for IOS.
        https://bugs.webkit.org/show_bug.cgi?id=136876

        Reviewed by Sam Weinig.

        This patch introduces a new editing behavior type to be able
        to perform editing tasks that are specific to iOS.
        All the existing EditingBehavior methods return the same boolean
        value for for Mac and iOS. A new one has been introduced to support
        a specific behavior in the DeleteSelectionCommand.

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::doApply):
        * editing/EditingBehavior.h:
        (WebCore::EditingBehavior::shouldConsiderSelectionAsDirectional):
        (WebCore::EditingBehavior::shouldCenterAlignWhenSelectionIsRevealed):
        (WebCore::EditingBehavior::shouldToggleStyleBasedOnStartOfSelection):
        (WebCore::EditingBehavior::shouldAlwaysGrowSelectionWhenExtendingToBoundary):
        (WebCore::EditingBehavior::shouldSelectOnContextualMenuClick):
        (WebCore::EditingBehavior::shouldExtendSelectionByWordOrLineAcrossCaret):
        (WebCore::EditingBehavior::shouldRebalanceWhiteSpacesInSecureField):
        * editing/EditingBehaviorTypes.h:
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::positionForPlatform):
        * page/Settings.cpp:
        (WebCore::editingBehaviorTypeForPlatform):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::setEditingBehavior):

2014-09-16  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r173670.
        https://bugs.webkit.org/show_bug.cgi?id=136871

        Creates layering violation (Requested by enrica on #webkit).

        Reverted changeset:

        "Move HTMLConverter from editing/cocoa to platform/cocoa."
        https://bugs.webkit.org/show_bug.cgi?id=136474
        http://trac.webkit.org/changeset/173670

2014-09-16  Eric Carlson  <eric.carlson@apple.com>

        [Mac] MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput doesn't work with rotated movies
        https://bugs.webkit.org/show_bug.cgi?id=136872

        Reviewed by Tim Horton.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithImageGenerator): Add logging.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::paintWithVideoOutput): Apply the video track
            preferred transform.

2014-09-16  Enrica Casucci  <enrica@apple.com>

        Move HTMLConverter from editing/cocoa to platform/cocoa.
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Benjamin Poulain.

        This is a platform specific class and it belongs to the platform folder.

        * WebCore.xcodeproj/project.pbxproj:
        * editing/cocoa: Removed.
        * editing/cocoa/HTMLConverter.h: Removed.
        * editing/cocoa/HTMLConverter.mm: Removed.
        * platform/cocoa/HTMLConverter.h: Copied from editing/cocoa/HTMLConverter.h.
        * platform/cocoa/HTMLConverter.mm: Copied from editing/cocoa/HTMLConverter.mm.

2014-09-16  Enrica Casucci  <enrica@apple.com>

        Remove PLATFORM(IOS) from WebCore/editing (Part 3).
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Benjamin Poulain.

        This is the updated version of the patch that was landed in r173340.
        This patch removes the use of PLATFORM(IOS) from TextAffinity.h
        and removes the assumption that EAffinity values match NSSelectionAffinity
        values. It also removes the includes in TextAffinity.h, creating the need to
        include explicitly the files when necessary.

        * editing/TextAffinity.h:
        (kit): Deleted.
        (core): Deleted.
        * editing/cocoa/HTMLConverter.mm:
        * page/mac/WebCoreFrameView.h:

2014-09-16  Beth Dakin  <bdakin@apple.com>

        overflow:scroll should not leave space for a scroll corner with overlay scrollbars
        https://bugs.webkit.org/show_bug.cgi?id=136861

        Reviewed by Sam Weinig.

        overflow:scroll should behave like overflow:auto when the scrollbar will render as 
        an overlay scrollbar.

        Re-name hasAutoVerticalScrollbar()/Horizontal to 
        hasVerticalScrollbarWithAutoBehavior()/Horizontal, and return true for 
        overflow:scroll scrollbars that will render as overlay scrollbars.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::hasVerticalScrollbarWithAutoBehavior):
        (WebCore::RenderBox::hasHorizontalScrollbarWithAutoBehavior):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::scrollsOverflowX):
        (WebCore::RenderBox::scrollsOverflowY):
        (WebCore::RenderBox::hasAutoVerticalScrollbar): Deleted.
        (WebCore::RenderBox::hasAutoHorizontalScrollbar): Deleted.

        Re-name overflowRequiresScrollbar() to styleRequiresScrollbar() and also re-name 
        overflowDefinesAutomaticScrollbar() to styleDefinesAutomaticScrollbar(), and make         
        these functions take into account the fact that overflow:scroll should act like 
        overflow:auto when the scrollbar will render as an overlay scrollbar.
        * rendering/RenderLayer.cpp:
        (WebCore::styleRequiresScrollbar):
        (WebCore::styleDefinesAutomaticScrollbar):
        (WebCore::RenderLayer::updateScrollbarsAfterLayout):
        (WebCore::RenderLayer::calculateClipRects):

2014-09-16  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Sometimes incomplete or empty content can be loaded from cache.
        https://bugs.webkit.org/show_bug.cgi?id=136855

        Reviewed by Alex Christensen.

        Sometimes, when two requests with the same url are started at the same time,
        there is a possibility of loading incomplete or empty content from the cache.
        This happens because the method CurlCacheEntry::isLoading() is returning the wrong status
        in the time period between the headers are received, and the content data is received.
        This can be fixed by using a flag for the load status, instead of checking whether
        the content file is open. 

        * platform/network/curl/CurlCacheEntry.cpp:
        (WebCore::CurlCacheEntry::CurlCacheEntry): Initialize loading flag.
        (WebCore::CurlCacheEntry::isLoading): Return loading flag.
        (WebCore::CurlCacheEntry::didFail): Call new method to set loading flag.
        (WebCore::CurlCacheEntry::didFinishLoading): Ditto.
        (WebCore::CurlCacheEntry::setIsLoading): Added new method to set loading flag.
        * platform/network/curl/CurlCacheEntry.h: Added loading flag and new method to set it.
        * platform/network/curl/CurlCacheManager.cpp:
        (WebCore::CurlCacheManager::didReceiveResponse): Call new method to set loading flag.

2014-09-16  Chris Dumez  <cdumez@apple.com>

        Rename Node::nodeIndex() to computeNodeIndex() for clarity
        https://bugs.webkit.org/show_bug.cgi?id=136826

        Reviewed by Benjamin Poulain.

        Rename Node::nodeIndex() to computeNodeIndex() to make it clear that
        index is being computed and that calling this method is potentially
        expensive.

        No new tests, no behavior change.

        * WebCore.exp.in:
        * WebCore.order:
        Rename exported symbol for Node::nodeIndex() as well.

        * dom/Document.cpp:
        (WebCore::Document::caretRangeFromPoint):
        * dom/Node.cpp:
        (WebCore::Node::computeNodeIndex):
        (WebCore::Node::nodeIndex): Deleted.
        * dom/Node.h:
        * dom/NodeWithIndex.h:
        (WebCore::NodeWithIndex::index):
        Clean up implementation to reduce the scope of the Node variable and
        to follow coding style (variable naming, spacing, star placement).

        * dom/Position.cpp:
        (WebCore::Position::computeOffsetInContainerNode):
        (WebCore::Position::previous):
        (WebCore::Position::next):
        (WebCore::Position::upstream):
        (WebCore::Position::downstream):
        * dom/Position.h:
        (WebCore::positionInParentBeforeNode):
        (WebCore::positionInParentAfterNode):
        * dom/Range.cpp:
        (WebCore::Range::compareNode):
        (WebCore::Range::intersectsNode):
        (WebCore::Range::processContents):
        (WebCore::Range::insertNode):
        (WebCore::Range::setStartAfter):
        (WebCore::Range::setEndBefore):
        (WebCore::Range::setEndAfter):
        (WebCore::Range::setStartBefore):
        * dom/RangeBoundaryPoint.h:
        (WebCore::RangeBoundaryPoint::ensureOffsetIsValid):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
        (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        * editing/Editor.cpp:
        (WebCore::Editor::avoidIntersectionWithDeleteButtonController):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::selectFrameElementInParentIfFullySelected):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::doApply):
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::range):
        (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement):
        (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode):
        * editing/htmlediting.cpp:
        (WebCore::updatePositionForNodeRemoval):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::setContainerAndOffsetForRange):
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::getRangeAt):
        (WebCore::DOMSelection::containsNode):
        (WebCore::DOMSelection::shadowAdjustedOffset):
        * rendering/RenderBlock.cpp:
        (WebCore::positionForPointRespectingEditingBoundaries):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::nodePosition):

2014-09-16  Jer Noble  <jer.noble@apple.com>

        Videos with controls enabled never receive 'dragstart' events.
        https://bugs.webkit.org/show_bug.cgi?id=136837

        Reviewed by Eric Carlson.

        Fixes a crash regression introduced by r173631. Node::contains() has an interesting property of returning false
        if `this` is NULL. Rather than depending on this behavior, explicitly NULL-check state.source and bail early.

        * page/DragController.cpp:
        (WebCore::DragController::startDrag):

2014-09-16  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r173659.

        After r173659 convertToIntLength() is used only inside ENABLE(DASHBOARD_SUPPORT), so it
        became unused function and caused build failure if ENABLE(DASHBOARD_SUPPORT) is false.

        Source/WebCore/css/StyleResolver.cpp:1471:15: error: 'WebCore::Length WebCore::convertToIntLength(const WebCore::CSSPrimitiveValue*, const WebCore::CSSToLengthConversionData&)'
        defined but not used [-Werror=unused-function] cc1plus: all warnings being treated as errors

        * css/StyleResolver.cpp: Missing ENABLE(DASHBOARD_SUPPORT) guard added.

2014-09-14  Darin Adler  <darin@apple.com>

        Scroll snap properties don't handle inherit and initial propertly.
        https://bugs.webkit.org/show_bug.cgi?id=136643

        Reviewed by Beth Dakin.

        Restructured scroll snap code both to handle inherit and initial, and to reduce the
        total code size a bit, fixing a few minor bugs along the way. Updated the regression
        tests to cover the new parts.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::addValuesForNamedGridLinesAtIndex): Use a modern for loop.
        (WebCore::scrollSnapDestination): Changed to take a LengthSize. Also streamlined.
        (WebCore::scrollSnapPoints): Changed to to take a ScrollSnapPoints. Also streamlined and
        added code to handle the "uses elements" case; serialize that as an identifier, not the
        string "elements", fixing a minor bug.
        (WebCore::scrollSnapCoordinates): Changed to take a Vector<LengthSize>. Also streamlined
        and added code to handle the empty vector case; serialize that as an identifier, not the
        string "none", fixing a minor bug.
        (WebCore::ComputedStyleExtractor::getFontSizeCSSValuePreferringKeyword): Use nullptr.
        (WebCore::counterToCSSValue): Use nullptr.
        (WebCore::ComputedStyleExtractor::styledNode): Use nullptr.
        (WebCore::ComputedStyleExtractor::propertyValue): Use nullptr. Moved CSS_SCROLL_SNAP
        to a more appropriate section of the switch statement. Made it just call through to
        the functions above in a more straightforward way.
        (WebCore::CSSComputedStyleDeclaration::getPropertyValue): Reversed logic to use early
        return and to call emptyString.
        (WebCore::CSSComputedStyleDeclaration::item): Use emptyString.
        (WebCore::ComputedStyleExtractor::getCSSPropertyValuesForSidesShorthand): Use nullptr.
        (WebCore::CSSComputedStyleDeclaration::parentRule): Use nullptr.
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Use nullptr.
        (WebCore::CSSComputedStyleDeclaration::getPropertyPriority): Use emptyString.
        (WebCore::CSSComputedStyleDeclaration::getPropertyShorthand): Use emptyString.

        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyMarqueeIncrement::applyValue): Use the switch statement for the
        invalid value as well as for the valid values, rather than a separate if statement.
        Call convertToLength directly rather than through a StyleResolver static member function.

        * css/PropertySetCSSStyleDeclaration.cpp:
        (WebCore::PropertySetCSSStyleDeclaration::getPropertyValue): Fixed a formatting mistake.

        * css/StyleResolver.cpp:
        (WebCore::convertToIntLength): Made this function local to this file instead of a
        static member function.
        (WebCore::convertToFloatLength): Ditto.
        (WebCore::StyleResolver::parseSnapCoordinate): Added. Used to keep snap point parsing
        code small.
        (WebCore::StyleResolver::parseSnapCoordinatePair): Ditto.
        (WebCore::StyleResolver::parseSnapPoints): Added. Parses an entire snap points property.
        (WebCore::StyleResolver::applyProperty): Removed various bits of redundant code that
        were not using the primitiveValue value already in a local variable. Added the
        HANDLE_INHERIT_AND_INITIAL to all the scroll snap properties and updated since the
        RenderStyle structure now more closely matches the CSS properties.

        * css/StyleResolver.h: Updated for above changes, and removed a redundant "private:".

        * page/scrolling/AxisScrollSnapOffsets.cpp:
        (WebCore::appendChildSnapOffsets): Use auto& instead of SnapCoordinate since that type
        is now gone. Updated since coordinates are now LengthSize.
        (WebCore::updateFromStyle): Changed to take a reference instead of a pointer and
        also to fetch the data from RenderStyle in a new way that more closely matches the
        CSS properties.
        (WebCore::updateSnapOffsetsForScrollableArea): Ditto. Also moved some memory allocation
        inside if statements so we don't wastefully allocate and destroy.

        * rendering/style/RenderStyle.cpp: Added an include of StyleScrollSnapPoints.h now
        that the header doesn't include them. Moved the conditional includes out of the main
        include paragraph (even though I don't think conditional includes are usually a good
        idea).
        (WebCore::RenderStyle::initialScrollSnapPointsX): Added.
        (WebCore::RenderStyle::initialScrollSnapPointsY): Added.
        (WebCore::RenderStyle::initialScrollSnapDestination): Added.
        (WebCore::RenderStyle::initialScrollSnapCoordinates): Added.
        (WebCore::RenderStyle::scrollSnapPointsX): Added.
        (WebCore::RenderStyle::scrollSnapPointsY): Added.
        (WebCore::RenderStyle::scrollSnapDestination): Added.
        (WebCore::RenderStyle::scrollSnapCoordinates): Added.
        (WebCore::RenderStyle::setScrollSnapPointsX): Added.
        (WebCore::RenderStyle::setScrollSnapPointsY): Added.
        (WebCore::RenderStyle::setScrollSnapDestination): Added.
        (WebCore::RenderStyle::setScrollSnapCoordinates): Added.

        * rendering/style/RenderStyle.h: Replaced the include of StyleScrollSnapPoints.h with
        a forward declaration of ScrollSnapPoints. Removed getters and setters for the old
        style properties and replaced them with new ones that match the CSS properties more
        closely. Tweaked formatting a bit. Added initial value functions for the the scroll snap
        properties.

        * rendering/style/StyleRareNonInheritedData.cpp: Added include of StyleScrollSnapPoints.h
        now that RenderStyle.h doesn't include it.
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData): Updated since
        m_scrollSnapType is now unsigned instead of ScrollSnapType.

        * rendering/style/StyleRareNonInheritedData.h: Fixed type of m_scrollSnapType to be
        unsigned instead of ScrollSnapType. This should have been causing problems on Windows,
        but I think we got lucky and had no detectable problems.

        * rendering/style/StyleScrollSnapPoints.cpp:
        (WebCore::ScrollSnapPoints::ScrollSnapPoints): Added.
        (WebCore::operator==): Added overloads for both ScrollSnapPoints and also for
        StyleScrollSnapPoints; using a free function for both since both have public data.
        (WebCore::defaultScrollSnapDestination): Added, replaces a static member function.
        (WebCore::StyleScrollSnapPoints::StyleScrollSnapPoints): Updated both the default
        constructor and the copy constructor for the new design.

        * rendering/style/StyleScrollSnapPoints.h: Added a ScrollSnapPoints struct for the
        type of the snap-points-x and snap-points-y CSS properties. Changed the data members
        of StyleScrollSnapPoints to match the various CSS properties rather than breaking
        out all the data into separate data members.
        (WebCore::StyleScrollSnapPoints::defaultRepeatOffset): Deleted. Replaced by the
        default constructor for ScrollSnapPoints.
        (WebCore::StyleScrollSnapPoints::defaultDestinationOffset): Deleted. Replaced by
        a function inside the .cpp file.

2014-09-16  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [GStreamer] http/tests/media/video-auth.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=126619

        Reviewed by Philippe Normand.

        Test: http/tests/media/video-auth-cors.html

        Use stored credentials when retrieving videos following image loading behavior
        (i.e. stored credentials are always used except when in cors anonymous mode),
        except that requesting credentials from user remains disabled for cross-origin requests.

        Patch is covered by http/tests/media/video-auth.html.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (CachedResourceStreamingClient::CachedResourceStreamingClient): Enable using stored credentials except when using cors anonymous mode.

2014-09-16  Jinho Bang  <jinho.bang@samsung.com>

        Add version of drawFocusIfNeeded that take a Path2D parameter.
        https://bugs.webkit.org/show_bug.cgi?id=136846

        Reviewed by Dirk Schulze.

        Tests: fast/canvas/draw-focus-if-needed-with-path.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawFocusIfNeeded):
        (WebCore::CanvasRenderingContext2D::drawFocusIfNeededInternal):
        * html/canvas/CanvasRenderingContext2D.h:
        * html/canvas/CanvasRenderingContext2D.idl:

2014-09-15  Iago Toral  <itoral@igalia.com> and Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Add WaylandDisplay
        https://bugs.webkit.org/show_bug.cgi?id=136216

        Reviewed by Martin Robinson.

        Add the WaylandDisplay class. This class is used in the LayerTreeHostGtk,
        in the WebProcess, and controls the connection to the nested Wayland
        compositor in the UIProcess. Only one instance of the class is used in the
        WebProcess, accessible via the static WaylandDisplay::instance() method.

        The WaylandDisplay constructor performs the EGL initialization while also
        querying the Wayland register, resulting in initializing client-side objects
        that can interact with the wl_compositor and wl_webkitgtk interfaces
        implemented in the nested Wayland compositor. The single class instance is
        only deemed properly initialized if it picked up the Wayland interface objects
        and has properly acquired the EGL display and config.

        WaylandDisplay::createSurface() is called by the LayerTreeHostGtk during
        its own initialization. The method creates a new wl_surface object via the
        wl_compositor interface and a new wl_egl_window object that's based on that
        surface. For the wl_egl_window object, we fall back to a width or height of 1
        in case the passed-in value for either is 0. This avoids problems in Mesa
        where widths or heights of 0 are not supported.

        We associate the created surface with the passed-in widget ID, as provided
        by LayerTreeHostGtk, via the wl_webkitgtk interface. This enables proper
        mapping of Wayland surfaces and the GtkWidgets in the UIProcess and makes
        it possible for the nested Wayland compositor to correctly determine which
        GtkWidget has to be redrawn after some surface has been committed.

        WaylandDisplay::createSharingGLContext() creates a new GLContextEGL object
        that's to be used as a sharing context. The method creates a new surface
        via the wl_compositor interface and uses it to create a dummy native EGL
        window that's 1x1px in size. The GLContextEGL object is then created
        through the static GLContextEGL::createWindowContext() method.

        * PlatformGTK.cmake:
        * platform/graphics/wayland/WaylandDisplay.cpp: Added.
        (WebCore::WaylandDisplay::globalCallback):
        (WebCore::WaylandDisplay::globalRemoveCallback):
        (WebCore::WaylandDisplay::instance):
        (WebCore::WaylandDisplay::WaylandDisplay):
        (WebCore::WaylandDisplay::createSurface):
        (WebCore::WaylandDisplay::createSharingGLContext):
        * platform/graphics/wayland/WaylandDisplay.h: Added.
        (WebCore::WaylandDisplay::nativeDisplay):
        (WebCore::WaylandDisplay::eglDisplay):
        * platform/graphics/wayland/WaylandSurface.cpp:
        (WebCore::WaylandSurface::~WaylandSurface): Assert that the WaylandDisplay
        instance is present before going on to destroy the surface resources.

2014-09-15  Chris Dumez  <cdumez@apple.com>

        Rename LiveNodeLists / HTMLCollections's nodeMatches() to elementMatches()
        https://bugs.webkit.org/show_bug.cgi?id=136844

        Reviewed by Sam Weinig.

        Rename LiveNodeLists / HTMLCollections's nodeMatches() to elementMatches()
        for clarity as the argument is an Element.

        No new tests, no behavior change.

        * dom/ClassNodeList.h:
        (WebCore::ClassNodeList::elementMatches):
        (WebCore::ClassNodeList::nodeMatches): Deleted.
        * dom/DocumentOrderedMap.cpp:
        (WebCore::keyMatchesWindowNamedItem):
        (WebCore::keyMatchesDocumentNamedItem):
        * dom/Element.cpp:
        (WebCore::Element::updateNameForDocument):
        (WebCore::Element::updateIdForDocument):
        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::namedItem):
        * dom/LiveNodeList.h:
        (WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
        * dom/NameNodeList.h:
        (WebCore::NameNodeList::elementMatches):
        (WebCore::NameNodeList::nodeMatches): Deleted.
        * dom/TagNodeList.h:
        (WebCore::TagNodeList::elementMatches):
        (WebCore::HTMLTagNodeList::elementMatches):
        (WebCore::TagNodeList::nodeMatches): Deleted.
        (WebCore::HTMLTagNodeList::nodeMatches): Deleted.
        * html/HTMLCollection.cpp:
        (WebCore::isMatchingElement):
        * html/HTMLNameCollection.cpp:
        (WebCore::WindowNameCollection::elementMatchesIfNameAttributeMatch):
        (WebCore::WindowNameCollection::elementMatches):
        (WebCore::DocumentNameCollection::elementMatchesIfIdAttributeMatch):
        (WebCore::DocumentNameCollection::elementMatchesIfNameAttributeMatch):
        (WebCore::DocumentNameCollection::elementMatches):
        (WebCore::WindowNameCollection::nodeMatchesIfNameAttributeMatch): Deleted.
        (WebCore::WindowNameCollection::nodeMatches): Deleted.
        (WebCore::DocumentNameCollection::nodeMatchesIfIdAttributeMatch): Deleted.
        (WebCore::DocumentNameCollection::nodeMatchesIfNameAttributeMatch): Deleted.
        (WebCore::DocumentNameCollection::nodeMatches): Deleted.
        * html/HTMLNameCollection.h:
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::elementMatches):
        (WebCore::LabelsNodeList::nodeMatches): Deleted.
        * html/LabelsNodeList.h:
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::elementMatches):
        (WebCore::RadioNodeList::nodeMatches): Deleted.
        * html/RadioNodeList.h:

2014-09-15  Chris Dumez  <cdumez@apple.com>

        Use an AtomicString as key for caching ClassNodeList objects
        https://bugs.webkit.org/show_bug.cgi?id=136830

        Reviewed by Benjamin Poulain.

        Use an AtomicString as key for caching ClassNodeList objects instead of
        a String. ClassNodeList is the only type using a String instead of an
        AtomicString as key in the cache HashTable. This brings some
        complexity.

        I believe this was done to avoid unnecessarily atomizing the String,
        for performance reasons. However, at the moment, the String gets
        atomized anyway when constructing the ClassNodeList object. This is
        because the ClassNodeList::m_classNames member is of SpaceSplitString
        type and the SpaceSplitString constructor takes an AtomicString in
        argument.

        Using an AtomicString to cache ClassNodeLists simplifies the code quite
        a bit and decreases the size of NodeListsNodeData as well.

        Test: fast/dom/getElementsByClassName/conflict-tag-name.html

        * WebCore.order:
        Remove symbol corresponding to addCacheWithName() as it was removed.

        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::~ClassNodeList):
        Update the constructor to take an AtomicString in argument instead of
        a String, for clarity. The String gets atomized when initializing
        m_classNames anyway.

        (WebCore::ClassNodeList::ClassNodeList):
        Call removeCacheWithAtomicName() instead of removeCacheWithName() now
        that m_originalClassNames is an AtomicString.

        * dom/ClassNodeList.h:
        Use AtomicString instead of String type for classNames, in both the
        constructor argument and the m_originalClassNames data member.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::getElementsByClassName):
        Call addCacheWithAtomicName() instead of addCacheWithName() now that
        addCacheWithName() has been removed.

        * dom/Node.cpp:
        (WebCore::NodeListsNodeData::invalidateCaches):
        Stop invalidating m_nameCaches as this HashMap no longer exists.

        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::hash):
        (WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::equal):
        (WebCore::NodeListsNodeData::isEmpty):
        (WebCore::NodeListsNodeData::adoptDocument):
        (WebCore::NodeListsNodeData::namedNodeListKey):
        (WebCore::NodeListsNodeData::deleteThisAndUpdateNodeRareDataIfAboutToRemoveLastList):
        (WebCore::NodeListsNodeData::addCacheWithName): Deleted.
        (WebCore::NodeListsNodeData::removeCacheWithName): Deleted.
        - Drop addCacheWithName() / removeCacheWithName() now that no NodeList
          uses a String as HashMap key.
        - Drop m_nameCaches now that ClassNodeLists are cached in
          m_atomicNameCaches instead.
        - Remove StringType template parameter and hardcode AtomicString
          instead.

2014-09-15  Chris Dumez  <cdumez@apple.com>

        Return early in SelectorChecker::checkOne() if selector.isAttributeSelector() is true
        https://bugs.webkit.org/show_bug.cgi?id=136838

        Reviewed by Benjamin Poulain.

        Return early in SelectorChecker::checkOne() if selector.isAttributeSelector()
        is true and the selector matched. Previously, we were only returning early if
        the selector did not match and we were falling through if it did. This means
        that we ended up doing the 2 if() checks below in the method unnecessarily:
        - selector.m_match == CSSSelector::PseudoClass
        - selector.m_match == CSSSelector::PseudoElement

        No new tests, no behavior change.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):

2014-09-15  Chris Dumez  <cdumez@apple.com>

        Un-inline the Node constructor
        https://bugs.webkit.org/show_bug.cgi?id=136842

        Reviewed by Benjamin Poulain.

        Un-inline the Node constructor as it does not seem to impact
        performance, based on my testing:
        http://dromaeo.com/?id=226992,226998

        This reduces the stripped binary size by ~4Kb.

        No new tests, no behavior change.

        * dom/Document.h:
        (WebCore::Node::Node): Deleted.
        * dom/Node.cpp:
        (WebCore::Node::Node):

2014-09-15  Shivakumar JM  <shiva.jm@samsung.com>

        Web Core: Websocket state should be set to closed in didReceiveMessage call back.
        https://bugs.webkit.org/show_bug.cgi?id=136219

        Reviewed by Alexey Proskuryakov.

        Set the Websocket state to closed in didReceiveMessage call back.

        Test: http/tests/websocket/tests/hybi/error-event-ready-state.html

        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::didReceiveMessageError):

2014-09-15  Jon Honeycutt  <jhoneycutt@apple.com>

        Naming clean-up.

        Rubber-stamped by Andy Estes.

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::requestAutocomplete):
        (WebCore::HTMLFormElement::finishRequestAutocomplete):
        Remove superfluous "AutocompleteResult".

        * html/HTMLFormElement.h:
        Ditto.

2014-09-15  Alexey Proskuryakov  <ap@apple.com>

        Crash when logging in to optionshouse.com
        https://bugs.webkit.org/show_bug.cgi?id=136834

        Reviewed by Anders Carlsson.

        No test, because I couldn't make one. I don't have a way to reproduce first-hand.

        * platform/network/cf/SocketStreamHandleCFNet.cpp:
        (WebCore::SocketStreamHandle::readStreamCallback):
        (WebCore::SocketStreamHandle::writeStreamCallback):

2014-09-15  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix for 32-bit builds.

        Make casts from unsigned long long -> size_t explicit, rather than implicit. Also
        make CARingBuffer be protected by USING_MEDIA_TOOLBOX so ports without that flag
        won't try to compile unused code.

        * platform/audio/mac/CARingBuffer.cpp:
        (WebCore::CARingBuffer::fetch):
        * platform/audio/mac/CARingBuffer.h:
        * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm:
        (WebCore::AudioSourceProviderAVFObjC::provideInput):

2014-09-15  Jer Noble  <jer.noble@apple.com>

        Unreviewed logic fix from r173631. Logic for includeShadowDOM was reversed.

        * page/DragController.cpp:
        (WebCore::DragController::startDrag):

2014-09-15  Jer Noble  <jer.noble@apple.com>

        Videos with controls enabled never receive 'dragstart' events.
        https://bugs.webkit.org/show_bug.cgi?id=136837

        Reviewed by Simon Fraser.

        When initiating a drag, the DragController checks whether the hit-tested element at a
        drag location is a child of the drag source, and bails if early if that is not the case.
        For a <video> element with controls, the hit-tested element is an element within the
        <video> element's Shadow DOM. Because the DragController uses a method which does not
        take Shadow DOM into account when determining a child-parent relationship, this test fails
        and all drag operations fail as well.

        For <video> elements only, when testing whether the drag source is an ancestor of the
        hit-tested element, use containsIncludingShadowDOM() instead of contains(). To ensure that
        the controls are still usable when a drag listener is active on a <video> element, mark
        the controls as a draggable element, but simply call preventDefault() in the controls'
        'dragstart' handler, ensuring the timeline and volume controls are themselves still draggable.

        * Modules/mediacontrols/mediaControlsApple.css:
        (audio::-webkit-media-controls-panel):
        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.createControls):
        (Controller.prototype.handlePanelDragStart):
        * page/DragController.cpp:
        (WebCore::DragController::startDrag):

2014-09-15  Roger Fong  <roger_fong@apple.com>

        Unreviewed. Add an unimplemented case to handle CSSPropertyWebkitInitialLetter so we don't get an assertion failure.

        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):

2014-09-15  Jer Noble  <jer.noble@apple.com>

        [Mac] Support audioSourceProvider() in MediaPlayerPrivateAVFoundationObjC
        https://bugs.webkit.org/show_bug.cgi?id=135042

        Reviewed by Eric Carlson.

        Add support for AudioSourceProvider in MediaPlayerPrivateAVFoundationObjC, thereby
        supporting MediaElementAudioSourceNode.

        Import the CARingBuffer from CoreAudio sample code, making the necessary modifications
        for WebKit style and coding conventions. The threading assumptions for this class are
        that there will be a single writer thread and a single reader thread.

        * platform/audio/mac/CARingBuffer.cpp: Added.
        (WebCore::CARingBuffer::create): Create a unique_ptr.
        (WebCore::CARingBuffer::CARingBuffer): Simple constructor.
        (WebCore::CARingBuffer::~CARingBuffer): Simple destructor.
        (WebCore::CARingBuffer::allocate): Initialize the buffers and time bounds structures.
        (WebCore::CARingBuffer::deallocate): Destroy same.
        (WebCore::ZeroRange): Static utility method.
        (WebCore::StoreABL): Ditto.
        (WebCore::FetchABL): Ditto.
        (WebCore::ZeroABL): Ditto.
        (WebCore::CARingBuffer::store): Store the passed in buffer in the ring buffer, wrapping
            if necessary.
        (WebCore::CARingBuffer::setTimeBounds): Set the new time bounds by incrementing the
            bounds index locally, filling in the new values, then atomically incrementing the
            reader-visible index.
        (WebCore::CARingBuffer::getTimeBounds): Get the new time bounds by masking the time
            bounds index, and using it as an offset to the time bounds array. Protect against
            CPU starvation on the reading thread by checking the index against the stored
            index in the array entry. This check will fail if the writing thread has wrapped
            more than the size of the array.
        (WebCore::CARingBuffer::clipTimeBounds): Clamp the passed values to the available bounds.
        (WebCore::CARingBuffer::startFrame): Simple accessor.
        (WebCore::CARingBuffer::endFrame): Ditto.
        (WebCore::CARingBuffer::fetch): Read an audio buffer list from the ring buffer, possbily
            wrapping around to the start of the ring buffer.
        * platform/audio/mac/CARingBuffer.h: Added.
        (WebCore::CARingBuffer::numberOfChannels): Simple accessor.
        (WebCore::CARingBuffer::frameOffset): Ditto.
        (WebCore::CARingBuffer::TimeBounds::TimeBounds): Struct holding the start and end frame values.

        Add an implementation of AudioSourceProvider, using AVAudioMix and MTAudioProcessingTap
        to tap an AVPlayerItem's audio output and feed it to a MediaElementAudioSourceNode.

        * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.h: Added.
        * platform/graphics/avfoundation/AudioSourceProviderAVFObjC.mm: Added.
        (WebCore::AudioSourceProviderAVFObjC::create): Simple factory.
        (WebCore::AudioSourceProviderAVFObjC::AudioSourceProviderAVFObjC): Simple constructor.
        (WebCore::AudioSourceProviderAVFObjC::~AudioSourceProviderAVFObjC): Simple destructor.
        (WebCore::AudioSourceProviderAVFObjC::provideInput): Push audio into the ring buffer.
        (WebCore::AudioSourceProviderAVFObjC::setClient): Call destroyMix()/createMix() as appropriate.
        (WebCore::AudioSourceProviderAVFObjC::setPlayerItem): Ditto.
        (WebCore::AudioSourceProviderAVFObjC::destroyMix): Detach and destroy the AVAudioMix and tap.
        (WebCore::AudioSourceProviderAVFObjC::createMix): Set up the AVAudioMix and tap and attach to
            the AVPlayerItem.
        (WebCore::AudioSourceProviderAVFObjC::initCallback): Pass to class method.
        (WebCore::AudioSourceProviderAVFObjC::finalizeCallback): Ditto.
        (WebCore::AudioSourceProviderAVFObjC::prepareCallback): Ditto.
        (WebCore::AudioSourceProviderAVFObjC::unprepareCallback): Ditto.
        (WebCore::AudioSourceProviderAVFObjC::processCallback): Ditto.
        (WebCore::AudioSourceProviderAVFObjC::init): Set up the storage pointer for the tap.
        (WebCore::AudioSourceProviderAVFObjC::finalize): No-op.
        (WebCore::operator==): Compare two AudioStreamBasicDescription objects.
        (WebCore::operator!=): Ditto.
        (WebCore::AudioSourceProviderAVFObjC::prepare): Create an AudioCoverter object if necessary,
            create the ring buffer, and notify the client of format changes.
        (WebCore::AudioSourceProviderAVFObjC::unprepare): Destroy same.
        (WebCore::AudioSourceProviderAVFObjC::process): Copy samples out of the ring buffer,
            format converting them if necessary. Mute original audio.

        Create the AudioSourceProviderAVFObjC object and notify it when the current AVPlayerItem changes.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::audioSourceProvider):

        Enable SOFT_LINK_MAY_FAIL on the Mac platform.

        * platform/mac/SoftLinking.h:

        Add new files to the project.

        * WebCore.xcodeproj/project.pbxproj:

2014-09-15  Chris Dumez  <cdumez@apple.com>

        Avoid redundant isElementNode() checks in Traversal<HTML*Element> / Traversal<SVG*Element>
        https://bugs.webkit.org/show_bug.cgi?id=136719

        Reviewed by Darin Adler.

        Avoid redundant isElementNode() checks in Traversal<HTML*Element> /
        Traversal<SVG*Element>.  We used to iterate through Elements, and then
        call isElementOfType<HTML*Element>()  on each Element. This made sense
        because hasTagName() used to be defined on Element. However, after
        http://trac.webkit.org/changeset/165699, hasTagName() is now defined on
        Node for HTMLQualifiedName / SVGQualifiedName arguments.

        Node::hasTagName(HTMLQualifiedName) basically does the following check
        "isHTMLElement() &&  toHTMLElement(*this).hasTagName(tagName)". As a
        consequence, doing an isElementNode() check is now redundant as
        isHTMLElement() is defined on Node.

        This patch adds a template parameter to isElementOfType() so that it can
        take any type in argument (particulaly Node, Element, HTMLElement,
        SVGElement, MathMLElement), not just an Element. I had to add an
        ElementTypeCastTraits struct to support partial specialization as C++
        does not support partial specialization of template functions.
        This patch also updates Traversal<ElementType> so that the methods use
        NodeTraversal internally instead of Traversal<ElementType>. As a result,
        we now iterate over Nodes (not Elements) and call the new
        isElementOfType<ElementType>(Node) helpers (which are efficient after
        r165699).

        Before the patch, the code ended up doing the following checks for
        Traversal<HTML*element>:
        node.isElementNode() && toElement(node).isHTMLElement()
            && toHTMLElement(node).hasTagName(HTMLNames::fooTag)

        After the patch, the code only does:
        node.isHTMLElement()
            && toHTMLElement(node).hasTagName(HTMLNames::fooTag)

        No new tests, no behavior change.

        * dom/Element.h:
        (WebCore::Element>):
        (WebCore::isElementOfType):
        Add template parameter to isElementOfType() function so that it can
        handle any argument type, not just Elements. Also introduce an
        ElementTypeCastTraits struct that is called by isElementOfType()
        function so that we can so partial template specialization.

        * dom/ElementTraversal.h:
        (WebCore::Traversal<ElementType>::firstWithinTemplate):
        (WebCore::Traversal<ElementType>::lastWithinTemplate):
        (WebCore::Traversal<ElementType>::nextTemplate):
        (WebCore::Traversal<ElementType>::previousTemplate):
        Use NodeTraversal API internally instead of Traversal<Element> to avoid
        redundant isElementNode() checks.

        (WebCore::Traversal<Element>::lastWithinTemplate): Deleted.
        The code is now identical to the generic version.

        (WebCore::Traversal<Element>::previousTemplate): Deleted.
        The code is now identical to the generic version.

        * dom/make_names.pl:
        (printTypeHelpers):
        - Generate template specializations for ElementTypeCastTraits struct
          instead of isElementOfType(). This avoids having to provide overloads
          for specific argument types (e.g. Node, Element, HTMLElement, ...).
        - Share more code between HTML code path and the other path (for SVG,
          MTHML).

        * html/HTMLElement.h:
        (WebCore::HTMLElement>):
        Provide HTMLElement template specialization for ElementTypeCastTraits
        struct instead of isElementOfType().

        * html/HTMLFormControlElement.h:
        (WebCore::HTMLFormControlElement>):
        Provide HTMLFormControlElement template specialization for
        ElementTypeCastTraits struct instead of isElementOfType().

        * html/HTMLFrameElementBase.h:
        (WebCore::isHTMLFrameElementBase):
        - Remove helper taking an Element in argument as it does not bring any
          benefit. Instead, update the overload taking a Node in argument to
          remove the unnecessary isElementNode() check as isHTMLFrameElement(Node)
          is now efficient.
        - Add an overload taking an HTMLElement in argument so that we can bypass
          the isHTMLElement() check when we know the input is an HTMLElement.

        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement>):
        Provide HTMLMediaElement template specialization for ElementTypeCastTraits
        struct instead of isElementOfType().

        * html/HTMLPlugInImageElement.h:
        (WebCore::HTMLPlugInImageElement>):
        Provide HTMLPlugInImageElement template specialization for
        ElementTypeCastTraits struct instead of isElementOfType().

        * html/LabelableElement.h:
        (WebCore::LabelableElement>):
        Provide LabelableElement template specialization for ElementTypeCastTraits
        struct instead of isElementOfType().

        * mathml/MathMLElement.h:
        (WebCore::MathMLElement>):
        Provide MathMLElement template specialization for ElementTypeCastTraits
        struct for consistency with HTMLElement / SVGElement.

        * svg/SVGElement.h:
        (WebCore::SVGElement>):
        - Provide SVGElement template specialization for ElementTypeCastTraits
          struct instead of isElementOfType().
        - include SVGElementTypeHelpers.h at the end of the file (similarly to
          what is already done in HTMLElement.h because
          isElementOfType(const SVGElement&) needs to be defiend because the
          include.

        * svg/SVGFilterPrimitiveStandardAttributes.h:
        (WebCore::SVGFilterPrimitiveStandardAttributes>):
        Provide SVGFilterPrimitiveStandardAttributes template specialization for
        ElementTypeCastTraits struct instead of isElementOfType().

        * svg/animation/SVGSMILElement.h:
        (WebCore::SVGSMILElement>):
        Provide SVGSMILElement template specialization for ElementTypeCastTraits
        struct instead of isElementOfType().


2014-08-07  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Sort items by span when resolving content-based track sizing functions
        https://bugs.webkit.org/show_bug.cgi?id=135701

        Reviewed by Darin Adler.

        Section 10.4 of the specs mentions that we should first treat non
        spanning items and then incrementally proceed with items with
        greater spans when resolving the track breaths in the Track Sizing
        Algorithm.

        As a nice side effect we're removing the multiple processing of
        spanning grid items caused by GridIterator (it returns the same
        item as many times as the number of cells it spans). This adds a
        ~4% performance penalty in auto-grid-lots-of-data.html mainly due
        to the use of a hash to remove duplicates.

        Test: fast/css-grid-layout/grid-item-order-in-content-sized-columns-resolution.html

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::gridItemSpan):
        (WebCore::gridItemWithSpanSorter):
        (WebCore::uniquePointerInPair):
        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
        * rendering/RenderGrid.h:

2014-09-15  Zan Dobersek  <zdobersek@igalia.com>

        [GTK][CMake] Build WebCore with Wayland-specific include directories, libraries
        https://bugs.webkit.org/show_bug.cgi?id=136815

        Reviewed by Philippe Normand.

        * PlatformGTK.cmake: Add the platform/graphics/wayland/ directory to the list of
        WebCore's include directories. Add include directories of the Wayland dependency
        to the list of WebCore's include directories. Same for the Wayland libraries.

2014-09-15  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Make it easier to enable/disable GStreamer.
        https://bugs.webkit.org/show_bug.cgi?id=135766

        Reviewed by Brent Fulgham.

        Make it possible to enable/disable GStreamer by editing the new user macro ENABLE_GSTREAMER_WINCAIRO.

        * WebCore.vcxproj/WebCoreDebugWinCairo.props: Import GStreamer property file.
        * WebCore.vcxproj/WebCoreReleaseWinCairo.props: Ditto.

2014-09-12  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Crash at CSSParser::parseGridTemplateRowsAndAreas
        https://bugs.webkit.org/show_bug.cgi?id=136778

        Reviewed by Darin Adler.

        An empty list of grid line names (represented by "()") does not
        add anything to the list of parsed values. That's why trying to
        concatenate an adjacent list of grid line names was failing,
        because we were trying to concatenate a list with the last parsed
        CSSValue which was not the expected grid line names list.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTemplateRowsAndAreas):
        (WebCore::CSSParser::parseGridLineNames):
        * css/CSSParser.h:

2014-09-15  Andres Gomez  <agomez@igalia.com>

        [GStreamer] don't send transferMode HTTP header
        https://bugs.webkit.org/show_bug.cgi?id=136781

        Reviewed by Philippe Normand.

        No header at all is better than having the wrong header as DLNA
        mandates that a missing header has to be tolerated while a wrong
        header is an error.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcStart):
        * platform/network/HTTPHeaderNames.in:

2014-09-14  Christophe Dumez  <cdumez@apple.com>

        Fix post-mortem nits for r173528 & r173549
        https://bugs.webkit.org/show_bug.cgi?id=136808

        Reviewed by Darin Adler.

        Fix post-mortem nits for r173528 & r173549.

        No new tests, no behavior change.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
        - Use auto* instead of more specific types.
        - Use fastGetAttribute() instead of getAttribute() as this is
          supported for the "title" attribute.

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::setSelectionFromNone):
        Use auto* instead of more specific types.

2014-09-14  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Introduce FONT_DATA_TYPE_CASTS, and use it
        https://bugs.webkit.org/show_bug.cgi?id=136766

        Reviewed by Darin Adler.

        As a step to use toFoo, this patch introduces FONT_DATA_TYPE_CASTS macro for toFooFontData().
        This will help to detect wrong type cast.

        * platform/graphics/FontData.h:
        * platform/graphics/FontGlyphs.cpp:
        (WebCore::FontGlyphs::releaseFontData):
        (WebCore::FontGlyphs::determinePitch):
        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        * platform/graphics/SegmentedFontData.h:
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::SimpleFontData::getCompositeFontReferenceFontData):

2014-09-14  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Generate toCSSStyleSheet using STYLE_SHEET_TYPE_CASTS
        https://bugs.webkit.org/show_bug.cgi?id=136774

        Reviewed by Darin Adler.

        As a step to use toFoo, this patch introduces STYLE_SHEET_TYPE_CASTS for toCSSStyleSheet().
        This will help to detect wrong type cast. Additonally this patch helps to remove argument type of RefPtr.

        No new tests, no behavior changes.

        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap):
        * css/CSSStyleSheet.h:
        * css/StyleSheet.h:
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::filterEnabledNonemptyCSSStyleSheets):
        * dom/ProcessingInstruction.cpp:
        (WebCore::ProcessingInstruction::parseStyleSheet):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getAllStyleSheets):
        (WebCore::InspectorCSSAgent::collectStyleSheets):

2014-09-14  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Generate toFooElementData() using ELEMENT_DATA_TYPE_CASTS
        https://bugs.webkit.org/show_bug.cgi?id=136775

        Reviewed by Darin Adler.

        As a step to use toFoo, this patch introduces ELEMENT_DATA_TYPE_CASTS for toFooElementData().
        This will help to detect wrong type cast. Additonally this patch helps to remove argument type of RefPtr.

        No new tests, no behavior changes.

        * dom/Element.cpp:
        (WebCore::Element::cloneAttributesFromElement):
        (WebCore::Element::createUniqueElementData):
        * dom/ElementData.cpp:
        (WebCore::ElementData::destroy):
        * dom/ElementData.h:
        (WebCore::ElementData::length):
        (WebCore::ElementData::attributeBase):
        (WebCore::ElementData::presentationAttributeStyle):
        (WebCore::ElementData::attributesIterator):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::setupInitialView): Remove static_cast<SVGSVGElement*>

2014-09-14  Chris Dumez  <cdumez@apple.com>

        Remove unnecessary overloads taking a ContainerNode in Element Traversal
        https://bugs.webkit.org/show_bug.cgi?id=136767

        Reviewed by Darin Adler.

        Remove unnecessary overloads taking a ContainerNode in Element Traversal.
        Several of those don't bring any performance improvements as the needed
        methods are defined on Node (not ContainerNode).

        No new tests, no behavior change.

        * dom/ElementTraversal.h:
        (WebCore::Traversal<Element>::previous):
        NodeTraversal::previous() takes a const Node* in argument so the
        ContainerNode overload is not needed.

        (WebCore::Traversal<ElementType>::previous):
        Unnecessary now that Traversal<Element>::previous() takes a const Node*
        in argument.

        (WebCore::Traversal<ElementType>::nextSibling):
        nextSibling() is defined on Node, not ContainerNode, so the overload
        is not needed.

        (WebCore::Traversal<ElementType>::previousSibling):
        previousSibling() is defined on Node, not ContainerNode, so the overload
        is not needed.

        (WebCore::Traversal<Element>::previousTemplate): Deleted.
        (WebCore::Traversal<ElementType>::previousTemplate): Deleted.
        (WebCore::Traversal<ElementType>::nextSiblingTemplate): Deleted.
        (WebCore::Traversal<ElementType>::previousSiblingTemplate): Deleted.
        No need to have those functions templated anymore.

2014-09-14  Daniel Bates  <dabates@apple.com>

        [iOS] Attempt to fix the iOS build after <http://trac.webkit.org/changeset/173606>
        (https://bugs.webkit.org/show_bug.cgi?id=136789)

        Substitute Node::countChildNodes() for Node::childNodeCount() in more places.

        Although I updated a comment in WebCore::lastOffsetForEditing() (defined in file
        editing/htmlediting.cpp) to refer to Node::countChildNodes(), I'm unclear what the
        comment is trying to explain that isn't otherwise explained by the code or the
        comments that precede this function. Specifically, I don't understand the use of
        the word "preempt" in the comment. We should look to improve the readability of
        this comment.

        * editing/htmlediting.cpp:
        (WebCore::lastOffsetForEditing):
        * page/ios/FrameIOS.mm:
        (WebCore::Frame::interpretationsForCurrentRoot):

2014-09-14  Chris Dumez  <cdumez@apple.com>

        Drop NodeTraversal::nextSkippingChildren() overload taking a ContainerNode
        https://bugs.webkit.org/show_bug.cgi?id=136764

        Reviewed by Darin Adler.

        Drop NodeTraversal::nextSkippingChildren() overload taking a
        ContainerNode argument. This one does not bring any performance
        improvement because nextSibling() is defined on Node and
        nextAncestorSibling() takes a Node in argument.

        Also remove the overload in ElementTraversal as it no longer makes
        sense after this change.

        No new tests, no behavior change.

        * dom/ElementTraversal.h:
        (WebCore::Traversal<ElementType>::nextSkippingChildren):
        (WebCore::Traversal<ElementType>::nextSkippingChildrenTemplate): Deleted.
        * dom/NodeTraversal.h:
        (WebCore::NodeTraversal::nextSkippingChildren):
        (WebCore::NodeTraversal::next):
        (WebCore::NodeTraversal::traverseNextSkippingChildrenTemplate): Deleted.

2014-09-14  Chris Dumez  <cdumez@apple.com>

        Rename Node::childNodeCount() to countChildNodes() and avoid inefficient uses
        https://bugs.webkit.org/show_bug.cgi?id=136789

        Reviewed by Darin Adler.

        Rename Node::childNodeCount() to countChildNodes() to make it clearer
        that the method actually computes the result rather than returning a
        cached value.

        This patch also introduces a new Node::hasOneChild() method that is
        used to check if a Node has a single child. This is much more efficient
        than calling countChildNodes() == 1.

        The patch also leverages Node::hasChildNodes() in a lot of places
        instead of calling countChildNodes().

        Finally, in a couple of places, we now use childrenOfType() to iterate
        over children more efficient than using countChildNodes() and
        childNode(index).

        No new tests, no behavior change.

        * WebCore.exp.in:
        * WebCore.order:
        Update the name of the exposed symbol for countChildNodes().

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChildren):
        (WebCore::ContainerNode::countChildNodes):
        (WebCore::ContainerNode::childNodeCount): Deleted.
        Rename childNodeCount() to countChildNodes() to make it obvious it is
        computing the result rather than returning a cached value.

        * dom/ContainerNode.h:
        (WebCore::ContainerNode::hasOneChild):
        Introduce an efficient way to check in a ContainerNode has a single
        child as "countChildNodes() == 1" calls were frequent and inefficient.

        (WebCore::Node::countChildNodes):
        (WebCore::Node::childNodeCount): Deleted.
        * dom/Node.h:
        Rename childNodeCount() to countChildNodes().

        * dom/Position.cpp:
        (WebCore::Position::parentAnchoredEquivalent):
        * dom/Position.h:
        (WebCore::lastOffsetInNode):
        * dom/Range.cpp:
        Mechanical renaming.

        (WebCore::lengthOfContentsInNode):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyInlineStyleToNodeRange):
        (WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun):
        (WebCore::ApplyStyleCommand::applyInlineStyleToPushDown):
        (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
        (WebCore::ApplyStyleCommand::applyInlineStyleChange):
        Call hasChildNodes() rather than countChildNodes() as it is a lot more
        efficient.

        * editing/Editor.cpp:
        (WebCore::Editor::setTextAsChildOfElement):
        (WebCore::Editor::rangeOfString):
        (WebCore::Editor::countMatchesForText):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::elementRangeContainingCaretSelection):
        Mechanical renaming.

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::insertAsListItems):
        Call hasOneChild() instead of countChildNodes() == 1. Also remove
        redundant listElement->hasChildNodes() check as hasOneChild() takes
        care of this already.

        * editing/TextIterator.cpp:
        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
        * editing/VisibleUnits.cpp:
        (WebCore::endOfDocument):
        * editing/htmlediting.cpp:
        (WebCore::lastOffsetForEditing):
        Mechanical renaming.

        (WebCore::visiblePositionBeforeNode):
        (WebCore::visiblePositionAfterNode):
        Call hasChildNodes() instead of converting countChildNodes() to a
        boolean.

        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization):
        Call !hasChildNodes() instead of !countChildNodes().

        (WebCore::isPlainTextMarkup):
        - Drop !node->isElementNode() check as !node->hasTagName(divTag) takes
          care of discarding non-Element Nodes already.
        - Cast the Node to an HTMLDivElement as soon as possible to avoid
          calling calling the slower Node APIs in several cases.
        - Call hasOneChild() instead of countChildNodes() == 1.

        * html/HTMLDivElement.h:
        * html/HTMLTagNames.in:
        Generate casting helpers as I use them in WebCore::isPlainTextMarkup().

        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::setText):
        * html/HTMLTitleElement.cpp:
        (WebCore::HTMLTitleElement::setText):
        Call hasOneChild() / hasChildNodes() instead of countChildNodes().

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTimelineContainerElement::setTimeDisplaysHidden):
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
        Use childrenOfType<Element>() to iterate of child Elements instead of
        slower childNodeCount() + childNode(index) + isElementNode(). Also,
        childNodeCount() was not even cached before the loop.

        * html/track/VTTRegion.cpp:
        (WebCore::VTTRegion::displayLastTextTrackCueBox):
        Use childrenOfType<Element>() to iterate of child Elements, thus
        avoiding calling childNodeCount() + childNode(index).

        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::extend):
        (WebCore::DOMSelection::selectAllChildren):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::caretMaxOffset):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::isSelected):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::splitSelectionBetweenSubtrees):
        Mechanical renaming.

2014-09-13  Chris Dumez  <cdumez@apple.com>

        Un-inline Element constructor
        https://bugs.webkit.org/show_bug.cgi?id=136786

        Reviewed by Benjamin Poulain.

        Un-inline Element constructor as it is non-trivial and it does not seem
        to impact performance based on my testing:
        http://dromaeo.com/?id=226865,226869

        This reduces the stripped binary size by 8 Kb.

        No new tests, no behavior change.

        * dom/Element.cpp:
        (WebCore::Element::Element):
        * dom/Element.h:
        (WebCore::Element::Element): Deleted.

2014-09-12  Jon Honeycutt  <jhoneycutt@apple.com>

        Build fix with REQUEST_AUTOCOMPLETE enabled

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::requestAutocomplete):
        (WebCore::HTMLFormElement::finishRequestAutocomplete):

2014-09-10  Jon Honeycutt  <jhoneycutt@apple.com>

        Re-add the request autocomplete feature

        <https://bugs.webkit.org/show_bug.cgi?id=136730>

        This feature was rolled out in r148731 because it was only used by
        Chromium. As we consider supporting this feature, roll it back in, but
        leave it disabled.

        This rolls out r148731 (which removed the feature) with small changes
        needed to make the code build in ToT, to match modern style, to make
        the tests run, and to remove unused code.

        Reviewed by Andy Estes.

        Tests: fast/events/constructors/autocomplete-error-event-constructor.html
               fast/forms/form-request-autocomplete.html

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/AutocompleteErrorEvent.h: Added.
        (WebCore::AutocompleteErrorEvent::create):
        (WebCore::AutocompleteErrorEvent::reason):
        (WebCore::AutocompleteErrorEvent::AutocompleteErrorEvent):
        * dom/AutocompleteErrorEvent.idl: Added.
        * dom/EventNames.h:
        * dom/EventNames.in:
        * html/HTMLAttributeNames.in:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::HTMLFormElement):
        (WebCore::HTMLFormElement::requestAutocomplete):
        (WebCore::HTMLFormElement::finishRequestAutocomplete):
        (WebCore::HTMLFormElement::requestAutocompleteTimerFired):
        (WebCore::HTMLFormElement::parseAttribute):
        * html/HTMLFormElement.h:
        * html/HTMLFormElement.idl:
        * loader/EmptyClients.h:
        * loader/FrameLoaderClient.h:
        * page/DOMWindow.idl:

2014-09-12  Vivek Galatage  <vivek.vg@samsung.com>

        CanvasRenderingContext2D should update the computed style while setting the font
        https://bugs.webkit.org/show_bug.cgi?id=136737

        Reviewed by Darin Adler.

        Before accessing the computed style for populating 'font' property of CanvasRenderingContext2D
        make sure to have an up-to-date computed style avoiding any stale reference.

        Test: fast/canvas/canvas-set-font-with-updated-style.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::setFont):

2014-09-12  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: Apply CSS JIT to SelectorQuery with multiple selectors
        https://bugs.webkit.org/show_bug.cgi?id=135255

        Reviewed by Benjamin Poulain.

        After dropping SelectorCheckerFastPath, Dromaeo cssquery-jquery test
        result becomes significantly worse. 400.26/s to 348.16/s, 13%
        performance regression.

        Investigated the cause of it and we found that the test results for
        querySelector with multiple selectors causes performance regressions.

        To solve this, we attempt to JIT compile all selectors in multiple
        selectors. And if compiling some selectors is failed, SelectorQuery
        fallbacks to the slower implementation.

        This change improves the performance. After applying this patch,
        cssquery-jquery test result becomes 418.71/s, 4.61% better than the
        previous good performance case.

        Test: fast/selectors/querySelector-multiple-selectors.html

        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::SelectorDataList):
        (WebCore::SelectorDataList::executeCompiledSingleMultiSelectorData):
        (WebCore::SelectorDataList::execute):
        * dom/SelectorQuery.h:

2014-09-12  Jer Noble  <jer.noble@apple.com>

        [Fullscreen] Taking embedded youtube video full screen takes the whole page full screen
        https://bugs.webkit.org/show_bug.cgi?id=136792

        Reviewed by Beth Dakin.

        Recalculate style after beginning the enter fullscreen animation, but before sending the
        "webkitfullscreenchange" event to listeners.

        * dom/Document.cpp:
        (WebCore::Document::webkitWillEnterFullScreenForElement):

2014-09-12  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r173575.
        https://bugs.webkit.org/show_bug.cgi?id=136790

        Failing tests (Requested by enrica on #webkit).

        Reverted changeset:

        "Remove PLATFORM(IOS) from WebCore/editing (Part 3)."
        https://bugs.webkit.org/show_bug.cgi?id=136474
        http://trac.webkit.org/changeset/173575

2014-09-12  Enrica Casucci  <enrica@apple.com>

        Remove PLATFORM(IOS) from WebCore/editing (Part 3).
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Benjamin Poulain.

        This is the updated version of the patch that was landed in r173340.
        I changed the use of IntPoint to FloatPoint since it was causing tests
        to fail.
        This patch removes the use of PLATFORM(IOS) from TextAffinity.h
        and removes the assumption that EAffinity values match NSSelectionAffinity
        values. It also removes the includes in TextAffinity.h, creating the need to
        include explicitly the files when necessary. It also removes the unnecessary
        use of platform specific types, replacing them with WebCore types.

        * WebCore.exp.in:
        * editing/TextAffinity.h:
        (kit): Deleted.
        (core): Deleted.
        * editing/cocoa/HTMLConverter.mm:
        * page/mac/WebCoreFrameView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::platformSetScrollPosition):
        * platform/ios/wak/WAKScrollView.mm:
        (-[WAKScrollView setScrollOrigin:updatePositionAtAll:immediately:]):
        (-[WAKScrollView scrollOrigin]):
        * platform/mac/ScrollViewMac.mm:
        (WebCore::ScrollView::platformSetScrollPosition):

2014-09-12  Dean Jackson  <dino@apple.com>

        Unprefix the flexbox CSS properties
        https://bugs.webkit.org/show_bug.cgi?id=98420

        Unreviewed fix up, that missed the original
        commit. Tony Chang made some comments
        on the bugzilla.

        "justify-self" should not have been unprefixed.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::CSSParser::parseValue):
        * css/CSSPropertyNames.in:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):

2014-09-12  Dean Jackson  <dino@apple.com>

        Unprefix the flexbox CSS properties
        https://bugs.webkit.org/show_bug.cgi?id=98420

        Reviewed by Benjamin Poulain.

        Remove the need for a "-webkit-" prefix on flexbox
        and related properties. This includes:
        - align-content
        - align-items
        - align-self
        - flex-basis
        - flex-direction
        - flex-wrap
        - flex-grow
        - flex-shrink
        - flex
        - flex-flow
        - justify-content
        - order

        ... as well as the display keyword values "flex" and
        "inline-flex".

        * css/CSSComputedStyleDeclaration.cpp:  Change names.
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp: Ditto.
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::isKeywordPropertyID):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseFlex):
        * css/CSSPrimitiveValueMappings.h: Since we need to still handle the old
        keywords for display, this has added two new keywords.
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EDisplay): If the older keywords were used in
        content, map them to the new value names.
        * css/CSSPropertyNames.in: Add aliases for the prefixed properties.
        * css/CSSValueKeywords.in: Add "flex" and "inline-flex".
        * css/DeprecatedStyleBuilder.cpp: Change names.
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/StyleProperties.cpp: Change names.
        (WebCore::StyleProperties::getPropertyValue):
        (WebCore::StyleProperties::asText):
        * css/StylePropertyShorthand.cpp: Rename shorthand methods to remove the prefix.
        (WebCore::flexFlowShorthand):
        (WebCore::flexShorthand):
        (WebCore::shorthandForProperty):
        (WebCore::matchingShorthandsForLonghand):
        (WebCore::webkitFlexFlowShorthand): Deleted.
        (WebCore::webkitFlexShorthand): Deleted.
        * css/StylePropertyShorthand.h:
        * css/StyleResolver.cpp:
        (WebCore::equivalentBlockDisplay):
        (WebCore::StyleResolver::applyProperty):
        * page/animation/CSSPropertyAnimation.cpp: Change names.
        (WebCore::PropertyWrapperFlex::PropertyWrapperFlex):
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::createFor): Handle the two new display values (the same way as
        the old values).
        * rendering/style/RenderStyleConstants.h: Add constants for the new display values.

2014-09-12  Yusuke Suzuki  <utatane.tea@gmail.com>

        ASSERTION FAILED: e in WebCore::StyleResolver::adjustRenderStyle
        https://bugs.webkit.org/show_bug.cgi?id=136366

        Reviewed by Benjamin Poulain.

        Since element becomes nullptr when resolving styles for pseudo elements,
        so don't do `ASSERT(e)` and use pointer for that.

        Test: fast/css/appearance-with-pseudo-elements.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderThumb::updateAppearance):
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
        (WebCore::RenderThemeEfl::adjustSliderThumbStyle):
        (WebCore::RenderThemeEfl::adjustSliderThumbSize):
        (WebCore::RenderThemeEfl::adjustCheckboxStyle):
        (WebCore::RenderThemeEfl::adjustRadioStyle):
        (WebCore::RenderThemeEfl::adjustButtonStyle):
        (WebCore::RenderThemeEfl::adjustMenuListStyle):
        (WebCore::RenderThemeEfl::adjustMenuListButtonStyle):
        (WebCore::RenderThemeEfl::adjustTextFieldStyle):
        (WebCore::RenderThemeEfl::adjustTextAreaStyle):
        (WebCore::RenderThemeEfl::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeEfl::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeEfl::adjustSearchFieldStyle):
        (WebCore::RenderThemeEfl::adjustInnerSpinButtonStyle):
        (WebCore::RenderThemeEfl::adjustProgressBarStyle):
        * platform/efl/RenderThemeEfl.h:
        * platform/gtk/RenderThemeGtk.h:
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        (WebCore::RenderTheme::adjustCheckboxStyle):
        (WebCore::RenderTheme::adjustRadioStyle):
        (WebCore::RenderTheme::adjustButtonStyle):
        (WebCore::RenderTheme::adjustInnerSpinButtonStyle):
        (WebCore::RenderTheme::adjustTextFieldStyle):
        (WebCore::RenderTheme::adjustTextAreaStyle):
        (WebCore::RenderTheme::adjustMenuListStyle):
        (WebCore::RenderTheme::adjustMeterStyle):
        (WebCore::RenderTheme::adjustProgressBarStyle):
        (WebCore::RenderTheme::adjustMenuListButtonStyle):
        (WebCore::RenderTheme::adjustMediaControlStyle):
        (WebCore::RenderTheme::adjustSliderTrackStyle):
        (WebCore::RenderTheme::adjustSliderThumbStyle):
        (WebCore::RenderTheme::adjustSliderThumbSize):
        (WebCore::RenderTheme::adjustSearchFieldStyle):
        (WebCore::RenderTheme::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderTheme::adjustSearchFieldDecorationPartStyle):
        (WebCore::RenderTheme::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderTheme::adjustSearchFieldResultsButtonStyle):
        * rendering/RenderTheme.h:
        * rendering/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::adjustButtonStyle):
        (WebCore::RenderThemeGtk::adjustMenuListStyle):
        (WebCore::RenderThemeGtk::adjustMenuListButtonStyle):
        (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeGtk::adjustSearchFieldStyle):
        (WebCore::RenderThemeGtk::adjustSliderTrackStyle):
        (WebCore::RenderThemeGtk::adjustSliderThumbStyle):
        (WebCore::RenderThemeGtk::adjustSliderThumbSize):
        (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
        (WebCore::RenderThemeGtk::adjustProgressBarStyle):
        * rendering/RenderThemeIOS.h:
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::adjustCheckboxStyle):
        (WebCore::RenderThemeIOS::adjustRadioStyle):
        (WebCore::RenderThemeIOS::adjustMenuListButtonStyle):
        (WebCore::RenderThemeIOS::adjustSliderTrackStyle):
        (WebCore::RenderThemeIOS::adjustSliderThumbSize):
        (WebCore::RenderThemeIOS::adjustSearchFieldStyle):
        (WebCore::RenderThemeIOS::adjustButtonStyle):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::adjustTextFieldStyle):
        (WebCore::RenderThemeMac::adjustTextAreaStyle):
        (WebCore::RenderThemeMac::adjustProgressBarStyle):
        (WebCore::RenderThemeMac::adjustMenuListStyle):
        (WebCore::RenderThemeMac::adjustMenuListButtonStyle):
        (WebCore::RenderThemeMac::adjustSliderTrackStyle):
        (WebCore::RenderThemeMac::adjustSliderThumbStyle):
        (WebCore::RenderThemeMac::adjustSearchFieldStyle):
        (WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeMac::adjustSearchFieldDecorationPartStyle):
        (WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeMac::adjustSliderThumbSize):
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::adjustButtonStyle):
        (WebCore::RenderThemeSafari::adjustTextFieldStyle):
        (WebCore::RenderThemeSafari::adjustTextAreaStyle):
        (WebCore::RenderThemeSafari::adjustMenuListStyle):
        (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
        (WebCore::RenderThemeSafari::adjustSliderThumbStyle):
        (WebCore::RenderThemeSafari::adjustSliderThumbSize):
        (WebCore::RenderThemeSafari::adjustSearchFieldStyle):
        (WebCore::RenderThemeSafari::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeSafari::adjustSearchFieldDecorationPartStyle):
        (WebCore::RenderThemeSafari::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeSafari::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeSafari::adjustMeterStyle):
        * rendering/RenderThemeSafari.h:
        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::adjustInnerSpinButtonStyle):
        (WebCore::RenderThemeWin::adjustMenuListStyle):
        (WebCore::RenderThemeWin::adjustMenuListButtonStyle):
        (WebCore::RenderThemeWin::adjustSliderThumbSize):
        (WebCore::RenderThemeWin::adjustSearchFieldStyle):
        (WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeWin::adjustSearchFieldDecorationPartStyle):
        (WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeWin::adjustMeterStyle):
        * rendering/RenderThemeWin.h:

2014-09-12  Joseph Pecoraro  <pecoraro@apple.com>

        Fix casing in method name - formatNumberForCustomCSSText
        https://bugs.webkit.org/show_bug.cgi?id=136758

        Reviewed by Benjamin Poulain.

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::formatNumberForCustomCSSText):
        (WebCore::CSSPrimitiveValue::customCSSText):
        (WebCore::CSSPrimitiveValue::formatNumberForcustomCSSText): Deleted.
        * css/CSSPrimitiveValue.h:

2014-09-12  Chris Dumez  <cdumez@apple.com>

        Make all CSSSelector data members private
        https://bugs.webkit.org/show_bug.cgi?id=136784

        Reviewed by Benjamin Poulain.

        Make all CSSSelector data members private. Previously, some of the data
        members such as m_relation / m_match / m_pseudoType were public and
        accessed directly from outside the class. The new approach is better
        because:
        - Those members are bit fields so by using getters, we can hide the
          casts inside the getters. The setters can now also check that the
          bitfield is big enough to actually store the enum value.
        - When using those in switch() statements, the compiler now complains
          if we fail to test some of the enum values as the value is now an
          enum, and not merely an unsigned integer.
        - Some of these members already has getters (e.g. relation()).
        - Better encapsulation.

        No new tests, no behavior change.

        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::parsePagePseudoSelector):
        (WebCore::CSSParserSelector::parsePseudoElementSelector):
        (WebCore::CSSParserSelector::parsePseudoElementCueFunctionSelector):
        (WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):
        (WebCore::CSSParserSelector::setPseudoClassValue):
        (WebCore::CSSParserSelector::isSimple):
        (WebCore::CSSParserSelector::prependTagSelector):
        * css/CSSParserValues.h:
        (WebCore::CSSParserSelector::setMatch):
        (WebCore::CSSParserSelector::setRelation):
        (WebCore::CSSParserSelector::isPseudoElementCueFunction):
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::createRareData):
        (WebCore::CSSSelector::specificityForOneSelector):
        (WebCore::CSSSelector::specificityForPage):
        (WebCore::CSSSelector::operator==):
        (WebCore::CSSSelector::selectorText):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::setPseudoElementType):
        (WebCore::CSSSelector::setPagePseudoType):
        (WebCore::CSSSelector::pseudoClassType):
        (WebCore::CSSSelector::setPseudoClassType):
        (WebCore::CSSSelector::pseudoElementType):
        (WebCore::CSSSelector::pagePseudoClassType):
        (WebCore::CSSSelector::setRelation):
        (WebCore::CSSSelector::match):
        (WebCore::CSSSelector::setMatch):
        (WebCore::CSSSelector::matchesPseudoElement):
        (WebCore::CSSSelector::isUnknownPseudoElement):
        (WebCore::CSSSelector::isCustomPseudoElement):
        (WebCore::CSSSelector::isSiblingSelector):
        (WebCore::CSSSelector::isAttributeSelector):
        (WebCore::CSSSelector::setValue):
        (WebCore::CSSSelector::CSSSelector):
        (WebCore::CSSSelector::~CSSSelector):
        (WebCore::CSSSelector::tagQName):
        (WebCore::CSSSelector::value):
        * css/CSSSelectorList.cpp:
        (WebCore::SelectorNeedsNamespaceResolutionFunctor::operator()):
        * css/PageRuleCollector.cpp:
        (WebCore::checkPageSelectorComponents):
        * css/RuleFeature.cpp:
        (WebCore::RuleFeatureSet::collectFeaturesFromSelector):
        * css/RuleSet.cpp:
        (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
        (WebCore::determinePropertyWhitelistType):
        (WebCore::RuleSet::addRule):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):
        (WebCore::anyAttributeMatches):
        (WebCore::canMatchHoverOrActiveInQuirksMode):
        (WebCore::SelectorChecker::checkOne):
        (WebCore::SelectorChecker::checkScrollbarPseudoClass):
        (WebCore::SelectorChecker::determineLinkMatchType):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::isCommonPseudoClassSelector):
        * css/SelectorFilter.cpp:
        (WebCore::collectDescendantSelectorIdentifierHashes):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::constructFragments):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
        * dom/SelectorQuery.cpp:
        (WebCore::isSingleTagNameSelector):
        (WebCore::isSingleClassNameSelector):
        (WebCore::findIdMatchingType):
        (WebCore::SelectorDataList::SelectorDataList):
        (WebCore::selectorForIdLookup):
        (WebCore::filterRootById):

2014-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r173441): [GTK] All buttons appear insensitive
        https://bugs.webkit.org/show_bug.cgi?id=136614

        Reviewed by Sergio Villar Senin.

        Do not use RenderTheme::isReadOnlyControl() to decide whether to
        render non text based forms sensitive or unsensitive, isEnabled()
        is enough in those cases.

        * rendering/RenderThemeGtk.cpp:
        (WebCore::paintToggle):
        (WebCore::renderButton):
        (WebCore::RenderThemeGtk::paintSliderTrack):
        (WebCore::RenderThemeGtk::paintSliderThumb):

2014-09-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r173423): CertificateInfo is never sent to the UI process when using shared secondary process model
        https://bugs.webkit.org/show_bug.cgi?id=136669

        Reviewed by Antti Koivisto.

        Add CertificateInfoPolicy option to ResourceLoaderOptions. It's
        set to DoNotIncludeCertificateInfo for all loads except the main
        resource load.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::startLoadingMainResource): Pass
        IncludeCertificateInfo to ResourceLoaderOptions.
        * loader/NetscapePlugInStreamLoader.cpp:
        (WebCore::NetscapePlugInStreamLoader::NetscapePlugInStreamLoader):
        Pass DoNotIncludeCertificateInfo to ResourceLoaderOptions().
        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::shouldIncludeCertificateInfo): Return
        true if IncludeCertificateInfo option was given.
        * loader/ResourceLoaderOptions.h:
        (WebCore::ResourceLoaderOptions::ResourceLoaderOptions):
        (WebCore::ResourceLoaderOptions::certificateInfoPolicy):
        (WebCore::ResourceLoaderOptions::setCertificateInfoPolicy):
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didReceiveResponse): If
        IncludeCertificateInfo option is present, call
        includeCertificateInfo() on the response.
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Pass
        DoNotIncludeCertificateInfo to ResourceLoaderOptions().
        (WebCore::CachedResourceLoader::defaultCachedResourceOptions): Ditto.
        * loader/icon/IconLoader.cpp:
        (WebCore::IconLoader::startLoading): Ditto.
        * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
        (WebCore::WebCoreAVCFResourceLoader::startLoading): Ditto.
        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
        (WebCore::WebCoreAVFResourceLoader::startLoading): Ditto.
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (CachedResourceStreamingClient::CachedResourceStreamingClient): Ditto.

2014-09-11  Ryuan Choi  <ryuan.choi@gmail.com>

        Unreviewed build fix attempt on windows port since r173553.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:

2014-09-11  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: disambiguate integral and real number primitive types in the protocol
        https://bugs.webkit.org/show_bug.cgi?id=136606

        Reviewed by Timothy Hatcher.

        Update clients of InspectorValue to disambiguate integer and double primitive types.

        No new tests, no behavior changed.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::parseColor):
        (WebCore::parseQuad):
        (WebCore::InspectorDOMAgent::performSearch):
        * inspector/InspectorDOMDebuggerAgent.cpp:
        (WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent):
        * inspector/InspectorIndexedDBAgent.cpp:
        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForPoint):
        (WebCore::buildObjectForRect):
        (WebCore::buildObjectForSize):
        (WebCore::appendPathCommandAndPoints):
        (WebCore::InspectorOverlay::reset):
        * inspector/InspectorReplayAgent.cpp:
        (WebCore::InspectorReplayAgent::replayToPosition):
        * inspector/InspectorStyleSheet.h:
        (WebCore::InspectorCSSId::InspectorCSSId):
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::didWriteHTML):
        (WebCore::InspectorTimelineAgent::didCompleteRecordEntry):
        * inspector/TimelineRecordFactory.cpp:
        (WebCore::TimelineRecordFactory::createGenericRecord):
        (WebCore::TimelineRecordFactory::createBackgroundRecord):
        (WebCore::TimelineRecordFactory::createGCEventData):
        (WebCore::TimelineRecordFactory::createFunctionCallData):
        (WebCore::TimelineRecordFactory::createProbeSampleData):
        (WebCore::TimelineRecordFactory::createGenericTimerData):
        (WebCore::TimelineRecordFactory::createTimerInstallData):
        (WebCore::TimelineRecordFactory::createXHRReadyStateChangeData):
        (WebCore::TimelineRecordFactory::createEvaluateScriptData):
        (WebCore::TimelineRecordFactory::createResourceReceiveResponseData):
        (WebCore::TimelineRecordFactory::createResourceFinishData):
        (WebCore::TimelineRecordFactory::createReceiveResourceData):
        (WebCore::TimelineRecordFactory::createLayoutData):
        (WebCore::TimelineRecordFactory::createParseHTMLData):
        (WebCore::TimelineRecordFactory::createAnimationFrameData):
        (WebCore::createQuad):
        * inspector/TimelineRecordFactory.h:
        (WebCore::TimelineRecordFactory::createWebSocketCreateData):
        (WebCore::TimelineRecordFactory::createGenericWebSocketData):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::reportViolation):

2014-09-11  Ryuan Choi  <ryuan.choi@gmail.com>

        [EFL][CoordinatedGraphics] Move CoordinatedGraphicsScene and CoordinatedBackingStore to WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=136770

        Reviewed by Gyuyoung Kim.

        CoordinatedGraphicsScene and CoordinatedBackingStore is only for UIProcess.
        This patch moved them from WebCore to WebKit2/UIProcess/CoordinatedGraphics/.

        No new tests, no behavior change.

        * PlatformEfl.cmake:

2014-09-11  Shivakumar JM  <shiva.jm@samsung.com>

        The overrideMimeType in XMLHttpRequest should throw the exception.
        https://bugs.webkit.org/show_bug.cgi?id=136699

        Reviewed by Darin Adler.

        No new tests, modifed test http/tests/xmlhttprequest/exceptions.html.

        Set XMLHttpRequest::overrideMimeType to throw an "InvalidStateError" exception, if the state is LOADING or DONE.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::overrideMimeType):
        * xml/XMLHttpRequest.h:
        * xml/XMLHttpRequest.idl:

2014-09-11  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Occasional ASSERT closing web inspector
        https://bugs.webkit.org/show_bug.cgi?id=136762

        Reviewed by Timothy Hatcher.

        * bindings/js/WorkerScriptDebugServer.h:
        * inspector/PageScriptDebugServer.h:

2014-09-11  Chris Dumez  <cdumez@apple.com>

        Simplify DOM tree traversal in FrameSelection::setSelectionFromNone()
        https://bugs.webkit.org/show_bug.cgi?id=136763

        Reviewed by Ryosuke Niwa.

        We only need to traverse the direct children of the Document element to
        find the body. The previous code was potentially traversing descendants.
        The new code is consistent with Document::body() except that we only
        look for an HTMLBodyElement (and ignore HTMLFrameSetElement).

        Also update the code to use tighter typing for clarity.

        No new tests, no behavior change.

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::setSelectionFromNone):

2014-09-11  Chris Fleizach  <cfleizach@apple.com>

        AX: Size of web view in Safari as reported by AX changes when adding/removing bars is wrong
        https://bugs.webkit.org/show_bug.cgi?id=136756

        Reviewed by Beth Dakin.

        topContentInset not only seems to push the scroll view's origin down, but it also shrinks its height as well, which
        was not accounted for in the original fix.

        Modified: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html

        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::elementRect):

2014-09-11  Roger Fong  <roger_fong@apple.com>

        [Windows] Unreviewed build fix.

        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::checkVaryingsPacking):

2014-09-11  Beth Dakin  <bdakin@apple.com>

        WebKit scrollbars flash in non-dominant spaces when entering Mission Control
        https://bugs.webkit.org/show_bug.cgi?id=136761
        -and corresponding-
        rdar://problem/18195616

        Reviewed by Tim Horton.

        This patch makes our logic about when to call ScrollableArea::contentAreaDidHide/
        Show match the logic in AppKit. We only want these notifications when the window 
        has become both visible and active (or lost both, in the case of hide).

        Re-name setIsVisibleInternal() to setIsVisibleAndActiveInternal(), and call it 
        only when both visibility and active-state have changed.
        * page/FocusController.cpp:
        (WebCore::FocusController::setViewState):
        (WebCore::FocusController::setIsVisibleAndActiveInternal):
        (WebCore::FocusController::setIsVisibleInternal): Deleted.
        * page/FocusController.h:

        FocusController::setViewState() is the only place that needs to call 
        ScrollableArea::contentAreaDidHide/Show, so remove these callers.
        * page/FrameView.cpp:
        (WebCore::FrameView::didMoveOnscreen): Deleted.
        (WebCore::FrameView::willMoveOffscreen): Deleted.
        * page/FrameView.h:
        * page/Page.cpp:
        (WebCore::Page::setIsVisibleInternal):

2014-09-10  Michael Saboff  <msaboff@apple.com>

        Move JSScope out of JSFunction into separate JSCallee class
        https://bugs.webkit.org/show_bug.cgi?id=136725

        Reviewed by Oliver Hunt.

        Created new JSCallee class that contains a JSScope*.  Changed JSFunction to inherit from
        JSCallee.

        * ForwardingHeaders/runtime/JSCallee.h: New forwarding header.

2014-09-11  Roger Fong  <roger_fong@apple.com>

        Unreviewed build fix iOS.

        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::checkVaryingsPacking):

2014-09-11  Jer Noble  <jer.noble@apple.com>

        Add site-specific quirk for entering fullscreen on YouTube.com.
        https://bugs.webkit.org/show_bug.cgi?id=136742

        Reviewed by Eric Carlson.

        YouTube only resizes its <video> content when entering fullscreen after receiving the "webkitfullscreenchange"
        event, which is fired once the animation to enter fullscreen completes. This leaves the apparent <video> content
        too small during the animation, especially at the beginning of the animation. Add a site-specific hack for
        YouTube sites which fires the "webkitfullscreenchange" event synchronously with the beginning of the enter
        fullscreen animation. This will cause YouTube to resize their <video> content during the period of time where we
        disable screen updates, and makes the enter fullscreen animation seamless.

        Add a static utility method, hostIsYouTube(), for the various pieces of this site-specific hack, and expand it
        to match youtube.co.uk, youtube.fr, etc.

        * dom/Document.cpp:
        (WebCore::hostIsYouTube): Added.
        (WebCore::Document::webkitWillEnterFullScreenForElement): Fire fullscreenchange event if hacks are enabled.
        (WebCore::Document::webkitDidEnterFullScreenForElement): Don't fire the event if same.
        (WebCore::Document::webkitDidExitFullScreenForElement): Use hostIsYouTube().
        
2014-09-11  Bear Travis  <betravis@adobe.com>

        [CSS Font Loading] Enable CSS Font Loading on Mac
        https://bugs.webkit.org/show_bug.cgi?id=135473

        Reviewed by Antti Koivisto.

        Enable CSS Font Loading in FeatureDefines, and in
        RuntimeEnabledFeatures.

        Font Loading tests have been toggled back on in the Mac
        TestExpectations file.

        * Configurations/FeatureDefines.xcconfig:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):

2014-09-11  Chris Dumez  <cdumez@apple.com>

        Use tighter typing for Document::ownerElement() return value
        https://bugs.webkit.org/show_bug.cgi?id=136746

        Reviewed by Ryosuke Niwa.

        Use tighter typing for Document::ownerElement() return value at call
        sites to increase code readability a bit and allow the compiler to
        generate slightly more efficient code in some cases. In particular,
        the more efficient HTMLElement::hasTagName(HTMLQualifiedName) is
        now called in several cases instead of the one on Node. This bypasses
        unnecessary isHTMLElement() checks.

        No new tests, no behavior change.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::alternativeTextForWebArea):
        * dom/Document.cpp:
        (WebCore::Document::updateLayout):
        (WebCore::Document::topDocument):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::insertedInto):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::paintBoxDecorations):

2014-09-10  Roger Fong  <roger_fong@apple.com>

        Check for varying packing restrictions per program instead of per shader.
        https://bugs.webkit.org/show_bug.cgi?id=136585.
        <rdar://problem/16308409>.

        Reviewed by Dean Jackson.

        Covered by webgl/1.0.2/conformance/ogles/GL/build/build_009_to_016.html.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::linkProgram): 
        Check for varying packing restrictions when linking the program.

        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::checkVaryingsPacking): 
        Checks varyings shared by both vertex and fragment shaders and makes sure
        they satisfy packing restrictions.

2014-09-11  Beth Dakin  <bdakin@apple.com>

        Support rubber-banding in sub-frames
        https://bugs.webkit.org/show_bug.cgi?id=136726
        -and corresponding-
        rdar://problem/10011924

        Reviewed by Tim Horton.

        Set the appropriate scroll elasticity for all frames! As long as its enabled, sub-
        frames want an elasticity of ScrollElasticityAutomatic, which will allow for 
        latching. 
        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView):

        Account for rubber-banding in sub-frames.
        (WebCore::FrameView::isScrollableOrRubberbandable):
        (WebCore::FrameView::hasScrollableOrRubberbandableAncestor):

        This patch also re-names rubberBandingForOverflowScrollEnabled to 
        rubberBandingForSubScrollableRegionsEnabled
        * page/Settings.in:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::overhangAmount):
        (WebCore::RenderLayer::setHasHorizontalScrollbar):
        (WebCore::RenderLayer::setHasVerticalScrollbar):

2014-09-11  Myles C. Maxfield <mmaxfield@apple.com>  <litherum@gmail.com>

        Initial implementation of SVG to OTF font converter
        https://bugs.webkit.org/show_bug.cgi?id=136688

        Reviewed by Darin Adler.

        This patch creates a new file and new function which turns an SVG font into an OpenType font.
        This function is not very full featured, and as such is never called. However, it works with
        fonts that only support simple horizontal basic multilingual plane codepoints. It has only
        been tested on OS X, and does not have any automated tests. This patch is only jumping off
        point, laying the basic groundwork for a more robust font converter.

        The goal of this patch is to eventually allow us to delete the codepath with which we draw
        text using SVG fonts. Using a native codepath instead will allow for better performance,
        security, and code clarity. In my initial benchmarks, using this converter instead of the
        SVG codepath is at least a 100x speed improvement (after running for 4 hours I stepped
        away from my machine).

        No new tests because the function is not ready to be called (yet!)
        Initial implementation of SVG to OTF font converter
        https://bugs.webkit.org/show_bug.cgi?id=136688

        * WebCore.xcodeproj/project.pbxproj: Add new file.
        * svg/SVGPathBuilder.h: Single function. Takes a SVGFontElement and returns a byte
        * svg/SVGToOTFFontConversion.cpp: Added.
        (WebCore::write32): Write a big-endian Int32.
        (WebCore::write16): Write a big-endian Int16.
        (WebCore::overwrite32): Overwrite an existing Int32 in a vector (instead of appending)
        (WebCore::SVGToOTFFontConverter::GlyphData::GlyphData): Internal class to hold state during
        function calls.
        (WebCore::roundDownToPowerOfTwo):
        (WebCore::SVGToOTFFontConverter::appendCMAPTable): See function name.
        (WebCore::SVGToOTFFontConverter::appendHEADTable): Ditto.
        (WebCore::clampTo): Used to clamp data types to fit into other data types.
        (WebCore::SVGToOTFFontConverter::appendHHEATable): See function name.
        (WebCore::SVGToOTFFontConverter::appendHMTXTable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendMAXPTable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendNAMETable): Ditto.
        (WebCore::SVGToOTFFontConverter::appendOS2Table): Ditto.
        (WebCore::SVGToOTFFontConverter::appendPOSTTable): Ditto.
        (WebCore::isValidStringForCFF): The CFF font format only allows strings with particular
        characters in them.
        (WebCore::appendCFFValidString): Append a string assuming it's valid to append.
        (WebCore::SVGToOTFFontConverter::appendCFFTable): See function name.
        (WebCore::SVGToOTFFontConverter::appendVORGTable): Ditto.
        (WebCore::writeCFFEncodedNumber): CFF has this wacky encoding scheme for encoding and
        decoding numbers.
        (WebCore::CFFBuilder::CFFBuilder): Subclass of SVGPathBuilder, which is used for building
        CFF CharStrings (which are glyph path representations).
        (WebCore::CFFBuilder::updateForConstituentPoint): Invoked for every point in a path, does
        things like updates glyph bounding box information.
        (WebCore::CFFBuilder::boundingBox): Getter.
        (WebCore::transcodeGlyphPaths): SVG path data string -> CFF CharString
        (WebCore::SVGToOTFFontConverter::SVGToOTFFontConverter): Generate internal state ahead of
        time before generating any tables.
        (WebCore::isFourByteAligned):
        (WebCore::calculateChecksum): OTF files have checksums.
        (WebCore::SVGToOTFFontConverter::appendTable): Invoked for each entry in the table of
        contents of the OTF font.
        (WebCore::SVGToOTFFontConverter::convertSVGToOTFFont): Write out the tables.
        (WebCore::convertSVGToOTFFont): Entry point.
        * svg/SVGToOTFFontConversion.h: Added.

2014-09-11  Jer Noble  <jer.noble@apple.com>

        [EME] REGRESSION(??): test media/encrypted-media/encrypted-media-v2-syntax.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=136723

        Reviewed by Eric Carlson.

        Update a comment to point to the implemented Working Draft 18 Feburary 2014 version of the spec.

        * Modules/encryptedmedia/MediaKeys.cpp:
        (WebCore::MediaKeys::createSession):

2014-09-11  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [WK2] Authentication dialog is displayed for cross-origin XHR
        https://bugs.webkit.org/show_bug.cgi?id=131349

        Reviewed by Alexey Proskuryakov.

        * WebCore.exp.in: Export of isAllowedToAskUserForCredentials.
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::isAllowedToAskUserForCredentials): Replacing clientCredentialPolicy method. Returns true if credentials can be requested to the user.
        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Updated to use isAllowedToAskUserForCredentials.
        * loader/ResourceLoader.h: Removing clientCredentialPolicy method and adding isAllowedToAskUserForCredentials method.

2014-09-11  Chris Fleizach  <cfleizach@apple.com>

        AX: Children inside a <legend> are not accessible
        https://bugs.webkit.org/show_bug.cgi?id=136735

        Reviewed by Mario Sanchez Prada.

        The AX children of a <legend> are being hidden currently, which makes it impossible for
        VoiceOver to activate control elements inside of a <legend>.
        The solution is that legend elements SHOULD be allowed to have children.

        Test: accessibility/legend-children-are-visible.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::canHaveChildren):

2014-09-11  Brendan Long  <b.long@cablelabs.com>

        Fix FIXME's in JSTrackCustom now that AudioTrack and VideoTrack exist.
        https://bugs.webkit.org/show_bug.cgi?id=136552

        Reviewed by Eric Carlson.

        * bindings/js/JSTrackCustom.cpp:
        (WebCore::toTrack): Add casts for AudioTrack and VideoTrack.

2014-09-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Merge WebKitAuthenticationWidget into WebKitAuthenticationDialog
        https://bugs.webkit.org/show_bug.cgi?id=136700

        Reviewed by Sergio Villar Senin.

        Remove WebKitAuthenticationWidget. The only reason why we had this
        widget separated in WebCore was to share it between WebKit1 and
        WebKit2, but now it's only used by WebKitAuthenticationDialog in WebKit2.

        * PlatformGTK.cmake: Remove files from compilation.
        * platform/gtk/WebKitAuthenticationWidget.cpp: Removed.
        * platform/gtk/WebKitAuthenticationWidget.h: Removed.

2014-09-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Use ASSERT instead of ASSERT_WITH_SECURITY_IMPLICATION
        https://bugs.webkit.org/show_bug.cgi?id=136732

        Reviewed by Andy Estes.

        Since r173458 changed to use static_cast<> with toFoo, ASSERT_WITH_SECURITY_IMPLICATION doesn't
        need to be used anymore. ASSERT is enough for it.

        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::addToWorkerDocuments):
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::document):

2014-09-10  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        [SVG] Cleanup iterator code in SMILTimeContainer using range-based loop
        https://bugs.webkit.org/show_bug.cgi?id=136720

        Reviewed by Filip Pizlo.

        No new tests, no change on behavior.

        * svg/animation/SMILTimeContainer.cpp:
        (WebCore::SMILTimeContainer::setElapsed):
        (WebCore::SMILTimeContainer::updateAnimations):

2014-09-10  Timothy Horton  <timothy_horton@apple.com>

        Fix the build.

        * platform/network/ResourceHandle.h:
        * platform/network/mac/ResourceHandleMac.mm:

2014-09-09  Myles C. Maxfield <mmaxfield@apple.com>  <litherum@gmail.com>

        Delete class SavedDrawingStateForMask
        https://bugs.webkit.org/show_bug.cgi?id=136498

        Reviewed by Darin Adler.

        This class is left over from when text-decoration-skip: ink used
        GraphicsContext masking.

        No new tests because there is no behavior change.

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::applyShadowToGraphicsContext):
        * rendering/InlineTextBox.h:
        * rendering/TextPainter.cpp:
        (WebCore::TextPainter::TextPainter):
        (WebCore::paintTextWithShadows):
        (WebCore::TextPainter::paintText):
        * rendering/TextPainter.h:
        (WebCore::SavedDrawingStateForMask::SavedDrawingStateForMask): Deleted.
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::paintTextWithShadows):

2014-09-10  Tim Horton  <timothy_horton@apple.com>

        Call setCollectsTimingData only once, and before making any {CF,NS}URLConnections
        https://bugs.webkit.org/show_bug.cgi?id=136731
        <rdar://problem/18252844>

        Reviewed by Simon Fraser.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::start):
        Move setCollectsTimingData to before createCFURLConnection, so the first connection
        has timing data associated with it.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::createNSURLConnection):
        Move setCollectsTimingData to before we create our NSURLConnection, so the first connection
        has timing data associated with it.
        Use setCollectsTimingData instead of the NSURLConnection SPI directly.

        (WebCore::ResourceHandle::setCollectsTimingData):
        Only call _setCollectsTimingData once.

2014-09-10  Enrica Casucci  <enrica@apple.com>

        Remove iOS-only -webkit-composition-fill-color CSS property.
        https://bugs.webkit.org/show_bug.cgi?id=136728
        rdar://problem/10439154

        Reviewed by Tim Horton.

        This property is no longer used on iOS.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPropertyNames.in:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * editing/EditingStyle.cpp:
        * platform/graphics/Color.h:
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintCompositionBackground):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleRareInheritedData.cpp:
        (WebCore::StyleRareInheritedData::StyleRareInheritedData):
        (WebCore::StyleRareInheritedData::operator==):
        * rendering/style/StyleRareInheritedData.h:

2014-09-10  Tim Horton  <timothy_horton@apple.com>

        Remove ImageSource::ShouldSkipMetadata
        https://bugs.webkit.org/show_bug.cgi?id=136713

        Reviewed by Pratik Solanki.

        * platform/graphics/ImageSource.h:
        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::createImageSourceOptions):
        (WebCore::imageSourceOptions):
        (WebCore::ImageSource::frameSizeAtIndex):
        (WebCore::ImageSource::createFrameAtIndex):
        (WebCore::ImageSource::frameDurationAtIndex):
        Remove ShouldSkipMetadata and users. Nobody ever uses DoNotSkipMetadata.

2014-09-10  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=136650
        Rubber-banding in the DOM view of the WebInspector is really jumpy
        -and corresponding-
        rdar://problem/18166043

        Reviewed by Darin Adler.

        This patch implements the ScrollableArea virtual function isRubberBandInProgress() 
        for RenderLayer, and then uses that to determine whether to clamp the scroll 
        position in updateScrollInfoAfterLayout().
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::isRubberBandInProgress):
        (WebCore::RenderLayer::updateScrollInfoAfterLayout):
        * rendering/RenderLayer.h:

2014-09-10  Tim Horton  <timothy_horton@apple.com>

        Remove a workaround in frameIsCompleteAtIndex for a problem that was fixed in Lion
        https://bugs.webkit.org/show_bug.cgi?id=136652

        Reviewed by Dan Bernstein.

        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::frameIsCompleteAtIndex):
        ImageIO returns the right thing now.

2014-09-10  Myles C. Maxfield  <mmaxfield@apple.com>

        Laying out a TextRun using an SVG font is O(n^2)
        https://bugs.webkit.org/show_bug.cgi?id=136584

        Reviewed by Darin Adler.

        Addressing post-commit review from Darin.

        No new tests.

        * platform/graphics/Font.h:
        (WebCore::Font::treatAsSpace): Un-inline.
        (WebCore::Font::treatAsZeroWidthSpace): Ditto.
        (WebCore::Font::treatAsZeroWidthSpaceInComplexScript): Ditto.
        * svg/SVGFontData.cpp:
        (WebCore::computeNormalizedSpaces): Avoid unnecessary copy.

2014-09-10  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Optimization; avoid reallocating string many times.
        https://bugs.webkit.org/show_bug.cgi?id=136704

        Reviewed by Alex Christensen.

        Adding individual characters to a string is inefficient, the string will be reallocated each time.

        * platform/network/curl/CookieJarCurl.cpp:
        (WebCore::readCurlCookieToken):

2014-09-10  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Compile error, CertificateInfo.h is not found.
        https://bugs.webkit.org/show_bug.cgi?id=136703

        Reviewed by Alex Christensen.

        Curl also needs to implement the CertificateInfo class.

        * platform/network/curl/CertificateInfo.h: Added.
        (WebCore::CertificateInfo::CertificateInfo):

2014-09-10  Simon Fraser  <simon.fraser@apple.com>

        Clean up some ENABLE(PICTURE_SIZES) stuff, don't change function signatures inside #ifdefs
        https://bugs.webkit.org/show_bug.cgi?id=136654

        Reviewed by Darin Adler.

        Adding parameters inside an #ifdef makes for unreadable code, so remove some
        #if ENABLE(PICTURE_SIZES) related to the preload scanner and always pass the arguments.
        Reduced the argument count on some functions by just passing a Document&. 
        
        Also fix a couple of uses of #if ENABLE_PICTURE_SIZES.

        * html/HTMLImageElement.h:
        * html/parser/HTMLDocumentParser.cpp:
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        (WebCore::HTMLDocumentParser::insert):
        (WebCore::HTMLDocumentParser::append):
        (WebCore::HTMLDocumentParser::appendCurrentInputStreamToPreloadScannerAndScan):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::TokenPreloadScanner::scan):
        (WebCore::HTMLPreloadScanner::scan):
        * html/parser/HTMLPreloadScanner.h:
        * html/parser/HTMLSrcsetParser.cpp:
        (WebCore::pickBestImageCandidate):
        (WebCore::bestFitSourceForImageAttributes):
        * html/parser/HTMLSrcsetParser.h:

2014-09-10  Chris Fleizach  <cfleizach@apple.com>

        AX: aria-labelledby is not honoring sub-node text
        https://bugs.webkit.org/show_bug.cgi?id=136689

        Reviewed by Mario Sanchez Prada.

        Test: accessibility/aria-labelledby-with-descendants.html

        When aria-labelledby retrieves the textUnderElements it needs to consider
        all sub-children, including focusable content.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::accessibleNameForNode):

2014-09-10  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Use toDocument instead of static_cast<Document*>
        https://bugs.webkit.org/show_bug.cgi?id=136694

        Reviewed by Andy Estes.

        Clean up static_cast<Document*>.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::document):
        * Modules/webaudio/AudioContext.cpp:
        (WebCore::AudioContext::document):
        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::dispatchErrorEvent): Add a line to remove .get().
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::addToWorkerDocuments):
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::startWorkerGlobalScope):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::document):
        (WebCore::XMLHttpRequest::open):

2014-09-10  Yusuke Suzuki  <utatane.tea@gmail.com>

        Merge CheckingContexts from SelectorCompiler and SelectorChecker
        https://bugs.webkit.org/show_bug.cgi?id=135255

        Reviewed by Benjamin Poulain.

        In this patch, we merge SelectorChecker::SelectorCheckingContext and SelectorCompiler::CheckingContext.
        We expose only SelectorChecker::CheckingContext. That is the same to the old SelectorCompiler::CheckingContext.

        In SelectorChecker.cpp, we define SelectorChecker::CheckingContextWithStatus and use it internally.
        And we move VisitedMatchType from SelectorChecker.h to SelectorChecker.cpp.

        VisitedMatchType is also explicitly used by SelectorCheckerFastPath. However, SelectorCheckerFastPath is now
        used only from SelectorQuery (Style resolution algorithm no longer uses it: r171059).
        In this patch, we remove SelectorCheckerFastPath since the major cases are covered by CSS JIT.
        In `RightMostWithIdMatch`, `Element#matches` and multiple selectors `querySelector('a, b')` cases,
        CSS JIT is not used. So dropping fast path affects them. But 1) these cases are rare or 2) the target node
        is typically only one since nodes are filtered before matching. So it doesn't have performance regression.

        And now since CheckingContextWithStatus is the derived class of CheckingContext, we can use
        the same test functions; template parameter is not necessary. It reduces code size.

        * CMakeLists.txt:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSAllInOne.cpp:
        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::CheckingContextWithStatus::CheckingContextWithStatus):
        (WebCore::SelectorChecker::match):
        (WebCore::checkingContextForParent):
        (WebCore::SelectorChecker::matchRecursively):
        (WebCore::canMatchHoverOrActiveInQuirksMode):
        (WebCore::SelectorChecker::checkOne):
        (WebCore::SelectorChecker::checkScrollbarPseudoClass):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::CheckingContext::CheckingContext):
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext): Deleted.
        * css/SelectorCheckerFastPath.cpp: Removed.
        * css/SelectorCheckerFastPath.h: Removed.
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::scrollbarMatchesEnabledPseudoClass):
        (WebCore::scrollbarMatchesDisabledPseudoClass):
        (WebCore::scrollbarMatchesHoverPseudoClass):
        (WebCore::scrollbarMatchesActivePseudoClass):
        (WebCore::scrollbarMatchesHorizontalPseudoClass):
        (WebCore::scrollbarMatchesVerticalPseudoClass):
        (WebCore::scrollbarMatchesDecrementPseudoClass):
        (WebCore::scrollbarMatchesIncrementPseudoClass):
        (WebCore::scrollbarMatchesStartPseudoClass):
        (WebCore::scrollbarMatchesEndPseudoClass):
        (WebCore::scrollbarMatchesDoubleButtonPseudoClass):
        (WebCore::scrollbarMatchesSingleButtonPseudoClass):
        (WebCore::scrollbarMatchesNoButtonPseudoClass):
        (WebCore::scrollbarMatchesCornerPresentPseudoClass):
        * css/StyleResolver.h:
        (WebCore::checkRegionSelector):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorFragment::appendUnoptimizedPseudoClassWithContext):
        (WebCore::SelectorCompiler::addScrollbarPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagsToElementStyleFromContext):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::branchOnResolvingModeWithCheckingContext):
        (WebCore::SelectorCompiler::elementIsActiveForStyleResolution):
        (WebCore::SelectorCompiler::setElementStyleFromContextIsAffectedByEmptyAndUpdateRenderStyleIfNecessary):
        (WebCore::SelectorCompiler::elementIsHoveredForStyleResolution):
        (WebCore::SelectorCompiler::makeContextStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::makeElementStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsScopeRoot):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateMarkPseudoStyleForPseudoElement):
        * cssjit/SelectorCompiler.h:
        (WebCore::SelectorCompiler::CheckingContext::CheckingContext): Deleted.
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::SelectorDataList):
        (WebCore::SelectorDataList::selectorMatches):
        (WebCore::SelectorDataList::executeCompiledSelectorCheckerWithCheckingContext):
        (WebCore::isCompiledSelector):
        (WebCore::SelectorDataList::compileSelector):
        (WebCore::SelectorDataList::execute):
        * dom/SelectorQuery.h:
        (WebCore::SelectorDataList::SelectorData::SelectorData):

2014-09-09  Jer Noble  <jer.noble@apple.com>

        [MSE] http/tests/media/media-source/mediasource-config-change-mp4-v-bitrate.html failing after r173318
        https://bugs.webkit.org/show_bug.cgi?id=136676

        Reviewed by Eric Carlson.

        Revert the inadvertant conditional change introduced in r173318.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::setDurationInternal):

2014-09-09  Roger Fong  <roger_fong@apple.com>

        Unreviewed build fix for Windows.

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

2014-09-09  Dan Bernstein  <mitz@apple.com>

        FrameLoader::prepareForHistoryNavigation is unused
        https://bugs.webkit.org/show_bug.cgi?id=136683

        Reviewed by Tim Horton.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::prepareForHistoryNavigation): Deleted.
        * loader/FrameLoader.h: Removed the declaration.

2014-09-09  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Ignore ::first-letter pseudo-element
        https://bugs.webkit.org/show_bug.cgi?id=136625

        Reviewed by Darin Adler.

        According to the spec the ::first-letter pseudo-element do not apply to
        grid containers (neither to flexboxes).

        Fixed issue in RenderBlock::getFirstLetter() that applies to both grids
        and flexboxes. Basically if the grid's or flexbox's container was
        defining the ::first-line pseudo-element and the grid or flexbox itself
        too, the value from the grid or flexbox was being applied to the items.
        Added the proper check to avoid this.

        Added two new tests for grid and modified one flexbox test to cover the
        issue explained above.

        Tests: css3/flexbox/flexbox-ignore-container-firstLetter.html
               fast/css-grid-layout/grid-container-ignore-first-letter.html
               fast/css-grid-layout/grid-item-first-letter-valid.html

        * rendering/RenderBlock.cpp:
        (WebCore::isRenderBlockFlowOrRenderButton): New method refactoring
        similar calls through the source code.
        (WebCore::RenderBlock::firstLineBlock): Use
        isRenderBlockFlowOrRenderButton().
        (WebCore::findFirstLetterBlock): Modify it to use
        isRenderBlockFlowOrRenderButton() in order to include grids and not only
        check flexboxes.
        (WebCore::RenderBlock::getFirstLetter): Use
        isRenderBlockFlowOrRenderButton().
        (WebCore::RenderBlock::updateFirstLetter): Early return if
        firstLetterContainer is null (in the case of flexboxes or grids).

2014-09-09  Benjamin Poulain  <benjamin@webkit.org>

        Add support for :read-write/:read-only matching editable content
        https://bugs.webkit.org/show_bug.cgi?id=136668

        Reviewed by Antti Koivisto.

        This is the second part of the update of :read-write/:read-only to the latest spec
        (http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting.html#selectors).

        The selectors :read-write/:read-only should match elements that are editable. The exact definition is:
        "elements that are editing hosts or editable and are neither input elements nor textarea elements".

        Matching that definition is really easy. It was done by updating HTMLElement's matchesReadWritePseudoClass()
        to consider both contentEditable and designMode.

        The tricky part is making that efficient in all cases. Matching contentEditable is horribly inefficient
        compared to the other primitives. We don't want to execute that for every element.

        Since matchesReadWritePseudoClass() was used by the theming code, that code was adjusted to
        -Avoid calling that on regular HTMLElement, limiting the query to <input> and <textarea> where it is fast.
        -Avoid the call entirely when possible.

        Tests: fast/css/read-only-read-write-contenteditable-basics.html
               fast/css/read-only-read-write-designmode-basics.html
               fast/css/read-only-read-write-webkit-user-modify.html
               fast/selectors/read-only-read-write-contenteditable-basics.html
               fast/selectors/read-only-read-write-contenteditable-svg-foreignObject.html
               fast/selectors/read-only-read-write-designmode-basics.html
               fast/selectors/read-only-read-write-style-update.html

        * html/HTMLElement.cpp:
        (WebCore::contentEditableType):
        This code is a generalization of the code that was in HTMLElement::contentEditable().
        It is used by both matchesReadWritePseudoClass() and contentEditable() to determine
        a valid state from the value of contentEditable.

        (WebCore::HTMLElement::matchesReadWritePseudoClass):
        Per the definition of editable content, we first check if the current element is an editing host,
        if not we look for an editing host. If there are none, test for designMode.

        (WebCore::HTMLElement::contentEditable):

        (WebCore::RenderTheme::isReadOnlyControl):
        The old definition would only match <input> and <textarea>. The code was updated to keep the same
        behavior after matchesReadWritePseudoClass() is udpated. This avoids the performance problem of calling
        matchesReadWritePseudoClass() on regular HTMLElement.

        * platform/ControlStates.h:
        ReadOnlyState was only used by ThemeMac for convertControlStatesToThemeDrawState().
        In turn, convertControlStatesToThemeDrawState() was only used for painting
        "-webkit-inner-spin-button". Buttons are not read-write to begin with.
        The whole code looks like legacy from styling of input elements and was removed.

        Removing ReadOnlyState removes the expensive part of extractControlStatesForRenderer().

        * html/HTMLElement.h:
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::readOnlyAttributeChanged):
        * platform/mac/ThemeMac.mm:
        (WebCore::convertControlStatesToThemeDrawState):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::extractControlStatesForRenderer):

2014-09-09  Jer Noble  <jer.noble@apple.com>

        [MSE] media/media-source tests broken after r173318
        https://bugs.webkit.org/show_bug.cgi?id=136675

        Reviewed by Eric Carlson.

        Fixes the following tests:
            http/tests/media/media-source/mediasource-play.html
            http/tests/media/media-source/mediasource-remove.html
            media/media-source/media-source-monitor-source-buffers.html
            media/media-source/media-source-overlapping-append-buffered.html   

        In r173318, a for loop was converted to a C++11 loop, but in so doing, left
        pre-initialized, empty values in the beginning of returned Vector, which caused
        the calling algorithm to miscalculate the amount of data buffered by the media
        source.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::activeRanges):

2014-09-09  Takeshi Kurosawa  <taken.spc@gmail.com>

        AX: HTML5 landmark (and related) elements should not be ignored.
        https://bugs.webkit.org/show_bug.cgi?id=135116

        Reviewed by Chris Fleizach.

        Make sure following element should not be ignored in computeAccessibilityIsIgnored
        - header, aside, address, main, nav, article, section
        - dt, dd

        Tests: platform/mac/accessibility/descriptionlist-not-ignored.html
               platform/mac/accessibility/landmark-not-ignored.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):

2014-09-08  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] RenderGrid methods should take RenderBox references
        https://bugs.webkit.org/show_bug.cgi?id=136630

        Reviewed by Darin Adler.

        RenderGrid has several methods that take pointers to RenderBox
        instances but the body of those methods assumes that the objects
        will never be NULL. We should replace them by references.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
        (WebCore::RenderGrid::logicalContentHeightForChild):
        (WebCore::RenderGrid::minContentForChild):
        (WebCore::RenderGrid::maxContentForChild):
        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctions):
        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
        (WebCore::RenderGrid::insertItemIntoGrid):
        (WebCore::RenderGrid::placeItemsOnGrid):
        (WebCore::RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid):
        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
        (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid):
        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
        (WebCore::RenderGrid::layoutGridItems):
        (WebCore::RenderGrid::cachedGridCoordinate):
        (WebCore::RenderGrid::gridAreaBreadthForChild):
        (WebCore::RenderGrid::findChildLogicalPosition):
        * rendering/RenderGrid.h:

2014-09-09  Antti Koivisto  <antti@apple.com>

        Remove unnecessary assert that is getting hit in some scenarios.

        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::certificateInfo):

2014-09-09  Antti Koivisto  <antti@apple.com>

        Try to fix windows build.

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::platformCertificateInfo):

2014-09-08  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Incorrect layout for multicol element transformed into region
        https://bugs.webkit.org/show_bug.cgi?id=136459

        Reviewed by David Hyatt.

        Until we will support the multicolumn region functionality, a multicolumn element
        that also has flow-from style is not transformed into a region (https://bugs.webkit.org/show_bug.cgi?id=135153).
        However, when a multicolumn element with flow-from style dynamically loses
        its multicolumn style while keeping the flow-from style, we have to transform
        the element into a region by detaching and attaching the associated DOM node,
        in the same way we are proceeding when an element receives a different flow-from style.

        Test: fast/regions/multicol/nested-multicol-into-region-dynamic.html

        * style/StyleResolveTree.cpp:
        (WebCore::Style::determineChange):

2014-09-08  Antti Koivisto  <antti@apple.com>

        Pass certificate info as part of ResourceResponse
        https://bugs.webkit.org/show_bug.cgi?id=136611

        Reviewed by Darin Adler.

        The current way of passing certificate info separately from ResourceResponse and then jamming it back
        is complex and confusing. This patch makes it a true part of the ResourceResponse.

        With this patch we also only create and pass the certificate info object for the main resource. It is
        a big and complex object and we never look into it for any other resource type.

        * WebCore.exp.in:
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::ResourceResponseBase):

            Mark initialized for synthetic responses, unitialized for those backed by a platform request.

        (WebCore::ResourceResponseBase::initializeCertificateInfo):

            Calling this pulls the certificate info out from the platform type.
            It shoud only be used for resources that need it.

        (WebCore::ResourceResponseBase::certificateInfo):
        * platform/network/ResourceResponseBase.h:
        (WebCore::ResourceResponseBase::platformCertificateInfo):
        (WebCore::ResourceResponseBase::platformSuggestedFileName):
        (WebCore::ResourceResponseBase::encode):
        (WebCore::ResourceResponseBase::decode):

            Encode and decode certificate info if it is present.

        * platform/network/cf/ResourceResponse.h:
        * platform/network/mac/CertificateInfo.h:
        * platform/network/mac/CertificateInfoMac.mm:
        (WebCore::CertificateInfo::CertificateInfo):
        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::platformCertificateInfo):
        (WebCore::ResourceResponse::setCertificateChain): Deleted.
        (WebCore::ResourceResponse::certificateChain): Deleted.
        * platform/network/soup/ResourceResponse.h:
        * platform/network/soup/ResourceResponseSoup.cpp:
        (WebCore::ResourceResponse::platformCertificateInfo):

2014-09-09  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Use C++11 range-based loops in FlowThreadController
        https://bugs.webkit.org/show_bug.cgi?id=136634

        Reviewed by Andrei Bucur.

        No new tests as no new functionality was introduced.

        * rendering/FlowThreadController.cpp:
        (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
        (WebCore::FlowThreadController::styleDidChange):
        (WebCore::FlowThreadController::layoutRenderNamedFlowThreads):
        (WebCore::FlowThreadController::updateFlowThreadsChainIfNecessary):
        (WebCore::FlowThreadController::updateFlowThreadsNeedingLayout):
        (WebCore::FlowThreadController::updateFlowThreadsNeedingTwoStepLayout):
        (WebCore::FlowThreadController::resetFlowThreadsWithAutoHeightRegions):
        (WebCore::FlowThreadController::updateFlowThreadsIntoMeasureContentPhase):
        (WebCore::FlowThreadController::updateFlowThreadsLayerToRegionMappingsIfNeeded):
        (WebCore::FlowThreadController::updateNamedFlowsLayerListsIfNeeded):
        (WebCore::FlowThreadController::collectFixedPositionedLayers):
        (WebCore::FlowThreadController::isAutoLogicalHeightRegionsCountConsistent):

2014-09-08  Simon Fraser  <simon.fraser@apple.com>

        Minor refactor in CSSComputedStyleDeclaration
        https://bugs.webkit.org/show_bug.cgi?id=136664

        Reviewed by Darin Adler.

        The "if (length.isPercentNotCalculated()) createValue() else zoomAdjustedPixelValue()"
        pattern occurred a number of times here, so factor into percentageOrZoomAdjustedValue().

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::positionOffsetValue): l -> length
        (WebCore::percentageOrZoomAdjustedValue):
        (WebCore::getBorderRadiusCornerValues):
        (WebCore::getBorderRadiusCornerValue):
        (WebCore::scrollSnapDestination):
        (WebCore::scrollSnapPoints):
        (WebCore::scrollSnapCoordinates):

2014-09-08  Alexey Proskuryakov  <ap@apple.com>

        Application Cache Storage: failed to execute statement "DELETE FROM CacheGroups" error "no such table: CacheGroups"
        https://bugs.webkit.org/show_bug.cgi?id=136647

        Reviewed by Darin Adler.

        * loader/appcache/ApplicationCacheStorage.cpp: (WebCore::ApplicationCacheStorage::verifySchemaVersion):
        Don't try to delete the tables if we can't expect to have them yet.

2014-09-08  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION (r172153): Text drawn with wrong color when second text shadow has zero offset and blur (breaks buttons at aws.amazon.com)
        https://bugs.webkit.org/show_bug.cgi?id=136612

        Reviewed by Darin Adler.

        r172153 was fundamentally broken, and would restore graphics contexts that had never been saved. This patch
        reimplements r172153 by using "continue" to skip loop iterations instead of changing the internal logic of
        the loop.

        In addition, I have refactored InlineTextBox::applyShadowToGraphicsContext() to take an extra boolean
        reference as an out parameter in order to make it obvious it if saved a graphics context that needs
        to be restored. This should make it less likely to make these kinds of mistakes in the future.

        Test: fast/text/empty-shadow-with-color.html

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::applyShadowToGraphicsContext): Add bool reference out param.
        * rendering/InlineTextBox.h: Ditto.
        * rendering/TextPainter.cpp:
        (WebCore::isEmptyShadow): Change logic to not skip loop iterations on a null shadow.
        (WebCore::paintTextWithShadows): Use continue to skip loop iterations for empty shadows. In addition,
        use the out param in InlineTextBox::applyShadowToGraphicsContext().
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::paintTextWithShadows): Update for new sigurature of
        InlineTextBox::applyShadowToGraphicsContext().

2014-09-08  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r173402.
        https://bugs.webkit.org/show_bug.cgi?id=136649

        Breaking buildw with error "unable to restore file position to
        0x00000c60 for section __DWARF.__debug_info (errno = 9)"
        (Requested by mlam_ on #webkit).

        Reverted changeset:

        "Move CallFrame and Register inlines functions out of
        JSScope.h."
        https://bugs.webkit.org/show_bug.cgi?id=136579
        http://trac.webkit.org/changeset/173402

2014-09-05  Mark Lam  <mark.lam@apple.com>

        Move CallFrame and Register inlines functions out of JSScope.h.
        <https://webkit.org/b/136579>

        Reviewed by Geoffrey Garen.

        No new tests.

        Added #include of the appropriate *Inlines.h files.  Unlike in
        JavaScriptCore, I #include'd the specific needed *Inlines.h instead of
        JSCInlines.h.  This is done to minimize the need for WebCore to be
        rebuilt when JSC changes are introduced.

        * ForwardingHeaders/interpreter/RegisterInlines.h: Added.
        * bindings/js/JSAudioBufferSourceNodeCustom.cpp:
        * bindings/js/JSAudioTrackCustom.cpp:
        * bindings/js/JSBiquadFilterNodeCustom.cpp:
        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
        * bindings/js/JSCommandLineAPIHostCustom.cpp:
        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSDOMStringListCustom.cpp:
        * bindings/js/JSDOMWindowBase.cpp:
        * bindings/js/JSDOMWindowShell.cpp:
        * bindings/js/JSDocumentCustom.cpp:
        * bindings/js/JSHTMLDocumentCustom.cpp:
        * bindings/js/JSOscillatorNodeCustom.cpp:
        * bindings/js/JSPannerNodeCustom.cpp:
        * bindings/js/JSPopStateEventCustom.cpp:
        * dom/TreeWalker.cpp:
        * html/HTMLPlugInImageElement.cpp:
        * inspector/CommandLineAPIModule.cpp:
        * inspector/InspectorController.cpp:

2014-09-08  Dean Jackson  <dino@apple.com>

        Separate the Apple media controls module from other ports
        https://bugs.webkit.org/show_bug.cgi?id=136644
        rdar://problem/18270969

        Reviewed by Eric Carlson.

        Make a mediaControlsBase.{js|css} that acts as the base
        class for the EFL and GTK ports (they were using mediaControlsApple).
        Over time, the Apple-specific controls may use more of the
        Base class.

        * Modules/mediacontrols/mediaControlsBase.css: Added.
        * Modules/mediacontrols/mediaControlsBase.js: Added.
        * PlatformEfl.cmake:
        * PlatformGTK.cmake:
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::mediaControlsStyleSheet): Load Base rather than Apple.
        (WebCore::RenderThemeEfl::mediaControlsScript): Ditto.
        * rendering/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::mediaControlsScript): Ditto.

2014-09-08  Jochen Eisinger  <jochen@chromium.org>

        Always update the referrer header in CachedResource
        https://bugs.webkit.org/show_bug.cgi?id=136642

        Reviewed by Alexey Proskuryakov.

        If a request already includes a referrer header, and the document has
        a non-default referrer policy, it is possible that we have to modify
        the referrer header.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::addAdditionalRequestHeaders):

2014-09-08  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Remove FILTERS flag
        https://bugs.webkit.org/show_bug.cgi?id=136571

        Reviewed by Darin Adler.

        No new tests required, no new functionality.

        * CMakeLists.txt:
        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * dom/DOMImplementation.cpp:
        (WebCore::isSupportedSVG10Feature):
        (WebCore::isSupportedSVG11Feature):
        * platform/graphics/cpu/arm/filters/FEBlendNEON.h:
        * platform/graphics/cpu/arm/filters/FECompositeArithmeticNEON.h:
        * platform/graphics/cpu/arm/filters/FEGaussianBlurNEON.h:
        * platform/graphics/cpu/arm/filters/NEONHelpers.h:
        * platform/graphics/filters/DistantLightSource.cpp:
        * platform/graphics/filters/DistantLightSource.h:
        * platform/graphics/filters/FEBlend.cpp:
        * platform/graphics/filters/FEBlend.h:
        * platform/graphics/filters/FEColorMatrix.cpp:
        * platform/graphics/filters/FEColorMatrix.h:
        * platform/graphics/filters/FEComponentTransfer.cpp:
        * platform/graphics/filters/FEComponentTransfer.h:
        * platform/graphics/filters/FEComposite.cpp:
        * platform/graphics/filters/FEComposite.h:
        * platform/graphics/filters/FEConvolveMatrix.cpp:
        * platform/graphics/filters/FEConvolveMatrix.h:
        * platform/graphics/filters/FEDiffuseLighting.cpp:
        * platform/graphics/filters/FEDiffuseLighting.h:
        * platform/graphics/filters/FEDisplacementMap.cpp:
        * platform/graphics/filters/FEDisplacementMap.h:
        * platform/graphics/filters/FEDropShadow.cpp:
        * platform/graphics/filters/FEDropShadow.h:
        * platform/graphics/filters/FEFlood.cpp:
        * platform/graphics/filters/FEFlood.h:
        * platform/graphics/filters/FEGaussianBlur.cpp:
        * platform/graphics/filters/FEGaussianBlur.h:
        * platform/graphics/filters/FELighting.cpp:
        * platform/graphics/filters/FELighting.h:
        * platform/graphics/filters/FEMerge.cpp:
        * platform/graphics/filters/FEMerge.h:
        * platform/graphics/filters/FEMorphology.cpp:
        * platform/graphics/filters/FEMorphology.h:
        * platform/graphics/filters/FEOffset.cpp:
        * platform/graphics/filters/FEOffset.h:
        * platform/graphics/filters/FESpecularLighting.cpp:
        * platform/graphics/filters/FESpecularLighting.h:
        * platform/graphics/filters/FETile.cpp:
        * platform/graphics/filters/FETile.h:
        * platform/graphics/filters/FETurbulence.cpp:
        * platform/graphics/filters/FETurbulence.h:
        * platform/graphics/filters/Filter.h:
        * platform/graphics/filters/FilterEffect.cpp:
        * platform/graphics/filters/FilterEffect.h:
        * platform/graphics/filters/LightSource.h:
        * platform/graphics/filters/PointLightSource.cpp:
        * platform/graphics/filters/PointLightSource.h:
        * platform/graphics/filters/SourceAlpha.cpp:
        * platform/graphics/filters/SourceAlpha.h:
        * platform/graphics/filters/SourceGraphic.cpp:
        * platform/graphics/filters/SourceGraphic.h:
        * platform/graphics/filters/SpotLightSource.cpp:
        * platform/graphics/filters/SpotLightSource.h:
        * rendering/svg/RenderSVGResource.cpp:
        (WebCore::removeFromCacheAndInvalidateDependencies):
        * rendering/svg/RenderSVGResourceFilter.cpp:
        * rendering/svg/RenderSVGResourceFilter.h:
        * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
        * rendering/svg/RenderSVGResourceFilterPrimitive.h:
        * rendering/svg/RenderSVGRoot.cpp:
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::intersectRepaintRectWithResources):
        * rendering/svg/SVGRenderTreeAsText.cpp:
        (WebCore::writeSVGResourceContainer):
        (WebCore::writeResources):
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::~SVGRenderingContext):
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
        * rendering/svg/SVGRenderingContext.h:
        (WebCore::SVGRenderingContext::SVGRenderingContext):
        * rendering/svg/SVGResources.cpp:
        (WebCore::targetReferenceFromResource):
        (WebCore::SVGResources::buildCachedResources):
        (WebCore::SVGResources::removeClientFromCache):
        (WebCore::SVGResources::resourceDestroyed):
        (WebCore::SVGResources::buildSetOfResources):
        (WebCore::SVGResources::resetFilter):
        (WebCore::SVGResources::dump):
        * rendering/svg/SVGResources.h:
        (WebCore::SVGResources::filter):
        (WebCore::SVGResources::ClipperFilterMaskerData::ClipperFilterMaskerData):
        * rendering/svg/SVGResourcesCycleSolver.cpp:
        (WebCore::SVGResourcesCycleSolver::breakCycle):
        * svg/SVGAnimatedEnumeration.cpp:
        (WebCore::enumerationValueForTargetAttribute):
        * svg/SVGComponentTransferFunctionElement.cpp:
        * svg/SVGComponentTransferFunctionElement.h:
        * svg/SVGComponentTransferFunctionElement.idl:
        * svg/SVGFEBlendElement.cpp:
        * svg/SVGFEBlendElement.h:
        * svg/SVGFEBlendElement.idl:
        * svg/SVGFEColorMatrixElement.cpp:
        * svg/SVGFEColorMatrixElement.h:
        * svg/SVGFEColorMatrixElement.idl:
        * svg/SVGFEComponentTransferElement.cpp:
        * svg/SVGFEComponentTransferElement.h:
        * svg/SVGFEComponentTransferElement.idl:
        * svg/SVGFECompositeElement.cpp:
        * svg/SVGFECompositeElement.h:
        * svg/SVGFECompositeElement.idl:
        * svg/SVGFEConvolveMatrixElement.cpp:
        * svg/SVGFEConvolveMatrixElement.h:
        * svg/SVGFEConvolveMatrixElement.idl:
        * svg/SVGFEDiffuseLightingElement.cpp:
        * svg/SVGFEDiffuseLightingElement.h:
        * svg/SVGFEDiffuseLightingElement.idl:
        * svg/SVGFEDisplacementMapElement.cpp:
        * svg/SVGFEDisplacementMapElement.h:
        * svg/SVGFEDisplacementMapElement.idl:
        * svg/SVGFEDistantLightElement.cpp:
        * svg/SVGFEDistantLightElement.h:
        * svg/SVGFEDistantLightElement.idl:
        * svg/SVGFEDropShadowElement.cpp:
        * svg/SVGFEDropShadowElement.h:
        * svg/SVGFEDropShadowElement.idl:
        * svg/SVGFEFloodElement.cpp:
        * svg/SVGFEFloodElement.h:
        * svg/SVGFEFloodElement.idl:
        * svg/SVGFEFuncAElement.cpp:
        * svg/SVGFEFuncAElement.h:
        * svg/SVGFEFuncAElement.idl:
        * svg/SVGFEFuncBElement.cpp:
        * svg/SVGFEFuncBElement.h:
        * svg/SVGFEFuncBElement.idl:
        * svg/SVGFEFuncGElement.cpp:
        * svg/SVGFEFuncGElement.h:
        * svg/SVGFEFuncGElement.idl:
        * svg/SVGFEFuncRElement.cpp:
        * svg/SVGFEFuncRElement.h:
        * svg/SVGFEFuncRElement.idl:
        * svg/SVGFEGaussianBlurElement.cpp:
        * svg/SVGFEGaussianBlurElement.h:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEImageElement.cpp:
        * svg/SVGFEImageElement.h:
        * svg/SVGFEImageElement.idl:
        * svg/SVGFELightElement.cpp:
        * svg/SVGFELightElement.h:
        * svg/SVGFEMergeElement.cpp:
        * svg/SVGFEMergeElement.h:
        * svg/SVGFEMergeElement.idl:
        * svg/SVGFEMergeNodeElement.cpp:
        * svg/SVGFEMergeNodeElement.h:
        * svg/SVGFEMergeNodeElement.idl:
        * svg/SVGFEMorphologyElement.cpp:
        * svg/SVGFEMorphologyElement.h:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGFEOffsetElement.cpp:
        * svg/SVGFEOffsetElement.h:
        * svg/SVGFEOffsetElement.idl:
        * svg/SVGFEPointLightElement.cpp:
        * svg/SVGFEPointLightElement.h:
        * svg/SVGFEPointLightElement.idl:
        * svg/SVGFESpecularLightingElement.cpp:
        * svg/SVGFESpecularLightingElement.h:
        * svg/SVGFESpecularLightingElement.idl:
        * svg/SVGFESpotLightElement.cpp:
        * svg/SVGFESpotLightElement.h:
        * svg/SVGFESpotLightElement.idl:
        * svg/SVGFETileElement.cpp:
        * svg/SVGFETileElement.h:
        * svg/SVGFETileElement.idl:
        * svg/SVGFETurbulenceElement.cpp:
        * svg/SVGFETurbulenceElement.h:
        * svg/SVGFETurbulenceElement.idl:
        * svg/SVGFilterElement.cpp:
        * svg/SVGFilterElement.h:
        * svg/SVGFilterElement.idl:
        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        * svg/graphics/filters/SVGFEImage.cpp:
        * svg/graphics/filters/SVGFEImage.h:
        * svg/graphics/filters/SVGFilter.cpp:
        * svg/graphics/filters/SVGFilter.h:
        * svg/graphics/filters/SVGFilterBuilder.cpp:
        * svg/graphics/filters/SVGFilterBuilder.h:
        * svg/svgtags.in:

2014-09-08  Simon Fraser  <simon.fraser@apple.com>

        Use enum class for the RunPostLayoutTasks enum
        https://bugs.webkit.org/show_bug.cgi?id=136640

        Reviewed by Dean Jackson.

        Use enum class for RunPostLayoutTasks fixing callers. Add an explanatory comment,
        and add some spacing.

        * 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):
        * testing/Internals.cpp:
        (WebCore::Internals::updateLayoutIgnorePendingStylesheetsAndRunPostLayoutTasks):

2014-09-08  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Compile error.
        https://bugs.webkit.org/show_bug.cgi?id=136633

        Reviewed by Darin Adler.

        Enum name has already been defined.

        * platform/audio/AudioHardwareListener.h:

2014-09-08  Tim Horton  <timothy_horton@apple.com>

        Remove some unused code in ImageSourceCG
        https://bugs.webkit.org/show_bug.cgi?id=136638

        Reviewed by Dan Bernstein.

        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::setData):
        Remove this code. Firstly, it's in a USE(CG) && !PLATFORM(COCOA) && !PLATFORM(WIN)
        block, and that's simply not a thing. Secondly, the referenced bug was fixed in Lion.

2014-09-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Introduce CSS_RULE_TYPE_CASTS, and use it
        https://bugs.webkit.org/show_bug.cgi?id=136628

        Reviewed by Darin Adler.

        As a step to use toFoo, this patch introduces toCSSFooRule(). This will help to detect
        wrong type cast. Additionally some missing type casts are clean up as well.

        No new tests, no behavior changes.

        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap):
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/CSSImportRule.h:
        * css/CSSMediaRule.h:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTemplateRowsAndAreas):
        * css/CSSRule.h:
        * css/CSSStyleRule.h:
        * css/CSSSupportsRule.h:
        * css/InspectorCSSOMWrappers.cpp:
        (WebCore::InspectorCSSOMWrappers::collect):
        * css/WebKitCSSRegionRule.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::asCSSStyleRule):
        (WebCore::InspectorCSSAgent::collectStyleSheets):
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::asCSSRuleList):
        (WebCore::fillMediaListChain):
        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeCSSStyleSheet):

2014-09-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL[WK2] MiniBrowser comes to crash on debug mode
        https://bugs.webkit.org/show_bug.cgi?id=136617

        Reviewed by Csaba Osztrogonác.

        Fix wrong ASSERTION use in applyCursorFromEcoreX().

        * platform/efl/EflScreenUtilities.cpp: Change ASSERT(!window) with *ASSERT(window)*
        (WebCore::applyCursorFromEcoreX):

2014-09-07  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Introduce toBasicShapeFoo() instead of static_cast<BasicShapeFoo*>
        https://bugs.webkit.org/show_bug.cgi?id=136609

        Reviewed by Darin Adler.

        To use BasicShapeFoo() helps to detect wrong type casting and improve code readability.

        No new tests, no behavior changes.

        * css/BasicShapeFunctions.cpp:
        (WebCore::valueForBasicShape):
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createShape):
        * rendering/style/BasicShapes.cpp:
        (WebCore::BasicShape::canBlend):
        (WebCore::BasicShapeCircle::blend):
        (WebCore::BasicShapeEllipse::blend):
        (WebCore::BasicShapePolygon::blend):
        (WebCore::BasicShapeInset::blend):
        * rendering/style/BasicShapes.h:

2014-09-06  Jer Noble  <jer.noble@apple.com>

        [Fullscreen] Add a site-specific hack to work around "flash on exit" behavior of YouTube.com.
        https://bugs.webkit.org/show_bug.cgi?id=136604

        Reviewed by Eric Carlson.

        YouTube.com will cause a "flash" of the full screen sized <video> element upon exiting full
        screen because the "fullscreenchange" event is fired asynchronously after the exit animation
        completes. Only YouTube sites and embeds, add a site-specific-quirk which runs the "fullscreenchange"
        event synchronously at the end of the exit animation. This causes YouTube's video resizing logic
        to run during the period of time where we've disabled screen updates, instead of immediately
        after.

        * dom/Document.cpp:
        (WebCore::Document::webkitDidExitFullScreenForElement):

2014-09-06  Darin Adler  <darin@apple.com>

        Make updates suggested by new version of Xcode
        https://bugs.webkit.org/show_bug.cgi?id=136603

        Reviewed by Mark Rowe.

        * Configurations/Base.xcconfig: Added COMBINE_HIDPI_IMAGES and
        ENABLE_STRICT_OBJC_MSGSEND as suggested by Xcode upgrade check.

        * WebCore.xcodeproj/project.pbxproj: Let Xcode remove an orphaned item from the file,
        and also updated LastUpgradeCheck.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::updateTextTrackDisplay): Use #if/#else/#endif instead of
        using #if/return/#endif and leaving code unreachable.
        (WebCore::HTMLMediaElement::configureMediaControls): Ditto.
        (WebCore::HTMLMediaElement::configureTextTrackDisplay): Ditto.
        * html/canvas/WebGLDrawBuffers.cpp:
        (WebCore::WebGLDrawBuffers::supported): Ditto.

2014-09-06  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: convert DockSide to an enum class
        https://bugs.webkit.org/show_bug.cgi?id=136601

        Reviewed by Timothy Hatcher.

        * inspector/InspectorFrontendClient.h:
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::InspectorFrontendClientLocal):
        (WebCore::InspectorFrontendClientLocal::requestSetDockSide):
        (WebCore::InspectorFrontendClientLocal::canAttachWindow):
        (WebCore::InspectorFrontendClientLocal::setAttachedWindow):
        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::requestSetDockSide):

2014-09-06  Antti Koivisto  <antti@apple.com>

        Serialize ResourceResponses using WebKit types
        https://bugs.webkit.org/show_bug.cgi?id=136545

        Fix the failing webarchive tests.

        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::initNSURLResponse): Map empty text encoding name to nil NSString.

2014-09-06  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo][Curl] fileExists() incorrectly claims folder does not exist.
        https://bugs.webkit.org/show_bug.cgi?id=136598

        Reviewed by Alex Christensen.

        The fileExists() function will always return false on Windows,
        if the filename parameter ends with a slash or backslash.

        * platform/network/curl/CurlCacheManager.cpp:
        (WebCore::CurlCacheManager::setCacheDirectory): Add slash after call to fileExists().

2014-09-06  David Kilzer  <ddkilzer@apple.com>

        New clang warns about boolean checks for |this| pointer in RenderObject debug methods
        <http://webkit.org/b/136599>

        Reviewed by Zalan Bujtas.

        Ignores the following static analyzer warnings:

            Source/WebCore/rendering/RenderObject.cpp:1465:10: error: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true [-Werror,-Wundefined-bool-conversion]
                if (!this) {
                    ~^~~~
            Source/WebCore/rendering/RenderObject.cpp:1584:10: error: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true [-Werror,-Wundefined-bool-conversion]
                if (!this)
                    ~^~~~

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::showRenderObject):
        (WebCore::RenderObject::showRenderSubTreeAndMark):
        Add "#pragma clang" preprocessor macros to ignore this warning
        since the code is only compiled for Debug builds.  Also add a
        pragma for the pragma so older clangs don't complain about an
        unkonwn pragma.

2014-09-06  Antti Koivisto  <antti@apple.com>

        Serialize ResourceResponses using WebKit types
        https://bugs.webkit.org/show_bug.cgi?id=136545

        Reviewed by Alexey Proskuryakov.

        Serialization is faster and we can mostly avoid having NSURLResponses in web process.

        * WebCore.exp.in:
        * platform/network/ResourceLoadTiming.h:
        (WebCore::ResourceLoadTiming::encode):
        (WebCore::ResourceLoadTiming::decode):
        * platform/network/ResourceResponseBase.h:
        (WebCore::ResourceResponseBase::encode):
        (WebCore::ResourceResponseBase::decode):

            Serialize from the WebCore data instead of serializing NSURLResponse.

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::cfURLResponse):

            Synthesize CFURLResponse by creating NSURLResponse on Cocoa platforms so we don't need copy code.
            This has negligible performance impact, NSURLResponse is just a wrapper around CFURLResponse.

        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::nsURLResponse):
        (WebCore::ResourceResponse::setCertificateChain):

            Avoid unnecessary NSURLRequest instantiation in debug builds.

2014-09-06  David Kilzer  <ddkilzer@apple.com>

        HTMLElement.cpp does not compile with new clang
        <http://webkit.org/b/136600>

        Reviewed by Chris Fleizach.

        Fixes the following static analyzer warning:

            Source/WebCore/html/HTMLElement.cpp:545:10: error: 'this' pointer cannot be null in well-defined C++ code; pointer may be assumed to always convert to true [-Werror,-Wundefined-bool-conversion]
                if (!this || !parentNode())
                    ~^~~~

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::setOuterText): Remove "!this" check added
        in r75738.  It would only cover up real bugs, and isn't even hit
        in layout tests.

2014-09-06  Ryuan Choi  <ryuan.choi@gmail.com>

        [EFL] Drop evas object cursor support
        https://bugs.webkit.org/show_bug.cgi?id=136324

        Reviewed by Gyuyoung Kim.

        Removed evas object cursor because there are some bugs.
        ewebkit will only support ecore_x_cursor because ewebkit is available with X, now.

        * platform/efl/DefaultTheme/CMakeLists.txt: Removed cursor related code.
        * platform/efl/DefaultTheme/default.edc: Ditto.
        * platform/efl/DefaultTheme/widget/cursor/cursor.edc: Removed.
        * platform/efl/EflScreenUtilities.cpp:
        (WebCore::getEcoreCursor):
        (WebCore::applyCursorFromEcoreX): Renamed applyFallbackCursor.
        (WebCore::createCustomCursor): Added to make custom cursor.
        (WebCore::applyFallbackCursor): Deleted.
        * platform/efl/EflScreenUtilities.h:

2014-09-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r173340 and r173342.
        https://bugs.webkit.org/show_bug.cgi?id=136596

        Broke many tests (Requested by ap on #webkit).

        Reverted changesets:

        "Remove PLATFORM(IOS) from WebCore/editing (Part 3)."
        https://bugs.webkit.org/show_bug.cgi?id=136474
        http://trac.webkit.org/changeset/173340

        "Build fix after r173340."
        http://trac.webkit.org/changeset/173342

2014-09-05  Joseph Pecoraro  <pecoraro@apple.com>

        Use WTFString::split(char) in more places
        https://bugs.webkit.org/show_bug.cgi?id=136543

        Reviewed by Sam Weinig.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::nodeForPath):
        * mathml/MathMLMencloseElement.cpp:
        (WebCore::MathMLMencloseElement::collectStyleForPresentationAttribute):
        * page/PerformanceResourceTiming.cpp:
        (WebCore::passesTimingAllowCheck):
        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
        (WebCore::Extensions3DOpenGLCommon::initializeAvailableExtensions):
        * platform/graphics/opengl/GLPlatformContext.cpp:
        (WebCore::parseExtensions):
        * platform/gtk/PasteboardHelper.cpp:
        (WebCore::PasteboardHelper::fillDataObjectFromDropData):
        * platform/network/curl/CurlCacheEntry.cpp:
        (WebCore::CurlCacheEntry::loadResponseHeaders):
        * platform/network/curl/CurlCacheManager.cpp:
        (WebCore::CurlCacheManager::loadIndex):

2014-09-05  Myles C. Maxfield  <mmaxfield@apple.com>

        Laying out a TextRun using an SVG font is O(n^2)
        https://bugs.webkit.org/show_bug.cgi?id=136584

        Reviewed by Andreas Kling.

        Caching the version of the run with normalized spaces leads to a 5x speedup on the
        performance test this patch adds.

        Note that SVGFontData::applySVGGlyphSelection() is still unnecesarrily O(n), so more
        work can be done here. In particular, the call to collectGlyphsForString() can likely
        be sped up.

        No new correctness tests because there is no behavior change.
        Performance Test: SVG/SVG-Text.html

        * platform/graphics/Font.h:
        (WebCore::Font::treatAsSpace): Make inline.
        (WebCore::Font::treatAsZeroWidthSpace): Ditto.
        (WebCore::Font::treatAsZeroWidthSpaceInComplexScript): Ditto.
        * platform/graphics/SimpleFontData.h: Add String cache argument.
        * platform/graphics/TextRun.h: Move member variables around for better packing.
        (WebCore::TextRun::TextRun): Ditto.
        * platform/graphics/WidthIterator.cpp: Add String cache argument.
        (WebCore::WidthIterator::glyphDataForCharacter): Ditto.
        (WebCore::WidthIterator::advanceInternal): Create String cache and pass it to
        glyphDataForCharacter.
        * platform/graphics/WidthIterator.h: Add String cache argument.
        * rendering/svg/SVGTextRunRenderingContext.cpp: Ditto.
        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter): Ditto.
        * rendering/svg/SVGTextRunRenderingContext.h: Ditto.
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection): Call computeNormalizedSpaces
        to consult with the cache.
        (WebCore::computeNormalizedSpaces): Compute cached String value.
        * svg/SVGFontData.h: Add String cache argument.

2014-09-05  David Kilzer  <ddkilzer@apple.com>

        REGRESSION (r169407): Calls to RenderStyle::getRoundedBorderFor() in computeRoundedRectForBoxShape() still include RenderView pointer
        <http://webkit.org/b/136591>
        <rdar://problem/18143731>

        Reviewed by Simon Fraser.

        In r169407, the RenderView* argument was removed from
        RenderStyle::getRoundedBorderFor().  This argument was not
        removed from these calls in computeRoundedRectForBoxShape(), but
        because getRoundedBorderFor() always returned a reference, and
        because the default for the next argument was true, there was no
        actual change in behavior from this bug.

        No new tests since there is no change in behavior.

        * rendering/shapes/BoxShape.cpp:
        (WebCore::computeRoundedRectForBoxShape): Remove RenderView*
        arguments from calls to getRoundedBorderFor().

2014-09-05  Tim Horton  <timothy_horton@apple.com>

        [iOS] Work around bug 136593 by disabling the PDFDocumentImage live resize optimization there
        https://bugs.webkit.org/show_bug.cgi?id=136594
        rdar://problem/17457013

        Reviewed by Simon Fraser.

        * platform/graphics/cg/PDFDocumentImage.cpp:
        (WebCore::PDFDocumentImage::updateCachedImageIfNeeded):
        Disable the optimization on iOS, because bug 136593 rears its head
        most often on iOS because it is more common to have contexts that always
        use low-quality image interpolation on that platform.

2014-09-05  Tim Horton  <timothy_horton@apple.com>

        Doing a navigation on a non-opaque WKWebView can result in an empty layer tree
        https://bugs.webkit.org/show_bug.cgi?id=136590
        <rdar://problem/18234000>

        Reviewed by Simon Fraser.

        * page/FrameView.cpp:
        (WebCore::FrameView::setTransparent):
        Avoid scheduling a compositing layer update if the RenderView isn't the
        one associated with this FrameView. This can happen during a navigation,
        before the new Document (and RenderView) is swapped in. This is particularly
        bad in the case of setTransparent because it is called from Frame::createView,
        which is right in the middle of that transition window. If we let the compositing
        layer update go ahead, it can end up detaching the new Document's layer tree,
        and we have no mechanism that would cause it to reattach.

2014-09-05  Enrica Casucci  <enrica@apple.com>

        Remove PLATFORM(IOS) from WebCore/editing (Part 3).
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Benjamin Poulain.

        This patch removes the use of PLATFORM(IOS) from TextAffinity.h
        and removes the assumption that EAffinity values match NSSelectionAffinity
        values. It also removes the includes in TextAffinity.h, creating the need to
        include explicitly the files when necessary. It also removes the unnecessary
        use of platform specific types, replacing them with WebCore types.

        * editing/TextAffinity.h:
        (kit): Deleted.
        (core): Deleted.
        * editing/cocoa/HTMLConverter.mm:
        * page/mac/WebCoreFrameView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::platformSetScrollPosition):
        (WebCore::ScrollView::platformSetScrollOrigin):
        * platform/ios/wak/WAKScrollView.mm:
        (-[WAKScrollView setScrollOrigin:updatePositionAtAll:immediately:]):
        (-[WAKScrollView scrollOrigin]):

2014-09-05  Jer Noble  <jer.noble@apple.com>

        Unreviewed GTK build fix; include StringPrintStream to pull in toString().

        * html/HTMLMediaElement.h:

2014-09-05  Brady Eidson  <beidson@apple.com>

        Allow pages with unload handlers in the page cache
        <rdar://problem/11084669> and https://bugs.webkit.org/show_bug.cgi?id=136535

        Reviewed by Oliver Hunt.

        This will match what iOS has been doing for some time.

        Updated tests for new behavior.

        * history/PageCache.cpp:
        (WebCore::logCanCacheFrameDecision):
        (WebCore::PageCache::canCachePageContainingThisFrame):

2014-09-05  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [SOUP] Implement ResourceResponse::platformSuggestedFilename() when USE(SOUP) is enabled.
        https://bugs.webkit.org/show_bug.cgi?id=136562

        Reviewed by Martin Robinson.

        No new tests, this makes existing tests pass.

        * platform/network/soup/ResourceResponseSoup.cpp:
        (WebCore::ResourceResponse::platformSuggestedFilename):
        Implement ResourceResponse::platformSuggestedFilename() for SOUP after r173272, r173301 and r173305.

2014-09-05  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Compile error.
        https://bugs.webkit.org/show_bug.cgi?id=136574

        Reviewed by Alex Christensen.

        The ResourceResponse::setSuggestedFilename method is no longer available.

        * platform/network/curl/CurlCacheEntry.cpp:
        (WebCore::CurlCacheEntry::setResponseFromCachedHeaders):
        * platform/network/curl/CurlDownload.cpp:
        (WebCore::CurlDownload::didReceiveHeader):
        * platform/network/curl/MultipartHandle.cpp:
        (WebCore::MultipartHandle::didReceiveResponse):
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::headerCallback):
        * platform/network/curl/ResourceResponse.h:
        (WebCore::ResourceResponse::platformSuggestedFilename):

2014-09-05  Benjamin Poulain  <benjamin@webkit.org>

        Update the current matching of :read-only and :read-write to the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=136566

        Reviewed by Antti Koivisto.

        WebKit's implementation of :read-only and :read-write dated from 2008 and
        it was based on the web form spec (http://www.w3.org/TR/web-forms-2/).
        That spec is very dead now.

        There are new definitions of :read-only and :read-write in three specs:
        -the HTML living spec: http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting.html#selector-read-only
        -Selectors level 4: http://dev.w3.org/csswg/selectors4/#rw-pseudos
        -CSS 3 UI: http://www.w3.org/TR/css3-ui/

        All the definitions say about the same thing. The definitions of Selector Level 4 and
        CSS 3 UI are very vague and poorly worded. I used the HTML when something was ambiguous.

        In the new definitions, :read-only and :read-write are opposite. It is no longer possible to
        match both selector simultaneously for the same element.
        Consequently, I got rid of Element:matchesReadOnlyPseudoClass(). Matching :read-only is now equivalent
        to :not(:read-write).

        The existing definition of :read-write was matching the spec so I could reuse that.

        There is one more part to the new spec that is not addressed here: the pseudo class :read-write should
        now also match arbitrary editable HTMLElement (e.g. an element with contenteditable). This will be fixed
        in a follow up.

        Tests: fast/css/read-only-read-write-input-basics.html
               fast/css/read-only-read-write-textarea-basics.html
               fast/selectors/read-only-read-write-input-basics.html
               fast/selectors/read-only-read-write-input-in-fieldset.html
               fast/selectors/read-only-read-write-textarea-basics.html
               fast/selectors/read-only-read-write-textarea-in-fieldset.html

        * css/SelectorCheckerTestFunctions.h:
        (WebCore::matchesReadOnlyPseudoClass):
        * dom/Element.cpp:
        (WebCore::Element::matchesReadOnlyPseudoClass): Deleted.
        * dom/Element.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::matchesReadOnlyPseudoClass): Deleted.
        * html/HTMLInputElement.h:
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::matchesReadOnlyPseudoClass): Deleted.
        * html/HTMLTextAreaElement.h:
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::SliderThumbElement::matchesReadOnlyPseudoClass): Deleted.
        * html/shadow/SliderThumbElement.h:
        * html/shadow/SpinButtonElement.cpp:
        (WebCore::SpinButtonElement::matchesReadOnlyPseudoClass): Deleted.
        * html/shadow/SpinButtonElement.h:
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::isReadOnlyControl):

2014-09-05  Andreas Kling  <akling@apple.com>

        CTTE: SVGResourcesCache should only allow RenderElements.
        <https://webkit.org/b/136578>

        Only RenderElement subclasses can use SVG resources.
        Codify this by making SVGResourcesCache::m_cache keyed on RenderElement.

        Reviewed by Antti Koivisto.

        * rendering/svg/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::selfWillPaint):
        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::imageChanged):
        * rendering/svg/RenderSVGResource.cpp:
        (WebCore::requestPaintingResource):
        (WebCore::removeFromCacheAndInvalidateDependencies):
        * rendering/svg/RenderSVGResourceClipper.cpp:
        (WebCore::RenderSVGResourceClipper::applyClippingToContext):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::paintReplaced):
        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::shouldGenerateMarkerPositions):
        (WebCore::RenderSVGShape::markerRect):
        (WebCore::RenderSVGShape::drawMarkers):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::invalidateResourcesOfChildren):
        (WebCore::SVGRenderSupport::intersectRepaintRectWithResources):
        (WebCore::SVGRenderSupport::filtersForceContainerLayout):
        (WebCore::SVGRenderSupport::pointInClippingArea):
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
        * rendering/svg/SVGResourcesCache.cpp:
        (WebCore::resourcesCacheFromRenderer):
        (WebCore::SVGResourcesCache::cachedResourcesForRenderer):
        (WebCore::SVGResourcesCache::clientLayoutChanged):
        (WebCore::SVGResourcesCache::clientDestroyed):
        (WebCore::SVGResourcesCache::resourceDestroyed):
        (WebCore::SVGResourcesCache::cachedResourcesForRenderObject): Deleted.
        * rendering/svg/SVGResourcesCache.h:
        * rendering/svg/SVGResourcesCycleSolver.cpp:
        (WebCore::SVGResourcesCycleSolver::resourceContainsCycles):

2014-09-05  Simon Fraser  <simon.fraser@apple.com>

        IDB version changed events should have a valid eventType()
        https://bugs.webkit.org/show_bug.cgi?id=136583

        Reviewed by Brady Eidson.

        IDBDatabase::dispatchEvent() asserts that the event type is versionchangeEvent,
        but the version changed event created with an empty event type. Correct this.

        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::onVersionChange):

2014-09-05  Simon Fraser  <simon.fraser@apple.com>

        Remove some PLATFORM(IOS) code in Color.h/cpp
        https://bugs.webkit.org/show_bug.cgi?id=136582

        Reviewed by Dan Bates.

        Remove Color::tap which is unused, and remove createCGColorWithDeviceWhite()
        which was only called in one file in WebKit.

        * WebCore.exp.in:
        * platform/graphics/Color.h:
        * platform/graphics/cg/ColorCG.cpp:
        (WebCore::createCGColorWithDeviceWhite): Deleted.

2014-09-05  Beth Dakin  <bdakin@apple.com>

        ScrollablArea::handleWheelEvent() should return early if the ScrollableArea is not 
        actually scrollable
        https://bugs.webkit.org/show_bug.cgi?id=136558

        Reviewed by Simon Fraser.

        This patch requires adding a new virtual function to ScrollableArea called 
        isScrollableOrRubberbandable(). Unfortunately, there is already a virtual function 
        of that name that exists on RenderLayerModelObject, which is only problematic 
        because RenderListBox inherits from both RenderLayerModelObject and 
        ScrollableArea. This patch resolves that conflict in the simplest way, by re-
        naming the RenderLayerModelObject version of the function to 
        isScrollableOrRubberbandableBox(). It’s a little unfortunate, but simpler than the 
        other solutions I came up with.

        New ScrollableArea virtual function.
        * page/FrameView.cpp:
        (WebCore::FrameView::isScrollableOrRubberbandable):
        * page/FrameView.h:

        The point of the whole patch! Return early if you can’t scroll or rubber band.
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::handleWheelEvent):

        New ScrollableArea virtual function.
        * platform/ScrollableArea.h:
        * platform/win/PopupMenuWin.h:

        Re-name.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::isScrollableOrRubberbandableBox):
        (WebCore::RenderBox::isScrollableOrRubberbandable): Deleted.
        * rendering/RenderBox.h:

        Implement new ScrollableArea virtual function, and adapt to the re-name.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::isScrollableOrRubberbandable):
        (WebCore::RenderLayer::hasScrollableOrRubberbandableAncestor):
        * rendering/RenderLayer.h:

        Re-name.
        * rendering/RenderLayerModelObject.h:
        (WebCore::RenderLayerModelObject::isScrollableOrRubberbandableBox):
        (WebCore::RenderLayerModelObject::isScrollableOrRubberbandable): Deleted.

        Implement ScrollableArea virtual function.
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::isScrollableOrRubberbandable):
        * rendering/RenderListBox.h:

        Re-name.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::isScrollableOrRubberbandableBox):
        (WebCore::RenderView::isScrollableOrRubberbandable): Deleted.
        * rendering/RenderView.h:

2014-06-06  Jer Noble  <jer.noble@apple.com>

        Refactoring: make MediaTime the primary time type for audiovisual times.
        https://bugs.webkit.org/show_bug.cgi?id=133579

        Reviewed by Eric Carlson.

        In order to limit the number of floating-point rounding errors for media systems which
        can make use of rational time objects.

        Add some convenience methods to convert between QTTime and MediaTime.
        * platform/graphics/mac/MediaTimeQTKit.h: Added.
        * platform/graphics/mac/MediaTimeQTKit.mm: Added.
        (WebCore::toMediaTime):
        (WebCore::toQTTime):

        Rename MediaTimeMac -> MediaTimeAVFoundation:
        * platform/graphics/avfoundation/MediaTimeAVFoundation.cpp: Renamed from Source/WebCore/platform/mac/MediaTimeMac.cpp.
        (WebCore::toMediaTime):
        (WebCore::toCMTime):
        * platform/graphics/avfoundation/MediaTimeAVFoundation.h: Renamed from Source/WebCore/platform/mac/MediaTimeMac.h.

        Use MediaTime instead of double:
        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::duration):
        (WebCore::MediaSource::currentTime):
        (WebCore::MediaSource::buffered):
        (WebCore::MediaSource::setDuration):
        (WebCore::MediaSource::activeRanges):
        * Modules/mediasource/MediaSource.h:
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::remove):
        (WebCore::SourceBuffer::removeCodedFrames):
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
        (WebCore::SourceBuffer::hasCurrentTime):
        (WebCore::SourceBuffer::hasFutureTime):
        (WebCore::SourceBuffer::canPlayThrough):
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDataCueCustom.cpp:
        (WebCore::JSDataCueConstructor::constructJSDataCue):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLMediaElement.h:
        (WebCore::ValueToString<MediaTime>::string):
        * html/MediaFragmentURIParser.cpp:
        (WebCore::MediaFragmentURIParser::MediaFragmentURIParser):
        (WebCore::MediaFragmentURIParser::startTime):
        (WebCore::MediaFragmentURIParser::endTime):
        (WebCore::MediaFragmentURIParser::parseTimeFragment):
        (WebCore::MediaFragmentURIParser::parseNPTFragment):
        (WebCore::MediaFragmentURIParser::parseNPTTime):
        (WebCore::MediaFragmentURIParser::invalidTimeValue): Deleted.
        * html/MediaFragmentURIParser.h:
        * html/TimeRanges.h:
        (WebCore::TimeRanges::ranges):
        * html/track/DataCue.cpp:
        (WebCore::DataCue::DataCue):
        * html/track/DataCue.h:
        (WebCore::DataCue::create):
        * html/track/InbandDataTextTrack.cpp:
        (WebCore::InbandDataTextTrack::addDataCue):
        (WebCore::InbandDataTextTrack::updateDataCue):
        (WebCore::InbandDataTextTrack::removeDataCue):
        * html/track/InbandDataTextTrack.h:
        * html/track/InbandGenericTextTrack.cpp:
        (WebCore::InbandGenericTextTrack::updateCueFromCueData):
        (WebCore::InbandGenericTextTrack::addGenericCue):
        (WebCore::InbandGenericTextTrack::removeGenericCue):
        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::startTimeVariance):
        * html/track/InbandTextTrack.h:
        * html/track/InbandWebVTTTextTrack.cpp:
        (WebCore::InbandWebVTTTextTrack::newCuesParsed):
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::addCue):
        (WebCore::TextTrack::hasCue):
        * html/track/TextTrack.h:
        (WebCore::TextTrack::startTimeVariance):
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::create):
        (WebCore::TextTrackCue::TextTrackCue):
        (WebCore::TextTrackCue::setStartTime):
        (WebCore::TextTrackCue::setEndTime):
        (WebCore::TextTrackCue::hasEquivalentStartTime):
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::startTime):
        (WebCore::TextTrackCue::endTime):
        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGeneric::TextTrackCueGeneric):
        * html/track/TextTrackCueGeneric.h:
        * html/track/TextTrackCueList.cpp:
        (WebCore::TextTrackCueList::add):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::VTTCue):
        (WebCore::VTTCue::markFutureAndPastNodes):
        (WebCore::VTTCue::updateDisplayTree):
        * html/track/VTTCue.h:
        (WebCore::VTTCue::create):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::WebVTTParser):
        (WebCore::WebVTTParser::resetCueValues):
        (WebCore::WebVTTParser::collectTimeStamp):
        (WebCore::WebVTTTreeBuilder::constructTreeFromToken):
        * html/track/WebVTTParser.h:
        (WebCore::WebVTTCueData::startTime):
        (WebCore::WebVTTCueData::setStartTime):
        (WebCore::WebVTTCueData::endTime):
        (WebCore::WebVTTCueData::setEndTime):
        (WebCore::WebVTTCueData::WebVTTCueData): Deleted.
        * platform/graphics/InbandTextTrackPrivateClient.h:
        (WebCore::GenericCueData::startTime):
        (WebCore::GenericCueData::setStartTime):
        (WebCore::GenericCueData::endTime):
        (WebCore::GenericCueData::setEndTime):
        (WebCore::GenericCueData::GenericCueData):
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::duration):
        (WebCore::MediaPlayer::startTime):
        (WebCore::MediaPlayer::initialTime):
        (WebCore::MediaPlayer::currentTime):
        (WebCore::MediaPlayer::seekWithTolerance):
        (WebCore::MediaPlayer::seek):
        (WebCore::MediaPlayer::maxTimeSeekable):
        (WebCore::MediaPlayer::minTimeSeekable):
        (WebCore::MediaPlayer::mediaTimeForTimeValue):
        (WebCore::MediaPlayer::totalFrameDelay):
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::durationMediaTime):
        (WebCore::MediaPlayerPrivateInterface::currentMediaTime):
        (WebCore::MediaPlayerPrivateInterface::seek):
        (WebCore::MediaPlayerPrivateInterface::seekWithTolerance):
        (WebCore::MediaPlayerPrivateInterface::startTime):
        (WebCore::MediaPlayerPrivateInterface::initialTime):
        (WebCore::MediaPlayerPrivateInterface::seekable):
        (WebCore::MediaPlayerPrivateInterface::maxMediaTimeSeekable):
        (WebCore::MediaPlayerPrivateInterface::minMediaTimeSeekable):
        (WebCore::MediaPlayerPrivateInterface::mediaTimeForTimeValue):
        (WebCore::MediaPlayerPrivateInterface::totalFrameDelay):
        (WebCore::MediaPlayerPrivateInterface::startTimeDouble): Deleted.
        (WebCore::MediaPlayerPrivateInterface::maxTimeSeekableDouble): Deleted.
        (WebCore::MediaPlayerPrivateInterface::mediaTimeForTimeValueDouble): Deleted.
        * platform/graphics/MediaSourcePrivateClient.h:
        * platform/graphics/TrackPrivateBase.h:
        (WebCore::TrackPrivateBase::startTimeVariance):
        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp:
        (WebCore::InbandMetadataTextTrackPrivateAVF::InbandMetadataTextTrackPrivateAVF):
        (WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
        (WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes):
        (WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues):
        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h:
        (WebCore::IncompleteMetaDataCue::IncompleteMetaDataCue):
        (WebCore::IncompleteMetaDataCue::startTime):
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processCue):
        (WebCore::InbandTextTrackPrivateAVF::resetCueValues):
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::MediaPlayerPrivateAVFoundation):
        (WebCore::MediaPlayerPrivateAVFoundation::durationMediaTime):
        (WebCore::MediaPlayerPrivateAVFoundation::seek):
        (WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance):
        (WebCore::MediaPlayerPrivateAVFoundation::maxMediaTimeSeekable):
        (WebCore::MediaPlayerPrivateAVFoundation::minMediaTimeSeekable):
        (WebCore::MediaPlayerPrivateAVFoundation::maxTimeLoaded):
        (WebCore::MediaPlayerPrivateAVFoundation::didLoadingProgress):
        (WebCore::MediaPlayerPrivateAVFoundation::updateStates):
        (WebCore::MediaPlayerPrivateAVFoundation::loadedTimeRangesChanged):
        (WebCore::MediaPlayerPrivateAVFoundation::seekableTimeRangesChanged):
        (WebCore::MediaPlayerPrivateAVFoundation::timeChanged):
        (WebCore::MediaPlayerPrivateAVFoundation::didEnd):
        (WebCore::MediaPlayerPrivateAVFoundation::invalidateCachedDuration):
        (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):
        (WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost):
        (WebCore::MediaPlayerPrivateAVFoundation::duration): Deleted.
        (WebCore::MediaPlayerPrivateAVFoundation::maxTimeSeekableDouble): Deleted.
        (WebCore::MediaPlayerPrivateAVFoundation::minTimeSeekable): Deleted.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        (WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification):
        (WebCore::MediaPlayerPrivateAVFoundation::Notification::time):
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformDuration):
        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTime):
        (WebCore::MediaPlayerPrivateAVFoundationCF::seekToTime):
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformDuration):
        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTime):
        (WebCore::MediaPlayerPrivateAVFoundationCF::seekToTime):
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformMinTimeSeekable):
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformMaxTimeSeekable):
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformMaxTimeLoaded):
        (WebCore::MediaPlayerPrivateAVFoundationCF::mediaTimeForTimeValue): Deleted.
        (WebCore::AVFWrapper::seekToTime): Deleted.
        (WebCore::LegibleOutputData::LegibleOutputData): Deleted.
        (WebCore::AVFWrapper::createImageForTimeInRect): Deleted.
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformMinTimeSeekable):
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformMaxTimeSeekable):
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformMaxTimeLoaded):
        (WebCore::MediaPlayerPrivateAVFoundationCF::mediaTimeForTimeValue): Deleted.
        (WebCore::AVFWrapper::seekToTime): Deleted.
        (WebCore::LegibleOutputData::LegibleOutputData): Deleted.
        (WebCore::AVFWrapper::createImageForTimeInRect): Deleted.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::currentMediaTime):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformMinTimeSeekable):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeSeekable):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformMaxTimeLoaded):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::mediaTimeForTimeValue):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::durationDidChange):
        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
        (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime): Deleted.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationMediaTime):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::startTime):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::initialTime):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::maxMediaTimeSeekable):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::minMediaTimeSeekable):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::totalFrameDelay):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationDouble): Deleted.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble): Deleted.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::startTimeDouble): Deleted.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::maxTimeSeekableDouble): Deleted.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::minTimeSeekable): Deleted.
        * platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h:
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
        (WebCore::InbandMetadataTextTrackPrivateGStreamer::addDataCue):
        * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
        (WebCore::InbandMetadataTextTrackPrivateGStreamer::addDataCue):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
        (WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):
        (WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
        (WebCore::MediaPlayerPrivateGStreamer::processTableOfContentsEntry):
        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::maxValueForTimeRanges):
        (WebCore::MediaPlayerPrivateQTKit::MediaPlayerPrivateQTKit):
        (WebCore::MediaPlayerPrivateQTKit::durationMediaTime):
        (WebCore::MediaPlayerPrivateQTKit::currentMediaTime):
        (WebCore::MediaPlayerPrivateQTKit::seek):
        (WebCore::MediaPlayerPrivateQTKit::doSeek):
        (WebCore::MediaPlayerPrivateQTKit::cancelSeek):
        (WebCore::MediaPlayerPrivateQTKit::seekTimerFired):
        (WebCore::MediaPlayerPrivateQTKit::seeking):
        (WebCore::MediaPlayerPrivateQTKit::setPreservesPitch):
        (WebCore::MediaPlayerPrivateQTKit::buffered):
        (WebCore::MediaPlayerPrivateQTKit::maxMediaTimeSeekable):
        (WebCore::MediaPlayerPrivateQTKit::maxMediaTimeLoaded):
        (WebCore::MediaPlayerPrivateQTKit::didLoadingProgress):
        (WebCore::MediaPlayerPrivateQTKit::updateStates):
        (WebCore::MediaPlayerPrivateQTKit::timeChanged):
        (WebCore::MediaPlayerPrivateQTKit::didEnd):
        (WebCore::MediaPlayerPrivateQTKit::maxMediaTimeSeekable):
        (WebCore::MediaPlayerPrivateQTKit::maxMediaTimeLoaded):
        (WebCore::MediaPlayerPrivateQTKit::createQTTime): Deleted.
        (WebCore::MediaPlayerPrivateQTKit::duration): Deleted.
        (WebCore::MediaPlayerPrivateQTKit::currentTime): Deleted.
        (WebCore::MediaPlayerPrivateQTKit::maxTimeSeekable): Deleted.
        (WebCore::MediaPlayerPrivateQTKit::maxTimeLoaded): Deleted.
        (WebCore::MediaPlayerPrivateQTKit::mediaTimeForTimeValue): Deleted.
        * platform/mac/PlatformClockCM.mm:
        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
        (WebCore::MockMediaPlayerMediaSource::maxMediaTimeSeekable):
        (WebCore::MockMediaPlayerMediaSource::currentMediaTime):
        (WebCore::MockMediaPlayerMediaSource::durationMediaTime):
        (WebCore::MockMediaPlayerMediaSource::seekWithTolerance):
        (WebCore::MockMediaPlayerMediaSource::totalFrameDelay):
        (WebCore::MockMediaPlayerMediaSource::maxTimeSeekableDouble): Deleted.
        (WebCore::MockMediaPlayerMediaSource::currentTimeDouble): Deleted.
        (WebCore::MockMediaPlayerMediaSource::durationDouble): Deleted.
        * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
        * platform/mock/mediasource/MockMediaSourcePrivate.cpp:
        (WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate):
        * platform/mock/mediasource/MockMediaSourcePrivate.h:
        * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
        (WebCore::MockSourceBufferPrivate::enqueueSample):

2014-09-05  Antti Koivisto  <antti@apple.com>

        REGRESSION(r173272): Two blob tests failing on WK1
        https://bugs.webkit.org/show_bug.cgi?id=136573

        Reviewed by Alexey Proskuryakov.

        http/tests/fileapi/blob-url-in-subframe.html
        http/tests/security/mixedContent/blob-url-in-iframe.html

        * platform/network/BlobResourceHandle.cpp:
        (WebCore::BlobResourceHandle::notifyResponseOnSuccess):

            No need to set this twice.

        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::initNSURLResponse):

            Also test that it is an HTTP URL before using NSHTTPURLResponse. Blobs create non-HTTP URLs with status codes.
            Pass the accidentally lost expected content length.

2014-09-05  Zalan Bujtas  <zalan@apple.com>

        Move computeInlinePreferredLogicalWidths() from RenderBlock to RenderBlockFlow
        https://bugs.webkit.org/show_bug.cgi?id=136461

        Reviewed by Darin Adler.

        This patch enables us to go from const_cast<RenderBlockFlow*>(this)->computeInlinePreferredLogicalWidths()
        to computeInlinePreferredLogicalWidths().

        Covered by existing tests.

        * rendering/RenderBlock.cpp:
        (WebCore::InlineMinMaxIterator::endOfInline): Deleted.
        (WebCore::InlineMinMaxIterator::next): Deleted.
        (WebCore::getBPMWidth): Deleted.
        (WebCore::getBorderPaddingMargin): Deleted.
        (WebCore::stripTrailingSpace): Deleted.
        (WebCore::preferredWidth): Deleted.
        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths): Deleted.
        * rendering/RenderBlock.h:
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths):
        (WebCore::InlineMinMaxIterator::initial): The (parent == current) condition was used as 'initial' state before.
        and in order to make computeInlinePreferredLogicalWidths const, InlineMinMaxIterator() needs to take const RenderObject*.
        (WebCore::InlineMinMaxIterator::next):
        (WebCore::getBPMWidth):
        (WebCore::getBorderPaddingMargin):
        (WebCore::stripTrailingSpace):
        (WebCore::preferredWidth):
        (WebCore::RenderBlockFlow::computeInlinePreferredLogicalWidths):
        * rendering/RenderBlockFlow.h:

2014-09-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed, build fix for EFL and GTK ports since r173272.

        * platform/network/soup/ResourceResponseSoup.cpp:
        (WebCore::ResourceResponse::updateFromSoupMessageHeaders):

2014-09-04  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. Speculative build fix. Add platformSuggestedFilename() to all the ResourceResponse header files.

        * platform/network/curl/ResourceResponse.h:
        (WebCore::ResourceResponse::platformSuggestedFilename):
        * platform/network/soup/ResourceResponse.h:
        * platform/network/win/ResourceResponse.h:
        (WebCore::ResourceResponse::platformSuggestedFilename):

2014-09-04  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. Another speculative build fix after r173272. Add a stub implementation for
        ResourceResponse::platformSuggestedFilename(). Filed bug 136562 for proper fix.

        * platform/network/soup/ResourceResponseSoup.cpp:
        (ResourceResponse::platformSuggestedFilename):

2014-09-04  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. Speculative EFL and GTK build fix after r173272. Remove the filename argument
        from the various ResourceResponse constructors.

        * platform/network/curl/ResourceResponse.h:
        (WebCore::ResourceResponse::ResourceResponse):
        * platform/network/soup/ResourceResponse.h:
        (WebCore::ResourceResponse::ResourceResponse):
        * platform/network/win/ResourceResponse.h:
        (WebCore::ResourceResponse::ResourceResponse):

2014-09-04  Simon Fraser  <simon.fraser@apple.com>

        border-radius should not force layer backing store
        https://bugs.webkit.org/show_bug.cgi?id=136555

        Reviewed by Dean Jackson.
        
        Border-radius is not a reason to allocate backing store; it's not relevant unless
        we also have a border or background, and hasBoxDecorations() already checks for that.
        
        With that gone, we can now use renderer.hasBoxDecorations() (which also checks for
        a background), but it doesn't check for outlines, so do that in addition.

        Test: compositing/backing/border-radius-no-backing.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):

2014-09-04  Simon Fraser  <simon.fraser@apple.com>

        CSS filter on a compositing layer should not cause unncessary backing store allocation
        https://bugs.webkit.org/show_bug.cgi?id=136557

        Reviewed by Dean Jackson.
        
        Remove the style.hasFilter() check from hasBoxDecorations(), since filters aren't
        a box decoration. This allows creation of simple container layers with composited filters.

        Test: compositing/backing/filter-no-backing.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):

2014-09-04  Simon Fraser  <simon.fraser@apple.com>

        Improve the logic for compositing backing store avoidance
        https://bugs.webkit.org/show_bug.cgi?id=136556

        Reviewed by Dean Jackson.
        
        Avoid backing store allocation in more cases by improving the logic that detects
        whether a RenderLayer has any painted, non-layer descendent renderers.
        
        Rename RenderLayer::hasNonEmptyChildRenderers() to hasPaintingNonLayerDescendants(),
        and make it recur 3 levels deep, walking child lists of up to 20 siblings looking
        for renderers that paint anything. Any renderer with box decorations paints;
        replaced elements paint, and non-whitespace text nodes paint. We can avoid
        making backing store when whitespace nodes are present only when user-select is none,
        since we have to ensure that there's backing store to paint the selection into.

        Tests: compositing/backing/inline-block-no-backing.html
               compositing/backing/whitespace-nodes-no-backing.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hasNonEmptyChildRenderers): Call the recursive hasPaintingNonLayerDescendants().
        (WebCore::RenderLayer::hasBoxDecorationsOrBackground):
        (WebCore::RenderLayer::isVisuallyNonEmpty): Do the cheap tests first. Use isRenderReplaced()
        rather than isReplaced(), since the latter includes inline-blocks.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateConfiguration): Don't run the isSimpleContainerCompositingLayer()
        logic in the root layer, since it always wants backing store.
        (WebCore::RenderLayerBacking::updateAfterDescendents): Ditto.
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): isReplaced() includes
        inline-block, so use isRenderReplaced() instead.

2014-09-04  Daniel Bates  <dabates@apple.com>

        [iOS] Fix the iOS build after <http://trac.webkit.org/changeset/173258>
        (https://bugs.webkit.org/show_bug.cgi?id=136494)

        Use ENABLE_TOUCH_EVENT instead of ENABLE(TOUCH_EVENT) as the latter isn't available
        to some clients of this private header.

        * platform/ios/wak/WAKResponder.h:

2014-09-04  Roger Fong  <roger_fong@apple.com>

        Increase number of maximum active WebGL contexts.
        https://bugs.webkit.org/show_bug.cgi?id=136551.
        <rdar://problem/18236425>

        Reviewed by Brent Fulgham.

        Test covered by Khronos conformance test:
        webgl/1.0.2/conformance/context/context-creation-and-destruction.html

        * platform/graphics/mac/GraphicsContext3DMac.mm:

2014-09-04  Roger Fong  <roger_fong@apple.com>

        Clicking on a select element should never hide the popup menu.
        https://bugs.webkit.org/show_bug.cgi?id=136548.
        <rdar://problem/10215926>

        Reviewed by Simon Fraser.

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
        Never call hidePopup as a result of a click on a select element.
        The only way you can properly hide a popup is to click again or lose focus on the popup itself.

2014-09-04  Enrica Casucci  <enrica@apple.com>

        Remove PLATFORM(IOS) from WebCore/editing (Part 2).
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Tim Horton.

        Removing some more PLATFORM(IOS) from the editing code.
        Most of these changes are fixes that were made for IOS but never merged
        to OpenSource.

        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyBlockStyle):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::doApply):
        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):
        (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingEditingBoundaries):
        * editing/VisibleUnits.cpp:
        (WebCore::startOfDocument):
        (WebCore::endOfDocument):
        * editing/ios/EditorIOS.mm: No need for platform guard, this file is not built for Mac.

2014-09-03  Andy Estes  <aestes@apple.com>

        [Cocoa] Some WebKitLegacy headers migrated from WebCore incorrectly contain WEBCORE_EXPORT
        https://bugs.webkit.org/show_bug.cgi?id=136521

        Reviewed by Anders Carlsson.

        * platform/ios/wak/WebCoreThread.h: Stopped defining WEBCORE_EXPORT.

2014-09-03  David Hyatt  <hyatt@apple.com>

        Initial letters should clear one another.
        https://bugs.webkit.org/show_bug.cgi?id=136514

        Reviewed by Simon Fraser.

        Added fast/css-generated-content/initial-letter-clearance.html.

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
        Compute the required clearance and add it both to the block's logical height
        and to the logical top offset of the float.

        (WebCore::RenderBlockFlow::lowestInitialLetterLogicalBottom):
        * rendering/RenderBlockFlow.h:
        A new method for determining the lowest floating initial letter.

2014-09-04  Joseph Pecoraro  <pecoraro@apple.com>

        Use WTFString::find(char) in more places
        https://bugs.webkit.org/show_bug.cgi?id=136541

        Reviewed by Daniel Bates.

        * Modules/plugins/YouTubePluginReplacement.cpp:
        (WebCore::queryKeysAndValues):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseAttribute):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parametersForPlugin):
        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::decodedSnippetForAttribute):
        * page/UserContentURLPattern.cpp:
        (WebCore::UserContentURLPattern::parse):

2014-09-04  Antti Koivisto  <antti@apple.com>

        Try to fix iOS build.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::initForSynthesizedDocument):

2014-09-04  Maciej Stachowiak  <mjs@apple.com>

        Remove WebCoreSystemInterface glue for otherwise unused WKSI calls
        https://bugs.webkit.org/show_bug.cgi?id=136527

        Reviewed by Alexey Proskuryakov.

        * WebCore.exp.in:
        * WebCore.order:
        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2014-09-04  Beth Dakin  <bdakin@apple.com>

        REGRESSION (r172832): Poor 2-finger scrolling performance at theverge.com articles 
        (all tiles repaint)
        https://bugs.webkit.org/show_bug.cgi?id=136433
        -and corresponding-
        rdar://problem/18193942

        Reviewed by Tim Horton.

        We should ensure that we are only setting scroll elasticity for layers that return 
        true for scrollsOverflow(). When overflow:scroll is set on the root element, we 
        wound up setting the ScrollElasticity for the root, which messed up with the 
        special way that the root is meant to scroll. Even though overflow:scroll has been 
        set on the root, scrollsOverflow() is still false because we knew not to set 
        hasOverflowClip() since it’s the root, which is why this check works.  
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setHasHorizontalScrollbar):
        (WebCore::RenderLayer::setHasVerticalScrollbar):

        Really, we should have never even called RenderLayer::setHasVerticalScrollbar or 
        RenderLayer::setHasHorizontalScrollbar since it’s wrong to be creating a scrollbar 
        on RenderLayer for the root. We should make sure, in addition to the other 
        requirements consulted, that the renderer has an overflow clip before we create 
        the scrollbars.
        (WebCore::RenderLayer::updateScrollbarsAfterStyleChange):

2014-09-04  Antti Koivisto  <antti@apple.com>

        Remove ResourceResponse::m_suggestedFilename
        https://bugs.webkit.org/show_bug.cgi?id=136534

        Reviewed by Alexey Proskuryakov.

        This will simplify things.

        * WebCore.exp.in:
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::handleSubstituteDataLoadNow):
        (WebCore::DocumentLoader::maybeLoadEmpty):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::willLoadMediaElementURL):
        * loader/appcache/ApplicationCacheStorage.cpp:
        (WebCore::ApplicationCacheStorage::loadCache):
        * loader/archive/ArchiveResource.cpp:
        (WebCore::ArchiveResource::create):
        * platform/network/BlobResourceHandle.cpp:
        (WebCore::BlobResourceHandle::notifyResponseOnSuccess):
        (WebCore::BlobResourceHandle::notifyResponseOnError):
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::ResourceResponseBase):
        (WebCore::ResourceResponseBase::adopt):
        (WebCore::ResourceResponseBase::copyData):
        (WebCore::ResourceResponseBase::suggestedFilename):
        (WebCore::ResourceResponseBase::httpStatusText):
        (WebCore::ResourceResponseBase::setHTTPStatusText):
        (WebCore::ResourceResponseBase::httpHeaderField):
        (WebCore::ResourceResponseBase::setHTTPHeaderField):
        (WebCore::ResourceResponseBase::addHTTPHeaderField):
        (WebCore::ResourceResponseBase::httpHeaderFields):
        (WebCore::ResourceResponseBase::isAttachment):
        (WebCore::ResourceResponseBase::wasCached):
        (WebCore::ResourceResponseBase::connectionReused):
        (WebCore::ResourceResponseBase::setConnectionReused):
        (WebCore::ResourceResponseBase::connectionID):
        (WebCore::ResourceResponseBase::setConnectionID):

            Remove AllFields initialization. It was only used to get m_suggestedFilename.
            Rename CommonAndUncommonFields to AllFields

        (WebCore::ResourceResponseBase::setSuggestedFilename): Deleted.

            No more setter.

        * platform/network/ResourceResponseBase.h:
        (WebCore::ResourceResponseBase::platformSuggestedFileName):

            Get the suggested filename from the platform class on-demand.

        * platform/network/cf/ResourceResponse.h:
        (WebCore::ResourceResponse::ResourceResponse):

            Remove never-used file name constructor parameter.

        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::platformLazyInit):
        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::initNSURLResponse):

            Synthesize HTTP response properly so it can hold Content-Disposition for file name (and other headers).

        (WebCore::ResourceResponse::platformLazyInit):

            Don't pull the suggested filename anymore.

        (WebCore::ResourceResponse::platformSuggestedFilename):

            Get the suggested name from the (possibly synthetic) NSURLRequest.

2014-09-04  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Remove CSS_FILTERS flag
        https://bugs.webkit.org/show_bug.cgi?id=136529

        Reviewed by Dirk Schulze.

        No new tests, no behaviour changed.

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.cpp:
        * WebCore.exp.in:
        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::toJS):
        * bindings/objc/DOMCSS.mm:
        (kitClass):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::valueForFilter):
        (WebCore::isLayoutDependent):
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSComputedStyleDeclaration.h:
        * css/CSSFilterImageValue.cpp:
        * css/CSSFilterImageValue.h:
        * css/CSSImageGeneratorValue.cpp:
        (WebCore::CSSImageGeneratorValue::image):
        (WebCore::CSSImageGeneratorValue::isFixedSize):
        (WebCore::CSSImageGeneratorValue::fixedSize):
        (WebCore::CSSImageGeneratorValue::isPending):
        (WebCore::CSSImageGeneratorValue::knownToBeOpaque):
        (WebCore::CSSImageGeneratorValue::loadSubimages):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseGeneratedImage):
        (WebCore::CSSParser::parseFilterImage):
        (WebCore::CSSParser::parseFilter):
        * css/CSSParser.h:
        * css/CSSPropertyNames.in:
        * css/CSSValue.cpp:
        (WebCore::CSSValue::hasFailedOrCanceledSubresources):
        (WebCore::CSSValue::equals):
        (WebCore::CSSValue::cssText):
        (WebCore::CSSValue::destroy):
        (WebCore::CSSValue::cloneForCSSOM):
        * css/CSSValue.h:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::State::clear):
        (WebCore::StyleResolver::applyProperty):
        (WebCore::StyleResolver::generatedOrPendingFromValue):
        (WebCore::StyleResolver::loadPendingResources):
        * css/StyleResolver.h:
        * css/WebKitCSSFilterValue.cpp:
        * css/WebKitCSSFilterValue.h:
        * css/WebKitCSSFilterValue.idl:
        * loader/cache/CachedSVGDocumentReference.cpp:
        * loader/cache/CachedSVGDocumentReference.h:
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollContentsFastPath):
        * page/animation/AnimationBase.cpp:
        (WebCore::AnimationBase::AnimationBase):
        * page/animation/AnimationBase.h:
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::blendFilter):
        (WebCore::blendFunc):
        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
        * page/animation/ImplicitAnimation.cpp:
        (WebCore::ImplicitAnimation::reset):
        (WebCore::ImplicitAnimation::checkForMatchingFilterFunctionLists):
        * page/animation/ImplicitAnimation.h:
        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::KeyframeAnimation):
        (WebCore::KeyframeAnimation::checkForMatchingFilterFunctionLists):
        * page/animation/KeyframeAnimation.h:
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::validateFilterOperations):
        * platform/graphics/GraphicsLayer.h:
        * platform/graphics/GraphicsLayerAnimation.cpp:
        (WebCore::applyFilterAnimation):
        (WebCore::GraphicsLayerAnimation::applyInternal):
        * platform/graphics/GraphicsLayerAnimation.h:
        * platform/graphics/IntRectExtent.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::propertyIdToString):
        (WebCore::supportsAcceleratedFilterAnimations):
        (WebCore::GraphicsLayerCA::filtersCanBeComposited):
        (WebCore::GraphicsLayerCA::moveOrCopyAnimations):
        (WebCore::GraphicsLayerCA::setFilters):
        (WebCore::GraphicsLayerCA::addAnimation):
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::updateFilters):
        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
        (WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
        (WebCore::GraphicsLayerCA::setFilterAnimationKeyframes):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/PlatformCAAnimation.h:
        * platform/graphics/ca/PlatformCAFilters.h:
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/mac/PlatformCAAnimationMac.h:
        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
        (PlatformCAAnimationMac::setFromValue):
        (PlatformCAAnimationMac::setToValue):
        (PlatformCAAnimationMac::setValues):
        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
        (PlatformCAFilters::animatedFilterPropertyName):
        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayerMac::clone):
        (PlatformCALayerMac::filtersCanBeComposited):
        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
        (PlatformCAAnimationWin::setFromValue):
        (PlatformCAAnimationWin::setToValue):
        (PlatformCAAnimationWin::setValues):
        * platform/graphics/ca/win/PlatformCAAnimationWin.h:
        * platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
        (PlatformCAFilters::animatedFilterPropertyName):
        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
        (PlatformCALayerWin::clone):
        * platform/graphics/ca/win/PlatformCALayerWin.h:
        * platform/graphics/filters/FilterOperation.cpp:
        * platform/graphics/filters/FilterOperation.h:
        * platform/graphics/filters/FilterOperations.cpp:
        * platform/graphics/filters/FilterOperations.h:
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::commitLayerChanges):
        (WebCore::GraphicsLayerTextureMapper::setFilters):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        * platform/graphics/texmap/TextureMapper.h:
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapperGLData::TextureMapperGLData):
        (WebCore::prepareFilterProgram):
        (WebCore::TextureMapperGL::drawTexture):
        (WebCore::BitmapTextureGL::applyFilters):
        * platform/graphics/texmap/TextureMapperGL.h:
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::applyFilters):
        * platform/graphics/texmap/TextureMapperImageBuffer.h:
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::setAnimatedFilters):
        (WebCore::TextureMapperLayer::computeOverlapRegions):
        (WebCore::TextureMapperLayer::paintIntoSurface):
        (WebCore::TextureMapperLayer::setFilters):
        (WebCore::TextureMapperLayer::syncAnimations):
        * platform/graphics/texmap/TextureMapperLayer.h:
        (WebCore::TextureMapperLayer::hasFilters):
        * platform/graphics/texmap/TextureMapperShaderProgram.h:
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
        (WebCore::CoordinatedGraphicsLayer::didChangeFilters):
        (WebCore::CoordinatedGraphicsLayer::setFilters):
        (WebCore::CoordinatedGraphicsLayer::syncFilters):
        (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::setLayerFiltersIfNeeded):
        (WebCore::CoordinatedGraphicsScene::setLayerState):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
        * rendering/FilterEffectRenderer.cpp:
        * rendering/FilterEffectRenderer.h:
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::adjustStyleDifference):
        * rendering/RenderElement.h:
        (WebCore::RenderElement::hasFilter): Deleted.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::~RenderLayer):
        (WebCore::transparencyClipBox):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking):
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
        (WebCore::RenderLayerBacking::updateFilters):
        (WebCore::RenderLayerBacking::updateGeometry):
        (WebCore::RenderLayerBacking::startAnimation):
        (WebCore::RenderLayerBacking::startTransition):
        (WebCore::RenderLayerBacking::graphicsLayerToCSSProperty):
        (WebCore::RenderLayerBacking::cssToGraphicsLayerProperty):
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
        (WebCore::RenderLayerCompositor::requiresCompositingForFilters):
        * rendering/RenderLayerFilterInfo.cpp:
        * rendering/RenderLayerFilterInfo.h:
        * rendering/RenderLayerModelObject.cpp:
        (WebCore::RenderLayerModelObject::styleWillChange):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::containerForRepaint):
        (WebCore::RenderObject::repaintUsingContainer):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        * rendering/RenderView.h:
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayout):
        (WebCore::RenderStyle::changeRequiresLayerRepaint):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleFilterData.cpp:
        * rendering/style/StyleFilterData.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        (WebCore::StyleRareNonInheritedData::hasFilters):
        * rendering/style/StyleRareNonInheritedData.h:
        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation):

2014-09-04  Pratik Solanki  <psolanki@apple.com>

        Remove iOS specific disk image cache
        https://bugs.webkit.org/show_bug.cgi?id=136517

        Reviewed by Antti Koivisto.

        Disk image cache code unnecessarily complicates SharedBuffer implementation. We can remove
        this now since we don't enable it in WebKit2 on iOS.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/ResourceBuffer.cpp:
        (WebCore::ResourceBuffer::isUsingDiskImageCache): Deleted.
        * loader/ResourceBuffer.h:
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::canUseDiskImageCache): Deleted.
        (WebCore::CachedImage::useDiskImageCache): Deleted.
        * loader/cache/CachedImage.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::isUsingDiskImageCache): Deleted.
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::canUseDiskImageCache): Deleted.
        (WebCore::CachedResource::useDiskImageCache): Deleted.
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::TypeStatistic::addResource):
        (WebCore::MemoryCache::dumpStats):
        (WebCore::MemoryCache::dumpLRULists):
        (WebCore::MemoryCache::flushCachedImagesToDisk): Deleted.
        * loader/cache/MemoryCache.h:
        (WebCore::MemoryCache::TypeStatistic::TypeStatistic):
        * loader/ios/DiskImageCacheClientIOS.h: Removed.
        * loader/ios/DiskImageCacheIOS.h: Removed.
        * loader/ios/DiskImageCacheIOS.mm: Removed.
        * platform/Logging.h:
        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::SharedBuffer):
        (WebCore::SharedBuffer::~SharedBuffer):
        (WebCore::SharedBuffer::data):
        (WebCore::SharedBuffer::append):
        (WebCore::SharedBuffer::buffer):
        (WebCore::SharedBuffer::getSomeData):
        (WebCore::SharedBuffer::isAllowedToBeMemoryMapped): Deleted.
        (WebCore::SharedBuffer::allowToBeMemoryMapped): Deleted.
        (WebCore::SharedBuffer::failedMemoryMap): Deleted.
        (WebCore::SharedBuffer::markAsMemoryMapped): Deleted.
        (WebCore::SharedBuffer::memoryMappedNotificationCallbackData): Deleted.
        (WebCore::SharedBuffer::memoryMappedNotificationCallback): Deleted.
        (WebCore::SharedBuffer::setMemoryMappedNotificationCallback): Deleted.
        * platform/SharedBuffer.h:
        (WebCore::SharedBuffer::isMemoryMapped): Deleted.
        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::SharedBuffer):
        * platform/mac/SharedBufferMac.mm:
        (-[WebCoreSharedBufferData length]):
        (-[WebCoreSharedBufferData bytes]):
        (WebCore::SharedBuffer::createCFData):
        (-[WebCoreSharedBufferData initWithMemoryMappedSharedBuffer:]): Deleted.

2014-09-04  Brian J. Burg  <burg@cs.washington.edu>

        LegacyProfiler: ProfileNodes should be used more like structs
        https://bugs.webkit.org/show_bug.cgi?id=136381

        Reviewed by Timothy Hatcher.

        * inspector/ScriptProfileNode.idl: Remove an unused property.

2014-09-04  Renato Nagy  <rnagy@inf.u-szeged.hu>

        Remove Qt cruft: MIMESniffing.cpp and MIMESniffing.h
        https://bugs.webkit.org/show_bug.cgi?id=136528

        Reviewed by Alexey Proskuryakov.

        * platform/network/MIMESniffing.cpp: Removed.
        * platform/network/MIMESniffing.h: Removed.

2014-09-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Introduce CSS_BASIC_SHAPES_TYPE_CASTS, and use it
        https://bugs.webkit.org/show_bug.cgi?id=136403

        Reviewed by Daniel Bates.

        toCSSBasicShapeFoo() will help to detect wrong type casting. So this patch generates it, and use it
        instead of static_cast<const CSSBasicShapeFoo*>().

        No new tests no behavior changes.

        * css/BasicShapeFunctions.cpp:
        (WebCore::basicShapeForValue):
        * css/CSSBasicShapes.cpp:
        (WebCore::CSSBasicShapeCircle::equals):
        (WebCore::CSSBasicShapeEllipse::equals):
        (WebCore::CSSBasicShapePolygon::equals):
        (WebCore::CSSBasicShapeInset::equals):
        * css/CSSBasicShapes.h:

2014-09-04  Daniel Bates  <dabates@apple.com>

        [iOS] Make iOS build when ENABLE_TOUCH_EVENT and ENABLE_IOS_TOUCH_EVENTS disabled
        https://bugs.webkit.org/show_bug.cgi?id=136494

        Reviewed by Andy Estes.

        * WebCore.exp.in: Add ENABLE(IOS_TOUCH_EVENTS) and ENABLE(TOUCH_EVENTS) guards. Also, sort this file using
        the script Tools/Scripts/sort-export-file.
        * bindings/js/JSDocumentCustom.cpp: Add ENABLE(TOUCH_EVENTS)-guard around headers JSTouch.h and JSTouchList.h.
        * page/ios/WebEventRegion.mm: Substitute ENABLE(IOS_TOUCH_EVENTS) for ENABLE(TOUCH_EVENTS) since this
        code is specific to the iOS touch machinery.
        * page/scrolling/ScrollingCoordinator.cpp: Add ENABLE(IOS_TOUCH_EVENTS) and ENABLE(TOUCH_EVENTS) guards. 
        (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Substitute ENABLE(IOS_TOUCH_EVENTS) for PLATFORM(IOS).
        * platform/ios/ScrollAnimatorIOS.h: Add ENABLE(TOUCH_EVENTS) guard.
        * platform/ios/ScrollAnimatorIOS.mm:
        (WebCore::ScrollAnimatorIOS::ScrollAnimatorIOS): Ditto.
        * platform/ios/wak/WAKResponder.h: Ditto.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer): Add ENABLE(IOS_TOUCH_EVENTS) guard.
        (WebCore::RenderLayer::~RenderLayer): Substitute ENABLE(IOS_TOUCH_EVENTS) for PLATFORM(IOS) since this
        code is specific to the iOS touch machinery.
        * rendering/RenderLayer.h: Add ENABLE(IOS_TOUCH_EVENTS) guard.

2014-09-04  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        REGRESSION(r173240) [GTK] Debug build broken.

        Unreviewed build fix after r173240.

        * dom/EventListenerMap.h: Add missing include.

2014-09-04  Dan Bernstein  <mitz@apple.com>

        Get rid of HIGH_DPI_CANVAS leftovers
        https://bugs.webkit.org/show_bug.cgi?id=136491

        Reviewed by Benjamin Poulain.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::HTMLCanvasElement): Removed m_deviceScaleFactor initializer.
        (WebCore::HTMLCanvasElement::reset): Removed checking if the scale factor has changed and
        updating m_deviceScaleFactor.
        (WebCore::HTMLCanvasElement::convertLogicalToDevice): Removed scaling by the device scale
        factor.
        (WebCore::HTMLCanvasElement::convertDeviceToLogical): Ditto.
        (WebCore::HTMLCanvasElement::createImageBuffer): Replaced m_deviceScaleFactor with a literal
        1.
        (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Deleted.
        * html/HTMLCanvasElement.h: Removed m_deviceScaleFactor member variable and its getter.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::putImageData): Removed scaling by the device scale
        factor.
        * html/canvas/CanvasRenderingContext2D.h:
        (WebCore::CanvasRenderingContext2D::webkitBackingStorePixelRatio): Changed to return 1.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::texImage2D): Replaced deviceScaleFactor() with 1.
        (WebCore::WebGLRenderingContext::texSubImage2D): Ditto.

2014-09-03  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        XMLHttpRequest always defaults Content-Type to application/xml, while it should depend on data type
        https://bugs.webkit.org/show_bug.cgi?id=11049

        Reviewed by Darin Adler.

        Updated default mime type when sending text (changed from application/xml to text/plain;charset=UTF-8)
        Updated default mime type when sending document (set to application/xml;charset=UTF-8 for XML documents and text/html;charset=UTF-8 for HTML documents)

        Test: http/tests/xmlhttprequest/post-content-type-document.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::send): updating default Content-Type valuess.

2014-09-02  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: fix prefixes for subclasses of JSC::ConsoleClient
        https://bugs.webkit.org/show_bug.cgi?id=136476

        Reviewed by Timothy Hatcher.

        No new tests. No behavior changed.

        * CMakeLists.txt:
        * WebCore.exp.in:
        * WebCore.order:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/js/ScriptCachedFrameData.cpp:
        (WebCore::ScriptCachedFrameData::restore):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::clearWindowShell):
        (WebCore::ScriptController::initScript):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::logError):
        * dom/Document.cpp:
        (WebCore::Document::addConsoleMessage):
        (WebCore::Document::addMessage):
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::muteConsole):
        (WebCore::PageDebuggerAgent::unmuteConsole):
        (WebCore::PageDebuggerAgent::breakpointActionLog):
        * inspector/PageRuntimeAgent.cpp:
        (WebCore::PageRuntimeAgent::muteConsole):
        (WebCore::PageRuntimeAgent::unmuteConsole):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::console):
        (WebCore::DOMWindow::dispatchMessageEventWithOriginCheck):
        (WebCore::DOMWindow::close):
        (WebCore::DOMWindow::printErrorMessage):
        (WebCore::DOMWindow::pageConsole): Deleted.
        * page/DOMWindow.h:
        * page/Page.cpp:
        (WebCore::Page::Page):
        * page/Page.h:
        * page/PageConsoleClient.cpp: Renamed from Source/WebCore/page/PageConsole.cpp.
        * page/PageConsoleClient.h: Renamed from Source/WebCore/page/PageConsole.h.
        * testing/Internals.cpp:
        (WebCore::Internals::consoleProfiles):
        * testing/Internals.h:
        * xml/XSLStyleSheetLibxslt.cpp:
        (WebCore::XSLStyleSheet::parseString):
        * xml/XSLTProcessorLibxslt.cpp:
        (WebCore::XSLTProcessor::parseErrorFunc):
        (WebCore::docLoaderFunc):

2014-09-03  Maciej Stachowiak  <mjs@apple.com>

        Fix a few leftovers from removing MIME-related WKSI usage
        https://bugs.webkit.org/show_bug.cgi?id=136513

        Reviewed by Alexey Proskuryakov.

        * WebCore.exp.in:
        * WebCore.order:
        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/mac/WebCoreSystemInterface.mm:

2014-09-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Text caret changes to color of text in Mail and Notes
        https://bugs.webkit.org/show_bug.cgi?id=135904

        Reviewed by Simon Fraser.

        Consult with the background color of spans inside editable divs to determine what color
        the caret should be.

        Test: editing/caret/color-span-inside-editable.html

        * editing/FrameSelection.cpp:
        (WebCore::CaretBase::paintCaret):

2014-09-03  Tim Horton  <timothy_horton@apple.com>

        Fix the iOS build after r173230

        * WebCore.exp.in:

2014-09-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Remove unnecessary function from TextPainter
        https://bugs.webkit.org/show_bug.cgi?id=136497

        Reviewed by Simon Fraser.

        Function is never called.

        No new tests because there is no behavior change.

        * rendering/TextPainter.cpp:
        (WebCore::TextPainter::paintTextInContext): Deleted.
        * rendering/TextPainter.h:

2014-09-03  Anders Carlsson  <andersca@apple.com>

        Don't use DEPRECATED_DEFINE_STATIC_LOCAL for mutexes
        https://bugs.webkit.org/show_bug.cgi?id=136510

        Reviewed by Andreas Kling.

        Mutexes are intended to be used from multiple threads, and DEPRECATED_DEFINE_STATIC_LOCAL is not thread safe.

        * bindings/objc/DOMInternal.mm:
        (wrapperCacheLock):
        (getDOMWrapper):
        (addDOMWrapper):
        (removeDOMWrapper):
        Use LazyNeverDestroyed + std::call_once, and switch the mutex over to an std::mutex.

        * dom/EventListenerMap.cpp:
        (WebCore::EventListenerMap::assertNoActiveIterators):
        (WebCore::EventListenerIterator::EventListenerIterator):
        (WebCore::EventListenerIterator::~EventListenerIterator):
        (WebCore::activeIteratorCountMutex):
        (WebCore::EventListenerMap::EventListenerMap): Deleted.
        * dom/EventListenerMap.h:
        Use an std::atomic<int> instead of a mutex here.

2014-09-03  Enrica Casucci  <enrica@apple.com>

        Remove PLATFORM(IOS) from WebCore/editing (Part 1).
        https://bugs.webkit.org/show_bug.cgi?id=136474

        Reviewed by Tim Horton.

        This is the first part of the work to remove PLATFORM(IOS) everywhere
        in the editing code.

        * dom/Range.cpp:
        (WebCore::Range::create): Adding create function that takes VisiblePosition.
        * dom/Range.h:
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::apply):
        (WebCore::CompositeEditCommand::inputText):
        * editing/CompositeEditCommand.h:
        * editing/DeleteButton.h: No need for the platform guard since it is already under
        DELETION_UI
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::enable):
        (WebCore::DeleteButtonController::disable):
        * editing/EditAction.h:
        * editing/EditCommand.h:
        (WebCore::EditCommand::isInsertTextCommand):
        * editing/Editor.cpp:
        (WebCore::ClearTextCommand::CreateAndApply):
        * editing/Editor.h:
        * editing/EditorCommand.cpp:
        (WebCore::executeClearText):
        (WebCore::enabledCopy):
        (WebCore::enabledCut):
        (WebCore::enabledClearText):
        (WebCore::createCommandMap):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::modifyExtendingRight):
        (WebCore::FrameSelection::modifyExtendingForward):
        (WebCore::FrameSelection::modifyMovingRight):
        (WebCore::FrameSelection::modifyMovingForward):
        (WebCore::FrameSelection::modifyExtendingLeft):
        (WebCore::FrameSelection::modifyExtendingBackward):
        (WebCore::FrameSelection::modifyMovingLeft):
        (WebCore::FrameSelection::modifyMovingBackward):
        * editing/InsertTextCommand.h:
        * editing/TextCheckingHelper.cpp:
        * editing/TextGranularity.h:
        * editing/VisiblePosition.h:
        (WebCore::operator>=):
        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::setStartAndEndFromBaseAndExtentRespectingGranularity):
        * editing/VisibleUnits.cpp:
        * editing/VisibleUnits.h:

2014-09-03  Anders Carlsson  <andersca@apple.com>

        Get rid of some uses of OwnPtr
        https://bugs.webkit.org/show_bug.cgi?id=136503

        Reviewed by Sam Weinig.

        * dom/ElementRareData.cpp:
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::create): Deleted.
        * dom/MutationObserverRegistration.cpp:
        (WebCore::MutationObserverRegistration::create): Deleted.
        * dom/MutationObserverRegistration.h:
        * dom/Node.cpp:
        (WebCore::Node::materializeRareData):
        (WebCore::Node::didMoveToNewDocument):
        (WebCore::eventTargetDataMap):
        (WebCore::Node::eventTargetData):
        (WebCore::Node::ensureEventTargetData):
        (WebCore::Node::mutationObserverRegistry):
        (WebCore::Node::registerMutationObserver):
        (WebCore::Node::unregisterMutationObserver):
        (WebCore::Node::notifyMutationObserversNodeWillDetach):
        * dom/Node.h:
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::NodeListsNodeData):
        (WebCore::NodeRareData::NodeRareData):
        (WebCore::NodeRareData::clearNodeLists):
        (WebCore::NodeRareData::ensureNodeLists):
        (WebCore::NodeRareData::ensureMutationObserverData):
        (WebCore::NodeListsNodeData::create): Deleted.
        (WebCore::NodeMutationObserverData::create): Deleted.
        (WebCore::NodeRareData::create): Deleted.

2014-09-02  Maciej Stachowiak  <mjs@apple.com>

        Clean up naming for and slightly refactor legacy video fullscreen support
        https://bugs.webkit.org/show_bug.cgi?id=136446

        Reviewed by Jer Noble.

        Key changes:
        supportsFullscreenForNode(Node*) --> supportsVideoFullscreen()
        enterFullscreenForNode(Node*) --> enterVideoFullscreenForVideoElement(HTMLVideoElement*)
        exitFullscreenForNode(Node*) --> exitVideoFullscreen()
        
        The old versions had unnecessary parameters, did not clearly distinguish their purpose
        from enterFullscreenForElement and friends, and wrongly claimed generality to all Nodes.
        Also changed many other places to use HTMLVideoElement* instead of Node* or 
        HTMLMediaElement* when they were in fact only used for video elements and would only
        work for such.

        The implications of this include a bunch of renaming in some iOS fullscreen code.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Rename m_isFullscreen flag to 
        m_isInVideoFullscreen, since it only covers the case of legacy video fullscreen,
        not element fullscreen.
        (WebCore::HTMLMediaElement::stop): ditto
        (WebCore::HTMLMediaElement::requiresTextTrackRepresentation): ditto
        (WebCore::HTMLMediaElement::isFullscreen): ditto
        (WebCore::HTMLMediaElement::enterFullscreen): Rename m_isFullscreen flag to
        m_isInVideoFullscreen. Hoist video element check here from all supportsFullscrenForNode
        clients. Adjust for relevant ChromeClient refactorings.
        (WebCore::HTMLMediaElement::enterFullscreen): ditto above
        * html/HTMLMediaElement.h:
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::supportsFullscreen): Adjust for relevant ChromeClient 
        refactorings.
        * page/ChromeClient.h:
        (WebCore::ChromeClient::supportsVideoFullscreen): Renamed from 
        supportsFullscreenForNode, and removed Node* parameter.
        (WebCore::ChromeClient::enterVideoFullscreenForVideoElement): Renamed from
        enterFulscreenForNode and changed Node* parameter to HTMLVideoElement*.
        (WebCore::ChromeClient::exitVideoFullscreen): Renamed from 
        exitFullscreenForNode, and removed Node* parameter.
        * platform/ios/WebVideoFullscreenControllerAVKit.h:
        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        (-[WebVideoFullscreenController videoElement]): Renamed from mediaElement;
        return a video element and not just a media element.
        (-[WebVideoFullscreenController dealloc]): Renamed _mediaElement data member
        to _videoElement and changed type accordingly.
        (-[WebVideoFullscreenController setVideoElement:]): Renamed from setMediaElement:
        and adjust parameter type accordingly.
        (-[WebVideoFullscreenController enterFullscreen:]): Video elements, not media
        elements.
        (-[WebVideoFullscreenController exitFullscreen]): ditto
        (-[WebVideoFullscreenController didCleanupFullscreen]): ditto
        * platform/ios/WebVideoFullscreenInterface.h:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Remove gratuitous HTMLMEdiaElement.h include
        and fix declarations accordingly.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: Include WTFString.h
        * platform/ios/WebVideoFullscreenModelVideoElement.h: Renamed from Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.h.
        * platform/ios/WebVideoFullscreenModelVideoElement.mm: Renamed from Source/WebCore/platform/ios/WebVideoFullscreenModelMediaElement.mm.
        (WebVideoFullscreenModelVideoElement) Renamed from WebVideoFullscreenModelMediaElement
        (WebVideoFullscreenModelVideoElement::setVideoElement): Renamed from setMediaElement and
        change param type accordingly. Also no need to check for actual videoness of the element.
        (WebVideoFullscreenModelVideoElement::updateForEventName): Rename data member from m_mediaElement
        to m_videoElement and change type accordingly.
        (WebVideoFullscreenModelVideoElement::setVideoFullscreenLayer): ditto
        (WebVideoFullscreenModelVideoElement::play): ditto
        (WebVideoFullscreenModelVideoElement::pause): ditto
        (WebVideoFullscreenModelVideoElement::togglePlayState): ditto
        (WebVideoFullscreenModelVideoElement::beginScrubbing): ditto
        (WebVideoFullscreenModelVideoElement::endScrubbing): ditto
        (WebVideoFullscreenModelVideoElement::seekToTime): ditto
        (WebVideoFullscreenModelVideoElement::fastSeek): ditto
        (WebVideoFullscreenModelVideoElement::beginScanningForward): ditto
        (WebVideoFullscreenModelVideoElement::beginScanningBackward): ditto
        (WebVideoFullscreenModelVideoElement::endScanning): ditto
        (WebVideoFullscreenModelVideoElement::requestExitFullscreen): ditto
        (WebVideoFullscreenModelVideoElement::setVideoLayerFrame): ditto
        (WebVideoFullscreenModelVideoElement::setVideoLayerGravity): ditto
        (WebVideoFullscreenModelVideoElement::updateLegibleOptions): ditto
        * platform/mac/WebVideoFullscreenController.h:
        * platform/mac/WebVideoFullscreenController.mm:
        (-[WebVideoFullscreenController videoElement]): Renamed from mediaElement
        and update return type accordingly.
        (-[WebVideoFullscreenController setVideoElement:]): Renamed from 
        setMediaElement and update return type accordingly.
        (-[WebVideoFullscreenController videoElementRect]): Renamed
        from mediaElementRect.
        (-[WebVideoFullscreenController enterFullscreen:]): Update for
        rename.
        (-[WebVideoFullscreenController exitFullscreen]): ditto
        (-[WebVideoFullscreenController updatePowerAssertions]): Rename
        member from _mediaElement to _videoElement
        (-[WebVideoFullscreenController _requestExit]): ditto
        * WebCore.exp.in: Adjust for function and class renames.
        * WebCore.xcodeproj/project.pbxproj: Adjust for file renames.

2014-09-03  Benjamin Poulain  <benjamin@webkit.org>

        Fix style invalidation of elements with multiple siblings dependencies
        https://bugs.webkit.org/show_bug.cgi?id=136472

        Reviewed by Andreas Kling.

        Previously, style invalidation of siblings was driven by a pair of flags:
        -ChildrenAffectedByDirectAdjacentRules.
        -ChildrenAffectedByForwardPositionalRules.

        When ChildrenAffectedByDirectAdjacentRules was set, the element after an element
        with "needsStyleRecalc" was also recomputed. While this work for pair of elements:
            a + b
        It does not work for more than that. For example, with
            a.propery + b + c
        When the state of <a> changes, the style of <b> was updated, which is useless. The style
        of <c> was untouched, which is incorrect.

        When ChildrenAffectedByForwardPositionalRules, all elements after one with "needsStyleRecalc"
        were invalidated. While more correct, it caused avalanche of style recalc and was not a very
        useful "optimization".

 
        To fix the correctness issues (e.g. "a + b + c"), I could have gone two ways:
        1) Invalidate the parent of a, b, c. The children would always get a correct style
           when their parent's style would be resolved.
        2) Create invalidation relations to enforce that the right siblings are invalidated.

        I have decided for a weak version of (2). The reason is that most DOM trees are very
        shallow while being very wide. Invalidating the parent generally causes massive style
        recalculation.

        To keep things simple for now, there is no explicit dependency list between siblings.
        Instead, each element has a pair of flag:
        1) The element's style depends on the state of a previous sibling.
        2) The element's state affects following siblings.

        With the notation "<-" for (1), "->" for (2), the selector "a + b + c" create this kind
        of marking:
            a  +  b  +  c
            ->    ->
                       <-

        When <a> is invalidated, the style resolver will go through the chain of dependent elements
        and invalidate any element that can be affected by a prior invalidation, here <c>.

        Overlaps are possible. For example with the two selector, "a + b + c", "b ~ d"
        the marking would be
            a  +  b  +  c  +  d
            ->    ->    ->
                       <-    <-

        A change in <a> would invalidate both <c> and <d>. This is overkill, but the end result
        is correct and it is a net improvement over the previous flags.


        As usual, the CSS JIT makes an effort at compile time to reduce tree marking. SelectorChecker
        marks everything as usual.

        Tests: fast/css/direct-adjacent-style-update-optimization.html
               fast/css/indirect-adjacent-style-update-optimization.html
               fast/css/non-matching-adjacent-style-update.html
               fast/selectors/first-of-type-direct-adjacent-style-update.html
               fast/selectors/first-of-type-sibling-style-update.html
               fast/selectors/id-direct-adjacent-style-update.html
               fast/selectors/id-sibling-style-update.html
               fast/selectors/nth-child-as-first-simple-selector-style-update.html
               fast/selectors/nth-child-direct-adjacent-style-update.html
               fast/selectors/nth-child-style-update.html

        * css/SelectorChecker.cpp:
        (WebCore::isFirstOfType):
        (WebCore::countElementsBefore):
        (WebCore::countElementsOfTypeBefore):
        Counting selectors are not unlike adjacent combinators, they are handled the exact same way.
        For example a :nth-child(4) would generate somewhat similar marking as
            :first-child + * + * + *

        Everything prior to the element with the counter affects the style of the element.

        (WebCore::hasScrollbarPseudoElement):
        The assertion was incorrect. You can get an scrollbar pseudo ID on an element without scrollbar.
        It will never match, but such case is possible.

        (WebCore::SelectorChecker::matchRecursively):
        (WebCore::SelectorChecker::checkOne):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):
        Previously, any subtree affected by sibling selectors were unshareable. That was done by checking
        for Element::hasFlagsSetDuringStylingOfChildren().

        Now that sibling relation are local, they no longer prevent sharing of all children. Instead, we can
        test locally for subgroup with sibling relations.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::isAdjacentRelation):
        (WebCore::SelectorCompiler::shouldMarkStyleIsAffectedByPreviousSibling):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::markElementIfResolvingStyle):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle): Deleted.
        * dom/Document.cpp:
        (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
        * dom/Element.cpp:
        (WebCore::checkForSiblingStyleChanges):
        (WebCore::Element::hasFlagsSetDuringStylingOfChildren):
        (WebCore::Element::setChildrenAffectedByForwardPositionalRules): Deleted.
        (WebCore::Element::rareDataChildrenAffectedByForwardPositionalRules): Deleted.
        * dom/Element.h:
        (WebCore::Element::affectsNextSiblingElementStyle):
        (WebCore::Element::setAffectsNextSiblingElementStyle):
        (WebCore::Element::setStyleIsAffectedByPreviousSibling):
        (WebCore::Element::childrenAffectedByPositionalRules): Deleted.
        (WebCore::Element::childrenAffectedByDirectAdjacentRules): Deleted.
        (WebCore::Element::childrenAffectedByForwardPositionalRules): Deleted.
        (WebCore::Element::setChildrenAffectedByDirectAdjacentRules): Deleted.
        (WebCore::Element::setChildrenAffectedByForwardPositionalRules): Deleted.
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ElementRareData):
        (WebCore::ElementRareData::resetDynamicRestyleObservations):
        (WebCore::ElementRareData::childrenAffectedByForwardPositionalRules): Deleted.
        (WebCore::ElementRareData::setChildrenAffectedByForwardPositionalRules): Deleted.
        * dom/Node.h:
        (WebCore::Node::styleIsAffectedByPreviousSibling):
        (WebCore::Node::flagAffectsNextSiblingElementStyle):
        (WebCore::Node::flagStyleIsAffectedByPreviousSibling):
        (WebCore::Node::flagChildrenAffectedByDirectAdjacentRulesFlag): Deleted.
        * html/HTMLElement.h:
        (WebCore::HTMLElement::isHTMLUnknownElement):
        * html/HTMLUnknownElement.h:
        * style/StyleResolveTree.cpp:
        (WebCore::Style::resetStyleForNonRenderedDescendants):
        (WebCore::Style::resolveTree):

2014-09-03  Simon Fraser  <simon.fraser@apple.com>

        Dump SimpleLineLayout info in showRenderTree() output
        https://bugs.webkit.org/show_bug.cgi?id=136489

        Reviewed by Zalan Bujtas.
        
        Include info about SimpleLineLayout to showRenderTree() output.
        
        Also show RenderText length, and truncate the RenderText contents
        to 80 chars (since the string is replicated in inline boxes or simple line layout output).

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::showLineTreeAndMark):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::showRenderObject):
        * rendering/SimpleLineLayoutFunctions.cpp:
        (WebCore::SimpleLineLayout::printPrefix):
        (WebCore::SimpleLineLayout::showLineTreeForFlow):
        * rendering/SimpleLineLayoutFunctions.h:

2014-09-03  Tim Horton  <timothy_horton@apple.com>

        iOS build fix after r173217 

        * platform/graphics/ios/FontServicesIOS.h:
        (WebCore::FontServicesIOS::capHeight):
        * platform/graphics/ios/FontServicesIOS.mm:
        (WebCore::FontServicesIOS::FontServicesIOS):
        This fixes the build, but I don't know if it's completely correct.

2014-09-03  Anders Carlsson  <andersca@apple.com>

        Get rid of DOMImplementationFront
        https://bugs.webkit.org/show_bug.cgi?id=136495

        Reviewed by Andreas Kling.

        DOMImplementationFront was used in a workaround for a GCC bug, and since we're building with clang
        on Mac this is no longer an issue.

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/objc/DOMImplementationFront.cpp: Removed.
        * bindings/objc/DOMImplementationFront.h: Removed.
        Remove files.

        * bindings/objc/DOMUtility.mm:
        (JSC::createDOMWrapper):
        Remove call to implementationFront.

        * bindings/scripts/CodeGeneratorObjC.pm:
        (GetImplClassName):
        Remove DOMImplementation special case

        (AddIncludesForType):
        Ditto.

        (GenerateHeader):
        Use the class header name in the #import in the internal header.

        (GenerateImplementation):
        Remove DOMImplementation special case.

2014-09-03  Brent Fulgham  <bfulgham@apple.com>

        [Win] Improper release of unretained AVCFAssetResourceLoaderRef
        https://bugs.webkit.org/show_bug.cgi?id=136493
        <rdar://problem/18112559>

        Reviewed by Eric Carlson.

        Don't bother wrapping the return value of AVCFURLAssetGetResourceLoader in a
        RetainPtr. We don't hold onto this value or want to control its lifetime; we just
        want to pass it to the AVCFAssetResourceLoaderSetCallbacks function.

        Use of the RetainPtr created a double-release and crash.

        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::AVFWrapper::createAssetForURL): 

2014-09-03  David Hyatt  <hyatt@apple.com>

        Add support for the initial-letter CSS property to first-letter
        https://bugs.webkit.org/show_bug.cgi?id=136484

        Reviewed by Dean Jackson.
        
        New tests in fast/css-generated-content/initial-letter-*.html

        This patch add support for the CSS initial-letter property, enabling
        better drop caps support in WebKit. Letters size to a specified number of
        paragraph lines, and align to the cap-height of the first line and the baseline
        of the last line.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        Add -webkit-initial-letter to the list.

        * css/CSSLineBoxContainValue.cpp:
        (WebCore::CSSLineBoxContainValue::customCSSText):
        * css/CSSLineBoxContainValue.h:
        Add support for a new value of line-box-contain, initial-letter, that causes
        lines to use cap-height above the baseline and the glyph bounds below the
        baseline.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        Add support for parsing of initial-letter.

        (WebCore::CSSParser::parseLineBoxContain):
        Add the new line-box-contain value for first-letters with initial-letter set.

        * css/CSSPropertyNames.in:
        Add the new initial-letter property.

        * css/CSSValueKeywords.in:
        Add the new initial-letter line-box-contain value.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        Map initial-letter into the RenderStyle.

        * platform/graphics/FontMetrics.h:
        (WebCore::FontMetrics::hasCapHeight):
        (WebCore::FontMetrics::floatCapHeight):
        (WebCore::FontMetrics::setCapHeight):
        (WebCore::FontMetrics::capHeight):
        * platform/graphics/ios/SimpleFontDataIOS.mm:
        (WebCore::SimpleFontData::platformInit):
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::SimpleFontData::platformInit):
        Add support for cap-height to the font system. iOS and Mac have been patched.
        Other platforms will need to add support for cap-height to get this feature.
        hasCapHeight() will return false for unsupported platforms for graceful
        degradation.

        * rendering/RenderBlock.cpp:
        (WebCore::styleForFirstLetter):
        Modified to check for initialLetterDrop/Height and to adjust the style
        accordingly (e.g., to apply float when needed).

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
        Code to adjust the float's position and margin to do cap-height alignment
        and sunken letters.

        * rendering/RenderBlockFlow.h:
        Remove the const from computeLogicalLocationForFloat, since the margin of the
        float can now be modified dynamically for sunken first-letters.

        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::ascentAndDescentForBox):
        Add support for initial-letter line-box-contain value.

        * rendering/RootInlineBox.h:
        Add the includeInitialLetterForBox method to support the new line-box-contain value.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayout):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:
        Normal maintenance stuff for addition of a new CSS property (making sure it is diffed
        properly for layout changes and copied on assignment, etc.)

2014-09-03  Brent Fulgham  <bfulgham@apple.com>

        [Win] Prevent double-release on AVCFURLAssetRef
        https://bugs.webkit.org/show_bug.cgi?id=136492
        <rdar://problem/18206746>

        Reviewed by Eric Carlson.

        The AVFWrapper::setAsset method needs to retain the passed argument, since it
        originates from AVCFPlayerItemGetAsset, which does not increment the
        reference count of its return value as expected by Cocoa Get/Create/Copy
        semantics.

        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::AVFWrapper::setAsset): Retain the passed argument.

2014-09-03  Dan Bernstein  <mitz@apple.com>

        Get rid of HIGH_DPI_CANVAS leftovers
        https://bugs.webkit.org/show_bug.cgi?id=136491

        Reviewed by Benjamin Poulain.

        * Configurations/FeatureDefines.xcconfig: Removed definition of ENABLE_HIGH_DPI_CANVAS
        and removed it from FEATURE_DEFINES.
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::targetDeviceScaleFactor): Removed #if ENABLE(HIGH_DPI_CANVAS)
        code.

2014-09-03  Joseph Pecoraro  <pecoraro@apple.com>

        Use StringBuilder append(char) and appendLiteral in more places
        https://bugs.webkit.org/show_bug.cgi?id=136470

        Reviewed by Andreas Kling.

        * Modules/indexeddb/IDBKeyData.cpp:
        (WebCore::IDBKeyData::loggingString):
        * Modules/websockets/WebSocket.cpp:
        (WebCore::encodeProtocolString):
        * Modules/websockets/WebSocketExtensionDispatcher.cpp:
        (WebCore::WebSocketExtensionDispatcher::createHeaderValue):
        (WebCore::WebSocketExtensionDispatcher::appendAcceptedExtension):
        * Modules/websockets/WebSocketHandshake.cpp:
        (WebCore::WebSocketHandshake::clientLocation):
        (WebCore::WebSocketHandshake::clientHandshakeMessage):
        * css/CSSCalculationValue.cpp:
        (WebCore::buildCssText):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::cssText):
        * css/CSSMediaRule.cpp:
        (WebCore::CSSMediaRule::cssText):
        * css/CSSSelectorList.cpp:
        (WebCore::CSSSelectorList::selectorsText):
        * css/CSSSupportsRule.cpp:
        (WebCore::CSSSupportsRule::cssText):
        * css/MediaQuery.cpp:
        (WebCore::MediaQuery::serialize):
        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::generateUniquePrefix):
        * editing/markup.cpp:
        (WebCore::urlToMarkup):
        * fileapi/FileReaderLoader.cpp:
        (WebCore::FileReaderLoader::convertToDataURL):
        * html/EmailInputType.cpp:
        (WebCore::EmailInputType::sanitizeValue):
        * html/FormController.cpp:
        (WebCore::recordFormStructure):
        * html/parser/XSSAuditorDelegate.cpp:
        (WebCore::buildConsoleError):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::collectCueText):
        * mathml/MathMLMencloseElement.cpp:
        (WebCore::MathMLMencloseElement::longDivLeftPadding):
        * page/PageSerializer.cpp:
        (WebCore::SerializerMarkupAccumulator::appendElement):
        * page/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::toRawString):
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::logThreadedScrollingMode):
        * platform/PODInterval.h:
        (WebCore::PODInterval::toString):
        * platform/PODRedBlackTree.h:
        (WebCore::PODRedBlackTree::dumpFromNode):
        * platform/UUID.cpp:
        (WebCore::createCanonicalUUIDString):
        * platform/network/ProxyServer.cpp:
        (WebCore::appendProxyServerString):
        (WebCore::toString):
        * platform/text/DateTimeFormat.cpp:
        (WebCore::DateTimeFormat::quoteAndAppendLiteral):
        * platform/text/PlatformLocale.cpp:
        (WebCore::DateTimeStringBuilder::zeroPadString):
        (WebCore::Locale::convertFromLocalizedNumber):
        * platform/text/TextStream.cpp:
        (WebCore::TextStream::operator<<):
        * rendering/RenderListMarker.cpp:
        (WebCore::listMarkerText):
        * testing/Internals.cpp:
        (WebCore::Internals::parserMetaData):
        (WebCore::Internals::getCurrentCursorInfo):

2014-09-03  Bear Travis  <betravis@adobe.com>

        [CSS Font Loading] Enable Page Caching
        https://bugs.webkit.org/show_bug.cgi?id=136044

        Reviewed by Andreas Kling.

        Modifying FontLoader to track fonts loaded via the loadFont
        method as well as via CSS rules. Fonts loaded via loadFont are
        tracked in m_numLoadingFromJS, while fonts loaded via CSS rules
        are tracked in m_numLoadingFromCSS. The page is cacheable when no
        fonts are currently loading.

        Added fast/css/fontloader-page-cache.html

        * css/FontLoader.cpp:
        (WebCore::LoadFontCallback::create): Modified to take and store
        the number of fonts it will be loading.
        (WebCore::LoadFontCallback::createFromParams): Ditto.
        (WebCore::LoadFontCallback::familyCount): Getter for number of
        fonts loaded via this callback.
        (WebCore::LoadFontCallback::LoadFontCallback):
        (WebCore::LoadFontCallback::notifyLoaded): Callback the FontLoader
        to let it update its count when all the fonts have finished loading.
        (WebCore::FontLoader::loadFontDone): Ditto.
        (WebCore::FontLoader::FontLoader):
        (WebCore::FontLoader::beginFontLoading): Track the number of fonts
        loading.
        (WebCore::FontLoader::fontLoaded): Ditto.
        (WebCore::FontLoader::loadError): Ditto.
        (WebCore::FontLoader::loadFont):
        * css/FontLoader.h:
        (WebCore::FontLoader::loading):

2014-08-29  Gavin Barraclough  <barraclough@apple.com>

        Simplify DOMTimer::adjustMinimumTimerInterval -> updateTimerIntervalIfNecessary
        https://bugs.webkit.org/show_bug.cgi?id=136402

        Reviewed by Andreas Kling.

        When the minimum DOM timer interval changes, the Page updates all DOMTimers accordingly.
        Updating the fire/repeat interval on TimerBase requires a delta, but in
        DOMTimer::adjustMinimumTimerInterval we have the new requested interval. In the case of
        timers we can get the current interval to calculate the delta by calling repeatInterval(),
        but in the case of one-shot timers neither TimerBase nor DOMTimer have store the interval
        that was actually set for the timer (DOMTimer knows the original, unadjusted timer, but
        not the actual interval). The way this currently works is that when the minimum interval
        changes, Page calls adjustMinimumTimerInterval providing the previous minimum. If the
        timer is one-shot, then adjustMinimumTimerInterval will use this to compute the delta
        based on what the interval would have been.

        We can simplify & unify with the code to throttle interval timers when the nesting
        threshold is hit, by instead tracking the current timer interval as a member on DOMTimer &
        using this to compute the delta in all cases.

        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
            - adjustMinimumTimerInterval -> updateTimerIntervalIfNecessary
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::DOMTimer):
            initialize m_currentTimerInterval
        (WebCore::DOMTimer::fired):
            - when the nesting level changes (potentially triggering throttling) just call updateTimerIntervalIfNecessary
        (WebCore::DOMTimer::updateTimerIntervalIfNecessary):
            - compute delta based on m_currentTimerInterval
        (WebCore::DOMTimer::intervalClampedToMinimum):
            - this now always takes m_originalInterval and scriptExecutionContext()->minimumTimerInterval()
              as its inputs, so remove arguments.
        (WebCore::DOMTimer::adjustMinimumTimerInterval): Deleted.
            - adjustMinimumTimerInterval -> updateTimerIntervalIfNecessary
        * page/DOMTimer.h:
            - adjustMinimumTimerInterval -> updateTimerIntervalIfNecessary, added m_currentTimerInterval

2014-09-03  Daniel Bates  <dabates@apple.com>

        [XSLT] Make WebKit build when XSLT is disabled
        https://bugs.webkit.org/show_bug.cgi?id=136471

        Reviewed by Simon Fraser.

        Fixes a Clang compiler warning that file-static function WebCore::hasNoStyleInformation is unused.
        This function is only called from ENABLE(XSLT)-guarded code. So, add a ENABLE(XSLT)-guard around
        WebCore::hasNoStyleInformation().

        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::hasNoStyleInformation):

2014-09-02  Brian J. Burg  <burg@cs.washington.edu>

        LegacyProfiler: remove redundant ProfileNode members and other cleanup
        https://bugs.webkit.org/show_bug.cgi?id=136380

        Reviewed by Timothy Hatcher.

        Remove Profile.idleTime, rename head to rootNode, and remove ProfileNode members.

        Covered by existing tests.

        * inspector/ScriptProfile.idl:
        * inspector/ScriptProfileNode.idl:
        * inspector/TimelineRecordFactory.cpp:

2014-09-02  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: remove ProfilerAgent and legacy profiler files in the frontend
        https://bugs.webkit.org/show_bug.cgi?id=136462

        Reviewed by Timothy Hatcher.

        It's not used by the frontend anymore.

        No new tests, no behavior changed.

        * CMakeLists.txt:
        * ForwardingHeaders/inspector/agents/InspectorProfilerAgent.h: Removed.
        * WebCore.order:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorController.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        * inspector/InstrumentingAgents.cpp:
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (WebCore::InstrumentingAgents::reset):
        * inspector/InstrumentingAgents.h:
        (WebCore::InstrumentingAgents::inspectorProfilerAgent): Deleted.
        (WebCore::InstrumentingAgents::setInspectorProfilerAgent): Deleted.
        * inspector/PageProfilerAgent.cpp: Removed.
        * inspector/PageProfilerAgent.h: Removed.
        * inspector/TimelineRecordFactory.cpp: Moved these builders to their only callsite.
        (WebCore::buildInspectorObject):
        (WebCore::buildProfileInspectorObject):
        (WebCore::TimelineRecordFactory::appendProfile):
        * inspector/WebProfilerAgent.cpp: Removed.
        * inspector/WebProfilerAgent.h: Removed.
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        * inspector/WorkerProfilerAgent.cpp: Removed.
        * inspector/WorkerProfilerAgent.h: Removed.
        * inspector/protocol/Timeline.json:

2014-09-02  Jer Noble  <jer.noble@apple.com>

        [EME][Mac] Refactor CDMPrivateMediaSourceAVFObjC to allow sessions to be created without being attached to an AVStreamDataParser.
        https://bugs.webkit.org/show_bug.cgi?id=136016

        Reviewed by Eric Carlson.

        The CDMPrivateMediaPlayer class will delegate creation of CDMSession instances to the current MediaPlayer. This
        of course requires the MediaKeys object owning the CDM to be attached to a HTMLMediaElement, and specifically to
        one with a valid src attribute or source node which has sucessfully begun loading. For certain CDM operations,
        it would be better if a given MediaKeys could create a session without actually being connected to a
        HTMLMediaElement (yet).

        To facilitate this for CDMSessionPrivateMediaSourceAVFObjC, add a new class, CDMPrivateMediaSourceAVFObjC, which
        is the primary factory for CDMSessionPrivateMediaSOurceAVFObjC. Disclaim responsibility for creating these sessions
        in MediaPlayerPrivateMediaSourceAVFObjC by not passing the "supportsKeySystem" method when registering itself.

        Add methods to CDMSessionPrivateMediaSourceAVFObjC to allow SourceBuffers to be added and removed from the session,
        to support adding the session to the HTMLMediaElement after the session has been created.

        Since MediaPlayerPrivate instance and  CDMSession instances must be able to communicate with one another, add a type()
        enum and virtual method to allow CDMSession instnaces to be distinguisted from (and casted to) one another.

        * Modules/encryptedmedia/CDM.cpp:
        (WebCore::installedCDMFactories): Register CDMPrivateMediaSourceAVFObjC.
        (WebCore::CDM::createSession): Notify the MediaPlayer of the new CDMSession.
        * Modules/encryptedmedia/MediaKeySession.h:
        * Modules/encryptedmedia/MediaKeys.cpp:
        (WebCore::MediaKeys::setMediaElement): Notify the HTMLMediaElement of any existing sessions.
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/CDMSession.h:
        (WebCore::CDMSession::type): Added.
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::setCDMSession): Pass through to the MediaPlayerPrivate.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::setCDMSession): Added. Default no-op.
        * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.h: Added.
        (WebCore::CDMPrivateMediaSourceAVFObjC::CDMPrivateMediaSourceAVFObjC): Simple constructor.
        (WebCore::CDMPrivateMediaSourceAVFObjC::~CDMPrivateMediaSourceAVFObjC): Simple destructor.
        (WebCore::CDMPrivateMediaSourceAVFObjC::create): Simple factory.
        (WebCore::CDMPrivateMediaSourceAVFObjC::cdm): Simple accessor.
        * platform/graphics/avfoundation/CDMPrivateMediaSourceAVFObjC.mm: 
        (WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystem): Moved from MediaPlayerPrivateMediaSourceAVFObjC.
        (WebCore::CDMPrivateMediaSourceAVFObjC::supportsKeySystemAndMimeType): Ditto.
        (WebCore::CDMPrivateMediaSourceAVFObjC::supportsMIMEType): Ditto.
        (WebCore::CDMPrivateMediaSourceAVFObjC::createSession): Returns new CDMSessionMediaSourceAVFObjC.
        * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h:
        (WebCore::CDMSessionAVFoundationObjC::type): Added.
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
        (WebCore::CDMSessionMediaSourceAVFObjC::type): Added.
        (WebCore::toCDMSessionMediaSourceAVFObjC): Throw assertion if type() is not correct.
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC): Removed m_parent ivar.
        (WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC): Ditto.
        (WebCore::CDMSessionMediaSourceAVFObjC::update): Determing which SourceBuffer is protected.
        (WebCore::CDMSessionMediaSourceAVFObjC::addSourceBuffer): Added.
        (WebCore::CDMSessionMediaSourceAVFObjC::removeSourceBuffer): Added.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine): Remove supportsKeyType parameter.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Remove keyType check.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setCDMSession): Tell the CDMSession about outstanding SourceBuffers.
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:

2014-09-02  Daniel Bates  <dabates@apple.com>

        [Win] Attempt to fix the Windows build after <http://trac.webkit.org/changeset/173192>
        (https://bugs.webkit.org/show_bug.cgi?id=136467)

        Declare ResourceHandleClient::connectionProperties() when building for iOS or when USE(CFNETWORK).

        * platform/network/ResourceHandleClient.h:

2014-09-02  Daniel Bates  <dabates@apple.com>

        [iOS] Support using Foundation networking code
        https://bugs.webkit.org/show_bug.cgi?id=136467

        Reviewed by Pratik Solanki.

        We should support building iOS WebKit with the Foundation networking code
        (i.e. !USE(CFNETWORK)).

        Additionally, disable USE(CFNETWORK) and use the Foundation networking code
        by default when building iOS WebKit without the Apple Internal SDK.

        * Configurations/WebCore.xcconfig: Remove file WebCoreURLResponse.mm from the list of excluded files
        so that we compile an implementation for function WebCore::synthesizeRedirectResponseIfNecessary when
        building without USE(CFNETWORK).
        * WebCore.exp.in: Add symbols for WebCore::synthesizeRedirectResponseIfNecessary() and WebCore::ResourceHandleClient::willCacheResponseAsync().
        * WebCore.xcodeproj/project.pbxproj: Add new files CFNetworkConnectionCacheSPI.h and CFURLRequestSPI.h.
        Also move group platform/spi such that it appears in alphabetical order in the platform group.
        * platform/cf/URLCF.cpp: Remove unnecessary header <CoreFoundation/CFPriv.h>.
        * platform/network/ResourceHandle.h: Declare iOS-specific variant of ResourceHandle::createNSURLConnection().
        * platform/network/ResourceHandleClient.h: Always include header <wtf/RetainPtr.h> when building for iOS.
        (WebCore::ResourceHandleClient::connectionProperties): Add PLATFORM(IOS)-guard around declaration.
        * platform/network/cf/ResourceRequestCFNet.cpp: Substitute header CFNetworkConnectionCacheSPI.h for
        <CFNetwork/CFNetworkConnectionCachePriv.h>.
        * platform/network/mac/CredentialStorageMac.mm:
        (WebCore::CredentialStorage::saveToPersistentStorage): Use Credential::nsCredential() and ProtectionSpace::nsSpace()
        instead of WebCore::mac(const {Credential, ProtectionSpace}&) as the latter were removed in <http://trac.webkit.org/changeset/171801>
        and <http://trac.webkit.org/changeset/171540>, respectively.
        * platform/network/mac/ResourceErrorMac.mm: Add USE(CFNETWORK)-guard around <CFNetwork/CFSocketStreamPriv.h>.
        * platform/network/mac/ResourceHandleMac.mm: Substitute header CFURLRequestSPI.h for <CFNetwork/CFURLRequest.h>.
        (WebCore::ResourceHandle::start): Modified to use ResourceHandle::makeDelegate() instead of d->m_proxy, which 
        was removed in <http://trac.webkit.org/changeset/147476>.
        (WebCore::ResourceHandle::platformLoadResourceSynchronously): Ditto.
        * platform/network/mac/WebCoreURLResponse.mm:
        (WebCore::synthesizeRedirectResponseIfNecessary): Add !USE(CFNETWORK)- and PLATFORM(IOS)- guards.
        * platform/spi/cf/CFNetworkConnectionCacheSPI.h: Added.
        * platform/spi/cf/CFURLRequestSPI.h: Added.

2014-09-02  Myles C. Maxfield  <mmaxfield@apple.com>

        Use references in public EventSender functions
        https://bugs.webkit.org/show_bug.cgi?id=136463

        Reviewed by Dan Bates.

        Passing nullptr to EventSender shouldn't be allowed.

        No new tests because there is no behavior change.

        * dom/EventSender.h:
        (WebCore::EventSender::hasPendingEvents):
        (WebCore::EventSender<T>::dispatchEventSoon):
        (WebCore::EventSender<T>::cancelEvent):
        (WebCore::EventSender<T>::dispatchPendingEvents):
        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::~HTMLLinkElement):
        (WebCore::HTMLLinkElement::notifyLoadedSheetAndAllCriticalSubresources):
        * html/HTMLStyleElement.cpp:
        (WebCore::HTMLStyleElement::~HTMLStyleElement):
        (WebCore::HTMLStyleElement::notifyLoadedSheetAndAllCriticalSubresources):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::~ImageLoader):
        (WebCore::ImageLoader::setImageWithoutConsideringPendingLoadEvent):
        (WebCore::ImageLoader::updateFromElement):
        (WebCore::ImageLoader::notifyFinished):
        (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):

2014-09-02  Daniel Bates  <dabates@apple.com>

        [iOS] Exclude touch and gesture files when building without ENABLE_TOUCH_EVENTS
        and ENABLE_IOS_GESTURE_EVENTS, respectively
        https://bugs.webkit.org/show_bug.cgi?id=136456

        Reviewed by Andy Estes.

        It's sufficient to exclude the touch and gesture files when building without
        ENABLE_TOUCH_EVENTS and ENABLE_IOS_GESTURE_EVENTS, respectively. Currently we
        exclude these files when building without the Apple Internal SDK, which is
        heavy handed.

        * Configurations/WebCore.xcconfig:

2014-09-02  Simon Fraser  <simon.fraser@apple.com>

        Fix an assertion sometimes seen under RenderLayerCompositor::detachRootLayer()
        https://bugs.webkit.org/show_bug.cgi?id=136464

        Reviewed by Tim Horton.

        Don't try to call RenderLayer::isVisuallyNonEmpty() under RenderLayerCompositor::detachRootLayer()
        when layout might be stale; there's not point trying to update the backing store state
        when detaching, only when attaching.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):

2014-09-02  Simon Fraser  <simon.fraser@apple.com>

        Avoid backing store allocation with some combinations of replaced elements, masking and visibility:hidden
        https://bugs.webkit.org/show_bug.cgi?id=136400

        Reviewed by Tim Horton.
        
        RenderLayer::isVisuallyNonEmpty() would return true for replaced elements (e.g. images)
        with visibility:hidden, and for layers with a mask, and both would cause additional
        backing store in some cases.
        
        We can move the hasVisibleContent() to the top of the function, since visibility:hidden
        will always hide any content of this layer. The hasMask() check can also be removed;
        a mask can only mask content that is already visible; it never contributes additional
        pixels.

        Tests: compositing/backing/masked-child-no-backing.html
               compositing/backing/replaced-child-no-backing.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):

2014-09-02  Joseph Pecoraro  <pecoraro@apple.com>

        Use jsNontrivialString for strings we know are more than a single character
        https://bugs.webkit.org/show_bug.cgi?id=136393

        Reviewed by Geoffrey Garen.

        * bindings/js/JSCryptoKeySerializationJWK.cpp:
        (WebCore::addUsagesToJSON):

2014-09-02  Alex Christensen  <achristensen@webkit.org>

        Fix bindings tests after r173176.
        https://bugs.webkit.org/show_bug.cgi?id=136460

        Reviewed by Simon Fraser.

        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        * bindings/scripts/test/JS/JSTestException.cpp:
        * bindings/scripts/test/JS/JSTestException.h:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        * bindings/scripts/test/JS/JSTestInterface.h:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        * bindings/scripts/test/JS/JSTestNode.cpp:
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        * bindings/scripts/test/JS/JSTestNondeterministic.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        * bindings/scripts/test/JS/JSTestTypedefs.h:
        * bindings/scripts/test/JS/JSattribute.cpp:
        * bindings/scripts/test/JS/JSattribute.h:
        * bindings/scripts/test/JS/JSreadonly.cpp:
        * bindings/scripts/test/JS/JSreadonly.h:
        * bindings/scripts/test/ObjC/DOMFloat64ArrayInternal.h:
        * bindings/scripts/test/ObjC/DOMTestActiveDOMObjectInternal.h:
        * bindings/scripts/test/ObjC/DOMTestCallbackInternal.h:
        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetterInternal.h:
        * bindings/scripts/test/ObjC/DOMTestEventConstructorInternal.h:
        * bindings/scripts/test/ObjC/DOMTestEventTargetInternal.h:
        * bindings/scripts/test/ObjC/DOMTestExceptionInternal.h:
        * bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h:
        * bindings/scripts/test/ObjC/DOMTestInterfaceInternal.h:
        * bindings/scripts/test/ObjC/DOMTestMediaQueryListListenerInternal.h:
        * bindings/scripts/test/ObjC/DOMTestNamedConstructorInternal.h:
        * bindings/scripts/test/ObjC/DOMTestNodeInternal.h:
        * bindings/scripts/test/ObjC/DOMTestNondeterministicInternal.h:
        * bindings/scripts/test/ObjC/DOMTestObjInternal.h:
        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h:
        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterfaceInternal.h:
        * bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h:
        * bindings/scripts/test/ObjC/DOMattributeInternal.h:
        * bindings/scripts/test/ObjC/DOMreadonlyInternal.h:
        Added new WEBCORE_EXPORT macros.

2014-09-02  Simon Fraser  <simon.fraser@apple.com>

        Non-composited child RenderLayers cause allocation of unncessary backing store
        https://bugs.webkit.org/show_bug.cgi?id=136375

        Reviewed by David Hyatt.
        
        A composited element that has non-composited descendant elements that fall into
        RenderLayers was getting backing store when none was required. descendentLayerPaintsIntoAncestor()
        was simply checking the "visibility:visible" bit on descendant non-composited layers,
        instead of actually asking them if they have any visual content.
        
        Added a couple of FIXME comments.

        Test: compositing/backing/child-layer-no-backing.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::descendentLayerPaintsIntoAncestor):

2014-09-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r173175.
        https://bugs.webkit.org/show_bug.cgi?id=136454

        it broke debug builds (Requested by jessieberlin on #webkit).

        Reverted changeset:

        "Introduce CSS_BASIC_TYPE_CASTS, and use it"
        https://bugs.webkit.org/show_bug.cgi?id=136403
        http://trac.webkit.org/changeset/173175

2014-09-02  Alex Christensen  <achristensen@webkit.org>

        More use of WEBCORE_EXPORT.

        Reviewed by Darin Adler.

        These changes from a patch attached to https://bugs.webkit.org/show_bug.cgi?id=136172
        contain more deployment of the WEBCORE_EXPORT macro. As of this writing, the macro is
        defined to do nothing, so landing these is a harmless way to get closer to be the point
        where we can throw the switch to use these instead of explicit export files on OS X,
        iOS, and Windows.

        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSDOMGlobalObject.h:
        * bindings/js/JSDOMWindowBase.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateHeader):
        * bridge/runtime_method.cpp:
        * bridge/runtime_object.cpp:
        * dom/Document.h:
        * dom/Element.h:
        * dom/Position.h:
        * dom/Range.h:
        * dom/StaticNodeList.h:
        * dom/make_names.pl:
        (printInit):
        (printNamesCppFile):
        * editing/Editor.h:
        * editing/FrameSelection.h:
        * editing/TextIterator.h:
        * inspector/InspectorFrontendClient.h:
        * inspector/InspectorFrontendClientLocal.h:
        * loader/DocumentLoader.h:
        * loader/FrameLoader.h:
        * loader/cache/MemoryCache.h:
        * loader/cocoa/DiskCacheMonitorCocoa.h:
        * loader/mac/LoaderNSURLExtras.h:
        * page/Page.h:
        * page/PageGroup.h:
        * page/SecurityPolicy.h:
        * page/Settings.h:
        * page/make_settings.pl:
        (printGetterAndSetter):
        * page/scrolling/ScrollingStateScrollingNode.h:
        * platform/CrossThreadCopier.h:
        * platform/LocalizedStrings.h:
        * platform/MemoryPressureHandler.cpp:
        * platform/PlatformScreen.h:
        * platform/PublicSuffix.h:
        * platform/graphics/Gradient.h:
        * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h:
        * platform/graphics/filters/FilterOperation.h:
        * platform/ios/WebVideoFullscreenControllerAVKit.h:
        * platform/mac/PlatformEventFactoryMac.h:
        * platform/mac/WebCoreFullScreenPlaceholderView.h:
        * platform/mac/WebCoreFullScreenWindow.h:
        * platform/mac/WebCoreNSStringExtras.h:
        * platform/mac/WebCoreObjCExtras.h:
        * platform/mac/WebFontCache.h:
        * platform/mac/WebVideoFullscreenController.h:
        * platform/mac/WebWindowAnimation.h:
        * platform/network/BlobRegistryImpl.h:
        * platform/network/CredentialStorage.h:
        * platform/network/PlatformCookieJar.h:
        * platform/network/ProxyServer.h:
        * platform/sql/SQLiteStatement.h:
        * platform/text/TextEncoding.h:
        * rendering/HitTestResult.h:
        * rendering/RenderTreeAsText.h:
        * testing/Internals.h:
        Add many more correct uses of WEBCORE_EXPORT; remove a few incorrect ones.

2014-09-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Introduce CSS_BASIC_TYPE_CASTS, and use it
        https://bugs.webkit.org/show_bug.cgi?id=136403

        Reviewed by Darin Adler.

        toCSSBasicFoo() will help to detect wrong type casting. So this patch generates it, and use it
        instead of static_cast<const CSSBasicFoo*>().

        No new tests no behavior changes.

        * css/BasicShapeFunctions.cpp:
        (WebCore::basicShapeForValue):
        * css/CSSBasicShapes.cpp:
        (WebCore::CSSBasicShapeCircle::equals):
        (WebCore::CSSBasicShapeEllipse::equals):
        (WebCore::CSSBasicShapePolygon::equals):
        (WebCore::CSSBasicShapeInset::equals):
        * css/CSSBasicShapes.h:

2014-09-02  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        CachedResourceLoader should check redirections to reuse or not cached resources
        https://bugs.webkit.org/show_bug.cgi?id=131757

        Reviewed by Antti Koivisto.

        Added cache-control redirection check to properly determine revalidation policy.
        Tightened redirection cache-control header check by testing for no-cache and must-revalidate directives.
        Added redirection freshness check.

        Test: http/tests/cache/cache-redirections.html

        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::canReuse): Removed redirection check (now handled by CachedResource::redirectChainAllowsReuse).
        * loader/cache/CachedResource.cpp:
        (WebCore::currentAge): Moved from WebCore::CachedResource::currentAge method to static function. Added response and responseTimestamp as parameters.
        (WebCore::CachedResource::CachedResource): Initialized redirection chain status (no redirection and expiracy date set to never).
        (WebCore::CachedResource::isExpired): Updated according new currentAge/freshnessLifetime method parameters.
        (WebCore::CachedResource::freshnessLifetime): Added response as parameter.
        (WebCore::CachedResource::willSendRequest): Computes whether a redirection can be cached, and if cached for how long it will remain fresh.
        (WebCore::CachedResource::redirectChainAllowsReuse): Return false if any of the redirection in the redirection chain cannot be cached or expired. 
        * loader/cache/CachedResource.h: Added cache chain member that stores whether the redirection chain can be cached and if so when it will be expired.
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::determineRevalidationPolicy): Added check of the redirection chain.

2014-09-02  Daewoong Jang  <daewoong.jang@navercorp.com>

        Prevent decoded images from being destroyed when they're in use.
        https://bugs.webkit.org/show_bug.cgi?id=136259.

        Reviewed by Darin Adler.

        Try to fix a regression introduced by r172790. Before the patch,
        CachedImage does not release its Image object if it still has clients.
        However this behavior was changed due to removal of CachedResource::isSafeToMakePurgeable(),
        which implied a call to CachedResource::hasClients(). This patch restores
        the behavior by adding a check to hasClients() in CachedImage::destroyDecodedData().

        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::destroyDecodedData):

2014-09-01  Tim Horton  <timothy_horton@apple.com>

        RenderThemeMac::paintProgressBar creates a buffer without respecting the destination's acceleration setting
        https://bugs.webkit.org/show_bug.cgi?id=136427

        Reviewed by Dan Bernstein.

        No new tests, just a performance improvement.

        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintProgressBar):

2014-09-01  Tim Horton  <timothy_horton@apple.com>

        Remove an unnecessary local in GraphicsLayerCA::ensureStructuralLayer
        https://bugs.webkit.org/show_bug.cgi?id=136426

        Reviewed by Dan Bernstein.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
        This was here so that we could call PlatformCALayerClient::platformLayerChanged,
        but that no longer exists!

2014-08-29  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Resolved value of grid-template-* must include every track listed
        https://bugs.webkit.org/show_bug.cgi?id=136362

        Reviewed by Darin Adler.

        Section 5.1.5 of the specs clearly states that the resolved value
        for grid-template-* must include every listed track, whether
        explicitly or implicitly created. We were only listing the
        explicit grid tracks.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForGridTrackList):

2014-09-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMAKE] Build warning by INTERFACE_LINK_LIBRARIES
        https://bugs.webkit.org/show_bug.cgi?id=136194

        Reviewed by Csaba Osztrogonác.

        Set the LINK_INTERFACE_LIBRARIES target property on the top level CMakeLists.txt.

        * CMakeLists.txt:

2014-08-31  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed, fix build break on EFL and GTK since r173152.

        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::platformInit): Remove a bool parameter because it was removed from function's declaration.

2014-08-31  Tim Horton  <timothy_horton@apple.com>

        Remove GraphicsContext constructor that takes shouldUseContextColors
        https://bugs.webkit.org/show_bug.cgi?id=136421

        Reviewed by Dan Bernstein.

        * WebCore.exp.in:
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::GraphicsContext):
        * platform/graphics/GraphicsContext.h:
        (WebCore::GraphicsContextState::GraphicsContextState):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::platformInit):
        (WebCore::GraphicsContext::drawLinesForText):
        As far as I can tell, the last user of this constructor died with WebNSStringDrawing.
        Adjust all code to assume shouldUseContextColors=true.

2014-08-31  Tim Horton  <timothy_horton@apple.com>

        Remove unused ARMv6-specific #if branches in WebCore::canHyphenate
        https://bugs.webkit.org/show_bug.cgi?id=136420

        Reviewed by Dan Bernstein.

        * platform/text/cf/HyphenationCF.cpp:
        (WebCore::AtomicStringKeyedMRUCache<RetainPtr<CFLocaleRef>>::createValueForNullKey):
        Use kCFAllocatorDefault instead of 0.

        (WebCore::canHyphenate):
        Remove ARMv6-specific code.

2014-08-31  Tim Horton  <timothy_horton@apple.com>

        Remove unnecessary (and unnecessarily iOS-specific) setStrokeAndFillColor
        https://bugs.webkit.org/show_bug.cgi?id=136416

        Reviewed by Dan Bernstein.

        * WebCore.exp.in:
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::setStrokeAndFillColor): Deleted.
        Remove.

2014-08-31  Tim Horton  <timothy_horton@apple.com>

        Remove duplicate implementation of drawEllipse and some related PLATFORM(IOS) ifdefs
        https://bugs.webkit.org/show_bug.cgi?id=136413

        Reviewed by Dan Bernstein.

        No new tests, just cleanup.

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawRaisedEllipse):
        There's nothing iOS specific about this function.

        * platform/graphics/GraphicsContext.h:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::drawEllipse):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawEllipse):
        Un-ifdef drawRaisedEllipse; delete the reimplementation of drawEllipse that takes
        a FloatRect and make the normal one take a FloatRect instead.

        (WebCore::GraphicsContext::platformInit):
        Make sure that the CGContext's line width starts out in sync with GraphicsContext's.
        By default, CGContext has a line width of 1 and GraphicsContext 0, so they could previously
        have been out of sync until someone set the width explicitly.

2014-08-31  Tim Horton  <timothy_horton@apple.com>

        Fix a harmless mismerge in BitmapImage::destroyDecodedDataIfNecessary
        https://bugs.webkit.org/show_bug.cgi?id=136412

        Reviewed by Alexey Proskuryakov.

        No new tests, just cleanup.

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::destroyDecodedDataIfNecessary):
        Drop the leading 'c' and the 'static' on the cutoff parameter.
        Remove the duplicated early return (seems like it happened in the merge).
        Remove reference to the exact size in the comment, since it's different on iOS.

2014-08-31  Tim Horton  <timothy_horton@apple.com>

        Use SinkDocument instead of PDFDocument; get rid of PDFDocument
        https://bugs.webkit.org/show_bug.cgi?id=136414

        Reviewed by Alexey Proskuryakov.

        * WebCore.xcodeproj/project.pbxproj:
        * loader/DocumentWriter.cpp:
        (WebCore::DocumentWriter::createDocument):
        * pdf/ios/PDFDocument.cpp: Removed.
        * pdf/ios/PDFDocument.h: Removed.
        Use the generic SinkDocument, which ignores all incoming data just like PDFDocument.
        Delete the unnecessary and iOS-specific PDFDocument.cpp/h

2014-08-31  Tim Horton  <timothy_horton@apple.com>

        Adjust an antique comment in Image::drawPattern
        https://bugs.webkit.org/show_bug.cgi?id=136411

        Reviewed by Dan Bernstein.

        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::Image::drawPattern):
        Reword the comment.

2014-08-31  Tim Horton  <timothy_horton@apple.com>

        SVGImage::drawPatternForContainer creates a buffer without respecting the destination's acceleration setting
        https://bugs.webkit.org/show_bug.cgi?id=136408
        <rdar://problem/12013317>

        Reviewed by Dan Bernstein.

        No new tests required, just a performance improvement.

        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::drawPatternForContainer):
        Use ImageBuffer::createCompatibleBuffer, which passes the destination's
        acceleration setting through to the ImageBuffer constructor.

        I didn't use GraphicsContext::createCompatibleBuffer because adjusting
        how this function applies the destination's CTM is outside the scope of this patch.

2014-08-30  Joseph Pecoraro  <pecoraro@apple.com>

        Convert string literals to character literals in makeString usage
        https://bugs.webkit.org/show_bug.cgi?id=136394

        Reviewed by Sam Weinig.

        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::evaluateInOverlay):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::setOriginalURLForDownloadRequest):
        * loader/MixedContentChecker.cpp:
        (WebCore::MixedContentChecker::logWarning):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::CSPDirectiveList::checkMediaTypeAndReportViolation):
        (WebCore::ContentSecurityPolicy::reportUnsupportedDirective):
        (WebCore::ContentSecurityPolicy::reportInvalidPathCharacter):
        Also reorder some code to ensure single string creation.

2014-08-26  Maciej Stachowiak  <mjs@apple.com>

        Use RetainPtr::autorelease in some places where it seems appropriate
        https://bugs.webkit.org/show_bug.cgi?id=136280

        Reviewed by Darin Adler.

        * platform/mac/URLMac.mm:
        (WebCore::URL::operator NSURL *): Use autorelease() instead of
        CFBridgingRelease(leakRef())

2014-08-30  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS: Refactor :visited handling in SelectorChecker
        https://bugs.webkit.org/show_bug.cgi?id=135639

        Reviewed by Benjamin Poulain.

        :visited is specially handled in the SelectorChecker and style resolution
        because of security issues. That is nested links and adjacent combinators.
        Since we propagate linkState from the ancestors,

            1. linkStates of ancestors from the target node are only used to calculate
            the linkState of the current node.
            This is why adjacent combinators disable :visited.

            2. linkState is overrides by the closest link element in the ancestors.
            This is why :visited is effective on the closest link element.

        In this patch, we fix 3 things.

            1. Simplify SelectorChecker. Move m_mode to CheckingContext and it makes
            CheckingContext more similar to SelectorCompiler::CheckingContext in CSS JIT.
            And hide visitedMatchType parameter from the caller of SelectorChecker.

            2. Disable :visited inside :-webkit-any. Currently, :-webkit-any provides MatchAll
            link match type. So considering visited match type in the matching phase of :visited
            provides inconsistency. In this patch, :-webkit-any(:visited) never matches.
            And :-webkit-any(:link) acts like a :-webkit-any(:any-link). This behavior represents
            that visited match type is always considered as disabled inside :-webkit-any.
            This behavior may be changed when Selector Level4 is implemented.

            3. Fix the issue when traversing the descendant element,
            first encountered link check is missing.

        Tests: fast/history/link-inside-any.html
               fast/history/link-inside-not.html
               fast/history/nested-visited-test-override.html
               fast/history/visited-inside-any.html
               fast/history/visited-inside-not.html

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::SelectorChecker):
        (WebCore::SelectorChecker::match):
        (WebCore::hasScrollbarPseudoElement):
        (WebCore::checkingContextForParent):
        (WebCore::SelectorChecker::matchRecursively):
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
        * css/StyleResolver.h:
        (WebCore::checkRegionSelector):
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::selectorMatches):

2014-08-29  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Remove LayoutUnit's kEffectiveFixedPointDenominator.
        https://bugs.webkit.org/show_bug.cgi?id=136383.

        Reviewed by Simon Fraser.

        There's only one subpixel denominator now.

        No change in functionality.

        * platform/LayoutUnit.h:
        (WebCore::LayoutUnit::LayoutUnit):
        (WebCore::LayoutUnit::fromFloatCeil):
        (WebCore::LayoutUnit::fromFloatFloor):
        (WebCore::LayoutUnit::toInt):
        (WebCore::LayoutUnit::toFloat):
        (WebCore::LayoutUnit::toDouble):
        (WebCore::LayoutUnit::operator++):
        (WebCore::LayoutUnit::ceil):
        (WebCore::LayoutUnit::round):
        (WebCore::LayoutUnit::floor):
        (WebCore::LayoutUnit::ceilToFloat):
        (WebCore::LayoutUnit::fraction):
        (WebCore::LayoutUnit::epsilon):
        (WebCore::LayoutUnit::nearlyMax):
        (WebCore::LayoutUnit::nearlyMin):
        (WebCore::LayoutUnit::isInBounds):
        (WebCore::LayoutUnit::setValue):
        (WebCore::boundedMultiply):
        (WebCore::operator*):
        (WebCore::operator/):
        (WebCore::operator%):
        (WebCore::roundToDevicePixel):
        (WebCore::floorToDevicePixel):
        (WebCore::ceilToDevicePixel):

2014-08-29  Zalan Bujtas  <zalan@apple.com>

        Rename updatePreferredWidth to make it more explicit.
        https://bugs.webkit.org/show_bug.cgi?id=136389

        Reviewed by Simon Fraser.

        No change in functionality.

        * rendering/RenderBlock.cpp:
        (WebCore::preferredWidth):
        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
        (WebCore::updatePreferredWidth): Deleted.

2014-08-29  Gavin Barraclough  <barraclough@apple.com>

        Make timerNestingLevel threadsafe
        https://bugs.webkit.org/show_bug.cgi?id=136401

        Reviewed by Tim Horton.

        timerNestingLevel, used by DOMTimer to determine whether a timer is 'nested'
        (repeating, possible due to a timer rescheduling itself) is a global. Since
        worker threads can set timers too this is not thread safe.

        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::ScriptExecutionContext):
            - added initialize m_timerNestingLevel
        * dom/ScriptExecutionContext.h:
        (WebCore::ScriptExecutionContext::timerNestingLevel):
        (WebCore::ScriptExecutionContext::setTimerNestingLevel):
            - added accessors
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::DOMTimer):
        (WebCore::DOMTimer::fired):
            - move timerNestingLevel to the context

2014-08-29  Gavin Barraclough  <barraclough@apple.com>

        DOMTimer::m_nestingLevel is prone to overflow
        https://bugs.webkit.org/show_bug.cgi?id=136399

        Reviewed by Alexey Proskuryakov.

        Since this would happen after the 2 billionth timer fire this is unlikely,
        and consequences aren't severe (breaks throttling).

        This change has the following consequences.

            - m_nestingLevel saturates to its max value.
            - unnested timers are indicated by a nesting level of 0.
            - repeat timers update m_nestingLevel on every fire,
              not just those that should have been throttled.

        The last point is subtle, but ultimately should be inconsequential. Timers
        whose requested timeout is less that the minimum interval will saturate quickly
        anyway; timers with an original interval greater than the minimum previously
        wouldn't have incremented m_nestingLevel, but doing so now doesn't hurt since
        they won't be throttled when they hit the threshold. This simplifies things
        conceptually a little & reduces the test performed on each timer fire.

        * page/DOMTimer.cpp:
        (WebCore::shouldForwardUserGesture):
            - unnested timers are indicated by a nesting level of 0
        (WebCore::DOMTimer::DOMTimer):
            - don't increment nesting level on construction
        (WebCore::DOMTimer::fired):
            - saturating increments
        (WebCore::DOMTimer::adjustMinimumTimerInterval):
        (WebCore::DOMTimer::intervalClampedToMinimum):
            - added ASSERTs

2014-08-29  Zalan Bujtas  <zalan@apple.com>

        Improve showRenderTree() output.
        https://bugs.webkit.org/show_bug.cgi?id=136244

        Reviewed by Darin Adler.

        Add more debugging information to showRenderTree().

        Not testable.

        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::showLineTreeForThis):
        (WebCore::InlineBox::showLineTreeAndMark):
        (WebCore::InlineBox::showLineBox):
        (showNodeTree):
        (showLineTree):
        (WebCore::InlineBox::showBox): Deleted.
        * rendering/InlineBox.h:
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::showLineTreeAndMark):
        * rendering/InlineFlowBox.h:
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::showLineBox):
        (WebCore::InlineTextBox::showBox): Deleted.
        * rendering/InlineTextBox.h:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::showLineTreeAndMark): Deleted.
        * rendering/RenderBlock.h:
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::showLineTreeAndMark):
        * rendering/RenderBlockFlow.h:
        * rendering/RenderObject.cpp:
        (WebCore::showRenderTreeLegend):
        (WebCore::RenderObject::showNodeTreeForThis):
        (WebCore::RenderObject::showRenderTreeForThis):
        (WebCore::RenderObject::showLineTreeForThis):
        (WebCore::RenderObject::showRegionsInformation):
        (WebCore::RenderObject::showRenderObject):
        (WebCore::RenderObject::showRenderSubTreeAndMark):
        (showNodeTree):
        (showLineTree):
        (showRenderTree):
        (WebCore::RenderObject::showRenderTreeAndMark): Deleted.
        * rendering/RenderObject.h:
        * rendering/RootInlineBox.h:

2014-08-29  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed, remove empty directories.

        * Modules/networkinfo: Removed.
        * inspector/front-end: Removed.
        * inspector/front-end/Images: Removed.
        * inspector/front-end/UglifyJS: Removed.
        * inspector/front-end/ace: Removed.
        * inspector/front-end/cm: Removed.
        * platform/audio/ffmpeg: Removed.
        * platform/audio/ipp: Removed.
        * platform/graphics/gpu/opencl: Removed.

2014-08-29  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        [EFL] Remove non Coordinated Graphics code path from cmake build system after r142169
        https://bugs.webkit.org/show_bug.cgi?id=135560

        Reviewed by Gyuyoung Kim.

        No new tests required, no new functionality.

        * PlatformEfl.cmake: Removed TEXTURE_MAPPER and 3D_GRAPHICS guards.
        * platform/graphics/efl/GraphicsContext3DEfl.cpp: Removed TEXTURE_MAPPER_GL and GRAPHICS_SURFACE guards.
        (WebCore::GraphicsContext3D::platformLayer):
        (WebCore::GraphicsContext3D::createGraphicsSurfaces):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp: Removed TEXTURE_MAPPER_GL and GRAPHICS_SURFACE guards.
        (WebCore::GraphicsContext3DPrivate::initialize):
        (WebCore::GraphicsContext3DPrivate::releaseResources):
        (WebCore::GraphicsContext3DPrivate::paintToTextureMapper):
        (WebCore::GraphicsContext3DPrivate::graphicsSurfaceFlags):
        * platform/graphics/efl/GraphicsContext3DPrivate.h: Removed TEXTURE_MAPPER_GL and GRAPHICS_SURFACE guards.
        * platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp: Removed GRAPHICS_SURFACE guard.

2014-08-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        RenderThemeGtk depends on classes outside of platform
        https://bugs.webkit.org/show_bug.cgi?id=22176

        Reviewed by Martin Robinson.

        Move RenderThemeGtk.cpp from platform to rendering.

        * PlatformGTK.cmake:
        * rendering/RenderThemeGtk.cpp: Renamed from Source/WebCore/platform/gtk/RenderThemeGtk.cpp.

2014-08-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] ScrollbarThemeGtk should not depend on RenderThemeGtk
        https://bugs.webkit.org/show_bug.cgi?id=136338

        Reviewed by Philippe Normand.

        Remove the dependency by creating the GtkStyleContext for the
        scrollbars in ScrollbarThemeGtk.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::gtkStyleChangedCallback): Call ScrollbarThemeGtk::themeChanged().
        (WebCore::getStyleContext): Remove the scrollbar style context support.
        * platform/gtk/RenderThemeGtk.h: Remove gtkScrollbarStyle().
        * platform/gtk/ScrollbarThemeGtk.cpp:
        (WebCore::ScrollbarStyleContext::ScrollbarStyleContext): Helper
        class to create the global GtkStyleContext for scrollbars.
        (WebCore::ScrollbarStyleContext::~ScrollbarStyleContext):
        (WebCore::ScrollbarStyleContext::context):
        (WebCore::gtkScrollbarStyleContext):
        (WebCore::ScrollbarThemeGtk::ScrollbarThemeGtk): Remove m_context initialization.
        (WebCore::ScrollbarThemeGtk::themeChanged): Invalidate the
        GtkStylecontext and call updateThemeProperties().
        (WebCore::ScrollbarThemeGtk::updateThemeProperties): Use the
        global style context.
        (WebCore::ScrollbarThemeGtk::paintTrackBackground): Ditto.
        (WebCore::ScrollbarThemeGtk::paintScrollbarBackground): Ditto.
        (WebCore::ScrollbarThemeGtk::paintThumb): Ditto.
        (WebCore::ScrollbarThemeGtk::paintButton): Ditto.
        * platform/gtk/ScrollbarThemeGtk.h:

2014-08-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Merge RenderThemeGtk3.cpp into RenderThemeGtk.cpp and ScrollbarThemeGtk3.cpp intoScrollbarThemeGtk.cpp
        https://bugs.webkit.org/show_bug.cgi?id=136336

        Reviewed by Philippe Normand.

        There's no reason to have two files now that there's no GTK+2
        support. Also fix coding style issues and compile warnings.

        * PlatformGTK.cmake:
        * platform/gtk/RenderThemeGtk.cpp:
        * platform/gtk/RenderThemeGtk.h:
        * platform/gtk/RenderThemeGtk3.cpp: Removed.
        * platform/gtk/ScrollbarThemeGtk.cpp:
        * platform/gtk/ScrollbarThemeGtk3.cpp: Removed.

2014-08-28  Mark Lam  <mark.lam@apple.com>

        DebuggerCallFrame::scope() should return a DebuggerScope.
        <https://webkit.org/b/134420>

        Reviewed by Geoffrey Garen.

        No new tests.

        Rolling back in r170680 with the fix for <https://webkit.org/b/135656>.

        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::attachDebugger):
        - We should acquire the JSLock before modifying a JS global object.

2014-08-28  Enrica Casucci  <enrica@apple.com>

        Can't hit tab key more than 3 times continuously.
        https://bugs.webkit.org/show_bug.cgi?id=136357
        rdar://problem/17927266

        Reviewed by Dean Jackson.

        Test: fast/css/multiple-tabs.html

        When computing the tabWidth disregard increments of less than half the size of the space character
        for the given font.

        * platform/graphics/Font.h:
        (WebCore::Font::tabWidth):

2014-08-28  Daniel Bates  <dabates@apple.com>

        [iOS] Clients that include WebCoreThread.h fail to build after <http://trac.webkit.org/changeset/172814/>
        (https://bugs.webkit.org/show_bug.cgi?id=136108)

        Define WEBCORE_EXPORT (if its not already defined) in WebCoreThread.h so as to fix the
        build for clients that include this header.

        * platform/ios/wak/WebCoreThread.h:

2014-08-28  Pratik Solanki  <psolanki@apple.com>

        WebContent hangs under SharedBuffer::duplicateDataBufferIfNecessary() while browsing some websites
        https://bugs.webkit.org/show_bug.cgi?id=136347
        <rdar://problem/18073745>

        Reviewed by Andreas Kling.

        When passing data to ImageIO, we create a copy if we have to reallocate the buffer. We would
        set the size of the new buffer to be the size of the SharedBuffer data. This causes memory
        churn since we would create a new buffer for every data chunk we get. Fix this by at least
        doubling the capacity of the buffer when we duplicate it.

        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::duplicateDataBufferIfNecessary):

2014-08-28  Dan Bernstein  <mitz@apple.com>

        iOS build fix.

        * WebCore.exp.in: Updated symbol.

2014-08-28  Benjamin Poulain  <bpoulain@apple.com>

        Scrolling with spacebar on a page with fixed header breaks reading flow
        https://bugs.webkit.org/show_bug.cgi?id=135506

        Reviewed by Simon Fraser.

        When scrolling by page, find the height of any bar that is obscuring the top or bottom of the page,
        and substract that height from the step to scroll.

        Tests: scrollbars/scrolling-backward-by-page-accounting-bottom-fixed-elements-on-keyboard-spacebar.html
               scrollbars/scrolling-backward-by-page-on-keyboard-spacebar.html
               scrollbars/scrolling-by-page-accounting-oversized-fixed-elements-on-keyboard-spacebar.html
               scrollbars/scrolling-by-page-accounting-top-fixed-elements-on-keyboard-spacebar.html
               scrollbars/scrolling-by-page-accounting-top-fixed-elements-with-negative-top-on-keyboard-spacebar.html
               scrollbars/scrolling-by-page-ignoring-hidden-fixed-elements-on-keyboard-spacebar.html
               scrollbars/scrolling-by-page-ignoring-transparent-fixed-elements-on-keyboard-spacebar.html
               scrollbars/scrolling-by-page-on-keyboard-spacebar.html

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::adjustScrollStepForFixedContent):
        * page/FrameView.h:
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::adjustScrollStepForFixedContent):
        (WebCore::ScrollableArea::scroll):
        * platform/ScrollableArea.h:

2014-08-28  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Remove unused pixel snapping functions.
        https://bugs.webkit.org/show_bug.cgi?id=136341

        Reviewed by Simon Fraser.

        Let's not encourage integral snapping by having these functions around.
        
        No change in functionality.

        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::pixelSnappedElementRect): Deleted.
        (WebCore::AccessibilityObject::pixelSnappedSize): Deleted.
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::width):
        (WebCore::HTMLImageElement::height):
        * page/FrameView.cpp:
        (WebCore::FrameView::qualifiesAsVisuallyNonEmpty):
        * platform/graphics/LayoutPoint.h:
        (WebCore::snappedIntSize):
        (WebCore::snapSizeToDevicePixel):
        * platform/graphics/LayoutRect.h:
        (WebCore::LayoutRect::pixelSnappedLocation): Deleted.
        (WebCore::LayoutRect::pixelSnappedX): Deleted.
        (WebCore::LayoutRect::pixelSnappedY): Deleted.
        (WebCore::LayoutRect::pixelSnappedWidth): Deleted.
        (WebCore::LayoutRect::pixelSnappedHeight): Deleted.
        (WebCore::LayoutRect::pixelSnappedMaxX): Deleted.
        (WebCore::LayoutRect::pixelSnappedMaxY): Deleted.
        (WebCore::snappedIntRectFromEdges): Deleted.
        * rendering/RenderBlockFlow.h:
        (WebCore::RenderBlockFlow::pixelSnappedLogicalTopForFloat): Deleted.
        (WebCore::RenderBlockFlow::pixelSnappedLogicalBottomForFloat): Deleted.
        (WebCore::RenderBlockFlow::pixelSnappedLogicalLeftForFloat): Deleted.
        (WebCore::RenderBlockFlow::pixelSnappedLogicalRightForFloat): Deleted.
        * rendering/RenderBox.h:
        (WebCore::RenderBox::pixelSnappedLogicalHeight):
        (WebCore::RenderBox::pixelSnappedLogicalWidth):
        (WebCore::RenderBox::pixelSnappedBorderBoxRect):
        (WebCore::RenderBox::pixelSnappedWidth): Deleted.
        (WebCore::RenderBox::pixelSnappedHeight): Deleted.
        (WebCore::RenderBox::pixelSnappedFrameRect): Deleted.
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::nodeWidth):
        (WebCore::nodeHeight):
        (WebCore::RenderFileUploadControl::maxFilenameWidth):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPosition):
        (WebCore::RenderLayer::isPointInResizeControl):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::ensureRootLayer):
        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::volumeSliderOffsetFromMuteButton):
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::paintColumnRules):
        * rendering/RenderScrollbar.cpp:
        (WebCore::RenderScrollbar::buttonRect):
        * rendering/RenderView.h:

2014-08-27  Enrica Casucci  <enrica@apple.com>

        textStylingAtPosition returns incorrect values after executing toggleBold, toggleItalic and toggleUnderline.
        https://bugs.webkit.org/show_bug.cgi?id=136323
        rdar://problem/18141964

        Reviewed by Antti Koivisto.

        For underline style we need to check typingStyle first and use that information to populate
        the dictionary. If there is no typing style we can use the render style.

        * WebCore.exp.in:
        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::fontAttributesForSelectionStart):

2014-08-28  Iago Toral  <itoral@igalia.com> and Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Add WaylandEventSource
        https://bugs.webkit.org/show_bug.cgi?id=136213

        Reviewed by Martin Robinson.

        Add the WaylandEventSource class. Its static method, createEventSource(),
        creates a new GSource object that is attached to the main context and
        enables handling Wayland display events through the GLib's main loop.

        The method will be called by the nested Wayland compositor during its
        initialization, which will also take the control over the ownership and
        will be tasked with properly removing the GSource from the main context.

        GLibSource is a GSource-based struct that additionally holds a GPollFD object
        and the pointer to the wl_display object whose event loop we'll be
        dispatching during the GSource dispatch. This is the type that g_source_new
        uses when allocating the new GSource object.

        The GSource is assigned the default priorty, can recurse, and is attached
        to the main context.

        * PlatformGTK.cmake:
        * platform/graphics/wayland/WaylandEventSource.cpp: Added.
        (WebCore::GLibSource::initialize):
        (WebCore::GLibSource::check):
        (WebCore::GLibSource::dispatch):
        (WebCore::prepareCallback):
        (WebCore::checkCallback):
        (WebCore::dispatchCallback):
        (WebCore::WaylandEventSource::createDisplayEventSource):
        * platform/graphics/wayland/WaylandEventSource.h: Added.

2014-08-28  Chris Fleizach  <cfleizach@apple.com>

        AX: Safari at com.apple.WebCore: WebCore::AXObjectCache::clearTextMarkerNodesInUse
        https://bugs.webkit.org/show_bug.cgi?id=136333

        Reviewed by David Kilzer.

        If a Node is asked for it's Document when it's not actually in a document, it can lead to an assert/crash.
        We can avoid this by checking that the node is in a document before asking for its document.

        I was not able to make a test case.      

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::clearTextMarkerNodesInUse):

2014-08-28  Andreas Kling  <akling@apple.com>

        ASSERTION FAILED: !m_renderView.document().inPageCache() in compositing/iframes/resources/page-cache-helper.html
        <https://webkit.org/b/136329>

        Cancel any pending compositing layer updates when moving a document
        into the page cache.

        Reviewed by Zalan Bujtas.

        * dom/Document.cpp:
        (WebCore::Document::documentWillSuspendForPageCache):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::cancelCompositingLayerUpdate):
        * rendering/RenderLayerCompositor.h:

2014-08-28  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Incorrect selection clearing on a document without regions
        https://bugs.webkit.org/show_bug.cgi?id=134901

        Reviewed by David Hyatt.

        When we select all the content of document with named flows but without regions,
        the start and end points of selection is cached in RenderView. However, since
        the document has named flows, the selection is split between the subtrees. During the split,
        it is possible that the cached end-points of the original selection are not included
        in any of the resulting subtree selection and they are not marked accordingly.
        In order to process the selection clearing correctly, we have to take the original
        selection end-points into account.

        Test: fast/regions/selection/select-all-without-regions.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::isSelectionBorder):

2014-08-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add webkit_uri_response_get_http_headers to WebKit2 GTK+ API
        https://bugs.webkit.org/show_bug.cgi?id=136248

        Reviewed by Gustavo Noronha Silva.

        Move the code to update the SoupMessageHeaders to a new public
        method.

        * platform/network/soup/ResourceResponse.h:
        * platform/network/soup/ResourceResponseSoup.cpp:
        (WebCore::ResourceResponse::updateSoupMessageHeaders):
        (WebCore::ResourceResponse::toSoupMessage):

2014-08-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove support for GTK+2 theme rendering
        https://bugs.webkit.org/show_bug.cgi?id=136285

        Reviewed by Philippe Normand.

        GTK+2 is only used by the plugin process that doesn't need to
        render html controls themed. Since the theme files are still
        built for WebCorePlatformGTK2, we need to provide dummy
        implementations for the pure virtual methods when
        GTK_API_VERSION_2 is defined.

        * PlatformGTK.cmake: Remove deleted files from compilation.
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::create):
        (WebCore::RenderTheme::themeForPage):
        (WebCore::getScreenDPI):
        (WebCore::RenderThemeGtk::systemFont):
        (WebCore::RenderThemeGtk::sliderTickSize):
        (WebCore::RenderThemeGtk::sliderTickOffsetFromTrackCenter):
        (WebCore::RenderThemeGtk::getScreenDPI): Deleted.
        * platform/gtk/RenderThemeGtk.h:
        * platform/gtk/RenderThemeGtk2.cpp: Removed.
        * platform/gtk/RenderThemeGtk3.cpp:
        * platform/gtk/ScrollbarThemeGtk.cpp:
        (WebCore::ScrollbarThemeGtk::hasThumb):
        (WebCore::ScrollbarThemeGtk::backButtonRect):
        (WebCore::ScrollbarThemeGtk::forwardButtonRect):
        (WebCore::ScrollbarThemeGtk::trackRect):
        (WebCore::ScrollbarThemeGtk::registerScrollbar):
        (WebCore::ScrollbarThemeGtk::unregisterScrollbar):
        (WebCore::ScrollbarThemeGtk::updateScrollbarsFrameThickness):
        * platform/gtk/ScrollbarThemeGtk.h:
        * platform/gtk/ScrollbarThemeGtk2.cpp: Removed.
        * platform/gtk/WidgetRenderingContext.cpp: Removed.
        * platform/gtk/WidgetRenderingContext.h: Removed.

2014-08-28  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed GTK build fix for the Wayland windowing target after r173052.

        * platform/graphics/wayland/WaylandSurface.cpp: Include the IntSize header.
        * platform/graphics/wayland/WaylandSurface.h: Forward-declare IntSize.

2014-08-27  Csaba Osztrogonác  <ossy@webkit.org>

        One more URTBF after r173047.

        * accessibility/atk/WebKitAccessibleInterfaceComponent.cpp:
        (webkitAccessibleComponentGetExtents):

2014-08-27  Iago Toral  <itoral@igalia.com> and Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Add WaylandSurface
        https://bugs.webkit.org/show_bug.cgi?id=136220

        Reviewed by Martin Robinson.

        Add the WaylandSurface class. An objects of this type is meant to be used
        by the LayerTreeHostGtk in the WebProcess and is constructed via the
        WaylandDisplay::createSurface() method.

        LayerTreeHostGtk uses such object to perform frame requests to the nested
        Wayland compositor in the UIProcess, and to create the GLContextEGL object
        that's used during the layer flushing and compositing.

        The resize() method is called whenever LayerTreeHostGtk is being resized,
        and basically only wraps the wl_egL_window_resize() call.

        * PlatformGTK.cmake:
        * platform/graphics/wayland/WaylandSurface.cpp: Added.
        (WebCore::frameCallback):
        (WebCore::WaylandSurface::WaylandSurface):
        (WebCore::WaylandSurface::~WaylandSurface):
        (WebCore::WaylandSurface::resize):
        (WebCore::WaylandSurface::createGLContext):
        (WebCore::WaylandSurface::requestFrame):
        * platform/graphics/wayland/WaylandSurface.h: Added.
        (WebCore::WaylandSurface::surface):
        (WebCore::WaylandSurface::nativeWindowHandle):

2014-08-27  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r173047.

        * accessibility/atk/WebKitAccessibleInterfaceImage.cpp:
        (webkitAccessibleImageGetImagePosition):

2014-08-27  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Cleanup snapSizeToPixel/snapSizeToDevicePixel.
        https://bugs.webkit.org/show_bug.cgi?id=136264

        Reviewed by Simon Fraser.
        
        1. Align snapSizeToPixel()/snapSizeToDevicePixel() function names with the rest of snapping
        functions. ->snappedIntSize()/snapSizeToDevicePixel().
        2. Operate on LayoutSize/LayoutPoint instead of LayoutUnit/LayoutUnit to reflect functionality.

        Covered by existing tests.

        * platform/LayoutUnit.h:
        (WebCore::snapSizeToPixel): Deleted.
        (WebCore::snapSizeToDevicePixel): Deleted.
        * platform/graphics/LayoutPoint.h:
        (WebCore::snappedIntSize):
        (WebCore::snapSizeToDevicePixel):
        (WebCore::pixelSnappedIntSize): Deleted.
        * platform/graphics/LayoutRect.h:
        (WebCore::LayoutRect::pixelSnappedSize):
        (WebCore::LayoutRect::pixelSnappedWidth):
        (WebCore::LayoutRect::pixelSnappedHeight):
        (WebCore::pixelSnappedIntRect):
        (WebCore::pixelSnappedIntRectFromEdges):
        (WebCore::pixelSnappedForPainting):
        (WebCore::directionalPixelSnappedForPainting):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::pixelSnappedClientWidth):
        (WebCore::RenderBox::pixelSnappedClientHeight):
        (WebCore::RenderBox::pixelSnappedOffsetWidth):
        (WebCore::RenderBox::pixelSnappedOffsetHeight):
        (WebCore::RenderBox::scrollWidth):
        (WebCore::RenderBox::scrollHeight):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::pixelSnappedOffsetWidth):
        (WebCore::RenderBoxModelObject::pixelSnappedOffsetHeight):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPosition):
        (WebCore::RenderLayer::scrollWidth):
        (WebCore::RenderLayer::scrollHeight):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::writeLayers):

2014-08-27  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Rename LayoutRect's device pixel snapping functions.
        https://bugs.webkit.org/show_bug.cgi?id=136319

        Reviewed by Simon Fraser.

        From pixelSnappedForPainting() to snapRectToDevicePixels() and 
        pixelSnappedIntRect*() to snappedIntRect*().

        No change in functionality.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::boundingBoxForQuads):
        (WebCore::AccessibilityObject::isOnscreen):
        (WebCore::AccessibilityObject::scrollToMakeVisible):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::pixelSnappedBoundingBoxRect):
        (WebCore::AccessibilityObject::pixelSnappedElementRect):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isOffScreen):
        (WebCore::AccessibilityRenderObject::boundsForVisiblePositionRange):
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper accessibilityActivationPoint]):
        (-[WebAccessibilityObjectWrapper accessibilityFrame]):
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (-[WebAccessibilityObjectWrapper position]):
        (-[WebAccessibilityObjectWrapper accessibilityShowContextMenu]):
        * bindings/objc/DOMUIKitExtensions.mm:
        (-[DOMHTMLAreaElement boundingBoxWithOwner:]):
        (-[DOMHTMLAreaElement absoluteQuadWithOwner:]):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::computedTransform):
        * dom/Node.h:
        (WebCore::Node::pixelSnappedBoundingBox):
        (WebCore::Node::pixelSnappedRenderRect):
        * editing/RenderedPosition.cpp:
        (WebCore::RenderedPosition::absoluteRect):
        * editing/mac/FrameSelectionMac.mm:
        (WebCore::FrameSelection::notifyAccessibilityForSelectionChange):
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::paint):
        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForElementInfo):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::didPaint):
        * page/FrameSnapshotting.cpp:
        (WebCore::snapshotNode):
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollContentsFastPath):
        (WebCore::FrameView::extendedBackgroundRectForPainting):
        (WebCore::FrameView::windowClipRectForFrameOwner):
        (WebCore::FrameView::convertFromRendererToContainingView):
        * page/Page.cpp:
        (WebCore::Page::addRelevantRepaintedObject):
        (WebCore::Page::addRelevantUnpaintedObject):
        * page/ios/FrameIOS.mm:
        (WebCore::ancestorRespondingToClickEvents):
        * platform/DragImage.cpp:
        (WebCore::createDragImageForImage):
        * platform/graphics/LayoutRect.cpp:
        (WebCore::enclosingRectToDevicePixels):
        (WebCore::enclosingRectForPainting): Deleted.
        * platform/graphics/LayoutRect.h:
        (WebCore::snappedIntRect):
        (WebCore::snappedIntRectFromEdges):
        (WebCore::snapRectToDevicePixels):
        (WebCore::snapRectToDevicePixelsWithWritingDirection):
        (WebCore::pixelSnappedIntRect): Deleted.
        (WebCore::pixelSnappedIntRectFromEdges): Deleted.
        (WebCore::pixelSnappedForPainting): Deleted.
        (WebCore::directionalPixelSnappedForPainting): Deleted.
        * platform/graphics/RoundedRect.cpp:
        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::computePixelAlignment):
        * platform/text/TextStream.cpp:
        (WebCore::TextStream::operator<<):
        * rendering/EllipsisBox.cpp:
        (WebCore::EllipsisBox::paintSelection):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRendererHelper::applyFilterEffect):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::paint):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::InlineTextBox::paintCompositionBackground):
        (WebCore::InlineTextBox::paintTextMatchMarker):
        (WebCore::InlineTextBox::positionForOffset):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addVisualOverflowFromTheme):
        (WebCore::RenderBlock::paint):
        (WebCore::RenderBlock::blockSelectionGap):
        (WebCore::RenderBlock::logicalLeftSelectionGap):
        (WebCore::RenderBlock::logicalRightSelectionGap):
        (WebCore::RenderBlock::absoluteRects):
        (WebCore::RenderBlock::addFocusRingRects):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::clipOutFloatingObjects):
        (WebCore::RenderBlockFlow::addFocusRingRectsForInlineChildren):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::absoluteRects):
        (WebCore::RenderBox::absoluteContentBox):
        (WebCore::RenderBox::outlineBoundsForRepaint):
        (WebCore::RenderBox::addFocusRingRects):
        (WebCore::RenderBox::getBackgroundPaintedExtent):
        (WebCore::RenderBox::pushContentsClip):
        (WebCore::RenderBox::computeRectForRepaint):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::pixelSnappedFrameRect):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        (WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting):
        (WebCore::RenderBoxModelObject::paintNinePieceImage):
        (WebCore::RenderBoxModelObject::paintBorder):
        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
        (WebCore::RenderBoxModelObject::paintBoxShadow):
        * rendering/RenderDetailsMarker.cpp:
        (WebCore::RenderDetailsMarker::paint):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::paintSnapshotImage):
        (WebCore::RenderEmbeddedObject::isReplacementObscured):
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::paintBoxDecorations):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme):
        * rendering/RenderFrameSet.cpp:
        (WebCore::RenderFrameSet::paint):
        (WebCore::RenderFrameSet::layout):
        (WebCore::RenderFrameSet::positionFramesWithFlattening):
        * rendering/RenderHTMLCanvas.cpp:
        (WebCore::RenderHTMLCanvas::paintReplaced):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintReplaced):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::paintOutlineForLine):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateTransform):
        (WebCore::RenderLayer::currentTransform):
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::scrollRectToVisible):
        (WebCore::RenderLayer::scrollCornerRect):
        (WebCore::RenderLayer::drawPlatformResizerImage):
        (WebCore::RenderLayer::paintResizer):
        (WebCore::RenderLayer::hitTestOverflowControls):
        (WebCore::RenderLayer::clipToRect):
        (WebCore::RenderLayer::paintLayerByApplyingTransform):
        (WebCore::RenderLayer::paintOverflowControlsForFragments):
        (WebCore::RenderLayer::hitTestResizerInFragments):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateTransform):
        (WebCore::RenderLayerBacking::updateGeometry):
        (WebCore::RenderLayerBacking::resetContentsRect):
        (WebCore::RenderLayerBacking::updateImageContents):
        (WebCore::RenderLayerBacking::backgroundBoxForPainting):
        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
        (WebCore::RenderLayerBacking::paintContents):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::addToOverlapMap):
        (WebCore::RenderLayerCompositor::requiresCompositingForPlugin):
        (WebCore::RenderLayerCompositor::requiresCompositingForFrame):
        (WebCore::RenderLayerCompositor::paintContents):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::addFocusRingRects):
        (WebCore::RenderListBox::paintScrollbar):
        (WebCore::RenderListBox::paintItemBackground):
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::paint):
        * rendering/RenderMeter.cpp:
        (WebCore::RenderMeter::updateLogicalWidth):
        (WebCore::RenderMeter::computeLogicalHeight):
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::paintColumnRules):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::drawLineForBoxSide):
        (WebCore::RenderObject::addPDFURLRect):
        (WebCore::RenderObject::paintOutline):
        (WebCore::RenderObject::absoluteBoundingBoxRect):
        (WebCore::RenderObject::repaintUsingContainer):
        (WebCore::RenderObject::repaintSlowRepaintObject):
        (WebCore::RenderObject::pixelSnappedAbsoluteClippedOverflowRect):
        * rendering/RenderProgress.cpp:
        (WebCore::RenderProgress::computeLogicalHeight):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::paint):
        * rendering/RenderScrollbarPart.cpp:
        (WebCore::RenderScrollbarPart::paintIntoRect):
        * rendering/RenderSearchField.cpp:
        (WebCore::RenderSearchField::showPopup):
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::paintSnapshot):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::paintCollapsedBorders):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::addFocusRingRects):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::paint):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::paintBorderOnly):
        (WebCore::RenderTheme::paintDecorations):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::write):
        * rendering/RenderVideo.cpp:
        (WebCore::RenderVideo::videoBox):
        (WebCore::RenderVideo::paintReplaced):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::repaintViewRectangle):
        (WebCore::RenderView::computeRectForRepaint):
        (WebCore::RenderView::absoluteRects):
        (WebCore::RenderView::selectionBounds):
        (WebCore::RenderView::unscaledDocumentRect):
        * rendering/RenderView.h:
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::paintContents):
        (WebCore::RenderWidget::paint):
        * rendering/SimpleLineLayoutFunctions.cpp:
        (WebCore::SimpleLineLayout::paintDebugBorders):
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createRasterShape):
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::paintReplaced):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::selectionRectForTextFragment):

2014-08-27  Daniel Bates  <dabates@apple.com>

        Scrollbar corner can be drawn outside containing frame
        https://bugs.webkit.org/show_bug.cgi?id=133131
        <rdar://problem/16382769>

        Reviewed by Simon Fraser.

        Merged from Blink (patch by Levi Weintraub):
        <https://src.chromium.org/viewvc/blink?revision=170625&view=revision>

        Fixes an issue where the scroll corner may be painted outside the rectangle of
        its associated frame by setting a clip rectangle before painting the scroll bar(s)
        and scroll corner.

        Test: scrollbars/custom-scrollbars-paint-outside-iframe.html

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::paint):

2014-08-27  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Rename FloatPoint/FloatRect device pixel snapping functions.
        https://bugs.webkit.org/show_bug.cgi?id=136314

        Reviewed by Simon Fraser.

        From *edToDevicePixels() to *PointToDevicePixels() (* = floor/round/ceil)

        EnclosedIntRect -> enclosingIntRect() changes functionality for InspectorOverlay painting,
        but currently untestable.

        * WebCore.exp.in:
        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::showPaintRect):
        * platform/graphics/FloatPoint.h:
        (WebCore::flooredIntSize):
        (WebCore::floorPointToDevicePixels):
        (WebCore::ceilPointToDevicePixels):
        (WebCore::flooredToDevicePixels): Deleted.
        (WebCore::ceiledToDevicePixels): Deleted.
        * platform/graphics/FloatRect.cpp:
        (WebCore::enclosingRectToDevicePixels):
        (WebCore::enclosingRectExtendedToDevicePixels): Deleted. Renamed.
        (WebCore::enclosedIntRect): Deleted. Not needed.
        * platform/graphics/FloatRect.h:

2014-08-27  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Rename LayoutPoint's device pixel snapping functions.
        https://bugs.webkit.org/show_bug.cgi?id=136306

        Reviewed by Simon Fraser.

        From *edForPainting() to *PointToDevicePixels() (* = floor/round/ceil)

        No change in functionality.

        * platform/graphics/LayoutPoint.h:
        (WebCore::roundPointToDevicePixels):
        (WebCore::floorPointToDevicePixels):
        (WebCore::ceilPointToDevicePixels):
        (WebCore::roundedForPainting): Deleted.
        (WebCore::flooredForPainting): Deleted.
        (WebCore::ceiledForPainting): Deleted.
        * platform/graphics/LayoutRect.cpp:
        (WebCore::enclosingRectForPainting):
        * platform/graphics/LayoutRect.h:
        (WebCore::directionalPixelSnappedForPainting):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerByApplyingTransform):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGeometry):

2014-08-27  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Rename LayoutSize's device pixel snapping functions.
        https://bugs.webkit.org/show_bug.cgi?id=136310

        Reviewed by Simon Fraser.

        From *edForPainting() to *SizeToDevicePixels() (* = floor/round/ceil)

        No change in functionality.

         * platform/graphics/LayoutSize.h:
        (WebCore::floorSizeToDevicePixels):
        (WebCore::flooredForPainting): Deleted.
        * rendering/style/StyleGeneratedImage.cpp:
        (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):

2014-08-27  Brian J. Burg  <burg@cs.washington.edu>

        Enums in ScrollTypes and PlatformWheelEvent should not use uint64_t storage
        https://bugs.webkit.org/show_bug.cgi?id=136318

        Reviewed by Simon Fraser.

        This regressed in a replay-related patch. Revert back to uint8_t storage size.

        * platform/PlatformWheelEvent.h:
        * platform/ScrollTypes.h:
        * replay/WebInputs.json:

2014-08-27  Simon Fraser  <simon.fraser@apple.com>

        Speling is hard.

        Reviewed by Tim Horton.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::handleMouseDoubleClickEvent):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        (WebCore::EventHandler::handlePasteGlobalSelection):
        (WebCore::EventHandler::updateMouseEventTargetNode):
        (WebCore::EventHandler::dispatchMouseEvent):
        (WebCore::EventHandler::sendContextMenuEventForKey):
        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):

2014-08-27  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):

2014-08-27  Andreas Kling  <akling@apple.com>

        Drawing text in an SVG font causes load events to be fired.
        <https://webkit.org/b/136269>
        <rdar://problem/15724915>

        Don't flush pending load events in Document::implicitClose() for frameless documents.
        This is a targeted fix for an issue where parsing SVG fonts during layout would cause
        event dispatch to happen in the main document, leading to arbitrary JS execution.

        Note that the testcase only works in DRT/WTR, since once the SVG font is in cached
        by WebCore, we won't reparse it again. Caches are cleared between tests, so it will
        correctly fail if this should regress.

        Longer-term, we should clean this up and get rid of the global dispatch entirely.

        Reviewed by Simon Fraser.

        Test: fast/text/svg-font-trigger-load-event.html

        * dom/Document.cpp:
        (WebCore::Document::implicitClose):

2014-08-27  Simon Fraser  <simon.fraser@apple.com>

        Some EventHandler naming cleanup
        https://bugs.webkit.org/show_bug.cgi?id=136303

        Reviewed by Beth Dakin.
        
        Rename "mev" variables to "mouseEvent".
        
        No behavior change.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::handleMouseDoubleClickEvent):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        (WebCore::EventHandler::updateDragAndDrop):
        (WebCore::EventHandler::prepareMouseEvent):
        (WebCore::EventHandler::sendContextMenuEvent):
        (WebCore::EventHandler::passMousePressEventToScrollbar):
        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):

2014-08-27  Simon Fraser  <simon.fraser@apple.com>

        Some EventHandler naming cleanup
        https://bugs.webkit.org/show_bug.cgi?id=136303

        Reviewed by Beth Dakin.

        Rename PlatformMouseEvent variables from "mouseEvent" to "platformMouseEvent"
        so that a later patch can rename "mev" to "mouseEvent".
        
        0 => nullptr.
        
        No behavior change.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::clear):
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::handleMouseDoubleClickEvent):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::invalidateClick):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        (WebCore::EventHandler::handlePasteGlobalSelection):
        (WebCore::EventHandler::updateMouseEventTargetNode):
        (WebCore::EventHandler::dispatchMouseEvent):
        (WebCore::EventHandler::sendContextMenuEventForKey):
        (WebCore::EventHandler::dispatchSyntheticTouchEventIfEnabled):

2014-08-27  Beth Dakin  <bdakin@apple.com>

        Make isScrollableOrRubberbandable() a virtual function on RenderLayerModelObject
        https://bugs.webkit.org/show_bug.cgi?id=136307

        Reviewed by Simon Fraser.

        Remove extra parentheses. 
        * page/FrameView.cpp:
        (WebCore::FrameView::isScrollable):

        Mark isScrollableOrRubberbandable() as override now that the root implementation 
        is moving to RenderLayerModelObject. It can also be private now.
        * rendering/RenderBox.h:

        isBox() check and cast are no longer necessary.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hasScrollableOrRubberbandableAncestor):

        Base implementation should return false.
        * rendering/RenderLayerModelObject.h:
        (WebCore::RenderLayerModelObject::isScrollableOrRubberbandable):

        Mark as override.
        * rendering/RenderView.h:

2014-08-27  Antti Koivisto  <antti@apple.com>

        REGRESSION(r172946): Plugin tests asserting on Yosemite debug bot
        https://bugs.webkit.org/show_bug.cgi?id=136301

        Reviewed by Alexey Proskuryakov.

        Don't pull the priority from the platform request if it is not defined.

        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        * platform/network/cocoa/ResourceRequestCocoa.mm:
        (WebCore::ResourceRequest::doUpdateResourceRequest):

2014-08-27  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: Crash when you open Web Inspector in a private window (due to IndexedDB)
        https://bugs.webkit.org/show_bug.cgi?id=136293

        Reviewed by Joseph Pecoraro.

        * inspector/InspectorIndexedDBAgent.cpp:
        (WebCore::InspectorIndexedDBAgent::requestDatabaseNames): Null check idbRequest from
        IDBFactory::getDatabaseNames, which can return null now after r172603 in private browsing.

2014-08-27  Beth Dakin  <bdakin@apple.com>

        overflow:scroll elements should not latch to the body if the body is 
        overflow:hidden
        https://bugs.webkit.org/show_bug.cgi?id=136273

        Reviewed by Darin Adler.

        This patch adds an optional parameter to isScrollable(). The Scrollability 
        parameter that allows the caller to define what they mean by 'scrollable.' Most 
        callers are interested in the default value, Scrollability::Scrollable, which 
        means that there is actually content to scroll to, and a scrollbar that will allow 
        you to access it. In some cases, such as this latching case, callers want to know 
        if the FrameView is allowed to rubber-band, which the main frame might be allowed 
        to do even if there is no content to scroll to. In that case, callers use 
        Scrollability::ScrollableOrRubberbandable.
        * page/FrameView.cpp:
        (WebCore::FrameView::isScrollable):
        (WebCore::FrameView::hasScrollableOrRubberbandableAncestor):

        New virtual function on ScrollableArea answers whether a ScrollableArea has any 
        scrollable or rubber-bandable ancestor.
        * page/FrameView.h:
        * platform/ScrollableArea.h:

        Events should only be allowed to prevent stretching if there is some ancestor 
        ScrollableArea that will be able to make use of the event. 
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
        (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):

        New ScrollableArea virtual function.
        * platform/win/PopupMenuWin.h:

        New RenderBox isScrollableOrRubberbandable() returns just 
        canBeScrolledAndHasScrollableArea() for most RenderBox, but will be overridden by 
        RenderView.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::isScrollableOrRubberbandable):
        * rendering/RenderBox.h:

        Recurse up the parent chain to find out if anything is scrollable or just rubber-
        bandable.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hasScrollableOrRubberbandableAncestor):
        * rendering/RenderLayer.h:

        Call into RenderLayer.
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::hasScrollableOrRubberbandableAncestor):
        * rendering/RenderListBox.h:

        Override isScrollableOrRubberbandable() to handle the main frame case where the 
        main frame is typically allowed to rubber-band even if there is no content to 
        scroll to.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::isScrollableOrRubberbandable):
        * rendering/RenderView.h:

2014-08-27  Benjamin Poulain  <bpoulain@apple.com>

        Updating attributes on HTML elements do not invalidate the style correctly unless the attribute name is lowercase in the stylesheet
        https://bugs.webkit.org/show_bug.cgi?id=136270

        Reviewed by Andreas Kling.

        In HTML, WebKit treats every attribute name lowercase to implement case-insensitive matching.
        When invalidating style, the StyleResolver was ignoring HTML and always using the XML names.

        This patch split the names on RuleFeatureSet in two sets: one for XML, one for HTML.
        In StyleResolver, the name used depends on the type of the element being updated.

        This patch also adds nodeNeedsStyleRecalc() to Internals to test the optimization and various cases
        of style update.

        Tests: fast/css/attribute-for-content-property-style-update-html.html
               fast/css/attribute-for-content-property-style-update-xhtml.xhtml
               fast/css/attribute-style-invalidation-optimization-html.html
               fast/css/attribute-style-invalidation-optimization-xhtml.xhtml
               fast/css/attribute-style-update-html.html
               fast/selectors/attribute-style-update-html.html
               fast/selectors/attribute-style-update-svg-in-html.html
               fast/selectors/attribute-style-update-xhtml.xhtml

        * css/RuleFeature.cpp:
        (WebCore::RuleFeatureSet::collectFeaturesFromSelector):
        (WebCore::RuleFeatureSet::add):
        (WebCore::RuleFeatureSet::clear):
        * css/RuleFeature.h:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::hasSelectorForAttribute):
        * dom/Element.cpp:
        (WebCore::Element::willModifyAttribute):
        * testing/Internals.cpp:
        (WebCore::Internals::address):
        (WebCore::Internals::nodeNeedsStyleRecalc):
        * testing/Internals.h:
        * testing/Internals.idl:

2014-08-27  Benjamin Poulain  <bpoulain@apple.com>

        Update the CSS Grammar selector names to get closer to the latest terminology
        https://bugs.webkit.org/show_bug.cgi?id=136277

        Reviewed by Andreas Kling.

        CSS Selector Level 4 gives useful definitions for various parts of a selector
        (see http://dev.w3.org/csswg/selectors4/#structure). This patch updates our names to be closer
        to that spec.

        Stricto sensu, our definition of "simple selector list" is wrong. I did not attempt to fix this
        because updates of CSS Selector Level 4 and WebVTT will eventually make that whole concept useless.

        * css/CSSGrammar.y.in:

2014-08-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Unskip compositing test
        https://bugs.webkit.org/show_bug.cgi?id=136151

        Reviewed by Csaba Osztrogonác.

        * rendering/RenderLayerBacking.cpp: Set true to setContentsOpaque() to support compositing test.
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):

2014-08-26  Vivek Galatage  <vivek.vg@samsung.com>

        Canvas direction should reflect change in dir attribute and also across save/restore operations
        https://bugs.webkit.org/show_bug.cgi?id=136098

        Reviewed by Darin Adler.

        Changed State.m_direction type from TextDirection to Direction enum to accomodate 'inherit'
        as a separate value. Modified the getter to compute the 'live' value for the direction attribute.
        Removed explicit passing of direction to CanvasRenderingContext2D::State constructor.

        Updated existing canvas-direction.html with additional cases to reflect this change.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
        (WebCore::CanvasRenderingContext2D::reset):
        (WebCore::CanvasRenderingContext2D::State::State):
        (WebCore::CanvasRenderingContext2D::toTextDirection):
        (WebCore::CanvasRenderingContext2D::direction):
        (WebCore::CanvasRenderingContext2D::setDirection):
        (WebCore::CanvasRenderingContext2D::drawTextInternal):
        (WebCore::inheritedDirection): Deleted.
        * html/canvas/CanvasRenderingContext2D.h:

2014-08-26  Benjamin Poulain  <bpoulain@apple.com>

        Minor style tweak on StyleResolveTree
        https://bugs.webkit.org/show_bug.cgi?id=136233

        Reviewed by Sam Weinig.

        * style/StyleResolveTree.cpp:
        (WebCore::Style::resolveTree):
        Clang likely optimized it away, but I find that explicit style cleaner.

2014-08-26  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: put feature flags for Inspector domains in the protocol specification
        https://bugs.webkit.org/show_bug.cgi?id=136027

        Reviewed by Timothy Hatcher.

        Add 'featureGuard' settings to wrap domains with ENABLE macros.

        No new tests. No behavior was changed.

        * inspector/protocol/Database.json:
        * inspector/protocol/IndexedDB.json:
        * inspector/protocol/Replay.json:

2014-08-26  Andy Estes  <aestes@apple.com>

        [Cocoa] Some projects are incorrectly installed to $BUILT_PRODUCTS_DIR
        https://bugs.webkit.org/show_bug.cgi?id=136267

        Reviewed by Dan Bernstein.

        INSTALL_PATH was set to $BUILT_PRODUCTS_DIR for engineering configurations in r20225 as part of a build fix.
        Not only is this no longer necessary to build, but it causes built products to be incorrectly installed in
        engineering configurations.

        Remove the setting of INSTALL_PATH from the pbxproj file so that the value specified in the xcconfig files is
        used instead.

        * WebCore.xcodeproj/project.pbxproj:

2014-08-26  Brent Fulgham  <bfulgham@apple.com>

        [Win] WebKit IDL incorrectly passes HWND as OLE_HANDLE
        https://bugs.webkit.org/show_bug.cgi?id=136258
        <rdar://problem/18134138>

        Reviewed by Tim Horton.

        Avoid 32/64-bit truncation by preventing 64-bit HWND (and other)
        values from passing through the 32-bit OLE_HANDLE data type.

        * platform/win/WindowMessageBroadcaster.cpp:
        (WebCore::WindowMessageBroadcaster::addListener):
        (WebCore::WindowMessageBroadcaster::removeListener):
        (WebCore::WindowMessageBroadcaster::destroy):
        (WebCore::WindowMessageBroadcaster::unsubclassWindow):
        (WebCore::WindowMessageBroadcaster::SubclassedWndProc):

2014-08-25  Maciej Stachowiak  <mjs@apple.com>

        Replace use of WKCopyCFLocalizationPreferredName with NSLocale public API
        https://bugs.webkit.org/show_bug.cgi?id=136082

        Reviewed by Alexey Proskuryakov.

        * platform/mac/Language.mm:
        (WebCore::httpStyleLanguageCode): Replace use of WKCopyCFLocalizationPreferredName
        with new WebCoreNSStringExtras helper.
        * platform/mac/WebCoreNSStringExtras.mm: Replacements for the aspects of
        WKCopyCFLocalizationPreferredName.
        (preferredBundleLocalizationName): New helper - most preferred localization available
        in the main bundle, canonicalized the way we like it.
        (canonicalLocalizationName): Convert a lcalization name to a string with language and
        country code, using default if necessary (e.g. "en" maps to "en_US").
        * WebCore.order: Remove mention of WKCopyCFLocalizationPreferredName.
        * WebCore.exp.in: ditto; also export preferredBundleLocalizationName for WebKit(2).
        * platform/ios/WebCoreSystemInterfaceIOS.mm: ditto
        * platform/mac/WebCoreSystemInterface.h: ditto
        * platform/mac/WebCoreSystemInterface.mm: ditto
        * platform/spi/cf: Added.
        * platform/spi/cf/CFLocaleSPI.h: Added. Declare
        CFLocaleGetLanguageRegionEncodingForLocaleIdentifier.

2014-08-26  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Positioned polygon reftests failing
        https://bugs.webkit.org/show_bug.cgi?id=135925

        Reviewed by David Hyatt.

        We didn't respect the shape-margin before a positioned polygon, since we checked
        the shape-margin for only 1 vertex for a polygon edge. This patch fixes the behavior,
        removes the tests from the skipped list and updates 1 test, which was incorrect.

        Updated existing test and removed tests from skipped list.

        * rendering/shapes/PolygonShape.cpp:
        (WebCore::clippedCircleXRange):
        (WebCore::PolygonShape::getExcludedInterval):

2014-08-26  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Remove float to LayoutUnit ceil/round function wrappers.
        https://bugs.webkit.org/show_bug.cgi?id=136253

        Reviewed by Simon Fraser.

        These functions wrap LayoutUnit::fromFloatCeil/fromFloatRound() functions to ceil/round float to LayoutUnit.
        Their usage is limited and can easily be confused with the snapping functions (snap to css/device pixels).

        No change in functionality.

        * platform/LayoutUnit.h:
        (WebCore::roundedLayoutUnit): Deleted. : Callers use the more explicit LayoutUnit::fromFloatRound() function.
        (WebCore::ceiledLayoutUnit): Deleted. : Callers use the more explicit LayoutUnit::fromFloatCeil() function.
        * rendering/RenderBlock.cpp:
        (WebCore::updatePreferredWidth):
        (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
        (WebCore::adjustFloatForSubPixelLayout): Deleted.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::positionLineBox):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::offsetForInFlowPositionedInline):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):

2014-08-26  Simon Fraser  <simon.fraser@apple.com>

        Ensure that layout is up-to-date before hit testing
        https://bugs.webkit.org/show_bug.cgi?id=136242
        rdar://problem/17435564

        Reviewed by Tim Horton.
        
        Various code paths can call into RenderView::hitTest() but fail to
        ensure that layout is up-to-date. This is a conservative change that
        fixes the issue for callers of EventHandler::hitTestResultAtPoint(),
        including WebPage::acceptsFirstMouse() and WebFrame::hitTest().
        
        This change is not general enough that we can ASSERT(!needsLayout())
        in RenderView::hitTest() yet.
        
        * page/EventHandler.cpp:
        (WebCore::EventHandler::hitTestResultAtPoint):

2014-08-26  Beth Dakin  <bdakin@apple.com>

        Rubber-banding in overflow:scroll regions does not work correctly with 
        direction:rtl
        https://bugs.webkit.org/show_bug.cgi?id=136176

        Reviewed by Tim Horton.

        Small cleanup.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::visibleContentRectInternal):

2014-08-26  Tim Horton  <timothy_horton@apple.com>

        Fix the build after r172963

        * page/DOMTimer.h:

2014-08-25  Gavin Barraclough  <barraclough@apple.com>

        DOMTimer may be deleted during timer fire
        https://bugs.webkit.org/show_bug.cgi?id=136198

        Reviewed by Geoff Garen.

        Consequentially ScheduledActions may also be deleted mid execution.
        This is fairly surprising & fragile, let's make this simpler.

        Currently DOMTimer instances are effectively owned by the ScriptExecutionContext.
        There is a 1-1 mapping between timers and contexts, all timers are help in a map
        on the context and if the context goes away all timers are deleted. Rather than
        being implemented in a straightforward fashion (a smart pointer type for the map
        value) this is currently implemented by having the timer objects listen for the
        context going away using contextDestroyed, and deleting themselves if so.

        Switch to using a smart pointer for values of m_timeouts in ScriptExecutionContext.
        By using a RefCounted object we can also extend the lifetime of the DOMTimer instance
        from within the DOMTimer::fired method, so the object is not destroyed while the
        member function is still on the stack.

        * WebCore.xcodeproj/project.pbxproj:
            - project -> private since DOMTimer could no longer be a forward declare in ScriptExecutionContext.h.
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::adjustMinimumTimerInterval):
        (WebCore::ScriptExecutionContext::didChangeTimerAlignmentInterval):
            - auto* -> auto& since value type in map is no longer a raw pointer.
        * dom/ScriptExecutionContext.h:
        (WebCore::ScriptExecutionContext::addTimeout):
            - DOMTimer* -> PassRefPtr<DOMTimer>
        * page/DOMTimer.cpp:
        (WebCore::DOMTimer::DOMTimer):
            - adopt the initial ref, and pass to addTimeout.
        (WebCore::DOMTimer::install):
            - updated comment.
        (WebCore::DOMTimer::removeById):
            - instead of explicitly deleting the timer and assuming this will implicitly remove it from the context map,
              we explicitly remove it from the context map and assume this will implicitly deleting the timer!
        (WebCore::DOMTimer::fired):
            - Add a RefPtr to keep the DOMTimer object alive until the fired method completes; to cancel a one-shot timer
              just remove it from the context's map, rather than explicitly deleting it.
        (WebCore::DOMTimer::~DOMTimer): Deleted.
        (WebCore::DOMTimer::contextDestroyed): Deleted.
            - no need! object lifetime management now handled by smart pointers.
        * page/DOMTimer.h:
            - added parent class RefCounted<DOMTimer>.

2014-08-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Selection background is rendered white when unfocused with recent GTK+
        https://bugs.webkit.org/show_bug.cgi?id=136251

        Reviewed by Martin Robinson.

        This is due to a change in the GTK+ theme, but because we are not
        using the right flags to get the selections colors. We should use
        GTK_STATE_FLAG_SELECTED | GTK_STATE_FLAG_FOCUSED when focused and
        GTK_STATE_FLAG_SELECTED when unfocused, instead of
        GTK_STATE_FLAG_ACTIVE when unfocused.

        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::RenderThemeGtk::platformActiveSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformInactiveSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformActiveSelectionForegroundColor):
        (WebCore::RenderThemeGtk::platformInactiveSelectionForegroundColor):
        (WebCore::RenderThemeGtk::platformActiveListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionBackgroundColor):
        (WebCore::RenderThemeGtk::platformActiveListBoxSelectionForegroundColor):
        (WebCore::RenderThemeGtk::platformInactiveListBoxSelectionForegroundColor):

2014-08-26  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Utilize espeak as a synthesizer back-end for WebSpeech
        https://bugs.webkit.org/show_bug.cgi?id=136127

        Reviewed by Gyuyoung Kim.

        Utilize espeak API to have support for speak, cancel and initializeVoiceList.

        * PlatformEfl.cmake:
        * platform/efl/PlatformSpeechSynthesisProviderEfl.cpp:
        (WebCore::PlatformSpeechSynthesisProviderEfl::PlatformSpeechSynthesisProviderEfl):
        (WebCore::PlatformSpeechSynthesisProviderEfl::convertRateToEspeakValue):
        (WebCore::PlatformSpeechSynthesisProviderEfl::convertVolumeToEspeakValue):
        (WebCore::PlatformSpeechSynthesisProviderEfl::convertPitchToEspeakValue):
        (WebCore::PlatformSpeechSynthesisProviderEfl::voiceName):
        (WebCore::PlatformSpeechSynthesisProviderEfl::engineInit):
        (WebCore::PlatformSpeechSynthesisProviderEfl::currentVoice):
        (WebCore::PlatformSpeechSynthesisProviderEfl::initializeVoiceList):
        (WebCore::PlatformSpeechSynthesisProviderEfl::speak):
        (WebCore::PlatformSpeechSynthesisProviderEfl::cancel):
        (WebCore::PlatformSpeechSynthesisProviderEfl::fireSpeechEvent):
        * platform/efl/PlatformSpeechSynthesisProviderEfl.h:
        * platform/efl/PlatformSpeechSynthesizerEfl.cpp:
        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
        (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
        (WebCore::PlatformSpeechSynthesizer::pause):
        (WebCore::PlatformSpeechSynthesizer::resume):
        (WebCore::PlatformSpeechSynthesizer::speak):
        (WebCore::PlatformSpeechSynthesizer::cancel):

2014-08-26  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Build break using clang
        https://bugs.webkit.org/show_bug.cgi?id=136245

        Reviewed by Gyuyoung Kim.

        * css/ViewportStyleResolver.cpp: Includes NodeRenderStyle.h

2014-08-26  Mark Rowe  <mrowe@apple.com>

        Build fix after r172951.

        * fileapi/Blob.h: Give the argument the name that the predicates expect.

2014-08-25  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Generate toFile() instead of manual functions.
        https://bugs.webkit.org/show_bug.cgi?id=136207

        Reviewed by Darin Adler.

        No new tests, no behavior changes.

        * fileapi/Blob.h: Define BLOB_TYPE_CASTS.
        * fileapi/File.h: Use BLOB_TYPE_CASTS to generate toFile().
        (WebCore::toFile): Deleted.

2014-08-25  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: remove roundedLayoutPoint/roundedLayoutSize functions.
        https://bugs.webkit.org/show_bug.cgi?id=136236

        Reviewed by Simon Fraser.

        These functions simply call LayoutPoint/LayoutSize c'tors. They don't round the input value at all.

        Non change in functionality.

        * dom/MouseRelatedEvent.cpp:
        (WebCore::MouseRelatedEvent::computePageLocation):
        (WebCore::MouseRelatedEvent::computeRelativePosition):
        * dom/Touch.cpp:
        (WebCore::Touch::Touch):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::SliderThumbElement::setPositionFromPoint):
        * page/DragController.cpp:
        (WebCore::elementUnderMouse):
        * page/EventHandler.cpp:
        (WebCore::selectionExtentRespectingEditingBoundary):
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
        * platform/graphics/LayoutPoint.h:
        (WebCore::roundedLayoutPoint): Deleted.
        * platform/graphics/LayoutSize.h:
        (WebCore::roundedLayoutSize): Deleted.
        * rendering/EllipsisBox.cpp:
        (WebCore::EllipsisBox::nodeAtPoint):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::selectionGapRectsForRepaint):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::mapLocalToContainer):
        (WebCore::RenderBox::positionLineBox):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::isInUnavailablePluginIndicator):
        * rendering/RenderEmbeddedObject.h:
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::localCaretRect):
        (WebCore::RenderInline::mapLocalToContainer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::absoluteToContents):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::mapLocalToContainer):
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::ShapeOutsideInfo::createShapeForImage):
        * rendering/svg/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::nodeAtFloatPoint):
        * rendering/svg/RenderSVGForeignObject.cpp:
        (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
        * rendering/svg/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::nodeAtFloatPoint):
        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::nodeAtFloatPoint):
        * testing/Internals.cpp:
        (WebCore::Internals::nodesFromRect):

2014-08-25  Zalan Bujtas  <zalan@apple.com>

        Rename RenderObject::showTree() and showTreeForThis() to showNodeTree*().
        https://bugs.webkit.org/show_bug.cgi?id=136238

        Reviewed by Simon Fraser.

        showNodeTree()/showNodeTreeForThis() reflects the functionality better.

        No change in functionality.

        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::showNodeTreeForThis):
        (showNodeTree):
        (WebCore::InlineBox::showTreeForThis): Deleted.
        (showTree): Deleted.
        * rendering/InlineBox.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::showNodeTreeForThis):
        (showNodeTree):
        (WebCore::RenderObject::showTreeForThis): Deleted.
        (showTree): Deleted.
        * rendering/RenderObject.h:

2014-08-25  Antti Koivisto  <antti@apple.com>

        Don't pass priority as parameter to ResourceLoadScheduler
        https://bugs.webkit.org/show_bug.cgi?id=136232

        Reviewed by Sam Weinig.

        It is part of the ResourceRequest which is also passed in.

        * WebCore.exp.in:
        * loader/ResourceLoadScheduler.cpp:
        (WebCore::ResourceLoadScheduler::scheduleSubresourceLoad):
        (WebCore::ResourceLoadScheduler::schedulePluginStreamLoad):
        (WebCore::ResourceLoadScheduler::scheduleLoad):
        * loader/ResourceLoadScheduler.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::load):
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
        * platform/network/cocoa/ResourceRequestCocoa.mm:
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):

            Restore the original request priority when a delegate modifies the request.

2014-08-25  Beth Dakin  <bdakin@apple.com>

        Rubber-banding in overflow:scroll regions does not work correctly with direction:rtl
        https://bugs.webkit.org/show_bug.cgi?id=136176

        Reviewed by Sam Weinig.

        Use scrollPosition() instead of scrollXOffset() and scrollYOffset() which both add 
        in the scrollOrigin(). Other implementations of visibleContentRectInternal() do 
        not add in the scrollOrigin(), so RenderLayer's shouldn't either in order to be
        consistent. This makes rubber-banding work for RTL because 
        ScrollAnimatorMac::pinnedInDirection() and 
        ScrollAnimatorMac::absoluteScrollPosition() both return the expect values now.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::visibleContentRectInternal):

2014-08-25  Benjamin Poulain  <benjamin@webkit.org>

        Reduce style marking when using the pseudo class :placeholder-shown
        https://bugs.webkit.org/show_bug.cgi?id=136203

        Reviewed by Darin Adler.

        When the :placeholder-shown filter is hit, we were always marking the RenderStyle as unique.
        As a result, if :placeholder-shown was used without a more restrictive filter (e.g. "*:placeholder-shown"
        or simply ":placeholder-shown"), style sharing was disabled for the whole tree.

        This patch rescope the tree marking to any element that can be affected by a placeholder:
        any the subclass of HTMLTextFormControlElement. For other elements, any change in internal state
        would be irrelevant for "isPlaceholderVisible".

        Styling of :placeholder-shown is covered by the existing tests. Style sharing of :placeholder-shown
        is covered by LayoutTests/fast/css/placeholder-shown-basics.html.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isPlaceholderShown): Deleted.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::makeContextStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::makeElementStyleUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::isPlaceholderShown):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPlaceholderShown):
        (WebCore::SelectorCompiler::makeUniqueIfNecessaryAndTestIsPlaceholderShown): Deleted.

2014-08-25  Antti Koivisto  <antti@apple.com>

        Remove ResourceLoader::didChangePriority
        https://bugs.webkit.org/show_bug.cgi?id=136230

        Reviewed by Andreas Kling.

        It doesn't do anything on any platform.

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::didChangePriority): Deleted.
        * loader/ResourceLoader.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::setLoadPriority):
        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::didChangePriority): Deleted.
        * platform/network/ResourceHandle.h:

2014-08-24  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: rename Inspector::TypeBuilder to Inspector::Protocol
        https://bugs.webkit.org/show_bug.cgi?id=136031

        Reviewed by Timothy Hatcher.

        Rename TypeBuilder namespace to Protocol. Disambiguate where
        necessary. Also rename InspectorTypeBuilder to ProtocolTypes.

        * CMakeLists.txt:
        * DerivedSources.make:
        * ForwardingHeaders/inspector/InspectorJSTypeBuilders.h: Removed.
        * ForwardingHeaders/inspector/InspectorTypeBuilder.h: Removed.
        * WebCore.order:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/CommandLineAPIHost.cpp:
        (WebCore::CommandLineAPIHost::inspectImpl):
        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::getFramesWithManifests):
        (WebCore::InspectorApplicationCacheAgent::getApplicationCacheForFrame):
        (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCache):
        (WebCore::InspectorApplicationCacheAgent::buildArrayForApplicationCacheResources):
        (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
        * inspector/InspectorApplicationCacheAgent.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
        (WebCore::InspectorCSSAgent::getInlineStylesForNode):
        (WebCore::InspectorCSSAgent::getComputedStyleForNode):
        (WebCore::InspectorCSSAgent::getAllStyleSheets):
        (WebCore::InspectorCSSAgent::getStyleSheet):
        (WebCore::InspectorCSSAgent::setStyleText):
        (WebCore::InspectorCSSAgent::setPropertyText):
        (WebCore::InspectorCSSAgent::toggleProperty):
        (WebCore::InspectorCSSAgent::setRuleSelector):
        (WebCore::InspectorCSSAgent::addRule):
        (WebCore::InspectorCSSAgent::getSupportedCSSProperties):
        (WebCore::InspectorCSSAgent::getNamedFlowCollection):
        (WebCore::InspectorCSSAgent::asInspectorStyleSheet):
        (WebCore::InspectorCSSAgent::collectStyleSheets):
        (WebCore::InspectorCSSAgent::viaInspectorStyleSheet):
        (WebCore::InspectorCSSAgent::detectOrigin):
        (WebCore::InspectorCSSAgent::buildObjectForRule):
        (WebCore::InspectorCSSAgent::buildArrayForRuleList):
        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
        (WebCore::InspectorCSSAgent::buildObjectForAttributesStyle):
        (WebCore::InspectorCSSAgent::buildArrayForRegions):
        (WebCore::InspectorCSSAgent::buildObjectForNamedFlow):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::didCreateFrontendAndBackend):
        (WebCore::InspectorDOMAgent::getDocument):
        (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
        (WebCore::InspectorDOMAgent::querySelectorAll):
        (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
        (WebCore::InspectorDOMAgent::getEventListenersForNode):
        (WebCore::InspectorDOMAgent::getAccessibilityPropertiesForNode):
        (WebCore::InspectorDOMAgent::getSearchResults):
        (WebCore::InspectorDOMAgent::resolveNode):
        (WebCore::InspectorDOMAgent::getAttributes):
        (WebCore::InspectorDOMAgent::buildObjectForNode):
        (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
        (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
        (WebCore::InspectorDOMAgent::buildObjectForEventListener):
        (WebCore::InspectorDOMAgent::processAccessibilityChildren):
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        (WebCore::InspectorDOMAgent::didCommitLoad):
        (WebCore::InspectorDOMAgent::didInsertDOMNode):
        (WebCore::InspectorDOMAgent::styleAttributeInvalidated):
        * inspector/InspectorDOMAgent.h:
        * inspector/InspectorDOMDebuggerAgent.cpp:
        (WebCore::InspectorDOMDebuggerAgent::descriptionForDOMEvent):
        * inspector/InspectorDOMStorageAgent.cpp:
        (WebCore::InspectorDOMStorageAgent::getDOMStorageItems):
        (WebCore::InspectorDOMStorageAgent::storageId):
        (WebCore::InspectorDOMStorageAgent::didDispatchDOMStorageEvent):
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.cpp:
        (WebCore::InspectorDatabaseAgent::getDatabaseTableNames):
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorDatabaseResource.cpp:
        (WebCore::InspectorDatabaseResource::bind):
        * inspector/InspectorIndexedDBAgent.cpp:
        * inspector/InspectorLayerTreeAgent.cpp:
        (WebCore::InspectorLayerTreeAgent::layersForNode):
        (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderObjectHierarchy):
        (WebCore::InspectorLayerTreeAgent::gatherLayersUsingRenderLayerHierarchy):
        (WebCore::InspectorLayerTreeAgent::buildObjectForLayer):
        (WebCore::InspectorLayerTreeAgent::buildObjectForIntRect):
        (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
        * inspector/InspectorLayerTreeAgent.h:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::resourceTypeJson):
        (WebCore::InspectorPageAgent::cachedResourceTypeJson):
        (WebCore::buildObjectForCookie):
        (WebCore::buildArrayForCookies):
        (WebCore::InspectorPageAgent::getCookies):
        (WebCore::InspectorPageAgent::getResourceTree):
        (WebCore::InspectorPageAgent::searchInResource):
        (WebCore::buildObjectForSearchResult):
        (WebCore::InspectorPageAgent::searchInResources):
        (WebCore::InspectorPageAgent::buildObjectForFrame):
        (WebCore::InspectorPageAgent::buildObjectForFrameTree):
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorReplayAgent.cpp:
        (WebCore::buildInspectorObjectForPosition):
        (WebCore::buildInspectorObjectForInput):
        (WebCore::buildInspectorObjectForSession):
        (WebCore::buildInspectorObjectForSessionState):
        (WebCore::buildInspectorObjectForSegmentState):
        (WebCore::SerializeInputToJSONFunctor::SerializeInputToJSONFunctor):
        (WebCore::SerializeInputToJSONFunctor::operator()):
        (WebCore::buildInspectorObjectForSegment):
        (WebCore::InspectorReplayAgent::switchSession):
        (WebCore::InspectorReplayAgent::insertSessionSegment):
        (WebCore::InspectorReplayAgent::removeSessionSegment):
        (WebCore::InspectorReplayAgent::currentReplayState):
        (WebCore::InspectorReplayAgent::getAvailableSessions):
        (WebCore::InspectorReplayAgent::getSessionData):
        (WebCore::InspectorReplayAgent::getSegmentData):
        * inspector/InspectorReplayAgent.h:
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::buildObjectForTiming):
        (WebCore::buildObjectForResourceRequest):
        (WebCore::buildObjectForResourceResponse):
        (WebCore::buildObjectForCachedResource):
        (WebCore::InspectorResourceAgent::willSendRequest):
        (WebCore::InspectorResourceAgent::didReceiveResponse):
        (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
        (WebCore::InspectorResourceAgent::buildInitiatorObject):
        (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
        (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
        (WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
        (WebCore::InspectorResourceAgent::didSendWebSocketFrame):
        * inspector/InspectorResourceAgent.h:
        * inspector/InspectorStyleSheet.cpp:
        (WebCore::buildSourceRangeObject):
        (WebCore::buildMediaObject):
        (WebCore::fillMediaListChain):
        (WebCore::InspectorStyle::buildObjectForStyle):
        (WebCore::InspectorStyle::buildArrayForComputedStyle):
        (WebCore::InspectorStyle::styleWithProperties):
        (WebCore::InspectorStyleSheet::create):
        (WebCore::InspectorStyleSheet::InspectorStyleSheet):
        (WebCore::InspectorStyleSheet::buildObjectForStyleSheet):
        (WebCore::InspectorStyleSheet::buildObjectForStyleSheetInfo):
        (WebCore::selectorsFromSource):
        (WebCore::InspectorStyleSheet::buildObjectForSelectorList):
        (WebCore::InspectorStyleSheet::buildObjectForRule):
        (WebCore::InspectorStyleSheet::buildObjectForStyle):
        (WebCore::InspectorStyleSheet::resourceStyleSheetText):
        (WebCore::InspectorStyleSheet::buildArrayForRuleList):
        (WebCore::InspectorStyleSheetForInlineStyle::create):
        (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
        * inspector/InspectorStyleSheet.h:
        (WebCore::InspectorStyleSheet::canBind):
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::toProtocol):
        (WebCore::InspectorTimelineAgent::addRecordToTimeline):
        (WebCore::InspectorTimelineAgent::sendEvent):
        * inspector/PageRuntimeAgent.cpp:

2014-08-25  Brendan Long  <b.long@cablelabs.com>

        [GStreamer] ASSERT failure in WebKitWebSource in StreamingClient
        https://bugs.webkit.org/show_bug.cgi?id=136132

        adoptGRef() has an ASSERT failure if it's used on a floating pointer. For some reason,
        WebKitWebSrc* src in StreamingClient's constructor is floating. Since we
        don't construct this ourselves, I assume this is happening in Playbin.

        If we remove the ref and adopt, GRefPtr's constructor calls gst_object_ref_sink,
        which removes the floating reference and doesn't increment the reference count.
        This should work, but actually causes the page to either lock up or crash (different
        results for different testers).

        In this case, it seems like the adoptGRef / gst_object_ref was the correct thing to do,
        but adoptGRef won't actually let us do. Removing the ASSERT is a bad idea, because
        usually we don't want to adopt floating pointers.

        This is all a long way of saying that making m_src a raw pointer and manually
        calling gst_object_ref(), and calling gst_object_unref in the destructor is the
        best solution in this case, since it fixes the problem while leaving the ASSERT
        to protect us in the much more common case where adopting a floating reference is bad.

        Reviewed by Philippe Normand.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (StreamingClient::StreamingClient): Make m_src a raw pointer instead of a GRefPtr.
        (StreamingClient::~StreamingClient): Unref m_src.
        (StreamingClient::createReadBuffer): Replace m_src.get() with m_src, since it's a raw pointer now.
        (StreamingClient::handleResponseReceived): Same.
        (StreamingClient::handleDataReceived): Same.
        (StreamingClient::handleNotifyFinished): Same.
        (CachedResourceStreamingClient::notifyFinished): Same.
        (ResourceHandleStreamingClient::didFail): Same.
        (ResourceHandleStreamingClient::wasBlocked): Same.
        (ResourceHandleStreamingClient::cannotShowURL): Same.

2014-08-25  Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Remove PopupMenuGtk, SearchPopupMenuGtk
        https://bugs.webkit.org/show_bug.cgi?id=136211

        Reviewed by Carlos Garcia Campos.

        Remove the two classes from the codebase. They're not used anymore
        after the WebKit1 layer of the GTK port was removed some time ago.

        * PlatformGTK.cmake:
        * platform/gtk/PopupMenuGtk.cpp: Removed.
        * platform/gtk/PopupMenuGtk.h: Removed.
        * platform/gtk/SearchPopupMenuGtk.cpp: Removed.
        * platform/gtk/SearchPopupMenuGtk.h: Removed.

2014-08-25  Shivakumar JM  <shiva.jm@samsung.com>

        Web Core: Fix unused parameter build warning.
        https://bugs.webkit.org/show_bug.cgi?id=136208

        Reviewed by Darin Adler.

        Fix unused build warning by removing parameter, which is not used.

        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
        (WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):

2014-08-22  Sergio Villar Senin  <svillar@igalia.com>

        ASSERTION FAILED: !trackSizes.isEmpty() in WebCore::createGridTrackList
        https://bugs.webkit.org/show_bug.cgi?id=136149

        Reviewed by Darin Adler.

        The second argument of the repeat() function is a <track-list>
        that must have at least one <track-size>. Should it not be found,
        the declaration must be invalidated.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTrackRepeatFunction):

2014-08-24  Zan Dobersek  <zdobersek@igalia.com>

        Move WebCore storage code to C++11 lambdas, std::function
        https://bugs.webkit.org/show_bug.cgi?id=126435

        Reviewed by Darin Adler.

        Use C++11 lambdas instead of WTF::bind and std::function<void ()>
        instead of WTF::Function<void ()> in StorageAreaSync, StorageSyncManager,
        StorageThread and StorageTracker classes.

        * storage/StorageAreaSync.cpp:
        (WebCore::StorageAreaSync::StorageAreaSync):
        (WebCore::StorageAreaSync::scheduleFinalSync):
        (WebCore::StorageAreaSync::syncTimerFired):
        * storage/StorageSyncManager.cpp:
        (WebCore::StorageSyncManager::dispatch):
        * storage/StorageSyncManager.h:
        * storage/StorageThread.cpp:
        (WebCore::StorageThread::dispatch):
        (WebCore::StorageThread::terminate):
        (WebCore::StorageThread::releaseFastMallocFreeMemoryInAllThreads):
        * storage/StorageThread.h:
        * storage/StorageTracker.cpp:
        (WebCore::StorageTracker::importOriginIdentifiers):
        (WebCore::StorageTracker::syncImportOriginIdentifiers):
        (WebCore::StorageTracker::syncFileSystemAndTrackerDatabase):
        (WebCore::StorageTracker::setOriginDetails):
        (WebCore::StorageTracker::deleteAllOrigins):
        (WebCore::StorageTracker::deleteOrigin):

2014-08-24  Alexey Proskuryakov  <ap@apple.com>

        ASSERT(extractable()) when storing a non-extractable key in IndexedDB
        https://bugs.webkit.org/show_bug.cgi?id=136202
        rdar://problem/17993967

        Reviewed by Darin Adler.

        Test: crypto/subtle/rsa-indexeddb-non-exportable.html

        Removed the obsolete assertion.

        * crypto/keys/CryptoKeyAES.cpp: (WebCore::CryptoKeyAES::exportData):
        * crypto/keys/CryptoKeyHMAC.cpp: (WebCore::CryptoKeyHMAC::exportData):
        * crypto/mac/CryptoKeyRSAMac.cpp: (WebCore::CryptoKeyRSA::exportData):

2014-08-24  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: Rename DOM.RGBA and remove workarounds in the bindings generator
        https://bugs.webkit.org/show_bug.cgi?id=136025

        Reviewed by Joseph Pecoraro.

        Rename DOM.RGBA to DOM.RGBAColor to avoid name clashes with headers on Windows CE.
        This workaround used to be special-cased in the bindings generator.

        Type names are not used in protocol messages, so this does not introduce legacy issues.

        * inspector/protocol/DOM.json:

2014-08-24  Michael Catanzaro  <mcatanzaro@igalia.com>

        [GTK] Toggle buttons visually broken with GTK+ 3.13.7
        https://bugs.webkit.org/show_bug.cgi?id=136130

        Reviewed by Martin Robinson.

        No new tests. Hopefully covered by existing tests, and our tests only
        run with GTK+ 3.6 anyway.

        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::paintToggle): use GTK_STATE_FLAG_CHECKED when compiling for
        GTK+ 3.13.7 and above to ensure toggle buttons display as toggled.

2014-08-23  Brady Eidson  <beidson@apple.com>

        Random Gamepad cleanup
        https://bugs.webkit.org/show_bug.cgi?id=136193

        Reviewed by Sam Weinig.

        No new tests (Not tested yet, and no change in behavior anyways)

        - Use DOMWindow WeakPtrs when iterating
        - More references instead of pointers

        * Modules/gamepad/GamepadEvent.cpp:
        (WebCore::GamepadEvent::GamepadEvent):
        * Modules/gamepad/GamepadEvent.h:
        (WebCore::GamepadEvent::create):

        * Modules/gamepad/GamepadManager.cpp:
        (WebCore::GamepadManager::platformGamepadDisconnected):
        (WebCore::GamepadManager::makeGamepadVisible):
        * Modules/gamepad/NavigatorGamepad.cpp:
        (WebCore::NavigatorGamepad::gamepadFromPlatformGamepad):
        (WebCore::NavigatorGamepad::gamepadAtIndex): Deleted.
        * Modules/gamepad/NavigatorGamepad.h:

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::DOMWindow):
        * page/DOMWindow.h:

2014-08-23  Byungseon Shin  <sun.shin@lge.com>

        Unify GraphicsLayer::setContentsToMedia and setContentsToCanvas
        https://bugs.webkit.org/show_bug.cgi?id=109658

        Reviewed by Martin Robinson.
 
        Based on patch originally written by Tim Horton.
        Merge setContentsToMedia and setContentsToCanvas into setContentsToPlatformLayer.
 
        * WebCore.exp.in:
        Adjust exports.
 
        * platform/graphics/GraphicsLayer.h:
        Move ContentsLayerPurpose enum up out of GraphicsLayer platform implmentations
        and into GraphicsLayer, so we can use it as a parameter.
        Add ContentsLayerForPlugin.
 
        (WebCore::GraphicsLayer::setContentsToPlatformLayer):
        Remove setContentsToMedia and setContentsToCanvas, and replace them
        with setContentsToPlatformLayer, which previously existed but was unused
        and simply called setContentsToMedia.
        setContentsToPlatformLayer takes a ContentsLayerPurpose, primarily
        so that GraphicsLayerCA can know whether it needs to setNeedsDisplay
        the layer when parenting it (canvas) or not (everything else).
 
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::setContentsToPlatformLayer):
        Rename function setContentsToMedia -> setContentsToPlatformLayer.
        Rename argument mediaLayer -> platformLayer.
        Store the passed-in ContentsLayerPurpose.
        Remove setContentsToCanvas.
 
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::updateContentsPlatformLayer):
        Remove updateContentsMediaLayer and updateContentsCanvas layer,
        add updateContentsPlatformLayer.
 
        * platform/graphics/ca/GraphicsLayerCA.h:
        Do the same to the LayerChange enum.
 
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::setContentsToImage):
        (WebCore::GraphicsLayerTextureMapper::setContentsToPlatformLayer):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
        (WebCore::CoordinatedGraphicsLayer::CoordinatedGraphicsLayer):
        (WebCore::CoordinatedGraphicsLayer::setContentsNeedsDisplay):
        (WebCore::CoordinatedGraphicsLayer::setContentsToPlatformLayer):
        (WebCore::CoordinatedGraphicsLayer::syncPlatformLayer):
        (WebCore::CoordinatedGraphicsLayer::destroyPlatformLayerIfNeeded):
        (WebCore::CoordinatedGraphicsLayer::createPlatformLayerIfNeeded):
        (WebCore::CoordinatedGraphicsLayer::flushCompositingStateForThisLayerOnly):
        Fold these together in the same way as elsewhere.
 
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
        Do the same to the LayerChange enum.
 
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::createPlatformLayerIfNeeded):
        (WebCore::CoordinatedGraphicsScene::syncPlatformLayerIfNeeded):
        (WebCore::CoordinatedGraphicsScene::destroyPlatformLayerIfNeeded):
        (WebCore::CoordinatedGraphicsScene::setLayerState):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
        (WebCore::CoordinatedGraphicsLayerState::CoordinatedGraphicsLayerState):
        Rename canvasLayer -> platformLayer.
 
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateConfiguration):
        Use the new setContentsToPlatformLayer, passing in the relevant ContentsLayerPurpose.

2014-08-23  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Do not copy large module source strings
        https://bugs.webkit.org/show_bug.cgi?id=136191

        Reviewed by Benjamin Poulain.

        * inspector/CommandLineAPIModule.cpp:
        (WebCore::CommandLineAPIModule::source):

2014-08-23  Zan Dobersek  <zdobersek@igalia.com>

        Remove uses of CrossThreadTask in ThreadableWebSocketChannelClientWrapper, WorkerThreadableWebSocketChannel
        https://bugs.webkit.org/show_bug.cgi?id=133954

        Reviewed by Darin Adler.

        Replace uses of CrossThreadTask with C++11 lambdas in the ThreadableWebSocketChannelClientWrapper
        and WorkerThreadableWebSocketChannel classes.

        * 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):
        (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasksCallback): Deleted.
        (WebCore::ThreadableWebSocketChannelClientWrapper::didConnectCallback): Deleted.
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback): Deleted.
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback): Deleted.
        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback): Deleted.
        (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshakeCallback): Deleted.
        (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback): Deleted.
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageErrorCallback): Deleted.
        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
        * 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::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):
        (WebCore::workerGlobalScopeDidSend): Deleted.
        (WebCore::workerGlobalScopeDidGetBufferedAmount): Deleted.
        (WebCore::workerGlobalScopeDidConnect): Deleted.
        (WebCore::workerGlobalScopeDidReceiveMessage): Deleted.
        (WebCore::workerGlobalScopeDidReceiveBinaryData): Deleted.
        (WebCore::workerGlobalScopeDidUpdateBufferedAmount): Deleted.
        (WebCore::workerGlobalScopeDidStartClosingHandshake): Deleted.
        (WebCore::workerGlobalScopeDidClose): Deleted.
        (WebCore::workerGlobalScopeDidReceiveMessageError): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadConnect): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSend): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSendArrayBuffer): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSendBlob): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadBufferedAmount): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadClose): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadFail): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSuspend): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadResume): Deleted.
        * Modules/websockets/WorkerThreadableWebSocketChannel.h:

2014-08-23  Yusuke Suzuki  <utatane.tea@gmail.com>

        Clean up build warnings: control reaches end of non-void function
        https://bugs.webkit.org/show_bug.cgi?id=135889

        Reviewed by Alexey Proskuryakov.

        * bindings/js/JSCryptoAlgorithmDictionary.cpp:
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForEncrypt):
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForDecrypt):
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForSign):
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForVerify):
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForDigest):
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForGenerateKey):
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveKey):
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForDeriveBits):
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForImportKey):
        (WebCore::JSCryptoAlgorithmDictionary::createParametersForExportKey):
        * crypto/CryptoKey.cpp:
        (WebCore::CryptoKey::type):

2014-08-23  Zan Dobersek  <zdobersek@igalia.com>

        [TexMap] Only notify of a required flush on the first layer property change
        https://bugs.webkit.org/show_bug.cgi?id=136104

        Reviewed by Martin Robinson.

        The GraphicsLayer's client should only be notified that a flush is required
        when the first change of one of the layer's properties is initiated, instead
        of requesting the flush on every such change.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::notifyChange):

2014-08-22  Dan Bernstein  <mitz@apple.com>

        Try to fix the Mac build using the internal SDK.

        * bindings/objc/PublicDOMInterfaces.h:

2014-08-22  Renato Nagy  <nagy.renato@stud.u-szeged.hu>

        Remove LevelDB.
        https://bugs.webkit.org/show_bug.cgi?id=136170

        Reviewed by Gyuyoung Kim.

        * CMakeLists.txt:
        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::createIndex):
        * Modules/indexeddb/IDBTransactionCoordinator.cpp:
        (WebCore::IDBTransactionCoordinator::canRunTransaction):
        (WebCore::doScopesOverlap): Deleted.
        * Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.cpp: Removed.
        * Modules/indexeddb/leveldb/IDBBackingStoreCursorLevelDB.h: Removed.
        * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp: Removed.
        * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.h: Removed.
        * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.cpp: Removed.
        * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.h: Removed.
        * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp: Removed.
        * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h: Removed.
        * Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.cpp: Removed.
        * Modules/indexeddb/leveldb/IDBIndexWriterLevelDB.h: Removed.
        * Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp: Removed.
        * Modules/indexeddb/leveldb/IDBLevelDBCoding.h: Removed.
        * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.cpp: Removed.
        * Modules/indexeddb/leveldb/IDBServerConnectionLevelDB.h: Removed.
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/DatabaseStrategy.cpp:
        (WebCore::DatabaseStrategy::createIDBFactoryBackend):
        * platform/leveldb/LevelDBComparator.h: Removed.
        * platform/leveldb/LevelDBDatabase.cpp: Removed.
        * platform/leveldb/LevelDBDatabase.h: Removed.
        * platform/leveldb/LevelDBIterator.h: Removed.
        * platform/leveldb/LevelDBSlice.h: Removed.
        * platform/leveldb/LevelDBTransaction.cpp: Removed.
        * platform/leveldb/LevelDBTransaction.h: Removed.
        * platform/leveldb/LevelDBWriteBatch.cpp: Removed.
        * platform/leveldb/LevelDBWriteBatch.h: Removed.

2014-08-22  KwangHyuk Kim  <hyuki.kim@samsung.com>

        [EFL] Fix build break caused by ENABLE_GAMEPAD_DEPRECATED.
        https://bugs.webkit.org/show_bug.cgi?id=136110

        Reviewed by Gyuyoung Kim.

        WebCore_INCLUDE_DIRECTORY for gamepad was removed from WK2 Efl in order to fix build break when ENABLE_GAMEPAD_DEPRECATED is on.

        No new tests because no functional changes.

        * PlatformEfl.cmake:

2014-08-22  Benjamin Poulain  <benjamin@webkit.org>

        Style invalidation does not work for adjacent node updates
        https://bugs.webkit.org/show_bug.cgi?id=136145

        Reviewed by Antti Koivisto.

        There were a bunch of cases in which the style would be in an inconsistent
        state until the style resolver kicks in for the entire document.

        For example, let's take the selector "foo.bar + target". When the class "bar"
        changes, the element foo is invalidated. The element target is untouched.

        Now, if the style of "target" is accessed, nodeOrItsAncestorNeedsStyleRecalc()
        returns false and the old style is accessed.

        At some point, when the style of the entire document is resolved, the node
        "foo" is styled, and "target" is invalidated.


        To fix the issue, this patch adds an extra flag keeping track of subtrees that
        have any node needing style recalc: DirectChildNeedsStyleRecalcFlag.

        When invalidating the node "foo", its parent is marked with
        DirectChildNeedsStyleRecalcFlag to note that one of the child nodes has an invalid style.

        When verifying the style state in nodeOrItsAncestorNeedsStyleRecalc(), we check that flag
        in addition to the siblings dependencies to find if the node is part of a subtree that may
        be invalid due to sibling selectors.

        Similarly, in the style resolver, we use the flag to clear the style on all elements
        that could potentially be invalid.


        This patch removes the changes introduced by r172721
        (The style is not updated correctly when the pseudo class :empty is applied on anything but the rightmost element).
        That bug was just a special case of what is solved here.


        Tests: fast/selectors/attribute-direct-adjacent-style-update.html
               fast/selectors/attribute-sibling-style-update.html
               fast/selectors/class-direct-adjacent-style-update.html
               fast/selectors/class-sibling-style-update.html
               fast/selectors/first-child-direct-adjacent-style-update.html
               fast/selectors/first-child-sibling-style-update.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsEmpty):
        (WebCore::SelectorCompiler::setStyleOfSiblingsAffectedByEmpty): Deleted.
        * dom/ContainerNode.h:
        (WebCore::ContainerNode::directChildNeedsStyleRecalc):
        (WebCore::ContainerNode::setDirectChildNeedsStyleRecalc):
        Remove the special case for :empty.

        * dom/Document.cpp:
        (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
        * dom/Element.cpp:
        (WebCore::checkForEmptyStyleChange):
        (WebCore::checkForSiblingStyleChanges):
        (WebCore::Element::setStyleOfSiblingsAffectedByEmpty): Deleted.
        (WebCore::Element::rareDataStyleOfSiblingsAffectedByEmpty): Deleted.
        * dom/Element.h:
        (WebCore::Element::styleOfSiblingsAffectedByEmpty): Deleted.
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ElementRareData):
        (WebCore::ElementRareData::styleOfSiblingsAffectedByEmpty): Deleted.
        (WebCore::ElementRareData::setStyleOfSiblingsAffectedByEmpty): Deleted.
        * dom/Node.cpp:
        (WebCore::markAncestorsWithChildNeedsStyleRecalc):
        (WebCore::Node::setNeedsStyleRecalc):
        (WebCore::Node::markAncestorsWithChildNeedsStyleRecalc): Deleted.
        * dom/Node.h:
        (WebCore::Node::clearChildNeedsStyleRecalc):
        * style/StyleResolveTree.cpp:
        (WebCore::Style::resetStyleForNonRenderedDescendants):

2014-08-22  Joseph Pecoraro  <pecoraro@apple.com>

        Remove unused legacy InspectorFrontendHost methods
        https://bugs.webkit.org/show_bug.cgi?id=136186

        Reviewed by Andreas Kling.

        * bindings/js/JSInspectorFrontendHostCustom.cpp:
        (WebCore::JSInspectorFrontendHost::recordActionTaken): Deleted.
        (WebCore::JSInspectorFrontendHost::recordPanelShown): Deleted.
        (WebCore::JSInspectorFrontendHost::recordSettingChanged): Deleted.
        * inspector/InspectorFrontendHost.idl:

2014-08-22  Joseph Pecoraro  <pecoraro@apple.com>

        Remove unnecessary WTFString creation in Dictionary getter
        https://bugs.webkit.org/show_bug.cgi?id=136184

        Reviewed by Benjamin Poulain.

        * bindings/js/Dictionary.cpp:
        (WebCore::Dictionary::getWithUndefinedOrNullCheck):
        * bindings/js/Dictionary.h:
        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::getWithUndefinedOrNullCheck):
        * bindings/js/JSDictionary.h:

2014-08-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172866.
        https://bugs.webkit.org/show_bug.cgi?id=136177

        Broke iOS build (Requested by othermaciej on #webkit).

        Reverted changeset:

        "Replace use of WKCopyCFLocalizationPreferredName with
        NSLocale public API"
        https://bugs.webkit.org/show_bug.cgi?id=136082
        http://trac.webkit.org/changeset/172866

2014-08-22  David Hyatt  <hyatt@apple.com>

        Add proper support for letter-spacing to bopomofo Ruby
        https://bugs.webkit.org/show_bug.cgi?id=136171

        Reviewed by Sam Weinig.

        Added fast/ruby/bopomofo-letter-spacing.html

        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::layout):
        Alter the layout of bopomofo ruby so that the distance between the base characters is the max of
        the letter-spacing between the characters and the minimum required width to hold two rows of
        Ruby.

        Push the bopomofo ruby into the letter-spacing to ensure that it comes right after the base character
        and not after all the letter-spacing.

2014-08-22  Simon Fraser  <simon.fraser@apple.com>

        Fix showing paint rects when selecting lines in the timeline
        https://bugs.webkit.org/show_bug.cgi?id=136173

        Reviewed by Joseph Pecoraro.

        Fix the condition used to decide when to show the overlay.

        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::shouldShowOverlay):

2014-08-22  Simon Fraser  <simon.fraser@apple.com>

        Use the correct rect for paint flashing
        https://bugs.webkit.org/show_bug.cgi?id=136169

        Reviewed by Sam Weinig.

        Use the rect we've converted to root document coordinates for paint flashing.

        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::didPaint):

2014-08-22  Dean Jackson  <dino@apple.com>

        Google Canvas2D maps are too slow and uncontrollable with Safari with full screen mode
        https://bugs.webkit.org/show_bug.cgi?id=136168

        Reviewed by Tim Horton.

        When Google maps are using their 2D "lite" fallback and you're drawing in a huge
        window such as fullscreen 4K, we would drop back to unaccelerated mode, thinking
        that we'd exceeded the maximum IOSurface size.

        Remove the hardcoded limit on IOSurface sizes, and instead ask the system
        what it believe the maximum to be. This was significantly higher than our
        limit on the systems I tested.

        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::ImageBuffer): Include our IOSurface wrapper, which
        has a query for maximum size, and use that instead.

2014-08-22  Simon Fraser  <simon.fraser@apple.com>

        Maybe fix Windows.

        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::showPaintRect):

2014-08-22  Simon Fraser  <simon.fraser@apple.com>

        Implement paint flashing in the WK1 InspectorOverlay page
        https://bugs.webkit.org/show_bug.cgi?id=136138

        Reviewed by Sam Weinig, Joseph Pecoraro.

        Implement paint flashing for the WebKit1 InspectorOverlay via a second canvas in the overlay page.
        We avoid allocating backing store for this canvas until we have paint rects.
        
        Because this overlay page is weird and doesn't know how to paint itself, InspectorOverlay manages
        an array of rects, and pushes them to the page when they change, before forcing a paint.
        
        Because iOS doesn't use the InspectorOverlay page, stub out setShowPaintRects on its
        WebKit WebInspectorClient, but don't yet implement paint flashing there.

        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::InspectorOverlay):
        (WebCore::InspectorOverlay::shouldShowOverlay):
        (WebCore::InspectorOverlay::update):
        (WebCore::buildObjectForRect):
        (WebCore::InspectorOverlay::setShowingPaintRects):
        (WebCore::InspectorOverlay::showPaintRect):
        (WebCore::InspectorOverlay::updatePaintRectsTimerFired):
        (WebCore::InspectorOverlay::drawPaintRects):
        (WebCore::InspectorOverlay::forcePaint):
        (WebCore::quadToPath): Deleted.
        (WebCore::drawOutlinedQuad): Deleted.
        (WebCore::InspectorOverlay::drawOutline): Deleted.
        * inspector/InspectorOverlay.h:
        * inspector/InspectorOverlayPage.html:
        * inspector/InspectorOverlayPage.js:
        (updatePaintRects):
        (reset):
        (_drawShapeHighlight):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::setShowPaintRects):
        (WebCore::InspectorPageAgent::didPaint):

2014-08-22  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Cleanup media code
        https://bugs.webkit.org/show_bug.cgi?id=136163

        Reviewed by Jer Noble.

        No new tests, no functionality was changed.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Don't initialize m_requestingPlay.
        (WebCore::HTMLMediaElement::parseMediaPlayerAttribute): Deleted.
        (WebCore::HTMLMediaElement::parseAttribute): Don't call parseMediaPlayerAttribute.
        (WebCore::HTMLMediaElement::playInternal): m_requestingPlay is dead, Jim.
        (WebCore::HTMLMediaElement::updatePlayState): Ditto.
        (WebCore::HTMLMediaElement::updatePlayState): Remove obsolete FIXME.
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::attributeChanged): Deleted.
        (WebCore::MediaPlayer::readyForPlayback): Deleted.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::attributeChanged): Deleted.
        (WebCore::MediaPlayerPrivateInterface::readyForPlayback): Deleted.

2014-08-20  Maciej Stachowiak  <mjs@apple.com>

        Replace use of WKCopyCFLocalizationPreferredName with NSLocale public API
        https://bugs.webkit.org/show_bug.cgi?id=136082

        Reviewed by Alexey Proskuryakov.

        * platform/mac/Language.mm:
        (WebCore::httpStyleLanguageCode): Replace use of WKCopyCFLocalizationPreferredName
        with new WebCoreNSStringExtras helper.
        * platform/mac/WebCoreNSStringExtras.mm: Replacements for the aspects of
        WKCopyCFLocalizationPreferredName.
        (preferredBundleLocalizationName): New helper - most preferred localization available
        in the main bundle, canonicalized the way we like it.
        (canonicalLocalizationName): Convert a lcalization name to a string with language and
        country code, using default if necessary (e.g. "en" maps to "en_US").
        * WebCore.order: Remove mention of WKCopyCFLocalizationPreferredName.
        * WebCore.exp.in: ditto; also export preferredBundleLocalizationName for WebKit(2).
        * platform/ios/WebCoreSystemInterfaceIOS.mm: ditto
        * platform/mac/WebCoreSystemInterface.h: ditto
        * platform/mac/WebCoreSystemInterface.mm: ditto

2014-08-22  Daniel Bates  <dabates@apple.com>

        [iOS] Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, and temporarily disable ENABLE_TOUCH_EVENTS
        and ENABLE_XSLT when building with the iOS public SDK
        https://bugs.webkit.org/show_bug.cgi?id=135945

        Reviewed by Andy Estes.

        Towards bringing up the iOS WebKit port using the iOS public SDK, disable the proprietary
        iOS gesture and touch event code. For now we also temporarily disable ENABLE_TOUCH_EVENTS
        and ENABLE_XSLT while we focus to get the rest of the port built using the public SDK. We'll
        look to enable these features once we stabilize the build.

        * Configurations/FeatureDefines.xcconfig: Disable ENABLE_IOS_{GESTURE, TOUCH}_EVENTS, ENABLE_TOUCH_EVENTS
        and ENABLE_XSLT when building with the public SDK.
        * Configurations/WebCore.xcconfig:
        * DerivedSources.make: Conditionally generate derived sources for touch and gesture events as applicable and pass
        define WTF_USE_APPLE_INTERNAL_SDK when generating bindings (if applicable). Make the logic for determining
        whether WTF_PLATFORM_IOS is defined consistent with logic for determining whether WTF_USE_APPLE_INTERNAL_SDK and
        ENABLE_ORIENTATION_EVENTS are defined. We should look to further cleanup this code.
        * bindings/js/ios/TouchConstructors.cpp: Substitute ENABLE(IOS_TOUCH_EVENTS) for macro expression "PLATFORM(IOS) && ENABLE(TOUCH_EVENTS)".
        * bindings/objc/DOMEvents.h: Write preprocessor logic in terms of ENABLE_TOUCH_EVENTS and ENABLE_IOS_GESTURE_EVENTS.
        * bindings/objc/PublicDOMInterfaces.h: Include private header <WebKitAdditions/PublicDOMInterfacesIOS.h> when
        it exists as opposed to assuming it exists when building for iOS.
        * dom/Document.cpp:
        (WebCore::Document::Document): Substitute ENABLE(IOS_TOUCH_EVENTS) for macro expression "ENABLE(TOUCH_EVENTS) && PLATFORM(IOS)".
        (WebCore::Document::prepareForDestruction): Ditto.
        (WebCore::Document::removeAllEventListeners): Ditto.
        * dom/Document.h: Write preprocessor logic in terms of ENABLE_IOS_TOUCH_EVENTS and ENABLE_TOUCH_EVENTS.
        * dom/Document.idl: Ditto.
        * dom/Touch.h: Substitute ENABLE(IOS_TOUCH_EVENTS) for PLATFORM(IOS)..
        * dom/TouchEvent.h: Ditto.
        * dom/TouchList.h: Ditto.
        * dom/ios/TouchEvents.cpp: Substitute ENABLE(IOS_TOUCH_EVENTS) for macro expression "PLATFORM(IOS) && ENABLE(TOUCH_EVENTS)".
        * history/CachedFrame.cpp: Add PLATFORM(IOS) guard.
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::SliderThumbElement::SliderThumbElement): Substitute ENABLE(IOS_TOUCH_EVENTS) for ENABLE(TOUCH_EVENTS).
        (WebCore::SliderThumbElement::willDetachRenderers): Ditto.
        * html/shadow/SliderThumbElement.h: Ditto.
        * loader/EmptyClients.h: Ditto.
        * platform/ios/PlatformEventFactoryIOS.h: Write preprocessor logic in terms of ENABLE_IOS_TOUCH_EVENTS and ENABLE_TOUCH_EVENTS.
        Only include header <WebKitAdditions/PlatformTouchEventIOS.h> when building with ENABLE_TOUCH_EVENTS enabled.

2014-08-22  Simon Fraser  <simon.fraser@apple.com>

        Implement paint flashing via GraphicsLayers in the WK2 inspector overlay
        https://bugs.webkit.org/show_bug.cgi?id=136136

        Reviewed by Sam Weinig, Joseph Pecoraro.

        Allow InspectorClient to have a custom implementation of showPaintRect(). For
        WebKit2's WebInspectorClient, implement this by creating a set of GraphicsLayers
        which are parented in a document overlay, with 0.25s fade-out animations.
        
        Also change InspectorInstrumentation::didPaintImpl() to no longer take a GraphicsContext;
        it makes no sense to paint the paint rects directly into the context of the web page.
        Now that the paint rects are painted into an overlay, the rectangles need to be converted
        to root document coordinates, which is done in InspectorInstrumentation::didPaintImpl().
        
        Remove the generic InspectorOverlay::drawOutline()-based indicators; they will
        be reimplemented in a later patch.

        * WebCore.exp.in:
        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::showPaintRect):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didPaintImpl):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::didPaint):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::didPaint):
        * inspector/InspectorPageAgent.h:
        * page/FrameView.cpp:
        (WebCore::FrameView::didPaintContents):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintContents):

2014-08-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172844.
        https://bugs.webkit.org/show_bug.cgi?id=136164

        re-applying WEBCORE_EXPORTS patch (Requested by
        alexchristensen on #webkit).

        Reverted changeset:

        "Revert r172831, it broke the Windows build."
        http://trac.webkit.org/changeset/172844

2014-08-21  David Hyatt  <hyatt@apple.com>

        Implement rudimentary Bopomofo Ruby support (ruby-position:inter-character)
        https://bugs.webkit.org/show_bug.cgi?id=136137
        <rdar://problem/12567545>

        Reviewed by Sam Weinig.

        Added fast/ruby/bopomofo.html and fast/ruby/bopomofo-rl.html.

        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator RubyPosition):
        * css/CSSPropertyNames.in:
        * css/CSSValueKeywords.in:
        Add support for the new inter-character value for ruby-position and also
        add support for a new font-size keyword, -webkit-ruby-text, that is used
        to set a smart initial font size based off the type of ruby being presented.

        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyFontSize::determineRubyTextSizeMultiplier):
        (WebCore::ApplyPropertyFontSize::applyValue):
        Determine the Ruby text size multiplier when -webkit-ruby-text is specified
        as the font size. For ruby-position of before/after, we use 50% of the parent
        font size. For inter-character ruby, we default to 25% instead. If inter-character
        Ruby is nested, we assume it's to display tone marks, and we use 100% to ensure
        the tone mark is the same size and does not get smaller.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustStyleForInterCharacterRuby):
        (WebCore::StyleResolver::applyMatchedProperties):
        * css/StyleResolver.h:
        ruby-position is now the highest priority CSS property, and it is resolved
        before all other properties to ensure that its value can be checked when
        determining a smart default font size. adjustStyleForInterCharacterRuby is a new
        function called to auto-adjust inter-character ruby text to be vertical writing mode when
        encountered inside horizontal documents.

        * css/html.css:
        (ruby > rt):
        Change the font-size from 50% to -webkit-ruby-text to allow us to customize it as
        needed depending on what kind of Ruby we want to show.

        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::layout):
        * rendering/RenderRubyRun.h:
        Add layout code to properly position vertical ruby text relative to a horizontal base.

        * rendering/style/RenderStyleConstants.h:
        Add the new inter-character constant for ruby-position.

        * rendering/style/StyleRareInheritedData.h:
        Increase the number of storage bits for RubyPosition from 1 to 2 now that we support 3 values.

2014-08-22  Jon Lee  <jonlee@apple.com>

        Fix iOS build due to r172832 and move RUBBER_BANDING out of FeatureDefines.h
        https://bugs.webkit.org/show_bug.cgi?id=136157

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig: Add ENABLE(RUBBER_BANDING).

2014-08-22  Iago Toral  <itoral@igalia.com> and Zan Dobersek  <zdobersek@igalia.com>

        [GTK] Add the Wayland protocol extension
        https://bugs.webkit.org/show_bug.cgi?id=136102

        Reviewed by Martin Robinson.

        Add the Wayland protocol extension that allows mapping GtkWidget
        objects (via an ID that's unique to that GtkWidget) to the
        corresponding Wayland surface objects. This way the nested
        compositor has the proper information about what GtkWidget has
        to be updated when surfaces are committed by the LayerTreeHost.

        * PlatformGTK.cmake:
        * platform/graphics/wayland: Added.
        * platform/graphics/wayland/WebKitGtkWaylandClientProtocol.xml: Added.

2014-08-21  Antti Koivisto  <antti@apple.com>

        Animated GIFs scrolled out of view still cause titlebar blur to update, on tumblr.com page
        https://bugs.webkit.org/show_bug.cgi?id=136139

        Reviewed by Simon Fraser.

        The mechanism for pausing GIF images outside the viewport did not work for subframes.

        Test: fast/repaint/no-animation-outside-viewport-subframe.html

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollPositionChanged):
        (WebCore::FrameView::resumeVisibleImageAnimationsIncludingSubframes):

            Add a function for resuming animations as needed in all subframes.
            This is used after scrolling instead of calling the RenderView function directly.

        * page/FrameView.h:
        * page/Page.cpp:
        (WebCore::Page::resumeAnimatingImages):
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::newImageAnimationFrameAvailable):

            Determine the overall visible rect so that it is correct in subframes too.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollTo):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::resumePausedImageAnimationsIfNeeded):

2014-08-21  Alex Christensen  <achristensen@webkit.org>

        More WEBCORE_EXPORT macros!
        https://bugs.webkit.org/show_bug.cgi?id=136146

        Reviewed by Benjamin Poulain.

        * Modules/geolocation/GeolocationClient.h:
        * Modules/mediastream/UserMediaClient.h:
        * Modules/mediastream/UserMediaRequest.h:
        * Modules/notifications/NotificationClient.h:
        * Modules/speech/SpeechSynthesis.h:
        * bindings/generic/RuntimeEnabledFeatures.h:
        * bindings/js/DOMWrapperWorld.h:
        * bindings/js/GCController.h:
        * bindings/js/IDBBindingUtilities.h:
        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSNodeCustom.h:
        * bindings/js/JSNodeListCustom.h:
        * bindings/js/JSPluginElementFunctions.h:
        * bindings/js/ScriptController.h:
        * bindings/js/SerializedScriptValue.h:
        * crypto/SerializedCryptoKeyWrap.h:
        * css/LengthFunctions.h:
        * css/StyleProperties.h:
        * css/StyleSheetContents.h:
        * dom/DeviceOrientationClient.h:
        * dom/Range.h:
        * dom/ScriptExecutionContext.h:
        * dom/StyledElement.h:
        * dom/TreeScope.h:
        * dom/UIEventWithKeyState.h:
        * dom/UserGestureIndicator.h:
        * dom/UserTypingGestureIndicator.h:
        * dom/ViewportArguments.h:
        * editing/SmartReplace.h:
        * editing/TextIterator.h:
        * editing/VisiblePosition.h:
        * editing/VisibleSelection.h:
        * editing/VisibleUnits.h:
        * editing/cocoa/HTMLConverter.h:
        * editing/htmlediting.h:
        * editing/mac/TextAlternativeWithRange.h:
        * editing/mac/TextUndoInsertionMarkupMac.h:
        * editing/markup.h:
        * history/HistoryItem.cpp:
        * history/PageCache.h:
        * html/TimeRanges.h:
        * html/parser/HTMLParserIdioms.h:
        * inspector/InstrumentingAgents.h:
        * loader/FrameLoader.h:
        * loader/ResourceBuffer.h:
        * loader/ResourceLoadScheduler.h:
        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::originalRequest):
        * loader/SubframeLoader.h:
        * loader/SubresourceLoader.h:
        * loader/TextResourceDecoder.h:
        * loader/appcache/ApplicationCacheStorage.h:
        * loader/cache/MemoryCache.h:
        * loader/icon/IconDatabaseBase.h:
        * loader/ios/DiskImageCacheIOS.h:
        * page/Chrome.h:
        * page/SecurityOrigin.h:
        * page/SecurityPolicy.h:
        * page/Settings.h:
        * page/UserContentController.h:
        * page/UserContentURLPattern.h:
        * page/UserMessageHandlerDescriptor.h:
        * page/ViewportConfiguration.h:
        * page/VisitedLinkStore.h:
        * page/WheelEventDeltaTracker.h:
        * page/cocoa/UserAgent.h:
        * page/scrolling/ScrollingConstraints.h:
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/ScrollingStateFixedNode.h:
        * page/scrolling/ScrollingStateFrameScrollingNode.h:
        * page/scrolling/ScrollingStateNode.h:
        * page/scrolling/ScrollingStateOverflowScrollingNode.h:
        * page/scrolling/ScrollingStateScrollingNode.h:
        * page/scrolling/ScrollingStateStickyNode.h:
        * page/scrolling/ScrollingStateTree.h:
        * page/scrolling/ScrollingThread.h:
        * page/scrolling/ScrollingTree.h:
        * page/scrolling/ScrollingTreeOverflowScrollingNode.h:
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
        * page/scrolling/mac/ScrollingTreeFixedNode.h:
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeStickyNode.h:
        * platform/Cursor.h:
        * platform/DragImage.h:
        * platform/FileSystem.h:
        * platform/Language.h:
        * platform/LinkHash.h:
        * platform/LocalizedStrings.h:
        * platform/Logging.h:
        * platform/MemoryPressureHandler.h:
        * platform/NotImplemented.h:
        * platform/PlatformStrategies.h:
        * platform/PublicSuffix.h:
        * platform/RuntimeApplicationChecks.h:
        * platform/RuntimeApplicationChecksIOS.h:
        * platform/SchemeRegistry.h:
        * platform/ScrollView.h:
        * platform/ScrollableArea.h:
        * platform/Scrollbar.h:
        * platform/ScrollbarTheme.h:
        * platform/SharedBuffer.h:
        * platform/ThreadCheck.h:
        * platform/ThreadGlobalData.h:
        * platform/Timer.h:
        * platform/URL.h:
        * platform/UUID.h:
        * platform/UserActivity.h:
        * platform/Widget.h:
        * platform/cf/CFURLExtras.h:
        * platform/cf/RunLoopObserver.h:
        * platform/cocoa/SystemVersion.h:
        * platform/graphics/Color.h:
        * platform/graphics/FloatRect.h:
        * platform/graphics/FontCache.h:
        * platform/graphics/GeometryUtilities.h:
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/IntRect.h:
        * platform/graphics/LayoutRect.h:
        * platform/graphics/StringTruncator.h:
        * platform/graphics/TextRun.h:
        * platform/graphics/ca/TileController.h:
        * platform/graphics/ca/mac/PlatformCAAnimationMac.h:
        * platform/graphics/cg/GraphicsContextCG.h:
        * platform/graphics/mac/ColorMac.h:
        * platform/graphics/transforms/TransformationMatrix.h:
        * platform/ios/FileSystemIOS.h:
        * platform/ios/PlatformEventFactoryIOS.h:
        * platform/ios/SelectionRect.h:
        * platform/ios/SystemMemory.h:
        * platform/ios/TileControllerMemoryHandlerIOS.h:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        * platform/mac/PlatformEventFactoryMac.h:
        * platform/mac/ScrollbarThemeMac.h:
        * platform/mac/WebCoreNSURLExtras.h:
        * platform/mac/WebNSAttributedStringExtras.h:
        * platform/network/BlobRegistry.h:
        * platform/network/CookieStorage.h:
        * platform/network/DNS.h:
        * platform/network/NetworkStateNotifier.h:
        * platform/network/PlatformCookieJar.h:
        * platform/network/ProxyServer.h:
        * platform/network/ResourceErrorBase.h:
        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandleClient.h:
        * platform/network/ResourceRequestBase.h:
        * platform/network/ResourceResponseBase.h:
        * platform/network/SynchronousLoaderClient.h:
        * platform/network/cf/ResourceError.h:
        * platform/network/cf/ResourceRequest.h:
        * platform/network/cf/ResourceResponse.h:
        * platform/network/ios/QuickLook.h:
        * platform/network/mac/AuthenticationMac.h:
        * platform/sql/SQLiteDatabase.cpp:
        * platform/text/LocaleToScriptMapping.h:
        * platform/text/TextBreakIterator.h:
        * platform/text/TextEncoding.h:
        (WebCore::TextEncoding::decode):
        * platform/text/TextEncodingRegistry.h:
        * platform/text/TextStream.h:
        * rendering/RenderBlock.h:
        * rendering/RenderBox.h:
        * rendering/RenderEmbeddedObject.h:
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.h:
        * rendering/RenderListItem.h:
        * rendering/RenderObject.h:
        * rendering/RenderText.h:
        * rendering/RenderTextControl.h:
        * rendering/RenderThemeIOS.h:
        * rendering/RenderTreeAsText.h:
        * rendering/RenderView.h:
        * rendering/RenderWidget.h:
        * rendering/ScrollBehavior.cpp:
        * rendering/break_lines.cpp:
        * rendering/style/RenderStyle.h:
        * replay/UserInputBridge.h:
        * storage/StorageEventDispatcher.h:
        * storage/StorageMap.h:
        * storage/StorageStrategy.h:
        * storage/StorageTracker.h:
        * testing/Internals.h:
        * workers/WorkerThread.h:
        Added more WEBCORE_EXPORT macros where needed.

2014-08-21  Tim Horton  <timothy_horton@apple.com>

        Revert r172831, it broke the Windows build.

2014-08-21  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed build fix when RUBBER_BANDING is not enabled.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::overhangAmount):
        (WebCore::RenderLayer::setHasHorizontalScrollbar):
        (WebCore::RenderLayer::setHasVerticalScrollbar):

2014-08-21  Brent Fulgham  <bfulgham@apple.com>

        [Win] WebCore.proj is not copying WebKit resource files.
        https://bugs.webkit.org/show_bug.cgi?id=136142
        <rdar://problem/17733682>

        Reviewed by Tim Horton.

        * WebCore.vcxproj/WebCore.proj: Copy missing resource files during
        post-build step.

2014-08-21  Simon Fraser  <simon.fraser@apple.com>

        Try to fix the 32-bit build by using wildcards in the exported non-virtual thunks
        for GraphicsLayerCA::platformCALayerAnimationStarted and GraphicsLayerCA::platformCALayerAnimationEnded.

        * WebCore.exp.in:

2014-08-21  Simon Fraser  <simon.fraser@apple.com>

        Add animationDidEnd callbacks on GraphicsLayer
        https://bugs.webkit.org/show_bug.cgi?id=136084

        Reviewed by Tim Horton.

        Hook up GraphicsLayerClient::notifyAnimationEnded() so that code using GraphicsLayers directly
        can add animations, and know when they finish.

        * WebCore.exp.in:
        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::notifyAnimationStarted):
        (WebCore::GraphicsLayerClient::notifyAnimationEnded):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::platformCALayerAnimationStarted):
        (WebCore::GraphicsLayerCA::platformCALayerAnimationEnded):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/PlatformCALayerClient.h:
        (WebCore::PlatformCALayerClient::platformCALayerAnimationStarted):
        (WebCore::PlatformCALayerClient::platformCALayerAnimationEnded):
        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (-[WebAnimationDelegate animationDidStart:]):
        (-[WebAnimationDelegate animationDidStop:finished:]):
        (PlatformCALayerMac::animationStarted):
        (PlatformCALayerMac::animationEnded):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::notifyAnimationStarted):
        * rendering/RenderLayerBacking.h:

2014-08-21  Zalan Bujtas  <zalan@apple.com>

        Enable SATURATED_LAYOUT_ARITHMETIC.
        https://bugs.webkit.org/show_bug.cgi?id=136106

        Reviewed by Simon Fraser.

        SATURATED_LAYOUT_ARITHMETIC protects LayoutUnit against arithmetic overflow.
        (No measurable performance regression on Mac.)

        Test: fast/dynamic/saturated-layout-arithmetic.html

        * Configurations/FeatureDefines.xcconfig:

2014-08-21  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>

        New ruby parsing rule breaks some real web sites.
        https://bugs.webkit.org/show_bug.cgi?id=136062

        Reviewed by Ryosuke Niwa.

        An RP element should not auto close an RTC element.

        The HTML5.1 spec was changed:
        http://www.w3.org/html/wg/drafts/html/master/syntax.html#parsing-main-inbody
        This was done at the following commit:
        https://github.com/w3c/html/commit/c61397b989b28235ee2228f280aa8d475f3b9ebf

        This patch changed the RP element's behavior to follow the spec change.

        Test: fast/ruby/rp-inside-rtc.html

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processStartTagForInBody):

2014-08-21  Yuki Sekiguchi  <yuki.sekiguchi@access-company.com>

        REGRESSION: CSS not() selector does not work when it appears after or within @supports
        https://bugs.webkit.org/show_bug.cgi?id=136063

        Reviewed by Darin Adler.

        CSSParser changes its m_parsingMode to SupportsMode when it finds
        "@supports" token. However, the mode will be never changed to
        NormalMode. This changes parsing algorithm for "not" token forever,
        and it cannot parse not pseudo class selector.

        When we finish parsing @supports rule, we should change to normal
        mode.

        @media does the same thing. This patch changed CharacterEndMediaQuery
        to CharacterEndConditionQuery, and we change parsing mode from
        SupportsMode to NormalMode when the parser finished to parse
        @supports rule.

        Like "@-webkit-mediaquery", we cannot use '{' to
        "@-webkit-supports-condition". Changed "@-webkit-supports-condition"
        parsing rule and parseSupportsCondition() not to use '{'.

        Tests: css3/supports-not-selector-cssom.html
               css3/supports-not-selector.html

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseSupportsCondition):
        (WebCore::isCSSLetter):
        (WebCore::CSSParser::realLex):

2014-08-21  Beth Dakin  <bdakin@apple.com>

        overflow:scroll elements should support rubber-banding
        https://bugs.webkit.org/show_bug.cgi?id=91655

        Reviewed by Sam Weinig and Darin Adler.

        This patch enables rubber-banding in overflow regions and it keeps latching 
        working as currently implemented.

        We cannot return early here if there is no scroll delta. There won't be a scroll
        delta in most cases during event.phase() == PlatformWheelEventPhaseEnded, but that 
        phase is required to be processed in order for rubber-banding to work properly. 
        * dom/Element.cpp:
        (WebCore::Element::dispatchWheelEvent):
        * page/EventHandler.cpp:
        (WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis):

        Add a setting for this, which will default to true. This allows us to disable the 
        feature in WebKit1 for now. There is a bug about making it work.
        * page/Settings.in:

        allowsHorizontalStretching() and allowsVerticalStretching() now take the 
        PlatformWheelEvent as a parameter, so that ScrollElasticityAutomatic can use the 
        event to decide whether or not stretching should be allowed in this case. 
        ScrollElasticityAutomatic will not allow stretching if it is a brand new gesture 
        that would result in a rubber-band. We don't want to rubber-band in that case
        because we want the event to propagate up to a parent view. Also added some helper 
        functions just to make that code easier to read.
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::newGestureIsStarting):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::isAlreadyPinnedInDirectionOfGesture):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsHorizontalStretching):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsVerticalStretching):
        * platform/mac/ScrollAnimatorMac.h:
        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::handleWheelEvent):
        (WebCore::newGestureIsStarting):
        (WebCore::ScrollAnimatorMac::isAlreadyPinnedInDirectionOfGesture):
        (WebCore::ScrollAnimatorMac::allowsVerticalStretching):
        (WebCore::ScrollAnimatorMac::allowsHorizontalStretching):
        * platform/mac/ScrollElasticityController.h:
        * platform/mac/ScrollElasticityController.mm:
        (WebCore::ScrollElasticityController::handleWheelEvent):

        To opt into rubber-banding, all we have to do is implement overhangAmount and set 
        scroll elasticity. We'll choose ScrollElasticityAutomatic which means that we'll
        only rubber-band in directions that can scroll and that we won't rubber-band for
        new gestures when we're already pinned to the edge.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::overhangAmount):
        (WebCore::RenderLayer::setHasHorizontalScrollbar):
        (WebCore::RenderLayer::setHasVerticalScrollbar):

2014-08-21  Alex Christensen  <achristensen@webkit.org>

        More WEBCORE_EXPORT macros.
        https://bugs.webkit.org/show_bug.cgi?id=136129

        Reviewed by Tim Horton.

        * Modules/geolocation/Geolocation.h:
        * Modules/geolocation/GeolocationController.h:
        * Modules/indexeddb/IDBDatabaseBackend.h:
        * Modules/indexeddb/IDBDatabaseMetadata.h:
        * Modules/indexeddb/IDBKey.h:
        * Modules/indexeddb/IDBKeyData.h:
        * Modules/indexeddb/IDBKeyPath.h:
        * Modules/indexeddb/IDBKeyRange.h:
        * Modules/indexeddb/IDBKeyRangeData.h:
        * Modules/notifications/Notification.h:
        * Modules/notifications/NotificationController.h:
        * bindings/js/GCController.h:
        * bridge/IdentifierRep.h:
        * css/StyleProperties.h:
        * dom/ExceptionCodePlaceholder.h:
        * dom/KeyboardEvent.h:
        * dom/MouseEvent.h:
        * dom/MouseRelatedEvent.h:
        * dom/Node.h:
        (WebCore::Node::hasEditableStyle):
        * dom/NodeTraversal.h:
        * dom/Position.h:
        (WebCore::Position::Position):
        * dom/Range.h:
        (WebCore::Range::startContainer):
        (WebCore::Range::startOffset):
        (WebCore::Range::endContainer):
        (WebCore::Range::endOffset):
        * editing/FrameSelection.h:
        (WebCore::DragCaretController::clear):
        * history/HistoryItem.h:
        * history/PageCache.h:
        * html/FormController.h:
        * html/HTMLElement.h:
        * html/HTMLFormElement.h:
        * html/HTMLFrameOwnerElement.h:
        * html/HTMLInputElement.h:
        * html/HTMLMediaElement.h:
        * html/HTMLOptGroupElement.h:
        * html/HTMLOptionElement.h:
        * html/HTMLPlugInElement.h:
        * html/HTMLPlugInImageElement.h:
        * html/HTMLSelectElement.h:
        * html/HTMLTableCellElement.h:
        * html/HTMLTextAreaElement.h:
        * html/HTMLTextFormControlElement.h:
        * html/HTMLVideoElement.h:
        * html/ImageDocument.h:
        * html/PluginDocument.h:
        * html/forms/FileIconLoader.h:
        * html/shadow/InsertionPoint.h:
        * inspector/InspectorClient.h:
        * inspector/InspectorController.h:
        * inspector/InspectorFrontendClientLocal.h:
        * inspector/InspectorInstrumentation.h:
        * loader/FrameLoadRequest.h:
        * loader/FrameLoader.h:
        * loader/FrameLoaderStateMachine.h:
        * loader/HistoryController.h:
        * loader/LoaderStrategy.h:
        * loader/NavigationAction.h:
        * loader/NetscapePlugInStreamLoader.h:
        * loader/ProgressTracker.h:
        * loader/archive/cf/LegacyWebArchive.h:
        * loader/cache/MemoryCache.h:
        * loader/icon/IconController.h:
        * loader/icon/IconDatabase.h:
        * loader/icon/IconDatabaseBase.h:
        * page/FocusController.h:
        * page/Frame.h:
        * page/FrameDestructionObserver.h:
        Replaced WEBCORE_TESTING with WEBCORE_EXPORT.
        * page/FrameTree.h:
        * page/FrameView.h:
        * page/Page.h:
        * page/PageConsole.h:
        * page/PageGroup.h:
        * page/PageThrottler.h:
        * page/PrintContext.h:
        * page/scrolling/ScrollingConstraints.h:
        * page/scrolling/ScrollingStateNode.h:
        * platform/FileChooser.h:
        * platform/GamepadProvider.h:
        * platform/Length.h:
        * platform/MIMETypeRegistry.h:
        * platform/MemoryPressureHandler.h:
        * platform/Pasteboard.h:
        * platform/PlatformExportMacros.h:
        Removed WEBCORE_TESTING, which I'm replacing with WEBCORE_EXPORT.
        * platform/PlatformKeyboardEvent.h:
        * platform/PlatformPasteboard.h:
        * platform/PlatformSpeechSynthesisVoice.h:
        * platform/PlatformSpeechSynthesizer.h:
        * platform/audio/MediaSessionManager.h:
        * platform/graphics/FloatPoint.h:
        * platform/graphics/FloatQuad.h:
        * platform/graphics/FloatRect.h:
        * platform/graphics/FloatSize.h:
        * platform/graphics/Font.h:
        * platform/graphics/FontCache.h:
        * platform/graphics/FontGlyphs.h:
        * platform/graphics/FontPlatformData.h:
        * platform/graphics/GlyphPageTreeNode.h:
        * platform/graphics/Gradient.h:
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/GraphicsLayer.h:
        * platform/graphics/Icon.h:
        * platform/graphics/Image.h:
        * platform/graphics/ImageBuffer.h:
        * platform/graphics/IntPoint.h:
        * platform/graphics/IntRect.h:
        * platform/graphics/IntSize.h:
        * platform/graphics/LayoutRect.h:
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/Path.h:
        * platform/graphics/Region.h:
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/LayerFlushScheduler.h:
        * platform/graphics/ca/LayerPool.h:
        * platform/graphics/ca/PlatformCAFilters.h:
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/mac/PlatformCAAnimationMac.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/cg/IOSurfacePool.h:
        * platform/graphics/cocoa/IOSurface.h:
        * platform/graphics/filters/FilterOperations.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/ios/LegacyTileCache.h:
        * platform/ios/PlatformEventFactoryIOS.h:
        * platform/ios/wak/FloatingPointEnvironment.h:
        * platform/mac/HIDGamepadProvider.h:
        * platform/mock/MockMediaStreamCenter.h:
        * platform/network/FormData.h:
        * platform/network/HTTPHeaderMap.h:
        * platform/network/NetworkStorageSession.h:
        * platform/network/ProtectionSpaceBase.h:
        * platform/network/cocoa/ProtectionSpaceCocoa.h:
        (WebCore::ProtectionSpace::encodingRequiresPlatformData):
        * platform/network/ios/QuickLook.h:
        * platform/text/TextBreakIterator.h:
        * plugins/PluginData.h:
        * plugins/PluginMainThreadScheduler.h:
        * rendering/HitTestLocation.h:
        * rendering/HitTestResult.h:
        * rendering/InlineBox.h:
        Added more WEBCORE_EXPORT macros, which don't do anything yet.

2014-08-21  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>

        [GTK] WebkitWebProcess crashing navigating away from ogg video element
        https://bugs.webkit.org/show_bug.cgi?id=135348

        Reviewed by Philippe Normand.

        Let GraphicsLayerTextureMapper know it needs to detach the platform
        layer when a MediaPlayerPrivateGStreamerBase is destroyed.

        No new test since media/restore-from-page-cache.html covers it.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):

2014-08-20  Benjamin Poulain  <benjamin@webkit.org>

        CSS: Implement the :placeholder-shown pseudo-class from Selectors Level 4
        https://bugs.webkit.org/show_bug.cgi?id=118162

        Reviewed by Antti Koivisto.

        Previously, HTMLTextFormControlElement was using some mix of its own state
        and style to change the visibility of the placeholder. That approach was a little
        bit too fragile, and we do not want the style to depends on the renderer() since
        that creates circular dependencies.

        The biggest change here is refactoring HTMLTextFormControlElement to have
        1) An explicit "visible placeholder" state.
        2) Separate the textUpdate() from the visibilityUpdate().
        3) Remove the dependencies between the Element's style and the placeholder's style.
           This is done by simply using display:none; on the placeholder so that its parent's visibility
           is irrelevant.

        When matching the selector, the style is set as unique since style sharing does not deal with
        the changes of HTMLTextFormControlElement.

        Tests: fast/css/placeholder-shown-basics.html
               fast/selectors/placeholder-shown-long-adjacent-backtracking.html
               fast/selectors/placeholder-shown-sibling-style-update.html
               fast/selectors/placeholder-shown-style-update.html
               fast/selectors/placeholder-shown-with-input-basics.html
               fast/selectors/placeholder-shown-with-textarea-basics.html

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::selectorText):
        Add the CSS Selector description for CSSOM.

        * css/CSSSelector.h:
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isPlaceholderShown):
        * css/SelectorPseudoClassAndCompatibilityElementMap.in:
        * css/html.css:
        (::-webkit-input-placeholder):
        Previously, the display was forced through the UA stylesheet. Since the display is now part
        of the placeholder visibility, it is explicitly handled by HTMLTextFormControlElement and
        its subclasses.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::makeUniqueIfNecessaryAndTestIsPlaceholderShown):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPlaceholderShown):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseAttribute):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::updateValue):
        (WebCore::HTMLTextAreaElement::setValueCommon):
        (WebCore::HTMLTextAreaElement::updatePlaceholderText):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::HTMLTextFormControlElement):
        (WebCore::HTMLTextFormControlElement::dispatchFocusEvent):
        (WebCore::HTMLTextFormControlElement::dispatchBlurEvent):
        (WebCore::HTMLTextFormControlElement::placeholderShouldBeVisible):
        (WebCore::HTMLTextFormControlElement::updatePlaceholderVisibility):
        (WebCore::HTMLTextFormControlElement::selectionDirection):
        (WebCore::HTMLTextFormControlElement::restoreCachedSelection):
        (WebCore::HTMLTextFormControlElement::parseAttribute):
        (WebCore::HTMLTextFormControlElement::hidePlaceholder):
        (WebCore::HTMLTextFormControlElement::showPlaceholderIfNecessary):
        * html/HTMLTextFormControlElement.h:
        (WebCore::HTMLTextFormControlElement::isPlaceholderVisible):
        (WebCore::HTMLTextFormControlElement::cachedSelectionDirection):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::updatePlaceholderText):
        (WebCore::TextFieldInputType::subtreeHasChanged):
        (WebCore::TextFieldInputType::updateInnerTextValue):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::styleDidChange):
        * testing/Internals.cpp:
        (WebCore::Internals::visiblePlaceholder):

2014-08-20  Mark Rowe  <mrowe@apple.com>

        Fix the release build after r172806.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Add a missing semicolon.

2014-08-20  Benjamin Poulain  <bpoulain@apple.com>

        Remove HTMLInputElement's suggestedValue
        https://bugs.webkit.org/show_bug.cgi?id=136094

        Reviewed by Darin Adler.

        That code is Chrome specific. It is unused now.

        * WebCore.exp.in:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setValue):
        (WebCore::HTMLInputElement::setValueFromRenderer):
        (WebCore::HTMLInputElement::suggestedValue): Deleted.
        (WebCore::HTMLInputElement::setSuggestedValue): Deleted.
        * html/HTMLInputElement.h:
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::placeholderShouldBeVisible):
        * html/HTMLTextFormControlElement.h:
        (WebCore::HTMLTextFormControlElement::isEmptySuggestedValue): Deleted.
        * html/InputType.cpp:
        (WebCore::InputType::canSetSuggestedValue): Deleted.
        * html/InputType.h:
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::updateInnerTextValue):
        (WebCore::TextFieldInputType::canSetSuggestedValue): Deleted.
        * html/TextFieldInputType.h:
        * testing/Internals.cpp:
        (WebCore::Internals::suggestedValue): Deleted.
        (WebCore::Internals::setSuggestedValue): Deleted.
        * testing/Internals.h:
        * testing/Internals.idl:

2014-08-20  Dean Jackson  <dino@apple.com>

        WebAudio FFT analysis uses incorrect scaling
        https://bugs.webkit.org/show_bug.cgi?id=136120

        Reviewed by Tim Horton.

        This is a port of Blink r166687 (author rtoy)
        https://codereview.chromium.org/156993002

        Currently, for a fixed sine-wave input, the peak FFT amplitude changes
        depending on the selected FFT size. This is incorrect; the FFT amplitude
        should not appreciably change when the FFT size changes.

        Layout test added to verify the FFT result stays approximately constant,
        independent of the FFT size used.

        When this test is run using an older version of WebKit, the peak varies
        from about -44 dB (FFT size 32) to -7 dB (FFT size 2048).  With this CL,
        the peak is about -7 dB.  (It's not 0 dB because of the Blackman window that is applied.)

        Note: this change may break existing applications that depended on this strange scaling effect.

        Test: webaudio/realtimeanalyser-fft-scaling.html

        * Modules/webaudio/RealtimeAnalyser.cpp:
        (WebCore::RealtimeAnalyser::doFFTAnalysis):

2014-08-20  Alex Christensen  <achristensen@webkit.org>

        Introducing WEBCORE_EXPORT macro.
        https://bugs.webkit.org/show_bug.cgi?id=136108

        Reviewed by Antti Koivisto.

        This should eventually replace WebCore.exp.in.

        * platform/PlatformExportMacros.h:
        Define WEBCORE_EXPORT to nothing to not cause problems while I'm working on it.
        * Modules/encryptedmedia/CDM.h:
        * Modules/speech/DOMWindowSpeechSynthesis.h:
        * Modules/webdatabase/DatabaseManager.h:
        * Modules/webdatabase/DatabaseTracker.h:
        * accessibility/AXObjectCache.h:
        * bindings/js/DOMWrapperWorld.h:
        * bridge/jsc/BridgeJSC.h:
        * bridge/runtime_method.h:
        * bridge/runtime_object.h:
        * bridge/runtime_root.h:
        * css/CSSComputedStyleDeclaration.h:
        * css/CSSParserMode.h:
        * css/CSSValue.h:
        * css/DOMWindowCSS.h:
        * css/StyleSheetContents.h:
        * dom/CharacterData.h:
        * dom/ClientRect.h:
        * dom/ClientRectList.h:
        * dom/ContainerNode.h:
        * dom/ContextDestructionObserver.h:
        * dom/DOMImplementation.h:
        * dom/DataTransfer.h:
        * dom/DeviceMotionData.h:
        * dom/DeviceOrientationData.h:
        * dom/Document.h:
        (WebCore::Document::setAnnotatedRegionsDirty):
        * dom/DocumentMarker.h:
        * dom/DocumentMarkerController.h:
        * dom/DocumentStyleSheetCollection.h:
        * dom/Element.h:
        * dom/Event.h:
        (WebCore::Event::create):
        * dom/EventListenerMap.h:
        * editing/DictationAlternative.h:
        * editing/EditCommand.h:
        * editing/EditingStyle.h:
        * editing/Editor.h:
        * editing/mac/AlternativeTextUIController.h:
        * history/BackForwardController.h:
        * history/BackForwardList.h:
        * history/CachedFrame.h:
        * loader/CookieJar.h:
        * loader/CrossOriginPreflightResultCache.h:
        * loader/DocumentLoader.h:
        * loader/DocumentWriter.h:
        * loader/appcache/ApplicationCache.h:
        * loader/appcache/ApplicationCacheHost.h:
        * loader/appcache/ApplicationCacheStorage.h:
        * loader/archive/ArchiveResource.h:
        * loader/cache/CachedImage.h:
        * loader/cache/CachedResource.h:
        * loader/cache/CachedResourceHandle.h:
        * loader/cache/CachedResourceLoader.h:
        * page/Chrome.h:
        * page/ContextMenuController.h:
        * page/DOMWindow.h:
        * page/DOMWindowExtension.h:
        * page/DragController.h:
        * page/EventHandler.h:
        * page/animation/AnimationController.h:
        * page/scrolling/AsyncScrollingCoordinator.h:
        * platform/CalculationValue.h:
        * platform/ContentFilter.h:
        * platform/ContextMenu.h:
        * platform/ContextMenuItem.h:
        * platform/CrossThreadCopier.h:
        * platform/Cursor.h:
        * platform/DatabaseStrategy.h:
        * platform/DisplaySleepDisabler.h:
        * platform/DragData.h:
        * platform/LocalizedStrings.h:
        * platform/audio/AudioHardwareListener.h:
        * platform/audio/AudioSession.h:
        * platform/audio/ios/MediaSessionManagerIOS.mm:
        * platform/graphics/BitmapImage.h:
        * platform/graphics/Color.h:
        * platform/graphics/DisplayRefreshMonitor.h:
        * platform/graphics/transforms/AffineTransform.h:
        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/ios/WebVideoFullscreenModelMediaElement.h:
        * platform/ios/wak/WAKView.mm:
        * platform/ios/wak/WKContentObservation.h:
        * platform/ios/wak/WKView.h:
        * platform/ios/wak/WebCoreThread.h:
        * platform/ios/wak/WebCoreThreadMessage.h:
        * platform/mac/BlockExceptions.h:
        * platform/mock/DeviceOrientationClientMock.h:
        * platform/network/AuthenticationChallengeBase.h:
        * platform/network/BlobData.h:
        * platform/network/BlobDataFileReference.h:
        * platform/network/BlobRegistry.h:
        * platform/network/BlobRegistryImpl.h:
        * platform/network/CredentialBase.h:
        * platform/network/CredentialStorage.h:
        * platform/network/PlatformCookieJar.h:
        * platform/network/cf/AuthenticationChallenge.h:
        * platform/network/cocoa/CredentialCocoa.h:
        * platform/network/mac/CertificateInfo.h:
        * platform/sql/SQLiteDatabase.h:
        (WebCore::SQLiteDatabase::disableThreadingChecks):
        * platform/sql/SQLiteDatabaseTracker.h:
        * platform/sql/SQLiteStatement.h:
        * platform/sql/SQLiteTransaction.h:
        * platform/text/BidiContext.h:
        Added WEBCORE_EXPORT macros.

2014-08-20  Pratik Solanki  <psolanki@apple.com>

        Move DiskCacheMonitor to WebCore so that WebKit1 clients can use it as well
        https://bugs.webkit.org/show_bug.cgi?id=135896

        Reviewed by Andreas Kling.

        Refactor code and move it to WebCore.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/ResourceLoader.h:
            Make willCacheResponse protected so that SubresourceLoader can override it.
        * loader/SubresourceLoader.h:
        * loader/cocoa/DiskCacheMonitorCocoa.h: Added.
            Mostly the same as the existing NetworkDiskCacheMonitor class in WebKit2. In the
            CFNetwork callback block, it calls a virtual function that is overridden by
            NetworkDiskCacheMonitor to send a message to WebContent process.
        (WebCore::DiskCacheMonitor::~DiskCacheMonitor):
        (WebCore::DiskCacheMonitor::resourceRequest):
        (WebCore::DiskCacheMonitor::sessionID):
        * loader/cocoa/DiskCacheMonitorCocoa.mm:
        (WebCore::DiskCacheMonitor::tryGetFileBackedSharedBufferFromCFURLCachedResponse):
            Copied from NetworkResourceLoader::tryGetFileBackedSharedBufferFromCFURLCachedResponse.
        (WebCore::DiskCacheMonitor::monitorFileBackingStoreCreation):
        (WebCore::DiskCacheMonitor::DiskCacheMonitor):
        (WebCore::DiskCacheMonitor::resourceBecameFileBacked):
            Replace the cached resource data with the contents of the file backed buffer. This is
            used in WebKit1 (and also for any resource loads that happen from the WebContent
            process).
        * loader/cocoa/SubresourceLoaderCocoa.mm: Added.
        (WebCore::SubresourceLoader::willCacheResponse):
            Override willCacheresponse from ResourceLoader to listen for disk cache notifications.

2014-08-20  Eric Carlson  <eric.carlson@apple.com>

        Cleanup MediaSession
        https://bugs.webkit.org/show_bug.cgi?id=136116

        Reviewed by Brent Fulgham.

        MediaSessionManagerClient interface isn't used, remove it.
        No new tests, this doesn't change behavior.

        * WebCore.exp.in:
        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::addSession): 
        (WebCore::MediaSessionManager::removeSession):
        (WebCore::MediaSessionManager::sessionWillBeginPlayback):
        (WebCore::MediaSessionManager::addClient): Deleted.
        (WebCore::MediaSessionManager::removeClient): Deleted.
        * platform/audio/MediaSessionManager.h:
        (WebCore::MediaSessionManagerClient::~MediaSessionManagerClient): Deleted.
        (WebCore::MediaSessionManagerClient::MediaSessionManagerClient): Deleted.

2014-08-20  Eric Carlson  <eric.carlson@apple.com>

        [MSE] add additional SourceBuffer and MediaSource logging
        https://bugs.webkit.org/show_bug.cgi?id=136114

        Reviewed by Brent Fulgham.

        No new tests, this adds debug-only logging.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::setReadyState): Fix a typo.
        (WebCore::MediaSource::streamEndedWithError): Log the error.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Log when parsing fails.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError): Log error.
        (WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Ditto.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment): Log.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Log error.

2014-08-20  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172798.
        https://bugs.webkit.org/show_bug.cgi?id=136113

        Broke builds (Requested by msaboff on #webkit).

        Reverted changeset:

        "Introducing WEBCORE_EXPORT macro."
        https://bugs.webkit.org/show_bug.cgi?id=136108
        http://trac.webkit.org/changeset/172798

2014-08-20  Alex Christensen  <achristensen@webkit.org>

        Introducing WEBCORE_EXPORT macro.
        https://bugs.webkit.org/show_bug.cgi?id=136108

        Reviewed by Antti Koivisto.

        This should eventually replace WebCore.exp.in.

        * platform/PlatformExportMacros.h:
        Define WEBCORE_EXPORT to nothing to not cause problems while I'm working on it.
        * Modules/encryptedmedia/CDM.h:
        * Modules/speech/DOMWindowSpeechSynthesis.h:
        * Modules/webdatabase/DatabaseManager.h:
        * Modules/webdatabase/DatabaseTracker.h:
        * accessibility/AXObjectCache.h:
        * bindings/js/DOMWrapperWorld.h:
        * bridge/jsc/BridgeJSC.h:
        * bridge/runtime_method.cpp:
        * bridge/runtime_method.h:
        * bridge/runtime_object.cpp:
        * bridge/runtime_object.h:
        * bridge/runtime_root.h:
        * css/CSSComputedStyleDeclaration.h:
        * css/CSSParserMode.h:
        * css/CSSValue.h:
        * css/DOMWindowCSS.h:
        * css/StyleSheetContents.h:
        * dom/CharacterData.h:
        * dom/ClientRect.h:
        * dom/ClientRectList.h:
        * dom/ContainerNode.h:
        * dom/ContextDestructionObserver.h:
        * dom/DOMImplementation.h:
        * dom/DataTransfer.h:
        * dom/DeviceMotionData.h:
        * dom/DeviceOrientationData.h:
        * dom/Document.h:
        (WebCore::Document::setAnnotatedRegionsDirty):
        * dom/DocumentMarker.h:
        * dom/DocumentMarkerController.h:
        * dom/DocumentStyleSheetCollection.h:
        * dom/Element.h:
        * dom/Event.h:
        (WebCore::Event::create):
        * dom/EventListenerMap.h:
        * editing/DictationAlternative.h:
        * editing/EditCommand.h:
        * editing/EditingStyle.h:
        * editing/Editor.h:
        * editing/mac/AlternativeTextUIController.h:
        * history/BackForwardController.h:
        * history/BackForwardList.h:
        * history/CachedFrame.h:
        * loader/CookieJar.h:
        * loader/CrossOriginPreflightResultCache.h:
        * loader/DocumentLoader.h:
        * loader/DocumentWriter.h:
        * loader/appcache/ApplicationCache.h:
        * loader/appcache/ApplicationCacheHost.h:
        * loader/appcache/ApplicationCacheStorage.h:
        * loader/archive/ArchiveResource.h:
        * loader/cache/CachedImage.h:
        * loader/cache/CachedResource.h:
        * loader/cache/CachedResourceHandle.h:
        * loader/cache/CachedResourceLoader.h:
        * page/Chrome.h:
        * page/ContextMenuController.h:
        * page/DOMWindow.h:
        * page/DOMWindowExtension.h:
        * page/DragController.h:
        * page/EventHandler.h:
        * page/animation/AnimationController.h:
        * page/scrolling/AsyncScrollingCoordinator.h:
        * platform/CalculationValue.h:
        * platform/ContentFilter.h:
        * platform/ContextMenu.h:
        * platform/ContextMenuItem.h:
        * platform/CrossThreadCopier.h:
        * platform/Cursor.h:
        * platform/DatabaseStrategy.h:
        * platform/DisplaySleepDisabler.h:
        * platform/DragData.h:
        * platform/LocalizedStrings.h:
        * platform/audio/AudioHardwareListener.h:
        * platform/audio/AudioSession.h:
        * platform/audio/ios/MediaSessionManagerIOS.mm:
        * platform/graphics/BitmapImage.h:
        * platform/graphics/Color.h:
        * platform/graphics/DisplayRefreshMonitor.h:
        * platform/graphics/transforms/AffineTransform.h:
        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/ios/WebVideoFullscreenModelMediaElement.h:
        * platform/ios/wak/WAKView.mm:
        * platform/ios/wak/WKContentObservation.h:
        * platform/ios/wak/WKView.h:
        * platform/ios/wak/WebCoreThread.h:
        * platform/ios/wak/WebCoreThreadMessage.h:
        * platform/mac/BlockExceptions.h:
        * platform/mock/DeviceOrientationClientMock.h:
        * platform/network/AuthenticationChallengeBase.h:
        * platform/network/BlobData.h:
        * platform/network/BlobDataFileReference.h:
        * platform/network/BlobRegistry.h:
        * platform/network/BlobRegistryImpl.h:
        * platform/network/CredentialBase.h:
        * platform/network/CredentialStorage.h:
        * platform/network/PlatformCookieJar.h:
        * platform/network/cf/AuthenticationChallenge.h:
        * platform/network/cocoa/CredentialCocoa.h:
        * platform/network/mac/CertificateInfo.h:
        * platform/sql/SQLiteDatabase.h:
        (WebCore::SQLiteDatabase::disableThreadingChecks):
        * platform/sql/SQLiteDatabaseTracker.h:
        * platform/sql/SQLiteStatement.h:
        * platform/sql/SQLiteTransaction.h:
        * platform/text/BidiContext.h:
        Added WEBCORE_EXPORT macros.

2014-08-20  Zalan Bujtas  <zalan@apple.com>

        Dashed/dotted borders do not paint.
        https://bugs.webkit.org/show_bug.cgi?id=135898

        Reviewed by Simon Fraser.

        Remove the empty line checks for drawLines. There's no need to protect the graphics
        context from empty lines.

        Tests: fast/borders/border-painting-dashed-at-all.html
               fast/borders/border-painting-dashed.html
               fast/borders/border-painting-dotted-at-all.html
               fast/borders/border-painting-dotted.html
               fast/borders/border-painting-double-at-all.html
               fast/borders/border-painting-double.html
               fast/borders/border-painting-groove-at-all.html
               fast/borders/border-painting-inset-at-all.html
               fast/borders/border-painting-inset.html
               fast/borders/border-painting-outset-at-all.html
               fast/borders/border-painting-outset.html
               fast/borders/border-painting-ridge-at-all.html
               fast/borders/border-painting-solid-at-all.html
               fast/borders/border-painting-solid.html
               fast/borders/hidpi-border-painting-groove.html
               fast/borders/hidpi-border-painting-ridge.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::drawLineForBoxSide):
        (WebCore::drawBorderLineRect): Deleted.
        (WebCore::drawBorderLine): Deleted.

2014-08-19  Jinwoo Song  <jinwoo7.song@samsung.com>

        Ignore usemap attributes without '#' in img element
        https://bugs.webkit.org/show_bug.cgi?id=133336

        Reviewed by Ryosuke Niwa.

        HTML5 specification says we should ignore usemap attributes without #.
        http://www.w3.org/TR/html5/infrastructure.html#valid-hash-name-reference

        Test: fast/dom/replaced-image-map-valid-hash-name.html

        * dom/TreeScope.cpp:
        (WebCore::TreeScope::getImageMap):

2014-08-19  Pratik Solanki  <psolanki@apple.com>

        Remove PurgeableBuffer since it is not very useful any more
        https://bugs.webkit.org/show_bug.cgi?id=135939

        Reviewed by Andreas Kling.

        The usefulness of having purgeable memory for cached resources has diminished now that
        WebKit uses file backed resources when possible. Since this is read only memory, it is in
        essence "purgeable". Having the PurgeableBuffer code adds additional complexity that we
        don't need. e.g. on my Mac, I am not seeing any entry for "WebCore purgeable data" when I
        run vmmap against the web processes that I have running. It is used on iOS, however even
        there much of the purgeable memory we create gets replaced by file backed memory once we get
        the notification from CFNetwork.

        No new tests because no functional changes.

        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::prepareCachedResourceBuffer):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::subresource):
        * loader/ResourceBuffer.cpp:
        (WebCore::ResourceBuffer::hasPurgeableBuffer): Deleted.
        (WebCore::ResourceBuffer::setShouldUsePurgeableMemory): Deleted.
        (WebCore::ResourceBuffer::createPurgeableBuffer): Deleted.
        (WebCore::ResourceBuffer::releasePurgeableBuffer): Deleted.
        * loader/ResourceBuffer.h:
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didFinishLoading):
        * loader/cache/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::sheetText):
        (WebCore::CachedCSSStyleSheet::destroyDecodedData):
        * loader/cache/CachedCSSStyleSheet.h:
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::image):
        (WebCore::CachedImage::imageForRenderer):
        (WebCore::CachedImage::imageSizeForRenderer):
        (WebCore::CachedImage::destroyDecodedData):
        (WebCore::CachedImage::canUseDiskImageCache):
        * loader/cache/CachedImage.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::addClientToSet):
        (WebCore::CachedResource::isSafeToMakePurgeable): Deleted.
        (WebCore::CachedResource::makePurgeable): Deleted.
        (WebCore::CachedResource::isPurgeable): Deleted.
        (WebCore::CachedResource::wasPurged): Deleted.
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::resourceBuffer):
        (WebCore::CachedResource::purgePriority): Deleted.
        * loader/cache/CachedScript.cpp:
        (WebCore::CachedScript::script):
        (WebCore::CachedScript::destroyDecodedData):
        * loader/cache/CachedScript.h:
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::resourceForRequestImpl):
        (WebCore::MemoryCache::pruneDeadResourcesToSize):
        (WebCore::MemoryCache::evict):
        (WebCore::MemoryCache::TypeStatistic::addResource):
        (WebCore::MemoryCache::dumpStats):
        (WebCore::MemoryCache::dumpLRULists):
        (WebCore::MemoryCache::makeResourcePurgeable): Deleted.
        * loader/cache/MemoryCache.h:
        (WebCore::MemoryCache::TypeStatistic::TypeStatistic):
        (WebCore::MemoryCache::shouldMakeResourcePurgeableOnEviction): Deleted.
        * platform/PurgePriority.h: Removed.
        * platform/PurgeableBuffer.h: Removed.
        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::SharedBuffer):
        (WebCore::SharedBuffer::size):
        (WebCore::SharedBuffer::data):
        (WebCore::SharedBuffer::append):
        (WebCore::SharedBuffer::clear):
        (WebCore::SharedBuffer::copy):
        (WebCore::SharedBuffer::getSomeData):
        (WebCore::SharedBuffer::adoptPurgeableBuffer): Deleted.
        (WebCore::SharedBuffer::createPurgeableBuffer): Deleted.
        (WebCore::SharedBuffer::releasePurgeableBuffer): Deleted.
        * platform/SharedBuffer.h:
        (WebCore::SharedBuffer::hasPurgeableBuffer): Deleted.
        (WebCore::SharedBuffer::shouldUsePurgeableMemory): Deleted.
        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::SharedBuffer):
        * platform/mac/PurgeableBufferMac.cpp: Removed.
        * platform/mac/SharedBufferMac.mm:
        (WebCore::SharedBuffer::createCFData):
        * platform/soup/SharedBufferSoup.cpp:

2014-08-19  Zalan Bujtas  <zalan@apple.com>

        Remove ENABLE(SUBPIXEL_LAYOUT).
        https://bugs.webkit.org/show_bug.cgi?id=136077

        Reviewed by Simon Fraser.

        Remove compile time flag SUBPIXEL_LAYOUT. All ports have it enabled for a while now.

        * Configurations/FeatureDefines.xcconfig:
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::computeLength):
        * dom/Element.cpp:
        (WebCore::adjustForLocalZoom):
        (WebCore::Element::offsetWidth):
        (WebCore::Element::offsetHeight):
        (WebCore::Element::clientLeft):
        (WebCore::Element::clientTop):
        (WebCore::Element::clientWidth):
        (WebCore::Element::clientHeight):
        * platform/LayoutUnit.h:
        (WebCore::LayoutUnit::LayoutUnit):
        (WebCore::LayoutUnit::ceilToFloat):
        (WebCore::LayoutUnit::ceil):
        (WebCore::LayoutUnit::round):
        (WebCore::LayoutUnit::floor):
        (WebCore::boundedMultiply):
        (WebCore::operator*):
        (WebCore::operator/):
        (WebCore::intMod):
        (WebCore::operator%):
        (WebCore::roundedLayoutUnit):
        (WebCore::ceiledLayoutUnit):
        (WebCore::LayoutUnit::toInt): Deleted.
        (WebCore::LayoutUnit::toFloat): Deleted.
        (WebCore::LayoutUnit::toDouble): Deleted.
        (WebCore::LayoutUnit::epsilon): Deleted.
        * platform/graphics/LayoutPoint.h:
        (WebCore::roundedForPainting):
        (WebCore::flooredForPainting):
        (WebCore::ceiledForPainting):
        (WebCore::roundedLayoutPoint):
        * platform/graphics/LayoutRect.cpp:
        (WebCore::enclosingLayoutRect):
        * platform/graphics/LayoutRect.h:
        (WebCore::pixelSnappedIntRect):
        (WebCore::pixelSnappedForPainting):
        * platform/graphics/LayoutSize.h:
        (WebCore::roundedLayoutSize):
        (WebCore::flooredForPainting):
        * rendering/RenderBlock.cpp:
        (WebCore::adjustFloatForSubPixelLayout):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::layoutBlockChild):
        * rendering/RenderElement.h:
        (WebCore::adjustLayoutUnitForAbsoluteZoom):
        * rendering/style/RenderStyle.h:
        (WebCore::adjustLayoutUnitForAbsoluteZoom):

2014-08-19  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] A few calc() test failures in the shape-image-threshold parsing tests
        https://bugs.webkit.org/show_bug.cgi?id=135926

        Reviewed by Dirk Schulze.

        shape-image-threshold is a Number, so it should be parsed as one. The
        default parsing doesn't support calcs, but numbers do.

        No new tests, fixes exitsing test to pass.

        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Use
            ApplyPropertyNumber instead of ApplyPropertyDefault for
            shape-image-threshold.

2014-08-18  Maciej Stachowiak  <mjs@apple.com>

        Use NSURLFileTypeMappings directly instead of depending on WebKitSystemInterface wrappers for it
        https://bugs.webkit.org/show_bug.cgi?id=136035

        Reviewed by Dan Bernstein.

        * WebCore.exp.in: Remove reference to no longer existent sumbols.
        * WebCore.order: ditto
        * WebCore.xcodeproj/project.pbxproj: Install new NSURLFileTyeMappings.h header.
        * platform/ios/MIMETypeRegistryIOS.mm:
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension): Use NSURLFileTypeMappings
        directly instead of via WKSI wrapper.
        * platform/mac/MIMETypeRegistryMac.mm:
        (WebCore::MIMETypeRegistry::getMIMETypeForExtension): ditto
        (WebCore::MIMETypeRegistry::getExtensionsForMIMEType): ditto
        (WebCore::MIMETypeRegistry::getPreferredExtensionForMIMEType): ditto
        * platform/mac/WebCoreSystemInterface.h: Remove references to the no-longer-used
        WKGetExtensionsForMIMEType, WKGetPreferredExtensionForMIMEType, or WKGetMIMETypeForExtension
        * platform/mac/WebCoreSystemInterface.mm: ditto
        * platform/spi: Added. This is where headers to declare SPI go.
        * platform/spi/cocoa: Added. See above.
        * platform/spi/cocoa/NSURLFileTypeMappingsSPI.h: Added. Header to declare
        the internal class NSURLFileTypeMappings and some of its methods.

2014-08-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172736.
        https://bugs.webkit.org/show_bug.cgi?id=136060

        Caused 14% PLT regressions (Requested by rniwa on #webkit).

        Reverted changeset:

        "Remove PurgeableBuffer since it is not very useful any more"
        https://bugs.webkit.org/show_bug.cgi?id=135939
        http://trac.webkit.org/changeset/172736

2014-08-18  Simon Fraser  <simon.fraser@apple.com>

        Provide default implementations of all GraphicsLayerClient methods
        https://bugs.webkit.org/show_bug.cgi?id=136054

        Reviewed by Tim Horton.

        Make none of the functions in GraphicsLayerClient pure virtual, since in many cases
        subclasses don't need to provide their own implementations.

        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::notifyAnimationStarted):
        (WebCore::GraphicsLayerClient::notifyFlushRequired):
        (WebCore::GraphicsLayerClient::paintContents):
        * rendering/RenderLayerCompositor.h:

2014-08-18  Pratik Solanki  <psolanki@apple.com>

        Remove PurgeableBuffer since it is not very useful any more
        https://bugs.webkit.org/show_bug.cgi?id=135939

        Reviewed by Geoffrey Garen.

        The usefulness of having purgeable memory for cached resources has diminished now that
        WebKit uses file backed resources when possible. Since this is read only memory, it is in
        essence "purgeable". Having the PurgeableBuffer code adds additional complexity that we
        don't need. e.g. on my Mac, I am not seeing any entry for "WebCore purgeable data" when I
        run vmmap against the web processes that I have running. It is used on iOS, however even
        there much of the purgeable memory we create gets replaced by file backed memory once we get
        the notification from CFNetwork.

        No new tests because no functional changes.

        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorPageAgent.cpp:
        (WebCore::prepareCachedResourceBuffer):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::subresource):
        * loader/ResourceBuffer.cpp:
        (WebCore::ResourceBuffer::hasPurgeableBuffer): Deleted.
        (WebCore::ResourceBuffer::setShouldUsePurgeableMemory): Deleted.
        (WebCore::ResourceBuffer::createPurgeableBuffer): Deleted.
        (WebCore::ResourceBuffer::releasePurgeableBuffer): Deleted.
        * loader/ResourceBuffer.h:
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didFinishLoading):
        * loader/cache/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::sheetText):
        (WebCore::CachedCSSStyleSheet::destroyDecodedData):
        * loader/cache/CachedCSSStyleSheet.h:
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::image):
        (WebCore::CachedImage::imageForRenderer):
        (WebCore::CachedImage::imageSizeForRenderer):
        (WebCore::CachedImage::destroyDecodedData):
        (WebCore::CachedImage::canUseDiskImageCache):
        * loader/cache/CachedImage.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::addClientToSet):
        (WebCore::CachedResource::isSafeToMakePurgeable): Deleted.
        (WebCore::CachedResource::makePurgeable): Deleted.
        (WebCore::CachedResource::isPurgeable): Deleted.
        (WebCore::CachedResource::wasPurged): Deleted.
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::resourceBuffer):
        (WebCore::CachedResource::purgePriority): Deleted.
        * loader/cache/CachedScript.cpp:
        (WebCore::CachedScript::script):
        (WebCore::CachedScript::destroyDecodedData):
        * loader/cache/CachedScript.h:
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::resourceForRequestImpl):
        (WebCore::MemoryCache::pruneDeadResourcesToSize):
        (WebCore::MemoryCache::evict):
        (WebCore::MemoryCache::TypeStatistic::addResource):
        (WebCore::MemoryCache::dumpStats):
        (WebCore::MemoryCache::dumpLRULists):
        (WebCore::MemoryCache::makeResourcePurgeable): Deleted.
        * loader/cache/MemoryCache.h:
        (WebCore::MemoryCache::TypeStatistic::TypeStatistic):
        (WebCore::MemoryCache::shouldMakeResourcePurgeableOnEviction): Deleted.
        * platform/PurgePriority.h: Removed.
        * platform/PurgeableBuffer.h: Removed.
        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::SharedBuffer):
        (WebCore::SharedBuffer::size):
        (WebCore::SharedBuffer::data):
        (WebCore::SharedBuffer::append):
        (WebCore::SharedBuffer::clear):
        (WebCore::SharedBuffer::copy):
        (WebCore::SharedBuffer::getSomeData):
        (WebCore::SharedBuffer::adoptPurgeableBuffer): Deleted.
        (WebCore::SharedBuffer::createPurgeableBuffer): Deleted.
        (WebCore::SharedBuffer::releasePurgeableBuffer): Deleted.
        * platform/SharedBuffer.h:
        (WebCore::SharedBuffer::hasPurgeableBuffer): Deleted.
        (WebCore::SharedBuffer::shouldUsePurgeableMemory): Deleted.
        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::SharedBuffer):
        * platform/mac/PurgeableBufferMac.cpp: Removed.
        * platform/mac/SharedBufferMac.mm:
        (WebCore::SharedBuffer::createCFData):
        * platform/soup/SharedBufferSoup.cpp:

2014-08-18  Pratik Solanki  <psolanki@apple.com>

        Use modern for loop instead of iterators in SharedBufferCF.cpp
        https://bugs.webkit.org/show_bug.cgi?id=136000

        Reviewed by Andreas Kling.

        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::copyBufferAndClear):
        (WebCore::SharedBuffer::copySomeDataFromDataArray):
        (WebCore::SharedBuffer::maybeAppendDataArray): Use auto& instead of auto for less RetainPtr/refcount churn.

2014-08-18  Antti Koivisto  <antti@apple.com>

        Tighten RenderCounter typing
        https://bugs.webkit.org/show_bug.cgi?id=136049

        Reviewed by Andreas Kling.

        RenderObject* -> RenderElement&

        * rendering/CounterNode.cpp:
        (WebCore::CounterNode::CounterNode):
        (WebCore::CounterNode::create):
        (WebCore::showTreeAndMark):
        * rendering/CounterNode.h:
        (WebCore::CounterNode::owner):
        * rendering/RenderCounter.cpp:
        (WebCore::previousInPreOrder):
        (WebCore::parentOrPseudoHostElement):
        (WebCore::previousSiblingOrParent):
        (WebCore::areRenderersElementsSiblings):
        (WebCore::nextInPreOrder):
        (WebCore::planCounter):
        (WebCore::findPlaceForCounter):
        (WebCore::makeCounterNode):
        (WebCore::RenderCounter::originalText):
        (WebCore::destroyCounterNodeWithoutMapRemoval):
        (WebCore::RenderCounter::destroyCounterNodes):
        (WebCore::RenderCounter::destroyCounterNode):
        (WebCore::RenderCounter::rendererRemovedFromTree):
        (WebCore::updateCounters):
        (WebCore::RenderCounter::rendererSubtreeAttached):
        (WebCore::RenderCounter::rendererStyleChanged):
        (showCounterRendererTree):
        * rendering/RenderCounter.h:
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::RenderElement):
        (WebCore::RenderElement::insertChildInternal):
        (WebCore::RenderElement::removeChildInternal):
        (WebCore::RenderElement::styleDidChange):
        (WebCore::RenderElement::willBeDestroyed):
        * rendering/RenderElement.h:
        (WebCore::RenderElement::hasCounterNodeMap):
        (WebCore::RenderElement::setHasCounterNodeMap):
        
            Move CounterNodeMap to RenderElement from RenderObject.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::willBeDestroyed):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
        (WebCore::RenderObject::hasCounterNodeMap): Deleted.
        (WebCore::RenderObject::setHasCounterNodeMap): Deleted.

2014-08-18  Peyton Randolph  <prandolph@apple.com>

        Expose long mouse press WebKit API. Part of 135257 - Add long mouse press gesture
        https://bugs.webkit.org/show_bug.cgi?id=136048

        Reviewed by Dan Bernstein.

        This patch exposes long mouse press API callbacks in both the injected bundle and on the UI process
        through their respective page UI clients. The callbacks are modeled off of the mouseDidMoveOverElement
        callback. Like the mouseDidMoveOverElement callback, these callbacks allow the bundle to pass 
        information to the UI process via a userData out parameter.

        * page/Chrome.cpp:
        (WebCore::Chrome::didBeginTrackingPotentialLongMousePress): Added.
        (WebCore::Chrome::didRecognizeLongMousePress): Added.
        (WebCore::Chrome::didCancelTrackingPotentialLongMousePress): Added.
        * page/Chrome.h:
        * page/ChromeClient.h:
        (WebCore::ChromeClient::didBeginTrackingPotentialLongMousePress): Added.
        (WebCore::ChromeClient::didRecognizeLongMousePress): Added.
        (WebCore::ChromeClient::didCancelTrackingPotentialLongMousePress): Added.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEvent): 
        Pass the press hit test result to kick off the long mouse press.
        (WebCore::EventHandler::beginTrackingPotentialLongMousePress): Notify the chrome.
        (WebCore::EventHandler::recognizeLongMousePress): Ditto.
        (WebCore::EventHandler::cancelTrackingPotentialLongMousePress): 
        Ditto. Also opportunistically remove a runtime switch check to see if long pressing is enabled. The
        runtime switch check was only triggered when long pressing was disabled in the middle of a long press.
        * page/EventHandler.h:

2014-08-18  Przemyslaw Kuczynski  <p.kuczynski@samsung.com>

        Fix unintentional integer overflow before widen
        https://bugs.webkit.org/show_bug.cgi?id=135463

        Reviewed by Oliver Hunt.

        Overflowing expression is evaluated using operands arithmetic but then is used in
        context which expects an wider integer type. To avoid overflow at least one operand
        has to be representative of the wider type.

        * loader/FTPDirectoryParser.cpp:
        (WebCore::parseOneFTPLine): Changed strtoul to strtoull.
        * loader/ProgressTracker.cpp:
        (WebCore::ProgressTracker::incrementProgress): Added static_cast to long long.
        * platform/efl/FileSystemEfl.cpp:
        (WebCore::getVolumeFreeSizeForPath): Added static_cast to uint64_t.

2014-08-18  Vivek Galatage  <vivek.vg@samsung.com>

        Implement CanvasRenderingContext2D direction attribute
        https://bugs.webkit.org/show_bug.cgi?id=135878

        Reviewed by Darin Adler.

        The attribute, 'direction', represents the text directionality.
        This is an important attribute for the bi-directional text within the CanvasRenderingContext2D.
        The allowed set of values are 'rtl', 'ltr' and 'inherit'.

        Specification URL: http://www.whatwg.org/specs/web-apps/current-work/multipage/scripting.html#dom-context-2d-direction

        Test: fast/canvas/canvas-direction.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::inheritedDirection):
        (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):
        (WebCore::CanvasRenderingContext2D::reset):
        (WebCore::CanvasRenderingContext2D::State::State):
        (WebCore::CanvasRenderingContext2D::State::operator=):
        (WebCore::CanvasRenderingContext2D::direction):
        (WebCore::CanvasRenderingContext2D::setDirection):
        (WebCore::CanvasRenderingContext2D::drawTextInternal):
        * html/canvas/CanvasRenderingContext2D.h:
        * html/canvas/CanvasRenderingContext2D.idl:

2014-08-18  Benjamin Poulain  <benjamin@webkit.org>

        The style is not updated correctly when the pseudo class :empty is applied on anything but the rightmost element
        https://bugs.webkit.org/show_bug.cgi?id=135999

        Reviewed by Antti Koivisto.

        In Element's checkForEmptyStyleChange(), the style invalidation was only considering the invalidation of the element
        for which the subtree has changed. When the pseudo class :empty is used with a sibling combinator (e.g. foo:empty+bar),
        we were never invalidating the style of the element on which the selector applies.

        This patch fixes the issue by invalidating the whole subtree rooted at the parent if the :empty rules applies
        to siblings. A new flag "styleOfSiblingsAffectedByEmpty" is introduced to cover this case.

        SelectorChecker just sets the flag all the time if any sibling rule exists.
        This is overkill but that code is just there for non-jit cases.

        SelectorCompiler does a better job and only sets the flag if matching anything else than the rightmost element.
        There is a case not optimized, :empty with descendant (e.g. foo:empty>bar). Those cases are useless in practice,
        it is not worth optimizing them.

        Tests: fast/css/pseudo-element-updates-on-empty.html
               fast/selectors/not-empty-adjacent-style-update.html
               fast/selectors/not-empty-style-update.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::fragmentMatchesTheRightmostElement):
        shouldUseRenderStyleFromCheckingContext() is renamed fragmentMatchesTheRightmostElement() because
        it is now also used by generateElementIsEmpty() in a context where the Context's style is irrelevant.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
        (WebCore::SelectorCompiler::setStyleOfSiblingsAffectedByEmpty):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsEmpty):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
        (WebCore::SelectorCompiler::shouldUseRenderStyleFromCheckingContext): Deleted.
        (WebCore::SelectorCompiler::setElementStyleIsAffectedByEmptyAndUpdateRenderStyleIfNecessary): Deleted.
        * dom/Element.cpp:
        (WebCore::checkForEmptyStyleChange):
        (WebCore::Element::setStyleOfSiblingsAffectedByEmpty):
        (WebCore::Element::rareDataStyleOfSiblingsAffectedByEmpty):
        * dom/Element.h:
        (WebCore::Element::styleOfSiblingsAffectedByEmpty):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::styleOfSiblingsAffectedByEmpty):
        (WebCore::ElementRareData::setStyleOfSiblingsAffectedByEmpty):
        (WebCore::ElementRareData::ElementRareData):

2014-08-18  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Unreviewed merge correction.

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::platformCompleteWheelEvent): Revert an
        unintended change from r172705.

2014-08-18  Bem Jones-Bey  <bjonesbe@adobe.com>

        Small cleanup for ShapeOutsideDeltas
        https://bugs.webkit.org/show_bug.cgi?id=136043

        Reviewed by Zoltan Horvath.

        Remove explicit initializtion of LayoutUnit members and explicitly
        size the boolean flags so they pack properly.

        No new tests, no behavior change.

        * rendering/shapes/ShapeOutsideInfo.h:

2014-08-18  Dirk Schulze  <krit@webkit.org>

        calc() doesn't work for SVG CSS properties
        https://bugs.webkit.org/show_bug.cgi?id=136026

        Reviewed by Andreas Kling.

        Make calc() work on SVG CSS properties as well. stroke-width and
        stroke-dashoffset used SVGLength. SVGLength doesn't work together with
        cross units length arguments like % and px (just returns 0 in these
        cases). I moved these properties over to Length. All modified files
        beside to SVGCSSParser are related to this switch.

        Test: svg/css/parse-calc-length.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/SVGCSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::svgPropertyValue):
        * css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue):
        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
        * rendering/style/RenderStyle.h:
        * rendering/style/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::setStrokeWidth):
        (WebCore::SVGRenderStyle::setStrokeDashOffset):
        (WebCore::SVGRenderStyle::strokeWidth):
        (WebCore::SVGRenderStyle::strokeDashOffset):
        (WebCore::SVGRenderStyle::initialStrokeDashOffset): Deleted.
        (WebCore::SVGRenderStyle::initialStrokeWidth): Deleted.
        * rendering/style/SVGRenderStyleDefs.cpp:
        (WebCore::StyleStrokeData::StyleStrokeData):
        * rendering/style/SVGRenderStyleDefs.h:
        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::strokeWidth):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::strokeBoundingBox):
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::applyStrokeStyleToContext):
        * rendering/svg/SVGRenderTreeAsText.cpp:
        (WebCore::writeStyle):
        * svg/SVGLengthContext.cpp:
        (WebCore::SVGLengthContext::valueForLength):

2014-08-18  Andy Estes  <aestes@apple.com>

        REGRESSION (r167856): adobe.com no longer able to launch Create Cloud app using a URL with a custom scheme
        https://bugs.webkit.org/show_bug.cgi?id=136010

        Reviewed by Darin Adler.

        r167856 caused WebKit to stop scheduling certain kinds of navigations (window.location changes, meta-refresh,
        and some calls to window.open) when the request URL is invalid. Adobe.com performs one of these navigations to
        an invalid URL with an external scheme (aam:), relying on Safari's navigation policy delegate to ignore the
        navigation and launch the external app registered to handle aam: URLs. Since the navigation is no longer
        scheduled, the policy delegate is never executed and the external app never launches.

        Instead of not scheduling the navigation, allow it to proceed until the client's policy delegate has executed
        and made a decision. Only disallow the navigation if the policy delegate told WebKit to proceed with the load.
        This exposes these navigations to clients via the policy delegate and via willPerformClientRedirectToURL and
        didCancelClientRedirectForFrame on the frame load delegate.
        
        To constrain this check only to the navigation types covered by r167856, only two NavigationSchedulers
        (ScheduledRedirect and ScheduledLocationChange) enable the invalid URL check.

        Note that r167856 also caused an iOS regression, and this was resolved in r170120 by adding a linked-on-or-after
        check and a WebCore setting. Since the iOS regression is also resolved by the approach described above, this
        patch reverts r170120 (but keeps some of its tests).

        Tests: fast/loader/redirect-to-invalid-url-using-javascript-calls-policy-delegate.html
               fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html
               fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate.html
               fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html
               fast/loader/window-open-to-invalid-url-calls-policy-delegate.html
               fast/loader/window-open-to-invalid-url-disallowed.html

        * WebCore.exp.in: Updated the symbol FrameLoader::loadFrameRequest.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::changeLocation): Added an AllowNavigationToInvalidURL argument; passed down to urlSelected.
        (WebCore::FrameLoader::urlSelected): Added an AllowNavigationToInvalidURL argument; passed down to loadFrameRequest.
        (WebCore::FrameLoader::loadURLIntoChildFrame): Passed AllowNavigationToInvalidURL::Yes to loadURL.
        (WebCore::FrameLoader::loadFrameRequest): Added an AllowNavigationToInvalidURL argument; passed down to loadURL and loadPostRequest.
        (WebCore::FrameLoader::loadURL): Added an AllowNavigationToInvalidURL argument; passed down to continueLoadAfterNewWindowPolicy and loadWithNavigationAction.
        (WebCore::FrameLoader::loadPostRequest): Ditto.
        (WebCore::FrameLoader::load): Passed AllowNavigationToInvalidURL::Yes to continueLoadAfterNewWindowPolicy.
        (WebCore::FrameLoader::loadWithNavigationAction): Added an AllowNavigationToInvalidURL argument; passed down to loadWithDocumentLoader.
        (WebCore::FrameLoader::loadWithDocumentLoader): Added an AllowNavigationToInvalidURL argument; passed down to continueLoadAfterNavigationPolicy.
        (WebCore::FrameLoader::reloadWithOverrideEncoding): Passed AllowNavigationToInvalidURL::Yes to loadWithDocumentLoader.
        (WebCore::FrameLoader::reload): Ditto.
        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
            Added an AllowNavigationToInvalidURL argument; if its value is No and the request's URL is invalid, do not continue.
            Added a FIXME about calling clientRedirectCancelledOrFinished on non-quick redirect cancellations.
        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy): Added an AllowNavigationToInvalidURL argument; passed down to loadWithNavigationAction.
        (WebCore::FrameLoader::loadDifferentDocumentItem): Passed AllowNavigationToInvalidURL::Yes to either loadWithDocumentLoader or loadWithNavigationAction.
        * loader/FrameLoader.h:
        * loader/FrameLoaderTypes.h: Defined AllowNavigationToInvalidURL to have values of Yes and No.
        * loader/NavigationScheduler.cpp:
        (WebCore::ScheduledRedirect::fire): Passed AllowNavigationToInvalidURL::No to FrameLoader::changeLocation.
        (WebCore::ScheduledLocationChange::fire): Ditto.
        (WebCore::NavigationScheduler::shouldScheduleNavigation): Removed the URL::isValid check.
        (WebCore::NavigationScheduler::scheduleLocationChange): Passed AllowNavigationToInvalidURL::No to FrameLoder::changeLocation during fragment navigations.
        * page/ContextMenuController.cpp:
        (WebCore::openNewWindow): Passed AllowNavigationToInvalidURL::Yes to FrameLoader::loadFrameRequest.
        (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
        * page/Settings.in: Removed allowNavigationToInvalidURL.

2014-08-18  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>

        Fix keyTimes list length of from/to/by animations.
        https://bugs.webkit.org/show_bug.cgi?id=136037

        Reviewed by Darin Adler.

        For from/to/by animations, the length of keyTimes and keyPoints
        attribute if are specified must be equal and must have at least
        2 values.

        This is backport of my fix in Blink: https://codereview.chromium.org/453243003/

        Test: svg/animations/invalid-keytime-number-crash.html

        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::startedActiveInterval):

2014-08-18  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Follow-up to r136040 based on Darin Adler's comments.

        Pass Widget* as a Widget&, since it can never be null.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent):
        (WebCore::EventHandler::handleWheelEvent):
        * page/EventHandler.h:
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::platformCompleteWheelEvent):
        (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent):

2014-08-17  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Gesture scrolls don't work in the WebKit1 clients after scrolling a non-scrollable iFrame
        https://bugs.webkit.org/show_bug.cgi?id=136029
        <rdar://problem/17767169>

        Reviewed by Maciej Stachowiak.

        This is difficult to test in our layout tests, since it relies on specific host application
        behavior.

        If the platform widget is a frame view (IFrame), and we are in WebKit1, 'passWheelEventToWidget'
        has already called 'scrollWheel' on the underlying platform widget. We need to return true in
        this case to avoid getting multiple copies of the scrollWheel event sent to the platform widget.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Revise default stub to
        accept a Widget* argument.
        (WebCore::EventHandler::handleWheelEvent):
        * page/EventHandler.h:
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Check for WK1 case and
        return 'true' when the underlying NSScrollView has been issues a scrollWheel event.
        

2014-08-18  Andy Estes  <aestes@apple.com>

        Revert r172697.

        It made several webarchive layout tests flaky and didn't have the correct behavior for non-quick redirects.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy):
        * loader/NavigationScheduler.cpp:
        (WebCore::NavigationScheduler::shouldScheduleNavigation):
        * page/Settings.in:

2014-08-15  Andy Estes  <aestes@apple.com>

        REGRESSION (r167856): adobe.com no longer able to launch Create Cloud app using a URL with a custom scheme
        https://bugs.webkit.org/show_bug.cgi?id=136010

        Reviewed by Darin Adler.

        r167856 caused WebKit to stop scheduling certain kinds of navigations (window.location changes, meta-refresh,
        and some calls to window.open) when the request URL is invalid. Adobe.com performs one of these navigations to
        an invalid URL with an external scheme (aam:), relying on Safari's navigation policy delegate to ignore the
        navigation and launch the external app registered to handle aam: URLs. Since the navigation is no longer
        scheduled, the policy delegate is never executed and the external app never launches.

        Instead of not scheduling the navigation, allow it to proceed until the client's policy delegate has executed
        and made a decision. Only disallow the navigation if the policy delegate told WebKit to proceed with the load.
        This exposes these navigations to clients via the policy delegate and via willPerformClientRedirectToURL and
        didCancelClientRedirectForFrame on the frame load delegate.

        Note that r167856 also caused an iOS regression, and this was resolved in r170120 by adding a linked-on-or-after
        check and a WebCore setting. Since the iOS regression is also resolved by the approach described above, this
        patch reverts r170120 (but keeps some of its tests).

        Tests: fast/loader/redirect-to-invalid-url-using-javascript-calls-policy-delegate.html
               fast/loader/redirect-to-invalid-url-using-javascript-disallowed.html
               fast/loader/redirect-to-invalid-url-using-meta-refresh-calls-policy-delegate.html
               fast/loader/redirect-to-invalid-url-using-meta-refresh-disallowed.html
               fast/loader/window-open-to-invalid-url-calls-policy-delegate.html
               fast/loader/window-open-to-invalid-url-disallowed.html

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Do not continue if the navigation will be a redirect
        to an invalid URL.
        * loader/NavigationScheduler.cpp:
        (WebCore::NavigationScheduler::shouldScheduleNavigation): Resumed scheduling navigations to invalid URLs.
        * page/Settings.in: Removed the allowNavigationToInvalidURL setting.

2014-08-15  Dean Jackson  <dino@apple.com>

        REGRESSION (r164173): Safari AutoFill button in popover, default buttons on iCloud control panel and Safari Safe Browsing pages don't have default appearance
        https://bugs.webkit.org/show_bug.cgi?id=136011

        Reviewed by Sam Weinig.

        When we render some controls, we need to make sure the NSWindow subclass we
        use as the host of the AppKit views identifies itself as the key window (if
        the control state is correct). We already have a flag tracking this for
        key appearance - just make sure we do the same for isKeyWindow.

        * platform/mac/ThemeMac.mm:
        (-[WebCoreThemeWindow isKeyWindow]): New override to mirror the static
        variable for key appearance.

2014-08-15  Zalan Bujtas  <zalan@apple.com>

        Do not use FloatRect::infiniteRect() to flag full repaints.
        https://bugs.webkit.org/show_bug.cgi?id=135900

        Reviewed by Simon Fraser.

        Converting FloatRect::infiniteRect() to IntRect leads to value overflow
        and we end up with invalid repaint rectangle. Use a boolean flag to indicate
        full repaint request.

        Covered by existing tests.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
        (WebCore::GraphicsLayerCA::setNeedsDisplay):
        (WebCore::GraphicsLayerCA::setNeedsDisplayInRect):
        (WebCore::GraphicsLayerCA::repaintLayerDirtyRects):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/TileGrid.cpp:
        (WebCore::TileGrid::setTileNeedsDisplayInRect):
        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayerMac::setNeedsDisplay):
        (PlatformCALayerMac::setNeedsDisplayInRect):

2014-08-15  Benjamin Poulain  <benjamin@webkit.org>

        Unify the modes style resolution modes SharingRules and StyleInvalidation
        https://bugs.webkit.org/show_bug.cgi?id=135969

        Reviewed by Andreas Kling.

        Unifying the Collector and SelectorCheckers was done in previous patches,
        this is just removing the enums.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::collectMatchingRules):
        (WebCore::ElementRuleCollector::hasAnyMatchingRules):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::match):
        * css/SelectorChecker.h:
        * css/StyleInvalidationAnalysis.cpp:
        (WebCore::invalidateStyleRecursively):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateMarkPseudoStyleForPseudoElement):

2014-08-15  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: compile :-webkit-full-page-media
        https://bugs.webkit.org/show_bug.cgi?id=135968

        Reviewed by Alexey Proskuryakov.

        Add the pseudo class :-webkit-full-page-media with an unoptimized function call.

        It would be possible to inline it, but this selector is so uncommon I don't think
        it is worth having any additional complexity for it.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isMediaDocument):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):

2014-08-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        Fix gliding in AxisScrollSnapAnimator for Mac
        https://bugs.webkit.org/show_bug.cgi?id=135971

        Reviewed by Dean Jackson.

        Previously, momentum events that are handled immediately after finishing a glide animation cause a second, extremely
        slow glide animation to trigger. To fix this, I added a new state DestinationReached. During this state, additional
        momentum events that are handled after the glide animation completes will not fill up the momentum window and trigger
        a second glide event.

        * platform/mac/AxisScrollSnapAnimator.h:
        * platform/mac/AxisScrollSnapAnimator.mm:
        (WebCore::AxisScrollSnapAnimator::AxisScrollSnapAnimator):
        (WebCore::AxisScrollSnapAnimator::handleWheelEvent):
        (WebCore::AxisScrollSnapAnimator::scrollSnapAnimationUpdate):
        (WebCore::AxisScrollSnapAnimator::endScrollSnapAnimation):
        (WebCore::AxisScrollSnapAnimator::computeGlideDelta):

2014-08-15  Eric Carlson  <eric.carlson@apple.com>

        [MSE] Implement a maximum buffer size for SourceBuffer
        https://bugs.webkit.org/show_bug.cgi?id=135614

        Reviewed by Jer Noble.

        Implement the MSE coded frame eviction algorithm: when new buffers are appended attempt
        to keep the amount of data buffered below a maximum size (which is determined by the media
        session manager) by freeing coded frames as follows:
            1 - Free frames in 30 second chunks from 0 to 30 seconds before the current time.
            2 - If there are time ranges after the range with the current time, free frames in
                30 second chunks from duration back to the beginning of the time range after
                current time.

        For now we DO NOT throw a QUOTA_EXCEEDED_ERR when we are not able to free up enough
        space to remain below the prescribed quota, because some big name, widely deployed, 
        code bases ignore the error and continue appending data as though the failed append
        succeeded, leading to a corrupted bitstream and failure to play.

        * Modules/mediasource/SampleMap.cpp:
        (WebCore::SampleMap::addSample): Drive-by performance optimization: sample->presentationTime()
            is used more than once, stash it in a local variable.
        (WebCore::SampleMap::removeSample): Ditto.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::logRanges): Debug-only function to log TimeRanges.
        (WebCore::SourceBuffer::SourceBuffer):
        (WebCore::SourceBuffer::remove): Optimize logging. Buffer full and coded frame eviction logic
            is in SourceBuffer instead of SourceBufferPrivate.
        (WebCore::SourceBuffer::appendBufferInternal): Ditto.
        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Set m_bufferFull when more data
            has been buffered than allowed.
        (WebCore::removeSamplesFromTrackBuffer): Add logging.
        (WebCore::SourceBuffer::removeCodedFrames): Improve logging. Avoid debug build assert when
            current time is after last enqueued presentation time.
        (WebCore::SourceBuffer::evictCodedFrames): The coded frame eviction algorithm.
        (WebCore::SourceBuffer::maximumBufferSize): Return the maximum amount of data that can 
            be buffered.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Improve logging. Don't attempt
            to create a PlatformTimeRanges with inverted start and end to avoid an assert in debug.
        (WebCore::SourceBuffer::hasAudio): New, return true if there are any audio tracks.
        (WebCore::SourceBuffer::hasVideo): New, return true if there are any video tracks.
        (WebCore::SourceBuffer::sourceBufferPrivateHasAudio): Call hasAudio.
        (WebCore::SourceBuffer::sourceBufferPrivateHasVideo): Call hasVideo.
        (WebCore::SourceBuffer::hasCurrentTime): Return true if currentTime is greater than duration.
        (WebCore::SourceBuffer::hasFutureTime): Ditto.
        (WebCore::SourceBuffer::extraMemoryCost): Return the amount of data buffered: the size of
            the input buffer plus the size of all track samples.
        (WebCore::SourceBuffer::reportExtraMemoryCost): Move buffered size calculation to extraMemoryCost.
        (WebCore::SourceBuffer::document): Document accessor.
        * Modules/mediasource/SourceBuffer.h: Drive-by size optimization by moving all bool member
            variables to the end of class.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::refreshCachedTime): Drive-by removal of overly chatty logging.
        (WebCore::HTMLMediaElement::maximumSourceBufferSize): New, maximum source buffer size.
        * html/HTMLMediaElement.h:

        * html/HTMLMediaSession.cpp:
        (WebCore::HTMLMediaSession::maximumMediaSourceBufferSize): New, get maximum source buffer 
            size from settings, return full amount for an SourceBuffer with video and audio, return 5%
            of the maximum for an audio-only SourceBuffer.
        * html/HTMLMediaSession.h:

        * page/Settings.in: Add maximumSourceBufferSize. Default value is enough for approximately
            five minutes of 1080p video and stereo audio.

        * platform/graphics/PlatformTimeRanges.cpp:
        (WebCore::PlatformTimeRanges::totalDuration): Drive-by optimization.
        (WebCore::PlatformTimeRanges::dump): New, allow a PlatformTimeRanges to be printed.
        * platform/graphics/PlatformTimeRanges.h:

        * platform/graphics/SourceBufferPrivate.h: Delete evictCodedFrames and isFull, that logic
            is not in SourceBuffer.
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::SourceBufferPrivateAVFObjC::processCodedFrame): Drive-by logging fix.
        (WebCore::SourceBufferPrivateAVFObjC::evictCodedFrames): Deleted.
        (WebCore::SourceBufferPrivateAVFObjC::isFull): Deleted.

        * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
        (WebCore::MockSourceBufferPrivate::evictCodedFrames): Deleted.
        (WebCore::MockSourceBufferPrivate::isFull): Deleted.
        * platform/mock/mediasource/MockSourceBufferPrivate.h:

2014-08-15  Zalan Bujtas  <zalan@apple.com>

        REGRESSION: Parts of the route/route options windows are invisible at maps.google.com
        https://bugs.webkit.org/show_bug.cgi?id=135977
        <rdar://problem/17961698>

        Reviewed by Andreas Kling.

        When the style change requires both layout and repaint, the style diff is set to
        'layout is needed' (and masks the repaint change) as normally layout is followed by a repaint.
        However, in compositing context, layout may not be followed by repaint, so when the style diff
        indicates layout, we need to figure out whether it implies repaint too.
        This logic should eventually be moved from RenderElement to RenderLayerModelObject/RenderLayer.
        -tracked here: webkit.org/b/135990

        Test: compositing/cliprect-and-position-change-on-compositing-layer.html

        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::setNeedsPositionedMovementLayout):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayerRepaint):
        (WebCore::RenderStyle::diffRequiresLayerRepaint):
        (WebCore::RenderStyle::diffRequiresRepaint): Deleted.
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:

2014-08-15  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: rewrite CodeGeneratorInspector to be modular and testable
        https://bugs.webkit.org/show_bug.cgi?id=131596

        Reviewed by Joseph Pecoraro.

        Aside from hooking up the new inspector bindings generator to the build system,
        there are a few comingled changes that would be painful to split from the main
        patch. Together, these changes make it possible to forward-declare all protocol
        enumerations as scoped enums, reducing weird ordering dependencies between domains.

        All runtimeCast() methods are now static methods of BindingTraits specializations,
        rather than as static methods of the type builder classes.

        All protocol enumeration types are scoped enums rather than struct-namespaced enums.

        Remove some implicit protocol type and enumeration definitions because they trigger
        compiler bugs or introduce unnecessary complexity in the bindings generator.

        No new tests, no behavior changed.

        * CMakeLists.txt:
        * DerivedSources.make: Update script dependencies and the bindings generator script name.

        * inspector/CommandLineAPIHost.cpp:
        (WebCore::CommandLineAPIHost::inspectImpl): Convert to BindingTraits.

        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::detectOrigin):
        (WebCore::InspectorCSSAgent::buildArrayForRegions):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::resourceTypeJson):
        (WebCore::InspectorPageAgent::cachedResourceTypeJson):
        (WebCore::InspectorPageAgent::getScriptExecutionStatus): Convert to scoped enums.

        (WebCore::InspectorPageAgent::buildObjectForFrameTree): Extract FrameResourceTree::Resources
        into its own explicitly-defined object type. The new generator does not support implicitly
        defining object types as elements of arrays.
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorReplayAgent.cpp: Disambiguate between internal and protocol types.
        (WebCore::buildInspectorObjectForSessionState):
        (WebCore::buildInspectorObjectForSegmentState):
        (WebCore::InspectorReplayAgent::sessionState):
        (WebCore::InspectorReplayAgent::didCreateFrontendAndBackend):
        (WebCore::InspectorReplayAgent::frameNavigated):
        (WebCore::InspectorReplayAgent::frameDetached):
        (WebCore::InspectorReplayAgent::willDispatchEvent):
        (WebCore::InspectorReplayAgent::startCapturing):
        (WebCore::InspectorReplayAgent::stopCapturing):
        (WebCore::InspectorReplayAgent::replayToPosition):
        (WebCore::InspectorReplayAgent::replayToCompletion):
        (WebCore::InspectorReplayAgent::pausePlayback):
        (WebCore::InspectorReplayAgent::cancelPlayback):
        (WebCore::InspectorReplayAgent::switchSession):
        (WebCore::InspectorReplayAgent::insertSessionSegment):
        (WebCore::InspectorReplayAgent::removeSessionSegment):
        (WebCore::InspectorReplayAgent::currentReplayState):
        (WebCore::InspectorReplayAgent::getAvailableSessions):
        (WebCore::InspectorReplayAgent::getSessionData):
        (WebCore::InspectorReplayAgent::getSegmentData):
        * inspector/InspectorReplayAgent.h:
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::willSendRequest):
        * inspector/InspectorStyleSheet.cpp: Convert to scoped enums. Extract CSSProperty::Status
        because scoped enums defined in a class scope trigger compiler bugs in GCC 4.8.
        (WebCore::buildMediaObject):
        (WebCore::InspectorStyle::styleWithProperties): Work around compiler disagreements.
        (WebCore::InspectorStyleSheet::create):
        (WebCore::InspectorStyleSheet::InspectorStyleSheet):
        (WebCore::InspectorStyleSheetForInlineStyle::create):
        (WebCore::InspectorStyleSheetForInlineStyle::InspectorStyleSheetForInlineStyle):
        * inspector/InspectorStyleSheet.h:

        * inspector/InspectorTimelineAgent.cpp: Convert to scoped enums and BindingTraits.
        (WebCore::toProtocol):
        (WebCore::InspectorTimelineAgent::addRecordToTimeline):
        (WebCore::InspectorTimelineAgent::sendEvent):

        * inspector/protocol/CSS.json: Extract CSSProperty::Status.
        * inspector/protocol/Page.json: Extract FrameResourceTree::Resources.

2014-08-15  Jer Noble  <jer.noble@apple.com>

        [EME][Mac] Adopt AVStreamSession.
        https://bugs.webkit.org/show_bug.cgi?id=135983

        Reviewed by Eric Carlson.

        Add AVStreamDataParsers to a new AVStreamSession instance, and expire that session when asked to release
        the session's keys.

        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC):
        (WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys):
        (WebCore::CDMSessionMediaSourceAVFObjC::update):

2014-08-15  Wenson Hsieh  <wenson_hsieh@apple.com>

        Implement snapping behavior for iOS
        https://bugs.webkit.org/show_bug.cgi?id=135769

        Reviewed by Brent Fulgham.

        Added support for snap points on iOS. This entails sending snap points from the web process to the UI process
        by encoding and decoding snap points and updating ScrollingTreeOverflowScrollingNodeIOS and WKWebView to support
        animation to snap points in the cases of mainframe and overflow scrolling, respectively.

        There are no new tests yet -- we'll need to find a way to test this!

        * WebCore.exp.in:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::setStateScrollingNodeSnapOffsetsAsFloat): Helper functions used to convert LayoutUnits to floats for snap offsets.
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Update snap offsets for mainframe scrolling, as well as the state node.
        (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode): Added snap offsets.
        * page/scrolling/AxisScrollSnapOffsets.h:
        (WebCore::closestSnapOffset): Computes the closest snap offset given a sorted vector of comparable types (e.g. float, LayoutUnit).
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        (WebCore::ScrollingStateScrollingNode::setHorizontalSnapOffsets):
        (WebCore::ScrollingStateScrollingNode::setVerticalSnapOffsets):
        * page/scrolling/ScrollingStateScrollingNode.h:
        (WebCore::ScrollingStateScrollingNode::horizontalSnapOffsets):
        (WebCore::ScrollingStateScrollingNode::verticalSnapOffsets):
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (WebCore::ScrollingTreeScrollingNode::horizontalSnapOffsets):
        (WebCore::ScrollingTreeScrollingNode::verticalSnapOffsets):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollInfoAfterLayout): Update snap offsets for overflow scrolling.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): Updates the state node's snap offsets for overflow scrolling.

2014-08-15  Dirk Schulze  <krit@webkit.org>

        Turn r/rx/ry to presentation attributes
        https://bugs.webkit.org/show_bug.cgi?id=135978

        Unreviewed typo.

        * rendering/svg/RenderSVGEllipse.cpp:
        (WebCore::RenderSVGEllipse::calculateRadiiAndCenter):

2014-08-15  Dirk Schulze  <krit@webkit.org>

        Turn r/rx/ry to presentation attributes
        https://bugs.webkit.org/show_bug.cgi?id=135978

        Reviewed by Dean Jackson.

        This follows the patch for width and height presentation attributes and
        turns rx, ry and r to presentation attributes as well:

        ​http://trac.webkit.org/changeset/171341

        Extended existing tests.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isSimpleLengthPropertyID):
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue):
        * css/SVGCSSPropertyNames.in:
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
        * rendering/style/RenderStyle.h:
        * rendering/style/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::setR):
        (WebCore::SVGRenderStyle::setRx):
        (WebCore::SVGRenderStyle::setRy):
        (WebCore::SVGRenderStyle::r):
        (WebCore::SVGRenderStyle::rx):
        (WebCore::SVGRenderStyle::ry):
        * rendering/style/SVGRenderStyleDefs.cpp:
        (WebCore::StyleLayoutData::StyleLayoutData):
        (WebCore::StyleLayoutData::operator==):
        * rendering/style/SVGRenderStyleDefs.h:
        * rendering/svg/RenderSVGEllipse.cpp:
        (WebCore::RenderSVGEllipse::calculateRadiiAndCenter):
        * rendering/svg/SVGPathData.cpp:
        (WebCore::updatePathFromCircleElement):
        (WebCore::updatePathFromEllipseElement):
        (WebCore::updatePathFromRectElement):
        (WebCore::updatePathFromLineElement): Deleted.
        * svg/SVGCircleElement.cpp:
        (WebCore::SVGCircleElement::svgAttributeChanged):
        * svg/SVGElement.cpp:
        (WebCore::populateAttributeNameToCSSPropertyIDMap):
        (WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
        * svg/SVGEllipseElement.cpp:
        (WebCore::SVGEllipseElement::svgAttributeChanged):
        * svg/SVGRectElement.cpp:
        (WebCore::SVGRectElement::svgAttributeChanged):

2014-08-15  Dirk Schulze  <krit@webkit.org>

        Turn cx/cy to presentation attributes
        https://bugs.webkit.org/show_bug.cgi?id=135975

        Reviewed by Dean Jackson.

        This follows the patch for width and height presentation attributes and
        turns x and y to presentation attributes as well:

        ​http://trac.webkit.org/changeset/171341

        Extended existing tests.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isSimpleLengthPropertyID):
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue):
        * css/SVGCSSPropertyNames.in:
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
        * rendering/style/RenderStyle.h:
        * rendering/style/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::setCx):
        (WebCore::SVGRenderStyle::setCy):
        (WebCore::SVGRenderStyle::cx):
        (WebCore::SVGRenderStyle::cy):
        * rendering/style/SVGRenderStyleDefs.cpp:
        (WebCore::StyleLayoutData::StyleLayoutData):
        (WebCore::StyleLayoutData::operator==):
        * rendering/style/SVGRenderStyleDefs.h:
        * rendering/svg/RenderSVGEllipse.cpp:
        (WebCore::RenderSVGEllipse::calculateRadiiAndCenter):
        * rendering/svg/SVGPathData.cpp:
        (WebCore::updatePathFromCircleElement):
        (WebCore::updatePathFromEllipseElement):
        * svg/SVGCircleElement.cpp:
        (WebCore::SVGCircleElement::svgAttributeChanged):
        (WebCore::SVGCircleElement::selfHasRelativeLengths): Deleted.
        * svg/SVGCircleElement.h:
        * svg/SVGElement.cpp:
        (WebCore::populateAttributeNameToCSSPropertyIDMap):
        (WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
        * svg/SVGEllipseElement.cpp:
        (WebCore::SVGEllipseElement::svgAttributeChanged):
        (WebCore::SVGEllipseElement::selfHasRelativeLengths): Deleted.
        * svg/SVGEllipseElement.h:

2014-08-15  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Fix typo in Path comment
        https://bugs.webkit.org/show_bug.cgi?id=135960

        Reviewed by Alexey Proskuryakov.

        No new tests, no change on behavior.

        * platform/graphics/Path.h:

2014-08-14  Andreas Kling  <akling@apple.com>

        Remove two unused Range functions.
        <https://webkit.org/b/135944>

        Reviewed by Geoffrey Garen.

        * dom/Range.cpp:
        (WebCore::Range::maxStartOffset): Deleted.
        (WebCore::Range::maxEndOffset): Deleted.
        * dom/Range.h:

2014-08-14  Daniel Bates  <dabates@apple.com>

        Preserve editing style for -webkit-tap-highlight-color on all ports that enable ENABLE_TOUCH_EVENTS
        https://bugs.webkit.org/show_bug.cgi?id=135963

        Reviewed by Andy Estes.

        Currently we only preserve the CSS property -webkit-tap-highlight-color during editing operations
        for iOS. Instead we should preserve it for all ports that enable ENABLE_TOUCH_EVENTS as this CSS
        property isn't specific to iOS.

        Also added FIXME comment with regards to the CSS property -webkit-composition-fill-color.

        * editing/EditingStyle.cpp:

2014-08-14  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: compile the :empty pseudo class
        https://bugs.webkit.org/show_bug.cgi?id=135958

        Reviewed by Andreas Kling.

        Compile :empty, nothing fancy.

        Tests: fast/selectors/empty-basics.html
               fast/selectors/empty-long-adjacent-backtracking.html
               fast/selectors/empty-adjacent-style-update.html
               fast/selectors/empty-style-update.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::jumpIfElementIsNotEmpty):
        (WebCore::SelectorCompiler::setElementStyleIsAffectedByEmpty):
        (WebCore::SelectorCompiler::setElementStyleFromContextIsAffectedByEmptyAndUpdateRenderStyleIfNecessary):
        (WebCore::SelectorCompiler::setElementStyleIsAffectedByEmptyAndUpdateRenderStyleIfNecessary):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsEmpty):
        * dom/CharacterData.h:
        (WebCore::CharacterData::dataMemoryOffset):
        * dom/ContainerNode.h:
        (WebCore::ContainerNode::firstChildMemoryOffset):
        * dom/Node.h:
        (WebCore::Node::flagIsText):

2014-08-14  Wenson Hsieh  <wenson_hsieh@apple.com>

        Implement scroll snapping animations on Mac
        https://bugs.webkit.org/show_bug.cgi?id=135768

        Reviewed by Beth Dakin.

        Implementing the scroll snap animations required for snapping in both overflow and mainframe areas on Mac.
        Since we receive a series of discrete wheel events, we need to predict the distance we need to traverse,
        compute the appropriate snap point, and then compute an animation curve to that location. The snap animations
        are split into two types: snapping, which handles letting go of the trackpad with zero velocity, and gliding,
        which handles flick gestures. In both cases, sinusoidal curves are used to ease animation to the target
        location. In the former case, the initial velocity is low, and increases to a maximum value during the middle
        of the animation before decreasing to 0. In the latter case, the curve is computed such that the initial
        velocity matches the user's scroll velocity, and the final velocity matches a lower final velocity that is
        somewhat arbitrarily computed. (See the FIXME in AxisScrollSnapOffsets::initializeGlideParameters). How the
        equations and constants were chosen is described in greater detail in the comments above
        AxisScrollSnapOffsets::computeGlideDelta and AxisScrollSnapOffsets::computeSnapDelta. Note that the final
        velocity should ideally be equal to 0. However, with this particular curve, this caused the animation to feel
        too slow near the snap point.

        No tests, since there is no observable change in behavior. Tests will be included when iOS and Mac scrolling
        areas hook into this code.

        * PlatformMac.cmake:
        * WebCore.xcodeproj/project.pbxproj: 
        * page/scrolling/AxisScrollSnapOffsets.cpp: 
        (WebCore::closestSnapOffset): Computes the closest snap offset given velocity and prdicted destination.
        * page/scrolling/AxisScrollSnapOffsets.h:
        * platform/mac/AxisScrollSnapAnimator.h: Added.
        (WebCore::AxisScrollSnapAnimatorClient::~AxisScrollSnapAnimatorClient):
        * platform/mac/AxisScrollSnapAnimator.mm: Added.
        (WebCore::toWheelEventStatus): Converts a pair of PlatformWheelEventPhases to a WheelEventStatus.
        (WebCore::projectedInertialScrollDistance): Attempts to predict the distance covered by the inertial scrolling phase.
        (WebCore::AxisScrollSnapAnimator::AxisScrollSnapAnimator):
        (WebCore::AxisScrollSnapAnimator::handleWheelEvent): Updates the internal state of the AxisScrollSnapAnimator, given a PlatformWheelEvent
        (WebCore::AxisScrollSnapAnimator::shouldOverrideWheelEvent): Determines whether or not we should override a wheel event given the animator's internal state.
        (WebCore::AxisScrollSnapAnimator::scrollSnapAnimationUpdate): Updates a single loop of the scroll snapping animation.
        (WebCore::AxisScrollSnapAnimator::beginScrollSnapAnimation):
        (WebCore::AxisScrollSnapAnimator::endScrollSnapAnimation):
        (WebCore::AxisScrollSnapAnimator::computeSnapDelta): See comments for more information.
        (WebCore::AxisScrollSnapAnimator::computeGlideDelta): See comments for more information.
        (WebCore::AxisScrollSnapAnimator::initializeGlideParameters):
        (WebCore::AxisScrollSnapAnimator::pushInitialWheelDelta):
        (WebCore::AxisScrollSnapAnimator::averageInitialWheelDelta):
        (WebCore::AxisScrollSnapAnimator::clearInitialWheelDeltaWindow):

2014-08-14  Saam Barati  <sbarati@apple.com>

        Allow high fidelity type profiling to be enabled and disabled.
        https://bugs.webkit.org/show_bug.cgi?id=135423

        Reviewed by Geoffrey Garen.

        PageRuntimeAgent and WorkerRuntimeAgent now call their super 
        class's (InspectorRuntimeAgent) implementation of willDestroyFrontendAndBackend
        to give InspectorRuntimeAgent a chance to recompile all JavaScript
        functions, if necessary, for type profiling.

        * inspector/PageRuntimeAgent.cpp:
        (WebCore::PageRuntimeAgent::willDestroyFrontendAndBackend):
        * inspector/WorkerRuntimeAgent.cpp:
        (WebCore::WorkerRuntimeAgent::willDestroyFrontendAndBackend):

2014-08-14  Brent Fulgham  <bfulgham@apple.com>

        [Win] Correct build when DerivedSources location not supplied by build environment
        https://bugs.webkit.org/show_bug.cgi?id=135954
        <rdar://problem/18023620>

        Reviewed by Joseph Pecoraro.

        The DerivedSourcesDirectory is not always defined, depending on what
        solution is being used to build this project. Instead, just define
        it directly, since we already know where it needs to go.

        Also:
        1. Stop redirecting the copy output to NUL so I can see if this fails in the future.
        2. Make sure the target directory exists before copying to it.

        * WebCore.vcxproj/copyForwardingHeaders.cmd: Properly specify
        the directories for copying the JS file.

2014-08-14  Zoltan Horvath  <zoltan@webkit.org>

        [CSS3-Text] Cosmetics on RenderBlockFlow::textAlignmentForLine
        https://bugs.webkit.org/show_bug.cgi?id=135940

        Reviewed by Darin Adler.

        Processing the not CSS3_TEXT case first, and removing an extra whitespace after r172524.

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::textAlignmentForLine):

2014-08-14  Martin Hock  <mhock@apple.com>

        IndexedDB should respect SchemeRegistry's database access setting.
        https://bugs.webkit.org/show_bug.cgi?id=135890
        <rdar://problem/17989469>

        Reviewed by Alexey Proskuryakov.

        Test: storage/indexeddb/open-db-private-browsing.html

        * Modules/indexeddb/IDBFactory.cpp:

2014-08-14  Yoav Weiss  <yoav@yoav.ws>

        srcset with w descriptor doesn't behave as expected when sizes is not supported.
        https://bugs.webkit.org/show_bug.cgi?id=135935

        Reviewed by Dean Jackson.

        In current implementation, if sizes is not supported, when authors would write
        markup such as `<img src=fallback.jpg srcset="100px.jpg 100w, 400px.jpg 400w">`
        the first candidate in srcset would be picked, regardless of its dimensions 
        That is likely to be confusing for authors.
        Dropping these "not yet supported" candidates is likely to be less confusing,
        and will result in the "fallback.jpg" candidate being picked.

        No new tests since this change only concerns builds that are built
        with the PICTURE_SIZES compile flag turned off.

        * html/parser/HTMLSrcsetParser.cpp:
        (WebCore::parseDescriptors):
        Drop candidates that include either 'w' or 'h' descriptors when the
        sizes feature is not supported.

2014-08-14  Antti Koivisto  <antti@apple.com>

        Make inherited style and parent renderer references
        https://bugs.webkit.org/show_bug.cgi?id=135857

        Reviewed by Andreas Kling.

        We don't recurse into non-rendered subtrees anymore so they can't be null.
        Also stop using Element::renderStyle() as it differs from e->renderer().style() in
        some rare cases (that should be fixed).

        * style/StyleResolveTree.cpp:
        (WebCore::Style::RenderTreePosition::parent):
        (WebCore::Style::RenderTreePosition::RenderTreePosition):
        (WebCore::Style::RenderTreePosition::canInsert):
        (WebCore::Style::RenderTreePosition::insert):
        (WebCore::Style::RenderTreePosition::computeNextSibling):
        (WebCore::Style::shouldCreateRenderer):
        (WebCore::Style::styleForElement):
        (WebCore::Style::createRendererIfNeeded):
        (WebCore::Style::textRendererIsNeeded):
        (WebCore::Style::createTextRendererIfNeeded):
        (WebCore::Style::updateTextRendererAfterContentChange):
        (WebCore::Style::attachChildren):
        (WebCore::Style::attachDistributedChildren):
        (WebCore::Style::attachShadowRoot):
        (WebCore::Style::resetStyleForNonRenderedDescendants):
        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
        (WebCore::Style::attachRenderTree):
        (WebCore::Style::resolveLocal):
        (WebCore::Style::resolveShadowTree):
        (WebCore::Style::updateBeforeOrAfterPseudoElement):
        (WebCore::Style::resolveTree):

2014-08-14  Antti Koivisto  <antti@apple.com>

        [Forms] We should share RenderStyle object for optgroup and option element
        https://bugs.webkit.org/show_bug.cgi?id=88405

        Reviewed by Andreas Kling.

        We can remove this special case now.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):

2014-08-14  Antti Koivisto  <antti@apple.com>

        Remove nonRendererStyle
        https://bugs.webkit.org/show_bug.cgi?id=135938

        Reviewed by Andreas Kling.

        It is used to support styling of non-renderer option elements. We have a better
        mechanism for this, Element::computedStyle().

        * dom/Element.cpp:
        (WebCore::Element::resetComputedStyle):
        (WebCore::Element::willResetComputedStyle):
        
            Add a virtual callback for computed style reset.

        * dom/Element.h:
        * dom/Node.h:
        (WebCore::Node::nonRendererStyle): Deleted.
        * dom/NodeRenderStyle.h:
        (WebCore::Node::renderStyle):
        
            renderStyle() now always matches renderer()->style()

        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::HTMLOptGroupElement):
        (WebCore::HTMLOptGroupElement::isFocusable):
        (WebCore::HTMLOptGroupElement::didAttachRenderers): Deleted.
        (WebCore::HTMLOptGroupElement::willDetachRenderers): Deleted.
        (WebCore::HTMLOptGroupElement::updateNonRenderStyle): Deleted.
        (WebCore::HTMLOptGroupElement::nonRendererStyle): Deleted.
        (WebCore::HTMLOptGroupElement::customStyleForRenderer): Deleted.
        * html/HTMLOptGroupElement.h:
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::isFocusable):
        
            Use computedStyle.

        (WebCore::HTMLOptionElement::willResetComputedStyle):
        (WebCore::HTMLOptionElement::didAttachRenderers): Deleted.
        (WebCore::HTMLOptionElement::willDetachRenderers): Deleted.
        (WebCore::HTMLOptionElement::updateNonRenderStyle): Deleted.
        (WebCore::HTMLOptionElement::nonRendererStyle): Deleted.
        (WebCore::HTMLOptionElement::customStyleForRenderer): Deleted.
        (WebCore::HTMLOptionElement::didRecalcStyle): Deleted.
        * html/HTMLOptionElement.h:
        * rendering/RenderMenuList.cpp:
        (RenderMenuList::updateOptionsWidth):
        (RenderMenuList::setTextFromOption):
        
            Use computedStyle.

2014-08-14  Jer Noble  <jer.noble@apple.com>

        [MSE] Altering the quality of a YouTube video will cause the video to distort and display an error message
        https://bugs.webkit.org/show_bug.cgi?id=135931

        Reviewed by Eric Carlson.

        When removing samples from the TrackBuffer's sample map, also remove those samples from the
        TrackBuffer's decode queue. Otherwise, removed samples may persist in the decode queue and
        either break sync-sample dependencies or cause decoding artifacts.

        Pull the code which removes samples from a track buffer into its own utility function, and
        use this function both from removeCodedFrames(), and also when samples are removed due to
        overlapping appends in sourceBufferPrivateDidReceiveSample(). In order to reference
        TrackBuffers outside of SourceBuffer (and in the static removeSamplesFromTrackBuffer()
        function), make TrackBuffer a public forward declaration.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::removeSamplesFromTrackBuffer):
        (WebCore::SourceBuffer::removeCodedFrames):
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
        * Modules/mediasource/SourceBuffer.h:

2014-08-14  Zan Dobersek  <zdobersek@igalia.com>

        ImageBufferDataCairo.h is missing header guards
        https://bugs.webkit.org/show_bug.cgi?id=135933

        Reviewed by Philippe Normand.

        * platform/graphics/cairo/ImageBufferDataCairo.h:
        Add the missing head guards to avoid problems when re-inclusion occurs.

2014-08-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        Enable CSS_SCROLL_SNAP for iOS
        https://bugs.webkit.org/show_bug.cgi?id=135915

        Turn on CSS_SCROLL_SNAP for iOS and the iOS simulator.

        Reviewed by Tim Horton.

        * Configurations/FeatureDefines.xcconfig:

2014-08-13  Wenson Hsieh  <wenson_hsieh@apple.com>

        Compute and store snap point positions
        https://bugs.webkit.org/show_bug.cgi?id=135268

        Reviewed by Simon Fraser.

        Working towards implementing a way to extract snap positions (i.e. LayoutUnits) from the parsed snap point properties from CSS,
        as well as a way of storing the information. Supports both mainframe and overflow scrolling.

        No changes in behavior. I will write tests when I implement snapping for iOS and Mac.
        
        * WebCore.xcodeproj/project.pbxproj:
        * page/FrameView.cpp:
        (WebCore::FrameView::updateSnapOffsets): Invokes the static routine in AxisScrollSnapOffsets to update snap offsets for mainframe.
        * page/FrameView.h:
        * page/scrolling/AxisScrollSnapOffsets.cpp: Added.
        (WebCore::appendAndSortChildSnapOffsets):
        (WebCore::updateFromStyle):
        (WebCore::updateSnapOffsetsForScrollableArea): Update the ScrollableArea's snap axes.
        * page/scrolling/AxisScrollSnapOffsets.h: Added.
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::setHorizontalSnapOffsets):
        (WebCore::ScrollableArea::setVerticalSnapOffsets):
        (WebCore::ScrollableArea::clearHorizontalSnapOffsets): Resets the unique_ptr for horizontal snap points.
        (WebCore::ScrollableArea::clearVerticalSnapOffsets): Resets the unique_ptr for vertical snap points.
        * platform/ScrollableArea.h:
        (WebCore::ScrollableArea::horizontalSnapOffsets): Returns a pointer to the ScrollableArea's horizontal snap points.
        (WebCore::ScrollableArea::verticalSnapOffsets): Returns a pointer to the ScrollableArea's vertical snap points.
        (WebCore::ScrollableArea::updateSnapOffsets):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateSnapOffsets): Invokes the static routine in AxisScrollSnapOffsets to update snap offsets for an overflow area.
        * rendering/RenderLayer.h:

2014-08-13  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/135911> WebKit should build on Yosemite with the public SDK.

        Reviewed by Darin Adler.

        * rendering/RenderThemeMac.mm: Fix the forward-declaration of NSServicesRolloverButtonCell.

2014-08-13  Alex Christensen  <achristensen@webkit.org>

        Progress towards CMake on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=135819

        Reviewed by Laszlo Gombos.

        * CMakeLists.txt:
        Include derived sources directory, which is needed by Apple ports.
        Separated svg and non-svg idls for ObjC bindings.
        Don't build the new gamepad API right now.  It's causing naming conflicts and it's not done.
        Process CSSUnknownRule.idl.
        * PlatformGTK.cmake:
        Added cpp as the extension of the generated bindings.
        * PlatformMac.cmake:
        Include more directories and sources.
        Add forwarding headers.
        Generate ObjC bindings.
        * bindings/objc/DOMUIKitExtensions.mm:
        Moved config.h to recognize the PLATFORM macro.
        * bindings/scripts/CodeGeneratorObjC.pm:
        (ReadPublicInterfaces):
        (GenerateInterface):
        Added some workarounds for CMake.
        * bindings/scripts/IDLAttributes.txt:
        Added missing attribute names.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        Added PLATFORM(IOS) to protect IOS_AIRPLAY code.
        * platform/mac/PasteboardMac.mm:
        Added necessary DRAG_SUPPORT protection.
        * platform/text/mac/TextCodecMac.cpp:
        Moved config.h to recognize the PLATFORM macro.        

2014-08-13  Jer Noble  <jer.noble@apple.com>

        [MSE] Replacing existing samples with overlapping new samples will cause playback to stutter.
        https://bugs.webkit.org/show_bug.cgi?id=135902

        Reviewed by Eric Carlson.

        Only mark the TrackBuffer as needing re-enqueueing if the samples removed by overlapping samples
        themselves overlap with potentially enqueued but not yet displayed frames.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

2014-08-13  Andreas Kling  <akling@apple.com>

        CSSValueList should never contain null values.
        <https://webkit.org/b/135887>

        It's not legal for a CSSValueList to contain null CSSValues, so make
        it store a Vector of Ref<CSSValue> internally instead.

        This allows the compiler to avoid emitting a number of null checks.
        It will also allow a future patch to make CSSValueList vend CSSValue&
        instead of CSSValue*.

        Most of the patch is fixing up things on their way into a CSSValueList
        to not be null at the call site, now that append() and prepend() are
        taking PassRef instead of PassRefPtr.

        Reviewed by Sam Weinig.

        * css/BasicShapeFunctions.cpp:
        (WebCore::valueForBasicShape):
        * css/BasicShapeFunctions.h:
        * css/CSSBorderImage.cpp:
        (WebCore::createBorderImageValue):
        * css/CSSBorderImage.h:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForImageSliceSide):
        (WebCore::valueForNinePieceImageSlice):
        (WebCore::valueForNinePieceImageQuad):
        (WebCore::valueForNinePieceImage):
        (WebCore::getBorderRadiusShorthandValue):
        (WebCore::ComputedStyleExtractor::valueForShadow):
        (WebCore::ComputedStyleExtractor::valueForFilter):
        (WebCore::specifiedValueForGridTrackSize):
        (WebCore::addValuesForNamedGridLinesAtIndex):
        (WebCore::scrollSnapCoordinates):
        (WebCore::createTimingFunctionValue):
        (WebCore::fillSourceTypeToCSSValue):
        (WebCore::contentToCSSValue):
        (WebCore::shapePropertyValue):
        (WebCore::ComputedStyleExtractor::propertyValue):
        (WebCore::ComputedStyleExtractor::getCSSPropertyValuesForShorthandProperties):
        (WebCore::ComputedStyleExtractor::getCSSPropertyValuesForSidesShorthand):
        (WebCore::ComputedStyleExtractor::getCSSPropertyValuesForGridShorthand):
        (WebCore::ComputedStyleExtractor::getBackgroundShorthandValue):
        * css/CSSComputedStyleDeclaration.h:
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):
        * css/CSSParser.cpp:
        (WebCore::createPrimitiveValuePair):
        (WebCore::parseTranslateTransformValue):
        (WebCore::CSSParser::createPrimitiveNumericValue):
        (WebCore::CSSParser::createPrimitiveStringValue):
        (WebCore::CSSParser::addFillValue):
        (WebCore::CSSParser::parseNonElementSnapPoints):
        (WebCore::CSSParser::parseScrollSnapDestination):
        (WebCore::CSSParser::parseFillShorthand):
        (WebCore::CSSParser::addAnimationValue):
        (WebCore::CSSParser::parseAnimationShorthand):
        (WebCore::CSSParser::parseTransitionShorthand):
        (WebCore::CSSParser::parseQuotes):
        (WebCore::CSSParser::parseContent):
        (WebCore::CSSParser::parseFillProperty):
        (WebCore::CSSParser::parseAnimationProperty):
        (WebCore::CSSParser::parseGridPosition):
        (WebCore::CSSParser::parseGridTemplateRowsAndAreas):
        (WebCore::CSSParser::parseGridLineNames):
        (WebCore::CSSParser::parseGridTrackList):
        (WebCore::CSSParser::parseGridTrackRepeatFunction):
        (WebCore::CSSParser::parseGridTrackSize):
        (WebCore::CSSParser::parseBasicShapeAndOrBox):
        (WebCore::CSSParser::parseFontVariant):
        (WebCore::CSSParser::parseTransform):
        (WebCore::CSSParser::parseBuiltinFilterArguments):
        (WebCore::CSSParser::parseFilter):
        (WebCore::CSSParser::parseTextEmphasisStyle):
        * css/CSSParser.h:
        * css/CSSProperty.cpp:
        (WebCore::CSSProperty::wrapValueInCommaSeparatedList):
        * css/CSSValueList.cpp:
        (WebCore::CSSValueList::CSSValueList):
        (WebCore::CSSValueList::removeAll):
        (WebCore::CSSValueList::hasValue):
        (WebCore::CSSValueList::copy):
        (WebCore::CSSValueList::customCSSText):
        (WebCore::CSSValueList::equals):
        (WebCore::CSSValueList::addSubresourceStyleURLs):
        (WebCore::CSSValueList::hasFailedOrCanceledSubresources):
        * css/CSSValueList.h:
        (WebCore::CSSValueList::item):
        (WebCore::CSSValueList::itemWithoutBoundsCheck):
        (WebCore::CSSValueList::append):
        (WebCore::CSSValueList::prepend):
        * css/SVGCSSComputedStyleDeclaration.cpp:
        (WebCore::paintOrder):
        * css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parsePaintOrder):
        * editing/EditingStyle.cpp:
        (WebCore::mergeTextDecorationValues):
        * editing/EditorCommand.cpp:
        (WebCore::executeToggleStyleInList):
        * svg/SVGFontFaceSrcElement.cpp:
        (WebCore::SVGFontFaceSrcElement::srcValue):
        * svg/SVGLength.cpp:
        (WebCore::SVGLength::toCSSPrimitiveValue):
        * svg/SVGLength.h:

2014-08-13  Alex Christensen  <achristensen@webkit.org>

        Removed dead plugins code.
        https://bugs.webkit.org/show_bug.cgi?id=135862

        Reviewed by Alexey Proskuryakov.

        * plugins/PluginDataNone.cpp: Removed.
        * plugins/mac: Removed.
        * plugins/mac/PluginPackageMac.cpp: Removed.
        * plugins/mac/PluginViewMac.mm: Removed.

2014-08-13  Simon Fraser  <simon.fraser@apple.com>

        [WK1] A fixed-position <img> may not show on page load
        https://bugs.webkit.org/show_bug.cgi?id=135893

        Reviewed by Tim Horton.
        
        A position:fixed image could fail to display because we didn't make a
        compositing layer for it under some circumstances. This can happen if
        RenderLayerCompositor::requiresCompositingForPosition() runs before the
        image is loaded, in which cause the layer is zero-sized, so does not get
        composited.
        
        When the image loads, there was no code path that ensured that compositing
        would be re-evaluated (unlike size changes due to style updates). Fix by
        having RenderLayer::contentChanged() also check for ImageChanged.

        Test: compositing/fixed-image-loading.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::contentChanged):

2014-08-13  Bem Jones-Bey  <bjonesbe@adobe.com>

        Refactor ShapeOutsideInfo so it isn't mutated for each line
        https://bugs.webkit.org/show_bug.cgi?id=135781

        Reviewed by Zoltan Horvath.

        Encapsulate the per line state into a ShapeOutsideDeltas object.
        updateDeltasForContainingBlockLine has been renamed to
        computeDeltasForContainingBlockLine, and it returns an instance of the
        ShapeOutsideDeltas object for that line. This object is cached, but
        none of the functionality of ShapeOutsideInfo is dependant on any line
        specific data anymore.

        No new tests, no behavior change.

        * rendering/FloatingObjects.cpp:
        (WebCore::ComputeFloatOffsetForFloatLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded):
            Update to take a FloatingObject reference because the FloatingObject cannot be null.
        (WebCore::ComputeFloatOffsetForFloatLayoutAdapter<FloatingObject::FloatRight>::updateOffsetIfNeeded):
            Ditto.
        (WebCore::ComputeFloatOffsetAdapter<FloatTypeValue>::collectIfNeeded): Pass FloatingObject to
            updateOffsetIfNeeded as a reference, since it cannot be null.
        (WebCore::ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatLeft>::updateOffsetIfNeeded):
            Use ShapeOutsideDeltas object to calculate the offset and take the FloatingObject as a
            reference.
        (WebCore::ComputeFloatOffsetForLineLayoutAdapter<FloatingObject::FloatRight>::updateOffsetIfNeeded):
            Ditto.
        (WebCore::shapeInfoForFloat): Deleted.
        * rendering/line/LineWidth.cpp:
        (WebCore::LineWidth::shrinkAvailableWidthForNewFloatIfNeeded): Update to use ShapeOutsideDeltas object.
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::ShapeOutsideInfo::computeDeltasForContainingBlockLine): Return a ShaoeOutsideDeltas object
            instead of storing line specific data in instance variables.
        (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine): Deleted.
        * rendering/shapes/ShapeOutsideInfo.h:

2014-08-13  Zoltan Horvath  <zoltan@webkit.org>

        [CSS3-Text] Add rendering support for the none value of text-justify property
        https://bugs.webkit.org/show_bug.cgi?id=135349

        Reviewed by David Hyatt.

        Spec: http://dev.w3.org/csswg/css-text-3/#valdef-text-justify.none

        Test: fast/css3-text/css3-text-justify/text-justify-none.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):

2014-08-13  Eric Carlson  <eric.carlson@apple.com>

        Media document sends incorrect referer header
        https://bugs.webkit.org/show_bug.cgi?id=135839

        Reviewed by Jer Noble.

        Test: http/tests/media/media-document-referer.html

        * html/MediaDocument.cpp:
        (WebCore::MediaDocumentParser::MediaDocumentParser): Stash referrer.
        (WebCore::MediaDocumentParser::createDocumentStructure): Set outgoing referrer.
        (WebCore::MediaDocument::MediaDocument): Stash referrer.
        * html/MediaDocument.h:

2014-08-13  Antti Koivisto  <antti@apple.com>

        Don't recurse into non-rendered subtrees when computing style
        https://bugs.webkit.org/show_bug.cgi?id=135844

        Reviewed by Andreas Kling.

        * style/StyleResolveTree.cpp:
        (WebCore::Style::resetStyleForNonRenderedDescendants):
        
        Do a simple reset of the style dirty bits and any computed style in non-renderer subtrees.

        (WebCore::Style::attachRenderTree):
        (WebCore::Style::resolveTree):
        
        Don't recurse into descendants if the element does not create a renderer.
        We didn't compute style anyway in such subtrees.

2014-08-11  Myles C. Maxfield  <mmaxfield@apple.com>

        Elements whose contents start with an astral Unicode symbol disappear when CSS `::first-letter` is applied to them
        https://bugs.webkit.org/show_bug.cgi?id=135756

        Reviewed by Darin Adler.

        The previous code assumed that all "characters" are exactly 1 16-bit code unit wide. Instead, use numCharactersInGraphemeClusters().

        This patch also modifies the signature of numCharactersInGraphemeClusters() to take a StringView instead
        of a string, which will avoid a copy.

        Test: css1/pseudo/firstletter-surrogate.html

        * platform/text/TextBreakIterator.cpp:
        (WebCore::numCharactersInGraphemeClusters): Update numCharactersInGraphemeClusters() to take a StringView.
        * platform/text/TextBreakIterator.h: Ditto.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::createFirstLetterRenderer): Use numCharactersInGraphemeClusters() to determine the length
        of the first letter, rather than assuming it has length of 1 code unit
        (WebCore::RenderBlock::updateFirstLetter): Add a FIXME comment.

2014-08-12  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Seeking to the very beginning of a buffered range stalls video playback
        https://bugs.webkit.org/show_bug.cgi?id=135865

        Reviewed by Eric Carlson.

        AVSampleBufferRenderSynchronizer will report a current time of about 100ms or so before
        the destination seek time when seeking. It does this in order to pre-roll the synchronized
        audio renderer, but this can lead to playback stalling when MediaSource::monitorSourceBuffers()
        looks at the media element's current time and determines that the current time is 100ms before
        any buffered samples.

        Clamp the value of currentMediaTime() to, at a minimum, the last requested seek time. This was
        the suggested course of action from <rdar://problem/17789374>.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationDouble):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTime):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):

2014-08-12  Jer Noble  <jer.noble@apple.com>

        [MSE] YouTube will lose audio, video after seeking backwards to an unbuffered range.
        https://bugs.webkit.org/show_bug.cgi?id=135855

        Reviewed by Eric Carlson.

        When seeking into an unbuffered or partially buffered range, we will unconditionally pass samples to the
        decode queue even if there exist large gaps between those samples. Subsequently, the decoder will not
        notify us that it has become ready for new samples until playback reaches those later samples and the samples
        are discarded.

        When sending samples to be decoded in provideMediaData(), stop if there exists a large gap in the sample timeline.
        Do this by tracking the last enqueued decode end time, and look to see if the next sample's decode time indicates
        a gap of greater than 1 second.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::TrackBuffer::TrackBuffer): Initialize lastEnqueuedDecodeEndTime.
        (WebCore::SourceBuffer::seekToTime): Set needsReenqueueing, in case samples do not yet exist in the trackBuffer
            sufficient to re-enqueue for the destination time, so that re-enqueueing will occur after the next append.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Check against lastEnqueuedDecodeEndTime, rather than
            lastEnqueuedPresentationTime before adding samples to the decodeQueue.
        (WebCore::SourceBuffer::provideMediaData): Stop when we reach a large gap between samples.
        (WebCore::SourceBuffer::reenqueueMediaForTime): Set or clear lastEnqueuedDecodeEndTime based on whether we
            have appended any non-displaying samples after flushing.

2014-08-12  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172494.
        https://bugs.webkit.org/show_bug.cgi?id=135864

        asserting on bots (Requested by kling on #webkit).

        Reverted changeset:

        "Don't recurse into non-rendered subtrees when computing
        style"
        https://bugs.webkit.org/show_bug.cgi?id=135844
        http://trac.webkit.org/changeset/172494

2014-08-12  Myles C. Maxfield  <mmaxfield@apple.com>

        Fonts forced to use non synthetic italics might be laid out with the incorrect baseline
        https://bugs.webkit.org/show_bug.cgi?id=135403

        Reviewed by Darin Adler.

        When italics is specified on a font, and the font isn't coming from the cache, we ask
        the SimpleFontData to provide a non-synthetic-italic version of itself. Our current
        implementation doesn't preserve whether or not the SimpleFontData includes vertical
        glyphs (glyphs that are not rotated when drawn in the vertical writing mode), which
        determines which baseline we use to lay out the text. By passing "false" to
        the isTextOrientationFallback argument to SimpleFontData::create(), we preserve this
        hasVerticalGlyphs flag.

        Test: fast/text/international/synthesized-italic-vertical-latin-double.html

        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::nonSyntheticItalicFontData):
        * testing/Internals.cpp:
        (WebCore::Internals::invalidateFontCache): Add "invalidateFontCache" to window.internals.
        * testing/Internals.h: Ditto.
        * testing/Internals.idl: Ditto.

2014-08-12  Peyton Randolph  <prandolph@apple.com>

        Runtime switch for long mouse press gesture. Part of 135257 - Add long mouse press gesture.
        https://bugs.webkit.org/show_bug.cgi?id=135682

        Reviewed by Tim Horton.

        This patch adds a runtime switch for the Long Mouse Press Gesture and initially sets the feature flag
        to false. It also removes the ENABLE_LONG_MOUSE_PRESS feature flag as the runtime switch now guards
        its functionality.

        * Configurations/FeatureDefines.xcconfig: Remove LONG_MOUSE_PRESS feature flag.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler):
        (WebCore::EventHandler::clear): Remove feature flag.
        (WebCore::EventHandler::handleMousePressEvent): Ditto.
        (WebCore::EventHandler::eventMayStartDrag): Ditto.
        (WebCore::EventHandler::handleMouseReleaseEvent):
        Perform event iff long mouse presses are enabled.
        (WebCore::EventHandler::beginTrackingPotentialLongMousePress): Ditto.
        (WebCore::EventHandler::recognizeLongMousePress): Ditto.
        (WebCore::EventHandler::cancelTrackingPotentialLongMousePress): Ditto.
        (WebCore::EventHandler::handleMouseMoveEvent): Remove feature flag.
        (WebCore::EventHandler::handleDrag): Ditto.
        (WebCore::EventHandler::mouseMovementExceedsThreshold): Ditto.
        * page/EventHandler.h:
        * page/Settings.in: Add longMousePressEnabled setting, initially false.

2014-08-12  Pratik Solanki  <psolanki@apple.com>

        Cached file backed resources don't make it to the Web Process when NETWORK_CFDATA_ARRAY_CALLBACK is enabled
        https://bugs.webkit.org/show_bug.cgi?id=135727
        <rdar://problem/17947880>

        Reviewed by Darin Adler.

        Add SharedBuffer::existingCFData() which returns CFDataRef if it has one. Refactor
        this code out of createCFData().

        * WebCore.exp.in:
        * platform/SharedBuffer.h:
        * platform/mac/SharedBufferMac.mm:
        (WebCore::SharedBuffer::existingCFData): Added.
        (WebCore::SharedBuffer::createCFData):

2014-08-12  Tim Horton  <timothy_horton@apple.com>

        Small region (~1px tall) where you get the selection button instead of the phone number overlay
        https://bugs.webkit.org/show_bug.cgi?id=135852
        <rdar://problem/17992795>

        Reviewed by Enrica Casucci.

        * WebCore.exp.in:

2014-08-12  Alex Christensen  <achristensen@webkit.org>

        Generate header detection headers for CMake on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=135807

        Reviewed by Brent Fulgham.

        * CMakeLists.txt:
        * PlatformWin.cmake:
        Generate and include a stub WebCoreHeaderDetection.h.

2014-08-12  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>

        Make sure that begin time cannot be greater than SMILTime::indefiniteValue unintentionally.
        https://bugs.webkit.org/show_bug.cgi?id=135838

        Reviewed by Darin Adler.

        When WebCore::SVGSMILElement::resolveInterval creates a SMILTime begin
        node for a SMILInterval, then it only checks if the value of begin is
        indefinite or unresolved but misses the case if it is between these two
        reference values.

        This is a backport of my fix in Blink: https://codereview.chromium.org/406263002/.

        Test: svg/animations/animateMotion-crash-with-large-begin-time.html

        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::parseOffsetValue):
        (WebCore::SVGSMILElement::parseClockValue):

2014-08-12  Andy Estes  <aestes@apple.com>

        Revert a change that wasn't meant to be a part of r172482.

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::init):

2014-08-12  Antti Koivisto  <antti@apple.com>

        Don't recurse into non-rendered subtrees when computing style
        https://bugs.webkit.org/show_bug.cgi?id=135844

        Reviewed by Andreas Kling.

        * style/StyleResolveTree.cpp:
        (WebCore::Style::resetStyleForNonRenderedDescendants):
        
        Do a simple reset of the style dirty bits and any computed style in non-rendered subtrees.

        (WebCore::Style::attachRenderTree):
        (WebCore::Style::resolveTree):
        
        Don't recurse into descendants if the element does not create a renderer.
        We didn't compute style anyway in such subtrees.

2014-08-12  Antti Koivisto  <antti@apple.com>

        Remove isInCanvasSubtree bit
        https://bugs.webkit.org/show_bug.cgi?id=135837

        Reviewed by Andreas Kling.

        The logic to update this bit is in a wrong place and it is not clear it does 
        the right thing in all cases. Also the optimization doesn't seem necessary,
        the focus code is not that hot.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):
        * dom/Element.cpp:
        (WebCore::Element::isFocusable):
        (WebCore::Element::clearStyleDerivedDataBeforeDetachingRenderer):
        (WebCore::Element::setIsInCanvasSubtree): Deleted.
        (WebCore::Element::isInCanvasSubtree): Deleted.
        * dom/Element.h:
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ElementRareData):
        (WebCore::ElementRareData::isInCanvasSubtree): Deleted.
        (WebCore::ElementRareData::setIsInCanvasSubtree): Deleted.
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::isKeyboardFocusable):
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::HTMLCanvasElement):
        (WebCore::HTMLCanvasElement::willAttachRenderers): Deleted.
        * html/HTMLCanvasElement.h:
        * style/StyleResolveTree.cpp:
        (WebCore::Style::attachRenderTree):

2014-08-11  Andy Estes  <aestes@apple.com>

        [iOS] Get rid of iOS.xcconfig
        https://bugs.webkit.org/show_bug.cgi?id=135809

        Reviewed by Joseph Pecoraro.

        All iOS.xcconfig did was include AspenFamily.xcconfig, so there's no need for the indirection.

        * Configurations/Base.xcconfig:
        * Configurations/iOS.xcconfig: Removed.
        * WebCore.xcodeproj/project.pbxproj:

2014-08-11  Roger Fong  <roger_fong@apple.com>

        Adjust max-width of cues based on text alignment when cue size is expanded.
        https://bugs.webkit.org/show_bug.cgi?id=135823.

        Reviewed by Brent Fulgham.

        All units are in percentages.
        If we are left aligned the max cue width is the 100 minus the cue position.
        If we are right aligned the max cue width is the cue position.
        If we are centered the max cue width is just 100.

        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::applyCSSProperties):

2014-08-12  Fabien Vallée  <fvallee@connected-labs.com>

        [GStreamer] playback rate is rounded to integer
        https://bugs.webkit.org/show_bug.cgi?id=135802

        Reviewed by Philippe Normand.

        Test: media/video-ended-event-slow-motion-playback.html

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::setRate):

2014-08-12  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r17425

        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h: Remove
        unused 'currentTime' declaration from header file. This is now fully implemented
        in platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h.

2014-08-12  Zan Dobersek  <zdobersek@igalia.com>

        Dont allocate GCond in VideoSinkGStreamer.cpp dynamically.

        Rubber-stamped by Carlos Garcia Campos.

        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
        (_WebKitVideoSinkPrivate::_WebKitVideoSinkPrivate): Move the
        g_cond_init() and gst_video_info_init() calls here.
        (_WebKitVideoSinkPrivate::~_WebKitVideoSinkPrivate): Move the
        g_cond_clear() call here.
        (webkit_video_sink_init):
        (webkitVideoSinkTimeoutCallback):
        (webkitVideoSinkRender):
        (unlockBufferMutex):
        (webkit_video_sink_class_init):
        (webkitVideoSinkDispose): Deleted. Not required anymore.

2014-08-12  Zan Dobersek  <zdobersek@igalia.com>

        Clean up GMutexLocker
        https://bugs.webkit.org/show_bug.cgi?id=135833

        Reviewed by Carlos Garcia Campos.

        Don't dynamically allocate GMutex objects. Update GMutexLocker
        initializations to pass in a GMutex reference, not a pointer.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
        (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
        (_WebKitVideoSinkPrivate::_WebKitVideoSinkPrivate): Initialize the GMutex.
        (_WebKitVideoSinkPrivate::~_WebKitVideoSinkPrivate): Clear the GMutex.
        (webkit_video_sink_init):
        (webkitVideoSinkRender):
        (webkitVideoSinkDispose):
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcGetProperty):
        (webKitWebSrcStop):
        (webKitWebSrcStart):
        (webKitWebSrcChangeState):
        (webKitWebSrcQueryWithParent):
        (webKitWebSrcGetUri):
        (webKitWebSrcSetUri):
        (webKitWebSrcNeedDataMainCb):
        (webKitWebSrcNeedDataCb):
        (webKitWebSrcEnoughDataMainCb):
        (webKitWebSrcEnoughDataCb):
        (webKitWebSrcSeekDataCb):
        (webKitWebSrcSetMediaPlayer):
        (StreamingClient::createReadBuffer):
        (StreamingClient::handleResponseReceived):
        (StreamingClient::handleDataReceived):
        (StreamingClient::handleNotifyFinished):
        (ResourceHandleStreamingClient::wasBlocked):
        (ResourceHandleStreamingClient::cannotShowURL):

2014-08-12  Eduardo Lima Mitev  <elima@igalia.com>
        [GTK] Adds dependency on GnuTLS 3.0+ for the implementation of subtle crypto algorithms
        https://bugs.webkit.org/show_bug.cgi?id=133317

        Reviewed by Philippe Normand.

        No new tests since no new functionality has been added.

        * PlatformGTK.cmake: Adds GnuTLS libs and included dirs to WebCore targets

2014-08-10  Philippe Normand  <pnormand@igalia.com>

        [WebAudio] FFTFrame is cluttered with dead code
        https://bugs.webkit.org/show_bug.cgi?id=135751

        Reviewed by Eric Carlson.

        Cleaned up unused FFTFrame implementations from the tree. If the
        FFMPEG or IPP versions are needed later on again this patch can be
        rolled out.

        No new tests, the code removed was disabled on all ports.

        * platform/audio/Biquad.cpp:
        (WebCore::Biquad::Biquad):
        (WebCore::Biquad::~Biquad):
        (WebCore::Biquad::process):
        (WebCore::Biquad::reset):
        (WebCore::Biquad::setNormalizedCoefficients):
        * platform/audio/Biquad.h:
        * platform/audio/DirectConvolver.cpp:
        (WebCore::DirectConvolver::DirectConvolver):
        (WebCore::DirectConvolver::process):
        (WebCore::DirectConvolver::reset):
        * platform/audio/DirectConvolver.h:
        * platform/audio/FFTFrame.h:
        * platform/audio/FFTFrameStub.cpp:
        * platform/audio/ffmpeg/FFTFrameFFMPEG.cpp: Removed.
        * platform/audio/ipp/FFTFrameIPP.cpp: Removed.
        * platform/audio/mac/FFTFrameMac.cpp:

2014-08-11  Mark Rowe  <mrowe@apple.com>

        Fix the Mac build.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        #if a function that's only used on iOS.

2014-08-11  Brent Fulgham  <bfulgham@apple.com>

        [Mac, iOS] Some media content never reaches full 'loaded' state
        https://bugs.webkit.org/show_bug.cgi?id=135814
        <rdar://problem/17476923>

        Reviewed by Jer Noble.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::duration): Change to a wrapper that just calls
        the durationDouble method and narrows to a float.
        (WebCore::MediaPlayerPrivateAVFoundation::durationDouble): Revised version of duration
        that works with doubles.
        (WebCore::MediaPlayerPrivateAVFoundation::currentTime): Wrapper that calls the
        currentTimeDouble method and narrows to a float.
        (WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): Use durationDouble for
        comparison with passed 'time' argument (which is a double).
        (WebCore::MediaPlayerPrivateAVFoundation::didEnd): Use 'currentTimeDouble' so we can
        cache the double precision version of this value.
        (WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost): Use 'durationDouble' since
        the rest of the calculation is in terms of doubles.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformDuration): Convert to 'double'. All
        uses of this method are internal to the MediaPlayerPrivateAVFoundation* files.
        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTimeDouble): Switch from float implementation.
        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTime): Deleted. (Moved to parent class)
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformDuration): Convert to 'double'. All
        uses of this method are internal to the MediaPlayerPrivateAVFoundation* files.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTimeDouble): Switch from floating implementation.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime): Deleted. (Moved to parent class)

2014-08-11  Enrica Casucci  <enrica@apple.com>

        Improve look and feel of combined service menu..
        https://bugs.webkit.org/show_bug.cgi?id=135824
        <rdar://problem/17936880>

        Reviewed by Tim Horton.

        Adding some localizable strings.

        * English.lproj/Localizable.strings:

2014-08-11  Jer Noble  <jer.noble@apple.com>

        [iOS] <video> element requests are missing session cookies; sometimes persistant cookies.
        https://bugs.webkit.org/show_bug.cgi?id=135816

        Reviewed by Alexey Proskuryakov.

        On iOS, the AVFoundation framework will copy appropriate cookies for the requested URL across to the
        mediaserverd process. For WebKit2, the WebProcess does not have access to session cookies for the 
        current browsing session. When creating an AVURLAsset, fetch the appropriate cookies for the requested
        URL, and pass them into AVURLAsset in the options dictionary.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerGetRawCookies): Call CookieJar's equivalent method.
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::getRawCookies): Pass to HTMLMediaElement.
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerGetRawCookies):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::toNSHTTPCookie): Convert a WebCore Cookie -> NSHTTPCookie.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Fetch cookies for the requested
            URL, and if successful, add them to the AVURLAsset options dictionary.

2014-08-11  Roger Fong  <roger_fong@apple.com>

        Adjustments to CueBox CSS Width calculations Part 2.
        https://bugs.webkit.org/show_bug.cgi?id=135820
        <rdar://problem/17954473>.

        Reviewed by Brent Fulgham.

        Two adjustments made:
        a) The default font size used was incorrect. It is not just 10px, 
        but should be based off a percentage of the video size.
        b) The top/left CSS property needs to be adjusted appropriately if the cue
        is center aligned and we change the cue's size such that the cue remains centered.
        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::applyCSSProperties):
        * html/track/VTTCue.h: Remove unnecessary constant.

2014-08-11  Beth Dakin  <bdakin@apple.com>

        Fixed backgrounds don't paint in blurred inset areas
        https://bugs.webkit.org/show_bug.cgi?id=135712

        Reviewed by Simon Fraser.

        Background geometry calculations for fixed background need to use the larger 
        visible rect.

        The first version of this patch caused a regression because it universally 
        adjusted the value for top to account for the inset whether or not the 
        viewportRect location was adjusted for the same. This version fixes that — those 
        two changes go hand-in-hand.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

2014-08-11  Antti Koivisto  <antti@apple.com>

        Pass inherited style only when resolving tree style
        https://bugs.webkit.org/show_bug.cgi?id=135799

        Reviewed by Andreas Kling.

        No need to pass around the style parent element.

        * dom/ContainerNode.h:
        (WebCore::ContainerNode::childShouldCreateRenderer): Deleted.
        * dom/Element.cpp:
        (WebCore::Element::childShouldCreateRenderer):
        * dom/Element.h:
        * style/StyleResolveTree.cpp:
        (WebCore::Style::RenderTreePosition::parent):
        (WebCore::Style::nextSiblingRenderer):
        (WebCore::Style::RenderTreePosition::RenderTreePosition):
        (WebCore::Style::RenderTreePosition::computeNextSibling):
        (WebCore::Style::shouldCreateRenderer):
        (WebCore::Style::styleForElement):
        (WebCore::Style::createRendererIfNeeded):
        (WebCore::Style::textRendererIsNeeded):
        (WebCore::Style::createTextRendererIfNeeded):
        (WebCore::Style::attachTextRenderer):
        (WebCore::Style::updateTextRendererAfterContentChange):
        (WebCore::Style::attachChildren):
        (WebCore::Style::attachDistributedChildren):
        (WebCore::Style::attachShadowRoot):
        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
        (WebCore::Style::attachRenderTree):
        (WebCore::Style::resolveLocal):
        (WebCore::Style::resolveTextNode):
        (WebCore::Style::resolveShadowTree):
        (WebCore::Style::updateBeforeOrAfterPseudoElement):
        (WebCore::Style::resolveTree):
        * svg/SVGDocument.cpp:
        (WebCore::SVGDocument::childShouldCreateRenderer): Deleted.
        
            Implement this in SVGSVGElement::rendererIsNeeded instead.

        * svg/SVGDocument.h:
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::rendererIsNeeded):

2014-08-11  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: support :scope
        https://bugs.webkit.org/show_bug.cgi?id=135733

        Reviewed by Benjamin Poulain.

        Implement :scope for CSS JIT. It introduces scope field to CheckingContext
        and it makes CheckingContext more similar to SelectorChecker::SelectorCheckingContext.
        And since :scope requires CheckingContext, QueryingRules can accept SelectorCheckerWithCheckingContext.

        Tests: fast/selectors/querySelector-scope-filtered-root.html
               fast/selectors/scope-works-as-root.html

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::shouldUseRenderStyleFromCheckingContext):
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagsToElementStyleFromContext):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::loadCheckingContext):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsScopeRoot):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateMarkPseudoStyleForPseudoElement):
        * cssjit/SelectorCompiler.h:
        (WebCore::SelectorCompiler::CheckingContext::CheckingContext):
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
        (WebCore::SelectorDataList::executeCompiledSelectorCheckerWithCheckingContext):
        (WebCore::SelectorDataList::execute):
        * dom/SelectorQuery.h:

2014-08-11  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: console.profile shouldn't stop auto-recorded profiles
        https://bugs.webkit.org/show_bug.cgi?id=135810

        Reviewed by Joseph Pecoraro.

        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::start): Added. Call internalStart. Set m_enabledFromFrontend.
        (WebCore::InspectorTimelineAgent::stop): Added. Calls internalStop. Clear m_enabledFromFrontend.
        (WebCore::InspectorTimelineAgent::internalStart): Renamed from start.
        (WebCore::InspectorTimelineAgent::internalStop): Renamed from stop.
        (WebCore::InspectorTimelineAgent::startFromConsole): Use internalStart.
        (WebCore::InspectorTimelineAgent::stopFromConsole): Use internalStop. Only stop if !m_enabledFromFrontend.
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent): Initialize m_enabledFromFrontend.
        * inspector/InspectorTimelineAgent.h: Added m_enabledFromFrontend.

2014-08-11  Brent Fulgham  <bfulgham@apple.com>

        [Win] Adjust build script for Windows production build.
        https://bugs.webkit.org/show_bug.cgi?id=135806
        <rdar://problem/17978299>

        Reviewed by Timothy Hatcher.

        * WebCore.vcxproj/copyForwardingHeaders.cmd: Copy file needed
        for WebInspectorUI build.

2014-08-11  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172393.
        https://bugs.webkit.org/show_bug.cgi?id=135796

        discussion needed about GnuTLS version bump on the bots
        (Requested by philn on #webkit).

        Reverted changeset:

        https://bugs.webkit.org/show_bug.cgi?id=133317
        http://trac.webkit.org/changeset/172393

2014-08-11  Eduardo Lima Mitev  <elima@igalia.com>
        [GTK] Adds dependency on GnuTLS 3.0+ for the implementation of subtle crypto algorithms
        https://bugs.webkit.org/show_bug.cgi?id=133317

        Reviewed by Philippe Normand.

        No new tests since no new functionality has been added.

        * PlatformGTK.cmake: Adds GnuTLS libs and included dirs to WebCore targets

2014-08-11  Eduardo Lima Mitev  <elima@igalia.com>

        [GTK] Fix debug build after r172389.

        Rubber-stamped by Philippe Normand.

        * crypto/gtk/CryptoKeyRSAGtk.cpp:
        (WebCore::CryptoKeyRSA::exportData): Remove spurious ASSERT from
        stub. It will be added back along with the real implementation of
        the method.

2014-08-11  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed fix after r172348.

        * platform/graphics/cairo/BitmapImageCairo.cpp:
        (WebCore::BitmapImage::BitmapImage): Initialize m_minimumSubsamplingLevel to 0.

2014-08-11  Eduardo Lima Mitev  <elima@igalia.com>

        [GTK] Adds stubs for all subtle crypto algorithm implemntations
        https://bugs.webkit.org/show_bug.cgi?id=133316

        Reviewed by Philippe Normand.

        No new tests since no new functionality has been added.

        * CMakeLists.txt: Add subtle crypto 'algorithms' and 'parameters' dirs to WebCore incuded dirs
        * PlatformGTK.cmake:  Add subtle crypto sources to WebCore target
        * crypto/gtk/CryptoAlgorithmAES_CBCGtk.cpp: Added.
        (WebCore::CryptoAlgorithmAES_CBC::platformEncrypt):
        (WebCore::CryptoAlgorithmAES_CBC::platformDecrypt):
        * crypto/gtk/CryptoAlgorithmAES_KWGtk.cpp: Added.
        (WebCore::CryptoAlgorithmAES_KW::platformEncrypt):
        (WebCore::CryptoAlgorithmAES_KW::platformDecrypt):
        * crypto/gtk/CryptoAlgorithmHMACGtk.cpp: Added.
        (WebCore::CryptoAlgorithmHMAC::platformSign):
        (WebCore::CryptoAlgorithmHMAC::platformVerify):
        * crypto/gtk/CryptoAlgorithmRSAES_PKCS1_v1_5Gtk.cpp: Added.
        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformEncrypt):
        (WebCore::CryptoAlgorithmRSAES_PKCS1_v1_5::platformDecrypt):
        * crypto/gtk/CryptoAlgorithmRSASSA_PKCS1_v1_5Gtk.cpp: Added.
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformSign):
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify):
        * crypto/gtk/CryptoAlgorithmRSA_OAEPGtk.cpp: Added.
        (WebCore::CryptoAlgorithmRSA_OAEP::platformEncrypt):
        (WebCore::CryptoAlgorithmRSA_OAEP::platformDecrypt):
        * crypto/gtk/CryptoAlgorithmRegistryGtk.cpp: Added.
        (WebCore::CryptoAlgorithmRegistry::platformRegisterAlgorithms):
        * crypto/gtk/CryptoDigestGtk.cpp: Added.
        (WebCore::CryptoDigest::CryptoDigest):
        (WebCore::CryptoDigest::~CryptoDigest):
        (WebCore::CryptoDigest::create):
        (WebCore::CryptoDigest::addBytes):
        (WebCore::CryptoDigest::computeHash):
        * crypto/gtk/CryptoKeyRSAGtk.cpp: Added.
        (WebCore::CryptoKeyRSA::CryptoKeyRSA):
        (WebCore::CryptoKeyRSA::create):
        (WebCore::CryptoKeyRSA::~CryptoKeyRSA):
        (WebCore::CryptoKeyRSA::restrictToHash):
        (WebCore::CryptoKeyRSA::isRestrictedToHash):
        (WebCore::CryptoKeyRSA::keySizeInBits):
        (WebCore::CryptoKeyRSA::buildAlgorithmDescription):
        (WebCore::CryptoKeyRSA::exportData):
        (WebCore::CryptoKeyRSA::generatePair):
        * crypto/gtk/SerializedCryptoKeyWrapGtk.cpp: Added.
        (WebCore::getDefaultWebCryptoMasterKey):
        (WebCore::wrapSerializedCryptoKey):
        (WebCore::unwrapSerializedCryptoKey):
        * crypto/keys/CryptoKeyRSA.h:

2014-08-10  Benjamin Poulain  <bpoulain@apple.com>

        Remove inputSpeech.png
        https://bugs.webkit.org/show_bug.cgi?id=135771

        Reviewed by Andreas Kling.

        * Resources/inputSpeech.png: Removed.
        * WebCore.xcodeproj/project.pbxproj:

2014-08-10  Tim Horton  <timothy_horton@apple.com>

        Yelp phone number highlights often disappear
        https://bugs.webkit.org/show_bug.cgi?id=135789
        <rdar://problem/17971057>

        Reviewed by Brady Eidson.

        * editing/Editor.cpp:
        (WebCore::Editor::scanSelectionForTelephoneNumbers):
        (WebCore::Editor::clearDataDetectedTelephoneNumbers): Deleted.
        * editing/Editor.h:
        (WebCore::Editor::detectedTelephoneNumberRanges):
        * page/EditorClient.h:
        (WebCore::EditorClient::selectedTelephoneNumberRangesChanged):
        Cache and expose detected telephone number ranges on Editor.
        Change selectedTelephoneNumberRangesChanged to take no arguments; it's
        just a notification now.

2014-08-09  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Transforms on non-compositing layers leave bits behind when the box boundaries changes.
        https://bugs.webkit.org/show_bug.cgi?id=135786

        Reviewed by Simon Fraser.

        Since we don't control the transformed context painting's snapping strategy, our best bet to fully
        include the transformed box when requesting for repaint is to use enclosing.
        Pixelsnapping doesn't work here for all cases. For example, a scaled box at 0.8px can be anti-aliased painted
        both at 0.5px and 1px, while with pixelsnapping we'd expect it to be painted starting from 1px;

        Test: fast/repaint/hidpi-transform-on-subpixel-repaintrect.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeRectForRepaint): enclose the result of the transform.

2014-08-08  Mark Lam  <mark.lam@apple.com>

        REGRESSION: Inspector crashes when debugger is paused and injected scripts access window.screen().
        <https://webkit.org/b/135656>

        Not reviewed.

        Rolling out r170680 which was merged to ToT in r172129.

        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::attachDebugger):

2014-08-08  Peyton Randolph  <prandolph@apple.com>

        Implement long mouse press over links. Part of 135257 - Add long mouse press gesture.
        https://bugs.webkit.org/show_bug.cgi?id=135476

        Reviewed by Tim Horton.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler): 
        (WebCore::EventHandler::clear): Clear long press state.
        (WebCore::EventHandler::handleMousePressEvent): Start the long-press if the mouse press is a left
        mouse press over a link.
        (WebCore::EventHandler::eventMayStartDrag): We cannot start a drag if we've recognized a long press.
        (WebCore::EventHandler::handleMouseReleaseEvent): 
        If we didn't recognize a long press, cancel the long press.
        (WebCore::EventHandler::beginTrackingPotentialLongMousePress): 
        Begin the long mouse press by kicking off a timer. If the timer fires before the long press is
        cancelled, the long press is recognized.
        (WebCore::EventHandler::recognizeLongMousePress): Added. Trigger the long-press and disable other
        actions like dragging.
        (WebCore::EventHandler::cancelTrackingPotentialLongMousePress): Added. Cancel the long press by 
        clearing related state.
        (WebCore::EventHandler::clearLongMousePressState): Added. Clear long press state.
        (WebCore::EventHandler::handleLongMousePressMouseMovedEvent): Added. Cancel the long press if
        the mouse moves outside a specified hysteresis interval.
        (WebCore::EventHandler::handleMouseMoveEvent): Ask handleLongMousePressMouseMovedEvent whether to
        return early and not update hovers, cursors, drags, etc.
        (WebCore::EventHandler::dragHysteresisExceeded): Factor out the hysteresis bounds check into
        mouseHysteresisExceeded().
        (WebCore::EventHandler::handleDrag): Cancel long press upon starting drag.
        (WebCore::EventHandler::mouseHysteresisExceeded): Added. General hysteresis function that takes an
        arbitrary mouse movement threshold. Factored out from dragHysteresisExceeded.
        * page/EventHandler.h:

2014-08-08  Simon Fraser  <simon.fraser@apple.com>

        [WK2] Scrolling does not work inside nested frames
        https://bugs.webkit.org/show_bug.cgi?id=135775
        <rdar://problem/17959896>

        Reviewed by Tim Horton.
        
        r169733 added an "isMainFrame" check in AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged.
        However we have to rebuild the non-fast-scrollable region when any subframe changes,
        even a deeply nested one. So always rebuild it, starting from the root frame.
        
        Fixes scrolling on nested framesets like http://www.opengl.org/sdk/docs/man3/.

        Test: platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-nested-frame-scrollability.html

        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged):

2014-08-08  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] Refactor getExcludedIntervals since only one LineSegment is ever returned
        https://bugs.webkit.org/show_bug.cgi?id=135757

        Reviewed by Zoltan Horvath.

        The interface for getExcludedIntervals was designed when shape-inside
        was still a thing, and it was possible for a line in a shape to have
        multiple segments. shape-outside can only have one segment per line,
        so this refactors the code to simplify and reflect that reality.

        No new test, no behavior change.

        * rendering/shapes/BoxShape.cpp:
        (WebCore::BoxShape::getExcludedInterval): 
        (WebCore::BoxShape::getExcludedIntervals): Deleted.
        * rendering/shapes/BoxShape.h:
        * rendering/shapes/PolygonShape.cpp:
        (WebCore::PolygonShape::getExcludedInterval):
        (WebCore::PolygonShape::getExcludedIntervals): Deleted.
        * rendering/shapes/PolygonShape.h:
        * rendering/shapes/RasterShape.cpp:
        (WebCore::RasterShape::getExcludedInterval):
        (WebCore::RasterShape::getExcludedIntervals): Deleted.
        * rendering/shapes/RasterShape.h:
        * rendering/shapes/RectangleShape.cpp:
        (WebCore::RectangleShape::getExcludedInterval):
        (WebCore::RectangleShape::getExcludedIntervals): Deleted.
        * rendering/shapes/RectangleShape.h:
        * rendering/shapes/Shape.h:
        (WebCore::LineSegment::LineSegment):
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::ShapeOutsideInfo::logicalLeftOffset):
        (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
        (WebCore::ShapeOutsideInfo::computeSegmentsForLine): Deleted.
        * rendering/shapes/ShapeOutsideInfo.h:

2014-08-08  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: add debugging flag to InspectorTest for unbuffered logging to stderr
        https://bugs.webkit.org/show_bug.cgi?id=135726

        Reviewed by Timothy Hatcher.

        Add a bridge so that InspectorTest can synchronously log to the console.

        * inspector/InspectorFrontendHost.cpp:
        (WebCore::InspectorFrontendHost::unbufferedLog): Added.
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorFrontendHost.idl:

2014-08-08  Roger Fong  <roger_fong@apple.com>

        Adjustments to CueBox CSS Width calculations.
        https://bugs.webkit.org/show_bug.cgi?id=135759
        <rdar://problem/17954473>.

        Reviewed by Eric Carlson.

        This is a followup patch that addresses some of the test failures caused by r172224.
        These tests were skipped in r172253.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize):
        Tell the cue boxes that they need to be updated when the font size specified in the user prefs changes.
        
        Cap width to 100%, calculate max-width in percentages instead of pixels.
        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::applyCSSProperties):

        (WebCore::VTTCue::setFontSize):
        Remove some unnecessary code that doesn't actually work.
        Make sure to tell cuebox that it needs to be updated.
        * html/track/VTTCue.h: Change float constant to double.

2014-08-08  Simon Fraser  <simon.fraser@apple.com>

        Clean up image subsampling code, make it less iOS-specific
        https://bugs.webkit.org/show_bug.cgi?id=134916

        Reviewed by Dean Jackson.

        Compile the image subsampling code on both Mac and iOS, and make it more platform
        neutral in general. Add a setting to allow it to be enabled on Mac for testing.
        
        The most significant changes are in ImageSourceCG and BitmapImageCG. CG's ImageSource
        is no longer stateful with respect to subsampling; its functions take a SubsamplingLevel
        when appropriate. CG's BitmapImage now determines which level of subsampling to use
        for a given frame, storing the subsampling level in the frame data. It can replace
        an aggressively subsampled frame with a less subsampled frame if necessary.
        
        To reduce the chances of subsampling affecting rendering, BitmapImage::size() now
        always returns the non-subsampled size; subsampling is strictly internal to BitmapImage.
        BitmapImage::draw() takes care of scaling the srcRect for subsampled images.
        
        iOS had a code path that enabled caching of frame metadata in BitmapImage without
        actually decoding the frame; make this cross-platform.
        
        Fix a couple of issues in the original pathc: remove a log, and ImageSource::allowSubsamplingOfFrameAtIndex()
        return false.

        * WebCore.exp.in: Changed signature for GraphicsContext::drawNativeImage().
        * WebCore.xcodeproj/project.pbxproj: Added ImageSource.cpp, which is not built
        for Cocoa but useful for reference.
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::imageSizeForRenderer): Remove iOS-specific subsampling code.
        (WebCore::CachedImage::createImage): Call setAllowSubsampling() on the image if we
        can get to Settings (m_loader is null for image documents).
        (WebCore::CachedImage::currentFrameKnownToBeOpaque): This forced decode always
        caused creation of the non-subsampled image, so remove it. There's no reason to
        eagerly decode the frame here.
        * loader/cache/CachedImage.h: Fix comment.
        * page/Settings.cpp: Add defaultImageSubsamplingEnabled, true for iOS and false for Mac.
        * page/Settings.in: Added imageSubsamplingEnabled.
        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::BitmapImage): Init some more things. Default m_allowSubsampling to
        true for iOS to catch images created in code paths where we can't get to Settings.
        (WebCore::BitmapImage::haveFrameAtIndex): Handy helper.
        (WebCore::BitmapImage::cacheFrame): Now takes the subsampling level and whether to cache
        just metadata, or also the frame.
        (WebCore::BitmapImage::didDecodeProperties): No need to store originalSize.
        (WebCore::BitmapImage::updateSize): When we get the size for the first time, call
        determineMinimumSubsamplingLevel() to choose a reasonable subsampling level which takes
        platform-specific limits into account.
        (WebCore::BitmapImage::dataChanged): Comment.
        (WebCore::BitmapImage::ensureFrameIsCached): Take ImageFrameCaching into account.
        (WebCore::BitmapImage::frameAtIndex): Choose a subsampling level given the scale,
        then determine if we can use the currently cached frame, or whether we should resample.
        (WebCore::BitmapImage::frameIsCompleteAtIndex): Caching m_isComplete is now done when caching
        frame metadata.
        (WebCore::BitmapImage::frameDurationAtIndex):
        (WebCore::BitmapImage::frameHasAlphaAtIndex): The 'true' return is the safe return value.
        (WebCore::BitmapImage::frameOrientationAtIndex): Caching m_orientation is now done when caching
        frame metadata.
        (WebCore::BitmapImage::cacheFrameInfo): Deleted.
        (WebCore::BitmapImage::originalSize): Deleted.
        (WebCore::BitmapImage::originalSizeRespectingOrientation): Deleted.
        (WebCore::BitmapImage::currentFrameSize): Deleted.
        (WebCore::BitmapImage::ensureFrameInfoIsCached): Deleted.
        * platform/graphics/BitmapImage.h:
        (WebCore::FrameData::FrameData):
        * platform/graphics/GraphicsContext.h: No need to pass a scale param now.
        * platform/graphics/ImageSource.cpp: Non-Cocoa changes.
        (WebCore::ImageSource::subsamplingLevelForScale):
        (WebCore::ImageSource::allowSubsamplingOfFrameAtIndex):
        (WebCore::ImageSource::size):
        (WebCore::ImageSource::frameSizeAtIndex):
        (WebCore::ImageSource::createFrameAtIndex):
        (WebCore::ImageSource::frameBytesAtIndex):
        * platform/graphics/ImageSource.h: No longer stores subsampling state.
        (WebCore::ImageSource::isSubsampled): Deleted.
        * platform/graphics/cairo/BitmapImageCairo.cpp:
        (WebCore::BitmapImage::determineMinimumSubsamplingLevel):
        * platform/graphics/cg/BitmapImageCG.cpp:
        (WebCore::FrameData::clear):
        (WebCore::BitmapImage::BitmapImage): Init more members.
        (WebCore::BitmapImage::determineMinimumSubsamplingLevel): Choose a minimum subsampling
        level for the platform (subsample until the image area falls under a threshold).
        (WebCore::BitmapImage::checkForSolidColor): Don't bother decoding frames if the image
        is not 1x1. Also take care not to decode a non-subsampled image.
        (WebCore::BitmapImage::draw): The actual bug fix is here; remove logic that
        computed srcRectForCurrentFrame from m_size and m_originalSize; for some callers
        srcRect was computed using the pre-subsampled size, and for others it was the subsampled size.
        Instead, scale srcRect by mapping between the non-subsampled size, and the size of the CGImageRef
        which is affected by subsampling.
        (WebCore::BitmapImage::copyUnscaledFrameAtIndex):
        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage): Remove #ifdeffed code.
        (WebCore::GraphicsContext3D::paintToCanvas):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawNativeImage): No more weird scaling!
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::ImageSource):
        (WebCore::createImageSourceOptions): Helper that always returns a new CFDictionaryRef.
        (WebCore::imageSourceOptions): If not subsampling, return the cached CFDictionaryRef, otherwise
        make a new options dict and return it.
        (WebCore::ImageSource::subsamplingLevelForScale): Helper that returns a subsampling level
        between 0 and 3 given a scale.
        (WebCore::ImageSource::isSizeAvailable): SkipMetadata is a default value for the param now.
        (WebCore::ImageSource::allowSubsamplingOfFrameAtIndex): We turn off subsampling for progressive
        JPEGs because of a bug, so need this to know if a frame should be subsampled.
        (WebCore::ImageSource::frameSizeAtIndex): The looping to find a subsampling level is now in BitmapImageCG.
        (WebCore::ImageSource::orientationAtIndex):
        (WebCore::ImageSource::size): Always use a subsampling level of 0 for size().
        (WebCore::ImageSource::getHotSpot):
        (WebCore::ImageSource::repetitionCount):
        (WebCore::ImageSource::createFrameAtIndex): The caller mapped a scale to a level.
        (WebCore::ImageSource::frameDurationAtIndex):
        (WebCore::ImageSource::frameBytesAtIndex):
        (WebCore::ImageSource::imageSourceOptions): Deleted.
        (WebCore::ImageSource::originalSize): Deleted.
        * platform/graphics/mac/ImageMac.mm:
        (WebCore::BitmapImage::invalidatePlatformData): 0 -> nullptr
        * platform/graphics/wince/ImageWinCE.cpp:
        (WebCore::BitmapImage::determineMinimumSubsamplingLevel):

2014-08-08  Alex Christensen  <achristensen@webkit.org>

        Progress towards using CMake on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=135662

        Reviewed by Laszlo Gombos.

        * CMakeLists.txt:
        Added necessary include directories and idls.
        * PlatformEfl.cmake:
        * PlatformGTK.cmake:
        Moved ImageSource.cpp and image-decoders to platform CMake files because they are not used on mac.
        * PlatformMac.cmake:
        Corrected some sources.
        * config.h:
        Added workaround for not using prefix headers with CMake.
        * platform/graphics/ANGLEWebKitBridge.h:
        Compile fix to find ANGLE headers while using CMake.
        * platform/graphics/FormatConverter.h:
        * platform/mac/NSScrollerImpDetails.h:
        Removed unnecessary config.h includes.

2014-08-08  Zan Dobersek  <zdobersek@igalia.com>

        [CMake] Drop the required version of CMake down to 2.8.8
        https://bugs.webkit.org/show_bug.cgi?id=135713

        Reviewed by Alex Christensen.

        * CMakeLists.txt: Use set_property() to set INCLUDE_DIRECTORIES for
        the ANGLESupport library. This avoids using target_include_directories()
        which requires CMake 2.8.11.

2014-08-05  Philippe Normand  <pnormand@igalia.com>

        [GStreamer][1.4] Caps negotiation failure in playback pipeline
        https://bugs.webkit.org/show_bug.cgi?id=135607

        Reviewed by Carlos Garcia Campos.

        Ensure the capsfilters used in front of interleave negotiate their
        caps correctly with audioconvert which requires audio buffers with
        interleaved layout.

        No new tests, existing webaudio tests will cover this change once
        we bump our JHBuild moduleset to GStreamer 1.4.

        * platform/audio/gstreamer/WebKitWebAudioSourceGStreamer.cpp:
        (getGStreamerMonoAudioCaps):

2014-08-07  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172291.
        https://bugs.webkit.org/show_bug.cgi?id=135748

        broke background-attachment-fixed with backround-size-contain
        (e.g. iCloud.com) (Requested by thorton on #webkit).

        Reverted changeset:

        "Fixed backgrounds don't paint in blurred inset areas"
        https://bugs.webkit.org/show_bug.cgi?id=135712
        http://trac.webkit.org/changeset/172291

2014-08-07  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Border thickness and length flooring can result empty borders
        due to losing precision during multiple float <-> LayoutUnit conversions.
        https://bugs.webkit.org/show_bug.cgi?id=135686

        Reviewed by Simon Fraser.

        The combination of losing precision and flooring the border thickness/length to avoid
        empty border rect drawing can lead to false positives of missing borders.
        This patch moves empty border checking right before painting where we can safely use round
        instead of floor.

        Tests: fast/borders/hidpi-border-width-flooring.html

        * rendering/RenderObject.cpp:
        (WebCore::drawBorderLineRect):
        (WebCore::drawBorderLine):
        (WebCore::RenderObject::drawLineForBoxSide):

2014-08-07  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Build break with mpegts since r167025
        https://bugs.webkit.org/show_bug.cgi?id=135737

        Reviewed by Gyuyoung Kim.

        * PlatformEfl.cmake: Added includes and libraries about MPEG-TS

2014-08-07  Simon Fraser  <simon.fraser@apple.com>

        HTML <sub> and <sup> elements do not work in some 64-bit builds
        https://bugs.webkit.org/show_bug.cgi?id=135736

        Reviewed by Tim Horton.
        
        RootInlineBox::verticalPositionForBox() had some implicit conversions between
        LayoutUnit and int that caused overflow, and resulted in different comparison
        behavior with an int constant in different architectures, since overflow behavior
        is undefined.
        
        Specifically, VerticalPositionCache was written in terms of ints with a special
        0x80000000 "not found" value. However, 0x80000000 was being assigned to
        a LayoutUnit, which multiplies by 64 causing overflow. The result was then
        compared again with 0x80000000 which could pass or fail depending on overflow
        behavior.
        
        Fix by converting VerticalPositionCache to use LayoutUnits, and to have a bool
        return value with a result out param, instead of a special return value.

        Not easily testable, since the difference does not show in DRT output,
        and a ref test would be flakey.

        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::ascentAndDescentForBox):
        * rendering/VerticalPositionCache.h:
        (WebCore::VerticalPositionCache::get):
        (WebCore::VerticalPositionCache::set):

2014-08-07  Benjamin Poulain  <bpoulain@apple.com>

        Get rid of SCRIPTED_SPEECH
        https://bugs.webkit.org/show_bug.cgi?id=135729

        Reviewed by Brent Fulgham.

        * Configurations/FeatureDefines.xcconfig:
        * Modules/speech/SpeechGrammar.cpp: Removed.
        * Modules/speech/SpeechGrammar.h: Removed.
        * Modules/speech/SpeechGrammar.idl: Removed.
        * Modules/speech/SpeechGrammarList.cpp: Removed.
        * Modules/speech/SpeechGrammarList.h: Removed.
        * Modules/speech/SpeechGrammarList.idl: Removed.
        * Modules/speech/SpeechRecognition.cpp: Removed.
        * Modules/speech/SpeechRecognition.h: Removed.
        * Modules/speech/SpeechRecognition.idl: Removed.
        * Modules/speech/SpeechRecognitionAlternative.cpp: Removed.
        * Modules/speech/SpeechRecognitionAlternative.h: Removed.
        * Modules/speech/SpeechRecognitionAlternative.idl: Removed.
        * Modules/speech/SpeechRecognitionClient.h: Removed.
        * Modules/speech/SpeechRecognitionController.cpp: Removed.
        * Modules/speech/SpeechRecognitionController.h: Removed.
        * Modules/speech/SpeechRecognitionError.cpp: Removed.
        * Modules/speech/SpeechRecognitionError.h: Removed.
        * Modules/speech/SpeechRecognitionError.idl: Removed.
        * Modules/speech/SpeechRecognitionEvent.cpp: Removed.
        * Modules/speech/SpeechRecognitionEvent.h: Removed.
        * Modules/speech/SpeechRecognitionEvent.idl: Removed.
        * Modules/speech/SpeechRecognitionResult.cpp: Removed.
        * Modules/speech/SpeechRecognitionResult.h: Removed.
        * Modules/speech/SpeechRecognitionResult.idl: Removed.
        * Modules/speech/SpeechRecognitionResultList.cpp: Removed.
        * Modules/speech/SpeechRecognitionResultList.h: Removed.
        * Modules/speech/SpeechRecognitionResultList.idl: Removed.
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::setScriptedSpeechEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::scriptedSpeechEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::webkitSpeechRecognitionEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::webkitSpeechRecognitionErrorEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::webkitSpeechRecognitionEventEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::webkitSpeechGrammarEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::webkitSpeechGrammarListEnabled): Deleted.
        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::convertValue): Deleted.
        * bindings/js/JSDictionary.h:
        * dom/EventNames.in:
        * dom/EventTargetFactory.in:

2014-08-07  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed gardening.

        Don't build the JSFileException and JSFileReaderSync files in 64-bit; they are already part
        of DerivedObjects.cpp.

        * WebCore.vcxproj/WebCore.vcxproj: Exclude JSFileException and JSFileReaderSync to avoid
        multiple definitions of symbols.

2014-08-07  Enrica Casucci  <enrica@apple.com>

        [Services with UI] Action menu does not appear if selection includes both text and an image.
        https://bugs.webkit.org/show_bug.cgi?id=135731
        <rdar://problem/17837491>

        Reviewed by Brady Eidson.

        When collecting selection rects via SelectionRectGatherer we should also note if the selection
        contains non text elements. This way the Notifier class can send that information to ServicesOverlayController
        to properly handle the highlight for the service.

        * editing/SelectionRectGatherer.cpp:
        (WebCore::SelectionRectGatherer::SelectionRectGatherer):
        (WebCore::SelectionRectGatherer::Notifier::~Notifier):
        (WebCore::SelectionRectGatherer::clearAndCreateNotifier):
        * editing/SelectionRectGatherer.h:
        (WebCore::SelectionRectGatherer::setTextOnly):
        (WebCore::SelectionRectGatherer::isTextOnly):
        * page/EditorClient.h:
        (WebCore::EditorClient::selectionRectsDidChange):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::applySubtreeSelection):

2014-08-07  Andy Estes  <aestes@apple.com>

        [Mac] Parental Controls content filter is mistakenly enabled for HTTP responses
        https://bugs.webkit.org/show_bug.cgi?id=135730

        Reviewed by Brady Eidson.

        On the Mac, the WebFilterEvaluator (Parental Controls) content filter should only be enabled for HTTPS
        responses. During iOS upstreaming we mistakenly enabled it for HTTP responses as well, and this causes HTTP
        responses to be filtered twice -- once by the Parental Controls HTTP proxy and once by WebCore. Revert to the
        pre-upstreaming behavior and only enable the content filter for HTTPS responses.

        No new tests. Content filtering is not testable from WebKit.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::responseReceived): Passed the response to ContentFilter::canHandleResponse().
        * platform/ContentFilter.h:
        * platform/mac/ContentFilterMac.mm:
        (WebCore::ContentFilter::canHandleResponse): Renamed from isEnabled(). Checks the response's scheme on Mac to
        determine whether WebFilterEvaluator should be used.
        (WebCore::ContentFilter::isEnabled): Deleted.

2014-08-07  Beth Dakin  <bdakin@apple.com>

        Fixed backgrounds don't paint in blurred inset areas
        https://bugs.webkit.org/show_bug.cgi?id=135712

        Reviewed by Simon Fraser.

        Background geometry calculations for fixed background need to use the larger 
        visible rect. 

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

2014-08-07  Jer Noble  <jer.noble@apple.com>

        [EME][Mac] Error codes returned by AVSampleBufferDisplayLayer are negative; clip when passed to JavaScript as doubles.
        https://bugs.webkit.org/show_bug.cgi?id=135710

        Reviewed by Brent Fulgham.

        Return the absolute value of the error codes returned by AVSampleBufferDisplayLayer, so that the conversion from
        unsigned -> double does not clip due to the (converted) value being greater than 2^53.

        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError):
        (WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError):

2014-08-07  Daniel Bates  <dabates@apple.com>

        Sometimes Gmail cannot load messages, particularly on refresh ("...the application ran into an unexpected error...")
        https://bugs.webkit.org/show_bug.cgi?id=135688
        <rdar://problem/17886686>

        Reviewed by Alexey Proskuryakov.

        Fixes an issue where gmail.com may fail to load the list of messages. In particular, a SQLTransactionCallback
        function may not be executed and hence Gmail will not display the list of messages and
        will subsequently display an error message.

        When a WebKit client defers loading of a page (e.g. -[WebView setDefersCallbacks:YES]), WebCore
        may still load the main resource, say if substitute data is available for it, and defer executing
        tasks, such as a SQLTransactionCallback function, by appending such tasks to the end of the list
        of pending tasks for the associated Document. This list of pending tasks is never processed when
        a client subsequently allows loading (e.g. -[WebView setDefersCallbacks:NO])). Therefore, we never
        execute a SQLTransactionCallback function that was deferred.

        Ideally WebCore would defer loading of substitute data when a WebKit client requests that loading
        be deferred and hence a SQLTransactionCallback function would be deferred as a consequence of the
        lack of JavaScript script execution (since substitute data wasn't loaded and hence any JavaScript
        script contained in the substitute data that initiates a SQL transaction isn't executed). For now,
        it's sufficient to only defer executing tasks when either there are existing pending tasks or the
        page defers loading and active DOM objects in the document are suspended (e.g. Document::suspendActiveDOMObjects() was called).

        * dom/Document.cpp:
        (WebCore::Document::postTask):

2014-08-07  Benjamin Poulain  <bpoulain@apple.com>

        Get rid of INPUT_SPEECH
        https://bugs.webkit.org/show_bug.cgi?id=135672

        Reviewed by Andreas Kling.

        * CMakeLists.txt:
        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * Modules/speech/SpeechSynthesis.cpp:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::setSpeechInputEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::speechInputEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::webkitSpeechEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::webkitGrammarEnabled): Deleted.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/CSSValueKeywords.in:
        * css/html.css:
        (input::-webkit-input-speech-button): Deleted.
        * dom/Element.h:
        (WebCore::Element::isInputFieldSpeechButtonElement): Deleted.
        * dom/EventNames.in:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseAttribute):
        (WebCore::HTMLInputElement::speechButtonElement): Deleted.
        (WebCore::HTMLInputElement::isSpeechEnabled): Deleted.
        * html/HTMLInputElement.h:
        * html/HTMLInputElement.idl:
        * html/InputType.cpp:
        (WebCore::InputType::shouldRespectListAttribute):
        (WebCore::InputType::shouldRespectSpeechAttribute): Deleted.
        * html/InputType.h:
        (WebCore::InputType::speechButtonElement): Deleted.
        * html/NumberInputType.cpp:
        (WebCore::NumberInputType::shouldRespectSpeechAttribute): Deleted.
        * html/NumberInputType.h:
        * html/PasswordInputType.cpp:
        (WebCore::PasswordInputType::shouldRespectSpeechAttribute): Deleted.
        * html/PasswordInputType.h:
        * html/SearchInputType.cpp:
        (WebCore::SearchInputType::shouldRespectSpeechAttribute): Deleted.
        * html/SearchInputType.h:
        * html/TelephoneInputType.cpp:
        (WebCore::TelephoneInputType::shouldRespectSpeechAttribute): Deleted.
        * html/TelephoneInputType.h:
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::needsContainer):
        (WebCore::TextFieldInputType::createShadowSubtree):
        (WebCore::TextFieldInputType::destroyShadowSubtree):
        (WebCore::TextFieldInputType::speechButtonElement): Deleted.
        * html/TextFieldInputType.h:
        * html/TextInputType.cpp:
        (WebCore::TextInputType::shouldRespectSpeechAttribute): Deleted.
        * html/TextInputType.h:
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement): Deleted.
        (WebCore::InputFieldSpeechButtonElement::~InputFieldSpeechButtonElement): Deleted.
        (WebCore::InputFieldSpeechButtonElement::create): Deleted.
        (WebCore::InputFieldSpeechButtonElement::defaultEventHandler): Deleted.
        (WebCore::InputFieldSpeechButtonElement::willRespondToMouseClickEvents): Deleted.
        (WebCore::InputFieldSpeechButtonElement::setState): Deleted.
        (WebCore::InputFieldSpeechButtonElement::speechInput): Deleted.
        (WebCore::InputFieldSpeechButtonElement::didCompleteRecording): Deleted.
        (WebCore::InputFieldSpeechButtonElement::didCompleteRecognition): Deleted.
        (WebCore::InputFieldSpeechButtonElement::setRecognitionResult): Deleted.
        (WebCore::InputFieldSpeechButtonElement::willAttachRenderers): Deleted.
        (WebCore::InputFieldSpeechButtonElement::willDetachRenderers): Deleted.
        (WebCore::InputFieldSpeechButtonElement::startSpeechInput): Deleted.
        (WebCore::InputFieldSpeechButtonElement::stopSpeechInput): Deleted.
        * html/shadow/TextControlInnerElements.h:
        (WebCore::toInputFieldSpeechButtonElement): Deleted.
        * page/SpeechInput.cpp: Removed.
        * page/SpeechInput.h: Removed.
        * page/SpeechInputClient.h: Removed.
        * page/SpeechInputEvent.cpp: Removed.
        * page/SpeechInputEvent.h: Removed.
        * page/SpeechInputEvent.idl: Removed.
        * page/SpeechInputListener.h: Removed.
        * page/SpeechInputResult.cpp: Removed.
        * page/SpeechInputResult.h: Removed.
        * page/SpeechInputResult.idl: Removed.
        * page/SpeechInputResultList.cpp: Removed.
        * page/SpeechInputResultList.h: Removed.
        * page/SpeechInputResultList.idl: Removed.
        * platform/ThemeTypes.h:
        * rendering/RenderInputSpeech.cpp: Removed.
        * rendering/RenderInputSpeech.h: Removed.
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::paintBorderOnly):
        (WebCore::RenderTheme::paintDecorations):
        (WebCore::RenderTheme::adjustInputFieldSpeechButtonStyle): Deleted.
        (WebCore::RenderTheme::paintInputFieldSpeechButton): Deleted.
        * rendering/RenderTheme.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):

2014-08-07  Eric Carlson  <eric.carlson@apple.com>

        Create UTF-8 string from in-band VTT cues
        https://bugs.webkit.org/show_bug.cgi?id=135716

        Reviewed by Brent Fulgham.

        Tests will be added in https://bugs.webkit.org/show_bug.cgi?id=135717.

        * platform/graphics/ISOVTTCue.cpp:
        (WebCore::ISOBox::peekString): Call String::fromUTF8 because we know that VTT is always
            UTF-8.

2014-08-06  Jeremy Jones  <jeremyj@apple.com>

        Disable implicit animations on video layer.
        https://bugs.webkit.org/show_bug.cgi?id=135679

        Reviewed by Eric Carlson.

        Disable implicit animations on AVPlayerLayer except when setting fullscreen frame.
        This prevents unwanted animations.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): disable implicit animations
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): allow implicit animations while changing fullscreen frame.

2014-08-07  Gordon Sheridan  <gordon_sheridan@apple.com>

        Provide methods to clear undesired references to HistoryItems that have been removed from the back/forard list.
        https://bugs.webkit.org/show_bug.cgi?id=135634
        <rdar://problem/17388461>

        Reviewed by Brady Eidson.

        No new tests.  Would require an API test that also needs an httpd, which we don't currently support.

        * WebCore.exp.in:
        Added export for Page::clearPreviousItemFromAllPages.

        * loader/HistoryController.cpp:
        (WebCore::HistoryController::clearPreviousItem):
        Clear m_previousItem and iterate over children recursively calling clearPreviousItem().
        The m_previousItem is cleared for the target HistoryController, and all of its descendents.

        * loader/HistoryController.h:
        Declared HistoryController::clearPreviousItem.

        * page/Page.cpp:
        (WebCore::Page::clearPreviousItemFromAllPages):
        Iterate over each page in the web process, checking if the previous item of
        the HistoryController for the main frame is the same as the item being removed. If so, the
        frameTree is traversed and each associated HistoryController has its m_previousItem cleared.

        * page/Page.h:
        Declared Page::clearPreviousItemFromAllPages.

2014-08-07  Roger Fong  <roger_fong@apple.com>

        Unreviewed build fix attempt #2 following r172224.

        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::applyCSSProperties):

2014-08-07  Roger Fong  <roger_fong@apple.com>

        Unreviewed build fix following r172224.

        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::applyCSSProperties):
        * html/track/VTTCue.h:

2014-08-07  Daniel Bates  <dabates@apple.com>

        Unreviewed, rolling out r172219.

        Caused some /fast/workers tests to fail; will investigate
        offline.

        Reverted changeset:

        "Sometimes Gmail cannot load messages, particularly on refresh
        ("...the application ran into an unexpected error...")"
        https://bugs.webkit.org/show_bug.cgi?id=135688
        http://trac.webkit.org/changeset/172219

2014-08-06  Roger Fong  <roger_fong@apple.com>

        Increase width of caption container if a larger font size is selected from user prefs.
        https://bugs.webkit.org/show_bug.cgi?id=135677.

        Reviewed by Brent Fulgham.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
        Upon creation of a VTTCueBox make sure to supply the font size set by the user prefs.
        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
        Increase the width of the cue box based on user prefs font size selection.

        * html/track/VTTCue.h:
        Keep track of the font size set in the user prefs for use when the cue boxes are created.
        (WebCore::VTTCueBox::setFontSizeFromCaptionUserPrefs):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::applyCSSProperties):
        Increase the width of the cue box based on user prefs font size selection.
        (WebCore::VTTCue::getDisplayTree):
        (WebCore::VTTCue::setFontSize):
        If the font size set is important then we don't want to use the font size set by user prefs, set it to 0.

2014-08-07  Alex Christensen  <achristensen@webkit.org>

        Unreviewed build fix after r172220.

        * css/SelectorChecker.cpp:
        (WebCore::hasScrollbarPseudoElement):
        Use ASSERT_UNUSED instead of just ASSERT.

2014-08-07  Alex Christensen  <achristensen@webkit.org>

        Compile scrollbar pseudoclass css selectors.
        https://bugs.webkit.org/show_bug.cgi?id=135242

        Reviewed by Benjamin Poulain.

        Tests: scrollbars/corner-resizer-window-inactive.html
               scrollbars/scrollbar-selectors.html

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        Changed assertion because there are pseudo-elements selectors that return CannotCompileAnything now, which
        make SimpleSelectorCheckers.
        Add scrollbar, scrollbarPart, and document to the CheckingContext and compile scrollbar pseudo-element selectors.
        * css/SelectorChecker.cpp:
        (WebCore::hasScrollbarPseudoElement):
        Added.  Logic moved from matchRecursively to be easier to read and to add assertions.
        context.scrollbar is always non-null when dynamicPseudo is SCROLLBAR_CORNER.
        (WebCore::SelectorChecker::matchRecursively):
        Moved logic to hasScrollbarPseudoElement.
        (WebCore::SelectorChecker::checkOne):
        checkScrollbarPseudoClass accesses the document through the element now.
        (WebCore::SelectorChecker::checkScrollbarPseudoClass):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::scrollbarMatchesEnabledPseudoClass):
        (WebCore::scrollbarMatchesDisabledPseudoClass):
        (WebCore::scrollbarMatchesHoverPseudoClass):
        (WebCore::scrollbarMatchesActivePseudoClass):
        (WebCore::scrollbarMatchesHorizontalPseudoClass):
        (WebCore::scrollbarMatchesVerticalPseudoClass):
        (WebCore::scrollbarMatchesDecrementPseudoClass):
        (WebCore::scrollbarMatchesIncrementPseudoClass):
        (WebCore::scrollbarMatchesStartPseudoClass):
        (WebCore::scrollbarMatchesEndPseudoClass):
        (WebCore::scrollbarMatchesDoubleButtonPseudoClass):
        (WebCore::scrollbarMatchesSingleButtonPseudoClass):
        (WebCore::scrollbarMatchesNoButtonPseudoClass):
        (WebCore::scrollbarMatchesCornerPresentPseudoClass):
        Move scrollbar selector logic from SelectorChecker.cpp to SelectorCheckerTestFunctions.h
        For window-inactive pseudo classes, we now access the document through the element instead of as a separate parameter.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorFragment::appendUnoptimizedPseudoClassWithContext):
        (WebCore::SelectorCompiler::addScrollbarPseudoClassType):
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::isScrollbarPseudoElement):
        (WebCore::SelectorCompiler::constructFragments):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        Call functions for unoptimized pseudo classes that require a context.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateContextFunctionCallTest):
        Added.  Similar to generateElementFunctionCallTest, but the CheckingContext pointer is stored on the stack instead of a dedicated register.
        * cssjit/SelectorCompiler.h:
        Added scrollbar, scrollbarPart, and document to the CheckingContext.
        (WebCore::SelectorCompiler::CheckingContext::document):
        Added method to access the document in a way that is syntactically equal to SelectorCheckingContext.
        This way, the template functions in SelectorCheckerTestFunctions.h can be compiled with both context types,
        but the context types store the document differently.

2014-08-07  Daniel Bates  <dabates@apple.com>

        Sometimes Gmail cannot load messages, particularly on refresh ("...the application ran into an unexpected error...")
        https://bugs.webkit.org/show_bug.cgi?id=135688
        <rdar://problem/17886686>

        Reviewed by Maciej Stachowiak.

        Fixes an issue where gmail.com may fail to load the list of messages. In particular, a SQLTransactionCallback
        function may not be executed and hence Gmail will not display the list of messages and
        will subsequently display an error message.

        When a WebKit client defers loading of a page (e.g. -[WebView setDefersCallbacks:YES]), WebCore
        may still load the main resource, say if substitute data is available for it, and defer executing
        tasks, such as a SQLTransactionCallback function, by appending such tasks to the end of the list
        of pending tasks for the associated Document. This list of pending tasks is never processed when
        a client subsequently allows loading (e.g. -[WebView setDefersCallbacks:NO])). Therefore, we never
        execute a SQLTransactionCallback function that was deferred.

        Ideally WebCore would defer loading of substitute data when a WebKit client requests that loading
        be deferred and hence a SQLTransactionCallback function would be deferred as a consequence of the
        lack of JavaScript script execution (since substitute data wasn't loaded and hence any JavaScript
        script contained in the substitute data that initiates a SQL transaction isn't executed). For now,
        it's sufficient to only defer executing tasks when either there are existing pending tasks or the
        active DOM objects for the document are suspended (e.g. Document::suspendActiveDOMObjects() was called).

        * dom/Document.cpp:
        (WebCore::Document::postTask):

2014-08-07  Zalan Bujtas  <zalan@apple.com>

        border-radius on html does not render properly.
        https://bugs.webkit.org/show_bug.cgi?id=135706

        Reviewed by Simon Fraser.

        Ensure that background is initialized when border-radius is present.

        Test: fast/borders/border-radius-on-html.html

        * rendering/RenderView.cpp:
        (WebCore::rendererObscuresBackground):

2014-08-07  Pratik Solanki  <psolanki@apple.com>

        Random resource replacement on beta.icloud.com
        https://bugs.webkit.org/show_bug.cgi?id=135685
        <rdar://problem/17937975>

        Reviewed by Alexey Proskuryakov.

        Revert the performance optimization in r170499. It turns out we could get a delayed disk
        cache notification for a resource that has since been changed in WebCore. In such a case, we
        were replacing the newer resource data with the older disk cached resource data. This was
        happening for cached POST content on beta.icloud.com. Fix this by forcing a memcmp of data
        contents before replacing it which is what we used to do before.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::tryReplaceEncodedData):

2014-08-06  Brent Fulgham  <bfulgham@apple.com>

        [Mac, iOS] Captions are appearing multiple times during repeated video play through
        https://bugs.webkit.org/show_bug.cgi?id=135680
        <rdar://problem/17926802>

        Reviewed by Eric Carlson.

        Test: media/track/track-in-band-cues-added-once.html

        Revert TextTrackCueGeneric::isOrderedBefore logic to its original form, and add
        a new 'isOrderedBeforeDuringDisplay' for the special case of displaying captions.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::compareCueIntervalForDisplay): Added helper function.
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Use the new
        'isOrderedBeforeDuringDisplay' to order the cues for display.
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::isOrderedBeforeDuringDisplay): Added. This just
        calls the existing 'isOrderedBefore' method.
        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGeneric::isOrderedBefore): Revert to logic used
        prior to r171700.
        (WebCore::TextTrackCueGeneric::isOrderedBeforeDuringDisplay): New method that
        implements the behavior in r171700.
        * html/track/TextTrackCueGeneric.h:

2014-08-07  Jer Noble  <jer.noble@apple.com>

        [Mac] Taking a paused video full screen flashes black at beginning of animation.
        https://bugs.webkit.org/show_bug.cgi?id=135668

        Reviewed by Eric Carlson.

        When entering fullscreen, the full screen window will momentarily occlude the browser
        window, causing a visiblity change notification. To avoid flickering when client buffering
        is disabled, throttle calls to updateClientDataBuffering by delaying those calls for a
        short period.

        * platform/audio/MediaSession.cpp:
        (WebCore::MediaSession::MediaSession):
        (WebCore::MediaSession::clientWillPausePlayback):
        (WebCore::MediaSession::visibilityChanged):
        (WebCore::MediaSession::clientDataBufferingTimerFired):
        (WebCore::MediaSession::updateClientDataBuffering):
        * platform/audio/MediaSession.h:

2014-08-07  Zan Dobersek  <zdobersek@igalia.com>

        ASSERT in Document::unregisterCollection reloading apple.com
        https://bugs.webkit.org/show_bug.cgi?id=135168

        Reviewed by Andreas Kling.

        * dom/Document.cpp:
        (WebCore::Document::unregisterCollection): This assertion was failing
        because the passed-in HTMLCollection was not invalidated for a non-related
        attribute, but was instead unregistered during destruction, at which point
        the m_collectionsInvalidatedAtDocument HashSet was empty.
        The assertion could be trivially reduced into checking that the HashSet is
        empty when it was moved out of in Document::invalidateNodeListAndCollectionCaches(),
        but that just checks that the move semantics on HashSet work properly. Removing
        a non-existent element from a HashSet is harmless, so the assertion can be removed
        completely.

2014-08-06  Brent Fulgham  <bfulgham@apple.com>

        [Win] Correct build errors when WebGL Disabled
        https://bugs.webkit.org/show_bug.cgi?id=135687

        Unreviewed build fix.

        * WebCore.vcxproj/WebCore.vcxproj: Don't build Cairo files
        when building CG.
        * platform/graphics/GLContext.cpp: Correct use of 3D_GRAPHICS macro.
        * platform/graphics/GraphicsContext3DPrivate.cpp: Ditto.
        * platform/graphics/opengl/GLPlatformContext.cpp: Ditto.
        * platform/graphics/opengl/GLPlatformSurface.cpp: Ditto.

2014-08-06  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed build fix on non Cocoa port since r172172

        * platform/text/TextEncodingRegistry.cpp:
        (WebCore::defaultTextEncodingNameForSystemLanguage):
        * platform/text/TextEncodingRegistry.h:

2014-08-06  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Make document marker assets not specific to particular scale factors
        https://bugs.webkit.org/show_bug.cgi?id=135671

        Reviewed by Simon Fraser.

        No new tests.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/ios/wak/WKGraphics.mm:
        (imageResourcePath):
        (WKGraphicsCreateImageFromBundleWithName):

2014-08-06  Enrica Casucci  <enrica@apple.com>

        Services menu doesn't show up after you defocus/refocus the Safari window.
        https://bugs.webkit.org/show_bug.cgi?id=135678
        <rdar://problem/17929247>

        Reviewed by Tim Horton.

        In setSelection we create a SelectionRectGatherer::Notifier object that will notify
        SelectionOverlayController about changes to the selection rects.
        Upon creation, the list of selections rects is cleared, since it is populated by
        the code that collects the selection rects. That code is never called
        when setSelection won't change the selection, which the case when the window is
        activated. The fix consists in postponing the SelectionRectGatherer::Notifier object
        creation until we know for sure that the selection is indeed going to change.
        
        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection):

2014-08-06  Dean Jackson  <dino@apple.com>

        ENABLE_CSS_TRANSFORMS_ANIMATIONS_UNPREFIXED is not used anywhere. Remove it.
        https://bugs.webkit.org/show_bug.cgi?id=135675

        Reviewed by Sam Weinig.

        * Configurations/FeatureDefines.xcconfig:

2014-08-06  Brady Eidson  <beidson@apple.com>

        IDB transactions never reset if the Web Process ends before cleaning up
        https://bugs.webkit.org/show_bug.cgi?id=135218

        Reviewed by David Kilzer.

        No new tests (Covered by existing tests).

        * Modules/indexeddb/IDBServerConnection.h: Add sync versions of reset/rollback.

        * Modules/indexeddb/IDBTransactionBackend.cpp:
        (WebCore::IDBTransactionBackend::abort): Call the sync versions.

2014-08-06  Wenson Hsieh <wenson_hsieh@apple.com>

        Implement parsing for CSS scroll snap points
        https://bugs.webkit.org/show_bug.cgi?id=134301

        Provided support for parsing -webkit-scroll-snap-* properties, i.e.  type, points-x, points-y, destination, and coordinates.
        The exact syntax of the scroll snap CSS properties follow the W3C spec at http://dev.w3.org/csswg/css-snappoints/

        Reviewed by Dean Jackson.

        Tests: css3/scroll-snap/scroll-snap-property-parsing.html,
            css3/scroll-snap/scroll-snap-property-computed-style.html

        * CMakeLists.txt: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp
        * Configurations/FeatureDefines.xcconfig: Added ENABLE_CSS_SCROLL_SNAP
        * WebCore.vcxproj/WebCore.vcxproj: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp
        * WebCore.vcxproj/WebCore.vcxproj.filters: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp
        * WebCore.xcodeproj/project.pbxproj: Added StyleScrollSnapPoints.h, StyleScrollSnapPoints.cpp, LengthRepeat.h
        * css/CSSCalculationValue.cpp: Support for LengthRepeat
        (WebCore::hasDoubleValue):
        * css/CSSComputedStyleDeclaration.cpp: Support for showing computed style for snap point properties.
        (WebCore::scrollSnapDestination):
        (WebCore::scrollSnapPoints):
        (WebCore::scrollSnapCoordinates):
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp: Support for parsing snap point properties.
        (WebCore::isValidKeywordPropertyAndValue): handle snap point type
        (WebCore::isKeywordPropertyID):
        (WebCore::CSSParser::parseValue): Added support for parsing snap points.
        (WebCore::CSSParser::parseNonElementSnapPoints): Helper for parsing snap points-x/y.
        (WebCore::CSSParser::parseScrollSnapDestination): Helper for parsing snap point destinations.
        (WebCore::CSSParser::parseScrollSnapCoordinate): Helper for parsing snap point coordinates.
        * css/CSSParser.h: Support for parsing snap point properties.
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserValue::createCSSValue):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::isValidCSSUnitTypeForDoubleConversion):
        (WebCore::CSSPrimitiveValue::init):
        (WebCore::CSSPrimitiveValue::cleanup):
        (WebCore::CSSPrimitiveValue::getLengthRepeatValue):
        (WebCore::CSSPrimitiveValue::formatNumberForcustomCSSText):
        (WebCore::CSSPrimitiveValue::cloneForCSSOM):
        (WebCore::CSSPrimitiveValue::equals):
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::isLengthRepeat):
        (WebCore::CSSPrimitiveValue::getLengthRepeatValue):
        * css/CSSPrimitiveValueMappings.h: Added converters for snap point type properties.
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator ScrollSnapType):
        * css/CSSPropertyNames.in: Added relevant snap point property names.
        * css/CSSValueKeywords.in: Added "proximity", "mandatory" and "elements".
        * css/LengthRepeat.h: Added to represent values of repeat(<length>)
        (WebCore::LengthRepeat::create):
        (WebCore::LengthRepeat::cloneForCSSOM):
        (WebCore::LengthRepeat::interval):
        (WebCore::LengthRepeat::setInterval):
        (WebCore::LengthRepeat::equals):
        (WebCore::LengthRepeat::cssText):
        (WebCore::LengthRepeat::LengthRepeat):
        * css/StyleResolver.cpp: Support for handling snap point properties
        (WebCore::StyleResolver::applyProperty):Updated switch case to build snap-point-related style data
        * rendering/style/RenderStyle.h: Added methods to access and modify snap point data
        * rendering/style/RenderStyleConstants.h: Added scroll snap type flags.
        * rendering/style/StyleAllInOne.cpp: Added StyleScrollSnapPoints.cpp
        * rendering/style/StyleRareNonInheritedData.cpp: Added initiazing for m_scrollSnapPoints, updated equality check
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h: Added field for StyleScrollSnapPoints
        * rendering/style/StyleScrollSnapPoints.cpp: Added. Wrapper for basic snap point data structures.
        (WebCore::StyleScrollSnapPoints::StyleScrollSnapPoints):
        (WebCore::StyleScrollSnapPoints::copy):
        (WebCore::StyleScrollSnapPoints::operator==):
        * rendering/style/StyleScrollSnapPoints.h: Added.
        (WebCore::StyleScrollSnapPoints::create):
        (WebCore::StyleScrollSnapPoints::defaultRepeatOffset): Creates a new Length representing the default repeat value of repeat(100%)
        (WebCore::StyleScrollSnapPoints::defaultDestinationOffset): Creates a new Length representing a default destination value (0px)
        (WebCore::StyleScrollSnapPoints::operator!=):

2014-08-06  Andy Estes  <aestes@apple.com>

        [iOS] Subresources referenced in converted QuickLook documents sometimes fail to load
        https://bugs.webkit.org/show_bug.cgi?id=135676

        Reviewed by David Kilzer.

        * loader/DocumentLoader.h:
        (WebCore::DocumentLoader::setQuickLookHandle):
        (WebCore::DocumentLoader::quickLookHandle):

2014-08-06  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r168119): Album flipping animation doesn’t work
        https://bugs.webkit.org/show_bug.cgi?id=132801
        <rdar://problem/16878497>, <rdar://problem/17908085>

        Reviewed by Dean Jackson.
        
        In r168119 I avoided creating backing store for backface-visibility:hidden unless
        some ancestor was 3d-transformed. However, when starting transitions or animations
        that apply transforms, we don't do a layout, and therefore don't update the RenderLayer
        flags that mark an ancestor as having a transform. This broke various content which
        used backface-visibility:hidden for "flip" animations.
        
        Make a low-risk fix that looks for the pattern of CSS properties used for flipping,
        making a compositing layer for backface-visibility:hidden if the stacking context element
        has transform-style: preserve-3d.

        Test: compositing/backing/backface-visibility-flip.html

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility):

2014-08-06  Brent Fulgham  <bfulgham@apple.com>

        Consolidate logic for calculating scrollbar page step size
        https://bugs.webkit.org/show_bug.cgi?id=135670

        Reviewed by Simon Fraser.

        Consolidate the calculation of the scroll step size into a single place.
        Improve the handling of sub-pixel layout behavior by performing proper
        rounding on the fractional scroll ranges.

        * editing/EditorCommand.cpp:
        (WebCore::verticalScrollDistance): Switch to Scrollbar::pageStep method.
        * platform/ScrollAnimator.cpp:
        (WebCore::ScrollAnimator::handleWheelEvent): Ditto.
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars): Ditto.
        * platform/Scrollbar.h:
        (WebCore::Scrollbar::pageStep): Added.
        (WebCore::Scrollbar::pageStepDelta): Added.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollbarsAfterLayout): Switch to Scrollbar method.

2014-08-06  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: dispatch timing information should be stored out-of-line in a replay segment
        https://bugs.webkit.org/show_bug.cgi?id=135295

        Reviewed by Timothy Hatcher.

        We need to save a timestamp for each event loop input so that replay can
        simulate the original user and network delays. Currently that timestamp
        is stored on each EventLoopInput instance.

        This patch stores timestamp data in a separate vector attached to the segment.
        The event loop input class is now immutable, and new auxiliary data can be added
        without adding members to the EventLoopInput class.

        As part of the refactoring, InputCursors now keep a reference to the relevant
        session segment instead of a reference to their input storage. InputCursors can
        be created directly, instead of through ReplaySessionSegment.

        No new tests. No behavior was changed.

        * inspector/InspectorReplayAgent.cpp:
        (WebCore::buildInspectorObjectForInput): Don't send the timestamp with the input.
        (WebCore::buildInspectorObjectForSegment):
        * inspector/protocol/Replay.json: Remove optional timestamp field for ReplayInput.
        * replay/CapturingInputCursor.cpp:
        (WebCore::CapturingInputCursor::CapturingInputCursor):
        (WebCore::CapturingInputCursor::create):
        (WebCore::CapturingInputCursor::storeInput): Save event loop input timings here.
        * replay/CapturingInputCursor.h:
        * replay/EventLoopInput.h:
        (WebCore::EventLoopInputBase::EventLoopInputBase): Deleted.
        (WebCore::EventLoopInputBase::timestamp): Deleted.
        (WebCore::EventLoopInputBase::setTimestamp): Deleted.
        * replay/EventLoopInputDispatcher.cpp: Use a struct for dispatch information.
        (WebCore::EventLoopInputDispatcher::EventLoopInputDispatcher):
        (WebCore::EventLoopInputDispatcher::dispatchInputSoon):
        (WebCore::EventLoopInputDispatcher::dispatchInput):
        * replay/EventLoopInputDispatcher.h:
        * replay/FunctorInputCursor.h:
        (WebCore::FunctorInputCursor::forEachInputInQueue):
        (WebCore::FunctorInputCursor::FunctorInputCursor):
        * replay/ReplayController.cpp:
        (WebCore::ReplayController::createSegment):
        (WebCore::ReplayController::loadSegmentAtIndex):
        (WebCore::ReplayController::unloadSegment): Deleted.
        (WebCore::ReplayController::startPlayback): Deleted.
        * replay/ReplaySessionSegment.cpp:
        (WebCore::ReplaySessionSegment::createCapturingCursor): Deleted.
        (WebCore::ReplaySessionSegment::createReplayingCursor): Deleted.
        (WebCore::ReplaySessionSegment::createFunctorCursor): Deleted.
        * replay/ReplaySessionSegment.h:
        (WebCore::ReplaySessionSegment::storage):
        (WebCore::ReplaySessionSegment::eventLoopTimings):
        * replay/ReplayingInputCursor.cpp:
        (WebCore::ReplayingInputCursor::ReplayingInputCursor):
        (WebCore::ReplayingInputCursor::create):
        (WebCore::ReplayingInputCursor::uncheckedLoadInput):
        (WebCore::ReplayingInputCursor::loadEventLoopInput): Added. This method collates
        and returns the next event loop input with its associated dispatch information.
        * replay/ReplayingInputCursor.h:

2014-08-06  Tim Horton  <timothy_horton@apple.com>

        Document-relative overlays disappear after doing page-cache navigations
        https://bugs.webkit.org/show_bug.cgi?id=135669
        <rdar://problem/17929171>

        Reviewed by Simon Fraser.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
        When navigating from one page to another, the document-relative overlay
        layer is moved from the layer tree of the RenderLayerCompositor of the
        first RenderView to the layer tree of the RenderLayerCompositor of the
        new RenderView, upon layer tree construction.
        When going "back" via a page cache navigation, we don't rebuild the
        layer tree, and just assume that it is in a valid state.
        However, the document-relative overlay layer was *moved*, and as such,
        needs to be moved back. To do this, reattach the document-relative
        overlay layer whenever the root layer attachment of a RenderLayerCompositor
        changes, which will happen in the right order when going back to a cached page.

2014-08-06  Filip Pizlo  <fpizlo@apple.com>

        Merge r171389, r171495, r171508, r171510, r171605, r171606, r171611, r171614, r171763 from ftlopt.

    2014-08-06  Mark Hahnenberg  <mhahnenberg@apple.com>
    
            Refactor our current implementation of for-in
            https://bugs.webkit.org/show_bug.cgi?id=134142
    
            Reviewed by Filip Pizlo.
    
            No new tests.
    
            This patch splits for-in loops into three distinct parts:
    
            - Iterating over the indexed properties in the base object.
            - Iterating over the Structure properties in the base object.
            - Iterating over any other enumerable properties for that object and any objects in the prototype chain.
     
            It does this by emitting these explicit loops in bytecode, using a new set of bytecodes to 
            support the various operations required for each loop.
    
            * bindings/js/JSDOMWindowCustom.cpp:
            (WebCore::JSDOMWindow::getEnumerableLength):
            (WebCore::JSDOMWindow::getStructurePropertyNames):
            (WebCore::JSDOMWindow::getGenericPropertyNames):
            * bindings/scripts/CodeGeneratorJS.pm:
            (GenerateHeader):
            * bridge/runtime_array.cpp:
            (JSC::RuntimeArray::getOwnPropertyNames):
    
2014-08-06  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (WebKit2): iOS Safari default encoding doesn't follow system language
        https://bugs.webkit.org/show_bug.cgi?id=135667
        <rdar://problem/17862892>

        Reviewed by Anders Carlsson.

        Moved a function that computes default encoding from WebKit to WebCore, so that
        it could be shared with WebKit2.

        * WebCore.exp.in:
        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        * platform/text/TextEncodingRegistry.cpp:
        (WebCore::defaultTextEncodingNameForSystemLanguage):
        * platform/text/TextEncodingRegistry.h:

2014-08-06  Andreas Kling  <akling@apple.com>

        Remove unused RenderBox::reflectionBox().
        <https://webkit.org/b/135661>

        Reviewed by Antti Koivisto.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::reflectionBox): Deleted.
        * rendering/RenderBox.h:

2014-08-06  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: convert ReplayManager to a promise-based API
        https://bugs.webkit.org/show_bug.cgi?id=135249

        Reviewed by Timothy Hatcher.

        Fix some assertions to match ReplayController's preconditions.

        * inspector/InspectorReplayAgent.cpp:
        (WebCore::InspectorReplayAgent::replayToPosition):
        (WebCore::InspectorReplayAgent::replayToCompletion):

2014-08-05  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Unable to scroll to bottom of nested scrollable areas
        https://bugs.webkit.org/show_bug.cgi?id=135637
        <rdar://problem/17910241>

        Reviewed by Zalan Bujtas.

        Test: platform/mac/fast/scrolling/scroll-latched-nested-div.html

        Avoid truncating the fractional portion of scroll ranges.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateScrollbarsAfterLayout): Round
        the LayoutUnit values for scroll width and height rather than
        truncating.

2014-08-06  Andy Estes  <aestes@apple.com>

        [iOS] QuickLook returns an invalid MIME type for some documents
        https://bugs.webkit.org/show_bug.cgi?id=135651

        Reviewed by David Kilzer.

        r172151 ensured that we ignore QuickLook delegate messages after an error, but neglected to do so for
        connectionDidFinishLoading:. Do not call ResourceLoader::didFinishLoading() if an error has occurred.

        * platform/network/ios/QuickLook.mm:
        (-[WebResourceLoaderQuickLookDelegate connectionDidFinishLoading:]):

2014-08-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172155.
        https://bugs.webkit.org/show_bug.cgi?id=135659

        ChangeLog and commit message are wrong (Requested by estes on
        #webkit).

        Reverted changeset:

        "Unreviewed, rolling out r172145."
        https://bugs.webkit.org/show_bug.cgi?id=135657
        http://trac.webkit.org/changeset/172155

2014-07-28  Myles C. Maxfield  <mmaxfield@apple.com>

        Unreviewed build fix

        * rendering/TextPainter.cpp: Used incorrect variable name
 
2014-08-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r172145.
        https://bugs.webkit.org/show_bug.cgi?id=135657

        caused 1 API test to fail (Requested by zalan on #webkit).

        Reverted changeset:

        "Cleanup InlineTextBox::paintSelection and
        ::localSelectionRect."
        https://bugs.webkit.org/show_bug.cgi?id=135631
        http://trac.webkit.org/changeset/172145

2014-07-28  Myles C. Maxfield  <mmaxfield@apple.com>

        Text-shadow with (0, 0) offset and radius = 0 is ugly
        https://bugs.webkit.org/show_bug.cgi?id=135357

        Reviewed by Darin Adler.

        Instead, check for this kind of shadow and don't draw it.

        Test: fast/text/empty-shadow.html

        * rendering/TextPainter.cpp:
        (WebCore::isEmptyShadow): Does a shadow match these criteria?
        (WebCore::paintTextWithShadows): If so, don't draw it.

2014-08-06  Andy Estes  <aestes@apple.com>

        [iOS] QuickLook returns an invalid MIME type for some documents
        https://bugs.webkit.org/show_bug.cgi?id=135651

        Reviewed by David Kilzer.

        In some cases QuickLook indicates a failure by returning a nil MIME type in -[QLPreviewConverter previewResponse]
        rather than calling connection:didFailWithError:. Calling ResourceLoader::didReceiveResponse() with a response
        containing a nil MIME type leads to a crash.

        Stop loading the resource and display an error page if QuickLook cannot provide a MIME type for the converted response.

        No new tests. QuickLook is not testable from WebKit.

        * platform/network/ios/QuickLook.mm:
        (-[WebResourceLoaderQuickLookDelegate _sendDidReceiveResponseIfNecessary]): Called ResourceLoader::didFail() if
        MIME type was nil. Called ResourceLoader::didReceiveResponse() otherwise.
        (-[WebResourceLoaderQuickLookDelegate connection:didReceiveDataArray:]): Called -_sendDidReceiveResponseIfNecessary.
        (-[WebResourceLoaderQuickLookDelegate connection:didReceiveData:lengthReceived:]): Ditto.
        (-[WebResourceLoaderQuickLookDelegate connection:didFailWithError:]): Ditto.

2014-08-06  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r163382): Overflow hidden for inner elements breaks blurring
        https://bugs.webkit.org/show_bug.cgi?id=135318

        Reviewed by Zalan Bujtas.

        For elements with border radius, clipping must be applied using clipRoundedRect.
        This regressed in r163382, when normal clipping started being applied also
        for elements having border radius.

        Test: fast/filter-image/clipped-filter.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::clipToRect):
        (WebCore::RenderLayer::restoreClip):

2014-08-06  Zalan Bujtas  <zalan@apple.com>

        Cleanup InlineTextBox::paintSelection and ::localSelectionRect.
        https://bugs.webkit.org/show_bug.cgi?id=135631

        Reviewed by Darin Adler.

        Covered by existing tests.

        * rendering/InlineTextBox.cpp: Ideally these 2 functions should share some more code.
        (WebCore::InlineTextBox::localSelectionRect): Local coordinates should not be snapped/enclosed.
        This change could potentially break some selections. Should that be the case, they need to be addressed
        separately.
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::paintSelection): Minor cleanup.
        * rendering/InlineTextBox.h:

2014-08-06  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Be able to disable gtk2 dependency
        https://bugs.webkit.org/show_bug.cgi?id=135505

        Reviewed by Gustavo Noronha Silva.

        Do not build WebCorePlatformGTK2 when ENABLE_PLUGIN_PROCESS_GTK2
        is OFF.

        * PlatformGTK.cmake:

2014-08-06  Mark Lam  <mark.lam@apple.com>

        Gardening: fix bindings test breakage for for r170564 merged in r172129.
        <https://webkit.org/b/134333>

        Not reviewed.

        No new tests.

        * bindings/scripts/test/JS/JSTestEventTarget.h:
        (WebCore::JSTestEventTarget::create):

2014-08-06  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed typo correction.

        * bindings/scripts/CodeGeneratorJS.pm: removed unnecessary space.
        (GenerateImplementation):

2014-08-05  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: Add label string once AccessibilityObject::computedLabel() is available
        https://bugs.webkit.org/show_bug.cgi?id=129940

        Reviewed by Chris Fleizach.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode-expected.txt

        * accessibility/AccessibilityObject.cpp: Fixed crash.
        (WebCore::AccessibilityObject::accessibilityComputedLabel): 
        * accessibility/AccessibilityObject.h: Method name update.
        * inspector/InspectorDOMAgent.cpp: New support for getting Node label from AccessibilityObject.
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

2014-07-29  Filip Pizlo  <fpizlo@apple.com>

        Merge r170564, r170571, r170604, r170628, r170672, r170680, r170724, r170728, r170729, r170819, r170821, r170836, r170855, r170860, r170890, r170907, r170929, r171052, r171106, r171152, r171153, r171214 from ftlopt.

    2014-07-01  Mark Lam  <mark.lam@apple.com>
    
            [ftlopt] DebuggerCallFrame::scope() should return a DebuggerScope.
            <https://webkit.org/b/134420>
    
            Reviewed by Geoffrey Garen.
    
            No new tests.
    
            * ForwardingHeaders/debugger/DebuggerCallFrame.h: Removed.
            - This is not in use.  Hence, we can remove it.
            * bindings/js/ScriptController.cpp:
            (WebCore::ScriptController::attachDebugger):
            - We should acquire the JSLock before modifying a JS global object.
    
    2014-06-25  Filip Pizlo  <fpizlo@apple.com>
    
            [ftlopt] If a CodeBlock is jettisoned due to a watchpoint then it should be possible to figure out something about that watchpoint
            https://bugs.webkit.org/show_bug.cgi?id=134333
    
            Reviewed by Geoffrey Garen.
    
            No new tests because no change in behavior.
    
            * bindings/scripts/CodeGeneratorJS.pm:
            (GenerateHeader):
    
2014-08-05  Ryuan Choi  <ryuan.choi@samsung.com>

        Build break since r172093
        https://bugs.webkit.org/show_bug.cgi?id=135636

        Reviewed by Gyuyoung Kim.

        Since r172093, AbstractView.idl is added in CMake Build but CodeGeneratorJS.pm does not take care of it.

        No new tests required, no new functionality.

        * bindings/scripts/CodeGeneratorJS.pm:
        (ShouldGenerateToJSDeclaration):
        (ShouldGenerateToJSImplementation):
        (GetImplClassName): Added to rename implClassName to DOMWindow if interface name is AbstractView.
        (GenerateHeader):
        (GenerateImplementation):

2014-08-05  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>

        [CG] strokeRect does not honor lineJoin
        https://bugs.webkit.org/show_bug.cgi?id=132948

        Reviewed by Darin Adler.

        Replaced use of CGContextStrokeRectWithWidth convenience function with explicit 
        call to CGContextAddRect and CGContextStrokePath.  The convenience functions
        CGContextStrokeRect and CGContextStrokeRectWithWidth fail to apply some attributes
        (e.g. stroke join) of the graphics state in certain cases.

        Test: fast/canvas/canvas-strokeRect-lineJoin.html

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::strokeRect):

2014-08-05  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build attempts to use ANGLE when not building WebGL.
        https://bugs.webkit.org/show_bug.cgi?id=135630
        <rdar://problem/135630>

        Unreviewed build fix.

        * platform/graphics/win/GraphicsContext3DWin.cpp: Move #include of GraphicsContext3D.h
        inside USE(3D_GRAPHICS) guard.

2014-08-05  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Crash going back on a specific tumblr blog (under ScrollingStateTree::removeNodeAndAllDescendants)
        https://bugs.webkit.org/show_bug.cgi?id=135629
        <rdar://problem/17802174>

        Reviewed by Tim Horton.
        
        In r170198 I added an "orphan scrolling nodes" code path that sets aside subtrees
        of scrolling nodes into an m_orphanedSubframeNodes map, which keeps them alive until
        they get reparented or destroyed. The nodes in that subtree remain in m_stateNodeMap,
        which holds raw pointers to them.
        
        However, ScrollingStateTree::commit() can clear m_orphanedSubframeNodes, which is
        sometimes non-empty at this point. When that happened, we would destroy nodes which
        were still referenced by m_stateNodeMap, with the result that a later query for the
        same nodeID would hand back a pointer to a deleted object.
        
        Fix by calling recursiveNodeWillBeRemoved() on nodes in the m_orphanedSubframeNodes
        before clearing it, which removes them and all their descendants from the state node map.

        Test: platform/mac-wk2/tiled-drawing/scrolling/frames/orphaned-subtree.html

        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::clear):
        (WebCore::ScrollingStateTree::commit):

2014-08-05  Peyton Randolph  <prandolph@apple.com>

        Add the ability to force text to render in white, not just black
        https://bugs.webkit.org/show_bug.cgi?id=135625

        Reviewed by Beth Dakin.

        This patch introduces PaintBehaviorForceWhiteText, a complement to PaintBehaviorForceBlackText. If
        a client specifies both PaintBehaviorForceWhiteText and PaintBehaviorForceBlackText, the text will be
        painted black.

        No new tests.

        * rendering/EllipsisBox.cpp:
        (WebCore::EllipsisBox::paint): Use the forced text color to paint the text if requested.
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paint): Disable the text shadow if a text color has been forced.
        * rendering/PaintInfo.h:
        (WebCore::PaintInfo::forceTextColor): 
        Return true iff the client has requested to force a black or white text color.
        (WebCore::PaintInfo::forceWhiteText):
        Return true iff forcing white text has been requested.
        (WebCore::PaintInfo::forcedTextColor): 
        Return the forced text color. Currently only white and black are supported.
        * rendering/PaintPhase.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents): Remove the forceBlackText-related code as it is redundant.
        (WebCore::RenderLayer::paintForegroundForFragments): 
        Remove forceBlackText parameter and infer the correct behavior from the given paint behavior.
        * rendering/RenderLayer.h:
        * rendering/TextPaintStyle.cpp:
        (WebCore::computeTextPaintStyle): Use the forced text color if available.
        (WebCore::computeTextSelectionPaintStyle): Use the forced text color if available.

2014-08-05  Alex Christensen  <achristensen@webkit.org>

        More work on CMake.
        https://bugs.webkit.org/show_bug.cgi?id=135620

        Reviewed by Reviewed by Laszlo Gombos.

        * CMakeLists.txt:
        Added missing idls.
        * PlatformMac.cmake:
        Added additional include directories and source files.
        * css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
        * css/makeSelectorPseudoElementsMap.py:
        The Windows distribution of gperf doesn't like single quotes for its key-positions parameters.
        * page/Chrome.h:
        Compile fix.

2014-08-05  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: ReplayManager shouldn't assume replay status when the inspector is opened
        https://bugs.webkit.org/show_bug.cgi?id=135212

        Reviewed by Timothy Hatcher.

        The frontend should be able to introspect the session and segment state machines,
        currently loaded segment and session identifiers, and replay position.

        * inspector/InspectorReplayAgent.cpp:
        (WebCore::buildInspectorObjectForSessionState): Added.
        (WebCore::buildInspectorObjectForSegmentState): Added.
        (WebCore::InspectorReplayAgent::currentReplayState): Added.
        * inspector/InspectorReplayAgent.h:
        * inspector/protocol/Replay.json: Add currentReplayState query command.
        * replay/ReplayController.h: Add some accessors.

2014-08-05  Dean Jackson  <dino@apple.com>

        [iOS] Media controls layout incorrectly in RTL content
        https://bugs.webkit.org/show_bug.cgi?id=135621
        <rdar://problem/17849206>

        Reviewed by Eric Carlson.

        Media controls should always layout in LTR mode, even when the
        page content is RTL. There already was a rule to do this on
        non-iOS systems, but it wasn't getting included for iOS.
        In this case I put the rule on the composited parent of the
        controls in order to maintain the padding of the control panel.
        This should still leave the captions unaffected.

        * Modules/mediacontrols/mediaControlsiOS.css:
        (video::-webkit-media-controls-panel-composited-parent): Add direction: ltr.

2014-08-05  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: rename protocol methods for getting replay session/segment data
        https://bugs.webkit.org/show_bug.cgi?id=135618

        Reviewed by Timothy Hatcher.

        * inspector/InspectorReplayAgent.cpp:
        (WebCore::InspectorReplayAgent::getSessionData):
        (WebCore::InspectorReplayAgent::getSegmentData):
        (WebCore::InspectorReplayAgent::getSerializedSession): Deleted.
        (WebCore::InspectorReplayAgent::getSerializedSegment): Deleted.
        * inspector/InspectorReplayAgent.h:
        * inspector/protocol/Replay.json:

2014-08-05  Antti Koivisto  <antti@apple.com>

        REGRESSION: Extremely flashy scrolling while a page is still loading (because of flush throttling)
        https://bugs.webkit.org/show_bug.cgi?id=135603
        <rdar://problem/17876385>
        
        This hit ASSERT(frame().isMainFrame()) in FrameView::updateLayerFlushThrottling
        running scrollbars/scrollbar-iframe-click-does-not-blur-content.html and a few other tests.

        * page/FrameView.cpp:
        (WebCore::FrameView::setWasScrolledByUser): Only invoke updateLayerFlushThrottling for the main frame.

2014-08-05  Peyton Randolph  <prandolph@apple.com>

        Rename MAC_LONG_PRESS feature flag to LONG_MOUSE_PRESS.
        https://bugs.webkit.org/show_bug.cgi?id=135276

        Reviewed by Beth Dakin.

        No new tests. Just a compiler flag.

        * Configurations/FeatureDefines.xcconfig:

2014-08-05  Dean Jackson  <dino@apple.com>

        [Media iOS] Ensure there is a nice default fallback for missing wireless target names
        https://bugs.webkit.org/show_bug.cgi?id=135488
        <rdar://problem/17879156>

        Reviewed by Antoine Quint.

        Antoine found me on iMessage to tell me I'm an idiot and that I've
        forgotten how to write JavaScript. Embarrassingly, this code is what
        I originally had, but then second-guessed myself.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.updateWirelessPlaybackStatus): No need for the local
        variable or conditional statement, since null and "" both evaluate as false.

2014-08-05  Antti Koivisto  <antti@apple.com>

        REGRESSION: Extremely flashy scrolling while a page is still loading (because of flush throttling)
        https://bugs.webkit.org/show_bug.cgi?id=135603
        <rdar://problem/17876385>

        Reviewed by Andreas Kling.

        * page/FrameView.cpp:
        (WebCore::determineLayerFlushThrottleState):
        
            Disable throttling after user has scrolled the page.
            This is consistent with the speculative tiling. It also gets enabled on first scroll.

        (WebCore::FrameView::setWasScrolledByUser):

2014-08-05  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        ASSERTION FAILED: name[0] == '@' && length >= 2 in WebCore::CSSParser::detectAtToken
        https://bugs.webkit.org/show_bug.cgi?id=134632

        At-rules must consist of at least two characters: the '@' symbol followed by
        an identifier name. The failure of this condition makes the assertion fail.

        The length of an at-rule is currently calculated by pointer arithmetic on
        the 'result' pointer, which is expected to be set to the end of the at-rule
        identifier by the WebCore::*CSSTokenizer::parseIdentifier method.
        If the at-rule token is a sequence of 8-bit-only characters then
        'result' will point correctly at the end of the identifier. However, if
        the at-rule contains a 16-bit Unicode escape then 'result' will not be
        updated correctly anymore, hence it cannot be used for length calculation.
        The patch makes the parseIdentifier bump the result pointer even in the 16-bit slow case.

        Patch by Renata Hodovan, backported from Chromium: https://codereview.chromium.org/241053002

        Reviewed by Darin Adler.

        Test: fast/css/atrule-with-escape-character-crash.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::realLex):

2014-08-04  Andy Estes  <aestes@apple.com>

        [iOS] The raw bytes of an iWork document's PDF preview are displayed rather than the PDF itself
        https://bugs.webkit.org/show_bug.cgi?id=135596

        Reviewed by David Kilzer.

        Some iWork documents contain pre-rendered PDF previews. When WebKit asks QuickLook to convert such a document,
        QuickLook will return this PDF as the converted response. However, until WebKit has sent the document's data to
        QuickLook, -[QLPreviewConverter previewResponse] will misleadingly tell WebKit that the converted resource will
        be of type 'text/html'. This leads WebKit to render the PDF preview as HTML.

        Instead of querying QLPreviewConverter for the previewResponse before we've sent it any data, postpone calling
        ResourceLoader::didReceiveResponse until we've begun to receive data via the QLPreviewConverter delegate. At
        that point -[QLPreviewConverter previewResponse] will have the correct MIME type and we can call didReceiveResponse.

        No new tests. QuickLook is not testable from WebKit.

        * platform/network/ios/QuickLook.mm:
        (-[WebResourceLoaderQuickLookDelegate connection:didReceiveDataArray:]): If didReceiveResponse has yet to be
        called, call it now with QuickLookHandle::nsResponse().
        (-[WebResourceLoaderQuickLookDelegate connection:didReceiveData:lengthReceived:]): Ditto.
        (-[WebResourceLoaderQuickLookDelegate connection:didFailWithError:]): Ditto.
        (-[WebResourceLoaderQuickLookDelegate connectionDidFinishLoading:]): Assert that didReceiveResponse has been called.
        (-[WebResourceLoaderQuickLookDelegate clearHandle]): Cleared the raw pointer to QuickLookHandle.
        (WebCore::QuickLookHandle::create): Pointed WebResourceLoaderQuickLookDelegate's quickLookHandle property to
        the newly created QuickLookHandle.

2014-08-05  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>

        Fixing calc() parameter parsing in cubic-bezier functions
        https://bugs.webkit.org/show_bug.cgi?id=135605

        Reviewed by Andreas Kling.

        Before this patch, calc values in cubic-bezier functions weren't being read correctly
        since they were handled as simple floats.

        This is a backport of my fix in Blink: https://codereview.chromium.org/369313002/

        Test: css3/calc/cubic-bezier-with-multiple-calcs-crash.html.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):

2014-08-05  Jer Noble  <jer.noble@apple.com>

        [MSE] Seeking occasionally causes many frames to be displayed in "fast forward" mode
        https://bugs.webkit.org/show_bug.cgi?id=135422

        Reviewed by Eric Carlson.

        Three related fixes:

        In reenqueueMediaForTime(), update TrackBuffer.lastEnqueuedPresentationTime when we flush
        samples, so that the next time samples are re-enqueued, the starting point for re-enqueueing
        is correct.

        In sourceBufferPrivateDidReceiveSample(), do not add samples to the decode queue
        if they are before the current media time.

        When a seek is pending, but samples for the new time is not yet present in the SourceBuffer,
        the SourceBufferPrivate may signal that it's ready for new samples through the
        sourceBufferPrivateDidBecomeReadyForMoreSamples() method. In this situation, we should not
        continue to provideMediaData(), as that will append samples from the prior-to-seeking media
        timeline. Since the timeline may have moved forward due to the seek, a decoder may decide to
        display those frames as quickly as possible (the "fast forward" behavior) in order to catch
        up to the new current time.

        If a re-enqueue is pending, don't provide media data in response to being notified that the
        SourceBufferPrivate is ready for more samples. Wait until samples for the new current time
        are appended.

        Also, don't provide media data if we are waiting for a seek to complete.

        * Modules/mediasource/MediaSource.h:
        (WebCore::MediaSource::isSeeking): Convenience method.
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
        (WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
        (WebCore::SourceBuffer::reenqueueMediaForTime):

2014-08-05  Chris Fleizach  <cfleizach@apple.com>

        AX: Select text activity should return replaced text instead of previously selected text
        https://bugs.webkit.org/show_bug.cgi?id=135595

        Reviewed by Mario Sanchez Prada.

        When the select activity API is used to replace text, the replacement string should be returned instead of the old selected text.

        Updated existing test: platform/mac/accessibility/select-text.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::selectText):

2014-08-04  Chris Fleizach  <cfleizach@apple.com>

        AX: Select activity behavior does not work when an existing range is already selected
        https://bugs.webkit.org/show_bug.cgi?id=135579

        Reviewed by Mario Sanchez Prada.

        If you have an existing range selected, and try to apply a select and replace operation, like capitalize,
        searching for that range will fail because it skips the currently selected range.

        For these cases, it seems the best way is to start the search from the start position, rather than relying on the
        entire range.

        Updated existing test: platform/mac/accessibility/select-text.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::selectText):

2014-08-04  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Seeking past buffered range will not resume playback when seek completes.
        https://bugs.webkit.org/show_bug.cgi?id=135591

        Reviewed by Eric Carlson.

        If a seek is delayed due to seeking into an unbuffered area, playback will not be restarted
        at that point. Instead, playback must resume when enough media data has been added, and
        the MediaSource indicates the seek should complete.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted):

2014-08-04  Jer Noble  <jer.noble@apple.com>

        [MSE] Videos will report a stall when within 1 frame-duration before the end of a movie.
        https://bugs.webkit.org/show_bug.cgi?id=135586

        Reviewed by Eric Carlson.

        Under certain circumstances, videos which are within 1/24 seconds before the end of a media stream when
        monitorSourceBuffers() is called will fail the hasFutureTime() check. This is because hasFutureTime()
        checks whether enough media is buffered to play back at least some time in the future, but when the
        current time is close to the duration, not enough data is buffered to satisfy that check.

        Add some logic which will break out early when the SourceBuffer has buffered up to and including the
        media's duration, and return that the buffer indeed hasFutureTime() available.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::hasFutureTime):

2014-08-04  Benjamin Poulain  <benjamin@webkit.org>

        Simplify the StyleInvalidation mode of rule collection
        https://bugs.webkit.org/show_bug.cgi?id=135521

        Reviewed by Antti Koivisto.

        There are two branches where StyleInvalidation code is removed:
        -Pseudo elements for shadow dom elements.
        -Pseudo elements without dom tree counterpart.

        The first can never be hit because StyleInvalidationAnalysis does a complete invalidation
        when there is any shadow dom styling involved in the stylesheets.

        Even if that branch was hit, not failing on custom pseudo elements would be equivalent
        to ignoring those pseudo elements from the Selector. By doing so, we would match elements
        that do not have shadow dom and invalidate pretty much everything.

        Unlike pseudo elements without real elements, shadow dom elements are not matched separately with a different
        context, thus we could generalize StyleInvalidationAnalysis to handle this case.


        The second case handle pseudo elements that do not have a real element. That case no longer need to be handled
        separately at the filter time, it has become a special case of SelectorChecker::match() after everything else
        has matched.

        The only condition for this to work is that the Context's pseudoId must be NOPSEUDO. This is the case
        in practice since matching specific pseudo types would be a waste of time. ElementRuleCollector::collectMatchingRules()
        has a new assertion to enforce that.

        Test: fast/css/stylesheet-change-updates-pseudo-elements.html

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::collectMatchingRules):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):

2014-08-04  Benjamin Poulain  <benjamin@webkit.org>

        Add a flag for the CSS Selectors level 4 implementation
        https://bugs.webkit.org/show_bug.cgi?id=135535

        Reviewed by Andreas Kling.

        * Configurations/FeatureDefines.xcconfig:

2014-08-04  Chris Fleizach  <cfleizach@apple.com>

        AX: add AccessibilityObject::computedLabelString() for WebAXI
        https://bugs.webkit.org/show_bug.cgi?id=129939

        Reviewed by Mario Sanchez Prada.

        Provide a method that the WebKit Inspector can call in order to 
        display an accessible name for an AX node.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::accessibilityComputedLabel):
        * accessibility/AccessibilityObject.h:

2014-08-04  Tim Horton  <timothy_horton@apple.com>

        Lots of crashes in WebKit1 after r172013.
        https://bugs.webkit.org/show_bug.cgi?id=135582
        <rdar://problem/17837636>

        Reviewed by Enrica Casucci.

        * editing/SelectionRectGatherer.cpp:
        (WebCore::SelectionRectGatherer::addRect):
        (WebCore::SelectionRectGatherer::addGapRects):
        Don't try to do local-to-absolute coordinate conversion if we don't have
        a repaint container, which happens a lot in WebKit1.

2014-08-04  Alex Christensen  <achristensen@webkit.org>

        Progress towards CMake on Mac.
        https://bugs.webkit.org/show_bug.cgi?id=135528

        Reviewed by Gyuyoung Kim.

        * PlatformMac.cmake: Added.

2014-08-04  Tim Horton  <timothy_horton@apple.com>

        Selection services menu dropdown is in the wrong place when selecting some text on Yelp
        https://bugs.webkit.org/show_bug.cgi?id=135582
        <rdar://problem/17837636>

        Reviewed by Simon Fraser.

        * editing/SelectionRectGatherer.cpp:
        (WebCore::SelectionRectGatherer::addRect):
        (WebCore::SelectionRectGatherer::addGapRects):
        (WebCore::SelectionRectGatherer::addRects): Deleted.
        Rename addRects to addGapRects for clarity.
        Map rects and gapRects to absolute RenderView coordinates so that
        they are in a form WebKit2 can use. Previously they were sometimes
        relative to a different repaint container, but that information was
        lost when moving through SelectionRectGatherer.

        Ideally we would keep selection rects as full quads instead of rects
        for more of their life, but that problem is much deeper than just SelectionRectGatherer.

        * editing/SelectionRectGatherer.h:
        Add a comment clarifying the coordinate space of the stored selection rects.

        * rendering/RenderView.cpp:
        (WebCore::RenderView::applySubtreeSelection):
        Rename addRects to addGapRects for clarity.

2014-08-04  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] shape-margin not respected when it extends beyond an explicitly set margin
        https://bugs.webkit.org/show_bug.cgi?id=135308

        Reviewed by Dean Jackson.

        When a zero height line is supplied and the image shape extends into
        the margin box (only possible when a shape-margin is supplied), then
        only an empty interval was being returned. This patch makes it
        properly return the interval for the line in question.

        Test: fast/shapes/shape-outside-floats/shape-outside-image-shape-margin.html

        * rendering/shapes/RasterShape.cpp:
        (WebCore::RasterShape::getExcludedIntervals): Handle the zero height
        line case.

2014-08-04  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: InlineTextBox mistakenly rounds offset value before painting.
        https://bugs.webkit.org/show_bug.cgi?id=135470

        Reviewed by Simon Fraser.

        This patch removes the premature paint offset adjustment for inlines. Premature snapping
        could alter the final painting coordinates and push content to wrong positions.

        This patch also enforces WebCore's pixel snapping strategy (round) on text painting.
        It ensures that text positioning is in sync with other painting related operations including
        clipping, box decorations etc. Underlying graphics libraries can take different directions on
        text snapping, for example CG ceils text coordinates vertically (in horizontal context,
        with the current settings). It can lead to undesired side effects.

        Test: fast/inline/hidpi-inline-selection-leaves-gap.html

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paint):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects): wrong direction used at r171896.
        * rendering/SimpleLineLayoutFunctions.cpp: we don't paint vertical content here.
        (WebCore::SimpleLineLayout::paintFlow):

2014-08-04  Jer Noble  <jer.noble@apple.com>

        Unreviewed, rolling out r171992, r171995, & r172000.

        The cumulative effect of those revisions was to cause decoding errors when switching resolutions on YouTube.

        Reverted changesets:

        https://bugs.webkit.org/show_bug.cgi?id=135422 / http://trac.webkit.org/changeset/171992
        https://bugs.webkit.org/show_bug.cgi?id=135424 / http://trac.webkit.org/changeset/171995
        https://bugs.webkit.org/show_bug.cgi?id=135572 / http://trac.webkit.org/changeset/172000

2014-08-04  Joseph Pecoraro  <pecoraro@apple.com>

        Always clear ConsoleClient when Page/WindowShell is destroyed
        https://bugs.webkit.org/show_bug.cgi?id=135569

        Reviewed by Mark Lam.

        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::~ScriptController):
        Whenever a window shell goes away, clear the console client.
        We did this in clearWindowShell but not before destroying.

2014-08-04  Chris Fleizach  <cfleizach@apple.com>

        AX: isWordEndMatch should allow for multiple word selections
        https://bugs.webkit.org/show_bug.cgi?id=135573

        Reviewed by Mario Sanchez Prada.

        isWordEndMatch was searching from the beginning of the selected range, which meant
        that if the result was multiple words, we'd reject the result. 
        Instead, we should search from the end of the range, so that we encompass all words.

        Modified existing test: platform/mac/accessibility/select-text-should-match-whole-words.html

        * editing/TextIterator.cpp:
        (WebCore::SearchBuffer::isWordEndMatch):

2014-08-04  Chris Fleizach  <cfleizach@apple.com>

        AX: Secure text fields need to support Search parameterized attributes
        https://bugs.webkit.org/show_bug.cgi?id=135568

        Reviewed by Mario Sanchez Prada.
 
        Secure text fields still need to support the fast searching that WebKit exposes, even though they don't support
        other parameterized attributes.
  
        Test: platform/mac/accessibility/secure-text-field-supports-fast-search.html

        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):

2014-08-04  Jer Noble  <jer.noble@apple.com>

        [MSE] Further fixes for "fast forward" playback after seeking in YouTube behavior.
        https://bugs.webkit.org/show_bug.cgi?id=135572

        Reviewed by Eric Carlson.

        Two related fixes:

        In reenqueueMediaForTime(), update TrackBuffer.lastEnqueuedPresentationTime when we flush samples, so that
        the next time samples are re-enqueued, the starting point for re-enqueueing is correct.

        In sourceBufferPrivateDidReceiveSample(), do not add samples to the decode queue if they are before the
        current media time.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
        (WebCore::SourceBuffer::reenqueueMediaForTime):

2014-08-04  Matt Baker  <mattbaker@apple.com>

        Web Inspector: All-caps CSS properties are not shown in Computed pane
        https://bugs.webkit.org/show_bug.cgi?id=133700

        Reviewed by Timothy Hatcher.

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyle::styleWithProperties):

2014-08-04  Chris Fleizach  <cfleizach@apple.com>

        AX: SelectText functionality always selects text after current selection even if closer selection is behind it
        https://bugs.webkit.org/show_bug.cgi?id=135546

        Reviewed by Mario Sanchez Prada.

        Logic was incorrect for comparing ranges found before the current selection.
        ASSERT was incorrect for allowed ranges. We need to allow ranges that are right at the boundaries of our found ranges.

        Extended existing test: platform/mac/accessibility/select-text.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::rangeClosestToRange):

2014-08-04  Chris Fleizach  <cfleizach@apple.com>

        AX: AXSelectTextWithCriteriaParameterizedAttribute incorrectly selects the beginning letters of a word
        https://bugs.webkit.org/show_bug.cgi?id=135547

        Reviewed by Mario Sanchez Prada.

        Allow text search to specify that it wants to match end of words as well as start of words.
        This allows select text criteria to match on whole words only.

        Test: platform/mac/accessibility/select-text-should-match-whole-words.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::rangeOfStringClosestToRangeInDirection):
        * editing/FindOptions.h:
        * editing/TextIterator.cpp:
        (WebCore::SearchBuffer::isWordEndMatch):
        (WebCore::SearchBuffer::search):

2014-08-04  Jer Noble  <jer.noble@apple.com>

        [MSE] Re-enqueing due to overlapping appended samples can cause stuttering playback
        https://bugs.webkit.org/show_bug.cgi?id=135424

        Reviewed by Eric Carlson.

        If it become necessary to re-enqueue samples (due to appending overlapping samples which cause
        existing samples to be removed), the previous behavior was to flush and re-enqueue the new
        samples dependencies; i.e., everything up to and including the previous sync sample. This causes
        the decoder to visibly stall while it decodes those non-displaying samples, which could be
        a second or more worth of encoded video samples, depending on the frequency of sync samples.

        Instead, when we are asked to re-enqueue, we will look for the next occurring sync sample.
        If found, we can switch over to the replacement samples at that point in the decode queue.
        This limits the overhead of a stream switch, and should allow for a visually seamless switch,
        at the cost of having to wait for the next sync sample to occur to affect the switch.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::seekToTime): Clear the decode queue when seeking.
        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reenqueueMediaForCurrentTime.
        (WebCore::SourceBuffer::reenqueueMediaForCurrentTime): Switch over to the new stream only
            at the next sync sample.

2014-08-04  Chris Fleizach  <cfleizach@apple.com>

        AX: The Dictation command "Replace <phrase> with <phrase>" always capitalizes the replacement string
        https://bugs.webkit.org/show_bug.cgi?id=135557

        Reviewed by Mario Sanchez Prada.

        When replacing text, we should match the capitalization of the word being replaced 
        (unless the replacement looks like an abbreviation).   
 
        Test: platform/mac/accessibility/find-and-replace-match-capitalization.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::selectText):

2014-08-04  Pratik Solanki  <psolanki@apple.com>

        QuickLook resources are cache-replaced with their original binary data causing ASSERT(m_data->size() == newBuffer->size()) in CachedResource.cpp
        https://bugs.webkit.org/show_bug.cgi?id=135548
        <rdar://problem/17891321>

        Reviewed by David Kilzer.

        When loading QuickLook resources, the SharedBuffer in the CachedResource is actually a
        converted representation of the real QuickLook resource. Replacing this with the actual
        network resource (which is what tryReplaceEncodedData() tried to do) is wrong and triggered
        asserts in the code.

        Fix this by having CachedRawResource::mayTryReplaceEncodedData() return false if we are
        loading a QuickLook resource.

        No new tests because we don't have a way to test QuickLook documents.

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::ResourceLoader):
        (WebCore::ResourceLoader::didCreateQuickLookHandle):
            Set a flag to indicate that we are loading a QuickLook document.
        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::isQuickLookResource):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::CachedRawResource):
        (WebCore::CachedRawResource::finishLoading):
            Check if we were loading a QuickLook document and if so disable encoded data
            replacement.
        * loader/cache/CachedRawResource.h:
            Add a new bool field returned by mayTryReplaceEncodedData(). Default is true but it is
            set to false in finishLoading() if we were loading QuickLook document.

2014-08-04  Jer Noble  <jer.noble@apple.com>

        [MSE] Seeking occasionally causes many frames to be displayed in "fast forward" mode
        https://bugs.webkit.org/show_bug.cgi?id=135422

        Reviewed by Eric Carlson.

        When a seek is pending, but samples for the new time is not yet present in the SourceBuffer,
        the SourceBufferPrivate may signal that it's ready for new samples through the
        sourceBufferPrivateDidBecomeReadyForMoreSamples() method. In this situation, we should not
        continue to provideMediaData(), as that will append samples from the prior-to-seeking media
        timeline. Since the timeline may have moved forward due to the seek, a decoder may decide to
        display those frames as quickly as possible (the "fast forward" behavior) in order to catch
        up to the new current time.

        If a re-enqueue is pending, don't provide media data in response to being notified that the
        SourceBufferPrivate is ready for more samples. Wait until samples for the new current time
        are appended.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
        * dom/Document.cpp:
        (WebCore::Document::unregisterCollection):

2014-08-04  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Install all unstable webkitdom headers
        https://bugs.webkit.org/show_bug.cgi?id=135544

        Reviewed by Gustavo Noronha Silva.

        We were checking whether generated file existed before they had
        been generated.

        * PlatformGTK.cmake: Add Unstable.h header for all stable classes
        to GObjectDOMBindingsUnstable_INSTALLED_HEADERS and split the
        install command for stable and unstable headers making unstable
        headers optional.

2014-08-04  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Compile error in OpenTypeMathData.cpp.
        https://bugs.webkit.org/show_bug.cgi?id=135541

        Reviewed by Brent Fulgham.

        The SharedBuffer class needs to be defined.
        Also, the OpenTypeMathData constructor should be implemented when OPENTYPE_MATH is not enabled.

        * platform/graphics/opentype/OpenTypeMathData.cpp:

2014-08-03  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17782529> REGRESSION: OS marketing version in iOS Simulator user-agent string is the host OS’s
        https://bugs.webkit.org/show_bug.cgi?id=135549

        Reviewed by Mark Rowe.

        * platform/cocoa/SystemVersion.mm:
        (WebCore::createSystemMarketingVersion): On the iOS Simulator, locate the system Library
        directory relative to the Simulator root.

2014-08-02  Jeremy Jones  <jeremyj@apple.com>

        Support both window and view based video fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=135525

        Reviewed by Simon Fraser.

        Presenting in a separate window gives greater flexibility for rotation separately from the app.
        Presenting in the same window works better if the interface is rehosted in another process.

        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        (-[WebVideoFullscreenController enterFullscreen:]): Use clientRect instead of screenRect.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add m_window and m_parentView.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: 
        (-[WebAVVideoLayer setBounds:]): Parent view might not be fullscreen; use window instead.
        (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Conditionally create UIWindow and UIViewController for fullscreen.
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Video, not the container should have black background.
        (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Conditionally translate finalRect.
        (WebVideoFullscreenInterfaceAVKit::cleanupFullscreen): Clean up UIWindow and force status bar to correct orientation.
        (WebVideoFullscreenInterfaceAVKit::invalidate): Clean up UIWindow.
        (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): Hide window and exit without animation.
        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::setVideoFullscreenLayer): Apply frame, because it may have been set before the layer.

2014-08-02  Benjamin Poulain  <bpoulain@apple.com>

        Update the SearchFieldResultsButtonElement shadow Pseudo Id when HTMLInputElement's maxResults change
        https://bugs.webkit.org/show_bug.cgi?id=135491

        Reviewed by Ryosuke Niwa.

        Replace the shadowPseudoId() override + manual style invalidation by the generic pseudo ID update.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseAttribute):
        * html/InputType.cpp:
        (WebCore::InputType::maxResultsAttributeChanged):
        * html/InputType.h:
        * html/SearchInputType.cpp:
        (WebCore::SearchInputType::SearchInputType):
        (WebCore::updateResultButtonPseudoType):
        (WebCore::SearchInputType::maxResultsAttributeChanged):
        (WebCore::SearchInputType::createShadowSubtree):
        (WebCore::SearchInputType::destroyShadowSubtree):
        * html/SearchInputType.h:
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::SearchFieldResultsButtonElement::shadowPseudoId): Deleted.
        * html/shadow/TextControlInnerElements.h:

2014-08-02  Benjamin Poulain  <bpoulain@apple.com>

        Add warnings for the buggy implementations of shadowPseudoId()
        https://bugs.webkit.org/show_bug.cgi?id=135477

        Reviewed by Ryosuke Niwa.

        Dean is going to look into fixing media element styling.
        In the meantime, add warnings to prevent this from spreading.

        * dom/Element.h:
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::SliderThumbElement::shadowPseudoId):
        (WebCore::SliderContainerElement::shadowPseudoId):

2014-08-01  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171957.
        https://bugs.webkit.org/show_bug.cgi?id=135538

        Caused GTK assertions and test failures (Requested by smfr on
        #webkit).

        Reverted changeset:

        "Clean up image subsampling code, make it less iOS-specific"
        https://bugs.webkit.org/show_bug.cgi?id=134916
        http://trac.webkit.org/changeset/171957

2014-08-01  Myles C. Maxfield  <litherum@gmail.com>

        [CMake] Allow CMake to find GLib on FreeBSD
        https://bugs.webkit.org/show_bug.cgi?id=132530

        Reviewed by Gustavo Noronha Silva.

        On FreeBSD, glibconfig.h is at /usr/local/include/glib-2.0/glibconfig.h.

        * Source/cmake/FindGLIB.cmake:

2014-08-01  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        REGRESSION(r171942): [CMAKE] [GTK] build broken (clean build).
        https://bugs.webkit.org/show_bug.cgi?id=135522

        Reviewed by Martin Robinson.

        No new tests required, no new functionality.

        * CMakeLists.txt: Add missing include to the inspector headers
        and fix the path to InspectorJSTypeBuilders.h

2014-08-01  Simon Fraser  <simon.fraser@apple.com>

        Fix resource leak in FillLayersPropertyWrapper object member
        https://bugs.webkit.org/show_bug.cgi?id=135462

        Reviewed by Andreas Kling.

        Fix leak of m_fillLayerPropertyWrapper by using unique_ptr<>.
        Based on patch by Przemyslaw Kuczynski.

        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):

2014-08-01  Simon Fraser  <simon.fraser@apple.com>

        Clean up image subsampling code, make it less iOS-specific
        https://bugs.webkit.org/show_bug.cgi?id=134916

        Reviewed by Dean Jackson.

        Compile the image subsampling code on both Mac and iOS, and make it more platform
        neutral in general. Add a setting to allow it to be enabled on Mac for testing.
        
        The most significant changes are in ImageSourceCG and BitmapImageCG. CG's ImageSource
        is no longer stateful with respect to subsampling; its functions take a SubsamplingLevel
        when appropriate. CG's BitmapImage now determines which level of subsampling to use
        for a given frame, storing the subsampling level in the frame data. It can replace
        an aggressively subsampled frame with a less subsampled frame if necessary.
        
        To reduce the chances of subsampling affecting rendering, BitmapImage::size() now
        always returns the non-subsampled size; subsampling is strictly internal to BitmapImage.
        BitmapImage::draw() takes care of scaling the srcRect for subsampled images.
        
        iOS had a code path that enabled caching of frame metadata in BitmapImage without
        actually decoding the frame; make this cross-platform.

        * WebCore.exp.in: Changed signature for GraphicsContext::drawNativeImage().
        * WebCore.xcodeproj/project.pbxproj: Added ImageSource.cpp, which is not built
        for Cocoa but useful for reference.
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::imageSizeForRenderer): Remove iOS-specific subsampling code.
        (WebCore::CachedImage::createImage): Call setAllowSubsampling() on the image if we
        can get to Settings (m_loader is null for image documents).
        (WebCore::CachedImage::currentFrameKnownToBeOpaque): This forced decode always
        caused creation of the non-subsampled image, so remove it. There's no reason to
        eagerly decode the frame here.
        * loader/cache/CachedImage.h: Fix comment.
        * page/Settings.cpp: Add defaultImageSubsamplingEnabled, true for iOS and false for Mac.
        * page/Settings.in: Added imageSubsamplingEnabled.
        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::BitmapImage): Init some more things. Default m_allowSubsampling to
        true for iOS to catch images created in code paths where we can't get to Settings.
        (WebCore::BitmapImage::haveFrameAtIndex): Handy helper.
        (WebCore::BitmapImage::cacheFrame): Now takes the subsampling level and whether to cache
        just metadata, or also the frame.
        (WebCore::BitmapImage::didDecodeProperties): No need to store originalSize.
        (WebCore::BitmapImage::updateSize): When we get the size for the first time, call
        determineMinimumSubsamplingLevel() to choose a reasonable subsampling level which takes
        platform-specific limits into account.
        (WebCore::BitmapImage::dataChanged): Comment.
        (WebCore::BitmapImage::ensureFrameIsCached): Take ImageFrameCaching into account.
        (WebCore::BitmapImage::frameAtIndex): Choose a subsampling level given the scale,
        then determine if we can use the currently cached frame, or whether we should resample.
        (WebCore::BitmapImage::frameIsCompleteAtIndex): Caching m_isComplete is now done when caching
        frame metadata.
        (WebCore::BitmapImage::frameDurationAtIndex):
        (WebCore::BitmapImage::frameHasAlphaAtIndex): The 'true' return is the safe return value.
        (WebCore::BitmapImage::frameOrientationAtIndex): Caching m_orientation is now done when caching
        frame metadata.
        (WebCore::BitmapImage::cacheFrameInfo): Deleted.
        (WebCore::BitmapImage::originalSize): Deleted.
        (WebCore::BitmapImage::originalSizeRespectingOrientation): Deleted.
        (WebCore::BitmapImage::currentFrameSize): Deleted.
        (WebCore::BitmapImage::ensureFrameInfoIsCached): Deleted.
        * platform/graphics/BitmapImage.h:
        (WebCore::FrameData::FrameData):
        * platform/graphics/GraphicsContext.h: No need to pass a scale param now.
        * platform/graphics/ImageSource.cpp: Non-Cocoa changes.
        (WebCore::ImageSource::subsamplingLevelForScale):
        (WebCore::ImageSource::allowSubsamplingOfFrameAtIndex):
        (WebCore::ImageSource::size):
        (WebCore::ImageSource::frameSizeAtIndex):
        (WebCore::ImageSource::createFrameAtIndex):
        (WebCore::ImageSource::frameBytesAtIndex):
        * platform/graphics/ImageSource.h: No longer stores subsampling state.
        (WebCore::ImageSource::isSubsampled): Deleted.
        * platform/graphics/cairo/BitmapImageCairo.cpp:
        (WebCore::BitmapImage::determineMinimumSubsamplingLevel):
        * platform/graphics/cg/BitmapImageCG.cpp:
        (WebCore::FrameData::clear):
        (WebCore::BitmapImage::BitmapImage): Init more members.
        (WebCore::BitmapImage::determineMinimumSubsamplingLevel): Choose a minimum subsampling
        level for the platform (subsample until the image area falls under a threshold).
        (WebCore::BitmapImage::checkForSolidColor): Don't bother decoding frames if the image
        is not 1x1. Also take care not to decode a non-subsampled image.
        (WebCore::BitmapImage::draw): The actual bug fix is here; remove logic that
        computed srcRectForCurrentFrame from m_size and m_originalSize; for some callers
        srcRect was computed using the pre-subsampled size, and for others it was the subsampled size.
        Instead, scale srcRect by mapping between the non-subsampled size, and the size of the CGImageRef
        which is affected by subsampling.
        (WebCore::BitmapImage::copyUnscaledFrameAtIndex):
        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage): Remove #ifdeffed code.
        (WebCore::GraphicsContext3D::paintToCanvas):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawNativeImage): No more weird scaling!
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::ImageSource):
        (WebCore::createImageSourceOptions): Helper that always returns a new CFDictionaryRef.
        (WebCore::imageSourceOptions): If not subsampling, return the cached CFDictionaryRef, otherwise
        make a new options dict and return it.
        (WebCore::ImageSource::subsamplingLevelForScale): Helper that returns a subsampling level
        between 0 and 3 given a scale.
        (WebCore::ImageSource::isSizeAvailable): SkipMetadata is a default value for the param now.
        (WebCore::ImageSource::allowSubsamplingOfFrameAtIndex): We turn off subsampling for progressive
        JPEGs because of a bug, so need this to know if a frame should be subsampled.
        (WebCore::ImageSource::frameSizeAtIndex): The looping to find a subsampling level is now in BitmapImageCG.
        (WebCore::ImageSource::orientationAtIndex):
        (WebCore::ImageSource::size): Always use a subsampling level of 0 for size().
        (WebCore::ImageSource::getHotSpot):
        (WebCore::ImageSource::repetitionCount):
        (WebCore::ImageSource::createFrameAtIndex): The caller mapped a scale to a level.
        (WebCore::ImageSource::frameDurationAtIndex):
        (WebCore::ImageSource::frameBytesAtIndex):
        (WebCore::ImageSource::imageSourceOptions): Deleted.
        (WebCore::ImageSource::originalSize): Deleted.
        * platform/graphics/mac/ImageMac.mm:
        (WebCore::BitmapImage::invalidatePlatformData): 0 -> nullptr
        * platform/graphics/wince/ImageWinCE.cpp:
        (WebCore::BitmapImage::determineMinimumSubsamplingLevel):

2014-08-01  Andreas Kling  <akling@apple.com>

        Many DOM objects have InterceptsGetOwnPropertySlotByIndexEvenWhenLengthIsNotZero for no reason.
        <https://webkit.org/b/135519>

        Don't set this structure flag unless the object actually has an override
        for getOwnPropertySlotByIndex().

        Reviewed by Geoffrey Garen.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        * bindings/scripts/test/JS/JSTestException.h:
        * bindings/scripts/test/JS/JSTestInterface.h:
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/JS/JSTestTypedefs.h:

2014-08-01  Myles C. Maxfield  <mmaxfield@apple.com>

        SVG Font kerning can take an early out if the font has no kerning information
        https://bugs.webkit.org/show_bug.cgi?id=135524

        Reviewed by Dean Jackson.

        Rather than calling SVGFontElement::horizontalKerningForPairOfStringsAndGlyphs() again
        and again, skip the iteration entirely if every call would return 0.

        No new tests because there is no behavior change.

        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGTextRunRenderingContext::applySVGKerning):
        * svg/SVGFontElement.h:

2014-08-01  Beth Dakin  <bdakin@apple.com>

        Inspector highlights clipped at the bottom on the page in WK1 views with 
        contentInsets
        https://bugs.webkit.org/show_bug.cgi?id=135480
        -and corresponding-
        <rdar://problem/17850323>

        Forgot to commit this one very critical part with 
        http://trac.webkit.org/changeset/171951 

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):

2014-08-01  Beth Dakin  <bdakin@apple.com>

        Inspector highlights clipped at the bottom on the page in WK1 views with 
        contentInsets
        https://bugs.webkit.org/show_bug.cgi?id=135480
        -and corresponding-
        <rdar://problem/17850323>

        Reviewed by Simon Fraser.

        unscaledTotalVisibleContentSize() was the main function on Mac that was expected 
        to return the rect representing ALL visible content, including content that might 
        be in an inset area and obscured by UI elements. This patch re-names that function 
        to unscaledVisibleContentSizeIncludingObscuredArea(), and that patch makes that 
        function return the right thing in the platformWidget() case.

        Re-name.
        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::update):

        Return platformVisibleContentSizeIncludingObscuredArea() for the platformWidget() 
        case and re-name.
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::unscaledVisibleContentSizeIncludingObscuredArea):

        This was just wrong. It was returning the big rectangle instead of the small one 
        for platformWidget().
        (WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):

        New platform functions.
        (WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
        (WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
        (WebCore::ScrollView::unscaledTotalVisibleContentSize): Deleted.
        * platform/ScrollView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
        (WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):
        * platform/mac/ScrollViewMac.mm:
        (WebCore::ScrollView::platformVisibleContentRect):
        (WebCore::ScrollView::platformVisibleContentSize):
        (WebCore::ScrollView::platformVisibleContentRectIncludingObscuredArea):
        (WebCore::ScrollView::platformVisibleContentSizeIncludingObscuredArea):

        Re-name.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
        (WebCore::RenderLayerCompositor::ensureRootLayer):

2014-08-01  Myles C. Maxfield  <mmaxfield@apple.com>

        SVGGlyph wastes space due to padding
        https://bugs.webkit.org/show_bug.cgi?id=135520

        Reviewed by Dean Jackson.

        Rearrange members in SVGGlyph so there is no wasted padding space.

        No new tests because there is no behavior change.

        * platform/graphics/SVGGlyph.h:
        (WebCore::SVGGlyph::SVGGlyph):

2014-07-31  Dean Jackson  <dino@apple.com>

        [Media iOS] Ensure there is a nice default fallback for missing wireless target names
        https://bugs.webkit.org/show_bug.cgi?id=135488
        <rdar://problem/17879156>

        Reviewed by Eric Carlson.

        We occasionally run into cases where this.host.externalDeviceDisplayName
        is empty or null, creating a pretty ugly/confusing string in the
        wireless playback status screen.

        If this happens, we should default to using "Apple TV".

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.updateWirelessPlaybackStatus): Check if the externalDeviceDisplayName
        is empty or null, and fall back to "Apple TV" if so.

2014-07-30  Myles C. Maxfield  <mmaxfield@apple.com>

        URLs in srcset attributes are not made absolute upon copy and paste
        https://bugs.webkit.org/show_bug.cgi?id=135448

        Reviewed by Ryosuke Niwa.

        When pasting, canonicalize URLs in srcset the same way we do with src.

        Test: editing/pasteboard/img-srcset-copy-paste-canonicalization.html

        * dom/Element.cpp:
        (WebCore::Element::completeURLsInAttributeValue): Initial implemention, moved from markup.cpp.
        * dom/Element.h:
        (WebCore::Element::attributeContainsURL): New function for completeURLs to call.
        (WebCore::Element::completeURLsInAttributeValue): Only called if attributeContainsURL returns
        true. Default implementation simply calls isURLAttribute().
        * editing/markup.cpp:
        (WebCore::completeURLs): Call attributeContainsURL() and completeURLsInAttributeValue() to
        complete the URL, so nodes can perform their own behavior.
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::attributeContainsURL): Return true for srcset.
        (WebCore::HTMLImageElement::completeUrlAttributeValue): Use our existing srcset parser to
        parse the srcset attribute, then use its output to canonicalize URLs, and build it back up
        into a string.
        * html/HTMLImageElement.h:
        (WebCore::HTMLImageElement::attributeContainsURL):
        (WebCore::HTMLImageElement::completeUrlAttributeValue):
        * html/parser/HTMLSrcsetParser.cpp: Make parseImageCandidatesFromSrcsetAttribute() public
        and change its signature to return its result.
        (WebCore::parseImageCandidatesFromSrcsetAttribute):
        * html/parser/HTMLSrcsetParser.h: Ditto.

2014-07-31  Andreas Kling  <akling@apple.com>

        Remove the JSC::OverridesVisitChildren flag.
        <https://webkit.org/b/135489>

        Tweak the bindings code generator to stop spitting out the flag.

        Reviewed by Geoffrey Garen.

        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::visitChildren):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):

2014-08-01  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Volume is not remembered between items in a YouTube playlist
        https://bugs.webkit.org/show_bug.cgi?id=135479

        Reviewed by Eric Carlson.

        When an AVSampleBufferAudioRenderer is added to the player, set its -volume and -muted
        properties with the current values from the HTMLMediaElement. 

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::addAudioRenderer):

2014-08-01  Tim Horton  <timothy_horton@apple.com>

        Fix the iOS build after r171891

        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::platformTopContentInset):
        (WebCore::ScrollView::platformSetTopContentInset):

2014-08-01  Pratik Solanki  <psolanki@apple.com>

        Remove EventNames.h include from header files
        https://bugs.webkit.org/show_bug.cgi?id=135486

        Reviewed by Alexey Proskuryakov.

        No new tests because no functional changes.

        * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
        * Modules/gamepad/GamepadEvent.h:
        * Modules/indexeddb/IDBRequest.h:
        * Modules/indexeddb/IDBTransaction.h:
        * Modules/mediastream/RTCStatsResponse.h:
        * Modules/websockets/WebSocket.h:
        * css/FontLoader.h:
        * dom/SecurityPolicyViolationEvent.h:
        * loader/appcache/DOMApplicationCache.h:
        * workers/AbstractWorker.h:
        * workers/Worker.h:
        * workers/WorkerGlobalScope.h:
        * xml/XMLHttpRequest.h:
        * xml/XMLHttpRequestProgressEvent.h:

2014-08-01  Simon Fraser  <simon.fraser@apple.com>

        nullptr goodness in RenderLayer
        https://bugs.webkit.org/show_bug.cgi?id=135512

        Reviewed by Brent Fulgham.

        Use nullptr in RenderLayer.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::updateDescendantDependentFlags):
        (WebCore::accumulateOffsetTowardsAncestor):
        (WebCore::RenderLayer::scrollRectToVisible):
        (WebCore::RenderLayer::destroyScrollbar):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::hitTestFixedLayersInNamedFlows):
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::hitTestList):
        (WebCore::RenderLayer::calculateClipRects):

2014-08-01  Tim Horton  <timothy_horton@apple.com>

        Build fix for iOS

        * bindings/objc/DOM.mm:
        (-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
        We use CGImageRef instead of NSImage here on iOS.

2014-08-01  Renato Nagy  <nagy.renato@stud.u-szeged.hu>

        ASSERTION FAILED: listNode in WebCore::RenderListItem::updateListMarkerNumbers
        https://bugs.webkit.org/show_bug.cgi?id=134970

        Reviewed by Zalan Bujtas.

        Removed an unnecessary assert, because the null return value of enclosingList() is
        handled properly after this assert.

        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::updateListMarkerNumbers):

2014-08-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Replace DEPRECATED_DEFINE_STATIC_LOCAL with NeverDestroyed<T> in NavigatorContentUtils
        https://bugs.webkit.org/show_bug.cgi?id=135494

        Reviewed by Andrei Bucur.

        Use static NeverDestroyed<T> variables instead of the DEPRECATED_DEFINE_STATIC_LOCAL macro.

        No new tests, no behavior changes.

        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::customHandlersStateString):
        (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):

2014-07-31  Benjamin Poulain  <bpoulain@apple.com>

        Remove shadowPseudoId() override from the shadow media controls
        https://bugs.webkit.org/show_bug.cgi?id=135474

        Reviewed by Eric Carlson.

        Small cleanup.

        * html/shadow/MediaControlElementTypes.h:
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::MediaControlPanelElement):
        (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement):
        (WebCore::MediaControlOverlayEnclosureElement::MediaControlOverlayEnclosureElement):
        (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement):
        (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement):
        (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement):
        (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement):
        (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement):
        (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
        (WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement):
        (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement):
        (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement):
        (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement):
        (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement):
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement):
        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement):
        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement):
        (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
        (WebCore::MediaControlPanelVolumeSliderElement::MediaControlPanelVolumeSliderElement):
        (WebCore::MediaControlFullscreenVolumeSliderElement::MediaControlFullscreenVolumeSliderElement):
        (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
        (WebCore::MediaControlFullscreenVolumeMinButtonElement::MediaControlFullscreenVolumeMinButtonElement):
        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::MediaControlFullscreenVolumeMaxButtonElement):
        (WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement):
        (WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement):
        (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement):
        (WebCore::MediaControlPanelElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlPanelEnclosureElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlOverlayEnclosureElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlTimelineContainerElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlVolumeSliderContainerElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlStatusDisplayElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlPanelMuteButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlVolumeSliderMuteButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlPlayButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlOverlayPlayButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlSeekForwardButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlSeekBackButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlRewindButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlReturnToRealtimeButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlClosedCaptionsContainerElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlClosedCaptionsTrackListElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlTimelineElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlPanelVolumeSliderElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlFullscreenVolumeSliderElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlFullscreenButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlFullscreenVolumeMinButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlTimeRemainingDisplayElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlCurrentTimeDisplayElement::shadowPseudoId): Deleted.
        (WebCore::MediaControlTextTrackContainerElement::textTrackContainerElementShadowPseudoId): Deleted.
        (WebCore::MediaControlTextTrackContainerElement::shadowPseudoId): Deleted.
        * html/shadow/MediaControlElements.h:
        * html/shadow/MediaControls.cpp:
        (WebCore::MediaControls::MediaControls):
        (WebCore::MediaControls::shadowPseudoId): Deleted.
        * html/shadow/MediaControls.h:

2014-07-31  Timothy Horton  <timothy_horton@apple.com>

        Build fix for platforms where we should have automaticallyAdjustsContentInsets but it isn't public yet

        * platform/mac/ScrollViewMac.mm:

2014-07-31  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [EFL] Add support for building with Geoclue2.
        https://bugs.webkit.org/show_bug.cgi?id=135455

        Reviewed by Gyuyoung Kim.

        No new tests required, no new functionality.

        * PlatformEfl.cmake: Generate derived sources for Geoclue2Interface
        and include gio-unix path.

2014-07-31  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Region painting needs to take subpixel accumulation into account.
        https://bugs.webkit.org/show_bug.cgi?id=135469

        Similar to non-region painting, when the context is translated, we need to propagate
        the subpixel difference so that renderers get snapped to the same position as if they
        were not part of a region.

        Reviewed by Simon Fraser.

        Covered by existing tests/not testable (webkit.org/b/135470)

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::createTextTrackRepresentationImage):
        * page/FrameView.cpp:
        (WebCore::FrameView::paintContents):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paint):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:

2014-07-31  Jer Noble  <jer.noble@apple.com>

        [iOS] Video in an <embed> has a bad aspect ratio when in fullscreen mode.
        https://bugs.webkit.org/show_bug.cgi?id=135481

        Reviewed by Simon Fraser.

        Do not change the gravity of our AVPlayerLayer when in full screen mode; its gravity
        is controlled by setVideoFullscreenGravity(), and should not be affected by style changes.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::updateVideoLayerGravity):

2014-07-31  Beth Dakin  <bdakin@apple.com>

        Hit-testing broken in WebKit 1 views with AppKit's contentInsets
        https://bugs.webkit.org/show_bug.cgi?id=135434
        -and corresponding-
        <rdar://problem/17850323>

        Reviewed by Benjamin Poulain.

        AppKit's contentInsets are factored into scroll positions and mouse positions, but
        in WebCore, we generally want all of those things to be factored out so that, for
        example, the scroll position of a document pinned to the top is the same whether
        or not there is a contentInset. So to fix hit-testing in WebKit 1 views with
        contentInsets, this patch factors the inset out or into of all coordinate
        conversion methods just like we do for the WebKit2 contentInset.
        
        This patch also adds the ability to test WK1 platformContentInsets with
        window.internals, and it re-names convertFromRenderer to 
        convertFromRendererToContainingView and also re-names convertToRenderer to
        convertFromContainingViewToRenderer.

        ScrollView::topContentInset() takes an optional parameter indicating whether the
        caller wants the WebCore::Page contentInset or the platform content inset. It’s
        necessary to distinguish between these cases because there is a lot of code that
        only wants the WebCore::Page contentInset since that feature is actually
        implemented in WebCore as opposed to being implemented at the platform level.
        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::topContentInset):

        For layout test purposes, set the platforTopContentInset here if there is a 
        platformWidget().
        (WebCore::FrameView::topContentInsetDidChange):

        Re-named functions, also all coordinate conversion functions call 
        topContentInset(ManualOrPlatformContentInset)
        (WebCore::FrameView::convertFromContainingViewToRenderer):
        (WebCore::FrameView::convertToContainingView):
        (WebCore::FrameView::convertFromContainingView):
        (WebCore::FrameView::convertFromRenderer): Deleted.
        (WebCore::FrameView::convertToRenderer): Deleted.
        * page/FrameView.h:
        * page/Page.cpp:
        (WebCore::Page::setTopContentInset):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::documentScrollOffsetRelativeToViewOrigin):
        (WebCore::ScrollView::documentScrollPositionRelativeToViewOrigin):
        (WebCore::ScrollView::contentsToRootView):
        (WebCore::ScrollView::rootViewToTotalContents):
        (WebCore::ScrollView::contentsToWindow):
        (WebCore::ScrollView::platformTopContentInset):
        (WebCore::ScrollView::platformSetTopContentInset):
        * platform/ScrollView.h:
        (WebCore::ScrollView::topContentInset):
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::platformTopContentInset):
        (WebCore::ScrollView::platformSetTopContentInset):

        Implement new platform inset-related functions using AppKit's implementation.
        * platform/mac/ScrollViewMac.mm:
        (WebCore::ScrollView::platformTopContentInset):
        (WebCore::ScrollView::platformSetTopContentInset):
        
        When we set the scroll position for the documentView, we have to factor the inset
        back into the WebCore scroll position.
        (WebCore::ScrollView::platformSetScrollPosition):
        
        Re-named functions.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::convertFromScrollbarToContainingView):
        (WebCore::RenderLayer::convertFromContainingViewToScrollbar):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::convertFromScrollbarToContainingView):
        (WebCore::RenderListBox::convertFromContainingViewToScrollbar):

2014-07-31  Dean Jackson  <dino@apple.com>

        Default buttons do not pulse in OS X 10.10
        https://bugs.webkit.org/show_bug.cgi?id=135447
        <rdar://problem/17875896>

        Reviewed by Dan Bernstein.

        OS X Yosemite does not have the animated pulsing default
        buttons seen in previous releases. We don't need to have
        a timer in RenderButton constantly triggering repaints.

        * platform/mac/ThemeMac.mm:
        (WebCore::paintButton): No need to advance the animation.
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::styleDidChange): Ask the theme if it
        should advance the animation.
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::defaultButtonHasAnimation): Virtual function
        indicating if the button needs to repaint.
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::defaultButtonHasAnimation): Provide platform
        specific result on Yosemite and above.

2014-07-31  Tim Horton  <timothy_horton@apple.com>

        DOM::renderedImageForcingBlackText returns an image with the wrong logical size on 2x displays
        https://bugs.webkit.org/show_bug.cgi?id=135442
        <rdar://problem/17614632>

        Reviewed by Simon Fraser.

        * bindings/objc/DOM.mm:
        (-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
        Scale the NSImage size by the device scale factor,
        similar to what we did for drag images in r167403.
        Ideally this scaling would happen in the code that
        generates the images, but this is a much larger change
        with much more regression potential.

2014-07-31  Bear Travis  <betravis@adobe.com>

        [CSS Font Loading] Rename document.fontloader to document.fonts
        https://bugs.webkit.org/show_bug.cgi?id=135393

        Reviewed by Bem Jones-Bey.

        The most recent version of the specification has renamed
        document.fontloader to document.fonts. This change updates the
        names in WebCore and LayoutTests.

        Fixed up existing tests under LayoutTests/fast/css/fontloader-*
        and LayoutTests/http/webfont/fontloader-*

        * css/CSSFontFace.cpp:
        (WebCore::CSSFontFace::notifyFontLoader):
        (WebCore::CSSFontFace::notifyLoadingDone):
        * dom/Document.cpp:
        (WebCore::Document::fonts):
        (WebCore::Document::fontloader): Deleted.
        * dom/Document.h:
        * dom/Document.idl:
        * page/FrameView.cpp:
        (WebCore::FrameView::performPostLayoutTasks):

2014-07-31  Andrei Bucur  <abucur@adobe.com>

        REGRESSION: Search highlight is broken in RTL multicolumn content
        https://bugs.webkit.org/show_bug.cgi?id=135452

        Reviewed by Simon Fraser.

        The offsets for elements inside RTL multi-column elements are incorrectly computed because
        the columns don't calculate their left position according to the writing direction.

        The patch extracts the column position computation in two helper functions (for top and left)
        so they can be used when needed in different parts of the code. In our case, the |columnLogicalLeft|
        function should be used inside |columnTranslationForOffset|.

        Test: fast/multicol/content-bounding-box-rtl.html

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::columnLogicalLeft): Return the logical left of a column relative to the set.
        (WebCore::RenderMultiColumnSet::columnLogicalTop): Return the logical top of a column relative to the set.
        (WebCore::RenderMultiColumnSet::columnRectAt): Split the code between columnLogicalLeft and columnLogicalTop.
        (WebCore::RenderMultiColumnSet::collectLayerFragments): Make code clearer by adding a new line.
        (WebCore::RenderMultiColumnSet::columnTranslationForOffset): Use columnLogicalLeft instead of duplicating logic.
        * rendering/RenderMultiColumnSet.h:

2014-07-31  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        Eliminate "FractionConversion" from CSSPrimitiveValue::convertToLength
        https://bugs.webkit.org/show_bug.cgi?id=135377

        Reviewed by Darin Adler.

        The FractionConversion argument in CSSPrimitiveValue::convertToLength
        doesn't seem to actually have a purpose. It is for converting numbers
        into Length(x * 100, Percent), but this case shouldn't be reachable.
        The original patch introducing it doesn't shed any light either:
        [https://bugs.webkit.org/show_bug.cgi?id=74913

        This patch removes the now unused FractionConversion argument. Note
        that we can probably also merge the two Fixed conversions, as the
        two only differ in clamping large numbers (probably unintended).

        Patch by Timothy Loh, backported from Blink: https://codereview.chromium.org/71253002

        No new tests.

        * css/CSSCalculationValue.cpp:
        (WebCore::determineCategory):
        * css/CSSParser.cpp:
        (WebCore::parseTransformTranslateArguments):
        (WebCore::parseTranslateTransformValue):
        (WebCore::parseTransformArguments): Deleted.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::convertToLength):
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyClip::convertToLength):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::convertToIntLength):
        (WebCore::StyleResolver::convertToFloatLength):
        * css/TransformFunctions.cpp:
        (WebCore::convertToFloatLength):

2014-07-31  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: console.profile missing profile information
        https://bugs.webkit.org/show_bug.cgi?id=135432

        Reviewed by Timothy Hatcher.

        By switching console.profile to start/stop the timeline we would
        not have a chance to recompile JS functions with profiling information.
        This used to work because whenever the inspector was open we would
        have profiling information enabled. Go back to that behavior.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::profilerEnabled):
        Instead of checking if the timeline agent has started, check if the
        timeline agent has been created. Going back to the normal behavior
        of always having profiling information when the inspector is open.

        * inspector/InspectorTimelineAgent.h:
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
        Recompile initializing the timeline agent to include profiling information.

        (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
        Recompile destrying the timeline agent, only if needed.

        (WebCore::InspectorTimelineAgent::willCallFunction):
        (WebCore::InspectorTimelineAgent::didCallFunction):
        (WebCore::InspectorTimelineAgent::willEvaluateScript):
        (WebCore::InspectorTimelineAgent::didEvaluateScript):
        Using a boolean to track nested calls would not give expected
        behavior when un-nesting. Switch to a counter to ensure that
        as we start profiling in the outermost level we then stop
        profiling at that same level and not inside an inner nesting.

2014-07-31  Wenson Hsieh  <wenson_hsieh@apple.com>

        Refactor EventHandler to call ScrollAnimator::handleWheelEvent for overflow scrolling
        https://bugs.webkit.org/show_bug.cgi?id=135195

        Reviewed by Beth Dakin.

        ScrollableArea::handleWheelEvent is not currently being used to handle wheel events for overflow scrolling; it instead directly invokes ScrollableArea::scroll.
        In order to expose wheel phases on Mac, the PlatformWheelEvent itself should propagate down to ScrollableArea, not just the scroll granularity, direction and
        multiplier required by ScrollableArea::scroll. With this patch, PlatformWheelEvent will be "shipped" along with the WheelEvent.

        No new tests, since behavior should not have changed.

        * page/EventHandler.cpp:
        (WebCore::didScrollInScrollableAreaForSingleAxis): Calls ScrollableArea::scroll directly using WheelEvent's data. Used to handle programmatic WheelEvents, e.g. from JavaScript.
        (WebCore::handleWheelEventInAppropriateEnclosingBoxForSingleAxis): Finds the correct ScrollableArea and attempts to scroll it using the information contained in the WheelEvent via ScrollableArea::handleWheelEvent
        (WebCore::EventHandler::defaultWheelEventHandler): Updated to use handleWheelEventInAppropriateEnclosingBoxForSingleAxis instead of scrollNode.
        (WebCore::scrollNode): Deleted.
        * rendering/RenderListBox.h: Made RenderListBox::scroll public so it can be invoked from EventHandler::handleWheelEventInAppropriateEnclosingBoxForSingleAxis.
        * rendering/RenderNamedFlowThread.cpp: Refactored to let EventHandler update nextScrollBlock in the case of isRenderNamedFlowThread().
        (WebCore::RenderNamedFlowThread::fragmentFromRenderBoxAsRenderBlock): 
        * rendering/RenderNamedFlowThread.h:

2014-07-31  Dan Bernstein  <mitz@apple.com>

        WebCore part of: Server trust authentication challenges aren’t sent to the navigation delegate
        https://bugs.webkit.org/show_bug.cgi?id=135327

        Reviewed by Alexey Proskuryakov.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::receivedCredential): Don’t try to change the persistence of
        credentials used for server trust, because the platform doesn’t support persistence values
        other than Session for server trust.
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::receivedCredential): Ditto.

2014-07-31  Dan Bernstein  <mitz@apple.com>

        Tried to fix building with the OS X 10.9 SDK while targeting OS X 10.8.

        * platform/network/cocoa/CredentialCocoa.mm:
        (WebCore::toCredentialPersistence):

2014-07-31  Dan Bernstein  <mitz@apple.com>

        Reverted r171854, because it broke building with the OS X 10.8 SDK.

        * platform/network/cocoa/CredentialCocoa.mm:
        (WebCore::toCredentialPersistence):

2014-07-31  Dan Bernstein  <mitz@apple.com>

        Tried to fix building with the OS X 10.9 SDK while targeting OS X 10.8.

        * platform/network/cocoa/CredentialCocoa.mm:
        (WebCore::toCredentialPersistence):

2014-07-31  Jer Noble  <jer.noble@apple.com>

        REGRESSION(??): [iOS] Disabling MediaPlaybackRequiresUserGesture does not remove user gesture requirement for entering full screen.
        https://bugs.webkit.org/show_bug.cgi?id=135443

        Reviewed by Dean Jackson.

        Allow full screen mode to be entered without a user gesture if the gesture requirement for media playback
        has been unset.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):

2014-07-31  Andrei Bucur  <abucur@adobe.com>

        [CSS Multicolumn] Clear the lines when switching to multi-column layout
        https://bugs.webkit.org/show_bug.cgi?id=135127

        Reviewed by Alexandru Chiculita.

        When switching an element to multi-column layout it becomes a container of block
        children. When this happens the existing line boxes must be deleted in addition
        to clearing the hasInlineChildren flag.

        Tests: fast/multicol/inline-container-to-multicol.html
               fast/multicol/inline-container-to-multicol-float.html
               fast/multicol/inline-container-to-multicol-positioned.html

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::createMultiColumnFlowThread):

2014-07-30  Andreas Kling  <akling@apple.com>

        PropertyName's internal string is always atomic.
        <https://webkit.org/b/135451>

        Use PropertyName::publicName() directly instead of taking the slow route
        through AtomicString::findStringWithHash().

        These strings are always atomic, and findStringWithHash() would trudge
        through a full hash lookup just to discover that indeed, they are!

        Reviewed by Benjamin Poulain.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::findAtomicString): Deleted.
        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::namedItemGetter):
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::canGetItemsForName):
        (WebCore::JSHTMLDocument::nameGetter):

2014-07-30  Benjamin Poulain  <benjamin@webkit.org>

        ElementRuleCollector: group the shadow tree code
        https://bugs.webkit.org/show_bug.cgi?id=135410

        Reviewed by Andreas Kling.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::collectMatchingRules):
        Little cleanup: group the shadow tree rule collection in the same block.

2014-07-30  Benjamin Poulain  <benjamin@webkit.org>

        Cleanup DetailsMarkerControl
        https://bugs.webkit.org/show_bug.cgi?id=135429

        Reviewed by Andreas Kling.

        Remove the override of shadowPseudoId(). This is a simple type of shadowId,
        it should use the generic pseudo() path.

        Move DetailsMarkerControl::create() out-of-line. One could justify inlining the constructor,
        inlining the ::create() function has little value.

        * html/shadow/DetailsMarkerControl.cpp:
        (WebCore::DetailsMarkerControl::create):
        (WebCore::DetailsMarkerControl::DetailsMarkerControl):
        (WebCore::DetailsMarkerControl::rendererIsNeeded):
        (WebCore::DetailsMarkerControl::shadowPseudoId): Deleted.
        (WebCore::DetailsMarkerControl::summaryElement): Deleted.
        * html/shadow/DetailsMarkerControl.h:
        (WebCore::DetailsMarkerControl::create): Deleted.

2014-07-30  Benjamin Poulain  <bpoulain@apple.com>

        Remove UploadButtonElement::shadowPseudoId()
        https://bugs.webkit.org/show_bug.cgi?id=135435

        Reviewed by Andreas Kling.

        Use the generic pseudo() path instead of a custom shadowPseudoId().

        * html/FileInputType.cpp:
        (WebCore::UploadButtonElement::create):
        (WebCore::UploadButtonElement::createForMultiple):
        (WebCore::UploadButtonElement::UploadButtonElement):
        Set the type in the common constructor instead of the call sites.
        (WebCore::UploadButtonElement::shadowPseudoId): Deleted.
        * html/FileInputType.h:

2014-07-30  Benjamin Poulain  <bpoulain@apple.com>

        Remove SpinButtonElement::shadowPseudoId
        https://bugs.webkit.org/show_bug.cgi?id=135436

        Reviewed by Andreas Kling.

        Use the generic pseudo.

        * html/shadow/SpinButtonElement.cpp:
        (WebCore::SpinButtonElement::SpinButtonElement):
        (WebCore::SpinButtonElement::shadowPseudoId): Deleted.
        * html/shadow/SpinButtonElement.h:

2014-07-30  Benjamin Poulain  <bpoulain@apple.com>

        Clean up YouTubeEmbedShadowElement
        https://bugs.webkit.org/show_bug.cgi?id=135437

        Reviewed by Andreas Kling.

        * html/shadow/YouTubeEmbedShadowElement.cpp:
        (WebCore::YouTubeEmbedShadowElement::YouTubeEmbedShadowElement):
        (WebCore::YouTubeEmbedShadowElement::pluginElement): Deleted.
        This is unused in WebCore.

        (WebCore::YouTubeEmbedShadowElement::shadowPseudoId): Deleted.
        Use the generic pseudo path instead of a custom shadowPseudoId.
        * html/shadow/YouTubeEmbedShadowElement.h:

2014-07-30  Benjamin Poulain  <bpoulain@apple.com>

        Remove shadowPseudoId() from InputFieldSpeechButtonElement and SearchFieldCancelButtonElement
        https://bugs.webkit.org/show_bug.cgi?id=135438

        Reviewed by Andreas Kling.

        Use the generic path.

        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::SearchFieldCancelButtonElement::SearchFieldCancelButtonElement):
        (WebCore::InputFieldSpeechButtonElement::InputFieldSpeechButtonElement):
        (WebCore::SearchFieldCancelButtonElement::shadowPseudoId): Deleted.
        (WebCore::InputFieldSpeechButtonElement::shadowPseudoId): Deleted.
        * html/shadow/TextControlInnerElements.h:

2014-07-30  Andy Estes  <aestes@apple.com>

        USE(CONTENT_FILTERING) should be ENABLE(CONTENT_FILTERING)
        https://bugs.webkit.org/show_bug.cgi?id=135439

        Reviewed by Tim Horton.

        We now support two different platform content filters, and will soon support a mock content filter (as part of
        webkit.org/b/128858). This makes content filtering a feature of WebKit, not just an adoption of a third-party
        library. ENABLE() is the correct macro to use for such a feature.

        * Configurations/FeatureDefines.xcconfig:
        * WebCore.exp.in:
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::finishedLoading):
        (WebCore::DocumentLoader::responseReceived):
        (WebCore::DocumentLoader::commitData):
        (WebCore::DocumentLoader::dataReceived):
        * loader/DocumentLoader.h:
        * loader/FrameLoaderClient.h:
        * platform/ContentFilter.h:
        * platform/ios/ContentFilterIOS.mm:
        * platform/mac/ContentFilterMac.mm:

2014-07-30  Andreas Kling  <akling@apple.com>

        Static hash tables no longer need to be coupled with a VM.
        <https://webkit.org/b/135421>

        Update for JSC::ClassInfo changes.
        
        Remove the JSNoStaticTables mode for IDL code generation, which was used to
        ensure that each VM had its own unique copy of certain static tables.
        This was used for interfaces that could be used in workers, and now there's
        no need to manually annotate these things anymore.

        Also remove the DOMObjectHashTableMap class that was only used for this.

        Reviewed by Geoffrey Garen.

        * Modules/indexeddb/IDBAny.idl:
        * Modules/indexeddb/IDBCursor.idl:
        * Modules/indexeddb/IDBCursorWithValue.idl:
        * Modules/indexeddb/IDBDatabase.idl:
        * Modules/indexeddb/IDBFactory.idl:
        * Modules/indexeddb/IDBIndex.idl:
        * Modules/indexeddb/IDBKeyRange.idl:
        * Modules/indexeddb/IDBObjectStore.idl:
        * Modules/indexeddb/IDBOpenDBRequest.idl:
        * Modules/indexeddb/IDBRequest.idl:
        * Modules/indexeddb/IDBTransaction.idl:
        * Modules/indexeddb/IDBVersionChangeEvent.idl:
        * Modules/webdatabase/Database.idl:
        * Modules/webdatabase/DatabaseSync.idl:
        * Modules/webdatabase/SQLError.idl:
        * Modules/webdatabase/SQLException.idl:
        * Modules/webdatabase/SQLResultSet.idl:
        * Modules/webdatabase/SQLResultSetRowList.idl:
        * Modules/webdatabase/SQLTransaction.idl:
        * Modules/webdatabase/SQLTransactionSync.idl:
        * Modules/websockets/CloseEvent.idl:
        * Modules/websockets/WebSocket.idl:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/DOMObjectHashTableMap.cpp: Removed.
        * bindings/js/DOMObjectHashTableMap.h: Removed.
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::getHashTableForGlobalData): Deleted.
        * bindings/js/JSDOMBinding.h:
        (WebCore::getStaticValueSlotEntryWithoutCaching):
        * bindings/js/JSDOMGlobalObject.cpp:
        * bindings/js/JSDOMWindowBase.cpp:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        (WebCore::JSDOMWindow::put):
        * bindings/js/JSDOMWindowShell.cpp:
        * bindings/js/JSImageConstructor.cpp:
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::putDelegate):
        * bindings/js/JSStorageCustom.cpp:
        (WebCore::JSStorage::deleteProperty):
        (WebCore::JSStorage::putDelegate):
        * bindings/js/JSWorkerGlobalScopeBase.cpp:
        * bindings/js/WebCoreJSClientData.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateImplementation):
        (GenerateConstructorHelperMethods):
        (hashTableAccessor): Deleted.
        (prototypeHashTableAccessor): Deleted.
        (constructorHashTableAccessor): Deleted.
        * bindings/scripts/IDLAttributes.txt:
        * bridge/c/CRuntimeObject.cpp:
        * bridge/c/c_instance.cpp:
        * bridge/objc/ObjCRuntimeObject.mm:
        * bridge/objc/objc_instance.mm:
        * bridge/objc/objc_runtime.mm:
        * bridge/runtime_array.cpp:
        * bridge/runtime_method.cpp:
        * bridge/runtime_object.cpp:
        * crypto/CryptoKey.idl:
        * css/CSSFontFaceLoadEvent.idl:
        * dom/DOMCoreException.idl:
        * dom/DOMStringList.idl:
        * dom/ErrorEvent.idl:
        * dom/Event.idl:
        * dom/EventException.idl:
        * dom/EventListener.idl:
        * dom/MessageChannel.idl:
        * dom/MessageEvent.idl:
        * dom/MessagePort.idl:
        * dom/ProgressEvent.idl:
        * fileapi/Blob.idl:
        * fileapi/File.idl:
        * fileapi/FileError.idl:
        * fileapi/FileException.idl:
        * fileapi/FileList.idl:
        * fileapi/FileReader.idl:
        * fileapi/FileReaderSync.idl:
        * html/DOMURL.idl:
        * page/EventSource.idl:
        * page/WorkerNavigator.idl:
        * workers/DedicatedWorkerGlobalScope.idl:
        * workers/SharedWorkerGlobalScope.idl:
        * workers/WorkerGlobalScope.idl:
        * workers/WorkerLocation.idl:
        * xml/XMLHttpRequest.idl:
        * xml/XMLHttpRequestException.idl:
        * xml/XMLHttpRequestProgressEvent.idl:
        * xml/XMLHttpRequestUpload.idl:

2014-07-30  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17199364> [Mac] Popup button arrows appear on the left, underlapping text, when the UI layout direction is right-to-left
        https://bugs.webkit.org/show_bug.cgi?id=135426

        Reviewed by Dean Jackson.

        No test, because the UI layout direction in the test harness is always left-to-right.

        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::popupButton): Forced the user interface layout direction of the
        NSPopUpButtonCell to left-to-right. Added a FIXME about how we could make this vary based on
        the direction of the <select>, though that would require additional changes elsewhere.

2014-07-30  Dan Bernstein  <mitz@apple.com>

        Made Credential hold onto an NSURLCredential when needed.
        Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327

        Reviewed by Alexey Proskuryakov.

        No change in functionality.

        * WebCore.exp.in: Updated.

        * platform/network/Credential.h: Removed definition of CERTIFICATE_CREDENTIALS_SUPPORTED,
        which is not used anymore.

        * platform/network/CredentialBase.h:
        (WebCore::CredentialBase::encodingRequiresPlatformData): Added a base implementation that
        returns false.

        * platform/network/cf/AuthenticationCF.cpp:
        Changed to use the Credential constructor that takes an CFURLCredential, and the new
        cfCredential member function. Made the createCF and core functions Windows-only and
        therefore removed the CERTIFICATE_CREDENTIALS_SUPPORTED code from them.
        * platform/network/cf/AuthenticationCF.h:

        * platform/network/cf/CredentialStorageCFNet.cpp:
        (WebCore::CredentialStorage::getFromPersistentStorage): Changed to construct a Credential
        from a CFURLCredential.
        (WebCore::CredentialStorage::saveToPersistentStorage): Changed to use the new cfCredential
        member function.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto to both.
        (WebCore::ResourceHandle::receivedCredential): Ditto.

        * platform/network/cocoa/CredentialCocoa.h:
        Replaced the m_identity, m_certificates and m_type member variables with an m_nsCredential
        one holding onto an NSURLCredential. Declared constructors from and getters for
        NSURLCredential and CFURLCredentialRef.
        (WebCore::Credential::encodingRequiresPlatformData): Override that checks the
        NSURLCredential if necessary.

        * platform/network/cocoa/CredentialCocoa.mm:
        (WebCore::toNSURLCredentialPersistence): New helper function.
        (WebCore::toCredentialPersistence): Ditto.
        (WebCore::Credential::Credential): Defined constructors to create or take an
        NSURLCredential.
        (WebCore::Credential::cfCredential): Added.
        (WebCore::Credential::nsCredential): Added. Returns nil for the empty credential.
        (WebCore::Credential::isEmpty): Changed to check m_nsCredential.
        (WebCore::Credential::platformCompare): Changed to compare m_nsCredential if needed.
        (WebCore::Credential::encodingRequiresPlatformData): Returns true if the credential is not
        a user and a password.

        * platform/network/mac/AuthenticationMac.h: Removed mac and core functions for Credential.
        * platform/network/mac/AuthenticationMac.mm:
        (-[WebCoreAuthenticationClientAsChallengeSender useCredential:forAuthenticationChallenge:]):
        Changed to use Credential constructor that takes an NSURLCredential.
        (WebCore::AuthenticationChallenge::AuthenticationChallenge): Ditto. Also use the
        nsCredential getter.

        * platform/network/mac/CredentialStorageMac.mm:
        (WebCore::CredentialStorage::getFromPersistentStorage): Use new Credential constructor.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Ditto. Also use the
        nsCredential getter.
        (WebCore::ResourceHandle::receivedCredential): Ditto.

2014-07-30  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] Build depends on OpenGL ES
        https://bugs.webkit.org/show_bug.cgi?id=135289

        Reviewed by Martin Robinson.

        Guard the OpenGL ES code with USE(OPENGL_ES_2).

        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
        * platform/graphics/opengl/Extensions3DOpenGLES.h:

2014-07-30  Radu Stavila  <stavila@adobe.com>

        Member name collision in RenderView and SelectionSubtreeRoot
        https://bugs.webkit.org/show_bug.cgi?id=135233

        Reviewed by Mihnea Ovidenie.

        The selectionStart/End members in RenderView have been renamed to fix confusion caused by the fact that
        RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.

        No new tests required, no new functionality.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::isSelectionRoot):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        (WebCore::RenderView::setSelection):
        (WebCore::RenderView::getSelection):
        * rendering/RenderView.h:

2014-07-30  Zan Dobersek  <zdobersek@igalia.com>

        [TexMap] Move TextureMapperLayer::textureMapper() definition into the header
        https://bugs.webkit.org/show_bug.cgi?id=135384

        Reviewed by Martin Robinson.

        Move the definitions of TextureMapperLayer::textureMapper() and TextureMapperLayer::rootLayer()
        into the TextureMapperLayer header. This makes both functions inline-able, removing unnecessary
        calling overhead in GraphicsLayerTextureMapper::flushCompositingState() and
        GraphicsLayerTextureMapper::updateBackingStoreIfNeeded().

        TextureMapperLayer::rootLayer() now also returns a reference.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::~TextureMapperLayer):
        (WebCore::TextureMapperLayer::rootLayer): Deleted.
        (WebCore::TextureMapperLayer::textureMapper): Deleted.
        * platform/graphics/texmap/TextureMapperLayer.h:
        (WebCore::TextureMapperLayer::textureMapper):
        (WebCore::TextureMapperLayer::rootLayer):

2014-07-29  Andreas Kling  <akling@apple.com>

        Crash when using 'em' units to specify font-size inside animation keyframe.
        <https://webkit.org/b/135395>
        <rdar://problem/17851910>

        We'd forgotten to initialize the "parent style" when resolving keyframe
        styles, and this led to a crash in length conversion where the code
        assumes a parent style will be present.

        To keep this fix minimal, simply make the "parent style" a clone of the
        base element style.

        Reviewed by Simon Fraser.

        Test: fast/animation/keyframe-with-font-size-in-em-units.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleForKeyframe):

2014-07-29  Pratik Solanki  <psolanki@apple.com>

        [iOS] REGRESSION(r171526): PDF documents fail to load in WebKit1 with disk image caching enabled
        https://bugs.webkit.org/show_bug.cgi?id=135359
        <rdar://problem/17824645>

        Reviewed by Darin Adler.

        r171526 broke the case where we have a memory mapped file from the DiskImageCache in the
        SharedBuffer. In such a case, m_buffer is empty and createCFData() returned an
        WebCoreSharedBufferData with an empty buffer.

        Fix this by taking the easy route of bringing back the old code for the disk image cache
        file backed case. In the long run we probably want to remove the iOS specific disk image
        cache anyway.

        Review also uncovered another bug in r171526 where we were balancing an Objective-C alloc
        with a CFRelease which is incorrect when running under GC. Fix that by using adoptNS along
        with adoptCF which is what the code did before.

        No new tests because the bug only occurs on device and we can't run tests on device yet.

        * platform/mac/SharedBufferMac.mm:
        (-[WebCoreSharedBufferData initWithDiskImageSharedBuffer:]):
        (-[WebCoreSharedBufferData length]):
        (-[WebCoreSharedBufferData bytes]):
        (WebCore::SharedBuffer::createCFData):

2014-07-29  Benjamin Poulain  <bpoulain@apple.com>

        VisitedLinkState::determineLinkState should take a reference
        https://bugs.webkit.org/show_bug.cgi?id=135375

        Reviewed by Sam Weinig.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::State::initElement):
        * dom/VisitedLinkState.h:
        (WebCore::VisitedLinkState::determineLinkState):

2014-07-29  Brady Eidson  <beidson@apple.com>

        Make WKOriginDataManager actually operate on IndexedDatabases.
        https://bugs.webkit.org/show_bug.cgi?id=135346

        Reviewed by Sam Weinig (and David Kilzer and Alex Christensen)

        * WebCore.exp.in:

2014-07-29  Dan Bernstein  <mitz@apple.com>

        Moved the Cocoa-specific parts of CredentialBase into a Cocoa-specific Credential class.
        Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327

        Reviewed by Alexey Proskuryakov.

        No change in functionality.

        * WebCore.exp.in: Updated for functions moved in the class hierarchy.

        * WebCore.xcodeproj/project.pbxproj: Added CredentialCocoa.{h,mm}.

        * platform/network/Credential.h: For Cocoa, include CredentialCocoa.h instead of the generic
        class.
        (WebCore::Credential::Credential): Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED code.

        * platform/network/CredentialBase.cpp:
        (WebCore::CredentialBase::CredentialBase): Changed to use emptyString instead of "", removed
        #if CERTIFICATE_CREDENTIALS_SUPPORTED code.
        (WebCore::CredentialBase::isEmpty): Ditto.
        (WebCore::CredentialBase::compare): Renamed operator== to this, removed
        #if CERTIFICATE_CREDENTIALS_SUPPORTED code, but changed the end to call platformCompare.
        (WebCore::CredentialBase::identity): Deleted.
        (WebCore::CredentialBase::certificates): Deleted.
        (WebCore::CredentialBase::type): Deleted.
        * platform/network/CredentialBase.h: Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED members.
        (WebCore::CredentialBase::platformCompare): Added a base implementation that returns true.
        (WebCore::operator==): Changed to use CredentialBase::compare.

        * platform/network/cocoa/CredentialCocoa.h: Added.
        (WebCore::Credential::Credential):
        * platform/network/cocoa/CredentialCocoa.mm: Added.
        (WebCore::Credential::Credential): Moved the constructor that takes an identity and
        certificates here.
        (WebCore::Credential::isEmpty): Moved here.
        (WebCore::Credential::identity): Ditto.
        (WebCore::Credential::certificates): Ditto.
        (WebCore::Credential::type): Ditto.
        (WebCore::Credential::platformCompare): Moved the code that compares client-certificate
        credentials here.

        * platform/network/mac/AuthenticationMac.mm:
        (WebCore::mac): Removed #if CERTIFICATE_CREDENTIALS_SUPPORTED guards in this Cocoa-only
        file.
        (WebCore::core): Ditto.

2014-07-29  Daniel Bates  <dabates@apple.com>

        Use WTF::move() instead of std::move() to help ensure move semantics
        https://bugs.webkit.org/show_bug.cgi?id=135351

        Reviewed by Alexey Proskuryakov.

        * page/CaptionUserPreferences.cpp:
        (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride):

2014-07-29  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Assertion failure hit testing a region-based multicolumn in a region
        https://bugs.webkit.org/show_bug.cgi?id=135385

        Reviewed by Andrei Bucur.

        When a region-based multicolumn element is displayed and hit tested in a region,
        we have to disable the named flow region information not only for painting,
        but also for hit-testing. This is a follow-up for https://bugs.webkit.org/show_bug.cgi?id=132121,
        which provided the fix for painting.

        Test: fast/regions/assert-hit-test-multicol-in-region.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTestLayer):

2014-07-29  Zalan Bujtas  <zalan@apple.com>

        Cleanup RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo.
        https://bugs.webkit.org/show_bug.cgi?id=135326

        Reviewed by Darin Adler.

        1. Move implementation to RenderSelectInfo.cpp
        2. RenderSelectionInfoBase/RenderSelectionInfo/RenderBlockSelectionInfo take Render* reference.
        3. Remove unused functions.
        4. Add RenderSelectionInfoBase::repaintRectangle()

        No change in behavior.

        * WebCore.xcodeproj/project.pbxproj:
        * rendering/RenderSelectionInfo.cpp: Added.
        (WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase):
        (WebCore::RenderSelectionInfoBase::repaintRectangle):
        (WebCore::RenderSelectionInfo::RenderSelectionInfo):
        (WebCore::RenderSelectionInfo::repaint):
        (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo):
        (WebCore::RenderBlockSelectionInfo::repaint):
        * rendering/RenderSelectionInfo.h:
        (WebCore::RenderSelectionInfo::collectedSelectionRects):
        (WebCore::RenderSelectionInfoBase::RenderSelectionInfoBase): Deleted.
        (WebCore::RenderSelectionInfoBase::object): Deleted.
        (WebCore::RenderSelectionInfo::RenderSelectionInfo): Deleted.
        (WebCore::RenderSelectionInfo::repaint): Deleted.
        (WebCore::RenderSelectionInfo::rects): Deleted.
        (WebCore::RenderBlockSelectionInfo::RenderBlockSelectionInfo): Deleted.
        (WebCore::RenderBlockSelectionInfo::repaint): Deleted.
        (WebCore::RenderBlockSelectionInfo::block): Deleted.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::subtreeSelectionBounds):
        (WebCore::RenderView::repaintSubtreeSelection):
        (WebCore::RenderView::clearSubtreeSelection):
        (WebCore::RenderView::applySubtreeSelection):

2014-07-28  Pratik Solanki  <psolanki@apple.com>

        Get SharedBuffer.h out of ResourceBuffer.h (and a few other places)
        https://bugs.webkit.org/show_bug.cgi?id=131782

        Original patch by Tim Horton.
        Reviewed by Darin Adler.

        No new tests because no functional changes.

        * Modules/indexeddb/IDBCallbacks.h:
        * Modules/indexeddb/IDBCursorBackend.h:
        * loader/ios/DiskImageCacheIOS.h:
        Forward declare SharedBuffer in headers.

        * Modules/indexeddb/IDBRequest.cpp:
        * loader/cache/CachedImage.cpp:
        * loader/icon/IconLoader.cpp:
        * loader/ios/DiskImageCacheIOS.mm:
        * loader/cache/MemoryCache.cpp:
        * loader/mac/ResourceBuffer.mm:
        Include SharedBuffer.h in implementation files.

        * Modules/notifications/Notification.h:
        * loader/appcache/ApplicationCacheGroup.h:
        Remove unnecessary includes.

        * loader/ResourceBuffer.cpp:
        (WebCore::ResourceBuffer::adoptSharedBuffer):
        * loader/ResourceBuffer.h:
        Out-of-line adoptSharedBuffer so that the PassRefPtr doesn't require including SharedBuffer.h.

        * platform/graphics/opentype/OpenTypeMathData.cpp:
        * platform/graphics/opentype/OpenTypeMathData.h:
        Out-of-line destructor to avoid requiring SharedBuffer.h for the RefPtr.
        Forward-declare SharedBuffer in the header, include in implementation.

2014-07-29  Zan Dobersek  <zdobersek@igalia.com>

        [TexMap] GraphicsLayerTextureMapper::addAnimation() box size parameter should be FloatSize
        https://bugs.webkit.org/show_bug.cgi?id=135237

        Reviewed by Martin Robinson.

        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::addAnimation):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h: The boxSize parameter of the
        addAnimation() method must be of the same type as the parameter in the base class
        declaration -- a const FloatSize reference. Only then is the base virtual method
        actually overriden.

2014-07-28  Dan Bernstein  <mitz@apple.com>

        iOS build fix.

        * WebCore.exp.in:

2014-07-28  Dan Bernstein  <mitz@apple.com>

        Introduced CredentialBase and made Credential derive from it
        Work towards fixing https://bugs.webkit.org/show_bug.cgi?id=135327

        Reviewed by Darin Adler.

        No change in functionality.

        * CMakeLists.txt: Updated for source file rename.

        * WebCore.exp.in: Changed to export CredentialBase symbols.

        * WebCore.vcxproj/WebCore.vcxproj: Updated for source file rename and new header.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.

        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * platform/network/Credential.cpp: Renamed to CredentialBase.cpp.

        * platform/network/Credential.h: Defined Credential to derive from CredentialBase.

        * platform/network/CredentialBase.cpp: Renamed Credential.cpp to this. Updated for the new
        name.

        * platform/network/CredentialBase.h: Copied from Credential.h, renamed the class to
        CredentialBase, and made the constructors protected.

2014-07-28  Zalan Bujtas  <zalan@apple.com>

        REGRESSION(r164133): Selection disappears after scrolling on nytimes.com
        https://bugs.webkit.org/show_bug.cgi?id=135361

        Reviewed by Ryosuke Niwa.

        Ensure that when a RenderElement, part of the current selection is removed,
        we recalculate and update the selection soon after layout.

        Test: fast/dynamic/selection-gets-cleared-when-part-of-it-gets-removed.html

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::setNeedsSelectionUpdate):
        (WebCore::FrameSelection::didLayout): didLayout name reflects its functionality better.
        (WebCore::FrameSelection::layoutDidChange): Deleted.
        * editing/FrameSelection.h: : move some functions to private.
        * page/FrameView.cpp:
        (WebCore::FrameView::performPostLayoutTasks):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::willBeDestroyed):
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::removeChildInternal):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::willBeDestroyed):

2014-07-28  Dean Jackson  <dino@apple.com>

        [Media iOS] Touching play button feels unresponsive
        https://bugs.webkit.org/show_bug.cgi?id=135370
        <rdar://problem/17756281>

        Reviewed by Simon Fraser.

        Add an :active rule that shows a slightly darker button when touched.

        * Modules/mediacontrols/mediaControlsiOS.css:
        (audio::-webkit-media-controls-start-playback-button:active):

2014-07-28  Brady Eidson  <beidson@apple.com>

        REGRESSION(168376): Standalone images pasted to Outlook 2011 don't display
        <rdar://problem/17768371> and https://bugs.webkit.org/show_bug.cgi?id=135363

        Reviewed by Tim Horton.

        Outlook isn’t prepared to handle the resource load callbacks when sent synchronously.

        r168376 was an optimization that we no longer need, so the simplest fix is to roll it out.

        * editing/mac/EditorMac.mm:
        (WebCore::Editor::WebContentReader::readImage):

        * loader/archive/ArchiveResource.cpp:
        (WebCore::ArchiveResource::ArchiveResource):
        * loader/archive/ArchiveResource.h:
        (WebCore::ArchiveResource::setShouldLoadImmediately): Deleted.
        (WebCore::ArchiveResource::shouldLoadImmediately): Deleted.

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):

2014-07-28  Mark Hahnenberg  <mhahnenberg@apple.com>

        ASSERTION FAILED: m_heap->vm()->currentThreadIsHoldingAPILock()
        https://bugs.webkit.org/show_bug.cgi?id=135352

        Reviewed by Oliver Hunt.

        * Modules/plugins/QuickTimePluginReplacement.mm:
        (WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected): This should be taking a 
        JSLock like its sibling methods do (e.g. installReplacement).

2014-07-28  Antti Koivisto  <antti@apple.com>

        <embed> videos flashes constantly while playing inline on iPad, making it unwatchable
        https://bugs.webkit.org/show_bug.cgi?id=135356
        <rdar://problem/16828238>

        Reviewed by Simon Fraser.
        
        The shadow tree for media controls is scheduling style recalc. The general silliness of
        HTMLPlugInImageElement::willRecalcStyle/willDetachRenderers is turning those into render
        tree reconstructions causing flicker.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::willRecalcStyle):
        
            Don't do the forced renderer reconstruction if there is no style change for the element
            or its ancestors. This way recalcs scheduled by the shadow tree don't trigger the widget
            update code path.

2014-07-27  Brent Fulgham  <bfulgham@apple.com>

        [Mac, iOS] Paint-on closed captions get out-of-order in Safari
        https://bugs.webkit.org/show_bug.cgi?id=135332
        <rdar://problem/15317278>

        Reviewed by Jer Noble.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): If the
        number of active cues is greater than the current set of CSS boxes representing
        the cues, throw away the CSS boxes and re-layout all the cues.
        * html/track/InbandGenericTextTrack.cpp:
        (WebCore::InbandGenericTextTrack::addGenericCue): Add some logging.
        (WebCore::InbandGenericTextTrack::removeGenericCue): Ditto.
        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGeneric::isOrderedBefore): Revise ordering rules so that we put
        newer cues earlier in the layout order so they are drawn towards the bottom
        of the screen. Only do this for Generic captions.
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Adjust logging
        messages.
        (WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Add logging.

2014-07-28  Andreas Kling  <akling@apple.com>

        REGRESSION (r160806): CSS zoom property doesn't work on anything inside anchors.
        <https://webkit.org/b/135344>
        <rdar://problem/17759577>

        When DeprecatedStyleBuilder applies the CSS zoom property (ApplyPropertyZoom)
        it first resets the "effective zoom" by calling RenderStyle::setEffectiveZoom().

        This mechanism was not resistent to being called multiple times, due to the
        optimization in RenderStyle::setZoom() to avoid copy-on-writing the shared data
        when setting some property to the already-set value.

        The bug would happen in this sequence:

        ApplyPropertyZoom:
            - setEffectiveZoom(1);
            - setZoom(2); // this updates the effective zoom
        ApplyPropertyZoom:
            - setEffectiveZoom(1);
            - setZoom(2); // this doesn't update the effective zoom

        When we run the second setZoom(2); call, the RenderStyle's zoom value is 2
        already and we'll early return without updating the effective zoom.

        This change moves the updating of the effective zoom in setZoom() to take place
        before the early return due to overwriting with the same value.

        Note: the fact that we're apply the zoom property twice is an inefficiency that
        we should figure out a way to avoid in the future.

        Reviewed by Simon Fraser.

        Test: fast/css/zoom-inside-link.html

        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyle::setZoom):

2014-07-28  Bear Travis  <betravis@adobe.com>

        [CSS Font Loading] Update Font Loading Code
        https://bugs.webkit.org/show_bug.cgi?id=135340

        Reviewed by Antti Koivisto.

        Update the Font Loading code to build again, as trunk has evolved
        since the feature was originally written. Mostly, this requires
        updating the code to work with the new Font representation.

        The original tests were enabled only for the Chromium port.
        They will need to be updated when the feature is enabled by default.

        * WebCore.xcodeproj/project.pbxproj: Add missing files.
        * css/FontLoader.cpp: Update to new Font representation.
        (WebCore::LoadFontCallback::createFromParams):
        (WebCore::LoadFontCallback::~LoadFontCallback):
        (WebCore::FontLoader::loadFont):
        (WebCore::FontLoader::checkFont):
        (WebCore::applyPropertyToCurrentStyle):
        (WebCore::FontLoader::resolveFontStyle):

2014-07-28  Wenson Hsieh  <wenson_hsieh@apple.com>

        Let WheelEvent wrap a PlatformWheelEvent
        https://bugs.webkit.org/show_bug.cgi?id=135244

        WheelEvent now wraps a PlatformWheelEvent. m_directionInvertedFromDevice, as well as m_phase and m_momentumPhase
        have been removed, since the information is redundant in PlatformWheelEvent. Note that deltaX and deltaY have
        NOT been replaced, since we need double precision instead of float precision.

        Reviewed by Beth Dakin.

        No new tests, since behavior should not have changed.

        * dom/WheelEvent.cpp:
        (WebCore::WheelEvent::WheelEvent):
        (WebCore::WheelEvent::initWheelEvent):
        * dom/WheelEvent.h:
        (WebCore::WheelEvent::wheelEvent): Returns a non-null pointer to the PlatformWheelEvent iff WheelEvent was initialized by PlatformWheelEvent.
        (WebCore::WheelEvent::webkitDirectionInvertedFromDevice): Updated to use PlatformWheelEvent.
        (WebCore::WheelEvent::phase): Updated to use PlatformWheelEvent.
        (WebCore::WheelEvent::momentumPhase): Updated to use PlatformWheelEvent.

2014-07-28  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed 'merge' fix.

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        Correct line endings to allow EWS merges again.

2014-07-28  Zoltan Horvath  <zoltan@webkit.org>

        [CSS3-Text] Adjust text-justify implementation to the latest spec
        https://bugs.webkit.org/show_bug.cgi?id=135317

        Reviewed by Darin Adler.

        Text-justify no longer accepts the following values: Inter-ideograph, inter-
        cluster, and kashida. This patch removes them and updates the tests as well.

        [1] http://dev.w3.org/csswg/css-text-3/#propdef-text-justify

        Updated existing tests.

        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator TextJustify):
        * css/CSSValueKeywords.in:
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayout):
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareInheritedData.h:

2014-07-28  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r169105): Crash in selection
        https://bugs.webkit.org/show_bug.cgi?id=134303

        Reviewed by Mihnea Ovidenie.

        When splitting the selection between different subtrees, all subtrees must have their selection cleared before
        starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
        its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
        we get inconsistent data.

        To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
        method first iterates through all subtrees and performs the "clear" method and then starts all over again
        and performs the "apply" method.

        Test: fast/regions/selection/crash-deselect.html

        * WebCore.xcodeproj/project.pbxproj:
        * rendering/RenderSelectionInfo.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection):
        (WebCore::RenderView::splitSelectionBetweenSubtrees):
        (WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
        (WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
        (WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
        (WebCore::RenderView::setSubtreeSelection): Deleted.
        * rendering/RenderView.h:
        * rendering/SelectionSubtreeRoot.cpp:
        (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
        * rendering/SelectionSubtreeRoot.h:
        (WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):

2014-07-28  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS: Fix :visited behavior for SubSelectors
        https://bugs.webkit.org/show_bug.cgi?id=135324

        Reviewed by Benjamin Poulain.

        Disable :visited match for the selectors that has SubSelectors.

        Tests: fast/history/nested-visited-test-complex.html
               fast/history/sibling-visited-test-complex.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):

2014-07-27  Ryuan Choi  <ryuan.choi@samsung.com>

        Remove GraphicsSurfaceGLX.cpp
        https://bugs.webkit.org/show_bug.cgi?id=135279

        Reviewed by Darin Adler.

        GraphicsSurfaceGLX.cpp is not used since Qt dropped and Efl port changed at r146458

        * platform/graphics/surfaces/glx/GraphicsSurfaceGLX.cpp: Removed.

2014-07-27  Bruno de Oliveira Abinader  <bruno.d@partner.samsung.com>

        Support for :enabled selector on Anchor & Area elements
        https://bugs.webkit.org/show_bug.cgi?id=134826

        Reviewed by Darin Adler.

        Updates the PseudoClassEnabled selector checker to check for Anchor & Area
        elements with a 'href' attribute.

        Spec: http://html.spec.whatwg.org/#selector-enabled

        Test: fast/css/css-selector-enabled-links.html

        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isEnabled): Added check for anchor & area elements.

2014-07-27  Daniel Bates  <dabates@apple.com>

        [WK2] Crash when accessing window.localStorage after calling window.close()
        https://bugs.webkit.org/show_bug.cgi?id=135328
        <rdar://problem/17315237>

        Reviewed by Sam Weinig.

        Fixes an issue where accessing local storage for the first time after calling window.close()
        causes a crash.

        For now, we should disallow accessing local storage after calling window.close() regardless of
        whether it's the first access to local storage as this seems like a bad idiom to support. Note,
        this represents a change in behavior from WebKit1. If such usage of window.localStorage turns
        out to be reasonable then we can visit this decision again in <https://bugs.webkit.org/show_bug.cgi?id=135330>.

        Tests: storage/domstorage/localstorage/access-storage-after-window-close.html
               storage/domstorage/localstorage/access-storage-then-set-value-in-storage-after-window-close.html
               storage/domstorage/localstorage/set-value-in-storage-after-window-close.html

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::localStorage): Modified to only return the cached local storage or
        create a new local storage so long as the page isn't being closed. Also, substitute nullptr
        for 0.
        (WebCore::DOMWindow::close): Call Page::setIsClosing() to mark that the page is closing.
        * page/Page.cpp:
        (WebCore::Page::Page): Initialize m_isClosing to false.
        * page/Page.h:
        (WebCore::Page::setIsClosing): Added.
        (WebCore::Page::isClosing): Added.

2014-07-27  Filip Pizlo  <fpizlo@apple.com>

        Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.
        
        This fixes the previous mismerge and adds test coverage for the thing that went wrong.
        Also, this adds some helpers for making it easier to inspect JavaScript values.

        * testing/Internals.cpp:
        (WebCore::Internals::description):
        * testing/Internals.h:
        * testing/Internals.idl:

    2014-07-25  Mark Lam  <mark.lam@apple.com>
    
            [ftlopt] Renamed DebuggerActivation to DebuggerScope.
            <https://webkit.org/b/134273>
    
            Reviewed by Michael Saboff.
    
            No new tests.
    
            * ForwardingHeaders/debugger/DebuggerActivation.h: Removed.
            - Removed because this is not used.
    
2014-07-26  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: log and enforce session/segment state machine transitions
        https://bugs.webkit.org/show_bug.cgi?id=135224

        Reviewed by Timothy Hatcher.

        For debugging purposes, log session and segment state transitions.
        Assert that segment state transitions are valid.

        No new tests. No behavior was changed.

        * replay/ReplayController.cpp:
        (WebCore::logDispatchedDOMEvent):
        (WebCore::sessionStateToString):
        (WebCore::segmentStateToString):
        (WebCore::ReplayController::setSessionState):
        (WebCore::ReplayController::setSegmentState):
        (WebCore::ReplayController::createSegment):
        (WebCore::ReplayController::completeSegment): Remove a wrong state transition.
        (WebCore::ReplayController::loadSegmentAtIndex):
        (WebCore::ReplayController::unloadSegment): Fix a now-erroneous assertion.
        (WebCore::ReplayController::startPlayback):
        (WebCore::ReplayController::pausePlayback):
        (WebCore::ReplayController::willDispatchEvent):
        (WebCore::ReplayController::cancelPlayback):
        * replay/ReplayController.h:

2014-07-26  Filip Pizlo  <fpizlo@apple.com>

        Unreviewed, roll out r171641-r171644. It broke some tests; will investigate and
        reland later.

        * ForwardingHeaders/debugger/DebuggerActivation.h: Added.

2014-07-26  Timothy Horton  <timothy_horton@apple.com>

        Crash in Web Content Process under ~PDFDocument under clearTouchEventListeners at topDocument()
        https://bugs.webkit.org/show_bug.cgi?id=135319
        <rdar://problem/17315168>

        Reviewed by Darin Adler and Antti Koivisto.

        * dom/Document.h:
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::prepareForDestruction):
        Add a flag on Document, m_hasPreparedForDestruction, which ensures
        that each Document only goes through prepareForDestruction() once.
        prepareForDestruction() can be called a number of times during teardown,
        but it's only necessary to actually execute it once.
        
        This was previously achieved by virtue of all callers of prepareForDestruction()
        first checking hasLivingRenderTree, and prepareForDestruction() tearing down
        the render tree, but that meant that prepareForDestruction() was not called
        for Documents who never had a render tree in the first place.

        The only part of prepareForDestruction() that is now predicated on hasLivingRenderTree()
        is the call to destroyRenderTree(); the rest of the function has the potential to be relevant
        for non-rendered placeholder documents and can safely deal with them in other ways.

        It is important to call prepareForDestruction() on non-rendered placeholder documents
        because some of the cleanup (like disconnectFromFrame()) is critical to safe destruction.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::clear):
        Call prepareForDestruction() even if we don't have a living render tree.
        For the sake of minimizing change, removeFocusedNodeOfSubtree still
        depends on having a living render tree before calling prepareForDestruction().

        * page/Frame.cpp:
        (WebCore::Frame::setView):
        (WebCore::Frame::setDocument):
        Call prepareForDestruction() even if we don't have a living render tree.

2014-07-25  Filip Pizlo  <fpizlo@apple.com>

        Merge r170090, r170092, r170129, r170141, r170161, r170215, r170275, r170375, r170376, r170382, r170383, r170399, r170436, r170489, r170490, r170556 from ftlopt.

    2014-07-25  Mark Lam  <mark.lam@apple.com>
    
            [ftlopt] Renamed DebuggerActivation to DebuggerScope.
            <https://webkit.org/b/134273>
    
            Reviewed by Michael Saboff.
    
            No new tests.
    
            * ForwardingHeaders/debugger/DebuggerActivation.h: Removed.
            - Removed because this is not used.
    
2014-07-25  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Rounded rect gets non-renderable at certain subpixel size.
        https://bugs.webkit.org/show_bug.cgi?id=135314
        <rdar://problem/17812921>

        Reviewed by Tim Horton.

        While calculating the rounded rect for painting, the radius is adjusted to compensate
        for the pixel snapped size. However while scaling the radius, certain values overflow
        (float) mantissa and it produces a non-renderable rounded rect where the radius becomes bigger
        than the rectangle dimensions. In such cases, we need to shrink the radius to make it
        renderable again.

        Test: transitions/rounded-rect-becomes-non-renderable-while-transitioning.html

        * platform/graphics/RoundedRect.cpp:
        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting): shrink the radius by
        one device pixel. It is as good as any other small value.

2014-07-25  Jer Noble  <jer.noble@apple.com>

        [EME][Mac] CDM error messages not piped through to MediaKeySession correctly; clients don't receive error events
        https://bugs.webkit.org/show_bug.cgi?id=135312
        <rdar://problem/17817223>

        Reviewed by Brent Fulgham.

        Set (and clear) the client interface so that errors can be piped from the CDMSession up to the MediaKeySession.

        * Modules/encryptedmedia/MediaKeySession.cpp:
        (WebCore::MediaKeySession::MediaKeySession):
        (WebCore::MediaKeySession::close):

2014-07-25  Jer Noble  <jer.noble@apple.com>

        [MSE] Playback stalls & readyState drops to HAVE_CURRENT_DATA at end of stream with unbalanced buffered SourceBuffers
        https://bugs.webkit.org/show_bug.cgi?id=135291
        <rdar://problem/17715503>

        Reviewed by Sam Weinig.

        Test: media/media-source/media-source-end-of-stream-buffered.html

        When determining the correct ReadyState for the MediaSource in monitorSourceBuffers(), use the same
        definition of "buffered" as is used in the calculation of HTMLMediaElement.buffered and in the
        Stream Ended algorithm. Namely, when the stream has ended, treat each SourceBuffer as if its last
        buffered range extends to the duration of the stream. This allows playback to continue through to
        the duration without stalling due to monitorSourceBuffers().

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::bufferedAccountingForEndOfStream): Added; extends the last range in buffered
            to MediaSource::duration() if the MediaSource is ended.
        (WebCore::SourceBuffer::hasCurrentTime): Uses bufferedAccountingForEndOfStream().
        (WebCore::SourceBuffer::hasFutureTime): Ditto.
        (WebCore::SourceBuffer::canPlayThrough): Ditto.
        * Modules/mediasource/SourceBuffer.h:

        Add a convenience method for determining whether the MediaSource has ended:
        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::isEnded):
        * Modules/mediasource/MediaSource.h:

        Add start() and end() methods that don't take a (usually ignored) isValid inout parameter. Add duration()
        and maximumBufferedTime() convenience methods:
        * platform/graphics/PlatformTimeRanges.cpp:
        (WebCore::PlatformTimeRanges::start):
        (WebCore::PlatformTimeRanges::end):
        (WebCore::PlatformTimeRanges::duration):
        (WebCore::PlatformTimeRanges::maximumBufferedTime):
        * platform/graphics/PlatformTimeRanges.h:

2014-07-25  Pratik Solanki  <psolanki@apple.com>

        [iOS] REGRESSION(r171526): Images fail to load sometimes
        https://bugs.webkit.org/show_bug.cgi?id=135304
        <rdar://problem/17811922>

        Reviewed by Alexey Proskuryakov.

        SharedBuffer::createCFData() calls data() as a way to coalesce the data array elements and
        segments into m_buffer. However, data() has an optimization where if we had a single element
        in the data array, it would just return that and not do coalescing. So when we passed
        m_buffer to WebCoreSharedData, we passed a buffer with no data in it.

        Fix this by bringing the optimization to createCFData() and return the CFDataRef from the
        data array if we just have a single element.

        No new tests. Should be covered by existing tests.

        * platform/mac/SharedBufferMac.mm:
        (WebCore::SharedBuffer::createCFData):

2014-07-25  Jer Noble  <jer.noble@apple.com>

        [MSE] High CPU usage in SampleMap::findSamplesWithinPresentationRange() with a large number of buffered samples.
        https://bugs.webkit.org/show_bug.cgi?id=135247

        Reviewed by Geoffrey Garen.

        Anchor our search for overlapping frames to the end of the search range when the overlap range is sufficiently
        close to the end of the search range. The common case for this search is when a sample is about to be appended
        to the end of the sample queue, so this should turn most searches into no-ops.

        * Modules/mediasource/SampleMap.cpp:
        (WebCore::PresentationOrderSampleMap::findSamplesWithinPresentationRangeFromEnd):
        * Modules/mediasource/SampleMap.h:
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

2014-07-25  Gavin Barraclough  <baraclough@apple.com>

        Yosemite version number is 101000
        https://bugs.webkit.org/show_bug.cgi?id=135301

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * platform/ContentFilter.h:
        * platform/mac/ScrollViewMac.mm:
        (WebCore::ScrollView::platformVisibleContentRect):
        * platform/mac/ThemeMac.mm:
        (WebCore::updateStates):
        (WebCore::paintToggleButton):
        * platform/network/cf/CookieJarCFNet.cpp:
        (WebCore::copyCookiesForURLWithFirstPartyURL):
        * platform/network/cf/ResourceRequest.h:
        (WebCore::ResourceRequest::resourcePrioritiesEnabled):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::search):

2014-07-25  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] RenderViews paginated as RL or LR don't handle percentage widths correctly.
        REGRESSION: Images don’t scale to fit in page in vertical text books

        https://bugs.webkit.org/show_bug.cgi?id=135204
        <rdar://problem/17043792>
        
        Reviewed by Simon Fraser.

        Added fast/multicol/pagination/RightToLeft-max-width.html

        * rendering/RenderView.cpp:
        (WebCore::RenderView::availableLogicalHeight):
        Put back in the same code that used to exist for the old columns (but ported to the new
        columns).
    
2014-07-25  Dan Bernstein  <mitz@apple.com>

        [Mac] Unneeded MobileMe workaround in ResourceHandle::receivedCredential
        https://bugs.webkit.org/show_bug.cgi?id=135297

        Reviewed by Alexey Proskuryakov.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::receivedCredential): Removed the site-specific behavior for
        gallery.me.com.

2014-07-25  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171480.
        https://bugs.webkit.org/show_bug.cgi?id=135300

        it broke replaced elements in pagination (Requested by dhyatt_
        on #webkit).

        Reverted changeset:

        "Ensure we compute the min and max height of replaced elements
        to 'none' or 0 when appropriate."
        https://bugs.webkit.org/show_bug.cgi?id=135181
        http://trac.webkit.org/changeset/171480

2014-07-25  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171587.
        https://bugs.webkit.org/show_bug.cgi?id=135294

        Made fast/dom/HTMLObjectElement/beforeload-set-text-
        crash.xhtml crash again (Requested by ap on #webkit).

        Reverted changeset:

        "REGRESSION (r169105): Crash in selection"
        https://bugs.webkit.org/show_bug.cgi?id=134303
        http://trac.webkit.org/changeset/171587

2014-07-25  Dan Bernstein  <mitz@apple.com>

        ResourceErrorBase::compare doesn’t call the right platformCompare override
        https://bugs.webkit.org/show_bug.cgi?id=135240

        Reviewed by Alexey Proskuryakov.

        * platform/network/ResourceErrorBase.cpp:
        (WebCore::ResourceErrorBase::compare): Changed to call ResourceError::platformCompare.
        * platform/network/cf/ResourceError.h: Made platformCompare public.
        * platform/network/soup/ResourceError.h: Ditto.

2014-07-25  Dan Bernstein  <mitz@apple.com>

        [Cocoa] WebProtectionSpace::receivesCredentialSecurely incorrectly returns false in some cases
        https://bugs.webkit.org/show_bug.cgi?id=135241

        Reviewed by Alexey Proskuryakov.

        * WebCore.exp.in: Export ProtectionSpace::receivesCredentialSecurely.

        * platform/network/cocoa/ProtectionSpaceCocoa.h: Declare override of receivesCredentialSecurely.
        * platform/network/cocoa/ProtectionSpaceCocoa.mm:
        (WebCore::ProtectionSpace::receivesCredentialSecurely): Use -[NSURLProtectionSpace receivesCredentialSecurely].

2014-07-25  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: iOS video playback controls look blurry.
        https://bugs.webkit.org/show_bug.cgi?id=135245
        <rdar://problem/16878037>

        Reviewed by Simon Fraser.

        This patch introduces a compositing parent of the overlay control panel so that
        the transformed overlay panel becomes sharp. This is a workaround for webkit.org/b/135246.

        Can't find a way to test it yet.

        * Modules/mediacontrols/mediaControlsApple.css:
        (video::-webkit-media-controls-panel-composited-parent):
        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.createControls):
        (Controller.prototype.addControls):
        * Modules/mediacontrols/mediaControlsiOS.css:
        (video::-webkit-media-controls-panel-composited-parent):
        * Modules/mediacontrols/mediaControlsiOS.js: This is a workaround for webkit.org/b/135248
        It pushes the overlay panel down to close the gap with the video element. Since the
        panel's size in css pixels is scale dependent, the gap needs to be scale dependent too.
        (ControllerIOS.prototype.set pageScaleFactor):

2014-07-24  Dirk Schulze  <krit@webkit.org>

        Turn x/y to presentation attributes
        https://bugs.webkit.org/show_bug.cgi?id=135215

        Reviewed by Dean Jackson.

        This follows the patch for width and height presentation attributes and
        turns x and y to presentation attributes as well:

        http://trac.webkit.org/changeset/171341

        Tests: svg/css/parse-length.html
               transitions/svg-layout-transition.html

        Added copyright where I forgot it in previous patch.

        * css/CSSComputedStyleDeclaration.cpp: Computed style of x and y.
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isSimpleLengthPropertyID): Add x and y to list.
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Resolve x and y.
        * css/SVGCSSParser.cpp:
        (WebCore::CSSParser::parseSVGValue): Parse x and y property.
        * css/SVGCSSPropertyNames.in: Add x and y to list of names.
        * css/StyleResolver.h:
        * page/animation/CSSPropertyAnimation.cpp: Animate x and y as Length.
        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
        * rendering/style/RenderStyle.h: Add x and y setters and getters.
        * rendering/style/SVGRenderStyle.cpp: Add x and y setters for StyleLayoutData.
        (WebCore::SVGRenderStyle::SVGRenderStyle):
        (WebCore::SVGRenderStyle::operator==):
        (WebCore::SVGRenderStyle::copyNonInheritedFrom):
        (WebCore::SVGRenderStyle::diff):
        * rendering/style/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::setX):
        (WebCore::SVGRenderStyle::setY):
        (WebCore::SVGRenderStyle::x):
        (WebCore::SVGRenderStyle::y):
        * rendering/style/SVGRenderStyleDefs.cpp: Add StyleLayoutData for style storing.
        (WebCore::StyleLayoutData::StyleLayoutData):
        (WebCore::StyleLayoutData::copy):
        (WebCore::StyleLayoutData::operator==):
        * rendering/style/SVGRenderStyleDefs.h:
        (WebCore::StyleLayoutData::create):
        (WebCore::StyleLayoutData::operator!=):
        * rendering/svg/RenderSVGRect.cpp:
        (WebCore::RenderSVGRect::updateShapeFromElement):
        * rendering/svg/SVGPathData.cpp: Use RenderStyle values rather than attribute values.
        (WebCore::updatePathFromRectElement):
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty): Fix text detection.
        * svg/SVGElement.cpp: Add x and y to the relevant property lists.
        (WebCore::populateAttributeNameToCSSPropertyIDMap):
        (WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap):
        * svg/SVGFilterElement.cpp: Style update on change of x and y.
        (WebCore::SVGFilterElement::svgAttributeChanged):
        * svg/SVGMaskElement.cpp: Ditto.
        (WebCore::SVGMaskElement::svgAttributeChanged):
        * svg/SVGPatternElement.cpp: Ditto.
        (WebCore::SVGPatternElement::svgAttributeChanged):
        * svg/SVGRectElement.cpp: Ditto.
        (WebCore::SVGRectElement::svgAttributeChanged):
        * svg/SVGTextPositioningElement.cpp: Exclude x and y of text elements since they
            are lists instead of individual values. Solution about to be discussed
            in the WG. Keep current behavior for now.
        (WebCore::SVGTextPositioningElement::collectStyleForPresentationAttribute):
        (WebCore::SVGTextPositioningElement::isPresentationAttribute):
        * svg/SVGTextPositioningElement.h:

2014-07-24  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: Implement Pseudo Element
        https://bugs.webkit.org/show_bug.cgi?id=134835

        Reviewed by Benjamin Poulain.

        Implement Pseudo Element handling for CSS JIT SelectorCompiler.
        At first, we start with the simple implementation. We handle limited number of pseudo element,
        before, after, first-line, first-letter.

        Tests: fast/selectors/pseudo-element-inside-any.html
               fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-any.html
               fast/selectors/querySelector-pseudo-element-inside-functional-pseudo-class-not.html
               fast/selectors/querySelector-pseudo-element.html

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
        (WebCore::SelectorCompiler::constructFragments):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::loadCheckingContext):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::branchOnResolvingModeWithCheckingContext):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::branchOnResolvingMode):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNotResolvingStyle):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementHasPseudoElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateRequestedPseudoElementEqualsToSelectorPseudoElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateMarkPseudoStyleForPseudoElement):
        * cssjit/SelectorCompiler.h:
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:

2014-07-24  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r169105): Crash in selection
        https://bugs.webkit.org/show_bug.cgi?id=134303

        Patch by Radu Stavila <stavila@adobe.com> on 2014-07-24
        Reviewed by David Hyatt.

        When splitting the selection between different subtrees, all subtrees must have their selection cleared before
        starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
        its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
        we get inconsistent data.

        To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
        method first iterates through all subtrees and performs the "clear" method and then starts all over again
        and performs the "apply" method.

        Test: fast/regions/selection/crash-deselect.html

        * WebCore.xcodeproj/project.pbxproj:
        * rendering/RenderSelectionInfo.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection):
        (WebCore::RenderView::splitSelectionBetweenSubtrees):
        (WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
        (WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
        (WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
        (WebCore::RenderView::setSubtreeSelection): Deleted.
        * rendering/RenderView.h:
        * rendering/SelectionSubtreeRoot.cpp:
        (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
        * rendering/SelectionSubtreeRoot.h:
        (WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):

2014-07-24  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r164401): Placing a caret doesn't bring up autocorrection panel
        https://bugs.webkit.org/show_bug.cgi?id=135278

        Reviewed by Tim Horton.

        The bug was caused by editorUIUpdateTimerFired calling respondToChangedSelection only if the selection was
        triggered by dictation instead of only if it was NOT triggered by dictation.

        Prior to r164401, AlternativeTextController::respondToMarkerAtEndOfWord exited early when SetSelectionOptions
        had DictationTriggered set. r164401 intended to move this check to editorUIUpdateTimerFired to avoid passing
        options around but the boolean condition was erroneously flipped.

        Fixed the bug by negating the condition in editorUIUpdateTimerFired.

        No new tests for now since autocorrection panel cannot be tested automatically. (We should really automate this!)

        * editing/Editor.cpp:
        (WebCore::Editor::editorUIUpdateTimerFired):

2014-07-24  Pratik Solanki  <psolanki@apple.com>

        REGRESSION(r171526): [GTK] Massive crashes.
        https://bugs.webkit.org/show_bug.cgi?id=135283

        Unreviewed. GTK build fix after r171526. Initialize m_buffer in SharedBuffer constructor.

        * platform/soup/SharedBufferSoup.cpp:
        (WebCore::SharedBuffer::SharedBuffer):

2014-07-24  Tim Horton  <timothy_horton@apple.com>

        Crashes under scanSelectionForTelephoneNumbers in Range::text() on some sites
        https://bugs.webkit.org/show_bug.cgi?id=135281
        <rdar://problem/17803347>

        Reviewed by Ryosuke Niwa.

        * editing/Editor.cpp:
        (WebCore::Editor::scanSelectionForTelephoneNumbers):
        toNormalizedRange is not guaranteed to return a non-null range.
        If it returns null, pass the empty markedRanges down to the client as our new set.

2014-07-24  Dan Bernstein  <mitz@apple.com>

        WebCore part of <rdar://problem/17593701> Assertion failure in WebPage::reload (!m_pendingNavigationID) when reloading after a same-document back navigation
        https://bugs.webkit.org/show_bug.cgi?id=135129

        Reviewed by Darin Adler.

        * WebCore.exp.in: Exported equalIgnoringFragmentIdentifier(const URL&, const URL&).

2014-07-24  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK1] CSS viewport units use the wrong viewport size in WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=135254
        <rdar://problem/17781423>

        Reviewed by Tim Horton.

        Test: fast/css/viewport-units-dynamic.html
        
        In WebKit1 on iOS, we want to resolve viewport units against the visible
        viewport, not the legacy WK1 notion of the "viewport" which is the entire document.
        
        Fixes rendering of medium.com articles in WK1 views on iPad.

        * page/FrameView.cpp:
        (WebCore::FrameView::viewportSizeForCSSViewportUnits):

2014-07-24  Myles C. Maxfield  <mmaxfield@apple.com>

        Crash when measuring a glyphs from a fallback SVG font
        https://bugs.webkit.org/show_bug.cgi?id=135264

        Reviewed by Simon Fraser.

        We can't realize font data for all fallback fonts ahead
        of time, but we don't have all the necessary context to
        realize SVG fallback data when it's needed. For now, we
        can just bail; however, a larger, more invasive fix is
        in order.

        Test: svg/text/svg-fallback-font-crash.html

        * platform/graphics/WidthIterator.cpp:
        (WebCore::applyFontTransforms):

2014-07-24  Daniel Bates  <dabates@apple.com>
            And Alexey Proskuryakov  <ap@apple.com>

        [iOS] REGRESSION (WebKit2): Can't login to Wordpress.com, facebook.com when always allowing cookies
        https://bugs.webkit.org/show_bug.cgi?id=135273
        <rdar://problem/17598815>

        Reviewed by Alexey Proskuryakov.

        Fixes an issue where cookies may be created in the wrong cookie store.

        Currently, when we update the CFURLRequest object associated with a ResourceRequest object
        we explicitly set a cookie storage, cookie accept policy, and SSL properties based on the
        corresponding values in the old CFURLRequest object (if we have one). This ultimately leads
        to CFNetwork associating the cookies for the request with a different cookie store when we
        handle the request in the NetworkProcess. Instead, we shouldn't set these properties
        explicitly as we already copy them implicitly earlier (via CFURLRequestCreateMutableCopy()).

        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):

2014-07-24  Peyton Randolph  <prandolph@apple.com>

        Rename feature flag for long-press gesture on Mac.                                                                   
        https://bugs.webkit.org/show_bug.cgi?id=135259                                                                  

        Reviewed by Beth Dakin.

        * Configurations/FeatureDefines.xcconfig:
        Rename LINK_LONG_PRESS to MAC_LONG_PRESS.

2014-07-24  Dan Bernstein  <mitz@apple.com>

        Fixed Windows build fix.

        * platform/network/cf/AuthenticationCF.cpp:

2014-07-24  Dan Bernstein  <mitz@apple.com>

        Attempted Windows build fix.

        * platform/network/cf/AuthenticationCF.cpp:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge):
        * platform/network/cf/CredentialStorageCFNet.cpp:
        (WebCore::CredentialStorage::getFromPersistentStorage):
        * platform/network/cf/ProtectionSpaceCFNet.cpp:
        (WebCore::ProtectionSpace::receivesCredentialSecurely):
        (WebCore::ProtectionSpaceBase::receivesCredentialSecurely): Deleted.

2014-07-24  Dan Bernstein  <mitz@apple.com>

        <rdar://problem/17766348> [Cocoa] WebCore::ProtectionSpace doesn’t preserve all NSURLProtectionSpace properties, such as the distinguishedNames array
        https://bugs.webkit.org/show_bug.cgi?id=135229

        Reviewed by Alexey Proskuryakov.

        * CMakeLists.txt: Updated for rename of a source file.

        * WebCore.exp.in: Updated.

        * WebCore.vcxproj/WebCore.vcxproj: Updated for rename of source files, added
        ProtectionSpaceCFNet.{cpp,h}.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.

        * WebCore.xcodeproj/project.pbxproj: Updated for rename of source files, added
        ProtectionSpaceCococa.{h.mm}.

        * platform/network/ProtectionSpace.cpp: Renamed to ProtectionSpaceBase.cpp.
        * platform/network/ProtectionSpace.h: This file was renamed to ProtectionSpaceBase.h, and
        in its place added a generic ProtectionSpace class that just derives from
        ProtectionSpaceBase. For Cocoa and CFNetwork, ProtectionSpace{Cocoa,CFNet}.h is included
        instead of the generic class.

        * platform/network/ProtectionSpaceBase.cpp: Renamed ProtectionSpace.cpp to this.
        (WebCore::ProtectionSpaceBase::ProtectionSpaceBase): Updated for rename.
        (WebCore::ProtectionSpaceBase::host): Ditto.
        (WebCore::ProtectionSpaceBase::port): Ditto.
        (WebCore::ProtectionSpaceBase::serverType): Ditto.
        (WebCore::ProtectionSpaceBase::isProxy): Ditto.
        (WebCore::ProtectionSpaceBase::realm): Ditto.
        (WebCore::ProtectionSpaceBase::authenticationScheme): Ditto.
        (WebCore::ProtectionSpaceBase::receivesCredentialSecurely): Removed CFNetwork-specific part,
        which is now implemented in ProtectionSpaceCFNet.cpp.
        (WebCore::ProtectionSpaceBase::compare): Replaced operator== with this, and made it call
        ProtectionSpace::platformCompare at the end if needed.

        * platform/network/ProtectionSpaceBase.h: Renamed ProtectionSpace.h to this.
        (WebCore::ProtectionSpaceBase::encodingRequiresPlatformData): Added with a default
        implementation that returns false, for ProtectionSpace implementations to override.
        (WebCore::ProtectionSpaceBase::platformCompare): Added with a default implementation that
        returns true, for ProtectionSpace implementations to override.
        (WebCore::operator==): Changed to call compare.

        * platform/network/cf/AuthenticationCF.cpp:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge): Changed to use the
        ProtectionSpace constructor that takes a CFURLProtectionSpaceRef.
        (WebCore::createCF): Changed to use ProtectionSpace::cfSpace.

        * platform/network/cf/AuthenticationCF.h: Guarded a couple of functiosn that aren’t used in
        Cocoa with #if PLATFORM(WIN).

        * platform/network/cf/CredentialStorageCFNet.cpp:
        (WebCore::CredentialStorage::getFromPersistentStorage): Changed to use
        ProtectionSpace::cfSpace.
        (WebCore::CredentialStorage::saveToPersistentStorage): Ditto.

        * platform/network/cf/ProtectionSpaceCFNet.cpp: Added.
        (WebCore::ProtectionSpaceBase::receivesCredentialSecurely): Override with the
        CFNetwork-specific test that was previously in ProtectionSpace.cpp.

        * platform/network/cf/ProtectionSpaceCFNet.h: Copied from Source/WebCore/platform/network/ProtectionSpace.h.
        Declare ProtectionSpace and override receivesCredentialSecurely.

        * platform/network/mac/AuthenticationMac.h: Deleted the ProtectionSpace core() and mac().
        * platform/network/mac/AuthenticationMac.mm:
        (WebCore::AuthenticationChallenge::AuthenticationChallenge): Changed to use the
        ProtectionSpace constructor that takes an NSURLProtectionSpace.
        (WebCore::mac): Changed to use ProtectionSpace::nsSpace.

        * platform/network/mac/CredentialStorageMac.mm:
        (WebCore::CredentialStorage::getFromPersistentStorage): Ditto.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::receivedCredential): Changed to use the ProtectionSpace
        constructor that takes an NSURLProtectionSpace.

        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
        (-[WebCoreResourceHandleAsDelegate connection:canAuthenticateAgainstProtectionSpace:]):
        Ditto.

        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:canAuthenticateAgainstProtectionSpace:]):
        Ditto.

2014-07-24  Benjamin Poulain  <benjamin@webkit.org>

        [WK2] Fixed/Sticky layers can get mispositioned when the layer tree commit change their position or size
        https://bugs.webkit.org/show_bug.cgi?id=135227
        <rdar://problem/17279500>

        Reviewed by Simon Fraser.

        Keep track of the creation/destruction of Fixed and Sticky nodes in the ScrollingTree.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree):
        * page/scrolling/ScrollingTree.h:
        (WebCore::ScrollingTree::hasFixedOrSticky):
        (WebCore::ScrollingTree::fixedOrStickyNodeAdded):
        (WebCore::ScrollingTree::fixedOrStickyNodeRemoved):
        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::ScrollingTreeFixedNode):
        (WebCore::ScrollingTreeFixedNode::~ScrollingTreeFixedNode):
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::ScrollingTreeStickyNode):
        (WebCore::ScrollingTreeStickyNode::~ScrollingTreeStickyNode):

2014-07-24  Wenson Hsieh  <wenson_hsieh@apple.com>

        Let WheelEvent wrap a PlatformWheelEvent
        https://bugs.webkit.org/show_bug.cgi?id=135244

        When WheelEvent is initialized with a PlatformWheelEvent, store that PlatformWheelEvent for future use.

        Reviewed by Beth Dakin.

        No new tests because behavior should not have changed.

        * dom/WheelEvent.cpp: Added method to access the PlatformWheelEvent.
        (WebCore::WheelEvent::WheelEvent):
        * dom/WheelEvent.h: Added field to store PlatformWheelEvent, if initialized via PlatformWheelEvent.
        (WebCore::WheelEvent::wheelEvent):

2014-07-24  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: don't encode/decode primitive types that lack explicit sizes
        https://bugs.webkit.org/show_bug.cgi?id=133430

        Reviewed by Anders Carlsson.

        Remove uses of unsigned long in encode/decode methods because the type lacks an
        explicit size. Move frame index serialization away from using unsigned long.

        * replay/ReplayController.cpp:
        (WebCore::logDispatchedDOMEvent): Fix the format string.
        * replay/SerializationMethods.cpp:
        (WebCore::frameIndexFromDocument):
        (WebCore::frameIndexFromFrame):
        (WebCore::documentFromFrameIndex):
        (WebCore::frameFromFrameIndex):
        (JSC::EncodingTraits<PluginData>::encodeValue):
        (JSC::EncodingTraits<PluginData>::decodeValue):
        * replay/SerializationMethods.h:
        * replay/WebInputs.json: Remove primitive types without explicit sizes.

2014-07-24  Pratik Solanki  <psolanki@apple.com>

        Sharing SharedBuffer between WebCore and ImageIO is racy and crash prone
        https://bugs.webkit.org/show_bug.cgi?id=135069
        <rdar://problem/17470655>

        Reviewed by Simon Fraser.

        When passing image data to ImageIO for decoding, we pass an NSData subclass that is a wraper
        around SharedBuffer. This can be a problem when ImageIO tries to access the data on the CA
        thread. End result is data corruption on large image loads and potential crashes. The fix is
        to have SharedBuffer create a copy of its data if the data has been passed to ImageIO and
        might be accessed concurrently.

        Since Vector is not refcounted, we do this by having a new refcounted object in SharedBuffer
        that contains the buffer and we pass that in our NSData subclass WebCoreSharedBufferData.
        Code that would result in the Vector memory moving e.g. append(), resize(), now checks to
        see if the buffer was shared and if so, will create a new copy of the vector. This ensures
        that the main thread does not end up invalidating the vector memory that we have passed it
        to ImageIO.

        No new tests because no functional changes.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::makePurgeable):
            Remove early return - createPurgeableMemory() has the correct check now.
        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::SharedBuffer):
        (WebCore::SharedBuffer::adoptVector):
        (WebCore::SharedBuffer::createPurgeableBuffer):
            Don't create purgeable buffer if we are sharing the buffer.
        (WebCore::SharedBuffer::append):
        (WebCore::SharedBuffer::clear):
        (WebCore::SharedBuffer::copy):
        (WebCore::SharedBuffer::duplicateDataBufferIfNecessary): Added.
            Create a new copy of the data if we have shared the buffer and if appending to it would
            exceed the capacity of the vector resulting in memmove.
        (WebCore::SharedBuffer::appendToInternalBuffer): Added.
        (WebCore::SharedBuffer::clearInternalBuffer): Added.
        (WebCore::SharedBuffer::buffer):
            Create a new copy of the buffer if we have shared it.
        (WebCore::SharedBuffer::getSomeData):
        * platform/SharedBuffer.h:
        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::SharedBuffer):
        (WebCore::SharedBuffer::singleDataArrayBuffer):
        (WebCore::SharedBuffer::maybeAppendDataArray):
        * platform/mac/SharedBufferMac.mm:
            Pass the InternalBuffer object to WebCoreSharedBufferData
        (-[WebCoreSharedBufferData dealloc]):
        (-[WebCoreSharedBufferData initWithSharedBufferInternalBuffer:]):
        (-[WebCoreSharedBufferData length]):
        (-[WebCoreSharedBufferData bytes]):
        (WebCore::SharedBuffer::createNSData):
            Call createCFData() instead of duplicating code.
        (WebCore::SharedBuffer::createCFData):
            If the data is in purgeable memory, make a copy of it since m_buffer was cleared when
            creating the purgeable buffer.
        (-[WebCoreSharedBufferData initWithSharedBuffer:]): Deleted.

2014-07-24  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Enable file logging.
        https://bugs.webkit.org/show_bug.cgi?id=135202

        Reviewed by Alex Christensen.

        The Curl api offers the possibility to write log messages to file. Enable this for debugging purposes.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::ResourceHandleManager):
        (WebCore::ResourceHandleManager::~ResourceHandleManager):
        (WebCore::ResourceHandleManager::initializeHandle):
        * platform/network/curl/ResourceHandleManager.h:

2014-07-24  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>

        Sort WebCore.exp.in after r171252
        https://bugs.webkit.org/show_bug.cgi?id=135239

        Reviewed by Csaba Osztrogonác.

        * WebCore.exp.in:

2014-07-24  Mihnea Ovidenie  <mihnea@adobe.com>

        [New Multicolumn] Assertion failure when an input element has multicolumn style
        https://bugs.webkit.org/show_bug.cgi?id=135234

        Reviewed by Andrei Bucur.

        Restrict the assertion in RenderBlock::canComputeRegionRangeForBox
        only to RenderNamedFlowThread objects since for RenderMultiColumnFlowThread
        objects we can compute a range of regions during their parent block layout.   

        Test: fast/multicol/newmulticol/input-as-multicol.html

        * rendering/RenderBlock.cpp:
        (WebCore::canComputeRegionRangeForBox):

2014-07-23  Jeremy Jones  <jeremyj@apple.com>

        Transparent fullscreen background when video is not present.
        https://bugs.webkit.org/show_bug.cgi?id=135226

        Reviewed by Simon Fraser.

        Set background to black just before beginning the animation to fullscreen.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen): set background color black.

2014-07-23  Joseph Pecoraro  <pecoraro@apple.com>

        ScriptController::updateDocument ASSERT mutating map while iterating map
        https://bugs.webkit.org/show_bug.cgi?id=135211

        Reviewed by Oliver Hunt.

        Avoid iterating over m_windowShells in more places. This prevents
        the possibility of a collection during JSC allocation which might
        cause a mutation to m_windowShells (HTMLMediaElement destruction).

        Have ScriptController defriend ScriptCachedFrameData by providing
        a getter for the list of window shells.

        * bindings/js/ScriptCachedFrameData.cpp:
        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
        (WebCore::ScriptCachedFrameData::restore):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::windowShells):
        (WebCore::ScriptController::clearWindowShell):
        (WebCore::ScriptController::attachDebugger):
        (WebCore::ScriptController::updateDocument):
        * bindings/js/ScriptController.h:

2014-07-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171498.
        https://bugs.webkit.org/show_bug.cgi?id=135223

        It will regress some scroll position restoration on navigation
        (r167916). (Requested by smfr on #webkit).

        Reverted changeset:

        "[iOS WK2] Header bar on nytimes articles lands in the wrong
        place after rubberbanding"
        https://bugs.webkit.org/show_bug.cgi?id=135221
        http://trac.webkit.org/changeset/171498

2014-07-23  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r171376): Sometimes we detect less than the whole phone number
        https://bugs.webkit.org/show_bug.cgi?id=135220
        <rdar://problem/17783423>

        Reviewed by Brady Eidson.

        * editing/Editor.cpp:
        (WebCore::Editor::scanSelectionForTelephoneNumbers):
        Use the visible selection's start and end instead of base and extent, because they'll
        always be in the right order in the case of a directional selection (base can be *after* extent
        if you select from right to left). This fixes the code that expands the selection.

        Pass the *entire* expanded selection to DataDetectors, instead of using TextIterator.
        This way, we will find each number only once, and will never get part of a phone number once
        and then the whole phone number later.

2014-07-23  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Header bar on nytimes articles lands in the wrong place after rubberbanding
        https://bugs.webkit.org/show_bug.cgi?id=135221

        Reviewed by Tim Horton.

        Add a function on GraphicsLayer to force a flush of the layer position
        to the underlying graphics system, so that when layers cease being
        scroll-coordinated, we can ensure that their layers are repositioned
        in the correct location.

        * WebCore.exp.in:
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::forcePositionUpdate):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::forcePositionUpdate):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):

2014-07-23  Pratik Solanki  <psolanki@apple.com>

        Get rid of SharedBuffer::NSDataRetainPtrWithoutImplicitConversionOperator
        https://bugs.webkit.org/show_bug.cgi?id=135219

        Reviewed by Anders Carlsson.

        No new tests because no functional changes.

        * loader/ResourceBuffer.h:
        * loader/mac/ResourceBuffer.mm:
        (WebCore::ResourceBuffer::createNSData):
        * platform/SharedBuffer.h:
        (WebCore::SharedBuffer::NSDataRetainPtrWithoutImplicitConversionOperator::NSDataRetainPtrWithoutImplicitConversionOperator): Deleted.
        * platform/mac/SharedBufferMac.mm:
        (WebCore::SharedBuffer::createNSData):

2014-07-23  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Cleanup RenderLayerCompositor::deviceScaleFactor()
        https://bugs.webkit.org/show_bug.cgi?id=135208

        Reviewed by Simon Fraser.

        Use m_renderView.document() to retrieve device scale factor value. m_renderView.document()
        is always available while this->page() is not.

        No change in behavior.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateTransform):
        (WebCore::RenderLayerBacking::computeTransformOriginForPainting):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::deviceScaleFactor):

2014-07-23  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Gstreamer rendering is not working.
        https://bugs.webkit.org/show_bug.cgi?id=135201

        Reviewed by Alex Christensen.

        WinCairo does not support accelerated rendering yet.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
        (WebCore::MediaPlayerPrivateGStreamerBase::supportsAcceleratedRendering):

2014-07-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171455.
        https://bugs.webkit.org/show_bug.cgi?id=135209

        completely broke selection highlight invalidation (Requested
        by thorton on #webkit).

        Reverted changeset:

        "REGRESSION (r169105): Crash in selection"
        https://bugs.webkit.org/show_bug.cgi?id=134303
        http://trac.webkit.org/changeset/171455

2014-07-23  Alex Christensen  <achristensen@webkit.org>

        Compile window-inactive and fullscreen pseudoclasses in css selectors.
        https://bugs.webkit.org/show_bug.cgi?id=135200

        Reviewed by Benjamin Poulain.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        Removed the check of context.hasSelectionPseudo for a window-inactive pseudoclass.
        Moved logic to SelectorCheckerTestFunctions.h to share with the selector compiler.
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isWindowInactive):
        (WebCore::matchesFullScreenAnimatingFullScreenTransitionPseudoClass):
        (WebCore::matchesFullScreenAncestorPseudoClass):
        (WebCore::matchesFullScreenDocumentPseudoClass):
        Added from SelectorChecker.cpp.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        Added unoptimized pseudoclass cases for window-inactive and fullscreen pseudoclasses.
        Explicitly listed uncompiled pseudoclasses for future work instead of using a default.

2014-07-23  Brent Fulgham  <bfulgham@apple.com>

        [Win] Use NO_RETURN_DUE_TO_CRASH on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=13519

        Reviewed by Mark Lam.

        * svg/SVGZoomAndPan.h: Add NO_RETURN_DUE_TO_CRASH to
        header so function declarations match implementation.

2014-07-23  Joseph Pecoraro  <pecoraro@apple.com>

        JSDOMWindowShell leaks on pages with media elements
        https://bugs.webkit.org/show_bug.cgi?id=135178

        Reviewed by Oliver Hunt.

        The DOMWindowWorld for HTMLMediaElements with MEDIA_CONTROLS_SCRIPT
        was not getting cleared and removed.

        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::clearWindowShell):
        Iterate over a copy of the values. A sweep / garbage collection caused by
        any JSC allocation during iteration could trigger a mutation of the m_windowShells
        table that was being iterating. So instead iterate a list that won't mutate.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::~HTMLMediaElement):
        If we had an isolated world, release as much memory as possible.

2014-07-23  Bem Jones-Bey  <bjonesbe@adobe.com>

        Ensure we compute the min and max height of replaced elements to 'none' or 0 when appropriate.
        https://bugs.webkit.org/show_bug.cgi?id=135181

        Reviewed by David Hyatt.

        If a replaced element has a percentage min or max height specified then that height value should
        compute to 'none' for max-height and 0 for min-height when its containing block
        does not have a height 'specified explicitly'.

        This is based on a Blink patch by Robert Hogan.

        Tests: css2.1/20110323/max-height-percentage-003.html
               fast/replaced/max-height-percentage-quirks.html
               fast/replaced/min-height-percentage-quirks.html
               fast/replaced/min-height-percentage.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::logicalHeightComputesAsNone):
        (WebCore::RenderBox::computeReplacedLogicalHeightRespectingMinMaxHeight):
        * rendering/RenderBox.h:

2014-07-23  Bem Jones-Bey  <bjonesbe@adobe.com>

        Remove CSS_EXCLUSIONS compile flag and leftover code
        https://bugs.webkit.org/show_bug.cgi?id=135175

        Reviewed by Zoltan Horvath.

        At this point, the CSS_EXCLUSIONS flag guards nothing but some useless
        stubs. This removes the flag and the useless code.

        No new tests, just removing code.

        * Configurations/FeatureDefines.xcconfig:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::setCSSExclusionsEnabled): Deleted.
        (WebCore::RuntimeEnabledFeatures::cssExclusionsEnabled): Deleted.
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup):
        (WebCore::InternalSettings::Backup::restoreTo):
        (WebCore::InternalSettings::setCSSExclusionsEnabled): Deleted.
        * testing/InternalSettings.h:
        * testing/InternalSettings.idl:

2014-07-23  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Support abort() in SourceBufferPrivateAVFObjC.
        https://bugs.webkit.org/show_bug.cgi?id=135163

        Reviewed by Brent Fulgham.

        Recreate the parser when asked to abort().

        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::SourceBufferPrivateAVFObjC::abort):

2014-07-23  Myles C. Maxfield  <mmaxfield@apple.com>

        Migrate accessibility/ to using nullptr instead of 0
        https://bugs.webkit.org/show_bug.cgi?id=135185

        Reviewed by Simon Fraser.

        No new tests because there is no behavior change.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::focusedImageMapUIElement):
        (WebCore::AXObjectCache::focusedUIElementForPage):
        (WebCore::AXObjectCache::get):
        (WebCore::AXObjectCache::getOrCreate):
        (WebCore::AXObjectCache::rootObject):
        (WebCore::AXObjectCache::rootObjectForFrame):
        * accessibility/AXObjectCache.h:
        (WebCore::AXObjectCache::focusedUIElementForPage):
        (WebCore::AXObjectCache::get):
        (WebCore::AXObjectCache::getOrCreate):
        (WebCore::AXObjectCache::rootObject):
        (WebCore::AXObjectCache::rootObjectForFrame):
        (WebCore::AXObjectCache::rootAXEditableElement):
        * accessibility/AccessibilityARIAGridRow.cpp:
        (WebCore::AccessibilityARIAGridRow::disclosedByRow):
        * accessibility/AccessibilityImageMapLink.cpp:
        (WebCore::AccessibilityImageMapLink::AccessibilityImageMapLink):
        (WebCore::AccessibilityImageMapLink::parentObject):
        * accessibility/AccessibilityListBox.cpp:
        (WebCore::AccessibilityListBox::listBoxOptionAccessibilityObject):
        (WebCore::AccessibilityListBox::elementAccessibilityHitTest):
        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::AccessibilityListBoxOption):
        (WebCore::AccessibilityListBoxOption::parentObject):
        (WebCore::AccessibilityListBoxOption::listBoxOptionParentNode):
        * accessibility/AccessibilityMenuListPopup.cpp:
        (WebCore::AccessibilityMenuListPopup::menuListOptionAccessibilityObject):
        * accessibility/AccessibilityMockObject.cpp:
        (WebCore::AccessibilityMockObject::AccessibilityMockObject):
        * accessibility/AccessibilityMockObject.h:
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::detach):
        (WebCore::AccessibilityNodeObject::firstChild):
        (WebCore::AccessibilityNodeObject::lastChild):
        (WebCore::AccessibilityNodeObject::previousSibling):
        (WebCore::AccessibilityNodeObject::nextSibling):
        (WebCore::AccessibilityNodeObject::parentObject):
        (WebCore::AccessibilityNodeObject::document):
        (WebCore::AccessibilityNodeObject::anchorElement):
        (WebCore::nativeActionElement):
        (WebCore::AccessibilityNodeObject::actionElement):
        (WebCore::AccessibilityNodeObject::mouseButtonListener):
        (WebCore::AccessibilityNodeObject::labelForElement):
        (WebCore::AccessibilityNodeObject::menuItemElementForMenu):
        (WebCore::AccessibilityNodeObject::menuButtonForMenu):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::AccessibilityObject):
        (WebCore::AccessibilityObject::detach):
        (WebCore::AccessibilityObject::firstAccessibleObjectFromNode):
        (WebCore::AccessibilityObject::findMatchingObjects):
        (WebCore::renderListItemContainerForNode):
        (WebCore::AccessibilityObject::accessibilityObjectForPosition):
        (WebCore::AccessibilityObject::document):
        (WebCore::AccessibilityObject::page):
        (WebCore::AccessibilityObject::documentFrameView):
        (WebCore::AccessibilityObject::anchorElementForNode):
        (WebCore::AccessibilityObject::headingElementForNode):
        (WebCore::AccessibilityObject::firstAnonymousBlockChild):
        (WebCore::AccessibilityObject::element):
        (WebCore::AccessibilityObject::focusedUIElement):
        (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::node):
        (WebCore::AccessibilityObject::renderer):
        (WebCore::AccessibilityObject::selectedRadioButton):
        (WebCore::AccessibilityObject::selectedTabItem):
        (WebCore::AccessibilityObject::accessibilityHitTest):
        (WebCore::AccessibilityObject::firstChild):
        (WebCore::AccessibilityObject::lastChild):
        (WebCore::AccessibilityObject::previousSibling):
        (WebCore::AccessibilityObject::nextSibling):
        (WebCore::AccessibilityObject::parentObjectIfExists):
        (WebCore::AccessibilityObject::observableObject):
        (WebCore::AccessibilityObject::titleUIElement):
        (WebCore::AccessibilityObject::correspondingLabelForControlElement):
        (WebCore::AccessibilityObject::correspondingControlForLabelElement):
        (WebCore::AccessibilityObject::scrollBar):
        (WebCore::AccessibilityObject::anchorElement):
        (WebCore::AccessibilityObject::actionElement):
        (WebCore::AccessibilityObject::widget):
        (WebCore::AccessibilityObject::widgetForAttachmentView):
        (WebCore::AccessibilityObject::activeDescendant):
        (WebCore::AccessibilityObject::mathRadicandObject):
        (WebCore::AccessibilityObject::mathRootIndexObject):
        (WebCore::AccessibilityObject::mathUnderObject):
        (WebCore::AccessibilityObject::mathOverObject):
        (WebCore::AccessibilityObject::mathNumeratorObject):
        (WebCore::AccessibilityObject::mathDenominatorObject):
        (WebCore::AccessibilityObject::mathBaseObject):
        (WebCore::AccessibilityObject::mathSubscriptObject):
        (WebCore::AccessibilityObject::mathSuperscriptObject):
        (WebCore::AccessibilityObject::getScrollableAreaIfScrollable):
        * accessibility/AccessibilityProgressIndicator.cpp:
        (WebCore::AccessibilityProgressIndicator::progressElement):
        (WebCore::AccessibilityProgressIndicator::meterElement):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::detach):
        (WebCore::AccessibilityRenderObject::renderBoxModelObject):
        (WebCore::AccessibilityRenderObject::firstChild):
        (WebCore::AccessibilityRenderObject::lastChild):
        (WebCore::startOfContinuations):
        (WebCore::childBeforeConsideringContinuations):
        (WebCore::AccessibilityRenderObject::previousSibling):
        (WebCore::AccessibilityRenderObject::nextSibling):
        (WebCore::nextContinuation):
        (WebCore::AccessibilityRenderObject::renderParentObject):
        (WebCore::AccessibilityRenderObject::parentObject):
        (WebCore::AccessibilityRenderObject::anchorElement):
        (WebCore::AccessibilityRenderObject::textUnderElement):
        (WebCore::AccessibilityRenderObject::node):
        (WebCore::AccessibilityRenderObject::labelElementContainer):
        (WebCore::AccessibilityRenderObject::internalLinkElement):
        (WebCore::AccessibilityRenderObject::titleUIElement):
        (WebCore::AccessibilityRenderObject::setFocused):
        (WebCore::AccessibilityRenderObject::topRenderer):
        (WebCore::AccessibilityRenderObject::document):
        (WebCore::AccessibilityRenderObject::widget):
        (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
        (WebCore::AccessibilityRenderObject::documentFrameView):
        (WebCore::AccessibilityRenderObject::widgetForAttachmentView):
        (WebCore::AccessibilityRenderObject::rootEditableElementForPosition):
        (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
        (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
        (WebCore::AccessibilityRenderObject::remoteSVGElementHitTest):
        (WebCore::AccessibilityRenderObject::accessibilityHitTest):
        (WebCore::AccessibilityRenderObject::correspondingControlForLabelElement):
        (WebCore::AccessibilityRenderObject::correspondingLabelForControlElement):
        (WebCore::AccessibilityRenderObject::observableObject):
        (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
        (WebCore::AccessibilityRenderObject::detachRemoteSVGRoot):
        (WebCore::AccessibilityRenderObject::addHiddenChildren):
        (WebCore::AccessibilityRenderObject::setAccessibleName):
        (WebCore::AccessibilityRenderObject::getScrollableAreaIfScrollable):
        (WebCore::AccessibilityRenderObject::mathRadicandObject):
        (WebCore::AccessibilityRenderObject::mathRootIndexObject):
        (WebCore::AccessibilityRenderObject::mathNumeratorObject):
        (WebCore::AccessibilityRenderObject::mathDenominatorObject):
        (WebCore::AccessibilityRenderObject::mathUnderObject):
        (WebCore::AccessibilityRenderObject::mathOverObject):
        (WebCore::AccessibilityRenderObject::mathBaseObject):
        (WebCore::AccessibilityRenderObject::mathSubscriptObject):
        (WebCore::AccessibilityRenderObject::mathSuperscriptObject):
        * accessibility/AccessibilitySVGRoot.cpp:
        (WebCore::AccessibilitySVGRoot::AccessibilitySVGRoot):
        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::detach):
        (WebCore::AccessibilityScrollView::scrollBar):
        (WebCore::AccessibilityScrollView::updateScrollbars):
        (WebCore::AccessibilityScrollView::addChildScrollbar):
        (WebCore::AccessibilityScrollView::clearChildren):
        (WebCore::AccessibilityScrollView::webAreaObject):
        (WebCore::AccessibilityScrollView::accessibilityHitTest):
        (WebCore::AccessibilityScrollView::documentFrameView):
        (WebCore::AccessibilityScrollView::parentObject):
        (WebCore::AccessibilityScrollView::parentObjectIfExists):
        * accessibility/AccessibilityScrollbar.cpp:
        (WebCore::AccessibilityScrollbar::document):
        * accessibility/AccessibilitySpinButton.cpp:
        (WebCore::AccessibilitySpinButton::AccessibilitySpinButton):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::AccessibilityTable):
        (WebCore::AccessibilityTable::clearChildren):
        (WebCore::AccessibilityTable::cellForColumnAndRow):
        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::parentTable):
        (WebCore::AccessibilityTableCell::titleUIElement):
        * accessibility/AccessibilityTableColumn.cpp:
        (WebCore::AccessibilityTableColumn::headerObject):
        (WebCore::AccessibilityTableColumn::headerObjectForSection):
        * accessibility/AccessibilityTableRow.cpp:
        (WebCore::AccessibilityTableRow::parentTable):
        (WebCore::AccessibilityTableRow::headerObject):
        * accessibility/ios/AXObjectCacheIOS.mm:
        (WebCore::AXObjectCache::detachWrapper):
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper detach]):
        (-[WebAccessibilityObjectWrapper tableCellParent]):
        (-[WebAccessibilityObjectWrapper tableParent]):
        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
        (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
        (rendererForView):
        (-[WebAccessibilityObjectWrapper _convertToDOMRange:]):
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::detachWrapper):
        * accessibility/mac/AccessibilityObjectMac.mm:
        (WebCore::AccessibilityObject::detachFromParent):
        (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
        (-[WebAccessibilityObjectWrapperBase detach]):
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (CreateCGColorIfDifferent):
        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
        (rendererForView):
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):
        * accessibility/win/AccessibilityObjectWrapperWin.h:
        (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):

2014-07-23  Mihnea Ovidenie  <mihnea@adobe.com>

        ASSERTION FAILED: generatingElement() in WebCore::RenderNamedFlowFragment::regionOversetState
        https://bugs.webkit.org/show_bug.cgi?id=135153

        Reviewed by David Hyatt.

        Even though the CSSRegions spec defines the behaviour of a multicolumn region,
        we currently do not support this functionality. This patch ensures that a multicolumn
        element does not become a region. In the future, when we will implement the multicolumn
        as region functionality, http://dev.w3.org/csswg/css-regions/#multi-column-regions, we
        will remove this restriction.

        Test: fast/regions/multicol-as-region-prevented.html

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::createRenderNamedFlowFragmentIfNeeded):

2014-07-23  Zan Dobersek  <zdobersek@igalia.com>

        [CMake] Avoid building WebCore with ANGLE's OpenGL/EGL headers
        https://bugs.webkit.org/show_bug.cgi?id=135167

        Reviewed by Martin Robinson.

        * CMakeLists.txt: Don't add ANGLE/include to the WebCore_INCLUDE_DIRECTORIES list
        as this results in ANGLE's OpenGL and EGL headers being included, instead of the
        headers that are provided by the system. Only the ANGLESupport library should be built
        with that specific header inclusion path.

2014-07-10  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r169105): Crash in selection
        https://bugs.webkit.org/show_bug.cgi?id=134303

        Reviewed by David Hyatt.

        When splitting the selection between different subtrees, all subtrees must have their selection cleared before
        starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
        its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
        we get inconsistent data.

        To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
        method first iterates through all subtrees and performs the "clear" method and then starts all over again
        and performs the "apply" method.

        Also, the selectionStart/End members in RenderView have been renamed to fix problems caused by the fact that
        RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.

        Test: fast/regions/selection/crash-deselect.html

        * WebCore.xcodeproj/project.pbxproj:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::isSelectionRoot):
        * rendering/RenderSelectionInfo.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        (WebCore::RenderView::setSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
        (WebCore::RenderView::splitSelectionBetweenSubtrees):
        (WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
        (WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
        (WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
        (WebCore::RenderView::getSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
        (WebCore::RenderView::setSubtreeSelection): Deleted.
        * rendering/RenderView.h:
        * rendering/SelectionSubtreeRoot.cpp:
        (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
        * rendering/SelectionSubtreeRoot.h:
        (WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):

2014-07-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix for bot.

        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::createLegibleOutputSubtypes): Declare 'wvtt' locally, rather
        than relying on potentially unavailable declaration.

2014-07-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix for Windows bots

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Provide missing
        structure definition when needed by bot.

2014-07-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix for EWS bots.

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp: Forward declare
        structure definition.

2014-07-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Fix Crash when handling Legible Output callbacks
        https://bugs.webkit.org/show_bug.cgi?id=134946

        Reviewed by Dean Jackson.

        Relanding after adding fixes to support build bots.

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Remove
        Windows-specific 'ASSERT_NOT_REACHED' code path.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::createLegibleOutputSubtypes): Added.
        (WebCore::AVFWrapper::createPlayerItem): Updated to request native
        samples from AVFoundationCF.

2014-07-16  Myles C. Maxfield  <mmaxfield@apple.com>

        Copying and pasting trivial H2 content causes a crash in firstPositionInNode
        https://bugs.webkit.org/show_bug.cgi?id=134897

        Reviewed by Ryosuke Niwa.

        ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder() attempts
        to move pasted headings out of existed headings, with out regard to if the existing
        heading is the contenteditable root.

        Test: editing/pasteboard/heading-crash.html

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):

2014-07-22  Ryuan Choi  <ryuan.choi@samsung.com>

        Remove dead APIs from TiledBackingStore
        https://bugs.webkit.org/show_bug.cgi?id=135158

        Reviewed by Gyuyoung Kim.

        setContentsFrozen and related code of TiledBackingStore are not used since Qt port is removed.

        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::TiledBackingStore):
        (WebCore::TiledBackingStore::updateTileBuffers):
        (WebCore::TiledBackingStore::setContentsScale):
        (WebCore::TiledBackingStore::createTiles):
        (WebCore::TiledBackingStore::startTileBufferUpdateTimer):
        (WebCore::TiledBackingStore::startBackingStoreUpdateTimer):
        (WebCore::TiledBackingStore::commitScaleChange): Deleted.
        (WebCore::TiledBackingStore::isBackingStoreUpdatesSuspended): Deleted.
        (WebCore::TiledBackingStore::isTileBufferUpdatesSuspended): Deleted.
        (WebCore::TiledBackingStore::setContentsFrozen): Deleted.
        * platform/graphics/TiledBackingStore.h:
        (WebCore::TiledBackingStore::contentsFrozen): Deleted.

2014-07-22  Alex Christensen  <achristensen@webkit.org>

        Fix window-inactive css selectors when using querySelector.
        https://bugs.webkit.org/show_bug.cgi?id=135149

        Reviewed by Tim Horton.

        Test: fast/selectors/querySelector-window-inactive.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        Removed default and implemented case PseudoClassWindowInactive.

2014-07-22  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r171016): Reproducible infinite spin selecting phone number
        https://bugs.webkit.org/show_bug.cgi?id=135183
        <rdar://problem/17727342>

        Reviewed by Ryosuke Niwa.

        * editing/Editor.cpp:
        (WebCore::Editor::scanRangeForTelephoneNumbers):
        Make use of TextIterator::subrange, which knows how to make a subrange from character positions,
        instead of assuming that our character positions translate directly to positions in the incoming range.
        Make use of DocumentMarkerController::addMarker, which takes a range and applies the marker to
        all text nodes inside the range as appropriate.
        Fix naming of the shadowed 'length' local.
        Fix a typo in the comment.

2014-07-22  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] [OSX] Don't transcode WOFF on platforms that support it natively
        https://bugs.webkit.org/show_bug.cgi?id=134904

        Reviewed by Andreas Kling.

        No new tests because there is no behavior change.

        * loader/cache/CachedFont.cpp:
        (WebCore::CachedFont::ensureCustomFontData):

2014-07-22  peavo@outlook.com  <peavo@outlook.com>

        [Win] Crash after plugin is unloaded.
        https://bugs.webkit.org/show_bug.cgi?id=119044

        Reviewed by Darin Adler.

        We need to invalidate all runtime objects when a plugin view is destroyed, in case the plugin is unloaded,
        and one of these runtime objects accesses the plugin function table upon destruction afterwards, which will cause a crash.
        If we use the weak pointer to the runtime object when invalidating, it will be null if it's in the WeakImpl::Dead state.
        This means the runtime object will not be invalidated, possibly causing a crash if the plugin is unloaded.
        It should be safe to use the raw pointer to the runtime object when invalidating, since finalized runtime objects
        will be removed from the set of runtime objects in the method RootObject::finalize().

        * bridge/runtime_root.cpp:
        (JSC::Bindings::RootObject::invalidate): Make sure all runtime objects are invalidated by getting the raw runtime object pointer from the hash key.

2014-07-22  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): Selection inside accelerated overflow:scroll doesn't track scrolling.
        https://bugs.webkit.org/show_bug.cgi?id=135180
        <rdar://problem/16721055>

        Reviewed by Simon Fraser.

        AsyncScrollingCoordinator will force a selection update on iOS
        when scrolling terminates in an overflow scroll.

        * loader/EmptyClients.h:
        * page/EditorClient.h:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
        * page/scrolling/ScrollingTree.h:
        (WebCore::ScrollingTree::scrollingTreeNodeWillStartScroll):
        (WebCore::ScrollingTree::scrollingTreeNodeDidEndScroll):

2014-07-22  Myles C. Maxfield  <mmaxfield@apple.com>

        [Mac] Cocoa throws exception when the return type of NSAccessibilityLinkedUIElementsAttribute is not an array
        https://bugs.webkit.org/show_bug.cgi?id=135165

        Reviewed by Simon Fraser.

        Return an empty array instead of nil.

        Updated tests.

        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

2014-07-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171357.
        https://bugs.webkit.org/show_bug.cgi?id=135173

        broke Windows build. (Requested by bfulgham on #webkit).

        Reverted changeset:

        "[Win] Fix Crash when handling Legible Output callbacks"
        https://bugs.webkit.org/show_bug.cgi?id=134946
        http://trac.webkit.org/changeset/171357

2014-07-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Fix Crash when handling Legible Output callbacks
        https://bugs.webkit.org/show_bug.cgi?id=134946

        Reviewed by Dean Jackson.

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Remove
        Windows-specific 'ASSERT_NOT_REACHED' code path.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::createLegibleOutputSubtypes): Added.
        (WebCore::AVFWrapper::createPlayerItem): Updated to request native
        samples from AVFoundationCF.

2014-07-21  Sam Weinig  <sam@webkit.org>

        [Cocoa] WKScriptMessageHandlers don't seem to function properly after navigating
        https://bugs.webkit.org/show_bug.cgi?id=135148

        Reviewed by Geoffrey Garen.

        The "webkit" property on the window was not getting installed for subsequent
        loads due to intricate dance playing setting the JSDOMWindow where the DOMWindow
        object is not yet in a Frame when the JSDOMWindow is created. Since we were
        adding the "webkit" property on construction, the property was returning null
        thinking it had no Frame and was in a bad state. We can fix this by making the
        "webkit" property behave like all the other window properties moving its getting
        to JSDOMWindow::getOwnPropertySlot.

        Added API test (WebKit2Cocoa/UserContentController).

        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::finishCreation):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::jsDOMWindowWebKit):
        (WebCore::JSDOMWindow::getOwnPropertySlot):

2014-07-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Fix Leak in WebCore::createGlobalImageFileDescriptor 
        https://bugs.webkit.org/show_bug.cgi?id=134423
        <rdar://problem/17492758>

        Reviewed by Geoffrey Garen.

        * platform/win/PasteboardWin.cpp:
        (WebCore::createGlobalImageFileDescriptor): Unlock and release the
        HGLOBAL when exiting early.

2014-07-21  Myles C. Maxfield  <mmaxfield@apple.com>

        Clicking on links while accessibility is enabled sometimes crashes
        https://bugs.webkit.org/show_bug.cgi?id=135074

        Reviewed by Chris Fleizach.

        When an accessibility request comes in from the system, we call updateBackingStore() on the
        relevant AccessibilityObject, which triggers a relayout of the entire document. This relayout
        might delete that accessibility node and its parent, which would cause the node to be deleted.
        After the stack unwinds, we then call a member function on the node without checking for this
        condition.

        Test: accessibility/parent-delete.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::updateBackingStore): Retain the node for the duration of the
        function.

2014-07-22  Jeremy Jones  <jeremyj@apple.com>

        Don't create new UIWindow for video fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=135038

        Reviewed by Darin Adler.

        * WebCore.exp.in:
        * platform/ios/WebVideoFullscreenControllerAVKit.h: use UIView instead of UIScreen.
        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        (-[WebVideoFullscreenController enterFullscreen:]): provide parent UIView.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: remove UIWindow.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: 
        (WebVideoFullscreenInterfaceAVKit::setupFullscreen): ditto 
        (WebVideoFullscreenInterfaceAVKit::cleanupFullscreen): ditto
        (WebVideoFullscreenInterfaceAVKit::invalidate): ditto
        (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen): ditto

2014-07-22  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Rollout r170529 due to ~10% performance regression on the
        perf test Animation/balls.
        https://bugs.webkit.org/show_bug.cgi?id=134972

        Reviewed by Martin Robinson.

        Reverted changeset:
        "Increase priority on SharedTimer source."
        https://trac.webkit.org/r170529

2014-07-18  Dirk Schulze  <krit@webkit.org>

        Turn width/height to presentation attributes
        https://bugs.webkit.org/show_bug.cgi?id=135046

        Reviewed by Dean Jackson.

        The elements <svg>, <image>, <pattern>, <mask> and <foreignObject> have the
        'width' and 'height' attributes. So far they can just be set by SVG DOM or
        setAttribute. Furthermore, animations just work with SVG Animation - No support
        for CSS Animations and CSS Transitions. We started to turn the width and height
        attributes on SVG roots to presentation attributes already. A presentation
        attribute is a CSS property that can also be set by DOM (or now by SVG DOM).

        This patch turns all width and height attributes to presentation attributes. It
        basically allows authors to style width and height with CSS as well. Width and
        height can now be set with CSS style sheets and can be animated with CSS.

        To some degree it made it possible to remove code duplication. However, since
        SVG DOM requires us to use SVGLength types and since we did not turn all
        SVG attributes to the CSS length values (and our internal Length struct) yet,
        we still need a hybrid - a bridge between SVGLength (for SVG DOM) and Length (for
        RenderStyle). Once we move all attributes to use the Length struct, we can make SVGLength
        a wrapper for Length and can move more code to the render tree.

        The current challenge is to synchronize SVG DOM, normal DOM and RenderStyle.
        With this patch we handle most part in RenderStyle. SVG DOM changes are
        synchronized to DOM and RenderStyle will call needsStyleRecalc. Furthermore,
        SVG Animations will continue to animate the SVG DOM (and synchronize the changes
        back to RenderStyle) if the element has a JS property for the currently animated
        attribute.

        Short example:

            <rect>
                <animate attributeName="width">
            </rect>

        The <rect> element has the SVG DOM property 'width'. Therefore, we animate the SVG DOM
        property and synchronize RenderStyle.

            <ellipse>
                <animate attributeName="width">
            </ellipse>

        The <ellipse> element does NOT have the SVG DOM property 'width'. Therefore, we
        animate the CSS property directly. With synchronizing RenderStyle in all cases, we
        make sure that the CSS cascade works even on animating on multiple SVG hierarchy
        levels (animation of 'width' on <g> and inheriting the property value on a child
        <rect>).

        With using presentation attributes, we also inherit the CSS property parsing for
        SVG attributes. <rect width="  100px  "> is possible now. (Note the trailing whitespaces.)
        This follows a recent resolution of the SVG WG.

        Since we turned width and height to presentation attributes, the layout optimization
        selfHasRelativeLengths() in the DOM can't be used anymore. selfHasRelativeLengths() was
        intended to solve a problem where we did not layout relatively position/sized elements
        when the parent changes its size. However, as a side effect it did not call layout
        for absolutely positioned/sized elements since the layout does not change. I run
        all performance tests that we have and even wrote a test with hundreds of elements
        that would be affected by this optimization. The differences were inside the sigma
        of a normal test run. (Means I couldn't measure a performance difference.)
        Therefore, it is not worth it to keep the "optimization" around and I will probably
        remove it entirely for all basic shapes but <path> and <polygon> in future patches.

        Tests: svg/css/parse-height.html
               svg/css/parse-width.html
               svg/css/width-height-presentation-attribute-expected.svg
               svg/css/width-height-presentation-attribute.svg

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue): We never calculated the computed
            value of width/height for SVG elements and returned auto instead. This is based
            on a rule of CSS 2 and needs to be fixed in CSS3.
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyLength::applyValue): Length always incorporates the zoom level.
            In SVG we still apply the zoom after all operations by scaling the context. We need
            to take this in account for Length and don't apply zoom on SVG inline elements.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::useSVGZoomRulesForLength):
            See above.
        * css/StyleResolver.h:
        * rendering/svg/RenderSVGRect.cpp:
        (WebCore::RenderSVGRect::updateShapeFromElement): Do not call width() and height() on
            SVG DOM but use the values of RenderStyle instead.
        * rendering/svg/SVGPathData.cpp:
        (WebCore::updatePathFromRectElement): Ditto.
        * svg/SVGAnimateElement.cpp:
        (WebCore::SVGAnimateElement::resetAnimatedType): We need to differ between CSS properties
            with and without SVG DOM on the current element. In the later case we animate the 
            SVG DOM and need to synch RenderStyle.
        (WebCore::SVGAnimateElement::clearAnimatedType): Ditto.
        (WebCore::SVGAnimateElement::applyResultsToTarget): Ditto.
        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::isTargetAttributeCSSProperty): This checks if the CSS property
            has to be synched with SVG DOM.
        (WebCore::SVGAnimationElement::shouldApplyAnimation): Ditto.
        * svg/SVGAnimationElement.h:
        * svg/SVGElement.cpp:
        (WebCore::populateAttributeNameToCSSPropertyIDMap): Add width and heigth to the CSS property
            list for presentation attributes.
        (WebCore::populateCSSPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): CSS properties with
            SVG DOM synchronization need to be treated differently. Collect them in a separate map.
        (WebCore::cssPropertyWithSVGDOMNameToAnimatedPropertyTypeMap): Caller for the map.
        (WebCore::SVGElement::animatedPropertyTypeForAttribute): We need to check both maps here:
            CSS properties and CSS properties with SVG DOM synch.
        (WebCore::SVGElement::isAnimatableCSSProperty): Ditto.
        (WebCore::SVGElement::isPresentationAttributeWithSVGDOM): Just return true if the property name
            is in the map of properties with SVG DOM for the current element.
        * svg/SVGElement.h:
        (WebCore::SVGElement::invalidateSVGPresentationAttributeStyle): Call needsStyleRecalc.
        * svg/SVGFilterElement.cpp: Make width/height presentation attribute.
        (WebCore::SVGFilterElement::svgAttributeChanged):
        (WebCore::SVGFilterElement::selfHasRelativeLengths): Deleted.
        * svg/SVGFilterElement.h: Ditto.
        * svg/SVGForeignObjectElement.cpp:
        (WebCore::SVGForeignObjectElement::svgAttributeChanged):
        (WebCore::SVGForeignObjectElement::selfHasRelativeLengths): Deleted.
        * svg/SVGForeignObjectElement.h:
        * svg/SVGImageElement.cpp: Ditto.
        (WebCore::SVGImageElement::svgAttributeChanged):
        (WebCore::SVGImageElement::isPresentationAttribute): Deleted.
        (WebCore::SVGImageElement::collectStyleForPresentationAttribute): Deleted.
        (WebCore::SVGImageElement::selfHasRelativeLengths): Deleted.
        * svg/SVGImageElement.h:
        * svg/SVGLength.h: Transform an Length value to an absolute value by taking the SVG viewport
            into account. (An SVG viewport is not the same as the CSS viewport.)
        * svg/SVGLengthContext.cpp: Ditto.
        (WebCore::SVGLengthContext::valueForLength):
        * svg/SVGLengthContext.h:
        * svg/SVGMaskElement.cpp: Make width/height presentation attribute.
        (WebCore::SVGMaskElement::svgAttributeChanged):
        (WebCore::SVGMaskElement::selfHasRelativeLengths): Deleted.
        * svg/SVGMaskElement.h:
        * svg/SVGPatternElement.cpp: Ditto.
        (WebCore::SVGPatternElement::svgAttributeChanged):
        (WebCore::SVGPatternElement::selfHasRelativeLengths): Deleted.
        * svg/SVGPatternElement.h:
        * svg/SVGRectElement.cpp: Ditto.
        (WebCore::SVGRectElement::svgAttributeChanged):
        (WebCore::SVGRectElement::selfHasRelativeLengths): Deleted.
        * svg/SVGRectElement.h:
        * svg/SVGSVGElement.cpp: Ditto.
        (WebCore::SVGSVGElement::svgAttributeChanged): Clean up redundant layout calls.
        (WebCore::SVGSVGElement::isPresentationAttribute): Deleted.
        (WebCore::SVGSVGElement::collectStyleForPresentationAttribute): Deleted.
        * svg/SVGSVGElement.h:
        * svg/properties/SVGAnimatedProperty.cpp: Synchronize SVG DOM with DOM.
        (WebCore::SVGAnimatedProperty::commitChange):

2014-07-22  Adrian Perez de Castro  <aperez@igalia.com>

        [GStreamer] [GTK] WebKit does not build with GStreamer 1.4
        https://bugs.webkit.org/show_bug.cgi?id=135114

        Reviewed by Philippe Normand.

        Fix build with GStreamer 1.4

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        Change GstMpegTs-prefixed types to use the GstMpegts prefix.
        (WebCore::MediaPlayerPrivateGStreamer::handleMessage):
        (WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        Ditto.

2014-07-21  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Improve event throttling for Scroll Events
        https://bugs.webkit.org/show_bug.cgi?id=135082
        <rdar://problem/17445266>

        Reviewed by Simon Fraser.

        This patch is composed of two parts. The first part in the WebKit layer
        track an approximate measurement of the main thread responsiveness.
        The second part in WebCore use that information to avoid sending events
        if a page is unresponsive.

        In WebCore, this patch only consider scroll events so far. Hopefully the concept
        should be easy to generalize.

        * loader/EmptyClients.h:
        * page/ChromeClient.h:
        Chrome client provides us with one information: how long an incoming event should be delayed.
        Every port is free to implement whatever logic is suitable for them.

        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView):
        (WebCore::FrameView::reset):
        (WebCore::FrameView::delayedScrollEventTimerFired):
        (WebCore::FrameView::scrollPositionChanged):
        (WebCore::FrameView::sendScrollEvent):
        * page/FrameView.h:
        Scroll events do not have any associated information so they can be coalesced by just skipping
        all input hapenning during the throttling delay.

        The implementation is done by using a timer to delay the events.

2014-07-21  Tim Horton  <timothy_horton@apple.com>

        Avoid putting empty-sized surfaces into IOSurfacePool
        https://bugs.webkit.org/show_bug.cgi?id=135136

        Reviewed by Simon Fraser.

        * platform/graphics/cg/IOSurfacePool.cpp:
        (WebCore::IOSurfacePool::addSurface):
        Avoid adding 0x0 surfaces to the pool, because they will wreak havoc
        when their size is used as the key in the CachedSurfaceMap.
        Additionally, avoid any empty sizes, because they're just pointless.

2014-07-21  Beth Dakin  <bdakin@apple.com>

        WK1 should always setAcceleratedCompositingForFixedPositionEnabled(true) on 
        Yosemite
        https://bugs.webkit.org/show_bug.cgi?id=135135

        Reviewed by Darin Adler.

        This patch gets rid of the ChromeClient function that was introduced with 
        http://trac.webkit.org/changeset/171308 We’ll just enable the Setting instead.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        (WebCore::fixedPositionCreatesStackingContext): Deleted.
        * page/ChromeClient.h:
        (WebCore::ChromeClient::requiresAcceleratedCompositingForViewportConstrainedPosition): Deleted.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):

2014-07-21  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Turn off position:fixed behavior when the keyboard is up
        https://bugs.webkit.org/show_bug.cgi?id=132537

        Reviewed by Benjamin Poulain.

        Export RenderObject::localToContainerPoint().

        * WebCore.exp.in:

2014-07-21  Jer Noble  <jer.noble@apple.com>

        [MSE] YouTube video decode error when variant-switching
        https://bugs.webkit.org/show_bug.cgi?id=135128

        Reviewed by Brent Fulgham.

        Test: media/media-source/media-source-overlapping-decodetime.html

        When variant-switching, the situation can arise where an existing sample with a presentation
        timestamp of N and a decode timestamp of M, and a new sample with a presentation timestamp > N
        and the same decode timestamp of M, will keep the new sample from being added to the SampleMap.
        This can result in a decode error when samples depending on that new, missing sample are enqueued.

        The MSE spec is silent on the issue of overlapping decode timestamps. However, it guarantees that
        presentation timestamps are non-overlapping. So instead of using just the decode timestamp as a key
        for storing the samples in decode order, use both the decode timestamp and the presentation timestamp.
        That ensures that samples with different presentation times but equal decode times are both inserted
        into the decode queue, and in the correct order.

        * Modules/mediasource/SampleMap.cpp:
        (WebCore::SampleIsRandomAccess::operator()): Update the parameter type to match the new KeyType.
        (WebCore::SampleMap::addSample): Pass both decodeTime and presentationTime as the key to decodeOrder.
        (WebCore::SampleMap::removeSample): Ditto.
        (WebCore::DecodeOrderSampleMap::findSampleWithDecodeKey): Renamed from findSampleWithDecodeTime.
        (WebCore::DecodeOrderSampleMap::reverseFindSampleWithDecodeKey): renamed from reverseFindSampleWithDecodeTime.
        (WebCore::DecodeOrderSampleMap::findSyncSamplePriorToPresentationTime): Use renamed version of above.
        (WebCore::DecodeOrderSampleMap::findSyncSampleAfterPresentationTime): Ditto.
        (WebCore::DecodeOrderSampleMap::findDependentSamples): Ditto.
        (WebCore::DecodeOrderSampleMap::findSampleWithDecodeTime): Deleted.
        (WebCore::DecodeOrderSampleMap::reverseFindSampleWithDecodeTime): Deleted.
        * Modules/mediasource/SampleMap.h:
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::removeCodedFrames): Ditto.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
        (WebCore::SourceBuffer::reenqueueMediaForTime): Ditto.

2014-07-21  Andy Estes  <aestes@apple.com>

        [iOS] Handle QuickLook ResourceLoaders in the web process
        https://bugs.webkit.org/show_bug.cgi?id=135113

        Reviewed by David Kilzer.

        No new tests. QuickLook is not testable from WebKit.

        * WebCore.exp.in:
        * loader/ResourceLoadScheduler.cpp:
        (WebCore::ResourceLoadScheduler::maybeLoadQuickLookResource): Start loading the ResourceLoader if it is for a QuickLook resource.
        * loader/ResourceLoadScheduler.h:

2014-07-21  Alexey Proskuryakov  <ap@apple.com>

        Case sensitive file system build fix.

        * page/scrolling/ScrollingStateTree.cpp:

2014-07-21  Beth Dakin  <bdakin@apple.com>

        Put position:fixed elements into layers when a WK1 view is layer-backed
        https://bugs.webkit.org/show_bug.cgi?id=135075

        Reviewed by Darin Adler.

        This patch adds a new ChromeClient function called 
        requiresAcceleratedCompositingForViewportConstrainedPosition(). Since a view can 
        go in and out of layer backing, we need a ChromeClient method that can be 
        dynamically re-evaluated rather than using the existing settings for enabling 
        accelerated fixed and fixed that creates a stacking context.

        Ensure that fixed elements create a stacking context when 
        requiresAcceleratedCompositingForViewportConstrainedPosition is true.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):

        New ChromeClient function.
        * page/ChromeClient.h:

2014-07-21  Simon Fraser  <simon.fraser@apple.com>

        Add helper functions to dump the scrolling state tree from the debugger
        https://bugs.webkit.org/show_bug.cgi?id=135101

        Reviewed by Darin Adler.

        Add debug-only showScrollingStateTree() functions that take a ScrollingStateTree* and ScrollingStateNode*
        for use while debugging.

        * page/scrolling/ScrollingStateTree.cpp:
        (showScrollingStateTree):
        * page/scrolling/ScrollingStateTree.h:

2014-07-20  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK1] Single touch div scrolling doesn't work in framesets (breaks Word previews)
        https://bugs.webkit.org/show_bug.cgi?id=135103
        <rdar://problem/11830219>

        Reviewed by Darin Adler.

        After r166117 all layer flushing starts on the root frame; we no longer flush layers
        for each frame during painting. However, flushing GraphicsLayers can set some state
        on a subframe RenderLayerCompositor that is now never processed, which breaks scroll
        layer registration.
        
        Fix by doing a walk of the Frame tree, and calling didFlushLayers() on subframe RenderLayerCompositors
        before calling didFlushLayers() on self.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
        (WebCore::RenderLayerCompositor::didFlushLayers):
        (WebCore::RenderLayerCompositor::notifySubframesAfterLayerFlush):
        (WebCore::RenderLayerCompositor::enclosingCompositorFlushingLayers): Drive-by nullptr.
        * rendering/RenderLayerCompositor.h:

2014-07-21  Eric Carlson  <eric.carlson@apple.com>

        [iOS] a Paused media session is not active
        https://bugs.webkit.org/show_bug.cgi?id=135108

        Reviewed by Darin Adler.

        Activating the shared AudioSession will pause audio playing in another application,
        so only report a Playing media sessions as active.

        * platform/audio/MediaSessionManager.cpp:
        * platform/audio/MediaSessionManager.h:
        (WebCore::MediaSessionManager::activeAudioSessionRequired): Renamed from hasActive to make
        clear what it does. Only return true for a session that is Playing.

        * platform/audio/mac/MediaSessionManagerMac.cpp:
        (MediaSessionManager::updateSessionState): hasActive renamed to activeAudioSessionRequired.

2014-07-21  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Update GObject DOM bindings test results after r171285.

        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
        * bindings/scripts/test/GObject/WebKitDOMattribute.cpp:
        * bindings/scripts/test/GObject/WebKitDOMreadonly.cpp:

2014-07-20  Pratik Solanki  <psolanki@apple.com>

        Reduce the chances of a race condition when sharing SharedBuffer
        https://bugs.webkit.org/show_bug.cgi?id=135060
        <rdar://problem/17729444>

        Reviewed by Darin Adler.

        We currently pass a SharedBuffer wrapped in WebCoreSharedBufferData to ImageIO for image
        decoding. This is not thread safe since ImageIO will access this buffer on a separate
        thread. We access SharedBuffer::buffer() on the other thread which resizes the Vector
        m_buffer if m_size is greater than the vector size. Since the code in SharedBuffer::append()
        sets m_size before appending the data to the buffer, m_size is out of sync with the m_buffer
        size for the entire duration of the Vector append which could be doing a lot of copying if
        the resource is large. While this change does not fix the race condition, we can at least
        reduce the chances of SharedBuffer::buffer() calling resize() by setting m_size after the
        cector has finished appending.

        No new tests because no functional changes.

        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::append):

2014-07-20  Jeremy Jones  <jeremyj@apple.com>

        Fix test crashes when cloning video layer since r171286
        https://bugs.webkit.org/show_bug.cgi?id=135112

        Unreviewed. Fix crashing tests by conditionalizing inline video layer change.
        compositing/video/video-reflection.html [ Crash ]
        media/video-layer-crash.html [ Crash ]

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: add conditional
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: ditto
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): ditto
        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): ditto
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer): ditto

2014-07-20  Jeremy Jones  <jeremyj@apple.com>

        Disable ff/rw based on canPlayFastForward and canPlayFastRewind.
        https://bugs.webkit.org/show_bug.cgi?id=134894

        Reviewed by Darin Adler.

        * WebCore.exp.in: add symbol for canPlayFastReverse
        * html/HTMLMediaElement.cpp: Add two new accessors
        (WebCore::HTMLMediaElement::nextScanRate): possibly limit scanRate
        (WebCore::HTMLMediaElement::canPlayFastForward): added
        (WebCore::HTMLMediaElement::canPlayFastReverse): added
        * html/HTMLMediaElement.h: declare two new methods
        * platform/graphics/MediaPlayer.cpp: Plumb through two new accessors
        (WebCore::MediaPlayer::maxFastForwardRate): added
        (WebCore::MediaPlayer::minFastReverseRate): added
        * platform/graphics/MediaPlayer.h: Declare new methods
        * platform/graphics/MediaPlayerPrivate.h: Added two new methods.
        (WebCore::MediaPlayerPrivateInterface::maxFastForwardRate): added
        (WebCore::MediaPlayerPrivateInterface::minFastReverseRate): added
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: member to cache ff/rw enabled state
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): observe on item canPlayFastForward canPlayFastReverse
        (WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayFastForwardDidChange): added
        (WebCore::MediaPlayerPrivateAVFoundationObjC::canPlayFastReverseDidChange): added
        (WebCore::itemKVOProperties): observe canPlayFastForward canPlayFastRewind
        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): ditto
        * platform/ios/WebVideoFullscreenInterface.h: add new method
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: ditto
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm: ditto
        (WebVideoFullscreenInterfaceAVKit::setCanPlayFastReverse): Set value on WebAVPlayerController.
        (-[WebAVPlayerController canScanBackward]): Deleted.
        (+[WebAVPlayerController keyPathsForValuesAffectingCanScanBackward]): Deleted.
        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::updateForEventName): update canPlayFastReverse.

2014-07-18  Gavin Barraclough  <baraclough@apple.com>

        HTMLMediaElement should registerWithDocument on iOS
        https://bugs.webkit.org/show_bug.cgi?id=135084
        <rdar://problem/17702531>

        Reviewed by Andreas Kling.

        Otherwise it won't know when the visibility changes!

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::registerWithDocument):
        (WebCore::HTMLMediaElement::unregisterWithDocument):

2014-07-20  Jeremy Jones  <jeremyj@apple.com>

        Decrease flicker when enter and exit fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=134919

        Reviewed by Simon Fraser.

        Put AVPlayerLayer in a container layer so moving it between inline and fullscreen
        is as easy as adding and removing it from a containter layer; no need to do a layout.

        Make sure fullscreen layers are transparent before moving moving the AVPlayerLayer
        between inline and fullscreen so you don't briefly see the empty fullscreen layers.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::platformLayer): remove fullscreen special case.
        (WebCore::HTMLMediaElement::setVideoFullscreenLayer): no need to recalc style
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h: add inline container layer
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm: 
        add WebVideoContainerLayer to contain AVPlayerLayer and keep layout correct.
        (-[WebVideoContainerLayer setBounds:]): forward setbounds to set child frame.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer): create the video container layer
        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): destroy the video container layer
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer): use container layer instead of video layer
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): use transactions to prevent unwanted animation.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): ditto
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayerMac::layerTypeForPlatformLayer): WebVideoContainerLayer is a kind of AVPlayerLayer
        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        (-[WebVideoFullscreenController didCleanupFullscreen]): remove video fullscreen layer first
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::setupFullscreen): make background transparent during transition.
           dispatch_async to allow CATransaction to complete before calling didSetupFullscreen()

2014-07-20  Ryuan Choi  <ryuan.choi@samsung.com>

        Move ExceptionCodeDescription.h into the files that actually need it
        https://bugs.webkit.org/show_bug.cgi?id=134968

        Reviewed by Darin Adler.

        No new tests because no functional changes.

        * Modules/indexeddb/IDBDatabaseException.cpp:
        * Modules/webdatabase/SQLException.cpp:
        * bindings/js/JSDOMBinding.cpp:
        * bindings/objc/ExceptionHandlers.mm:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (Generate):
        * dom/DOMCoreException.cpp:
        * dom/EventException.cpp:
        * dom/ExceptionBase.cpp:
        * dom/ExceptionCode.h:
        * dom/RangeException.cpp:
        * fileapi/FileException.cpp:
        * inspector/DOMEditor.cpp:
        * inspector/InspectorDOMAgent.cpp:
        * svg/SVGException.cpp:
        * xml/XMLHttpRequestException.cpp:
        * xml/XPathException.cpp:

2014-07-20  Dan Bernstein  <mitz@apple.com>

        <rdar://problems/17742611> -[_WKActivatedElementInfo image] is often empty
        https://bugs.webkit.org/show_bug.cgi?id=135107

        Reviewed by Sam Weinig.

        Test: TestWebKitAPI/Tests/mac/RenderedImageFromDOMNode.mm

        * page/FrameView.cpp:
        (WebCore::FrameView::paintContents): To work around http://webkit.org/b/135106, replace the
        paint root with its nearest ancestor that isn’t an inline with culled line boxes, if needed.

2014-07-20  Darin Adler  <darin@apple.com>

        Crashes seen in wheel event handling
        https://bugs.webkit.org/show_bug.cgi?id=135102

        Reviewed by Beth Dakin.

        Speculative fix based on guesses about what could be crashing.
        The crash seems to be calling ref on an event target, and my guess is that this
        has something to do with latching.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::platformPrepareForWheelEvents): Updated argument types.
        (WebCore::EventHandler::handleWheelEvent): Refactored a little and made some local
        variables use RefPtr instead of raw pointers. Also added some comments.

        * page/EventHandler.h: Changed argument types to RefPtr.

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::platformPrepareForWheelEvents): Updated argument types.
        Also added a FIXME.

2014-07-20  Simon Fraser  <simon.fraser@apple.com>

        Print layerIDs in GraphicsLayer dumps
        https://bugs.webkit.org/show_bug.cgi?id=135100

        Reviewed by Darin Adler.

        When calling showGraphicsLayerTree() from the debugger, it's useful to show
        layerIDs so they can be correlated with remote layer tree transactions. So
        when dumping with debug info, dump the primary layer ID.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::dumpProperties):

2014-07-20  Eric Carlson  <eric.carlson@apple.com>

        [iOS] ignore requests to set volume
        https://bugs.webkit.org/show_bug.cgi?id=135081

        Applied post-review comments from Darin Adler.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): Don't include unreachable
            code on iOS.

2014-07-19  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/135085> Ensure that make_names.pl generates the same result when run multiple times.

        Perl 5.18 introduced hash randomization. This results in the iteration order of hashes being different
        from one run to the next. To ensure identical output we can iterate over the hash keys in sorted order.

        Reviewed by Alexey Proskuryakov.

        * bindings/scripts/StaticString.pm:
        (GenerateStrings):
        (GenerateStringAsserts):
        * dom/make_names.pl:

2014-07-19  Zan Dobersek  <zdobersek@igalia.com>

        Document::unregisterNodeListforInvalidation() and Document::unregisterCollection() have incorrect assertions
        https://bugs.webkit.org/show_bug.cgi?id=134869

        Reviewed by Darin Adler.

        Both methods should assert that the relevant HashMap is either empty if invalidation originates
        from Document::invalidateNodeListAndCollectionCaches() or acutally contains the element that is
        being invalidated. In the first case the HashMap is empty because its entries were moved out in
        the Document::invalidateNodeListAndCollectionCaches().

        This was exposed by r170995 (later rolled out in r170999) which introduced move constructor and
        move assignment operators for HashTable. The assertions in the titular methods won't be passing
        until r170995 relands.

        * dom/Document.cpp:
        (WebCore::Document::unregisterNodeListForInvalidation):

2014-07-18  Eric Carlson  <eric.carlson@apple.com>

        [iOS] ignore requests to set volume
        https://bugs.webkit.org/show_bug.cgi?id=135081

        Reviewed by Jer Noble.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVolume): Do nothing on iOS.

2014-07-18  Andy Estes  <aestes@apple.com>

        [iOS] Tapping "Allow Website" on a restricted page does not bring up the keypad
        https://bugs.webkit.org/show_bug.cgi?id=135072
        <rdar://problem/17528188>

        Reviewed by David Kilzer.

        No new tests. Content filtering is not testable from WebKit.

        * WebCore.exp.in: Exported necessary ContentFilter symbols.
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::finishedLoading): Called FrameLoaderClient::contentFilterDidBlockLoad().
        (WebCore::DocumentLoader::responseReceived): Created a new ContentFilter.
        (WebCore::DocumentLoader::dataReceived): Called FrameLoaderClient::contentFilterDidBlockLoad().
        (WebCore::DocumentLoader::setContentFilterForBlockedLoad): Deleted.
        (WebCore::DocumentLoader::handleContentFilterRequest): Deleted.
        * loader/DocumentLoader.h:
        * loader/FrameLoaderClient.h:
        (WebCore::FrameLoaderClient::contentFilterDidBlockLoad):
        * loader/PolicyChecker.cpp:
        (WebCore::PolicyChecker::checkNavigationPolicy): Removed the check for unblock navigations, as this is now
        handled at the WebKit layer.
        * platform/ContentFilter.h: ContentFilter no longer needs to be RefCounted, so made various changes in order to
        make it compatible with unique_ptr.
        * platform/ios/ContentFilterIOS.mm:
        (WebCore::scheme): Changed from a public member function to a static inline free function.
        (WebCore::ContentFilter::handleUnblockRequestAndDispatchIfSuccessful): Renamed from requestUnblockAndDispatchIfSuccessful.
        * platform/mac/ContentFilterMac.mm:
        (WebCore::ContentFilter::ContentFilter): Added a default constructor for use during message decoding.
        (WebCore::ContentFilter::addData): Removed calls to ref() and deref(). These were never actually needed since
        we were dispatching the block synchronously.
        (WebCore::ContentFilter::finishedAddingData): Ditto.
        (WebCore::ContentFilter::encode): Encoded m_platformContentFilter to the NSKeyedArchiver if it conforms to NSSecureCoding.
        (WebCore::ContentFilter::decode): Decoded m_platformContentFilter from the NSKeyedUnarchiver if it conforms to NSSecureCoding.
        (WebCore::ContentFilter::create): Deleted.

2014-07-18  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] position:fixed in iframes with programmatic scroll could end up in the wrong place
        https://bugs.webkit.org/show_bug.cgi?id=135078
        <rdar://problem/17401823>

        Reviewed by Tim Horton.
        
        When the UI-side scrolling tree receives a requested scroll position update, it scrolls
        the node (e.g. a frame) then traverses child nodes to update them, e.g. for fixed position.
        However, we would always use a viewport rect for the main document (from the scrolling tree),
        which is not appropriate for subframes. Subframes should just use their own visible
        rect to position fixed children.

        Test: platform/mac-wk2/tiled-drawing/scrolling/frames/fixed-inside-frame.html

        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):

2014-07-18  Beth Dakin  <bdakin@apple.com>

        Fixed position elements are misplaced when a WK1 view has contentInsets set
        https://bugs.webkit.org/show_bug.cgi?id=135031
        -and corresponding-
        <rdar://problem/17682335>

        Reviewed by Tim Horton.

        [NSScrollView documentVisibleRect] includes content that is within the inset-area 
        of a view, but WebCore is interested in the content that is fully visible, so we 
        need to factor the inset sizes out of this rect.

        Implement contract() to avoid the awkwardness of calling expand() with negative 
        values.
        * platform/graphics/IntSize.h:
        (WebCore::IntSize::contract):

        Factor out insets
        * platform/mac/ScrollViewMac.mm:
        (WebCore::ScrollView::platformVisibleContentRect):
        (WebCore::ScrollView::platformVisibleContentSize):

2014-07-18  Tim Horton  <timothy_horton@apple.com>

        Take navigation snapshots whenever the current back-forward item is going to change
        https://bugs.webkit.org/show_bug.cgi?id=135058
        <rdar://problem/17464515>

        Reviewed by Dan Bernstein.

        * loader/HistoryController.cpp:
        (WebCore::HistoryController::updateForCommit):
        (WebCore::HistoryController::recursiveUpdateForCommit):
        (WebCore::HistoryController::recursiveUpdateForSameDocumentNavigation):
        (WebCore::HistoryController::createItem):
        Use setCurrentItem instead of duplicating the contents of it inside each of these functions.

        (WebCore::HistoryController::setCurrentItem):
        (WebCore::HistoryController::replaceCurrentItem):
        When setting or replacing the current item, let the FrameLoaderClient know that we're going
        to change which history item is "current".

        * loader/FrameLoaderClient.h:
        (WebCore::FrameLoaderClient::willChangeCurrentHistoryItem): Added.

2014-07-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171207.
        https://bugs.webkit.org/show_bug.cgi?id=135056

        Broke multiple tests on Yosemite (Requested by ap on #webkit).

        Reverted changeset:

        "Fixed position elements are misplaced when a WK1 view has
        contentInsets set"
        https://bugs.webkit.org/show_bug.cgi?id=135031
        http://trac.webkit.org/changeset/171207

2014-07-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r171218.
        https://bugs.webkit.org/show_bug.cgi?id=135055

        Made fast/dom/HTMLObjectElement/beforeload-set-text-
        crash.xhtml crash (Requested by ap on #webkit).

        Reverted changeset:

        "REGRESSION (r169105): Crash in selection"
        https://bugs.webkit.org/show_bug.cgi?id=134303
        http://trac.webkit.org/changeset/171218

2014-07-18  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r169105): Crash in selection
        https://bugs.webkit.org/show_bug.cgi?id=134303

        Reviewed by Ryosuke Niwa.

        When splitting the selection between different subtrees, all subtrees must have their selection cleared before
        starting to apply the new selection. Otherwise, when selecting objects in a named flow thread and going up
        its containing block chain, we can end up in the view's selection root, which has not yet been updated and so
        we get inconsistent data.

        To achieve this goal, the selection update was split into a "clear" and an "apply" method. The updateSelectionForSubtrees
        method first iterates through all subtrees and performs the "clear" method and then starts all over again
        and performs the "apply" method.

        Also, the selectionStart/End members in RenderView have been renamed to fix problems caused by the fact that
        RenderView inherits SelectionSubtreeRoot, which also has the same selectionStart/End members.

        Test: fast/regions/selection/crash-deselect.html

        * WebCore.xcodeproj/project.pbxproj:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::isSelectionRoot):
        * rendering/RenderSelectionInfo.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        (WebCore::RenderView::setSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
        (WebCore::RenderView::splitSelectionBetweenSubtrees):
        (WebCore::RenderView::updateSelectionForSubtrees): Added, clears and re-applies selection for all selection subtrees.
        (WebCore::RenderView::clearSubtreeSelection): Added, clears selection and returns previously selected information.
        (WebCore::RenderView::applySubtreeSelection): Added, updates the selection status of all objects inside the selection tree, compares old and new data and repaints accordingly.
        (WebCore::RenderView::getSelection): Renamed m_selectionStart/End to m_unsplitSelectionStart/End
        (WebCore::RenderView::setSubtreeSelection): Deleted.
        * rendering/RenderView.h:
        * rendering/SelectionSubtreeRoot.cpp:
        (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
        * rendering/SelectionSubtreeRoot.h:
        (WebCore::SelectionSubtreeRoot::OldSelectionData::OldSelectionData):

2014-07-17  Jer Noble  <jer.noble@apple.com>

        [MSE] Re-enqueue after a removeCodedFrames() only if the removed frames overlap what may have possibly been enqueued but undisplayed.
        https://bugs.webkit.org/show_bug.cgi?id=135039

        Reviewed by Eric Carlson.

        When a client calls removeCodedFrames(), we must re-enqueue those ranges if the removed samples overlap with
        enqueued but possibly un-displayed samples. Otherwise, replacement samples may lead to decode errors as those
        new samples dependencies are not met. But if we re-enqueue too frequently, this may cause subtle but noticible
        display timing glitches, so only re-enqueue when removeCodedFrames have a possiblity of removing enqueued, but
        not yet displayed samples.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::removeCodedFrames):

2014-07-17  David Kilzer  <ddkilzer@apple.com>

        SECTORDER_FLAGS should be defined in target's xcconfig file, not Base.xcconfig
        <http://webkit.org/b/135006>

        Reviewed by Darin Adler.

        * Configurations/Base.xcconfig: Move SECTORDER_FLAGS to
        WebCore.xcconfig.
        * Configurations/DebugRelease.xcconfig: Remove empty
        SECTORDER_FLAGS definition.
        * Configurations/WebCoreTestShim.xcconfig: Ditto.
        * Configurations/WebCoreTestSupport.xcconfig: Ditto.
        * Configurations/WebCore.xcconfig: Use $(CONFIGURATION) so
        SECTORDER_FLAGS is only set on Production builds.

2014-07-17  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Embedded non-compositing rotate transform paints to wrong position.
        https://bugs.webkit.org/show_bug.cgi?id=135028

        Reviewed by Simon Fraser.

        CTM always translates to where the layer's renderer() is going to paint.
        It ensures that the pixel snapped renderer() always end up painting to (0, 0) which is
        required to be able to position properly on transformed context.

        Test: fast/layers/hidpi-transform-on-child-content-is-mispositioned.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::clipToRect):
        (WebCore::RenderLayer::paintLayerByApplyingTransform):
        (WebCore::RenderLayer::paintBackgroundForFragments):
        (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
        (WebCore::RenderLayer::paintOutlineForFragments):
        (WebCore::RenderLayer::paintMaskForFragments):
        (WebCore::RenderLayer::paintOverflowControlsForFragments):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:

2014-07-17  Beth Dakin  <bdakin@apple.com>

        Fixed position elements are misplaced when a WK1 view has contentInsets set
        https://bugs.webkit.org/show_bug.cgi?id=135031
        -and corresponding-
        <rdar://problem/17682335>

        Reviewed by Tim Horton.

        [NSScrollView documentVisibleRect] is not the rect that we are looking for when 
        this function is called. WebCore is interested in the rect that does not include 
        content that is within the inset region.

        Implement contract() to avoid the awkwardness of calling expand() with negative 
        values.
        * platform/graphics/IntSize.h:
        (WebCore::IntSize::contract):

        Use _insetBounds instead of documentVisibleRect, and when it’s necessary to use 
        the frame’s dimensions, extract the inset from that size.
        * platform/mac/ScrollViewMac.mm:
        (WebCore::ScrollView::platformVisibleContentRect):
        (WebCore::ScrollView::platformVisibleContentSize):

2014-07-17  Enrica Casucci  <enrica@apple.com>

        [REGRESSION WK2]The menu bar does not show up when tapping on the caret.
        https://bugs.webkit.org/show_bug.cgi?id=135023
        <rdar://problem/17617282>

        Reviewed by Benjamin Poulain.

        Adding some exports.
        
        * WebCore.exp.in:

2014-07-17  Timothy Hatcher  <timothy@apple.com>

        Make console.profile record to the Timeline.

        https://bugs.webkit.org/show_bug.cgi?id=134643

        Reviewed by Joseph Pecoraro.

        Passes existing profiler tests in fast/profiler.

        * bindings/js/ScriptState.cpp:
        (WebCore::domWindowFromExecState):
        (WebCore::frameFromExecState):
        (WebCore::scriptExecutionContextFromExecState):
        (WebCore::mainWorldExecState):
        (WebCore::execStateFromNode):
        * bindings/js/ScriptState.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::profilerEnabled):
        (WebCore::InspectorController::setProfilerEnabled):
        * inspector/InspectorController.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::startProfilingImpl):
        (WebCore::InspectorInstrumentation::stopProfilingImpl):
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::didCreateFrontendAndBackend):
        (WebCore::InspectorTimelineAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorTimelineAgent::start):
        (WebCore::InspectorTimelineAgent::stop):
        (WebCore::startProfiling):
        (WebCore::stopProfiling):
        (WebCore::InspectorTimelineAgent::startFromConsole):
        (WebCore::InspectorTimelineAgent::stopFromConsole):
        (WebCore::InspectorTimelineAgent::didWriteHTML):
        (WebCore::InspectorTimelineAgent::breakpointActionProbe):
        (WebCore::toProtocol):
        (WebCore::InspectorTimelineAgent::addRecordToTimeline):
        (WebCore::InspectorTimelineAgent::didCompleteRecordEntry):
        (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        (WebCore::InspectorTimelineAgent::sendEvent):
        (WebCore::InspectorTimelineAgent::createRecordEntry):
        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
        * inspector/InspectorTimelineAgent.h:
        (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
        * inspector/InstrumentingAgents.cpp:
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (WebCore::InstrumentingAgents::reset):
        * inspector/InstrumentingAgents.h:
        (WebCore::InstrumentingAgents::persistentInspectorTimelineAgent):
        (WebCore::InstrumentingAgents::setPersistentInspectorTimelineAgent):
        * inspector/TimelineRecordFactory.cpp:
        (WebCore::TimelineRecordFactory::createConsoleProfileData):
        * inspector/TimelineRecordFactory.h:
        * inspector/protocol/Timeline.json:
        * page/PageConsole.cpp:
        (WebCore::PageConsole::profileEnd):

2014-07-16  Sam Weinig  <sam@webkit.org>

        Don't send geolocation permission requests when the page is not visible
        <rdar://problem/17208715>
        https://bugs.webkit.org/show_bug.cgi?id=134989

        Reviewed by Darin Adler.

        Instead of eagerly requesting geolocation permission for pages that aren't visible,
        store a set of pending requests, and send them only once the page has become visible.

        * Modules/geolocation/GeolocationController.cpp:
        (WebCore::GeolocationController::GeolocationController):
        (WebCore::GeolocationController::~GeolocationController):
        (WebCore::GeolocationController::requestPermission):
        (WebCore::GeolocationController::cancelPermissionRequest):
        (WebCore::GeolocationController::viewStateDidChange):
        (WebCore::provideGeolocationTo):
        * Modules/geolocation/GeolocationController.h:
        Store pending requests to be fired once the page is visible.

        * WebCore.xcodeproj/project.pbxproj:
        Add ViewStateChangeObserver.h

        * page/Page.cpp:
        (WebCore::Page::addViewStateChangeObserver):
        (WebCore::Page::removeViewStateChangeObserver):
        (WebCore::Page::setViewState):
        * page/Page.h:
        Add a set of registered view state observers, and notify them when the
        view state changes.

        * page/ViewStateChangeObserver.h: Added.
        (WebCore::ViewStateChangeObserver::~ViewStateChangeObserver):
        Add an observer that can register with the page for view state changes.

2014-07-17  Jer Noble  <jer.noble@apple.com>

        Enable legacy fullscreen API in media controls
        https://bugs.webkit.org/show_bug.cgi?id=134985

        Reviewed by Eric Carlson.

        Allow clients who have not enabled HTML5 Fullscreen APIs to still use fullscreen mode
        with <video> elements by using the legacy, video-element-specific fullscreen APIs in
        the <video> media controls.

        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller):
        (Controller.prototype.handleReadyStateChange):
        (Controller.prototype.isFullScreen):
        (Controller.prototype.handlePlayButtonClicked):
        (Controller.prototype.updateFullscreenButton):
        (Controller.prototype.handleFullscreenButtonClicked):

2014-07-17  Vineet Chaudhary  <code.vineet@gmail.com>

        [GObject] StrictTypeChecking extended attribute fails for methods with sequence<T>.
        https://bugs.webkit.org/show_bug.cgi?id=121698

        Reviewed by Antonio Gomes.

        GodeGenerator was including wrong heeaders as WebKitDOMlong[] for methods with
        array parameters and StrictTypeChecking extended attribute.
        No new tests. TestObj.idl covers the tests.

        * bindings/scripts/CodeGenerator.pm:
        (GetArrayOrSequenceType):
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateFunction):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_strict_function_with_array):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
        (webkit_dom_test_typedefs_func):
        (webkit_dom_test_typedefs_nullable_array_arg):
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
        * bindings/scripts/test/TestObj.idl:

2014-07-17  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: Clean up return path
        https://bugs.webkit.org/show_bug.cgi?id=135011

        Reviewed by Benjamin Poulain.

        Clean up the existing CSS JIT return path before adding new early return path
        for pseudo elements.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::StackReference::StackReference):
        (WebCore::StackAllocator::StackReference::isValid):
        (WebCore::StackAllocator::popAndDiscard): Deleted.

2014-07-16  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Adjust cliprect with devicePixelFractionFromRenderer() before painting.
        https://bugs.webkit.org/show_bug.cgi?id=134950
        <rdar://problem/17617994>

        Reviewed by Simon Fraser.

        The cliprect coming from the graphics layer needs to be adjusted with the subpixel gap
        from renderer. This is symmetric with the offsetting we do, when the dirty rect is sent off to the GraphicsLayer.
        It puts us back to the correct coordinating system for intersecting with renderers.

        Test: compositing/hidpi-compositing-layer-with-tile-layers-on-subpixel-position.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::clipToRect):

2014-07-16  Simon Fraser  <simon.fraser@apple.com>

        Fix a typo noticed by Darin.
        
        * rendering/RenderBox.cpp:
        (WebCore::shouldApplyContainersClipAndOffset):
        (WebCore::RenderBox::computeRectForRepaint):
        (WebCore::shouldAppyContainersClipAndOffset): Deleted.

2014-07-16  Simon Fraser  <simon.fraser@apple.com>

        Improve showTree() logging
        https://bugs.webkit.org/show_bug.cgi?id=134997

        Reviewed by Tim Horton.

        Have the debug showTree(), which dumps the Node/Element tree, show which nodes need
        style recalc, and print element renderers.

        * dom/Node.cpp:
        (WebCore::Node::showNode):

2014-07-16  Simon Fraser  <simon.fraser@apple.com>

        [iOS] Expose the points on WebEventRegion
        https://bugs.webkit.org/show_bug.cgi?id=134978

        Reviewed by Tim Horton.

        Expose WebEventRegion's points so that UIKit can get at them.

        * page/ios/WebEventRegion.h:
        * page/ios/WebEventRegion.mm:
        (-[WebEventRegion p1]):
        (-[WebEventRegion p2]):
        (-[WebEventRegion p3]):
        (-[WebEventRegion p4]):

2014-07-16  Brady Eidson  <beidson@apple.com>

        Add WebSecurityOrigin "webSecurityOriginFromDatabaseIdentifier" SPI and change _websiteDataURLForContainerWithURL: SPI
        <rdar://problem/17454712> and https://bugs.webkit.org/show_bug.cgi?id=134984

        Reviewed by Dan Bernstein.

        Change _websiteDataURLForContainerWithURL: SPI to include an optional bundle identifier argument:
        * UIProcess/API/Cocoa/WKProcessPool.mm:
        (+[WKProcessPool _websiteDataURLForContainerWithURL:bundleIdentifierIfNotInContainer:]):
        (+[WKProcessPool _websiteDataURLForContainerWithURL:]): Deleted.
        * UIProcess/API/Cocoa/WKProcessPoolPrivate.h:

        Add a big shiny comment in a few key places:
        * DatabaseProcess/DatabaseProcess.cpp:
        (WebKit::DatabaseProcess::initializeDatabaseProcess):
        * DatabaseProcess/IndexedDB/UniqueIDBDatabase.cpp:
        (WebKit::UniqueIDBDatabase::UniqueIDBDatabase):
        * UIProcess/WebContext.cpp:
        (WebKit::WebContext::applyPlatformSpecificConfigurationDefaults):
        (WebKit::WebContext::ensureDatabaseProcess):

2014-07-16  Roger Fong  <roger_fong@apple.com>

        Captions container should not clip content.
        https://bugs.webkit.org/show_bug.cgi?id=134840.
        <rdar://problem/14553608>.

        Reviewed by Simon Fraser.

        Tests: media/track/track-in-band-subtitles-too-large.html
               media/track/track-long-word-container-sizing.html

        * Modules/mediacontrols/mediaControlsApple.css:
        (video::-webkit-media-text-track-container):
        Set word break property of WebCTT cues to normal to make it consistent with in-band cues.
        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::applyCSSProperties):
        Set -webkit-min-content on min-width/min-height property of the text track display.
        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::applyCSSProperties):
        Do the same for WebVTT cues.

2014-07-16  Eric Carlson  <eric.carlson@apple.com>

        [Mac] replace AVPlayerItem on the main thread
        https://bugs.webkit.org/show_bug.cgi?id=134983

        Reviewed by Jer Noble.

        No new tests, this fixes a problem with a thread configuration not present in the
        test environment.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setAVPlayerItem): New, when called off of 
            the main thread, dispatch to the main thread before setting AVPlayerItem.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Call setAVPlayerItem.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldBufferData): Ditto.

2014-07-16  Jer Noble  <jer.noble@apple.com>

        [MSE] http/tests/media/media-source/mediasource-buffered.html is flakey
        https://bugs.webkit.org/show_bug.cgi?id=134949

        Reviewed by Eric Carlson.

        Depending on which SourceBuffer is successfully parsed first, the order of activeSourceBuffers
        may change from run to run, breaking the http/tests/media/media-source/mediasource-buffered.html
        test. Make the order of activeSourceBuffers the same as (a subset of) sourceBuffers, by replacing
        calls to activeSourceBuffers->add() and with a new call to regenerateActiveSourceBuffers(), which
        swaps the contents of the SourceBufferList with a new, ordered Vector.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::addSourceBuffer):
        (WebCore::MediaSource::sourceBufferDidChangeAcitveState):
        (WebCore::MediaSource::regenerateActiveSourceBuffers):
        * Modules/mediasource/MediaSource.h:
        * Modules/mediasource/SourceBufferList.cpp:
        (WebCore::SourceBufferList::swap):
        * Modules/mediasource/SourceBufferList.h:

2014-07-16  Mike West  <mkwst@chromium.org>

        CSP: Drop 'script-nonce' directive.
        https://bugs.webkit.org/show_bug.cgi?id=134926

        Reviewed by Darin Adler.

        This patch drops the outdated 'script-nonce' Content Security
        Policy directive. It was removed from the spec, and replaced in
        CSP2 with a new 'script-src' syntax. We should implement that
        instead.

        Until then, removing the outdated syntax will ensure that no one
        ends up relying on it in WebKit's implementation.

        This should have limited web-visible impact, as the feature is
        behind the CSP_NEXT flag, which is not enabled by default.

        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::requestScript):
        (WebCore::ScriptElement::executeScript):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::CSPDirectiveList::allowJavaScriptURLs):
        (WebCore::CSPDirectiveList::allowInlineEventHandlers):
        (WebCore::CSPDirectiveList::addDirective):
        (WebCore::NonceDirective::NonceDirective): Deleted.
        (WebCore::NonceDirective::allows): Deleted.
        (WebCore::NonceDirective::parse): Deleted.
        (WebCore::CSPDirectiveList::checkNonce): Deleted.
        (WebCore::CSPDirectiveList::checkNonceAndReportViolation): Deleted.
        (WebCore::CSPDirectiveList::allowScriptNonce): Deleted.
        (WebCore::isAllowedByAllWithNonce): Deleted.
        (WebCore::ContentSecurityPolicy::allowScriptNonce): Deleted.
        (WebCore::ContentSecurityPolicy::reportInvalidNonce): Deleted.
        * page/ContentSecurityPolicy.h:

2014-07-16  Jer Noble  <jer.noble@apple.com>

        REGRESSION(r171069) 75% repro crash in WebCore::AudioHardwareListenerMac::processIsRunningChanged()
        https://bugs.webkit.org/show_bug.cgi?id=134986

        Reviewed by Eric Carlson.

        Add a WeakPtrFactory to AudioHardwareListenerMac, so that if CoreAudio calls our block after
        being unregistered, we can bail early instead of calling into a deleted object.

        * platform/audio/mac/AudioHardwareListenerMac.cpp:
        (WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac):
        * platform/audio/mac/AudioHardwareListenerMac.h:

2014-07-16  Jer Noble  <jer.noble@apple.com>

        [MSE] REGRESSION(r171033): ASSERT in WebCore::MediaSource::onReadyStateChange()
        https://bugs.webkit.org/show_bug.cgi?id=134941

        Reviewed by Eric Carlson.

        Only do our modified-order change of the readyState if the error parameter is empty,
        as that's the only case where a duration change will cause an inadvertant readyState
        change.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::streamEndedWithError):

2014-07-16  Alexey Proskuryakov  <ap@apple.com>

        Remove svn:executable property erroneously added in <http://trac.webkit.org/changeset/171144> somehow.

        * ChangeLog: Removed property svn:executable.
        * svg/SVGSVGElement.h: Removed property svn:executable.
        * svg/animation/SVGSMILElement.h: Removed property svn:executable.

2014-07-16  Daniel Bates  <dabates@apple.com>

        Substitute CGRectZero for NSZeroRect in -[DOMNode hrefFrame].

        Rubber-stamped by Zalan Bujtas.

        The method -[DOMNode hrefFrame] returns a CGRect. So, when we don't have a renderer
        we should return CGRectZero instead of a NSZeroRect.

        * bindings/objc/DOM.mm:
        (-[DOMNode hrefFrame]): Also, fix up some code style issues.

2014-07-16  Jeongeun Kim  <je_julie.kim@samsung.com>

        mutable pointers from const methods, timeContainer().
        https://bugs.webkit.org/show_bug.cgi?id=134757

        Reviewed by Alexey Proskuryakov.

        Avoid return mutable pointers from const methods.
        No new tests, no behavior change.

        * svg/SVGSVGElement.h:
        * svg/animation/SVGSMILElement.h:
        (WebCore::SVGSMILElement::timeContainer):

2014-07-15  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS: Generalize CSS First Letter treatment
        https://bugs.webkit.org/show_bug.cgi?id=134936

        Reviewed by Benjamin Poulain.

        first-letter pseudo element rule is handled differently from the other rules
        such as first-line. This patch removes this special handling in SelectorChecker
        and handles it in RulesFeatureSet.

        * css/RuleFeature.cpp:
        (WebCore::RuleFeatureSet::collectFeaturesFromSelector):
        (WebCore::RuleFeatureSet::add):
        (WebCore::RuleFeatureSet::clear):
        * css/RuleFeature.h:
        (WebCore::RuleFeatureSet::RuleFeatureSet):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::usesFirstLetterRules):
        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::combineCSSFeatureFlags):
        (WebCore::DocumentStyleSheetCollection::resetCSSFeatureFlags):
        * dom/DocumentStyleSheetCollection.h:
        (WebCore::DocumentStyleSheetCollection::setUsesFirstLetterRules): Deleted.

2014-07-15  Simon Fraser  <simon.fraser@apple.com>

        Fix non-iOS builds.

        * rendering/RenderBox.cpp:
        (WebCore::shouldAppyContainersClipAndOffset):

2014-07-15  Simon Fraser  <simon.fraser@apple.com>

        [iOS] Fix touches inside accelerated overflow:scroll
        https://bugs.webkit.org/show_bug.cgi?id=134961
        <rdar://problem/16088789>

        Reviewed by Benjamin Poulain.

        When individual elements inside an overflow:scroll with -webkit-overflow-scrolling: touch
        had touch event listeners, we would fail to take the scroll offset into account when
        building the touch event region, causing touches on those elements to fail after scrolling.
        
        Touch event region building uses RenderObject::absoluteClippedOverflowRect(), and that
        code path tries to fix up repaint rects to work correctly in composited overflow:scroll.
        However, that broke the touch region computation.
        
        Fix by only ignoring the scroll offset for calls to computeRectForRepaint() which
        have a non-null repaintContainer (which indicates that we're doing a repaint in the
        compositing layer), and for which the repaintContainer is the containing block
        which is using composited scrolling. This restores correct behavior to the event region
        code which always calls this with a null repaintContainer.

        * rendering/RenderBox.cpp:
        (WebCore::shouldAppyContainersClipAndOffset):
        (WebCore::RenderBox::computeRectForRepaint):

2014-07-15  Simon Fraser  <simon.fraser@apple.com>

        [iOS] Fix issues drawing subsampled image elements and CSS images
        https://bugs.webkit.org/show_bug.cgi?id=134944
        <rdar://problem/17634095>

        Reviewed by Dean Jackson.

        After r170675 it is important for BitmapImage::draw() to be given a srcRect computed
        using the original size of the image, not the subsampled size.
        
        So fix various code paths that end up in image drawing to use the originalSize(),
        which requires giving Image a virtual function that just returns size(), and hence has
        a FloatSize return value.
        
        Tested by setting a very low subsampling threshold and browsing various sites.
        
        A better longterm fix will happen via bug 134916.

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::originalSize):
        * platform/graphics/BitmapImage.h:
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        * platform/graphics/Image.cpp:
        (WebCore::Image::drawTiled):
        (WebCore::Image::computeIntrinsicDimensions):
        * platform/graphics/Image.h:
        (WebCore::Image::originalSize):
        * platform/graphics/cg/BitmapImageCG.cpp:
        (WebCore::BitmapImage::BitmapImage): Just use m_size for initializing the other members.
        (WebCore::BitmapImage::draw):
        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage):
        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::Image::drawPattern):

2014-07-15  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix after r171069.

        Add missing AudioHardwareListener implementation on Windows.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:

2014-07-15  Antti Koivisto  <antti@apple.com>

        REGRESSION (r155957): Invalid cast in WebCore::RenderNamedFlowThread::getRanges
        https://bugs.webkit.org/show_bug.cgi?id=134888

        Reviewed by Mihnea Ovidenie.

        Test: fast/regions/flowthread-getranges-box-cast.html

        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::getRanges): Test the type before casting.

2014-07-15  Carlos Alberto Lopez Perez  <clopez@igalia.com>

        [GTK] Update GObject DOM bindings symbols file after r171014.
        https://bugs.webkit.org/show_bug.cgi?id=134907

        Reviewed by Philippe Normand.

        * bindings/gobject/webkitdom.symbols: Update to the current API.

2014-07-15  Manuel Rego Casasnovas  <rego@igalia.com>

        Unreviwed fix wrong indentation from r171082.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):

2014-07-14  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Zero sized compositing container's content positioned off by one device pixel.
        https://bugs.webkit.org/show_bug.cgi?id=134903

        Reviewed by Simon Fraser.

        The compositing layer boundaries are calculated using its renderer()'s and the renderer()'s
        descendants' bounds. However when the renderer() is zero sized, its bounds are omitted.
        In such cases, when the child content has offset from the renderer(), the subpixel adjustment
        of the compositing layer becomes negative (-meaning that the compositing layer is to the right/bottom
        direction from its renderer()). Remove fabs() to be able to express such direction.

        Test: compositing/hidpi-compositing-layer-with-zero-sized-container.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGeometry):

2014-07-14  Jeremy Jones  <jeremyj@apple.com>

        Fix crash on WebVideoFullscreenManagerProxy construction.
        https://bugs.webkit.org/show_bug.cgi?id=134909

        Unreviewed fix crash from r171089

        Remove unnecessary dispatch to main queue since it can happen during construction.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): remove dispatch_async

2014-07-14  Jeremy Jones  <jeremyj@apple.com>

        WebVideoFullscreenInterfaceAVKit should only call the UI from main thread.
        https://bugs.webkit.org/show_bug.cgi?id=134890

        Reviewed by Eric Carlson.

        dispatch_async to the main thread before setting properties that would affect the UI.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel): wrap in call to dispatch_async
        (WebVideoFullscreenInterfaceAVKit::setDuration): ditto
        (WebVideoFullscreenInterfaceAVKit::setCurrentTime): ditto
        (WebVideoFullscreenInterfaceAVKit::setRate): ditto
        (WebVideoFullscreenInterfaceAVKit::setVideoDimensions): ditto
        (WebVideoFullscreenInterfaceAVKit::setSeekableRanges): ditto
        (WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions): ditto
        (WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions): ditto
        (WebVideoFullscreenInterfaceAVKit::setExternalPlayback): ditto

2014-07-14  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>

        Fix the !ENABLE(FILTERS) && !ENABLE(CSS_FILTERS) build after r167497
        https://bugs.webkit.org/show_bug.cgi?id=134679

        Reviewed by Darin Adler.

        * html/ImageData.cpp:
        * platform/graphics/cairo/ImageBufferCairo.cpp:

2014-07-14  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Support sparse in auto-placement algorithm
        https://bugs.webkit.org/show_bug.cgi?id=134544

        Reviewed by Sergio Villar Senin.

        This patch implements sparse mode for auto-placement algorithm, which is
        the default mode in the new grid-auto-flow syntax. It keeps track of the
        auto-placement cursor in
        RenderGrid::placeAutoMajorAxisItemsOnGrid() and updates it accordingly
        when auto-positioned items are placed.
        If we're in dense mode it resets the cursor after each item (which keeps
        the old behavior that was using dense mode by default).

        GridIterator has been adapted to look for empty areas from a given
        position in both directions.

        Test: fast/css-grid-layout/grid-auto-flow-sparse.html

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::GridIterator::GridIterator): Modify constructor to
        add an optional argument for the varying index. This allows to look for
        empty areas in both axis.
        (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Defined the
        auto-placement cursor and rested after each item if we're in dense mode.
        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Use auto-placement
        cursor to look for empty areas from the last auto-positioned item
        placed.
        * rendering/RenderGrid.h: Modify placeAutoMajorAxisItemOnGrid() header
        to receive the auto-placement cursor.

2014-07-14  Brent Fulgham  <bfulgham@apple.com>

        [iOS] Some videos play as inline audio-only content
        https://bugs.webkit.org/show_bug.cgi?id=134898.
        <rdar://problem/17629379>

        Reviewed by Eric Carlson.

        Add a new 'presentationType' accessor that indicates if the media
        element is playing in 'audio' mode. This can happen if a video
        element plays an HLS stream that starts off in audio-only mode.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::presentationType): Added.
        * html/HTMLMediaElement.h:
        * platform/audio/MediaSession.cpp:
        (WebCore::MediaSession::presentationType): Added.
        * platform/audio/MediaSession.h:
        * platform/audio/MediaSessionManager.cpp: 
        (WebCore::MediaSessionManager::sessionRestrictsInlineVideoPlayback):
        Use the presentationType, rather than the mediaType to control
        inline playback behavior.
        * platform/audio/ios/AudioDestinationIOS.h:
        (WebCore::AudioDestinationMac::presentationType): Add presentationType.
        * platform/audio/mac/AudioDestinationMac.h:
        (WebCore::AudioDestinationMac::presentationType): Ditto.

2014-07-14  Bear Travis  <betravis@adobe.com>

        [Feature Queries] Enable Feature Queries on Mac
        https://bugs.webkit.org/show_bug.cgi?id=134404

        Reviewed by Antti Koivisto.

        Enable Feature Queries on Mac and resume running the
        feature tests.

        * Configurations/FeatureDefines.xcconfig: Turn on
        ENABLE_CSS3_CONDITIONAL_RULES.

2014-07-11  David Hyatt  <hyatt@apple.com>

        <rdar://problem/17305458> Cannot interact with video controls in ePubs
        Bug 134836 - [New Multicolumn] Crawl to check for compositing between us and the enclosingPaginationLayer
        https://bugs.webkit.org/show_bug.cgi?id=134836

        Reviewed by Dean Jackson.

        The paginatedAndComposited bit being set in updateLayerPositions just didn't work, since compositing states
        can change without triggering that function. This patch just gets rid of the bit and does a crawl every time
        to check. This ensures that changes in compositing states don't necessitate any changes in pagination,
        since the lookup will always check the current compositing state.
        
        The new function that does this check is hasCompositedLayerInEnclosingPaginationChain.
        
        I have been unable to reproduce this issue, and this is therefore a purely speculative fix. I have no test
        case to provide because of this.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::hasCompositedLayerInEnclosingPaginationChain):
        (WebCore::RenderLayer::updatePagination):
        * rendering/RenderLayer.h:

2014-07-14  Zalan Bujtas  <zalan@apple.com>

        Move composite bounds calculation to RenderLayerBacking.
        https://bugs.webkit.org/show_bug.cgi?id=134864

        Reviewed by Darin Adler.

        No change in functionality.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateCompositedBounds):
        * rendering/RenderLayerCompositor.cpp: it was just proxying the calculateLayerBounds()
        to the RenderLayer.
        (WebCore::RenderLayerCompositor::calculateCompositedBounds): Deleted.
        * rendering/RenderLayerCompositor.h:

2014-07-14  Tim Horton  <timothy_horton@apple.com>

        Fix the build.

        * platform/audio/MediaSessionManager.h:

2014-07-14  Eric Carlson  <eric.carlson@apple.com>

        [Mac] don't enable low power audio mode on external output devices
        https://bugs.webkit.org/show_bug.cgi?id=134877

        Reviewed by Sam Weinig.

        No new tests, this deals with changes to the audio hardware at runtime.

        * WebCore.xcodeproj/project.pbxproj: Remove AudioSessionListener.h.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.

        * platform/audio/AudioHardwareListener.cpp:
        (WebCore::AudioHardwareListener::AudioHardwareListener): Initialize m_outputDeviceSupportsLowPowerMode
            to true on iOS.
        * platform/audio/AudioHardwareListener.h:
        (WebCore::AudioHardwareListener::outputDeviceSupportsLowPowerMode): New accessor.
        (WebCore::AudioHardwareListener::setHardwareActivity): New setter for derived classes.
        (WebCore::AudioHardwareListener::setOutputDeviceSupportsLowPowerMode): Ditto.

        Remove AudioSessionListener interface, it wasn't being used.
        * platform/audio/AudioSession.cpp:
        (WebCore::AudioSession::addListener): Deleted.
        (WebCore::AudioSession::removeListener): Deleted.
        (WebCore::AudioSession::beganAudioInterruption): Deleted.
        (WebCore::AudioSession::endedAudioInterruption): Deleted.
        * platform/audio/AudioSession.h:
        * platform/audio/AudioSessionListener.h: Removed.

        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::addSession): Allocate the AudioHardwareListener if necessary.
        (WebCore::MediaSessionManager::removeSession): Free the AudioHardwareListener if necessary.
        (WebCore::MediaSessionManager::audioOutputDeviceChanged): AudioHardwareListener client interface
            called when the output device changes, call updateSessionState to make sure we are using
            the correct buffer size.
        * platform/audio/MediaSessionManager.h:

        * platform/audio/ios/AudioDestinationIOS.h:
        * platform/audio/ios/AudioSessionIOS.mm:
        (WebCore::AudioSessionPrivate::AudioSessionPrivate): Drive-by cleanup, remove ObjC helper object
            that was used to listen for OS notifications, it is no longer used.
        (SOFT_LINK_POINTER): Deleted.
        (-[WebAudioSessionHelper initWithCallback:]): Deleted.
        (-[WebAudioSessionHelper dealloc]): Deleted.
        (-[WebAudioSessionHelper interruption:]): Deleted.

        * platform/audio/mac/AudioHardwareListenerMac.cpp:
        (WebCore::currentDeviceSupportsLowPowerBufferSize): New, return true only if using build-in 
            transport device.
        (WebCore::processIsRunningPropertyDescriptor): Return reference to static AudioObjectPropertyAddress
            for kAudioHardwarePropertyProcessIsRunning instead of declaring one in every method
            that needs one.
        (WebCore::outputDevicePropertyDescriptor): Return reference to static AudioObjectPropertyAddress
            for kAudioHardwarePropertyDefaultOutputDevice.
        (WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac): Restructure and add audio object
            listener for default output device.
        (WebCore::AudioHardwareListenerMac::~AudioHardwareListenerMac): *Remove* listener audio object
            property listener instead of *Adding* a new one. Remove new listener.
        (WebCore::AudioHardwareListenerMac::propertyChanged): Enumerate the properties that changed,
            call appropriate method.
        (WebCore::AudioHardwareListenerMac::processIsRunningChanged): Renamed from setHardwareActive, 
            cleanup.
        (WebCore::AudioHardwareListenerMac::outputDeviceChanged): New, call client.audioHardwareOutputDeviceChanged.
        (WebCore::AudioHardwareListenerMac::setHardwareActive): Deleted, renamed processIsRunningChanged.
        * platform/audio/mac/AudioHardwareListenerMac.h:

        * platform/audio/mac/MediaSessionManagerMac.cpp:
        (MediaSessionManager::updateSessionState): Only set the output buffer size to 4K when hardware
            supports it.

2014-07-13  Benjamin Poulain  <benjamin@webkit.org>

        Remove SelectorCheckerFastPath from the style resolution algorithm
        https://bugs.webkit.org/show_bug.cgi?id=134866

        Reviewed by Antti Koivisto.

        SelectorCheckerFastPath is now pure overhead because it can almost never match
        if the CSS JIT was unable to compile.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        The "pre-filter" behind fastCheckableSelector had two parts:
        1) Filtering the pseudoID.
        2) Filtering on the rule hash.

        The first part has been generalized (RuleDatacanMatchPseudoElement())
        and moved to collectMatchingRulesForList(). 

        (WebCore::ElementRuleCollector::collectMatchingRulesForList):
        * css/RuleSet.cpp:
        (WebCore::selectorCanMatchPseudoElement):
        (WebCore::RuleData::RuleData):
        (WebCore::RuleSet::addRegionRule):
        (WebCore::RuleSet::addRulesFromSheet):
        * css/RuleSet.h:
        (WebCore::RuleData::canMatchPseudoElement):
        (WebCore::RuleData::hasFastCheckableSelector): Deleted.
        * css/StyleResolver.cpp:

2014-07-13  Benjamin Poulain  <benjamin@webkit.org>

        Remove an useless check from SelectorChecker
        https://bugs.webkit.org/show_bug.cgi?id=134868

        Reviewed by Darin Adler.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):
        The condition of this if() branch can never be met for the mode "QueryingRules".

        The next condition in that if() is "dynamicPseudo != NOPSEUDO", which implies
        a pseudo element was matched prior to the current context/simple selector.
        This cannot happen with QueryingRules, since we never match pseudo elements for
        SelectorQuery.

2014-07-12  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>

        Elements with rendering disabled due to dimensions should not contribute to parent bounding box
        https://bugs.webkit.org/show_bug.cgi?id=134184

        Reviewed by Dirk Schulze.

        SVG elements that have rendering disabled should not contribute to any ancestor elements bounding box.
        Examples of elements with rendering disabled:
        - basic shape with width <= 0 or height <= 0
        - path with no path data (d attribute missing or empty)
        - polyline or polygon element with no point data (points attribute missing or empty)

        To achieve this a method (isRenderingDisabled) was added to RenderSVGShape and it's derived classes.
        This is used to determine if an element is included when creating the union of child bounding boxes
        in a container element.

        Tests: svg/custom/GetBBox-path-nodata.html
               svg/custom/GetBBox-polygon-nodata.html
               svg/custom/GetBBox-polyline-nodata.html
               svg/custom/getBBox-container-hiddenchild.html

        * rendering/svg/RenderSVGEllipse.cpp:
        (WebCore::RenderSVGEllipse::isRenderingDisabled):
        New method added. Checks bounding box to determine if rendering is disabled.
        * rendering/svg/RenderSVGEllipse.h:
        * rendering/svg/RenderSVGPath.cpp:
        (WebCore::RenderSVGPath::isRenderingDisabled):
        New method added. Checks bounding box to determine if rendering is disabled.
        * rendering/svg/RenderSVGPath.h:
        * rendering/svg/RenderSVGRect.cpp:
        (WebCore::RenderSVGRect::isRenderingDisabled):
        New method added. Checks bounding box to determine if rendering is disabled.
        * rendering/svg/RenderSVGRect.h:
        * rendering/svg/RenderSVGShape.h:
        (WebCore::RenderSVGShape::isRenderingDisabled):
        New method added. Always returns false so that derived classes that do not
        implement this method retain the existing behaviour.
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::computeContainerBoundingBoxes):
        For each element potentially being included in the unioned bounding box of
        a container, check isRenderingDisabled and skip that element if true.

        * rendering/svg/RenderSVGEllipse.cpp:
        (WebCore::RenderSVGEllipse::isRenderingDisabled):
        * rendering/svg/RenderSVGEllipse.h:
        * rendering/svg/RenderSVGPath.cpp:
        (WebCore::RenderSVGPath::isRenderingDisabled):
        * rendering/svg/RenderSVGPath.h:
        * rendering/svg/RenderSVGRect.cpp:
        (WebCore::RenderSVGRect::isRenderingDisabled):
        * rendering/svg/RenderSVGRect.h:
        * rendering/svg/RenderSVGShape.h:
        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::computeContainerBoundingBoxes):

2014-07-12  Benjamin Poulain  <benjamin@webkit.org>

        Rename selectorListContainsUncommonAttributeSelector() to selectorListContainsAttributeSelector()
        https://bugs.webkit.org/show_bug.cgi?id=134862

        Reviewed by Sam Weinig.

        Unlike containsUncommonAttributeSelector(), selectorListContainsUncommonAttributeSelector() does not
        evaluate the attribute for "uncommon" types.

        It would be possible to change the function instead to evaluate common attributes based
        on the match type and the pseudo class type. Such change would be more risky
        and we would get very little benefit from it, I leave that for later if that ever becomes useful.

        * css/RuleSet.cpp:
        (WebCore::selectorListContainsAttributeSelector):
        (WebCore::containsUncommonAttributeSelector):
        (WebCore::selectorListContainsUncommonAttributeSelector): Deleted.

2014-07-12  Zan Dobersek  <zdobersek@igalia.com>

        Use braced-init-list to create one-item Vector object in insertPerformanceEntry
        https://bugs.webkit.org/show_bug.cgi?id=133675

        Reviewed by Darin Adler.

        * page/PerformanceUserTiming.cpp:
        (WebCore::insertPerformanceEntry): Avoid wasting three lines for creating a
        Vector object with just one item that in the end gets copied. Use the
        braced-init-list syntax instead, leveraging Vector's std::initializer_list
        constructor.

2014-07-12  Allan Sandfeld Jensen  <allan.jensen@digia.com>

        Memory leaks with autoLoadImages off
        https://bugs.webkit.org/show_bug.cgi?id=124411

        Reviewed by Darin Adler.

        Do not emit notifyFinished for images with deferred load,
        and allow deferred loads to be cancelled.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::checkNotify):
        (WebCore::CachedResource::cancelLoad):

2014-07-11  Jer Noble  <jer.noble@apple.com>

        [MSE] http/tests/media/media-source/mediasource-duration.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=134852

        Reviewed by Eric Carlson.

        Fixes the following tests:
        http/tests/media/media-source/mediasource-config-change-mp4-a-bitrate.html
        http/tests/media/media-source/mediasource-config-change-mp4-av-audio-bitrate.html
        http/tests/media/media-source/mediasource-config-change-mp4-av-video-bitrate.html
        http/tests/media/media-source/mediasource-config-change-mp4-v-bitrate.html
        http/tests/media/media-source/mediasource-config-change-mp4-v-framerate.html
        http/tests/media/media-source/mediasource-duration.html
        http/tests/media/media-source/mediasource-play.html

        The primary change necessary to fix the mediasource-duration.html test was to add support
        for delaying the completion of a seek operation until the HTMLMediaElement's readyState
        rises to > HAVE_CURRENT_DATA. This is accomplished by modifying MediaSourcePrivate to have
        waitForSeekCompleted() and seekCompleted() virtual methods. These are called by MediaSource
        when a seek operation results in the current time moving outside the currently buffered time
        ranges, and when an append operation results in the readyState changing, respectively.

        A number of other drive-by fixes were necessary to get this test fully passing, as noted
        below.

        Make the MediaSource the primary owner of the media's duration, rather than the MediaSourcePrivate.
        Move the MediaSourcePrivateClient pointer to the MediaSourcePrivate from the MediaPlayerPrivate, so
        the MediaSource's duration can be retrieved.  While we're at it, do the same thing for buffered.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::MediaSource): Initialize m_duration.
        (WebCore::MediaSource::duration): Simple accessor.
        (WebCore::MediaSource::setDurationInternal): Bring 'duration change algorithm' up to spec.
        (WebCore::MediaSource::setReadyState): Reset m_duration on close.
        * Modules/mediasource/MediaSource.h:
        * platform/graphics/MediaSourcePrivate.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::load): Do not call setPrivateAndOpen().
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationDouble): Pass through to MediaSourcePrivateAVFObjC.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Ditto.
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
        (WebCore::MediaSourcePrivateAVFObjC::create): Call setPrivateAndOpen().
        (WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC): Set m_client.
        (WebCore::MediaSourcePrivateAVFObjC::duration): Pass through to MediaSourcePrivateClient.
        (WebCore::MediaSourcePrivateAVFObjC::buffered): Ditto.
        (WebCore::MediaSourcePrivateAVFObjC::durationChanged): Pass through to MediaPlayerPrivateMediaSourceAVFObjC.
        (WebCore::MediaSourcePrivateAVFObjC::setDuration): Deleted.
        * platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
        (WebCore::MediaSourceGStreamer::open): Pass in MediaSourcePrivateClient.
        (WebCore::MediaSourceGStreamer::MediaSourceGStreamer): Initialize m_mediaSource.
        (WebCore::MediaSourceGStreamer::durationChanged): Retrieve the duration from MediaSourcePrivateClient.
        (WebCore::MediaSourceGStreamer::markEndOfStream): Remove unnecssary ASSERT.
        (WebCore::MediaSourceGStreamer::unmarkEndOfStream): Ditto.
        (WebCore::MediaSourceGStreamer::setDuration): Deleted.
        * platform/graphics/gstreamer/MediaSourceGStreamer.h:
        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
        (WebCore::MockMediaPlayerMediaSource::load): Do not call setPrivateAndOpen().
        (WebCore::MockMediaPlayerMediaSource::buffered): Pass through to MockMediaSourcePrivate.
        (WebCore::MockMediaPlayerMediaSource::durationDouble): Ditto.
        (WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.
        * platform/mock/mediasource/MockMediaSourcePrivate.cpp:
        (WebCore::MockMediaSourcePrivate::create): Call setPrivateAndOpen().
        (WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate): Set m_client.
        (WebCore::MockMediaSourcePrivate::duration): Pass through to MediaSourcePrivateClient.
        (WebCore::MockMediaSourcePrivate::buffered): Ditto.
        (WebCore::MockMediaSourcePrivate::durationChanged): Pass thorugh to MockMediaPlayerMediaSource.
        (WebCore::MockMediaSourcePrivate::setDuration): Deleted.

        Route seekToTime through MediaSource, rather than through MediaSourcePrivate, so that
        the time can be compared against the buffered ranges, and trigger the delay of the seek
        operation if necessary. Add a seekTimer to MediaPlayerPrivateMediaSourceAVFObjC, as this
        guarantees the order of asynchronous operations, rather than callOnMainThread, which can
        cause async operations to occur out of order.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::seekToTime): Bring up to spec.
        (WebCore::MediaSource::completeSeek): Ditto.
        (WebCore::MediaSource::monitorSourceBuffers): Call completeSeek() when appropriate.
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime): Deleted.
        (WebCore::SourceBuffer::seekToTime): Renamed from sourceBufferPrivateSeekToTime().
        * platform/graphics/MediaSourcePrivate.h:
        * platform/graphics/MediaSourcePrivateClient.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): Add seekTimer. Only
            call timeChanged() if no longer seeking, thereby triggering a 'seeked' event.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC): Clear m_seekTimer.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance): Use m_seekTimer.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekTimerFired): Call seekInternal.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal): Add logging.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::waitForSeekCompleted): Added.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekCompleted): Added; trigger 'seeked'.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): No longer attempt to finish seek when
            readyState changes here; this has been moved up to MediaSource.cpp.
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
        (WebCore::MediaSourcePrivateAVFObjC::waitForSeekCompleted): Pass through to MediaPlayerPrivateMediaSourceAVFObjC.
        (WebCore::MediaSourcePrivateAVFObjC::seekCompleted): Ditto.
        (WebCore::MediaSourcePrivateAVFObjC::seekToTime): Pass through to MediaSourcePrivateClient.
        (WebCore::MediaSourcePrivateAVFObjC::fastSeekTimeForMediaTime): Ditto.
        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
        (WebCore::MockMediaPlayerMediaSource::MockMediaPlayerMediaSource): Initialize m_seekCompleted.
        (WebCore::MockMediaPlayerMediaSource::seeking): Check for an uncompleted seek operation. 
        (WebCore::MockMediaPlayerMediaSource::seekWithTolerance): Ditto.
        (WebCore::MockMediaPlayerMediaSource::waitForSeekCompleted): Added.
        (WebCore::MockMediaPlayerMediaSource::seekCompleted): Added; trigger 'seeked'.
        * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
        * platform/mock/mediasource/MockMediaSourcePrivate.cpp:
        (WebCore::MockMediaSourcePrivate::waitForSeekCompleted): Pass through to MockMediaPlayerMediaSource.
        (WebCore::MockMediaSourcePrivate::seekCompleted): Ditto.
        * platform/mock/mediasource/MockMediaSourcePrivate.h:

        Drive-by fixes.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::streamEndedWithError): Re-order the steps in streamEndedWithError()
            to avoid the MediaSource being closed and re-opened by the resulting duration change
            operation.
        * Modules/mediasource/MediaSource.h:
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::remove): Added logging.
        (WebCore::SourceBuffer::removeCodedFrames): Ditto.
        (WebCore::SourceBuffer::hasFutureTime): Swap an ASSERT for an early-return; it's possible
            for currentTime() to be outside of a buffered area.
        * Modules/mediasource/SourceBuffer.h:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute): Do not issue an additional 'timeupdate' event
            after finishSeek() issues one of its own.
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::globalDataParserQueue): Allow parsing operations to happen concurrently on
            background queues.

2014-07-12  Eric Carlson  <eric.carlson@apple.com>

        [iOS] update control type when playback state changes
        https://bugs.webkit.org/show_bug.cgi?id=134856

        Reviewed by Dean Jackson.

        Check to make sure the correct type of media controls are showing when playback state
        changes so we don't end up with the wrong type of controls during playback.

        * Modules/mediacontrols/mediaControlsApple.js: 
        (Controller.prototype.HandledVideoEvents): Drive-by fix, call handlePlay on 'playing' instead
            of 'play' so controls don't hide too early.
        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.setPlaying): New, call updateControls to make sure inline
            controls are shown when appropriate.

2014-07-12  Dean Jackson  <dino@apple.com>

        [iOS Media] Start playback button should indicate when it can't play
        https://bugs.webkit.org/show_bug.cgi?id=134851

        Post-commit review with Eric Carlson on IRC.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.updateStatusDisplay): Remove the line that sets the
        class on the inline play button.

2014-07-11  Dean Jackson  <dino@apple.com>

        [iOS Media] Start playback button should indicate when it can't play
        https://bugs.webkit.org/show_bug.cgi?id=134851

        Reviewed by Sam Weinig.

        If a video element has errors and cannot play, then the start
        playback button should use the "broken" icon.

        * Modules/mediacontrols/mediaControlsApple.js: Add a new "failed" class.
        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.shouldHaveStartPlaybackButton): We need a playback button
        even when there is an error.
        (ControllerIOS.prototype.handleWirelessPickerButtonTouchStart): Don't offer Airplay
        if we're in an error state.
        (ControllerIOS.prototype.updateStatusDisplay): Set the "failed" class on
        the playback buttons if we are in an error state.

2014-07-11  Benjamin Poulain  <benjamin@webkit.org>

        Partition the CSS rules based on the most specific filter of the rightmost fragment
        https://bugs.webkit.org/show_bug.cgi?id=134828

        Reviewed by Andreas Kling.

        Previously, RuleSet was partitioning each rule based on the rightmost filter.
        While fast, this had the side effect of putting many selectors with ID match in the class
        bucket (because the selectors are generally written starting with the ID).

        This patch replace the code of findBestRuleSetAndAdd() by a simple loop going over all
        the simple selectors in the rightmost fragment to find the best bucket.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        * css/RuleSet.cpp:
        (WebCore::isSelectorMatchingHTMLBasedOnRuleHash):
        I unified ruleData.hasRightmostSelectorMatchingHTMLBasedOnRuleHash() and hasMultipartSelector().

        (WebCore::RuleData::RuleData):
        (WebCore::rulesCountForName):
        (WebCore::RuleSet::addRule):
        I removed the recursive part of findBestRuleSetAndAdd() (which was wrong anyway). The function
        was useless so I just moved the algorithm to addRule() directly.

        We first loop over all the CSSSelectors related by SubSelector, this correspond to the rightmost fragment.
        If a filter with high specificity is found, we add the rule immediately and end there.
        If a filter that is not very specific is found, we keep a pointer to the selector to use it later.

        (WebCore::RuleSet::findBestRuleSetAndAdd): Deleted.
        * css/RuleSet.h:
        (WebCore::RuleData::hasMultipartSelector): Deleted.

2014-07-11  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Unreviewed build fix after r170937.

        * WebCore.vcxproj/WebCoreGeneratedWinCairo.make:
        Update and apply changes applied to WebCoreGenerated.make in r170937.

2014-07-11  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Crash when using a stale InspectableNode Node
        https://bugs.webkit.org/show_bug.cgi?id=134849

        Reviewed by Timothy Hatcher.

        * inspector/PageConsoleAgent.cpp:

2014-07-11  Jer Noble  <jer.noble@apple.com>

        [MSE] Separate MediaSource logging into its own log channel
        https://bugs.webkit.org/show_bug.cgi?id=134809

        Reviewed by Eric Carlson.

        Separate out MediaSource logging (which can be quite verbose) into its own log channel,
        distinct from the Media log channel. Add some per-sample logging and further sequester that
        logging into its own MediaSourceSamples log channel.

        Add the MediaSource and MediaSourceSamples channels:
        * platform/Logging.h:

        Move LOG(Media) -> LOG(MediaSource):
        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::MediaSource):
        (WebCore::MediaSource::~MediaSource):
        (WebCore::MediaSource::setReadyState):
        (WebCore::MediaSource::addSourceBuffer):
        (WebCore::MediaSource::removeSourceBuffer):
        (WebCore::MediaSource::isTypeSupported):
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
        (WebCore::SourceBuffer::sourceBufferPrivateDidBecomeReadyForMoreSamples):
        (WebCore::SourceBuffer::provideMediaData):
        (WebCore::SourceBuffer::monitorBufferingRate):
        (WebCore::SourceBuffer::textTrackAddCues):
        (WebCore::SourceBuffer::hasFutureTime):
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):
        (WebCore::SourceBufferPrivateAVFObjC::didFailToParseStreamDataWithError):
        (WebCore::SourceBufferPrivateAVFObjC::processCodedFrame):
        (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID):
        (WebCore::SourceBufferPrivateAVFObjC::append):
        (WebCore::SourceBufferPrivateAVFObjC::layerDidReceiveError):
        (WebCore::SourceBufferPrivateAVFObjC::rendererDidReceiveError):
        (WebCore::SourceBufferPrivateAVFObjC::flushAndEnqueueNonDisplayingSamples):
        (WebCore::SourceBufferPrivateAVFObjC::enqueueSample):

2014-07-11  Brady Eidson  <beidson@apple.com>

        Phone numbers that span two lines are not detected.
        <rdar://problem/17601146> and https://bugs.webkit.org/show_bug.cgi?id=134808

        Reviewed by Tim Horton.

        * editing/Editor.cpp:
        (WebCore::Editor::scanSelectionForTelephoneNumbers): After scanning a range from the TextIterator,
            create an "edge range" window around the end of the TextIterator range, and scan it.
            Also make sure to not accumulate duplicate ranges that might have showed up in both the
            TextIterator range and the edge window range.

2014-07-11  Enrica Casucci  <enrica@apple.com>

        Implement textStylingAtPosition in WK2.
        https://bugs.webkit.org/show_bug.cgi?id=134843
        <rdar://problem/17614981>
        
        Reviewed by Benjamin Poulain.

        Adding some exports and making styleForSelectionStart public.

        * WebCore.exp.in:
        * editing/Editor.h:

2014-07-11  Zalan Bujtas  <zalan@apple.com>

        REGRESSION (r168868): eBay 'see all' links fail due to different JS bindings conversion behavior.
        https://bugs.webkit.org/show_bug.cgi?id=134841
        <rdar://problem/17577563>

        Reviewed by Simon Fraser.

        Revert back to type int for Element.scroll* APIs in order to preserve exception handling
        behavior.

        Test: cssom/non-subpixel-scroll-top-left-values.html

        * dom/Element.cpp:
        (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:

2014-07-11  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Debugger Pause button does not work
        https://bugs.webkit.org/show_bug.cgi?id=134785

        Reviewed by Timothy Hatcher.

        * CMakeLists.txt:
        * DerivedSources.make:
        * inspector/CommandLineAPIModuleSource.js:
        Minification strips the sourceURL command. Add it back with minification.

2014-07-11  Andreas Kling  <akling@apple.com>

        Use the bare minimum tile coverage rect when under memory pressure.
        <https://webkit.org/b/134837>

        When the browser is under critical memory pressure, don't generate any
        more tiles than are needed to cover the exposed viewport rect.

        Reviewed by Pratik Solanki.

        * page/FrameView.cpp:
        (WebCore::FrameView::computeCoverageRect):

2014-07-11  Javier Fernandez  <jfernandez@igalia.com>

        [CSS Grid Layout] Implement justify-self css property
        https://bugs.webkit.org/show_bug.cgi?id=134419

        Reviewed by Dean Jackson.

        This change adds the justify-self property from CSS 3 Box Alignment
        and implements the parsing.

        From Blink r164685 by <jchaffraix@chromium.org>

        Test: fast/css/parse-justify-self.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::CSSParser::parseValue):
        (WebCore::isItemPositionKeyword):
        (WebCore::CSSParser::parseJustifySelf):
        * css/CSSParser.h:
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EJustifySelf):
        (WebCore::CSSPrimitiveValue::operator EJustifySelfOverflowAlignment):
        * css/CSSPropertyNames.in:
        * css/CSSValueKeywords.in:
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2014-07-11  Bear Travis  <betravis@adobe.com>

        [Feature Queries] Feature Query CSS Grammar Productions Should Return a Value
        https://bugs.webkit.org/show_bug.cgi?id=134810

        Reviewed by Antti Koivisto.

        The parsing return values are used to determine if a feature query is valid. Two
        grammar productions have been updated to correctly return a value.

        Tests exist for this feature but will not be run until the feature is turned on.
        See https://bugs.webkit.org/show_bug.cgi?id=134404.

        * css/CSSGrammar.y.in: Adding return values for two valid feature query productions.

2014-07-10  Brent Fulgham  <bfulgham@apple.com>

        Use a separate backdrop element to allow cues to have highlight and background color
        https://bugs.webkit.org/show_bug.cgi?id=134821
        <rdar://problem/15999721>

        Reviewed by Eric Carlson.

        Add a new <div> element wrapping the existing cue <span>. This allows
        us to have a highlight on the cue (in the <span> background), as well
        as an overall background color.

        * Modules/mediacontrols/mediaControlsApple.css:
        (video::-webkit-media-text-track-display-backdrop): New markup for
        the backdrop element of the caption.
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::cueBackdropShadowPseudoId): Added to
        allow user customization of the cue backdrop.
        (WebCore::VTTCue::initialize): Rename the old "m_cueBackgroundBox" to
        "m_cueHighlightBox" and add a new "m_cueBackdropBox" member.
        (WebCore::VTTCue::updateDisplayTree): Update for m_cueHighlightBox.
        (WebCore::VTTCue::getDisplayTree): Make m_cueHighlightBox a child
        of the new m_cueBackdropBox element, and add m_cueBackdropBox to
        the display tree.
        * html/track/VTTCue.h:
        (WebCore::VTTCue::element):
        * page/CaptionUserPreferencesMediaAF.cpp:
        (WebCore::CaptionUserPreferencesMediaAF::setInterestedInCaptionPreferenceChanges):
        Fix for missing caption style updates. Even if we are already
        listening for caption changes, we still want to update the new
        instance's style sheet to match.
        (WebCore::CaptionUserPreferencesMediaAF::captionsStyleSheetOverride):
        * rendering/RenderVTTCue.cpp:
        (WebCore::RenderVTTCue::initializeLayoutParameters): Take the new
        <div> into consideration when looking for the Cue text element.

2014-07-11  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: return integral results for offset*, client*, scroll* by default.
        https://bugs.webkit.org/show_bug.cgi?id=134651

        Reviewed by Simon Fraser.

        Revert to returning integral values for Element.offset* client* scroll* by default.
        Fractional values break number of sites(tight design) and JS frameworks(fail to handle fractional values).

        Since snapped dimension depends on both the original point and the width/height of the box,
        we need to call RenderBoxModelObject::pixelSnapped*() helpers, instead of round().

        Covered by existing tests
 
        * dom/Element.cpp:
        (WebCore::subpixelMetricsEnabled):
        (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):
        * page/Settings.in:

2014-07-11  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: icloud.com password arrow has clipped circle at some window sizes.
        https://bugs.webkit.org/show_bug.cgi?id=134824
        <rdar://problem/17612729>

        Reviewed by Simon Fraser.

        Transparent layer clipping needs device pixel offset adjusting.

        Test: fast/layers/wrong-clipping-semi-transparent-compositing-layer-on-subpixel-position.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::paintBackgroundForFragments):
        (WebCore::RenderLayer::paintForegroundForFragments):
        * rendering/RenderLayer.h:

2014-07-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Remove unused file.

        * html/shadow/MediaControlsGtk.h: Removed.

2014-07-11  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Update grid-auto-flow to the new syntax
        https://bugs.webkit.org/show_bug.cgi?id=134057

        Reviewed by Sergio Villar Senin.

        In last versions of the spec grid-auto-flow syntax has changed. New
        syntax is:
        [ row | column ] && dense? | stack && [ row | column ]?

        Implemented parsing for new syntax and added/modified test cases in
        current layout tests.

        For the moment, the implementation keeps working in the same way, but
        using "stack" value for grid-auto-flow property instead of "none". This
        should be fixed in a follow-up patch once "stack" is properly
        implemented.

        Also "dense" needs to be reviewed. Right now auto-placement algorithm is
        always "dense" and never "sparse".

        No new tests, update current tests to add new cases.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue): Adapt to new syntax.
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue): Removed grid-auto-flow as it
        is not a keyword anymore.
        (WebCore::isKeywordPropertyID): Ditto.
        (WebCore::CSSParser::parseValue): Add specific method for parsing
        grid-auto-flow.
        (WebCore::CSSParser::parseGridShorthand): Adapt parsing for
        grid-auto-flow property inside the shorthand.
        (WebCore::isValidGridAutoFlowId): Helper method to check if the CSSValue
        id is a valid keyword for grid-auto-flow property.
        (WebCore::CSSParser::parseGridAutoFlow): Implement new parsing for
        grid-auto-flow.
        * css/CSSParser.h: Method header for grid-auto-flow parsing.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::operator GridAutoFlow): Deleted.
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted.
        * css/CSSValueKeywords.in: Add new keywords required by grid-auto-flow:
        "dense" and "stack".
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder): Remove
        default handler as grid-auto-flow is not a keyword now.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty): Implement particular handler
        for new grid-auto-flow syntax.
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::placeItemsOnGrid): Keep old "none" behavior as
        "stack" behavior for the moment.
        (WebCore::RenderGrid::autoPlacementMajorAxisDirection): Use the new
        helper methods in RenderStyle.
        (WebCore::RenderGrid::autoPlacementMinorAxisDirection): Ditto.
        * rendering/style/GridResolvedPosition.cpp:
        (WebCore::GridResolvedPosition::resolveGridPositionsFromStyle): Again
        keep old "none" behavior for "stack".
        * rendering/style/RenderStyle.h: Add new helper methods to know the
        direction and algorithm of grid-auto-flow property.
        * rendering/style/RenderStyleConstants.h: Redefine GridAutoFlow enum
        using flags for algorithm and direction.
        * rendering/style/StyleGridData.h: Change m_gridAutoFlow type to
        unsigned.

2014-07-10  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Pasting rich content does not perform a two-step paste
        https://bugs.webkit.org/show_bug.cgi?id=134795

        Reviewed by Benjamin Poulain.

        UIKit requires writing something (anything!) to a particular pasteboard
        during copy in order to flag the content as rich. When a paste occurs,
        UIKit will read this flag and perform a two-step paste.

        Test: platform/ios-sim/editing/pasteboard/two-step-paste.html

        * platform/ios/PlatformPasteboardIOS.mm:
        (WebCore::PlatformPasteboard::write):

2014-07-09  Andy Estes  <aestes@apple.com>

        [iOS] Some QuickLook documents are not displayed as previews
        https://bugs.webkit.org/show_bug.cgi?id=134788
        <rdar://problem/17278194>

        Reviewed by Pratik Solanki.

        ResourceRequest::isMainResourceRequest() is not reliable (e.g. ResourceRequests reconstituted from an
        NSURLRequest have no way to set this bit properly) and should probably be removed. Instead of using
        isMainResourceRequest() to check if a QuickLookHandle should be created when the Network Process is in use,
        just check if the current ResourceLoader is the same as the DocumentLoader's ResourceLoader.

        No new tests. QuickLook is not testable from WebKit.

        * platform/network/ios/QuickLook.mm:
        (WebCore::QuickLookHandle::create):

2014-07-10  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] Don't uninstall the memory pressure listener after first signal.
        <https://webkit.org/b/134814>

        The call to uninstall() should not be made on iOS since iOS doesn't use the
        hold-off mechanism in MemoryPressureHandler.

        Reviewed by Benjamin Poulain.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):

2014-07-10  Jer Noble  <jer.noble@apple.com>

        [MSE] Overlapping appended ranges must cause the decoder to flush and re-enqueue.
        https://bugs.webkit.org/show_bug.cgi?id=134805

        Reviewed by Eric Carlson.

        When appending a range of media data which overlaps with an existing range, SourceBuffer
        must cause the decoder to flush and re-enqueue samples. Those samples removed by appending
        the overlapping range may have already been enqueued for display, and unless the decode
        queue is flushed, corruption or decode errors may occur as the new samples are enqueued for
        display.

        Add a boolean flag onto TrackBuffer to indicate whether the decoder needs to be flushed and
        re-enqueued the next time an append operation completes. Set this flag whenever samples are
        removed due to overlapping or an explicit call to removeCodedFrames(). Move the contents of
        sourceBufferPrivateSeekToTime() (which previously did flushing and re-enqueueing) into a new
        function, reenqueueMediaForTime(), which can be called from sourceBufferPrivateAppendComplete().

        Drive-by fix: findSyncSampleAfterDecodeIterator() would return the passed in iterator if that
        sample is a sync-sample. Fix this to correctly return the next sync sample.

        Drive-by fix: Use a SampleMap, rather than a DecodeOrderSampleMap, to track erased samples
        so that the erasedSamples are correctly accounted for in both presentation and decode orders.

        * Modules/mediasource/SampleMap.cpp:
        (WebCore::SampleMap::empty): Add convenience method.
        (WebCore::DecodeOrderSampleMap::findSyncSampleAfterDecodeIterator): Drive-by fix.
        * Modules/mediasource/SampleMap.h:
        (WebCore::SampleMap::decodeOrder): Added const accessor.
        (WebCore::SampleMap::presentationOrder): Ditto.
        (WebCore::SampleMap::addRange): Added.
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::TrackBuffer::TrackBuffer): Add needsReenqueeing flag.
        (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime): Move contents into reenqueueMediaForTime().
        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reenqueMediaForTime() if necessary.
        (WebCore::SourceBuffer::removeCodedFrames): Set needsReenqueing.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
        (WebCore::SourceBuffer::provideMediaData): Drive-by fix.
        (WebCore::SourceBuffer::reenqueueMediaForTime): Moved from sourceBufferPrivateSeekToTime().
        * Modules/mediasource/SourceBuffer.h:

2014-07-10  Pratik Solanki  <psolanki@apple.com>

        ASSERT in SharedBuffer::maybeAppendDataArray() on MobileSafari launch
        https://bugs.webkit.org/show_bug.cgi?id=134812
        <rdar://problem/17628434>

        Reviewed by Joseph Pecoraro.

        Fix bug in my fix in r170930. Initialize the badly named m_shouldUsePurgeableMemory field to
        false. This field indicates when it is okay to use purgeable memory and is set to true once
        the resource is finished loading. By setting it to true in the constructor we were creating
        purgeable memory while the resource was still being loaded and this triggered the assert.

        No new tests. Should be covered by existing tests.

        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::SharedBuffer):

2014-07-10  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] Some memory pressure relief tweaks.
        <https://webkit.org/b/134811>

        Split memory pressure relief into critical and non-critical sections.
        Non-critical relief is for clearing out things that are really not
        essential, e.g unused font data, text measurement caches, etc.

        On iOS, only flip the "WebKit is under memory pressure" flag when we
        are under *critical* memroy pressure, rather than doing it early on
        and gimping ourselves because other processes are too big.

        Also added logging for when we transition in/out of system pressure.

        Reviewed by Geoffrey Garen.

        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::releaseNoncriticalMemory):
        (WebCore::MemoryPressureHandler::releaseCriticalMemory):
        (WebCore::MemoryPressureHandler::releaseMemory):
        * platform/MemoryPressureHandler.h:
        (WebCore::MemoryPressureHandler::ReliefLogger::loggingEnabled):
        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::install):

2014-07-10  Beth Dakin  <bdakin@apple.com>

        Need Setting/WKPreference that allows clients to prevent scrollbars from drawing 
        on a secondary thread
        https://bugs.webkit.org/show_bug.cgi?id=134778
        -and corresponding-
        <rdar://problem/17595333>

        Reviewed by Tim Horton.

        This is a requirement for some types of performance tests. The patch adds a new 
        virtual function to ScrollableArea that forces subclasses to indicate the value of 
        the Setting. This is required because Scrollbar and ScrollableArea can’t get to 
        Settings on their own.

        * page/FrameView.cpp:
        (WebCore::FrameView::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):
        * page/FrameView.h:
        * page/Settings.in:
        * platform/ScrollableArea.h:
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):
        * platform/win/PopupMenuWin.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):
        * rendering/RenderLayer.h:
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::forceUpdateScrollbarsOnMainThreadForPerformanceTesting):
        * rendering/RenderListBox.h:

2014-07-10  Brady Eidson  <beidson@apple.com>

        Phone number highlights should always be visible if the mouse hovers over.
        <rdar://problem/17527476> and https://bugs.webkit.org/show_bug.cgi?id=134784

        Reviewed by Tim Horton.

        * WebCore.exp.in:

2014-07-10  Timothy Horton  <timothy_horton@apple.com>

        Assertions or crashes under _takeViewSnapshot when restoring windows
        https://bugs.webkit.org/show_bug.cgi?id=134792

        Reviewed by Simon Fraser.

        * platform/graphics/cocoa/IOSurface.mm:
        (IOSurface::createFromImage):

2014-07-10  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [XHR] overrideMimeType() should be able to change encoding in HEADERS RECEIVED state
        https://bugs.webkit.org/show_bug.cgi?id=128968

        Reviewed by Alexey Proskuryakov.

        Moved response encoding computation from didReceiveResponse to didReceiveData, just before the decoder is instantiated.
        This allows overrideMimeType to be changed within readystatechange event callback and have an impact on selected encoding.

        Test: http/tests/xmlhttprequest/overridemimetype-headers-received-state-force-shiftjis.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::didReceiveResponse): Removed m_responseEncoding computation from response and mimeTypeOverride.
        (WebCore::XMLHttpRequest::didReceiveData): Added m_responseEncoding computation from response and mimeTypeOverride.

2014-07-09  Brady Eidson  <beidson@apple.com>

        Fire connected/disconnected events for Gamepads.
        https://bugs.webkit.org/show_bug.cgi?id=134386

        Reviewed by Dean Jackson.

        No new tests (No effect in a currently tested config)

        * Modules/gamepad/GamepadManager.cpp:
        (WebCore::navigatorGamepadFromDOMWindow): Handling converting a possibly-null Navigator into
            a possibly null NavigatorGamepad.
        (WebCore::GamepadManager::platformGamepadConnected): Notify blind Navigator/DOMWindows of all
            previously attached Gamepads, then notify everybody of this new gamepad.
        (WebCore::GamepadManager::platformGamepadDisconnected): Handle dispatching the disconnected
            event to all registered DOMWindows.
        (WebCore::GamepadManager::platformGamepadInputActivity): Notify blind Navigator/DOMWindows of all
            attached Gamepads.
        (WebCore::GamepadManager::makeGamepadVisible): Handles notifying setting up a new gamepads
            with all NavigatorGamepads as well as dispatching the connected even to DOMWindows.
        (WebCore::GamepadManager::registerDOMWindow):
        (WebCore::GamepadManager::unregisterDOMWindow):
        (WebCore::GamepadManager::makeGamepadsVisibileToBlindNavigators): Deleted.
        * Modules/gamepad/GamepadManager.h:

        * Modules/gamepad/NavigatorGamepad.cpp:
        (WebCore::NavigatorGamepad::gamepadAtIndex):
        * Modules/gamepad/NavigatorGamepad.h:

2014-07-09  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Disable text quantization while actively changing the page's scale factor
        https://bugs.webkit.org/show_bug.cgi?id=134781

        Reviewed by Tim Horton and Myles C. Maxfield.

        Query the chrome client to setup quantization on each layers.

        * page/ChromeClient.h:
        (WebCore::ChromeClient::hasStablePageScaleFactor):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setupFontSubpixelQuantization):

2014-07-09  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Cache entry invalidated too early.
        https://bugs.webkit.org/show_bug.cgi?id=134681

        Reviewed by Alex Christensen.

        When a cache entry has expired, it is invalidated when a request for the corresponding url is started.
        This is too early, since the resource is possibly not modified (even though it has expired),
        and the server might respond with a 304 (not modified) response.
        When we then receive a 304 response, the cache entry is deleted, and we have no cached response/data to provide.
        This can be solved by not invalidating the entry when a request for that url is started,
        but instead invalidate when a 200 OK response is received (which means the resource has been modified).

        * platform/network/curl/CurlCacheManager.cpp:
        (WebCore::CurlCacheManager::isCached): Avoid invalidating cache entry when it has expired, wait until we know the server response.
        * platform/network/curl/CurlCacheManager.h: Added const modifier.

2014-07-09  Myles C. Maxfield  <mmaxfield@apple.com>

        Revert r170413 and r170390
        https://bugs.webkit.org/show_bug.cgi?id=134741

        Reviewed by Benjamin Poulain.

        These patches caused a variety of failures. I'm going to break them up into
        smaller chunks and commit them separately at some point in the future.

        Requesting a review from Ben Poulain because there were some conflicts with
        r170561 in InlineTextBox.cpp and InlineTextBox.h.

        * WebCore.exp.in:
        * platform/graphics/Font.cpp:
        (WebCore::Font::drawText):
        (WebCore::Font::drawEmphasisMarks):
        (WebCore::Font::adjustSelectionRectForText):
        (WebCore::computeUnderlineType):
        * platform/graphics/Font.h:
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::getGlyphsAndAdvancesForSimpleText):
        (WebCore::Font::drawSimpleText):
        (WebCore::Font::drawEmphasisMarksForSimpleText):
        (WebCore::Font::drawGlyphBuffer):
        (WebCore::Font::drawEmphasisMarks):
        (WebCore::Font::adjustSelectionRectForSimpleText):
        * platform/graphics/GlyphBuffer.h:
        (WebCore::GlyphBuffer::size):
        (WebCore::GlyphBuffer::glyphs):
        (WebCore::GlyphBuffer::advances):
        (WebCore::GlyphBuffer::fontDataAt):
        (WebCore::GlyphBuffer::advanceAt):
        (WebCore::GlyphBuffer::offsetAt):
        (WebCore::GlyphBuffer::reverse):
        (WebCore::GlyphBuffer::offsetInString):
        (WebCore::GlyphBuffer::swap):
        * platform/graphics/GraphicsContext.cpp:
        * platform/graphics/Latin1TextIterator.h:
        (WebCore::Latin1TextIterator::Latin1TextIterator):
        (WebCore::Latin1TextIterator::currentCharacter):
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/SurrogatePairAwareTextIterator.cpp:
        (WebCore::SurrogatePairAwareTextIterator::SurrogatePairAwareTextIterator):
        * platform/graphics/SurrogatePairAwareTextIterator.h:
        (WebCore::SurrogatePairAwareTextIterator::currentCharacter):
        * platform/graphics/TextRun.h:
        (WebCore::TextRun::length):
        (WebCore::TextRun::charactersLength):
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::glyphDataForCharacter):
        (WebCore::applyFontTransforms):
        (WebCore::WidthIterator::advanceInternal):
        (WebCore::WidthIterator::advance):
        (WebCore::WidthIterator::advanceOneCharacter):
        * platform/graphics/WidthIterator.h:
        * platform/graphics/cairo/FontCairo.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        (WebCore::Font::adjustSelectionRectForComplexText):
        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::setNormalizedBuffer):
        * platform/graphics/mac/FontComplexTextMac.cpp:
        (WebCore::Font::adjustSelectionRectForComplexText):
        (WebCore::Font::getGlyphsAndAdvancesForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontCGWin.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::adjustSelectionRectForComplexText):
        (WebCore::Font::getGlyphsAndAdvancesForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        * platform/graphics/wince/FontWinCE.cpp:
        (WebCore::Font::drawGlyphs):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        (WebCore::Font::selectionRectForComplexText):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::isSelected):
        (WebCore::InlineTextBox::selectionState):
        (WebCore::InlineTextBox::localSelectionRect):
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::selectionStartEnd):
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::InlineTextBox::paintCompositionBackground):
        (WebCore::InlineTextBox::paintDocumentMarker):
        (WebCore::InlineTextBox::paintTextMatchMarker):
        (WebCore::InlineTextBox::computeRectForReplacementMarker):
        (WebCore::InlineTextBox::paintCompositionUnderline):
        (WebCore::InlineTextBox::positionForOffset):
        (WebCore::InlineTextBox::constructTextRun):
        * rendering/InlineTextBox.h:
        (WebCore::InlineTextBox::truncation):
        * rendering/RenderCombineText.cpp:
        (WebCore::RenderCombineText::getStringToRender):
        * rendering/RenderCombineText.h:
        * rendering/RenderTextLineBoxes.cpp:
        (WebCore::ellipsisRectForBox):
        * rendering/svg/SVGInlineFlowBox.cpp:
        (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::positionForOffset):
        (WebCore::SVGInlineTextBox::localSelectionRect):
        (WebCore::SVGInlineTextBox::paintSelectionBackground):
        (WebCore::SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates):
        (WebCore::SVGInlineTextBox::paintText):
        * rendering/svg/SVGInlineTextBox.h:
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair):
        (WebCore::SVGTextMetricsBuilder::advance):
        * rendering/svg/SVGTextQuery.cpp:
        (WebCore::SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates):
        (WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
        (WebCore::SVGTextQuery::subStringLengthCallback):
        (WebCore::SVGTextQuery::startPositionOfCharacterCallback):
        (WebCore::SVGTextQuery::endPositionOfCharacterCallback):
        (WebCore::SVGTextQuery::rotationOfCharacterCallback):
        (WebCore::SVGTextQuery::extentOfCharacterCallback):
        (WebCore::SVGTextQuery::characterNumberAtPositionCallback):
        * rendering/svg/SVGTextQuery.h:
        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
        * rendering/svg/SVGTextRunRenderingContext.h:
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        * svg/SVGFontData.h:

2014-07-08  Jeffrey Pfau  <jpfau@apple.com>

        Fix flaky loading tests
        https://bugs.webkit.org/show_bug.cgi?id=133696

        Reviewed by Ryosuke Niwa.

        In some cases, the Frame may be destroyed while the loader is
        initializing. Make sure we don't delete it too early.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::init):

2014-07-09  Simon Fraser  <simon.fraser@apple.com>

        Make IndirectCompositingReason an enum class
        https://bugs.webkit.org/show_bug.cgi?id=134789

        Reviewed by Tim Horton.

        Make RenderLayer::IndirectCompositingReason an enum class, and change some code
        in RenderLayerCompositor::reasonsForCompositing() to use a switch.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
        (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
        (WebCore::RenderLayerCompositor::reasonsForCompositing):
        (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):

2014-07-09  Pratik Solanki  <psolanki@apple.com>

        Make SharedBuffer::append(SharedBuffer*) be smarter about CFData and data arrays
        https://bugs.webkit.org/show_bug.cgi?id=134731

        Reviewed by Antti Koivisto.

        If the target SharedBuffer has a CFDataRef or a data array then we can simply retain that
        CFDataRef or data array elements in the SharedBuffer being appended to. This avoids
        unnecessary copying.

        No new tests because no functional changes.

        * platform/SharedBuffer.cpp:
        (WebCore::SharedBuffer::append):
        (WebCore::SharedBuffer::maybeAppendPlatformData):
        * platform/SharedBuffer.h:
        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::maybeAppendPlatformData):
        (WebCore::SharedBuffer::maybeAppendDataArray):
        * platform/soup/SharedBufferSoup.cpp:
        (WebCore::SharedBuffer::maybeAppendPlatformData):

2014-07-09  Brent Fulgham  <bfulgham@apple.com>

        [Win] Remove uses of 'bash' in build system
        https://bugs.webkit.org/show_bug.cgi?id=134782
        <rdar://problem/17615533>

        Reviewed by Dean Jackson.

        Remove uses of 'bash' by replacing Windows-specific bash scripts
        with Perl equivalents.

        * WebCore.vcxproj/WebCoreGenerated.make:
        * WebCore.vcxproj/WebCoreGenerated.vcxproj:
        * WebCore.vcxproj/WebCoreGenerated.vcxproj.filters:
        * WebCore.vcxproj/WebCorePreBuild.cmd:
        * WebCore.vcxproj/build-generated-files.pl: Copied from Source/WebCore/WebCore.vcxproj/build-generated-files.sh.
        * WebCore.vcxproj/build-generated-files.sh: Removed.
        * WebCore.vcxproj/migrate-scripts.pl: Copied from Source/WebCore/WebCore.vcxproj/migrate-scripts.sh.
        * WebCore.vcxproj/migrate-scripts.sh: Removed.

2014-07-09  Anders Carlsson  <andersca@apple.com>

        Support transparent WKWebViews
        https://bugs.webkit.org/show_bug.cgi?id=134779
        <rdar://problem/17351058>

        Reviewed by Tim Horton.

        Schedule rebuilding the compositing layers if a FrameView's transparency changes.

        * page/FrameView.cpp:
        (WebCore::FrameView::setTransparent):

2014-07-09  Javier Fernandez  <jfernandez@igalia.com>
        CSS canvas color parsing accepts invalid color identifiers
        https://bugs.webkit.org/show_bug.cgi?id=134661

        Reviewed by Benjamin Poulain.

        Current implementation of the CSSParser::parseSystemColor assumes
        that if a valid cssValueKeywordID is got then it has to be a valid
        color. Such assumption is wrong and lead to many bugs and layout
        test failures.

        The parseSystemFunction determines now whether the parsed color is
        valid or not.

        Addtionally, a new method has been added to share the logic of
        determining whether a CSSValueID is a valid primitive values for
        colors or not. Generally, we should avoid passing invalid color
        identifiers to the theming API.

        No new tests, but added additional cases to the
        canvas-color-serialization.html, test-setting-canvas-color and
        rgb-color-parse test.

        * css/CSSParser.cpp:
        (WebCore::validPrimitiveValueColor): Added.
        (WebCore::parseColorValue):
        (WebCore::CSSParser::parseSystemColor):

2014-06-28  Jer Noble  <jer.noble@apple.com>

        [MSE] http/tests/media/media-source/mediasource-remove.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=134768

        Reviewed by Eric Carlson.

        Fix multiple bugs causing mediasource-remove.html to fail:

        Separate out setDuration() into setDurationInternal() so that steps which require
        us to run the "duration change algorithm" don't bail out if the SoureBuffer is
        inside updating().

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::setDuration):
        (WebCore::MediaSource::setDurationInternal):
        * Modules/mediasource/MediaSource.h:
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

        When removing coded frames, do so starting from the first sample in the range in
        decode order, so that frames dependant on removed frames are themselves removed. Add
        a convenience method in SampleMap findSampleWithPresentationTime(), and rename
        findSampleAfterPresentationTime() to findSampleOnOrAfterPresentationTime() to correctly
        reflect what the method does, and simplify its implementation by searching the map's keys
        directly.

        * Modules/mediasource/SampleMap.cpp:
        (WebCore::PresentationOrderSampleMap::findSampleWithPresentationTime):
        (WebCore::PresentationOrderSampleMap::findSampleOnOrAfterPresentationTime):
        (WebCore::DecodeOrderSampleMap::findSyncSampleAfterPresentationTime):
        (WebCore::PresentationOrderSampleMap::findSampleAfterPresentationTime): Deleted.
        * Modules/mediasource/SampleMap.h:
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::decodeTimeComparator):
        (WebCore::SourceBuffer::removeCodedFrames):

        Throw the correct exception (INVALID_STATE_ERR) from SourceBuffer::remove().

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::remove):

2014-07-09  Pratik Solanki  <psolanki@apple.com>

        Add SharedBuffer::wrapCFDataArray() and use it
        https://bugs.webkit.org/show_bug.cgi?id=134733

        Reviewed by Antti Koivisto.

        No new tests. Should be covered by existing tests.

        * platform/SharedBuffer.h:
        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::wrapCFDataArray):
        (WebCore::SharedBuffer::SharedBuffer):
        * platform/network/ResourceHandle.h:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::handleDataArray): Deleted.
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveDataArray):
        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
        (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveDataArray):
        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveDataArray:]):
        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveDataArray:]):

2014-07-09  Pratik Solanki  <psolanki@apple.com>

        Move resource buffering from SynchronousNetworkLoaderClient to NetworkResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=134732

        Reviewed by Darin Adler.

        No new tests because no functional changes.

        * WebCore.exp.in:

2014-07-09  Tim Horton  <timothy_horton@apple.com>

        Fix the !USE(IOSURFACE) build.

        * WebCore.exp.in:

2014-07-09  Tim Horton  <timothy_horton@apple.com>

        Use IOSurface ViewSnapshots everywhere on Mac, remove JPEG encoding path
        https://bugs.webkit.org/show_bug.cgi?id=134773

        Reviewed by Anders Carlsson.

        * WebCore.exp.in:
        * platform/graphics/cocoa/IOSurface.h:
        * platform/graphics/cocoa/IOSurface.mm:
        (IOSurface::createFromImage):
        Move make-an-IOSurface-from-a-CGImageRef into WebCore::IOSurface.

2014-07-09  Enrica Casucci  <enrica@apple.com>

        Implement Editor::fontAttributesForSelectionStart() or iOS.
        https://bugs.webkit.org/show_bug.cgi?id=134771
        <rdar://problem/16167838>

        Reviewed by Ryosuke Niwa.

        Implement for iOS the equivalent function we have for OS X.

        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::fontAttributesForSelectionStart):

2014-07-09  Brent Fulgham  <bfulgham@apple.com>

        [Win] Remove use of 'grep' in build steps
        https://bugs.webkit.org/show_bug.cgi?id=134770
        <rdar://problem/17608783>

        Reviewed by Tim Horton.

        Replace uses of the grep command in Windows builds with the equivalent
        Perl program.

        * WebCore.vcxproj/WebCoreGenerated.make:
        * WebCore.vcxproj/WebCorePreBuild.cmd:
        * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp:
        (WebCore::WebCoreAVCFResourceLoader::notifyFinished):

2014-07-09  Alex Christensen  <achristensen@webkit.org>

        Added css jit profiler, disabled by default.
        https://bugs.webkit.org/show_bug.cgi?id=134695

        Reviewed by Benjamin Poulain.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        Tell the RuleData when its compiled selector is used.
        * css/RuleSet.cpp:
        (WebCore::RuleData::RuleData):
        Initialize the compiled selector use count to 0.
        * css/RuleSet.h:
        (WebCore::RuleData::~RuleData):
        (WebCore::RuleData::compiledSelectorUsed):
        Count and log the number of times a compiled selector is used.
        * cssjit/SelectorCompiler.h:
        Added option for CSS_SELECTOR_JIT_PROFILING set to 0 by default.
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
        (WebCore::SelectorDataList::execute):
        Tell the SelectorData when its compiled selector is used.
        * dom/SelectorQuery.h:
        (WebCore::SelectorDataList::SelectorData::SelectorData):
        (WebCore::SelectorDataList::SelectorData::~SelectorData):
        (WebCore::SelectorDataList::SelectorData::compiledSelectorUsed):
        Count and log the number of times a compiled selector is used.

2014-07-09  Eric Carlson  <eric.carlson@apple.com>

        [iOS] caption size is sometimes incorrect in fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=134740

        Reviewed by Jer Noble.

        Captions on iOS are displayed in fullscreen with a TextTrackRepresentation object. Because
        the fullscreen video presentation is controlled by code in the UI process running on the
        UI thread, WebCore is notified of changes to fullscreen state asynchronously. This resulted
        in the TextTrackRepresentation object being created and/or destroyed too late some of the 
        time, which caused us to sometimes display captions incorrectly. Fix this by setting up and
        tearing down the TextTrackRepresentation object when WebCore's 'webkitfullscreenchange'
        event fires.

        * Modules/mediacontrols/MediaControlsHost.cpp:
        (WebCore::MediaControlsHost::enteredFullscreen): Notify text track container.
        (WebCore::MediaControlsHost::exitedFullscreen): Ditto.
        * Modules/mediacontrols/MediaControlsHost.h:
        * Modules/mediacontrols/MediaControlsHost.idl:

        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.handleFullscreenChange): Notify host of fullscreen change.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::requiresTextTrackRepresentation): Only return true when in
            fullscreen.
        (WebCore::HTMLMediaElement::setVideoFullscreenLayer): Call updateTextTrackDisplay.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): Initialize
            m_updateTextTrackRepresentationStyle to false.
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Move logic for creating
            TextTrackRepresentation to updateTextTrackRepresentation.
        (WebCore::MediaControlTextTrackContainerElement::updateActiveCuesFontSize): New, split out of updateTimerFired.
        (WebCore::MediaControlTextTrackContainerElement::updateTimerFired): Move code to force immediate
            font size change to updateActiveCuesFontSize.
        (WebCore::MediaControlTextTrackContainerElement::updateTextTrackRepresentation): New, update
            text track representation, creating first if necessary.
        (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation): Add an early
            return if we don't have a text track representation.
        (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation): Early
            return if there is nothing to be done.
        (WebCore::MediaControlTextTrackContainerElement::enteredFullscreen): Force a caption update
            if there are visible captions.
        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Set m_updateTextTrackRepresentationStyle
            to true.
        (WebCore::MediaControlTextTrackContainerElement::textTrackRepresentationBoundsChanged):  Force a 
            caption update if there are visible captions.
        * html/shadow/MediaControlElements.h:

2014-07-09  Jer Noble  <jer.noble@apple.com>

        [MSE] http/tests/media/media-source/mediasource-endofstream-invaliderror.html is failing.
        https://bugs.webkit.org/show_bug.cgi?id=134413

        Reviewed by Eric Carlson.

        Update MediaSource.endOfStream() to take an optional enum instead of an optional String.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::endOfStream):
        * Modules/mediasource/MediaSource.h:
        * Modules/mediasource/MediaSource.idl:

2014-07-08  Brady Eidson  <beidson@apple.com>

        DOMWindows should register themselves with the GamepadManager when they have event listeners
        https://bugs.webkit.org/show_bug.cgi?id=134669

        Reviewed by Dean Jackson.

        No new tests (No effect in a currently tested config)

        By having DOMWindows register with the GamepadManager when they have/don’t have gamepad event
        listeners, we accomplish two things:
        1 - It’s simple for GamepadManager to dispatch gamepad events directly to the DOMWindows interested.
        2 - We know when to start monitoring for gamepad connections.

        * Modules/gamepad/GamepadManager.cpp:
        (WebCore::GamepadManager::GamepadManager):
        (WebCore::GamepadManager::registerNavigator):
        (WebCore::GamepadManager::unregisterNavigator):
        (WebCore::GamepadManager::registerDOMWindow):
        (WebCore::GamepadManager::unregisterDOMWindow):
        (WebCore::GamepadManager::maybeStartMonitoringGamepads): Start monitoring gamepads if there are any
          registered DOMWindows or NavigatorGamepads, and we aren’t already monitoring them.
        (WebCore::GamepadManager::maybeStopMonitoringGamepads): Stop monitoring gamepads if there aren’t any
          registered DOMWindows or NavigatorGameads, and we have been monitoring them before now.
        * Modules/gamepad/GamepadManager.h:

        * dom/EventNames.h:
        (WebCore::EventNames::isGamepadEventType):

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::DOMWindow):
        (WebCore::DOMWindow::~DOMWindow): If registered for gamepad events, unregister now.
        (WebCore::DOMWindow::incrementGamepadEventListenerCount): If this is the first gamepad event
          listener, register with the GamepadManager now.
        (WebCore::DOMWindow::decrementGamepadEventListenerCount): If this was the last gamepad event
          listener, unregister from the GamepadManager now.
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        * page/DOMWindow.h:

2014-07-08  Sun-woo Nam  <sunny.nam@samsung.com>

        [EFL] Fix the build break when ENABLE_ENCRYPTED_MEDIA_V2 is turned on.
        https://bugs.webkit.org/show_bug.cgi?id=134750

        Reviewed by Gyuyoung Kim.

        When turning ENABLE_ENCRYPTED_MEDIA_V2 on, build break occurs.
        Some source files need to be included in CMakeLists.txt file for build.
        And wrap the included header file which is built only on mac and wince.

        * CMakeLists.txt:
        * Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp:

2014-07-08  Eric Carlson  <eric.carlson@apple.com>

        [iOS] user caption preferences not applied
        https://bugs.webkit.org/show_bug.cgi?id=134599

        Reviewed by Sam Weinig.

        * page/CaptionUserPreferences.cpp:
        (WebCore::CaptionUserPreferences::updateCaptionStyleSheetOveride): All Pages in a PageGroup
        do not necessarily use the same PageUserContentController, so apply and remove caption user
        the style sheet directly to each page rather than to the page group.

2014-07-08  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170894.
        https://bugs.webkit.org/show_bug.cgi?id=134749

        "It broke the build on mountainlion release 32bit" (Requested
        by mmirman on #webkit).

        Reverted changeset:

        "Added css jit profiler, disabled by default."
        https://bugs.webkit.org/show_bug.cgi?id=134695
        http://trac.webkit.org/changeset/170894

2014-07-08  Jeremy Jones  <jeremyj@apple.com>

        WebVideoFullscreenInterfaceAVKit should lazily create m_playerController.
        https://bugs.webkit.org/show_bug.cgi?id=134706

        Reviewed by Simon Fraser.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenModel):
        Don't set the delegate if m_playerController isn't created.

2014-07-08  Bem Jones-Bey  <bjonesbe@adobe.com>

        Ensure we compute the height of replaced elements to 'auto' when appropriate.
        https://bugs.webkit.org/show_bug.cgi?id=134700

        Reviewed by David Hyatt.

        This fixes two issues:

        1) If a replaced element has a percentage height specified then its
        height should compute to 'auto' when its containing block does not
        have a height 'specified explicitly'. We were taking this to mean when
        its containing block's specified height value is 'auto' - in fact it
        means when the containing block's computed height is auto.

        2) Top and bottom on the containing block should only affect the
        height of the block if that block has absolute or fixed position.

        This brings us into line with IE, Firefox, and Chrome.

        This is a port of Blink patches by Rob Hogan and David Vest.

        Tests: css2.1/20110323/height-percentage-005.htm
               fast/css/replaced-element-ignore-top-bottom.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):

2014-07-08  Alex Christensen  <achristensen@webkit.org>

        Added css jit profiler, disabled by default.
        https://bugs.webkit.org/show_bug.cgi?id=134695

        Reviewed by Benjamin Poulain.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        Tell the RuleData when its compiled selector is used.
        * css/RuleSet.cpp:
        (WebCore::RuleData::RuleData):
        Initialize the compiled selector use count to 0.
        * css/RuleSet.h:
        (WebCore::RuleData::~RuleData):
        (WebCore::RuleData::compiledSelectorUsed):
        Count and log the number of times a compiled selector is used.
        * cssjit/SelectorCompiler.h:
        Added option for CSS_SELECTOR_JIT_PROFILING set to 0 by default.
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
        (WebCore::SelectorDataList::execute):
        Tell the SelectorData when its compiled selector is used.
        * dom/SelectorQuery.h:
        (WebCore::SelectorDataList::SelectorData::SelectorData):
        (WebCore::SelectorDataList::SelectorData::~SelectorData):
        (WebCore::SelectorDataList::SelectorData::compiledSelectorUsed):
        Count and log the number of times a compiled selector is used.

2014-07-08  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GObject DOM bindings API breaks test after r170700.

        Add missing WebKitDOMXPathNSResolver.symbols that I forgot to add
        in r170700.

        * bindings/gobject/WebKitDOMXPathNSResolver.symbols: Added.

2014-07-07  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. iOS build fix after r170871.

        * rendering/RenderThemeIOS.mm:
        (WebCore::adjustInputElementButtonStyle):

2014-07-07  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: icloud.com password arrow has clipped circle at some window sizes.
        https://bugs.webkit.org/show_bug.cgi?id=134710
        <rdar://problem/17545291>

        Reviewed by Simon Fraser.

        Transparent layer clipping needs device pixel snapping.

        Test: fast/layers/wrong-clipping-semi-transparent-layer-on-subpixel-position.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::beginTransparencyLayers):

2014-07-07  Benjamin Poulain  <benjamin@webkit.org>

        LinkBuffer should not keep a reference to the MacroAssembler
        https://bugs.webkit.org/show_bug.cgi?id=134668

        Reviewed by Geoffrey Garen.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):

2014-07-07  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Inline box decoration rounds to integral.
        https://bugs.webkit.org/show_bug.cgi?id=134523
        <rdar://problem/17530298>

        Reviewed by Darin Adler.

        This patch removes 2 integral roundings from InlineFlowBox:
        1. Border and padding sizes are implicitly integral truncated by the 'int' return type
           of borderLogicalLeft/Right()/paddingLogicalLeft/Right(). It results in losing
           fractional border/padding values.
        2. Painting rectangle is explicitly rounded which pushes border and
           other decoration elements to odd device pixel positions on retina displays.
        These values get pixel snapped right before calling in to GraphicsContext::*.

        Test: fast/inline/hidpi-inline-text-decoration-with-subpixel-value.html

        * rendering/InlineBox.h:
        (WebCore::InlineBox::frameRect):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::nodeAtPoint):
        (WebCore::InlineFlowBox::paintBoxDecorations):
        (WebCore::InlineFlowBox::paintMask):
        (WebCore::InlineFlowBox::roundedFrameRect): Deleted.
        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::borderLogicalLeft):
        (WebCore::InlineFlowBox::borderLogicalRight):
        (WebCore::InlineFlowBox::paddingLogicalLeft):
        (WebCore::InlineFlowBox::paddingLogicalRight):

2014-07-07  Zalan Bujtas  <zalan@apple.com>

        Pass RenderLayer reference instead of pointer to RenderLayer::paintingExtent().
        https://bugs.webkit.org/show_bug.cgi?id=134714

        Reviewed by Simon Fraser.

        No change in functionality. 

        * rendering/RenderLayer.cpp: * -> &
        (WebCore::expandClipRectForRegionAndReflection):
        (WebCore::expandClipRectForDescendantsAndReflection):
        (WebCore::transparencyClipBox):
        (WebCore::paintingExtent):
        (WebCore::RenderLayer::beginTransparencyLayers):
        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
        (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
        (WebCore::RenderLayer::paintingExtent): Deleted.
        * rendering/RenderLayer.h:

2014-07-07  Myles C. Maxfield  <mmaxfield@apple.com>

        Remove misleadingly-named Font::isSVGFont()
        https://bugs.webkit.org/show_bug.cgi?id=134697

        Reviewed by Dean Jackson.

        Being a SVG font is a property of the FontData object, not
        the Font object. Providing an isSVGFont() function on the
        Font class will likely lead to incorrect code and non-obvious
        bugs.

        No new tests because there is no behavior change.

        * platform/graphics/Font.h:
        (WebCore::Font::isSVGFont): Deleted.
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::primaryFontDataIsSystemFont):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::constructTextRun):
        * rendering/RenderBlock.cpp:
        (WebCore::constructTextRunInternal):
        * rendering/SimpleLineLayout.cpp:
        (WebCore::SimpleLineLayout::canUseFor):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::constructTextRun):
        * rendering/svg/SVGTextMetrics.cpp:
        (WebCore::SVGTextMetrics::constructTextRun):
        (WebCore::SVGTextMetrics::SVGTextMetrics):

2014-07-07  Brady Eidson  <beidson@apple.com>

        Move Gamepad index down into PlatformGamepad.
        https://bugs.webkit.org/show_bug.cgi?id=134670

        Reviewed by Darin Adler.

        PlatformGamepads always have an inherent index anyways.
        This will make things easier in all upcoming work.

        * Modules/gamepad/Gamepad.cpp:
        (WebCore::Gamepad::Gamepad):
        * Modules/gamepad/Gamepad.h:

        * Modules/gamepad/GamepadManager.cpp:
        (WebCore::GamepadManager::platformGamepadConnected):
        (WebCore::GamepadManager::platformGamepadDisconnected):
        (WebCore::GamepadManager::makeGamepadsVisibileToBlindNavigators):
        * Modules/gamepad/GamepadManager.h:

        * Modules/gamepad/NavigatorGamepad.cpp:
        (WebCore::NavigatorGamepad::gamepadsBecameVisible):
        (WebCore::NavigatorGamepad::gamepadConnected):
        (WebCore::NavigatorGamepad::gamepadDisconnected):
        * Modules/gamepad/NavigatorGamepad.h:

        * platform/GamepadProviderClient.h:

        * platform/PlatformGamepad.h:
        (WebCore::PlatformGamepad::index):
        (WebCore::PlatformGamepad::PlatformGamepad):

        * platform/mac/HIDGamepad.cpp:
        (WebCore::HIDGamepad::HIDGamepad):
        * platform/mac/HIDGamepad.h:

        * platform/mac/HIDGamepadProvider.cpp:
        (WebCore::HIDGamepadProvider::deviceAdded):
        (WebCore::HIDGamepadProvider::deviceRemoved):
        (WebCore::HIDGamepadProvider::removeGamepadForDevice):
        * platform/mac/HIDGamepadProvider.h:

2014-07-07  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Support reflections on custom layers like video
        https://bugs.webkit.org/show_bug.cgi?id=134701

        Reviewed by Tim Horton.

        Add a LayerTypeWebGLLayer layer type, and support casting to PlatformCALayerRemoteCustom.

        * WebCore.exp.in: Export PlatformCALayerMac::layerTypeForPlatformLayer(CALayer*), and sort.
        * platform/graphics/ca/PlatformCALayer.h:
        (WebCore::PlatformCALayer::isPlatformCALayerRemoteCustom):
        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayerMac::layerTypeForPlatformLayer):
        (PlatformCALayerMac::PlatformCALayerMac):
        (PlatformCALayerMac::commonInit):

2014-07-07  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Crash when starting a filter transition on a reflected layer
        https://bugs.webkit.org/show_bug.cgi?id=134694

        Reviewed by Tim Horton.

        Don't call the owner if we failed to find the animation key (which actually
        isn't used by PlatformCALayerMac anyway).

        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (-[WebAnimationDelegate animationDidStart:]):

2014-07-07  Alex Christensen  <achristensen@webkit.org>

        [iOS WebGL] Fix crash with too many nested glsl functions.
        https://bugs.webkit.org/show_bug.cgi?id=134683
        <rdar://problem/17541529>

        Reviewed by Geoffrey Garen.

        This fixes the Khronos WebGL 1.0.3 test nested-functions-should-not-crash.html.

        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
        Add SH_LIMIT_CALL_STACK_DEPTH to extraCompileOptions.

2014-07-07  Ion Rosca  <rosca@adobe.com>

        [CSS Blending]The background images set on the root element will blend on an initial white backdrop.
        https://bugs.webkit.org/show_bug.cgi?id=134342

        Reviewed by Dean Jackson.

        Tests: css3/blending/background-blend-mode-body-image.html
               css3/blending/background-blend-mode-body-transparent-color-and-image.html
               css3/blending/background-blend-mode-body-transparent-image.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintFillLayers):
        If the background layers have blend modes, we paint the base background color first,
        before starting a new transparency layer. After creating the transparency layer,
        the base background will be skipped, and the background layers will blend on top of
        a transparent backdrop.
        (WebCore::RenderBox::paintFillLayer):
        * rendering/RenderBox.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        This method is able to paint only the base background color (BaseBackgroundColorOnly), 
        skipping the background-color and background-images. This option is available only
        on bottom layer of the root renderer and only if the background color is not opaque,
        otherwise the method will return early.
        Another option is to paint the root background without using the base background color
        (BaseBackgroundColorSkip).
        * rendering/RenderBoxModelObject.h:
        Adding the BaseBackgroundColorUsage enum.

2014-07-06  Yoav Weiss  <yoav@yoav.ws>

        Turn on img@sizes compile flag
        https://bugs.webkit.org/show_bug.cgi?id=134634

        Reviewed by Benjamin Poulain.

        * Configurations/FeatureDefines.xcconfig: Moved compile flag to alphabetical order.

2014-07-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Generate isMathMLFoo() toMathMLFoo() by using NODE_TYPE_CASTS macro and generateTypeHelpers
        https://bugs.webkit.org/show_bug.cgi?id=134647

        Reviewed by Andreas Kling.

        Use type cast macro and generation tag for isFoo() and toFoo() in some MathML classes.

        No new tests, no behavior change.

        * mathml/MathMLElement.h: Place MathMLElementTypeHelpers.h to the bottom of the
        file so that functions from that file can use the Element|Node classes and other things defined in this file.
        * mathml/MathMLMencloseElement.h:
        (WebCore::toMathMLMencloseElement): Deleted.
        * mathml/mathtags.in:

2014-07-06  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: Ensure resolvingMode size is 1 byte
        https://bugs.webkit.org/show_bug.cgi?id=134662

        Reviewed by Benjamin Poulain.

        Since selector compiler uses MacroAssembler::branch8 for SelectorChecker::Mode,
        we should ensure sizeof(SelectorChecker::Mode) == 1.
        Old implementation works only in little endianness environments.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::matchedResult):
        (WebCore::ElementRuleCollector::matchedRuleList):
        (WebCore::ElementRuleCollector::collectMatchingRules):
        (WebCore::ElementRuleCollector::sortAndTransferMatchedRules):
        (WebCore::ElementRuleCollector::hasAnyMatchingRules):
        * css/ElementRuleCollector.h:
        (WebCore::ElementRuleCollector::ElementRuleCollector):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::match):
        (WebCore::SelectorChecker::matchRecursively):
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorChecker.h:
        * css/StyleInvalidationAnalysis.cpp:
        (WebCore::invalidateStyleRecursively):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::pseudoStyleRulesForElement):
        * css/StyleResolver.h:
        (WebCore::checkRegionSelector):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNotResolvingStyle):
        (WebCore::SelectorCompiler::elementIsActiveForStyleResolution):
        (WebCore::SelectorCompiler::elementIsHoveredForStyleResolution):
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::selectorMatches):

2014-07-06  Antti Koivisto  <antti@apple.com>

        Don't throttle layer flushes when the main resource is a GIF
        https://bugs.webkit.org/show_bug.cgi?id=134650
        <rdar://problem/17490712>

        Reviewed by Simon Fraser.
        
        Avoid throttling big image animations.

        * page/FrameView.cpp:
        (WebCore::determineLayerFlushThrottleState):
        
            Disable for image documents.

        (WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction):
        (WebCore::FrameView::updateLayerFlushThrottling):
        
            Refactor a bit.

        * page/LayerFlushThrottleState.h:
        
            Rename the flag.

2014-07-06  Andreas Kling  <akling@apple.com>

        Inline NodeListsNodeData helpers more aggressively.
        <https://webkit.org/b/134654>

        Get rid of call overhead costs when retrieving NodeLists and
        HTMLCollections from Document. These functions have very few clients,
        so there's no real reason to keep them out of line.

        Reviewed by Antti Koivisto.

        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
        (WebCore::NodeListsNodeData::addCacheWithName):

2014-07-06  Andreas Kling  <akling@apple.com>

        Inline Node's rare data getters.
        <https://webkit.org/b/134652>

        There was a fair bit of overhead when calling Node::ensureRareData()
        from Document's collection getters. This patch inlines the case where
        we've already materialized the rare data.

        Reviewed by Antti Koivisto.

        * dom/Node.cpp:
        (WebCore::Node::materializeRareData):
        (WebCore::Node::rareData): Deleted.
        (WebCore::Node::ensureRareData): Deleted.
        * dom/Node.h:
        * dom/NodeRareData.h:
        (WebCore::Node::rareData):
        (WebCore::Node::ensureRareData):

2014-07-05  Dean Jackson  <dino@apple.com>

        [iOS] MediaDocument should set a viewport
        https://bugs.webkit.org/show_bug.cgi?id=134658
        <rdar://problem/17552339>

        Reviewed by Zalan Bujtas.

        A MediaDocument should fill the viewport, so set its
        initial-scale to 1 and make it non-zoomable.

        * html/MediaDocument.cpp:
        (WebCore::MediaDocumentParser::createDocumentStructure): Create
        a <head> element and a <meta> element with a 1:1 viewport.

2014-07-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170825.
        https://bugs.webkit.org/show_bug.cgi?id=134653

        broke debug builds (Requested by kling on #webkit).

        Reverted changeset:

        "Generate isMathMLFoo() toMathMLFoo() by using NODE_TYPE_CASTS
        macro and generateTypeHelpers"
        https://bugs.webkit.org/show_bug.cgi?id=134647
        http://trac.webkit.org/changeset/170825

2014-07-05  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Generate isMathMLFoo() toMathMLFoo() by using NODE_TYPE_CASTS macro and generateTypeHelpers
        https://bugs.webkit.org/show_bug.cgi?id=134647

        Reviewed by Andreas Kling.

        Use type cast macro and generation tag for isFoo() and toFoo() in some MathML classes.

        No new tests, no behavior change.

        * mathml/MathMLElement.h: Place MathMLElementTypeHelpers.h to the bottom of the
        file so that functions from that file can use the Element|Node classes and other things defined in this file.
        (WebCore::isMathMLElement): Deleted.
        * mathml/MathMLMencloseElement.h:
        (WebCore::toMathMLMencloseElement): Deleted.
        * mathml/mathtags.in:

2014-07-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [EFL] Support Geolocation
        https://bugs.webkit.org/show_bug.cgi?id=134439

        Reviewed by Antonio Gomes.

        Add geoclue files in order to enable geolocation for EFL port.

        * PlatformEfl.cmake:

2014-07-04  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: compile :in-range and :out-of-range
        https://bugs.webkit.org/show_bug.cgi?id=134639

        Reviewed by Andreas Kling.

        The pseudo class :in-range and :out-of-range are trivial non-inlined selectors.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::isInRange):
        (WebCore::isOutOfRange):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):

2014-07-04  Andreas Kling  <akling@apple.com>

        Fast path for jsStringWithCache() when asked for the same string repeatedly.
        <https://webkit.org/b/134635>

        Reviewed by Darin Adler.

        * WebCore.exp.in:
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::jsStringWithCache): Deleted.
        * bindings/js/JSDOMBinding.h:
        (WebCore::JSValueTraits<String>::arrayJSValue):
        (WebCore::jsStringWithCache): Deleted.
        * bridge/c/c_utility.cpp:
        (JSC::Bindings::convertNPVariantToValue):
        * loader/cache/CachedResourceHandle.h:

2014-07-04  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: ebay.com rotating billboard on the main page has cut off buttons.
        https://bugs.webkit.org/show_bug.cgi?id=134636
        <rdar://problem/17529112>

        Reviewed by Darin Adler.

        Missing pixel snapping when clipping the transparency layer for BackgroundBleedUseTransparencyLayer.
        Clipping needs to take the same snapping strategy as the rest of the painting code.

        Test: fast/borders/border-radius-on-subpixel-position-non-hidpi.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations):

2014-05-10  Andreas Kling  <akling@apple.com>

        QualifiedName should use RefPtr<QualifiedNameImpl> internally.
        <https://webkit.org/b/132796>

        We were not inlining ~QualifiedName() and it was showing up in some
        profiles (over 1% on dom-attr.html.)

        This patch modernizes QualifiedName a bit by using RefPtr to store
        the QualifiedNameImpl instead of doing manual ref() and deref()
        in out-of-line functions.

        Reviewed by Darin Adler.

        * WebCore.exp.in:
        * dom/QualifiedName.cpp:
        (WebCore::QNameComponentsTranslator::translate):
        (WebCore::QualifiedName::QualifiedName):
        (WebCore::QualifiedName::~QualifiedName): Deleted.
        (WebCore::QualifiedName::deref): Deleted.
        * dom/QualifiedName.h:
        (WebCore::QualifiedName::QualifiedNameImpl::create):
        (WebCore::QualifiedName::QualifiedName):
        (WebCore::QualifiedName::isHashTableDeletedValue):
        (WebCore::QualifiedName::~QualifiedName):
        (WebCore::QualifiedName::operator=):
        (WebCore::QualifiedName::impl):
        (WebCore::QualifiedName::ref): Deleted.

2014-07-04  Dean Jackson  <dino@apple.com>

        [iOS] [Media] Prevent page zoom if it started in the video element
        https://bugs.webkit.org/show_bug.cgi?id=134640
        <rdar://problem/16630794>

        Reviewed by Sam Weinig.

        In r170572 I attempted to prevent the page zoom from happening
        when the user was attempting to fullscreen the video. That fix was
        not complete, because it relied on the touchstart event being
        sent before a gesture event. It turns out this doesn't always happen,
        so we need to apply the same check in the gesture event - if the
        gesture began with two fingers on the media, don't do a page zoom.
        The exception is zooming out, if you've managed to make the video
        cover the entire screen (also, the pinch-out-of-fullscreen gesture
        does not get handled by WebKit).

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.handleBaseGestureChange): Add a check to
        make sure our pinch didn't start in the video element.

2014-07-04  Hunseop Jeong  <hs85.jeong@samsung.com>

        [CoordinatedGraphics] Use the C++11 syntax to clean-up for loops 
        https://bugs.webkit.org/show_bug.cgi?id=134594

        Reviewed by Darin Adler.

        Convert a couple of loops to range-based for 

        No change in functionality, no new tests.

        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::updateTileBuffers):
        (WebCore::TiledBackingStore::resizeEdgeTiles):
        (WebCore::TiledBackingStore::setKeepRect):
        * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
        (WebCore::CompositingCoordinator::~CompositingCoordinator):
        (WebCore::CompositingCoordinator::flushPendingImageBackingChanges):
        (WebCore::CompositingCoordinator::setVisibleContentsRect):
        (WebCore::CompositingCoordinator::purgeBackingStores):
        * platform/graphics/texmap/coordinated/CoordinatedBackingStore.cpp:
        (WebCore::CoordinatedBackingStore::removeAllTiles):
        (WebCore::CoordinatedBackingStore::paintToTextureMapper):
        (WebCore::CoordinatedBackingStore::drawBorder):
        (WebCore::CoordinatedBackingStore::drawRepaintCounter):
        (WebCore::CoordinatedBackingStore::commitTileOperations):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::adjustPositionForFixedLayers):
        (WebCore::CoordinatedGraphicsScene::commitPendingBackingStoreOperations):

2014-07-04  Andreas Kling  <akling@apple.com>

        CTTE: ScriptElement always has a HTTPScriptElement or SVGScriptElement.
        <https://webkit.org/b/134637>

        Have ScriptElement store the pointer to the more specific subclass
        element as a reference. Also made the constructor protected since
        nobody should instantiate ScriptElement directly.

        Reviewed by Antti Koivisto.

        * dom/ScriptElement.cpp:
        (WebCore::ScriptElement::ScriptElement):
        (WebCore::ScriptElement::childrenChanged):
        (WebCore::ScriptElement::dispatchErrorEvent):
        (WebCore::ScriptElement::prepareScript):
        (WebCore::ScriptElement::requestScript):
        (WebCore::ScriptElement::executeScript):
        (WebCore::ScriptElement::notifyFinished):
        (WebCore::ScriptElement::ignoresLoadRequest):
        (WebCore::ScriptElement::scriptContent):
        * dom/ScriptElement.h:
        (WebCore::ScriptElement::element):
        * dom/ScriptRunner.cpp:
        (WebCore::ScriptRunner::queueScriptForExecution):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::HTMLScriptElement):
        * svg/SVGScriptElement.cpp:
        (WebCore::SVGScriptElement::SVGScriptElement):

2014-07-04  Julien Quint  <pom@graougraou.com>

        input type=range element should only fire change events after committing a  value
        https://bugs.webkit.org/show_bug.cgi?id=134545

        Reviewed by Dean Jackson.

        A "change" event was fired every time the slider thumb element was dragged
        by the user. The "change" event is now fired only after the thumb
        element has stopped moving; previously, both "input" and "change" events
        where dispatched while changes were being made. This new behavior is
        consistent with the specification (cf.
        http://www.whatwg.org/specs/web-apps/current-work/multipage/common-input-element-attributes.html#event-input-change),
        as well as other implementations such as Firefox and Chrome.

        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.createControls): Listen to the "input" event
        rather than the "change" event for the timeline control in order to
        keep track of value changes when the user is dragging the thumb.
        * accessibility/AccessibilitySlider.cpp:
        (WebCore::AccessibilitySlider::setValue): Dispatch "change" event while
        setting the new value rather than dispatching later, since setting the
        value now clears the change flag.
        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::setValue): Update the text value of the
        control in the case when no event is to be dispatched, so that this
        value can be checked the next time a "change" event dispatch is
        requested.
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::SliderThumbElement::setPositionFromPoint): Removed the
        dispatch of the "change" event, and no longer track the text value of
        the element as a result of dispatching a "change" event.
        (WebCore::SliderThumbElement::stopDragging): Dispatch the "change" event
        on completing the drag.

2014-07-04  Andreas Kling  <akling@apple.com>

        CTTE: ApplicationCacheHost always has a DocumentLoader.
        <https://webkit.org/b/b/128435>

        Have ApplicationCacheHost store the backpointer to its owning
        DocumentLoader as a reference.

        Reviewed by Sam Weinig.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::DocumentLoader):
        (WebCore::DocumentLoader::startLoadingMainResource):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::ApplicationCacheHost):
        (WebCore::ApplicationCacheHost::~ApplicationCacheHost):
        (WebCore::ApplicationCacheHost::selectCacheWithoutManifest):
        (WebCore::ApplicationCacheHost::selectCacheWithManifest):
        (WebCore::ApplicationCacheHost::maybeLoadMainResource):
        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainResponse):
        (WebCore::ApplicationCacheHost::maybeLoadFallbackForMainError):
        (WebCore::ApplicationCacheHost::failedLoadingMainResource):
        (WebCore::ApplicationCacheHost::finishedLoadingMainResource):
        (WebCore::ApplicationCacheHost::maybeLoadResource):
        (WebCore::ApplicationCacheHost::maybeLoadFallbackForError):
        (WebCore::ApplicationCacheHost::maybeLoadSynchronously):
        (WebCore::ApplicationCacheHost::notifyDOMApplicationCache):
        (WebCore::ApplicationCacheHost::stopDeferringEvents):
        (WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
        (WebCore::ApplicationCacheHost::update):
        (WebCore::ApplicationCacheHost::swapCache):
        (WebCore::ApplicationCacheHost::abort):
        (WebCore::ApplicationCacheHost::isApplicationCacheEnabled):
        * loader/appcache/ApplicationCacheHost.h:
        (WebCore::ApplicationCacheHost::documentLoader): Deleted.

2014-07-04  Antti Koivisto  <antti@apple.com>

        REGRESSION(r159345): Lines are clipped between pages when printing web content from Safari
        https://bugs.webkit.org/show_bug.cgi?id=134633
        <rdar://problem/17088936>

        Reviewed by Zalan Bujtas.

        Test: printing/simple-lines-break.html

        * rendering/SimpleLineLayout.cpp:
        (WebCore::SimpleLineLayout::canUseFor):
        
            Disable simple lines if global pagination is enabled.
            Printing does not currently use flow threads which we already test for.

2014-07-04  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Fixing the build after r170795.

        Mac didn't like that change as it seems to properly typedef long long to int64_t.
        That's not the case on 64-bit Linux (for some reason), so I'm changing the type of
        the two long long variables in FormDataElement to int64_t to avoid any further trouble.

        * platform/network/FormData.h:

2014-07-03  Brady Eidson  <beidson@apple.com>

        When showing the selection menu, include menu options for all selected phone numbers.
        <rdar://problem/16983434>, <rdar://problem/16874568>, and https://bugs.webkit.org/show_bug.cgi?id=134613

        Reviewed by Tim Horton.

        * English.lproj/Localizable.strings:

        * dom/Range.cpp:
        (WebCore::rangesOverlap): Fix reversed arguments that caused some types of overlaps to not be detected.

2014-07-03  Daniel Bates  <dabates@apple.com>

        Add WTF::move()
        https://bugs.webkit.org/show_bug.cgi?id=134500

        Rubber-stamped by Anders Carlsson.

        Substitute WTF::move() for std::move().

        * Modules/battery/NavigatorBattery.cpp:
        * Modules/encryptedmedia/MediaKeys.cpp:
        * Modules/gamepad/NavigatorGamepad.cpp:
        * Modules/gamepad/deprecated/NavigatorGamepad.cpp:
        * Modules/geolocation/NavigatorGeolocation.cpp:
        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
        * Modules/indexeddb/IDBDatabaseBackend.cpp:
        * Modules/indexeddb/IDBDatabaseBackend.h:
        [...]

2014-07-03  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix small bugs of dynamicViewportSizeUpdate that were causing inaccuracies in the computed target
        https://bugs.webkit.org/show_bug.cgi?id=134582

        Reviewed by Tim Horton.

        * WebCore.exp.in:
        * platform/ScrollView.h:
        (WebCore::ScrollView::unobscuredContentSize):
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::unobscuredContentRect):
        (WebCore::ScrollView::setUnobscuredContentSize):

2014-07-02  Brent Fulgham  <bfulgham@apple.com>

        [Mac] WebKit1 WebView iframe not responding to scroll gestures
        https://bugs.webkit.org/show_bug.cgi?id=134569
        <rdar://problem/17309008>

        Reviewed by Simon Fraser.

        New test: platform/mac/fast/scrolling/scroll-iframe-fragment.html

        WK1 scrollable areas are implemented on top of PlatformWidget (i.e., NSView) objects. They only
        perform a scroll operation if the EventHandler::handleWheelEvent method returns 'false', indicating
        that the Cocoa layer should do scrolling work. This is in contrast to WK2, where the scrolling is
        handled separately and we return 'true' from EventHandler::handleWheelEvent to indicate that the
        scroll event has been handled and that no other work is needed. This mismatch in the meaning of
        EventHandler::handleWheelEvent means that WK1 views do not properly handle scroll wheel events.

        To correct this, we need to see if we are acting on an Element backed by a PlatformWidget. When we
        are (the WK1 case) we want to return 'false' to instruct the Cocoa object to do the scroll operation.
        To implement proper latching behavior in WK1, we must return 'true' in the case where we are latched
        to a PlatformWidget, and that PlatformWidget did not start the scroll gesture at the edge of
        the region in the dominant scroll direction.

        Finally, additional logic was needed to determine whether the PlatformWidget is scrolled to the
        edge in the dominant scroll direction.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::platformCompleteWheelEvent): Added stub.
        (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Added stub.
        (WebCore::EventHandler::handleWheelEvent): Call new platformCompletePlatformWidgetWheelEvent if the
        event was handled for a PlatformWidget.
        * page/EventHandler.h:
        * page/mac/EventHandlerMac.mm:
        (WebCore::widgetForEventTarget): Added helper function.
        (WebCore::scrollViewForEventTarget): Added helper function.
        (WebCore::eventTargetIsPlatformWidget): Added helper function.
        (WebCore::EventHandler::platformPrepareForWheelEvents): Check whether we are at a scrolled edge
        for the NSView (PlatformWidget) case.
        (WebCore::EventHandler::platformCompleteWheelEvent): Return 'false' when handling WK1-style scrolls.
        (WebCore::EventHandler::platformCompletePlatformWidgetWheelEvent): Added. We generally want to
        return false so the PlatformWidget handles scrolling, except in the case where we are latched to
        a PlatformWidget, which has already performed its scroll, and we want to avoid propegating a
        scroll event to an enclosing region.

2014-07-03  Pratik Solanki  <psolanki@apple.com>

        Preserve old behavior of creating an NSURLRequest of the exact same type as passed to us
        https://bugs.webkit.org/show_bug.cgi?id=134605
        <rdar://problem/17544641>

        Reviewed by Andreas Kling.

        We have client code that passes us a subclass of NSURLRequest to load resource. Later when
        we call willSendRequest, they test to make sure they get an object of the same type. My
        optimization in r170642 broke this path when I cleared out the NSURLRequest object. We
        already had code in updateNSURLRequest() that was taking this quirk into account but I broke
        that. Fix it by reverting to old behavior for such clients.

        No new tests though we need one. I will add it later.

        * platform/network/cf/ResourceRequest.h:
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
        (WebCore::ResourceRequest::setStorageSession):
        * platform/network/ios/ResourceRequestIOS.mm:
        (WebCore::ResourceRequest::updateNSURLRequest):
        (WebCore::ResourceRequest::clearOrUpdateNSURLRequest):

2014-07-02  Anders Carlsson  <andersca@apple.com>

        Stop using EncoderAdapter/DecoderAdapter for FormData
        https://bugs.webkit.org/show_bug.cgi?id=134571

        Reviewed by Andreas Kling.

        * WebCore.exp.in:
        * platform/network/FormData.cpp:
        (WebCore::encodeElement): Deleted.
        (WebCore::decodeElement): Deleted.
        (WebCore::FormData::encode): Deleted.
        (WebCore::FormData::decode): Deleted.
        * platform/network/FormData.h:
        (WebCore::FormDataElement::encode):
        (WebCore::FormDataElement::decode):
        (WebCore::FormData::encode):
        (WebCore::FormData::decode):

2014-07-03  Brady Eidson  <beidson@apple.com>

        Selection rects sent to ServicesOverlayController are wrong.
        <rdar://problem/16727796> and https://bugs.webkit.org/show_bug.cgi?id=134568

        Reviewed by Darin Adler (and Tim Horton and Ryosuke Niwa).

        * WebCore.exp.in:

        Update the gatherer to keep GapRects separate from LayoutRects:
        * editing/SelectionRectGatherer.cpp:
        (WebCore::SelectionRectGatherer::addRects):
        (WebCore::SelectionRectGatherer::Notifier::~Notifier):
        (WebCore::SelectionRectGatherer::clearAndCreateNotifier):
        * editing/SelectionRectGatherer.h:

        * page/EditorClient.h:
        (WebCore::EditorClient::selectionRectsDidChange): Updated to take LayoutRects and GapRects separately.

        Change RenderSelectionInfo to also hang on to the individual rects that formed the final bounding rect:
        * rendering/RenderSelectionInfo.h:
        (WebCore::RenderSelectionInfo::RenderSelectionInfo): If the RenderObject is a RenderText, then call
          collectSelectionRectsForLineBoxes instead of selectionRectForRepaint.
        (WebCore::RenderSelectionInfo::rects):

        * rendering/RenderText.cpp:
        (WebCore::RenderText::collectSelectionRectsForLineBoxes): Added
        (WebCore::RenderText::selectionRectForRepaint):
        * rendering/RenderText.h:

        * rendering/RenderTextLineBoxes.cpp:
        (WebCore::RenderTextLineBoxes::collectSelectionRectsForRange): Added
        * rendering/RenderTextLineBoxes.h:

        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSubtreeSelection): Add the list of rects to the gatherer instead of just 
          the bounding rect.

2014-07-03  Brady Eidson  <beidson@apple.com>

        Possible crash in IconDatabase in WebCore::IconDatabase::dispatchDidRemoveAllIconsOnMainThread
        <rdar://problem/17437687> and https://bugs.webkit.org/show_bug.cgi?id=134517

        Reviewed by Eric Carlson.

        Since WebCore::IconDatabase is not RefCounted there’s no obvious way to keep it alive until it is
        truly no longer needed.

        This isn’t generally a problem because they are usually a singleton that lasts the lifetime of the process.

        In the WebKit2 case, WebCore::IconDatabases can come and go as their owning WebIconDatabases come and go.

        So we can rely on WebIconDatabase to handle the lifetime appropriately. 

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::close): If the database is actually closed, notify the client.
        (WebCore::IconDatabase::IconDatabase):
        (WebCore::IconDatabase::isOpen): Take into account whether there’s any main thread callbacks, plus what
          is covered by isOpenBesidesMainThreadCallbacks.
        (WebCore::IconDatabase::isOpenBesidesMainThreadCallbacks): Take into account whether the sync thread
          is still running and whether or not the database file is still open.
        (WebCore::IconDatabase::checkClosedAfterMainThreadCallback): Checks to see if the database has just
          become 100% closed and - if so - notify the client.
        (WebCore::IconDatabase::dispatchDidImportIconURLForPageURLOnMainThread): Updated to increment the main thread
          callback count and to call checkClosedAfterMainThreadCallback when done.
        (WebCore::IconDatabase::dispatchDidImportIconDataForPageURLOnMainThread): Ditto.
        (WebCore::IconDatabase::dispatchDidRemoveAllIconsOnMainThread): Ditto.
        (WebCore::IconDatabase::dispatchDidFinishURLImportOnMainThread): Ditto.
        * loader/icon/IconDatabase.h:

        * loader/icon/IconDatabaseClient.h:
        (WebCore::IconDatabaseClient::didClose): Added. For the IconDatabase to tell its client it is 100% closed.

2014-07-03  Chris Fleizach  <cfleizach@apple.com>

        AX: VoiceOver does not read aria-expanded attribute on controls in Safari
        https://bugs.webkit.org/show_bug.cgi?id=134527

        Reviewed by Mario Sanchez Prada.

        Expose whether the ARIA expanded property is present or not.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper accessibilitySupportsARIAExpanded]):

2014-07-02  Jon Honeycutt  <jhoneycutt@apple.com>

        Removing an element with CSS -webkit-overflow-scrolling: touch breaks
        subsequent touch events

        <https://bugs.webkit.org/show_bug.cgi?id=134584>
        <rdar://problem/17202021>

        This issue is caused by the order of teardown for RenderLayers.

        RenderLayer clears its m_backing in its destructor, calling the
        RenderLayerBacking destructor. The RenderLayerBacking destructor calls
        RenderLayerCompositor::willRemoveScrollingLayer(), which tries to
        access the RenderLayer's backing that has already been cleared. This
        causes us to skip the call to ChromeClient::removeScrollingLayer(),
        resulting in a stale view that can block touch events.

        Reviewed by Simon Fraser.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateScrollingLayers):
        When calling willRemoveScrollingLayerWithBacking(), pass both the layer
        and the RenderLayerBacking.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::willRemoveScrollingLayerWithBacking):
        Renamed. Use the passed RenderLayerBacking, as the RenderLayer's
        backing might have already been cleared.
        (WebCore::RenderLayerCompositor::willRemoveScrollingLayer): Deleted.

        * rendering/RenderLayerCompositor.h:
        Renamed willRemoveScrollingLayer() to
        willRemoveScrollingLayerWithBacking() and added a parameter.

2014-07-01  Mark Rowe  <mrowe@apple.com>

        Ensure that the WebKit bundle version in the user agent string continues to match the current format.
        <https://webkit.org/b/134524> / <rdar://problem/17447771>

        Reviewed by Simon Fraser.

        * page/cocoa/UserAgent.h:
        * page/cocoa/UserAgent.mm:
        (WebCore::userVisibleWebKitBundleVersionFromFullVersion): Updated to take an NSString now that it's internal
        to the file.
        (WebCore::userAgentBundleVersionFromFullVersionString): Limit the bundle version included in the user agent
        string to three components.
        * page/ios/UserAgentIOS.mm:
        (WebCore::standardUserAgentWithApplicationName): Update to call userAgentBundleVersionFromFullVersionString.
        * page/mac/UserAgentMac.mm:
        (WebCore::standardUserAgentWithApplicationName): Ditto.

2014-07-01  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/134522> Remove duplication in code that prepares the user agent string on Mac and iOS

        Reviewed by Simon Fraser.

        * page/cocoa/UserAgent.h:
        * page/cocoa/UserAgent.mm:
        (WebCore::userVisibleWebKitBundleVersionFromFullVersion): Moved from WebKit2.
        * page/ios/UserAgentIOS.mm:
        (WebCore::standardUserAgentWithApplicationName): Pass the WebKit bundle version through userVisibleWebKitBundleVersionFromFullVersion
        before including it in the user agent string.
        * page/mac/UserAgentMac.mm:
        (WebCore::standardUserAgentWithApplicationName): Ditto.

2014-07-02  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/134521> iOS should use shared code to determine the system marketing version

        Reviewed by Simon Fraser.

        * WebCore.xcodeproj/project.pbxproj: Add the new files, and sort the groups they're in.
        * page/cocoa/UserAgent.h: Copied from Source/WebCore/page/mac/UserAgent.h.
        * page/cocoa/UserAgent.mm: Renamed from Source/WebCore/page/mac/UserAgent.h.
        Move systemMarketingVersionForUserAgentString to a location where it can be shared between
        Mac and iOS.
        * page/ios/UserAgentIOS.mm:
        (WebCore::standardUserAgentWithApplicationName): Switch to systemMarketingVersionForUserAgentString.
        * page/mac/UserAgentMac.mm:
        * platform/cocoa/SystemVersion.h: Renamed from Source/WebCore/platform/mac/SystemVersionMac.h.
        * platform/cocoa/SystemVersion.mm: Renamed from Source/WebCore/platform/mac/SystemVersionMac.mm.
        Move to a location that makes it clear this is shared between Mac and iOS. Enable the modern Mac
        codepath for iOS as well.

2014-07-02  Anders Carlsson  <andersca@apple.com>

        Remove keyed coding from FormData
        https://bugs.webkit.org/show_bug.cgi?id=134565

        Reviewed by Tim Horton.

        * platform/network/FormData.cpp:
        (WebCore::encodeElement): Deleted.
        (WebCore::decodeElement): Deleted.
        (WebCore::FormData::encode): Deleted.
        (WebCore::FormData::decode): Deleted.
        * platform/network/FormData.h:

2014-07-02  Anders Carlsson  <andersca@apple.com>

        Get rid of the HistoryItem encoding/decoding in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=134564

        Reviewed by Beth Dakin.

        * WebCore.exp.in:
        * history/HistoryItem.cpp:
        (WebCore::HistoryItem::encodeBackForwardTree): Deleted.
        (WebCore::encodeRect): Deleted.
        (WebCore::encodeSize): Deleted.
        (WebCore::HistoryItem::encodeBackForwardTreeNode): Deleted.
        (WebCore::DecodeRecursionStackElement::DecodeRecursionStackElement): Deleted.
        (WebCore::decodeRect): Deleted.
        (WebCore::decodeSize): Deleted.
        (WebCore::HistoryItem::decodeBackForwardTree): Deleted.
        * history/HistoryItem.h:

2014-07-02  Alex Christensen  <achristensen@webkit.org>

        [WebGL] Fix crash when glsl expressions are too complex.
        https://bugs.webkit.org/show_bug.cgi?id=134554
        <rdar://problem/17540462>

        Reviewed by Dean Jackson.
        
        This fixes the Khronos test conformance/glsl/bugs/long-expressions-should-not-crash.html.

        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
        Add SH_LIMIT_EXPRESSION_COMPLEXITY to the ANGLE compile options.

2014-07-02  Benjamin Poulain  <benjamin@webkit.org>

        WebCore JIT: rename registerCount to something less generic and add new types for lists of registers and lists of stack references
        https://bugs.webkit.org/show_bug.cgi?id=134552

        Reviewed by Alex Christensen.

        Little cleanup:
        -The name registerCount was a little too generic. Rename that to "maximumRegisterCount" to avoid confusion.
        -Add a new type RegisterVector for any vector holding registers. This is just to avoid repeating the inline
         size everywhere, no functional change.
        -Same idea for the stack: welcome StackReferenceVector!

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::saveAllocatedCallerSavedRegisters):
        Remove the appendVector here. It was unnecessarily cautious, StackAllocator already protect us
        from mistakes.

        * cssjit/RegisterAllocator.h:
        (WebCore::RegisterAllocator::allocatedRegisters):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        Changing from the count of "calleeSavedRegisterCount" to "maximumRegisterCount" will cause
        calleeSavedRegisterStackReferences to always overallocate.
        The code generator is never on the heap, so that should not change anything.

        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::push):
        (WebCore::StackAllocator::pop):

2014-07-02  Dan Bernstein  <mitz@apple.com>

        Remove some code only needed for versions of Safari that are no longer supported
        https://bugs.webkit.org/show_bug.cgi?id=134537

        Reviewed by Anders Carlsson.

        * bindings/objc/DOMHTML.mm:
        (-[DOMHTMLInputElement _rectOnScreen]): Deleted.
        (-[DOMHTMLInputElement _replaceCharactersInRange:withString:selectingFromIndex:]): Deleted.
        (-[DOMHTMLInputElement _selectedRange]): Deleted.
        * bindings/objc/DOMPrivate.h:
        * editing/EditorCommand.cpp:
        (WebCore::createCommandMap):

2014-07-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GStreamer] MediaPlayerPrivateGStreamer.cpp fails to build when VIDEO_TRACK is enabled and using GSTREAMER_MPEGTS
        https://bugs.webkit.org/show_bug.cgi?id=134548

        Reviewed by Philippe Normand.

        Include AtomicStringHash.h when ENABLE(VIDEO_TRACK) && USE(GSTREAMER_MPEGTS)
        since it's used by HashMap<AtomicString, RefPtr<InbandMetadataTextTrackPrivateGStreamer>>

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

2014-07-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Unstable headers should include webkitdomdefines-unstable.h
        https://bugs.webkit.org/show_bug.cgi?id=134540

        Reviewed by Martin Robinson.

        Instead of the class header that can only be included from webkitdom.h.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (WriteData):

2014-07-02  Mario Sanchez Prada  <mario.prada@samsung.com>

        REGRESSION(r170008): [GTK] Layout Tests fast/forms/option-constructor-selected.html and fast/forms/select-live-pseudo-selectors.html crash.
        https://bugs.webkit.org/show_bug.cgi?id=134399

        Reviewed by Chris Fleizach.

        Check that the value of optionIndex passed as a parameter is valid
        before calling didUpdateActiveOption() over the item of the menu
        list, to prevent crashes in platforms where renderers (and therefore
        accessibility objects) might not be created for items at the time
        of calling AccessibilityMenuList::didUpdateActiveOption().

        * accessibility/AccessibilityMenuList.cpp:
        (WebCore::AccessibilityMenuList::didUpdateActiveOption): Added check.

2014-07-02  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Do not add forward declaration of class struct for interfaces
        https://bugs.webkit.org/show_bug.cgi?id=134297

        Reviewed by Martin Robinson.

        * PlatformGTK.cmake: Make files generated by
        gobject-generate-headers.pl script depend on it.
        * bindings/gobject/WebKitDOMEventTarget.h: Remove forward declaration.
        * bindings/gobject/WebKitDOMNodeFilter.h: Ditto
        * bindings/gobject/WebKitDOMXPathNSResolver.h: Ditto.
        * bindings/scripts/gobject-generate-headers.pl: Use Iface instead
        of Class suffix for interfaces.

2014-07-01  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] XPathNSResolver should be exposed as an interface instead of as a class
        https://bugs.webkit.org/show_bug.cgi?id=134028

        Reviewed by Gustavo Noronha Silva.

        Add custom implementation of WebKitDOMXPathNSResolver to expose it
        as an interface instead of a class. It also includes an internal
        default implementation of the interface to support methods that
        create a XPathNSResolver using the native implementation.

        * PlatformGTK.cmake: Add new files to compilation.
        * bindings/gobject/GObjectXPathNSResolver.cpp: Added.
        (WebCore::GObjectXPathNSResolver::~GObjectXPathNSResolver):
        (WebCore::GObjectXPathNSResolver::lookupNamespaceURI): Call
        webkit_dom_xpath_ns_resolver_lookup_namespace_uri().
        * bindings/gobject/GObjectXPathNSResolver.h: Added.
        (WebCore::GObjectXPathNSResolver::create):
        (WebCore::GObjectXPathNSResolver::GObjectXPathNSResolver): Create
        a new GObjectXPathNSResolver for the given WebKitDOMXPathNSResolver.
        * bindings/gobject/WebKitDOMXPathNSResolver.cpp: Added.
        (webkit_dom_xpath_ns_resolver_default_init):
        (webkit_dom_xpath_ns_resolver_lookup_namespace_uri):
        (webkitDOMNativeXPathNSResolverFinalize):
        (webkitDOMNativeXPathNSResolverConstructor):
        (webkit_dom_native_xpath_ns_resolver_init):
        (webkit_dom_native_xpath_ns_resolver_class_init):
        (webkitDOMNativeXPathNSResolverLookupNamespaceURI):
        (webkitDOMXPathNSResolverIfaceInit):
        (WebKit::core): Return the native XPathNSResolver when using the
        internal implementation or create a custom XPathNSResolver when
        using a user provided WebKitDOMXPathNSResolver.
        (WebKit::kit):
        * bindings/gobject/WebKitDOMXPathNSResolver.h: Added.
        * bindings/gobject/WebKitDOMXPathNSResolverPrivate.h: Added.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateFunction): Add exceptions for XPathNSResolver since
        the core method returns a PassRefPtr.

2014-07-01  Frédéric Wang  <fred.wang@free.fr>

        The OpenType MATH table is not read on Mac
        https://bugs.webkit.org/show_bug.cgi?id=133569

        Reviewed by Chris Fleizach.

        An incorrect tag format is used to load the OpenType MATH table on Mac.
        This commit makes the format consistent with what is used for other tables on Mac.
        This will allow to load the MATH table and to use it for the MathML rendering.

        No new tests. platform/graphics/opentype already contains tests for the OpenType MATH support.

        * platform/graphics/opentype/OpenTypeMathData.cpp:

2014-07-01  Alex Christensen  <achristensen@webkit.org>

        [Win64] Unreviewed build fix.

        * WebCore.vcxproj/WebCore.vcxproj:
        Exclude CA files from 32 and 64 bit WinCairo builds.
        * WebCore.vcxproj/WebCoreTestSupport.vcxproj:
        Don't use a precompiled header in 32 or 63 bit builds of MockCDM.cpp.

2014-07-01  Alex Christensen  <achristensen@webkit.org>

        Reduce dynamic memory allocation in css jit.
        https://bugs.webkit.org/show_bug.cgi?id=134416

        Reviewed by Benjamin Poulain.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::saveAllocatedRegisters):
        * cssjit/RegisterAllocator.h:
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::push):
        (WebCore::StackAllocator::pop):
        Use inlineCapacity template parameter to reduce malloc calls.
        I use 32 as the inline capacity for non-register related vectors because that
        is probably big enough for the selector compiler, and if it is not then a malloc
        call will not be significant because the selector is very complex.

2014-07-01  Eric Carlson  <eric.carlson@apple.com>

        WebVTT percentage value can be a float
        https://bugs.webkit.org/show_bug.cgi?id=134511

        Reviewed by Brent Fulgham.

        No new tests, existing tests modified.

        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGeneric::setLine): int -> double.
        (WebCore::TextTrackCueGeneric::setPosition): Ditto.
        * html/track/TextTrackCueGeneric.h:

        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::setLine): Ditto.
        (WebCore::VTTCue::setPosition):  Ditto.
        (WebCore::VTTCue::setCueSettings): Support floating point values for line, position, and size.
        (WebCore::scanPercentage): Deleted.
        * html/track/VTTCue.h:

        * html/track/VTTScanner.cpp:
        (WebCore::VTTScanner::scanFloat): Support negative values.
        * html/track/VTTScanner.h:

        * html/track/WebVTTParser.cpp: Include parseFloatPercentageValue in non-WEBVTT_REGIONS builds.
        * html/track/WebVTTParser.h:

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Drive by change to take a cue
            reference rather than a pointer.
        (WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Ditto.
        (WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Loop over all cues, don't LOG that
            we are asking the client to delete the cue because the client will have already deleted
            it when status when to GenericCueData::Complete.
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:

2014-07-01  Simon Fraser  <simon.fraser@apple.com>

        Improve behavior of position:sticky on zoomed pages
        https://bugs.webkit.org/show_bug.cgi?id=134535
        <rdar://problem/12898829>

        Reviewed by Dean Jackson.

        Despite r138036, position:sticky still had incorrect behavior in zoomed pages.
        
        Fix by removing the scaling of the rect from viewportConstrainedVisibleContentRect(),
        since all the other math happens in unscaled coordinates.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):

2014-07-01  Alex Christensen  <achristensen@webkit.org>

        [WebGL] Fix PVRTC extension.
        https://bugs.webkit.org/show_bug.cgi?id=134525

        Reviewed by Dean Jackson.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::validateCompressedTexDimensions):
        Remove the return false which I mistakenly committed in r170128
        and make the gl error match the S3TC error and the khronos test.

2014-07-01  Chris Fleizach  <cfleizach@apple.com>

        AX: iOS does not expose ARIA toggle buttons at all (not even as a regular button)
        https://bugs.webkit.org/show_bug.cgi?id=133875

        Reviewed by Enrica Casucci.

        Support the toggle button type in iOS.

        Test: platform/ios-sim/accessibility/toggle-button.html

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):
        (-[WebAccessibilityObjectWrapper accessibilityTraits]):
        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):

2014-07-01  Dean Jackson  <dino@apple.com>

        [iOS] Subsampled JPEG images do not draw correctly via the canvas APIs
        https://bugs.webkit.org/show_bug.cgi?id=134513
        <rdar://problem/12078860>
        <rdar://problem/16745393>

        Reviewed by Tim Horton.

        Subsampled images (e.g. JPEG) were not consistently using
        their original dimensions and subsampled dimensions. This caused
        things like texImage2D to pack the pixels incorrectly, or drawImage
        to squish the rendering.

        Renamed m_scale to m_subsamplingScale on FrameData.

        Tests: fast/canvas/image-potential-subsample.html
               fast/canvas/webgl/tex-image-and-sub-image-2d-with-potentially-subsampled-image.html

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::cacheFrame): Rename to m_subsamplingScale.
        (WebCore::BitmapImage::frameAtIndex): Ditto.
        * platform/graphics/BitmapImage.h:
        (WebCore::FrameData::FrameData): Ditto.
        * platform/graphics/cg/BitmapImageCG.cpp:
        (WebCore::FrameData::clear): Ditto.
        (WebCore::BitmapImage::BitmapImage): Ditto.
        (WebCore::BitmapImage::draw): Use a scaledSrcRect that reflects the subsampled size,
        rather than assuming the srcRect accurately reflects how many pixels we have
        in the Bitmap.
        (WebCore::BitmapImage::copyUnscaledFrameAtIndex):
        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        (WebCore::GraphicsContext3D::ImageExtractor::extractImage): Similar fix, although this
        time we just ask the image decoder to take into account the subsampled size
        when it is "generating" a frame, causing it to use the bitmap data it has already
        decoded.

2014-07-01  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Selected DOM element highlights invisible near bottom of the viewport (topContentInset?)
        https://bugs.webkit.org/show_bug.cgi?id=133818

        Reviewed by Beth Dakin.

        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::update):
        Take the topContentInset into account when sizing the InspectorOverlay's FrameView.

2014-07-01  Chris Fleizach  <cfleizach@apple.com>

        AX: HTML indeterminate IDL attribute not mapped to checkbox value=2
        https://bugs.webkit.org/show_bug.cgi?id=134492

        Reviewed by Andreas Kling.

        Support the indeterminate attribute in AX code.

        Test: Update existing test: accessibility/aria-checked-mixed-value

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::checkboxOrRadioValue):

2014-07-01  Myles C. Maxfield  <mmaxfield@apple.com>

        Typing an automatic text replacement phrase after a br in contenteditable is not rendered as expected
        https://bugs.webkit.org/show_bug.cgi?id=133883

        Reviewed by Enrica Casucci.

        enclosingDeletableElement() makes sure that the element's container is editable, but not
        that it is capable of having content inside it (like how a <br> can't).

        No new tests. I don't think this is testable because it requires setting some state in System Preferences.

        * editing/DeleteButtonController.cpp:
        (WebCore::enclosingDeletableElement):

2014-07-01  Alex Christensen  <achristensen@webkit.org>

        [iOS] Unreviewed build fix after r170640.

        * page/EditorClient.h:
        (WebCore::EditorClient::selectedTelephoneNumberRangesChanged):
        Add ifdefs to make everything compile and link.

2014-07-01  Daniel Bates  <dabates@apple.com>

        Remove unnecessary calls to std::move()
        https://bugs.webkit.org/show_bug.cgi?id=134493

        Reviewed by Anders Carlsson.

        * Modules/encryptedmedia/CDM.cpp:
        (WebCore::CDM::CDM):
        * css/CSSGrammar.y.in:
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::formatNumberValue):
        * css/MediaQuery.cpp:
        (WebCore::MediaQuery::MediaQuery):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::dashesForIntersectionsWithRect):

2014-07-01  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Pixel crack in breadcrumbs at devforums.apple.com.
        https://bugs.webkit.org/show_bug.cgi?id=134491

        Reviewed by Simon Fraser.

        Do not early round geometry values, while computing background image position. It changes the final
        subpixel values and that could lead to wrong snap positions.
        pixelSnapBackgroundImageGeometryForPainting() takes care of geometry snapping.

        Test: fast/backgrounds/background-image-size-double-rounding.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

2014-07-01  Pratik Solanki  <psolanki@apple.com>

        Create NSURLRequest lazily when USE(CFNETWORK) is enabled
        https://bugs.webkit.org/show_bug.cgi?id=134441

        Reviewed by Andreas Kling.

        No new tests. Should be covered by existing tests.

        * platform/network/cf/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest):
        (WebCore::ResourceRequest::encodingRequiresPlatformData):
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
        (WebCore::ResourceRequest::setStorageSession):
        * platform/network/cocoa/ResourceRequestCocoa.mm:
        (WebCore::ResourceRequest::nsURLRequest):

2014-07-01  Brady Eidson  <beidson@apple.com>

        Combine the Telephone and Selection overlay controllers, updating UI behavior.
        https://bugs.webkit.org/show_bug.cgi?id=134461

        Reviewed by Tim Horton.

        * WebCore.exp.in:

        * dom/Range.cpp:
        (WebCore::Range::contains): Returns true if the Range completely contains the passed-in Range.
        * dom/Range.h:

2014-07-01  Antti Koivisto  <antti@apple.com>

        REGRESSION(160908): vube.com video won't play after going into and out of fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=134489

        Reviewed by Zalan Bujtas.

        Test: fullscreen/full-screen-plugin.html

        It is difficult to restore the render tree correctly in all cases after removing a full screen
        renderer from the tree. r160908 avoided dealing with this by simply always reconstructing the subtree.
        Unfortunately plugin lifetime is currently tied to its renderer so this would cause the plugin to restart.
        
        With this patch we avoid reconstruction in normal cases and only force it if the render tree is complicated.

        * dom/Document.cpp:
        (WebCore::unwrapFullScreenRenderer):
        
            Force reconstruction conditionally.

        (WebCore::Document::webkitWillEnterFullScreenForElement):
        (WebCore::Document::webkitDidExitFullScreenForElement):
        * rendering/RenderFullScreen.cpp:
        (WebCore::RenderFullScreen::wrapRenderer):
        (WebCore::RenderFullScreen::unwrapRenderer):
        
            Deal with the simple case of single child, possibly in anonymous wrapper.
            In other cases request reconstruction.
            This is covered by the existing fullscreen tests.

        * rendering/RenderFullScreen.h:

2014-07-01  Zan Dobersek  <zdobersek@igalia.com>

        Remove remaining Vector<> copies in WebCore accessibility code
        https://bugs.webkit.org/show_bug.cgi?id=133263

        Reviewed by Darin Adler.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::notificationPostTimerFired): Don't copy the Vector member and
        then clear it -- move it into the local variable instead.
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::ariaLabeledByText): Move the axElements Vector into
        the AccessibilityText constructor.
        (WebCore::AccessibilityNodeObject::stringValue): Create a const reference to the Vector of
        HTMLSelectElement's list items instead of copying it.
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityText::AccessibilityText): Take the Vector parameter by non-const
        value and move it into the member variable.
        * accessibility/AccessibilityRenderObject.cpp: 
        (WebCore::AccessibilityRenderObject::stringValue): Create a const reference to the Vector
        of HTMLSelectElement's list items instead of copying it.
        (WebCore::AccessibilityRenderObject::ariaSelectedRows): Wrap the AccessibilityChildrenVector
        iteration in a lambda. Use it to iterate over either the newly-constructed Vector (in case
        the object has the tree role) or the reference to the vector returned by
        AccessibilityTable::rows() (in case the object is an AccessibilityTable instance).

2014-06-30  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170605.
        https://bugs.webkit.org/show_bug.cgi?id=134484

        The changes cause crashes on ARM64 (Requested by benjaminp on
        #webkit).

        Reverted changeset:

        "Reduce dynamic memory allocation in css jit."
        https://bugs.webkit.org/show_bug.cgi?id=134416
        http://trac.webkit.org/changeset/170605

2014-06-30  Anders Carlsson  <andersca@apple.com>

        Change the AddBackForwardItem message to take a page state object
        https://bugs.webkit.org/show_bug.cgi?id=134475

        Reviewed by Andreas Kling.

        * WebCore.exp.in:

2014-06-30  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Do not put tap highlight on images that are not in links, and on applet/embed/object
        https://bugs.webkit.org/show_bug.cgi?id=134471
        <rdar://problem/17513542>

        Reviewed by Enrica Casucci.

        UIKit has some special code to avoid tap highlight on certain type of object. This is not very flexible
        since the page has no way of overriding that behavior.

        This patch implement the same feature by changing the default stylesheet. The tap highlight is disabled
        by default for those object, and enabled for images that are in a link.

        * css/html.css:
        (applet, embed, object, img):
        (:-webkit-any-link img):

2014-06-30  Myles C. Maxfield  <mmaxfield@apple.com>

        All Indic text is rendered as boxes on iOS
        https://bugs.webkit.org/show_bug.cgi?id=134464

        Reviewed by Simon Fraser.

        I made a typo in r170207.

        Test: fast/text/indic.html

        * platform/graphics/ios/FontCacheIOS.mm:
        (WebCore::languageSpecificFallbackFont):

2014-06-30  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] languageSpecificFallbackFont() is not consistent
        https://bugs.webkit.org/show_bug.cgi?id=134473

        Reviewed by Darin Adler.

        It can use "<" throughout the function as well as keeping the fallthrough behavior consistent.

        No tests because there is no behavior change.

        * platform/graphics/ios/FontCacheIOS.mm:
        (WebCore::languageSpecificFallbackFont):

2014-06-30  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed gardening.

        * WebCore.vcxproj/WebCore.vcxproj: Do not compile JSFileException
        and JSFileReaderSync multiple times.

2014-06-30  Daniel Bates  <dabates@apple.com>

        Avoid copying function object in lambda function in ScrollingThread::dispatchBarrier(); actually use move semantics
        https://bugs.webkit.org/show_bug.cgi?id=134470

        Reviewed by Anders Carlsson.

        Currently we always copy construct the captured std::function object when calling callOnMainThread()
        in the lambda function created in ScrollingThread::dispatchBarrier() because captured variables are
        const in a lambda expression's body by default. That is, the std::function object is captured as const.
        Instead, we should mark this lambda expression as mutable so the captured std::function object is
        non-const and hence we can use move semantics when passing it to callOnMainThread().

        * page/scrolling/ScrollingThread.cpp:
        (WebCore::ScrollingThread::dispatchBarrier):

2014-06-30  Anders Carlsson  <andersca@apple.com>

        Adopt the legacy session decoding inside WebPage::restoreSession for now
        https://bugs.webkit.org/show_bug.cgi?id=134465

        Reviewed by Sam Weinig.

        * WebCore.exp.in:

2014-06-30  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170578.
        https://bugs.webkit.org/show_bug.cgi?id=134462

        causes assertions loading nytimes.com on iOS (Requested by
        smfr on #webkit).

        Reverted changeset:

        "Create NSURLRequest lazily when USE(CFNETWORK) is enabled"
        https://bugs.webkit.org/show_bug.cgi?id=134441
        http://trac.webkit.org/changeset/170578

2014-06-30  Alex Christensen  <achristensen@webkit.org>

        Reduce dynamic memory allocation in css jit.
        https://bugs.webkit.org/show_bug.cgi?id=134416

        Reviewed by Benjamin Poulain.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::FunctionCall):
        (WebCore::FunctionCall::saveAllocatedCallerSavedRegisters):
        * cssjit/RegisterAllocator.h:
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        Use inlineCapacity template parameter to reduce malloc calls.
        I use 16 and 32 as the inline capacity for non-register related vectors because that
        is probably big enough for the selector compiler, and if it is not then a malloc
        call will not be significant because the selector is very complex.
        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::push):
        Pass a vector of stack references to match calls to pop and to avoid a call to appendVector.

2014-06-30  Alex Christensen  <achristensen@webkit.org>

        Use non-thumb registers in armv7 css jit.
        https://bugs.webkit.org/show_bug.cgi?id=134450

        Reviewed by Geoff Garen.

        * cssjit/RegisterAllocator.h:
        (WebCore::RegisterAllocator::isValidRegister):
        (WebCore::RegisterAllocator::isCallerSavedRegister):
        Use additional general purpose registers.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        Always succeed when compiling css selectors.

2014-06-30  Myles C. Maxfield  <mmaxfield@apple.com>

        Tiles on bottom of screen are not always allocated when necessary
        https://bugs.webkit.org/show_bug.cgi?id=134272

        Reviewed by Simon Fraser.

        The initial visibleRect is in the coordinate of the root layer, so its origin
        is at the top left of the view. The initial rect we were using doesn't
        include the contents inset, so it was too short, which was causing tiles near
        the bottom of the screen to not always be allocated if the tile threshold was
        close to the bottom of the view. Instead, we want to include the contents
        inset size so the visible rect includes the entire view.
        GraphicsLayerCA::recursiveCommitChanges() takes care of mapping and cropping
        the visible rect into the tiled layer's coordinate system, at which point it
        is used for visible tile logic.

        Test: platform/mac-wk2/tiled-drawing/visible-rect-content-inset.html

        * platform/graphics/ca/TileCoverageMap.cpp:
        (WebCore::TileCoverageMap::update):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):

2014-06-30  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed project gardening.

        * WebCore.vcxproj/WebCore.vcxproj: Clean up path information so
        files appear in appropriate places in project view.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.

2014-06-30  Zalan Bujtas  <zalan@apple.com>

        Remove redundant repaintCompositedLayers() parameter and its dependencies.
        https://bugs.webkit.org/show_bug.cgi?id=134431

        Reviewed by Darin Adler.

        No change in functionality.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::convertToPixelSnappedLayerCoords): Deleted.
        (WebCore::RenderLayer::convertToLayerCoords): Deleted.
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::repaintCompositedLayers):
        (WebCore::RenderLayerCompositor::recursiveRepaintLayer):
        * rendering/RenderLayerCompositor.h:

2014-06-30  Alex Christensen  <achristensen@webkit.org>

        Remove webkit prefix from pointer lock.
        https://bugs.webkit.org/show_bug.cgi?id=134312

        Reviewed by Dean Jackson.

        * dom/Document.cpp:
        (WebCore::Document::exitPointerLock):
        (WebCore::Document::pointerLockElement):
        (WebCore::Document::webkitExitPointerLock): Deleted.
        (WebCore::Document::webkitPointerLockElement): Deleted.
        * dom/Document.h:
        * dom/Document.idl:
        * dom/Element.cpp:
        (WebCore::Element::requestPointerLock):
        (WebCore::Element::webkitRequestPointerLock): Deleted.
        * dom/Element.h:
        * dom/Element.idl:
        * dom/EventNames.h:
        * dom/MouseEvent.idl:
        * dom/MouseRelatedEvent.h:
        (WebCore::MouseRelatedEvent::movementX):
        (WebCore::MouseRelatedEvent::movementY):
        (WebCore::MouseRelatedEvent::webkitMovementX): Deleted.
        (WebCore::MouseRelatedEvent::webkitMovementY): Deleted.
        * page/PointerLockController.cpp:
        (WebCore::PointerLockController::PointerLockController):
        Initialize all data members.
        (WebCore::PointerLockController::requestPointerLock):
        (WebCore::PointerLockController::didAcquirePointerLock):
        (WebCore::PointerLockController::didNotAcquirePointerLock):
        (WebCore::PointerLockController::didLosePointerLock):

2014-06-30  Myles C. Maxfield  <mmaxfield@apple.com>

        U16_IS_SURROGATE should not be called with a UChar32
        https://bugs.webkit.org/show_bug.cgi?id=134440

        Reviewed by Darin Adler.

        No new tests because there is no behavior change.

        * platform/graphics/mac/ComplexTextController.cpp:
        (WebCore::advanceByCombiningCharacterSequence):

2014-06-30  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Remove m_evasObject from Widget
        https://bugs.webkit.org/show_bug.cgi?id=134442

        Reviewed by Gyuyoung Kim.

        Since WebKit1/EFL was dropped, we don't need to keep the m_evasObject
        in the Widget.cpp because it's not used for WebKit2/Efl.

        * platform/Widget.h:
        (WebCore::Widget::evasObject): Deleted.
        * platform/efl/ScrollbarEfl.cpp:
        Removed WebKit1/Efl specific code which uses m_evasObject.
        It will be a dummy until WebKit2/Efl support proper scrollbar implementation.
        (WebCore::ScrollbarEfl::ScrollbarEfl):
        (WebCore::ScrollbarEfl::~ScrollbarEfl):
        (WebCore::ScrollbarEfl::setParent):
        (WebCore::ScrollbarEfl::frameRectsChanged):
        (WebCore::ScrollbarEfl::invalidate):
        (ScrollbarEfl::ScrollbarEfl): Deleted.
        (ScrollbarEfl::~ScrollbarEfl): Deleted.
        (scrollbarEflEdjeMessage): Deleted.
        (ScrollbarEfl::setParent): Deleted.
        (ScrollbarEfl::updateThumbPosition): Deleted.
        (ScrollbarEfl::updateThumbProportion): Deleted.
        (ScrollbarEfl::updateThumbPositionAndProportion): Deleted.
        (ScrollbarEfl::frameRectsChanged): Deleted.
        (ScrollbarEfl::invalidate): Deleted.
        * platform/efl/ScrollbarEfl.h:
        Removed unnecessary methods. In addition, applied final, override keyword.
        (WebCore::ScrollbarEfl::handleMouseMoveEvent): Deleted.
        (WebCore::ScrollbarEfl::handleMouseOutEvent): Deleted.
        (WebCore::ScrollbarEfl::handleMousePressEvent): Deleted.
        (WebCore::ScrollbarEfl::handleMouseReleaseEvent): Deleted.
        * platform/efl/WidgetEfl.cpp:
        (WebCore::Widget::Widget):
        (WebCore::Widget::setEvasObject): Deleted.

2014-06-30  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Fix deprecated warning with bison 3
        https://bugs.webkit.org/show_bug.cgi?id=133791

        Reviewed by Csaba Osztrogonác.

        No new tests because no functional changes.

        * css/CSSGrammar.y.in:
        * xml/XPathGrammar.y:

2014-06-30  Jaehun Lim  <ljaehun.lim@samsung.com>

        Remove HarfBuzzShaper::setDrawRange()
        https://bugs.webkit.org/show_bug.cgi?id=134243

        Reviewed by Gyuyoung Kim.

        setDrawRange() is not used anywhere. Remove it.
        And m_fromIndex and m_toIndex are changed by only setDrawRange().
        So remove them too and use the default values instead of them.

        No new tests, no behavior changes.

        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::HarfBuzzShaper):
        (WebCore::HarfBuzzShaper::fillGlyphBufferFromHarfBuzzRun):
            currentCharacterIndex is unsigned, always greater than 0. Clean up if statements.
        (WebCore::HarfBuzzShaper::setDrawRange): Deleted.
        * platform/graphics/harfbuzz/HarfBuzzShaper.h:

2014-06-29  Pratik Solanki  <psolanki@apple.com>

        Create NSURLRequest lazily when USE(CFNETWORK) is enabled
        https://bugs.webkit.org/show_bug.cgi?id=134441

        Reviewed by Sam Weinig.

        No new tests. Should be covered by exsting tests.

        * platform/network/cf/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest):
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
        (WebCore::ResourceRequest::setStorageSession):
        * platform/network/cocoa/ResourceRequestCocoa.mm:
        (WebCore::ResourceRequest::nsURLRequest):

2014-06-29  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Remove netscape plugin implementation from WebCore
        https://bugs.webkit.org/show_bug.cgi?id=134438

        Reviewed by Gyuyoung Kim.

        Because WebKit1/Efl was dropped, PluginPackageEfl.cpp and PluginViewEfl.cpp are not necessary.

        * PlatformEfl.cmake:
        * plugins/efl/PluginPackageEfl.cpp: Removed.
        * plugins/efl/PluginViewEfl.cpp: Removed.
        * plugins/x11/PluginViewX11.cpp: Removed.
        This file is to share common code between WebKit1/Efl and WebKit1/GTk.
        Now, both ports are dropped WebKit1 support and the GTK port already removed the related files at r167016.

2014-06-29  Yoav Weiss  <yoav@yoav.ws>

        Add support for HTMLImageElement's sizes attribute
        https://bugs.webkit.org/show_bug.cgi?id=133620

        Reviewed by Dean Jackson.

        Tests: fast/dom/HTMLImageElement/sizes/image-sizes-1x.html
               fast/dom/HTMLImageElement/sizes/image-sizes-2x.html
               fast/dom/HTMLImageElement/sizes/image-sizes-js-change.html
               fast/dom/HTMLImageElement/sizes/image-sizes-js-innerhtml.html
               http/tests/loading/sizes/preload-image-sizes-2x.html
               http/tests/loading/sizes/preload-image-sizes.html

        This patch adds support for HTMLImageElement's sizes attribute and the
        related srcset extended syntax as defined in
        http://picture.responsiveimages.org/.
        This sizes attribute syntax is added to the CSSGrammar and parsed by
        the CSSParser.
        The SourceSizeList class is generated by the parser, and used to get
        the final source size.
        HTMLImageElement and HTMLPreloadScanner send this value to
        HTMLSrcsetParser.
        HTMLSrcsetParser uses this value in order to pick the right resource.

        * CMakeLists.txt: Added css/SourceSizeList.cpp.
        * Configurations/FeatureDefines.xcconfig: Added the PICTURE_SIZES flag.
        * WebCore.vcxproj/WebCore.vcxproj: Added css/SourceSizeList.*.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Added css/SourceSizeList.*.
        * WebCore.xcodeproj/project.pbxproj: Added css/SourceSizeList.*.
        * css/CSSGrammar.y.in: Added 4 grammar rules that define a Media condition,
        Source size list, Source size length and source size.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseSizesAttribute): Parse the sizes attribute.
        (WebCore::CSSParser::detectAtToken): Set the token to SIZESATTR.
        * css/CSSParser.h:
        * css/SourceSizeList.cpp: Added. Defined the SourceSize and SourceSizeList classes.
        (WebCore::SourceSize::match):
        (WebCore::computeLength):
        (WebCore::defaultValue):
        (WebCore::SourceSize::length):
        (WebCore::SourceSizeList::parseSizesAttribute):
        (WebCore::SourceSizeList::getEffectiveSize):
        * css/SourceSizeList.h: Added.
        (WebCore::SourceSize::SourceSize):
        (WebCore::SourceSizeList::append):
        * html/HTMLImageElement.cpp: Integrated sizes attribute parsing and added currentSrc.
        (WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
        (WebCore::HTMLImageElement::parseAttribute):
        (WebCore::HTMLImageElement::currentSrc):
        * html/HTMLImageElement.h:
        * html/HTMLImageElement.idl:
        * html/parser/HTMLDocumentParser.cpp: Added information required for sizes parsing to
        HTMLPreloadScanner calls.
        (WebCore::HTMLDocumentParser::pumpTokenizer):
        (WebCore::HTMLDocumentParser::insert):
        (WebCore::HTMLDocumentParser::append):
        (WebCore::HTMLDocumentParser::appendCurrentInputStreamToPreloadScannerAndScan):
        * html/parser/HTMLPreloadScanner.cpp: Integrated sizes attribute parsing.
        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
        (WebCore::TokenPreloadScanner::StartTagScanner::processAttribute):
        (WebCore::TokenPreloadScanner::scan):
        (WebCore::HTMLPreloadScanner::scan):
        * html/parser/HTMLPreloadScanner.h:
        * html/parser/HTMLSrcsetParser.cpp: Added 'w' descriptor parsing sizes based normalization.
        (WebCore::parseDescriptors):
        (WebCore::pickBestImageCandidate):
        (WebCore::bestFitSourceForImageAttributes):
        * html/parser/HTMLSrcsetParser.h:

2014-06-29  Andreas Kling  <akling@apple.com>

        No need to lazily initialize ResourceResponse internals when accessing timing data.
        <https://webkit.org/b/134437>
        <rdar://problem/17499876>

        When building with ENABLE(WEB_TIMING), the last thing that would happen when
        serializing a ResourceResponse in the network process is that we'd retrieve
        the ResourceLoadTiming to encode it as part of the response. Doing so would
        trigger the lazy instantiation of ResourceResponse's internal data structures.

        Since timing data is not actually lazily instantiated, we can just not do that.

        This shaves off ~550ms of network process main thread time on PLT, reducing
        response latency by not doing unnecessary stuff before letting the web process
        look at the downloaded data.

        Reviewed by Gavin Barraclough.

        * WebCore.exp.in:
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::adopt):
        (WebCore::ResourceResponseBase::resourceLoadTiming): Deleted.
        (WebCore::ResourceResponseBase::setResourceLoadTiming): Deleted.
        * platform/network/ResourceResponseBase.h:
        (WebCore::ResourceResponseBase::resourceLoadTiming):

2014-06-29  Pratik Solanki  <pratik.solanki@gmail.com>

        Refactor ResourceRequest into Cocoa and iOS specific files
        https://bugs.webkit.org/show_bug.cgi?id=134430

        Reviewed by Andreas Kling.

        No new tests because no functional changes.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::applyWebArchiveHackForMail): Deleted.
        * platform/network/cocoa/ResourceRequestCocoa.mm: Copied from Source/WebCore/platform/network/mac/ResourceRequestMac.mm.
        (WebCore::ResourceRequest::nsURLRequest):
        (WebCore::ResourceRequest::cfURLRequest):
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        (WebCore::ResourceRequest::doUpdateResourceHTTPBody):
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties):
        (WebCore::ResourceRequest::applyWebArchiveHackForMail):
        (WebCore::ResourceRequest::setStorageSession):
        * platform/network/ios/ResourceRequestIOS.mm: Added.
        (WebCore::ResourceRequest::useQuickLookResourceCachingQuirks):
        (WebCore::ResourceRequest::ResourceRequest):
        (WebCore::ResourceRequest::updateNSURLRequest):
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::initQuickLookResourceCachingQuirks):
        (WebCore::ResourceRequest::useQuickLookResourceCachingQuirks):
        (WebCore::ResourceRequest::ResourceRequest):
        (WebCore::ResourceRequest::updateNSURLRequest):
        (WebCore::ResourceRequest::applyWebArchiveHackForMail):
        (WebCore::ResourceRequest::nsURLRequest): Deleted.
        (WebCore::ResourceRequest::cfURLRequest): Deleted.
        (WebCore::ResourceRequest::doUpdateResourceRequest): Deleted.
        (WebCore::ResourceRequest::doUpdateResourceHTTPBody): Deleted.
        (WebCore::ResourceRequest::doUpdatePlatformRequest): Deleted.
        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody): Deleted.
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Deleted.
        (WebCore::ResourceRequest::setStorageSession): Deleted.

2014-06-29  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        TextCodecICU::encode turns the whole string as yen signs if there is any backslash in it
        https://bugs.webkit.org/show_bug.cgi?id=133678

        Reviewed by Alexey Proskuryakov.

        Test: fast/encoding/backslash-encoding-jp.html

        * platform/text/TextCodecICU.cpp:
        (WebCore::TextCodecICU::encode): fixed the copy of characters other than backslash.

2014-06-28  Dean Jackson  <dino@apple.com>

        [iOS] Pinching into a video (fullscreen gesture) leaves page zoomed in
        https://bugs.webkit.org/show_bug.cgi?id=134433
        <rdar://problem/16630794>

        Reviewed by Eric Carlson.

        Detect the number of target touches (those directly on the
        video element) and disable the page zoom if it looks
        like the user is trying to trigger fullscreen.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.handleBaseGestureStart): If we are seeing
        two touches in this video element, don't trigger fullscreen. The
        exception is if we haven't yet started playback.
        (ControllerIOS.prototype.handleBaseGestureChange): Don't allow fullscreen
        if we haven't started playback (iOS 7 behaviour).
        (ControllerIOS.prototype.handleWrapperTouchStart): Keep track of the
        number of targetted touches.

2014-06-27  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] position:fixed inside accelerated overflow:scroll is jumpy
        https://bugs.webkit.org/show_bug.cgi?id=134426
        <rdar://problem/17474523>

        Reviewed by Tim Horton.

        After committing a new layer tree (with possibly stale position:fixed layer
        positions), we need the scrolling tree to update those positions based on
        the current scroll offset.
        
        Give ScrollingTreeScrollingNode an implementation of updateLayersAfterAncestorChange()
        which is required to update fixed/sticky child nodes.

        * WebCore.exp.in:
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::updateLayersAfterAncestorChange):
        * page/scrolling/ScrollingTreeScrollingNode.h:

2014-06-28  Juan A. Suarez Romero  <jasuarez@igalia.com>  and  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use public getter/setter in GObject DOM bindings properties implementation.
        https://bugs.webkit.org/show_bug.cgi?id=134390.

        Reviewed by Carlos Garcia Campos.

        The current GObject DOM bindings generator is duplicating code when
        implementing the get/set_property methods and the public
        getters/setters, instead of making one invoking the other.
        
        This commit changes this behaviour so the code is not duplicated,
        making it easier to maintain.

        No new tests needed.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateProperty):
        (GenerateProperties):
        (WriteData):
        (GetCoreObject): Deleted.
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (webkit_dom_test_active_dom_object_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (webkit_dom_test_event_constructor_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (webkit_dom_test_exception_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (webkit_dom_test_interface_set_property):
        (webkit_dom_test_interface_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp:
        (webkit_dom_test_nondeterministic_set_property):
        (webkit_dom_test_nondeterministic_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_set_property):
        (webkit_dom_test_obj_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (webkit_dom_test_serialized_script_value_interface_get_property):
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
        (webkit_dom_test_typedefs_set_property):
        (webkit_dom_test_typedefs_get_property):
        * bindings/scripts/test/GObject/WebKitDOMattribute.cpp:
        (webkit_dom_test_exception_get_property):
        (webkit_dom_attribute_get_property):

2014-06-28  Radu Stavila  <stavila@adobe.com>

        [New Multicolumn] Elements with rounded corners and overflow:hidden do not properly clip their content
        https://bugs.webkit.org/show_bug.cgi?id=133941

        Reviewed by Darin Adler.

        When having a multicol element inside an element with overflow:hidden and border-radius,
        the fragments representing the columns need to have the border radius set also, to ensure
        proper clipping.

        Test: fast/multicol/newmulticol/multicol-clip-rounded-corners.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::collectFragments):

2014-06-27  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Background clipping with subpixel behaves differently when composited.
        https://bugs.webkit.org/show_bug.cgi?id=134422

        Reviewed by Simon Fraser.

        Adjust cliprect with the subpixel offset from the graphics layer the same way we do it for painting.
        It ensures that cliprect starts from the right position when graphics layer is not on the same
        coordinates as the associated render layer.

        Test: compositing/hidpi-compositing-layer-with-subpixel-offset-accumulation-clipping.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::clipToRect):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::applyFilters):
        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
        (WebCore::RenderLayer::paintBackgroundForFragments):
        (WebCore::RenderLayer::paintForegroundForFragments):
        (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
        (WebCore::RenderLayer::paintOutlineForFragments):
        (WebCore::RenderLayer::paintMaskForFragments):
        (WebCore::RenderLayer::paintOverflowControlsForFragments):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:

2014-06-27  Brent Fulgham  <bfulgham@apple.com>

        [Win] Implement parts of the AVFOUNDATION_LOADER_DELEGATE logic for Windows
        https://bugs.webkit.org/show_bug.cgi?id=134418

        Reviewed by Eric Carlson.

        Land an initial implementation of AVFOUNDATION_LOADER_DELEGATE for
        Windows.

        * DerivedSources.cpp: Add new IDL files
        * DerivedSources.make: Add check for AVFOUNDATION_LOADER_DELEGATE.
        * Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp: Added (ported from
        Objective C.)
        * WebCore.vcxproj/WebCore.vcxproj: Update for new files.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * WebCore.vcxproj/WebCoreCommon.props: Add new search paths.
        * WebCore.vcxproj/WebCoreTestSupport.vcxproj: Update for new files.
        * WebCore.vcxproj/WebCoreTestSupport.vcxproj.filters: Ditto.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::extractKeyURIKeyIDAndCertificateFromInitData):
        Moved from MediaPlayerPrivateAVFoundationObjC.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
        Update for new API calls.
        * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.cpp: Added.
        * platform/graphics/avfoundation/cf/CDMSessionAVFoundationCF.h: Added.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        Updated for new AVFOUNDATION_LOADER_DELEGATE methods.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
        * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.cpp: Added.
        * platform/graphics/avfoundation/cf/WebCoreAVCFResourceLoader.h: Added.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        Remove method that was moved to base class.

2014-06-27  Benjamin Poulain  <benjamin@webkit.org>

        Remove BufferForAppendingHyphen
        https://bugs.webkit.org/show_bug.cgi?id=134376

        Reviewed by Darin Adler.

        It is legacy, from a time when that code was using a Vector.

        The problem is that StringBuilder's memory was also implicitly used to keep
        the string alive for the lifespan of the TextRun. That seems quite dangerous
        as changes in StringBuilder could have changed that.

        To fix the lifetime issue, my first idea was to make it explicit by passing
        a String reference to hold the memory alive, and a boolean to say if the text
        need an hyphen. The problem with that is this code is very hot and I made things
        worse.

        The solution with this patch is to just pass a pointer to a String to do both
        the buffer reference, and the decision to add the hyphen. Having a single
        argument with 2 meanings is not pretty but that's not worse than the old buffer.

        * editing/TextIterator.cpp:
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::localSelectionRect):
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::InlineTextBox::constructTextRun):
        (WebCore::adjustCharactersAndLengthForHyphen): Deleted.
        * rendering/InlineTextBox.h:
        (WebCore::BufferForAppendingHyphen::BufferForAppendingHyphen): Deleted.
        * rendering/RenderText.cpp:

2014-06-27  Jeremy Jones  <jeremyj@apple.com>

        Lazily link frameworks in WebVideoFullscreenInterfaceAVKit.
        https://bugs.webkit.org/show_bug.cgi?id=134407

        Reviewed by Eric Carlson.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVPlayerController init]):
        Load AVPlayerController on use.
        (WebVideoFullscreenInterfaceAVKit::WebVideoFullscreenInterfaceAVKit):
        Remove loading on construction.
        (WebVideoFullscreenInterfaceAVKit::setCurrentTime): Load AVValueTiming on use.
        (WebVideoFullscreenInterfaceAVKit::setupFullscreen): Load several classes on use.
        (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Load UIColor on use.

2014-06-27  Alex Christensen  <achristensen@webkit.org>

        Remove extra operations from 64-bit or on armv7.
        https://bugs.webkit.org/show_bug.cgi?id=134408

        Reviewed by Geoffrey Garen.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagsToElementStyleFromContext):
        Only do or operations if it would change values.
        Often we're only setting one flag, so half the operations are not necessary.

2014-06-27  Beth Dakin  <bdakin@apple.com>

        ScrollView::rootViewToTotalContents() needs to take topContentInset into account
        https://bugs.webkit.org/show_bug.cgi?id=134415
        -and corresponding-
        <rdar://problem/17473633>

        Reviewed by Simon Fraser.

        This affects hit testing in headers aka PageBanners.

        The root view will be anchored above the start of the total contents if there is a 
        topContentInset, so the inset value should be subtracted to get into the right 
        coordinate space here.
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::rootViewToTotalContents):

2014-06-27  Antti Koivisto  <antti@apple.com>

        Flush throttling with remote layers
        https://bugs.webkit.org/show_bug.cgi?id=134398

        Reviewed by Darin Adler.

        With remote layer trees the flush scheduling lives in the WebKit2 layer. The throttling code
        needs to live there as well.
        
        Add the required callbacks and disable the existing throttling code in RenderLayerCompositor
        when remote layers are in use. Later we can get rid of the RenderLayerCompositor throttling code.

        * WebCore.xcodeproj/project.pbxproj:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadProgressingStatusChanged):
        * page/ChromeClient.h:
        (WebCore::ChromeClient::adjustLayerFlushThrottling):
        * page/FrameView.cpp:
        (WebCore::FrameView::disableLayerFlushThrottlingTemporarilyForInteraction):
        (WebCore::FrameView::loadProgressingStatusChanged):
        
            Factor the progress status change activities to a function.

        (WebCore::FrameView::updateLayerFlushThrottling):
        (WebCore::FrameView::setExposedRect):
        
            Move the call to adjustTiledBackingCoverage from WebKit to here.

        (WebCore::FrameView::updateLayerFlushThrottlingInAllFrames): Deleted.
        * page/FrameView.h:
        * page/LayerFlushThrottleState.h: Added.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::RenderLayerCompositor):

2014-06-27  Brady Eidson  <beidson@apple.com>

        The user pressing a button on a gamepad should cause gamepads to become visible to all NavigatorGamepads.
        https://bugs.webkit.org/show_bug.cgi?id=134375

        Reviewed by Darin Adler.

        No new tests (Not yet a tested config)

        * Modules/gamepad/GamepadManager.cpp:
        (WebCore::GamepadManager::platformGamepadConnected): Also call to makeGamepadsVisibileToBlindNavigators.
        (WebCore::GamepadManager::platformGamepadDisconnected):
        (WebCore::GamepadManager::platformGamepadInputActivity): Call makeGamepadsVisibileToBlindNavigators.
        (WebCore::GamepadManager::makeGamepadsVisibileToBlindNavigators): Walk through each blind navigator
          notifying it of each connected Gamepad.
        (WebCore::GamepadManager::registerNavigator): Also add to the blind navigator set.
        (WebCore::GamepadManager::unregisterNavigator): Also remove from the blind navigator set.
        * Modules/gamepad/GamepadManager.h:

        * platform/GamepadProviderClient.h: Added platformGamepadInputActivity.

        * platform/mac/HIDGamepadProvider.cpp:
        (WebCore::HIDGamepadProvider::HIDGamepadProvider):
        (WebCore::HIDGamepadProvider::valuesChanged): Set the input notification timer which will notify the clients
          that a button was pressed.
        (WebCore::HIDGamepadProvider::inputNotificationTimerFired): Perform that notification.
        * platform/mac/HIDGamepadProvider.h:

2014-06-27  Brady Eidson  <beidson@apple.com>

        HIDGamepads should populate themselves with initial input values
        https://bugs.webkit.org/show_bug.cgi?id=134381

        Reviewed by Darin Adler.

        No new tests (Not yet a tested config)

        * platform/mac/HIDGamepad.cpp:
        (WebCore::HIDGamepad::getCurrentValueForElement):
        (WebCore::HIDGamepad::initElements):  Loop through all the saved elements to get current values.
        (WebCore::HIDGamepad::maybeAddButton):
        (WebCore::HIDGamepad::maybeAddAxis):
        * platform/mac/HIDGamepad.h:
        (WebCore::HIDGamepadElement::HIDGamepadElement):
        (WebCore::HIDGamepadButton::HIDGamepadButton):
        (WebCore::HIDGamepadAxis::HIDGamepadAxis):

2014-06-27  Peyton Randolph  <prandolph@apple.com>

        Add feature flag for link long-press gesture.
        https://bugs.webkit.org/show_bug.cgi?id=134262

        Reviewed by Enrica Casucci.

        * Configurations/FeatureDefines.xcconfig:
        Add ENABLE_LINK_LONG_PRESS.

2014-06-26  Brady Eidson  <beidson@apple.com>

        HIDGamepadProvider should only be active when someone is interested in Gamepads.
        https://bugs.webkit.org/show_bug.cgi?id=134374

        Reviewed by Darin Adler.

        No new tests (Not yet a tested config)

        * Modules/gamepad/GamepadManager.cpp:
        (WebCore::GamepadManager::registerNavigator): Add some logging.
        (WebCore::GamepadManager::unregisterNavigator): Ditto.

        * platform/mac/HIDGamepadProvider.cpp:
        (WebCore::HIDGamepadProvider::HIDGamepadProvider):
        (WebCore::HIDGamepadProvider::connectionDelayTimerFired): Stop suppressing connection callbacks
        (WebCore::HIDGamepadProvider::openAndScheduleManager):
        (WebCore::HIDGamepadProvider::closeAndUnscheduleManager): Stop listening for gamepad events, and clear
          all current gamepads.
        (WebCore::HIDGamepadProvider::startMonitoringGamepads): If the first client, call openAndScheduleManager
        (WebCore::HIDGamepadProvider::stopMonitoringGamepads): If the last client, call closeAndUnscheduleManager
        (WebCore::HIDGamepadProvider::deviceAdded): If this callback came while we were suppressing connection
          callbacks, it is a startup event for already-connected gamepads. Stop suppressing callbacks in a later
          spin of the runloop.
        (WebCore::HIDGamepadProvider::deviceRemoved):
        * platform/mac/HIDGamepadProvider.h:
        (WebCore::HIDGamepadProvider::setShouldDispatchCallbacks): Deleted.

2014-06-27  Alex Christensen  <achristensen@webkit.org>

        Prevent unnecessary register saving in css jit.
        https://bugs.webkit.org/show_bug.cgi?id=133955

        Reviewed by Geoff Garen.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::prepareAndCall):
        (WebCore::FunctionCall::cleanupPostCall):
        (WebCore::FunctionCall::saveAllocatedCallerSavedRegisters):
        (WebCore::FunctionCall::restoreAllocatedCallerSavedRegisters):
        (WebCore::FunctionCall::saveAllocatedRegisters): Renamed to saveAllocatedCallerSavedRegisters.
        (WebCore::FunctionCall::restoreAllocatedRegisters): Renamed to restoreAllocatedCallerSavedRegisters.
        Only push caller saved registers before function calls.
        * cssjit/RegisterAllocator.h:
        (WebCore::RegisterAllocator::isValidRegister):
        Corrected register ranges.
        (WebCore::RegisterAllocator::isCallerSavedRegister): Added.

2014-06-27  Beth Dakin  <bdakin@apple.com>

        Custom scrollbars should not create ScrollbarPainters on Mac
        https://bugs.webkit.org/show_bug.cgi?id=134406
        -and corresponding-
        <rdar://problem/16178301>

        Reviewed by Tim Horton.

        The solution here is to return early in ScrollbarThemeMac::registerScrollbar() if 
        the scrollbar is custom. However, since this function is called during the 
        RenderScrollbar and Scrollbar constructor, we need to re-implement 
        Scrollbar::isCustomScrollbar() to return a member variable that is passed into the 
        constructor. Otherwise, we will get Scrollbar’s implementation is 
        isCustomScrollbar() wrongfully returning false since instead of the derived
        class’s implementation. 

        Scrollbar constructor now has an option parameter isCustomScrollbar that defaults 
        to false. That value is returned by isCustomScrollbar()
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::Scrollbar):
        * platform/Scrollbar.h:

        Return early if this is a custom scrollbar since the rest of the function deals 
        with creating a native scrollbar and getting it in the right state.
        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::registerScrollbar):

        Send true to the Scrollbar constructor to indicate that this is a custom 
        scrollbar.
        * rendering/RenderScrollbar.cpp:
        (WebCore::RenderScrollbar::RenderScrollbar):
        * rendering/RenderScrollbar.h:

2014-06-27  Eric Carlson  <eric.carlson@apple.com>

        [Mac] AVMetadataKeySpaceISOUserData not defined on 10.8
        https://bugs.webkit.org/show_bug.cgi?id=134401

        Reviewed by Jer Noble.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::metadataType): Use SOFT_LINK_POINTER_OPTIONAL for AVMetadataKeySpaceISOUserData
            so we don't have problems on OS versions where it isn't defined.

2014-06-27  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        REGRESSION (r168685): css calc() expression fails 
        https://bugs.webkit.org/show_bug.cgi?id=134059

        The expression 'calc((100% - 20px) / 3' did not work properly after r168685,
        because primitiveType() function in CSSCalculationValue.cpp has handled
        CalcPercentLength and CalcPercentNumber categories as if they were angles.
        The patch fixes this incorrect behavior.

        Reviewed by Simon Fraser.

        Test: fast/css/calc-percentage-pixel.html

        * css/CSSCalculationValue.cpp:

2014-06-27  Jer Noble  <jer.noble@apple.com>

        [MSE] http/tests/media/media-source/mediasource-append-buffer.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=134389

        Reviewed by Eric Carlson.

        Two subtests in mediasource-append-buffer.html are failing. Bring setDuration() up to spec
        by throwing an exception if the duration is called while any SourceBuffer is updating. Do
        not cancel pending events when a SourceBuffer is removed from its MediaSource. And mark the
        SourceBuffer as having pending activity if there are pending events to be fired.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::setDuration):
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::removedFromMediaSource):
        (WebCore::SourceBuffer::hasPendingActivity):

2014-06-26  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fix touch-scrollable elements with overflow:scroll on just one axis, and RTL scrolling
        https://bugs.webkit.org/show_bug.cgi?id=134377
        <rdar://problem/16762224>

        Reviewed by Tim Horton.
        
        Make -webkit-overflow-scrolling:touch scrolling work correctly when one axis
        has overflow:scroll and the other overflow:hidden. Also fix scrolling in RTL
        contexts.
        
        An RTL scroller with overflow-x:hidden will have a non-zero scroll origin,
        and needs to truncate the scrolled content on the left side. To pass the
        correct geometry to the UI process, we need to introduce the concept of
        "reachable" size as well as total content size; normally these are the same,
        but will differ when scrolling is only allowed on one axis but there is overflow
        on both axes.
        
        To get the reachable size, add RenderLayer::scrollableContentsSize().
        
        RenderLayer::visibleSize() was wrong; the function should return the size of the 
        scrollable portion, but used layer size which includes borders. Fix to use pixelSnappedClientWidth()/Height(),
        which is what we use for scrollbar computations.

        * WebCore.exp.in:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
        (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
        (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        (WebCore::ScrollingStateScrollingNode::setReachableContentsSize):
        * page/scrolling/ScrollingStateScrollingNode.h:
        (WebCore::ScrollingStateScrollingNode::reachableContentsSize):
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (WebCore::ScrollingTreeScrollingNode::reachableContentsSize):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::visibleSize):
        (WebCore::RenderLayer::scrollableContentsSize):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::updateScrollingLayerWithClient):
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

2014-06-27  Bear Travis  <betravis@adobe.com>

        [Feature Queries] Fix feature queries build on Mac
        https://bugs.webkit.org/show_bug.cgi?id=134359

        Reviewed by Antti Koivisto.

        Update the XCode project and Feature Queries code to build on Mac.

        There are existing tests for supports in the LayoutTests/css3 directory.

        * WebCore.xcodeproj/project.pbxproj: Add the Feature Queries files
        to the XCode project.
        * css/CSSGrammar.y.in: Update CSSParserExpression to CSSParserValueList.
        * css/DOMWindowCSS.idl: Add ImplementationLacksVTable metadata.

2014-06-27  Jer Noble  <jer.noble@apple.com>

        [MSE] media/media-source/media-source-tracks.html is crashy
        https://bugs.webkit.org/show_bug.cgi?id=134385

        Reviewed by Eric Carlson.

        Fix the refactoring error (self assignment) introduced by r170488.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):

2014-06-27  Mark Hahnenberg  <mhahnenberg@apple.com>

        XHR should keep attributes on instance
        https://bugs.webkit.org/show_bug.cgi?id=134363

        Reviewed by Sam Weinig.

        Test: js/dom/xhr-prototype-define-property.html

        Having them on the prototype broke some sites due to the fact that these DOM attributes are currently 
        not configurable. Once we make them configurable, we can move XHR attributes back to the prototype.

        * bindings/scripts/CodeGeneratorJS.pm:
        (InterfaceRequiresAttributesOnInstanceForCompatibility):

2014-06-27  Jeremy Jones  <jeremyj@apple.com>

        removeCodedFrames should modify ref to TrackBuffer no a copy.
        https://bugs.webkit.org/show_bug.cgi?id=134380

        Reviewed by Daniel Bates.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::removeCodedFrames):
        Iterate with a reference.

2014-06-27  Zalan Bujtas  <zalan@apple.com>

        Set cliprect radius unconditionally in RenderLayer.
        https://bugs.webkit.org/show_bug.cgi?id=134396

        Reviewed by Simon Fraser.

        No change in functionality.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):

2014-06-27  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Interaction between auto-placement and column / row spanning
        https://bugs.webkit.org/show_bug.cgi?id=110633

        Reviewed by Sergio Villar Senin.

        Modify auto-placement algorithm in order to support span in both
        definite and automatic positions.

        This patch fixes examples like:
        grid-row: auto;
        grid-column: 2 / span 3;

        And also:
        grid-row: auto;
        grid-column: span 3;

        Tests: fast/css-grid-layout/grid-item-auto-placement-automatic-span.html
               fast/css-grid-layout/grid-item-auto-placement-definite-span.html

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::GridIterator::isEmptyAreaEnough): New method that
        checks if a grid area is or not empty.
        (WebCore::RenderGrid::GridIterator::nextEmptyGridArea): Updated method
        that now receives two arguments with the span value in both directions.
        (WebCore::RenderGrid::ensureGridSize): Renamed from gridRow(). Adapted
        method to grow in both directions at the same time if needed. It ensures
        that the grid is big enough to insert a new item.
        (WebCore::RenderGrid::insertItemIntoGrid): Only leave the method that
        receives a GridCoordinate. It uses ensureGridSize() before inserting the
        item in the grid.
        (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Ensure that
        the grid is big enough to place the largest span for auto-positioned
        items.
        (WebCore::RenderGrid::createEmptyGridAreaAtSpecifiedPositionsOutsideGrid):
        New method that returns a GridCoordinate outside current grid with the
        requested dimensions.
        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid): Adapted
        method to calculate the item's span and use the new version of
        nextEmptyGridArea(). If an empty area is not found it uses
        createEmptyGridAreaAtSpecifiedPositionsOutsideGrid() to place the item.
        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid): Ditto.
        (WebCore::RenderGrid::growGrid): Renamed to ensureGridSize().
        * rendering/RenderGrid.h: Modify methods headers and add new method
        signature.
        * rendering/style/GridCoordinate.h:
        (WebCore::GridSpan::integerSpan): Add new simple method to return the
        span value of a position.
        * rendering/style/GridResolvedPosition.cpp:
        (WebCore::GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition):
        Implement method to take into account span in auto-placement algorithm.
        (WebCore::GridResolvedPosition::adjustGridPositionsFromStyle): Add new
        checks related with named grid line spans in auto-positioned items,
        which is not allowed according to the spec.
        * rendering/style/GridResolvedPosition.h: Update method header.

2014-06-27  Mahesh Kulkarni  <mahesh.kk@samsung.com>

        [XHR] open method must uppercase only standard method types
        https://bugs.webkit.org/show_bug.cgi?id=134264

        Reviewed by Darin Adler.

        As per step-5 of http://xhr.spec.whatwg.org/#the-open()-method only
        DELETE, PUT, GET, POST, OPTIONS, HEAD are standard. Use other methods as is without case change.
        All tests from w3c-test suite pass http://w3c-test.org/XMLHttpRequest/open-method-case-sensitive.htm.
        This merges blink changes from r176592.

        Tests: http/tests/xmlhttprequest/xmlhttprequest-open-method-allowed.html
               http/tests/xmlhttprequest/xmlhttprequest-open-method-case-insensitive.html

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::uppercaseKnownHTTPMethod):

2014-06-27  Andre Moreira Magalhaes   <andre.magalhaes@collabora.co.uk>

        Increase priority on SharedTimer source.
        http://bugs.webkit.org/show_bug.cgi?id=134109

        While running webkit on a Debian virtual machine I stumbled upon an issue where JS
        setTimeout callbacks were not being properly invoked due to machine limitations and the
        usage of a low priority on setTimeout timers.

        This patch increases the SharedTimer source priority to use the default glib priority which
        fixes the issue, making setTimeout JS calls work properly on the test environment.

        Reviewed by Gustavo Noronha Silva.

        * platform/gtk/SharedTimerGtk.cpp:
        (WebCore::setSharedTimerFireInterval):

2014-06-27  Zalan Bujtas  <zalan@apple.com>

        Remove redundant offsetFromAncestor() call from RenderLayer::localClipRect().
        https://bugs.webkit.org/show_bug.cgi?id=134378

        Reviewed by Simon Fraser.

        No change in functionality.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):

2014-06-27  Philippe Normand  <pnormand@igalia.com>

        [GTK] 8tracks.com triggers annoying pop-up window/installation of "About protocol source plugin" (GStreamer?)
        https://bugs.webkit.org/show_bug.cgi?id=133605

        Reviewed by Carlos Garcia Campos.

        Don't attempt to load blank URLs with the GStreamer media
        player. Those URLs trigger the codec installer which is useless in
        this scenario. This patch also renames some of the variables of
        the ::load method, as suggested by Carlos.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::~MediaPlayerPrivateGStreamer):
        Check video-sink validity before disconnecting its signal handlers.
        (WebCore::MediaPlayerPrivateGStreamer::load): Don't load blank
        URLs (about:blank).
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
        Disconnect repaint handler only if it's valid.

2014-06-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Expose getter and setter functions for attributes named type
        https://bugs.webkit.org/show_bug.cgi?id=134300

        Reviewed by Martin Robinson.

        We skip those because the getter conflicts with the get_type()
        function of all GObjects. We should use a different name for them. As
        a general rule we use the last word of the class name, something like:

          webkit_dom_blob_get_type() -> webkit_dom_blob_get_blob_type()
          webkit_dom_event_get_type() -> webkit_dom_event_get_event_type()

        It's consistent with other existing DOM methods like
        webkit_dom_xpath_result_get_result_type() or webkit_dom_css_value_get_css_value_type().
        This patch also adds some exceptions for particular cases.

        * bindings/gobject/webkitdom.symbols: Add new public symbols.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GetFunctionSigName): Helper function to return the function name
        that takes into account all exceptions when generating getters and
        setters of attributes named type. Otherwise the name is returned unmodified.
        (GenerateFunction): Use GetFunctionSigName().
        (GenerateFunctions): Do not skip functions for type attributes.

2014-06-27  Sungmann Cho  <sungmann.cho@navercorp.com>

        Remove unnecessary #include in HistoryController
        https://bugs.webkit.org/show_bug.cgi?id=134369

        Reviewed by Daniel Bates.

        After the landing of https://webkit.org/b/130099, HistoryController doesn't need
        WebCore::Settings class. So we can remove the related header.

        * loader/HistoryController.cpp:

2014-06-26  Jeongeun Kim  <je_julie.kim@samsung.com>

        REGRESSION (r170287): SVGDocumentExtensions::rebuildElements() called on removed element
        https://bugs.webkit.org/show_bug.cgi?id=134304

        Reviewed by Daniel Bates.

        Roll out <http://trac.webkit.org/170287> (https://bugs.webkit.org/show_bug.cgi?id=134186)
        as it led to SVGDocumentExtensions::rebuildElements() being called on an element(s) that
        may no longer be in the document.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChild):
        (WebCore::ContainerNode::removeChildren):
        * dom/Document.cpp:
        (WebCore::Document::commonTeardown):
        (WebCore::Document::implicitClose):
        * history/CachedFrame.cpp:
        (WebCore::CachedFrameBase::restore):
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::startAnimations):
        (WebCore::SVGDocumentExtensions::pauseAnimations):
        (WebCore::SVGDocumentExtensions::unpauseAnimations):
        (WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements):
        (WebCore::SVGDocumentExtensions::rebuildElements):
        * svg/SVGDocumentExtensions.h:

2014-06-26  Tim Horton  <timothy_horton@apple.com>

        [WK2] Pinch-zoom shadows can overlap headers and footers
        https://bugs.webkit.org/show_bug.cgi?id=134372
        <rdar://problem/16004095>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateLayerForHeader):
        (WebCore::RenderLayerCompositor::updateLayerForFooter):
        Put header/footer layers in front of the root content layer instead of behind.
        Ideally nothing would ever overlap them, but this will give them precedence regardless.

2014-06-26  David Kilzer  <ddkilzer@apple.com>

        [Win] Always NULL-terminate the string in createUTF8String()
        <http://webkit.org/b/134353>
        <rdar://problem/17471783>

        Reviewed by Brent Fulgham.

        * plugins/PluginView.cpp:
        (WebCore::createUTF8String): Pull out CString length into local
        variable.  Switch to use memcpy.  Always NULL-terminate the
        string.

2014-06-26  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Crash in WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered const + 13
        https://bugs.webkit.org/show_bug.cgi?id=134367

        Reviewed by Darin Adler.

        Add a couple of null-checks to protect against methods being called in the brief time
        between when the object is created and when it's asked to load.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationDouble):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered):

2014-06-26  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Rearrange conditions to find invalid protocol in NavigatorContentUtils::verifyProtocolHandlerScheme()
        https://bugs.webkit.org/show_bug.cgi?id=134289

        Reviewed by Darin Adler.

        If we do early return when there is invalid protocol, we're able to avoid unnecessary call flow.

        No new tests, covered by existing tests.

        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::verifyProtocolHandlerScheme):

2014-06-26  Benjamin Poulain  <bpoulain@apple.com>

        [WK1] Use native touch event's timestamp for DOM touch event
        https://bugs.webkit.org/show_bug.cgi?id=134326

        Reviewed by Enrica Casucci.

        * platform/ios/PlatformEventFactoryIOS.mm:
        (WebCore::PlatformTouchEventBuilder::PlatformTouchEventBuilder):
        Use device event timestamp to get more accurate timing information. This also removes
        the variance introduced by WebKit when computing velocity/acceleration/etc.

2014-06-26  Balazs Kelemen  <b.kelemen@samsung.com>

        Memcache migth not be pruned when it should for https pages
        https://bugs.webkit.org/show_bug.cgi?id=134361

        Reviewed by Geoffrey Garen.

        There is no reason we should not try to prune in case of a https resource.

        No observable change in behavior, no tests.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::removeClient):
        Call prune unconditionally and remove an unnecessary branch.

2014-06-26  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION: Mountain Lion: Gmail's "in new window" view of mail threads is very slow to load its content
        https://bugs.webkit.org/show_bug.cgi?id=133882
        <rdar://problem/17271965>

        Reviewed by Brady Eidson.

        This goes to pre-r161796 behavior on 10.8 and 10.9. We schedule the requests internally,
        and only give 6 of them to CFNetwork at a time. Except for synchronous requests,
        which still use the improved approach, and don't count against 6 connections.

        * loader/ResourceLoadScheduler.cpp:
        (WebCore::ResourceLoadScheduler::scheduleLoad):
        * platform/network/cf/ResourceRequest.h:
        (WebCore::ResourceRequest::resourcePrioritiesEnabled):
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        (WebCore::initializeMaximumHTTPConnectionCountPerHost): Deleted.
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        (WebCore::ResourceRequest::doUpdatePlatformRequest):

2014-06-26  Brady Eidson  <beidson@apple.com>

        Remove use of PlatformStrategies for Gamepad API.
        https://bugs.webkit.org/show_bug.cgi?id=134348

        Reviewed by Dean Jackson.

        No new tests (Not yet a tested config)

        Introduce a virtual GamepadProvider with a process-global shared provider.
        The base implementation of the GamepadProvider does nothing.
        * platform/GamepadProvider.cpp: Renamed from Source/WebKit/mac/WebCoreSupport/WebHIDGamepadController.h.
        (WebCore::GamepadProvider::shared):
        (WebCore::GamepadProvider::setSharedProvider):
        (WebCore::GamepadProvider::startMonitoringGamepads):
        (WebCore::GamepadProvider::stopMonitoringGamepads):
        (WebCore::GamepadProvider::platformGamepads):
        * platform/GamepadProvider.h: Renamed from Source/WebCore/platform/GamepadStrategy.h.
        (WebCore::GamepadProvider::~GamepadProvider):

        * platform/GamepadProviderClient.h: Renamed from Source/WebCore/platform/GamepadStrategyClient.h.
        (WebCore::GamepadProviderClient::~GamepadProviderClient):

        GamepadManager is now a GamepadProviderClient:
        * Modules/gamepad/GamepadManager.cpp:
        (WebCore::GamepadManager::GamepadManager):
        (WebCore::GamepadManager::registerNavigator):
        (WebCore::GamepadManager::unregisterNavigator):
        * Modules/gamepad/GamepadManager.h:

        Remove the GamepadStrategy altogether:
        * platform/PlatformStrategies.h:
        (WebCore::PlatformStrategies::PlatformStrategies):
        (WebCore::PlatformStrategies::gamepadStrategy): Deleted.

        Call to the shared GamepadProvider instead of the strategy:
        * Modules/gamepad/NavigatorGamepad.cpp:
        (WebCore::NavigatorGamepad::gamepads):
        (WebCore::NavigatorGamepad::gamepadsBecameVisible):
        (WebCore::NavigatorGamepad::gamepadConnected):

        HIDGamepadListener is now a subclass of GamepadProvider that implements the HID based management.
        LegacyWebKit on Mac will install the shared HIDGamepadProvider instead of the default GamepadProvider:
        * platform/mac/HIDGamepadProvider.cpp: Renamed from Source/WebCore/platform/mac/HIDGamepadListener.cpp.
        (WebCore::deviceMatchingDictionary):
        (WebCore::deviceAddedCallback):
        (WebCore::deviceRemovedCallback):
        (WebCore::deviceValuesChangedCallback):
        (WebCore::HIDGamepadProvider::shared):
        (WebCore::HIDGamepadProvider::HIDGamepadProvider):
        (WebCore::HIDGamepadProvider::indexForNewlyConnectedDevice):
        (WebCore::HIDGamepadProvider::startMonitoringGamepads):
        (WebCore::HIDGamepadProvider::stopMonitoringGamepads):
        (WebCore::HIDGamepadProvider::deviceAdded):
        (WebCore::HIDGamepadProvider::deviceRemoved):
        (WebCore::HIDGamepadProvider::valuesChanged):
        (WebCore::HIDGamepadProvider::removeGamepadForDevice):
        * platform/mac/HIDGamepadProvider.h: Renamed from Source/WebCore/platform/mac/HIDGamepadListener.h.
        (WebCore::HIDGamepadProvider::platformGamepads):
        (WebCore::HIDGamepadProvider::setShouldDispatchCallbacks):

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:

        * platform/mac/HIDGamepad.h: Fix incorrect comment

2014-06-26  Andreas Kling  <akling@apple.com>

        Skip memcmp()ing fully downloaded resources after they become mmap()able.
        <https://webkit.org/b/134362>

        When we receive word that a downloaded resource is now available for mmap()ing
        from the file system, we don't need to compare against the buffered data,
        since even if there were a mismatch, the cached version should be the canonical one.

        This was added as belt-and-suspenders while the supporting mechanism was being
        developed in CFNetwork, and there's no evidence of a race today. This change
        turns the runtime checks into debug-only assertions.

        Saves ~300ms of main thread time on PLT.

        Reviewed by Geoff Garen.

        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::tryReplaceEncodedData):

2014-06-26  Jer Noble  <jer.noble@apple.com>

        [MSE] Refactoring: Use C++11 for-loops in SourceBuffer.
        https://bugs.webkit.org/show_bug.cgi?id=134352

        Reviewed by Darin Adler.

        Use C++11 style for-loops where appropriate in SourceBuffer now that the
        SampleMap ordered objects support them.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):
        (WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime):
        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete):
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
        (WebCore::SourceBuffer::validateInitializationSegment):
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

2014-06-25  Joseph Pecoraro  <pecoraro@apple.com>
 
        [iOS]: Tapping <button> outside of a form is no longer working
        https://bugs.webkit.org/show_bug.cgi?id=134319
        <rdar://problem/17213346>

        Reviewed by Daniel Bates.

        Restore behavior of allowing <button> clicks outside of <form>.
        This used to be iOS behavior before it was removed in favor of the
        OpenSource (Android?) behavior. Now, willRespondToMouseClickEvents
        is only used by iOS, so lets restore the iOS behavior.

        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::willRespondToMouseClickEvents):

2014-06-26  Jer Noble  <jer.noble@apple.com>

        Unreviewed build-fix. Remove unintentionial rename of MediaTime.h -> MediaTimeHash.h.

        * Modules/mediasource/SampleMap.h:

2014-06-26  Eric Carlson  <eric.carlson@apple.com>

        [iOS] no need to deactivate audio session
        https://bugs.webkit.org/show_bug.cgi?id=134350

        Reviewed by Jer Noble.

        * platform/audio/mac/MediaSessionManagerMac.cpp:
        (MediaSessionManager::updateSessionState): Don't bother calling 
            AudioSession::setActive(false), WebCore's audio session will be deactivated 
            automatically if another application begins playing audio.

2014-06-26  Jer Noble  <jer.noble@apple.com>

        [MSE] Refactoring: Differentiate between SampleMap decode and presentation order methods
        https://bugs.webkit.org/show_bug.cgi?id=134349

        Reviewed by Geoffrey Garen.

        Refactor SampleMap to clarify the distinction between methods which return decode-order
        iterators and ones which retun presentation-order iterators.

        Add two classes, PresentationOrderSampleMap and DecodeOrderSampleMap, to contain the actual
        MediaTime-to-Sample maps, and move the methods returning presentation-order and decode-order
        iterators to each, respectively.  Rename the {presentation,decode}{Begin,End}() methods to
        begin() and end() so the objects can be used in C++11 for-loops.

        Update all the call sites in SourceBuffer to use the new ordered objects.

        * Modules/mediasource/SampleMap.cpp:
        (WebCore::SampleIsLessThanMediaTimeComparator::operator()): Use new ordered objects.
        (WebCore::SampleIsGreaterThanMediaTimeComparator::operator()): Ditto.
        (WebCore::SampleMap::clear): Ditto.
        (WebCore::SampleMap::addSample): Ditto.
        (WebCore::SampleMap::removeSample): Ditto.
        (WebCore::PresentationOrderSampleMap::findSampleContainingPresentationTime): Renamed from SampleMap version.
        (WebCore::PresentationOrderSampleMap::findSampleAfterPresentationTime): Ditto.
        (WebCore::DecodeOrderSampleMap::findSampleWithDecodeTime): Ditto.
        (WebCore::PresentationOrderSampleMap::reverseFindSampleContainingPresentationTime): Ditto.
        (WebCore::PresentationOrderSampleMap::reverseFindSampleBeforePresentationTime): Ditto.
        (WebCore::DecodeOrderSampleMap::reverseFindSampleWithDecodeTime): Ditto.
        (WebCore::DecodeOrderSampleMap::findSyncSamplePriorToPresentationTime): Ditto.
        (WebCore::DecodeOrderSampleMap::findSyncSamplePriorToDecodeIterator): Ditto.
        (WebCore::DecodeOrderSampleMap::findSyncSampleAfterPresentationTime): Ditto.
        (WebCore::DecodeOrderSampleMap::findSyncSampleAfterDecodeIterator): Ditto.
        (WebCore::PresentationOrderSampleMap::findSamplesBetweenPresentationTimes): Ditto.
        (WebCore::PresentationOrderSampleMap::findSamplesWithinPresentationRange): Ditto.
        (WebCore::DecodeOrderSampleMap::findDependentSamples): Ditto.
        * Modules/mediasource/SampleMap.h:
        (WebCore::PresentationOrderSampleMap::begin): Renamed from presentationBegin().
        (WebCore::PresentationOrderSampleMap::end): Renamed from presentationEnd().
        (WebCore::PresentationOrderSampleMap::rbegin): Renamed from reversePresentationBegin().
        (WebCore::PresentationOrderSampleMap::rend): Renamed from reversePresentationEnd().
        (WebCore::DecodeOrderSampleMap::begin): Renamed from decodeBegin().
        (WebCore::DecodeOrderSampleMap::end): Renamed from decodeEnd().
        (WebCore::DecodeOrderSampleMap::rbegin): Renamed from reverseDecodeBegin().
        (WebCore::DecodeOrderSampleMap::rend): Renamed from reverseDecodeEnd().
        (WebCore::SampleMap::SampleMap): Create new ordered objects.
        (WebCore::SampleMap::sizeInBytes): Use new ordered objects.
        (WebCore::SampleMap::decodeOrder): Simple accessor.
        (WebCore::SampleMap::presentationOrder): Simple accessor.
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime): Use new ordered objects.
        (WebCore::SourceBuffer::sourceBufferPrivateFastSeekTimeForMediaTime): Ditto.
        (WebCore::SourceBuffer::removeCodedFrames): Ditto.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Ditto.
        (WebCore::SourceBuffer::bufferedSamplesForTrackID): Ditto.

2014-06-26  Chris Fleizach  <cfleizach@apple.com>

        Add an undo group for each dictated utterance in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=134086

        Applied review comments from Sam Weinig.

        Move the associated USE #define into Platform.h.
 
        * WebCore.xcodeproj/project.pbxproj:
        * editing/mac/TextUndoInsertionMarkup.h: Removed.
        * editing/mac/TextUndoInsertionMarkupMac.h:

2014-06-26  Shivakumar JM  <shiva.jm@samsung.com>

        [EFL][WK2] Fix Debug Build Error in Webcore module.
        https://bugs.webkit.org/show_bug.cgi?id=134345

        Reviewed by Zalan Bujtas.

        Use static cast to change the type of variable to fix error

        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::setDrawRange):

2014-06-26  Eric Carlson  <eric.carlson@apple.com>

        [Mac] allow host application to canonicalize media urls
        https://bugs.webkit.org/show_bug.cgi?id=134329

        Reviewed by Dean Jackson.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::canonicalURL): New, use NSURLProtocol to canonicalize a URL.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Call canonicalURL.

2014-06-26  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add padding for future expansion to WebKitDOMEventTargetIface
        https://bugs.webkit.org/show_bug.cgi?id=134298

        Reviewed by Martin Robinson.

        * bindings/gobject/WebKitDOMEventTarget.h:

2014-06-25  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add support for constants in GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=133983

        Reviewed by Martin Robinson.

        * bindings/gobject/webkitdom.symbols: Add stable constants.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateHeader): Add constants to the header.
        (Generate): Pass the interface object to GenerateHeader to get the constants
        (IsInterfaceSymbol): Helper function that returns whether the given
        symbol belongs to the interface. Check also constants now.
        (ReadStableSymbols): Use IsInterfaceSymbol().
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:

2014-06-26  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Properly support for z-index on grid items
        https://bugs.webkit.org/show_bug.cgi?id=103329

        Reviewed by Benjamin Poulain.

        From Blink r157620 by <jchaffraix@chromium.org> and r172402 by
        <wangxianzhu@chromium.org>.

        The specification says that grid should match flexbox and force
        grid items to be stacking context if z-index is set, regardless
        of 'position'. After this change, this is what happens.

        Previously z-index changes of static positioned objects were ignored.
        However, z-index is applicable for some static positioned objects,
        such as grid items. Ignoring them makes the object not to be properly
        painted on z-index change.

        As StyleResolver has ensured that z-index is non-auto only if
        applicable, RenderStyle::changeRequiresLayerRepaint() should not check
        again (with inconsistent conditions).

        Tests: fast/css-grid-layout/grid-item-z-index-change-repaint.html
               fast/css-grid-layout/grid-item-z-index-stacking-context.html
               fast/css-grid-layout/grid-item-z-index-support.html

        * css/StyleResolver.cpp:
        (WebCore::isDisplayFlexibleOrGridBox): Add new method to check if parent
        display is flexbox or grid.
        (WebCore::StyleResolver::adjustRenderStyle): Use new method in z-index
        condition.
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayerRepaint): Move z-index checks
        out of non-static positioned objects if.

2014-06-25  Dean Jackson  <dino@apple.com>

        HIDGamepad should use CFIndex when looping
        https://bugs.webkit.org/show_bug.cgi?id=134337

        Reviewed by Dan Bernstein.

        * platform/mac/HIDGamepad.cpp:
        (WebCore::HIDGamepad::initElementsFromArray): Replace int with CFIndex, and use
        a local variable for CFArrayCount.

2014-06-25  Ryosuke Niwa  <rniwa@webkit.org>

        Build fix attempt after r170465.

        * platform/mac/HIDGamepad.cpp:
        (WebCore::HIDGamepad::initElementsFromArray):

2014-06-25  Dean Jackson  <dino@apple.com>

        [Mac] Radio buttons and checkboxes vanish when redrawn
        https://bugs.webkit.org/show_bug.cgi?id=134335

        Reviewed by Dan Bernstein.

        I screwed up when landing r170343 by moving some code around
        which broke the logic. We need to query the animation
        state for controls after we draw (both statically and animated).

        * platform/mac/ThemeMac.mm:
        (WebCore::paintToggleButton): We need to check the state of animation again, after
        we draw.

2014-06-25  Brady Eidson  <beidson@apple.com>

        Add HID-based gamepad implementation for Mac
        https://bugs.webkit.org/show_bug.cgi?id=134324

        Reviewed by Dean Jackson.

        No new tests (Not yet a tested config)

        * Modules/gamepad/Gamepad.cpp:
        (WebCore::Gamepad::Gamepad):
        (WebCore::Gamepad::updateFromPlatformGamepad): Update the Gamepad’s data from the passed-in PlatformGamepad.
        * Modules/gamepad/Gamepad.h:

        * Modules/gamepad/GamepadButton.h:
        (WebCore::GamepadButton::create): Change to use Ref instead of RefPtr.

        GamepadManager is a GamepadStrategyClient that receives notifications from the platform gamepad implementation
        and forwards them to NavigatorGamepad objects. In the future it will also handle event dispatch and exposing
        gamepads to the API layer when a button is pressed:
        * Modules/gamepad/GamepadManager.cpp: Added.
        (WebCore::GamepadManager::shared):
        (WebCore::GamepadManager::GamepadManager):
        (WebCore::GamepadManager::platformGamepadConnected):
        (WebCore::GamepadManager::platformGamepadDisconnected):
        (WebCore::GamepadManager::registerNavigator):
        (WebCore::GamepadManager::unregisterNavigator):
        * Modules/gamepad/GamepadManager.h:

        The NavigatorGamepad supplement actually manages visibility of Gamepads on a per-DOMWindow basis:
        * Modules/gamepad/NavigatorGamepad.cpp:
        (WebCore::NavigatorGamepad::NavigatorGamepad):
        (WebCore::NavigatorGamepad::~NavigatorGamepad):
        (WebCore::NavigatorGamepad::from):
        (WebCore::NavigatorGamepad::gamepads):
        (WebCore::NavigatorGamepad::gamepadsBecameVisible):
        (WebCore::NavigatorGamepad::gamepadConnected):
        (WebCore::NavigatorGamepad::gamepadDisconnected):
        * Modules/gamepad/NavigatorGamepad.h:
        (WebCore::NavigatorGamepad::navigationStart):

        HIDGamepad is a PlatformGamepad that wraps an IOHIDDeviceRef and keeps input values updated:
        * platform/mac/HIDGamepad.cpp: Added.
        (WebCore::HIDGamepad::HIDGamepad):
        (WebCore::HIDGamepad::initElements):
        (WebCore::HIDGamepad::initElementsFromArray):
        (WebCore::HIDGamepad::maybeAddButton):
        (WebCore::HIDGamepad::maybeAddAxis):
        (WebCore::HIDGamepad::valueChanged):
        * platform/mac/HIDGamepad.h: Added.
        (WebCore::HIDGamepadElement::HIDGamepadElement):
        (WebCore::HIDGamepadElement::~HIDGamepadElement):
        (WebCore::HIDGamepadElement::isButton):
        (WebCore::HIDGamepadElement::isAxis):
        (WebCore::HIDGamepadButton::HIDGamepadButton):
        (WebCore::HIDGamepadAxis::HIDGamepadAxis):
        (WebCore::HIDGamepad::hidDevice):

        HIDGamepadListener wraps an IOHIDManagerRef and continuously listens for changes to Gamepad-type
        devices plugged in to the system:
        * platform/mac/HIDGamepadListener.cpp: Added.
        (WebCore::deviceMatchingDictionary):
        (WebCore::deviceAddedCallback):
        (WebCore::deviceRemovedCallback):
        (WebCore::deviceValuesChangedCallback):
        (WebCore::HIDGamepadListener::shared):
        (WebCore::HIDGamepadListener::HIDGamepadListener):
        (WebCore::HIDGamepadListener::indexForNewlyConnectedDevice):
        (WebCore::HIDGamepadListener::deviceAdded):
        (WebCore::HIDGamepadListener::deviceRemoved):
        (WebCore::HIDGamepadListener::valuesChanged):
        (WebCore::HIDGamepadListener::removeGamepadForDevice):
        * platform/mac/HIDGamepadListener.h: Copied from Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp.
        (WebCore::HIDGamepadListenerClient::~HIDGamepadListenerClient):
        (WebCore::HIDGamepadListener::setClient):
        (WebCore::HIDGamepadListener::platformGamepads):
        (WebCore::HIDGamepadListener::setShouldDispatchCallbacks):

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:

2014-06-25  Ryosuke Niwa  <rniwa@webkit.org>

        WebProgressTracker updates progress too frequently
        https://bugs.webkit.org/show_bug.cgi?id=134185

        Reviewed by Tim Horton.

        The old code throttled the progress update to when either 100ms has passed or the delta is at least 2%
        but this was still not enough in pages that loaded in sub-seconds. The new code always throttles it at 200ms.

        * loader/ProgressTracker.cpp:
        (WebCore::ProgressTracker::ProgressTracker):
        (WebCore::ProgressTracker::incrementProgress):
        * loader/ProgressTracker.h:

2014-06-25  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fixed position elements jump around when zooming
        https://bugs.webkit.org/show_bug.cgi?id=134328
        <rdar://problem/17447048>

        Reviewed by Zalan Bujtas.

        If a given remote layer tree commit contains changes of layers for viewport-constrained
        objects, then the associated scrolling tree also needs to show that the layers changed,
        since we need to re-run the "viewport changed" logic in the UI process to get the
        layers correctly positioned for the current zoom level.
        
        The bug was that page scale changes resulted in small "pixel alignment" position
        changes which touched layers, but we didn't commit any scrolling tree changes. So
        the scrolling tree commit would result in visibly stale layer positions, with no scrolling tree
        update to adjust them for the current transient zoom.

        Fix by making use of the existing "alignment offset" field in the ViewportConstraints
        data, and having RemoteScrollingCoordinatorProxy::connectStateNodeLayers() note that
        fixed or sticky layers changed if any properties of fixed or sticky scrolling tree
        nodes were updated.

        * page/scrolling/ScrollingConstraints.h:
        (WebCore::StickyPositionViewportConstraints::operator==):
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::pixelAlignmentOffset):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateGeometry):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeFixedViewportConstraints):
        (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):

2014-06-25  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Tweak the logic used to choose the scale at which position:fixed gets pushed out of view
        https://bugs.webkit.org/show_bug.cgi?id=134323

        Reviewed by Benjamin Poulain.

        Previously we used a fixed scale (1.2x) at which we'd start pushing position:fixed elements
        out of the viewport. This worked well on iPad, but terribly on iPhone. Instead, choose a scale
        relative to how much of the page is visible width-wise, the threshold being 2/3 of the page width.
        The width is clamped to get reasonable behavior on wide pages.

        * page/FrameView.cpp:
        (WebCore::FrameView::rectForViewportConstrainedObjects):

2014-06-25  Brady Eidson  <beidson@apple.com>

        Add new platform gamepad abstractions
        https://bugs.webkit.org/show_bug.cgi?id=134325

        Reviewed by Dean Jackson.

        No new tests (Not yet a tested config)

        - GamepadStrategy lets ports customize the 3 basic behaviors needed for a gamepad
          implementation to feed the API in WebCore.
        - GamepadStrategyClient gives arbitrary objects in WebCore the ability to register
          for callbacks with the GamepadStrategy.
        - PlatformGamepad is a platform-agnostic object that represents the data that
          feeds into the Gamepad object that is exposed to web content.

        The code in this patch is dead as-is, but https://bugs.webkit.org/show_bug.cgi?id=134324
        will contain an immediate follow-up patch that uses it.

        Makes sense to review them separately.

        * WebCore.xcodeproj/project.pbxproj:

        * platform/GamepadStrategy.h: Added.
        (WebCore::GamepadStrategy::~GamepadStrategy):

        * platform/GamepadStrategyClient.h: Added.
        (WebCore::GamepadStrategyClient::~GamepadStrategyClient):

        * platform/PlatformGamepad.h: Added.
        (WebCore::PlatformGamepad::~PlatformGamepad):
        (WebCore::PlatformGamepad::id):
        (WebCore::PlatformGamepad::lastUpdateTime):
        (WebCore::PlatformGamepad::connectTime):
        (WebCore::PlatformGamepad::PlatformGamepad):

        * platform/PlatformStrategies.h:
        (WebCore::PlatformStrategies::gamepadStrategy):
        (WebCore::PlatformStrategies::PlatformStrategies):

2014-06-25  Zalan Bujtas  <zalan@apple.com>

        Assertion failed: CGPathAddRoundedRect asserts on non-renderable rounded rectangle.
        https://bugs.webkit.org/show_bug.cgi?id=134288

        Reviewed by Simon Fraser.

        Speculative fix. This changeset attempts to address a possible mantissa overflow of radius
        when checking whether the rounded rectangle is renderable.
        We convert both the radius and the rectangle values to CGFloat(float/double) to perform
        this renderable check, instead of always using float.

        * platform/graphics/FloatRoundedRect.cpp:
        (WebCore::FloatRoundedRect::Radii::scale): Move scale(float, float) from RoundedRect to FloatRoundedRect.
        (WebCore::FloatRoundedRect::isRenderable): Add check if radius is >= 0.
        * platform/graphics/FloatRoundedRect.h:
        * platform/graphics/RoundedRect.cpp:
        (WebCore::RoundedRect::Radii::scale):
        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting): use FloatRoundeRect::Radii.
        * platform/graphics/RoundedRect.h:
        * platform/graphics/cg/PathCG.cpp:
        (WebCore::Path::platformAddPathForRoundedRect): use epsilon() to ensure width/height is always >= even with mantissa overflow. 

2014-06-25  Jer Noble  <jer.noble@apple.com>

        [MSE] removeCodedFrames() can remove more than it should
        https://bugs.webkit.org/show_bug.cgi?id=134320

        Reviewed by Geoff Garen.

        removeCodedFrames() can remove more samples than it should because it compares an iterator
        in presentation timespace to one in decode timespace. Clean up this code by removing frames
        in decode order. Rename variables and add comments to make explicit which timespace defines
        the iterators being used.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::removeCodedFrames):

2014-06-25  Beth Dakin  <bdakin@apple.com>

        Crash in ScrollingTree::isRubberBandInProgress()
        https://bugs.webkit.org/show_bug.cgi?id=134316
        -and corresponding-
        <rdar://problem/16247911>

        Reviewed by Geoffrey Garen.

        This crash appears to have been caused by http://trac.webkit.org/changeset/161276 
        which moved the ScrollingNode creation code from ScrollingTree over to 
        ScrollingCoordinator. This creates a thread safety issue. In the crashing case, we 
        believe that the ScrollingCoordinator's ScrollingTree pointer had been null-ed out
        even though the ScrollingTree was kept alive by the bind call to propagate 
        commitNewTreeState() over to the scrolling thread. The fix is to move node 
        creation back to the ScrollingTree and to use the this pointer to create new
        nodes rather than the ScrollingCoordinator's ScrollingTree pointer.

        Don't allow ScrollingCoordinator to handle ScrollingTreeNode creation.
        * page/scrolling/AsyncScrollingCoordinator.h:

        Re-name createNode to createScrollingTreeNode(). 
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateTreeFromStateNode):
        * page/scrolling/ScrollingTree.h:

        Remove this implementation of createNode that called into the 
        ScrollingCoordinator.
        * page/scrolling/ThreadedScrollingTree.cpp:
        (WebCore::ThreadedScrollingTree::createNode): Deleted.
        * page/scrolling/ThreadedScrollingTree.h:

        Don't allow ScrollingCoordinator to handle ScrollingTreeNode creation.
        * page/scrolling/ios/ScrollingCoordinatorIOS.h:
        * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
        (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode): Deleted.

        Re-name createNode to createScrollingTreeNode, and actually create the nodes here.
        * page/scrolling/ios/ScrollingTreeIOS.cpp:
        (WebCore::ScrollingTreeIOS::createScrollingTreeNode):
        (WebCore::ScrollingTreeIOS::createNode): Deleted.
        * page/scrolling/ios/ScrollingTreeIOS.h:

        Don't allow ScrollingCoordinator to handle ScrollingTreeNode creation.
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode): Deleted.

        Add the implementation of createScrollingTreeNode() for the Mac to 
        ScrollingTreeMac since it can create Mac-specific nodes.
        * page/scrolling/mac/ScrollingTreeMac.cpp:
        (ScrollingTreeMac::createScrollingTreeNode):
        * page/scrolling/mac/ScrollingTreeMac.h:

2014-06-25  Enrica Casucci  <enrica@apple.com>

        iOS build fix after http://trac.webkit.org/changeset/170447.
        Unreviewed.

        * editing/mac/TextUndoInsertionMarkup.h:

2014-06-25  Chris Fleizach  <cfleizach@apple.com>

        Add an undo group for each dictated utterance in WebKit
        https://bugs.webkit.org/show_bug.cgi?id=134086

        Reviewed by Enrica Casucci.

        Provide a mechanism for ending the current undo group on a text insertion.
        This allows a stream of text, that is normally part of one undo group, to be
        broken up so that subsequent undo commands will only undo portions of the text stream.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * editing/mac/TextUndoInsertionMarkup.h: Added.
        * editing/mac/TextUndoInsertionMarkup.mm: Added.
        (WebCore::shouldRegisterInsertionUndoGroup):
        (WebCore::registerInsertionUndoGrouping):

2014-06-25  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS]: WK2 Inspector Node Search
        https://bugs.webkit.org/show_bug.cgi?id=134279

        Reviewed by Benjamin Poulain.

        * WebCore.exp.in:
        Export Node::inspect for WebKit2.

2014-06-25  Dana Burkart  <dburkart@apple.com>

        Add support for 5-tuple versioning.

        Reviewed by David Farler.

        * Configurations/Version.xcconfig:

2014-06-25  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] REGRESSION(r170336) - zero tolerance seeks are ignored.
        https://bugs.webkit.org/show_bug.cgi?id=134310

        Reviewed by Brent Fulgham.

        Tests for zero tolerance seeks were inadvertantly reversed in r170336.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):

2014-06-25  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Pause playback when readyState drops below HAVE_FUTURE_DATA, and do not complete seek until it rises above HAVE_METADATA.
        https://bugs.webkit.org/show_bug.cgi?id=134306

        Reviewed by Eric Carlson.

        Pause the synchronizer before seeking, and do not resume the synchronizer until it both reports that the seek completed,
        and that the readyState rises above HAVE_METADATA. In every other location where we change the rate of the synchronizer,
        gate that rate change on the above.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): Check shouldBePlaying().
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal): Ditto.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance): Unset m_seekCompleted.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal): Pause the synchronizer.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setRateDouble): Check shouldBePlaying().
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::shouldBePlaying): Test m_seeking, !m_seekCompleted, and the readyState.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::setReadyState): Set m_seekCompleted; check shouldBePlaying() and play if appropriate.

2014-06-25  Jer Noble  <jer.noble@apple.com>

        [MSE] Update monitorSourceBuffers to match recent spec changes
        https://bugs.webkit.org/show_bug.cgi?id=134305

        Reviewed by Eric Carlson.

        In W3C bug #24347, the text for the third clause of Source Buffer Monitoring was updated. Update our
        implementation to match the new text.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::monitorSourceBuffers):

2014-06-25  Alex Christensen  <achristensen@webkit.org>
            And peavo@outlook.com  <peavo@outlook.com>

        Use references instead of pointers in RenderTheme.
        https://bugs.webkit.org/show_bug.cgi?id=134261

        Reviewed by Zalan Bujtas.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::shouldHaveSpinButton):
        * html/shadow/SliderThumbElement.cpp:
        (WebCore::RenderSliderThumb::updateAppearance):
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::adjustSizeConstraints):
        (WebCore::RenderThemeEfl::applyEdjeRTLState):
        (WebCore::RenderThemeEfl::isControlStyled):
        (WebCore::RenderThemeEfl::paintThemePart):
        (WebCore::RenderThemeEfl::supportsFocusRing):
        (WebCore::RenderThemeEfl::adjustSliderTrackStyle):
        (WebCore::RenderThemeEfl::adjustSliderThumbStyle):
        (WebCore::RenderThemeEfl::adjustSliderThumbSize):
        (WebCore::RenderThemeEfl::adjustCheckboxStyle):
        (WebCore::RenderThemeEfl::adjustRadioStyle):
        (WebCore::RenderThemeEfl::adjustButtonStyle):
        (WebCore::RenderThemeEfl::adjustMenuListStyle):
        (WebCore::RenderThemeEfl::adjustMenuListButtonStyle):
        (WebCore::RenderThemeEfl::adjustTextFieldStyle):
        (WebCore::RenderThemeEfl::adjustTextAreaStyle):
        (WebCore::RenderThemeEfl::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeEfl::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeEfl::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeEfl::adjustSearchFieldStyle):
        (WebCore::RenderThemeEfl::adjustInnerSpinButtonStyle):
        (WebCore::RenderThemeEfl::adjustProgressBarStyle):
        (WebCore::RenderThemeEfl::animationRepeatIntervalForProgressBar):
        (WebCore::RenderThemeEfl::animationDurationForProgressBar):
        * platform/efl/RenderThemeEfl.h:
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::supportsFocusRing):
        (WebCore::RenderThemeGtk::adjustButtonStyle):
        (WebCore::RenderThemeGtk::adjustMenuListStyle):
        (WebCore::RenderThemeGtk::adjustMenuListButtonStyle):
        (WebCore::RenderThemeGtk::adjustSearchFieldResultsButtonStyle):
        (WebCore::adjustSearchFieldIconStyle):
        (WebCore::RenderThemeGtk::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeGtk::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeGtk::adjustSearchFieldStyle):
        (WebCore::RenderThemeGtk::adjustSliderTrackStyle):
        (WebCore::RenderThemeGtk::adjustSliderThumbStyle):
        (WebCore::borderRadiiFromStyle):
        (WebCore::RenderThemeGtk::paintMediaSliderTrack):
        (WebCore::RenderThemeGtk::paintMediaSliderThumb):
        (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
        (WebCore::RenderThemeGtk::adjustProgressBarStyle):
        (WebCore::RenderThemeGtk::animationRepeatIntervalForProgressBar):
        (WebCore::RenderThemeGtk::animationDurationForProgressBar):
        (WebCore::RenderThemeGtk::calculateProgressRect):
        * platform/gtk/RenderThemeGtk.h:
        * platform/gtk/RenderThemeGtk2.cpp:
        (WebCore::setToggleSize):
        (WebCore::RenderThemeGtk::setCheckboxSize):
        (WebCore::RenderThemeGtk::setRadioSize):
        (WebCore::RenderThemeGtk::comboBoxArrowSize):
        (WebCore::RenderThemeGtk::getComboBoxPadding):
        (WebCore::RenderThemeGtk::popupInternalPaddingLeft):
        (WebCore::RenderThemeGtk::popupInternalPaddingRight):
        (WebCore::RenderThemeGtk::popupInternalPaddingTop):
        (WebCore::RenderThemeGtk::popupInternalPaddingBottom):
        (WebCore::RenderThemeGtk::paintMenuList):
        (WebCore::RenderThemeGtk::adjustSliderThumbSize):
        (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::setToggleSize):
        (WebCore::RenderThemeGtk::setCheckboxSize):
        (WebCore::RenderThemeGtk::setRadioSize):
        (WebCore::getComboBoxMetrics):
        (WebCore::RenderThemeGtk::popupInternalPaddingLeft):
        (WebCore::RenderThemeGtk::popupInternalPaddingRight):
        (WebCore::RenderThemeGtk::popupInternalPaddingTop):
        (WebCore::RenderThemeGtk::popupInternalPaddingBottom):
        (WebCore::RenderThemeGtk::adjustSliderThumbSize):
        (WebCore::RenderThemeGtk::adjustInnerSpinButtonStyle):
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::layout):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::paintOutline):
        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::adjustMediaSliderThumbSize):
        * rendering/RenderMediaControls.h:
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::adjustInnerStyle):
        (RenderMenuList::computeIntrinsicLogicalWidths):
        (RenderMenuList::menuStyle):
        * rendering/RenderMeter.cpp:
        (WebCore::RenderMeter::updateLogicalWidth):
        (WebCore::RenderMeter::computeLogicalHeight):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::paintOutline):
        * rendering/RenderProgress.cpp:
        (WebCore::RenderProgress::updateAnimationState):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::layout):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        (WebCore::RenderTheme::isControlStyled):
        (WebCore::RenderTheme::supportsFocusRing):
        (WebCore::RenderTheme::stateChanged):
        (WebCore::RenderTheme::adjustCheckboxStyle):
        (WebCore::RenderTheme::adjustRadioStyle):
        (WebCore::RenderTheme::adjustButtonStyle):
        (WebCore::RenderTheme::adjustInnerSpinButtonStyle):
        (WebCore::RenderTheme::adjustTextFieldStyle):
        (WebCore::RenderTheme::adjustTextAreaStyle):
        (WebCore::RenderTheme::adjustMenuListStyle):
        (WebCore::RenderTheme::adjustInputFieldSpeechButtonStyle):
        (WebCore::RenderTheme::adjustMeterStyle):
        (WebCore::RenderTheme::meterSizeForBounds):
        (WebCore::RenderTheme::animationRepeatIntervalForProgressBar):
        (WebCore::RenderTheme::animationDurationForProgressBar):
        (WebCore::RenderTheme::adjustProgressBarStyle):
        (WebCore::RenderTheme::shouldHaveSpinButton):
        (WebCore::RenderTheme::adjustMediaControlStyle):
        (WebCore::RenderTheme::adjustSliderTrackStyle):
        (WebCore::RenderTheme::adjustSliderThumbStyle):
        (WebCore::RenderTheme::adjustSliderThumbSize):
        (WebCore::RenderTheme::adjustSearchFieldStyle):
        (WebCore::RenderTheme::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderTheme::adjustSearchFieldDecorationPartStyle):
        (WebCore::RenderTheme::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderTheme::adjustSearchFieldResultsButtonStyle):
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::supportsHover):
        (WebCore::RenderTheme::minimumMenuListSize):
        (WebCore::RenderTheme::popupInternalPaddingLeft):
        (WebCore::RenderTheme::popupInternalPaddingRight):
        (WebCore::RenderTheme::popupInternalPaddingTop):
        (WebCore::RenderTheme::popupInternalPaddingBottom):
        (WebCore::RenderTheme::popupMenuSize):
        (WebCore::RenderTheme::setCheckboxSize):
        (WebCore::RenderTheme::setRadioSize):
        (WebCore::RenderTheme::setButtonSize):
        * rendering/RenderThemeIOS.h:
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::adjustCheckboxStyle):
        (WebCore::RenderThemeIOS::isControlStyled):
        (WebCore::RenderThemeIOS::adjustRadioStyle):
        (WebCore::RenderThemeIOS::popupInternalPaddingRight):
        (WebCore::RenderThemeIOS::adjustRoundBorderRadius):
        (WebCore::RenderThemeIOS::adjustMenuListButtonStyle):
        (WebCore::RenderThemeIOS::adjustSliderTrackStyle):
        (WebCore::RenderThemeIOS::adjustSliderThumbSize):
        (WebCore::RenderThemeIOS::animationRepeatIntervalForProgressBar):
        (WebCore::RenderThemeIOS::animationDurationForProgressBar):
        (WebCore::RenderThemeIOS::adjustSearchFieldStyle):
        (WebCore::RenderThemeIOS::adjustButtonStyle):
        (WebCore::RenderThemeIOS::setButtonSize):
        (WebCore::RenderThemeIOS::shouldHaveSpinButton):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::isControlStyled):
        (WebCore::RenderThemeMac::controlSizeForFont):
        (WebCore::RenderThemeMac::sizeForFont):
        (WebCore::RenderThemeMac::sizeForSystemFont):
        (WebCore::RenderThemeMac::setSizeFromFont):
        (WebCore::RenderThemeMac::setFontFromControlSize):
        (WebCore::RenderThemeMac::controlSizeForSystemFont):
        (WebCore::RenderThemeMac::adjustTextFieldStyle):
        (WebCore::RenderThemeMac::adjustTextAreaStyle):
        (WebCore::RenderThemeMac::paintMenuList):
        (WebCore::RenderThemeMac::meterSizeForBounds):
        (WebCore::RenderThemeMac::paintMeter):
        (WebCore::RenderThemeMac::levelIndicatorFor):
        (WebCore::RenderThemeMac::progressBarRectForBounds):
        (WebCore::RenderThemeMac::minimumProgressBarHeight):
        (WebCore::RenderThemeMac::animationRepeatIntervalForProgressBar):
        (WebCore::RenderThemeMac::animationDurationForProgressBar):
        (WebCore::RenderThemeMac::adjustProgressBarStyle):
        (WebCore::RenderThemeMac::paintProgressBar):
        (WebCore::RenderThemeMac::adjustMenuListStyle):
        (WebCore::RenderThemeMac::popupInternalPaddingLeft):
        (WebCore::RenderThemeMac::popupInternalPaddingRight):
        (WebCore::RenderThemeMac::popupInternalPaddingTop):
        (WebCore::RenderThemeMac::popupInternalPaddingBottom):
        (WebCore::RenderThemeMac::popupMenuSize):
        (WebCore::RenderThemeMac::minimumMenuListSize):
        (WebCore::RenderThemeMac::adjustSliderTrackStyle):
        (WebCore::RenderThemeMac::adjustSliderThumbStyle):
        (WebCore::RenderThemeMac::setSearchCellState):
        (WebCore::RenderThemeMac::setSearchFieldSize):
        (WebCore::RenderThemeMac::adjustSearchFieldStyle):
        (WebCore::RenderThemeMac::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeMac::adjustSearchFieldDecorationPartStyle):
        (WebCore::RenderThemeMac::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeMac::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeMac::adjustSliderThumbSize):
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::isControlStyled):
        (WebCore::RenderThemeSafari::adjustRepaintRect):
        (WebCore::RenderThemeSafari::baselinePosition):
        (WebCore::RenderThemeSafari::controlSizeForFont):
        (WebCore::RenderThemeSafari::sizeForFont):
        (WebCore::RenderThemeSafari::sizeForSystemFont):
        (WebCore::RenderThemeSafari::setSizeFromFont):
        (WebCore::RenderThemeSafari::setFontFromControlSize):
        (WebCore::RenderThemeSafari::controlSizeForSystemFont):
        (WebCore::RenderThemeSafari::paintCheckbox):
        (WebCore::RenderThemeSafari::setCheckboxSize):
        (WebCore::RenderThemeSafari::paintRadio):
        (WebCore::RenderThemeSafari::setRadioSize):
        (WebCore::RenderThemeSafari::setButtonPaddingFromControlSize):
        (WebCore::RenderThemeSafari::adjustButtonStyle):
        (WebCore::RenderThemeSafari::setButtonSize):
        (WebCore::RenderThemeSafari::adjustTextFieldStyle):
        (WebCore::RenderThemeSafari::adjustTextAreaStyle):
        (WebCore::RenderThemeSafari::paintMenuList):
        (WebCore::RenderThemeSafari::adjustMenuListStyle):
        (WebCore::RenderThemeSafari::popupInternalPaddingLeft):
        (WebCore::RenderThemeSafari::popupInternalPaddingRight):
        (WebCore::RenderThemeSafari::popupInternalPaddingTop):
        (WebCore::RenderThemeSafari::popupInternalPaddingBottom):
        (WebCore::RenderThemeSafari::adjustMenuListButtonStyle):
        (WebCore::RenderThemeSafari::minimumMenuListSize):
        (WebCore::RenderThemeSafari::adjustSliderThumbStyle):
        (WebCore::RenderThemeSafari::adjustSliderThumbSize):
        (WebCore::RenderThemeSafari::setSearchFieldSize):
        (WebCore::RenderThemeSafari::adjustSearchFieldStyle):
        (WebCore::RenderThemeSafari::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeSafari::adjustSearchFieldDecorationPartStyle):
        (WebCore::RenderThemeSafari::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeSafari::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeSafari::adjustMeterStyle):
        (WebCore::RenderThemeSafari::meterSizeForBounds):
        (WebCore::RenderThemeSafari::paintMeter):
        * rendering/RenderThemeSafari.h:
        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::supportsHover):
        (WebCore::RenderThemeWin::supportsFocusRing):
        (WebCore::RenderThemeWin::adjustInnerSpinButtonStyle):
        (WebCore::RenderThemeWin::setCheckboxSize):
        (WebCore::RenderThemeWin::paintTextField):
        (WebCore::RenderThemeWin::paintMenuList):
        (WebCore::RenderThemeWin::adjustMenuListStyle):
        (WebCore::RenderThemeWin::adjustMenuListButtonStyle):
        (WebCore::RenderThemeWin::adjustSliderThumbSize):
        (WebCore::RenderThemeWin::adjustSearchFieldStyle):
        (WebCore::RenderThemeWin::adjustSearchFieldCancelButtonStyle):
        (WebCore::RenderThemeWin::adjustSearchFieldDecorationPartStyle):
        (WebCore::RenderThemeWin::adjustSearchFieldResultsDecorationPartStyle):
        (WebCore::RenderThemeWin::adjustSearchFieldResultsButtonStyle):
        (WebCore::RenderThemeWin::adjustMeterStyle):
        (WebCore::RenderThemeWin::meterSizeForBounds):
        (WebCore::RenderThemeWin::paintMeter):
        * rendering/RenderThemeWin.h:
        (WebCore::RenderThemeWin::paintCheckbox):
        (WebCore::RenderThemeWin::paintRadio):
        (WebCore::RenderThemeWin::setRadioSize):
        (WebCore::RenderThemeWin::paintTextArea):
        (WebCore::RenderThemeWin::popupOptionSupportsTextIndent):
        (WebCore::RenderThemeWin::paintSearchFieldDecorationPart):
        (WebCore::RenderThemeWin::adjustButtonStyle):
        (WebCore::RenderThemeWin::adjustTextFieldStyle):
        (WebCore::RenderThemeWin::adjustTextAreaStyle):
        (WebCore::RenderThemeWin::shouldShowPlaceholderWhenFocused):

2014-06-25  Benjamin Poulain  <benjamin@webkit.org>

        [Mac] Update the time base of event's timestamp when the system time changes
        https://bugs.webkit.org/show_bug.cgi?id=134293

        Reviewed by Anders Carlsson.

        * platform/mac/PlatformEventFactoryMac.mm:
        (WebCore::cachedStartupTimeIntervalSince1970): Since events timestamps are absolute time, they also
        need to be updated if the system clock changes.

2014-06-25  Dirk Schulze  <krit@webkit.org>

        Add all blend modes to feBlend

        feBlend should support all blend modes from CSS and Canvas
        https://bugs.webkit.org/show_bug.cgi?id=134296

        Reviewed by Dean Jackson.

        Add all blend modes to <feBlend> (the SVG filter primitive) that are also
        supported by HTML Canvas and CSS.

        In addition, add "normal" blend mode to HTML Canvas as requested by the
        CSS Compositing and Blending specification. (Referenced from HTML Canvas.)
        With this change, SVG, CSS and Canvas truly share the same blend modes and
        even the same keywords. This is much easier to for web authors.

        http://www.w3.org/TR/2014/CR-compositing-1-20140220/#ltblendmodegt

        Test: svg/filters/feBlend-all-blendmodes.svg

        * platform/graphics/GraphicsTypes.cpp: Reorder blend mode text streams to match
            enumeration order. Add a new function to parse blend modes independent of
            compositing modes. Add a string "normal" that is supported by CSS, feBlend and
            HTML Canvas now.
        (WebCore::parseBlendMode):
        (WebCore::parseCompositeAndBlendOperator):
        * platform/graphics/GraphicsTypes.h: Reorder BlendMode enumeration values to match
         the SVG JS enumeration for blend modes.
        * platform/graphics/cpu/arm/filters/FEBlendNEON.h: Move all software code that is no
            longer required by the software path but still used by NEON here.
        (WebCore::FEBlend::platformApplySoftware):
        (WebCore::FEBlend::platformApplyNEON):
        * platform/graphics/filters/FEBlend.cpp:
            Use drawImageBuffer() to blend the results of previous filter primitives. This
            allows removing more than 60% of the code.
        (WebCore::FEBlend::FEBlend):
        (WebCore::FEBlend::create):
        (WebCore::FEBlend::blendMode):
        (WebCore::FEBlend::setBlendMode):
        (WebCore::FEBlend::platformApplySoftware):
        (WebCore::FEBlend::dump):
        (WebCore::FEBlend::externalRepresentation):
        (WebCore::feBlendNormal): Deleted.
        (WebCore::feBlendMultiply): Deleted.
        (WebCore::feBlendScreen): Deleted.
        (WebCore::feBlendDarken): Deleted.
        (WebCore::feBlendLighten): Deleted.
        (WebCore::feBlendUnknown): Deleted.
        (WebCore::platformApply): Deleted.
        (WebCore::FEBlend::platformApplyGeneric): Deleted.
        (WebCore::operator<<): Deleted.
        * platform/graphics/filters/FEBlend.h:
        * svg/SVGAnimatedEnumeration.cpp: Use the global BlendMode enumeration.
        (WebCore::enumerationValueForTargetAttribute):
        * svg/SVGFEBlendElement.cpp:
        (WebCore::SVGFEBlendElement::SVGFEBlendElement): Use the global BlendMode enumeration.
            No new enumeration values added or exposed to SVG DOM as requested by SVG WG.
        (WebCore::SVGFEBlendElement::parseAttribute):
        * svg/SVGFEBlendElement.h: Replace BlendModeType with global BlendMode enumeration. Remove
            blend mode parsing code and use the code in GraphicsTypes instead.
        (WebCore::SVGPropertyTraits<BlendMode>::highestEnumValue):
        (WebCore::SVGPropertyTraits<BlendMode>::toString):
        (WebCore::SVGPropertyTraits<BlendModeType>::highestEnumValue): Deleted.
        (WebCore::SVGPropertyTraits<BlendModeType>::toString): Deleted.
        (WebCore::SVGPropertyTraits<BlendModeType>::fromString): Deleted.

2014-06-25  Zalan Bujtas  <zalan@apple.com>

        Unreviewed iOS build fix after r170425.

        * accessibility/AccessibilityProgressIndicator.cpp:
        * accessibility/AccessibilityProgressIndicator.h:

2014-06-25  Chris Fleizach  <cfleizach@apple.com>

        AX: Crash at com.apple.WebCore: WebCore::AlternativeTextController::removeDictationAlternativesForMarker + 43
        https://bugs.webkit.org/show_bug.cgi?id=134226

        Reviewed by Enrica Casucci.

        Unchecked access of details pointer in the Document marker led to the crash.
        It seems erroneous to allow creation of a DocumentMarker without details when one is expected, because it
        carries the dictation context (not just the description).
        Also, add in ASSERTs to catch scenarios where a nullptr might be passed in.

        Test: platform/mac/editing/input/crash-for-empty-text-alternative.html

        * dom/DocumentMarker.cpp:
        (WebCore::DocumentMarker::DocumentMarker):
        * editing/AlternativeTextController.cpp:
        (WebCore::AlternativeTextController::removeDictationAlternativesForMarker):

2014-06-25  Laszlo Gombos  <l.gombos@samsung.com>

        Remove build guard for progress element
        https://bugs.webkit.org/show_bug.cgi?id=134292

        Reviewed by Benjamin Poulain.

        The build flag is no longer needed as it is always on.

        No new tests as there is no new behaviour.

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * accessibility/AXObjectCache.cpp:
        (WebCore::createFromRenderer):
        * accessibility/AccessibilityProgressIndicator.cpp:
        (WebCore::AccessibilityProgressIndicator::create):
        (WebCore::AccessibilityProgressIndicator::valueForRange):
        (WebCore::AccessibilityProgressIndicator::maxValueForRange):
        (WebCore::AccessibilityProgressIndicator::minValueForRange):
        (WebCore::AccessibilityProgressIndicator::progressElement):
        * accessibility/AccessibilityProgressIndicator.h:
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::sharingCandidateHasIdenticalStyleAffectingAttributes):
        * css/html.css:
        (progress::-webkit-progress-value):
        * html/HTMLProgressElement.cpp:
        * html/HTMLProgressElement.h:
        * html/HTMLProgressElement.idl:
        * html/HTMLTagNames.in:
        * html/shadow/ProgressShadowElement.cpp:
        * html/shadow/ProgressShadowElement.h:
        * platform/efl/DefaultTheme/CMakeLists.txt:
        * platform/efl/DefaultTheme/default.edc:
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::toEdjeGroup):
        (WebCore::RenderThemeEfl::applyEdjeRTLState):
        (WebCore::RenderThemeEfl::paintProgressBar):
        * platform/efl/RenderThemeEfl.h:
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::calculateProgressRect):
        * platform/gtk/RenderThemeGtk.h:
        * platform/gtk/RenderThemeGtk2.cpp:
        (WebCore::RenderThemeGtk::paintProgressBar):
        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::RenderThemeGtk::paintProgressBar):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isSnapshottedPlugIn):
        (WebCore::RenderObject::isProgress):
        * rendering/RenderProgress.cpp:
        * rendering/RenderProgress.h:
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::paintBorderOnly):
        (WebCore::RenderTheme::paintDecorations):
        (WebCore::RenderTheme::progressBarRectForBounds):
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::paintProgressBar):
        * rendering/RenderThemeIOS.h:
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::paintProgressBar):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintProgressBar):

2014-06-25  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Update GObject DOM bindings test results after r170422.

        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (WebKit::wrapTestActiveDOMObject):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (WebKit::wrapTestCallback):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (WebKit::wrapTestCustomNamedGetter):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (WebKit::wrapTestEventConstructor):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (WebKit::wrapTestEventTarget):
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (WebKit::wrapTestException):
        * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp:
        (WebKit::wrapTestGenerateIsReachable):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (WebKit::wrapTestInterface):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (WebKit::wrapTestMediaQueryListListener):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (WebKit::wrapTestNamedConstructor):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        (WebKit::wrapTestNode):
        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp:
        (WebKit::wrapTestNondeterministic):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (WebKit::wrapTestObj):
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
        (WebKit::wrapTestOverloadedConstructors):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (WebKit::wrapTestSerializedScriptValueInterface):
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
        (WebKit::wrapTestTypedefs):
        * bindings/scripts/test/GObject/WebKitDOMattribute.cpp:
        (WebKit::wrapattribute):
        * bindings/scripts/test/GObject/WebKitDOMreadonly.cpp:
        (WebKit::wrapreadonly):

2014-06-24  Tomas Popela  <tpopela@redhat.com>

        [GTK] Some of DOM bindings macros are misnamed
        https://bugs.webkit.org/show_bug.cgi?id=121543

        Reviewed by Carlos Garcia Campos.

        As we are using WebKitDOM as a namespace we should unify all type macros
        to have WEBKIT_DOM_TYPE prefix instead of WEBKIT_TYPE_DOM. Also add
        more exceptions to decamelize function in GObject bindings generator
        to fix the names of bindings for BR, HR, UL, OL, DL and LI elements.

        * bindings/gobject/GObjectEventListener.cpp:
        (WebCore::GObjectEventListener::handleEvent):
        * bindings/gobject/WebKitDOMEventTarget.h:
        * bindings/gobject/WebKitDOMNodeFilter.h:
        * bindings/gobject/WebKitDOMObject.h:
        * bindings/gobject/webkitdom.symbols:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (decamelize):
        (GetParentGObjType):
        (GenerateProperty):
        (GenerateHeader):
        (GenerateCFile):
        (GenerateEventTargetIface):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.cpp:
        (WebKit::wrapFloat64Array):
        * bindings/scripts/test/GObject/WebKitDOMFloat64Array.h:
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.cpp:
        (WebKit::wrapTestActiveDOMObject):
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp:
        (WebKit::wrapTestCallback):
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.cpp:
        (WebKit::wrapTestCustomNamedGetter):
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.cpp:
        (WebKit::wrapTestEventConstructor):
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (WebKit::wrapTestEventTarget):
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
        * bindings/scripts/test/GObject/WebKitDOMTestException.cpp:
        (WebKit::wrapTestException):
        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
        * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.cpp:
        (WebKit::wrapTestGenerateIsReachable):
        * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp:
        (WebKit::wrapTestInterface):
        (webkit_dom_test_interface_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.cpp:
        (WebKit::wrapTestMediaQueryListListener):
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.cpp:
        (WebKit::wrapTestNamedConstructor):
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.cpp:
        (WebKit::wrapTestNode):
        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp:
        (WebKit::wrapTestNondeterministic):
        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (WebKit::wrapTestObj):
        (webkit_dom_test_obj_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.cpp:
        (WebKit::wrapTestOverloadedConstructors):
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp:
        (WebKit::wrapTestSerializedScriptValueInterface):
        (webkit_dom_test_serialized_script_value_interface_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
        (WebKit::wrapTestTypedefs):
        (webkit_dom_test_typedefs_class_init):
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
        * bindings/scripts/test/GObject/WebKitDOMattribute.cpp:
        (WebKit::wrapattribute):
        * bindings/scripts/test/GObject/WebKitDOMattribute.h:
        * bindings/scripts/test/GObject/WebKitDOMreadonly.cpp:
        (WebKit::wrapreadonly):
        * bindings/scripts/test/GObject/WebKitDOMreadonly.h:

2014-06-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170414.
        https://bugs.webkit.org/show_bug.cgi?id=134291

        the patch added a test that fails on almost every Mac tester
        (Requested by rniwa on #webkit).

        Reverted changeset:

        "Tiles on bottom of screen are not always allocated when
        necessary"
        https://bugs.webkit.org/show_bug.cgi?id=134272
        http://trac.webkit.org/changeset/170414

2014-06-24  Myles C. Maxfield  <mmaxfield@apple.com>

        Tiles on bottom of screen are not always allocated when necessary
        https://bugs.webkit.org/show_bug.cgi?id=134272

        Reviewed by Simon Fraser.

        The initial visibleRect is in the coordinate of the root layer, so its origin
        is at the top left of the view. The initial rect we were using doesn't
        include the contents inset, so it was too short, which was causing tiles near
        the bottom of the screen to not always be allocated if the tile threshold was
        close to the bottom of the view. Instead, we want to include the contents
        inset size so the visible rect includes the entire view.
        GraphicsLayerCA::recursiveCommitChanges() takes care of mapping and cropping
        the visible rect into the tiled layer's coordinate system, at which point it
        is used for visible tile logic.

        Test: platform/mac-wk2/tiled-drawing/visible-rect-content-inset.html

        * platform/graphics/ca/TileCoverageMap.cpp:
        (WebCore::TileCoverageMap::update):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):

2014-06-24  Myles C. Maxfield  <mmaxfield@apple.com>

        InlineTextBox's m_len can be an unsigned (rather than an unsigned short)
        https://bugs.webkit.org/show_bug.cgi?id=134173

        Reviewed by Daniel Bates.

        After Zalan's talks with Kling, it seems that the simple line layout code
        might alleviate the need for the space savings in InlineTextBox. Given this,
        it would be beneficial to be a little more safe by using unsigneds throughout.

        For example, we have code like "void setLen(unsigned len) { m_len = len; }"
        which might silently break if given particular inputs.

        No new tests because there is no behavior change.

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::isSelected):
        (WebCore::InlineTextBox::localSelectionRect):
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::selectionStartEnd):
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::InlineTextBox::paintCompositionBackground):
        (WebCore::InlineTextBox::paintDocumentMarker):
        (WebCore::InlineTextBox::paintTextMatchMarker):
        (WebCore::InlineTextBox::computeRectForReplacementMarker):
        * rendering/InlineTextBox.h:
        (WebCore::InlineTextBox::truncation):
        * rendering/RenderTextLineBoxes.cpp:
        (WebCore::ellipsisRectForBox):

2014-06-24  Ryosuke Niwa  <rniwa@webkit.org>

        Speculative 32-bit Mac build fix after r170402.

        * platform/graphics/mac/ComplexTextController.cpp:
        (WebCore::advanceByCombiningCharacterSequence):

2014-06-24  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS]: WK2 Inspector Node Highlighting
        https://bugs.webkit.org/show_bug.cgi?id=134257

        Reviewed by Timothy Hatcher.

        Some clients want to get highlights with the scroll applied,
        others do not. Provide a CoordinateSpace param to be used for
        getting a highlight (only used on iOS).

        * WebCore.exp.in:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::getHighlight):
        * inspector/InspectorController.h:
        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::getHighlight):
        (WebCore::buildObjectForRendererFragments):
        * inspector/InspectorOverlay.h:
        (WebCore::Highlight::Highlight):
        * testing/Internals.cpp:
        (WebCore::Internals::inspectorHighlightRects):

2014-06-24  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Uncaught exception when deallocating AVSampleBufferDisplayLayer
        https://bugs.webkit.org/show_bug.cgi?id=134281

        Reviewed by Brent Fulgham.

        AVSampleBufferDisplayLayer is throwing an exception from its -dealloc method because KVO observers exist
        at the time of dealloc. Remove the observer for outputObscuredDueToInsufficientExternalProtection inside
        -stopObservingLayer.

        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (-[WebAVSampleBufferErrorListener stopObservingLayer:]):

2014-06-24  Mark Rowe  <mrowe@apple.com>

        WKContextHistoryClient::didNavigateWithNavigationData is passed incorrect URL when history.pushState is used
        <https://webkit.org/b/134271> / <rdar://problem/16270167>

        Reviewed by Brady Eidson.

        Tests: http/tests/globalhistory/history-delegate-pushstate.html
               http/tests/globalhistory/history-delegate-replacestate.html

        * page/History.cpp:
        (WebCore::History::stateObjectAdded): Call HistoryController after updating the document's URL so that the
        URL will reflect the destination of the navigation when FrameLoaderClient::updateGlobalHistory is called.

2014-06-24  Myles C. Maxfield  <mmaxfield@apple.com>

        advanceByCombiningCharacterSequence() can be simplified
        https://bugs.webkit.org/show_bug.cgi?id=133591

        Reviewed by Dean Jackson.

        Use U16_NEXT() because it already does what we're trying to do.

        No new tests because there is no behavior change.

        * platform/graphics/mac/ComplexTextController.cpp:
        (WebCore::advanceByCombiningCharacterSequence):

2014-06-24  Brady Eidson  <beidson@apple.com>

        Enable GAMEPAD in the Mac build, but disabled at runtime.
        https://bugs.webkit.org/show_bug.cgi?id=134255

        Reviewed by Dean Jackson.

        No new tests (No changes to a tested config).

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation): Add the ability to have a function be EnabledAtRuntime by
          removing such functions from the prototype if they are disabled.

        Change the three new objects and the one new function to be EnabledAtRuntime
        * Modules/gamepad/Gamepad.idl:
        * Modules/gamepad/GamepadButton.idl:
        * Modules/gamepad/GamepadEvent.idl:
        * Modules/gamepad/NavigatorGamepad.idl:

        Add a RuntimeEnabledFeature for Gamepads:
        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures):
        * bindings/generic/RuntimeEnabledFeatures.h:
        (WebCore::RuntimeEnabledFeatures::setGamepadsEnabled):
        (WebCore::RuntimeEnabledFeatures::gamepadsEnabled):

        * Configurations/FeatureDefines.xcconfig:

2014-06-24  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: Add positionInRootFragments to SelectorFragment
        https://bugs.webkit.org/show_bug.cgi?id=133609

        Reviewed by Benjamin Poulain.

        Some non-backtrack-related predicates use relationToRightFragment information
        to decide whether checkingContext->elementStyle should be refered.
        To make it works correctly, add the positionInRootFragments field to SelectorFragment.
        When positionInRootFragments == Rightmost and relationToRightFragment == Rightmost,
        we should see checkingContext->elementStyle.

        Test: fast/selectors/first-child-update-with-renderer.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::shouldUseRenderStyleFromCheckingContext):
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::constructFragments):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):

2014-06-24  Jer Noble  <jer.noble@apple.com>

        [Fullscreen][Mac] WKView is not firstResponder after entering fullscreen mode
        https://bugs.webkit.org/show_bug.cgi?id=134270

        Reviewed by Jon Honeycutt.

        The WebCoreFullScreenWindow's firstResponder is reset when the full screen animation completes and
        the window's style is changed to a fullscreen style. Save the firstResponder, and if it's still in
        the window's view hierarchy after the style changes, reset it to the firstResponder.

        * platform/mac/WebCoreFullScreenWindow.mm:
        (-[WebCoreFullScreenWindow setStyleMask:]):

2014-06-24  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Pass AVSampleBufferDisplayLayer HDCP status through to EME
        https://bugs.webkit.org/show_bug.cgi?id=134221

        Reviewed by Eric Carlson.

        Pass the outputObscuredDueToInsufficientExternalProtection property of AVSampleBufferDisplayLayer
        as an error to the associated MediaKeySession object.

        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (-[WebAVSampleBufferErrorListener invalidate]):
        (-[WebAVSampleBufferErrorListener beginObservingLayer:]):
        (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):

2014-06-20  Myles C. Maxfield  <mmaxfield@apple.com>

        Use unsigneds instead of ints for indexes into a string in text layout code
        https://bugs.webkit.org/show_bug.cgi?id=133592

        Reviewed by Zalan Bujtas.

        Migrate much of the text-handling code to use unsigneds for indexes into a string.

        No new tests because there is no behavior change.

        * WebCore.exp.in:
        * platform/graphics/Font.cpp:
        (WebCore::Font::drawText):
        (WebCore::Font::drawEmphasisMarks):
        (WebCore::Font::adjustSelectionRectForText):
        (WebCore::computeUnderlineType):
        * platform/graphics/Font.h:
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::getGlyphsAndAdvancesForSimpleText):
        (WebCore::Font::drawSimpleText):
        (WebCore::Font::drawEmphasisMarksForSimpleText):
        (WebCore::Font::drawGlyphBuffer):
        (WebCore::Font::drawEmphasisMarks):
        (WebCore::Font::adjustSelectionRectForSimpleText):
        * platform/graphics/GlyphBuffer.h:
        (WebCore::GlyphBuffer::size):
        (WebCore::GlyphBuffer::glyphs):
        (WebCore::GlyphBuffer::advances):
        (WebCore::GlyphBuffer::fontDataAt):
        (WebCore::GlyphBuffer::advanceAt):
        (WebCore::GlyphBuffer::offsetAt):
        (WebCore::GlyphBuffer::reverse):
        (WebCore::GlyphBuffer::offsetInString):
        (WebCore::GlyphBuffer::swap):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::TextRunIterator::atEnd):
        * platform/graphics/Latin1TextIterator.h:
        (WebCore::Latin1TextIterator::Latin1TextIterator):
        (WebCore::Latin1TextIterator::currentCharacter):
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/SurrogatePairAwareTextIterator.cpp:
        (WebCore::SurrogatePairAwareTextIterator::SurrogatePairAwareTextIterator):
        * platform/graphics/SurrogatePairAwareTextIterator.h:
        (WebCore::SurrogatePairAwareTextIterator::currentCharacter):
        * platform/graphics/TextRun.h:
        (WebCore::TextRun::length):
        (WebCore::TextRun::charactersLength):
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::glyphDataForCharacter):
        (WebCore::applyFontTransforms):
        (WebCore::WidthIterator::advanceInternal):
        (WebCore::WidthIterator::advance):
        (WebCore::WidthIterator::advanceOneCharacter):
        * platform/graphics/WidthIterator.h:
        * platform/graphics/cairo/FontCairo.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        (WebCore::Font::adjustSelectionRectForComplexText):
        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::setNormalizedBuffer):
        * platform/graphics/mac/FontComplexTextMac.cpp:
        (WebCore::Font::adjustSelectionRectForComplexText):
        (WebCore::Font::getGlyphsAndAdvancesForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontCGWin.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::adjustSelectionRectForComplexText):
        (WebCore::Font::getGlyphsAndAdvancesForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        * platform/graphics/wince/FontWinCE.cpp:
        (WebCore::Font::drawGlyphs):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        (WebCore::Font::selectionRectForComplexText):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::isSelected):
        (WebCore::InlineTextBox::selectionState):
        (WebCore::adjustCharactersAndLengthForHyphen):
        (WebCore::InlineTextBox::localSelectionRect):
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::selectionStartEnd):
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::InlineTextBox::paintCompositionBackground):
        (WebCore::InlineTextBox::paintDocumentMarker):
        (WebCore::InlineTextBox::paintTextMatchMarker):
        (WebCore::InlineTextBox::computeRectForReplacementMarker):
        (WebCore::InlineTextBox::paintCompositionUnderline):
        (WebCore::InlineTextBox::positionForOffset):
        (WebCore::InlineTextBox::constructTextRun):
        * rendering/InlineTextBox.h:
        * rendering/RenderCombineText.cpp:
        (WebCore::RenderCombineText::getStringToRender):
        * rendering/RenderCombineText.h:
        * rendering/svg/SVGInlineFlowBox.cpp:
        (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::positionForOffset):
        (WebCore::SVGInlineTextBox::localSelectionRect):
        (WebCore::SVGInlineTextBox::paintSelectionBackground):
        (WebCore::SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates):
        (WebCore::SVGInlineTextBox::paintText):
        * rendering/svg/SVGInlineTextBox.h:
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair):
        (WebCore::SVGTextMetricsBuilder::advance):
        * rendering/svg/SVGTextQuery.cpp:
        (WebCore::SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates):
        (WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
        (WebCore::SVGTextQuery::subStringLengthCallback):
        (WebCore::SVGTextQuery::startPositionOfCharacterCallback):
        (WebCore::SVGTextQuery::endPositionOfCharacterCallback):
        (WebCore::SVGTextQuery::rotationOfCharacterCallback):
        (WebCore::SVGTextQuery::extentOfCharacterCallback):
        (WebCore::SVGTextQuery::characterNumberAtPositionCallback):
        * rendering/svg/SVGTextQuery.h:
        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
        * rendering/svg/SVGTextRunRenderingContext.h:
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        * svg/SVGFontData.h:

2014-06-24  Eric Carlson  <eric.carlson@apple.com>

        Unreviewed build fix.

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processNativeSamples): Cast variadic argument to int.

2014-06-24  Brent Fulgham  <bfulgham@apple.com>

        [Win] MSVC mishandles enums in bitfields
        https://bugs.webkit.org/show_bug.cgi?id=134237

        Reviewed by Michael Saboff.

        Replace uses of enum types in bit fields with unsigned to
        avoid losing a bit to hold the sign value. This can result
        in Windows interpreting the value of the field improperly.

        * loader/ResourceLoaderOptions.h:
        * platform/network/ResourceRequestBase.h:
        * platform/network/cf/ResourceResponse.h:
        * rendering/RenderLayer.h:
        * rendering/RenderMarquee.h:

2014-06-24  Antti Koivisto  <antti@apple.com>

        Try to fix build.

        * WebCore.exp.in: Remove duplicate export, this should be in the iOS section only.

2014-06-24  Eric Carlson  <eric.carlson@apple.com>

        [Mac] process raw VTT in-band captions
        https://bugs.webkit.org/show_bug.cgi?id=134178

        Reviewed by Jer Noble.

        * CMakeLists.txt: Add ISOVTTCue.cpp|h.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * html/track/BufferedLineReader.h:
        (WebCore::BufferedLineReader::reset): New, empty the input buffer.

        Make it possible to process WebVTT captions. 
        * html/track/InbandGenericTextTrack.cpp:
        (WebCore::InbandGenericTextTrack::parser): Allocate, if necessary, and return a WebVTT parser.
        (WebCore::InbandGenericTextTrack::parseWebVTTCueData): Pass a cue to the parser.
        (WebCore::InbandGenericTextTrack::parseWebVTTFileHeader): Pass a VTT file header to the parser.
        (WebCore::InbandGenericTextTrack::newCuesParsed): Parser callback.
        (WebCore::InbandGenericTextTrack::newRegionsParsed): Ditto.
        (WebCore::InbandGenericTextTrack::fileFailedToParse): Ditto.
        * html/track/InbandGenericTextTrack.h:

        * html/track/InbandTextTrack.h:

        * html/track/InbandWebVTTTextTrack.cpp:
        (WebCore::InbandWebVTTTextTrack::parser): New, parser accessor.
        (WebCore::InbandWebVTTTextTrack::parseWebVTTCueData): New, parse VTT data in an ISOWebVTTCue
            object.
        (WebCore::InbandWebVTTTextTrack::newCuesParsed): Cleanup.
        (WebCore::InbandWebVTTTextTrack::newRegionsParsed): Implement.
        (WebCore::InbandWebVTTTextTrack::fileFailedToParse): Change the error message.
        * html/track/InbandWebVTTTextTrack.h:

        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::TextTrackCueGenericBoxElement): Change cue parameter
            from a pointer to a reference.
        (WebCore::TextTrackCueGeneric::createDisplayTree): Ditto.

        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::create): Change cue parameter from a pointer to a reference.
        (WebCore::VTTCueBox::VTTCueBox): Ditto.
        (WebCore::VTTCueBox::getCue): Return a reference.
        (WebCore::VTTCueBox::applyCSSProperties): m_cue is a reference, not a pointer.
        (WebCore::VTTCue::create): New, create a VTTCue from WebVTTCueData.
        (WebCore::VTTCue::VTTCue): New, internal constructor that takes a WebVTTCueData.
        (WebCore::VTTCue::initialize): New, shared constructor initialization.
        (WebCore::VTTCue::createDisplayTree): m_cue is a reference, not a pointer.
        (WebCore::VTTCue::markFutureAndPastNodes): Ditto.
        (WebCore::VTTCue::setCueSettings): Ditto.
        * html/track/VTTCue.h:
        (WebCore::VTTCueBox::create): Deleted.
        (WebCore::VTTCue::create): Deleted.

        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::parseFileHeader): New. Reset the line reader buffer and parser state, 
            call the parser.
        (WebCore::WebVTTParser::parseCueData): Create a cue from ISOWebVTTCue.
        (WebCore::WebVTTParser::collectTimingsAndSettings): Return immediately if the string is empty.
        (WebCore::WebVTTParser::collectTimeStamp): Ditto.
        * html/track/WebVTTParser.h:
        (WebCore::WebVTTCueData::originalStartTime): New.
        (WebCore::WebVTTCueData::setOriginalStartTime): New.
        (WebCore::WebVTTCueData::WebVTTCueData):

        * loader/TextTrackLoader.cpp:
        (WebCore::TextTrackLoader::getNewCues): Cleanup, use the new VTTCue::create.

        Parse ISO WebVTT cue boxes.
        * platform/graphics/ISOVTTCue.cpp: Added.
        (WebCore::ISOBox::ISOBox):
        (WebCore::ISOBox::peekType):
        (WebCore::ISOBox::peekLength):
        (WebCore::ISOBox::peekString):
        (WebCore::vttCueBoxType):
        (WebCore::vttIdBoxType):
        (WebCore::vttSettingsBoxType):
        (WebCore::vttPayloadBoxType):
        (WebCore::vttCurrentTimeBoxType):
        (WebCore::vttCueSourceIDBoxType):
        (WebCore::ISOWebVTTCue::boxType):
        (WebCore::ISOWebVTTCue::ISOWebVTTCue):
        * platform/graphics/ISOVTTCue.h: Added.
        (WebCore::ISOBox::boxHeaderSize):
        (WebCore::ISOBox::length):
        (WebCore::ISOBox::type):
        (WebCore::ISOWebVTTCue::presentationTime):
        (WebCore::ISOWebVTTCue::duration):
        (WebCore::ISOWebVTTCue::sourceID):
        (WebCore::ISOWebVTTCue::id):
        (WebCore::ISOWebVTTCue::originalStartTime):
        (WebCore::ISOWebVTTCue::settings):
        (WebCore::ISOWebVTTCue::cueText):

        * platform/graphics/InbandTextTrackPrivateClient.h:
        (WebCore::InbandTextTrackPrivateClient::parseWebVTTFileHeader): New.

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Add a cue format parameter.
        (WebCore::InbandTextTrackPrivateAVF::processCue): Call processNativeSamples.
        (WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Add logging. Minor cleanup.
        (WebCore::InbandTextTrackPrivateAVF::processNativeSamples): New, process an array of 
            CMSampleBuffers, create ISOWebVTTCue from the sample data.
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:

        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
        (WebCore::InbandTextTrackPrivateAVCF::InbandTextTrackPrivateAVCF):
        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:
        (WebCore::InbandTextTrackPrivateAVCF::create):
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::MediaPlayerPrivateAVFoundationCF::processMediaSelectionOptions):
        (WebCore::LegibleOutputData::LegibleOutputData):
        (WebCore::AVFWrapper::processCue):
        (WebCore::AVFWrapper::legibleOutputCallback):

        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
        (WebCore::InbandTextTrackPrivateAVFObjC::create): Add a cue format parameter.
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
        (WebCore::InbandTextTrackPrivateAVFObjC::InbandTextTrackPrivateAVFObjC): Ditto.

        * platform/graphics/avfoundation/InbandTextTrackPrivateLegacyAVFObjC.cpp:
        (WebCore::InbandTextTrackPrivateLegacyAVFObjC::InbandTextTrackPrivateLegacyAVFObjC): Pass cue
            format to base class.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Improve logging.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Don't leak an NSDictionary.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Don't process media selection
            options until we have tracks.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): 
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): Pass native samples as well as 
            attributed strings to track.
        (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
        * platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h:
        (WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):

        * platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h:
        (WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):

2014-06-24  Antti Koivisto  <antti@apple.com>

        Only flush layers when the exposed rect actually changes
        https://bugs.webkit.org/show_bug.cgi?id=134248

        Reviewed by Anders Carlsson.

        * WebCore.exp.in:

2014-06-24  Brady Eidson  <beidson@apple.com>

        Remove references to "Shader.h" which doesn't currently exist in the project.

        Rubberstamped by Andreas Kling.

        * WebCore.xcodeproj/project.pbxproj:

2014-06-24  Martin Hock  <mhock@apple.com>

        [iOS] DOMWindow::outerWidth and outerHeight don't return useful values, so return 0.
        Also, revert r169281.
        https://bugs.webkit.org/show_bug.cgi?id=134233
        <rdar://problem/17060183>

        Reviewed by Benjamin Poulain.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::outerHeight):
        (WebCore::DOMWindow::outerWidth):

2014-06-24  Jeremy Jones  <jeremyj@apple.com>

        Don't set AudioSession active while interrupted.
        https://bugs.webkit.org/show_bug.cgi?id=134239

        Reviewed by Eric Carlson.

        To activate the AudioSession there must be a session with audio or video
        and being playing or paused.

        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::hasActive): added
        (WebCore::MediaSessionManager::beginInterruption): updateSessionState
        (WebCore::MediaSessionManager::sessionWillBeginPlayback): updateSessionState
        * platform/audio/MediaSessionManager.h: declare hasActive()
        * platform/audio/mac/MediaSessionManagerMac.cpp:
        (MediaSessionManager::updateSessionState): use hasActive()

2014-06-24  Jer Noble  <jer.noble@apple.com>

        REGRESSION(r170336): Crash in HTMLMediaElement::seekTimerFired()
        https://bugs.webkit.org/show_bug.cgi?id=134253

        Rubber-stamped by Eric Carlson.

        Now that seekWithTolerance() has been split up into an asyncronous section, the null-checks in seekWithTolerance()
        need to be re-performed in seekTimerFired(), in case the m_player has been cleared between when the seek was initiated
        and when the asynchronous section is performed.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::seekTimerFired):

2014-06-24  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Fix unused parameter warnings if inspector is disabled
        https://bugs.webkit.org/show_bug.cgi?id=134244

        Reviewed by Zalan Bujtas.

        No new tests, no behavior change.

        * inspector/InspectorConsoleInstrumentation.h:
        (WebCore::InspectorInstrumentation::startProfiling):
        (WebCore::InspectorInstrumentation::stopProfiling):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::didFinishXHRLoading):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):

2014-06-24  Jer Noble  <jer.noble@apple.com>

        [MSE] Add null-check in sourceBufferPrivateAppendComplete().
        https://bugs.webkit.org/show_bug.cgi?id=133230

        Reviewed by Eric Carlson.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Bail early if the 
            SourceBuffer has been removed from the MediaSource.

2014-06-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170337.
        https://bugs.webkit.org/show_bug.cgi?id=134250

        caused 3 layout tests to crash on debug. (Requested by zalan
        on #webkit).

        Reverted changeset:

        "Use unsigneds instead of ints for indexes into a string in
        text layout code"
        https://bugs.webkit.org/show_bug.cgi?id=133592
        http://trac.webkit.org/changeset/170337

2014-06-24  Jarek Czekalski  <jarekczek@poczta.onet.pl>

        [ATK] Don't ignore links rendered as blocks.
        https://bugs.webkit.org/show_bug.cgi?id=130941

        Reviewed by Mario Sanchez Prada.

        * /m/usr/src/webkit-trunk/Source/WebCore/accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (WebCore::AccessibilityObject::objectFocusedAndCaretOffsetUnignored): Don't ignore links
        when they are renderered with display:block.

2014-06-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Update GObject DOM bindings test results after r170351.

        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.cpp:
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:

2014-06-24  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build after r170309.

        Skip functions returning arrays in GObject DOM bindings.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (SkipFunction):

2014-06-23  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Replace RefPtr<Evas_Object> with UniquePtrEfl
        https://bugs.webkit.org/show_bug.cgi?id=134236

        Reviewed by Gyuyoung Kim.

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
        (WebCore::RenderThemeEfl::loadTheme):
        (WebCore::RenderThemeEfl::applyPartDescriptionsFrom):
        * platform/efl/RenderThemeEfl.h:
        * platform/graphics/efl/CairoUtilitiesEfl.cpp:
        (WebCore::evasObjectFromCairoImageSurface):
        * platform/graphics/efl/CairoUtilitiesEfl.h:
        * platform/graphics/efl/ImageEfl.cpp:
        (WebCore::BitmapImage::getEvasObject):

2014-06-23  Jeremy Jones  <jeremyj@apple.com>

        Chapter forward/backward should seek to beginning/end.
        https://bugs.webkit.org/show_bug.cgi?id=134225

        Reviewed by Eric Carlson.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVPlayerController seekChapterBackward:]): forwards to -seekToBeginning
        (-[WebAVPlayerController seekChapterForward:]): forwards to -seekToEnd

2014-06-23  Dean Jackson  <dino@apple.com>

        [Mac] Don't draw focus rings if we are animating controls
        https://bugs.webkit.org/show_bug.cgi?id=134232
        <rdar://problem/17381121>

        Reviewed by Tim Horton.

        Controls in native apps do not draw their focus rings as they
        animate (in Yosemite). Turn this off for WebKit too. It turns
        out that when we were drawing them, they were in the wrong
        place anyway.

        Since we don't animate controls when testing, we can't really test this.

        * platform/mac/ThemeMac.mm:
        (WebCore::paintToggleButton): Only draw the focus ring if the
        NSButtonCell is not animating.

2014-06-23  Krzysztof Czech  <k.czech@samsung.com>

        [ATK] Remove some unnecessary code from WebKitAccessibleWrapperAtk
        https://bugs.webkit.org/show_bug.cgi?id=134193

        Reviewed by Gyuyoung Kim.

        It was used along with DRT. Since we have stopped support WK1/DRT, it won't be needed.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetFocusedElement): Deleted.
        * accessibility/atk/WebKitAccessibleWrapperAtk.h:

2014-06-20  Myles C. Maxfield  <mmaxfield@apple.com>

        Use unsigneds instead of ints for indexes into a string in text layout code
        https://bugs.webkit.org/show_bug.cgi?id=133592

        Reviewed by Zalan Bujtas.

        Migrate much of the text-handling code to use unsigneds for indexes into a string.

        No new tests because there is no behavior change.

        * WebCore.exp.in:
        * platform/graphics/Font.cpp:
        (WebCore::Font::drawText):
        (WebCore::Font::drawEmphasisMarks):
        (WebCore::Font::adjustSelectionRectForText):
        (WebCore::computeUnderlineType):
        * platform/graphics/Font.h:
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::getGlyphsAndAdvancesForSimpleText):
        (WebCore::Font::drawSimpleText):
        (WebCore::Font::drawEmphasisMarksForSimpleText):
        (WebCore::Font::drawGlyphBuffer):
        (WebCore::Font::drawEmphasisMarks):
        (WebCore::Font::adjustSelectionRectForSimpleText):
        * platform/graphics/GlyphBuffer.h:
        (WebCore::GlyphBuffer::size):
        (WebCore::GlyphBuffer::glyphs):
        (WebCore::GlyphBuffer::advances):
        (WebCore::GlyphBuffer::fontDataAt):
        (WebCore::GlyphBuffer::advanceAt):
        (WebCore::GlyphBuffer::offsetAt):
        (WebCore::GlyphBuffer::reverse):
        (WebCore::GlyphBuffer::offsetInString):
        (WebCore::GlyphBuffer::swap):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::TextRunIterator::atEnd):
        * platform/graphics/Latin1TextIterator.h:
        (WebCore::Latin1TextIterator::Latin1TextIterator):
        (WebCore::Latin1TextIterator::currentCharacter):
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/SurrogatePairAwareTextIterator.cpp:
        (WebCore::SurrogatePairAwareTextIterator::SurrogatePairAwareTextIterator):
        * platform/graphics/SurrogatePairAwareTextIterator.h:
        (WebCore::SurrogatePairAwareTextIterator::currentCharacter):
        * platform/graphics/TextRun.h:
        (WebCore::TextRun::length):
        (WebCore::TextRun::charactersLength):
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::glyphDataForCharacter):
        (WebCore::applyFontTransforms):
        (WebCore::WidthIterator::advanceInternal):
        (WebCore::WidthIterator::advance):
        (WebCore::WidthIterator::advanceOneCharacter):
        * platform/graphics/WidthIterator.h:
        * platform/graphics/cairo/FontCairo.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        (WebCore::Font::adjustSelectionRectForComplexText):
        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::setNormalizedBuffer):
        * platform/graphics/mac/FontComplexTextMac.cpp:
        (WebCore::Font::adjustSelectionRectForComplexText):
        (WebCore::Font::getGlyphsAndAdvancesForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontCGWin.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::adjustSelectionRectForComplexText):
        (WebCore::Font::getGlyphsAndAdvancesForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        * platform/graphics/wince/FontWinCE.cpp:
        (WebCore::Font::drawGlyphs):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        (WebCore::Font::selectionRectForComplexText):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::isSelected):
        (WebCore::InlineTextBox::selectionState):
        (WebCore::adjustCharactersAndLengthForHyphen):
        (WebCore::InlineTextBox::localSelectionRect):
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::selectionStartEnd):
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::InlineTextBox::paintCompositionBackground):
        (WebCore::InlineTextBox::paintDocumentMarker):
        (WebCore::InlineTextBox::paintTextMatchMarker):
        (WebCore::InlineTextBox::computeRectForReplacementMarker):
        (WebCore::InlineTextBox::paintCompositionUnderline):
        (WebCore::InlineTextBox::positionForOffset):
        (WebCore::InlineTextBox::constructTextRun):
        * rendering/InlineTextBox.h:
        * rendering/RenderCombineText.cpp:
        (WebCore::RenderCombineText::getStringToRender):
        * rendering/RenderCombineText.h:
        * rendering/svg/SVGInlineFlowBox.cpp:
        (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::positionForOffset):
        (WebCore::SVGInlineTextBox::localSelectionRect):
        (WebCore::SVGInlineTextBox::paintSelectionBackground):
        (WebCore::SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates):
        (WebCore::SVGInlineTextBox::paintText):
        * rendering/svg/SVGInlineTextBox.h:
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair):
        (WebCore::SVGTextMetricsBuilder::advance):
        * rendering/svg/SVGTextQuery.cpp:
        (WebCore::SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates):
        (WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
        (WebCore::SVGTextQuery::subStringLengthCallback):
        (WebCore::SVGTextQuery::startPositionOfCharacterCallback):
        (WebCore::SVGTextQuery::endPositionOfCharacterCallback):
        (WebCore::SVGTextQuery::rotationOfCharacterCallback):
        (WebCore::SVGTextQuery::extentOfCharacterCallback):
        (WebCore::SVGTextQuery::characterNumberAtPositionCallback):
        * rendering/svg/SVGTextQuery.h:
        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
        * rendering/svg/SVGTextRunRenderingContext.h:
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        * svg/SVGFontData.h:

2014-06-20  Jer Noble  <jer.noble@apple.com>

        HTMLMediaElement seek algorithm should allow cancelling previous seeks.
        https://bugs.webkit.org/show_bug.cgi?id=134116

        Reviewed by Eric Carlson.

        Test: media/video-seek-double.html

        Fulfill the requirement of the §4.7.14.9 seeking algorithm to do steps 5+ asynchronously and cancel
        previous instances of the algorithm.

        For the html/ parts of the algorithm, implement this by adding a seek timer, which when fired will
        issue steps 5-12. MediaPlayerPrivateAVFoundation will already coalesce multiple seek operations, so nothing
        additional needs be done there.  However, MediaPlayerPrivateMediaSourceAVFObjC needs to implement the same
        pending seek logic in case additional seeks were issued after the html/ algorithm reached step 12.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Initialize the new m_seekTimer.
        (WebCore::HTMLMediaElement::parseAttribute): Clear the seek timer.
        (WebCore::HTMLMediaElement::seekInternal): Differentiate between DOM seeks and internal seeks.
        (WebCore::HTMLMediaElement::seekWithTolerance:) Split into the seekTimerFired() method.
        (WebCore::HTMLMediaElement::seekTimerFired:) Added, split from seekWithTolerance().
        * html/HTMLMediaElement.h:
        * html/MediaController.cpp:
        (MediaController::bringElementUpToSpeed): Call seekInternal().
        (WebCore::HTMLMediaElement::PendingSeek::PendingSeek): Added convenience struct for storing seek requests.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::PendingSeek::PendingSeek): Ditto.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC): Modify the time jumped
            handler to not clear the m_seeking flag if another seek request is pending.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):

2014-06-23  Timothy Horton  <timothy_horton@apple.com>

        [WK2] Use the page background color instead of white when swipe snapshots were purged (134218)
        https://bugs.webkit.org/show_bug.cgi?id=134218
        <rdar://problem/17426454>

        Reviewed by Benjamin Poulain.

        * WebCore.exp.in:

2014-06-23  Eric Carlson  <eric.carlson@apple.com>

        [iOS] remove InbandTextTrackPrivateAVFIOS
        https://bugs.webkit.org/show_bug.cgi?id=134220

        Reviewed by Benjamin Poulain.

        * WebCore.xcodeproj/project.pbxproj: Remove references to InbandTextTrackPrivateAVFIOS.

        * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h: Removed.
        * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.mm: Removed.

2014-06-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170323.
        https://bugs.webkit.org/show_bug.cgi?id=134224

        lots of build breakage (Requested by bradeeoh on #webkit).

        Reverted changeset:

        "[Mac] process raw VTT in-band captions"
        https://bugs.webkit.org/show_bug.cgi?id=134178
        http://trac.webkit.org/changeset/170323

2014-06-23  Jeffrey Pfau  <jpfau@apple.com>

        Fix release build

        * Modules/indexeddb/IDBTransactionCoordinator.cpp:
        (WebCore::IDBTransactionCoordinator::canRunTransaction):

2014-06-19  Jeffrey Pfau  <jpfau@apple.com>

        Database process crashes when multiple transactions attempt to run at once
        https://bugs.webkit.org/show_bug.cgi?id=134139

        Reviewed by David Kilzer.

        Ensure that only one transaction can be running at a time.

        Test: storage/indexeddb/transaction-overlapping.html

        * Modules/indexeddb/IDBTransactionCoordinator.cpp:
        (WebCore::IDBTransactionCoordinator::canRunTransaction):

2014-06-23  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Make the state restore from HistoryItem more precise and reliable
        https://bugs.webkit.org/show_bug.cgi?id=134150

        Reviewed by Tim Horton.

        The two biggest changes for WebCore are:
        -Store everything we need to handle changes of ViewportConfiguration on HistoryItem.
        -Store the exposedRect with floating point coordinates.

        * WebCore.exp.in:
        * history/CachedPage.cpp:
        (WebCore::CachedPage::restore):
        We cannot determine a good scroll position from the WebProcess because the obscured insets can change
        arbitrarily in the UIProcess. When we scroll here from the WebProcess, we would force an invalid position
        to the UIProcess with the next layer tree update.

        To avoid any problem, we prohibit scrolling when restoring the focus appearance.

        * history/HistoryItem.cpp:
        (WebCore::encodeRect):
        (WebCore::encodeSize):
        (WebCore::HistoryItem::encodeBackForwardTreeNode):
        (WebCore::decodeRect):
        (WebCore::decodeSize):
        (WebCore::HistoryItem::decodeBackForwardTree):
        * history/HistoryItem.h:
        (WebCore::HistoryItem::exposedContentRect):
        (WebCore::HistoryItem::setExposedContentRect):
        (WebCore::HistoryItem::unobscuredContentRect):
        (WebCore::HistoryItem::setUnobscuredContentRect):
        (WebCore::HistoryItem::minimumLayoutSizeInScrollViewCoordinates):
        (WebCore::HistoryItem::setMinimumLayoutSizeInScrollViewCoordinates):
        (WebCore::HistoryItem::contentSize):
        (WebCore::HistoryItem::setContentSize):
        (WebCore::HistoryItem::exposedContentPosition): Deleted.
        (WebCore::HistoryItem::setExposedContentPosition): Deleted.
        * loader/HistoryController.cpp:
        (WebCore::HistoryController::saveScrollPositionAndViewStateToItem):
        * page/FrameView.h:
        * platform/ScrollView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::exposedContentRect):
        (WebCore::ScrollView::setExposedContentRect):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::didChangeVisibleRect):

2014-06-23  Eric Carlson  <eric.carlson@apple.com>

        [Mac] process raw VTT in-band captions
        https://bugs.webkit.org/show_bug.cgi?id=134178

        Reviewed by Jer Noble.

        * CMakeLists.txt: Add ISOVTTCue.cpp|h.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * html/track/BufferedLineReader.h:
        (WebCore::BufferedLineReader::reset): New, empty the input buffer.

        Make it possible to process WebVTT captions. 
        * html/track/InbandGenericTextTrack.cpp:
        (WebCore::InbandGenericTextTrack::parser): Allocate, if necessary, and return a WebVTT parser.
        (WebCore::InbandGenericTextTrack::parseWebVTTCueData): Pass a cue to the parser.
        (WebCore::InbandGenericTextTrack::parseWebVTTFileHeader): Pass a VTT file header to the parser.
        (WebCore::InbandGenericTextTrack::newCuesParsed): Parser callback.
        (WebCore::InbandGenericTextTrack::newRegionsParsed): Ditto.
        (WebCore::InbandGenericTextTrack::fileFailedToParse): Ditto.
        * html/track/InbandGenericTextTrack.h:

        * html/track/InbandTextTrack.h:

        * html/track/InbandWebVTTTextTrack.cpp:
        (WebCore::InbandWebVTTTextTrack::parser): New, parser accessor.
        (WebCore::InbandWebVTTTextTrack::parseWebVTTCueData): New, parse VTT data in an ISOWebVTTCue
            object.
        (WebCore::InbandWebVTTTextTrack::newCuesParsed): Cleanup.
        (WebCore::InbandWebVTTTextTrack::newRegionsParsed): Implement.
        (WebCore::InbandWebVTTTextTrack::fileFailedToParse): Change the error message.
        * html/track/InbandWebVTTTextTrack.h:

        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGenericBoxElement::TextTrackCueGenericBoxElement): Change cue parameter
            from a pointer to a reference.
        (WebCore::TextTrackCueGeneric::createDisplayTree): Ditto.

        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::create): Change cue parameter from a pointer to a reference.
        (WebCore::VTTCueBox::VTTCueBox): Ditto.
        (WebCore::VTTCueBox::getCue): Return a reference.
        (WebCore::VTTCueBox::applyCSSProperties): m_cue is a reference, not a pointer.
        (WebCore::VTTCue::create): New, create a VTTCue from WebVTTCueData.
        (WebCore::VTTCue::VTTCue): New, internal constructor that takes a WebVTTCueData.
        (WebCore::VTTCue::initialize): New, shared constructor initialization.
        (WebCore::VTTCue::createDisplayTree): m_cue is a reference, not a pointer.
        (WebCore::VTTCue::markFutureAndPastNodes): Ditto.
        (WebCore::VTTCue::setCueSettings): Ditto.
        * html/track/VTTCue.h:
        (WebCore::VTTCueBox::create): Deleted.
        (WebCore::VTTCue::create): Deleted.

        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::parseFileHeader): New. Reset the line reader buffer and parser state, 
            call the parser.
        (WebCore::WebVTTParser::parseCueData): Create a cue from ISOWebVTTCue.
        (WebCore::WebVTTParser::collectTimingsAndSettings): Return immediately if the string is empty.
        (WebCore::WebVTTParser::collectTimeStamp): Ditto.
        * html/track/WebVTTParser.h:
        (WebCore::WebVTTCueData::originalStartTime): New.
        (WebCore::WebVTTCueData::setOriginalStartTime): New.
        (WebCore::WebVTTCueData::WebVTTCueData):

        * loader/TextTrackLoader.cpp:
        (WebCore::TextTrackLoader::getNewCues): Cleanup, use the new VTTCue::create.

        * platform/graphics/InbandTextTrackPrivateClient.h:
        (WebCore::InbandTextTrackPrivateClient::parseWebVTTFileHeader): New.

        Parse ISO WebVTT cue boxes.
        * platform/graphics/ISOVTTCue.cpp: Added.
        (WebCore::ISOBox::ISOBox):
        (WebCore::ISOBox::peekType):
        (WebCore::ISOBox::peekLength):
        (WebCore::ISOBox::peekString):
        (WebCore::vttCueBoxType):
        (WebCore::vttIdBoxType):
        (WebCore::vttSettingsBoxType):
        (WebCore::vttPayloadBoxType):
        (WebCore::vttCurrentTimeBoxType):
        (WebCore::vttCueSourceIDBoxType):
        (WebCore::ISOWebVTTCue::boxType):
        (WebCore::ISOWebVTTCue::ISOWebVTTCue):
        * platform/graphics/ISOVTTCue.h: Added.
        (WebCore::ISOBox::boxHeaderSize):
        (WebCore::ISOBox::length):
        (WebCore::ISOBox::type):
        (WebCore::ISOWebVTTCue::presentationTime):
        (WebCore::ISOWebVTTCue::duration):
        (WebCore::ISOWebVTTCue::sourceID):
        (WebCore::ISOWebVTTCue::id):
        (WebCore::ISOWebVTTCue::originalStartTime):
        (WebCore::ISOWebVTTCue::settings):
        (WebCore::ISOWebVTTCue::cueText):

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::InbandTextTrackPrivateAVF): Add a cue format parameter.
        (WebCore::InbandTextTrackPrivateAVF::processCue): Call processNativeSamples.
        (WebCore::InbandTextTrackPrivateAVF::processAttributedStrings): Add logging. Minor cleanup.
        (WebCore::InbandTextTrackPrivateAVF::processNativeSamples): New, process an array of 
            CMSampleBuffers, create ISOWebVTTCue from the sample data.
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:

        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
        (WebCore::InbandTextTrackPrivateAVFObjC::create): Add a cue format parameter.
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
        (WebCore::InbandTextTrackPrivateAVFObjC::InbandTextTrackPrivateAVFObjC): Ditto.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Improve logging.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Don't leak an NSDictionary.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): Don't process media selection
            options until we have tracks.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): 
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): Pass native samples as well as 
            attributed strings to track.
        (-[WebCoreAVFMovieObserver legibleOutput:didOutputAttributedStrings:nativeSampleBuffers:forItemTime:]):
        * platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h:
        (WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):

        * platform/graphics/avfoundation/InbandTextTrackPrivateLegacyAVFObjC.cpp:
        (WebCore::InbandTextTrackPrivateLegacyAVFObjC::InbandTextTrackPrivateLegacyAVFObjC): Pass cue
            format to base class.

        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
        (WebCore::InbandTextTrackPrivateAVCF::InbandTextTrackPrivateAVCF): Ditto.
        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:

2014-06-23  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Crash in SourceBuffer::sourceBufferPrivateDidReceiveRenderingError()
        https://bugs.webkit.org/show_bug.cgi?id=134211

        Reviewed by Eric Carlson.

        Null-check m_source before dereferencing, as the SourceBuffer may have been removed
        from its MediaSource before this error was received.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError):

2014-06-23  Joseph Pecoraro  <pecoraro@apple.com>

        Reduce synchronous layout triggered by JavaScript-based media controls
        https://bugs.webkit.org/show_bug.cgi?id=134208

        Reviewed by Eric Carlson.

        Avoid always querying the offsetWidth and offsetHeight of the timeline
        by only calculating these values when the timeline may change size.
        Also avoid doing work in a few cases where properties did not
        actually change.

        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller):

        (Controller.prototype.setNeedsTimelineMetricsUpdate):
        (Controller.prototype.updateTimelineMetricsIfNeeded):
        Only update the timeline metrics when they may have changed.

        (Controller.prototype.updateControls):
        (Controller.prototype.handleTimelineMouseMove):
        (Controller.prototype.progressFillStyle):
        (Controller.prototype.showControls):
        (Controller.prototype.addControls):
        Mark timeline metrics need update based on various UI changes.

        (Controller.prototype.setStatusHidden):
        Only do work if the hidden status changed.
        Mark timeline metrics need update if the timeline is changed.

        (Controller.prototype.updateProgress):
        Use cached timeline metrics instead of always querying offsetWidth/offsetHeight.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS):
        (ControllerIOS.prototype.updateControls):

        (ControllerIOS.prototype.updateProgress):
        Use cached timeline metrics instead of always querying offsetWidth/offsetHeight.

        (ControllerIOS.prototype.handleWirelessPlaybackChange):
        Mark timeline metrics need update as button may have changed.

        (ControllerIOS.prototype.handleWirelessTargetAvailableChange):
        Only do work if the availability changed.
        Mark timeline metrics need update as a new button may have appeared.

        (ControllerIOS.prototype.set pageScaleFactor):
        Only do work if the page scale factor changed.

2014-06-23  Brady Eidson  <beidson@apple.com>

        Add skeleton code for updated Gamepad API
        https://bugs.webkit.org/show_bug.cgi?id=134165

        Unreviewed - Forgotten review feedback from http://trac.webkit.org/changeset/170309

        * Modules/gamepad/GamepadButton.idl: Forgot to commit the removal of NoInterfaceObject here.

2014-06-23  Brady Eidson  <beidson@apple.com>

        Add skeleton code for updated Gamepad API
        https://bugs.webkit.org/show_bug.cgi?id=134165

        Reviewed by Dean Jackson.

        No new tests (No change in behavior for any tested configuration)

        Interface and dummy implementation for the Gamepad object:
        * Modules/gamepad/Gamepad.cpp: Added.
        (WebCore::Gamepad::Gamepad):
        (WebCore::Gamepad::~Gamepad):
        (WebCore::Gamepad::axes):
        (WebCore::Gamepad::buttons):
        * Modules/gamepad/Gamepad.h: Added.
        * Modules/gamepad/Gamepad.idl: Added.

        Interface and dummy implementation for the GamepadButton object:
        * Modules/gamepad/GamepadButton.cpp: Added.
        (WebCore::GamepadButton::GamepadButton):
        (WebCore::GamepadButton::pressed):
        * Modules/gamepad/GamepadButton.h: Added.
        (WebCore::GamepadButton::create):
        (WebCore::GamepadButton::value):
        (WebCore::GamepadButton::setValue):
        * Modules/gamepad/GamepadButton.idl: Added.

        Interface and dummy implementation for the GamepadEvent object:
        * Modules/gamepad/GamepadEvent.cpp: Added.
        (WebCore::GamepadEvent::GamepadEvent):
        * Modules/gamepad/GamepadEvent.h: Added.
        (WebCore::GamepadEventInit::GamepadEventInit):
        (WebCore::GamepadEvent::~GamepadEvent):
        (WebCore::GamepadEvent::create):
        (WebCore::GamepadEvent::gamepad):
        * Modules/gamepad/GamepadEvent.idl: Added.
        * dom/EventNames.in:

        Interface and dummy implementation for additions to the Navigator object:
        * Modules/gamepad/NavigatorGamepad.cpp: Added.
        (WebCore::NavigatorGamepad::NavigatorGamepad):
        (WebCore::NavigatorGamepad::supplementName):
        (WebCore::NavigatorGamepad::from):
        (WebCore::NavigatorGamepad::getGamepads):
        (WebCore::NavigatorGamepad::gamepads):
        * Modules/gamepad/NavigatorGamepad.h: Added.
        * Modules/gamepad/NavigatorGamepad.idl: Added.

        Bindings additions necessary for these new interfaces:
        * bindings/js/JSDOMBinding.h:
        (WebCore::JSValueTraits<double>::arrayJSValue):
        * bindings/js/JSDictionary.cpp:
        (WebCore::JSDictionary::convertValue):
        * bindings/js/JSDictionary.h:

        Project file stuff:
        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCoreCommon.props:
        * WebCore.vcxproj/copyForwardingHeaders.cmd:
        * WebCore.xcodeproj/project.pbxproj:
        * DerivedSources.make:

2014-06-23  Simon Fraser  <simon.fraser@apple.com>

        Catch Obj-C exceptions thrown by _linenPatternImage
        https://bugs.webkit.org/show_bug.cgi?id=134202

        Reviewed by Geoffrey Garen.

        Catch Objective-C exceptions thrown by _linenPatternImage and
        -[NSImage CGImageForProposedRect:context:hints:].

        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::linenBackgroundColor):

2014-06-23  Simon Fraser  <simon.fraser@apple.com>

        CSS clip property should make layers non-opaque
        https://bugs.webkit.org/show_bug.cgi?id=134147
        <rdar://problem/17324579>

        Reviewed by Tim Horton.
        
        https://www.fairphone.com has position:fixed elements with clip: rect(...)
        but we were making those layers opaque, resulting in garbage pixels
        in areas outside the clip rect.
        
        Fix by checking for the clip property in RenderBox::backgroundIsKnownToBeOpaqueInRect().

        Test: compositing/contents-opaque/opaque-with-clip.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::backgroundIsKnownToBeOpaqueInRect):

2014-06-23  Simon Fraser  <simon.fraser@apple.com>

        Adding a mask on a simple color compositing layer removes the content
        https://bugs.webkit.org/show_bug.cgi?id=134127

        Reviewed by Dean Jackson.
        
        In r169053 I moved some updateDrawsContent() into updateAfterDescendents(),
        but this isn't called when a composited layer gains or loses a mask (which
        doesn't cause a layout). This caused us to fail to allocate backing store
        when gaining a mask, resulting in missing content.
        
        Fix by calling updateAfterDescendents() from RenderLayer::styleChange()
        when the layer config isn't changing.
        
        Also remove a condition in isSimpleContainerCompositingLayer() that caused us
        to fall off the simple layer path for masked layers, since this works just
        fine.

        Test: compositing/masks/solid-color-masked.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):

2014-06-23  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Writing mode changes on the <html> and RenderView need to
        be propagated to column sets and flow thread children of those renderers.
        https://bugs.webkit.org/show_bug.cgi?id=134121
        <rdar://problem/16884527>

        Reviewed by Dean Jackson.

        Added fast/multicol/pagination/RightToLeft-rl-dynamic.html

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::styleDidChange):
        Refactor the propagation code for column sets and flow thread styles into a helper
        function that is called here.

        (WebCore::RenderBlockFlow::updateStylesForColumnChildren):
        * rendering/RenderBlockFlow.h:
        Add a new helper function for recalculating the styles of the column sets and
        flow thread in response to changes.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleDidChange):
        When the style is changed for a root element or the RenderView in response to
        writing mode and direction changes, make sure that style gets propagated to
        the column children by calling the new helper function.

2014-06-23  Jer Noble  <jer.noble@apple.com>

        [Mac] Uncaught exception crash when destroying MediaPlayerPrivateAVFoundationObjC
        https://bugs.webkit.org/show_bug.cgi?id=134198

        Reviewed by Eric Carlson.

        Now that we always create an AVPlayerLayer when creating an AVPlayer, but we don't
        return that layer from platformLayer() unless we've been asked to, we no longer are
        asked to destroy our video layer from MediaPlayerPrivateAVFoundation::tearDownVideoRendering().

        Instead, explicitly destroy our video layer (and remove the KVO-observer which is
        causing this exception) in the MediaPlayerPrivateAVFoundationObjC destructor.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):

2014-06-23  Andreas Kling  <akling@apple.com>

        Remove unused FrameView::setUseCustomFixedPositionLayoutRect().
        <https://webkit.org/b/134194>

        Reviewed by Anders Carlsson.

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::setUseCustomFixedPositionLayoutRect): Deleted.
        * page/FrameView.h:

2014-06-23  Antti Koivisto  <antti@apple.com>

        REGRESSION (r160908): Unable to unset bold while entering text
        https://bugs.webkit.org/show_bug.cgi?id=134196
        <rdar://problem/17051653>

        Reviewed by Andreas Kling.
        
        No test, this code path is used by some WK1 API clients only.

        * editing/Editor.cpp:
        (WebCore::Editor::styleForSelectionStart):
        
            This needs to update the style before requesting the renderer.

        * editing/Editor.h:
        * editing/ios/EditorIOS.mm:
        (WebCore::styleForSelectionStart): Deleted.
        * editing/mac/EditorMac.mm:
        (WebCore::styleForSelectionStart): Deleted.
        
            Removed the duplicated functions, moved to Editor.cpp.

2014-06-23  Alex Christensen  <achristensen@webkit.org>

        [iOS] Fix video in WebGL.
        https://bugs.webkit.org/show_bug.cgi?id=133511

        Reviewed by Jer Noble.

        * WebCore.exp.in:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::hasSingleSecurityOrigin):
        (WebCore::wkAVAssetResolvedURL): Deleted.
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        Declare and use resolvedURL on AVURLAsset instead of using wkAVAssetResolvedURL through WebKitSystemInterface.

2014-06-23  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r168046): Incorrect handling of object information in WebCore::RenderFlowThread::removeLineRegionInfo
        https://bugs.webkit.org/show_bug.cgi?id=133587

        Reviewed by Antti Koivisto.

        When an object flowed in multicol is moved from in-flow positioning to out-of-flow positioning,
        its information must be removed from the flowthread prior to the change being made. 
        Otherwise, the flow thread will no longer be its containing block and a reference to it
        will not be possible to obtain.

        No new tests can be added because the code still hits in an unrelated assertion followed by a null dereference.
        The issue was discussed with Antti Koivisto and we decided its better to fix this problem first and
        handle the following issue in a separate bug.

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::styleWillChange):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::flowThreadContainingBlock):

2014-06-23  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Platform support for WebSpeech feature.
        https://bugs.webkit.org/show_bug.cgi?id=116438

        Reviewed by Csaba Osztrogonác.

        It's a first step of adding support for Speech Synthesis in EFL port.
        Just stub out required API and support for compilation.

        * CMakeLists.txt:
        * PlatformEfl.cmake:
        * PlatformGTK.cmake: Added some idls to not break GTK build.
        * platform/PlatformSpeechSynthesizer.h:
        * platform/efl/PlatformSpeechSynthesisProviderEfl.cpp: Added.
        (WebCore::PlatformSpeechSynthesisProviderEfl::PlatformSpeechSynthesisProviderEfl):
        (WebCore::PlatformSpeechSynthesisProviderEfl::~PlatformSpeechSynthesisProviderEfl):
        (WebCore::PlatformSpeechSynthesisProviderEfl::initializeVoiceList):
        (WebCore::PlatformSpeechSynthesisProviderEfl::pause):
        (WebCore::PlatformSpeechSynthesisProviderEfl::resume):
        (WebCore::PlatformSpeechSynthesisProviderEfl::speak):
        (WebCore::PlatformSpeechSynthesisProviderEfl::cancel):
        * platform/efl/PlatformSpeechSynthesisProviderEfl.h: Added.
        * platform/efl/PlatformSpeechSynthesizerEfl.cpp: Added.
        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
        (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
        (WebCore::PlatformSpeechSynthesizer::pause):
        (WebCore::PlatformSpeechSynthesizer::resume):
        (WebCore::PlatformSpeechSynthesizer::speak):
        (WebCore::PlatformSpeechSynthesizer::cancel):

2014-06-23  Jeongeun Kim  <je_julie.kim@samsung.com>

        Make it clear to get m_svgExtensions using svgExtensions().
        https://bugs.webkit.org/show_bug.cgi?id=134186.

        Reviewed by Dirk Schulze.

        This patch makes sure that the purpose of code is to get m_svgExtensions 
        as changing accessSVGExtensions() to svgExtensions(). 
        svgExtensions() is a getter API and accessSVGExtensions() checks 
        the presence of m_svgExtensions and create m_svgExtensions if it does not exist. 

        No new tests, no behavior change.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::removeChild):
        (WebCore::ContainerNode::removeChildren):
        * dom/Document.cpp:
        (WebCore::Document::commonTeardown):
        (WebCore::Document::implicitClose):
        * history/CachedFrame.cpp:
        (WebCore::CachedFrameBase::restore):
        * svg/SVGDocumentExtensions.cpp:
        (WebCore::SVGDocumentExtensions::startAnimations):
        (WebCore::SVGDocumentExtensions::pauseAnimations):
        (WebCore::SVGDocumentExtensions::unpauseAnimations):
        (WebCore::SVGDocumentExtensions::dispatchSVGLoadEventToOutermostSVGElements):
        (WebCore::SVGDocumentExtensions::rebuildElements):
        * svg/SVGDocumentExtensions.h:

2014-06-23  Dean Jackson  <dino@apple.com>

        [iOS] Use WebGLLayer rather than PlatformLayer in GraphicsContext3D
        https://bugs.webkit.org/show_bug.cgi?id=134183

        Follow-up review from Sam Weinig.

        * platform/graphics/GraphicsContext3D.h: Merge another bit of MAC and IOS
        code.
        * ChangeLog: Actually read his review comments this time.

2014-06-23  Dean Jackson  <dino@apple.com>

        [iOS] Use WebGLLayer rather than PlatformLayer in GraphicsContext3D
        https://bugs.webkit.org/show_bug.cgi?id=134183

        Reviewed by Sam Weinig.

        GraphicsContext3D has a reference to a WebGLLayer that was
        hidden behind a PlatformLayer. This meant we had to cast it
        to use a WebGLLayer method.

        * platform/graphics/GraphicsContext3D.h: Replace RetainPtr<PlatformLayer>
        with RetainPtr<WebGLLayer>.
        * platform/graphics/mac/GraphicsContext3DMac.mm:
        (WebCore::GraphicsContext3D::~GraphicsContext3D): No need to cast.

2014-06-22  Zalan Bujtas  <zalan@apple.com>

        Make offset from ancestor computation explicit by moving it to the callers.
        https://bugs.webkit.org/show_bug.cgi?id=134168.

        Reviewed by Simon Fraser.
        
        Explicit offset computation helps code reading and less error-prone than passing
        the offset pointer and compute it locally when it is null.

        No change in functionality.

        * rendering/RenderLayer.cpp:
        (WebCore::transparencyClipBox):
        (WebCore::performOverlapTests):
        (WebCore::RenderLayer::setupClipPath):
        (WebCore::RenderLayer::setupFilters):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::collectFragments):
        (WebCore::RenderLayer::updatePaintingInfoForFragments):
        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::calculateCompositedBounds):
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::writeLayers):

2014-06-22  Zalan Bujtas  <zalan@apple.com>

        Transition layer offsets from LayoutPoint to LayoutSize.
        https://bugs.webkit.org/show_bug.cgi?id=134156

        Reviewed by Simon Fraser.

        Use better representation for offset values.

        No change in functionality.

        * platform/graphics/LayoutSize.h:
        (WebCore::roundedForPainting):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::fragmentsBoundingBox):
        * rendering/RenderLayer.cpp:
        (WebCore::expandClipRectForDescendantsAndReflection):
        (WebCore::RenderLayer::convertToLayerCoords):
        (WebCore::computeReferenceBox):
        (WebCore::RenderLayer::setupClipPath):
        (WebCore::RenderLayer::setupFilters):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::paintLayerByApplyingTransform):
        (WebCore::RenderLayer::collectFragments):
        (WebCore::RenderLayer::updatePaintingInfoForFragments):
        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
        (WebCore::RenderLayer::createLocalTransformState):
        (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
        (WebCore::RenderLayer::hitTestLayerByApplyingTransform):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::collectLayerFragments):

2014-06-22  Dean Jackson  <dino@apple.com>

        Attempted iOS build fix.

        * platform/graphics/mac/GraphicsContext3DMac.mm:
        (WebCore::GraphicsContext3D::~GraphicsContext3D): Cast to WebGLLayer.

2014-06-22  Dean Jackson  <dino@apple.com>

        [Apple] WebGL layer may use GC3D after free with remote layer hosting
        https://bugs.webkit.org/show_bug.cgi?id=134179
        <rdar://problem/17412931>

        Reviewed by Tim Horton.

        With remote layer hosting, a WebGLLayer may attempt to draw after
        the GraphicsContext3D has been destroyed. We need to make sure
        the GC3D tells the WebGLLayer that it is no longer valid.

        While here, I changed some return 0 to return nullptr, the
        name of the ObjC property member from m_context to _context,
        and removed some unnecessary .get() calls.

        This is tested by run-webkit-tests with the --remote-layer-tree
        option.

        * platform/graphics/mac/GraphicsContext3DMac.mm:
        (WebCore::GraphicsContext3D::GraphicsContext3D): No need for .get().
        (WebCore::GraphicsContext3D::~GraphicsContext3D): Set the context reference on WebGLLayer
        to be null.
        (WebCore::GraphicsContext3D::setRenderbufferStorageFromDrawable): No need for .get().
        * platform/graphics/mac/WebGLLayer.h: Set the context reference on WebGLLayer
        to be null.
        * platform/graphics/mac/WebGLLayer.mm:
        (-[WebGLLayer initWithGraphicsContext3D:]): Rename m_context to _context.
        (-[WebGLLayer copyCGLPixelFormatForDisplayMask:]): Check for null.
        (-[WebGLLayer copyCGLContextForPixelFormat:]): Rename to _context.
        (-[WebGLLayer drawInCGLContext:pixelFormat:forLayerTime:displayTime:]): Check for null.
        (-[WebGLLayer copyImageSnapshotWithColorSpace:]): Ditto.
        (-[WebGLLayer display]): Ditto.

2014-06-20  Simon Fraser  <simon.fraser@apple.com>

        [WK2] Frameset frames are not scrollable after loading (and should be)
        https://bugs.webkit.org/show_bug.cgi?id=134151
        <rdar://problem/17403365>

        Reviewed by Dan Bates.
        
        When loading a <frameset>, we could end up with an empty non-fast-scrollable
        region for the main frame, because after the initial frameset document layout,
        nothing updated the non-fast scrollable region as the subframes added their
        scrollable areas to the the main frame's scrollable area set.
        
        Fix by having addScrollableArea() and removeScrollableArea() trigger an update
        of the non-fast scrollable region.

        Test: platform/mac-wk2/tiled-drawing/scrolling/frames/frameset-frame-scrollability.html

        * page/FrameView.cpp:
        (WebCore::FrameView::addScrollableArea):
        (WebCore::FrameView::removeScrollableArea):
        (WebCore::FrameView::scrollableAreaSetChanged):
        * page/FrameView.h:

2014-06-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170265.
        https://bugs.webkit.org/show_bug.cgi?id=134174

        Broke editing tests (Requested by litherum on #webkit).

        Reverted changeset:

        "Use unsigneds instead of ints for indexes into a string in
        text layout code"
        https://bugs.webkit.org/show_bug.cgi?id=133592
        http://trac.webkit.org/changeset/170265

2014-06-20  Simon Fraser  <simon.fraser@apple.com>

        Have scrollingTreeAsText() dump the non-fast-scrollable region
        https://bugs.webkit.org/show_bug.cgi?id=134149

        Reviewed by Sam Weinig.

        Dump the non-fast-scrollable region (as an array of rects).

        * WebCore.exp.in:
        * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
        (WebCore::ScrollingStateFrameScrollingNode::dumpProperties):

2014-06-20  Myles C. Maxfield  <mmaxfield@apple.com>

        Use unsigneds instead of ints for indexes into a string in text layout code
        https://bugs.webkit.org/show_bug.cgi?id=133592

        Reviewed by Zalan Bujtas.

        Migrate much of the text-handling code to use unsigneds for indexes into a string.

        No new tests because there is no behavior change.

        * WebCore.exp.in:
        * platform/graphics/Font.cpp:
        (WebCore::Font::drawText):
        (WebCore::Font::drawEmphasisMarks):
        (WebCore::Font::adjustSelectionRectForText):
        (WebCore::computeUnderlineType):
        * platform/graphics/Font.h:
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::getGlyphsAndAdvancesForSimpleText):
        (WebCore::Font::drawSimpleText):
        (WebCore::Font::drawEmphasisMarksForSimpleText):
        (WebCore::Font::drawGlyphBuffer):
        (WebCore::Font::drawEmphasisMarks):
        (WebCore::Font::adjustSelectionRectForSimpleText):
        * platform/graphics/GlyphBuffer.h:
        (WebCore::GlyphBuffer::size):
        (WebCore::GlyphBuffer::glyphs):
        (WebCore::GlyphBuffer::advances):
        (WebCore::GlyphBuffer::fontDataAt):
        (WebCore::GlyphBuffer::advanceAt):
        (WebCore::GlyphBuffer::offsetAt):
        (WebCore::GlyphBuffer::reverse):
        (WebCore::GlyphBuffer::offsetInString):
        (WebCore::GlyphBuffer::swap):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::TextRunIterator::atEnd):
        * platform/graphics/Latin1TextIterator.h:
        (WebCore::Latin1TextIterator::Latin1TextIterator):
        (WebCore::Latin1TextIterator::currentCharacter):
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/SurrogatePairAwareTextIterator.cpp:
        (WebCore::SurrogatePairAwareTextIterator::SurrogatePairAwareTextIterator):
        * platform/graphics/SurrogatePairAwareTextIterator.h:
        (WebCore::SurrogatePairAwareTextIterator::currentCharacter):
        * platform/graphics/TextRun.h:
        (WebCore::TextRun::length):
        (WebCore::TextRun::charactersLength):
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::glyphDataForCharacter):
        (WebCore::applyFontTransforms):
        (WebCore::WidthIterator::advanceInternal):
        (WebCore::WidthIterator::advance):
        (WebCore::WidthIterator::advanceOneCharacter):
        * platform/graphics/WidthIterator.h:
        * platform/graphics/cairo/FontCairo.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        (WebCore::Font::adjustSelectionRectForComplexText):
        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::setNormalizedBuffer):
        * platform/graphics/mac/FontComplexTextMac.cpp:
        (WebCore::Font::adjustSelectionRectForComplexText):
        (WebCore::Font::getGlyphsAndAdvancesForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontCGWin.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::adjustSelectionRectForComplexText):
        (WebCore::Font::getGlyphsAndAdvancesForComplexText):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        * platform/graphics/wince/FontWinCE.cpp:
        (WebCore::Font::drawGlyphs):
        (WebCore::Font::drawComplexText):
        (WebCore::Font::drawEmphasisMarksForComplexText):
        (WebCore::Font::selectionRectForComplexText):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::isSelected):
        (WebCore::InlineTextBox::selectionState):
        (WebCore::adjustCharactersAndLengthForHyphen):
        (WebCore::InlineTextBox::localSelectionRect):
        (WebCore::InlineTextBox::paint):
        (WebCore::InlineTextBox::selectionStartEnd):
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::InlineTextBox::paintCompositionBackground):
        (WebCore::InlineTextBox::paintDocumentMarker):
        (WebCore::InlineTextBox::paintTextMatchMarker):
        (WebCore::InlineTextBox::computeRectForReplacementMarker):
        (WebCore::InlineTextBox::paintCompositionUnderline):
        (WebCore::InlineTextBox::positionForOffset):
        (WebCore::InlineTextBox::constructTextRun):
        * rendering/InlineTextBox.h:
        * rendering/RenderCombineText.cpp:
        (WebCore::RenderCombineText::getStringToRender):
        * rendering/RenderCombineText.h:
        * rendering/svg/SVGInlineFlowBox.cpp:
        (WebCore::SVGInlineFlowBox::computeTextMatchMarkerRectForRenderer):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::positionForOffset):
        (WebCore::SVGInlineTextBox::localSelectionRect):
        (WebCore::SVGInlineTextBox::paintSelectionBackground):
        (WebCore::SVGInlineTextBox::mapStartEndPositionsIntoFragmentCoordinates):
        (WebCore::SVGInlineTextBox::paintText):
        * rendering/svg/SVGInlineTextBox.h:
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::currentCharacterStartsSurrogatePair):
        (WebCore::SVGTextMetricsBuilder::advance):
        * rendering/svg/SVGTextQuery.cpp:
        (WebCore::SVGTextQuery::mapStartEndPositionsIntoFragmentCoordinates):
        (WebCore::SVGTextQuery::modifyStartEndPositionsRespectingLigatures):
        (WebCore::SVGTextQuery::subStringLengthCallback):
        (WebCore::SVGTextQuery::startPositionOfCharacterCallback):
        (WebCore::SVGTextQuery::endPositionOfCharacterCallback):
        (WebCore::SVGTextQuery::rotationOfCharacterCallback):
        (WebCore::SVGTextQuery::extentOfCharacterCallback):
        (WebCore::SVGTextQuery::characterNumberAtPositionCallback):
        * rendering/svg/SVGTextQuery.h:
        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
        (WebCore::SVGTextRunRenderingContext::glyphDataForCharacter):
        * rendering/svg/SVGTextRunRenderingContext.h:
        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection):
        * svg/SVGFontData.h:

2014-06-21  Zan Dobersek  <zdobersek@igalia.com>

        createCairoGLSurface should take in a FloatSize reference as its first parameter
        https://bugs.webkit.org/show_bug.cgi?id=134159

        Reviewed by Martin Robinson.

        The ImageBuffer constructor operates with a FloatSize reference, which is also
        passed to createCairoGLSurface when accelerated 2D canvas support is enabled.
        That function should take in a reference to the same type.

        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::createCairoGLSurface):

2014-06-21  Dean Jackson  <dino@apple.com>

        [Mac] Margins for new form controls need tweaking
        https://bugs.webkit.org/show_bug.cgi?id=134135
        <rdar://problem/17262164>

        Reviewed by Sam Weinig.

        Take 2 of this patch. Only the mac-mountainlion LayoutTest
        results are different from the first attempt.

        With the newer animated controls in OS X Yosemite, we need
        to tweak the fudge-factor margins for positioning. In a recent
        patch I added another fudge, which I'm removing with this. I'm
        not sure where the older values came from, but I've checked with
        the latest AppKit sources and am using the sizes they implement
        for the controls.

        This will rebaseline a lot of tests, since I've made small tweaks
        to the form layout.

        * platform/mac/ThemeMac.mm:
        (WebCore::checkboxMargins): New margin amounts.
        (WebCore::radioSizes): New sizes.
        (WebCore::radioMargins): New margin amounts.
        (WebCore::paintToggleButton): No need to call the positioning fudge any more.
        (WebCore::checkboxOffsets): Deleted.
        (WebCore::radioOffsets): Deleted.

2014-06-20  Sam Weinig  <sam@webkit.org>

        Remove static tables for bindings that use eager reification
        https://bugs.webkit.org/show_bug.cgi?id=134126

        Reviewed by Oliver Hunt.

        This shaves about 1MB off of WebCore's .o files.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        (GenerateConstructorHelperMethods):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        * bindings/scripts/test/JS/JSTestException.cpp:
        * bindings/scripts/test/JS/JSTestException.h:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        * bindings/scripts/test/JS/JSTestInterface.h:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        * bindings/scripts/test/JS/JSTestNode.cpp:
        * bindings/scripts/test/JS/JSTestNode.h:
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        * bindings/scripts/test/JS/JSTestNondeterministic.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        * bindings/scripts/test/JS/JSTestTypedefs.h:
        * bindings/scripts/test/JS/JSattribute.cpp:
        * bindings/scripts/test/JS/JSattribute.h:
        * bindings/scripts/test/JS/JSreadonly.cpp:
        * bindings/scripts/test/JS/JSreadonly.h:

2014-06-21  Brady Eidson  <beidson@apple.com>

        Gamepad API - Deprecate the existing implementation
        https://bugs.webkit.org/show_bug.cgi?id=134108

        Reviewed by Timothy Hatcher.

        -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
        -Move some implementation files into a "deprecated" subdirectory.

        * CMakeLists.txt:
        * Configurations/FeatureDefines.xcconfig:
        * PlatformGTK.cmake:

        * Modules/gamepad/deprecated/Gamepad.cpp: Renamed from Source/WebCore/Modules/gamepad/Gamepad.cpp.
        * Modules/gamepad/deprecated/Gamepad.h: Renamed from Source/WebCore/Modules/gamepad/Gamepad.h.
        * Modules/gamepad/deprecated/Gamepad.idl: Renamed from Source/WebCore/Modules/gamepad/Gamepad.idl.
        * Modules/gamepad/deprecated/GamepadList.cpp: Renamed from Source/WebCore/Modules/gamepad/GamepadList.cpp.
        * Modules/gamepad/deprecated/GamepadList.h: Renamed from Source/WebCore/Modules/gamepad/GamepadList.h.
        * Modules/gamepad/deprecated/GamepadList.idl: Renamed from Source/WebCore/Modules/gamepad/GamepadList.idl.
        * Modules/gamepad/deprecated/NavigatorGamepad.cpp: Renamed from Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp.
        * Modules/gamepad/deprecated/NavigatorGamepad.h: Renamed from Source/WebCore/Modules/gamepad/NavigatorGamepad.h.
        * Modules/gamepad/deprecated/NavigatorGamepad.idl: Renamed from Source/WebCore/Modules/gamepad/NavigatorGamepad.idl.

        * platform/Gamepads.h:
        * platform/efl/GamepadsEfl.cpp:
        * platform/gtk/GamepadsGtk.cpp:
        * platform/linux/GamepadDeviceLinux.cpp:
        * platform/linux/GamepadDeviceLinux.h:

2014-06-21  Myles C. Maxfield  <mmaxfield@apple.com>

        Mark TextRun's constructors as explicit
        https://bugs.webkit.org/show_bug.cgi?id=134124

        Reviewed by Sam Weinig.

        After r170072, nobody is implicitly converting a string to a TextRun. Therefore,
        we can make the constructors explicit.

        No new tests because there is no behavior change.

        * platform/graphics/TextRun.h:
        (WebCore::TextRun::TextRun):

2014-06-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170244.
        https://bugs.webkit.org/show_bug.cgi?id=134157

        GTK/EFL bindings generator works differently, making this
        patch not work there.  Will fix entire patch after a rollout.
        (Requested by bradee-oh on #webkit).

        Reverted changeset:

        "Gamepad API - Deprecate the existing implementation"
        https://bugs.webkit.org/show_bug.cgi?id=134108
        http://trac.webkit.org/changeset/170244

2014-06-21  Zan Dobersek  <zdobersek@igalia.com>

        Fix the mismatched header build guards in WebKitDOMNodeFilterPrivate.h
        which are throwing compilation warnings when building with Clang.

        * bindings/gobject/WebKitDOMNodeFilterPrivate.h:

2014-06-21  Brady Eidson  <beidson@apple.com>

        Gamepad API - Deprecate the existing implementation
        https://bugs.webkit.org/show_bug.cgi?id=134108

        Reviewed by Timothy Hatcher.

        -Add new "GAMEPAD_DEPRECATED" build flag, moving the existing implementation to use it
        -Add the "Deprecated" suffix to some implementation files

        * CMakeLists.txt:
        * PlatformGTK.cmake:
        * Configurations/FeatureDefines.xcconfig:
        
        * Modules/gamepad/GamepadDeprecated.cpp: Renamed from Source/WebCore/Modules/gamepad/Gamepad.cpp.
        * Modules/gamepad/GamepadDeprecated.h: Renamed from Source/WebCore/Modules/gamepad/Gamepad.h.
        * Modules/gamepad/GamepadDeprecated.idl: Renamed from Source/WebCore/Modules/gamepad/Gamepad.idl.

        * Modules/gamepad/GamepadList.cpp:
        * Modules/gamepad/GamepadList.h:
        * Modules/gamepad/GamepadList.idl:

        * Modules/gamepad/NavigatorGamepadDeprecated.cpp: Renamed from Source/WebCore/Modules/gamepad/NavigatorGamepad.cpp.
        * Modules/gamepad/NavigatorGamepadDeprecated.h: Renamed from Source/WebCore/Modules/gamepad/NavigatorGamepad.h.
        * Modules/gamepad/NavigatorGamepadDeprecated.idl: Renamed from Source/WebCore/Modules/gamepad/NavigatorGamepad.idl.

        * platform/Gamepads.h:
        * platform/efl/GamepadsEfl.cpp:
        * platform/gtk/GamepadsGtk.cpp:
        * platform/linux/GamepadDeviceLinux.cpp:
        * platform/linux/GamepadDeviceLinux.h:

2014-06-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170228.
        https://bugs.webkit.org/show_bug.cgi?id=134155

        Caused 9 layout test failures on Mountain Lion
        http://build.webkit.org/builders/Apple%20MountainLion%20Release%20WK2%20(Tests)/builds/19216
        (Requested by bradee-oh on #webkit).

        Reverted changeset:

        "[Mac] Margins for new form controls need tweaking"
        https://bugs.webkit.org/show_bug.cgi?id=134135
        http://trac.webkit.org/changeset/170228

2014-06-21  Jer Noble  <jer.noble@apple.com>

        [Mac] Create and attach the AVPlayerLayer to the AVPlayer immediately if the media element is <video>.
        https://bugs.webkit.org/show_bug.cgi?id=134131

        Reviewed by Eric Carlson.

        The AVPlayer uses the presence of an AVPlayerLayer to decide which alternate to display in the case of
        HLS streams with audio-only alternates. To give the AVPlayer the most information with which to make its
        decision, always create and attach an AVPlayerLayer before attaching an AVPlayerItem to the AVPlayerLayer.
        In addition, retrieve the <video> element bounds and create an AVPlayerLayer with a matching size, so that
        the AVPlayer can choose an alternate with the correct dimensions.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::hasLayerRenderer):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerLayer):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformLayer):

2014-06-21  Jeremy Jones  <jeremyj@apple.com>

        Implement ios -[WAKWindow convertBaseToScreen:]
        https://bugs.webkit.org/show_bug.cgi?id=134053

        Reviewed by Eric Carlson.

        * platform/ios/wak/WAKWindow.mm:
        (-[WAKWindow convertBaseToScreen:]):
        Traverse layer hierarchy and convert point.

        (-[WAKWindow convertScreenToBase:]):
        Traverse layer hierarchy and convert point.

2014-06-21  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Removing PAGE_VISIBILITY_API compile guard.
        https://bugs.webkit.org/show_bug.cgi?id=133844

        Reviewed by Gavin Barraclough.

        No new tests because no functional changes.

        * Configurations/FeatureDefines.xcconfig:
        * Modules/vibration/NavigatorVibration.cpp:
        (WebCore::NavigatorVibration::vibrate):
        * dom/Document.cpp:
        (WebCore::Document::hidden):
        * dom/Document.h:
        * dom/Document.idl:
        * dom/Element.h:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::registerWithDocument):
        (WebCore::HTMLMediaElement::unregisterWithDocument):
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLMediaElement.h:
        * page/Page.cpp:
        (WebCore::Page::setIsVisibleInternal):
        (WebCore::Page::visibilityState):
        (WebCore::Page::hiddenPageCSSAnimationSuspensionStateChanged):
        * page/Page.h:
        * page/PageVisibilityState.cpp:
        * page/PageVisibilityState.h:
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        (WebCore::Settings::setHiddenPageCSSAnimationSuspensionEnabled):
        * page/Settings.h:
        * platform/audio/MediaSession.cpp:
        (WebCore::MediaSession::updateClientDataBuffering):
        * platform/audio/MediaSession.h:

2014-06-21  Frédéric Wang  <fred.wang@free.fr>

        [GTK][EFL] Use OpenType MATH fonts by default.
        https://bugs.webkit.org/show_bug.cgi?id=133604

        Reviewed by Chris Fleizach.

        In order to support stretching of horizontal operators and large
        operators in display mode as well as to improve the drawing of radicals,
        we need to use an OpenType MATH table. This commit makes the MathML code
        try "Latin Modern Math" first, which is an OpenType version of Knuth's
        popular Computer Modern font and is packaged with most TeX
        distributions (e.g. TeX Live on Linux). This should work well on the
        EFL & GTK ports for which the initial OpenType MATH support has been
        tested. Other ports will be handled later.

        No new tests. This is already tested in LayoutTests/mathml/opentype/.

        * css/mathml.css:
        (math): Add "Latin Modern Math" as the first font-family of the <math> element.

2014-06-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Unreviewed EFL build fix since r170224.

        Add retainPlatformLayer() and releasePlatformLayer() in ScrollingStateNodeCoordinatedGraphics.cpp
        as well. Thouse functions were missed in r170224.

        * page/scrolling/ScrollingStateNode.h:
        * page/scrolling/coordinatedgraphics/ScrollingStateNodeCoordinatedGraphics.cpp:
        (WebCore::LayerRepresentation::retainPlatformLayer):
        (WebCore::LayerRepresentation::releasePlatformLayer):

2014-06-20  Dean Jackson  <dino@apple.com>

        [Mac] Margins for new form controls need tweaking
        https://bugs.webkit.org/show_bug.cgi?id=134135
        <rdar://problem/17262164>

        Reviewed by Sam Weinig.

        With the newer animated controls in OS X Yosemite, we need
        to tweak the fudge-factor margins for positioning. In a recent
        patch I added another fudge, which I'm removing with this. I'm
        not sure where the older values came from, but I've checked with
        the latest AppKit sources and am using the sizes they implement
        for the controls.

        This will rebaseline a lot of tests, since I've made small tweaks
        to the form layout.

        * platform/mac/ThemeMac.mm:
        (WebCore::checkboxMargins): New margin amounts.
        (WebCore::radioSizes): New sizes.
        (WebCore::radioMargins): New margin amounts.
        (WebCore::paintToggleButton): No need to call the positioning fudge any more.
        (WebCore::checkboxOffsets): Deleted.
        (WebCore::radioOffsets): Deleted.

2014-06-20  Alex Christensen  <achristensen@webkit.org>

        Fix css jit on armv7.
        https://bugs.webkit.org/show_bug.cgi?id=134143
        <rdar://problem/17348060>

        Reviewed by Benjamin Poulain.

        This fixes the acid3 test.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagsToElementStyleFromContext):
        Correct high and low bits.

2014-06-20  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=134117
        Unreproducible crashes under WebCore::ScrollingTree::updateTreeFromStateNode() 
        from messaging a deleted Obj-C object
        -and corresponding-
        <rdar://problem/17149252>

        Reviewed by Simon Fraser.

        This is a speculative fix. It makes LayerRepresentation retain m_platformLayer.

        * WebCore.exp.in:
        * page/scrolling/ScrollingStateNode.h:
        (WebCore::LayerRepresentation::LayerRepresentation):
        (WebCore::LayerRepresentation::~LayerRepresentation):
        (WebCore::LayerRepresentation::operator=):
        (WebCore::LayerRepresentation::operator==):
        (WebCore::LayerRepresentation::operator ==): Deleted.

        Make this ASSERT an ASSERT_WITH_SECURITY_IMPLICATION
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateTreeFromStateNode):

        Moved ScrollingStateNodeMac.mm, which was empty anyway, to cocoa/
        ScrollingStateNode.mm so that iOS can use it too.
        * page/scrolling/cocoa: Added.
        * page/scrolling/cocoa/ScrollingStateNode.mm: Copied from page/scrolling/mac/ScrollingStateNodeMac.mm.

        Actual implementation for retain and release.
        (WebCore::LayerRepresentation::retainPlatformLayer):
        (WebCore::LayerRepresentation::releasePlatformLayer):

        Deleted.
        * page/scrolling/mac/ScrollingStateNodeMac.mm: Removed.

2014-06-19  Zalan Bujtas  <zalan@apple.com>

        Introduce RenderLayer::offsetFromAncestorLayer() to make convertToLayerCoords() calls with
        LayoutPoint(0, 0) as parameter more explicit.
        https://bugs.webkit.org/show_bug.cgi?id=134092

        Reviewed by Simon Fraser.

        Most of the RenderLayer::convertToLayerCoords() callers are only interested in
        the offset from the ancestor layer by passing LayoutPoint(0, 0) as the coordinate to convert.
        Introducing offsetFromAncestorLayer() makes those calls more explicit/self-explanatory.
        It helps simplifying the callsite's code.

        No change in functionality.

        * rendering/RenderGeometryMap.cpp:
        (WebCore::RenderGeometryMap::mapToContainer):
        (WebCore::RenderGeometryMap::pushMappingsToAncestor):
        (WebCore::RenderGeometryMap::push):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::computeOffsetFromRoot):
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::expandClipRectForRegionAndReflection):
        (WebCore::expandClipRectForDescendantsAndReflection):
        (WebCore::transparencyClipBox):
        (WebCore::RenderLayer::convertToPixelSnappedLayerCoords):
        (WebCore::accumulateOffsetTowardsAncestor):
        (WebCore::RenderLayer::convertToLayerCoords):
        (WebCore::RenderLayer::offsetFromAncestorLayer):
        (WebCore::RenderLayer::clipToRect):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::paintLayerByApplyingTransform):
        (WebCore::RenderLayer::collectFragments):
        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
        (WebCore::RenderLayer::createLocalTransformState):
        (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateCompositedBounds):
        (WebCore::RenderLayerBacking::updateGeometry):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::repaintInCompositedAncestor):

2014-06-20  Myles C. Maxfield  <mmaxfield@apple.com>

        Removing dead code in platform/graphics/gpu
        https://bugs.webkit.org/show_bug.cgi?id=134065

        Reviewed by Simon Fraser.

        No new tests because there is no behavior change.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/gpu/LoopBlinnClassifier.cpp: Removed.
        * platform/graphics/gpu/LoopBlinnClassifier.h: Removed.
        * platform/graphics/gpu/LoopBlinnConstants.h: Removed.
        * platform/graphics/gpu/LoopBlinnLocalTriangulator.cpp: Removed.
        * platform/graphics/gpu/LoopBlinnLocalTriangulator.h: Removed.
        * platform/graphics/gpu/LoopBlinnMathUtils.cpp: Removed.
        * platform/graphics/gpu/LoopBlinnMathUtils.h: Removed.
        * platform/graphics/gpu/LoopBlinnPathCache.cpp: Removed.
        * platform/graphics/gpu/LoopBlinnPathCache.h: Removed.
        * platform/graphics/gpu/LoopBlinnPathProcessor.h: Removed.
        * platform/graphics/gpu/LoopBlinnShader.cpp: Removed.
        * platform/graphics/gpu/LoopBlinnShader.h: Removed.
        * platform/graphics/gpu/LoopBlinnSolidFillShader.cpp: Removed.
        * platform/graphics/gpu/LoopBlinnSolidFillShader.h: Removed.
        * platform/graphics/gpu/LoopBlinnTextureCoords.cpp: Removed.
        * platform/graphics/gpu/LoopBlinnTextureCoords.h: Removed.
        * platform/graphics/gpu/Shader.cpp: Removed.
        * platform/graphics/gpu/Shader.h: Removed.
        * platform/graphics/gpu/SharedGraphicsContext3D.cpp: Removed.
        * platform/graphics/gpu/SharedGraphicsContext3D.h: Removed.
        * platform/graphics/gpu/mac/DrawingBufferMac.mm: Removed.
        * platform/graphics/gpu/opencl/FilterContextOpenCL.cpp: Removed.
        * platform/graphics/gpu/opencl/FilterContextOpenCL.h: Removed.
        * platform/graphics/gpu/opencl/OpenCLFEColorMatrix.cpp: Removed.
        * platform/graphics/gpu/opencl/OpenCLFEFlood.cpp: Removed.
        * platform/graphics/gpu/opencl/OpenCLFEImage.cpp: Removed.
        * platform/graphics/gpu/opencl/OpenCLFEMerge.cpp: Removed.
        * platform/graphics/gpu/opencl/OpenCLFESourceAlpha.cpp: Removed.
        * platform/graphics/gpu/opencl/OpenCLFESourceGraphic.cpp: Removed.
        * platform/graphics/gpu/opencl/OpenCLFETurbulence.cpp: Removed.
        * platform/graphics/gpu/opencl/OpenCLHandle.h: Removed.

2014-06-20  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Support Khmer and Lao fallback fonts
        https://bugs.webkit.org/show_bug.cgi?id=134114

        Reviewed by Enrica Casucci.

        iOS has fonts which have glyphs for the Khmer and Lao languages.

        This patch also does a little refactoring of the language-specific fallback
        font path to increase readability.

        Test: fast/text/khmer-lao-font.html

        * platform/graphics/ios/FontCacheIOS.mm:
        (WebCore::languageSpecificFallbackFont):
        (WebCore::FontCache::systemFallbackForCharacters):

2014-06-20  Anders Carlsson  <andersca@apple.com>

        Give NPAPI post requests a default content type
        https://bugs.webkit.org/show_bug.cgi?id=134120

        Reviewed by Andreas Kling.

        * WebCore.exp.in:

2014-06-20  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r169972): fix issue when removing masks from compositing layers
        https://bugs.webkit.org/show_bug.cgi?id=134118
        <rdar://problem/17366654>

        Reviewed by Dean Jackson.
        
        After r169972 when removing the mask, we could destroy the mask
        layer before the call into m_graphicsLayer->setMaskLayer(), which would
        try to call functions on the old mask. Fix by clearing the mask layer
        on the GraphicsLayer before the mask layer gets destroyed.

        Test: compositing/masks/toggle-mask.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateConfiguration):
        (WebCore::RenderLayerBacking::updateMaskLayer):
        * rendering/RenderLayerBacking.h:

2014-06-20  Andreas Kling  <akling@apple.com>

        [Cocoa] Release freed up blocks from the JS heap after simulated memory pressure.
        <https://webkit.org/b/134112>

        Reviewed by Mark Hahnenberg.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::install):

2014-06-20  Zalan Bujtas  <zalan@apple.com>

        Remove redundant RenderLayer::computeOffsetFromRoot() function.
        https://bugs.webkit.org/show_bug.cgi?id=134088

        Reviewed by Benjamin Poulain.

        No change in functionality.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        (WebCore::RenderLayer::computeOffsetFromRoot): Deleted.
        * rendering/RenderLayer.h:

2014-06-19  Simon Fraser  <simon.fraser@apple.com>

        [iOS WebKit2] Make -webkit-overflow-scrolling:touch work in iframes (breaks MSWord previews)
        https://bugs.webkit.org/show_bug.cgi?id=134085
        <rdar://problem/16440586>

        Reviewed by Tim Horton.
        
        When nodes were detached from the scrolling tree, we would previously throw away
        all descendant nodes, expecting that they would be re-attached as we walk the compositing
        layer tree in RenderLayerCompositor.
        
        However, this doesn't work across frame boundaries; the subframe may never update
        its compositing layers again, so would lose all its scrolling nodes.
        
        Fix by having ScrollingStateTree::detachNode() by default set aside subframe nodes
        into a hash map. On reattach, we'll look in the hash map and pull out an existing node
        (with its children intact) if possible.

        Tests: platform/mac-wk2/tiled-drawing/scrolling/frames/coordinated-frame-gain-scrolling-ancestor.html
               platform/mac-wk2/tiled-drawing/scrolling/frames/coordinated-frame-lose-scrolling-ancestor.html
               platform/mac-wk2/tiled-drawing/scrolling/frames/remove-coordinated-frame.html

        * page/scrolling/ScrollingStateNode.cpp:
        (WebCore::ScrollingStateNode::ScrollingStateNode):
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::attachNode):
        (WebCore::ScrollingStateTree::detachNode):
        (WebCore::ScrollingStateTree::clear):
        (WebCore::ScrollingStateTree::removeNodeAndAllDescendants):
        (WebCore::ScrollingStateTree::recursiveNodeWillBeRemoved):
        * page/scrolling/ScrollingStateTree.h:
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::commitNewTreeState): Go back to removing the deleted
        nodes from m_nodeMap first.
        (WebCore::ScrollingTree::removeDestroyedNodes): There is no need for this to
        actually make use of ScrollingTreeNode* any more; the ASSERT(!node->parent())
        is bogus because it can fire when whole subtrees are removed, and to clear the
        latched node we just need the ID.

2014-06-19  Simon Fraser  <simon.fraser@apple.com>

        Handle scrolling tree modifications which remove intermediate nodes
        https://bugs.webkit.org/show_bug.cgi?id=134082

        Reviewed by Tim Horton.

        When updating the scrolling tree from the state tree, we failed to maintain
        the children arrays correctly. Fix by removing all children on scrolling nodes,
        and allowing the calls on children to add them back. A temporary hash map
        keeps the nodes alive.
        
        The state tree's m_nodesRemovedSinceLastCommit was also made into a HashSet,
        to make it easier to handle removal followed by re-insertion.

        * WebCore.exp.in:
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::attachNode): If a node is (possibly re-)added,
        remove it from m_nodesRemovedSinceLastCommit.remove.
        (WebCore::ScrollingStateTree::willRemoveNode):
        (WebCore::ScrollingStateTree::setRemovedNodes):
        * page/scrolling/ScrollingStateTree.h:
        (WebCore::ScrollingStateTree::removedNodes):
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::commitNewTreeState):
        (WebCore::ScrollingTree::updateTreeFromStateNode): Clean up to have only one call
        to updateBeforeChildren(), and remove all children from the scrolling node
        before visiting state children.
        (WebCore::ScrollingTree::removeDestroyedNodes): It was very wrong to assume
        that all non-root nodes were parented in the root! Now we don't need to
        remove from the parent anyway.
        * page/scrolling/ScrollingTree.h:
        * page/scrolling/ScrollingTreeNode.h:
        (WebCore::ScrollingTreeNode::children):

2014-06-19  Simon Fraser  <simon.fraser@apple.com>

        Make ScrollingTreeNodes refounted, for easier tree reconfiguration
        https://bugs.webkit.org/show_bug.cgi?id=134075

        Reviewed by Tim Horton.

        Make ScrollingTreeNode be ref-counted.

        * page/scrolling/AsyncScrollingCoordinator.h:
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::handleWheelEvent):
        (WebCore::ScrollingTree::updateTreeFromStateNode):
        * page/scrolling/ScrollingTree.h:
        (WebCore::ScrollingTree::rootNode):
        * page/scrolling/ScrollingTreeNode.cpp:
        (WebCore::ScrollingTreeNode::appendChild):
        * page/scrolling/ScrollingTreeNode.h:
        * page/scrolling/ThreadedScrollingTree.cpp:
        (WebCore::ThreadedScrollingTree::createNode):
        * page/scrolling/ThreadedScrollingTree.h:
        * page/scrolling/ios/ScrollingCoordinatorIOS.h:
        * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
        (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::create):
        * page/scrolling/ios/ScrollingTreeIOS.cpp:
        (WebCore::ScrollingTreeIOS::createNode):
        * page/scrolling/ios/ScrollingTreeIOS.h:
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
        * page/scrolling/mac/ScrollingTreeFixedNode.h:
        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::create):
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeMac::create):
        * page/scrolling/mac/ScrollingTreeStickyNode.h:
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::create):

2014-06-20  Enrica Casucci  <enrica@apple.com>

        iOS build fix after http://trac.webkit.org/changeset/170167.

        Reviewed by Geoff Garen.

        * bindings/js/JSDeviceMotionEventCustom.cpp:
        * bindings/js/JSDeviceOrientationEventCustom.cpp:

2014-06-19  Pratik Solanki  <psolanki@apple.com>

        Enable synchronous willSendRequest on iOS
        https://bugs.webkit.org/show_bug.cgi?id=134081
        <rdar://problem/17350927>

        Reviewed by Andreas Kling.

        We lost the call to make willSendrequest callbacks be synchronous if possible during code
        refactoring. The call is present in ResourceHandleMac.mm but that code is not called when
        we use the CFNetwork based loader. Call the SPI in setupRequest().

        No new tests because existing tests should cover this functionality.

        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::setupRequest):
        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):

2014-06-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Do not build quota files when QUOTA is disabled
        https://bugs.webkit.org/show_bug.cgi?id=134101

        Reviewed by Philippe Normand.

        * CMakeLists.txt: Remove exception for GTK+ that is no longer
        required since r170173.
        * PlatformGTK.cmake: Generate GObject DOM bindings for Quota when enabled.

2014-06-20  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Add GridSpan::iterator
        https://bugs.webkit.org/show_bug.cgi?id=134058

        Reviewed by Bem Jones-Bey.

        Once that GridResolvedPosition has been introduced in r169934, this
        patch adds a GridSpan::iterator which allows to simplify the loops over
        GridResolvedPositions.
        From now on we could use range-based for loops.

        No new tests as it is already covered by current tests
        (fast/css-grid-layout/).

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computeNormalizedFractionBreadth): Change loop to
        ranged-based for.
        (WebCore::RenderGrid::insertItemIntoGrid): Ditto.
        (WebCore::RenderGrid::gridAreaBreadthForChild): Ditto.
        * rendering/style/GridCoordinate.h: Define GridSpan::iterator.
        (WebCore::GridSpan::begin): Return resolved initial position.
        (WebCore::GridSpan::end): Return next to resolved final position.
        * rendering/style/GridResolvedPosition.h:
        (WebCore::GridResolvedPosition::operator*): Add operator required by
        range-based for loops.
        (WebCore::GridResolvedPosition::operator!=): Add not equal operator.

2014-06-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ debug build after r170174.

        * bindings/gobject/WebKitDOMNodeFilter.cpp:
        (WebKit::nodeFilterObjectDestroyedCallback):

2014-06-20  Tim Horton  <timothy_horton@apple.com>

        LayerPool’d PlatformCALayerRemote/RemoteLayerBackingStore can have stale context pointers
        https://bugs.webkit.org/show_bug.cgi?id=134050
        <rdar://problem/17315114>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::platformReleaseMemory):
        Drain all LayerPools upon memory pressure.

        * platform/graphics/ca/LayerPool.cpp:
        (WebCore::LayerPool::LayerPool):
        (WebCore::LayerPool::~LayerPool):
        (WebCore::LayerPool::allLayerPools):
        (WebCore::LayerPool::sharedPool): Deleted.
        * platform/graphics/ca/LayerPool.h:
        * platform/graphics/ca/PlatformCALayer.cpp:
        (WebCore::PlatformCALayer::createCompatibleLayerWithSize):
        Add createCompatibleLayerWithSize, which optionally tries to take said layer from the LayerPool.

        (WebCore::PlatformCALayer::moveToLayerPool):
        Add moveToLayerPool, which moves the layer to the LayerPool.

        (WebCore::PlatformCALayer::layerPool):
        The LayerPool for each layer is obtained via PlatformCALayer::layerPool(), which subclasses can override for special behaviors.
        The base class uses a global LayerPool.

        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/TileController.cpp:
        (WebCore::TileController::createTileLayer):
        * platform/graphics/ca/TileGrid.cpp:
        (WebCore::TileGrid::removeTiles):

2014-06-19  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] webkit_dom_document_create_tree_walker impossible to use due to WebKitDOMNodeFilter
        https://bugs.webkit.org/show_bug.cgi?id=93002

        Reviewed by Gustavo Noronha Silva.

        Add custom implementation of WebKitDOMNodeFilter to expose it as
        an interface instead of a class.

        * PlatformGTK.cmake: Add new files to compilation.
        * bindings/gobject/GObjectNodeFilterCondition.cpp: Added.
        (WebCore::GObjectNodeFilterCondition::~GObjectNodeFilterCondition):
        Reset the NodeFilter WebCore object associated to the
        WebKitDOMNodeFilter object.
        (WebCore::GObjectNodeFilterCondition::acceptNode): Call webkit_dom_node_filter_accept_node().
        * bindings/gobject/GObjectNodeFilterCondition.h: Added.
        (WebCore::GObjectNodeFilterCondition::create): Create a new
        GObjectNodeFilterCondition for the given WebKitDOMNodeFilter.
        (WebCore::GObjectNodeFilterCondition::GObjectNodeFilterCondition):
        * bindings/gobject/WebKitDOMNodeFilter.cpp: Added.
        (webkit_dom_node_filter_default_init):
        (webkit_dom_node_filter_accept_node):
        (WebKit::nodeFilterMap): Map NodeFilter WebCore objects to
        WebKitDOMNodeFilter objects.
        (WebKit::nodeFilterObjectDestroyedCallback): Remove the node
        filter form the map when the WebKitDOMNodeFilter objecrt is destroyed.
        (WebKit::kit): Return the WebKitDOMNodeFilter object for the given
        NodeFilter WebCore object.
        (WebKit::core): Get or create a NodeFilter WebCore object
        associated to the given WebKitDOMNodeFilter.
        * bindings/gobject/WebKitDOMNodeFilter.h: Added.
        * bindings/gobject/WebKitDOMNodeFilter.symbols: Added.
        * bindings/gobject/WebKitDOMNodeFilterPrivate.h: Added.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateFunction): Add exceptions for NodeFilter parameters since
        the core method returns a PassRefPtr.

2014-06-19  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Limit the amount of API exposed to GObject DOM bindings API
        https://bugs.webkit.org/show_bug.cgi?id=133726

        Reviewed by Gustavo Noronha Silva.

        Split the GObject DOM bindings API into stable and unstable. The
        unstable API is not included in the main webkitdom.h file, so that
        to use it users have to include the headers individually and
        define a macro WEBKIT_DOM_USE_UNSTABLE_API. For unstable methods
        of stable classes we generate a {ClassName}Unstable.h header file
        containing the unstable API. From now on we only keep backwards
        compatibility for the stable API.

        * PlatformGTK.cmake: Split GObject DOM bindings related variables
        into Stable and Unstable. Add also
        * bindings/gobject/WebKitDOMCustom.cpp:
        (webkit_dom_html_media_element_set_current_time): Deleted.
        (webkit_dom_text_track_get_kind): Deleted.
        (webkit_dom_text_track_get_mode): Deleted.
        (webkit_dom_text_track_set_mode): Deleted.
        * bindings/gobject/WebKitDOMCustom.h:
        * bindings/gobject/WebKitDOMCustom.symbols: Remove custom symbols
        added due to API changes.
        * bindings/gobject/WebKitDOMPrivate.h: Include webkitdomdefines-unstable.h.
        * bindings/gobject/webkitdom.symbols: Remove all unstable symbols.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (SkipFunction): Do not skip webkit_dom_html_media_element_set_current_time anymore.
        (GenerateHeader): Only force single header include for stable
        headers and add WEBKIT_DOM_USE_UNSTABLE_API #ifdef to unstable headers.
        (GenerateFunction): Only add stable symbols to the symbols
        array. Add function prototypes to main header or unstable header
        depending on whether it's an unstable symbol for a stable class or
        not. Also add Stability gtk-doc tag to unstable methods.
        (GenerateEndHeader): Add required #endifs
        (WriteData): Write also an Unstable.h header when appropriate and
        only generate a symbols file for stable classes.
        (ReadStableSymbols): Read the stable symbols for the current class.
        (GenerateInterface): Call ReadStableSymbols.
        * bindings/scripts/gobject-generate-headers.pl: Generate webkitdomdefines-unstable.h.
        * bindings/scripts/test/GObject/WebKitDOMTestActiveDOMObject.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCallback.h:
        * bindings/scripts/test/GObject/WebKitDOMTestCustomNamedGetter.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
        * bindings/scripts/test/GObject/WebKitDOMTestException.h:
        * bindings/scripts/test/GObject/WebKitDOMTestGenerateIsReachable.h:
        * bindings/scripts/test/GObject/WebKitDOMTestInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestMediaQueryListListener.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNamedConstructor.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNode.h:
        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.h:
        * bindings/scripts/test/GObject/WebKitDOMTestObj.h:
        * bindings/scripts/test/GObject/WebKitDOMTestOverloadedConstructors.h:
        * bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/GObject/WebKitDOMTestTypedefs.h:
        * bindings/scripts/test/GObject/WebKitDOMattribute.h:
        * bindings/scripts/test/GObject/WebKitDOMreadonly.h:

2014-06-19  Andreas Kling  <akling@apple.com>

        When simulating memory pressure, GC *after* releasing WebCore resources.

        Since clearing the page cache is likely to create lots of garbage, defer the
        synchronous GC until after the WebCore pressure relief, so we can see the
        effect of clearing out all those pages.

        Rubber-stamped by Gavin Barraclough.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::install):

2014-06-18  Sam Weinig  <sam@webkit.org>

        Move generate prototype and constructor classes into the generated implementation files
        https://bugs.webkit.org/show_bug.cgi?id=134054

        Reviewed by Oliver Hunt.

        In an effort to reduce the size of the generated bindings headers, which is important
        as the generated headers get included in a lot of places, this patch moves the prototype
        and constructor declarations from the header to implementation file. This works because,
        for the most part, no code cares about the prototype or constructors except the instance.

        There are a few exceptions which had to be accounted for:
        - The global objects (JSDOMWindow and JSWorkerGlobalScope) need to have their prototypes
          available during initialization, so they remain in the header.
        - JSLocation requires customizing some aspects of the prototype behavior, so its prototype,
          and any future class that uses JSCustomNamedGetterOnPrototype or JSCustomDefineOwnPropertyOnPrototype,
          remains in the header.
        - A few classes had custom constructor functions. Instead of keeping the entire constructor
          in the header, I opted for pulling just the static constructor function into the header, and
          modifying the custom constructors to use the DOMConstructorObject type as the callee, since the
          more specific type was unnecessary.

        As a result of making these changes, I was also able to remove the #include of JSDOMBinding.h from
        all the headers, which brought in quite a bit.

        * bindings/js/JSAudioContextCustom.cpp:
        (WebCore::constructJSAudioContext):
        (WebCore::JSAudioContextConstructor::constructJSAudioContext): Deleted.
        * bindings/js/JSBlobCustom.cpp:
        (WebCore::constructJSBlob):
        (WebCore::JSBlobConstructor::constructJSBlob): Deleted.
        * bindings/js/JSCryptoCustom.cpp:
        * bindings/js/JSDOMFormDataCustom.cpp:
        (WebCore::constructJSDOMFormData):
        (WebCore::JSDOMFormDataConstructor::constructJSDOMFormData): Deleted.
        * bindings/js/JSDOMMimeTypeArrayCustom.cpp:
        * bindings/js/JSDOMPluginArrayCustom.cpp:
        * bindings/js/JSDOMPluginCustom.cpp:
        * bindings/js/JSDataCueCustom.cpp:
        (WebCore::constructJSDataCue):
        (WebCore::JSDataCueConstructor::constructJSDataCue): Deleted.
        * bindings/js/JSDataTransferCustom.cpp:
        * bindings/js/JSEventCustom.cpp:
        * bindings/js/JSFileReaderCustom.cpp:
        * bindings/js/JSHistoryCustom.cpp:
        * bindings/js/JSIDBAnyCustom.cpp:
        * bindings/js/JSIDBDatabaseCustom.cpp:
        * bindings/js/JSIDBObjectStoreCustom.cpp:
        * bindings/js/JSImageConstructor.cpp:
        (WebCore::JSImageConstructor::finishCreation):
        * bindings/js/JSImageDataCustom.cpp:
        * bindings/js/JSInspectorFrontendHostCustom.cpp:
        * bindings/js/JSLocationCustom.cpp:
        * bindings/js/JSMessagePortCustom.cpp:
        * bindings/js/JSMutationObserverCustom.cpp:
        (WebCore::constructJSMutationObserver):
        (WebCore::JSMutationObserverConstructor::constructJSMutationObserver): Deleted.
        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        * bindings/js/JSSQLTransactionSyncCustom.cpp:
        * bindings/js/JSSVGLengthCustom.cpp:
        * bindings/js/JSSharedWorkerCustom.cpp:
        (WebCore::constructJSSharedWorker):
        (WebCore::JSSharedWorkerConstructor::constructJSSharedWorker): Deleted.
        * bindings/js/JSStorageCustom.cpp:
        * bindings/js/JSUserMessageHandlersNamespaceCustom.cpp:
        * bindings/js/JSWebKitPointCustom.cpp:
        (WebCore::constructJSWebKitPoint):
        (WebCore::JSWebKitPointConstructor::constructJSWebKitPoint): Deleted.
        * bindings/js/JSWorkerCustom.cpp:
        (WebCore::constructJSWorker):
        (WebCore::JSWorkerConstructor::constructJSWorker): Deleted.
        * bindings/js/SerializedScriptValue.cpp:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        (GeneratePrototypeDeclaration):
        (GenerateConstructorDeclaration):
        (GenerateConstructorHelperMethods):
        (HeaderNeedsPrototypeDeclaration):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        * bindings/scripts/test/JS/JSTestException.cpp:
        * bindings/scripts/test/JS/JSTestException.h:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        * bindings/scripts/test/JS/JSTestInterface.h:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        * bindings/scripts/test/JS/JSTestNode.cpp:
        * bindings/scripts/test/JS/JSTestNode.h:
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        * bindings/scripts/test/JS/JSTestNondeterministic.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        * bindings/scripts/test/JS/JSTestTypedefs.h:
        * bindings/scripts/test/JS/JSattribute.cpp:
        * bindings/scripts/test/JS/JSattribute.h:
        * bindings/scripts/test/JS/JSreadonly.cpp:
        * bindings/scripts/test/JS/JSreadonly.h:


2014-06-19  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Compile errors related to http header field names.
        https://bugs.webkit.org/show_bug.cgi?id=134029

        Reviewed by Brent Fulgham.

        Http header field names should now be specified with an enum, not a string.

        * platform/network/curl/MultipartHandle.cpp:
        (WebCore::MultipartHandle::didReceiveResponse):
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::getProtectionSpace):

2014-06-19  Anders Carlsson  <andersca@apple.com>

        Put the divider in the right place.

        * DerivedSources.make:

2014-06-19  Anders Carlsson  <andersca@apple.com>

        Address a review comment from Darin.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::willLoadXHR):

2014-06-19  Anders Carlsson  <andersca@apple.com>

        Simplify two HistoryController member functions
        https://bugs.webkit.org/show_bug.cgi?id=134064

        Reviewed by Dan Bernstein.

        Remove the FrameLoadType parameter from recursiveSetProvisionalItem,
        use early returns and modern loops.

        * loader/HistoryController.cpp:
        (WebCore::HistoryController::goToItem):
        (WebCore::HistoryController::recursiveSetProvisionalItem):
        (WebCore::HistoryController::recursiveGoToItem):
        * loader/HistoryController.h:

2014-06-19  David Kilzer  <ddkilzer@apple.com>

        MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL() leaks an NSMutableArray
        <http://webkit.org/b/134052>

        Reviewed by Eric Carlson.

        Fixes the following static analyzer warning:

            WebCore/platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:688:43: warning: Potential leak of an object stored into 'outOfBandTracks'
                    NSMutableArray* outOfBandTracks = [[NSMutableArray alloc] init];
                                                      ^

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL):
        Use RetainPtr<NSMutableArray> to prevent a leak.  Use
        Objective-C literals to clean up the code.

2014-06-18  Zan Dobersek  <zdobersek@igalia.com>

        ScriptExecutionContext::Task, FileThread::Task parameters should be values
        https://bugs.webkit.org/show_bug.cgi?id=134035

        Reviewed by Anders Carlsson.

        r170106 and similar previous changesets enforced ScriptExecutionContext::Task and
        FileThread::Task parameters as rvalue references. There's technically nothing wrong
        with that, but since both classes are move-only it is also not strictly required.
        Accepting these parameters as values is more common in C++ value semantics as well.

        * dom/Document.cpp:
        (WebCore::Document::postTask):
        * dom/Document.h:
        * dom/ScriptExecutionContext.h:
        * fileapi/FileThread.cpp:
        (WebCore::FileThread::postTask):
        * fileapi/FileThread.h:
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::postTaskToLoader):
        (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
        * workers/WorkerGlobalScope.cpp:
        (WebCore::WorkerGlobalScope::postTask):
        * workers/WorkerGlobalScope.h:
        * workers/WorkerLoaderProxy.h:
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::postTaskToLoader):
        (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
        * workers/WorkerMessagingProxy.h:
        * workers/WorkerRunLoop.cpp:
        (WebCore::WorkerRunLoop::postTask):
        (WebCore::WorkerRunLoop::postTaskAndTerminate):
        (WebCore::WorkerRunLoop::postTaskForMode):
        (WebCore::WorkerRunLoop::Task::create):
        (WebCore::WorkerRunLoop::Task::Task):
        * workers/WorkerRunLoop.h:

2014-06-18  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: expose aria-relevant
        https://bugs.webkit.org/show_bug.cgi?id=130913

        Reviewed by Joseph Pecoraro.

        Expose ARIA live region relevance in Web Inspector.
        E.g. "Live: Assertive (Additions, Text)"

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties): Support for liveRegionRelevant.
        * inspector/protocol/DOM.json: Defined enum values and array passed to client.

2014-06-18  Simon Fraser  <simon.fraser@apple.com>

        Add rebeccapurple to CSS named color list
        https://bugs.webkit.org/show_bug.cgi?id=133804

        Reviewed by Jer Noble.

        Add the named color "rebeccapurple" (#639).

        * css/SVGCSSValueKeywords.in:
        * platform/ColorData.gperf:

2014-06-11  Jeffrey Pfau  <jpfau@apple.com>

        Fix flaky beforeload tests
        https://bugs.webkit.org/show_bug.cgi?id=133685

        Reviewed by David Kilzer.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadURL):

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Make FrameLoadType a strongly typed enum
        https://bugs.webkit.org/show_bug.cgi?id=134047

        Reviewed by Andreas Kling.

        * history/BackForwardController.cpp:
        (WebCore::BackForwardController::goBackOrForward):
        (WebCore::BackForwardController::goBack):
        (WebCore::BackForwardController::goForward):
        * history/PageCache.cpp:
        (WebCore::logCanCachePageDecision):
        (WebCore::PageCache::canCache):
        * loader/FrameLoader.cpp:
        (WebCore::isBackForwardLoadType):
        (WebCore::FrameLoader::FrameLoader):
        (WebCore::FrameLoader::loadURLIntoChildFrame):
        (WebCore::FrameLoader::prepareForLoadStart):
        (WebCore::FrameLoader::loadFrameRequest):
        (WebCore::FrameLoader::loadURL):
        (WebCore::FrameLoader::load):
        (WebCore::FrameLoader::reloadWithOverrideEncoding):
        (WebCore::FrameLoader::reload):
        (WebCore::FrameLoader::commitProvisionalLoad):
        (WebCore::FrameLoader::transitionToCommitted):
        (WebCore::FrameLoader::isReplacing):
        (WebCore::FrameLoader::setReplacing):
        (WebCore::FrameLoader::subresourceCachePolicy):
        (WebCore::FrameLoader::checkLoadCompleteForThisFrame):
        (WebCore::FrameLoader::addExtraFieldsToRequest):
        (WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
        (WebCore::FrameLoader::shouldPerformFragmentNavigation):
        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
        (WebCore::FrameLoader::loadDifferentDocumentItem):
        * loader/FrameLoaderTypes.h:
        * loader/HistoryController.cpp:
        (WebCore::HistoryController::restoreDocumentState):
        (WebCore::HistoryController::updateForReload):
        (WebCore::HistoryController::isReplaceLoadTypeWithProvisionalItem):
        (WebCore::HistoryController::isReloadTypeWithProvisionalItem):
        * loader/NavigationAction.cpp:
        (WebCore::navigationType):
        * loader/PolicyChecker.cpp:
        (WebCore::PolicyChecker::PolicyChecker):
        (WebCore::PolicyChecker::checkNavigationPolicy):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::cachePolicy):
        * loader/icon/IconController.cpp:
        (WebCore::IconController::startLoader):

2014-06-18  Alex Christensen  <achristensen@webkit.org>

        [curl] Unreviewed speculative build fix after r170021.

        * platform/network/curl/CurlCacheEntry.cpp:
        (WebCore::CurlCacheEntry::setResponseFromCachedHeaders):
        (WebCore::CurlCacheEntry::parseResponseHeaders):
        * platform/network/curl/CurlDownload.cpp:
        (WebCore::CurlDownload::didReceiveHeader):
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::getProtectionSpace):
        (WebCore::headerCallback):
        Use HTTPHeaderName constants.

2014-06-18  Simon Fraser  <simon.fraser@apple.com>

        Move the removeNode() tree walking from ScrollingStateNote into ScrollingStateTree
        https://bugs.webkit.org/show_bug.cgi?id=134043

        Reviewed by Beth Dakin.

        It's cleaner if ScrollingStateTree does the descendant walk when removing nodes.
        We can simply start the "willBeRemoved" walk at the node in question.
        
        Have willRemoveNode() just remove the node from the m_stateNodeMap directly, rather
        than this happening in a separate walk of m_nodesRemovedSinceLastCommit.

        * page/scrolling/ScrollingStateNode.cpp:
        (WebCore::ScrollingStateNode::removeDescendant): Deleted.
        (WebCore::ScrollingStateNode::willBeRemovedFromStateTree): Deleted.
        * page/scrolling/ScrollingStateNode.h:
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::attachNode):
        (WebCore::ScrollingStateTree::detachNode):
        (WebCore::ScrollingStateTree::clear):
        (WebCore::ScrollingStateTree::removeNodeAndAllDescendants):
        (WebCore::ScrollingStateTree::recursiveNodeWillBeRemoved):
        (WebCore::ScrollingStateTree::willRemoveNode):
        (WebCore::ScrollingStateTree::removeNode): Deleted.
        * page/scrolling/ScrollingStateTree.h:

2014-06-18  Alex Christensen  <achristensen@webkit.org>

        [iOS WebGL] Fixed WEBGL_compressed_texture_pvrtc.
        https://bugs.webkit.org/show_bug.cgi?id=133561
        
        Based on Blink r153971 by bajones@chromium.org.

        Reviewed by Dean Jackson.

        No new tests, but this should fix webgl-compressed-texture-pvrtc.html.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::validateCompressedTexDimensions):
        (WebCore::WebGLRenderingContext::validateCompressedTexSubDimensions):
        Added checks for pvrtc.

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Work around a Windows compiler crash.

        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::createFromSelection):

2014-06-18  Benjamin Poulain  <benjamin@webkit.org>

        Subtrees with :first-child and :last-child are not invalidated when siblings are added/removed
        https://bugs.webkit.org/show_bug.cgi?id=133934

        Reviewed by Antti Koivisto.

        When adding/removing nodes on an element, we try to invalidate only the elements that are
        affected. In the case of :first-child and :last-child, that optimizations is implemented
        through two types of flags that are updated during style resolution.

        The first flag is childrenAffectedByFirstChildRules (childrenAffectedByLastChildRules),
        set on the parent of any element that could be affected by :first-child (:last-child).

        The other part of the optimization is marking the style itself with firstChildState (lastChildState)
        to further reduce invalidations.

        The problem in this case happen with a subtree of element is detached. Since there is no renderer,
        the computed style is resolved ad-hoc and stored directly on the element. When the element is moved,
        the computed style was never cleared because the invalidation optimizations were not handling
        elements without style.

        Credit to Yusuke Suzuki for discovering the issue and creating test cases.

        Tests: fast/css/getComputedStyle/empty-update-without-renderer.html
               fast/css/getComputedStyle/first-child-update-without-renderer.html
               fast/css/getComputedStyle/last-child-update-without-renderer.html

        * dom/Element.cpp:
        (WebCore::checkForEmptyStyleChange):
        Clean up: pull the style directly from the function instead of expection the call sites to do that.
        Refine the checks to avoid invalidation.

        (WebCore::checkForSiblingStyleChanges):
        Do not early return if the parent is detached, the children may still need invalidation.

        When there is no renderer, assume the worst first-child/last-child and force the invalidation.

        (WebCore::Element::childrenChanged):

2014-06-18  Daniel Bates  <dabates@apple.com>

        REGRESSION (r167856): Unable to log into HSBC app
        https://bugs.webkit.org/show_bug.cgi?id=133991
        <rdar://problem/17044839>

        Reviewed by David Kilzer.

        Following <http://trac.webkit.org/changeset/167856> we disallow "navigation to any URL that is
        invalid, except for JavaScript URLs, which need not be valid." A byproduct of this policy
        decision is that we no longer notify the WebKit client to about a navigation if the destination
        URL is invalid. And some apps, including the HSBC app for iOS, have logic to intercept URLs
        as a means to pass data from their WebView-embedded web app to the WebView. We should expose a
        setting called allowNavigationToInvalidURL (disabled by default on all ports and conditionally
        enabled on iOS) to toggle whether WebCore allows navigation to any URL, even if its invalid,
        so as to not break clients that intercept URLs and have custom logic to handle them.

        Tests: fast/loader/allow-redirect-to-invalid-url-using-javascript.html
               fast/loader/allow-redirect-to-invalid-url-using-meta-refresh.html
               fast/loader/disallow-redirect-to-invalid-url-using-javascript.html
               fast/loader/disallow-redirect-to-invalid-url-using-meta-refresh.html

        * loader/NavigationScheduler.cpp:
        (WebCore::NavigationScheduler::shouldScheduleNavigation): Modified to only validate
        the URL when the setting allowNavigationToInvalidURL is disabled.
        * page/Settings.in: Added setting allowNavigationToInvalidURL (disabled by default).

2014-06-18  Simon Fraser  <simon.fraser@apple.com>

        Make ScrollingStateNodes refcounted, and other minor cleanup
        https://bugs.webkit.org/show_bug.cgi?id=134040

        Reviewed by Beth Dakin.

        Prepare for future scrolling frame gyrations by making
        ScrollingStateNodes refcounted.
        
        Rename ScrollingStateNode::removeChild() to removeDescendant()
        since that's what it does. Also rename didRemoveNode() to willRemoveNode()
        to better match the behavior.
        
        Use 'auto' in more places.

        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::syncChildPositions):
        * page/scrolling/ScrollingStateFixedNode.cpp:
        (WebCore::ScrollingStateFixedNode::create):
        (WebCore::ScrollingStateFixedNode::clone):
        * page/scrolling/ScrollingStateFixedNode.h:
        * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
        (WebCore::ScrollingStateFrameScrollingNode::create):
        (WebCore::ScrollingStateFrameScrollingNode::clone):
        * page/scrolling/ScrollingStateFrameScrollingNode.h:
        * page/scrolling/ScrollingStateNode.cpp:
        (WebCore::ScrollingStateNode::cloneAndReset):
        (WebCore::ScrollingStateNode::appendChild):
        (WebCore::ScrollingStateNode::removeDescendant):
        (WebCore::ScrollingStateNode::willBeRemovedFromStateTree):
        (WebCore::ScrollingStateNode::removeChild): Deleted.
        * page/scrolling/ScrollingStateNode.h:
        (WebCore::ScrollingStateNode::children):
        * page/scrolling/ScrollingStateOverflowScrollingNode.cpp:
        (WebCore::ScrollingStateOverflowScrollingNode::create):
        (WebCore::ScrollingStateOverflowScrollingNode::clone):
        * page/scrolling/ScrollingStateOverflowScrollingNode.h:
        * page/scrolling/ScrollingStateStickyNode.cpp:
        (WebCore::ScrollingStateStickyNode::create):
        (WebCore::ScrollingStateStickyNode::clone):
        * page/scrolling/ScrollingStateStickyNode.h:
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::attachNode):
        (WebCore::ScrollingStateTree::removeNode):
        (WebCore::ScrollingStateTree::willRemoveNode):
        (WebCore::ScrollingStateTree::didRemoveNode): Deleted.
        * page/scrolling/ScrollingStateTree.h:
        (WebCore::ScrollingStateTree::setRootStateNode):
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::updateTreeFromStateNode):

2014-06-18  Anders Carlsson  <andersca@apple.com>

        Adopt modern C++11 loops and fix WebArchive creation functions
        https://bugs.webkit.org/show_bug.cgi?id=134032

        Reviewed by Andreas Kling.

        Use modern loops in a couple of places, fix DocumentLoader::subresources() to return a Vector,
        and stop using Vectors of PassRefPtrs.

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::textInserted):
        (WebCore::Document::textRemoved):
        (WebCore::Document::textNodesMerged):
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::subresources):
        (WebCore::DocumentLoader::getSubresources): Deleted.
        * loader/DocumentLoader.h:
        * loader/appcache/ApplicationCache.cpp:
        (WebCore::ApplicationCache::dump):
        * loader/appcache/ApplicationCache.h:
        (WebCore::ApplicationCache::resources):
        (WebCore::ApplicationCache::begin): Deleted.
        (WebCore::ApplicationCache::end): Deleted.
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::didFinishLoadingManifest):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::fillResourceList):
        * loader/appcache/ApplicationCacheStorage.cpp:
        (WebCore::ApplicationCacheStorage::fallbackCacheGroupForURL):
        (WebCore::ApplicationCacheStorage::store):
        (WebCore::ApplicationCacheStorage::empty):
        (WebCore::ApplicationCacheStorage::storeCopyOfCache):
        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::create):
        (WebCore::LegacyWebArchive::createFromSelection):
        * loader/archive/cf/LegacyWebArchive.h:
        * xml/XMLHttpRequestProgressEventThrottle.cpp:
        (WebCore::XMLHttpRequestProgressEventThrottle::dispatchDeferredEvents):

2014-06-18  Alex Christensen  <achristensen@webkit.org>

        Remove duplicate code using sdiv.
        https://bugs.webkit.org/show_bug.cgi?id=133764

        Reviewed by Daniel Bates.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
        Use template sdiv for apple armv7s and arm64.

2014-06-18  Zan Dobersek  <zdobersek@igalia.com>

        ScriptExecutionContext::Task parameters should always be rvalue references
        https://bugs.webkit.org/show_bug.cgi?id=133615

        Reviewed by Darin Adler.

        ScriptExecutionContext::Task parameters should be rvalue references as the
        passed-in objects are always ScriptExecutionContext::Task rvalues that were
        implicitly constructed from a lambda function or rvalues of objects that
        derive from ScriptExecutionContext::Task.

        This isn't really necessary since ScriptExecutionContext::Task is non-copyable
        and we have to use move semantics anyway, but it makes it clear that these
        objects are expiring rvalues that must be properly dealt with.

        * dom/Document.cpp:
        (WebCore::Document::postTask):
        * dom/Document.h:
        * dom/ScriptExecutionContext.h:
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::postTaskToLoader):
        (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
        * workers/WorkerGlobalScope.cpp:
        (WebCore::WorkerGlobalScope::postTask):
        * workers/WorkerGlobalScope.h:
        * workers/WorkerLoaderProxy.h:
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::postTaskToLoader):
        (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
        * workers/WorkerMessagingProxy.h:
        * workers/WorkerRunLoop.cpp:
        (WebCore::WorkerRunLoop::postTask):
        (WebCore::WorkerRunLoop::postTaskAndTerminate):
        (WebCore::WorkerRunLoop::postTaskForMode):
        (WebCore::WorkerRunLoop::Task::create):
        (WebCore::WorkerRunLoop::Task::Task):
        * workers/WorkerRunLoop.h:

2014-06-18  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Compile errors when trying to compile CA code.
        https://bugs.webkit.org/show_bug.cgi?id=134030

        Reviewed by Simon Fraser.

        WinCairo does not USE(CA).

        * WebCore.vcxproj/WebCore.vcxproj:
        * platform/graphics/ca/TileController.h:

2014-06-17  Tim Horton  <timothy_horton@apple.com>

        [iOS][wk2] Use ImageDocument to display subframe PDFs
        https://bugs.webkit.org/show_bug.cgi?id=133944
        <rdar://problem/17205983>

        Reviewed by Dan Bates.

        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createDocument):
        Make a ImageDocument to show our subframe PDF, if the setting is enabled.

        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::finishedParsing):
        (WebCore::ImageDocument::createDocumentStructure):
        Set the ResourceResponse on the ImageElement upon creation, instead of
        when the load finishes. This way, when the internal CachedImage creates
        its Image, it can have the correct MIME type for the response, and can
        make a PDFDocumentImage if necessary.

        We never noticed this before because CachedImage falls back to making a
        BitmapImage, and that was the only case that was normally used.

        Throw an explicit white background behind PDF ImageDocuments; PDFDocumentImage
        paints with a transparent background, but when used as an ImageDocument
        it seems reasonable to assume that there should be a white page background
        (similar to what PDFPlugin and friends do).

        * loader/DocumentWriter.cpp:
        (WebCore::DocumentWriter::createDocument):
        Don't make a PDFDocument if we want to use an ImageDocument for this subframe PDF.

        * page/Settings.in:

        * platform/MIMETypeRegistry.cpp:
        (WebCore::MIMETypeRegistry::isPDFMIMEType):
        * platform/MIMETypeRegistry.h:
        Expose the already implemented pdfMIMETypes table just like all the rest.

2014-06-17  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed build fix with ENABLE_NOSNIFF after r170021

        * loader/cache/CachedScript.cpp:
        (WebCore::CachedScript::mimeTypeAllowedByNosniff):

2014-06-17  Jeremy Jones  <jeremyj@apple.com>

        Improve enter and exit fullscreen transition by using two step transition.
        https://bugs.webkit.org/show_bug.cgi?id=133706

        Reviewed by Simon Fraser.

        setupFullscreen, creates the fullscreen views ready to receive the video layer.
        Once they are in place, didSetupFullscreen will move the video layer into the 
        new view hierarchy and initiate enterFullscreen to animate.

        Reverse process for exit fullscreen.

        * WebCore.exp.in: Add exports.
        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        (-[WebVideoFullscreenController enterFullscreen:]):
        Refactor into didSetupFullscreen.
        (-[WebVideoFullscreenController didSetupFullscreen]):
        Move the video layer once fullscreen is ready to receive it.
        (-[WebVideoFullscreenController didExitFullscreen]):
        Move the video layer back into we the web page, and initiate cleanup.
        (-[WebVideoFullscreenController didCleanupFullscreen]):
        Refactord cleanup from didExitFullscreen.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: Add delcarations.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::setupFullscreen):
        Refactored from enterFullscreen. Builds views ready to receive video layer.
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
        Animates into fullscreen.
        (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
        Animates from fullscreen. Cleanup is refactored into cleanupFullscreen()
        (WebVideoFullscreenInterfaceAVKit::cleanupFullscreen):
        Refactored from exitFullscreen(), removes views.

2014-06-17  Sam Weinig  <sam@webkit.org>

        Remove unnecessary Structure flags from generated bindings
        https://bugs.webkit.org/show_bug.cgi?id=133992

        Reviewed by Daniel Bates.

        - Remove OverridesVisitChildren flag from DOM prototype objects. They never
          implement visitChildren.
        - Remove OverridesGetOwnPropertySlot and ImplementsHasInstance from DOM constructor
          objects. getOwnPropertySlot is never implemented and ImplementsHasInstance is inherited
          automatically from DOMConstructorObject.
        - If we are not changing any flags, we now don't emit StructureFlags at all for the class.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GeneratePrototypeDeclaration):
        (GenerateConstructorDeclaration):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        (WebCore::JSTestActiveDOMObjectPrototype::JSTestActiveDOMObjectPrototype):
        (WebCore::JSTestActiveDOMObjectConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        (WebCore::JSTestCustomNamedGetterPrototype::JSTestCustomNamedGetterPrototype):
        (WebCore::JSTestCustomNamedGetterConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        (WebCore::JSTestEventConstructorPrototype::JSTestEventConstructorPrototype):
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        (WebCore::JSTestEventTargetPrototype::JSTestEventTargetPrototype):
        (WebCore::JSTestEventTargetConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestException.h:
        (WebCore::JSTestExceptionPrototype::JSTestExceptionPrototype):
        (WebCore::JSTestExceptionConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
        (WebCore::JSTestGenerateIsReachablePrototype::JSTestGenerateIsReachablePrototype):
        (WebCore::JSTestGenerateIsReachableConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestInterface.h:
        (WebCore::JSTestInterfacePrototype::JSTestInterfacePrototype):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        (WebCore::JSTestMediaQueryListListenerPrototype::JSTestMediaQueryListListenerPrototype):
        (WebCore::JSTestMediaQueryListListenerConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        (WebCore::JSTestNamedConstructorPrototype::JSTestNamedConstructorPrototype):
        (WebCore::JSTestNamedConstructorConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestNode.h:
        (WebCore::JSTestNodePrototype::JSTestNodePrototype):
        * bindings/scripts/test/JS/JSTestNondeterministic.h:
        (WebCore::JSTestNondeterministicPrototype::JSTestNondeterministicPrototype):
        (WebCore::JSTestNondeterministicConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestObj.h:
        (WebCore::JSTestObjPrototype::JSTestObjPrototype):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
        (WebCore::JSTestOverloadedConstructorsPrototype::JSTestOverloadedConstructorsPrototype):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        (WebCore::JSTestSerializedScriptValueInterfacePrototype::JSTestSerializedScriptValueInterfacePrototype):
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::createStructure):
        * bindings/scripts/test/JS/JSTestTypedefs.h:
        (WebCore::JSTestTypedefsPrototype::JSTestTypedefsPrototype):
        * bindings/scripts/test/JS/JSattribute.h:
        (WebCore::JSattributePrototype::JSattributePrototype):
        (WebCore::JSattributeConstructor::createStructure):
        * bindings/scripts/test/JS/JSreadonly.h:
        (WebCore::JSreadonlyPrototype::JSreadonlyPrototype):
        (WebCore::JSreadonlyConstructor::createStructure):

2014-06-17  Myles C. Maxfield  <mmaxfield@apple.com>

        [iOS] Input type=time elements styled with SVG fonts have 0 width
        https://bugs.webkit.org/show_bug.cgi?id=133524

        Reviewed by Simon Fraser.

        Refactor how the LocalizedDateCache returns maximum widths for input elements. Currently,
        measuring the width of an SVG font requires a RenderObject for context, which the
        LocalizedDateCache can't know about (it would be a platform violation). Instead, the
        LocalizedDateCache can return the strings that it would use to measure the width, and the
        caller can actually run the width computation.

        Test: fast/forms/time-input-svg-font.html

        * platform/text/PlatformLocale.h:
        * platform/text/ios/LocalizedDateCache.h:
        * platform/text/ios/LocalizedDateCache.mm:
        (WebCore::LocalizedDateCache::maximumWidthForDateType): Take a delegate which can
        measure text
        (WebCore::LocalizedDateCache::calculateMaximumWidth): Perform maximum width
        computation using delegate.
        * platform/text/mac/LocaleMac.h:
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::formatDateTime):
        (WebCore::LocaleMac::maximumWidthForDateType): Deleted. Short-circuit this and go
        directly to the LocalizedDateCache. This makes sense because we have to explicitly
        insert computed values back into the cache in this new model.
        * rendering/RenderThemeIOS.mm:
        (WebCore::adjustInputElementButtonStyle): Create a delegate and pass it to the
        LocalizedDateCache

2014-06-17  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] fix reflections on composited layers
        https://bugs.webkit.org/show_bug.cgi?id=133942

        Reviewed by Tim Horton.

        Fix reflections on composited layers. There are two main set of changes.
        
        First, a PlatformCALayerRemote which is a clone has to track the layer
        it is a clone of, so it knows where to grab the contents from in the UI process.
        This layer may be told that its contents need updating out of order during
        recursiveBuildTransaction(), so we need some small changes in RemoteLayerTreeContext
        to allow a layer to add itself to the set of layers requiring commit.
        
        In the UI process, a new step is added to RemoteLayerTreeHost::updateLayerTree()
        to go through clones, and copy their contents from the origin layer.
        
        The second set of changes makes platformCALayerLayerDidDisplay() work for
        UI-side compositing by not taking a PlatformLayer*, but instead a PlatformCALayer*.
        PlatformCALayer::setContentsChanged() changed to copyContentsFromLayer() so we know
        what the origin layer is.

        Test: compositing/reflections/repaint-with-reflection.html

        * WebCore.exp.in:
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::layerDidDisplay): Deleted.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::LayerClient::platformCALayerLayerDidDisplay): Deleted.
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::layerDidDisplay):
        (WebCore::GraphicsLayerCA::findOrMakeClone):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/PlatformCALayerClient.h:
        (WebCore::PlatformCALayerClient::platformCALayerLayerDidDisplay):
        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayerMac::copyContentsFromLayer):
        (PlatformCALayerMac::superlayer):
        (PlatformCALayerMac::setContentsChanged): Deleted.
        * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
        (PlatformCALayerWinInternal::displayCallback):
        * platform/graphics/mac/WebLayer.mm:
        (-[WebSimpleLayer display]):

2014-06-17  Anders Carlsson  <andersca@apple.com>

        Use strongly typed enums for AnimationState and AnimationInputState
        https://bugs.webkit.org/show_bug.cgi?id=133988

        Reviewed by Tim Horton.

        * page/animation/AnimationBase.cpp:
        (WebCore::AnimationBase::AnimationBase):
        (WebCore::nameForState):
        (WebCore::AnimationBase::updateStateMachine):
        (WebCore::AnimationBase::fireAnimationEventsIfNeeded):
        (WebCore::AnimationBase::updatePlayState):
        (WebCore::AnimationBase::timeToNextService):
        (WebCore::AnimationBase::goIntoEndingOrLoopingState):
        (WebCore::AnimationBase::freezeAtTime):
        (WebCore::AnimationBase::beginAnimationUpdateTime):
        * page/animation/AnimationBase.h:
        (WebCore::AnimationBase::clear):
        (WebCore::AnimationBase::onAnimationStartResponse):
        (WebCore::AnimationBase::waitingToStart):
        (WebCore::AnimationBase::preActive):
        (WebCore::AnimationBase::postActive):
        (WebCore::AnimationBase::fillingForwards):
        (WebCore::AnimationBase::paused):
        (WebCore::AnimationBase::inPausedState):
        (WebCore::AnimationBase::isNew):
        (WebCore::AnimationBase::waitingForStartTime):
        (WebCore::AnimationBase::waitingForStyleAvailable):
        (WebCore::AnimationBase::isAnimatingProperty):
        (WebCore::AnimationBase::styleAvailable):
        (WebCore::AnimationBase::compositeAnimation):
        * page/animation/ImplicitAnimation.cpp:
        (WebCore::ImplicitAnimation::onAnimationEnd):
        (WebCore::ImplicitAnimation::sendTransitionEvent):
        (WebCore::ImplicitAnimation::reset):
        (WebCore::ImplicitAnimation::setOverridden):
        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::KeyframeAnimation):
        (WebCore::KeyframeAnimation::animate):
        (WebCore::KeyframeAnimation::sendAnimationEvent):

2014-06-17  Andreas Kling  <akling@apple.com>

        Avoid synchronous layout in window.scrollTo(0,0) when already at (0,0)
        <https://webkit.org/b/133893>

        Going from 0,0 to 0,0 is a no-op since there is no way a layout will
        affect the current scroll position.

        We don't send scroll events when moving to the previous position,
        so this change is not observable.

        Reviewed by Anders Carlsson.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::scrollTo):

2014-06-17  Alex Christensen  <achristensen@webkit.org>

        Fix css jit register usage on armv7.
        https://bugs.webkit.org/show_bug.cgi?id=133952

        Reviewed by Benjamin Poulain.

        * cssjit/RegisterAllocator.h:
        List r7 as a callee saved register, which it is.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
        Save r6, which is used as a temporary register and must be preserved.

2014-06-17  Miyoung Shin  <myid.shin@samsung.com>

        Use references instead of pointers to RenderBlock in enclosingBoxModelObject()
        https://bugs.webkit.org/show_bug.cgi?id=133978

        Reviewed by Andreas Kling.

        Just a straightforward conversion from pointers to references.

        No new tests, no behavior change.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::paint):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintObject):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::enclosingBoxModelObject):
        * rendering/RenderObject.h:

2014-06-17  Zan Dobersek  <zdobersek@igalia.com>

        Cache the gst_query_get_n_buffering_ranges() return value for the for-loop conditional
        https://bugs.webkit.org/show_bug.cgi?id=133953

        Reviewed by Philippe Normand.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::buffered): Avoid the extra call in the for-loop
        conditional expression by caching the return value of gst_query_get_n_buffering_ranges().

2014-06-17  Zan Dobersek  <zdobersek@igalia.com>

        Avoid Vector<char> copies in the OffsetBuffer constructor
        https://bugs.webkit.org/show_bug.cgi?id=133956

        Reviewed by Andreas Kling.

        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::OffsetBuffer::OffsetBuffer): Take the Vector parameter by value and
        move it into the member variable.
        (WebCore::openFunc): Move the Vector object into the OffsetBuffer constructor.

2014-06-17  Jer Noble  <jer.noble@apple.com>

        [MSE] Overwritten samples are removed from buffered ranges using decode times; added samples using presentation times
        https://bugs.webkit.org/show_bug.cgi?id=133959

        Reviewed by Eric Carlson.

        Test: media/media-source/media-source-overlapping-append-buffered.html

        Explicitly call presentationTime() on removed samples, rather than implicitly asking for the iterator's "first"
        member. When iterating over samples, "first" can either be presentation time, or decode time, depending on which
        iteration method is called. In the case of removing samples, this was using the decode time incorrectly.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

2014-06-16  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Region with border radius and overflow:hidden does not clip content
        https://bugs.webkit.org/show_bug.cgi?id=133476

        Reviewed by Andrei Bucur.

        When setting the clip before painting the named flow content,
        use the region's foreground rect to take the region's border radius
        into account if needed.

        Test: fast/regions/region-border-radius-overflow-clip.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintFlowThreadIfRegionForFragments):

2014-06-16  Sam Weinig  <sam@webkit.org>

        Extract prototype declaration generation into a helper function
        https://bugs.webkit.org/show_bug.cgi?id=133969

        Reviewed by Dan Bernstein.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GeneratePrototypeDeclaration):

2014-06-16  Sam Weinig  <sam@webkit.org>

        Move forward declaration of bindings static functions into their implementation files
        https://bugs.webkit.org/show_bug.cgi?id=133943

        Reviewed by Geoffrey Garen.

        - Moves the forward declaration of static functions for generated files to the implementation.
        - Adds a new extended attribute, ForwardDeclareInHeader, for functions that still need a 
          forward declaration in the header.

        * bindings/js/JSDOMBinding.h:
        (WebCore::nonCachingStaticFunctionGetter):
        Move this helper here from JSDOMWindowCustom.cpp.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        Switch to comparing the property name directly rather than looking up in the static table and
        comparing function pointers.

        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::getOwnPropertySlotDelegate):
        Switch to comparing the property name directly rather than looking up in the static table and
        comparing function pointers and start using the nonCachingStaticFunctionGetter<> helper.

        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getOwnPropertySlotDelegate):
        (WebCore::JSLocation::putDelegate):
        Switch to comparing the property name directly rather than looking up in the static table and
        comparing function pointers and start using the nonCachingStaticFunctionGetter<> helper.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):
        Move forward declaration creation to the implementation file where possible.

        * bindings/scripts/IDLAttributes.txt:
        Add ForwardDeclareInHeader.

        * page/DOMWindow.idl:
        * page/History.idl:
        * page/Location.idl:
        Add ForwardDeclareInHeader where necessary.

2014-06-16  Jaehun Lim  <ljaehun.lim@samsung.com>

        Unreviewed build fix after r170029

        Use String() instead of AtomicString().

        * platform/network/HTTPParsers.cpp:
        (WebCore::parseHTTPHeader):
        * platform/network/soup/ResourceRequestSoup.cpp:
        (WebCore::ResourceRequest::updateSoupMessageHeaders):
        * platform/network/soup/ResourceResponseSoup.cpp:
        (WebCore::ResourceResponse::toSoupMessage):

2014-06-16  Brent Fulgham  <bfulgham@apple.com>

        [Win] Use TileController on Windows
        https://bugs.webkit.org/show_bug.cgi?id=133895

        Reviewed by Tim Horton.

        * WebCore.vcxproj/WebCore.vcxproj: Add Tiled Drawing files.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * platform/graphics/TiledBacking.h: No longer Cocoa-only.
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer): Windows
        now uses the same layer type as Mac.
        * platform/graphics/ca/LayerPool.cpp:
        (WebCore::LayerPool::takeLayerWithSize): Use nullptr
        rather than nil for C++ code.
        * platform/graphics/ca/PlatformCALayer.cpp:
        * platform/graphics/ca/PlatformCALayer.h: Expose necessary
        drawing functions for Windows port.
        * platform/graphics/ca/TileController.cpp: Remove unneeded
        header include for WebLayer.
        * platform/graphics/ca/TileCoverageMap.cpp: Correct #includes.
        * platform/graphics/ca/TileGrid.h: Not just for Cococa.
        * platform/graphics/ca/mac/PlatformCALayerMac.mm: Remove
        extra whitespace.
        * platform/graphics/ca/mac/PlatformCALayerMac.h: Remove
        unneeded overload.
        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
        (PlatformCALayer::collectRectsToPaint): Added stub.
        (PlatformCALayer::drawLayerContents): Added.
        (PlatformCALayer::frameForLayer): Added.
        (PlatformCALayerWin::PlatformCALayerWin): Remove unneeded
        assert now that we support these types. Add TileController
        support.
        (PlatformCALayerWin::setEdgeAntialiasingMask): Added.
        (printLayer): Add newly-supported tile types.
        (PlatformCALayerWin::tiledBacking): Added.
        * platform/graphics/ca/win/PlatformCALayerWin.h: Update to
        support Tiled Drawing.
        * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
        (PlatformCALayerWinInternal::PlatformCALayerWinInternal): Update to
        recognize newly-supported layer types.
        (PlatformCALayerWinInternal::setNeedsDisplay): Ditto.
        (PlatformCALayerWinInternal::setSublayers): Ditto.
        (PlatformCALayerWinInternal::getSublayers): Ditto.
        (PlatformCALayerWinInternal::removeAllSublayers): Ditto.
        (PlatformCALayerWinInternal::insertSublayer): Ditto.
        (PlatformCALayerWinInternal::sublayerCount): Ditto.
        (PlatformCALayerWinInternal::indexOfSublayer): Ditto.
        (PlatformCALayerWinInternal::sublayerAtIndex): Ditto.
        (PlatformCALayerWinInternal::setBounds): Ditto.
        (PlatformCALayerWinInternal::setFrame): Ditto.
        (PlatformCALayerWinInternal::drawTile): Ditto.
        (PlatformCALayerWinInternal::createTileController): Ditto.
        (PlatformCALayerWinInternal::tiledBacking): Ditto.
        * platform/graphics/ca/win/PlatformCALayerWinInternal.h: Update to use
        TileController.

2014-06-16  Andreas Kling  <akling@apple.com>

        Remove unnecessary style invalidation in RenderTextControl::styleDidChange().
        <https://webkit.org/b/133949>

        This explicit invalidation of the text control's inner text element
        was hacked in to fix an editing test back in 2011, long before lazy
        render tree construction.

        It should be safe to remove, since doing so doesn't affect any tests.

        Reviewed by Antti Koivisto.

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::styleDidChange):

2014-06-16  Anders Carlsson  <andersca@apple.com>

        Fix iOS build.

        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::setHeaderFields):

2014-06-16  Anders Carlsson  <andersca@apple.com>

        Accept-Ranges is not specific to GStreamer.

        * platform/network/HTTPHeaderNames.in:

2014-06-16  Anders Carlsson  <andersca@apple.com>

        Don't use AtomicString in HTTPHeaderMap
        https://bugs.webkit.org/show_bug.cgi?id=133957
        <rdar://problem/15256572>

        Reviewed by Andreas Kling.

        Use the string data that comes from the generated HTTPHeaderNames.cpp file
        for sharing header name data instead. In the future we can do something more fancy where
        we'll hash the HTTPHeaderName enum directly, but this is good enough for now.

        * Modules/websockets/WebSocketHandshake.cpp:
        (WebCore::WebSocketHandshake::readHTTPHeaders):
        * WebCore.exp.in:
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::buildObjectForHeaders):
        * loader/CrossOriginPreflightResultCache.cpp:
        (WebCore::CrossOriginPreflightResultCacheItem::allowsCrossOriginHeaders):
        * loader/appcache/ApplicationCacheStorage.cpp:
        (WebCore::parseHeader):
        * loader/cache/CachedResource.cpp:
        (WebCore::shouldUpdateHeaderAfterRevalidation):
        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::copyData):
        (WebCore::internHTTPHeaderNameString):
        (WebCore::HTTPHeaderMap::get):
        (WebCore::HTTPHeaderMap::set):
        (WebCore::HTTPHeaderMap::add):
        (WebCore::CaseFoldingCStringTranslator::hash): Deleted.
        (WebCore::CaseFoldingCStringTranslator::equal): Deleted.
        (WebCore::CaseFoldingCStringTranslator::translate): Deleted.
        * platform/network/HTTPHeaderMap.h:
        * platform/network/HTTPHeaderNames.in:
        * platform/network/HTTPParsers.cpp:
        (WebCore::parseHTTPHeader):
        * platform/network/HTTPParsers.h:
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::httpHeaderField):
        (WebCore::ResourceRequestBase::setHTTPHeaderField):
        (WebCore::ResourceRequestBase::addHTTPHeaderField):
        * platform/network/ResourceRequestBase.h:
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::httpHeaderField):
        (WebCore::ResourceResponseBase::setHTTPHeaderField):
        (WebCore::ResourceResponseBase::addHTTPHeaderField):
        * platform/network/ResourceResponseBase.h:
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::platformLazyInit):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::setRequestHeader):
        (WebCore::XMLHttpRequest::setRequestHeaderInternal):
        (WebCore::XMLHttpRequest::getRequestHeader):
        (WebCore::XMLHttpRequest::getResponseHeader):
        * xml/XMLHttpRequest.h:

2014-06-16  Chris Fleizach  <cfleizach@apple.com>

        AX: Safari crashed once in WebCore::AccessibilityObject::ariaIsHidden
        https://bugs.webkit.org/show_bug.cgi?id=133825

        Reviewed by Enrica Casucci.

        Sometimes asking accessibilityIsIgnored() will cause a newObject to be detached immediately after its created. 
        The creation function holds a reference with RefPtr as long as it lives, but when that method returns, the object goes away.

        With that out of the way, I saw the same backtrace lead to updateLayoutIgnorePendingStylesheets being called while still inLayout.

        I tried my best but could not create a reproducible layout test.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::updateBackingStore):

2014-06-16  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Add more GStreamer-specific header names that are required
        after changes in r170021, fixing the build for ports using GStreamer.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (StreamingClient::handleResponseReceived):
        * platform/network/HTTPHeaderNames.in:

2014-06-16  Chris Fleizach  <cfleizach@apple.com>

        AX: Crash at WebCore::AXObjectCache::textChanged
        https://bugs.webkit.org/show_bug.cgi?id=133873

        Reviewed by Enrica Casucci.

        This looks like a very similar problem to 
        https://bugs.webkit.org/show_bug.cgi?id=133825

        The object is being created and deallocated almost right away because calling accessibilityIsIgnored triggers
        a deferred layout that invalidates the associated render element.

        Despite my best efforts, I could not come up with a way to reproduce this in a layout test.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):

2014-06-15  Anders Carlsson  <andersca@apple.com>

        Change ResourceRequestBase::addHTTPHeaderFields to setHTTPHeaderFields instead
        https://bugs.webkit.org/show_bug.cgi?id=133925

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::setHTTPHeaderFields):
        (WebCore::ResourceRequestBase::addHTTPHeaderFields): Deleted.
        * platform/network/ResourceRequestBase.h:
        * plugins/PluginView.cpp:
        (WebCore::PluginView::handlePost):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::createRequest):

2014-06-16  Jeongeun Kim  <je_julie.kim@samsung.com>

        Use references instead of pointers to RenderBlock in RenderObject::enclosingBox().
        https://bugs.webkit.org/show_bug.cgi?id=133902

        Reviewed by Andreas Kling.

        Just a straightforward conversion from pointers to references.

        No new tests, no behavior change.

        * bindings/objc/DOMUIKitExtensions.mm:
        (-[DOMHTMLElement structuralComplexityContribution]):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForRendererFragments):
        * page/EventHandler.cpp:
        (WebCore::scrollNode):
        (WebCore::EventHandler::scrollOverflow):
        (WebCore::EventHandler::logicalScrollOverflow):
        * page/FrameView.cpp:
        (WebCore::FrameView::layout):
        * rendering/RenderBox.cpp:
        (WebCore::computeInlineStaticDistance):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::computedRegionRangeForBox):
        (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion):
        (WebCore::RenderFlowThread::objectInFlowRegion):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::enclosingBox): Removed FIXME comment
        * rendering/RenderObject.h:
        * rendering/RenderScrollbar.cpp:
        (WebCore::RenderScrollbar::owningRenderer):

2014-06-16  Anders Carlsson  <andersca@apple.com>

        Use HTTPHeaderName in more places
        https://bugs.webkit.org/show_bug.cgi?id=133948

        Reviewed by Andreas Kling.

        * loader/cache/CachedRawResource.cpp:
        (WebCore::shouldIgnoreHeaderForCacheReuse):
        * platform/network/HTTPHeaderNames.in:
        * xml/XMLHttpRequest.cpp:
        (WebCore::isSetCookieHeader):
        (WebCore::isForbiddenRequestHeader):
        (WebCore::XMLHttpRequest::isAllowedHTTPHeader):
        (WebCore::XMLHttpRequestStaticData::XMLHttpRequestStaticData): Deleted.
        (WebCore::staticData): Deleted.

2014-06-16  Anders Carlsson  <andersca@apple.com>

        Add HTTPHeaderName overloads on ResourceResponseBase
        https://bugs.webkit.org/show_bug.cgi?id=133946

        Reviewed by Andreas Kling.

        * WebCore.exp.in:
        * dom/Document.cpp:
        (WebCore::Document::lastModified):
        * loader/CrossOriginAccessControl.cpp:
        (WebCore::passesAccessControlCheck):
        * loader/CrossOriginPreflightResultCache.cpp:
        (WebCore::CrossOriginPreflightResultCacheItem::parse):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::receivedFirstData):
        (WebCore::FrameLoader::didBeginDocument):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::createResourceHandle):
        * loader/cache/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::canUseSheet):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::load):
        * loader/cache/CachedScript.cpp:
        (WebCore::CachedScript::mimeType):
        * platform/network/HTTPHeaderNames.in:
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::httpHeaderField):
        (WebCore::ResourceResponseBase::setHTTPHeaderField):
        * platform/network/ResourceResponseBase.h:
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::getAllResponseHeaders):
        (WebCore::XMLHttpRequest::getResponseHeader):
        (WebCore::XMLHttpRequest::responseMIMEType):
        (WebCore::XMLHttpRequest::didReceiveResponse):

2014-04-05  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        [Bindings] "nullable" sequence support is incomplete (i.e. sequence<NativeType>?)
        https://bugs.webkit.org/show_bug.cgi?id=131240

        Reviewed by Darin Adler.

        Nullable sequences are not fully supported in WebKit's
        code generator machinery. Although the generated code
        does add "is nullable" check to the evaluation condition
        (i.e. if (arg.isNull() || ...)), when the JSValue
        that holds a "null" JSObject is actually to be "converted"
        to a native Vector<T>, it fails.

        The reason for the failure is in JSDOMBindings::toNativeArray.
        This method verifies that JSValue does not hold a "non-null"
        object, and it bails out.
        Analogly, the "ref ptr" variant of this method (toRefPtrNativeArray)
        does support nullables.

        Patch fixes it be checking for a "null" JSValue check before hand.

        Tests: Binding tests updated.

        * bindings/js/JSDOMBinding.h:
        (WebCore::toNativeArray):
        * bindings/scripts/CodeGeneratorJS.pm:
        (JSValueToNative):
        * Modules/websocket/WebSocket.idl:
        Removed one overload ctor now that
        we can use nullable sequences.

2014-06-16  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Occasional image corruption after seeking
        https://bugs.webkit.org/show_bug.cgi?id=133879

        Reviewed by Eric Carlson.

        Change the order of operations for seeks: change the current time of the AVSampleBufferRenderSynchronizer
        before flushing and appending non-displaying samples.

        Rather than having a single function which retrieves the fast seek time and then seeks, split this out
        into two functions: one which gets the fast seek time, and one which seeks. (The later of course already
        exists: seekToTime()).

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::MediaPlayerPrivateMediaSourceAVFObjC):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
        (WebCore::MediaSourcePrivateAVFObjC::fastSeekTimeForMediaTime): Renamed from seekToTime()
        (WebCore::MediaSourcePrivateAVFObjC::seekToTime): Deleted.

2014-06-16  Zan Dobersek  <zdobersek@igalia.com>

        Have ScriptExecutionContext::Task functions take in a ScriptExecutionContext reference
        https://bugs.webkit.org/show_bug.cgi?id=133795

        Reviewed by Andreas Kling.

        The pointer to the ScriptExecutionContext object that is passed to the C++11 lambdas or
        helper functions wrapped in ScriptExecutionContext::Task is never null, so that parameter
        should be a reference instead.

        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::~Database):
        (WebCore::Database::runTransaction):
        (WebCore::Database::scheduleTransactionCallback):
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::openDatabase):
        * Modules/webdatabase/SQLCallbackWrapper.h:
        (WebCore::SQLCallbackWrapper::clear):
        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
        (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasksCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::processPendingTasks): Dereference the
        member variable that holds a never-null pointer to the ScriptExecutionContext. This should
        similarly be a reference.
        (WebCore::ThreadableWebSocketChannelClientWrapper::didConnectCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveBinaryDataCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didUpdateBufferedAmountCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didStartClosingHandshakeCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didCloseCallback):
        (WebCore::ThreadableWebSocketChannelClientWrapper::didReceiveMessageErrorCallback):
        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
        (WebCore::workerGlobalScopeDidSend):
        (WebCore::workerGlobalScopeDidGetBufferedAmount):
        (WebCore::workerGlobalScopeDidConnect):
        (WebCore::workerGlobalScopeDidReceiveMessage):
        (WebCore::workerGlobalScopeDidReceiveBinaryData):
        (WebCore::workerGlobalScopeDidUpdateBufferedAmount):
        (WebCore::workerGlobalScopeDidStartClosingHandshake):
        (WebCore::workerGlobalScopeDidClose):
        (WebCore::workerGlobalScopeDidReceiveMessageError):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadConnect):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSend):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSendArrayBuffer):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSendBlob):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadBufferedAmount):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadClose):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadFail):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSuspend):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadResume):
        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
        * bindings/js/JSCallbackData.h:
        (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
        * bindings/js/JSDOMGlobalObjectTask.cpp:
        (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
        * dom/Document.cpp:
        (WebCore::Document::postTask):
        (WebCore::Document::pendingTasksTimerFired):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
        * dom/ScriptExecutionContext.h:
        (WebCore::ScriptExecutionContext::Task::performTask):
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
        * dom/StringCallback.cpp:
        (WebCore::StringCallback::scheduleCallback):
        * fileapi/FileReader.cpp:
        (WebCore::delayedAbort):
        (WebCore::FileReader::abort):
        (WebCore::FileReader::doAbort): Deleted.
        * loader/WorkerThreadableLoader.cpp:
        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadDestroy):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCancel):
        (WebCore::workerGlobalScopeDidSendData):
        (WebCore::workerGlobalScopeDidReceiveResponse):
        (WebCore::workerGlobalScopeDidReceiveData):
        (WebCore::workerGlobalScopeDidFinishLoading):
        (WebCore::workerGlobalScopeDidFail):
        (WebCore::workerGlobalScopeDidFailAccessControlCheck):
        (WebCore::workerGlobalScopeDidFailRedirectCheck):
        * loader/WorkerThreadableLoader.h:
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::postListenerTask):
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::crossThreadRemoveRequestFromCache):
        (WebCore::MemoryCache::crossThreadRemoveRequestFromSessionCaches):
        * loader/cache/MemoryCache.h:
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::postExceptionToWorkerObject):
        (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
        (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
        * workers/WorkerEventQueue.cpp:
        (WebCore::WorkerEventQueue::enqueueEvent):
        * workers/WorkerGlobalScope.cpp:
        (WebCore::WorkerGlobalScope::close):
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
        (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
        (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
        (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
        (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
        (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
        (WebCore::WorkerMessagingProxy::connectToInspector):
        (WebCore::WorkerMessagingProxy::disconnectFromInspector):
        (WebCore::WorkerMessagingProxy::sendMessageToInspector):
        (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
        (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
        (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
        (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
        (WebCore::WorkerMessagingProxy::reportPendingActivity):
        * workers/WorkerRunLoop.cpp:
        (WebCore::WorkerRunLoop::Task::performTask):
        * workers/WorkerScriptLoader.cpp:
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::stop):
        (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):

2014-06-16  Zan Dobersek  <zdobersek@igalia.com>

        Page::findStringMatchingRanges() should take Vector<RefPtr<Range>> by reference instead of pointer
        https://bugs.webkit.org/show_bug.cgi?id=133677

        Reviewed by Anders Carlsson.

        * WebCore.exp.in: Update the changed symbol.
        * page/Page.cpp:
        (WebCore::Page::findStringMatchingRanges): The method expects the matchRanges parameter to be non-null,
        so it should take in that parameter by reference instead of pointer.
        * page/Page.h:

2014-06-16  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r168046): Incorrect layout for multicol spanners when moving from one thread to another
        https://bugs.webkit.org/show_bug.cgi?id=133589

        Reviewed by Antti Koivisto.

        When a spanner is moved from a multicol thread to another, its placeholder
        must be properly repositioned.

        Test: fast/multicol/newmulticol/spanner-crash.html

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):

2014-06-16  Mario Sanchez Prada  <mario.prada@samsung.com>

        [ATK] Missing 'selection-changed' signal when navigating a combo box with keyboard
        https://bugs.webkit.org/show_bug.cgi?id=133512

        Reviewed by Chris Fleizach.

        Make sure that AccessibilityMenuList objects update their active
        option when it changes, which will send a platform-dependent
        accessibility-related notification when needed.

        Test: accessibility/combo-box-collapsed-selection-changed.html

        * rendering/RenderMenuList.cpp:
        (RenderMenuList::didUpdateActiveOption): Keep the out-of-bounds
        check for the index passed but don't avoid updating the option for
        the associated AccessibilityMenuList object if the selected list
        item does not have a renderer, because that could be the case for
        cases where the popup (and its elements) would be rendered in the
        UI Process (e.g. GTK+ port uses GtkMenu and GtkMenuItem for that).

        * accessibility/AccessibilityMenuList.cpp:
        (WebCore::AccessibilityMenuList::didUpdateActiveOption): Ensure
        that the AccessibilityMenuListPopup object for a given menu list
        has accessibility children before updating its active option.

2014-06-16  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r170003.
        https://bugs.webkit.org/show_bug.cgi?id=133938

        This patch broke GTK build (Requested by kczech on #webkit).

        Reverted changeset:

        "[EFL] Platform support for WebSpeech feature."
        https://bugs.webkit.org/show_bug.cgi?id=116438
        http://trac.webkit.org/changeset/170003

2014-06-16  Frédéric Wang  <fred.wang@free.fr>

        Draw radicals with glyphs for better rendering.
        https://bugs.webkit.org/show_bug.cgi?id=119038

        Unreviewed ASSERT fix.

        * rendering/mathml/RenderMathMLRoot.h:

2014-06-16  Frédéric Wang  <fred.wang@free.fr>

        Draw radicals with glyphs for better rendering
        https://bugs.webkit.org/show_bug.cgi?id=119038

        Reviewed by Chris Fleizach.

        We rewrite RenderMathMLRoot in order to fix bugs with SVG transforms and dynamic modification of children and allow drawing with an OpenType MATH table.
        The drawing of the radical sign (without the top bar) is now moved to a RenderMathMLRadicalOperator class inheriting from RenderMathMLOperator.
        This class fallbacks to the original drawing with graphic primitives if an OpenType MATH table is not available.

        Tests: mathml/opentype/roots-LatinModern.html
               mathml/presentation/mroot-transform.html

        * CMakeLists.txt: add files to build system.
        * WebCore.vcxproj/WebCore.vcxproj: ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
        * WebCore.xcodeproj/project.pbxproj: ditto
        * css/mathml.css: remove rules for msqrt/mroot. The "script level" in mroot is not incremented by 2 as specified in the spec.
        (math, mrow, mfenced, merror, mphantom, mstyle, menclose):
        (mroot > *:last-child):
        (math, mrow, mfenced, msqrt, mroot, merror, mphantom, mstyle, menclose): Deleted.
        (msqrt > *): Deleted.
        (mroot): Deleted. This rule was causing bug 126516.
        (mroot > * + *): Deleted.
        * rendering/RenderObject.h: Add two new isRenderMathML* functions for dynamic casting.
        (WebCore::RenderObject::isRenderMathMLRadicalOperator):
        (WebCore::RenderObject::isRenderMathMLRootWrapper):
        * rendering/mathml/RenderMathMLOperator.cpp: Accept a set of operator dictionary flags, all disabled by default. This is to allow anonymous radicas, which don't have any flag.
        isFencedOperator() is now replaced with the more general isAnonymous() since we allow anonymous radical operator fors msqrt/mroot.
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
        (WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
        (WebCore::RenderMathMLOperator::SetOperatorProperties):
        (WebCore::RenderMathMLOperator::updateTokenContent):
        * rendering/mathml/RenderMathMLOperator.h: Allow class to be overriden, redefine the anonymous constructor, remove isFencedOperator().
        * rendering/mathml/RenderMathMLRadicalOperator.cpp: Added.
        (WebCore::RenderMathMLRadicalOperator::RenderMathMLRadicalOperator):
        (WebCore::RenderMathMLRadicalOperator::stretchTo):
        (WebCore::RenderMathMLRadicalOperator::SetOperatorProperties):
        (WebCore::RenderMathMLRadicalOperator::computePreferredLogicalWidths):
        (WebCore::RenderMathMLRadicalOperator::computeLogicalHeight):
        (WebCore::RenderMathMLRadicalOperator::paint):
        (WebCore::RenderMathMLRadicalOperator::trailingSpaceError):
        * rendering/mathml/RenderMathMLRadicalOperator.h: Added.
        * rendering/mathml/RenderMathMLRoot.cpp: Rewritten. Some parts to use graphic primitives are moved to RenderMathMLRadicalOperator.cpp.
        (WebCore::RenderMathMLRoot::RenderMathMLRoot):
        (WebCore::RenderMathMLRoot::baseWrapper):
        (WebCore::RenderMathMLRoot::radicalWrapper):
        (WebCore::RenderMathMLRoot::indexWrapper):
        (WebCore::RenderMathMLRoot::radicalOperator):
        (WebCore::RenderMathMLRoot::restructureWrappers):
        (WebCore::RenderMathMLRoot::addChild):
        (WebCore::RenderMathMLRoot::styleDidChange):
        (WebCore::RenderMathMLRoot::updateFromElement):
        (WebCore::RenderMathMLRoot::updateStyle):
        (WebCore::RenderMathMLRoot::firstLineBaseline):
        (WebCore::RenderMathMLRoot::layout):
        (WebCore::RenderMathMLRoot::paint):
        (WebCore::RenderMathMLRootWrapper::createAnonymousWrapper):
        (WebCore::RenderMathMLRootWrapper::removeChildWithoutRestructuring):
        (WebCore::RenderMathMLRootWrapper::removeChild):
        (WebCore::RenderMathMLRoot::paddingTop): Deleted.
        (WebCore::RenderMathMLRoot::paddingBottom): Deleted.
        (WebCore::RenderMathMLRoot::paddingLeft): Deleted.
        (WebCore::RenderMathMLRoot::paddingRight): Deleted.
        (WebCore::RenderMathMLRoot::paddingBefore): Deleted.
        (WebCore::RenderMathMLRoot::paddingAfter): Deleted.
        (WebCore::RenderMathMLRoot::paddingStart): Deleted.
        (WebCore::RenderMathMLRoot::paddingEnd): Deleted.
        (WebCore::RenderMathMLRoot::index): Deleted.
        * rendering/mathml/RenderMathMLRoot.h: Rewritten.
        (WebCore::RenderMathMLRootWrapper::RenderMathMLRootWrapper):

2014-06-16  Krzysztof Czech  <k.czech@samsung.com>

        [EFL] Platform support for WebSpeech feature.
        https://bugs.webkit.org/show_bug.cgi?id=116438

        Reviewed by Gyuyoung Kim.

        It's a first step of adding support for Speech Synthesis in EFL port.
        Just stub out required API and support for compilation.

        * CMakeLists.txt:
        * PlatformEfl.cmake:
        * platform/PlatformSpeechSynthesizer.h:
        * platform/efl/PlatformSpeechSynthesisProviderEfl.cpp: Added.
        (WebCore::PlatformSpeechSynthesisProviderEfl::PlatformSpeechSynthesisProviderEfl):
        (WebCore::PlatformSpeechSynthesisProviderEfl::~PlatformSpeechSynthesisProviderEfl):
        (WebCore::PlatformSpeechSynthesisProviderEfl::initializeVoiceList):
        (WebCore::PlatformSpeechSynthesisProviderEfl::pause):
        (WebCore::PlatformSpeechSynthesisProviderEfl::resume):
        (WebCore::PlatformSpeechSynthesisProviderEfl::speak):
        (WebCore::PlatformSpeechSynthesisProviderEfl::cancel):
        * platform/efl/PlatformSpeechSynthesisProviderEfl.h: Added.
        * platform/efl/PlatformSpeechSynthesizerEfl.cpp: Added.
        (WebCore::PlatformSpeechSynthesizer::PlatformSpeechSynthesizer):
        (WebCore::PlatformSpeechSynthesizer::~PlatformSpeechSynthesizer):
        (WebCore::PlatformSpeechSynthesizer::initializeVoiceList):
        (WebCore::PlatformSpeechSynthesizer::pause):
        (WebCore::PlatformSpeechSynthesizer::resume):
        (WebCore::PlatformSpeechSynthesizer::speak):
        (WebCore::PlatformSpeechSynthesizer::cancel):

2014-06-15  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: add support for the :lang() pseudo class
        https://bugs.webkit.org/show_bug.cgi?id=133913

        Reviewed by Andreas Kling.

        The selector is already very expensive to begin with, just implement it with
        a function call.

        It is also done after every other filter since it is so inefficient.

        Tests: fast/selectors/lang-conflict.html
               fast/selectors/lang-empty.html
               fast/selectors/lang-specificity-xml.xhtml
               fast/selectors/lang-specificity.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorCheckerTestFunctions.h:
        (WebCore::matchesLangPseudoClass):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsInLanguage):
        * dom/Element.cpp:
        (WebCore::Element::computeInheritedLanguage):
        * dom/ElementData.cpp:
        (WebCore::ElementData::findLanguageAttribute):
        * dom/ElementData.h:

2014-06-15  Anders Carlsson  <andersca@apple.com>

        Add an autorelease() member function to RetainPtr
        https://bugs.webkit.org/show_bug.cgi?id=133929

        Reviewed by Dan Bernstein.

        * bindings/objc/DOM.mm:
        (-[DOMNode renderedImage]):
        (-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):
        * bindings/objc/DOMUIKitExtensions.mm:
        (-[DOMHTMLImageElement dataRepresentation:]):
        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willSendRequest:redirectResponse:]):
        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:willCacheResponse:]):

2014-06-14  Anders Carlsson  <andersca@apple.com>

        Adopt HTTPHeaderName in ResourceResponseBase
        https://bugs.webkit.org/show_bug.cgi?id=133919

        Reviewed by Sam Weinig.

        * platform/network/HTTPHeaderNames.in:
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::updateHeaderParsedState):
        (WebCore::ResourceResponseBase::setHTTPHeaderField):
        (WebCore::ResourceResponseBase::addHTTPHeaderField):
        (WebCore::ResourceResponseBase::parseCacheControlDirectives):
        (WebCore::ResourceResponseBase::hasCacheValidatorFields):
        (WebCore::parseDateValueInHeader):
        (WebCore::ResourceResponseBase::date):
        (WebCore::ResourceResponseBase::age):
        (WebCore::ResourceResponseBase::expires):
        (WebCore::ResourceResponseBase::lastModified):
        (WebCore::ResourceResponseBase::isAttachment):
        * platform/network/ResourceResponseBase.h:

2014-06-14  Anders Carlsson  <andersca@apple.com>

        Simplify ResourceRequest constructors
        https://bugs.webkit.org/show_bug.cgi?id=133911

        Reviewed by Sam Weinig.

        * platform/network/cf/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest):

2014-06-14  Benjamin Poulain  <benjamin@webkit.org>

        Fix the ARM64 build

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagsToElementStyleFromContext):

2014-06-13  Sam Weinig  <sam@webkit.org>

        Store DOM constants directly in the JS object rather than jumping through a custom accessor
        https://bugs.webkit.org/show_bug.cgi?id=133898

        Reviewed by Oliver Hunt.

        Instead of implementing constants as custom accessors that just happen to return a value,
        we now store the constant directly in the HashTableValue array (where the GetValueFunc used
        to be). 
        
        - For the case where the constant is accessed via the static table (still in use for instances 
          and some prototypes), the static lookup function will set the value on the property slot,
          instead of passing a function pointer.
        - For the case where the constant is eagerly reified (most prototypes and all constructors) the
          constant is put directly in the object.

        In micro benchmarks this looks to be around a 4x speedup on the use of DOM constants.

        This also removes support for constant strings in IDL, which we had no uses of.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        Remove code to generate forward declaration of constant accessor functions.

        (GenerateImplementation):
        Remove code to generate implementation of constant accessor functions.

        (GenerateHashTableValueArray):
        Plant the constant directly in the value array.

        * bindings/scripts/IDLParser.pm:
        (parseConstValue):
        Remove support for constant strings.

        * bindings/scripts/test/JS/JSTestInterface.cpp:
        * bindings/scripts/test/JS/JSTestInterface.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/TestObj.idl:
        Update test results.

2014-06-14  Anders Carlsson  <andersca@apple.com>

        Simplify Document::processHttpEquiv
        https://bugs.webkit.org/show_bug.cgi?id=133910

        Reviewed by Andreas Kling.

        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv):
        * platform/network/HTTPHeaderNames.in:

2014-06-14  Andreas Kling  <akling@apple.com>

        GCController should return FastMalloc memory to the system.
        <https://webkit.org/b/133884>

        Reviewed by Anders Carlsson.

        Speculative test fix; I'm kinda suspecting that some tests are reporting
        more memory used because we did a GC but didn't get around to returning
        free pages to the system yet.

        * bindings/js/GCController.cpp:
        (WebCore::GCController::garbageCollectNow):

2014-06-14  Zan Dobersek  <zdobersek@igalia.com>

        Generate HTTP header names that are required by WebKitWebSrc
        https://bugs.webkit.org/show_bug.cgi?id=133906

        Reviewed by Anders Carlsson.

        WebKitWebSrc implementation sets icy-metadata and transferMode.dlna HTTP headers
        on ResourceRequest objects. The two headers are added to HTTPHeaderNames.in, and
        a small tweak is added to the generator script to avoid the dot in the second
        header's name (which would otherwise generate invalid C++).

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcStart):
        * platform/network/HTTPHeaderNames.in:
        * platform/network/create-http-header-name-table:

2014-06-14  Anders Carlsson  <andersca@apple.com>

        Replace some uses of ResourceRequestBase::addHTTPHeaderField with setHTTPHeaderField
        https://bugs.webkit.org/show_bug.cgi?id=133907

        Reviewed by Andreas Kling.

        * Modules/websockets/WebSocketHandshake.cpp:
        (WebCore::WebSocketHandshake::clientHandshakeRequest):
        * platform/network/HTTPHeaderNames.in:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::applyBasicAuthorizationHeader):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::applyBasicAuthorizationHeader):

2014-06-13  Anders Carlsson  <andersca@apple.com>

        Add a ResourceRequestBase::setHTTPHeaderField overload that takes a HTTPHeaderName
        https://bugs.webkit.org/show_bug.cgi?id=133881

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * fileapi/FileReaderLoader.cpp:
        (WebCore::FileReaderLoader::start):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::willSendRequest):
        * loader/CrossOriginAccessControl.cpp:
        (WebCore::createAccessControlPreflightRequest):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::addExtraFieldsToRequest):
        * loader/PingLoader.cpp:
        (WebCore::PingLoader::loadImage):
        (WebCore::PingLoader::sendPing):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::createResourceHandle):
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::load):
        * page/EventSource.cpp:
        (WebCore::EventSource::connect):
        * platform/network/BlobResourceHandle.cpp:
        (WebCore::BlobResourceHandle::doStart):
        * platform/network/HTTPHeaderNames.in:
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::httpHeaderField):
        (WebCore::ResourceRequestBase::setHTTPHeaderField):
        (WebCore::ResourceRequestBase::httpContentType):
        (WebCore::ResourceRequestBase::setHTTPContentType):
        (WebCore::ResourceRequestBase::httpReferrer):
        (WebCore::ResourceRequestBase::setHTTPReferrer):
        (WebCore::ResourceRequestBase::httpOrigin):
        (WebCore::ResourceRequestBase::setHTTPOrigin):
        (WebCore::ResourceRequestBase::httpUserAgent):
        (WebCore::ResourceRequestBase::setHTTPUserAgent):
        (WebCore::ResourceRequestBase::httpAccept):
        (WebCore::ResourceRequestBase::setHTTPAccept):
        * platform/network/ResourceRequestBase.h:
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::willSendRequest):

2014-06-14  Simon Fraser  <simon.fraser@apple.com>

        Masks disappear when layers become tiled
        https://bugs.webkit.org/show_bug.cgi?id=133892
        <rdar://problem/17309793>

        Reviewed by Tim Horton.
        
        There were several problems with tiled mask layers.
        
        First, when a layer became tiled it failed to re-apply the platform layer
        for its mask; fixed by adding MaskLayerChanged to the set of flags in
        swapFromOrToTiledLayer().
        
        Secondly, in CA, a mask layer's superlayer is the layer which is it masking,
        so the if (oldLayer->superlayer())... code in swapFromOrToTiledLayer() would
        erroneously try to swap out a sublayer on the superlayer with the mask.
        
        Thirdly, the mask layer is updated after its host layer, but when the mask layer
        become tiled, there was no code that updated the mask platform layer on its
        host layer. Fix by:
            1. setting a bit on a layer to note that it's being used as a mask.
            2. setting the parent of such a layer to its host layer (mimicking CA)
            3. when the mask becomes tiled, dirtying the MaskLayerChanged bit on
               its parent and adding a clause to commitLayerChangesAfterSublayers()
               to update the mask layer.
        
        Finally, ASSERTION FAILED: owningGraphicsLayer()->isCommittingChanges() would
        fire because we failed to set the m_isCommittingChanges flag while committing
        the mask layer. Fix by moving the TemporaryChange<bool> that sets this flag
        into commitLayerChangesBeforeSublayers() and commitLayerChangesAfterSublayers().
        
        Also used safe casts in more places in GraphicsLayerCA.

        Tests: compositing/masks/become-tiled-mask.html
               compositing/masks/cease-tiled-mask.html
               compositing/masks/tiled-mask.html

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::GraphicsLayer):
        (WebCore::GraphicsLayer::removeFromParent):
        (WebCore::GraphicsLayer::setMaskLayer):
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::setIsMaskLayer):
        (WebCore::GraphicsLayer::isMaskLayer):
        (WebCore::GraphicsLayer::setMaskLayer): Deleted.
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::removeFromParent):
        (WebCore::GraphicsLayerCA::setMaskLayer):
        (WebCore::GraphicsLayerCA::recursiveVisibleRectChangeRequiresFlush):
        (WebCore::GraphicsLayerCA::recursiveCommitChanges):
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::commitLayerChangesAfterSublayers):
        (WebCore::GraphicsLayerCA::updateSublayerList):
        (WebCore::GraphicsLayerCA::ensureStructuralLayer):
        (WebCore::GraphicsLayerCA::updateMaskLayer):
        (WebCore::GraphicsLayerCA::replicatedLayerRoot):
        (WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
        (WebCore::GraphicsLayerCA::propagateLayerChangeToReplicas):
        (WebCore::GraphicsLayerCA::fetchCloneLayers):

2014-06-14  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Compile errors related to http headers.
        https://bugs.webkit.org/show_bug.cgi?id=133901

        Reviewed by Brent Fulgham.

        Http headers should now be specified with an enum, not a string.

        * platform/network/curl/CurlCacheEntry.cpp:
        (WebCore::CurlCacheEntry::parseResponseHeaders):
        * platform/network/curl/MultipartHandle.cpp:
        (WebCore::MultipartHandle::didReceiveResponse):

2014-06-14  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix after r169960.

        * platform/graphics/ca/PlatformCALayer.cpp: Add missing include
        for snprintf on Windows.

2014-06-14  Csaba Osztrogonác  <ossy@webkit.org>

        URTBF after r169943 and r169946.

        * platform/network/HTTPHeaderMap.h: Removed maybe accidental deletion of the only one add function.
        * platform/network/HTTPHeaderNames.in: Added Sec-WebSocket-Key.

2014-06-14  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169963.
        https://bugs.webkit.org/show_bug.cgi?id=133899

        Assertion in mathml/roots-removeChild.html (Requested by fredw
        on #webkit).

        Reverted changeset:

        "Draw radicals with glyphs for better rendering"
        https://bugs.webkit.org/show_bug.cgi?id=119038
        http://trac.webkit.org/changeset/169963

2014-06-14  Frédéric Wang  <fred.wang@free.fr>

        Draw radicals with glyphs for better rendering
        https://bugs.webkit.org/show_bug.cgi?id=119038

        Reviewed by Chris Fleizach.

        We rewrite RenderMathMLRoot in order to fix bugs with SVG transforms and dynamic modification of children and allow drawing with an OpenType MATH table.
        The drawing of the radical sign (without the top bar) is now moved to a RenderMathMLRadicalOperator class inheriting from RenderMathMLOperator.
        This class fallbacks to the original drawing with graphic primitives if an OpenType MATH table is not available.

        Tests: mathml/opentype/roots-LatinModern.html
               mathml/presentation/mroot-transform.html

        * CMakeLists.txt: add files to build system.
        * WebCore.vcxproj/WebCore.vcxproj: ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
        * WebCore.xcodeproj/project.pbxproj: ditto
        * css/mathml.css: remove rules for msqrt/mroot. The "script level" in mroot is not incremented by 2 as specified in the spec.
        (math, mrow, mfenced, merror, mphantom, mstyle, menclose):
        (mroot > *:last-child):
        (math, mrow, mfenced, msqrt, mroot, merror, mphantom, mstyle, menclose): Deleted.
        (msqrt > *): Deleted.
        (mroot): Deleted. This rule was causing bug 126516.
        (mroot > * + *): Deleted.
        * rendering/RenderObject.h: Add two new isRenderMathML* functions for dynamic casting.
        (WebCore::RenderObject::isRenderMathMLRadicalOperator):
        (WebCore::RenderObject::isRenderMathMLRootWrapper):
        * rendering/mathml/RenderMathMLOperator.cpp: Accept a set of operator dictionary flags, all disabled by default. This is to allow anonymous radicas, which don't have any flag.
        isFencedOperator() is now replaced with the more general isAnonymous() since we allow anonymous radical operator fors msqrt/mroot.
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
        (WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
        (WebCore::RenderMathMLOperator::SetOperatorProperties):
        (WebCore::RenderMathMLOperator::updateTokenContent):
        * rendering/mathml/RenderMathMLOperator.h: Allow class to be overriden, redefine the anonymous constructor, remove isFencedOperator().
        * rendering/mathml/RenderMathMLRadicalOperator.cpp: Added.
        (WebCore::RenderMathMLRadicalOperator::RenderMathMLRadicalOperator):
        (WebCore::RenderMathMLRadicalOperator::stretchTo):
        (WebCore::RenderMathMLRadicalOperator::SetOperatorProperties):
        (WebCore::RenderMathMLRadicalOperator::computePreferredLogicalWidths):
        (WebCore::RenderMathMLRadicalOperator::computeLogicalHeight):
        (WebCore::RenderMathMLRadicalOperator::paint):
        (WebCore::RenderMathMLRadicalOperator::trailingSpaceError):
        * rendering/mathml/RenderMathMLRadicalOperator.h: Added.
        * rendering/mathml/RenderMathMLRoot.cpp: Rewritten. Some parts to use graphic primitives are moved to RenderMathMLRadicalOperator.cpp.
        (WebCore::RenderMathMLRoot::RenderMathMLRoot):
        (WebCore::RenderMathMLRoot::baseWrapper):
        (WebCore::RenderMathMLRoot::radicalWrapper):
        (WebCore::RenderMathMLRoot::indexWrapper):
        (WebCore::RenderMathMLRoot::radicalOperator):
        (WebCore::RenderMathMLRoot::restructureWrappers):
        (WebCore::RenderMathMLRoot::addChild):
        (WebCore::RenderMathMLRoot::styleDidChange):
        (WebCore::RenderMathMLRoot::updateFromElement):
        (WebCore::RenderMathMLRoot::updateStyle):
        (WebCore::RenderMathMLRoot::firstLineBaseline):
        (WebCore::RenderMathMLRoot::layout):
        (WebCore::RenderMathMLRoot::paint):
        (WebCore::RenderMathMLRootWrapper::createAnonymousWrapper):
        (WebCore::RenderMathMLRootWrapper::removeChildWithoutRestructuring):
        (WebCore::RenderMathMLRootWrapper::removeChild):
        (WebCore::RenderMathMLRoot::paddingTop): Deleted.
        (WebCore::RenderMathMLRoot::paddingBottom): Deleted.
        (WebCore::RenderMathMLRoot::paddingLeft): Deleted.
        (WebCore::RenderMathMLRoot::paddingRight): Deleted.
        (WebCore::RenderMathMLRoot::paddingBefore): Deleted.
        (WebCore::RenderMathMLRoot::paddingAfter): Deleted.
        (WebCore::RenderMathMLRoot::paddingStart): Deleted.
        (WebCore::RenderMathMLRoot::paddingEnd): Deleted.
        (WebCore::RenderMathMLRoot::index): Deleted.
        * rendering/mathml/RenderMathMLRoot.h: Rewritten.
        (WebCore::RenderMathMLRootWrapper::RenderMathMLRootWrapper):

2014-06-13  Brent Fulgham  <bfulgham@apple.com>

        Move utility functions from WebLayer to PlatformCALayer
        https://bugs.webkit.org/show_bug.cgi?id=133887
        <rdar://problem/17309622>

        Reviewed by Simon Fraser.

        Move some utility functions from WebLayer.h/.mm to PlatformCALayer.
        Provide ObjC implementation in PlatformCALayerMac. A future patch will
        provide corresponding Windows versions.

        * WebCore.exp.in:
        * platform/graphics/ca/PlatformCALayer.cpp:
        (WebCore::PlatformCALayer::drawRepaintIndicator):
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/TileController.cpp:
        (WebCore::TileController::blankPixelCountForTiles):
        * platform/graphics/ca/TileGrid.cpp:
        (WebCore::TileGrid::platformCALayerPaintContents):
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayer::collectRectsToPaint):
        (PlatformCALayer::drawLayerContents):
        (PlatformCALayer::frameForLayer):
        * platform/graphics/mac/WebLayer.h:
        * platform/graphics/mac/WebLayer.mm:
        (-[WebLayer drawInContext:]):
        (WebCore::collectRectsToPaint): Deleted.
        (WebCore::drawLayerContents): Deleted.
        (WebCore::drawRepaintIndicator): Deleted.
        (WebCore::frameForLayer): Deleted.

2014-06-13  Alex Christensen  <achristensen@webkit.org>

        Unreviewed disabling css jit on armv7.  It's not quite ready yet.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
        Removed extra comma.

2014-06-13  Alex Christensen  <achristensen@webkit.org>

        Make css jit compile on armv7.
        https://bugs.webkit.org/show_bug.cgi?id=133889

        Reviewed by Benjamin Poulain.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::moduloHelper):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
        Implement modulo using a function call for now.

2014-06-13  Anders Carlsson  <andersca@apple.com>

        Use the callOnMainThread version that takes an std::function in BlobResourceHandle::start()
        https://bugs.webkit.org/show_bug.cgi?id=133886

        Reviewed by Andreas Kling.

        Also replace a couple of NSAutoreleasePools with @autoreleasepool and an OwnPtr with an std::unique_ptr.

        * page/scrolling/mac/ScrollingThreadMac.mm:
        (WebCore::ScrollingThread::threadRunLoopSourceCallback):
        * platform/mac/SharedTimerMac.mm:
        (WebCore::PowerObserver::PowerObserver):
        (WebCore::timerFired):
        (WebCore::setSharedTimerFireInterval):
        (WebCore::PowerObserver::create): Deleted.
        (WebCore::PowerObserver::didReceiveSystemPowerNotification): Deleted.
        * platform/network/BlobResourceHandle.cpp:
        (WebCore::BlobResourceHandle::start):
        (WebCore::delayedStartBlobResourceHandle): Deleted.
        * platform/network/BlobResourceHandle.h:

2014-06-12  Sam Weinig  <sam@webkit.org>

        Constructors should eagerly reify their properties too
        https://bugs.webkit.org/show_bug.cgi?id=133822

        Reviewed by Andreas Kling.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConstructorDeclaration):
        Constructors should never need to use the lazy property HashTable, so we can just
        remove its getOwnPropertySlot completely.

        (ConstructorHasProperties):
        Add helper to determine if we need to reify any properties.

        (GenerateConstructorHelperMethods):
        Reify if needed, and remove the implementation of getOwnPropertySlot.

        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        * bindings/scripts/test/JS/JSTestException.cpp:
        * bindings/scripts/test/JS/JSTestException.h:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        * bindings/scripts/test/JS/JSTestInterface.h:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        * bindings/scripts/test/JS/JSTestNode.cpp:
        * bindings/scripts/test/JS/JSTestNode.h:
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        * bindings/scripts/test/JS/JSTestNondeterministic.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        * bindings/scripts/test/JS/JSTestTypedefs.h:
        * bindings/scripts/test/JS/JSattribute.cpp:
        * bindings/scripts/test/JS/JSattribute.h:
        * bindings/scripts/test/JS/JSreadonly.cpp:
        * bindings/scripts/test/JS/JSreadonly.h:
        Update tests.

2014-06-13  Alex Christensen  <achristensen@webkit.org>

        Make css jit allocator smarter.
        https://bugs.webkit.org/show_bug.cgi?id=133834

        Reviewed by Benjamin Poulain.

        * cssjit/RegisterAllocator.h:
        (WebCore::RegisterAllocator::allocateRegister):
        (WebCore::RegisterAllocator::deallocateRegister):
        (WebCore::RegisterAllocator::reserveCalleeSavedRegisters):
        (WebCore::LocalRegister::LocalRegister):
        (WebCore::RegisterAllocator::RegisterAllocator):
        Use a Deque for the registers.  Allocate from the front and deallocate to the back to cycle the register usage.
        (WebCore::RegisterAllocator::allocateRegisterWithPreference):
        (WebCore::LocalRegisterWithPreference::LocalRegisterWithPreference):
        Added the ability to specify that we prefer a certain register if it is available while allocating.
        These functions always return a register.  It is just a different register than preferred if the preferred register is not available.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        Whenever we are allocating a register for the second argument, we should specify that we 
        prefer to have argumentGPR1 to reduce register swapping when preparing for a function call.
        This cannot be done for argumentGPR0 because elementAddressRegister is argumentGPR0 and it is always allocated.

2014-06-13  Jeremy Jones  <jeremyj@apple.com>

        set setUsesExternalPlaybackWhileExternalScreenIsActive based on fullscreen mode
        https://bugs.webkit.org/show_bug.cgi?id=133829

        Reviewed by Eric Carlson.

        When playing inline and external screen is active, don't use external playback.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        declare updateDisableExternalPlayback()
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer):
        call updateDisableExternalPlayback when player is created
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
        call updateDisableExternalPlayback when fullscreen mode changes
        (WebCore::MediaPlayerPrivateAVFoundationObjC::updateDisableExternalPlayback):
        update setUsesExternalPlaybackWhileExternalScreenIsActive based on fullscreen mode

2014-06-13  Brent Fulgham  <bfulgham@apple.com>

        Convert LayerPool and TileCoverageMap from ObjC to C++
        https://bugs.webkit.org/show_bug.cgi?id=133862
        <rdar://problem/17302883>

        Reviewed by Simon Fraser.

        This just moves two ObjC files from the mac subdirectory to the parent and
        revises the project to build them as C++.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/ca/LayerPool.cpp: Copied from platform/graphics/ca/mac/LayerPool.mm.
        * platform/graphics/ca/LayerPool.h: Copied from platform/graphics/ca/mac/LayerPool.h.
        * platform/graphics/ca/TileCoverageMap.cpp: Copied from platform/graphics/ca/mac/TileCoverageMap.mm.
        * platform/graphics/ca/TileCoverageMap.h: Copied from platform/graphics/ca/mac/TileCoverageMap.h.
        * platform/graphics/ca/mac/LayerPool.h: Removed.
        * platform/graphics/ca/mac/LayerPool.mm: Removed.
        * platform/graphics/ca/mac/TileCoverageMap.h: Removed.
        * platform/graphics/ca/mac/TileCoverageMap.mm: Removed.

2014-06-13  Alex Christensen  <achristensen@webkit.org>

        Make css jit compile for armv7.
        https://bugs.webkit.org/show_bug.cgi?id=133596

        Reviewed by Benjamin Poulain.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::swapArguments):
        Implemented for ARM_THUMB2 and removed allocator hack.
        * cssjit/RegisterAllocator.h:
        Added list of ARM_THUMB2 general purpose registers.
        (WebCore::RegisterAllocator::isValidRegister):
        Added ARM register range and corrected ARM64 register range now that r15 is tempRegister.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
        Return CannotCompile if compiling fails because of lack of registers.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
        Implemented for ARM_THUMB2.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        Return false if the selector cannot be compiled because of lack of registers.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagsToElementStyleFromContext):
        Added code using 32-bit operations and used macro assembler for 64-bit operations.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
        Implemented for APPLE_ARMV7S, where sdiv is not a template in the assembler.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributesMatching):
        Use addPtr instead of add64.

2014-06-13  Anders Carlsson  <andersca@apple.com>

        Add a HTTPHeaderMap::get overload that takes an HTTPHeaderName
        https://bugs.webkit.org/show_bug.cgi?id=133877

        Reviewed by Andreas Kling.

        * Modules/websockets/WebSocketHandshake.cpp:
        (WebCore::WebSocketHandshake::serverWebSocketProtocol):
        (WebCore::WebSocketHandshake::serverSetCookie):
        (WebCore::WebSocketHandshake::serverSetCookie2):
        (WebCore::WebSocketHandshake::serverUpgrade):
        (WebCore::WebSocketHandshake::serverConnection):
        (WebCore::WebSocketHandshake::serverWebSocketAccept):
        * WebCore.exp.in:
        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::get):
        * platform/network/HTTPHeaderMap.h:
        * platform/network/HTTPHeaderNames.in:
        * plugins/PluginView.cpp:
        (WebCore::PluginView::handlePost):

2014-06-13  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169939.
        https://bugs.webkit.org/show_bug.cgi?id=133878

        This patch raises assertions on mac (Requested by fredw on
        #webkit).

        Reverted changeset:

        "Draw radicals with glyphs for better rendering"
        https://bugs.webkit.org/show_bug.cgi?id=119038
        http://trac.webkit.org/changeset/169939

2014-06-13  Anders Carlsson  <andersca@apple.com>

        Add a HTTPHeaderMap::set overload that takes a HTTPHeaderName
        https://bugs.webkit.org/show_bug.cgi?id=133874

        Reviewed by Tim Horton.

        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::set):
        * platform/network/HTTPHeaderMap.h:
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::ResourceRequest::doUpdatePlatformHTTPBody):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::send):

2014-06-13  Anders Carlsson  <andersca@apple.com>

        Add a HTTPHeaderMap::find overload that takes a HTTPHeaderName
        https://bugs.webkit.org/show_bug.cgi?id=133872

        Reviewed by Andreas Kling.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::responseReceived):
        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::get):
        (WebCore::HTTPHeaderMap::find):
        * platform/network/HTTPHeaderMap.h:
        * platform/network/HTTPHeaderNames.in:

2014-06-13  Frédéric Wang  <fred.wang@free.fr>

        Draw radicals with glyphs for better rendering
        https://bugs.webkit.org/show_bug.cgi?id=119038

        Reviewed by Chris Fleizach.

        We rewrite RenderMathMLRoot in order to fix bugs with SVG transforms and dynamic modification of children and allow drawing with an OpenType MATH table.
        The drawing of the radical sign (without the top bar) is now moved to a RenderMathMLRadicalOperator class inheriting from RenderMathMLOperator.
        This class fallbacks to the original drawing with graphic primitives if an OpenType MATH table is not available.

        Tests: mathml/opentype/roots-LatinModern.html
               mathml/presentation/mroot-transform.html

        * CMakeLists.txt: add files to build system.
        * WebCore.vcxproj/WebCore.vcxproj: ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
        * WebCore.xcodeproj/project.pbxproj: ditto
        * css/mathml.css: remove rules for msqrt/mroot. The "script level" in mroot is not incremented by 2 as specified in the spec.
        (math, mrow, mfenced, merror, mphantom, mstyle, menclose):
        (mroot > *:last-child):
        (math, mrow, mfenced, msqrt, mroot, merror, mphantom, mstyle, menclose): Deleted.
        (msqrt > *): Deleted.
        (mroot): Deleted. This rule was causing bug 126516.
        (mroot > * + *): Deleted.
        * rendering/RenderObject.h: Add two new isRenderMathML* functions for dynamic casting.
        (WebCore::RenderObject::isRenderMathMLRadicalOperator):
        (WebCore::RenderObject::isRenderMathMLRootWrapper):
        * rendering/mathml/RenderMathMLOperator.cpp: Accept a set of operator dictionary flags, all disabled by default. This is to allow anonymous radicas, which don't have any flag.
        isFencedOperator() is now replaced with the more general isAnonymous() since we allow anonymous radical operator fors msqrt/mroot.
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
        (WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
        (WebCore::RenderMathMLOperator::SetOperatorProperties):
        (WebCore::RenderMathMLOperator::updateTokenContent):
        * rendering/mathml/RenderMathMLOperator.h: Allow class to be overriden, redefine the anonymous constructor, remove isFencedOperator().
        * rendering/mathml/RenderMathMLRadicalOperator.cpp: Added.
        (WebCore::RenderMathMLRadicalOperator::RenderMathMLRadicalOperator):
        (WebCore::RenderMathMLRadicalOperator::stretchTo):
        (WebCore::RenderMathMLRadicalOperator::SetOperatorProperties):
        (WebCore::RenderMathMLRadicalOperator::computePreferredLogicalWidths):
        (WebCore::RenderMathMLRadicalOperator::computeLogicalHeight):
        (WebCore::RenderMathMLRadicalOperator::paint):
        (WebCore::RenderMathMLRadicalOperator::trailingSpaceError):
        * rendering/mathml/RenderMathMLRadicalOperator.h: Added.
        * rendering/mathml/RenderMathMLRoot.cpp: Rewritten. Some parts to use graphic primitives are moved to RenderMathMLRadicalOperator.cpp.
        (WebCore::RenderMathMLRoot::RenderMathMLRoot):
        (WebCore::RenderMathMLRoot::baseWrapper):
        (WebCore::RenderMathMLRoot::radicalWrapper):
        (WebCore::RenderMathMLRoot::indexWrapper):
        (WebCore::RenderMathMLRoot::radicalOperator):
        (WebCore::RenderMathMLRoot::restructureWrappers):
        (WebCore::RenderMathMLRoot::addChild):
        (WebCore::RenderMathMLRoot::styleDidChange):
        (WebCore::RenderMathMLRoot::updateFromElement):
        (WebCore::RenderMathMLRoot::updateStyle):
        (WebCore::RenderMathMLRoot::firstLineBaseline):
        (WebCore::RenderMathMLRoot::layout):
        (WebCore::RenderMathMLRoot::paint):
        (WebCore::RenderMathMLRootWrapper::createAnonymousWrapper):
        (WebCore::RenderMathMLRootWrapper::removeChildWithoutRestructuring):
        (WebCore::RenderMathMLRootWrapper::removeChild):
        (WebCore::RenderMathMLRoot::paddingTop): Deleted.
        (WebCore::RenderMathMLRoot::paddingBottom): Deleted.
        (WebCore::RenderMathMLRoot::paddingLeft): Deleted.
        (WebCore::RenderMathMLRoot::paddingRight): Deleted.
        (WebCore::RenderMathMLRoot::paddingBefore): Deleted.
        (WebCore::RenderMathMLRoot::paddingAfter): Deleted.
        (WebCore::RenderMathMLRoot::paddingStart): Deleted.
        (WebCore::RenderMathMLRoot::paddingEnd): Deleted.
        (WebCore::RenderMathMLRoot::index): Deleted.
        * rendering/mathml/RenderMathMLRoot.h: Rewritten.
        (WebCore::RenderMathMLRootWrapper::RenderMathMLRootWrapper):

2014-06-12  Anders Carlsson  <andersca@apple.com>

        Add overloads of HTTPHeaderMap::find and remove that take enums
        https://bugs.webkit.org/show_bug.cgi?id=133823

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        Update symbols.

        * WebCore.xcodeproj/project.pbxproj:
        Make HTTPHeaderNames.h private.

        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::contains):
        Convert the enum value to a string and call the contains overload that takes a string.

        (WebCore::HTTPHeaderMap::remove):
        Convert the enum value to a string and call the remove overload that takes a string.

        * platform/network/HTTPHeaderMap.h:
        Add new overloads taking HTTPHeaderName and mark the versions taking string literals as deleted.

        * platform/network/HTTPHeaderNames.in:
        Add new header names.

        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::clearHTTPAuthorization):
        (WebCore::ResourceRequestBase::clearHTTPContentType):
        (WebCore::ResourceRequestBase::clearHTTPReferrer):
        (WebCore::ResourceRequestBase::clearHTTPOrigin):
        (WebCore::ResourceRequestBase::clearHTTPUserAgent):
        (WebCore::ResourceRequestBase::clearHTTPAccept):
        Update functions to use HTTPHeaderName enums.

        (WebCore::ResourceRequestBase::isConditional):
        (WebCore::ResourceRequestBase::makeUnconditional):
        Simplify these.

2014-06-13  Jarek Czekalski  <jarekczek@poczta.onet.pl>

        [ATK] Fix text inside "span" block in "a" block was not accessible.
        https://bugs.webkit.org/show_bug.cgi?id=132349

        Reviewed by Mario Sanchez Prada.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp: Add link role
          to the list of roles whose objects always expose atk_text interface.

2014-06-13  Alberto Garcia  <berto@igalia.com>

        [GTK] GLContextEGL.cpp: conflicting declaration 'typedef ptrdiff_t GLintptr'
        https://bugs.webkit.org/show_bug.cgi?id=133550

        Reviewed by Gustavo Noronha Silva.

        Cairo includes some definitions from GLX that conflict with the
        ones provided by our GLES2 headers (GLintptr, GLsizeiptr).

        Since GLContextEGL doesn't use any GLX functions we can safely
        disable the inclusion of those functions in that source file.

        * platform/graphics/egl/GLContextEGL.cpp:

2014-06-13  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Introduce an explicit type for resolved grid positions
        https://bugs.webkit.org/show_bug.cgi?id=131732

        Reviewed by Sergio Villar Senin.

        We were using simple size_t integers to represent resolved grid
        positions in our internal data structures. This change allows us to
        clarify the code, avoid potential off by one mistakes, and move the
        resolving code to a central place.

        A new class GridResolvedPosition has been created and the related
        methods have been moved there from RenderGrid.
        GridSpan is now defined by two GridResolvedPosition, so all the code
        using it has been modified to adapt it to GridResolvedPosition.

        No new tests as it is already covered by current tests
        (fast/css-grid-layout/).

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSGridTemplateAreasValue.cpp:
        (WebCore::stringForPosition):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTemplateAreasRow):
        * css/StyleResolver.cpp:
        (WebCore::createImplicitNamedGridLinesFromGridArea):
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
        (WebCore::RenderGrid::computeNormalizedFractionBreadth):
        (WebCore::RenderGrid::resolveContentBasedTrackSizingFunctionsForItems):
        (WebCore::RenderGrid::insertItemIntoGrid):
        (WebCore::RenderGrid::placeItemsOnGrid):
        (WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
        (WebCore::RenderGrid::autoPlacementMajorAxisDirection):
        (WebCore::RenderGrid::autoPlacementMinorAxisDirection):
        (WebCore::RenderGrid::gridAreaBreadthForChild):
        (WebCore::RenderGrid::findChildLogicalPosition):
        (WebCore::RenderGrid::explicitGridColumnCount): Deleted.
        (WebCore::RenderGrid::explicitGridRowCount): Deleted.
        (WebCore::isColumnSide): Deleted.
        (WebCore::isStartSide): Deleted.
        (WebCore::RenderGrid::explicitGridSizeForSide): Deleted.
        (WebCore::RenderGrid::resolveGridPositionsFromAutoPlacementPosition): Deleted.
        (WebCore::gridLinesForSide): Deleted.
        (WebCore::implicitNamedGridLineForSide): Deleted.
        (WebCore::isNonExistentNamedLineOrArea): Deleted.
        (WebCore::RenderGrid::adjustGridPositionsFromStyle): Deleted.
        (WebCore::RenderGrid::resolveGridPositionsFromStyle): Deleted.
        (WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle): Deleted.
        (WebCore::RenderGrid::resolveGridPositionFromStyle): Deleted.
        (WebCore::RenderGrid::resolveGridPositionAgainstOppositePosition): Deleted.
        (WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition): Deleted.
        (WebCore::firstNamedGridLineBeforePosition): Deleted.
        (WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition): Deleted.
        (WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Deleted.
        * rendering/RenderGrid.h:
        * rendering/style/GridCoordinate.h:
        (WebCore::GridSpan::GridSpan):
        (WebCore::GridSpan::operator==):
        * rendering/style/GridPosition.h:
        (WebCore::GridPosition::adjustGridPositionForRowEndColumnEndSide): Deleted.
        (WebCore::GridPosition::adjustGridPositionForSide): Deleted.
        * rendering/style/GridResolvedPosition.cpp: Added.
        (WebCore::isColumnSide):
        (WebCore::isStartSide):
        (WebCore::explicitGridSizeForSide):
        (WebCore::GridResolvedPosition::resolveGridPositionsFromAutoPlacementPosition):
        (WebCore::gridLinesForSide):
        (WebCore::implicitNamedGridLineForSide):
        (WebCore::isNonExistentNamedLineOrArea):
        (WebCore::GridResolvedPosition::adjustGridPositionsFromStyle):
        (WebCore::GridResolvedPosition::resolveGridPositionsFromStyle):
        (WebCore::GridResolvedPosition::resolveNamedGridLinePositionFromStyle):
        (WebCore::GridResolvedPosition::resolveGridPositionFromStyle):
        (WebCore::GridResolvedPosition::resolveGridPositionAgainstOppositePosition):
        (WebCore::GridResolvedPosition::resolveNamedGridLinePositionAgainstOppositePosition):
        (WebCore::firstNamedGridLineBeforePosition):
        (WebCore::GridResolvedPosition::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
        (WebCore::GridResolvedPosition::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
        * rendering/style/GridResolvedPosition.h: Added.
        (WebCore::GridResolvedPosition::adjustGridPositionForRowEndColumnEndSide):
        (WebCore::GridResolvedPosition::adjustGridPositionForSide):
        (WebCore::GridResolvedPosition::GridResolvedPosition):
        (WebCore::GridResolvedPosition::operator++):
        (WebCore::GridResolvedPosition::operator==):
        (WebCore::GridResolvedPosition::operator<):
        (WebCore::GridResolvedPosition::operator>):
        (WebCore::GridResolvedPosition::operator<=):
        (WebCore::GridResolvedPosition::operator>=):
        (WebCore::GridResolvedPosition::toInt):
        (WebCore::GridResolvedPosition::next):

2014-06-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Remove all deprecated API from GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=133728

        Reviewed by Martin Robinson.

        Remove all deprecated symbols from the GObject DOM bindings,
        keeping the deprecation infraestructure for future API breaks.

        * PlatformGTK.cmake: Remove WebKitDOMDeprecated files from the
        build.
        * bindings/gobject/WebKitDOMDeprecated.cpp: Removed.
        * bindings/gobject/WebKitDOMDeprecated.h: Removed.
        * bindings/gobject/WebKitDOMDeprecated.symbols: Removed.
        * bindings/gobject/webkitdom.symbols: Updated to the current API.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (SkipFunction): Remove exceptions for deprecated API.
        (GetFunctionDeprecationInformation): Ditto.
        (GetEffectiveFunctionName): Ditto.
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.cpp:
        (webkit_dom_test_event_target_dispatch_event): Deleted.
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.h:
        * bindings/scripts/test/GObject/WebKitDOMTestEventTarget.symbols:
        * dom/Element.idl: Remove GObject exception.

2014-06-12  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make <input type=> and <button> elements' decoration subpixel aware.
        https://bugs.webkit.org/show_bug.cgi?id=133812
        <rdar://problem/17286309>

        Reviewed by Simon Fraser.

        Enable <input type=> and <button> decoration painting on subpixel positions.
        The theme size is still integral, but its position is snapped to device pixels.
        Theme's label, the InlineTextBox is already subpixel position aware.
        webkit.org/b/132005 tracks the rest of the themes.

        Not testable.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::boundingBoxForQuads): Keep integral snapping for now.
        * platform/Theme.h:
        (WebCore::Theme::paint):
        (WebCore::Theme::inflateControlPaintRect):
        * platform/mac/ThemeMac.h:
        * platform/mac/ThemeMac.mm:
        (WebCore::inflateRect):
        (WebCore::configureToggleButton):
        (WebCore::sharedRadioCell):
        (WebCore::sharedCheckboxCell):
        (WebCore::paintToggleButton):
        (WebCore::setUpButtonCell):
        (WebCore::button):
        (WebCore::paintButton):
        (WebCore::paintStepper):
        (WebCore::ThemeMac::inflateControlPaintRect):
        (WebCore::ThemeMac::paint):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addVisualOverflowFromTheme): Keep integral snapping for now.
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme): Keep integral snapping for now.
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::adjustRepaintRect):
        * rendering/RenderTheme.h:
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::adjustRepaintRect):

2014-06-12  Brent Fulgham  <bfulgham@apple.com>

        [Win] Avoid fork bomb during build
        https://bugs.webkit.org/show_bug.cgi?id=133837
        <rdar://problem/17296034>

        Reviewed by Tim Horton.

        * WebCore.vcxproj/build-generated-files.sh: Use a reasonable
        default value when the 'num-cpus' script is not available.

2014-06-12  Gavin Barraclough  <barraclough@apple.com>

        Add support for thread/WorkQueue QoS
        https://bugs.webkit.org/show_bug.cgi?id=130688

        Reviewed by Anders Carlson & Simon Fraser.

        WebCore's ScrollingThread should be UserInteractive.

        * page/scrolling/ScrollingThread.cpp:
        (WebCore::ScrollingThread::threadCallback):
            - ScrollingThread should be UserInteractive

2014-06-12  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Build fix after r169919.

        * WebCore.xcodeproj/project.pbxproj: The 'TileController.h' file must be a private header.

2014-06-12  Andy Estes  <aestes@apple.com>

        [Mac] Speculative build fix after r169921.

        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::SourceBufferPrivateAVFObjC::destroyRenderers):

2014-06-12  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Stop observing the sample buffer renderers when destroying them.
        https://bugs.webkit.org/show_bug.cgi?id=133831

        Reviewed by Beth Dakin.

        Release our retain on our AVSampleBufferDisplayLayer and AVSampleBufferAudioRenderer by stopping
        our observation of its properties when removing them from the SourceBufferPrivateAVFObjC object.

        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::SourceBufferPrivateAVFObjC::destroyRenderers):

2014-06-12  Brent Fulgham  <bfulgham@apple.com>

        Correct file locations after r169914. These should have been
        in platform/graphics/ca.

        Rubberstamped by Tim Horton.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/ca/TileController.cpp: Copied from platform/graphics/ca/mac/TileController.cpp.
        * platform/graphics/ca/TileController.h: Copied from platform/graphics/ca/mac/TileController.h.
        * platform/graphics/ca/TileGrid.cpp: Copied from platform/graphics/ca/mac/TileGrid.cpp.
        * platform/graphics/ca/TileGrid.h: Copied from platform/graphics/ca/mac/TileGrid.h.
        * platform/graphics/ca/mac/TileController.cpp: Removed.
        * platform/graphics/ca/mac/TileController.h: Removed.
        * platform/graphics/ca/mac/TileGrid.cpp: Removed.
        * platform/graphics/ca/mac/TileGrid.h: Removed.

2014-06-12  Andy Estes  <aestes@apple.com>

        Fix the build after r169913.

        * loader/HistoryController.cpp:
        (WebCore::HistoryController::restoreScrollPositionAndViewState):

2014-06-12  Alex Christensen  <achristensen@webkit.org>

        Collect correct web timing data from CFNetwork.
        https://bugs.webkit.org/show_bug.cgi?id=133824
        <rdar://problem/17273654>

        Reviewed by Simon Fraser.

        Covered by existing web timing tests.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::getConnectionTimingData):
        Use _kCFNTimingDataFetchStart as the reference start time key.

2014-06-12  Brent Fulgham  <bfulgham@apple.com>

        Convert TileController and TileGrid from ObjC to C++
        https://bugs.webkit.org/show_bug.cgi?id=133819
        <rdar://problem/17291841>

        Reviewed by Tim Horton.

        Convert TileGrid.mm and TileController.mm into C++ implementations. This required creating a 'frameForLayer'
        wrapper to call the 'frame' method of the CALayer object.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/ca/mac/TileController.cpp: Copied from platform/graphics/ca/mac/TileController.mm.
        (WebCore::TileController::blankPixelCountForTiles):
        * platform/graphics/ca/mac/TileController.mm: Removed.
        * platform/graphics/ca/mac/TileGrid.cpp: Copied from platform/graphics/ca/mac/TileGrid.mm.
        * platform/graphics/ca/mac/TileGrid.h:
        * platform/graphics/ca/mac/TileGrid.mm: Removed.
        * platform/graphics/mac/WebLayer.h:
        * platform/graphics/mac/WebLayer.mm:
        (WebCore::frameForLayer): Wrapper function to hide ObjC call from C++ compilation unit.

2014-06-12  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fix crash on back/foward swipe
        https://bugs.webkit.org/show_bug.cgi?id=133826
        <rdar://problem/17032752>

        Reviewed by Tim Horton.

        AsyncScrollingCoordinator::frameViewForScrollingNode() would crash with a null root
        state node, because HistoryController::restoreScrollPositionAndViewState() tried
        to restore scroll position (via restoreViewState()) before hooking up the scrolling
        coordinator.
        
        Fix by doing the scrollingCoordinator->frameViewRootLayerDidChange() before
        calling restoreViewState().
        
        Also add a defensive null-check on the root state node in updateScrollPositionAfterAsyncScrollTimerFired().

        * loader/HistoryController.cpp:
        (WebCore::HistoryController::restoreScrollPositionAndViewState):
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewForScrollingNode):

2014-06-12  Anders Carlsson  <andersca@apple.com>

        Add a space after the comma.

        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::add):

2014-06-12  Anders Carlsson  <andersca@apple.com>

        Move header value merging to HTTPHeaderMap
        https://bugs.webkit.org/show_bug.cgi?id=133815

        Reviewed by Andreas Kling.

        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::set):
        (WebCore::HTTPHeaderMap::add):
        * platform/network/HTTPHeaderMap.h:
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::addHTTPHeaderField):
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::addHTTPHeaderField):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::setRequestHeaderInternal):

2014-06-12  Anders Carlsson  <andersca@apple.com>

        Add ShapeValue.cpp and move ShapeValue::isImageValid() there
        https://bugs.webkit.org/show_bug.cgi?id=133809

        Reviewed by Antti Koivisto.

        This gets rid of CachedImage.h (and ResourceRequest and friends) from RenderStyle.h.

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::shapePropertyValue):
        * css/CSSCrossfadeValue.cpp:
        * css/CSSFilterImageValue.cpp:
        * css/StyleResolver.h:
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::blendFunc):
        * rendering/ShapeValue.cpp: Added.
        (WebCore::ShapeValue::isImageValid):
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::referenceBox):
        (WebCore::ShapeOutsideInfo::computedShape):
        (WebCore::ShapeOutsideInfo::isEnabledFor):
        * rendering/style/ShapeValue.h:
        (WebCore::ShapeValue::type):
        (WebCore::ShapeValue::setImage):
        (WebCore::ShapeValue::ShapeValue):
        (WebCore::ShapeValue::isImageValid): Deleted.

2014-06-12  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make <select> element's decoration subpixel aware.
        https://bugs.webkit.org/show_bug.cgi?id=133781
        <rdar://problem/17272083>

        Reviewed by Simon Fraser.

        Enable <select> decoration painting on subpixel positions.
        The theme size is still integral, but its position is snapped to device pixels.
        Theme's label, the InlineTextBox is already subpixel position aware.
        webkit.org/b/132005 tracks the rest of the themes.

        Not testable.

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paint):
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::paintMenuList):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::inflateRect):
        (WebCore::RenderThemeMac::adjustRepaintRect):
        (WebCore::RenderThemeMac::paintMenuList):
        (WebCore::RenderThemeMac::progressBarRectForBounds):
        (WebCore::RenderThemeMac::setPopupButtonCellState):
        (WebCore::RenderThemeMac::inflateRect): Deleted.

2014-06-12  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Crash in MediaSourcePrivateAVFObjC::naturalSize()
        https://bugs.webkit.org/show_bug.cgi?id=133789

        Reviewed by Eric Carlson.

        Add null-check to proctect against being queried for the naturalSize before we have a
        m_mediaSourcePrivate.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::naturalSize):

2014-06-12  Alberto Garcia  <berto@igalia.com>

        [GTK] fails to build with --disable-webgl --disable-accelerated-compositing
        https://bugs.webkit.org/show_bug.cgi?id=131267

        Reviewed by Philippe Normand.

        Add missing headers needed for Float32Array::create().

        * Modules/webaudio/AudioBuffer.cpp:

2014-06-12  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] REGRESSION: application name is not correctly appended to the UA
        https://bugs.webkit.org/show_bug.cgi?id=133793

        Reviewed by Carlos Garcia Campos.

        We must use a blank to separate the default UA provided by WebKitGtk
        from the application name coming from the public API.

        Added an extra test case to the API tests to catch regressions.

        * platform/gtk/UserAgentGtk.cpp:
        (WebCore::standardUserAgent):

2014-06-12  Zan Dobersek  <zdobersek@igalia.com>

        WorkerRunLoop::Task::performTask should take in WorkerGlobalScope* to avoid downcasting
        https://bugs.webkit.org/show_bug.cgi?id=133616

        Reviewed by Andreas Kling.

        * workers/WorkerRunLoop.cpp:
        (WebCore::WorkerRunLoop::Task::performTask): Demand the context parameter to be a pointer
        to WorkerGlobalScope instead of ScriptExecutionContext, avoiding an unnecessary downcast.
        In the future this complete code path should use a reference to WorkerGlobalScope instead
        of a pointer.
        * workers/WorkerRunLoop.h:

2014-06-12  Sergio Villar Senin  <svillar@igalia.com>

        [GTK] Unsupported browser in www.icloud.com
        https://bugs.webkit.org/show_bug.cgi?id=133403

        Reviewed by Martin Robinson.

        We claim to be Safari (among others) to ensure maximum
        compatibility with existing web sites. Valid Safari UA strings do
        always (since Safari 3.0) contain the string "Version/X" before
        the "Safari/X" part. We were wrongly only adding it in very
        specific cases and we were placing it at the wrong position as it
        must precede the "Safari/X" part.

        From now on we unconditionally prepend the "Version/X" string to
        the "Safari/X" part as we always claim to be Safari. This makes
        the NeedsSafariVersion6 quirk invalid. This not only fixes
        "unsupported browser" issues in icloud.com, but also in
        globalforestwatch.com and live.com among many others.

        Apart from that I'm bumping the Safari Version in the UA to 8.0 as
        we're already claiming to be "Safari/538.35"" which corresponds to
        Safari 8 beta.

        * platform/gtk/UserAgentGtk.cpp:
        (WebCore::buildUserAgentString):
        (WebCore::standardUserAgentForURL):

2014-06-12  Pratik Solanki  <psolanki@apple.com>

        Avoid creating a CFData when checking if a resource is file backed
        https://bugs.webkit.org/show_bug.cgi?id=133783

        Reviewed by Andreas Kling.

        Export SharedBuffer::hasPlatformData().

        No new tests because no functional changes.

        * WebCore.exp.in:
        * platform/SharedBuffer.h:

2014-06-11  Myles C. Maxfield  <mmaxfield@apple.com>

        SVGGlyphToPathTranslator ASSERTs when encountering a missing glyph in an SVG font
        https://bugs.webkit.org/show_bug.cgi?id=133528

        Reviewed by Simon Fraser.

        Turns out this assertion is benign. We can take an early out of advance() (which
        is then handled properly by Font::dashesForIntersectionsWithRect()

        Test: svg/custom/skip-underline-missing-glyph.html

        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::dashesForIntersectionsWithRect): Rather than skip partial results,
        don't skip anything at all to be consistent.
        * rendering/svg/SVGTextRunRenderingContext.cpp:
        (WebCore::SVGGlyphToPathTranslator::advance): Take an early out to avoid an ASSERT.

2014-06-11  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Give WebKitTestRunner a viewport configuration with initial scale=1 for testing
        https://bugs.webkit.org/show_bug.cgi?id=133779

        Reviewed by Benjamin Poulain.

        Add a "testing" viewport configuration with initial scale of 1.

        * WebCore.exp.in:
        * page/ViewportConfiguration.cpp:
        (WebCore::ViewportConfiguration::testingParameters):
        * page/ViewportConfiguration.h:

2014-06-11  Pratik Solanki  <psolanki@apple.com>

        Keep CFDataRefs in SharedBuffer instead of merging them
        https://bugs.webkit.org/show_bug.cgi?id=133775

        Reviewed by Alexey Proskuryakov.

        Instead of merging the CFDataRefs into one buffer, save them in as CFDataRefs in
        SharedBuffer. They will get merged when code calls buffer() later on.

        No new tests because no functional changes.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::handleDataArray):

2014-06-11  Alexey Proskuryakov  <ap@apple.com>

        editing/selection/selection-in-iframe-removed-crash.html or selection-invalid-offset.html crashes intermittently
        https://bugs.webkit.org/show_bug.cgi?id=111521
        <rdar://problem/15159351>

        Reviewed by Brady Eidson.

        Covered by existing tests.

        * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::commitData): Bail out if the
        load was canceled from under receivedFirstData(). Since this is where we commit the
        load, there are ample opportunities for scripts or clients to do anything.

2014-06-11  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: RenderBox's content clipping should clip on device pixel boundary.
        https://bugs.webkit.org/show_bug.cgi?id=133767
        <rdar://problem/17272365>

        Reviewed by Simon Fraser.

        Push RenderBox's content clipping to device pixel boundaries. Integral snapping makes
        content cut off prematurely.

        Test: fast/inline-block/hidpi-margin-top-with-subpixel-value-and-overflow-hidden.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::pushContentsClip):

2014-06-11  Anders Carlsson  <andersca@apple.com>

        Remove XHRReplayData::addHeader
        https://bugs.webkit.org/show_bug.cgi?id=133776

        Reviewed by Antti Koivisto.

        Just pass the HTTP header map to XHRReplayData::create directly.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::willLoadXHR):
        * inspector/NetworkResourcesData.cpp:
        (WebCore::XHRReplayData::create):
        (WebCore::XHRReplayData::XHRReplayData):
        (WebCore::XHRReplayData::addHeader): Deleted.
        * inspector/NetworkResourcesData.h:

2014-06-11  Andy Estes  <aestes@apple.com>

        Fix the Mac build.

        * WebCore.exp.in: Exported __ZN7WebCore19ResourceRequestBase15setHTTPReferrerERKN3WTF6StringE
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm: Moved ivar declarations to @interface to account for the 32-bit legacy runtime.

2014-06-11  Simon Fraser  <simon.fraser@apple.com>

        Make FrameView 8 bytes smaller
        https://bugs.webkit.org/show_bug.cgi?id=133771

        Reviewed by Anders Carlsson.

        m_borderX and m_borderY were historical cruft.

        * page/FrameView.cpp:
        (WebCore::FrameView::reset):
        * page/FrameView.h:

2014-06-11  David Kilzer  <ddkilzer@apple.com>

        WindowFeatures arguments shoud ignore invalid characters in values
        <http://webkit.org/b/133703>
        <rdar://problem/17254118>

        Reviewed by Andy Estes.

        Test: fast/dom/Window/window-property-invalid-characters-ignored.html

        * page/WindowFeatures.cpp:
        (WebCore::WindowFeatures::WindowFeatures): Set |length| based on
        |buffer|, not |features|.  Switch to using a for loop.  Switch
        to unsigned types since we are working with positive offsets
        into a String.

2014-06-11  David Kilzer  <ddkilzer@apple.com>

        Viewport arguments should ignore invalid characters in values
        <http://webkit.org/b/133555>
        <rdar://problem/17179650>

        Reviewed by Daniel Bates.

        Test: fast/viewport/viewport-warnings-7.html

        * dom/Document.cpp:
        (WebCore::Document::processArguments): Set |length| based on
        |buffer|, not |features|.  Switch to using a for loop.  Switch
        to unsigned types since we are working with positive offsets
        into a String.

2014-06-11  Anders Carlsson  <andersca@apple.com>

        Move some HTTP header field accessors to ResourceRequestBase.cpp
        https://bugs.webkit.org/show_bug.cgi?id=133773

        Reviewed by Andreas Kling.

        This will avoid having to include HTTPHeaderNames.h from ResourceRequestBase.h.

        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::httpContentType):
        (WebCore::ResourceRequestBase::setHTTPContentType):
        (WebCore::ResourceRequestBase::httpReferrer):
        (WebCore::ResourceRequestBase::setHTTPReferrer):
        (WebCore::ResourceRequestBase::httpOrigin):
        (WebCore::ResourceRequestBase::setHTTPOrigin):
        (WebCore::ResourceRequestBase::httpUserAgent):
        (WebCore::ResourceRequestBase::setHTTPUserAgent):
        (WebCore::ResourceRequestBase::httpAccept):
        (WebCore::ResourceRequestBase::setHTTPAccept):
        * platform/network/ResourceRequestBase.h:
        (WebCore::ResourceRequestBase::httpContentType): Deleted.
        (WebCore::ResourceRequestBase::setHTTPContentType): Deleted.
        (WebCore::ResourceRequestBase::httpReferrer): Deleted.
        (WebCore::ResourceRequestBase::setHTTPReferrer): Deleted.
        (WebCore::ResourceRequestBase::httpOrigin): Deleted.
        (WebCore::ResourceRequestBase::setHTTPOrigin): Deleted.
        (WebCore::ResourceRequestBase::httpUserAgent): Deleted.
        (WebCore::ResourceRequestBase::setHTTPUserAgent): Deleted.
        (WebCore::ResourceRequestBase::httpAccept): Deleted.
        (WebCore::ResourceRequestBase::setHTTPAccept): Deleted.

2014-06-11  Anders Carlsson  <andersca@apple.com>

        Remove some more unneeded member functions from HTTPHeaderMap
        https://bugs.webkit.org/show_bug.cgi?id=133768

        Reviewed by Simon Fraser.

        * loader/CrossOriginAccessControl.cpp:
        (WebCore::createAccessControlPreflightRequest):
        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::find): Deleted.
        (WebCore::HTTPHeaderMap::keys): Deleted.
        * platform/network/HTTPHeaderMap.h:

2014-06-11  Jer Noble  <jer.noble@apple.com>

        Unreviwed Mac release build fix; mark the keyPath parameter as unused.

        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):

2014-06-11  Brent Fulgham  <bfulgham@apple.com>

        [Win] Avoid deadlock with AVFoundation
        https://bugs.webkit.org/show_bug.cgi?id=133762
        <rdar://problem/17128248>

        Reviewed by Eric Carlson.

        Always invoke our notifications asynchronously so that we do not
        execute long-running code while holding the AVFWrapper map mutex
        lock. AVFoundationCF callbacks can deadlock if we call into AVF
        while holding this lock.


        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification):

2014-06-11  Csaba Osztrogonác  <ossy@webkit.org>

        [CMake] One more URTBF after r169826.

        * CMakeLists.txt: Generate files to the proper place.

2014-06-11  Csaba Osztrogonác  <ossy@webkit.org>

        [CMake]URTBF after r169826.

        * CMakeLists.txt: Typo fix.

2014-06-11  Anders Carlsson  <andersca@apple.com>

        Get rid of an unneeded HTTPHeaderMap::remove overload
        https://bugs.webkit.org/show_bug.cgi?id=133763

        Reviewed by Andreas Kling.

        Change HTTPHeaderMap::remove to return whether an entry was removed or not and simplify
        ResourceRequestBase::clearHTTPAuthorization.

        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::remove):
        * platform/network/HTTPHeaderMap.h:
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::clearHTTPAuthorization):

2014-06-11  Jer Noble  <jer.noble@apple.com>

        [EME][Mac] Propagate errors from AVSampleBufferDisplayLayer through to MSE
        https://bugs.webkit.org/show_bug.cgi?id=133747

        Reviewed by Eric Carlson.

        Abstract out the delivery of errors in MediaKeySession into its own method, which can be triggered by 
        CDMSession objects through the CDMSessionClient interface:
        * Modules/encryptedmedia/MediaKeySession.cpp:
        (WebCore::MediaKeySession::keyRequestTimerFired):
        (WebCore::MediaKeySession::addKeyTimerFired):
        (WebCore::MediaKeySession::sendMessage):
        (WebCore::MediaKeySession::sendError):
        * Modules/encryptedmedia/MediaKeySession.h:
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveRenderingError):
        * Modules/mediasource/SourceBuffer.h:
        * platform/graphics/SourceBufferPrivateClient.h:
        * platform/graphics/CDMSession.h:

        Add an Objective-C object which can listen for error KVO notifications:
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
        (WebCore::SourceBufferPrivateAVFObjCErrorClient::~SourceBufferPrivateAVFObjCErrorClient):
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (-[WebAVSampleBufferErrorListener initWithParent:WebCore::]):
        (-[WebAVSampleBufferErrorListener dealloc]):
        (-[WebAVSampleBufferErrorListener invalidate]):
        (-[WebAVSampleBufferErrorListener beginObservingLayer:]):
        (-[WebAVSampleBufferErrorListener stopObservingLayer:]):
        (-[WebAVSampleBufferErrorListener beginObservingRenderer:]):
        (-[WebAVSampleBufferErrorListener stopObservingRenderer:]):
        (-[WebAVSampleBufferErrorListener observeValueForKeyPath:ofObject:change:context:]):
        (-[WebAVSampleBufferErrorListener layerFailedToDecode:]):
        (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):
        (WebCore::SourceBufferPrivateAVFObjC::registerForErrorNotifications):
        (WebCore::SourceBufferPrivateAVFObjC::unregisterForErrorNotifications):
        (WebCore::SourceBufferPrivateAVFObjC::layerDidReceiveError):
        (WebCore::SourceBufferPrivateAVFObjC::rendererDidReceiveError):

        Register for the new error notifications:
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h:
        (WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC): Moved to source file.
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC): Register for error notifications.
        (WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC): Unregister for error notifications.
        (WebCore::CDMSessionMediaSourceAVFObjC::layerDidReceiveError): Pass through to CDMSessionClient.
        (WebCore::CDMSessionMediaSourceAVFObjC::rendererDidReceiveError): Ditto.

2014-06-11  Andreas Kling  <akling@apple.com>

        Don't force CharacterData to override getOwnPropertySlot.
        <https://webkit.org/b/133717>

        This was preventing us from taking the GetByVal fast path for Text nodes
        since they inherit from CharacterData and having a "length" attribute
        meant we gave them a custom getOwnPropertySlot, despite not actually
        needing it for anything.

        Reviewed by Anders Carlsson.

        * bindings/scripts/CodeGeneratorJS.pm:
        (AttributeShouldBeOnInstance):

2014-06-11  Anders Carlsson  <andersca@apple.com>

        Add a script that generates a gperf hash for HTTP header names
        https://bugs.webkit.org/show_bug.cgi?id=133760

        Reviewed by Andreas Kling.

        This is the first step towards getting rid of AtomicString from HTTPHeaderMap.

        * CMakeLists.txt:
        * DerivedSources.make:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/network/HTTPHeaderNames.in: Added.
        * platform/network/create-http-header-name-table: Added.
        (HTTPHeaderName):

2014-06-11  Brent Fulgham  <bfulgham@apple.com>

        ROLLOUT: r153510: Broke Table borders on Wikipedia
        https://bugs.webkit.org/show_bug.cgi?id=132802
        <rdar://problem/16792562>

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::paintCollapsedBorders):
        (WebCore::RenderTableCell::alignLeftRightBorderPaintRect): Deleted.
        (WebCore::RenderTableCell::alignTopBottomBorderPaintRect): Deleted.
        * rendering/RenderTableCell.h:

2014-06-11  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Empty headers in request response.
        https://bugs.webkit.org/show_bug.cgi?id=133483

        Reviewed by Brent Fulgham.

        When a request is taken from the cache, its cached response headers are empty, if the cache entry was created in the same session.
        It is only when the cache entry is loaded from disc, that the response headers are properly set.
        We need to set the cached response headers in both cases.
        There is also an issue if two jobs are loading the same url at the same time.
        Both jobs will then write to the cache content file, and create invalid content.
        This can be fixed by only letting the first request write to the content file.

        * platform/network/curl/CurlCacheEntry.cpp:
        (WebCore::CurlCacheEntry::CurlCacheEntry):
        (WebCore::CurlCacheEntry::isLoading): Added method to check if cache entry is loading the content.
        (WebCore::CurlCacheEntry::saveResponseHeaders): Set the cached response headers when response is saved.
        (WebCore::CurlCacheEntry::invalidate): To be on the safe side, close content file when entry is invalidated.
        (WebCore::CurlCacheEntry::parseResponseHeaders): Made parameter const.
        * platform/network/curl/CurlCacheEntry.h: Keep track of which job is creating this cache entry.
        (WebCore::CurlCacheEntry::getJob):
        * platform/network/curl/CurlCacheManager.cpp:
        (WebCore::CurlCacheManager::loadIndex): When cache entry is loaded from disc, there is no associated job.
        (WebCore::CurlCacheManager::didReceiveResponse): Bail out if cache entry is already currently loading,
        otherwise associate this job with the new cache entry.
        (WebCore::CurlCacheManager::didFinishLoading): Changed parameter type.
        (WebCore::CurlCacheManager::isCached): Don't report the url as cached if it's currently loading content.
        (WebCore::CurlCacheManager::didReceiveData): Don't write to the content file if the entry is not associated with the job.
        (WebCore::CurlCacheManager::didFail): Changed parameter type.
        * platform/network/curl/CurlCacheManager.h: Changed parameter type.
        * platform/network/curl/ResourceHandleManager.cpp: Ditto.
        (WebCore::writeCallback):
        (WebCore::ResourceHandleManager::downloadTimerCallback):

2014-06-11  Sam Weinig  <sam@webkit.org>

        REGRESSION (r133705): Layout Test js/dom/webidl-type-mapping.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=133736

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        Turns out we can't remove the HashTable yet after all, as JavaScriptCore
        relies on hasSetterOrReadonlyProperties bit to make put work correctly. We
        can, however, skip creating the table, and just use the value array during
        reification. 

2014-06-11  Chris Fleizach  <cfleizach@apple.com>

        AX: iOS: VoiceOver ignores input type = date in Safari on iOS7
        https://bugs.webkit.org/show_bug.cgi?id=133709

        Reviewed by Mario Sanchez Prada.

        The date field on iOS appears as a popup button, which is not a type we had encountered for <input> types.
        This returns an appropriate role in that case.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):

2014-06-11  Zan Dobersek  <zdobersek@igalia.com>

        Avoid FontGlyphsCacheKey copy in FontGlyphsCacheEntry constructor
        https://bugs.webkit.org/show_bug.cgi?id=133674

        Reviewed by Andreas Kling.

        * platform/graphics/Font.cpp:
        (WebCore::FontGlyphsCacheEntry::FontGlyphsCacheEntry): The FontGlyphsCacheKey
        variable is already passed-in as an rvalue reference, so it should be moved
        into the constructor of the corresponding member variable instead of copied.

2014-06-11  Andy Estes  <aestes@apple.com>

        Fix the build after after r169789 on platforms that build with -Wunused-const-variable

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHashTable): Don't create the value array if it'll never be used.

2014-06-11  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use a different user agent string depending on the site
        https://bugs.webkit.org/show_bug.cgi?id=132681

        Reviewed by Anders Carlsson.

        We have changed the user agent string several times to try to fix
        broken websites that require specific things in the UA string to
        properly work. But everytime we change the UA string to fix a
        website we break others. We could use different UA string
        depending on the website. UserAgentGtk code has also been cleaned
        up, using NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL
        and avoiding unneeded conversions to UTF-8.

        * platform/gtk/UserAgentGtk.cpp:
        (WebCore::UserAgentQuirks::UserAgentQuirks): New helper private
        class to handle user agent quirks.
        (WebCore::UserAgentQuirks::add):
        (WebCore::UserAgentQuirks::contains):
        (WebCore::UserAgentQuirks::isEmpty):
        (WebCore::platformForUAString): Bring back this method that was
        removed to always pretend to be Macintosh.
        (WebCore::platformVersionForUAString): Return a different platform
        version depending on the actual platform.
        (WebCore::versionForUAString): Return the WebKit version.
        (WebCore::buildUserAgentString): Helper function to build the user
        agent taking into account the UserAgentQuirks received.
        (WebCore::standardUserAgentStatic): Standard user agent string
        when no quirks are present.
        (WebCore::standardUserAgent):
        (WebCore::standardUserAgentForURL): New method that returns the
        user agent string for the given URL.
        * platform/gtk/UserAgentGtk.h:

2014-06-11  Alex Christensen  <achristensen@webkit.org>

        [Win] Unreviewed build fix.

        * platform/network/curl/ResourceRequest.h:
        Include missing PassOwnPtr.h.

2014-06-10  Sam Weinig  <sam@webkit.org>

        Actually only generate tables for History and Location.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):

2014-06-10  Sam Weinig  <sam@webkit.org>

        Attempt to fix the tests.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        Keep generating HashTables for History and Location, since they use them in
        their custom getOwnPropertySlot delegates.

2014-06-10  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] ScrollingTreeOverflowScrollingNode does not use asynchronous touch dispatch
        https://bugs.webkit.org/show_bug.cgi?id=133702

        Reviewed by Simon Fraser.

        * page/scrolling/ScrollingTree.h:
        (WebCore::ScrollingTree::scrollingTreeNodeWillStartPanGesture):

2014-06-10  Benjamin Poulain  <benjamin@webkit.org>

        Reduce the overhead of updating the animatable style on ARMv7
        https://bugs.webkit.org/show_bug.cgi?id=133618

        Reviewed by Simon Fraser.

        While updating the style for animations, most of the time spent was pure calling overhead.

        This patch should reduce this a bit on ARMv7:
        1) Get the frame directly from the document instead of document->view->framview->frame.
        2) Inline RenderObject::animation(). This is just 3 loads, setting up the registers on the call
           site is more expensive than loading the values directly.
        3) Inline RenderElement::setAnimatableStyle(). It has only one call site and the call is mostly
           overhead.

        * css/CSSComputedStyleDeclaration.cpp:
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::setAnimatableStyle): Deleted.
        * rendering/RenderElement.h:
        (WebCore::RenderElement::setAnimatableStyle):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::adjustRectForOutlineAndShadow):
        (WebCore::RenderObject::animation): Deleted.
        * rendering/RenderObject.h:
        (WebCore::RenderObject::animation):
        * rendering/RenderView.h:
        (WebCore::RenderObject::frame):

2014-06-10  Sam Weinig  <sam@webkit.org>

        Don't create a HashTable for JSObjects that use eager reification
        https://bugs.webkit.org/show_bug.cgi?id=133705

        Reviewed by Geoffrey Garen.

        It is unnecessary to create the CompactHashIndex or HashTable for JSObjects
        that use eager reification, since we will never look up properties directly.
        Instead, we can iterate the HashTableValue array directly during reification.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        Only generate the value array for prototypes that use eager reification.

        (GenerateHashTableValueArray):
        Extract out into a helper.

        (GenerateHashTable):
        Add a parameter, $justGenerateValueArray, that if true, means we only
        should generate the value array. 

        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        * bindings/scripts/test/JS/JSTestException.cpp:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        * bindings/scripts/test/JS/JSTestNode.cpp:
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        * bindings/scripts/test/JS/JSattribute.cpp:
        * bindings/scripts/test/JS/JSreadonly.cpp:

2014-06-10  Chris Fleizach  <cfleizach@apple.com>

        AX: iOS: Return the language for attributed text marker queries
        https://bugs.webkit.org/show_bug.cgi?id=133682

        Reviewed by Mario Sanchez Prada.

        Add language to the list of objects being returned for attributed text.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (AXAttributeStringSetLanguage):
        (AXAttributedStringAppendText):

2014-06-10  Dan Bernstein  <mitz@apple.com>

        WebCore part of [Cocoa] Handling authentication challenges should not require multiple delegate methods
        https://bugs.webkit.org/show_bug.cgi?id=133697

        Reviewed by Anders Carlsson.

        * platform/network/AuthenticationClient.h: Declared new virtual member functions for
        requesting default handling of a challenge and rejecting a challenge.
        * platform/network/ResourceHandle.h: Override new AuthenticationClient functions.
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::receivedRequestToPerformDefaultHandling): Added. Calls
        CFURLConnectionPerformDefaultHandlingForChallenge.
        (WebCore::ResourceHandle::receivedChallengeRejection): Added. Calls
        CFURLConnectionRejectChallenge.
        * platform/network/cf/SocketStreamHandle.h: Override new AuthenticationClient functions.
        * platform/network/cf/SocketStreamHandleCFNet.cpp:
        (WebCore::SocketStreamHandle::receivedRequestToPerformDefaultHandling): Added empty
        override.
        (WebCore::SocketStreamHandle::receivedChallengeRejection): Ditto.

2014-06-09  Brent Fulgham  <bfulgham@apple.com>

        REGRESSION (r167962): Out of bounds read in JSC::StructureIDTable::get()
        https://bugs.webkit.org/show_bug.cgi?id=133463
        <rdar://problem/17098100>

        Reviewed by Geoffrey Garen.

        Revise MediaControllerHost implementation so that instead of holding its
        own pointer to the JS Controller object, it uses new properties added to
        the internal media controls DOM hierarchy. This allows the GC to see the
        needed lifecycle of the various media control objects and avoids the
        premature deallocation that caused this bug.
 
        * Modules/mediacontrols/MediaControlsHost.h:
        (WebCore::MediaControlsHost::controllerJSValue): Deleted.
        (WebCore::MediaControlsHost::setControllerJSValue): Deleted.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::controllerJSValue): Added convenience function
        to share logic for retrieving the controller object.
        (WebCore::HTMLMediaElement::updateCaptionContainer): Revise to use new method
        for accessing the controller.
        (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Connect the media
        elements JS wrapper object to the MediaControlsHost JS wrapper. Then connect
        the MediaControlsHost JS wrapper to the Controller JS object.
        (WebCore::HTMLMediaElement::pageScaleFactorChanged): Revise to use new method
        for accessing the controller.

2014-06-10  Myles C. Maxfield  <mmaxfield@apple.com>

        Japanese text in Google search is rendered too low and clipped
        https://bugs.webkit.org/show_bug.cgi?id=133595

        Reviewed by Simon Fraser.

        This is a revert of r155324.

        By forcing line-height to be normal, r155324 was forcing WebKit to inspect font metrics
        to determine the height of a line. This means that if a fallback font was required to
        draw a line of text, and the fallback font had a higher ascent than the primary font,
        the entire line of text would be pushed down. If we don't force line-height to be normal,
        then we use the line-height value instead, which short circuits this mechanism, thereby
        not pushing text down.

        No new tests (because this is simply a revert)

        * css/html.css:
        (input): Deleted.

2014-06-10  Zalan Bujtas  <zalan@apple.com>

        REGRESSION (r167937): Do not use effective zoom factor while resolving media query's min-, max-(device)width/height values.
        https://bugs.webkit.org/show_bug.cgi?id=133681

        Reviewed by Simon Fraser.

        We lost the default multiplier(zoom) value of 1 with r167937 at template<typename T> T computeLength().
        Now MediaQueryEvaluator takes the current page zoom factor into account while resolving min-, max- width values.

        This patch explicitly sets the multiplier value to 1 to ensure zoom independent media query value resolving.

        Test: fast/media/media-query-with-scaled-content.html

        * css/CSSToLengthConversionData.cpp:
        (WebCore::CSSToLengthConversionData::viewportWidthFactor):
        (WebCore::CSSToLengthConversionData::viewportHeightFactor):
        * css/CSSToLengthConversionData.h:
        * css/MediaQueryEvaluator.cpp:
        (WebCore::MediaQueryEvaluator::eval):
        * testing/Internals.cpp:
        (WebCore::Internals::setPageZoomFactor):
        * testing/Internals.h:
        * testing/Internals.idl:

2014-06-10  Simon Fraser  <simon.fraser@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=133694

        Revert the part of r169733 that caused this test to start failing.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::notifyIFramesOfCompositingChange):

2014-06-10  Timothy Horton  <timothy_horton@apple.com>

        Factor repeated CFRunLoopObserver code out
        https://bugs.webkit.org/show_bug.cgi?id=133690

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/cf/RunLoopObserver.cpp: Added.
        (WebCore::RunLoopObserver::create):
        (WebCore::RunLoopObserver::~RunLoopObserver):
        (WebCore::RunLoopObserver::runLoopObserverFired):
        (WebCore::RunLoopObserver::schedule):
        (WebCore::RunLoopObserver::invalidate):
        * platform/cf/RunLoopObserver.h: Added.
        (WebCore::RunLoopObserver::isScheduled):
        (WebCore::RunLoopObserver::RunLoopObserver):
        Factor CFRunLoopObserver management code out of LayerFlushScheduler and WebKit2.

        * platform/graphics/ca/LayerFlushScheduler.h:
        * platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
        (WebCore::LayerFlushScheduler::LayerFlushScheduler):
        (WebCore::LayerFlushScheduler::~LayerFlushScheduler):
        (WebCore::LayerFlushScheduler::layerFlushCallback):
        (WebCore::LayerFlushScheduler::schedule):
        (WebCore::LayerFlushScheduler::invalidate):
        (WebCore::LayerFlushScheduler::runLoopObserverCallback): Deleted.
        Make use of WebCore::RunLoopObserver.

2014-06-10  Simon Fraser  <simon.fraser@apple.com>

        Modernize loop code in scrolling tree code
        https://bugs.webkit.org/show_bug.cgi?id=133688

        Reviewed by Anders Carlsson.

        Use new loop syntax for walking children.

        * page/scrolling/ScrollingStateNode.cpp:
        (WebCore::ScrollingStateNode::cloneAndResetChildren):
        (WebCore::ScrollingStateNode::removeChild):
        (WebCore::ScrollingStateNode::willBeRemovedFromStateTree):
        (WebCore::ScrollingStateNode::dump):
        * page/scrolling/ScrollingTreeNode.cpp:
        (WebCore::ScrollingTreeNode::removeChild):
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):

2014-06-10  Anders Carlsson  <andersca@apple.com>

        Add -[WKWebView evaluateJavaScript:completionHandler:]
        https://bugs.webkit.org/show_bug.cgi?id=133689
        <rdar://problem/17152685>

        Reviewed by Geoffrey Garen.

        * English.lproj/Localizable.strings:
        Add new localizable strings.

2014-06-10  Antti Koivisto  <antti@apple.com>

        Serialize ResourceRequests without platform request
        https://bugs.webkit.org/show_bug.cgi?id=133679

        Reviewed by Alexey Proskuryakov.

        We create platform requests in the web process just so we can serialize them. This is unnecessary work.

        * platform/network/ResourceRequestBase.h:
        (WebCore::ResourceRequestBase::encodingRequiresPlatformData):
        (WebCore::ResourceRequestBase::encodeWithoutPlatformData):
        (WebCore::ResourceRequestBase::decodeWithoutPlatformData):
        
            Add encoding and decoding functions here to avoid exposing internals.

        * platform/network/cf/ResourceRequest.h:
        (WebCore::ResourceRequest::encodingRequiresPlatformData):
        
            Allow encoding without platform data if it hasn't been created yet and there is no request body.

2014-06-10  Brady Eidson  <beidson@apple.com>

        Send more context about text selection to telephone number scanner
        <rdar://problem/16874385> and https://bugs.webkit.org/show_bug.cgi?id=133684

        Reviewed by Enrica Casucci.

        * dom/Range.cpp:
        (WebCore::rangesOverlap):Add a utility to check if two ranges overlap.
        * dom/Range.h:
        
        * editing/Editor.cpp:
        (WebCore::Editor::scanSelectionForTelephoneNumbers): Create a range that is wider than the 
          actual selection to search for phone numbers that are not completely selected yet.

2014-06-10  Alex Christensen  <achristensen@webkit.org>

        [iOS] Another unreviewed build fix after r169746.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        Prevent another unused value error.

2014-06-10  Alex Christensen  <achristensen@webkit.org>

        [iOS] Unreviewed build fix after r169746.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
        Protect startTime with !PLATFORM(IOS) to prevent a unused variable build error.

2014-06-10  Chris Fleizach  <cfleizach@apple.com>

        AX: WK2: iOS: text editing does not work
        https://bugs.webkit.org/show_bug.cgi?id=133666

        Reviewed by Mario Sanchez Prada.

        In WK2, all the text editing is handled by the WebProcess, so selectedTextRange and setSelectedTextRange
        need to be implemented, as well as posting the right value change notification.

        * accessibility/ios/AXObjectCacheIOS.mm:
        (WebCore::AXObjectCache::postPlatformNotification):
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper postValueChangedNotification]):
        (-[WebAccessibilityObjectWrapper _accessibilitySelectedTextRange]):
        (-[WebAccessibilityObjectWrapper _accessibilitySetSelectedTextRange:]):

2014-06-10  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] Stay in "memory pressure" mode until told otherwise.
        <https://webkit.org/b/133671>

        When we receive the first memory pressure signal, flip the flag in
        MemoryPressureHandler so that isUnderMemoryPressure() returns true
        from then on, until the system tells us pressure levels are back
        to normal.

        The hold-off mechanism is disabled for iOS, that wasn't actually
        needed in the first place, since the system is not going to spam
        you with tons of notifications.

        Also propagate the "critical" flag all the way from the system
        to the pressure handler. Note that we don't actually do anything
        differently based on the flag yet.

        Reviewed by Sam Weinig.

        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
        * platform/MemoryPressureHandler.h:
        (WebCore::MemoryPressureHandler::setUnderMemoryPressure):
        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::install):
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):

2014-06-10  Simon Fraser  <simon.fraser@apple.com>

        Fix logging of sticky scrolling tree nodes
        https://bugs.webkit.org/show_bug.cgi?id=133670

        Reviewed by Sam Weinig.

        ScrollingStateStickyNode::dumpProperties() dumped stickyBoxRect() twice and
        didn't dump constrainingRectAtLastLayout(), so fix that.

        * page/scrolling/ScrollingStateStickyNode.cpp:
        (WebCore::ScrollingStateStickyNode::dumpProperties):

2014-06-05  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Simplify the named grid lines resolution algorithm
        https://bugs.webkit.org/show_bug.cgi?id=133543

        Reviewed by Darin Adler.

        Named grid lines resolution algorithm can be heavily simplified by
        inserting the implicit named grid lines generated by each grid
        area (<area-name>-{start|end} for rows and columns), into the list
        of user defined named grid lines. This way we would only have to
        deal with named grid lines and forget about the named grid areas
        (as described in the specs
        http://dev.w3.org/csswg/css-grid/#grid-placement-slot).

        As a nice side effect, we'll get for free the implementation of the
        use case described in section 5.2.2 Implicit Named Areas.

        Test: fast/css-grid-layout/named-grid-lines-with-named-grid-areas-dynamic-get-set.html

        * css/StyleResolver.cpp:
        (WebCore::createImplicitNamedGridLinesFromGridArea):
        (WebCore::StyleResolver::applyProperty):
        * rendering/RenderGrid.cpp:
        (WebCore::isStartSide):
        (WebCore::gridLinesForSide):
        (WebCore::implicitNamedGridLineForSide):
        (WebCore::isNonExistentNamedLineOrArea):
        (WebCore::RenderGrid::adjustGridPositionsFromStyle):
        (WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle):
        (WebCore::RenderGrid::resolveGridPositionFromStyle):
        (WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition):
        (WebCore::gridLineDefinedBeforeGridArea): Deleted.
        (WebCore::setNamedLinePositionIfDefinedBeforeArea): Deleted.
        (WebCore::RenderGrid::adjustNamedGridItemPosition): Deleted.

2014-06-10  Kiran  <kiran.guduru@samsung.com>

        [MediaStream] Add getTracks() support to MediaStream.
        https://bugs.webkit.org/show_bug.cgi?id=133641

        Reviewed by Eric Carlson.

        A new method named getTracks is proposed to retrieve all the tracks
        of a MediaStream irrespective of the type. This method has been implementd.

        Test: fast/mediastream/MediaStream-getTracks.html

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::getTracks):
        * Modules/mediastream/MediaStream.h:
        * Modules/mediastream/MediaStream.idl:

2014-06-09  Simon Fraser  <simon.fraser@apple.com>

        Remove use of view() in RenderView code
        https://bugs.webkit.org/show_bug.cgi?id=133669

        Reviewed by Andreas Kling.

        view() in RenderView just returns *this, so no need to use it.

        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection):

2014-06-09  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Wireless route picker control should use touch event handlers
        https://bugs.webkit.org/show_bug.cgi?id=133672

        Reviewed by Brent Fulgham.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.createControls): Listen for touch events.
        (ControllerIOS.prototype.handleWirelessPickerButtonTouchStart): New, handle touch start.
        (ControllerIOS.prototype.handleWirelessPickerButtonTouchEnd): New, handle touch end.
        (ControllerIOS.prototype.handleWirelessPickerButtonTouchCancel): New, handle touch cancel.
        (ControllerIOS.prototype.handleWirelessPickerButtonClicked): Deleted.

2014-06-09  Benjamin Poulain  <benjamin@webkit.org>

        Do not use a mask when matching the return value of a function call on ARM
        https://bugs.webkit.org/show_bug.cgi?id=133614

        Reviewed by Andreas Kling.

        On ARM, we cannot have garbage on the top bits of booleans. It is faster to check the whole
        register for nullity.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::callAndBranchOnBooleanReturnValue):
        (WebCore::FunctionCall::callAndBranchOnCondition):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementFunctionCallTest):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):

2014-06-09  Ryosuke Niwa  <rniwa@webkit.org>

        Remove the bogus assertion that didn't even build.

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::formatNumberValue):

2014-06-09  Ryosuke Niwa  <rniwa@webkit.org>

        Commit the right fix.

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::formatNumberValue):

2014-06-09  Ryosuke Niwa  <rniwa@webkit.org>

        Debug build fix after r169731.

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::formatNumberValue):

2014-06-09  Simon Fraser  <simon.fraser@apple.com>

        Work towards having frames in the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=133665

        Reviewed by Tim Horton.
        
        Optionally (based on Setting) create nodes in the scrolling tree for frames which
        contain async-scrollable content. This will be used on iOS/WK2 to support accelerated
        overflow-scroll in iframes. The setting allows for testing on OS X.
        
        The change breaks an assumption in ScrollingCoordinator/AsyncScrollingCoordinator
        that we're always dealing with the main frame, and changes logic in RenderLayerCompositor
        so that we can connect the scrolling tree across frame boundaries. RenderLayerCompositor
        maintains a m_subframeScrollLayersNeedReattach flag that gets set whenever we add or remove
        scroll-coordinated layers in the current frame. When set, after updating compositing
        layers we walk child frames, and, if they have scrolling nodes, re-attach them to the
        scrolling tree (which will find the new ancestor node).

        Tests: platform/mac-wk2/tiled-drawing/scrolling/frames/coordinated-frame-in-fixed.html
               platform/mac-wk2/tiled-drawing/scrolling/frames/coordinated-frame.html

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollLayerID): Use the new "for role" way of getting the node ID.
        * page/Settings.cpp:
        * page/Settings.in: Add scrollingTreeIncludesFrames.
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
        (WebCore::AsyncScrollingCoordinator::frameViewNonFastScrollableRegionChanged): Only set
        the region for the main frame.
        (WebCore::AsyncScrollingCoordinator::frameViewForScrollingNode): updateScrollPositionAfterAsyncScroll()
        needs to know which FrameView a given nodeID is hosted in; doing a walk of the frame tree for
        non-main frames seems to be the safest way.
        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
        (WebCore::AsyncScrollingCoordinator::syncChildPositions):
        * page/scrolling/AsyncScrollingCoordinator.h:
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::coordinatesScrollingForFrameView): Consult the new setting.
        (WebCore::ScrollingCoordinator::frameViewHasSlowRepaintObjectsDidChange):
        (WebCore::ScrollingCoordinator::frameViewFixedObjectsDidChange):
        (WebCore::ScrollingCoordinator::frameViewRootLayerDidChange):
        (WebCore::ScrollingCoordinator::synchronousScrollingReasons):
        (WebCore::ScrollingCoordinator::updateSynchronousScrollingReasons):
        (WebCore::ScrollingCoordinator::setForceSynchronousScrollLayerPositionUpdates):
        (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously):
        (WebCore::ScrollingCoordinator::replaySessionStateDidChange):
        (WebCore::ScrollingCoordinator::synchronousScrollingReasonsAsText):
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::shouldUpdateScrollLayerPositionSynchronously): Deleted.
        * rendering/RenderLayerBacking.h: Rather than separate functions to get the two scrolling
        node IDs, having one scrollingNodeIDForRole() makes calling code cleaner.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
        (WebCore::RenderLayerCompositor::updateCompositingLayers):  call reattachSubframeScrollLayers()
        after a compositing tree update.
        (WebCore::RenderLayerCompositor::isAsyncScrollableStickyLayer): Deals with the various configurations
        in which we can do async scrolling of sticky elements.
        (WebCore::RenderLayerCompositor::isViewportConstrainedFixedOrStickyLayer):
        (WebCore::useCoordinatedScrollingForLayer):
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):
        (WebCore::RenderLayerCompositor::requiresCompositingForScrolling): Moved.
        (WebCore::RenderLayerCompositor::notifyIFramesOfCompositingChange): This is a bug fix;
        we only need to notify child frames, not all descendant frames.
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
        (WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers):
        (WebCore::enclosingScrollingNodeID):
        (WebCore::scrollCoordinatedAncestorInParentOfFrame):
        (WebCore::RenderLayerCompositor::reattachSubframeScrollLayers):
        (WebCore::RenderLayerCompositor::attachScrollingNode):
        (WebCore::RenderLayerCompositor::updateScrollCoordinationForThisFrame):
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
        (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
        (WebCore::RenderLayerCompositor::willRemoveScrollingLayer):
        (WebCore::isStickyInAcceleratedScrollingLayerOrViewport): Deleted.
        (WebCore::isViewportConstrainedFixedOrStickyLayer): Deleted.
        (WebCore::isMainFrameScrollingOrOverflowScrolling): Deleted.
        (WebCore::nearestScrollCoordinatedAncestor): Deleted.
        * rendering/RenderLayerCompositor.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection): Added comment.
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::setScrollingTreeIncludesFrames):
        * testing/InternalSettings.h: Removed some useless parameter names.
        * testing/InternalSettings.idl: Added setScrollingTreeIncludesFrames() setting.

2014-06-09  Benjamin Poulain  <bpoulain@apple.com>

        Improve CSSPrimitiveValue::customCSSText for ARMv7
        https://bugs.webkit.org/show_bug.cgi?id=133597

        Reviewed by Andreas Kling.

        On imgur, some script is updating some layout on timers and on scroll.

        It looks like CSSPrimitiveValue::customCSSText() is a little constrained
        by the instruction cache on ARMv7. This patch improve the situation a bit.

        First, the creation of the string itself is changed to go from two allocation to one.
        Previously, we would allocate a StringBuffer and adopt it. Now we allocate a StringImpl
        directly with the inline buffer.

        The second issue is that the compiler was generating a real copy constructor for every
        assignment of the "text" variable (likely because the variable span is so large).
        This was solved by moving the string creating into a separate function (to fix the span)
        and being careful with passing PassRef<StringImpl> around.

        Then there was the problem that the compiler was a little too aggressive with inlining
        which caused each "case" to repeat the same prologue and epilogue before formatValue().
        This was solved by adding formatNumberValue() with NEVER_INLINE to have the prologue/epilogue
        in a single place.

        On older device, that's about 3% improvement on style access. On modern ARM64/x86_64
        there is no noticeable difference.

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::formatNumberValue):
        (WebCore::CSSPrimitiveValue::formatNumberForcustomCSSText):
        (WebCore::CSSPrimitiveValue::customCSSText):
        (WebCore::formatNumber): Deleted.
        * css/CSSPrimitiveValue.h:

2014-06-09  Alex Christensen  <achristensen@webkit.org>

        [iOS WebGL] Fix EXT_shader_texture_lod.
        https://bugs.webkit.org/show_bug.cgi?id=133633

        Reviewed by Brady Eidson.

        Covered by the Khronos test (and in LayoutTests):
        conformance/extensions/ext-shader-texture-lod.html

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        Added shader texture lod name to match value from glGetString(GL_EXTENSIONS) on iOS.

2014-06-09  Benjamin Poulain  <bpoulain@apple.com>

        Document::updateStyleIfNeededForNode can get very expensive
        https://bugs.webkit.org/show_bug.cgi?id=133599

        Reviewed by Andreas Kling.

        When pages are querying their style, we first run through
        Document::updateStyleIfNeededForNode() to find if that particular node needs style recalc.

        The problem was that updateStyleIfNeededForNode() could get really expensive. For each node,
        it needs to check the whole parent chain to find if any needs style recalc.
        When web pages get a bunch of nodes and querying their style, we ended up going over a lot
        of nodes just to find there is nothing to do.

        This patch adds two tweaks to reduce the problem:
        First, before querying nodeOrItsAncestorNeedsStyleRecalc() we check if the Document is dirty at all.
        The other part is making nodeOrItsAncestorNeedsStyleRecalc() faster by removing useless elements check.

        * dom/Document.cpp:
        (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
        (WebCore::Document::updateStyleIfNeededForNode):

2014-06-09  Enrica Casucci  <enrica@apple.com>

        iOS WebKit: Crash in charactersAroundPosition.
        https://bugs.webkit.org/show_bug.cgi?id=133659
        <rdar://problem/17220870>

        Reviewed by Benjamin Poulain.

        Ensure that we stay within the vector boundaries
        when returning the characters around the position.

        * editing/VisibleUnits.cpp:
        (WebCore::charactersAroundPosition):

2014-06-09  Alexey Proskuryakov  <ap@apple.com>

        Properly reset UStringSearch object in SearchBuffer constructor.
        https://bugs.webkit.org/show_bug.cgi?id=133662
        <rdar://problem/17240136>

        Reviewed by Tim Horton.

        * editing/TextIterator.cpp: (WebCore::SearchBuffer::~SearchBuffer):

2014-06-09  Eric Carlson  <eric.carlson@apple.com>

        Automatic text track selection can select more than one track
        https://bugs.webkit.org/show_bug.cgi?id=133590

        Reviewed by Brent Fulgham.

        Test: media/video-trackmenu-selection.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::configureTextTrack): Consider the currently selected
            track, if any.

        * page/CaptionUserPreferencesMediaAF.cpp:
        (WebCore::CaptionUserPreferencesMediaAF::sortedTrackListForMenu): Drive-by change
            to make sure no non-visible text tracks are included in the track menu.

2014-06-09  Jer Noble  <jer.noble@apple.com>

        [Mac] Hang when painting media before compositing mode activated
        https://bugs.webkit.org/show_bug.cgi?id=133655

        Reviewed by Eric Carlson.

        When asked to paint(), MediaPlayerPrivateAVFoundationObjC should not create an image generator
        or a video output. These operations are synchronous, and will block the drawing thread and cause
        a spin. paint() as opposed to paintImageInContext() is only called when painting the layer tree
        and MediaPlayerPrivateAVFoundationObjC will paint by creating a AVPlayerLayer, not by painting
        frames directly into the tree.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::paint):

2014-06-09  Jer Noble  <jer.noble@apple.com>

        [Mac][MSE] Exception thrown from ~MediaPlayerPrivateMediaSourceAVFObjC().
        https://bugs.webkit.org/show_bug.cgi?id=133656

        Reviewed by Eric Carlson.

        AVSampleBufferRenderSynchronizer can't handle being passed a NULL observer, so only attempt
        to remove the time jumped or duration observer if one was actually created.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC):

2014-06-09  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Pixelsnapping empty rounded rect results in NaN radii width/height.
        https://bugs.webkit.org/show_bug.cgi?id=133654

        Reviewed by Simon Fraser.

        Empty rounded rects don't need snapping.

        Not testable.

        * platform/graphics/RoundedRect.cpp:
        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):

2014-05-21  Myles C. Maxfield  <mmaxfield@apple.com>

        REGRESSION: missing underline under CJK text
        https://bugs.webkit.org/show_bug.cgi?id=128145

        Reviewed by Darin Adler.

        This patch refactors the GlyphToPathTranslator which is used to find intersections of
        glyphs and underlines. It was modified to allow for querying these pieces of
        information:
        1) The extents of the glyph. This can be used to make the underlines skip an entire
        glyph, wholesale
        2) What kind of skipping behavior should be used
        3) The Path which represents the glyph
        There are three skipping behaviors:
        1) (SkipDescenders) The previous behavior
        2) (SkipGlyph) Make the underline skip over the entire glyph, using the extents() function
        3) (DrawOverGlyph) Make the underline plow through the glyph, ignoring any descenders

        Calculating which underlining behavior to use depends on what the base codepoint that
        originated that glyph is. This means that we have to map from glyphs to characters,
        something which is nontrivial to do. In order to solve this problem, this patch adds
        an optional vector to GlyphBuffer which represents the location in the original string
        from which a particular glyph originated. Then, when our WidthIterator code adds
        glyphs to the GlyphBuffer, we can include the extra information about where we are
        in the input string. Once this data is available, the GlyphPathTranslator can look up
        the base codepoint from which this glyph originates, and can run ICU functions on that
        codepoint.

        We can use the ICU ublock_getCode() function to find which Unicode block a particular
        codepoint comes from. If the codepoint comes from a CJK block, we will use
        DrawOverGlyph; otherwise, we will use SkipDescenders.

        Test: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-cjk.html

        * platform/graphics/Font.cpp:
        (WebCore::sharedUnderlineType): Look up the base codepoint from which this glyph
        originates, call ublock_getCode to get its Unicode block, then return
        a GlyphUnderlineType accordingly. This code is shared between SVG and non-SVG.
        * platform/graphics/Font.h: New virtual functions in GlyphToPathTranslator, as well as
        function signatures for the above two functions.
        * platform/graphics/GlyphBuffer.h: Add an optional instance member for the location
        from within the original string from which a particular glyph originates.
        (WebCore::GlyphBuffer::clear): Updated for new member.
        (WebCore::GlyphBuffer::add): Ditto.
        (WebCore::GlyphBuffer::saveOffsetsInString): Opt-in to using the new variable
        (WebCore::GlyphBuffer::offsetInString): New variable accessor.
        * platform/graphics/TextRun.h: SVG needs the TextRun to use sharedUnderlineType.
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::advanceInternal): Use GlyphBuffer's new variable (if present).
        * platform/graphics/mac/ComplexTextController.cpp:
        (WebCore::ComplexTextController::advance): Use GlyphBuffer's new variable (if present).
        * platform/graphics/mac/FontMac.mm: Implement new GlyphToPathTranslator functions.
        (WebCore::MacGlyphToPathTranslator::path):
        (WebCore::MacGlyphToPathTranslator::extents):
        (WebCore::MacGlyphToPathTranslator::underlineType): Calls sharedUnderlineType().
        (WebCore::MacGlyphToPathTranslator::moveToNextValidGlyph):
        (WebCore::MacGlyphToPathTranslator::increment):
        (WebCore::Font::dashesForIntersectionsWithRect): Ask the translator what kind of underline
        behavior should be used. React accordingly.
        (WebCore::MacGlyphToPathTranslator::nextPath): Deleted.
        (WebCore::MacGlyphToPathTranslator::incrementIndex): Deleted.
        * platform/graphics/win/UniscribeController.cpp:
        (WebCore::UniscribeController::shapeAndPlaceItem): Update to new signature of GlyphBuffer::add()
        * rendering/svg/SVGTextRunRenderingContext.cpp: Implement new GlyphToPathTranslator functions.
        (WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
        (WebCore::SVGGlyphToPathTranslator::getCurrentTransform):
        (WebCore::SVGGlyphToPathTranslator::path):
        (WebCore::SVGGlyphToPathTranslator::extents):
        (WebCore::MacGlyphToPathTranslator::underlineType): Calls sharedUnderlineType().
        (WebCore::SVGGlyphToPathTranslator::moveToNextValidGlyph):
        (WebCore::SVGGlyphToPathTranslator::increment):
        (WebCore::SVGTextRunRenderingContext::createGlyphToPathTranslator):
        (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs):
        (WebCore::SVGGlyphToPathTranslator::nextPath): Deleted.
        (WebCore::SVGGlyphToPathTranslator::incrementIndex): Deleted.
        * rendering/svg/SVGTextRunRenderingContext.h: SVG needs the TextRun to use sharedUnderlineType.

2014-06-09  Alex Christensen  <achristensen@webkit.org>

        [iOS WebGL] Implement OES_vertex_array_object for iOS.
        https://bugs.webkit.org/show_bug.cgi?id=133629

        Reviewed by Brady Eidson.

        Covered by the Khronos test (and in LayoutTests):
        conformance/extensions/oes-vertex-array-object.html

        * platform/graphics/ios/GraphicsContext3DIOS.h:
        Added OpenGL vertex array function renaming for iOS adding the OES suffix.
        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        (WebCore::Extensions3DOpenGL::createVertexArrayOES):
        (WebCore::Extensions3DOpenGL::deleteVertexArrayOES):
        (WebCore::Extensions3DOpenGL::isVertexArrayOES):
        (WebCore::Extensions3DOpenGL::bindVertexArrayOES):
        Added isVertexArrayObjectSupported and support for iOS.
        (WebCore::Extensions3DOpenGL::supportsExtension):
        Added iOS name for GL_OES_vertex_array_object extension.
        * platform/graphics/opengl/Extensions3DOpenGL.h:
        Added isVertexArrayObjectSupported for iOS.        

2014-06-09  Eric Carlson  <eric.carlson@apple.com>

        [Mac] caption size is not update immediately when system preferences change
        https://bugs.webkit.org/show_bug.cgi?id=133598

        Reviewed by Brent Fulgham.

        * Modules/mediacontrols/MediaControlsHost.cpp:
        (WebCore::MediaControlsHost::updateCaptionDisplaySizes): New.
        * Modules/mediacontrols/MediaControlsHost.h:

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::captionPreferencesChanged): Tell the controls host to update sizes.

2014-06-09  Daniel Bates  <dabates@apple.com>

        [iOS] Amazon app: Cannot interact with product page after tapping on product image
        https://bugs.webkit.org/show_bug.cgi?id=133559
        <rdar://problem/16332749>

        Reviewed by Oliver Hunt.

        As a workaround for issues in the Amazon app, mark the attribute navigator.geolocation as
        replaceable so that we don't throw a JavaScript type error when assigning to an instance
        attribute that shadows it. At the time of writing the first such assignment to is ignored.
        See <https://bugs.webkit.org/show_bug.cgi?id=133648> for more details.

        When loading a product page in the Amazon app it overwrites the readonly property geolocation
        on an object that extends the Navigator object. In strict mode, this operation is not honored
        and is treated as a JavaScript type error, which stops JavaScript execution. Therefore, the
        product page does not behave as intended. In contrast, this operation would not be honored in
        non-strict mode and would not be treated as a JavaScript type error.

        Test: js/dom/shadow-navigator-geolocation-in-strict-mode-does-not-throw.html

        * Modules/geolocation/NavigatorGeolocation.idl:

2014-06-09  Andreas Kling  <akling@apple.com>

        HTML*ListElement wrappers have custom getOwnPropertySlot()s for no good reason.
        <https://webkit.org/b/133653>

        The JavaScript bindings generator was a bit overzealous in forcing every
        interface with "List" in the name to have its attributes on the instance.
        This caused some elements (HTMLUListElement, etc.) to automatically opt out
        of eager prototype attribute reification.

        Reviewed by Mark Hahnenberg.

        * bindings/scripts/CodeGeneratorJS.pm:
        (InterfaceRequiresAttributesOnInstance):

2014-06-09  Jer Noble  <jer.noble@apple.com>

        ASSERT(!m_inRemovedLastRefFunction) in Element::addShadowRoot while destroying a document
        https://bugs.webkit.org/show_bug.cgi?id=133450

        Reviewed by Eric Carlson.

        ensureUserAgentShadowRoot() is being called when a media element is removed from its document
        in HTMLMediaElement::removedFrom() because Node::removedFrom() has not yet run and removed the
        InDocument flag from the node.  Rather than calling configureMediaControls() at this point
        just expilictly remove the media controls if present.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):

2014-06-09  Mark Hahnenberg  <mhahnenberg@apple.com>

        Rebaseline bindings tests after r169703

        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::JSTestActiveDOMObjectPrototype::finishCreation):
        (WebCore::JSTestActiveDOMObjectPrototype::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestActiveDOMObject.h:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::JSTestCustomNamedGetterPrototype::finishCreation):
        (WebCore::JSTestCustomNamedGetterPrototype::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.h:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::JSTestEventConstructorPrototype::finishCreation):
        (WebCore::JSTestEventConstructorPrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSTestEventConstructor::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestEventConstructor.h:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::JSTestEventTargetPrototype::finishCreation):
        (WebCore::JSTestEventTargetPrototype::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestEventTarget.h:
        * bindings/scripts/test/JS/JSTestException.cpp:
        (WebCore::JSTestExceptionPrototype::finishCreation):
        (WebCore::JSTestExceptionPrototype::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestException.h:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        (WebCore::JSTestGenerateIsReachablePrototype::finishCreation):
        (WebCore::JSTestGenerateIsReachablePrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSTestGenerateIsReachable::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.h:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfacePrototype::finishCreation):
        (WebCore::JSTestInterfacePrototype::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestInterface.h:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::JSTestMediaQueryListListenerPrototype::finishCreation):
        (WebCore::JSTestMediaQueryListListenerPrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSTestMediaQueryListListener::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.h:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorPrototype::finishCreation):
        (WebCore::JSTestNamedConstructorPrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSTestNamedConstructor::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestNamedConstructor.h:
        * bindings/scripts/test/JS/JSTestNode.cpp:
        (WebCore::JSTestNodePrototype::finishCreation):
        (WebCore::JSTestNodePrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSTestNode::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestNode.h:
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        (WebCore::JSTestNondeterministicPrototype::finishCreation):
        (WebCore::JSTestNondeterministicPrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSTestNondeterministic::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestNondeterministic.h:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObjPrototype::finishCreation):
        (WebCore::JSTestObjPrototype::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestObj.h:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        (WebCore::JSTestOverloadedConstructorsPrototype::finishCreation):
        (WebCore::JSTestOverloadedConstructorsPrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSTestOverloadedConstructors::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.h:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfacePrototype::finishCreation):
        (WebCore::JSTestSerializedScriptValueInterfacePrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSTestSerializedScriptValueInterface::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::JSTestTypedefsPrototype::finishCreation):
        (WebCore::JSTestTypedefsPrototype::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSTestTypedefs.h:
        * bindings/scripts/test/JS/JSattribute.cpp:
        (WebCore::JSattributePrototype::finishCreation):
        (WebCore::JSattributePrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSattribute::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSattribute.h:
        * bindings/scripts/test/JS/JSreadonly.cpp:
        (WebCore::JSreadonlyPrototype::finishCreation):
        (WebCore::JSreadonlyPrototype::getOwnPropertySlot): Deleted.
        (WebCore::JSreadonly::getOwnPropertySlot): Deleted.
        * bindings/scripts/test/JS/JSreadonly.h:

2014-06-09  Simon Fraser  <simon.fraser@apple.com>

        Group the methods in InternalSettings.idl
        https://bugs.webkit.org/show_bug.cgi?id=133652

        Reviewed by Tim Horton.

        Group methods by topic.

        * testing/InternalSettings.idl:

2014-06-05  Mark Hahnenberg  <mhahnenberg@apple.com>

        Eagerly reify DOM prototype attributes
        https://bugs.webkit.org/show_bug.cgi?id=133558

        Reviewed by Oliver Hunt.

        No new tests.

        This allows us to get rid of a lot of the additional overhead of pushing DOM attributes up into the prototype. 
        By eagerly reifying the custom getters and setters into the actual JSObject we avoid having to override 
        getOwnPropertySlot for all of the DOM prototypes, which is a lot of the overhead of doing property lookups on 
        DOM wrappers.

        * bindings/scripts/CodeGeneratorJS.pm:
        (prototypeHashTableAccessor): Changed to pass along the VM.
        (AttributeShouldBeOnInstanceForCompatibility): We were being overly conservative in regard to touch events. 
        This caused us to store the touch event handler getters and setters on the JSElement instance, which caused
        us to override getOwnPropertySlot for every JSElement subclass.
        (InstanceOverridesGetOwnPropertySlot): This was being overly paranoid about generate a getOwnPropertySlot if
        there was going to be a "constructor" property, even though we handled this in another place already.
        (GenerateHeader): Generate a finishCreation for prototypes unless it's the JSDOMWindow. We can't correctly 
        handle the DOMWindow in this version of the patch because reifying the static properties requires a global object,
        which hasn't been created yet when the prototype for the window object is being created.
        (GenerateImplementation): Generate the finishCreation calls to reifyStaticProperties.

2014-06-09  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r169681): Three tests are broken
        https://bugs.webkit.org/show_bug.cgi?id=133646

        Reviewed by Tim Horton.

        r169681 removed platformFocusRingMaxWidth() override, which returned either 0 or 9
        on Mac. But the cross-platform default is 3, so this changed Mac behavior.

        I'm not entirely sure why the cross-platform default is 3 (it was also added in r168397),
        but restoring the override to return 0 fixes test cases.

        While at it, also added final/override, and removed some functions that were only
        needed by subclasses, which we now have none.

        * rendering/RenderThemeMac.h:
        (WebCore::RenderThemeMac::supportsControlTints): Deleted.
        (WebCore::RenderThemeMac::scrollbarControlSizeForPart): Deleted.
        (WebCore::RenderThemeMac::supportsSelectionForegroundColors): Deleted.
        (WebCore::RenderThemeMac::supportsClosedCaptioning): Deleted.
        (WebCore::RenderThemeMac::updateActiveState): Deleted.
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::platformFocusRingMaxWidth):
        (WebCore::RenderThemeMac::setPopupButtonCellState):
        (WebCore::RenderThemeMac::paintSliderThumb):
        (WebCore::RenderThemeMac::setSearchCellState):
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
        (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
        (WebCore::RenderThemeMac::paintSearchFieldResultsButton):

2014-06-09  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] Bound RasterShapeInterval size to int
        https://bugs.webkit.org/show_bug.cgi?id=133576

        Reviewed by Simon Fraser.

        Everything in the code assumes that the interval size will always fit
        in an int. However, to make sure there are no negatives, the
        RasterShapeInterval constructor takes an unsigned. This clamps that
        value to make sure we can't overflow an int later.

        * rendering/shapes/RasterShape.h:
        (WebCore::RasterShapeIntervals::RasterShapeIntervals):

2014-06-09  Zalan Bujtas  <zalan@apple.com>

        [iOS] Gaps below and to the right of the video controls on devour.com
        https://bugs.webkit.org/show_bug.cgi?id=133607

        Reviewed by Simon Fraser.

        Non-toplevel compositing layers are device pixel aligned. In order to render the content
        to the same position as if the layer was not aligned, the graphics layer needs to be translated.
        CALayer::bounds is set to compensate for the shifted layer. However, we should not change the layer's
        size as that stretches the content and results in overlaps/gaps/extra fuzziness.

        Test: compositing/contents-scale/hidpi-compositing-layer-positioned-on-scaled-context.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateGeometry):
        (WebCore::GraphicsLayerCA::computePixelAlignment): remove old epsilon adjustment code.
        * platform/graphics/ca/GraphicsLayerCA.h:

2014-06-09  Zalan Bujtas  <zalan@apple.com>

        [SVG] Subpixel rendering: Mask with transformed text does not render.
        https://bugs.webkit.org/show_bug.cgi?id=133626
        <rdar://problem/17123070>

        Reviewed by Simon Fraser.

        Replace IntRect::infiniteRect() with Layout::infiniteRect(). A transformed IntRect::infiniteRect()
        overflows and produces invalid repaint rect. -also remove IntRect::infiniteRect() as no one calls
        it anymore.

        Tests: svg/masking/mask-transformed-text-missing-expected.svg
               svg/masking/mask-transformed-text-missing.svg

        * platform/graphics/IntRect.h:
        (WebCore::IntRect::infiniteRect): Deleted.
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::renderSubtreeToImageBuffer):

2014-06-08  Dean Jackson  <dino@apple.com>

        [Mac] checkboxes and radio buttons animate incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=133619
        <rdar://problem/16478676>

        Reviewed by Sam Weinig.

        As many people have noticed, the new checkboxes and radio
        buttons jump around during their animation. To fix this
        I've added yet another magic set of numbers to our
        native form positioning - this time the placement
        of the controls when rendering on the animated path.
        This is quite annoying, since there doesn't appear
        to be any pattern to the offsets (or margins) given
        a control size, and this case also needed a sub-pixel
        offset to display correctly on retina machines.

        * platform/mac/ThemeMac.mm:
        (WebCore::checkboxMargins): Add comment so I know what the values mean.
        (WebCore::checkboxOffsets): Add the magic translation values for animated states.
        (WebCore::radioMargins): Ditto.
        (WebCore::radioOffsets):
        (WebCore::paintToggleButton): Paint with these new offsets.

2014-06-07  Dean Jackson  <dino@apple.com>

        Regression r168397 - Form layout is incorrect on OS X Yosemite
        https://bugs.webkit.org/show_bug.cgi?id=133612
        <rdar://problem/16850492>
        <rdar://problem/17016914>

        Reviewed by Anders Carlson.

        Revision 168397 introduced a new animated style of form controls. Part of
        it included extending the margins for the controls to take into account the
        focus ring that animates in from a large radius to a small radius. This
        caused two problems:

        - the incorrect margins broke many layouts
        - despite increased margins, there were still some areas
          that did not repaint correctly.

        Restore the old margins and (temporarily) turn off focus ring animation.
        Bad layout is much worse than a missing animation. Another benefit
        of this is that we will use less memory.

        * platform/graphics/mac/GraphicsContextMac.mm:
        (WebCore::drawFocusRingToContextAtTime): Pass in a time far far far in the future to
        get the static rendering.
        * platform/mac/ThemeMac.mm:
        (WebCore::checkboxMargins): Restore correct margins.
        (WebCore::radioMargins): Ditto.
        (WebCore::drawCellFocusRing): New method that calls WKSI with a future time.
        (WebCore::paintToggleButton): Call the new wrapper.
        (WebCore::buttonMargins): Restore correct margins.
        (WebCore::paintButton): Call the new wrapper.
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintMenuList): Use a future time.
        (WebCore::RenderThemeMac::platformFocusRingMaxWidth): Deleted. Use old outline value.

2014-05-29  Anders Carlsson  <andersca@apple.com>

        HTTPHeaderMap should not derive from HashMap
        https://bugs.webkit.org/show_bug.cgi?id=133392

        Reviewed by Darin Adler.

        Use a HashMap member variable instead.

        * WebCore.exp.in:
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::responseReceived):
        * platform/network/HTTPHeaderMap.cpp:
        (WebCore::HTTPHeaderMap::copyData):
        (WebCore::HTTPHeaderMap::adopt):
        (WebCore::HTTPHeaderMap::get):
        (WebCore::HTTPHeaderMap::set):
        (WebCore::HTTPHeaderMap::add):
        (WebCore::HTTPHeaderMap::contains):
        (WebCore::HTTPHeaderMap::find):
        (WebCore::HTTPHeaderMap::remove):
        (WebCore::HTTPHeaderMap::keys):
        * platform/network/HTTPHeaderMap.h:
        (WebCore::HTTPHeaderMap::isEmpty):
        (WebCore::HTTPHeaderMap::size):
        (WebCore::HTTPHeaderMap::clear):
        (WebCore::HTTPHeaderMap::begin):
        (WebCore::HTTPHeaderMap::end):
        (WebCore::HTTPHeaderMap::operator==):
        (WebCore::HTTPHeaderMap::operator!=):
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::adopt):
        * platform/network/ResourceRequestBase.h:
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::adopt):
        * platform/network/ResourceResponseBase.h:
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::createRequest):

2014-06-07  Zan Dobersek  <zdobersek@igalia.com>

        Use C++11 lambdas to construct FileThread::Task objects
        https://bugs.webkit.org/show_bug.cgi?id=133079

        Reviewed by Darin Adler.

        Have FileThread::Task constructor take in a std::function<void ()>-like object
        as the second parameter. Much like with ScriptExecutionContext::Task, the idea here
        is to use inlined C++11 lambdas in FileThread::postTask() calls. Because FileThread::Task
        also requires an instance pointer, a brace-init list is passed to these calls, passing
        in the instance pointer as the first parameter and the C++11 lambda as the second.

        FileThread::postTask() now takes in a FileThread::Task rvalue and moves it onto the heap
        and into the queue.

        In AsyncFileStream.cpp, calls to FileThread::postTask() are updated to use C++11 lambdas.
        Uses of MainThreadTask are also replaced by C++11 lambdas. This modernizes the code and
        removes a lot of helper functions.

        FileThread::Task doesn't use CrossThreadCopier anymore. Instead, we manually produce
        thread-safe copies as necessary. At the moment this approach produces another copy when
        passing the freshly-copied object into the lambda, but this will be avoidable once we
        make C++14 and the lambda capture expression support mandatory.

        * 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):
        (WebCore::didStart): Deleted.
        (WebCore::AsyncFileStream::startOnFileThread): Deleted.
        (WebCore::derefProxyOnMainThread): Deleted.
        (WebCore::AsyncFileStream::stopOnFileThread): Deleted.
        (WebCore::didGetSize): Deleted.
        (WebCore::AsyncFileStream::getSizeOnFileThread): Deleted.
        (WebCore::didOpen): Deleted.
        (WebCore::AsyncFileStream::openForReadOnFileThread): Deleted.
        (WebCore::AsyncFileStream::openForWriteOnFileThread): Deleted.
        (WebCore::AsyncFileStream::closeOnFileThread): Deleted.
        (WebCore::didRead): Deleted.
        (WebCore::AsyncFileStream::readOnFileThread): Deleted.
        (WebCore::didWrite): Deleted.
        (WebCore::AsyncFileStream::writeOnFileThread): Deleted.
        (WebCore::didTruncate): Deleted.
        (WebCore::AsyncFileStream::truncateOnFileThread): Deleted.
        * fileapi/AsyncFileStream.h:
        * fileapi/FileThread.cpp:
        (WebCore::FileThread::postTask):
        * fileapi/FileThread.h:
        (WebCore::FileThread::Task::Task):

2014-06-07  Zan Dobersek  <zdobersek@igalia.com>

        Pass C++11 lambdas to callOnMainThread() calls in IconDatabase
        https://bugs.webkit.org/show_bug.cgi?id=133374

        Reviewed by Darin Adler.

        Use C++11 lambads to inline the main thread tasks into the calling code,
        modernizing the look of the code and removing a few static methods and
        classes that were used as helpers.

        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::scheduleOrDeferSyncTimer):
        (WebCore::IconDatabase::performURLImport):
        (WebCore::IconDatabase::dispatchDidImportIconURLForPageURLOnMainThread):
        (WebCore::IconDatabase::dispatchDidImportIconDataForPageURLOnMainThread):
        (WebCore::IconDatabase::dispatchDidRemoveAllIconsOnMainThread):
        (WebCore::IconDatabase::dispatchDidFinishURLImportOnMainThread):
        (WebCore::IconDatabase::notifyPendingLoadDecisionsOnMainThread): Deleted.
        (WebCore::IconDatabase::performScheduleOrDeferSyncTimer): Deleted.
        (WebCore::IconDatabase::performScheduleOrDeferSyncTimerOnMainThread): Deleted.
        (WebCore::ClientWorkItem::ClientWorkItem): Deleted.
        (WebCore::ClientWorkItem::~ClientWorkItem): Deleted.
        (WebCore::ImportedIconURLForPageURLWorkItem::ImportedIconURLForPageURLWorkItem): Deleted.
        (WebCore::ImportedIconURLForPageURLWorkItem::~ImportedIconURLForPageURLWorkItem): Deleted.
        (WebCore::ImportedIconURLForPageURLWorkItem::performWork): Deleted.
        (WebCore::ImportedIconDataForPageURLWorkItem::ImportedIconDataForPageURLWorkItem): Deleted.
        (WebCore::ImportedIconDataForPageURLWorkItem::~ImportedIconDataForPageURLWorkItem): Deleted.
        (WebCore::ImportedIconDataForPageURLWorkItem::performWork): Deleted.
        (WebCore::RemovedAllIconsWorkItem::RemovedAllIconsWorkItem): Deleted.
        (WebCore::RemovedAllIconsWorkItem::performWork): Deleted.
        (WebCore::FinishedURLImport::FinishedURLImport): Deleted.
        (WebCore::FinishedURLImport::performWork): Deleted.
        (WebCore::performWorkItem): Deleted.
        * loader/icon/IconDatabase.h:

2014-06-07  Zan Dobersek  <zdobersek@igalia.com>

        Replace uses of CrossThreadTask in DefaultSharedWorkerRepository, WorkerMessagingProxy with C++11 lambdas
        https://bugs.webkit.org/show_bug.cgi?id=133375

        Reviewed by Darin Adler.

        Uses of CrossThreadTask in the two classes are replaced with C++11 lambdas.
        The necessary cross-thread copies are created manually and passed into the
        lambdas by value, removing the need for CrossThreadTask and its use of CrossThreadCopier.

        Remove the explicit use of this pointer in some lambdas -- it is captured automatically when
        capturing by value, so enforcing its capturing through explicit use is not necessary.

        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::postExceptionToWorkerObject):
        (WebCore::SharedWorkerProxy::postConsoleMessageToWorkerObject):
        (WebCore::postExceptionTask): Deleted.
        (WebCore::postConsoleMessageTask): Deleted.
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
        (WebCore::WorkerMessagingProxy::postConsoleMessageToWorkerObject):
        (WebCore::WorkerMessagingProxy::workerObjectDestroyed):
        (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
        (WebCore::WorkerMessagingProxy::connectToInspector):
        (WebCore::WorkerMessagingProxy::disconnectFromInspector):
        (WebCore::WorkerMessagingProxy::sendMessageToInspector):
        (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
        (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
        (WebCore::WorkerMessagingProxy::reportPendingActivity):
        (WebCore::postConsoleMessageTask): Deleted.
        (WebCore::WorkerMessagingProxy::workerObjectDestroyedInternal): Deleted.
        (WebCore::connectToWorkerGlobalScopeInspectorTask): Deleted.
        (WebCore::disconnectFromWorkerGlobalScopeInspectorTask): Deleted.
        (WebCore::dispatchOnInspectorBackendTask): Deleted.
        * workers/WorkerMessagingProxy.h:

2014-06-06  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Scheme of content utils should be compared in an ASCII case-insensitive manner
        https://bugs.webkit.org/show_bug.cgi?id=133502

        Reviewed by Darin Adler.

        According to spec, scheme must be compared in an ASCII case-insensitive manner by user agents.

        Covered by existing tests.

        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::isProtocolWhitelisted):

2014-06-06  Andreas Kling  <akling@apple.com>

        Indexed getters should return values directly on the PropertySlot.
        <https://webkit.org/b/133586>

        Make indexed getters more efficient by using PropertySlot::setValue()
        to pass the value directly back through the slot, instead of giving it
        a function pointer that JSC would then immediately call back through
        to retrieve the value.

        The function pointer approach would make sense if we did inline caching
        of indexed getters but since we currently don't, this is pure overhead.

        Reviewed by Darin Adler.

        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::JSCSSStyleDeclaration::getOwnPropertySlotDelegate):
        (WebCore::cssPropertyGetterPixelOrPosPrefixCallback): Deleted.
        (WebCore::cssPropertyGetterCallback): Deleted.
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        (WebCore::JSDOMWindow::getOwnPropertySlotByIndex):
        (WebCore::indexGetter): Deleted.
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (GenerateHeader):
        (GetIndexedGetterExpression):
        (GenerateImplementation):
        * bridge/runtime_array.cpp:
        (JSC::RuntimeArray::getOwnPropertySlot):
        (JSC::RuntimeArray::getOwnPropertySlotByIndex):
        (JSC::RuntimeArray::indexGetter): Deleted.
        * bridge/runtime_array.h:

2014-06-06  Brent Fulgham  <bfulgham@apple.com>

        GenericCueData elements prematurely removed
        https://bugs.webkit.org/show_bug.cgi?id=133588

        Reviewed by Eric Carlson.

        Add a 'removeCompletedCues' method instead of using the 'resetCueValues' method
        after processing new cues. We do not want to reset cue state if we have pending
        cues that are being extended by future updates (such as paint-on cues).

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processCue):  Call new 'removeCompletedCues' method.
        (WebCore::InbandTextTrackPrivateAVF::removeCompletedCues): Added.
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:

2014-06-06  Brady Eidson  <beidson@apple.com>

        Initialize a char* that needs to be initialized.
        <rdar://problem/15840022> and https://bugs.webkit.org/show_bug.cgi?id=133585

        Reviewed by Mark Rowe.

        r152134 (erroneously) removed this initialization.

        * platform/sql/SQLiteStatement.cpp:
        (WebCore::SQLiteStatement::prepare): tail should start out initialized to 0.

2014-06-06  Alexey Proskuryakov  <ap@apple.com>

        [iOS] Support pasting HTML
        https://bugs.webkit.org/show_bug.cgi?id=133581
        <rdar://problem/17070305>

        Reviewed by Enrica Casucci.

        We can probably share a lot of code between Mac and iOS here, but for now, just
        implement the unimplemented functions.

        * editing/ios/EditorIOS.mm: (WebCore::Editor::WebContentReader::readHTML):
        Implemented based on WebArchive reading code above, and on Mac version of readHTML.
        Unlike on Mac, we don't need to support Microsoft CF_HTML format, as nothing
        generates it.

        * platform/ios/PasteboardIOS.mm:
        (WebCore::Pasteboard::read):
        (WebCore::Pasteboard::supportedPasteboardTypes):
        Added HTML support, as the second preferred format after WebArchive.

2014-06-06  Alexey Proskuryakov  <ap@apple.com>

        Try to fix the build after http://trac.webkit.org/changeset/169655

        Unfortunately, the fix is very fragile, and will likely not work for some SDKs
        or possibly local headers - all OS versions have multiple SecBsse.h headers with
        different definitions for SecIdentityRef.

        We'll see.

        * WebCore.exp.in:

2014-06-06  Dan Bernstein  <mitz@apple.com>

        WebCore part of <rdar://problem/17095692> [iOS] Client-certificate authentication isn’t working
        https://bugs.webkit.org/show_bug.cgi?id=133527

        Reviewed by Darin Adler.

        * WebCore.exp.in: Exported some Credential member functions.

2014-06-06  Dean Jackson  <dino@apple.com>

        [iOS WebGL] Float texture extension has a slightly different name
        https://bugs.webkit.org/show_bug.cgi?id=133580
        <rdar://problem/17113451>

        Reviewed by Brady Eidson.

        Floating point textures were not available on iOS, because we were
        looking for the wrong extension.

        Covered by the Khronos test (and in LayoutTests):
        conformance/extensions/oes-texture-float.html

        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        (WebCore::Extensions3DOpenGL::supportsExtension): Look for GL_OES_texture_float
        as well as GL_ARB_texture_float.
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::texImage2D): Increase the set of things skipped
        on PLATFORM(IOS) since they are supported natively there.

2014-06-05  David Hyatt  <hyatt@apple.com>

        REGRESSION: Hit testing of composited elements is broken in new multicolumn layout.
        https://bugs.webkit.org/show_bug.cgi?id=133522 (<rdar://problem/17060556>)
        
        Reviewed by Simon Fraser.

        Hit testing for the new columns doesn't care about compositing but does still
        need a pagination layer set to work. The old column code didn't care about this
        because it was top down (and wrong). The new code lets each layer paint and hit
        test its own fragments, so having a pagination layer set suddenly becomes relevant
        for composited layers.
    
        The solution is to cache whether or not the pagination layer crosses a compositing
        boundary, and then to force call sites of enclosingPaginationLayer to pass an argument
        indicating whether compositing layers should be included. Typically painting wants to
        exclude them but hit testing wants to include them.

        * page/FrameView.cpp:
        (WebCore::updateLayerPositionFlags):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::updatePagination):
        (WebCore::transparencyClipBox):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::enclosingPaginationLayerInSubtree):
        (WebCore::RenderLayer::collectFragments):
        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::hitTestTransformedLayerInFragments):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):

2014-06-06  Kiran  <kiran.guduru@samsung.com>

        [MediaStream] 'get' prefix is missing for capabilities and constraints.
        https://bugs.webkit.org/show_bug.cgi?id=133573

        Reviewed by Eric Carlson.

        Modified the existing MediaStreamTrack.html to test the changes.

        As per the Media Capture and Streams spec method names constreaints and
        capabilities should be prefixed by 'get'. So updated the method names.

        * Modules/mediastream/MediaStreamTrack.cpp:
        (WebCore::MediaStreamTrack::getConstraints):
        (WebCore::MediaStreamTrack::getCapabilities):
        (WebCore::MediaStreamTrack::constraints): Deleted.
        (WebCore::MediaStreamTrack::capabilities): Deleted.
        * Modules/mediastream/MediaStreamTrack.h:
        * Modules/mediastream/MediaStreamTrack.idl:

2014-06-05  Brent Fulgham  <bfulgham@apple.com>

        REGRESSION(169440): Repro crash when playing a video with captions
        https://bugs.webkit.org/show_bug.cgi?id=133459
        <rdar://problem/17079081>

        Reviewed by Eric Carlson.

        The change I made in r169440 introduced a crash for paint-on captions. This
        resolves the problem as follows:
        1. No longer attempt to modify the start/endTime in the TextTrack implementation.
        2. Check for extensions to existing cues when we are about to add new arriving
           cues. If they extend a current pending cue, don't set an end-time for the
           pending cue, and throw away the new duplicate. Otherwise set the end time
           as previously and continue.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::hasCue): Remove 'doesExtendCue' case since this is
        no longer possible.
        * platform/graphics/InbandTextTrackPrivateClient.h:
        (WebCore::GenericCueData::doesExtendCueData): Added.
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processCue): Check for cues extending
        other cues and handle appropriately.

2014-06-06  Brent Fulgham  <bfulgham@apple.com>

        ROLLOUT: r169630: Caused a retain cycle.
        https://bugs.webkit.org/show_bug.cgi?id=133463
        <rdar://problem/17098100>

        Rolling out this change as it introduced a retain cycle.

        * Modules/mediacontrols/MediaControlsHost.cpp:
        (WebCore::MediaControlsHost::setControllerJSObject): Deleted.
        * Modules/mediacontrols/MediaControlsHost.h:
        (WebCore::MediaControlsHost::controllerJSValue):
        (WebCore::MediaControlsHost::setControllerJSValue):
        (WebCore::MediaControlsHost::controllerJSObject): Deleted.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):

2014-06-05  Dean Jackson  <dino@apple.com>

        StyleResolver doesn't compile without CSS_GRID_LAYOUT enabled
        https://bugs.webkit.org/show_bug.cgi?id=133568

        Reviewed by Tim Horton.

        * css/StyleResolver.cpp:
        (WebCore::isDisplayGridBox): Add UNUSED_PARAM.

2014-06-05  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Region box incorrectly overlaps floating box
        https://bugs.webkit.org/show_bug.cgi?id=133545

        Reviewed by David Hyatt.

        A region box creates a BFC and it should not overlap a floating box in the same formatting context: http://www.w3.org/TR/CSS21/visuren.html#bfc-next-to-float

        Test: fast/regions/region-as-bfc-avoids-float.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::avoidsFloats):

2014-06-05  Yoav Weiss  <yoav@yoav.ws>

        Align srcset parser with recent spec changes
        https://bugs.webkit.org/show_bug.cgi?id=133504

        Reviewed by Darin Adler.

        New tests were added to fast/hidpi/image-srcset-invalid-descriptor.html

        The srcset parser changes align it with the spec:
        http://picture.responsiveimages.org/#parse-srcset-attr.
        The spec changes are meant to give the parser better future
        compatibility, and enable it to work well with the 'w' descriptor, the
        soon to be added 'h' descriptor and function descriptors (e.g.
        future-descriptor(a, b, c) ).

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::setBestFitURLAndDPRFromImageCandidate):
        (WebCore::HTMLImageElement::parseAttribute):
        * html/HTMLImageElement.h:
        * html/parser/HTMLParserIdioms.h:
        (WebCore::isHTMLSpace):
        (WebCore::isComma):
        (WebCore::isHTMLSpaceOrComma):
        * html/parser/HTMLPreloadScanner.cpp:
        (WebCore::TokenPreloadScanner::StartTagScanner::processAttributes):
        * html/parser/HTMLSrcsetParser.cpp:
        (WebCore::compareByDensity):
        (WebCore::appendDescriptorAndReset):
        (WebCore::appendCharacter):
        (WebCore::isEOF):
        (WebCore::tokenizeDescriptors):
        (WebCore::stringViewToFloat):
        (WebCore::stringViewToInt):
        (WebCore::parseDescriptors):
        (WebCore::parseImageCandidatesFromSrcsetAttribute):
        (WebCore::pickBestImageCandidate):
        (WebCore::bestFitSourceForImageAttributes):
        (WebCore::compareByScaleFactor): Deleted.
        (WebCore::parseImagesWithScaleFromSrcsetAttribute): Deleted.
        * html/parser/HTMLSrcsetParser.h:
        (WebCore::DescriptorParsingResult::DescriptorParsingResult):
        (WebCore::DescriptorParsingResult::hasDensity):
        (WebCore::DescriptorParsingResult::hasWidth):
        (WebCore::DescriptorParsingResult::hasHeight):
        (WebCore::DescriptorParsingResult::density):
        (WebCore::DescriptorParsingResult::resourceWidth):
        (WebCore::DescriptorParsingResult::resourceHeight):
        (WebCore::DescriptorParsingResult::setResourceWidth):
        (WebCore::DescriptorParsingResult::setResourceHeight):
        (WebCore::DescriptorParsingResult::setDensity):
        (WebCore::ImageCandidate::ImageCandidate):
        (WebCore::ImageCandidate::toString):
        (WebCore::ImageCandidate::url):
        (WebCore::ImageCandidate::setDensity):
        (WebCore::ImageCandidate::density):
        (WebCore::ImageCandidate::resourceWidth):
        (WebCore::ImageCandidate::srcOrigin):
        (WebCore::ImageCandidate::isEmpty):
        (WebCore::ImageWithScale::ImageWithScale): Deleted.
        (WebCore::ImageWithScale::imageURL): Deleted.
        (WebCore::ImageWithScale::scaleFactor): Deleted.
        * html/parser/ParsingUtilities.h: Renamed from Source/WebCore/html/track/ParsingUtilities.h.
        (skipExactly):
        (skipUntil):
        (skipWhile):
        (reverseSkipWhile):

2014-06-05 Wenson Hsieh  <wenson_hsieh@apple.com>

        Current media controls look different from previous media controls. Adjusted CSS to make media elements more similar by adding padding, adjusting hues/svg, resizing elements, etc.

        https://bugs.webkit.org/show_bug.cgi?id=133521

        Reviewed by Eric Carlson.

        The main issues:
        - The widths between elements of both audio and video players are incorrect.
        - The hues of audio player elements are incorrect.
        - The hues of video player elements are content dependent (refer to full-screen mode), and this cannot be exactly replicated using just css. This patch only attempts to make them more similar.
        - The height of the audio player is incorrect.

        Test: platform/ios-sim/media/audio-width.html

        * Modules/mediacontrols/mediaControlsiOS.css: Updated style elements for audio/video elements.
        (::-webkit-media-controls): Enforce a minimum width on audio/video controls.
        (audio): Enforce a minimum width on audio elements.
        (audio::-webkit-media-controls): see below
        (audio::-webkit-media-controls-wireless-playback-picker-button): modified SVG, hue and width/height.
        (audio::-webkit-media-controls-panel): adjusted hue, added left/right padding.
        (audio::-webkit-media-controls-fullscreen-button): removed. There's no fullscreen for audio anyways.
        (audio::-webkit-media-controls-current-time-display): adjusted font size, added left padding.
        (audio::-webkit-media-controls-time-remaining-display): adjusted font size, added right padding.

        (video::-webkit-media-controls-panel): adjusted hue, added left/right padding.
        (video::-webkit-media-controls-current-time-display): added left padding.
        (video::-webkit-media-controls-time-remaining-display): added right padding.
        (video::-webkit-media-controls-wireless-playback-picker-button): modified SVG, hue, opacity and width/height.
        (video::-webkit-media-controls-fullscreen-button): modified SVG, hue, opacity, and width/height. In particular, made the svg seem sharper.
        (video::-webkit-media-controls-play-button): modified SVG, hue, opacity, and width/height.

2014-06-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169570.
        https://bugs.webkit.org/show_bug.cgi?id=133565

        It breaks Baidu (Requested by benjaminp on #webkit).

        Reverted changeset:

        "[iOS] Start ignoring common bogus viewport parameters"
        https://bugs.webkit.org/show_bug.cgi?id=133466
        http://trac.webkit.org/changeset/169570

2014-06-05  Michael Timbrook  <timbrook@apple.com>

        AX: Add support for ARIA 1.1 'none' role
        https://bugs.webkit.org/show_bug.cgi?id=133367

        Reviewed by Chris Fleizach.

        Added support for the 'none' role by added a lookup for it to go to PresentationalRole
        Test: accessibility/aria-none-role.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::initializeRoleMap):

2014-06-05  Joanmarie Diggs  <jdiggs@igalia.com>

        AX: [ATK] Children of tables and lists with role='presentation' should each be exposed as if they were div elements
        https://bugs.webkit.org/show_bug.cgi?id=133133

        Reviewed by Chris Fleizach.

        When a table or list has role='presentation', accessibility is "ignored"
        for that element, but not for the required children. The default roles
        for the children (CellRole and ListItemRole) do not make sense without
        the parent, therefore map them to DivRole in ATK if they inherit the
        presentational role.

        Test: accessibility/aria-inherits-presentational.html

        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::inheritsPresentationalRole):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
        * accessibility/AccessibilityRenderObject.h:
        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (atkRole):

2014-06-05  Brent Fulgham  <bfulgham@apple.com>

        REGRESSION (r167962): Out of bounds read in JSC::StructureIDTable::get() 
        https://bugs.webkit.org/show_bug.cgi?id=133463
        <rdar://problem/17098100>

        Reviewed by Dean Jackson.

        Revise MediaControllerHost implementation so that it holds a Strong
        reference to the JavaScript 'Controller' object it mirrors. The
        MediaControllerHost is constructed when we create an HTMLMediaElement,
        and is the logical place to retain ownership of the JS object so that
        it does not get garbage collected as long as HTMLMediaElement exists.

        * Modules/mediacontrols/MediaControlsHost.cpp:
        (WebCore::MediaControlsHost::setControllerJSObject): Create a strong
        reference to the JavaScript Controller object.
        * Modules/mediacontrols/MediaControlsHost.h: Use JSC::Strong to hold a
        JSObject, rather than a bare JSValue.
        (WebCore::MediaControlsHost::controllerJSObject): Change name to reflect
        that we are working with JSObjects, not JSValues.
        (WebCore::MediaControlsHost::controllerJSValue): Deleted.
        (WebCore::MediaControlsHost::setControllerJSValue): Deleted.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute): Revise for changed method
        signature.

2014-06-05  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Add device orientation
        https://bugs.webkit.org/show_bug.cgi?id=133530

        Reviewed by Tim Horton.

        Previously, WebCore was getting the orientation directly from the WebKit layer.
        This had to be done during the frame creation and was very fragile.

        Frame is changed to pull the value from the chrome client. That way we avoid races
        and we can maintain a single value for all frames.

        Sending the values to all the subframes is aslo done here so that we do not have to repeat
        it in both WebKit layers.

        * WebCore.exp.in:
        * loader/EmptyClients.h:
        * page/ChromeClient.h:
        * page/Frame.cpp:
        (WebCore::Frame::Frame):
        (WebCore::Frame::orientationChanged):
        (WebCore::Frame::orientation):
        (WebCore::Frame::sendOrientationChangeEvent): Deleted.
        * page/Frame.h:
        (WebCore::Frame::orientation): Deleted.

2014-06-05  Timothy Horton  <timothy_horton@apple.com>

        Fix the !CACHE_SUBIMAGES build

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawNativeImage):

2014-06-05  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: Clean up StackAllocator
        https://bugs.webkit.org/show_bug.cgi?id=133506

        Reviewed by Benjamin Poulain.

        Cleaning up CSS JIt StackAllocator code. Sharing push / pop code and
        using information provided by MacroAssembler more aggressively
        to drop ifdefs.

        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::allocateUninitialized):
        (WebCore::StackAllocator::push):
        (WebCore::StackAllocator::pop):
        (WebCore::StackAllocator::popAndDiscard):
        (WebCore::StackAllocator::popAndDiscardUpTo):
        (WebCore::StackAllocator::alignStackPreFunctionCall):
        (WebCore::StackAllocator::unalignStackPostFunctionCall):
        (WebCore::StackAllocator::stackUnitInBytes):

2014-06-05  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: border-radius painting falls back to rectangle when the snapped rounded rect becomes non-renderable.
        https://bugs.webkit.org/show_bug.cgi?id=133491

        Reviewed by Simon Fraser.

        Pixel snapping can change the rectangle's size when it is on a certain subpixel position. (usually it does not)
        This patch ensures that the snapped rect is still renderable by adjusting the radii as well.

        Test: fast/borders/hidpi-border-radius-with-subpixel-margin-not-renderable.html

        * platform/graphics/RoundedRect.cpp:
        (WebCore::RoundedRect::Radii::scale):
        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
        * platform/graphics/RoundedRect.h:

2014-06-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169587.
        https://bugs.webkit.org/show_bug.cgi?id=133552

        Calls a pure virtual method, crashes (Requested by ap on
        #webkit).

        Reverted changeset:

        "WebKit should adopt journal_mode=wal for all SQLite
        databases."
        https://bugs.webkit.org/show_bug.cgi?id=133496
        http://trac.webkit.org/changeset/169587

2014-06-05  Frédéric Wang  <fred.wang@free.fr>

        Apply Character-level mirroring to stretchy operators in RTL mode.
        https://bugs.webkit.org/show_bug.cgi?id=130839

        Reviewed by Chris Fleizach.

        We add support for character-level mirroring for stretchy MathML operators in RTL mode.
        Glyph-level mirroring (via the rtlm OpenType feature) will be handled in bug 130840.

        Test: mathml/presentation/stretchy-rtl.html

        * rendering/mathml/RenderMathMLOperator.cpp: reorganize the Unicode stretchyCharacters table to make mirroring easy.
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): pass the right boolean to glyphDataForCharacter.
        (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): ditto
        (WebCore::RenderMathMLOperator::findStretchyData): ditto and change the index for the stretchyCharacters fallback.
        (WebCore::RenderMathMLOperator::updateStyle): pass the right boolean to glyphDataForCharacter.
        (WebCore::RenderMathMLOperator::paint): remove the FIXME comment.
        (WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): switch the leading/trailing space in RTL mode.

2014-06-05  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Buttons in default media controls shift vertically when controls fade in or out.
        https://bugs.webkit.org/show_bug.cgi?id=133488

        Reviewed by Simon Fraser.

        Filter effects are not subpixel aware yet. They paint to integrally sized image buffers.
        In order to ensure that the content is rendered to the the same position on the filter 
        source context as if there was no filter, the repaint rects need to be adjusted to match with
        the internal filter snapping (enclosingIntRect).
        This is a temporary change until after filter effects get subpixelized.

        However, this changeset regresses RenderNameFlow clipping when the content is on subpixel position
        and filter effect is present. Instead of adding the failing test cases to TestExpectations, I removed
        the video controls from the <video> to make the tests pass, when possible (they just happen to have <video>)
        and filed webkit.org/b/133523 to track the regression.

        Test: css3/filters/filter-is-on-subpixel-position.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setupFilters):

2014-06-05  Kiran  <kiran.guduru@samsung.com>

        [MediaStream] MediaStream.addTrack should not check for tracks ended state.
        https://bugs.webkit.org/show_bug.cgi?id=133510

        Reviewed by Eric Carlson.

        Adding and removing of tracks to a MediaStream should not have dependency
        on tracks state. So the check for MediaStreamTrack's ended state has been
        removed while adding a track in MediaStreamPrivate.cpp.

        Test: fast/mediastream/MediaStream-add-ended-tracks.html

        * platform/mediastream/MediaStreamPrivate.cpp:
        (WebCore::MediaStreamPrivate::addTrack):

2014-06-05  Gwang Yoon Hwang  <yoon@igalia.com>

        [GTK] Remove ScrollViewGtk.cpp
        https://bugs.webkit.org/show_bug.cgi?id=133535

        Reviewed by Carlos Garcia Campos.

        Because GTK+ WK1 was removed, we don't have to consider special cases
        handled in ScrollViewGtk.cpp.

        No new tests are necessary because there is no behavior change.

        * PlatformGTK.cmake:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::setScrollbarModes):
        (WebCore::ScrollView::visibleContentRectInternal):
        * platform/gtk/ScrollViewGtk.cpp: Removed.

2014-06-05  Frédéric Wang  <fred.wang@free.fr>

        MathML operators not stretched horizontally
        https://bugs.webkit.org/show_bug.cgi?id=72828

        Reviewed by Chris Fleizach.

        This patch adds basic horizontal stretching rules for operators inside
        an <munder>, <mover> or <munderover> elements. The stretchy operators
        in such an element stretch to cover the size of the non-stretchy
        operators. This only works when fonts that have an OpenType MATH table
        are used.

        Tests: mathml/opentype/horizontal-LatinModern.html
               mathml/opentype/opentype-stretchy-horizontal.html
               mathml/opentype/horizontal-LatinModern-munderover.html

        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::MathMLOperatorDictionary::ExtractKeyHorizontal): We add an ordered list of operators that have horizontal stretch direction.
        (WebCore::RenderMathMLOperator::RenderMathMLOperator): init m_Vertical
        (WebCore::RenderMathMLOperator::SetOperatorProperties): set m_Vertical by checking whether the operator is in the horizontalOperators list.
        (WebCore::RenderMathMLOperator::stretchTo): We do not stretch vertically
        if the operator has horizontal direction.
        We also add a new version stretchTo(LayoutUnit width) for horizontal stretching only.
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): Handle horizontal stretching: the maximumGlyphWidth is the maximum of
        the base size or of the stretch size.
        (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): Add an ASSERT to ensure that this function is only called for vertical stretching.
        (WebCore::RenderMathMLOperator::findStretchyData): Add an ASSERT to ensure that this function is not called to get the maximum width of a horizontal stretchy operator.
        We take into account m_isVertical when calling getMathVariants or computing sizes.
        There is not any Unicode-only construction for horizontal stretching, so a MATH table is required for horizontal stretching.
        (WebCore::RenderMathMLOperator::updateStyle): Ignore some code paths specific to vertical stretching and take into account the m_Vertical parameters.
        For horizontal stretching, the m_stretch*Baseline parameters are now updated to match the metrics of the size variant or of the maximum of the parts in the glyph assembly.
        (WebCore::RenderMathMLOperator::computeLogicalHeight): logicalHeight is now explicitely the sum of m_stretchHeightAboveBaseline and m_stretchDepthBelowBaseline, since it can be different from the stretchSize() in horizontal stretching.
        (WebCore::RenderMathMLOperator::paintGlyph): handle trimming for horizontal stretching.
        (WebCore::RenderMathMLOperator::fillWithVerticalExtensionGlyph): rename the function and ensure it is only call for m_isVertical.
        (WebCore::RenderMathMLOperator::fillWithHorizontalExtensionGlyph): same as fillWithVerticalExtensionGlyph, but for horizontal stretching.
        (WebCore::RenderMathMLOperator::paint): For glyph assembly, choose between paintVerticalGlyphAssembly or paintHorizontalGlyphAssembly.
        (WebCore::RenderMathMLOperator::paintVerticalGlyphAssembly): rename the function and ensure it is only call for m_isVertical.
        (WebCore::RenderMathMLOperator::paintHorizontalGlyphAssembly): same as paintVerticalGlyphAssembly but for horizontal stretching.
        * rendering/mathml/RenderMathMLOperator.h: we add a m_isVertical member to indicate the stretch direction and a m_stretchWidth to indicate the width of the stretchy character.
        We define the horizontal counterparts of fillWith*ExtensionGlyph, paint*GlyphAssembly, GlyphPaintTrimming  StretchyData.
        Finally stretchSize() takes into account the stretch direction.
        * rendering/mathml/RenderMathMLUnderOver.cpp: We override the layout() function to stretch munderover children horizontally.
        (WebCore::RenderMathMLUnderOver::layout):
        * rendering/mathml/RenderMathMLUnderOver.h: we declare layout().

2014-06-04  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] Image lifetime is not properly handled for gradient shapes
        https://bugs.webkit.org/show_bug.cgi?id=133414

        Reviewed by Simon Fraser.

        Refactor computedShape() and it's helpers to be able to properly
        manage the lifetime of the image returned from StyleImage.

        This is a port of a Blink patch by Hans Muller.

        Test: fast/shapes/shape-outside-floats/shape-outside-uncached-gradient.html

        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::ShapeOutsideInfo::createShapeForImage): Properly handle the
            lifetime of the image. Changed to use StyleImage::image() to get
            the image in all cases there's no need to special case cached
            images.
        (WebCore::ShapeOutsideInfo::computedShape): Call createShapeForImage.
        (WebCore::getShapeImageAndRect): Deleted.
        * rendering/shapes/ShapeOutsideInfo.h:

2014-06-04  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] Fix off by one in creating a RasterShape
        https://bugs.webkit.org/show_bug.cgi?id=133499

        Reviewed by Darin Adler.

        Test: fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-crash.html

        * rendering/shapes/RasterShape.cpp:
        (WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
            marginY1 is supposed to be an inclusive endpoint, however, maxY()
            is an exclusive endpoint. This simply changes marginY1 into an
            exclusive endpoint.

2014-06-04  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Restore the visual scroll position instead of the dom scroll position when restoring states from the history
        https://bugs.webkit.org/show_bug.cgi?id=133490

        Reviewed by Tim Horton.

        Expose the WebKit1 parameter "ScaleIsInitial". It is used for a similar concept in WebKit2 (userHasChangedPageScaleFactor).

        Add "exposedContentPosition", which is the scroll position of the exposed rect.

        * history/HistoryItem.h:
        (WebCore::HistoryItem::exposedContentPosition):
        (WebCore::HistoryItem::setExposedContentPosition):
        (WebCore::HistoryItem::setScaleIsInitial):
        * loader/HistoryController.cpp:
        (WebCore::HistoryController::saveScrollPositionAndViewStateToItem):

2014-06-04  Alex Christensen  <achristensen@webkit.org>

        Enable WebGL on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=133503

        Reviewed by Brent Fulgham.

        No new tests, but we should enable the webgl tests soon.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::markContextChanged):
        Check if the context and RenderBox are accelerated to use accelerated code path.
        * html/canvas/WebGLRenderingContext.h:
        Disable accelerated compositing on WebGL canvases until that works.
        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
        (WebCore::GraphicsContext3D::reshapeFBOs):
        Compile fix after r166563.

2014-06-04  Benjamin Poulain  <benjamin@webkit.org>

        Regression(r169547): Crash in WebCore::styleForFirstLetter() while loading http://thenextweb.com/apple/2014/02/21/apple-confirms-acquired-testflight-creator-burstly/
        https://bugs.webkit.org/show_bug.cgi?id=133500

        Reviewed by Antti Koivisto.

        Unlike the other tree marking optimization, adding HasPseudoStyle() on an element style
        during style resolution must be conservative and not set the flag unless every other filter
        matched first.

        After r169547, the SelectorChecker was setting flags on HasPseudoStyle() during the pseudo
        element matching. If that passed but the remaining filter did not match, the element style
        could have the flag "FIRST_LETTER" while not being able to resolve a style for "FIRST_LETTER".

        When the layout code was creating the renderer, it would find the FIRST_LETTER flag on the main style
        and try to get the specific style for FIRST_LETTER. Since no rule would resolve for FIRST_LETTER,
        the style would be null and the code would be crashing when accessing its parameters.

        This patch fixes the issue by moving the style marking for pseudo element at the end of the matching.

        Test: fast/css/first-letter-on-non-matching-selectors.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::match):
        (WebCore::SelectorChecker::matchRecursively):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::match): Deleted.

2014-06-04  Eric Carlson  <eric.carlson@apple.com>

        [iOS] allow UA to specify network interface
        https://bugs.webkit.org/show_bug.cgi?id=133396

        Reviewed by Jer Noble.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerInterfaceName): Return settings->networkInterfaceName.
        * html/HTMLMediaElement.h:

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::mediaPlayerNetworkInterfaceName): Pass through the media element.
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerNetworkInterfaceName):

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): If the media player
            wants to use a specific netork interface name, pass it to the AVAsset allocator.

2014-06-03  Jon Honeycutt  <jhoneycutt@apple.com>

        Pasting multiple photos on iOS only pastes one photo

        <https://bugs.webkit.org/show_bug.cgi?id=133495>
        <rdar://problem/16138616>

        Reviewed by Alexey Proskuryakov.

        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::pasteWithPasteboard):
        Create a WebContentReader. For each pasteboard item, get the document
        fragment for that item, and add it to the reader. If we fail to get
        the fragment from the delegate, fall back to using
        webContentFromPasteboard() as before.

2014-06-04  Myles C. Maxfield  <litherum@gmail.com>

        Use references instead of pointers for non-optional arguments during text layout
        https://bugs.webkit.org/show_bug.cgi?id=133501

        Reviewed by Tim Horton.

        This patch applies some cleanup to InlineBox layout functions to take
        references instead of pointers where appropriate.

        No new tests are necessary because there is no behavior change.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::computeLogicalBoxHeights): Make the function take a
        reference to the RootInlineBox instead of a pointer. This function does some
        rounding.
        (WebCore::InlineFlowBox::addTextBoxVisualOverflow): Make the function take a
        reference to the InlineTextBox instead of a pointer.
        (WebCore::InlineFlowBox::computeOverflow): Update call to addTextBoxVisualOverflow
        to pass a reference instead of a pointer.
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::alignBoxesInBlockDirection): Update call to
        computeLogicalBoxHeights to pass a reference instead of a pointer.
        (WebCore::RootInlineBox::ascentAndDescentForBox): Make the function take a
        reference to the InlineBox instead of a pointer.
        (WebCore::RootInlineBox::includeLeadingForBox): Make the function take a reference
        instead of a pointer.
        (WebCore::RootInlineBox::includeFontForBox): Ditto.
        (WebCore::RootInlineBox::includeGlyphsForBox): Ditto.
        (WebCore::RootInlineBox::includeMarginForBox): Ditto.
        * rendering/RootInlineBox.h: Move functions that are not externally called into
        a private: section. In addition, update function signatures to take references
        instead of pointers.

2014-05-27  Myles C. Maxfield  <mmaxfield@apple.com>

        Lists styled with SVG fonts are not rendered as expected
        https://bugs.webkit.org/show_bug.cgi?id=133198

        Reviewed by Simon Fraser.

        There were a couple places in RenderListMarker and RenderMenuList that were
        implicitly creating TextRuns by passing a String to a function which
        expected a TextRun. Because TextRun has a constructor which takes a single
        String and isn't marked explicit, TextRuns were being created without
        any of the associated code that initializes the TextRun (such as creating
        a RenderingContext if necessary).

        There is currently one more client of this code that needs to be fixed.
        This is in RenderThemeIOS::adjustMenuListButtonStyle(). However, fixing
        this will be a somewhat large change, and is out of scope for this patch.
        I will submit a follow-up patch that fixes this permanently. Once this is
        fixed, I can mark TextRun's constructors as explicit.

        Test: svg/custom/list-items-with-svg-font-family.html

        * platform/graphics/TextRun.h:
        (WebCore::TextRun::TextRun): Mark constructors as explicit.
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::computePreferredLogicalWidths): Call
        RenderBlock::constructTextRun.
        (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
        * rendering/RenderMenuList.cpp:
        (RenderMenuList::updateOptionsWidth): Ditto.
        * rendering/RenderThemeIOS.mm:
        (WebCore::adjustInputElementButtonStyle): Instead of crashing, mark
        form controls rendered with SVG fonts as having 0 width. This isn't
        perfect, but fixing this is out of scope for this patch.

2014-06-04  Andreas Kling  <akling@apple.com>

        WebKit should adopt journal_mode=wal for all SQLite databases.
        <https://webkit.org/b/133496>
        <rdar://problem/15600186>

        We already had code to enable write-ahead logging, but it didn't work
        since calling SQLiteStatement::step() without first calling prepare()
        is a no-op.

        Converted it to use into a simple executeCommand() instead.

        Reviewed by Brady Eidson.

        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::open):

2014-06-04  Radu Stavila  <stavila@adobe.com>

        REGRESSION: [CSS Regions] Regions with overflow:auto generate scrollbars even if the content flows into the following regions and as such, should not be scrolled
        https://bugs.webkit.org/show_bug.cgi?id=133481

        Reviewed by Antti Koivisto.

        When enlarging the layout overflow of a scrollable region, the portion of the content that flows
        in the region must be taken into consideration. If the content continues to flow into the next
        region, the layout overflow of the current region must not be enlarged.

        Test: fast/regions/scrollable-first-region.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::addRegionsOverflowFromChild):

2014-06-03  Benjamin Poulain  <benjamin@webkit.org>

        Fix some corner cases of :hover and :active in quirks mode
        https://bugs.webkit.org/show_bug.cgi?id=133493

        Reviewed by Andreas Kling.

        Previously, the quirks mode of :hover and :active were evaluated from the SelectorFragment
        in fragmentOnlyMatchesLinksInQuirksMode(). There were two problems with that approach:
        1) The FragmentGenerator optimizes out some filter when they always match or can never match.
           Those fragment should still qualify :hover and :active, but they were lost
           for fragmentOnlyMatchesLinksInQuirksMode().
        2) Explicitely listing every attribute of SelectorFragment in fragmentOnlyMatchesLinksInQuirksMode()
           was extremly fragile. When :not() and :-webkit-any() were added, we forgot to update the quirks
           exceptions.

        This patch moves the quirks mode exception code from the code generator to the Fragment generator.
        The useless filters are no longer ignored for the quirks, and we don't need to update the quirks mode detection
        with every change of SelectorFragment.

        It is inefficient and ugly, but that is how that quirks is defined. It is only a problem for compilation,
        execution time remains unchanged.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::pseudoClassOnlyMatchesLinksInQuirksMode):
        (WebCore::SelectorCompiler::constructFragments):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded):
        (WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode): Deleted.

2014-06-03  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Need to check invalid scheme in navigator content utils 
        https://bugs.webkit.org/show_bug.cgi?id=133296

        Reviewed by Darin Adler.

        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::verifyProtocolHandlerScheme): Just fix a wrong typo.

2014-06-03  Timothy Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures (Zoom): Can show unpainted regions when zoom-pinching-out
        https://bugs.webkit.org/show_bug.cgi?id=133472
        <rdar://problem/15686848>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:

2014-06-03  Yoav Weiss  <yoav@yoav.ws>

        Refactor the srcset parser into its own file
        https://bugs.webkit.org/show_bug.cgi?id=133480

        Reviewed by Andreas Kling.

        No new tests, since this patch doesn't change the parser's behavior.

        This patch moves the srcset parser into its own file,
        in order to prepare the code for alignment with recent spec changes.

        * CMakeLists.txt:
        * html/HTMLImageElement.cpp:
        * html/parser/HTMLParserIdioms.cpp:
        (WebCore::compareByScaleFactor): Deleted.
        (WebCore::parseDescriptors): Deleted.
        (WebCore::parseImagesWithScaleFromSrcsetAttribute): Deleted.
        (WebCore::bestFitSourceForImageAttributes): Deleted.
        * html/parser/HTMLParserIdioms.h:
        (WebCore::ImageWithScale::ImageWithScale): Deleted.
        (WebCore::ImageWithScale::imageURL): Deleted.
        (WebCore::ImageWithScale::scaleFactor): Deleted.
        * html/parser/HTMLPreloadScanner.cpp:
        * html/parser/HTMLSrcsetParser.cpp: Added.
        (WebCore::compareByScaleFactor):
        (WebCore::parseDescriptors):
        (WebCore::parseImagesWithScaleFromSrcsetAttribute):
        (WebCore::bestFitSourceForImageAttributes):
        * html/parser/HTMLSrcsetParser.h: Added.
        (WebCore::ImageWithScale::ImageWithScale):
        (WebCore::ImageWithScale::imageURL):
        (WebCore::ImageWithScale::scaleFactor):

2014-06-03  Mario Sanchez Prada  <mario.prada@samsung.com>

        [ATK] accessibility/textarea-selected-text-range.html is failing
        https://bugs.webkit.org/show_bug.cgi?id=133479

        Reviewed by Chris Fleizach.

        Implement atk_text_set_caret_offset() in terms of
        atk_text_set_selection() for zero-length selections.

        No new tests needed, the following test should just start
        passing again now: accessibility/textarea-selected-text-range.html.

        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
        (webkitAccessibleTextSetCaretOffset): Reimplemented this function
        in terms of webkitAccessibleTextSetSelection().

2014-06-03  Alex Christensen  <achristensen@webkit.org>

        Corrected arm64 assertion in css jit.

        Rubber stamped by Benjamin Poulain.

        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::pop):
        Changed assertion from incorrectly matching x86_64 to using the correct minimum offset,
        taking into account that a stackUnitInBytes is used for two registers on arm64
        except the last stack unit, which could only be used for one register if there are
        an odd number of registers.

2014-06-03  Benjamin Poulain  <bpoulain@apple.com>

        [iOS] Start ignoring common bogus viewport parameters
        https://bugs.webkit.org/show_bug.cgi?id=133466
        <rdar://problem/16203396>

        Reviewed by Sam Weinig.

        Incorrect viewports are spreading really quickly lately. We have to start ignoring
        some combinations of arguments as they are almost always used incorrectly, causing
        a poor user experience on those websites.

        * dom/ViewportArguments.cpp:
        (WebCore::finalizeViewportArguments):

2014-06-03  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: add support for the "any" pseudo class
        https://bugs.webkit.org/show_bug.cgi?id=133473

        Reviewed by Benjamin Poulain.

        Add support for the :any pseudo class.

        Test: fast/selectors/pseudo-class-any.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::minimumRegisterRequirements):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesAnyPseudoClass):

2014-06-02  Jer Noble  <jer.noble@apple.com>

        Update PlatformTimeRanges to use MediaTime rather than doubles for time values.
        https://bugs.webkit.org/show_bug.cgi?id=133454

        Reviewed by Eric Carlson.

        PlatformTimeRanges will now use MediaTime, so operations at the platform level won't
        lose precision when converting to and from doubles and rational time values like CMTime.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::currentTimeFudgeFactor):
        (WebCore::SourceBuffer::hasCurrentTime):
        (WebCore::SourceBuffer::hasFutureTime):
        (WebCore::SourceBuffer::canPlayThrough):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/TimeRanges.cpp:
        (WebCore::TimeRanges::TimeRanges):
        (WebCore::TimeRanges::start):
        (WebCore::TimeRanges::end):
        (WebCore::TimeRanges::add):
        (WebCore::TimeRanges::contain):
        (WebCore::TimeRanges::find):
        (WebCore::TimeRanges::nearest):
        (WebCore::TimeRanges::totalDuration):
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::seekable):
        * platform/graphics/PlatformTimeRanges.cpp:
        (WebCore::PlatformTimeRanges::create):
        (WebCore::PlatformTimeRanges::PlatformTimeRanges):
        (WebCore::PlatformTimeRanges::invert):
        (WebCore::PlatformTimeRanges::start):
        (WebCore::PlatformTimeRanges::end):
        (WebCore::PlatformTimeRanges::add):
        (WebCore::PlatformTimeRanges::contain):
        (WebCore::PlatformTimeRanges::find):
        (WebCore::PlatformTimeRanges::nearest):
        (WebCore::PlatformTimeRanges::totalDuration):
        * platform/graphics/PlatformTimeRanges.h:
        (WebCore::PlatformTimeRanges::Range::Range):
        (WebCore::PlatformTimeRanges::Range::isPointInRange):
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::extraMemoryCost):
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Deleted.
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivateQTKit::buffered):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::buffered):
        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
        (WebCore::MockMediaPlayerMediaSource::advanceCurrentTime):

2014-06-03  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Align the highlight rects with device pixels
        https://bugs.webkit.org/show_bug.cgi?id=133464

        Reviewed by Enrica Casucci.

        Add utility functions to pixel align points and rects.

        * WebCore.exp.in:
        * platform/graphics/FloatPoint.h:
        (WebCore::flooredToDevicePixels):
        (WebCore::ceiledToDevicePixels):
        * platform/graphics/FloatRect.cpp:
        (WebCore::enclosingRectExtendedToDevicePixels):
        * platform/graphics/FloatRect.h:

2014-06-03  Timothy Horton  <timothy_horton@apple.com>

        Prepopulated tiles may never be unparented from TileGrids with aggressive tile retention on
        https://bugs.webkit.org/show_bug.cgi?id=133471

        Reviewed by Simon Fraser.

        * platform/graphics/ca/mac/TileController.h:
        * platform/graphics/ca/mac/TileGrid.h:
        (WebCore::TileGrid::TileCohortInfo::TileCohortInfo):
        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::TileCohortInfo::timeUntilExpiration):
        (WebCore::TileGrid::cohortRemovalTimerFired):
        Factor timeUntilExpiration() out of cohortRemovalTimerFired().

        (WebCore::TileGrid::revalidateTiles):
        Ensure that secondary tiles that never touch the primary coverage rect
        are still unparented eventually (after 2 seconds, the same lifetime we use
        for cohorts in non-aggressive retention).
        Schedule another revalidateTiles if we left parented secondary tiles behind.

2014-06-03  Timothy Horton  <timothy_horton@apple.com>

        TileGrid::prepopulateRect populates the wrong tiles if scale != 1
        https://bugs.webkit.org/show_bug.cgi?id=133470

        Reviewed by Simon Fraser.

        * page/FrameView.cpp:
        (WebCore::FrameView::requestScrollPositionUpdate):
        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::prepopulateRect):
        (WebCore::TileGrid::revalidateTiles):
        prepopulateRect takes rects in "content" coordinates, but when later passed to
        ensureTilesForRect, they're expected to be in the same coordinate space as the layer's
        visible rect, and are scaled up. So, apply the inverse scale to counter that.

2014-06-03  Timothy Horton  <timothy_horton@apple.com>

        Minor TileCoverageMap refinements
        https://bugs.webkit.org/show_bug.cgi?id=133468

        Reviewed by Simon Fraser.

        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::setContentsScale):
        * platform/graphics/ca/mac/TileCoverageMap.h:
        * platform/graphics/ca/mac/TileCoverageMap.mm:
        (WebCore::TileCoverageMap::TileCoverageMap):
        (WebCore::TileCoverageMap::setDeviceScaleFactor):
        Keep the TileCoverageMap's contentsScale at the device scale factor, so that it
        looks sharp on non-1x displays.

        (WebCore::TileCoverageMap::update):
        Decrease the height available for the TileCoverageMap by the topContentInset;
        it's already being vertically offset by the topContentInset, but the height was
        not adjusted, so it would run off the bottom of the window.

        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::drawTileMapContents):
        If using aggressive tile retention (and thus not coloring tiles based on age),
        dim tiles that aren't in the visible cohort.

2014-06-03  Timothy Horton  <timothy_horton@apple.com>

        Fix a typo, TileGrid::updateTilerLayerProperties
        https://bugs.webkit.org/show_bug.cgi?id=133474

        Reviewed by Anders Carlsson.

        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::setAcceleratesDrawing):
        (WebCore::TileController::setTilesOpaque):
        (WebCore::TileController::setTileDebugBorderWidth):
        (WebCore::TileController::setTileDebugBorderColor):
        * platform/graphics/ca/mac/TileGrid.h:
        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::updateTileLayerProperties):
        (WebCore::TileGrid::updateTilerLayerProperties):
        s/updateTilerLayerProperties/updateTileLayerProperties/g

2014-06-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        [SOUP] ResourceLoadTiming.responseStart is always 0
        https://bugs.webkit.org/show_bug.cgi?id=133469

        Reviewed by Sergio Villar Senin.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::sendRequestCallback): Record the responseStart time.

2014-06-02  David Kilzer  <ddkilzer@apple.com>

        [iOS] WebCore fails to build: platform/network/mac/ResourceHandleMac.mm:729:62: error: use of undeclared identifier '_CFURLConnectionCopyTimingData'
        <http://webkit.org/b/133445>
        <rdar://problem/17090035>

        Reviewed by Alexey Proskuryakov.

        * platform/network/mac/ResourceHandleMac.mm: Attempt to fix the
        build by including a private header and local declaration.

2014-05-31  Anders Carlsson  <andersca@apple.com>

        Change DeferrableOneShotTimer to use std::function instead of being a class template
        https://bugs.webkit.org/show_bug.cgi?id=133423

        Reviewed by Antti Koivisto.

        Also, add a new constructor to DeferrableOneShotTimer that takes an std::function. Change the callback
        to not pass a DeferrableOneShotTimer& anymore. Change the delay parameter to use std::chrono::milliseconds.

        * css/CSSImageGeneratorValue.cpp:
        (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
        (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::evictionTimerFired):
        * css/CSSImageGeneratorValue.h:
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::simulatedMouseClickTimerFired):
        * html/HTMLPlugInImageElement.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::deadDecodedDataDeletionIntervalForResourceType):
        (WebCore::CachedResource::destroyDecodedDataIfNeeded):
        (WebCore::CachedResource::decodedDataDeletionTimerFired):
        * loader/cache/CachedResource.h:
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::MemoryCache):
        * loader/cache/MemoryCache.h:
        (WebCore::MemoryCache::setDeadDecodedDataDeletionInterval):
        (WebCore::MemoryCache::deadDecodedDataDeletionInterval):
        * platform/Timer.h:
        (WebCore::Timer::Timer):
        (WebCore::DeferrableOneShotTimer::DeferrableOneShotTimer):
        * platform/graphics/cg/SubimageCacheWithTimer.cpp:
        (WebCore::SubimageCacheWithTimer::invalidateCacheTimerFired):
        * platform/graphics/cg/SubimageCacheWithTimer.h:

2014-06-02  Benjamin Poulain  <benjamin@webkit.org>

        Make pseudo element matching for style resolution more JIT friendly
        https://bugs.webkit.org/show_bug.cgi?id=133441

        Reviewed by Antti Koivisto.

        Sharing pseudo elements is a complicated mess shared between the SelectorChecker
        and the RuleCollector.

        For compiling pseudo element matching, it would be best if all the complexity could
        be moved to compile time instead of runtime. It is also preferable to keep the compiler
        independant of the RuleCollector implementation's detail.

        This patch is a first step toward that goal. The main objective here is to make
        "dynamicPseudo" completely internal to the SelectorChecker.
        This is mostly a mechanical change, it is likely PseudoElement matching could be simplified
        further but that is not attempted here.

        Test: fast/css/style-sharing-empty-rule-modification.html

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        The condition regarding pseudo element matching has been moved into SelectorChecker::match().

        This creates an extra cost for querySelector(), but that should be fine since the vast majority
        of selectors are JIT compiled and never use SelectorChecker in the first place.

        (WebCore::ElementRuleCollector::collectMatchingRulesForList):
        The loop is changed such that the tree marking (Style::setHasPseudoStyle) could be moved
        to SelectorChecker.

        The conditions about the security origin for getMatchedCSSRules() and the empty style rules
        are moved prior to the call to ElementRuleCollector::ruleMatches(). This ensure we keep the same
        behavior of not adding the pseudo style for empty rules (this could also help with tree marking
        in general but empty rules are probably uncommon).

        There is one behavior change from making this loop simpler: the SharingRules and StyleInvalidation
        modes now update their ruleRange. It is useless but it is simpler.

        * css/ElementRuleCollector.h:
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):
        The tree marking has been moved here.

        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::match):
        The pseudo element matching has been moved here.

        * css/StyleResolver.h:
        (WebCore::checkRegionSelector):
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::selectorMatches):

2014-06-02  Jeremy Jones  <jeremyj@apple.com>

        Send external playback properties to fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=133366

        Reviewed by Simon Fraser.

        Refactor property updates in WebVideoFullscreenModelMediaElement and update
        setExternalPlayback on webkitcurrentplaybacktargetiswirelesschangedEvent.

        * WebCore.exp.in: Add export for setExternalPlayback.
        * platform/ios/WebVideoFullscreenInterface.h: add setExternalPlayback
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: add setExternalPlayback
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVPlayerController isPlayingOnExternalScreen]): added
        (+[WebAVPlayerController keyPathsForValuesAffectingPlayingOnExternalScreen]): added
        (WebVideoFullscreenInterfaceAVKit::setExternalPlayback): added
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen): added
        * platform/ios/WebVideoFullscreenModelMediaElement.h: add updateForEventName
        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::setMediaElement): refactor property changes into updateForEventName()
        (WebVideoFullscreenModelMediaElement::handleEvent): refactor property changes into updateForEventName()
        (WebVideoFullscreenModelMediaElement::updateForEventName): remove duplicate code, implement for setExternalPlayback

2014-06-02  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>

        WebCore build fix for webreplay
        https://bugs.webkit.org/show_bug.cgi?id=133401

        Reviewed by Darin Adler.

        * replay/MemoizedDOMResult.cpp:
        (WebCore::MemoizedDOMResultBase::createFromEncodedResult):
        Add a default nullptr return in order to avoid a gcc warning.
        The warning is because of a non-void method that has a case which doesn't return.
        * replay/ReplayController.cpp:
        (WebCore::ReplayController::setForceDeterministicSettings):
        Guard the ScrollingCoordinator with the appropriate #ifdef.
        * replay/SerializationMethods.cpp:
        Guard the KeypressCommand with COCOA as it is only present there.

2014-06-02  Jer Noble  <jer.noble@apple.com>

        Further unreviewed GTK build fix after r169536.

        Update the m_duration contructor in MediaSourceGStreamer.

        * platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
        (WebCore::MediaSourceGStreamer::MediaSourceGStreamer):

2014-06-02  Jer Noble  <jer.noble@apple.com>

        Unreviewed GTK build fix after r169536.

        Update MediaSourceGStreamer to match new duration parameters.

        * platform/graphics/gstreamer/MediaSourceGStreamer.cpp:
        (WebCore::MediaSourceGStreamer::setDuration): Ditto.
        * platform/graphics/gstreamer/MediaSourceGStreamer.h:
        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:

2014-06-02  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Media does not generate 'ended' event when playing to duration.
        https://bugs.webkit.org/show_bug.cgi?id=133452

        Reviewed by Eric Carlson.

        Add a boundaryTimeObserver to the AVSampleBufferRenderSynchronizer to detect when
        playback crosses the duration boundary, and pause in that event. Also refuse to begin
        playback if the currentTime is beyond the duration. Also, pause playback if duration
        becomes less than currentTime.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::~MediaPlayerPrivateMediaSourceAVFObjC):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::playInternal):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentMediaTime):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::durationChanged):

        Update MediaSource::duration() and ::setDuration() to take and give MediaTimes rather than doubles:
        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::duration): double -> MediaTime.
        (WebCore::MediaSource::setDuration): Ditto.
        (WebCore::MediaSource::streamEndedWithError): Ditto.
        * platform/graphics/MediaSourcePrivate.h: Ditto.
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
        (WebCore::MediaSourcePrivateAVFObjC::MediaSourcePrivateAVFObjC): Ditto.
        (WebCore::MediaSourcePrivateAVFObjC::duration): Ditto.
        (WebCore::MediaSourcePrivateAVFObjC::setDuration): Ditto.
        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
        (WebCore::MockMediaPlayerMediaSource::MockMediaPlayerMediaSource): Ditto.
        (WebCore::MockMediaPlayerMediaSource::maxTimeSeekableDouble): Ditto.
        (WebCore::MockMediaPlayerMediaSource::durationDouble): Ditto.
        (WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.
        (WebCore::MockMediaPlayerMediaSource::updateDuration): Ditto.
        * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
        * platform/mock/mediasource/MockMediaSourcePrivate.cpp:
        (WebCore::MockMediaSourcePrivate::MockMediaSourcePrivate): Ditto.
        (WebCore::MockMediaSourcePrivate::duration): Ditto.
        (WebCore::MockMediaSourcePrivate::setDuration): Ditto.
        * platform/mock/mediasource/MockMediaSourcePrivate.h:

2014-06-02  Zalan Bujtas  <zalan@apple.com>

        Rename ImagePaintingContext to ImagePaintingOptions.
        https://bugs.webkit.org/show_bug.cgi?id=133451

        Reviewed by Simon Fraser.

        No change in functionality.

        * WebCore.exp.in:
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::paint):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawImage):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        (WebCore::GraphicsContext::drawTiledImage):
        (WebCore::GraphicsContext::drawImageBuffer):
        * platform/graphics/GraphicsContext.h:
        (WebCore::ImagePaintingOptions::ImagePaintingOptions):
        (WebCore::ImagePaintingContext::ImagePaintingContext): Deleted.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::paintSnapshotImage):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintIntoRect):
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::paintSnapshot):

2014-05-31  Brent Fulgham  <bfulgham@apple.com>

        REGRESSION (r154622): Borders disappear when hovering over cells in table
        https://bugs.webkit.org/show_bug.cgi?id=133057
        <rdar://problem/15922359>

        Reviewed by Tim Horton.

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::paintCollapsedBorders): Revert recent
        non-edge collapsed border optimization due to drawing
        regressions.

2014-06-02  Zalan Bujtas  <zalan@apple.com>

        Provide better encapsulation for image related painting properties.
        https://bugs.webkit.org/show_bug.cgi?id=133434

        Reviewed by Darin Adler.

        Image related drawing property list keeps growing for the functions below and results in
        multiple overloadings with seemingly random default parameters.
        
        GraphicsContext::drawImage()
        GraphicsContext::drawTiledImage()
        GraphicsContext::drawImageBuffer()
        
        This patch provides encapsulation for the image drawing properties. Encapsulation ensures that
        introducing a new property does not result in yet another overloaded function.

        No change in functionality.

        * WebCore.exp.in:
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::paint):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawImage):
        (WebCore::CanvasRenderingContext2D::compositeBuffer):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        (WebCore::GraphicsContext::drawTiledImage):
        (WebCore::GraphicsContext::drawImageBuffer):
        * platform/graphics/GraphicsContext.h:
        (WebCore::ImagePaintingContext::ImagePaintingContext):
        * platform/graphics/ShadowBlur.cpp:
        (WebCore::ShadowBlur::endShadowLayer):
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/filters/FEComposite.cpp:
        (WebCore::FEComposite::platformApplySoftware):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRendererHelper::applyFilterEffect):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::paintSnapshotImage):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintReplaced):
        (WebCore::RenderImage::paintIntoRect):
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::paintSnapshot):

2014-06-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169529.
        https://bugs.webkit.org/show_bug.cgi?id=133447

        caused assert in drawImage() (Requested by zalan on #webkit).

        Reverted changeset:

        "Provide better encapsulation for image related painting
        properties."
        https://bugs.webkit.org/show_bug.cgi?id=133434
        http://trac.webkit.org/changeset/169529

2014-06-02  Zalan Bujtas  <zalan@apple.com>

        Provide better encapsulation for image related painting properties.
        https://bugs.webkit.org/show_bug.cgi?id=133434

        Reviewed by Darin Adler.

        Image related drawing property list keeps growing for the functions below and results in
        multiple overloadings with seemingly random default parameters.
        
        GraphicsContext::drawImage()
        GraphicsContext::drawTiledImage()
        GraphicsContext::drawImageBuffer()
        
        This patch provides encapsulation for the image drawing properties. Encapsulation ensures that
        introducing a new property does not result in yet another overloaded function.

        No change in functionality.

        * WebCore.exp.in:
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::paint):
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawImage):
        (WebCore::CanvasRenderingContext2D::compositeBuffer):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        (WebCore::GraphicsContext::drawTiledImage):
        (WebCore::GraphicsContext::drawImageBuffer):
        * platform/graphics/GraphicsContext.h:
        (WebCore::ImagePaintingContext::ImagePaintingContext):
        * platform/graphics/ShadowBlur.cpp:
        (WebCore::ShadowBlur::endShadowLayer):
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::ImageBuffer::draw):
        * platform/graphics/filters/FEComposite.cpp:
        (WebCore::FEComposite::platformApplySoftware):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRendererHelper::applyFilterEffect):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::paintSnapshotImage):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintReplaced):
        (WebCore::RenderImage::paintIntoRect):
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::paintSnapshot):

2014-06-02  Kiran  <kiran.guduru@samsung.com>

        Add mock DTMFSender support.
        https://bugs.webkit.org/show_bug.cgi?id=133298

        Reviewed by Eric Carlson.

        Implemented mock implementation for RTCPeerConnectionHandler. Now creating
        RTCDTMFSenderHandlerMock and returning while creating DTMFSender instead of
        returning null.
       
        Test: fast/mediastream/RTCPeerConnection-dtmf.html.

        * CMakeLists.txt:
        * platform/mock/RTCDTMFSenderHandlerMock.cpp: Added.
        (WebCore::RTCDTMFSenderHandlerMock::RTCDTMFSenderHandlerMock):
        (WebCore::RTCDTMFSenderHandlerMock::setClient):
        (WebCore::RTCDTMFSenderHandlerMock::insertDTMF):
        * platform/mock/RTCDTMFSenderHandlerMock.h: Added.
        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
        (WebCore::RTCPeerConnectionHandlerMock::createDTMFSender):

2014-06-02  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GTK] media controls should prevent 'click' events from reaching the page
        https://bugs.webkit.org/show_bug.cgi?id=133402

        Reviewed by Eric Carlson.

        When handling events, we events we need to return true in order
        that the superclass gets the value and prevents the execution of
        the default event handler in the page.

        Test: media/media-controls-cancel-events.html

        * Modules/mediacontrols/mediaControlsGtk.js:
        (ControllerGtk.prototype.handleMuteButtonMouseOver):
        (ControllerGtk.prototype.handleVolumeBoxMouseOut):
        (ControllerGtk.prototype.handleCaptionButtonClicked):
        (ControllerGtk.prototype.handleCaptionButtonMouseOver):
        (ControllerGtk.prototype.handleCaptionButtonShowMenu):
        (ControllerGtk.prototype.handleCaptionButtonMouseOut):
        (ControllerGtk.prototype.handleCaptionMouseOut): Return true to
        prevent forwarding the event execution.

2014-06-02  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: add support for the "not" pseudo class
        https://bugs.webkit.org/show_bug.cgi?id=133314

        Reviewed by Benjamin Poulain.

        Add :not pseudo class support to CSS JIT. Current implementation
        doesn't support visitedMatchType. So when link pseudo class appears in
        :not sub fragment, fallback to the non-JIT implementation.

        Tests: fast/selectors/not-active-hover-quirks.html
               fast/selectors/not-active-hover-strict.html
               fast/selectors/pseudo-class-not.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::constructFragments):
        (WebCore::SelectorCompiler::minimumRegisterRequirements):
        (WebCore::SelectorCompiler::computeBacktrackingInformation):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementDataMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatchesNotPseudoClass):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation): Deleted.

2014-06-01  Jer Noble  <jer.noble@apple.com>

        [MSE] Appends of overlapping sample data do not clear existing samples properly.
        https://bugs.webkit.org/show_bug.cgi?id=133435

        Reviewed by Darin Adler.

        Test: media/media-source/media-source-overlapping-append.html

        The MSE spec has a spec error in how it removes overlapping frames. The intention seems to be
        to check for overlapping samples only when the incoming sample increases the highest presentation time
        field. But due to a mismatch in the range of a sample, defined as [start, end), and the check, which 
        treats the end as inclusive, the overlapping check is almost never run.

        Add the sample comparison logic to match [start, end) ranges, and rename the existing check to differentiate
        it from the new one:
        * Modules/mediasource/SampleMap.cpp:
        (WebCore::SamplePresentationTimeIsInsideRangeComparator::operator()):
        (WebCore::SamplePresentationTimeIsWithinRangeComparator::operator()):
        (WebCore::SampleMap::findSamplesBetweenPresentationTimes):
        (WebCore::SampleMap::findSamplesWithinPresentationRange):
        * Modules/mediasource/SampleMap.h:

        Update the overlapping check to occur whenever the highest presentation time increases, and update the
        logic within that check to catch all overlapping frames.
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):
        (WebCore::SourceBuffer::bufferedSamplesForTrackID):
        * Modules/mediasource/SourceBuffer.h:
        * WebCore.exp.in:

        Add a dump method to MediaSample so that samples can be easily converted to a string for testing.
        * platform/MediaSample.h:
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::MediaSampleAVFObjC::presentationSize):
        (WebCore::MediaSampleAVFObjC::dump):

        Update the Mock MSE implementation to pass along a "generation" field, to aid in testing.
        * platform/mock/mediasource/MockBox.cpp:
        (WebCore::MockSampleBox::MockSampleBox):
        * platform/mock/mediasource/MockBox.h:
        * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
        (WebCore::MockMediaSample::dump):

        Add a method to internals to dump the buffered samples to string.
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::bufferedSamplesForTrackID):
        * Modules/mediasource/SourceBuffer.h:
        * testing/Internals.cpp:
        (WebCore::Internals::bufferedSamplesForTrackID):
        * testing/Internals.h:
        * testing/Internals.idl:

2014-06-01  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>

        getBBox() returns (0,0) when width or height is zero.
        https://bugs.webkit.org/show_bug.cgi?id=93290

        Reviewed by Philip Rogers.

        The SVG spec states that a width or height of zero for  rects, circles and
        ellipses is valid but disables rendering of that shape.
        In this case, getBBox() should return the actual bounding box of the element.
        Previously, WebKit always returned (0,0,0,0) rather than the
        correct bounding box. This patch fixes that. 

        Rects and ellipses both now follow the same behaviour where
        the fall-back code path is only used when the shape will render (e.g. not
        when a dimension <= 0).
  
        This necessitates calling calculateRadiiAndCenter for ellipses even
        when the calculated values will be discarded in the fall back code path.
        But calculateRadiiAndCenter is cheap and this avoids making changes 
        elsewhere to stop CG drawing a zero width (or height) ellipse.  

        Tests: svg/custom/getBBox-js-circle-zerodimension.html
               svg/custom/getBBox-js-ellipse-zerodimension.html
               svg/custom/getBBox-js-rect-zerodimension.html

        * rendering/svg/RenderSVGEllipse.cpp:
        (WebCore::RenderSVGEllipse::updateShapeFromElement):
        Only follow fall-back code path when shape renders. 
        width||height==0 is not an error case so calculate bounding box.        

        * rendering/svg/RenderSVGRect.cpp:
        (WebCore::RenderSVGRect::updateShapeFromElement):
        Only follow fall-back code path when shape renders. 
        rx||ry==0 is not an error case so calculate bounding box.        

2014-06-01  Simon Fraser  <simon.fraser@apple.com>

        Don't scroll to non-integral scroll offsets
        https://bugs.webkit.org/show_bug.cgi?id=133436
        <rdar://problem/17088336>

        Reviewed by Darin Adler.

        With the gradual migration of scroll offsets to floating point, we ended
        up with a fully floating point code path been event scroll deltas and
        setting scroll positions in the scrolling tree.
        
        With some input devices (e.g. Logitech scrollwheel mice), the scroll deltas
        come in with non-integral values, and that caused the scroll offset to be non-integral,
        resulting in fuzzy layer contents. So round the scroll position.

        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):

2014-05-31  Anders Carlsson  <andersca@apple.com>

        Add a LazyNeverDestroyed class template and use it
        https://bugs.webkit.org/show_bug.cgi?id=133425

        Reviewed by Darin Adler.

        * Modules/webdatabase/DatabaseBackendBase.cpp:
        (WebCore::guidMutex):
        * crypto/CryptoAlgorithmRegistry.cpp:
        (WebCore::registryMutex):
        * inspector/WorkerDebuggerAgent.cpp:
        * loader/CrossOriginAccessControl.cpp:
        (WebCore::isOnAccessControlResponseHeaderWhitelist):
        * platform/network/NetworkStateNotifier.cpp:
        (WebCore::networkStateNotifier):
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::DefaultSharedWorkerRepository::instance):
        * workers/DefaultSharedWorkerRepository.h:
        * workers/WorkerThread.cpp:
        (WebCore::threadSetMutex):
        * xml/XMLHttpRequest.cpp:
        (WebCore::staticData):

2014-06-01  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Selection gap produces a pixel line overlap on inline boxes.
        https://bugs.webkit.org/show_bug.cgi?id=133429

        Reviewed by Simon Fraser.

        Do not floor logical right/left values when selection gap is calculated for RenderBlocks.
        It produces overlapping line/gap because the floored value is intersecting/too far from the
        non-floored content selection rect.

        Tests: fast/inline/hidpi-selection-gap-and-inline-selection-have-gap-rtl.html
               fast/inline/hidpi-selection-gap-overlaps-inline-selection.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::logicalLeftSelectionGap):
        (WebCore::RenderBlock::logicalRightSelectionGap):

2014-05-31  Timothy Horton  <timothy_horton@apple.com>

        REGRESSION (r169412): Garbage pixels when vertical rubber-banding on http://yvoschaap.com/pmarca/
        https://bugs.webkit.org/show_bug.cgi?id=133418
        <rdar://problem/17065494>

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * platform/graphics/FloatPoint.h:
        (WebCore::toFloatPoint):
        * platform/graphics/Image.cpp:
        (WebCore::Image::drawTiled):
        The manual tiling code previously adjusted the initial
        tiling source rect so that if the pattern was out of phase,
        the first row and column would paint only the necessary part
        of the tile. However, it did not also adjust the destination rect,
        so the tile was painted in entirely the wrong place.
        Additional testing (by enabling manual tiling mode for all patterned
        images and running all of the layout tests) exposed another bug
        where the last row and column would paint too much, which
        was resolved by clipping to the outer image's destination rect.

2014-05-31  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT cleanup: move two utility functions out of the properties-matcher section
        https://bugs.webkit.org/show_bug.cgi?id=133427

        Reviewed by Andreas Kling.

        Just move the code, no other modification.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoPreviousAdjacentElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoNextAdjacentElement):

2014-05-31  Darin Adler  <darin@apple.com>

        Viewport percentage tests that resize the viewport are flaky
        https://bugs.webkit.org/show_bug.cgi?id=133351

        Reviewed by Anders Carlsson.

        * page/FrameView.cpp:
        (WebCore::FrameView::setFrameRect): Removed code that explicitly sends a resize event here.
        The resize event will be sent as a side effect of layout instead.
        (WebCore::FrameView::sendResizeEventIfNeeded): Don't send a resize event until layout is done,
        since this is what propagates the new geometry in so the JavaScript code can detect it. Also
        simplified the logic and streamlined a little, and added a FIXME about the bad idea here where
        the code enqueues an event for an unknown time in the future. Removed the unneeded code that
        passes in the DOM window as the target to dispatchWindowEvent, since that gets filled in as the
        target by default.

2014-05-31  Anders Carlsson  <andersca@apple.com>

        Don't use std::mutex::try_lock to check if we own a mutex
        https://bugs.webkit.org/show_bug.cgi?id=133421

        Reviewed by Dan Bernstein.

        According the C++ standard, calling try_lock on a mutex that's already owned by the current thread
        is undefined behavior, so don't do that.

        * Modules/webdatabase/DatabaseBackendBase.cpp:
        (WebCore::guidToVersionMap):
        (WebCore::updateGuidVersionMap):
        (WebCore::guidToDatabaseMap):
        (WebCore::guidForOriginAndName):

2014-05-30  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): space space to insert period doesn't work in web forms.
        https://bugs.webkit.org/show_bug.cgi?id=133413
        <rdar://problem/16948333>

        Reviewed by Benjamin Poulain.

        Adding utility functions and their exports.

        * WebCore.exp.in:
        * editing/TextIterator.cpp:
        (WebCore::plainTextReplacingNoBreakSpace):
        * editing/TextIterator.h:
        * editing/VisibleUnits.cpp:
        (WebCore::charactersAroundPosition):
        (WebCore::characterBeforePosition): Deleted.
        * editing/VisibleUnits.h:

2014-05-30  Zalan Bujtas  <zalan@apple.com>

        Cleanup temporary setting of image interpolation quality in GraphicsContext::drawImage*
        https://bugs.webkit.org/show_bug.cgi?id=133407

        Reviewed by Darin Adler.

        Add helper class to set/reset image interpolation quality value.

        No change in functionality.

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::InterpolationQualityMaintainer::InterpolationQualityMaintainer):
        (WebCore::InterpolationQualityMaintainer::~InterpolationQualityMaintainer):
        (WebCore::GraphicsContext::drawImage):
        (WebCore::GraphicsContext::drawTiledImage):
        (WebCore::GraphicsContext::drawImageBuffer):

2014-05-30  Myles C. Maxfield  <mmaxfield@apple.com>

        Support -apple-system-font on OS X
        https://bugs.webkit.org/show_bug.cgi?id=133382

        Addressing post-review comments.

        * platform/mac/WebFontCache.mm:
        (+[WebFontCache internalFontWithFamily:traits:weight:size:]):

2014-05-30  Prashant Hiremath  <hiremathprashants@gmail.com>

        Remove repetitive header in HTMLInputElement.cpp
        https://bugs.webkit.org/show_bug.cgi?id=133376

        Reviewed by Anders Carlsson.

        It is just removal repeative headers hence no test needed.

        * html/HTMLInputElement.cpp:

2014-05-30  Zalan Bujtas  <zalan@apple.com>

        Remove redundant GraphicsContext::drawImage() function.
        https://bugs.webkit.org/show_bug.cgi?id=133347

        Reviewed by Simon Fraser.

        There are 2 GraphicsContext::drawImage functions with very similar parameter list. This looks
        to be a source of confusion and results in passing unneeded parameters.

        No change in functionality.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawImage):
        (WebCore::drawImageToContext):
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::paint):
        * platform/graphics/texmap/TextureMapperImageBuffer.cpp:
        (WebCore::BitmapTextureImageBuffer::updateContents):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintNinePieceImage):

2014-05-29  Alex Christensen  <achristensen@webkit.org>

        Prepare css jit for arm64 and other architectures.
        https://bugs.webkit.org/show_bug.cgi?id=133394

        Reviewed by Benjamin Poulain.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::swapArguments):
        * cssjit/RegisterAllocator.h:
        Use a designated temporary register on arm64 to prevent using a deallocated argument register to swap argument registers in.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        Added assertion to make sure there are enough registers.

2014-05-29  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: add support for the pseudo classes :hover and :active
        https://bugs.webkit.org/show_bug.cgi?id=133295

        Reviewed by Andreas Kling.

        This patch adds compilation support for :hover and :active. The code generation of both of them is trivial,
        most of the patch is improving the infrastructure and safety.

        The document compatibility mode is moved to its own typed enum. This ensure the values are exclusives and
        the native type is known (unsigned char here). The values are changes to binary flags to take advantage of
        test-and-branch on ARM64 (not used explicitely, it is automatically generated by the MacroAssembler).

        The other important refactoring is the code updating the flags on RenderStyle::NonInheritedFlags.
        The code was duplicated in some places so it is move into its own function addFlagToElementStyleFromContext().

        The generators themself are very simple. First we check the quirks-mode exceptions, that is generally excluded
        at compile time because the conditions are almost never met, even in strict mode.
        Then we have two cases: style resolution and query selector. Almost everything is just function calls.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::addFlagToElementStyleFromContext):
        (WebCore::SelectorCompiler::fragmentOnlyMatchesLinksInQuirksMode):
        (WebCore::SelectorCompiler::getDocument):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSpecialFailureInQuirksModeForActiveAndHoverIfNeeded):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::elementIsActive):
        (WebCore::SelectorCompiler::elementIsActiveForStyleResolution):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsActive):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
        (WebCore::SelectorCompiler::elementIsHovered):
        (WebCore::SelectorCompiler::elementIsHoveredForStyleResolution):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsHovered):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::setCompatibilityMode):
        (WebCore::Document::implicitOpen):
        (WebCore::Document::cloneDataFromDocument):
        * dom/Document.h:
        (WebCore::Document::compatibilityModeMemoryOffset):
        (WebCore::Document::inQuirksMode):
        (WebCore::Document::inLimitedQuirksMode):
        (WebCore::Document::inNoQuirksMode):
        (WebCore::Document::compatibilityMode): Deleted.
        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::ImageDocument):
        * html/MediaDocument.cpp:
        (WebCore::MediaDocument::MediaDocument):
        * html/PluginDocument.cpp:
        (WebCore::PluginDocument::PluginDocument):
        * html/TextDocument.cpp:
        (WebCore::TextDocument::TextDocument):
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::HTMLConstructionSite::setDefaultCompatibilityMode):
        (WebCore::HTMLConstructionSite::setCompatibilityMode):
        (WebCore::HTMLConstructionSite::setCompatibilityModeFromDoctype):
        (WebCore::HTMLConstructionSite::insertDoctype):
        * html/parser/HTMLConstructionSite.h:
        * loader/DocumentWriter.cpp:
        (WebCore::DocumentWriter::replaceDocument):
        * loader/SinkDocument.cpp:
        (WebCore::SinkDocument::SinkDocument):
        * page/ios/FrameIOS.mm:
        (WebCore::Frame::initWithSimpleHTMLDocument):
        * rendering/style/RenderStyle.h:

2014-05-28  Jon Honeycutt  <jhoneycutt@apple.com>

        Roll r168668 back in.

        <https://bugs.webkit.org/show_bug.cgi?id=132621>

        Reviewed by Brent Fulgham.

        Tests: fast/events/beforeload-assertion.html
               fast/events/beforeload-iframe-crash.html
               fast/events/beforeload-input-time-crash.html

        * 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:

2014-05-29  Myles C. Maxfield  <mmaxfield@apple.com>

        Support -apple-system-font on OS X
        https://bugs.webkit.org/show_bug.cgi?id=133382

        Reviewed by Simon Fraser.

        Guard on both family names: "-apple-system-font" and "-webkit-system-font"

        Test: platform/mac/fast/text/systemFont.html

        * platform/mac/WebFontCache.mm:
        (+[WebFontCache internalFontWithFamily:traits:weight:size:]):

2014-05-29  Alexey Proskuryakov  <ap@apple.com>

        Loading <object> from WebArchive crashes
        https://bugs.webkit.org/show_bug.cgi?id=133386
        <rdar://problem/13345509>

        Reviewed by Brady Eidson.

        Test: webarchive/loading/object.html

        This (a) fixes the crash, and (b) avoids the crash.

        * loader/DocumentLoader.cpp: (WebCore::DocumentLoader::continueAfterContentPolicy):
        Some types of substitute data - such as WebArchive - don't contain HTTP result codes,
        so let's not drop to <object> fallback content when status is 0.
        And if the load somehow failed anyway, don't crash by trying to deliver substitute data
        to a finished loader.

2014-05-29  Alex Christensen  <achristensen@webkit.org>

        [iOS WebGL] Fix depth buffer clearing issue.
        https://bugs.webkit.org/show_bug.cgi?id=133388

        Reviewed by Dean Jackson.

        No new tests, but this fixes webgl/1.0.1/conformance/canvas/buffer-preserve-test.html.

        * platform/graphics/mac/WebGLLayer.mm:
        (-[WebGLLayer display]):
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::prepareTexture):
        Moved marking the layer as composited from the mac-only prepareTexture to
        the end of [WebGLLayer display] which is called by mac and iOS.

2014-05-29  Jeremy Jones  <jeremyj@apple.com>

        Perserve caption selection in fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=133350

        Reviewed by Eric Carlson.

        Use the logic from the inline player to calculate the selected caption index.

        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::mediaControlsHost):
        Expose mediaControlsHost() for use by WebVideoFullscreenModelMediaElement.

        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::updateLegibleOptions):
        Use logic from buildCaptionsMenu from mediaControlsApple.js.

2014-05-29  Jeremy Jones  <jeremyj@apple.com>

        Use correct version of requiresFullscreenForVideoPlayback().
        https://bugs.webkit.org/show_bug.cgi?id=133331

        Reviewed by Eric Carlson.

        Test: media/video-fullscreeen-only-controls.html

        Update the last place not yet using m_mediaSession->requiresFullscreenForVideoPlayback.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        switch to media session version for requriesFullscreenForVideoPlayback.

2014-05-29  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Add support for HiDPI icons
        https://bugs.webkit.org/show_bug.cgi?id=133377

        Reviewed by Martin Robinson.

        Use the GTK+ missing icon at 16 or 32 size depending on the device
        scale factor.

        * platform/graphics/gtk/ImageGtk.cpp:
        (WebCore::loadMissingImageIconFromTheme):
        (WebCore::Image::loadPlatformResource):

2014-05-29  Owen Taylor  <otaylor@redhat.com>

        [GTK] Add HighDPI support for non-accelerated compositing contents
        https://bugs.webkit.org/show_bug.cgi?id=131562

        Reviewed by Anders Carlsson.

        No new tests. This will be tested once we have the proper dependencies in the WebKit testing
        JHBuild.

        * platform/cairo/WidgetBackingStore.h:
        (WebCore::WidgetBackingStore::WidgetBackingStore): Accept a device scale argument.
        * platform/cairo/WidgetBackingStoreCairo.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
        * platform/cairo/WidgetBackingStoreCairo.h: Accept a device scale argument.
        * platform/graphics/cairo/CairoUtilities.cpp: Add a new helper to set the device scale if Cairo built against is new enough.
        * platform/graphics/cairo/CairoUtilities.h:
        * platform/gtk/GtkVersioning.h: Add the HAVE_GTK_SCALE_FACTOR macro.
        * platform/gtk/WidgetBackingStoreGtkX11.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
        * platform/gtk/WidgetBackingStoreGtkX11.h: Accept a device scale argument.

2014-05-28  Brent Fulgham  <bfulgham@apple.com>

        Captions during HLS playback flash/are difficult to readily
        https://bugs.webkit.org/show_bug.cgi?id=133365
        <rdar://problem/16584132>

        Reviewed by Eric Carlson.

        Correct two problems:
        1. Add new logic to handle cues that are identical to existing cues, except
           that they cover a slightly later moment in playback. For example, a cue
           encoding device might emit a cue at 24 fps, with many of the cues containing
           the same content but covering only 1/24th of a second.
           
           Rather than hiding and displaying our cues at the cue encoding rate, we should
           simply continue to display the same cue as long as the content is unchanged.
        2. The cue "isEqual" logic for TextTrackCueGeneric improperly short-circuited the
           VTTCue isEqual logic. This was done to avoid a false failure due to the cue
           type being 'generic' rather than 'vtt', but incorrectly treated cues with
           non-matching text as equal.

        * html/track/DataCue.cpp:
        (WebCore::DataCue::cueContentsMatch): Move cue comparison code to new method that
        doesn't check that the 'type' of the cue is identical.
        (WebCore::DataCue::isEqual): Modified to use new 'cueContentsMatch' method.
        (WebCore::DataCue::isStartOfCue): Confirms cues match except for start and end times.
        * html/track/DataCue.h:
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::hasCue): Modify to check if a new cue is simply a continuation
        of an existing cue.
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::cueContentsMatch): New method containing the equality code
        that used to live in 'isEqual'.
        (WebCore::TextTrackCue::isEqual): Modified to use new 'cueContentsMatch' method.
        (WebCore::TextTrackCue::isStartOfCue): Confirms cues match except for start and
        end times.
        * html/track/TextTrackCue.h:
        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGeneric::cueContentsMatch): New method containing the equality
        code that used to live in 'isEqual'.
        (WebCore::TextTrackCueGeneric::isEqual): Modified to use new 'cueContentsMatch' method.
        (WebCore::TextTrackCueGeneric::isStartOfCue): Confirms cues match except for start and
        end times.
        * html/track/TextTrackCueGeneric.h:
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::cueContentsMatch): New method containing the equality code that
        used to live in 'isEqual'.
        (WebCore::VTTCue::isEqual): Modified to use new 'cueContentsMatch' method.
        (WebCore::VTTCue::isStartOfCue): Confirms cues match except for start and end times.
        * html/track/VTTCue.h:

2014-05-28  Oliver Hunt  <oliver@apple.com>

        Whoops, update bindings tests results.

2014-05-28  Oliver Hunt  <oliver@apple.com>

        Make DOM properties exposed as instance properties use the base object instead of |this|
        https://bugs.webkit.org/show_bug.cgi?id=133353

        Reviewed by Geoffrey Garen.

        Make the bindings generator emit code that uses the base object for
        a property, rather than the this object. This means that attributes
        that we need to be treated as instance properties will match their old
        instance-based behaviour.

        * bindings/scripts/CodeGeneratorJS.pm:
        (InterfaceRequiresAttributesOnInstanceForCompatibility):
        (InterfaceRequiresAttributesOnInstance):
        (GetCastingHelperForBaseObject):
        (GenerateImplementation):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::jsTestActiveDOMObjectExcitingAttr):
        * bindings/scripts/test/JS/JSTestException.cpp:
        (WebCore::jsTestExceptionName):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::jsTestInterfaceImplementsStr3):
        (WebCore::jsTestInterfaceSupplementalStr3):
        (WebCore::setJSTestInterfaceConstructorImplementsStaticAttr):
        (WebCore::setJSTestInterfaceImplementsStr2):
        (WebCore::setJSTestInterfaceImplementsStr3):
        (WebCore::setJSTestInterfaceImplementsNode):
        (WebCore::setJSTestInterfaceConstructorSupplementalStaticAttr):
        (WebCore::setJSTestInterfaceSupplementalStr2):
        (WebCore::setJSTestInterfaceSupplementalStr3):
        (WebCore::setJSTestInterfaceSupplementalNode):
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
        (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
        (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
        (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
        (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::jsTestTypedefsConstructorTestSubObj):
        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
        (WebCore::setJSTestTypedefsAttrWithGetterException):
        (WebCore::setJSTestTypedefsAttrWithSetterException):
        (WebCore::setJSTestTypedefsStringAttrWithGetterException):
        (WebCore::setJSTestTypedefsStringAttrWithSetterException):

2014-05-28  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Improve behavior of position:fixed inside accelerated overflow-scroll
        https://bugs.webkit.org/show_bug.cgi?id=133352

        Reviewed by Tim Horton.

        When adjusting layers inside accelerated overflow-scroll, pass a delta
        down to descendant nodes. Fix behavior of sticky nodes inside fixed nodes
        inside overflow scroll (sticky should only be affected if the parent node
        is a scrolling node).

        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange): Just remove
        some .get()
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange): Remove .get()s.
        We never care about the cumulative delta here, because sticky nodes only respond to
        changes in their direct scrolling ancestors. Only adjust the layer if the parent
        is a scrolling node.

2014-05-27  Chris Fleizach  <cfleizach@apple.com>

        AX: WebKit does not recognize ARIA 1.1 tables
        https://bugs.webkit.org/show_bug.cgi?id=133163

        Reviewed by Darin Adler.

        The AXObjectCache code that determines which object to create based on the role needs to be token fallback aware.

        Test: accessibility/table-fallback-roles-expose-element-attributes.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::nodeHasRole):

2014-05-28  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r168046): Invalid layout in multicol
        https://bugs.webkit.org/show_bug.cgi?id=133322

        Reviewed by Antti Koivisto.

        In some situations, deleting the line boxes of a multicol element causes the line to region
        link to become invalid.

        Test: fast/multicol/newmulticol/multicol-inside-multicol.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::clearLinesToRegionMap):
        (WebCore::RenderFlowThread::deleteLines):
        (WebCore::RenderFlowThread::willBeDestroyed):
        * rendering/RenderFlowThread.h:

2014-05-28  Ryuan Choi  <ryuan.choi@samsung.com>

        Remove DocumentThreadableLoaderClient.h
        https://bugs.webkit.org/show_bug.cgi?id=133341

        Reviewed by Gyuyoung Kim.

        DocumentThreadableLoaderClient is not used anymore.

        * WebCore.order:
        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::redirectReceived):
        * loader/DocumentThreadableLoaderClient.h: Removed.
        * loader/ThreadableLoaderClient.h:
        (WebCore::ThreadableLoaderClient::isDocumentThreadableLoaderClient): Deleted.

2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Update GObject DOM bindings symbols file after r169017.

        * bindings/gobject/webkitdom.symbols: Add webkit_dom_navigator_get_hardware_concurrency.

2014-05-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r168868): [GTK] Element.offset* client* scroll* API changed
        https://bugs.webkit.org/show_bug.cgi?id=133313

        Reviewed by Philippe Normand.

        Keep old API that uses long also for GObject bindings.

        * dom/Element.idl:

2014-05-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169400.
        https://bugs.webkit.org/show_bug.cgi?id=133338

        Broke the iOS build in
        LocalizedDateCache::calculateMaximumWidth() (Requested by smfr
        on #webkit).

        Reverted changeset:

        "SVG TextRuns do not always get RenderingContexts"
        https://bugs.webkit.org/show_bug.cgi?id=133198
        http://trac.webkit.org/changeset/169400

2014-05-27  Timothy Horton  <timothy_horton@apple.com>

        REGRESSION (Margin tiles): Background gradient on dom.spec.whatwg.org is very slow to render
        https://bugs.webkit.org/show_bug.cgi?id=133335
        <rdar://problem/17011392>

        Reviewed by Simon Fraser.

        * platform/graphics/Image.cpp:
        (WebCore::Image::drawTiled):
        Make cross-platform and use some iOS code which avoids patterned drawing when the pattern buffer
        would be very large. Instead, it calls draw() repeatedly over the pattern space, avoiding the allocation
        of a huge (in the case of bug 133335, nearly 2GB) buffer.

2014-05-27  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fix behavior of position:sticky inside accelerated overflow-scroll
        https://bugs.webkit.org/show_bug.cgi?id=133334
        <rdar://problem/16462535>

        Reviewed by Tim Horton.

        When the scroll position changes in an accelerated overflow-scroll element, we have
        to update child nodes in the scrolling tree for position:sticky. That requires a
        more generic ability to update the scrolling tree after some arbitrary zoom or
        scroll. To do this, we need to know the current fixed position rect, rather than
        having it passed in.
        
        So make the fixed position rect available from ScrollingTree, and make it possible
        to get the current scrollPosition() from any ScrollingTreeScrollingNode.
        
        Also, implement updateLayersAfterDelegatedScroll() in ScrollingTreeOverflowScrollingNodeIOS,
        and have it update descendant layers.
        
        Finally, fix ScrollingTreeOverflowScrollingNode to use the correct rectangle for its
        constraints math, using the scroll position of the parent node if appropriate.

        * page/scrolling/ScrollingTree.h:
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
        * page/scrolling/ios/ScrollingTreeIOS.cpp:
        (WebCore::ScrollingTreeIOS::fixedPositionRect):
        * page/scrolling/ios/ScrollingTreeIOS.h:
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):

2014-05-27  Simon Fraser  <simon.fraser@apple.com>

        Do some renaming in the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=133333

        Reviewed by Tim Horton.

        Rename ScrollingTreeNode::parentScrollPositionDidChange() to updateLayersAfterAncestorChange()
        since this goes deep and to indicate that it's about layer updating.
        
        Also rename the "viewportRect" parameter to "fixedPositionRect", since on iOS
        this is the custom fixed-position rect that changes on zooming.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
        * page/scrolling/ScrollingTree.h:
        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
        * page/scrolling/ScrollingTreeNode.h:
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
        * page/scrolling/mac/ScrollingTreeFixedNode.h:
        * page/scrolling/mac/ScrollingTreeFixedNode.mm:
        (WebCore::ScrollingTreeFixedNode::updateLayersAfterAncestorChange):
        (WebCore::ScrollingTreeFixedNode::parentScrollPositionDidChange): Deleted.
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
        * page/scrolling/mac/ScrollingTreeStickyNode.h:
        * page/scrolling/mac/ScrollingTreeStickyNode.mm:
        (WebCore::ScrollingTreeStickyNode::updateLayersAfterAncestorChange):
        (WebCore::ScrollingTreeStickyNode::parentScrollPositionDidChange): Deleted.

2014-05-27  Simon Fraser  <simon.fraser@apple.com>

        Instantiate a ScrollingTreeMac on Mac
        https://bugs.webkit.org/show_bug.cgi?id=133332

        Reviewed by Tim Horton.

        Mac previously instantiated a ThreadedScrollingTree, but this has no platform
        knowledge. To support future expansion, create a ScrollingTreeMac subclass and
        instantiate that on Mac.
        
        Also protect ScrollingCoordinatorMac in PLATFORM(MAC) #ifdefs and remove it from the
        EXCLUDED_SOURCE_FILE_NAMES list in the xcconfig file, following general trends.

        * Configurations/WebCore.xcconfig:
        * WebCore.xcodeproj/project.pbxproj:
        * page/scrolling/ThreadedScrollingTree.cpp:
        (WebCore::ThreadedScrollingTree::create): Deleted.
        * page/scrolling/ThreadedScrollingTree.h:
        * page/scrolling/mac/ScrollingCoordinatorMac.h:
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::ScrollingCoordinatorMac):
        * page/scrolling/mac/ScrollingTreeMac.cpp: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.
        (ScrollingTreeMac::create):
        (ScrollingTreeMac::ScrollingTreeMac):
        * page/scrolling/mac/ScrollingTreeMac.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingCoordinatorMac.h.

2014-05-27  Simon Fraser  <simon.fraser@apple.com>

        Prepare for position:sticky support inside accelerated overflow-scroll with WK2
        https://bugs.webkit.org/show_bug.cgi?id=133329

        Reviewed by Tim Horton.

        RenderLayerCompositor::computeStickyViewportConstraints() was always using
        the viewport rect as the constraining rect for sticky position. This is not
        correct when inside overflow:scroll.
        
        Refactor code in RenderBoxModelObject to make getting the rect easy, and use
        it to compute the constraints.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::constrainingRectForStickyPosition):
        (WebCore::RenderBoxModelObject::stickyPositionOffset):
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeStickyViewportConstraints):

2014-05-27  Bem Jones-Bey  <bjonesbe@adobe.com>

        vw/vh units used as font/line-height values don't scale with the viewport
        https://bugs.webkit.org/show_bug.cgi?id=87846

        Reviewed by Darin Adler.

        This patch moves the resolution of viewport units to style recalc
        time. Currently viewport units are left unresolved during style
        recalcs, which leads to many problems with viewport units. Moving the
        resolution will fix these problems, as well as reduce the plumbing
        that goes on.

        This patch touches a lot of files since the valueForLength functions
        no longer need a RenderView. The interesting changes are in:

        - CSSToLengthConversionData -> CSSPrimitiveValue: for moving
            resolution to style recalc time.
        - Length / LengthFunctions: no longer needs to know about viewport
            units.
        - FrameView -> Document -> StyleResolver: for scheduling style recalcs
            upon resize

        Note that getComputedStyle will now return pixel values when viewport
        units are used. This behavior matches Firefox and the css3-cascade
        spec.

        This is based on a Blink patch by timloh@chromium.org.

        Tests: css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html
               css3/viewport-percentage-lengths/viewport-percentage-lengths-calc.html
               css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html
               css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html
               css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html

        * WebCore.exp.in: Remove RenderView argument to floatValueForLength.
        * accessibility/atk/WebKitAccessibleInterfaceText.cpp: 
        (getAttributeSetForAccessibilityObject): Remove RenderView argument.
        * css/BasicShapeFunctions.cpp:
        (WebCore::convertToLength): Ditto.
        (WebCore::floatValueForCenterCoordinate): Ditto.
        * css/BasicShapeFunctions.h: Ditto.
        * css/CSSCalculationValue.cpp:
        (WebCore::unitCategory): Remove special handling for viewport units,
            as they get resolved to pixels.
        (WebCore::createCSS): Ditto.
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::positionOffsetValue): Remove RendewView argument.
        (WebCore::getBorderRadiusCornerValues): Remove handling of viewport
            units, as they are already resolve to pixels here.
        (WebCore::getBorderRadiusCornerValue): Remove RenderView argument.
        (WebCore::getBorderRadiusShorthandValue): Ditto.
        (WebCore::specifiedValueForGridTrackBreadth): Remove handling of
            viewport units, as they are already resolved to pixels here.
        (WebCore::specifiedValueForGridTrackSize): Remove RenderView argument.
        (WebCore::valueForGridTrackList): Ditto.
        (WebCore::lineHeightFromStyle): Ditto.
        (WebCore::ComputedStyleExtractor::propertyValue): Ditto.
        * css/CSSGradientValue.cpp:
        (WebCore::CSSLinearGradientValue::createGradient): Pass RenderView to
            CSSToLengthConversionData constructor.
        (WebCore::CSSRadialGradientValue::createGradient): Ditto.
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::unitCategory): Remove handling of
            viewport units, as they get resolved to pixels.
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Ditto.
        (WebCore::CSSPrimitiveValue::init): Ditto.
        (WebCore::CSSPrimitiveValue::computeLengthDouble): Resolve viewport
            units to pixels.
        (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory): Remove
        handling of viewport units, since they get resolved to pixels.
        (WebCore::CSSPrimitiveValue::viewportPercentageLength): Deleted.
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::isLength): Remove special handling of
            viewport units, since they get resolved to pixels.
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::convertToLength): Ditto.
        * css/CSSToLengthConversionData.cpp:
        (WebCore::CSSToLengthConversionData::viewportWidthFactor): Caclulate
            conversion factor for viewport units to pixels. Note this does not
            set hasViewportUnits on the RenderStyle if computing the font
            size, because in the font size case, the RenderStyle is the
            parent's style, not the current renderer's style.
        (WebCore::CSSToLengthConversionData::viewportHeightFactor): Ditto.
        (WebCore::CSSToLengthConversionData::viewportMinFactor): Ditto.
        (WebCore::CSSToLengthConversionData::viewportMaxFactor): Ditto.
        * css/CSSToLengthConversionData.h:
        (WebCore::CSSToLengthConversionData::CSSToLengthConversionData): Add
            RenderView parameter, and make RenderStyle non-const so that
            hasViewportUnits can be set on the Style..
        (WebCore::CSSToLengthConversionData::style): style is now non-const.
        (WebCore::CSSToLengthConversionData::copyWithAdjustedZoom): Handle
            RenderView argument.
        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::mapFillXPosition): Remove handling of
            viewport units, as they are already resolved to pixels here.
        (WebCore::CSSToStyleMap::mapFillYPosition): Ditto.
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyLength::applyValue): Ditto.
        (WebCore::ApplyPropertyBorderRadius::applyValue): Ditto.
        (WebCore::ApplyPropertyComputeLength::applyValue): Ditto.
        (WebCore::ApplyPropertyFontSize::applyValue): Ditto.
        (WebCore::ApplyPropertyLineHeight::applyValue): Ditto.
        (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue): Ditto.
        (WebCore::ApplyPropertyWordSpacing::applyValue): Ditto.
        (WebCore::ApplyPropertyVerticalAlign::applyValue): Ditto.
        (WebCore::ApplyPropertyTextIndent::applyValue): Ditto.
        * css/LengthFunctions.cpp:
        (WebCore::minimumIntValueForLength): Remove RenderView argument.
        (WebCore::intValueForLength): Remove RenderView argument and
            roundPecentages.
        (WebCore::minimumValueForLength): Remove RenderView argument, and
            special handling of viewport units.
        (WebCore::valueForLength): Ditto.
        (WebCore::floatValueForLength): Ditto.
        (WebCore::floatSizeForLengthSize): Remove RenderView argument.
        * css/LengthFunctions.h: Ditto.
        * css/MediaQueryEvaluator.cpp:
        (WebCore::MediaQueryEvaluator::eval): Add RenderView argument for
            CSSToLengthConversionData constuctor.
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::State::clear): Change to 0 arg constructor
            for CSSToLengthConversionData.
        (WebCore::StyleResolver::State::updateConversionData): In order to get
            the RenderView, we need to have a valid Element set on the state.
            Since this means that we need to set the conversion data in more
            places, move the contruction of conversion data into this helper
            method.
        (WebCore::StyleResolver::State::initElement): Make sure conversion
            data is up to date.
        (WebCore::StyleResolver::State::initForStyleResolve): Ditto.
        (WebCore::StyleResolver::State::setStyle): When the style is set, we
            need to make sure to update the conversion data.
        (WebCore::StyleResolver::styleForElement): If the style has viewport
            units, flage the document so that we can make sure to recalc the
            viewport unit values when the viewport is resized.
        (WebCore::StyleResolver::pseudoStyleForElement): Ditto.
        (WebCore::StyleResolver::updateFont): Make sure the font having
            viewport units updates the style.
        (WebCore::StyleResolver::convertToIntLength): Remove handling of
        viewport units, as they are resolved to pixels.
        (WebCore::StyleResolver::convertToFloatLength): Ditto.
        (WebCore::StyleResolver::clearCachedPropertiesAffectedByViewportUnits):
            Invalidate the matched properties cache for styles with viewport
            units when the viewport is resized.
        (WebCore::createGridTrackBreadth): Remove handling of viewport units,
            as they are resolved to pixels.
        (WebCore::StyleResolver::applyProperty): Ditto.
        (WebCore::StyleResolver::hasMediaQueriesAffectedByViewportChange):
            Rename to be less confusing, since it has nothing to do with
            viewport units.
        (WebCore::StyleResolver::createFilterOperations): Remove handling of
            viewport units, as they are resolved to pixels.
        (WebCore::StyleResolver::affectedByViewportChange): Deleted.
        (WebCore::StyleResolver::viewportPercentageValue): Deleted.
        * css/StyleResolver.h:
        (WebCore::StyleResolver::State::State): C++11 cleanup: 0 -> nullptr.
        (WebCore::StyleResolver::State::setFontSizeHasViewportUnits): Set if
            the font size is specified in viewport units.
        (WebCore::StyleResolver::State::fontSizeHasViewportUnits): Ditto.
        (WebCore::StyleResolver::State::setStyle): Deleted.
        * css/TransformFunctions.cpp:
        (WebCore::convertToFloatLength): Remove handling of viewport units,
            since they are resolved to pixels.
        * dom/Document.cpp:
        (WebCore::Document::Document): Add flag to determine if some style in
            the document has viewport units.
        (WebCore::Document::pageSizeAndMarginsInPixels): Remove RenderView
            argument.
        (WebCore::Document::updateViewportUnitsOnResize): Mark elements with
            viewport units for style recalc when the viewport size has
            changed.
        * dom/Document.h:
        (WebCore::Document::setHasStyleWithViewportUnits): Flag to determine
            if some style in the document has viewport units.
        (WebCore::Document::hasStyleWithViewportUnits): Ditto.
        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::getRegion): Remove RenderView argument.
        * page/FrameView.cpp:
        (WebCore::FrameView::layout): When the viewport is resized, call
            updateViewportUnitsOnResize on the document.
        * platform/Length.h:
        (WebCore::Length::isSpecified): Remove handling of viewport units,
            since they are now resolved to pixels.
        (WebCore::Length::viewportPercentageLength): Deleted.
        (WebCore::Length::isViewportPercentage): Deleted.
        * rendering/ClipPathOperation.h:
        (WebCore::ShapeClipPathOperation::pathForReferenceRect): Remove
            RenderView argument.
        (WebCore::BoxClipPathOperation::pathForReferenceRect): Ditto.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateBlockChildDirtyBitsBeforeLayout): Remove
            handling of viewport units, since they get updated by
            updateViewportUnitsOnResize when the viewport is resized.
        (WebCore::RenderBlock::nodeAtPoint): Remove RenderView argument.
        (WebCore::RenderBlock::lineHeight): Ditto.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations): Remove RenderView argument.
        (WebCore::RenderBox::computeContentAndScrollbarLogicalHeightUsing):
            Remove handling of viewport units, as they are resolved to pixels.
        (WebCore::RenderBox::computePercentageLogicalHeight): Ditto.
        (WebCore::RenderBox::computeReplacedLogicalWidthUsing): Ditto.
        (WebCore::RenderBox::computeReplacedLogicalHeightUsing): Ditto.
        (WebCore::RenderBox::hasViewportPercentageLogicalHeight): Deleted.
        * rendering/RenderBox.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::getBackgroundRoundedRect): Remove
            RenderView argument.
        (WebCore::RenderBoxModelObject::calculateFillTileSize): Remove
            handling of viewport units, as they are resolved to pixels.
        (WebCore::computeBorderImageSide): Remove RenderView argument.
        (WebCore::RenderBoxModelObject::paintNinePieceImage): Ditto.
        (WebCore::RenderBoxModelObject::paintBorder): Ditto.
        (WebCore::RenderBoxModelObject::paintBoxShadow): Ditto.
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::repaintAfterLayoutIfNeeded): Ditto.
        * rendering/RenderElement.h:
        (WebCore::RenderElement::valueForLength): Remove unused
            roundPercentages argument.
        (WebCore::RenderElement::minimumValueForLength): Remove unused
            RoundPercentages and RenderView arguments.
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::layoutGridItems): Remove handling of viewport
            units as they are resolved to pixels.
        * rendering/RenderInline.cpp:
        (WebCore::computeMargin): Ditto.
        (WebCore::RenderInline::lineHeight): Remove RenderView argument.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setupClipPath): Ditto.
        * rendering/RenderLineBreak.cpp:
        (WebCore::RenderLineBreak::lineHeight): Ditto.
        * rendering/RenderScrollbarPart.cpp:
        (WebCore::calcScrollbarThicknessUsing): Ditto.
        (WebCore::RenderScrollbarPart::computeScrollbarWidth): Ditto.
        (WebCore::RenderScrollbarPart::computeScrollbarHeight): Ditto.
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::convertStyleLogicalHeightToComputedHeight):
            Remove handling of viewport units, since they are resolved to
            pixels.
        (WebCore::RenderTable::computePreferredLogicalWidths): Now that
            viewport unit values are resolved to pixels at style recalc time,
            no special checking is needed to handle them, so update the
            comment to reflect that.
        * rendering/RenderThemeIOS.mm:
        (WebCore::applyCommonButtonPaddingToStyle): Add RenderView argument to
            CSSToLengthConversionData constructor.
        (WebCore::RenderThemeIOS::adjustButtonStyle): Ditto.
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintMenuListButtonGradients): Remove
            RenderView argument.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::layout): Remove handling of viewport units,
            since they are resolved to pixels.
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::ascentAndDescentForBox): Remove RenderView
            argument.
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createShape): Remove RenderView argument.
        * rendering/shapes/Shape.h:
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::ShapeOutsideInfo::computedShape): Ditto.
        * rendering/style/BasicShapes.cpp:
        (WebCore::BasicShapeCircle::floatValueForRadiusInBox): Ditto.
        (WebCore::BasicShapeCircle::path): Ditto.
        (WebCore::BasicShapeEllipse::floatValueForRadiusInBox): Ditto.
        (WebCore::BasicShapeEllipse::path): Ditto.
        (WebCore::BasicShapePolygon::path): Ditto.
        (WebCore::floatSizeForLengthSize): Ditto.
        (WebCore::BasicShapeInset::path): Ditto.
        * rendering/style/BasicShapes.h:
        * rendering/style/RenderStyle.cpp:
        (WebCore::calcRadiiFor): Ditto.
        (WebCore::RenderStyle::getRoundedBorderFor): Ditto.
        (WebCore::RenderStyle::computedLineHeight): Remove handling of
            viewport units since they are resolved to pixels.
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyle::setHasViewportUnits): Set if this style has
        a property set with viewport units.
        (WebCore::RenderStyle::hasViewportUnits): Ditto.
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::resolveLengthAttributeForSVG): Remove RenderView argument.
        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth): Ditto.
        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight): Ditto.
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent): Ditto.

2014-05-27  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] serialization of the computed value should omit the default radii
        https://bugs.webkit.org/show_bug.cgi?id=132747

        Reviewed by Darin Adler.

        We should omit closest-side value, whereever is possible. Specification:
        http://www.w3.org/TR/2014/CR-css-shapes-1-20140320/#basic-shape-computed-values 
        This change aligns the behavior to the specification.

        Added new test cases for the shape-outside parsing tests.

        * css/CSSBasicShapes.cpp:
        (WebCore::buildCircleString):
        (WebCore::CSSBasicShapeCircle::cssText):
        (WebCore::CSSBasicShapeEllipse::cssText):

2014-05-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r169399.
        https://bugs.webkit.org/show_bug.cgi?id=133326

        Causes assertion failures in tests.  See
        http://build.webkit.org/results/Apple%20Mavericks%20Debug%20WK1%20(Tests)/r169399%20(5622)/results.html
        (Requested by mlam on #webkit).

        Reverted changeset:

        "Caret's screen position does not update during an overflow
        scroll"
        https://bugs.webkit.org/show_bug.cgi?id=133256
        http://trac.webkit.org/changeset/169399

2014-05-27  Myles C. Maxfield  <mmaxfield@apple.com>

        Lists styled with SVG fonts are not rendered as expected
        https://bugs.webkit.org/show_bug.cgi?id=133198

        Reviewed by Simon Fraser.

        There were a couple places in RenderListMarker and RenderMenuList that were
        implicitly creating TextRuns by passing a String to a function which
        expected a TextRun. Because TextRun has a constructor which takes a single
        String and isn't marked explicit, TextRuns were being created without
        any of the associated code that initializes the TextRun (such as creating
        a RenderingContext if necessary).

        This patch marks the aforementioned constructor as "explicit" to discourage
        such behavior in the future.

        Test: svg/custom/list-items-with-svg-font-family.html

        * platform/graphics/TextRun.h:
        (WebCore::TextRun::TextRun): Mark constructors as explicit.
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::computePreferredLogicalWidths): Call
        RenderBlock::constructTextRun.
        (WebCore::RenderListMarker::getRelativeMarkerRect): Ditto.
        * rendering/RenderMenuList.cpp:
        (RenderMenuList::updateOptionsWidth): Ditto.

2014-05-23  Myles C. Maxfield  <mmaxfield@apple.com>

        Caret's screen position does not update during an overflow scroll
        https://bugs.webkit.org/show_bug.cgi?id=133256

        Reviewed by Simon Fraser.

        During a scroll, we set a flag which caret position is gated on, but we never
        actually invalidate the caret's position. This patch does so.

        Test: editing/input/caret-position-during-scroll.html

        * editing/FrameSelection.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollTo):

2014-05-27  Timothy Horton  <timothy_horton@apple.com>

        Turn on the LayerPool for iOS
        https://bugs.webkit.org/show_bug.cgi?id=133299

        Reviewed by Antti Koivisto.

        * Configurations/WebCore.xcconfig:
        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::platformReleaseMemory):
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::createTileLayer):
        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::removeTiles):
        Turn on the LayerPool for iOS.
        We've used this on Mac for a long time, and the WebKit1
        ("legacy") iOS TileCache also had a similar pool.
        This helps a good bit with flashiness while scrolling.

2014-05-27  David Hyatt  <hyatt@apple.com>

        REGRESSION: Audio volume scrubber does not show volume level thumb
        <rdar://problem/16902004>
        https://bugs.webkit.org/show_bug.cgi?id=133310

        Reviewed by Dean Jackson.

        This was just a silly mistake on my part with the setting of the pagination
        layers. Layers inside transforms are supposed to clear out their pagination
        status based off their ancestor containing block layers, and not off the
        enclosing pagination layer.
        
        Added fast/multicol/pagination/nested-transforms.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updatePagination):

2014-05-27  Eric Carlson  <eric.carlson@apple.com>

        [Mac] media controls should prevent 'click' events from reaching the page
        https://bugs.webkit.org/show_bug.cgi?id=133268

        Reviewed by Jer Noble.

        Test: media/media-controls-cancel-events.html

        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.handleEvent): Allow event handler to cancel event default action.
        (Controller.prototype.handleRewindButtonClicked): Cancel event default.
        (Controller.prototype.handlePlayButtonClicked): Ditto.
        (Controller.prototype.handleMuteButtonClicked): Ditto.
        (Controller.prototype.handleMinButtonClicked): Ditto.
        (Controller.prototype.handleCaptionButtonClicked): Ditto.
        (Controller.prototype.handleFullscreenButtonClicked): Ditto.
        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.handlePlayButtonTouchEnd): Ditto.
        (ControllerIOS.prototype.handlePlayButtonTouchCancel): Ditto.
        (ControllerIOS.prototype.handleFullscreenTouchEnd): Ditto.
        (ControllerIOS.prototype.handleFullscreenTouchCancel): Ditto.
        (ControllerIOS.prototype.handleStartPlaybackButtonTouchEnd): Ditto.
        (ControllerIOS.prototype.handleStartPlaybackButtonTouchCancel): Ditto.
        (ControllerIOS.prototype.handleWirelessPickerButtonClicked): Ditto.

2014-05-27  Jon Lee  <jonlee@apple.com>

        Fix Mavericks bots from r169383.
        https://bugs.webkit.org/show_bug.cgi?id=133311

        Reviewed by Eric Carlson.

        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Update #ifdef to check for ENABLE(MEDIA_SOURCE).
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: Ditto.

2014-05-27  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r168046): Incorrect handling of multicol spanner
        https://bugs.webkit.org/show_bug.cgi?id=133249

        Reviewed by David Hyatt.

        When removing the child of an object, the removeChild method should return the next element
        following the one being deleted. This will ensure that proper iteration and destruction of
        an object's children is possible.

        No new tests added. This is because the test that triggers this issue also triggers
        another assertion, in RenderMultiColumnSet::requiresBalancing(). However, that is a totally
        separate problem and will be handled in a separate bug: https://bugs.webkit.org/show_bug.cgi?id=133309

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::removeChild):
        * rendering/RenderBlock.h:
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::removeChild):
        * rendering/RenderBlockFlow.h:
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::removeChild):
        * rendering/RenderButton.h:
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::removeChild):
        (WebCore::RenderElement::removeChildInternal):
        * rendering/RenderElement.h:
        * rendering/RenderMenuList.cpp:
        (RenderMenuList::removeChild):
        * rendering/RenderMenuList.h:
        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
        * rendering/RenderRuby.cpp:
        (WebCore::RenderRubyAsInline::removeChild):
        (WebCore::RenderRubyAsBlock::removeChild):
        * rendering/RenderRuby.h:
        * rendering/RenderRubyRun.cpp:
        (WebCore::RenderRubyRun::removeChild):
        * rendering/RenderRubyRun.h:
        * rendering/mathml/RenderMathMLScripts.cpp:
        (WebCore::RenderMathMLScripts::removeChildInternal):
        (WebCore::RenderMathMLScripts::removeChild):
        (WebCore::RenderMathMLScriptsWrapper::removeChildInternal):
        (WebCore::RenderMathMLScriptsWrapper::removeChild):
        * rendering/mathml/RenderMathMLScripts.h:
        * rendering/svg/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::removeChild):
        * rendering/svg/RenderSVGContainer.h:
        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::removeChild):
        * rendering/svg/RenderSVGInline.h:
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::removeChild):
        * rendering/svg/RenderSVGRoot.h:
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::removeChild):
        * rendering/svg/RenderSVGText.h:

2014-05-27  Jon Lee  <jonlee@apple.com>

        Update ENABLE(MEDIA_SOURCE) on Mac
        https://bugs.webkit.org/show_bug.cgi?id=133141

        Reviewed by Darin Adler.

        * Configurations/FeatureDefines.xcconfig:

2014-05-27  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>

        Remove BLOB guards
        https://bugs.webkit.org/show_bug.cgi?id=132863

        Reviewed by Csaba Osztrogonác.

        * Configurations/FeatureDefines.xcconfig:
        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::WebSocketChannel):
        (WebCore::WebSocketChannel::didFail):
        (WebCore::WebSocketChannel::processOutgoingFrameQueue):
        (WebCore::WebSocketChannel::abortOutgoingFrameQueue):
        * Modules/websockets/WebSocketChannel.h:
        * WebCore.exp.in:
        * WebCore.vcxproj/WebCore.vcxproj:
        * bindings/js/JSBlobCustom.cpp:
        (WebCore::JSBlobConstructor::constructJSBlob):
        * bindings/js/JSFileReaderCustom.cpp:
        * dom/DOMExceptions.in:
        * dom/EventTargetFactory.in:
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::publicURLManager):
        * dom/ScriptExecutionContext.h:
        * fileapi/AsyncFileStream.cpp:
        * fileapi/AsyncFileStream.h:
        * fileapi/Blob.cpp:
        (WebCore::Blob::Blob):
        * fileapi/Blob.h:
        (WebCore::Blob::slice):
        * fileapi/Blob.idl:
        * fileapi/FileError.h:
        * fileapi/FileError.idl:
        * fileapi/FileException.cpp:
        * fileapi/FileException.h:
        * fileapi/FileException.idl:
        * fileapi/FileReader.cpp:
        * fileapi/FileReader.h:
        * fileapi/FileReader.idl:
        * fileapi/FileReaderLoader.cpp:
        * fileapi/FileReaderLoader.h:
        * fileapi/FileReaderLoaderClient.h:
        * fileapi/FileReaderSync.cpp:
        * fileapi/FileReaderSync.h:
        * fileapi/FileReaderSync.idl:
        * fileapi/FileThread.cpp:
        * fileapi/FileThread.h:
        * fileapi/ThreadableBlobRegistry.cpp:
        (WebCore::ThreadableBlobRegistry::registerFileBlobURL): Deleted.
        (WebCore::ThreadableBlobRegistry::registerBlobURL): Deleted.
        (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice): Deleted.
        (WebCore::ThreadableBlobRegistry::unregisterBlobURL): Deleted.
        (WebCore::ThreadableBlobRegistry::blobSize): Deleted.
        (WebCore::ThreadableBlobRegistry::getCachedOrigin): Deleted.
        * fileapi/WebKitBlobBuilder.cpp:
        (WebCore::BlobBuilder::append):
        * fileapi/WebKitBlobBuilder.h:
        * html/DOMURL.cpp:
        * html/DOMURL.h:
        * html/DOMURL.idl:
        * html/PublicURLManager.cpp:
        * html/PublicURLManager.h:
        * loader/LoaderStrategy.cpp:
        (WebCore::LoaderStrategy::createBlobRegistry):
        * loader/LoaderStrategy.h:
        * page/DOMWindow.idl:
        * page/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::shouldUseInnerURL):
        (WebCore::getCachedOrigin):
        * platform/FileStream.cpp:
        * platform/FileStream.h:
        * platform/FileStreamClient.h:
        * platform/SchemeRegistry.cpp:
        (WebCore::canDisplayOnlyIfCanRequestSchemes):
        * platform/network/BlobRegistry.cpp:
        * platform/network/BlobRegistryImpl.cpp:
        * platform/network/BlobResourceHandle.cpp:
        * platform/network/BlobResourceHandle.h:
        * platform/network/FormData.cpp:
        (WebCore::FormData::deepCopy):
        (WebCore::FormData::appendFile):
        (WebCore::FormData::appendBlob):
        (WebCore::FormData::appendKeyValuePairItems):
        (WebCore::FormData::resolveBlobReferences):
        (WebCore::encodeElement):
        (WebCore::decodeElement):
        * platform/network/FormData.h:
        (WebCore::FormDataElement::FormDataElement):
        (WebCore::operator==):
        * platform/network/cf/FormDataStreamCFNet.cpp:
        (WebCore::closeCurrentStream):
        (WebCore::advanceCurrentStream):
        (WebCore::formCreate):
        (WebCore::formRead):
        (WebCore::setHTTPBody):
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::getFormElementsCount):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::addEncodedBlobToSoupMessageBody):
        (WebCore::addFormElementsToSoupMessage):
        * workers/WorkerGlobalScope.idl:
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::send):
        (WebCore::XMLHttpRequest::createRequest):

2014-05-27  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>

        Allow building CMake based ports with WEB_REPLAY
        https://bugs.webkit.org/show_bug.cgi?id=133154

        Reviewed by Csaba Osztrogonác.

        * CMakeLists.txt:

2014-05-27  Adrian Perez de Castro  <aperez@igalia.com>

        [GStreamer] Add missing <wtf/MathExtras.h> header
        https://bugs.webkit.org/show_bug.cgi?id=133236

        Reviewed by Philippe Normand.

        In some configurations, not including <wtf/MathExtras.h> will cause
        errors about undefined functions. In particular, this happens in
        Linux with glibc 2.19 and compiling with Clang. Having the header
        included is the correct thing to do anyway.

        * platform/graphics/gstreamer/GStreamerUtilities.cpp:
        Include <wtf/MathExtras.h>

2014-05-27  Manuel Rego Casasnovas  <rego@igalia.com>

        Setting up OrderIterator shouldn't require an extra Vector
        https://bugs.webkit.org/show_bug.cgi?id=119061

        Reviewed by Darin Adler.

        From Blink r153971 by <jchaffraix@chromium.org>

        This patches reuse the OrderIterator's Vector. It provides a helper class OrderIteratorPopulator, used for
        manipulating the Vector directly. Which allows to consolidate the code into a single implementation across
        flexbox and grid.

        No new tests, already covered by current tests.

        * rendering/OrderIterator.cpp:
        (WebCore::OrderIteratorPopulator::~OrderIteratorPopulator): Reset OrderIterator and call
        removeDuplicatedOrderValues().
        (WebCore::OrderIteratorPopulator::removeDuplicatedOrderValues): Sorts the Vector and removes the duplicated
        order values.
        (WebCore::OrderIteratorPopulator::collectChild): Collect order value information from child.
        (WebCore::OrderIterator::setOrderValues): Deleted.
        * rendering/OrderIterator.h:
        (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): Add helper class to manipulate OrderValues Vector.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock): Remove unneeded code related to old OrderValues vector.
        (WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins): Populate OrderIterator using collectChild().
        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Deleted.
        * rendering/RenderFlexibleBox.h: Rename computeMainAxisPreferredSizes() to prepareOrderIteratorAndMargins().
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Populate OrderIterator using collectChild().

2014-05-26  Tim Horton  <timothy_horton@apple.com>

        [wk2] RemoteLayerBackingStore front buffers should be purgeable when unparented
        https://bugs.webkit.org/show_bug.cgi?id=133020
        <rdar://problem/16521736>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * platform/graphics/cg/IOSurfacePool.cpp:
        (WebCore::IOSurfacePool::willAddSurface):
        * platform/graphics/cocoa/IOSurface.h:
        * platform/graphics/cocoa/IOSurface.mm:
        (IOSurface::releaseGraphicsContext):
        Rename clearGraphicsContext to releaseGraphicsContext for clarity.

2014-05-26  Philip Rogers  <pdr@google.com>

        Remove special case for transparent SVG root layers
        https://bugs.webkit.org/show_bug.cgi?id=116856

        Reviewed by Dirk Schulze.

        This patch removes a special case from RenderLayer for root SVG layers
        with opacity. Instead of checking whether a composited layer exists in
        SVGRenderingContext::prepareToRenderSVGContent we now exclude the root
        SVG renderobject from the opacity checks in prepareToRenderSVGContent.

        This is a merge of https://src.chromium.org/viewvc/blink?view=rev&revision=174102
        by Philip Rogers <pdr@chromium.org>.

        No new tests as this is covered by svg/custom/composited-svg-with-opacity.html.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::isTransparent): Deleted.
        * rendering/RenderLayer.h:
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):
            The opacity case for root svg renderers is now handled by
            RenderLayer.

2014-05-26  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: Fix build error raised when CSS_SELECTOR_JIT_DEBUGGING is 1
        https://bugs.webkit.org/show_bug.cgi?id=133266

        Reviewed by Benjamin Poulain.

        When CSS_SELECTOR_JIT_DEBUGGING is 1, build erros occur on x86_64.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):

2014-05-26  Benjamin Poulain  <benjamin@webkit.org>

        Fix the quirks mode selector matching of the pseudo classes :hover and :active
        https://bugs.webkit.org/show_bug.cgi?id=133063

        Reviewed by Antti Koivisto.

        Our implementation of the quirks mode of :active and :hover was very wrong. The only
        thing it was doing is verify the pseudo class is not the first selector of a fragment
        (which was conveniently the only thing that was tested :)).

        Since those pseudo class were only checking for the order of the filters, something like
            #target:hover
        would succeed because :hover is not the first simple selector, while
            :hover#target
        would fail.

        That behavior is also a problem for the CSS JIT as it is an implementation detail of SelectorChecker
        and compiling something like that with our out-of-order matching would be nonsense.

        This patch update the implementation to follow http://quirks.spec.whatwg.org/#the-:active-and-:hover-quirk
        Basically, the only cases that do not work in quirks mode are selectors composed only of "*, :hover and :active".

        To implement this behavior, I needed to be able to inspect a complete selector fragment, including
        what is before and after :hover/:active.
        To do that, I replaced the boolean isSubSelector by a pointer to the first selector of the fragment.
        When we need to match :active/:hover in quirks mode, we just go over all the selectors in the fragment
        to find one of the qualifying match type.

        Tests: fast/selectors/active-hover-quirks.html
               fast/selectors/active-quirks.html
               fast/selectors/hover-quirks.html

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):
        (WebCore::canMatchHoverOrActiveInQuirksMode):
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::SelectorCheckingContext::SelectorCheckingContext):

2014-05-26  Zalan Bujtas  <zalan@apple.com>

        Split the call to adjustForLocalZoom out into a separate expression.
        https://bugs.webkit.org/show_bug.cgi?id=133286

        Reviewed by Darin Adler.

        This patch ensures that adjustForLocalZoom() always gets called before we look at
        zoomFactor's value. (and not rely on the undefined behavior of the order of function argument evaluation)

        * dom/Element.cpp:
        (WebCore::Element::offsetLeft):
        (WebCore::Element::offsetTop):

2014-05-26  Darin Adler  <darin@apple.com>

        Class name matching should use ASCII case-insensitive matching, not Unicode case folding
        https://bugs.webkit.org/show_bug.cgi?id=133292

        Reviewed by Anders Carlsson.

        Tests: fast/dom/getElementsByClassName/ASCII-case-insensitive.html
               fast/dom/getElementsByClassName/case-sensitive.html

        * dom/SpaceSplitString.cpp:
        (WebCore::hasNonASCIIOrUpper): Deleted.
        (WebCore::tokenizeSpaceSplitString): Use a for loop instead of while.
        (WebCore::spaceSplitStringTable): Renamed from sharedDataMap; the new name is supposed
        to help us see the analogy with the atomic string table.
        (WebCore::SpaceSplitString::set): Removed unneeded special case for null and preflight
        since AtomicString::convertToASCIILowercase now handles both of those. Changed to call
        convertToASCIILowercase instead of foldCase, since we don't want to fold non-ASCII.
        (WebCore::SpaceSplitString::spaceSplitStringContainsValue): Ditto.
        (WebCore::SpaceSplitStringData::create): Marked this inline since it's only called in
        one place and that place is in this file. Also used auto a bit and used get instead of
        find since the value type is a simple pointer.
        (WebCore::SpaceSplitStringData::destroy): Removed unneeded check for null. We never
        create any SpaceSplitStringData with empty strings, and a null is a kind of empty string.

        * dom/SpaceSplitString.h: Removed some unneeded includes and some unneeded uses of the
        inline keyword. Changed types from size_t to unsigned in a couple places; we had a mix
        of the types and there was no reason to use size_t there.

2014-05-26  Javier Fernandez  <jfernandez@igalia.com>

        [CSS Grid Layout] Implementation of the "grid" shorthand.
        https://bugs.webkit.org/show_bug.cgi?id=132122

        Reviewed by Darin Adler.

        The grid property is a shorthand that sets all of the explicit
        grid properties (grid-template-rows, grid-template-columns, and
        grid-template-areas) as well as all the implicit grid properties
        (grid-auto-rows, grid-auto-columns, and grid-auto-flow) in a
        single declaration

        Notice that either explicit or implicit grid can be specified,
        assigning the initial values to the omitted properties.

        Test: fast/css-grid-layout/grid-shorthand-get-set.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseGridShorthand):
        * css/CSSParser.h:
        * css/CSSPropertyNames.in:
        * css/StylePropertyShorthand.cpp:
        (WebCore::webkitGridShorthand):
        * css/StylePropertyShorthand.h:

2014-05-26  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Legacy Element.offset* client* return values are invalid in certain cases.
        https://bugs.webkit.org/show_bug.cgi?id=133272

        Reviewed by Simon Fraser.

        Element.offset* client* functions applied various rounding strategies on the return values before r168868.
        (for example, offsetLeft/Top either floored through implicit integer arithmetics or rounded explicitly depending
        whether the zoom scale was 1. see http://trac.webkit.org/changeset/168868/trunk/Source/WebCore/dom/Element.cpp for details)
        This patch mimics the legacy behavior by either rounding or flooring the return value.

        Not testable (legacy switch is not exposed)

        * dom/Element.cpp:
        (WebCore::adjustForLocalZoom):
        (WebCore::convertToNonSubpixelValueIfNeeded):
        (WebCore::Element::offsetLeft):
        (WebCore::Element::offsetTop):

2014-05-26  Michał Pakuła vel Rutka  <m.pakula@samsung.com>

        [EFL] Input fields and text areas are not rendered correctly after r167771
        https://bugs.webkit.org/show_bug.cgi?id=133181

        Reviewed by Gyuyoung Kim.

        r167771 changed arguments of RenderTheme two virtual method arguments which were not reflected
        in changes in derived classes, which caused parent method to be called. Arguments in derived class
        were updated, also 'override' specifiers were added to all virtual methods to prevent similar errors.

        Already covered by fast/forms/textarea-placeholder-wrapping.html

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::paintTextField):
        (WebCore::RenderThemeEfl::paintTextArea):
        * platform/efl/RenderThemeEfl.h:
        (WebCore::RenderThemeEfl::supportsHover):
        (WebCore::RenderThemeEfl::supportsControlTints):

2014-05-20  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Children of grid containers must be turned into grid items
        https://bugs.webkit.org/show_bug.cgi?id=132991

        Reviewed by Darin Adler.

        From Blink r150472 by <jchaffraix@chromium.org>

        According to specs each child of a grid container must become a
        grid item meaning that grid items are grid level boxes and thus,
        do not participate in the block formatting context but in the grid
        formatting one.

        This change updates the grid items' 'display' property after style
        resolution so that we match the specification (see section 4. Grid
        Items). The spec basically instructs us to compute the value of
        'display' by applying the table in CSS2.1 Chapter 9.7
        http://www.w3.org/TR/CSS2/visuren.html#dis-pos-flo

        Test: fast/css-grid-layout/grid-item-display.html

        * css/StyleResolver.cpp:
        (WebCore::isDisplayGridBox):
        (WebCore::StyleResolver::adjustRenderStyle):

2014-05-26  Zan Dobersek  <zdobersek@igalia.com>

        Remove Vector copies in ShorthandPropertyWrapper implementation and use
        https://bugs.webkit.org/show_bug.cgi?id=133265

        Reviewed by Simon Fraser.

        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper): Move the passed-in Vector
        into the member variable instead of using Vector<>::swap().
        (WebCore::ShorthandPropertyWrapper::propertyWrappers): Return a const reference of the member
        variable instead of a const value.
        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap): Move the Vector
        object into the ShorthandProperthyWrapper constructor.
        (WebCore::gatherEnclosingShorthandProperties): Deploy a range-based for-loop.

2014-05-26  Tanay C  <tanay.c@samsung.com>

        [EFL] Fix build error in blob.cpp after r168435
        https://bugs.webkit.org/show_bug.cgi?id=132678

        Reviewed by Alexey Proskuryakov.

        * fileapi/Blob.cpp:
        (WebCore::Blob::size): Using isInBound to check range of local var
        actualsize to resolve build error

2014-05-25  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Remove TileCairo and TiledBackingStoreBackendCairo
        https://bugs.webkit.org/show_bug.cgi?id=133274

        Reviewed by Gyuyoung Kim.

        Now, TiledBackingStore is only used for CoordinatedGraphics and the EFL port.
        CoordinatedGraphics does not use TileCairo and TiledBackingStoreBackendCairo.

        This patch removed them and refactored related files.

        * PlatformEfl.cmake:
        * PlatformGTK.cmake:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * platform/graphics/TiledBackingStore.cpp:
        (WebCore::TiledBackingStore::TiledBackingStore): Deleted.
        * platform/graphics/TiledBackingStore.h:
        * platform/graphics/TiledBackingStoreBackend.h:
        * platform/graphics/cairo/TileCairo.cpp: Removed.
        * platform/graphics/cairo/TiledBackingStoreBackendCairo.cpp: Removed.

2014-05-25  Jinwoo Song  <jinwoo7.song@samsung.com>

        setData() of DataTransfer has a void return type
        https://bugs.webkit.org/show_bug.cgi?id=133108

        Reviewed by Alexey Proskuryakov.

        According to HTML5 spec, setData() of DataTranfer interface does not return value.
        http://www.w3.org/TR/html/editing.html#the-datatransfer-interface

        Test: editing/pasteboard/set_data_typeof_return.html

        * dom/DataTransfer.cpp:
        (WebCore::DataTransfer::setData):
        * dom/DataTransfer.h:
        * dom/DataTransfer.idl:
        * platform/Pasteboard.h:
        * platform/efl/PasteboardEfl.cpp:
        (WebCore::Pasteboard::writeString):
        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::writeString):
        * platform/ios/PasteboardIOS.mm:
        (WebCore::Pasteboard::writeString):
        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::writeString):
        * platform/win/PasteboardWin.cpp:
        (WebCore::Pasteboard::writeString):

2014-05-25  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Use ScrollView's scrollOffset as the unobscuredContentRect
        https://bugs.webkit.org/show_bug.cgi?id=133262

        Reviewed by Simon Fraser.

        Since VisibleContentRect was fixed, we were no longer sending scroll events when updating the scrollOffset
        when updating the visible content rects. The reason is that the scrollOffset was defined as the top left of the
        VisibleContentRect, and as such was already at the end position after updating the unobscured rect.

        This patch split the unobscuredContentRect in unobscuredContentSize (updated live on zoom) and the position defined
        by the ScrollView's scrollOffset (updated when scrolling).

        * WebCore.exp.in:
        * platform/ScrollView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::unobscuredContentRect):
        (WebCore::ScrollView::setUnobscuredContentSize):
        (WebCore::ScrollView::setUnobscuredContentRect): Deleted.

2014-05-25  David Kilzer  <ddkilzer@apple.com>

        Add type-checked casts for TransformOperations
        <http://webkit.org/b/133217>

        Reviewed by Simon Fraser.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::validateTransformOperations):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::getTransformFunctionValue):
        - Switch to type-checked casts.

        * platform/graphics/transforms/IdentityTransformOperation.h:
        * platform/graphics/transforms/Matrix3DTransformOperation.h:
        * platform/graphics/transforms/MatrixTransformOperation.h:
        * platform/graphics/transforms/PerspectiveTransformOperation.h:
        * platform/graphics/transforms/RotateTransformOperation.h:
        * platform/graphics/transforms/ScaleTransformOperation.h:
        * platform/graphics/transforms/SkewTransformOperation.h:
        * platform/graphics/transforms/TranslateTransformOperation.h:
        - Add 'final' to class declaration.
        - Add 'override' to overridden methods.
        - Add type-checked cast via TRANSFORMOPERATION_TYPE_CASTS macro.
        - Move implementation of operator==(const TransformOperation&)
          from header to source file so it is able to use a type-checked
          cast, and switch back to using a reference instead of a
          pointer.
        - Add or update ASSERT in private constructor to check for
          correct OperationType in classes that represent multiple
          types.

        * platform/graphics/transforms/Matrix3DTransformOperation.cpp:
        (WebCore::Matrix3DTransformOperation::operator==): Added.

        * platform/graphics/transforms/MatrixTransformOperation.cpp:
        (WebCore::Matrix3DTransformOperation::operator==): Added.
        (WebCore::MatrixTransformOperation::blend):
        - Switch to type-checked casts and use a reference.

        * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
        (WebCore::Matrix3DTransformOperation::operator==): Added.
        (WebCore::PerspectiveTransformOperation::blend):
        * platform/graphics/transforms/RotateTransformOperation.cpp:
        (WebCore::Matrix3DTransformOperation::operator==): Added.
        (WebCore::RotateTransformOperation::blend):
        * platform/graphics/transforms/ScaleTransformOperation.cpp:
        (WebCore::Matrix3DTransformOperation::operator==): Added.
        (WebCore::ScaleTransformOperation::blend):
        * platform/graphics/transforms/SkewTransformOperation.cpp:
        (WebCore::Matrix3DTransformOperation::operator==): Added.
        (WebCore::SkewTransformOperation::blend):
        * platform/graphics/transforms/TranslateTransformOperation.cpp:
        (WebCore::Matrix3DTransformOperation::operator==): Added.
        (WebCore::TranslateTransformOperation::blend):
        - Switch to type-checked casts.

        * platform/graphics/transforms/TransformOperation.h:
        (WebCore::TransformOperation::isRotateTransformOperationType):
        (WebCore::TransformOperation::isScaleTransformOperationType):
        (WebCore::TransformOperation::isSkewTransformOperationType):
        (WebCore::TransformOperation::isTranslateTransformOperationType):
        - Add type-checking methods used in constructors and type-checked
          casts.
        - Define TRANSFORMOPERATION_TYPE_CASTS macro used by subclasses.

2014-05-25  David Kilzer  <ddkilzer@apple.com>

        Crash in WebCore::TextResourceDecoder::checkForCSSCharset
        <http://webkit.org/b/133257>
        <rdar://problem/17027109>

        Reviewed by Alexey Proskuryakov.

        Test: fast/encoding/css-charset-missing-semi-colon-and-newline.html

        * loader/TextResourceDecoder.cpp:
        (WebCore::TextResourceDecoder::checkForCSSCharset): Add early
        return.

2014-05-24  Eric Carlson  <eric.carlson@apple.com>

        [Mac] preload AVAssetTrack properties before asking for them
        https://bugs.webkit.org/show_bug.cgi?id=133240

        Reviewed by Jer Noble.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::assetTrackMetadataKeyNames): Add preferredTransform and naturalSize to the list
            of properties we preload.

2014-05-24  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>

        Remove one of the CSSProperty constructor
        https://bugs.webkit.org/show_bug.cgi?id=131094

        Reviewed by Darin Adler.

        Remove one of the CSSProperty constructor, because it is obsolete.

        * css/CSSProperty.h:
        (WebCore::CSSProperty::CSSProperty): Deleted.
        * css/StyleProperties.h:
        (WebCore::StyleProperties::PropertyReference::toCSSProperty):

2014-05-23  Simon Fraser  <simon.fraser@apple.com>

        Rename ScrollingTreeScrollingNode's m_scrollPosition to make it clear that it's the value committed from the state tree
        https://bugs.webkit.org/show_bug.cgi?id=133254

        Reviewed by Tim Horton.

        Make ScrollingTreeScrollingNode::scrollPosition() pure virtual, and rename
        the member variable and associated getter to make it clear that they relate
        to the last committed scroll position.

        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (WebCore::ScrollingTreeScrollingNode::lastCommittedScrollPosition):
        (WebCore::ScrollingTreeScrollingNode::scrollPosition): Deleted.

2014-05-23  Simon Fraser  <simon.fraser@apple.com>

        Share some more ScrollingTreeScrollingNode code
        https://bugs.webkit.org/show_bug.cgi?id=133248

        Reviewed by Sam Weinig.

        Push scrollBy(), scrollByWithoutContentEdgeConstraints() and setScrollPosition()
        down to ScrollingTreeFrameScrollingNode.
        
        This requires that scrollPosition() return the right thing for each class, so make
        it virtual. Future patches will reduce the confusion between the committed scroll
        position and the one derived from layers.

        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp:
        (WebCore::ScrollingTreeFrameScrollingNode::scrollBy):
        (WebCore::ScrollingTreeFrameScrollingNode::scrollByWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeFrameScrollingNode::setScrollPosition):
        * page/scrolling/ScrollingTreeFrameScrollingNode.h:
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (WebCore::ScrollingTreeScrollingNode::scrollPosition):
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h:
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition): Deleted.
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy): Deleted.
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints): Deleted.
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy): Deleted.
        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints): Deleted.

2014-05-24  Chris Fleizach  <cfleizach@apple.com>

        AX: fix coordinate mapping for iOS accessibility
        https://bugs.webkit.org/show_bug.cgi?id=133188

        Reviewed by Sam Weinig.

        Make WebCore aware of the accessibility point/rect conversion methods.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
        (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):
        * loader/EmptyClients.h:
        * page/Chrome.cpp:
        (WebCore::Chrome::accessibilityScreenToRootView):
        (WebCore::Chrome::rootViewToAccessibilityScreen):
        * page/Chrome.h:
        * page/ChromeClient.h:
        * platform/HostWindow.h:

2014-05-24  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Non-compositing transforms with subpixel coordinates paint to wrong position.
        https://bugs.webkit.org/show_bug.cgi?id=133184
        <rdar://problem/16745606>

        Reviewed by Simon Fraser.

        Snapping relative negative coordinate values should produce the same position as if they were
        positive absolute coordinates.
        When a child box gets positioned off of its containers towards top/left, its relative coordinates
        become negative. Pixel snapping those negative values should produce the same
        final painting position as if the child box was fixed positioned with positive coordinates.
        Since halfway values always round away from zero, negative and positive halfway values
        produce opposite rounding direction.
        This patch ensures that negative halfway values round to the direction as if they were positive.  

        Test: fast/layers/hidpi-floor-negative-coordinate-values-to-maintain-rounding-direction.html

        * platform/LayoutUnit.h:
        (WebCore::roundToDevicePixel):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerByApplyingTransform):

2014-05-24  Frédéric Wang  <fred.wang@free.fr>

        Use size variants and glyph assembly from the MATH data.
        https://bugs.webkit.org/show_bug.cgi?id=130322

        Reviewed by Chris Fleizach.

        This patch modifies the RenderMathMLOperator code to use the MATH table
        when one is provided in the current font on the <math> tag. More
        precisely, the MathVariants table is used to draw a size variant or
        a glyph assembly. The displaystyle attribute is not supported yet, so
        for now large operators are always assumed to be in display style. The
        MATH support does not work well with all platforms+fonts, so at the
        moment the default font-family on the <math> is not changed.

        Tests: mathml/opentype/large-operators-LatinModern.html
               mathml/opentype/opentype-stretchy.html
               mathml/opentype/vertical-LatinModern.html

        * css/mathml.css: We only specify the default font-family on the math root, so that people can easily style the mathematics.
        For now, old fonts without the MATH table are still used as the default.
        (math):
        (math, mfenced > *): Deleted.
        (mo, mfenced): Deleted.
        * platform/graphics/SimpleFontData.cpp: don't return the math data if the font is loading.
        (WebCore::SimpleFontData::mathData):
        * platform/graphics/opentype/OpenTypeMathData.cpp: update #ifdef so that disabling ENABLE_OPENTYPE_MATH won't lead to errors with unused parameters.
        (WebCore::OpenTypeMathData::OpenTypeMathData):
        (WebCore::OpenTypeMathData::getMathConstant):
        (WebCore::OpenTypeMathData::getItalicCorrection):
        (WebCore::OpenTypeMathData::getMathVariants):
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::boundsForGlyph):
        (WebCore::RenderMathMLOperator::heightForGlyph):
        (WebCore::RenderMathMLOperator::advanceForGlyph):
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths): We handle preferred width of size variants.
        (WebCore::RenderMathMLOperator::shouldAllowStretching): This function now only returns whether the operator will stretch and no longer has side effect.
        (WebCore::RenderMathMLOperator::getGlyphAssemblyFallBack): We add a function to convert from the MathVariant table data to the format supported by RenderMathMLOperator.
        (WebCore::RenderMathMLOperator::getDisplayStyleLargeOperator): We add a function to get the glyph that will be used for large operators in display style.
        (WebCore::RenderMathMLOperator::findStretchyData): We make this function handle size variants.
        (WebCore::RenderMathMLOperator::updateStyle): We handle size variants.
        (WebCore::RenderMathMLOperator::paint): We handle size variants.
        * rendering/mathml/RenderMathMLOperator.h:

2014-05-23  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (iOS WebKit2): requestAnimationFrame fires more than once between layer tree commits
        https://bugs.webkit.org/show_bug.cgi?id=132794
        <rdar://problem/16877909>

        Reviewed by Simon Fraser.

        Virtualize DisplayRefreshMonitor so that WebKit2 can implement its own DisplayRefreshMonitor for UI-side compositing views.
        This allows the synchronization of requestAnimationFrame callbacks with UI-side compositing painting.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        
        * page/ChromeClient.h:
        (WebCore::ChromeClient::graphicsLayerFactory):
        (WebCore::ChromeClient::createDisplayRefreshMonitor):
        * platform/graphics/DisplayRefreshMonitorFactory.h: Added.
        * platform/graphics/GraphicsLayerUpdater.cpp:
        (WebCore::GraphicsLayerUpdater::createDisplayRefreshMonitor):
        * platform/graphics/GraphicsLayerUpdater.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::createDisplayRefreshMonitor):
        * rendering/RenderLayerCompositor.h:
        Give the ChromeClient a chance to provide us with a custom DisplayRefreshMonitor.
        If it does not, we'll fall back to making a DisplayRefreshMonitorMac or
        DisplayRefreshMonitorIOS depending on the platform.

        * dom/ScriptedAnimationController.cpp:
        * dom/ScriptedAnimationController.h:
        * platform/graphics/DisplayRefreshMonitor.cpp:
        * platform/graphics/DisplayRefreshMonitor.h:
        * platform/graphics/DisplayRefreshMonitorClient.cpp: Added.
        * platform/graphics/DisplayRefreshMonitorClient.h: Added.
        * platform/graphics/DisplayRefreshMonitorManager.cpp: Added.
        * platform/graphics/DisplayRefreshMonitorManager.h: Added.
        Split DisplayRefreshMonitor.cpp into one file per class.
        Use references in a few places.
        Remove some useless comments.

        * platform/graphics/DisplayRefreshMonitor.cpp:
        (WebCore::DisplayRefreshMonitor::displayDidRefresh):
        Use takeAny() and remove a FIXME about it not existing.

        * platform/graphics/DisplayRefreshMonitorClient.cpp: Added.
        (WebCore::DisplayRefreshMonitorClient::fireDisplayRefreshIfNeeded):
        Use an early return instead of having the whole function body in an if().

        * platform/graphics/ios/DisplayRefreshMonitorIOS.h: Added.
        * platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
        * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
        * platform/graphics/mac/DisplayRefreshMonitorMac.h: Added.
        Virtualize DisplayRefreshMonitorIOS and DisplayRefreshMonitorMac,
        and move things specific to each of them out of DisplayRefreshMonitor itself.

2014-05-23  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: Apply backtracking optimization to adjacent backtracking
        https://bugs.webkit.org/show_bug.cgi?id=132951

        Reviewed by Benjamin Poulain.

        Apply the backtracking optimization to the adjacent backtracking.
        This optimization is already done for the descendant backtracking.
        We apply this to the adjacent backtracking similarly.

        Test: fast/selectors/backtracking-adjacent-optimized.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
        (WebCore::SelectorCompiler::solveAdjacentBacktrackingActionForDirectAdjacent):
        (WebCore::SelectorCompiler::solveBacktrackingAction):
        (WebCore::SelectorCompiler::computeBacktrackingStartOffsetInChain):
        (WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
        (WebCore::SelectorCompiler::computeBacktrackingWidthFromIndirectAdjacent):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
        (WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant): Deleted.

2014-05-23  Alex Christensen  <achristensen@webkit.org>

        Make CSS JIT run on ARM64.
        https://bugs.webkit.org/show_bug.cgi?id=133156

        Reviewed by Benjamin Poulain.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::saveAllocatedRegisters):
        (WebCore::FunctionCall::restoreAllocatedRegisters):
        Use StackAllocator's new push and pop functions to push and pop a vector instead of iterating it.
        * cssjit/RegisterAllocator.h:
        (WebCore::RegisterAllocator::reserveCalleeSavedRegisters):
        (WebCore::RegisterAllocator::restoreCalleeSavedRegisters):
        Return a vector of registers to allocate instead of doing the allocation to make the RegisterAllocator
        not need to know about the StackAllocator and to use the new vector push and pop functions.
        (WebCore::RegisterAllocator::~RegisterAllocator):
        Store RegisterIDs instead of StackReferences to avoid needing to know about the stack.
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::compile):
        Removed the requirement for assert to be disabled to print disassembly when debugging css jit.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generatePrologue):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateEpilogue):
        Added to correctly push the link register and frame pointer.
        This is required if the jit code calls a function on arm64 and helpful for debugging tools on x86_64.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        Generate the prologue and epilogue which respectively push and pop
        the link register, frame pointer, and callee saved registers if needed.
        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::push):
        (WebCore::StackAllocator::pop):
        Added new vector push and pop functions to use stp and ldb instructions on arm64.

2014-05-23  Jeremy Jones  <jeremyj@apple.com>

        Hide fullscreen immediately when switching tabs.
        https://bugs.webkit.org/show_bug.cgi?id=133239

        Reviewed by Eric Carlson.

        This change allows fullscreen to disappear immediately while still cleaning
        up fullscreen normally.

        * WebCore.exp.in:
        * platform/ios/WebVideoFullscreenControllerAVKit.h:
        renamed function to requestHideAndExitFullscreen

        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        renamed function to requestHideAndExitFullscreen

        (-[WebVideoFullscreenController requestHideAndExitFullscreen]):
        rename of requestExitFullscreen that also hides.

        (-[WebVideoFullscreenController requestExitFullscreen]): Deleted.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h: declare requestHideAndExitFullscreen()
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::requestHideAndExitFullscreen):
        this hides the window before requesting exitfullscreen from the model.

2014-05-23  Tim Horton  <timothy_horton@apple.com>

        [iOS] WKPDFView should have a page indicator
        https://bugs.webkit.org/show_bug.cgi?id=133109
        <rdar://problem/16383003>

        Reviewed by Anders Carlsson.

        * English.lproj/Localizable.strings:

2014-05-23  Enrica Casucci  <enrica@apple.com>

        Remove invalid ASSERT in wordRangeForPosition.
        https://bugs.webkit.org/show_bug.cgi?id=133232

        Reviewed by Ryosuke Niwa.

        In WK2 for iOS this function is called on every selection change.
        The selection could be set by Javascript in an element that is not visible.
        In that case we won't be able to create a VisiblePosition therefore wordRangeForPosition
        should not ASSERT that the VisiblePosition is not null, but rather
        perform an early return if it is null.

        * editing/VisibleUnits.cpp:
        (WebCore::wordRangeFromPosition):

2014-05-23  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Use gridRowCount() and gridColumnCount() when possible
        https://bugs.webkit.org/show_bug.cgi?id=133213

        Reviewed by Sergio Villar Senin.

        Use gridRowCount() and gridColumnCount() instead of m_grid.size() and
        m_grid[0].size() to make the code more descriptive and easier to
        understand.

        No new tests (No change in behavior).

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::growGrid):
        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):

2014-05-23  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r153917): Chart for the Category Explorer within Quicken Essentials
        does not draw until you force a redraw
        https://bugs.webkit.org/show_bug.cgi?id=133228
        <rdar://problem/15221231>

        Reviewed by Simon Fraser.

        * platform/RuntimeApplicationChecks.cpp: (WebCore::applicationIsQuickenEssentials):
        * platform/RuntimeApplicationChecks.h:
        Added a check for Quicken Essentials.

        * platform/mac/WidgetMac.mm: (WebCore::Widget::paint): Don't do an early return
        for Quicken Essentials, it depends on drawing to update its layer.

2014-05-23  Mihnea Ovidenie  <mihnea@adobe.com>

        REGRESSION(r169105): fast/regions/cssom/region-range-for-box-crash.html is more crashy than before
        https://bugs.webkit.org/show_bug.cgi?id=133124

        Reviewed by David Hyatt.

        When adjusting the end points of a subtree selection in the case of a document
        with named flows, we have to make sure that we pass the computed end
        points to the visible selection algorithm only if the end points are
        part of the same subtree, otherwise assume a selection clear behavior.

        The test fast/regions/cssom/region-range-for-box-crash.html is used to
        test this behavior.

        * rendering/SelectionSubtreeRoot.cpp:
        (WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
        (WebCore::SelectionSubtreeRoot::selectionStartEndPositions): Moved to header file.
        * rendering/SelectionSubtreeRoot.h:
        (WebCore::SelectionSubtreeRoot::selectionStartEndPositions):

2014-05-23  Jeremy Jones  <jeremyj@apple.com>

        reset m_havePreparedToPlay when changing media engines.
        https://bugs.webkit.org/show_bug.cgi?id=133199

        Reviewed by Eric Carlson.

        If a play request comes in before the media player is created, m_havePreparedToPlay
        is set to true. But when the player is created, this prevents the new player from
        getting the prepare call.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerEngineUpdated): set m_havePreparedToPlay false.

2014-05-23  Oliver Hunt  <oliver@apple.com>

        Navigator object needs to have properties directly on the instance object
        https://bugs.webkit.org/show_bug.cgi?id=133221

        Reviewed by Mark Lam.

        Flag the Navigator object as requiring properties to be on the instance
        as there were a few compatibility issues when on the prototype.

        * bindings/scripts/CodeGeneratorJS.pm:
        (InterfaceRequiresAttributesOnInstance):

2014-05-23  Simon Fraser  <simon.fraser@apple.com>

        Switch CSSGradientValue to use more references
        https://bugs.webkit.org/show_bug.cgi?id=133206

        Reviewed by Andreas Kling.

        Switch from pointers to references in various places.

        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::image):
        (WebCore::CSSGradientValue::addStops):
        (WebCore::positionFromValue):
        (WebCore::CSSGradientValue::computeEndPoint):
        (WebCore::CSSLinearGradientValue::createGradient):
        (WebCore::CSSRadialGradientValue::resolveRadius):
        (WebCore::CSSRadialGradientValue::createGradient):
        * css/CSSGradientValue.h:

2014-05-23  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make webkit-box-shadow painting subpixel aware.
        https://bugs.webkit.org/show_bug.cgi?id=133201
        <rdar://problem/16072830>

        Reviewed by Simon Fraser.

        This patch enables webkit-box-shadow to be painted on a subpixel position. However, we
        still truncate -webkit-box-shadow property values. Tracked here: http://webkit.org/b/133202

        Test: fast/box-shadow/hidpi-webkit-box-shadow-subpixel-position.html

        * platform/graphics/FloatRoundedRect.cpp:
        (WebCore::FloatRoundedRect::inflateWithRadii): same as in from RoundedRect.
        (WebCore::FloatRoundedRect::adjustRadii): same as in from RoundedRect.
        * platform/graphics/FloatRoundedRect.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintBoxShadow):

2014-05-22  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Crash when exceeding maximum cache limit.
        https://bugs.webkit.org/show_bug.cgi?id=133185

        Reviewed by Brent Fulgham.

        When the maximum cache limit is exceeded, I get a crash.
        This happens when deleting cache entries, because a reference to the url string object in the LRU list
        is used as a parameter to invalidateCacheEntry(), when called from makeRoomForNewEntry().
        When the string is removed from the LRU list in makeRoomForNewEntry(), the string is deleted.
        Next, the string is accessed again to remove the url from the index, and we crash.

        This can be fixed by removing the string from the LRU list after it is removed from the index.

        Fixing the crash also revealed an infinite loop problem.
        If the url for some reason only exist in the LRU list, and not in the index,
        we will inifitely loop in makeRoomForNewEntry(), trying to remove this url from the cache, but never succeeding.
        This can be fixed by removing the url from the LRU list, also when it's not in the index.

        * platform/network/curl/CurlCacheManager.cpp:
        (WebCore::CurlCacheManager::makeRoomForNewEntry): Avoid infinite loop by checking if there are more cache entries to remove.
        (WebCore::CurlCacheManager::invalidateCacheEntry): Avoid crash and infinite loop by removing url from LRU list last.

2014-05-22  Simon Fraser  <simon.fraser@apple.com>

        Make viewport units work in CSS gradients
        https://bugs.webkit.org/show_bug.cgi?id=133204
        <rdar://problem/17012259>
        
        Reviewed by Tim Horton.
        
        Make viewport percentage lengths work in gradients.

        Test: fast/gradients/viewport-units-gradient.html

        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::addStops):
        (WebCore::CSSLinearGradientValue::createGradient):
        (WebCore::CSSRadialGradientValue::createGradient):
        * css/CSSGradientValue.h:

2014-05-22  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Add support for minimal-ui viewports
        https://bugs.webkit.org/show_bug.cgi?id=133162

        Reviewed by Simon Fraser.

        Add support for minimal-ui directly into the Viewport configuration.

        ViewportConfiguration knows about two kinds of layout size in scrollview coordinates:
        -normal size
        -minimal ui size.

        Initially, the page is initialized with resetMinimalUI() and starts with a normal layout.

        At any time before the main resource is loaded, the Web page can update its viewport meta tag
        to include minimal-ui. The viewport configuration is updated immediately to reflect the minimal-ui
        layout size. Any layout after that takes minimal-ui into account.

        * WebCore.exp.in:
        * css/LengthFunctions.cpp:
        (WebCore::minimumValueForLength):
        (WebCore::floatValueForLength):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::viewportPercentageValue):
        * dom/ViewportArguments.h:
        (WebCore::ViewportArguments::operator==):
        * page/FrameView.cpp:
        (WebCore::FrameView::setViewportSizeForCSSViewportUnits):
        (WebCore::FrameView::viewportSizeForCSSViewportUnits):
        (WebCore::FrameView::setViewportSize): Deleted.
        (WebCore::FrameView::viewportSize): Deleted.
        * page/FrameView.h:
        * page/ViewportConfiguration.cpp:
        (WebCore::ViewportConfiguration::ViewportConfiguration):
        (WebCore::ViewportConfiguration::setMinimumLayoutSize):
        (WebCore::ViewportConfiguration::setMinimumLayoutSizeForMinimalUI):
        (WebCore::ViewportConfiguration::activeMinimumLayoutSizeInScrollViewCoordinates):
        (WebCore::ViewportConfiguration::resetMinimalUI):
        (WebCore::ViewportConfiguration::pageWillRenderFirstFrame):
        (WebCore::ViewportConfiguration::initialScale):
        (WebCore::ViewportConfiguration::minimumScale):
        (WebCore::ViewportConfiguration::updateConfiguration):
        (WebCore::ViewportConfiguration::layoutWidth):
        (WebCore::ViewportConfiguration::layoutHeight):
        (WebCore::ViewportConfiguration::description):
        * page/ViewportConfiguration.h:
        (WebCore::ViewportConfiguration::minimumLayoutSizeForMinimalUI):
        (WebCore::ViewportConfiguration::usesMinimalUI):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::viewportSizeForCSSViewportUnits):
        (WebCore::RenderView::viewportSize): Deleted.
        * rendering/RenderView.h:

2014-05-22  Ryosuke Niwa  <rniwa@webkit.org>

        Can't type in status in facebook.com on iOS Safari because keyboard disappears
        https://bugs.webkit.org/show_bug.cgi?id=133196

        Reviewed by Geoffrey Garen.

        Fixed the bug by rolling out r156252.

        When the user taps on the status on facebook.com, the page focuses a textarea,
        which is then made momentarily invisible by setting display:none.
        The page then removes display:none later and expects the textarea to be still focused.

        With r156252, the focus is removed after the page sets display:none and the keyboard disappears.
        Since the focus is never reset on the textarea, the user can never type in anything.

        The specification may need to change here given that this (rather odd) behavior/expectation exists
        on one of the most popular websites on the Web.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::recalcStyle):
        (WebCore::Document::updateLayout):
        (WebCore::Document::resetHiddenFocusElementSoon): Deleted.
        (WebCore::Document::resetHiddenFocusElementTimer): Deleted.
        * dom/Document.h:

2014-05-22  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 two places that are
        sensitive to such a manufactured response.

        Updates test expectations.

        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::loadRequest): Don't inspect a
        loader response if there is an error
        * 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-22  Myles C. Maxfield  <litherum@gmail.com>

        Unreviewed typo fix.

        Reviewed by NOBODY.

        No new tests.

        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::dashesForIntersectionsWithRect): Accidentally said run.length() instead of glyphBuffer.size().

2014-05-22  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] Web process should try to shrink its memory footprint when going into background.
        <https://webkit.org/b/133197>
        <rdar://problem/17011561>

        Make releaseMemory() public so we can call it from the process-will-suspend callback.

        Reviewed by Gavin Barraclough.

        * WebCore.exp.in:
        * platform/MemoryPressureHandler.h:

2014-05-22  Andreas Kling  <akling@apple.com>

        Hook up a setting for showing detailed logging during memory pressure relief.
        <https://webkit.org/b/133194>

        Make the pressure relief logger opt-in. Also make it flush memory back to the
        OS (for both malloc and FastMalloc) to get more accurate numbers at each step.

        Reviewed by Gavin Barraclough.

        * WebCore.exp.in:
        * platform/MemoryPressureHandler.cpp:
        * platform/MemoryPressureHandler.h:
        (WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
        (WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
        (WebCore::MemoryPressureHandler::ReliefLogger::setLoggingEnabled):
        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):

2014-05-22  Brady Eidson  <beidson@apple.com>

        Don't scan for phone numbers in editable regions
        <rdar://problem/16949846> and https://bugs.webkit.org/show_bug.cgi?id=133192

        Reviewed by Enrica Casucci.

        No new tests (Currently untested WK2-only feature)

        * editing/Editor.cpp:
        (WebCore::Editor::scanRangeForTelephoneNumbers): Skip the range if the Node is editable.

2014-05-22  Jeremy Jones  <jeremyj@apple.com>

        Captions layout incorrectly in fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=133175

        Reviewed by Eric Carlson.

        When doing layout for fullscreen, geometry should be absolute so it is not influenced
        by the rest of the page. This change adds style for CSSPropertyPosition, CSSPropertyLeft,
        and CSSPropertyTop.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
        Refactor style changes into updateStyleForTextTrackRepresentation().
        (WebCore::MediaControlTextTrackContainerElement::updateTimerFired):
        Refactor style changes into updateStyleForTextTrackRepresentation().
        (WebCore::MediaControlTextTrackContainerElement::clearTextTrackRepresentation):
        Refactor style changes into updateStyleForTextTrackRepresentation().
        (WebCore::MediaControlTextTrackContainerElement::updateStyleForTextTrackRepresentation):
        Consolidate style changes here. Include the two existing and three new style changes.
        * html/shadow/MediaControlElements.h:
        Declare updateStyleForTextTrackRepresentation().

2014-05-22  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r155977): Very stuttery 3D css animation on jtechcommunications.com
        https://bugs.webkit.org/show_bug.cgi?id=133179
        <rdar://problem/16864666>

        Reviewed by Dean Jackson.

        Revert code added in r155977 to try to pick a good contentsScale for layers
        based on a root-relative transform. This resulted in pages with too much 
        backing store, and too many cases where layers repainted during animations,
        causing stutter.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
        (WebCore::GraphicsLayerCA::flushCompositingState):
        (WebCore::GraphicsLayerCA::recursiveCommitChanges):
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::updateContentsOpaque):
        (WebCore::GraphicsLayerCA::updateAnimations):
        (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
        (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
        (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
        (WebCore::GraphicsLayerCA::updateContentsScale):
        (WebCore::clampedContentsScaleForScale): Deleted.
        (WebCore::maxScaleFromTransform): Deleted.
        (WebCore::GraphicsLayerCA::updateRootRelativeScale): Deleted.
        (WebCore::GraphicsLayerCA::getTransformFromAnimationsWithMaxScaleImpact): Deleted.
        * platform/graphics/ca/GraphicsLayerCA.h:

2014-05-22  Martin Hock  <mhock@apple.com>

        [iOS] Enable -apple-system- styled elements to respond to system font size changes.
        https://bugs.webkit.org/show_bug.cgi?id=133186
        <rdar://problem/16583782>

        Reviewed by Enrica Casucci.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * rendering/RenderThemeIOS.h:
        * rendering/RenderThemeIOS.mm:
        (WebCore::_contentSizeCategory):
        (WebCore::RenderThemeIOS::contentSizeCategory):
        (WebCore::RenderThemeIOS::setContentSizeCategory):

2014-05-22  Jer Noble  <jer.noble@apple.com>

        [MSE] Stored samples are not freed when SourceBuffer is removed from MediaSource
        https://bugs.webkit.org/show_bug.cgi?id=133174

        Reviewed by Eric Carlson.

        Clear out stored MediaSamples from SourceBuffer's TrackBuffer storage when
        aborting loading. Also, report the memory cost of those samples, so that the
        SourceBuffer will be GCd more readily.

        Add a mechanism for reporting the size of a MediaSample:
        * Modules/mediasource/SourceBuffer.h:
        * platform/MediaSample.h:
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        * platform/mock/mediasource/MockSourceBufferPrivate.cpp:

        Track the memory usage of a SampleMap when adding and removing samples, as well
        as allowing the SampleMap to be cleared wholesale:
        * Modules/mediasource/SampleMap.cpp:
        (WebCore::SampleMap::clear): Release all stored MediaSamples.
        (WebCore::SampleMap::addSample): Update m_totalSize.
        (WebCore::SampleMap::removeSample): Ditto.
        * Modules/mediasource/SampleMap.h:
        (WebCore::SampleMap::SampleMap): Initialize m_totalSize.
        (WebCore::SampleMap::sizeInBytes): Simple accessor.

        Clear the stored samples when loading is aborted, and report the extra memory
        cost
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::SourceBuffer): Initialize m_reportedExtraMemoryCost.
        (WebCore::SourceBuffer::removedFromMediaSource): Clear all stored samples.
        (WebCore::SourceBuffer::sourceBufferPrivateAppendComplete): Call reportExtraMemoryCost().
        (WebCore::SourceBuffer::reportExtraMemoryCost): Inform the vm of the new
            extra memory cost incurred by the object.

2014-05-22  Enrica Casucci  <enrica@apple.com>

        REGRESSION (WebKit2): Keyboard should have Search button in duckduckgo.com.
        https://bugs.webkit.org/show_bug.cgi?id=133183
        <rdar://problem/17004207>

        Reviewed by Geoff Garen.

        Adding new export.

        * WebCore.exp.in:

2014-05-22  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r163712): [GTK] Misspelling and grammar underline marks are no longer drawn
        https://bugs.webkit.org/show_bug.cgi?id=133047

        Reviewed by Darin Adler.

        Change two conditions changed by mistake in r163712.

        * editing/TextCheckingHelper.cpp:
        (WebCore::findMisspellings): Enter the loop also when wordStart is 0.
        (WebCore::TextCheckingHelper::findFirstMisspelling): Skip the work
        when the text is a single character. Also reworked it to use a for
        loop to improve the readability.

2014-05-22  Piotr Grad  <p.grad@samsung.com>

        Video is resumed with old playback rate.
        https://bugs.webkit.org/show_bug.cgi?id=132905

        Reviewed by Philippe Normand.

        Setting '0' playback rate is causing pipeline to pause.
        GStreamer player impl. exposed this information to upper layers but it should not.
        Solution is to hidden such situation behind m_playbackRatePause flag.

        Test: media/video-paused-0-rate.html

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::MediaPlayerPrivateGStreamer):
        (WebCore::MediaPlayerPrivateGStreamer::play):
        (WebCore::MediaPlayerPrivateGStreamer::pause):
        (WebCore::MediaPlayerPrivateGStreamer::doSeek):
        (WebCore::MediaPlayerPrivateGStreamer::updatePlaybackRate):
        (WebCore::MediaPlayerPrivateGStreamer::paused):
        (WebCore::MediaPlayerPrivateGStreamer::setRate):
        (WebCore::MediaPlayerPrivateGStreamer::updateStates):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

2014-05-22  Antti Koivisto  <antti@apple.com>

        Text markers don't paint on simple lines
        https://bugs.webkit.org/show_bug.cgi?id=133177

        Reviewed by Anders Carlsson.
        
        Marker painting code does not yet support simple lines.

        Tests: fast/text/mark-matches-rendering-simple-lines.html
               fast/text/mark-matches-rendering.html

        * dom/DocumentMarkerController.cpp:
        (WebCore::DocumentMarkerController::addMarker):
        
            Force text blocks with markers to use line boxes.

        * testing/Internals.cpp:
        (WebCore::Internals::setMarkedTextMatchesAreHighlighted):
        
            Expose this so we can make reftests for marker rendering.

        * testing/Internals.h:
        * testing/Internals.idl:

2014-05-22  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Guard RenderObject::isRenderGrid() method
        https://bugs.webkit.org/show_bug.cgi?id=132380

        Reviewed by Benjamin Poulain.

        Guard RenderObject::isRenderGrid() method under ENABLE_CSS_GRID_LAYOUT compilation flag.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeLogicalWidthInRegion):
        * rendering/RenderObject.h:

2014-05-21  Antti Koivisto  <antti@apple.com>

        REGRESSION(r167870): Crash in simple line layout code with :after
        https://bugs.webkit.org/show_bug.cgi?id=133155
        <rdar://problem/16977696>

        Reviewed by Darin Adler.
        
        Fix https://bugs.webkit.org/show_bug.cgi?id=132241 in a safer way.
        The underline behavior is tested by the existing fast/text/simple-lines-hover-underline.html

        Test: fast/text/simple-lines-hover-after.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::invalidateLineLayoutPath): Deleted.

            Move to RenderBlockFlow.

        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::invalidateLineLayoutPath):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::styleDidChange):
        
            Invalidate layout if style changes in a manner that makes us ineligible to use the simple line layout path.

        (WebCore::RenderBlockFlow::invalidateLineLayoutPath):
        
            Drop the simple line layout on path invalidation if it exists. It may not be valid anymore.
            Also invalidate the layout if this happens so we'll reconstruct the lines later.

        (WebCore::RenderBlockFlow::simpleLineLayout): Deleted.
        (WebCore::RenderBlockFlow::ensureLineBoxes):
        (WebCore::RenderBlockFlow::createLineBoxes): Deleted.
                
            Revert some of the changes made it r167870.

        * rendering/RenderBlockFlow.h:
        (WebCore::RenderBlockFlow::simpleLineLayout):
        
            Add strong validity assert.

2014-05-21  Eric Carlson  <eric.carlson@apple.com>

        [iOS] two media control button strings are not localized
        https://bugs.webkit.org/show_bug.cgi?id=133160

        Reviewed by Geoffrey Garen.

        * English.lproj/mediaControlsLocalizedStrings.js:

2014-05-21  Dean Jackson  <dino@apple.com>

        [iOS] Update some of the media controls buttons to be bigger
        https://bugs.webkit.org/show_bug.cgi?id=133158
        <rdar://problem/16475828>

        Reviewed by Simon Fraser.

        The buttons in the media controls on iOS are too small
        to be comfortably pressed. Make them the size of the controls
        panel and the expected iOS button size (44x44px).

        The artwork for the buttons now includes the padding. I've
        added a file from which you can edit the artwork, then
        copy it into the CSS (because editing directly in CSS is
        a huge pain).

        So far just the play/pause and fullscreen button have been
        updated. There will be a follow-up patch to fix the remaining
        buttons and the scrubber.

        * Modules/mediacontrols/assets-apple-iOS.svg: Added.
        * Modules/mediacontrols/mediaControlsiOS.css:
        (audio::-webkit-media-controls-panel):
        (audio::-webkit-media-controls-fullscreen-button):
        (audio::-webkit-media-controls-play-button):
        (audio::-webkit-media-controls-play-button:active):
        (audio::-webkit-media-controls-play-button.paused):
        (audio::-webkit-media-controls-fullscreen-button:active):
        (@media only screen and (-webkit-min-device-pixel-ratio: 2)): Deleted.

2014-05-21  Zalan Bujtas  <zalan@apple.com>

        Garbage when rubber-banding at the right edge of a page zoomed to non-integral scale.
        https://bugs.webkit.org/show_bug.cgi?id=133139
        <rdar://problem/16503353>

        Reviewed by Simon Fraser.

        Do not pixel align the root content layer. The alignment code expands the graphics's layer size
        which makes the right and bottom tiles bigger than the content.
        Painting the body's background color produces pixel cracks, because the content can not
        fill the expanded tiles completely.

        Not testable.

        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::needsPixelAligment):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateGeometry):
        (WebCore::GraphicsLayerCA::computePixelAlignment):
        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::rectForTileIndex):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::needsPixelAligment):
        * rendering/RenderLayerBacking.h:

2014-05-21  Radu Stavila  <stavila@adobe.com>

        REGRESSION (r168046): Invalid layout in WebCore::RenderBox::containingBlockLogicalWidthForPositioned
        https://bugs.webkit.org/show_bug.cgi?id=132933

        Reviewed by Darin Adler.

        Invalid layout is performed when calling containingBlockLogicalWidthForPositioned for a RenderTableSection object.

        Test: fast/multicol/newmulticol/table-section-crash.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::containingBlockLogicalWidthForPositioned):

2014-05-21  Simon Pena  <simon.pena@samsung.com>

        [EFL] Ensure EGLOffScreenContext::initialize calls platformMakeCurrent on the surface
        https://bugs.webkit.org/show_bug.cgi?id=124832

        Reviewed by Antonio Gomes.

        The original code was only calling platformMakeCurrent when the
        GL_EXT_robustness extension is supported: the alternate code path
        would only create a context, but it wouldn't make that context
        current. This patch ensures platformMakeCurrent is also called for
        the alternate code path, and, if it fails to make the context
        current, will destroy the context. Effectively, this makes both
        code paths behave in the same way.

        * platform/graphics/surfaces/egl/EGLContext.cpp:
        (WebCore::EGLOffScreenContext::initialize):

2014-05-20  Brent Fulgham  <bfulgham@apple.com>

        [Mac] DataCues do not work properly when rewinding video
        https://bugs.webkit.org/show_bug.cgi?id=133138
        <rdar://problem/16979086>

        Reviewed by Eric Carlson.

        Make the TrackPrivateBase responsible for knowing if a type of track needs a non-zero
        startTimeVariance value.

        Also, correct a bug in the equality test for DataCue objects.

        * html/track/DataCue.cpp:
        (WebCore::DataCue::isEqual): Handle the JSValue data types consistently, so that we don't attempt
        to compare a JSNull against a default JSValue object.
        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::startTimeVariance): Added.
        * html/track/InbandTextTrack.h:
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::hasCue): Use new startTimeVariance method location.
        * html/track/TextTrack.h:
        (WebCore::TextTrack::startTimeVariance): Added.
        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::hasEquivalentStartTime): Use new startTimeVariance location.
        * html/track/TextTrackCue.h:
        (WebCore::TextTrackCue::startTimeVariance): Deleted.
        * html/track/TextTrackCueGeneric.h:
        * platform/graphics/TrackPrivateBase.h:
        (WebCore::TrackPrivateBase::startTimeVariance): Added.
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:

2014-05-20  Mark Hahnenberg  <mhahnenberg@apple.com>

        Watchdog timer should be lazily allocated
        https://bugs.webkit.org/show_bug.cgi?id=133135

        Reviewed by Geoffrey Garen.

        No new tests.

        We incur a noticeable amount of overhead on some benchmarks due to checking if the Watchdog ever fired. 
        There is no reason to do this checking if we never activated the Watchdog, which can only be done through 
        JSContextGroupSetExecutionTimeLimit or JSContextGroupClearExecutionTimeLimit. 

        By allocating the Watchdog lazily on the VM we can avoid all of the associated overhead when we don't use 
        these two API functions (which is true of most clients).

        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        (WebCore::WorkerScriptController::scheduleExecutionTermination):
        (WebCore::WorkerScriptController::isExecutionTerminating):

2014-05-20  Dean Jackson  <dino@apple.com>

        [Mac] Allow popup menus to override default appearance
        https://bugs.webkit.org/show_bug.cgi?id=133129

        Reviewed by Tim Horton.

        WebKitSystemInterface's WKPopupMenu has a flag to hide
        the arrows at the end of a popup-menu (e.g. <select>).
        Expose that via adding a hasDefaultAppearance flag to
        PopupMenuStyle, which then passes it on to WKSI.

        * platform/PopupMenuStyle.h:
        (WebCore::PopupMenuStyle::PopupMenuStyle): New flag in constructor.
        (WebCore::PopupMenuStyle::hasDefaultAppearance): New flag.
        * platform/mac/WebCoreSystemInterface.h: wkPopupMenu signature has changed to accept
        the new flag.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.
        * rendering/RenderMenuList.cpp:
        (RenderMenuList::itemStyle): Pass in true as default appearance when creating
        the PopupMenuStyle. We don't need it.
        (RenderMenuList::menuStyle): In this case we pass in the negated value of
        style().hasAppearance(), which indicates if we are overriding the built-in drawing.
        * rendering/RenderSearchField.cpp:
        (WebCore::RenderSearchField::menuStyle): Use true as the default value.

2014-05-20  Eric Carlson  <eric.carlson@apple.com>

        [Mac] do not deactivate an audio session that has running I/O
        https://bugs.webkit.org/show_bug.cgi?id=133127

        Reviewed by Jer Noble.

        * page/Settings.h:
        (WebCore::Settings::setShouldManageAudioSessionCategory): Renamed from setShouldManageAudioSession.
        (WebCore::Settings::shouldManageAudioSessionCategory): Renamed from shouldManageAudioSession.
        (WebCore::Settings::setShouldManageAudioSession): Deleted.
        (WebCore::Settings::shouldManageAudioSession): Deleted.

        * platform/audio/mac/MediaSessionManagerMac.cpp:
        (MediaSessionManager::updateSessionState): Don't deactivate the session if there are any
            Video or Audio sessions.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::assetStatus): Drive-by change to log errors 
            returned by -statusOfValueForKey:error: in debug builds.

2014-05-20  Beth Dakin  <bdakin@apple.com>

        REGRESSION: All non-mainframe scrollbars don't paint after r169065
        https://bugs.webkit.org/show_bug.cgi?id=133132
        -and corresponding-
        <rdar://problem/16968850>

        Reviewed by Geoff Garen.

        We should not universally return true here. This feature will only work for 
        scrollbars with layers.
        * platform/ScrollableArea.h:
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):

2014-05-20  Daniel Bates  <dabates@apple.com>

        Element within flattened frame may update its scroll state during the layout phase of the wrong RenderView
        https://bugs.webkit.org/show_bug.cgi?id=133013
        <rdar://problem/16760154>

        Reviewed by David Hyatt.

        Fixes an issue where the scroll state of an element may be updated during the layout of the wrong
        RenderView. In particular, the scroll state of an element inside a CSS flex box in a flattened
        frame f is updated during the layout of the RenderView associated with the parent frame of f instead
        of during the layout of the RenderView associated with f.

        The layout machinery assumes that the scroll state of each scrollable element is updated before the
        completion of layout for its associated RenderView. Currently we have logic to defer updating the scroll
        state of a scrollable element until completion of recursive layout. For a page with a flattened frame, we
        defer such updates until completion of layout for all RenderViews along the ancestor frame hierarchy of
        each flattened frame regardless of the RenderView associated with the element that originated the
        deferred scroll state request. Instead, only the RenderView associated with the element that deferred its
        scroll state update should dispatch the scroll state update.

        Tests: fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-and-needs-full-repaint-crash.html
               fast/frames/flattening/scrollable-flexbox-inside-iframe-with-zero-height-assertion-failure.html

        * rendering/RenderBlock.cpp: Removed WTF::-prefix in typedef definition for ContinuationOutlineTableMap.
        (WebCore::UpdateScrollInfoAfterLayoutTransaction::UpdateScrollInfoAfterLayoutTransaction): Added; a struct
        that represents a RenderView v, nested transaction count, and a list of RenderBlocks in v that will need
        to have their scroll state updated.
        (WebCore::updateScrollInfoAfterLayoutTransactionStack): Added; returns the global stack of transactions.
        (WebCore::RenderBlock::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
        was formerly named as removeFromDelayedUpdateScrollInfoSet.
        (WebCore::currentUpdateScrollInfoAfterLayoutTransaction): Added; returns the top-most transaction in the
        global stack.
        (WebCore::RenderBlock::beginUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make use
        of the global stack of transactions; formerly named startDelayUpdateScrollInfo.
        (WebCore::RenderBlock::endAndCommitUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to
        make use of the global stack of transactions; formerly named finishDelayUpdateScrollInfo.
        (WebCore::RenderBlock::removeFromUpdateScrollInfoAfterLayoutTransaction): Modified as appropriate to make
        use of the global stack of transactions; formerly named removeFromDelayedUpdateScrollInfoSet.
        (WebCore::RenderBlock::updateScrollInfoAfterLayout): Modified as appropriate to make use of the global
        stack of transactions.
        (WebCore::RenderBlock::layout): Ditto.
        (WebCore::RenderBlock::startDelayUpdateScrollInfo): Deleted.
        (WebCore::RenderBlock::finishDelayUpdateScrollInfo): Deleted.
        (WebCore::RenderBlock::removeFromDelayedUpdateScrollInfoSet): Deleted.
        * rendering/RenderBlock.h:
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::willBeDestroyed): Call removeFromUpdateScrollInfoAfterLayoutTransaction(), which
        was formerly named removeFromDelayedUpdateScrollInfoSet.
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox): Call {begin, end}UpdateScrollInfoAfterLayoutTransaction(),
        which was formerly named {start, end}DelayUpdateScrollInfo.
        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox): Ditto.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock): Ditto.

2014-05-20  Beth Dakin  <bdakin@apple.com>

        REGRESSION (r169065): Mountain Lion run-api-tests failures: ASSERTION FAILED: 
        Uncaught exception - -[NSRegularLegacyScrollerImp setPresentationValue:]: 
        unrecognized selector sent to instance 0x7ff51aa38000
        https://bugs.webkit.org/show_bug.cgi?id=133121

        Reviewed by Tim Horton.

        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):

2014-05-19  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r169063) Fixed and sticky nodes misplaced on scrolling sometimes
        https://bugs.webkit.org/show_bug.cgi?id=133106
        <rdar://problem/16967648>

        Reviewed by Sam Weinig.

        Fix regression from r169063. That commit removed scrolledContentsLayers from 
        frame scrolling nodes, but they do actually use them.
        
        So put them back; not in the base class, because they have a somewhat different
        meaning for overflow scrolling and frame scrolling.

        * WebCore.exp.in:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
        (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
        * page/scrolling/AsyncScrollingCoordinator.h:
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
        * page/scrolling/ScrollingStateFrameScrollingNode.cpp:
        (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
        (WebCore::ScrollingStateFrameScrollingNode::setScrolledContentsLayer):
        * page/scrolling/ScrollingStateFrameScrollingNode.h:
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm:
        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

2014-05-20  Radu Stavila  <stavila@adobe.com>

        REGRESSION: [CSS Regions] Content flowed directly into the flow thread that ends up in the second region is not properly repainted
        https://bugs.webkit.org/show_bug.cgi?id=133111

        Reviewed by David Hyatt.

        When computing the repaint rect of an element flowed into a flow thread, if the element is flowed directly into
        the flow thread (meaning its containing block is the flow thread itself), the region's position within the flow
        must no longer be taken into consideration, because its already included in the element's |topLeft|.

        Test: fast/regions/hover-element-flowed-second-region.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeRectForRepaint):

2014-05-20  Alex Christensen  <achristensen@webkit.org>

        Fix web timing assertion failure.
        https://bugs.webkit.org/show_bug.cgi?id=133094
        <rdar://problem/16966032>

        Reviewed by Alexey Proskuryakov.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::getConnectionTimingData):
        Set requestStart and responseStart to 0 instead of -1 to match the 
        ResourceLoadTiming constructor and prevent the assertion failure in
        PerformanceTiming::responseStart.

2014-05-20  Prashant Hiremath  <hiremathprashants@gmail.com>

        Only set title on SVG documents
        https://bugs.webkit.org/show_bug.cgi?id=133068

        Reviewed by Dirk Schulze.

        Test: svg/custom/html_document_set_title.html

        * svg/SVGTitleElement.cpp:
        (WebCore::SVGTitleElement::insertedInto):
        (WebCore::SVGTitleElement::removedFrom):
        (WebCore::SVGTitleElement::childrenChanged):

2014-05-20  peavo@outlook.com  <peavo@outlook.com>

        [Curl] Invalid content in cache file, causes broken rendering.
        https://bugs.webkit.org/show_bug.cgi?id=133069

        Reviewed by Brent Fulgham.

        When data for a url is received as multiple parts, the cache file for the url is truncated when opened for writing,
        and will only contain the last part of data received.
        This is fixed by only opening the file once, and close it after all data has been received.

        * platform/network/curl/CurlCacheEntry.cpp:
        (WebCore::CurlCacheEntry::CurlCacheEntry): Initialize cache file handle member.
        (WebCore::CurlCacheEntry::~CurlCacheEntry): Close cache file.
        (WebCore::CurlCacheEntry::saveCachedData): Only open cache file once to avoid truncating.
        (WebCore::CurlCacheEntry::didFail): Close cache file.
        (WebCore::CurlCacheEntry::didFinishLoading): Ditto.
        (WebCore::CurlCacheEntry::openContentFile): Added method to open cache file.
        (WebCore::CurlCacheEntry::closeContentFile): Added method to close cache file.
        * platform/network/curl/CurlCacheEntry.h: Added file handle member, and methods to open and close cache file.

2014-05-20  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Block incorrectly sized when containing an unsplittable box
        https://bugs.webkit.org/show_bug.cgi?id=132601

        Reviewed by Antti Koivisto.

        When laying out elements in a region, when an inline element is encountered
        the size of its parent must not be increased beyond the bottom of the current region,
        unless if its the last region. This will ensure that the next sibling of the
        inline element is correctly laid out at the top of the next region, instead
        of leaving an empty space equal to the height of the overflow, as it did until now.

        Tests: fast/regions/inline-block-inside-anonymous-overflow.html
               fast/regions/inline-block-overflow.html

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::adjustLinePositionForPagination):
        (WebCore::RenderBlockFlow::hasNextPage):
        * rendering/RenderBlockFlow.h:
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
        (WebCore::RenderBlockFlow::linkToEndLineIfNeeded):
        (WebCore::RenderBlockFlow::determineStartPosition):
        (WebCore::RenderBlockFlow::checkPaginationAndFloatsAtEndLine):

2014-05-20  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSS Regions] Crash while painting block selection gaps in regions
        https://bugs.webkit.org/show_bug.cgi?id=132720

        Reviewed by David Hyatt.

        The fix for WebKit bug https://bugs.webkit.org/show_bug.cgi?id=131511
        allowed selection highlight to match the DOM selection when the start
        and end point of the selection were in different flow threads. In order
        to enable that, the selection was performed separately on view and
        render flow threads, considered selection subtrees.

        However, the start and end points for each selection subtree were computed
        by means of Range class but it is not always possible to construct a valid
        Range from two pairs of RenderObjects and offsets.

        This patch keeps the substrees approach but instead of storing the endpoints
        for each subtree in a Range and continuously extending the Range, it stores them
        using the already available SelectionSubtreeRoot class. After the end points are
        computed for each subtree and before processing the subtree selection, the end points
        are adjusted in a similar fashion as the one used in FrameSelection::updateAppearance(),
        to make sure we are passing the same expected information to the method implementing
        the visible selection processing.

        Test: fast/regions/selection-gaps-paint-crash.html

        * rendering/RenderView.cpp:
        (WebCore::RenderView::splitSelectionBetweenSubtrees):
        * rendering/SelectionSubtreeRoot.cpp:
        (WebCore::SelectionSubtreeRoot::adjustForVisibleSelection):
        * rendering/SelectionSubtreeRoot.h:
        (WebCore::SelectionSubtreeRoot::selectionClear):

2014-05-19  Simon Fraser  <simon.fraser@apple.com>

        Scrolling pages with large TiledBacking content layers creates way too many tiles
        https://bugs.webkit.org/show_bug.cgi?id=133101

        Reviewed by Tim Horton.

        Fix the GraphicsLayerCA::adjustTiledLayerVisibleRect() logic to avoid making giant rects if the old
        and new visible rects don't overlap.

        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::adjustTiledLayerVisibleRect):
        * platform/graphics/ca/mac/TileController.h:

2014-05-19  Simon Fraser  <simon.fraser@apple.com>

        Correctly maintain the "isInWindow" state for all TiledBackings
        https://bugs.webkit.org/show_bug.cgi?id=133095

        Reviewed by Tim Horton.
        
        We never updated the "isInWindow" state for TiledBacking that wasn't the RenderView's
        backing. Fix it by having RenderLayerCompositor::setIsInWindow() recurse through all
        layers (if necessary), updating their state. Also set the state on newly created
        TiledBackings.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::layerTiledBackingUsageChanged):
        (WebCore::RenderLayerCompositor::setIsInWindowForLayerIncludingDescendants):
        (WebCore::RenderLayerCompositor::setIsInWindow):
        (WebCore::RenderLayerCompositor::pageTiledBacking): Deleted.
        * rendering/RenderLayerCompositor.h:

2014-05-19  Dean Jackson  <dino@apple.com>

        [iOS] Use status display for live streams
        https://bugs.webkit.org/show_bug.cgi?id=133097

        Reviewed by Sam Weinig.

        Follow-on from https://bugs.webkit.org/show_bug.cgi?id=131390
        Allow the iOS controls to use the status display field.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.configureInlineControls): Live streams should
        not have a timeline or rewind button.

2014-05-19  Myles C. Maxfield  <litherum@gmail.com>

        Text decorations do not contribute to visual overflow
        https://bugs.webkit.org/show_bug.cgi?id=132773

        Reviewed by Antti Koivisto.

        This patch creates a function, visualOverflowForDecorations, which computes
        how much visual overflow to add around a text box due to text decorations. Most of the time,
        text decorations are fully contained within the text box, so the result is usually 0.

        This function exists within style/InlineTextBoxStyle.cpp, which is an added file. This is
        so that it can be called from setLogicalWidthForTextRun() inside RenderBlockLineLayout.cpp
        and from RenderStyle::changeAffectsVisualOverflow(). The former case passes in the full
        InlineTextBox and the latter case just passes in a RenderStyle (because the InlineTextBox
        is unavailable.)

        This patch also modifies RenderTableSection::spannedColumns() to fix an off-by-one error
        that was causing table borders to not be drawn when they existed right on the edge of
        a repaint rect.

        Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html
        Tests: fast/repaint/border-collapse-table-off-by-one-expected.html

        * WebCore.vcxproj/WebCore.vcxproj: Adding reference to new InlineTextBoxStyle.cpp file
        * WebCore.vcxproj/WebCore.vcxproj.filters: Adding reference to new InlineTextBoxStyle files
        * WebCore.xcodeproj/project.pbxproj: Adding reference to new InlineTextBoxStyle files
        * rendering/InlineTextBox.cpp:
        (WebCore::computeUnderlineOffset): Moved to InlineTextBox.cpp
        (WebCore::getWavyStrokeParameters): Moved to InlineTextBox.cpp
        (WebCore::InlineTextBox::paintDecoration): Update to use newly refactored functions
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::setLogicalWidthForTextRun): Call visualOverflowForDecorations()
        * rendering/RenderTableSection.cpp:
        * rendering/RenderTableSelection.cpp: Fix off-by-one error when the boundary of a repaint
        rect lies exactly on top of a table column position
        * 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
        * style/InlineTextBoxStyle.cpp: Added.
        (WebCore::computeUnderlineOffset): Moved from InlineTextBox.cpp
        (WebCore::getWavyStrokeParameters): Moved from InlineTextBox.cpp
        (WebCore::extendIntToFloat): Convenience function for dealing with the fact that
        underline bounding boxes use floats and GlyphOverflow uses ints
        (WebCore::visualOverflowForDecorations): Given
        vertical overflow bounds, possibly extend those to include location of
        decorations.
        * style/InlineTextBoxStyle.h: Added. Function signatures.
        (WebCore::textDecorationStrokeThickness): Refactored from InlineTextBox.cpp
        (WebCore::wavyOffsetFromDecoration): Refactored from InlineTextBox.cpp
        * platform/graphics/Font.h:
        (WebCore::GlyphOverflow::isEmpty): Convenience function
        (WebCore::GlyphOverflow::extendTo): Convenience function

2014-05-19  Alex Christensen  <achristensen@webkit.org>

        Unreviewed build fix after r169082

        * platform/network/ResourceHandle.h:
        Added NSDictionary declaration.

2014-05-19  Beth Dakin  <bdakin@apple.com>

        REGRESSION: Standalone images need to take topContentInset into account
        https://bugs.webkit.org/show_bug.cgi?id=133092
        -and corresponding-
        <rdar://problem/16945791>

        Reviewed by Darin Adler.

        The FrameView’s size is accurate in terms of the NSWindow size, but that is not 
        really what the ImageDocument code is looking for here. The ImageDocument wants to 
        know the size of the unobscured viewport area. We should use visibleSize() for 
        that.
        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::scale):
        (WebCore::ImageDocument::imageFitsInWindow):
        (WebCore::ImageDocument::imageClicked):

2014-05-19  Alex Christensen  <achristensen@webkit.org>

        Collect web timing data on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=133075

        Reviewed by Sam Weinig.

        * platform/network/ResourceHandle.h:
        Added setCollectsTimingData wrapper and getConnectionTimingData declarations.
        getConnectionTimingData with a dictionary parameter is a private helper function.
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::start):
        Call setCollectsTimingData wrapper when creating a connection to ensure that timing data is collected.
        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
        (WebCore::ResourceHandleCFURLConnectionDelegate::didReceiveResponseCallback):
        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::didReceiveResponse):
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
        (WebCore::SynchronousResourceHandleCFURLConnectionDelegate::didReceiveResponse):
        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
        Pass the CFURLConnectionRef to didReceiveResponse to get timing data from.
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::getConnectionTimingData):
        Moved from getTimingData to compile regardless of using CFNetwork and added wrapper with CFDictionaryRef.
        (WebCore::ResourceHandle::setCollectsTimingData):
        Added wrapper to call objc function from c++.
        (WebCore::ResourceHandle::getTimingData):
        Renamed to getConnectionTimingData.
        * platform/network/mac/WebCoreResourceHandleAsDelegate.mm:
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
        (-[WebCoreResourceHandleAsOperationQueueDelegate connection:didReceiveResponse:]):
        Updated function name from getTimingData to getConnectionTimingData.

2014-05-19  Chris Fleizach  <cfleizach@apple.com>

        AX: VoiceOver sees the WebArea out of order when topContentInset is used
        https://bugs.webkit.org/show_bug.cgi?id=133091

        Reviewed by Simon Fraser.

        Modify the scroll view's frame so that it recognizes the content inset.
        This is needed so that when VoiceOver sorts elements to create an ordering,
        the web area is not ordered at the top of the screen.

        Test: platform/mac-wk2/accessibility/content-inset-scrollview-frame.html

        * accessibility/AccessibilityScrollView.cpp:
        (WebCore::AccessibilityScrollView::elementRect):

2014-05-19  Beth Dakin  <bdakin@apple.com>

        Scrollbars display incorrectly after switching between fast and slow scrolling 
        mode, affects Find and real sites
        https://bugs.webkit.org/show_bug.cgi?id=133077
        -and corresponding-
        <rdar://problem/16888608>

        Reviewed by Tim Horton.

        We should always return true here when updating on the secondary thread is 
        supported. It does not need to be gated on whether we are actively taking 
        advantage of that support at this moment.
        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::supportsUpdateOnSecondaryThread):

        Always update the presentationValue whenever we update the doubleValue just to 
        keep them in sync.
        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::setPaintCharacteristicsForScrollbar):

2014-05-19  Simon Fraser  <simon.fraser@apple.com>

        Split scrolling tree ScrollingNodes into FrameScrollingNodes and OverflowScrollingNodes
        https://bugs.webkit.org/show_bug.cgi?id=133022

        Reviewed by Sam Weinig.

        In both the scrolling state tree and the scrolling tree, split the "scrolling nodes"
        into FrameScrolling and OverflowScrolling nodes.
        
        Move what was the "viewportSize" property onto the base class for the scrolling
        nodes, calling it "scrollableAreaSize".
        
        Make minimum/maximumScrollPosition() virtual so we can share more code (and there
        is more code sharing to be done in future).

        * Configurations/WebCore.xcconfig: Remove ScrollingStateScrollingNodeMac.mm and ScrollingTreeScrollingNodeMac.mm
        from the list, using #ifdefs in the file instead.
        * WebCore.exp.in: Lots of exports.
        * WebCore.xcodeproj/project.pbxproj: New files.
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
        (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):
        (WebCore::AsyncScrollingCoordinator::updateFrameScrollingNode):
        (WebCore::AsyncScrollingCoordinator::updateOverflowScrollingNode):
        (WebCore::AsyncScrollingCoordinator::recomputeWheelEventHandlerCountForFrameView):
        (WebCore::AsyncScrollingCoordinator::updateScrollingNode): Deleted.
        (WebCore::AsyncScrollingCoordinator::setScrollbarPaintersFromScrollbarsForNode): Deleted.
        This tiny function didn't need to exist.
        * page/scrolling/AsyncScrollingCoordinator.h:
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::updateFrameScrollingNode):
        (WebCore::ScrollingCoordinator::updateOverflowScrollingNode):
        (WebCore::ScrollingCoordinator::updateScrollingNode): Deleted.
        * page/scrolling/ScrollingStateFrameScrollingNode.cpp: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.cpp.
        (WebCore::ScrollingStateFrameScrollingNode::create):
        (WebCore::ScrollingStateFrameScrollingNode::ScrollingStateFrameScrollingNode):
        (WebCore::ScrollingStateFrameScrollingNode::~ScrollingStateFrameScrollingNode):
        (WebCore::ScrollingStateFrameScrollingNode::clone):
        (WebCore::ScrollingStateFrameScrollingNode::setFrameScaleFactor):
        (WebCore::ScrollingStateFrameScrollingNode::setNonFastScrollableRegion):
        (WebCore::ScrollingStateFrameScrollingNode::setWheelEventHandlerCount):
        (WebCore::ScrollingStateFrameScrollingNode::setSynchronousScrollingReasons):
        (WebCore::ScrollingStateFrameScrollingNode::setScrollBehaviorForFixedElements):
        (WebCore::ScrollingStateFrameScrollingNode::setHeaderHeight):
        (WebCore::ScrollingStateFrameScrollingNode::setFooterHeight):
        (WebCore::ScrollingStateFrameScrollingNode::setTopContentInset):
        (WebCore::ScrollingStateFrameScrollingNode::setCounterScrollingLayer):
        (WebCore::ScrollingStateFrameScrollingNode::setInsetClipLayer):
        (WebCore::ScrollingStateFrameScrollingNode::setContentShadowLayer):
        (WebCore::ScrollingStateFrameScrollingNode::setHeaderLayer):
        (WebCore::ScrollingStateFrameScrollingNode::setFooterLayer):
        (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
        (WebCore::ScrollingStateFrameScrollingNode::dumpProperties):
        * page/scrolling/ScrollingStateFrameScrollingNode.h: Copied from Source/WebCore/page/scrolling/ScrollingStateScrollingNode.h.
        * page/scrolling/ScrollingStateNode.h:
        (WebCore::LayerRepresentation::layerID):
        (WebCore::ScrollingStateNode::isFrameScrollingNode):
        (WebCore::ScrollingStateNode::isOverflowScrollingNode):
        * page/scrolling/ScrollingStateOverflowScrollingNode.cpp: Added.
        (WebCore::ScrollingStateOverflowScrollingNode::create):
        (WebCore::ScrollingStateOverflowScrollingNode::ScrollingStateOverflowScrollingNode):
        (WebCore::ScrollingStateOverflowScrollingNode::~ScrollingStateOverflowScrollingNode):
        (WebCore::ScrollingStateOverflowScrollingNode::clone):
        (WebCore::ScrollingStateOverflowScrollingNode::setScrolledContentsLayer):
        (WebCore::ScrollingStateOverflowScrollingNode::dumpProperties):
        * page/scrolling/ScrollingStateOverflowScrollingNode.h: Copied from Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm.
        (WebCore::ScrollingStateOverflowScrollingNode::scrolledContentsLayer):
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        (WebCore::ScrollingStateScrollingNode::setScrollableAreaSize):
        (WebCore::ScrollingStateScrollingNode::setTotalContentsSize):
        (WebCore::ScrollingStateScrollingNode::dumpProperties):
        (WebCore::ScrollingStateScrollingNode::create): Deleted.
        (WebCore::ScrollingStateScrollingNode::clone): Deleted.
        (WebCore::ScrollingStateScrollingNode::setViewportSize): Deleted.
        (WebCore::ScrollingStateScrollingNode::setFrameScaleFactor): Deleted.
        (WebCore::ScrollingStateScrollingNode::setNonFastScrollableRegion): Deleted.
        (WebCore::ScrollingStateScrollingNode::setWheelEventHandlerCount): Deleted.
        (WebCore::ScrollingStateScrollingNode::setSynchronousScrollingReasons): Deleted.
        (WebCore::ScrollingStateScrollingNode::setScrollBehaviorForFixedElements): Deleted.
        (WebCore::ScrollingStateScrollingNode::setHeaderHeight): Deleted.
        (WebCore::ScrollingStateScrollingNode::setFooterHeight): Deleted.
        (WebCore::ScrollingStateScrollingNode::setTopContentInset): Deleted.
        (WebCore::ScrollingStateScrollingNode::setScrolledContentsLayer): Deleted.
        (WebCore::ScrollingStateScrollingNode::setCounterScrollingLayer): Deleted.
        (WebCore::ScrollingStateScrollingNode::setInsetClipLayer): Deleted.
        (WebCore::ScrollingStateScrollingNode::setContentShadowLayer): Deleted.
        (WebCore::ScrollingStateScrollingNode::setHeaderLayer): Deleted.
        (WebCore::ScrollingStateScrollingNode::setFooterLayer): Deleted.
        (WebCore::ScrollingStateScrollingNode::setScrollbarPaintersFromScrollbars): Deleted.
        * page/scrolling/ScrollingStateScrollingNode.h:
        (WebCore::ScrollingStateScrollingNode::scrollableAreaSize):
        (WebCore::ScrollingStateScrollingNode::totalContentsSize):
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::attachNode):
        (WebCore::ScrollingStateTree::commit):
        * page/scrolling/ScrollingStateTree.h:
        (WebCore::ScrollingStateTree::rootStateNode):
        (WebCore::ScrollingStateTree::setRootStateNode):
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::commitNewTreeState):
        * page/scrolling/ScrollingTreeFrameScrollingNode.cpp: Added.
        (WebCore::ScrollingTreeFrameScrollingNode::ScrollingTreeFrameScrollingNode):
        (WebCore::ScrollingTreeFrameScrollingNode::~ScrollingTreeFrameScrollingNode):
        (WebCore::ScrollingTreeFrameScrollingNode::updateBeforeChildren):
        * page/scrolling/ScrollingTreeFrameScrollingNode.h: Copied from Source/WebCore/page/scrolling/ScrollingTreeScrollingNode.h.
        (WebCore::ScrollingTreeFrameScrollingNode::updateLayersAfterDelegatedScroll):
        (WebCore::ScrollingTreeFrameScrollingNode::synchronousScrollingReasons):
        (WebCore::ScrollingTreeFrameScrollingNode::shouldUpdateScrollLayerPositionSynchronously):
        (WebCore::ScrollingTreeFrameScrollingNode::frameScaleFactor):
        (WebCore::ScrollingTreeFrameScrollingNode::headerHeight):
        (WebCore::ScrollingTreeFrameScrollingNode::footerHeight):
        (WebCore::ScrollingTreeFrameScrollingNode::topContentInset):
        (WebCore::ScrollingTreeFrameScrollingNode::scrollBehaviorForFixedElements):
        * page/scrolling/ScrollingTreeNode.h:
        (WebCore::ScrollingTreeNode::isFrameScrollingNode):
        (WebCore::ScrollingTreeNode::isOverflowScrollingNode):
        * page/scrolling/ScrollingTreeOverflowScrollingNode.cpp: Copied from Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h.
        (WebCore::ScrollingTreeOverflowScrollingNode::ScrollingTreeOverflowScrollingNode):
        (WebCore::ScrollingTreeOverflowScrollingNode::~ScrollingTreeOverflowScrollingNode):
        * page/scrolling/ScrollingTreeOverflowScrollingNode.h: Copied from Source/WebKit2/UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h.
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
        (WebCore::ScrollingTreeScrollingNode::updateAfterChildren):
        (WebCore::ScrollingTreeScrollingNode::setScrollPosition):
        (WebCore::ScrollingTreeScrollingNode::setScrollPositionWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeScrollingNode::minimumScrollPosition):
        (WebCore::ScrollingTreeScrollingNode::maximumScrollPosition):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (WebCore::ScrollingTreeScrollingNode::scrollableAreaSize):
        (WebCore::ScrollingTreeScrollingNode::totalContentsSize):
        (WebCore::ScrollingTreeScrollingNode::totalContentsSizeForRubberBand):
        (WebCore::ScrollingTreeScrollingNode::setTotalContentsSizeForRubberBand):
        (WebCore::ScrollingTreeScrollingNode::synchronousScrollingReasons): Deleted.
        (WebCore::ScrollingTreeScrollingNode::shouldUpdateScrollLayerPositionSynchronously): Deleted.
        (WebCore::ScrollingTreeScrollingNode::viewportSize): Deleted.
        (WebCore::ScrollingTreeScrollingNode::frameScaleFactor): Deleted.
        (WebCore::ScrollingTreeScrollingNode::headerHeight): Deleted.
        (WebCore::ScrollingTreeScrollingNode::footerHeight): Deleted.
        (WebCore::ScrollingTreeScrollingNode::scrollBehaviorForFixedElements): Deleted.
        (WebCore::ScrollingTreeScrollingNode::topContentInset): Deleted.
        * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
        (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.h: Renamed from Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h.
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollLayer):
        * page/scrolling/ios/ScrollingTreeFrameScrollingNodeIOS.mm: Renamed from Source/WebCore/page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm.
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::create):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::ScrollingTreeFrameScrollingNodeIOS):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::~ScrollingTreeFrameScrollingNodeIOS):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateBeforeChildren):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateAfterChildren):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollPositionWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::setScrollLayerPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterViewportChange):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateLayersAfterDelegatedScroll):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::updateChildNodesAfterScroll):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::minimumScrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::maximumScrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollBy):
        (WebCore::ScrollingTreeFrameScrollingNodeIOS::scrollByWithoutContentEdgeConstraints):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
        * page/scrolling/mac/ScrollingStateFrameScrollingNodeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingStateScrollingNodeMac.mm.
        (WebCore::ScrollingStateFrameScrollingNode::setScrollbarPaintersFromScrollbars):
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.h: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.h.
        * page/scrolling/mac/ScrollingTreeFrameScrollingNodeMac.mm: Renamed from Source/WebCore/page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm.
        (WebCore::ScrollingTreeFrameScrollingNodeMac::create):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::ScrollingTreeFrameScrollingNodeMac):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::~ScrollingTreeFrameScrollingNodeMac):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateBeforeChildren):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateAfterChildren):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::handleWheelEvent):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsHorizontalStretching):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::allowsVerticalStretching):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::stretchAmount):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::pinnedInDirection):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollHorizontally):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::canScrollVertically):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::shouldRubberBandInDirection):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::absoluteScrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollBy):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::immediateScrollByWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::startSnapRubberbandTimer):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::stopSnapRubberbandTimer):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::adjustScrollPositionToBoundsIfNecessary):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollPositionWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::setScrollLayerPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateLayersAfterViewportChange):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::minimumScrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::maximumScrollPosition):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollBy):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::scrollByWithoutContentEdgeConstraints):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::updateMainFramePinState):
        (WebCore::ScrollingTreeFrameScrollingNodeMac::logExposedUnfilledArea):
        (WebCore::logThreadedScrollingMode):
        (WebCore::logWheelEventHandlerCountChanged):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

2014-05-19  Simon Fraser  <simon.fraser@apple.com>

        Images missing sometimes with composited clipping layers
        https://bugs.webkit.org/show_bug.cgi?id=133065
        <rdar://problem/15224559>

        Reviewed by Beth Dakin.
        
        When support for solid colors on layers was added, a layer was considered a candidate
        for the solid color optimization without regard to whether it had descendent layers
        with "paintsIntoCompositedAncestor" requirements.
        
        Fix hasVisibleNonCompositingDescendantLayers(), renaming it to isPaintDestinationForDescendentLayers()
        and having it take into account whether descendent layers need to paint into an
        ancestor.
        
        Also, this test has to happen after those descendent layers have had their
        compositing state updated, so move the isSimpleContainerCompositingLayer() to
        a new updateAfterDescendents() function which is called from the various
        places we do compositing-udpate-tree-walks.

        Test: compositing/backing/solid-color-with-paints-into-ancestor.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGeometry):
        (WebCore::RenderLayerBacking::updateAfterDescendents):
        (WebCore::RenderLayerBacking::paintsChildren):
        (WebCore::compositedWithOwnBackingStore):
        (WebCore::descendentLayerPaintsIntoAncestor):
        (WebCore::RenderLayerBacking::isPaintDestinationForDescendentLayers):
        (WebCore::hasVisibleNonCompositingDescendant): Deleted.
        (WebCore::RenderLayerBacking::hasVisibleNonCompositingDescendantLayers): Deleted.
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
        (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
        (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):

2014-05-19  Zalan Bujtas  <zalan@apple.com>

        REGRESSION (r133351, sub-pixel layout): Right-to-left block with text-overflow: ellipsis truncates prematurely (breaks facebook.com Hebrew UI)
        https://bugs.webkit.org/show_bug.cgi?id=112227

        Reviewed by Maciej Stachowiak.

        This patch removes unnecessary integral snapping of inlines at layout time.

        The general rule of thumb of using round/floor/ceil at layout time is to not use them.
 
        When some computed values (x, y, width, height) get snapped during layout, while others don't,
        intersecting/measuring mismatches could occur and they could end up producing visual artifacts such as truncations.
        This patch also enables iframe content to be positioned on odd device pixel positions on retina displays.
        
        Tests: fast/frames/hidpi-position-iframe-on-device-pixel.html
               fast/inline/hidpi-rtl-text-does-not-fit-line-and-gets-cut-off.html

        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::logicalLeftOffsetForLine):
        (WebCore::RenderBlock::pixelSnappedLogicalLeftOffsetForLine): Deleted.
        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine): Deleted.
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::updateLogicalInlinePositions):
        (WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
        (WebCore::RenderBlockFlow::checkLinesForTextOverflow):

2014-05-18  Chris Fleizach  <cfleizach@apple.com>

        AX: iOS: using AXAttributeCacheEnabler is too slow for every accessibilityElementAtIndex:
        https://bugs.webkit.org/show_bug.cgi?id=133043

        Reviewed by Mario Sanchez Prada.

        iOS Accessibility code tries to improve performance by caching attributes when accessing
        elements through the platform API. However, those API calls can be used very frequently when 
        iterating elements. Creating the AXAttributeCacheEnabler object and tearing it down is proving
        to be the hottest code path in samples for accessibility access.

        We need to move the logic for enabling/disabling the attribute cache to a level that can make
        a more informed decision about when to enable/disable.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper enableAttributeCaching]):
        (-[WebAccessibilityObjectWrapper disableAttributeCaching]):
        (-[WebAccessibilityObjectWrapper accessibilityElementCount]):
        (-[WebAccessibilityObjectWrapper accessibilityElementAtIndex:]):
        (-[WebAccessibilityObjectWrapper indexOfAccessibilityElement:]):

2014-05-18  Simon Fraser  <simon.fraser@apple.com>

        Use RenderStyle& in more places in RenderLayerBacking
        https://bugs.webkit.org/show_bug.cgi?id=133061

        Reviewed by Andreas Kling.

        Convert several member functions to use references to RenderStyle rather
        than pointers. Move canCreateTiledImage() higher in the file (no code
        changes). Other minor cleanup.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
        (WebCore::RenderLayerBacking::updateOpacity):
        (WebCore::RenderLayerBacking::updateTransform):
        (WebCore::RenderLayerBacking::updateFilters):
        (WebCore::RenderLayerBacking::updateBlendMode):
        (WebCore::RenderLayerBacking::updateGeometry):
        (WebCore::hasBoxDecorations):
        (WebCore::canCreateTiledImage):
        (WebCore::hasBoxDecorationsOrBackgroundImage):
        (WebCore::hasPerspectiveOrPreserves3D):
        (WebCore::supportsDirectBoxDecorationsComposition):
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
        (WebCore::RenderLayerBacking::contentChanged):
        (WebCore::RenderLayerBacking::startTransition):
        * rendering/RenderLayerBacking.h:

2014-05-17  Simon Fraser  <simon.fraser@apple.com>

        Rename some RenderLayerBacking member functions
        https://bugs.webkit.org/show_bug.cgi?id=133030

        Reviewed by Sam Weinig.

        Remove "GraphicsLayer" from some member function names on RenderLayerBacking.
        
        No behavior change.

        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::AVFWrapper::createAVCFVideoLayer):
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivateQTKit::createQTMovieLayer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateAfterLayout):
        (WebCore::RenderLayerBacking::updateConfiguration):
        (WebCore::RenderLayerBacking::updateGeometry):
        (WebCore::RenderLayerBacking::contentChanged):
        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Deleted.
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry): Deleted.
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateLayerCompositingState):
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
        (WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
        (WebCore::RenderLayerCompositor::updateCompositingDescendantGeometry):
        (WebCore::RenderLayerCompositor::attachRootLayer):

2014-05-19  Antti Koivisto  <antti@apple.com>

        Fix assertion failure with simple line layout debug borders enabled.

        Rubber-stamped by Andreas Kling.

        * rendering/SimpleLineLayoutFunctions.cpp:
        (WebCore::SimpleLineLayout::paintDebugBorders): We shoudn't try to paint empty rects.

2014-05-18  Andreas Kling  <akling@apple.com>

        Reduce constructor copypasta in RenderText and RenderElement.
        <https://webkit.org/b/133056>

        Use delegating constructors to remove duplicated initializer lists
        from the constructors of RenderText and RenderElement.

        Reviewed by Anders Carlsson.

        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::RenderElement):
        * rendering/RenderElement.h:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::RenderText):
        * rendering/RenderText.h:

2014-05-18  Brent Fulgham  <bfulgham@apple.com>

        Crash during scroll when latched
        https://bugs.webkit.org/show_bug.cgi?id=133064

        Reviewed by Simon Fraser.

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::platformPrepareForWheelEvents): Prevent dereference of NULL
        wheelEventTarget argument.

2014-05-18  Svetlana Redchenko  <redchenko@yandex-team.ru>

        Input ::selection pseudo class does not work leading to hidden selection
        https://bugs.webkit.org/show_bug.cgi?id=38943

        Reviewed by Darin Adler.

        Test: fast/selectors/input-with-selection-pseudo-element.html

        When text is selected inside input element, it should change the
        color and background color according to the ::selection pseudo element.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::selectionBackgroundColor):
        (WebCore::RenderObject::selectionColor):
        (WebCore::RenderObject::selectionPseudoStyle):
        * rendering/RenderObject.h:

2014-05-18  Sam Weinig  <sam@webkit.org>

        [WebKit2] Implement ScriptMessageHandlers
        https://bugs.webkit.org/show_bug.cgi?id=133053

        Reviewed by Anders Carlsson.

        * 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.

2014-05-18  Maciej Stachowiak  <mjs@apple.com>

        REGRESSION (r156546): Default media controls are laid out incorrectly when media element is styled with direction:rtl
        https://bugs.webkit.org/show_bug.cgi?id=132531
        <rdar://problem/16806267>
        
        Reviewed by Mark Rowe.

        This was already tested by the media/video-rtl.htm reftest, now unskipped.

        * Modules/mediacontrols/mediaControlsApple.css:
        (audio::-webkit-media-controls-panel): Add missing direction: ltr

2014-05-18  Rik Cabanier  <cabanier@adobe.com>

        support for navigator.hardwareConcurrency
        https://bugs.webkit.org/show_bug.cgi?id=132588

        Reviewed by Filip Pizlo.

        Added a new API that returns the number of CPU cores up to 8.

        Test: fast/dom/navigator-hardwareConcurrency.html

        * Configurations/FeatureDefines.xcconfig:
        * page/Navigator.cpp:
        (WebCore::Navigator::hardwareConcurrency):
        * page/Navigator.h:
        * page/Navigator.idl:

2014-05-18  Anders Carlsson  <andersca@apple.com>

        Fix iOS build.

        * WebCore.exp.in:
        Move UserContentController symbols to the right place.

2014-05-18  Jon Lee  <jonlee@apple.com>

        Build fix for r169006.

        Unreviewed.

        * loader/ResourceLoader.h: Return didCreateQuickLookHandle() to public.

2014-05-18  Antti Koivisto  <antti@apple.com>

        REGRESSION (r160259): text-combine glyphs are not rendered
        https://bugs.webkit.org/show_bug.cgi?id=127324

        Reviewed by Andreas Kling.
        
        The original text gets overwritten by a change that is supposed to affect rendered text only.
        Fixed by giving the text update functions well-defined purposes.

        Test: fast/text/text-combine-rendering.html

        * rendering/RenderCombineText.cpp:
        (WebCore::RenderCombineText::styleDidChange):
        (WebCore::RenderCombineText::setRenderedText):
        (WebCore::RenderCombineText::combineText):
        (WebCore::RenderCombineText::setTextInternal): Deleted.
        * rendering/RenderCombineText.h:
        * rendering/RenderCounter.cpp:
        (WebCore::RenderCounter::computePreferredLogicalWidths):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::setRenderedText):
        
            This function now updates the rendered text but does not change the original.
            Get the original text by calling originalText().

        (WebCore::RenderText::setText):
        
            This the only place original text now changes.

        (WebCore::RenderText::setTextInternal): Deleted.
        
            Renamed to setRenderedText.

        * rendering/RenderText.h:
        * rendering/svg/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::setRenderedText):
        (WebCore::RenderSVGInlineText::setTextInternal): Deleted.
        * rendering/svg/RenderSVGInlineText.h:

2014-05-17  Maciej Stachowiak  <mjs@apple.com>

        Don't attempt to update id or name for nodes that are already removed
        https://bugs.webkit.org/show_bug.cgi?id=133041

        Reviewed by Sam Weinig.

        Tests: fast/dom/remove-element-with-id-that-was-inserted-on-DOMNodeRemoved.html
               fast/dom/remove-element-with-name-that-was-inserted-on-DOMNodeRemoved.html

        * dom/Element.cpp:
        (WebCore::Element::removedFrom): Skip updating ids and names for an element not
        in a treescope, as we already do for elements not in a document.

2014-05-17  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (NetworkProcess): Trying to use appcache fallback crashes in ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache
        https://bugs.webkit.org/show_bug.cgi?id=133007
        <rdar://problem/13702706>

        appcache tests often fail on the Mac WebKit2 bot
        https://bugs.webkit.org/show_bug.cgi?id=82061

        Reviewed by Maciej Stachowiak.

        Covered by existing tests, which this patch enables.

        * WebCore.exp.in: Export ResourceLoader::cancel(const ResourceError&). It used
        to be virtual, but marking subclasses final has resulted in the compiler calling
        it directly from WebKitLegacy framework. Seeing that no subclass overrides it,
        I then made it non-virtual.
        Also export ApplicationCacheHost functions that are now used from WebKit2.

        * loader/ResourceLoader.h: Made the class abstract (as I didn't realize at first
        that it's always either a SubresourceLoader or a NetscapePlugInStreamLoader).
        Made ResourceHandleClient functions private, as they should never be called other
        than via a ResourceHandleClient pointer.

        * loader/NetscapePlugInStreamLoader.h:
        * loader/SubresourceLoader.h:
        Marked these final.

        * loader/ResourceLoader.cpp: (WebCore::ResourceLoader::willSwitchToSubstituteResource):
        Added a function to be called when switching to a substitute resource. We still
        need a ResourceLoader at this point, as substitute resource will be delivered through
        it, but we don't want it to continue its current load.

        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::scheduleLoadFallbackResourceFromApplicationCache):
        Call the ResourceLoader function instead of using handle, which is null when
        using out of process networking.

2014-05-17  Andreas Kling  <akling@apple.com>

        We shouldn't make a ScrollingThread on iOS.
        <https://webkit.org/b/133038>
        <rdar://problem/16947589>

        Don't call ScrollingThred::dispatch() from the pressure relief
        code on iOS since that will end up instantiating a scrolling thread
        which we'd otherwise never have.

        Reviewed by Sam Weinig.

        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::releaseMemory):

2014-05-17  Piotr Grad  <p.grad@samsung.com>

        Setting playback rate on video with media controller is not ignored.
        https://bugs.webkit.org/show_bug.cgi?id=129048

        Reviewed by Jer Noble.

        Replaced queries for m_playbackRate with effectivePlaybackRate()
        which includes media controller playback rate.

        Test: media/video-controller-child-rate.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLMediaElement.h:

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-17  Andreas Kling  <akling@apple.com>

        REGRESSION (r166422): All RenderBox objects grew 104 bytes from adding repaint timers.
        <https://webkit.org/b/133027>
        <rdar://problem/16867410>

        Instead of storing a rarely-used repaint timer on every RenderBox, store one
        on the RenderView, and keep a hash set of renderers needing repaint.

        Renderers get a flag tracking whether they have a pending lazy repaint.
        This way we can avoid hash lookups in the common case.

        Also added a static assertion to catch RenderBox growing in the future.

        Reviewed by Antti Koivisto.

        * rendering/RenderBox.cpp:
        (WebCore::SameSizeAsRenderBox::~SameSizeAsRenderBox):
        (WebCore::RenderBox::RenderBox):
        (WebCore::RenderBox::~RenderBox):
        (WebCore::RenderBox::paintBoxDecorations):
        (WebCore::RenderBox::layoutOverflowRectForPropagation):
        * rendering/RenderBox.h:
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::RenderElement):
        * rendering/RenderElement.h:
        (WebCore::RenderElement::setRenderBoxNeedsLazyRepaint):
        (WebCore::RenderElement::renderBoxNeedsLazyRepaint):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        (WebCore::RenderView::scheduleLazyRepaint):
        (WebCore::RenderView::unscheduleLazyRepaint):
        (WebCore::RenderView::lazyRepaintTimerFired):
        * rendering/RenderView.h:

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-16  Benjamin Poulain  <bpoulain@apple.com>

        [iOS] ScrollView::visibleContentRectInternal is bypassing the iOS code for unobscuredContentRect
        https://bugs.webkit.org/show_bug.cgi?id=133008

        Reviewed by Simon Fraser.

        * 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.

2014-05-16  Jer Noble  <jer.noble@apple.com>

        [Mac] naturalSize not updated when preload=metadata
        https://bugs.webkit.org/show_bug.cgi?id=132994

        Reviewed by Eric Carlson.

        Test: media/video-load-preload-metadata-naturalsize.html

        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.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekInternal):

2014-05-16  Simon Fraser  <simon.fraser@apple.com>

        Remove "region-based columns" prefs
        https://bugs.webkit.org/show_bug.cgi?id=133006
        <rdar://problem/16945824>

        Reviewed by Dave Hyatt.

        Remove "region-based columns" prefs and related code, since this is only
        way to render columns now.

        * page/Settings.in:

2014-05-16  Antti Koivisto  <antti@apple.com>

        Link search area for touch events is too large in some cases
        https://bugs.webkit.org/show_bug.cgi?id=132988
        <rdar://problem/16917843>

        Reviewed by Simon Fraser.

        * 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):

            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.
    
        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).

        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

        * 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:

2014-05-15  Simon Fraser  <simon.fraser@apple.com>

        [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>

        Reviewed by Benjamin Poulain.

        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.

2014-05-14  Matthew Hanson  <matthew_hanson@apple.com>

        Only define MAX_GRID_TRACK_REPETITIONS if CSS_GRID_LAYOUT is enabled.

        Reviewed by Dean Jackson.

        This was causing -Wunused-const-variable errors.

        * css/CSSParser.cpp: Add include guard.

2014-05-14  Beth Dakin  <bdakin@apple.com>

        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>

        Reviewed by Benjamin Poulain.

        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.

        Scale by the TileGrid's scale.
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::topMarginHeight):
        (WebCore::TileController::bottomMarginHeight):
        (WebCore::TileController::leftMarginWidth):
        (WebCore::TileController::rightMarginWidth):

        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.

2014-05-14  Dean Jackson  <dino@apple.com>

        [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  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Change Element.offset* client* scroll* return type to double.
        https://bugs.webkit.org/show_bug.cgi?id=132895

        Reviewed by Simon Fraser.

        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

        Reviewed by Simon Fraser.

        * Configurations/FeatureDefines.xcconfig:
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator EPosition):
        * css/CSSValueKeywords.in:
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::convertPositionStyle):

2014-05-14  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 Andrei Bucur.

        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.

        No new tests required.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::locateFlowThreadContainingBlockNoCache):
        (WebCore::RenderObject::locateFlowThreadContainingBlock):
        * rendering/RenderObject.h:

2014-05-14  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Don't relayout when updating the region range unless necessary
        https://bugs.webkit.org/show_bug.cgi?id=132120

        Reviewed by Antti Koivisto.

        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.

        Tests: Major performance improvement with speedups of 50-60% on:
        Layout/RegionsAuto.html, Layout/RegionsAutoMaxHeight.html and Layout/RegionsFixed.html

        * 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.

2014-05-14  Antti Koivisto  <antti@apple.com>

        RuleData should ref the StyleRule
        https://bugs.webkit.org/show_bug.cgi?id=132865

        Reviewed by Andreas Kling.

        As a defensive move make RuleData ref the StyleRule. 
        This adds some ref churn but the overall performance impact should be minimal.

        * css/RuleSet.h:
        (WebCore::RuleData::rule):

2014-05-14  Antti Koivisto  <antti@apple.com>

        GIF animations don't restart after scrolling on iOS WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=132900

        Reviewed by Andreas Kling.

        * WebCore.exp.in:

2014-05-13  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Assertion failure in some cases with inline blocks
        https://bugs.webkit.org/show_bug.cgi?id=132859

        Reviewed by Mihnea Ovidenie.

        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.

        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.

        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.

        Test: fast/regions/inline-block-shifted-region.html

        * 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.

2014-05-13  Simon Fraser  <simon.fraser@apple.com>

        Fix "ASSERTION FAILED: m_representation == PlatformLayerRepresentation" with UI-side compositing
        https://bugs.webkit.org/show_bug.cgi?id=132899

        Reviewed by Beth Dakin.

        Export some things

        * WebCore.exp.in:

2014-05-13  Hans Muller  <hmuller@adobe.com>

        [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

        Reviewed by Bem Jones-Bey.

        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.

        Test: fast/shapes/shape-outside-floats/shape-outside-edge-case.html

        * rendering/shapes/PolygonShape.cpp:
        (WebCore::OffsetPolygonEdge::clippedEdgeXRange):

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-13  Dean Jackson  <dino@apple.com>

        Attempted build fix after https://bugs.webkit.org/show_bug.cgi?id=132891

        * page/PageDebuggable.cpp:

2014-05-13  Timothy Hatcher  <timothy@apple.com>

        Force developerExtrasEnabled when a remote Inspector client connects.

        https://bugs.webkit.org/show_bug.cgi?id=132891

        Reviewed by Joseph Pecoraro.

        * 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.

2014-05-13  Beth Dakin  <bdakin@apple.com>

        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>

        Reviewed by Simon Fraser.

        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.

        Export new name.
        * WebCore.exp.in:

        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:

        THIS is the spot that needs the new function, 
        documentScrollOffsetRelativeToScrollableAreaOrigin()()
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):

2014-05-13  Dean Jackson  <dino@apple.com>

        [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>

        Reviewed by Simon Fraser.

        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.

        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.

        * 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:

2014-05-13  Eric Carlson  <eric.carlson@apple.com>

        Unreviewed build fix after r168755.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):

2014-05-13  Eric Carlson  <eric.carlson@apple.com>

        [Mac] hasVideo should return true when video is ready to display
        https://bugs.webkit.org/show_bug.cgi?id=132885

        Reviewed by Jer Noble.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):

        * platform/graphics/avfoundation/objc/AudioTrackPrivateAVFObjC.mm:
        (WebCore::AudioTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
            enabled state of the AVPlayerItemTrack during setup.

        * 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".

        * platform/graphics/avfoundation/objc/VideoTrackPrivateAVFObjC.cpp:
        (WebCore::VideoTrackPrivateAVFObjC::resetPropertiesFromTrack): Don't change the
            enabled state of the AVPlayerItemTrack during setup.

2014-05-13  Myles C. Maxfield  <litherum@gmail.com>

        Text decorations do not contribute to visual overflow
        https://bugs.webkit.org/show_bug.cgi?id=132773

        Reviewed by Darin Adler.

        Tests: fast/css3-text/css3-text-decoration/repaint/underline-outside-of-layout-rect.html

        * 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

2014-05-13  Enrica Casucci  <enrica@apple.com>

        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>

        Reviewed by Benjamin Poulain.

        Adding some exports. The fix to setScrollPosition is to avoid clamping the scroll
        position when using delegate scrolling.

        * WebCore.exp.in:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::setScrollPosition):

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

        Reviewed by Tim Horton.

        Cleared up the actual intent behind review feedback on the original patch.

        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
        (WebCore::ImageControlsButtonElementMac::maybeCreate):

2014-05-13  Brady Eidson  <beidson@apple.com>

        Update positioning/drawing of the image controls button.
        <rdar://problem/16885077> and https://bugs.webkit.org/show_bug.cgi?id=132883

        Reviewed by Tim Horton.

        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
        (WebCore::ImageControlsButtonElementMac::maybeCreate): Add inline style for top/right
          positioning based on the metrics from the render theme.

        * html/shadow/mac/imageControlsMac.css:
        (.x-webkit-image-controls-button): Can’t hard code any positioning.

        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::imageControlsButtonPositionOffset):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::servicesRolloverButtonCell):
        (WebCore::RenderThemeMac::imageControlsButtonPositionOffset):

2014-05-13  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] background-attachment:fixed behaves very poorly
        https://bugs.webkit.org/show_bug.cgi?id=132881
        <rdar://problem/16789526>

        Reviewed by Beth Dakin.

        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):

2014-05-13  Zalan Bujtas  <zalan@apple.com>

        REGRESSSION(r168528) Subpixel rendering: Selection rect is not positioned properly when SVG text is selected.
        https://bugs.webkit.org/show_bug.cgi?id=132868

        Reviewed by Dirk Schulze.

        Scale the selection rect. r168528 missed applying this final transform on the selection/painting rect.

        Test: svg/text/hidpi-text-selection-rect-position.html

        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::selectionRectForTextFragment):

2014-05-13  Martin Hodovan  <mhodovan.u-szeged@partner.samsung.com>

        ASSERTION FAILED: leftCategory != CalcOther && rightCategory != CalcOther
        in WebCore::CSSCalcBinaryOperation::createSimplified
        https://bugs.webkit.org/show_bug.cgi?id=132870

        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

        Reviewed by Darin Adler.

        Test: fast/css/calc-with-angle-time-frequency.html

        * 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):

2014-05-13  Darin Adler  <darin@apple.com>

        Try to fix the !ENABLE(ICONDATABASE) build

        * loader/icon/IconDatabase.h: Include WTFString.h.

2014-05-13  Carlos Garcia Campos  <cgarcia@igalia.com>

        REGRESSION(r167771): [GTK] Text fields and areas are rendered unthemed
        https://bugs.webkit.org/show_bug.cgi?id=132864

        Reviewed by Philippe Normand.

        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.

        * 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.

2014-05-13  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GStreamer] Move toGstClockTime to utilities
        https://bugs.webkit.org/show_bug.cgi?id=132702

        Reviewed by Philippe Normand.

        toGstClockTime should be in GStreamerUtilities and corrected typo
        in getGstPlayFlag.

        No new tests needed.

        * 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.

2014-05-12  Darin Adler  <darin@apple.com>

        Make a few icon database improvements
        https://bugs.webkit.org/show_bug.cgi?id=132812

        Reviewed by Brady Eidson.

        * WebCore.exp.in: Export more IconDatabase functions, since they are now called
        by WebKit2 through pointers to a class marked final.

        * loader/icon/IconDatabase.cpp: Removed unneeded includes. Use override for
        virtual functions.

        * 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.

        * loader/icon/IconDatabaseBase.h: Removed unneeded includes.

2014-05-13  Kiran  <kiran.guduru@samsung.com>

        [MediaStream] MediaStream.addTrack Should not check for active state.
        https://bugs.webkit.org/show_bug.cgi?id=132558

        Reviewed by Eric Carlson.

        MediaStream.addTrack method is checking for active state of a
        MediaStream, but it should not check for active state while adding a Track.

        Test: fast/mediastream/MediaStream-add-tracks-to-inactive-stream.html

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::addTrack):

2014-05-12  Mark Lam  <mark.lam@apple.com>

        WebKit2 on iOS needs to capture the main thread's floating point environment.
        <https://webkit.org/b/132755>

        Reviewed by Geoffrey Garen.

        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.

        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.

        In the ChildProcess::platformInitialize(), we also need to initialize the ARMv7
        FP env to support denormalized numbers.  We'll do this before calling
        saveMainThreadEnvironment().

        Tests: fast/workers/worker-floating-point.html
               js/floating-point-denormalized.html

        * 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):

2014-05-12  Dirk Schulze  <krit@webkit.org>

        SVG root element accepts background color but fails to repaint it
        https://bugs.webkit.org/show_bug.cgi?id=63153

        Reviewed by Dean Jackson.

        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.

        Test: svg/custom/svg-root-background.html

        * 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:

2014-05-12  Simon Fraser  <simon.fraser@apple.com>

        [iOS] Fixed items are sometimes clipped after rubber-banding
        https://bugs.webkit.org/show_bug.cgi?id=132851
        <rdar://problem/16870790>

        Reviewed by Benjamin Poulain.

        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.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateCompositedBounds):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForPosition):

2014-05-06  Jon Honeycutt  <jhoneycutt@apple.com>

        Don't dispatch 'beforeload' event inside FrameView::layout()

        https://bugs.webkit.org/show_bug.cgi?id=132621
        <rdar://problem/15661470>

        This merges Blink revision 162073 with minor renaming and style
        changes. From that commit:

        Executing JavaScript code inside FrameView::layout() is problematic.
        e.g. an assertion failure tested in fast/events/beforeload-assertion.html.
        We should avoid it.

        This CL makes 'beforeload' event dispatching for plugins and iframes asynchronous,
        except plugin access from JavaScript code (HTMLPlugInElement::
        renderWidgetForJSBindings).

        Reviewed by Brent Fulgham.

        Tests: fast/events/beforeload-assertion.html
               fast/events/beforeload-iframe-crash.html
               fast/events/beforeload-input-time-crash.html

        * 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:

2014-05-12  Roger Fong  <roger_fong@apple.com>

        Limit number of active graphics contexts per web process.
        https://bugs.webkit.org/show_bug.cgi?id=132833.
        <rdar://problem/16888459>

        Reviewed by Dean Jackson.

        Test: webgl/many-contexts.html

        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/mac/GraphicsContext3DMac.mm: Limit number of active contexts to 16.
        (WebCore::GraphicsContext3D::create):
        (WebCore::GraphicsContext3D::~GraphicsContext3D):

2014-05-12  Simon Fraser  <simon.fraser@apple.com>

        Build fix fix.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):

2014-05-12  Brent Fulgham  <bfulgham@apple.com>

        DataDetectorUI doesn't update with resize
        https://bugs.webkit.org/show_bug.cgi?id=132830
        <rdar://problem/16871179>

        Reviewed by Simon Fraser.

        * 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.

2014-05-12  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):

2014-05-12  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Fuzzy tiles on some sites on loading
        https://bugs.webkit.org/show_bug.cgi?id=132847
        <rdar://problem/16816178>

        Reviewed by Benjamin Poulain.

        Export WebCore::TileController::contentsScale() const

        * WebCore.exp.in:

2014-05-12  Simon Fraser  <simon.fraser@apple.com>

        Add debug dumping for ViewportConfiguration
        https://bugs.webkit.org/show_bug.cgi?id=132843

        Reviewed by Benjamin Poulain.

        Add some TextStream-based dumping for ViewportConfiguration.

        * 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:

2014-05-12  Brady Eidson  <beidson@apple.com>

        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

        Pair programmed and pair reviewed by Brady Eidson and Darin Adler.

        * editing/mac/EditorMac.mm:
        (WebCore::maybeCopyNodeAttributesToFragment):
        (WebCore::Editor::replaceNodeFromPasteboard):

2014-05-12  Beth Dakin  <bdakin@apple.com>

        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>

        Reviewed by Simon Fraser.

        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.

        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):

        Fetch the compositor’s layerForContentShadow().
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::contentShadowLayerForFrameView):
        * page/scrolling/ScrollingCoordinator.h:

        Hook up the contentShadowLayer in the state node.
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        (WebCore::ScrollingStateScrollingNode::setContentShadowLayer):

        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):

        The shadow layer needs an anchor point now that we are moving it around.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

2014-05-12  Dirk Schulze  <krit@webkit.org>

        <svg> with opacity and compositing double-applies its opacity
        https://bugs.webkit.org/show_bug.cgi?id=116856

        Reviewed by Simon Fraser.

        The opacity is applied by the compositor. However, all SVG elements
        create transparency layers on their own to apply opacity. So did
        SVGSVGElement.

        Added a check if the current element has a compositing layer and skip
        creating transparency layer if it has.

        Test: svg/custom/composited-svg-with-opacity.html

        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent):

2014-05-12  Brady Eidson  <beidson@apple.com>

        Teach Editor to support more direct replacement of a Node
        <rdar://problem/16817952> and https://bugs.webkit.org/show_bug.cgi?id=132834

        Reviewed by Enrica Casucci.

        The new method "Editor::replaceNodeFromPasteboard" has the intent that the new DocumentFragment
        from the pasteboard is as similar to the old Node as possible.

        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

        This fixes both of these issues.

        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:

        * dom/TextEvent.cpp:
        (WebCore::TextEvent::createForPlainTextPaste):
        (WebCore::TextEvent::createForFragmentPaste):
        (WebCore::TextEvent::TextEvent):
        * dom/TextEvent.h:
        (WebCore::TextEvent::mailBlockquoteHandling):

        * 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:

        * 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.webkit.org/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.

2014-05-06  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

        Reviewed by Simon Fraser.

        The code to add a PDF annotation when printing was called from
        drawFocusRing, which is quite confusing. With just little movement
        of code, we can detect an annotation and call addPDFURLRect in the
        paint phase, and drawFocusRing becomes something that only
        draws focus rings.

        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::paintOutline): Split calls to drawFocusRing
        and addPDFURLRect.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::paintFocusRing): Get rid of call to PDF.
        (WebCore::RenderObject::addPDFURLRect): Change the signature so it
        can be called externally, and calculates the rectangle itself.
        (WebCore::RenderObject::paintOutline): Split the calls.
        * rendering/RenderObject.h:

2014-05-06  Rik Cabanier  <cabanier@adobe.com>

        Calling createPattern with a broken image must throw an invalidstate error
        https://bugs.webkit.org/show_bug.cgi?id=132407

        Reviewed by Darin Adler.

        Updated createPattern so it throws an invalidState exception
        if you pass it an image that is in the broken state.

        Tests:
        * canvas/philip/tests/2d.pattern.image.broken.html:
        * canvas/philip/tests/2d.pattern.image.incomplete.empty.html:
        * fast/canvas/canvas-empty-image-pattern.html:

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::createPattern):

2014-05-06  Jer Noble  <jer.noble@apple.com>

        [iOS][Mac] Display sleeps while playing <video> content.
        https://bugs.webkit.org/show_bug.cgi?id=132624

        Reviewed by Darin Adler.

        On iOS and Mac, create a DisplaySleepDisablerCocoa rather than an (no-op) DisplaySleepDisabler.

        * platform/cocoa/DisplaySleepDisablerCocoa.cpp:
        (WebCore::DisplaySleepDisabler::create):
        * platform/cocoa/DisplaySleepDisablerCocoa.h:

2014-05-06  Dean Jackson  <dino@apple.com>

        [Mac] Allow focus rings to redraw themselves if necessary
        https://bugs.webkit.org/show_bug.cgi?id=132593

        Fix iOS build.

        * platform/graphics/mac/GraphicsContextMac.mm:
        (WebCore::GraphicsContext::drawFocusRing): We no longer use the color parameter.

2014-05-06  Dean Jackson  <dino@apple.com>

        [Mac] Allow focus rings to redraw themselves if necessary
        https://bugs.webkit.org/show_bug.cgi?id=132593

        Reviewed by Simon Fraser.

        Mac allows focus rings to change rendering over time. Expose this
        functionality to WebKit by having the rendering code detect that
        a focused element has asked to repaint itself, and also have
        the FocusController object remember how long it has been since
        an element was focused.

        This patch removes WebCoreNSCellExtras, since a better version is
        available in WebKitSystemInterface, and it was going to be cumbersome
        to port the code from there into WebKit.

        * WebCore.exp.in: Export _wkDrawFocusRingAtTime and _wkDrawCellFocusRingWithFrameAtTime.
        * WebCore.xcodeproj/project.pbxproj: Remove WebCoreNSCellExtras.
        * page/FocusController.cpp:
        (WebCore::FocusController::FocusController): Initialize the repaint timer.
        (WebCore::FocusController::~FocusController): Stop the repaint timer on deletion.
        (WebCore::FocusController::setFocusedElement): Keep track of the current time when focused.
        (WebCore::FocusController::focusedElementNeedsRepaint): Start the repaint timer.
        (WebCore::FocusController::focusRepaintTimerFired): Ask the focused element to repaint itself.
        (WebCore::FocusController::timeSinceFocusWasSet):
        * page/FocusController.h: Expose timeSinceFocusWasSet() and focusedElementNeedsRepaint(), as
        well as add the timer for repainting.

        * platform/ControlStates.h: Add timeSinceControlWasFocused member variable, allowing the platform
        code such as Theme to obtain the value from FocusController.
        (WebCore::ControlStates::ControlStates):
        (WebCore::ControlStates::timeSinceControlWasFocused):
        (WebCore::ControlStates::setTimeSinceControlWasFocused):

        * platform/graphics/GraphicsContext.h:
        (WebCore::GraphicsContext::drawFocusRing): New Mac-only method that uses timeOffset.

        * platform/graphics/mac/GraphicsContextMac.mm:
        (WebCore::drawFocusRingToContext): No need to pass in color and radius - these are now
        ignored in WKDrawFocusRing. However, I didn't want to change the signature of the
        WKSI function.
        (WebCore::drawFocusRingToContextAtTime): Call into the new method WKDrawFocusRingAtTime.
        (WebCore::GraphicsContext::drawFocusRing): Color and radius no longer used.

        * platform/mac/ThemeMac.mm:
        (WebCore::checkboxMargins): Update the margins since our focus ring can be a lot bigger.
        (WebCore::radioMargins): Ditto.
        (WebCore::paintToggleButton): Drawing a focus ring might trigger a repaint too.
        (WebCore::buttonMargins): Increase the margins.
        (WebCore::paintButton): If our focus ring wants to be drawn again, set the ControlStates flag.

        * platform/mac/WebCoreNSCellExtras.h: Removed.
        * platform/mac/WebCoreNSCellExtras.m: Removed.

        * platform/mac/WebCoreSystemInterface.h: Declare the new methods.
        * platform/mac/WebCoreSystemInterface.mm:

        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::initializeStyle): Expand the overflow rects by the maximum
        focus ring width. This might be different from the current outline size.
        (WebCore::RenderElement::setStyle): Ditto.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::paintFocusRing): If we're on Mac, use the new drawFocusRing method,
        which sets a parameter to true if the focused element needs a repaint.

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::updateControlStatesForRenderer): Copy the value from FocusController
        so that the platform Theme code can use it.

        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::platformFocusRingMaxWidth): Add a way to get the maximum width
        of a focus ring for the platform. This is used to extend the overflow rects.
        * rendering/RenderThemeMac.h: Override the focus ring width.
        * rendering/RenderThemeMac.mm: On newer versions of OS X, we have a larger focus ring.
        (WebCore::RenderThemeMac::platformFocusRingMaxWidth):
        (WebCore::RenderThemeMac::paintMenuList): If a menu is focused, and needs a repaint, mark
        it as such.

2014-05-06  Jer Noble  <jer.noble@apple.com>

        [iOS] Animate AVPlayerLayer into and out of full screen
        https://bugs.webkit.org/show_bug.cgi?id=132603

        Reviewed by Simon Fraser.

        Rather than synchronize animations across the WebProcess / UIProcess boundary, animate
        the AVPlayerLayer into place by first resizing the full screen layer to occupy the
        entire screen in the WebProcess, and use a sublayerTransform animation in the UIProcess
        to scale the AVPlayer from its initial screen location, as well as back to its final screen
        location.

        * platform/graphics/GeometryUtilities.cpp:
        (WebCore::largestRectWithAspectRatioInsideRect): Added utility method.
        * platform/graphics/GeometryUtilities.h:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVVideoLayer init]): Added, initialize video gravity and enable child layer masking.
        (-[WebAVVideoLayer setBounds:]): Create a transform to scale the video area.
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Block implicit animations during setup.
        (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Reset the gravity to ResizeAspect
            if necessary.

2014-05-06  Alexey Proskuryakov  <ap@apple.com>

        Make BlobDataItem use a refcounted object for files
        https://bugs.webkit.org/show_bug.cgi?id=132628

        Reviewed by Anders Carlsson.

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        Added BlobDataFileReference.{h|cpp}

        * WebCore.exp.in: Removed unused exports.

        * platform/network/BlobData.h:
        (WebCore::BlobDataItem::offset):
        (WebCore::BlobDataItem::BlobDataItem):
        Use a wrapper class for files, not a path. Changed to be more class-like accordingly.

        * platform/network/BlobData.cpp:
        (WebCore::BlobData::appendData):
        (WebCore::BlobData::appendFile):
        (WebCore::BlobData::appendBlob): Deleted.
        (WebCore::BlobData::BlobData): Deleted.
        We never add blobs to BlobData, they are always resolved to data of file references.
        Lots of very confusing code to delete.

        * platform/network/BlobDataFileReference.h: Added.
        * platform/network/BlobDataFileReference.cpp: Added.
        (WebCore::BlobDataFileReference::size):
        (WebCore::BlobDataFileReference::expectedModificationTime):
        (WebCore::BlobDataFileReference::computeFileSystemData):
        A unique reference to a file referenced by blob, to be preserved when you slice
        or combine blobs.

        * platform/network/BlobRegistryImpl.cpp:
        (WebCore::BlobRegistryImpl::appendStorageItems):
        (WebCore::BlobRegistryImpl::registerFileBlobURL):
        (WebCore::BlobRegistryImpl::registerBlobURL):
        (WebCore::BlobRegistryImpl::blobSize):
        * platform/network/BlobResourceHandle.cpp:
        (WebCore::BlobResourceHandle::getSizeForNext):
        (WebCore::BlobResourceHandle::didGetSize):
        (WebCore::BlobResourceHandle::readDataSync):
        (WebCore::BlobResourceHandle::readFileSync):
        (WebCore::BlobResourceHandle::readDataAsync):
        (WebCore::BlobResourceHandle::readFileAsync):
        * platform/network/BlobResourceHandle.h:
        * platform/network/FormData.cpp:
        (WebCore::appendBlobResolved):
        Updated for BlobDataItem interface changes.

2014-05-06  Christophe Dumez  <ch.dumez@samsung.com>

        [HTML] Default argument to HTMLTableRowElement.insertCell() should be -1
        https://bugs.webkit.org/show_bug.cgi?id=132615

        Reviewed by Darin Adler.

        HTMLTableRowElement.insertCell()'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#the-tr-element

        The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
        https://codereview.chromium.org/263323004/

        Test: fast/dom/HTMLTableRowElement/insertCell-default-argument.html

        * html/HTMLTableRowElement.h:
        * html/HTMLTableRowElement.idl:

2014-05-06  Oliver Hunt  <oliver@apple.com>

        Fix build.

        * WebCore.exp.in:

2014-05-06  Andreas Kling  <akling@apple.com>

        Add missing line from r168384.

        * dom/ContainerNode.h:
        (WebCore::ChildNodesLazySnapshot::~ChildNodesLazySnapshot):

2014-05-06  Oliver Hunt  <oliver@apple.com>

        Can't make a booking at virginamerica.com
        https://bugs.webkit.org/show_bug.cgi?id=132626

        Reviewed by Geoffrey Garen.

        Test: fast/dom/assign-to-prototype-accessor-on-prototype-should-be-silent.html

        We can't throw an exception when a site incorrectly attempts
        to use a dom property setter directly on the prototype as
        there are sites that do this as compatibility workarounds
        for old browsers. Instead we treat use of the setter on
        the prototype object in the same way we do getters, and just
        log a warning to the console.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportDeprecatedSetterError):
        * bindings/js/JSDOMBinding.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::setJSTestInterfaceImplementsStr2):
        (WebCore::setJSTestInterfaceImplementsStr3):
        (WebCore::setJSTestInterfaceImplementsNode):
        (WebCore::setJSTestInterfaceSupplementalStr2):
        (WebCore::setJSTestInterfaceSupplementalStr3):
        (WebCore::setJSTestInterfaceSupplementalNode):
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        (WebCore::setJSTestNondeterministicNondeterministicWriteableAttr):
        (WebCore::setJSTestNondeterministicNondeterministicExceptionAttr):
        (WebCore::setJSTestNondeterministicNondeterministicGetterExceptionAttr):
        (WebCore::setJSTestNondeterministicNondeterministicSetterExceptionAttr):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
        (WebCore::setJSTestObjEnumAttr):
        (WebCore::setJSTestObjByteAttr):
        (WebCore::setJSTestObjOctetAttr):
        (WebCore::setJSTestObjShortAttr):
        (WebCore::setJSTestObjUnsignedShortAttr):
        (WebCore::setJSTestObjLongAttr):
        (WebCore::setJSTestObjLongLongAttr):
        (WebCore::setJSTestObjUnsignedLongLongAttr):
        (WebCore::setJSTestObjStringAttr):
        (WebCore::setJSTestObjTestObjAttr):
        (WebCore::setJSTestObjXMLObjAttr):
        (WebCore::setJSTestObjCreate):
        (WebCore::setJSTestObjReflectedStringAttr):
        (WebCore::setJSTestObjReflectedIntegralAttr):
        (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
        (WebCore::setJSTestObjReflectedBooleanAttr):
        (WebCore::setJSTestObjReflectedURLAttr):
        (WebCore::setJSTestObjReflectedCustomIntegralAttr):
        (WebCore::setJSTestObjReflectedCustomBooleanAttr):
        (WebCore::setJSTestObjReflectedCustomURLAttr):
        (WebCore::setJSTestObjTypedArrayAttr):
        (WebCore::setJSTestObjAttrWithGetterException):
        (WebCore::setJSTestObjAttrWithSetterException):
        (WebCore::setJSTestObjStringAttrWithGetterException):
        (WebCore::setJSTestObjStringAttrWithSetterException):
        (WebCore::setJSTestObjCustomAttr):
        (WebCore::setJSTestObjWithScriptStateAttribute):
        (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
        (WebCore::setJSTestObjWithScriptStateAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::setJSTestObjConditionalAttr1):
        (WebCore::setJSTestObjConditionalAttr2):
        (WebCore::setJSTestObjConditionalAttr3):
        (WebCore::setJSTestObjConditionalAttr4Constructor):
        (WebCore::setJSTestObjConditionalAttr5Constructor):
        (WebCore::setJSTestObjConditionalAttr6Constructor):
        (WebCore::setJSTestObjAnyAttribute):
        (WebCore::setJSTestObjMutablePoint):
        (WebCore::setJSTestObjImmutablePoint):
        (WebCore::setJSTestObjStrawberry):
        (WebCore::setJSTestObjStrictFloat):
        (WebCore::setJSTestObjId):
        (WebCore::setJSTestObjReplaceableAttribute):
        (WebCore::setJSTestObjNullableLongSettableAttribute):
        (WebCore::setJSTestObjNullableStringValue):
        (WebCore::setJSTestObjAttributeWithReservedEnumType):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::setJSTestSerializedScriptValueInterfaceValue):
        (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
        (WebCore::setJSTestTypedefsAttrWithGetterException):
        (WebCore::setJSTestTypedefsAttrWithSetterException):
        (WebCore::setJSTestTypedefsStringAttrWithGetterException):
        (WebCore::setJSTestTypedefsStringAttrWithSetterException):

2014-05-06  Andreas Kling  <akling@apple.com>

        ChildNodesLazySnapshot::m_childNodes needs two heap allocations.
        <https://webkit.org/b/132616>

        This seems a bit silly, since ChildNodesLazySnapshot is always
        allocated on the stack.

        Change it to be a bool + a Vector instead of using the nullity
        as a presence indicator. This way we also don't end up with an
        out-of-line ~OwnPtr for the Vector.

        Reviewed by Geoff Garen.

        * dom/ContainerNode.h:
        (WebCore::ChildNodesLazySnapshot::ChildNodesLazySnapshot):
        (WebCore::ChildNodesLazySnapshot::nextNode):
        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
        (WebCore::ChildNodesLazySnapshot::hasSnapshot):

2014-05-06  Alexey Proskuryakov  <ap@apple.com>

        Eliminate BlobStorageData
        https://bugs.webkit.org/show_bug.cgi?id=132617

        Reviewed by Anders Carlsson.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/network/BlobData.h:
        (WebCore::BlobData::create):
        (WebCore::BlobData::BlobData):
        * platform/network/BlobRegistryImpl.cpp:
        (WebCore::loadResourceSynchronously):
        (WebCore::BlobRegistryImpl::appendStorageItems):
        (WebCore::BlobRegistryImpl::registerFileBlobURL):
        (WebCore::BlobRegistryImpl::registerBlobURL):
        (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
        (WebCore::BlobRegistryImpl::getBlobDataFromURL):
        (WebCore::BlobRegistryImpl::blobSize):
        * platform/network/BlobRegistryImpl.h:
        * platform/network/BlobResourceHandle.cpp:
        (WebCore::BlobResourceHandle::createAsync):
        (WebCore::BlobResourceHandle::loadResourceSynchronously):
        (WebCore::BlobResourceHandle::BlobResourceHandle):
        (WebCore::BlobResourceHandle::doStart):
        (WebCore::BlobResourceHandle::getSizeForNext):
        (WebCore::BlobResourceHandle::didGetSize):
        (WebCore::BlobResourceHandle::seek):
        (WebCore::BlobResourceHandle::readSync):
        (WebCore::BlobResourceHandle::readDataSync):
        (WebCore::BlobResourceHandle::readFileSync):
        (WebCore::BlobResourceHandle::readAsync):
        (WebCore::BlobResourceHandle::readDataAsync):
        (WebCore::BlobResourceHandle::readFileAsync):
        (WebCore::BlobResourceHandle::notifyResponseOnSuccess):
        * platform/network/BlobResourceHandle.h:
        * platform/network/BlobStorageData.h: Removed.
        * platform/network/FormData.cpp:
        (WebCore::appendBlobResolved):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::addEncodedBlobToSoupMessageBody):

2014-05-06  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build.

        WebCore::Editor::replaceNodeFromPasteboard(WebCore::Node*, WTF::String const&) is Mac-only.
        Also sort the export file.

        * WebCore.exp.in:

2014-05-06  David Hyatt  <hyatt@apple.com>

        Begin Removal of Old Multi-Column Code.
        https://bugs.webkit.org/show_bug.cgi?id=132480

        Reviewed by Andreas Kling.

        * dom/Document.cpp:
        (WebCore::Document::regionBasedColumnsEnabled): Deleted.
        * dom/Document.h:
        * page/FrameView.cpp:
        (WebCore::updateLayerPositionFlags):
        * page/Settings.in:
        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState):
        (WebCore::LayoutState::clearPaginationInformation):
        (WebCore::LayoutState::addForcedColumnBreak): Deleted.
        * rendering/LayoutState.h:
        (WebCore::LayoutState::LayoutState):
        (WebCore::LayoutState::isPaginatingColumns): Deleted.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::~RenderBlock):
        (WebCore::RenderBlock::addChildToContinuation):
        (WebCore::RenderBlock::addChild):
        (WebCore::RenderBlock::addChildIgnoringContinuation):
        (WebCore::RenderBlock::removeLeftoverAnonymousBlock):
        (WebCore::canMergeContiguousAnonymousBlocks):
        (WebCore::RenderBlock::removeChild):
        (WebCore::RenderBlock::recomputeLogicalWidth):
        (WebCore::RenderBlock::addOverflowFromChildren):
        (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
        (WebCore::RenderBlock::simplifiedLayout):
        (WebCore::RenderBlock::layoutPositionedObjects):
        (WebCore::RenderBlock::paintObject):
        (WebCore::RenderBlock::selectionGaps):
        (WebCore::RenderBlock::nodeAtPoint):
        (WebCore::RenderBlock::offsetForContents):
        (WebCore::RenderBlock::computeIntrinsicLogicalWidths):
        (WebCore::RenderBlock::createAnonymousBoxWithSameTypeAs):
        (WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation):
        (WebCore::RenderBlock::renderName):
        (WebCore::RenderBlock::addChildToAnonymousColumnBlocks): Deleted.
        (WebCore::RenderBlock::containingColumnsBlock): Deleted.
        (WebCore::RenderBlock::splitFlow): Deleted.
        (WebCore::RenderBlock::makeChildrenAnonymousColumnBlocks): Deleted.
        (WebCore::RenderBlock::columnsBlockForSpanningElement): Deleted.
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks): Deleted.
        (WebCore::RenderBlock::updateLogicalWidthAndColumnWidth): Deleted.
        (WebCore::RenderBlock::isTopLayoutOverflowAllowed): Deleted.
        (WebCore::RenderBlock::isLeftLayoutOverflowAllowed): Deleted.
        (WebCore::RenderBlock::paintColumnRules): Deleted.
        (WebCore::RenderBlock::initialBlockOffsetForPainting): Deleted.
        (WebCore::RenderBlock::blockDeltaForPaintingNextColumn): Deleted.
        (WebCore::RenderBlock::paintColumnContents): Deleted.
        (WebCore::ColumnRectIterator::ColumnRectIterator): Deleted.
        (WebCore::ColumnRectIterator::advance): Deleted.
        (WebCore::ColumnRectIterator::columnRect): Deleted.
        (WebCore::ColumnRectIterator::hasMore): Deleted.
        (WebCore::ColumnRectIterator::adjust): Deleted.
        (WebCore::ColumnRectIterator::update): Deleted.
        (WebCore::RenderBlock::hitTestColumns): Deleted.
        (WebCore::RenderBlock::adjustForColumnRect): Deleted.
        (WebCore::RenderBlock::availableLogicalWidth): Deleted.
        (WebCore::RenderBlock::columnGap): Deleted.
        (WebCore::RenderBlock::computeColumnCountAndWidth): Deleted.
        (WebCore::RenderBlock::requiresColumns): Deleted.
        (WebCore::RenderBlock::setComputedColumnCountAndWidth): Deleted.
        (WebCore::RenderBlock::updateColumnProgressionFromStyle): Deleted.
        (WebCore::RenderBlock::computedColumnWidth): Deleted.
        (WebCore::RenderBlock::computedColumnCount): Deleted.
        (WebCore::RenderBlock::columnInfo): Deleted.
        (WebCore::RenderBlock::columnCount): Deleted.
        (WebCore::RenderBlock::columnRectAt): Deleted.
        (WebCore::RenderBlock::adjustPointToColumnContents): Deleted.
        (WebCore::RenderBlock::adjustRectForColumns): Deleted.
        (WebCore::RenderBlock::flipForWritingModeIncludingColumns): Deleted.
        (WebCore::RenderBlock::adjustStartEdgeForWritingModeIncludingColumns): Deleted.
        (WebCore::RenderBlock::adjustForColumns): Deleted.
        (WebCore::RenderBlock::adjustIntrinsicLogicalWidthsForColumns): Deleted.
        (WebCore::RenderBlock::paginationUnit): Deleted.
        (WebCore::RenderBlock::createAnonymousColumnsWithParentRenderer): Deleted.
        (WebCore::RenderBlock::createAnonymousColumnSpanWithParentRenderer): Deleted.
        (WebCore::RenderBlock::computeLineGridPaginationOrigin): Deleted.
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::pixelSnappedLogicalRightOffsetForLine):
        (WebCore::RenderBlock::createAnonymousBlock):
        (WebCore::RenderBlock::paintColumnRules):
        (WebCore::RenderBlock::createAnonymousColumnsBlock): Deleted.
        (WebCore::RenderBlock::createAnonymousColumnSpanBlock): Deleted.
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::adjustIntrinsicLogicalWidthsForColumns):
        (WebCore::RenderBlockFlow::computeIntrinsicLogicalWidths):
        (WebCore::RenderBlockFlow::recomputeLogicalWidthAndColumnWidth):
        (WebCore::RenderBlockFlow::columnGap):
        (WebCore::RenderBlockFlow::computeColumnCountAndWidth):
        (WebCore::RenderBlockFlow::layoutBlock):
        (WebCore::inNormalFlow):
        (WebCore::RenderBlockFlow::applyBeforeBreak):
        (WebCore::RenderBlockFlow::applyAfterBreak):
        (WebCore::RenderBlockFlow::updateMinimumPageHeight):
        (WebCore::RenderBlockFlow::computeOverflow):
        (WebCore::RenderBlockFlow::addOverhangingFloats):
        (WebCore::RenderBlockFlow::hasOverhangingFloat):
        (WebCore::RenderBlockFlow::relayoutForPagination):
        (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
        (WebCore::RenderBlockFlow::requiresColumns):
        (WebCore::RenderBlockFlow::setComputedColumnCountAndWidth):
        (WebCore::RenderBlockFlow::updateColumnProgressionFromStyle):
        (WebCore::RenderBlockFlow::computedColumnWidth):
        (WebCore::RenderBlockFlow::computedColumnCount):
        * rendering/RenderBlockFlow.h:
        (WebCore::RenderBlockFlow::hasOverhangingFloats):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleDidChange):
        (WebCore::RenderBox::offsetFromContainer):
        (WebCore::RenderBox::computeRectForRepaint):
        (WebCore::RenderBox::layoutOverflowRectForPropagation):
        * rendering/RenderBox.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
        * rendering/RenderBoxModelObject.h:
        (WebCore::RenderBoxModelObject::canHaveBoxInfoInRegion):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        * rendering/RenderFlowThread.h:
        * rendering/RenderGeometryMap.cpp:
        (WebCore::canMapBetweenRenderers):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::clippedOverflowRectForRepaint):
        (WebCore::RenderInline::computeRectForRepaint):
        (WebCore::RenderInline::offsetFromContainer):
        (WebCore::RenderInline::mapLocalToContainer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::updatePagination):
        (WebCore::accumulateOffsetTowardsAncestor):
        (WebCore::RenderLayer::paintList):
        (WebCore::RenderLayer::hitTestList):
        (WebCore::checkContainingBlockChainForPagination): Deleted.
        (WebCore::RenderLayer::useRegionBasedColumns): Deleted.
        (WebCore::RenderLayer::paintPaginatedChildLayer): Deleted.
        (WebCore::RenderLayer::paintChildLayerIntoColumns): Deleted.
        (WebCore::RenderLayer::hitTestPaginatedChildLayer): Deleted.
        (WebCore::RenderLayer::hitTestChildLayerColumns): Deleted.
        * rendering/RenderLayer.h:
        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::shouldCheckColumnBreaks):
        * rendering/RenderMultiColumnFlowThread.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::computeRectForRepaint):
        (WebCore::RenderObject::mapLocalToContainer):
        (WebCore::RenderObject::pushMappingToContainer):
        (WebCore::RenderObject::offsetFromContainer):
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isAnonymousBlock):
        (WebCore::RenderObject::RenderObjectBitfields::RenderObjectBitfields):
        (WebCore::RenderObject::hasColumns): Deleted.
        (WebCore::RenderObject::setHasColumns): Deleted.
        (WebCore::RenderObject::isAnonymousColumnsBlock): Deleted.
        (WebCore::RenderObject::isAnonymousColumnSpanBlock): Deleted.
        (WebCore::RenderObject::adjustForColumns): Deleted.
        (WebCore::RenderObject::offsetForColumns): Deleted.
        * rendering/RenderText.cpp:
        (WebCore::RenderText::selectionRectForRepaint):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::availableLogicalHeight):
        (WebCore::RenderView::pageOrViewLogicalHeight):
        (WebCore::RenderView::unextendedBackgroundRect):
        (WebCore::RenderView::backgroundRect):
        (WebCore::RenderView::shouldDisableLayoutStateForSubtree):
        (WebCore::RenderView::pageNumberForBlockProgressionOffset):
        (WebCore::RenderView::pageCount):
        (WebCore::RenderView::paginationUnit): Deleted.
        * rendering/RenderView.h:
        (WebCore::LayoutStateMaintainer::LayoutStateMaintainer):
        (WebCore::LayoutStateMaintainer::push):
        * rendering/SimpleLineLayout.cpp:
        (WebCore::SimpleLineLayout::canUseFor):
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::layout):
        * style/StyleResolveForDocument.cpp:
        (WebCore::Style::resolveForDocument):

2014-05-06  Brady Eidson  <beidson@apple.com>

        Don't select an image that is about to have its menu shown.
        <rdar://problem/16807845> and https://bugs.webkit.org/show_bug.cgi?id=132579

        Reviewed by Tim Horton.

        * WebCore.exp.in:

        * editing/Editor.h:
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::replaceNodeFromPasteboard): New method that first selects
          the Node and then immediately pastes over it. Since it’s synchronous the 
          selection never has a chance to paint.

        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
        (WebCore::ImageControlsButtonElementMac::defaultEventHandler): Don’t select the image.

2014-05-06  Eric Carlson  <eric.carlson@apple.com>

        [Mac] make metadata cue attributes consistent
        https://bugs.webkit.org/show_bug.cgi?id=132610

        Reviewed by Jer Noble.

        No new tests, updated http/tests/media/track-in-band-hls-metadata.html.

        * platform/mac/SerializedPlatformRepresentationMac.mm:
        (WebCore::jsValueWithAVMetadataItemInContext): Don't include keys @dataTypeNamespace
            or @pictureType, @dataType -> @type.

2014-05-06  Brady Eidson  <beidson@apple.com>

        "Flash of content without image" when pasting a raw image from the pasteboard
        <rdar://problem/16826199> and https://bugs.webkit.org/show_bug.cgi?id=132612

        Reviewed by Tim Horton.

        Let an ArchiveResource be flagged as "should load immediately":
        * loader/archive/ArchiveResource.cpp:
        (WebCore::ArchiveResource::ArchiveResource):
        * loader/archive/ArchiveResource.h:
        (WebCore::ArchiveResource::setShouldLoadImmediately):
        (WebCore::ArchiveResource::shouldLoadImmediately):

        Set that flag on the ArchiveResource for the image.
        Note we quite explicitly do this only in the "read a single image" from the pasteboard
        case, because we don't want to do this synchronous step for multiple images at once
        such as when pasting a WebArchive:
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::WebContentReader::readImage):

        When creating a new CachedResource, if there is an ArchiveResource that is set to
        load immediately, populate the CachedResource immediately instead of scheduling a load:
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):

2014-05-06  Alex Christensen  <achristensen@webkit.org>

        Unreviewed build fix for debug after r168367.

        * platform/NotImplemented.cpp:
        Added include NotImplemented.h.

2014-05-06  Alex Christensen  <achristensen@webkit.org>

        Removed unnecessary notImplemented.h includes.
        https://bugs.webkit.org/show_bug.cgi?id=132587

        Reviewed by Anders Carlsson.

        * Modules/webdatabase/Database.cpp:
        * accessibility/AccessibilityObject.cpp:
        * bindings/js/Dictionary.h:
        * bindings/js/SerializedScriptValue.cpp:
        * html/HTMLMediaSession.cpp:
        * html/ImageDocument.cpp:
        * html/parser/HTMLFormattingElementList.cpp:
        * loader/appcache/ApplicationCacheStorage.cpp:
        * page/mac/EventHandlerMac.mm:
        * platform/NotImplemented.cpp:
        * platform/audio/ios/MediaSessionManagerIOS.mm:
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
        * platform/graphics/mac/GraphicsContext3DMac.mm:
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        * platform/ios/PlatformScreenIOS.mm:
        * platform/mac/PlatformScreenMac.mm:
        * platform/mac/WidgetMac.mm:
        * platform/mediastream/MediaStreamTrackPrivate.cpp:
        * platform/mediastream/mac/AVCaptureDeviceManager.mm:
        * platform/mediastream/mac/AVMediaCaptureSource.mm:
        * rendering/RenderGrid.cpp:
        * workers/SharedWorkerGlobalScope.cpp:
        * workers/WorkerGlobalScope.cpp:
        * workers/WorkerMessagingProxy.cpp:
        Removed notImplemented from list of includes.

2014-05-06  Enrica Casucci  <enrica@apple.com>

        Unreviewed build fix after http://trac.webkit.org/changeset/168364

        * rendering/RenderLineBreak.cpp:

2014-05-06  Christophe Dumez  <ch.dumez@samsung.com>

        [HTML] Default argument to HTMLTableSectionElement.insertRow() should be -1
        https://bugs.webkit.org/show_bug.cgi?id=132570

        Reviewed by Darin Adler.

        HTMLTableSectionElement.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#the-tbody-element

        The new behavior matches the one of Firefox 29 and IE11, and soon Blink:
        https://code.google.com/p/chromium/issues/detail?id=369803

        Test: fast/dom/HTMLTableSectionElement/insertRow-default-argument.html

        * html/HTMLTableSectionElement.h:
        * html/HTMLTableSectionElement.idl:

2014-05-05  Enrica Casucci  <enrica@apple.com>

        REGRESSION(r155957): Selection rects are incorrect when the selection contains BR elements.
        https://bugs.webkit.org/show_bug.cgi?id=132596
        <rdar://problem/16692206>

        Reviewed by Antti Koivisto.

        This patch adds an implementation of collectSelectionRects to RenderLineBreak.
        It uses the same logic used by RenderText to compute and annotate the returned rect
        which is computed, like the caret rect, using information from the rootline box.

        * rendering/RenderLineBreak.cpp:
        (WebCore::RenderLineBreak::collectSelectionRects):
        * rendering/RenderLineBreak.h:

2014-05-06  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Optimize the number of regions invalidations
        https://bugs.webkit.org/show_bug.cgi?id=132611

        Reviewed by David Hyatt.

        It is possible to invalidate the region chain of a flow thread
        during the layout of the region when its height is not final.

        This patch places the check after the height of the region
        is determined, reducing the number of invalidations.

        Tests: Less invalidations and repaints in the repaint tests for
        the flow threads.

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::updateLogicalHeight):
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::layoutBlock):
        (WebCore::RenderNamedFlowFragment::invalidateRegionIfNeeded):
        * rendering/RenderNamedFlowFragment.h:

2014-05-03  Sam Weinig  <sam@webkit.org>

        [Extended Background] Respect repeat-x/repeat-y when creating margin tiles
        https://bugs.webkit.org/show_bug.cgi?id=132534

        Reviewed by Beth Dakin.

        If the background image that is causing margin tiles only repeats in dimension only create
        the tiles in that dimension.

        * page/FrameView.cpp:
        (WebCore::FrameView::updateExtendBackgroundIfNecessary):
        (WebCore::FrameView::calculateExtendedBackgroundMode):
        (WebCore::FrameView::updateTilesForExtendedBackgroundMode):
        (WebCore::FrameView::setBackgroundExtendsBeyondPage): Deleted.
        (WebCore::FrameView::needsExtendedBackgroundRectForPainting): Deleted.
        (WebCore::FrameView::setHasExtendedBackgroundRectForPainting): Deleted.
        * page/FrameView.h:
        * page/Settings.cpp:
        (WebCore::Settings::setBackgroundShouldExtendBeyondPage):
        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/mac/TileController.h:
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::hasHorizontalMargins):
        (WebCore::TileController::hasVerticalMargins):
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::styleWillChange):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::setTiledBackingHasMargins):
        * rendering/RenderLayerBacking.h:

2014-05-06  Chris Fleizach  <cfleizach@apple.com>

        AX: VoiceOver does not announce text changes for content editable regions in Safari
        https://bugs.webkit.org/show_bug.cgi?id=132577

        Reviewed by Mario Sanchez Prada.

        When text or children are changed inside of a contenteditable region, we need to 
        convert those actions into AXValueChange notifications.

        Test: accessibility/content-editable-set-inner-text-generates-axvalue-notification.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::childrenChanged):
        (WebCore::AccessibilityNodeObject::hasContentEditableAttributeSet): Deleted.
        * accessibility/AccessibilityNodeObject.h:
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::hasContentEditableAttributeSet):
        * accessibility/AccessibilityObject.h:
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::textChanged):

2014-05-06  Dirk Schulze  <krit@webkit.org>

        [SVG2] Share "on"- event attributes with HTMLElement
        https://bugs.webkit.org/show_bug.cgi?id=132604

        Reviewed by Mihnea Ovidenie.

        Share "on" event attribute parsing between SVGElement and HTMLElement.

        Tests: fast/dom/script-tests/event-attribute-availability.js:

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::populateEventNameForAttributeLocalNameMap):
        (WebCore::populateEventNameForAttributeLocalNameMap): Deleted.
        * html/HTMLElement.h: Make populateEventNameForAttributeLocalNameMap
            public for use in SVGElement.
        * svg/SVGElement.cpp: Use HTMLElement code to parse "on" event
            attributes.
        (WebCore::SVGElement::parseAttribute):

2014-05-05  Zan Dobersek  <zdobersek@igalia.com>

        [Soup] Use std::unique_ptr<char[]> for the read buffer in SocketStreamHandle
        https://bugs.webkit.org/show_bug.cgi?id=132559

        Reviewed by Carlos Garcia Campos.

        Manage the read buffer array through a std::unique_ptr<char[]> object.
        This avoids handling with the raw pointer and also ensures that the memory
        allocated with the new[] operator is deleted with the delete[] operator,
        a problem exposed by the AddressSanitizer in WebSocket tests.

        * platform/network/soup/SocketStreamHandle.h:
        * platform/network/soup/SocketStreamHandleSoup.cpp:
        (WebCore::SocketStreamHandle::SocketStreamHandle):
        (WebCore::SocketStreamHandle::connected):
        (WebCore::SocketStreamHandle::readBytes):
        (WebCore::SocketStreamHandle::platformClose):

2014-05-05  Dirk Schulze  <krit@webkit.org>

        Adapt inline SVG sizing behavior to Firefox and Blink
        https://bugs.webkit.org/show_bug.cgi?id=132569

        Reviewed by Dean Jackson.

        This patch is ported from Blink CR 308992. Thanks to David Vest for helping
        with back porting his Blink patch. From the commit message:

        "The basis of this change is to map explicit width and height
        attributes to CSS properties, essentially promoting them to
        presentation attributes. Note that implicit "100%" width and height
        are not mapped.
        
        This enables us to remove the concept of "percentage intrinsic size"
        and rely on normal CSS rules to resolve percentage values.
        
        The change has been approved by the SVG WG and the spec is being
        updated. Minutes here:
        
        http://www.w3.org/2014/04/07-svg-minutes.html#item03"

        The new model was indeed approved by the SVG WG and is basically following
        the CSS 2.1 model for replaced elements.

        With this patch WebKit, Firefox and Blink have the same behavior for inline SVG.
        This is the first successful approach to unify the sizing behavior of SVG
        across UAs.

        Tests: svg/as-object/sizing/svg-in-object-placeholder-height-auto.html
               svg/as-object/sizing/svg-in-object-placeholder-height-fixed.html
               svg/as-object/sizing/svg-in-object-placeholder-height-percentage.html
               svg/in-html/sizing/svg-inline.html

        * css/svg.css: Root SVG elements still need to be sized with height: 100% and
            width: 100%. This is necessary since width and height are presentation
            attributes now.
        (svg:root):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::computeIntrinsicRatioInformation): Remove all special
            behavior for intrinsic and percentage based sizes in SVG. This simplifies and
            unifies the code a lot. Most of the logic that is used is in RenderBox and
            RenderReplaced now. RenderSVGRoot was cleaned up a lot and is much lighter. 
            And so it SVGSVGElement.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::hasAutoHeightOrContainingBlockWithAutoHeight):
        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::computeIntrinsicRatioInformation):
        * rendering/RenderImage.h:
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::computeAspectRatioInformationForRenderBox):
        (WebCore::RenderReplaced::computeIntrinsicRatioInformation):
        (WebCore::RenderReplaced::computeReplacedLogicalWidth):
        (WebCore::RenderReplaced::computeReplacedLogicalHeight):
        (WebCore::RenderReplaced::computePreferredLogicalWidths):
        * rendering/RenderReplaced.h:
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):
        (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
        (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
        (WebCore::RenderSVGRoot::hasRelativeDimensions):
        (WebCore::RenderSVGRoot::hasRelativeIntrinsicLogicalWidth): Deleted.
        (WebCore::RenderSVGRoot::hasRelativeLogicalHeight): Deleted.
        * rendering/svg/RenderSVGRoot.h:
        * svg/SVGElement.h:
        (WebCore::SVGElement::invalidateSVGPresentationAttributeStyle):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::isPresentationAttribute):
        (WebCore::SVGSVGElement::collectStyleForPresentationAttribute):
        (WebCore::SVGSVGElement::svgAttributeChanged):
        (WebCore::SVGSVGElement::currentViewportSize):
        (WebCore::SVGSVGElement::hasIntrinsicWidth):
        (WebCore::SVGSVGElement::hasIntrinsicHeight):
        (WebCore::SVGSVGElement::intrinsicWidth):
        (WebCore::SVGSVGElement::intrinsicHeight):
        (WebCore::SVGSVGElement::widthAttributeEstablishesViewport): Deleted.
        (WebCore::SVGSVGElement::heightAttributeEstablishesViewport): Deleted.
        * svg/SVGSVGElement.h:
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::containerSize):
        * xml/XMLErrors.cpp: If an error occurs in a stand alone SVG file, we create
            an XHTML document with the error message and append the SVG file.
            This SVG file now follows the CSS sizing behavior as inline SVG.
            Therefore, we need to set width and height to 100% explicitly.
        (WebCore::XMLErrors::insertErrorMessageBlock):

2014-05-05  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] REGRESSION(167145): JavaScript media controls are broken
        https://bugs.webkit.org/show_bug.cgi?id=131573

        Reviewed by Brent Fulgham.

        * PlatformEfl.cmake: Add the localized strings file to the list of user agent scripts.
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::mediaControlsScript): Include the localized strings file in the script body.

2014-05-05  Jeremy Jones  <jeremyj@apple.com>

        Implement scan backward and forward in video fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=132517

        Reviewed by Simon Fraser.

        Implement scanning forward and backward. This implements methods in 
        WebAVPlayerController and forwards them through WebVideoFullscreenModelMediaElement
        and on to HTMLMediaElement.

        * WebCore.exp.in: necessary exports.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVPlayerController seekToTime:]):
        Use fastSeek in this case.
        (-[WebAVPlayerController canScanForward]): If you can play, you can scan.
        (+[WebAVPlayerController keyPathsForValuesAffectingCanScanForward]): ditto
        (-[WebAVPlayerController beginScanningForward:]): ditto
        (-[WebAVPlayerController endScanningForward:]): ditto
        (-[WebAVPlayerController canScanBackward]): If you can play, you can scan.
        (+[WebAVPlayerController keyPathsForValuesAffectingCanScanBackward]): ditto
        (-[WebAVPlayerController beginScanningBackward:]): ditto
        (-[WebAVPlayerController endScanningBackward:]): ditto
        (-[WebAVPlayerController canSeekToBeginning]):
        This looks at seekableRanges to determine if any seeking is possible.
        (+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToBeginning]):
        depends on seekableRanges.
        (-[WebAVPlayerController seekToBeginning:]): seek to -ininity
        (-[WebAVPlayerController canSeekToEnd]):
        This looks at seekableRanges to determine if any seeking is possible.
        (+[WebAVPlayerController keyPathsForValuesAffectingCanSeekToEnd]):
        depends on seekableRanges.
        (-[WebAVPlayerController seekToEnd:]): seek to INFINITY.
        * platform/ios/WebVideoFullscreenModel.h:
        Add 4 new functions.
        * platform/ios/WebVideoFullscreenModelMediaElement.h:
        ditto
        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::fastSeek): forwards to HTMLMediaEelement
        (WebVideoFullscreenModelMediaElement::beginScanningForward): forwards to HTMLMediaEelement
        (WebVideoFullscreenModelMediaElement::beginScanningBackward): forwards to HTMLMediaEelement
        (WebVideoFullscreenModelMediaElement::endScanning): forwards to HTMLMediaEelement

2014-05-05  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Prefetch DNS hostnames on tap highlight
        https://bugs.webkit.org/show_bug.cgi?id=132509

        Reviewed by Alexey Proskuryakov.

        * WebCore.exp.in:
        * dom/Element.cpp:
        * dom/Element.h:
        (WebCore::Element::absoluteLinkURL()):

2014-05-05  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Flickery scrolling inside overflow-scrolling: touch
        https://bugs.webkit.org/show_bug.cgi?id=132591
        <rdar://problem/16760466>

        Reviewed by Tim Horton.

        Avoid triggering layer tree commits that touch the layer's boundsOrigin
        while the user is scrolling in the UI process.
        
        Fix the WKOverflowScrollViewDelegate to pass along an "inUserInteration"
        flag to the ScrollingTree to say that we're in the middle of a user interaction
        (and also to send a final non-interactive update). That gets passed along
        to the web process, and turned into "SyncScrollingLayerPosition" update.
        AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll() consults
        this, and uses it to set a flag on the ScrollableArea to say that the scroll
        is a user scroll.
        
        RenderLayerBacking then makes use of this (in existing code, shared with WK1)
        to avoid triggering layer bounds setting. Instead, it now just calls syncBoundsOrigin(),
        which updates the GraphicsLayer without touching platform layers. This is necessary
        so that GraphicsLayer geometry is up-to-date (used for tiled layer visibility
        computations).
        
        Finally, a hack in GraphicsLayerCA::computeVisibleRect() is conditionalized
        for WebKit1 by checking the type of platform layer.

        * WebCore.exp.in:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
        * page/scrolling/ScrollingTree.h:
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::syncBoundsOrigin):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::computeVisibleRect):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2014-05-05  Alexey Proskuryakov  <ap@apple.com>

        Stop using BlobData on client side
        https://bugs.webkit.org/show_bug.cgi?id=132582

        Reviewed by Sam Weinig.

        Blob registration now uses either a single file path, or a vector of much simpler
        BlobPart objects, not an array with arbitrarily sliced blobs or files, which can't happen.

        * Modules/websockets/WebSocket.cpp:(WebCore::WebSocket::didReceiveBinaryData):
        Use a new simpler Blob constructor.

        * WebCore.xcodeproj/project.pbxproj: Added BlobPart, removed BlobRegistrationData.

        * bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):
        Use Vector<BlobPart> instead of BlobData (1 line of code instead of 5).

        * dom/DataTransfer.cpp: (WebCore::DataTransfer::hasFileOfType): Updated for
        File::contentTypeFromFilePathOrName rename.

        * fileapi/Blob.cpp: (WebCore::Blob::Blob):
        * fileapi/Blob.h:
        (WebCore::Blob::create):
        (WebCore::Blob::deserialize):
        * fileapi/File.cpp:
        (WebCore::File::File):
        (WebCore::File::contentTypeFromFilePathOrName):
        (WebCore::createBlobDataForFileWithType): Deleted.
        (WebCore::createBlobDataForFile): Deleted.
        (WebCore::createBlobDataForFileWithName): Deleted.
        (WebCore::File::contentTypeFromFilePath): Deleted.
        * fileapi/File.h: (WebCore::File::deserialize): Deleted.
        Added and updated constructors to not use BlobData. Changed special case constructors
        to use name tags instead of non-enforced comments.

        * fileapi/ThreadableBlobRegistry.h:
        * fileapi/ThreadableBlobRegistry.cpp:
        (WebCore::BlobRegistryContext::BlobRegistryContext): Updated with new data members
        that were split out of BlobData.
        (WebCore::ThreadableBlobRegistry::registerFileBlobURL): Added.
        (WebCore::ThreadableBlobRegistry::registerBlobURL): Updated to pass Content-Type
        explicitly, as it's no longer hidden in BlobData.

        * fileapi/WebKitBlobBuilder.h:
        * fileapi/WebKitBlobBuilder.cpp:
        (WebCore::BlobBuilder::append):
        (WebCore::BlobBuilder::finalize):
        (WebCore::BlobBuilder::appendBytesData): Deleted.
        Updated to use BlobPart. There is no longer any need to special case Files,
        the registry takes care of that.

        * platform/network/BlobData.h:
        * platform/network/BlobData.cpp:
        (WebCore::BlobDataItem::detachFromCurrentThread): Deleted.
        (WebCore::BlobData::detachFromCurrentThread): Deleted.
        BlobData will only be used on main thread by the registry.

        * platform/network/BlobPart.h: Added. A new class to encapsulate a list of blobs
        that are combined into a new blob, as exposed to JS via Blob constructor.

        * platform/network/BlobRegistry.h:
        * platform/network/BlobRegistryImpl.cpp:
        (WebCore::BlobRegistryImpl::registerFileBlobURL):
        (WebCore::BlobRegistryImpl::registerBlobURL):
        * platform/network/BlobRegistryImpl.h:
        Updated for the new registration methods. We no longer have arbitrary BlobDatas
        coming in.

        * platform/network/FormData.cpp: Don't include BlobData for now (but really,
        BlobStorageData is the same thing, and they will be merged soon).
        Unfortunately, FormData is used by both client and registry side, and there is
        no clear delimitation at the time.
 
        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): Use the new simpler
        way to create a Blob.

2014-05-05  Benjamin Poulain  <benjamin@webkit.org>

        Clean up Image Document and tweak the layout and viewport
        https://bugs.webkit.org/show_bug.cgi?id=132552

        Reviewed by Sam Weinig.

        The #ifdef in every function was making quite a mess. A lot of that code does
        not make sense on iOS.

        This patch make a clean split between mouse related stuff and iOS.

        Also:
        -Change the viewport to be only width based, and avoid scaling in portrait.
        -Center the image horizontally in the view.

        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::ImageDocument):
        (WebCore::ImageDocument::createDocumentStructure):
        (WebCore::ImageDocument::imageUpdated):
        (WebCore::ImageDocument::scale):
        (WebCore::ImageDocument::resizeImageToFit):
        (WebCore::ImageDocument::imageFitsInWindow):
        (WebCore::ImageDocument::windowSizeChanged):
        (WebCore::ImageDocument::imageClicked):
        * html/ImageDocument.h:

2014-05-05  Beth Dakin  <bdakin@apple.com>

        Need a delegate that informs the UI process when the page's pin state changes
        https://bugs.webkit.org/show_bug.cgi?id=132583
        -and corresponding-
        <rdar://problem/16806231>

        Reviewed by Anders Carlsson.

        We should default all of these pin-state value to true.
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::ScrollingTree):

2014-05-05  Christophe Dumez  <ch.dumez@samsung.com>

        Named element cache can become invalid during HTMLCollection::updateNamedElementCache()
        https://bugs.webkit.org/show_bug.cgi?id=132575

        Reviewed by Ryosuke Niwa.

        Make sure the named element cache object stays valid in
        HTMLCollection::updateNamedElementCache() while it is populating it.

        The method was previously creating and setting the cache first, and then start
        traversing the DOM tree to populate it. As a consequence, hasNamedElementCache()
        would start returning true before the cache is actually populated.
        The issue is that finding matches in the DOM tree can cause
        HTMLCollection::invalidateCache() to be called under certain circumstances and
        thus the named element cache object can become invalid while
        updateNamedElementCache() is populating it.

        To avoid the issue, this patch updates updateNamedElementCache() so that the
        named element cache map is set *after* traversing the DOM tree. This way,
        hasNamedElementCache() returns false while the cache is being populated and
        there is no chance of it being invalidated too early.

        Test: fast/dom/htmlcollection-selectedOptions-namedItem-crash.html

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::updateNamedElementCache):
        * html/HTMLCollection.h:
        (WebCore::HTMLCollection::setNameItemCache):
        (WebCore::HTMLCollection::createNameItemCache): Deleted.
        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::updateNamedElementCache):

2014-05-05  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Special case ViewGestureGeometryCollector::collectGeometryForSmartMagnificationGesture() for image documents
        https://bugs.webkit.org/show_bug.cgi?id=132553

        Reviewed by Tim Horton.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::imageElement):
        * html/ImageDocument.h:

2014-05-05  Ion Rosca  <rosca@adobe.com>

        [CSS Blending] Webkit-blend-mode fails for accelerated parent with overflow:hidden
        https://bugs.webkit.org/show_bug.cgi?id=126160

        When the isolating layer has overflow:hidden, it will create a descendant clipping layer
        (m_childContainmentLayer), which will restrict the bleding layer to reading the backdrop
        from the isolating layer.
        The solution in this patch is to forbid the isolating layer to create a descendant clipping
        layer and make all the children to get their own ancestor clipping layers instead.

        Reviewed by Dean Jackson.

        Tests: css3/compositing/blend-mode-accelerated-parent-overflow-hidden.html
               css3/compositing/blend-mode-clip-accelerated-blending-canvas.html
               css3/compositing/blend-mode-clip-accelerated-blending-child.html
               css3/compositing/blend-mode-clip-accelerated-blending-double.html
               css3/compositing/blend-mode-clip-accelerated-blending-with-siblings.html
               css3/compositing/blend-mode-clip-accelerated-transformed-blending.html
               css3/compositing/blend-mode-clip-rect-accelerated-blending.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        when the compositing ancestor isolates blending we take it into account for computing
        the clipping rect for this layer, because it was not allowed to create the descendant
        clipping layer. 
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::clippedByAncestor):
        when the compositing ancestor isolates blending we decide if a layer is clipped by ancestor
        by computing the clipping rect taking into account all the ancestors up to and including
        the compositing ancestor.
        (WebCore::RenderLayerCompositor::clipsCompositingDescendants):
        if a layer isolates blending, it is not allowed to create a descendant clipping layer.

2014-05-05  Dirk Schulze  <krit@webkit.org>

        AX: tabindex support in SVG2
        https://bugs.webkit.org/show_bug.cgi?id=130212

        Reviewed by Chris Fleizach.

        The patch is mainly based on a patch for Blink by Erik Dahlström.
        https://src.chromium.org/viewvc/blink?revision=172964&view=revision

        It adds support for tabindex to SVG by reusing the HTML code.

        Spec: https://svgwg.org/svg2-draft/interact.html#sequential-focus-navigation-and-the-tabindex-attribute
        IDL attribute: https://svgwg.org/svg2-draft/types.html#__svg__SVGElement__tabIndex

        Test: svg/custom/tabindex-order.html

        * dom/Element.cpp:
        (WebCore::Element::setTabIndex): Moved from HTMLElement and shared with all elements.
        * dom/Element.h:
        * html/HTMLAnchorElement.cpp: Remove outdated comment.
        (WebCore::HTMLAnchorElement::canStartSelection):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::setTabIndex): Deleted.
        * html/HTMLElement.h:
        * svg/SVGAElement.cpp: Uses the same logic as HTMLAnchorElement now.
        (WebCore::SVGAElement::tabIndex):
        (WebCore::SVGAElement::supportsFocus):
        (WebCore::SVGAElement::isMouseFocusable):
        (WebCore::SVGAElement::isKeyboardFocusable):
        (WebCore::SVGAElement::canStartSelection):
        * svg/SVGAElement.h:
        * svg/SVGCircleElement.h:
        * svg/SVGClipPathElement.h:
        * svg/SVGDefsElement.h:
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::tabIndex): Return -1 if element can not be focused.
        (WebCore::SVGElement::parseAttribute):
        (WebCore::SVGElement::isMouseFocusable):
        (WebCore::SVGElement::isKeyboardFocusable): Deleted. Use function on Element.
        * svg/SVGElement.h:
        * svg/SVGElement.idl:
        * svg/SVGEllipseElement.h:
        * svg/SVGGElement.h:
        * svg/SVGGraphicsElement.h: Remove supportsFocus() from inheriting functions.
            Don't just return true. SVG elements should not be focusable by default.
            Instead check if tabindex was set explicitly.
        * svg/SVGImageElement.h:
        * svg/SVGLineElement.h:
        * svg/SVGPathElement.h:
        * svg/SVGPolyElement.h:
        * svg/SVGRectElement.h:
        * svg/SVGSVGElement.h:
        * svg/SVGSwitchElement.h:
        * svg/SVGSymbolElement.h:
        * svg/SVGTextElement.h:

2014-05-05  Jeremy Jones  <jeremyj@apple.com>

        Implement beginScrubbing and endScrubbing for video fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=132520

        Reviewed by Eric Carlson.

        Plumb through beginScrubbing and endScrubbing from AVKit down to HTMLMediaElement.
        This keeps the playback state consistent while scrubbing and allows playback state
        to return to the original state when scrubbing is complete.

        * WebCore.exp.in:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVPlayerController beginScrubbing:]):
        (-[WebAVPlayerController endScrubbing:]):
        * platform/ios/WebVideoFullscreenModel.h:
        * platform/ios/WebVideoFullscreenModelMediaElement.h:
        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::beginScrubbing):
        (WebVideoFullscreenModelMediaElement::endScrubbing):

2014-05-05  Tim Horton  <timothy_horton@apple.com>

        More long hangs under IOSurfacePool::evict
        https://bugs.webkit.org/show_bug.cgi?id=132576
        <rdar://problem/16769469>

        Reviewed by Simon Fraser.

        * platform/graphics/cg/IOSurfacePool.cpp:
        (WebCore::IOSurfacePool::evict):
        If the pool is too full, we should be evicting in-use surfaces
        even if the size of the in-use surfaces has dropped below maximumInUseBytes,
        otherwise we can get stuck in an infinite loop with 0 cached surfaces
        and 1+ in-use surfaces.

2014-05-05  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Remove regionLayoutUpdate event
        https://bugs.webkit.org/show_bug.cgi?id=132564

        Reviewed by Simon Fraser.

        The regionLayoutUpdate event was removed from the regions spec and was replaced by two other events: 
        regionOversetChange and regionFragmentChange.

        No new tests needed, this patch removes a feature.

        * dom/EventNames.h:
        * dom/WebKitNamedFlow.cpp:
        (WebCore::WebKitNamedFlow::dispatchRegionLayoutUpdateEvent): Deleted.
        * dom/WebKitNamedFlow.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::resetNonPersistentData):
        (WebCore::InspectorCSSAgent::willRemoveNamedFlow):
        (WebCore::UpdateRegionLayoutTask::UpdateRegionLayoutTask): Deleted.
        (WebCore::UpdateRegionLayoutTask::scheduleFor): Deleted.
        (WebCore::UpdateRegionLayoutTask::unschedule): Deleted.
        (WebCore::UpdateRegionLayoutTask::reset): Deleted.
        (WebCore::UpdateRegionLayoutTask::timerFired): Deleted.
        (WebCore::InspectorCSSAgent::didUpdateRegionLayout): Deleted.
        (WebCore::InspectorCSSAgent::regionLayoutUpdated): Deleted.
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didUpdateRegionLayoutImpl): Deleted.
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::didUpdateRegionLayout): Deleted.
        * inspector/protocol/CSS.json:
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::updateOversetState):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
        (WebCore::RenderNamedFlowThread::removeRegionFromThread):
        (WebCore::RenderNamedFlowThread::layout):
        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEventIfNeeded): Deleted.
        (WebCore::RenderNamedFlowThread::regionLayoutUpdateEventTimerFired): Deleted.
        * rendering/RenderNamedFlowThread.h:

2014-05-05  Rik Cabanier  <cabanier@adobe.com>

        Enhance IDL compiler so it supports unrestricted float and double
        https://bugs.webkit.org/show_bug.cgi?id=132460

        Reviewed by Dirk Schulze.

        Updated IDL compiler so it supports unrestricted types.
        Also updated the IDL files so they use unrestricted float and
        double.

        Tests:
        * canvas/philip/tests/2d.gradient.linear.nonfinite.html:
        * canvas/philip/tests/2d.gradient.object.invalidoffset.html:
        * canvas/philip/tests/2d.gradient.radial.nonfinite.html:
        * canvas/philip/tests/2d.imageData.get.nonfinite.html:
        * canvas/philip/tests/2d.imageData.put.nonfinite.html:
        * canvas/philip/tests/2d.missingargs.html:
        * fast/canvas/canvas-getImageData-invalid-expected.txt:
        * fast/canvas/canvas-putImageData-expected.txt:
        * fast/canvas/canvas-putImageData.js:

        * Modules/battery/BatteryManager.idl:
        * Modules/gamepad/Gamepad.idl:
        * Modules/geolocation/Coordinates.idl:
        * Modules/mediasource/MediaSource.idl:
        * Modules/mediasource/SourceBuffer.idl:
        * Modules/mediasource/VideoPlaybackQuality.idl:
        * Modules/mediastream/MediaSourceStates.idl:
        * Modules/proximity/DeviceProximityEvent.idl:
        * Modules/speech/SpeechGrammar.idl:
        * Modules/speech/SpeechGrammarList.idl:
        * Modules/speech/SpeechRecognitionAlternative.idl:
        * Modules/speech/SpeechSynthesisEvent.idl:
        * Modules/speech/SpeechSynthesisUtterance.idl:
        * Modules/webaudio/AnalyserNode.idl:
        * Modules/webaudio/AudioBuffer.idl:
        * Modules/webaudio/AudioBufferSourceNode.idl:
        * Modules/webaudio/AudioContext.idl:
        * Modules/webaudio/AudioListener.idl:
        * Modules/webaudio/AudioParam.idl:
        * Modules/webaudio/AudioProcessingEvent.idl:
        * Modules/webaudio/OfflineAudioContext.idl:
        * Modules/webaudio/OscillatorNode.idl:
        * Modules/webaudio/PannerNode.idl:
        * bindings/scripts/CodeGenerator.pm:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GetGValueTypeName):
        (GetGlibTypeName):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (GenerateParametersCheck):
        (JSValueToNative):
        * bindings/scripts/CodeGeneratorObjC.pm:
        (GetObjCType):
        (GenerateHeader):
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/TestTypedefs.idl:
        * css/CSSPrimitiveValue.idl:
        * css/WebKitCSSMatrix.idl:
        * dom/ClientRect.idl:
        * dom/DeviceMotionEvent.idl:
        * dom/DeviceOrientationEvent.idl:
        * dom/Document.idl:
        * dom/RequestAnimationFrameCallback.idl:
        * dom/Touch.idl:
        * dom/TransitionEvent.idl:
        * dom/WebKitAnimationEvent.idl:
        * dom/WebKitTransitionEvent.idl:
        * dom/WheelEvent.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLMediaElement.idl:
        * html/HTMLMeterElement.idl:
        * html/HTMLProgressElement.idl:
        * html/MediaController.idl:
        * html/TextMetrics.idl:
        * html/TimeRanges.idl:
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/WebGLRenderingContext.idl:
        * html/track/DataCue.idl:
        * html/track/TextTrackCue.idl:
        * html/track/VTTCue.idl:
        * html/track/VTTRegion.idl:
        * inspector/InspectorFrontendHost.idl:
        * inspector/ScriptProfile.idl:
        * inspector/ScriptProfileNode.idl:
        * page/DOMWindow.idl:
        * page/Performance.idl:
        * page/PerformanceEntry.idl:
        * page/PerformanceResourceTiming.idl:
        * page/SpeechInputResult.idl:
        * page/WebKitPoint.idl:
        * svg/SVGAngle.idl:
        * svg/SVGAnimatedNumber.idl:
        * svg/SVGAnimationElement.idl:
        * svg/SVGFEDropShadowElement.idl:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEMorphologyElement.idl:
        * svg/SVGGlyphRefElement.idl:
        * svg/SVGLength.idl:
        * svg/SVGMatrix.idl:
        * svg/SVGNumber.idl:
        * svg/SVGPathElement.idl:
        * svg/SVGPathSegArcAbs.idl:
        * svg/SVGPathSegArcRel.idl:
        * svg/SVGPathSegCurvetoCubicAbs.idl:
        * svg/SVGPathSegCurvetoCubicRel.idl:
        * svg/SVGPathSegCurvetoCubicSmoothAbs.idl:
        * svg/SVGPathSegCurvetoCubicSmoothRel.idl:
        * svg/SVGPathSegCurvetoQuadraticAbs.idl:
        * svg/SVGPathSegCurvetoQuadraticRel.idl:
        * svg/SVGPathSegCurvetoQuadraticSmoothAbs.idl:
        * svg/SVGPathSegCurvetoQuadraticSmoothRel.idl:
        * svg/SVGPathSegLinetoAbs.idl:
        * svg/SVGPathSegLinetoHorizontalAbs.idl:
        * svg/SVGPathSegLinetoHorizontalRel.idl:
        * svg/SVGPathSegLinetoRel.idl:
        * svg/SVGPathSegLinetoVerticalAbs.idl:
        * svg/SVGPathSegLinetoVerticalRel.idl:
        * svg/SVGPathSegMovetoAbs.idl:
        * svg/SVGPathSegMovetoRel.idl:
        * svg/SVGPoint.idl:
        * svg/SVGRect.idl:
        * svg/SVGSVGElement.idl:
        * svg/SVGTextContentElement.idl:
        * svg/SVGTransform.idl:
        * svg/SVGZoomEvent.idl:
        * testing/InternalSettings.idl:
        * testing/Internals.idl:
        * xml/XPathResult.idl:

2014-05-05  Tim Horton  <timothy_horton@apple.com>

        Use a layer delegate instead of web_disableAllActions wherever possible
        https://bugs.webkit.org/show_bug.cgi?id=132560
        <rdar://problem/16459284>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayerMac::commonInit):
        If we own the platform layer, set its delegate to the action-disabling WebActionDisablingCALayerDelegate.
        If we don't, its actual owner might want to control the delegate, so continue using web_disableAllActions.

        * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.h: Added.
        * platform/graphics/cocoa/WebActionDisablingCALayerDelegate.mm: Added.
        (+[WebActionDisablingCALayerDelegate shared]):
        (-[WebActionDisablingCALayerDelegate actionForLayer:forKey:]):
        Add a class that can act as the delegate of a CALayer, and disables all actions.

        * platform/graphics/cocoa/WebCoreCALayerExtras.h: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.h.
        * platform/graphics/cocoa/WebCoreCALayerExtras.mm: Renamed from Source/WebCore/platform/graphics/mac/WebCoreCALayerExtras.mm.
        (-[CALayer web_disableAllActions]):
        Move WebCoreCALayerExtras from mac/ to cocoa/.

2014-05-05  Martin Hock  <mhock@apple.com>

        Session-aware plugin autostart data
        https://bugs.webkit.org/show_bug.cgi?id=131758
        <rdar://problem/15906540>

        Reviewed by Alexey Proskuryakov.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::userDidClickSnapshot):
        * page/PlugInClient.h:

2014-05-05  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Elements with overflow:auto are not painted inside regions when following a float
        https://bugs.webkit.org/show_bug.cgi?id=131161

        Reviewed by David Hyatt.

        When a float-avoiding element (such as overflow:auto) is flowed into a flow thread after a float, its 
        logical left is not set on its frameRect or its layer's topLeft, but is instead kept in its RenderBoxRegionInfo
        structure. In some situation, this causes paint rejection to kick-in because intersecting the layer's rect
        (which DOESN'T contain the logical left from the region info object) with the computed background rect 
        (which contains the logical left from the region info object) results in an empty rect.

        Test: fast/regions/overflow-auto-after-float.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):

2014-05-05  Andrei Bucur  <abucur@adobe.com>

        [CSSRegions] Slider displayed wrong in regions
        https://bugs.webkit.org/show_bug.cgi?id=132243

        Reviewed by Mihnea Ovidenie.

        In case a box didn't have a range, getRegionRangeForBox was searching for
        the top-most unplittable ancestor. This is not correct in every case. It's
        possible to have a box with range that has children without ranges (e.g. an
        absolutely positioned inline box with shadow descendants).

        I've modified getRegionRangeForBox to search for the first ancestor that
        has a cached range and use that instead of looking for an unsplittable box.
        The range of the box is the region at the top of the box, clamped by the
        range of the ancestor. This will be correct all the time once all the layout
        systems are region range aware and are able to cache it.

        Test: fast/regions/positioned-slider-in-regions.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::hasRegionRangeForBox):
        (WebCore::RenderFlowThread::getRegionRangeForBox):
        * rendering/RenderFlowThread.h:

2014-05-05  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] ASSERT when hovering over region
        https://bugs.webkit.org/show_bug.cgi?id=128809

        Reviewed by Mihnea Ovidenie.

        There's no point in hit-testing a box for a region if it's not contained inside
        that region.

        Test: fast/regions/hit-test-box-non-containing-region.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::nodeAtPoint):

2014-05-04  Andreas Kling  <akling@apple.com>

        Optimize JSRopeString for resolving directly to AtomicString.
        <https://webkit.org/b/132548>

        Add two bindings generator attributes for parameters to influence
        the way that JS rope strings are resolved:

        - AtomicString

            Generates code that avoids allocating a new StringImpl if there
            is already an existing AtomicString we can reuse.

        - RequiresExistingAtomicString

            Generates code that fails immediately if the provided string
            is not found in the AtomicString table. This is now used for
            document.getElementById(), and works because any existing ID
            is guaranteed to be in the table.

        Reviewed by Filip Pizlo.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        (JSValueToNative):
        * bindings/scripts/IDLAttributes.txt:
        * dom/Document.idl:

2014-05-04  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Compositing layers in iframes are misplaced
        https://bugs.webkit.org/show_bug.cgi?id=132554
        <rdar://problem/16203027>

        Reviewed by Benjamin Poulain.

        Have requiresScrollLayer() only consider frameView.delegatesScrolling()
        for the main frame, so that iframes get scroll layers (even though they
        will never scroll), so that the rest of geometry code works as on other
        platforms.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresScrollLayer):

2014-05-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Use std::unique_ptr in m_taskTimer of Notification class
        https://bugs.webkit.org/show_bug.cgi?id=132544

        Reviewed by Andreas Kling.

        No new tests, no behavior change.

        * Modules/notifications/Notification.cpp:
        (WebCore::Notification::Notification):
        * Modules/notifications/Notification.h: Use std::unique_ptr instead of OwnPtr.

2014-05-04  Tim Horton  <timothy_horton@apple.com>

        Long hangs under IOSurfacePool::evict
        https://bugs.webkit.org/show_bug.cgi?id=132549
        <rdar://problem/16769469>

        Reviewed by Simon Fraser.

        * platform/graphics/cg/IOSurfacePool.cpp:
        (WebCore::IOSurfacePool::willAddSurface):
        Run eviction before adding the new surface to m_bytesCached/m_inUseBytesCached.
        We use the additionalSize parameter to make space for the new surface.

        (WebCore::IOSurfacePool::evict):
        If we want to free up the entire pool, we can do so by throwing away everything.
        This also avoids an underflow if additionalSize is larger than the maximum pool size.

2014-05-04  Pratik Solanki  <psolanki@apple.com>

        Shortcircuit shouldUseCredentialStorage callback
        https://bugs.webkit.org/show_bug.cgi?id=132308
        <rdar://problem/16806708>

        Reviewed by Alexey Proskuryakov.

        If we are going to return true from the shouldUseCredentialStorage callback then we don't
        really need to have CFNetwork/Foundation call us. We can just disable the callback and
        CFNetwork will assume true. Add a separate subclass that implements this callback when we
        need to return false. We can also eliminate the corresponding async callbacks. This avoids
        pingponging between dispatch queue and main thread in the common case.

        No new tests because no change in functionality.

        * WebCore.exp.in:
        * platform/network/ResourceHandle.cpp:
        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandleClient.cpp:
        * platform/network/ResourceHandleClient.h:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::createCFURLConnection):
        (WebCore::ResourceHandle::shouldUseCredentialStorage):
        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::makeDelegate):
        (WebCore::ResourceHandle::delegate):
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        (WebCore::ResourceHandle::shouldUseCredentialStorage):
        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
        (-[WebCoreResourceHandleWithCredentialStorageAsOperationQueueDelegate connectionShouldUseCredentialStorage:]):
        * platform/network/soup/ResourceHandleSoup.cpp:

2014-05-04  Brent Fulgham  <bfulgham@apple.com>

        [iOS] deviceScaleFactor is being double-applied when rendering captions in full screen mode 
        https://bugs.webkit.org/show_bug.cgi?id=132481
        <rdar://problem/16507482>

        Reviewed by Jer Noble.

        Add a new 'syncTextTrackBounds' method (and relaying functions) to keep the text track container in sync
        with changes to the video player's display layer.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::syncTextTrackBounds: Added.
        * html/HTMLMediaElement.h:
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Don't set the platform scale factor here. It is already
        being accounted for in the createTextTrackRepresentationImage method.
        (WebCore::MediaControlTextTrackContainerElement::updateSizes): Synchronize the text track representation
        with any new video layer changes.
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::syncTextTrackBounds): Added.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::syncTextTrackBounds): Added.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Use new sync function.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::syncTextTrackBounds): Added. Keep the text track layer size in sync with
        the current video layer size. This may change during animations, rotations, etc.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation): Use new sync function.

2014-05-04  Beth Dakin  <bdakin@apple.com>

        Top content inset: Margin tiles should not display in the inset area when pinned 
        to the top of the page
        https://bugs.webkit.org/show_bug.cgi?id=132535
        -and corresponding-
        <rdar://problem/16613039>

        Reviewed by Simon Fraser.

        Prior to this change, topContentInset was implemented by positioning 
        RenderLayerCompositor’s m_rootContentLayer based on the inset value. In order to 
        ensure that no content is displayed in the inset area when we are pinned to the 
        top of the page, we’ll have to take a different approach. In this patch, when you 
        are pinned to the top of the page, the m_rootContentLayer is positioned at (0,0), 
        much like it would be without an inset, but the m_clip layer IS positioned at (0, 
        topContentInset). Then for all y-scroll values between 0 and topContentInset, the 
        positions of the clip layer and the contents layer are adjusted so that the clip 
        layer approaches a position of (0,0), and the root layer approaches a position of 
        (0, topContentInset). This makes sure that any content above the top the document 
        is aways clipped out of the inset area.

        In order to achieve this, the scrolling thread needs to know about the 
        topContentInset, the clip layer, and the root contents layer.

        AsyncScrollingCoordinator::updateScrollingNode() now takes an additional parameter 
        for the clip layer. Also export the topContentInset symbol for UI-side 
        compositing.
        * WebCore.exp.in:

        Here is the new computation. Implemented in one spot that can be called from the 
        scrolling thread, AsyncScrollingCoordinator and RenderLayerCompositor.
        * page/FrameView.cpp:
        (WebCore::FrameView::yPositionForInsetClipLayer):
        (WebCore::FrameView::yPositionForRootContentLayer):
        * page/FrameView.h:

        Set the topContentInset, the insetClipLayer, and the scrolledContentsLayer when 
        appropriate.
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
        (WebCore::AsyncScrollingCoordinator::frameViewRootLayerDidChange):

        Set or sync the positions for the inset layer and the contents layer.
        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
        (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
        * page/scrolling/AsyncScrollingCoordinator.h:

        Convenience functions for getting the clipLayer() and the rootContentLayer() from 
        the RenderLayerCompositor.
        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::insetClipLayerForFrameView):
        (WebCore::ScrollingCoordinator::rootContentLayerForFrameView):
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::updateScrollingNode):

        ScrollingStateScrolling nodes have two new members now. m_insetClipLayer and 
        m_topContentInset. We can use m_scrolledContentsLayer for the rootContentsLayer 
        since previously that member was not used for FrameViews; it was only used for 
        accelerated overflow:scroll nodes.
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        (WebCore::ScrollingStateScrollingNode::setTopContentInset):
        (WebCore::ScrollingStateScrollingNode::setInsetClipLayer):
        * page/scrolling/ScrollingStateScrollingNode.h:

        Similarly, ScrollingTreeScrollingNode has two new members for m_topContentInset 
        and m_clipLayer.
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (WebCore::ScrollingTreeScrollingNode::topContentInset):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::updateBeforeChildren):

        Compute positions for the two new layers.
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):

        Now use the static FrameView functions to compute the positions for these layers.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):
        (WebCore::RenderLayerCompositor::positionForClipLayer):
        (WebCore::RenderLayerCompositor::clipLayer):
        (WebCore::RenderLayerCompositor::rootContentLayer):
        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):
        (WebCore::RenderLayerCompositor::ensureRootLayer):
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
        * rendering/RenderLayerCompositor.h:

2014-05-04  Benjamin Poulain  <benjamin@webkit.org>

        Clear the Selector Query caches on memory pressure
        https://bugs.webkit.org/show_bug.cgi?id=132545

        Reviewed by Andreas Kling.

        The Selector Query Cache can use quite a bit of memory if many
        complex selectors are compiled. This patch makes sure the cache gets
        cleared on memory pressure.

        * dom/Document.cpp:
        (WebCore::Document::clearSelectorQueryCache):
        (WebCore::Document::setCompatibilityMode):
        (WebCore::Document::updateBaseURL):
        * dom/Document.h:
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorQueryCache::invalidate): Deleted.
        * dom/SelectorQuery.h:
        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::releaseMemory):

2014-05-04  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Convert OwnPtr to std::unique_ptr in CDM
        https://bugs.webkit.org/show_bug.cgi?id=132467

        Reviewed by Andreas Kling.

        Use std::unique_ptr in CDM class.

        No new tests, no behavior change.

        * Modules/encryptedmedia/CDM.cpp:
        (WebCore::CDM::create):
        (WebCore::CDM::CDM):
        * Modules/encryptedmedia/CDM.h:
        * Modules/encryptedmedia/CDMPrivateMediaPlayer.h:
        (WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
        (WebCore::CDMPrivateMediaPlayer::create):
        * Modules/encryptedmedia/MediaKeys.cpp:
        (WebCore::MediaKeys::create):
        (WebCore::MediaKeys::MediaKeys):
        * Modules/encryptedmedia/MediaKeys.h:
        * WebCore.exp.in:

2014-05-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r168232.
        https://bugs.webkit.org/show_bug.cgi?id=132543

        broke ~15 tests on WK2 debug (Requested by kling on #webkit).

        Reverted changeset:

        "Shortcircuit shouldUseCredentialStorage callback"
        https://bugs.webkit.org/show_bug.cgi?id=132308
        http://trac.webkit.org/changeset/168232

2014-05-03  Andreas Kling  <akling@apple.com>

        RenderSVGResourcePattern should deal in RenderElement&.
        <https://webkit.org/b/132536>

        Tweak buildPattern() and buildTileImageTransform() to take RenderElement&
        instead of RenderObject* since we know that these functions will always
        be called with non-null RenderElement subclasses.

        Reviewed by Sam Weinig.

        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::shouldTransformOnTextPainting):
        * rendering/svg/RenderSVGResourceContainer.h:
        * rendering/svg/RenderSVGResourceGradient.cpp:
        (WebCore::RenderSVGResourceGradient::applyResource):
        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::buildPattern):
        (WebCore::RenderSVGResourcePattern::applyResource):
        (WebCore::RenderSVGResourcePattern::buildTileImageTransform):
        * rendering/svg/RenderSVGResourcePattern.h:

2014-05-03  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: optimize direct / indirect adjacent's traversal backtracking
        https://bugs.webkit.org/show_bug.cgi?id=132319

        Reviewed by Benjamin Poulain.

        Since adjacent backtracking stack reference is pre-allocated
        in prologue in http://trac.webkit.org/changeset/166834,
        clearing stack phase is not needed. So we can drop
        JumpToClearAdjacentTail from backtracking action and simplify
        backtracking handling.
        And optimize direct / indirect adjacent's traversal backtracking by
        using appropriate backtracking height.

        When solving adjacent traversal backtracking action,
        1) When there's no descendant relation on the right, traversal
        failure becomes global failure.
        2) When `tagNameMatchedBacktrackingStartHeightFromDescendant` ==
        `heightFromDescendant` + 1, the descendant backtracking starts with
        the parent of the current element. So we can use the current element
        and the backtracking action is JumpToDescendantTreeWalkerEntryPoint.
        3) Otherwise, currently we take the conservative approach,
        JumpToDescendantTail.

        NOTE:
        And if `hasDescendantRelationOnTheRight` is true and there's no child
        fragment on the right, the backtracking element register is not
        effective. So we should ensure that fragment doesn't use the
        backtracking element register. Such a fragment fulfills the following
        conditions. 1. tagNameMatchedBacktrackingStartHeightFromDescendant is
        always 1 (tagNames.size(), that contains only descendant fragment) 2.
        heightFromDescendant is always 0 (-- See
        computeBacktrackingHeightFromDescendant implementation) Therefore such
        a fragment's action always becomes
        JumpToDescendantTreeWalkerEntryPoint. So we can ensure that the
        backtracking element register is not used.

        Test: fast/selectors/backtracking-adjacent.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::solveDescendantBacktrackingActionForChild):
        (WebCore::SelectorCompiler::solveAdjacentTraversalBacktrackingAction):
        (WebCore::SelectorCompiler::solveBacktrackingAction):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
        (WebCore::SelectorCompiler::isAfterChildRelation): Deleted.

2014-05-03  Andreas Kling  <akling@apple.com>

        Clear the JSString cache when under memory pressure.
        <https://webkit.org/b/132539>

        The WeakGCMap used for fast mapping from StringImpl* to JSString*
        can actually get pretty big, and if we find ourselves under memory
        pressure, it's entirely inessential.

        1.1 MB progression on Membuster3.

        Reviewed by Sam Weinig.

        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::releaseMemory):

2014-05-03  Benjamin Poulain  <benjamin@webkit.org>

        [iOS][WK2] Support disabling speculative tiling
        https://bugs.webkit.org/show_bug.cgi?id=132512

        Reviewed by Tim Horton.

        Move ScrollView::setScrollVelocity() and ScrollView::computeCoverageRect() to FrameView.
        When speculative tiling is disabled, return an unmodified exposed rect.

        Time/velocity adjusments are completely unnecessary at the moment since speculative tiling
        is enabled as soon as the view scrolls.

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::setScrollVelocity):
        (WebCore::FrameView::computeCoverageRect):
        * page/FrameView.h:
        * platform/ScrollView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::setScrollVelocity): Deleted.
        (WebCore::ScrollView::computeCoverageRect): Deleted.

2014-05-02  Pratik Solanki  <psolanki@apple.com>

        Shortcircuit shouldUseCredentialStorage callback
        https://bugs.webkit.org/show_bug.cgi?id=132308
        <rdar://problem/16806708>

        Reviewed by Alexey Proskuryakov.

        If we are going to return true from the shouldUseCredentialStorage callback then we don't
        really need to have CFNetwork/Foundation call us. We can just disable the callback and
        CFNetwork will assume true. Add a separate subclass that implements this callback when we
        need to return false. We can also eliminate the corresponding async callbacks. This avoids
        pingponging between dispatch queue and main thread in the common case.

        No new tests because no change in functionality.

        * WebCore.exp.in:
        * platform/network/ResourceHandle.cpp:
        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandleClient.cpp:
        * platform/network/ResourceHandleClient.h:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::createCFURLConnection):
        (WebCore::ResourceHandle::shouldUseCredentialStorage):
        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::shouldUseCredentialStorage):
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::makeDelegate):
        (WebCore::ResourceHandle::delegate):
        (WebCore::ResourceHandle::platformLoadResourceSynchronously):
        (WebCore::ResourceHandle::shouldUseCredentialStorage):
        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.h:
        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
        (-[WebCoreResourceHandleWithCredentialStorageAsOperationQueueDelegate connectionShouldUseCredentialStorage:]):
        * platform/network/soup/ResourceHandleSoup.cpp:

2014-05-03  Andreas Kling  <akling@apple.com>

        Invalidate scrollbars when custom scrollbar style changes dynamically.
        <https://webkit.org/b/132529>

        Add a ScrollView::styleDidChange() and call that from RenderView::styleDidChange()
        so that the scrollbars are sure to get repainted with potentially different style.

        Reviewed by Antti Koivisto.

        Test: fast/css/scrollbar-dynamic-style-change.html

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::styleDidChange):
        * platform/ScrollView.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::styleDidChange):

2014-05-03  Simon Fraser  <simon.fraser@apple.com>

        Very fuzzy layers under non-decompasable matrices
        https://bugs.webkit.org/show_bug.cgi?id=132516
        <rdar://problem/16717478>

        Reviewed by Sam Weinig.
        
        r155977 added code to modify layer contentsScale based on a root-relative
        scale, so that scaled-up layers remained sharp. It does this by decomposing
        an accumulated matrix, but failed to test whether the decomposition
        succeeded. This would result in contentsScale of 0, which is clamped to 0.1,
        resulting in very fuzzy layers.
        
        Fix by testing for success of decomposition.

        Test: compositing/contents-scale/non-decomposable-matrix.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::maxScaleFromTransform):
        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::decompose2): Return early for identity matrices,
        with fix for m11 and m22.
        (WebCore::TransformationMatrix::decompose4): Return early for identity matrices.
        * platform/graphics/transforms/TransformationMatrix.h:
        Make Decomposed2Type and Decomposed4Type into C++ structs.
        (WebCore::TransformationMatrix::Decomposed2Type::operator==): Added to make it easier
        to write code that asserts that decomposition is correct.
        (WebCore::TransformationMatrix::Decomposed4Type::operator==): Ditto.

2014-05-03  Simon Fraser  <simon.fraser@apple.com>

        Fix crash in WebKit client app when zooming
        https://bugs.webkit.org/show_bug.cgi?id=132475
        <rdar://problem/16703405>

        Reviewed by Tim Horton.

        It's possible for a WebTiledBackingLayer CALayer to remain in the CALayer
        hierarchy after we've called -invalidate on it, which clears the _tileController.
        Project the getters against null derefs to handle this.

        * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
        (-[WebTiledBackingLayer isOpaque]):
        (-[WebTiledBackingLayer acceleratesDrawing]):
        (-[WebTiledBackingLayer contentsScale]):

2014-05-03  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Fix GTK+ build after r168209.

        * platform/leveldb/LevelDBDatabase.cpp:
        (WebCore::LevelDBDatabase::write):

2014-05-03  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Fieldset legend has a horizontal line through, when the fieldset is painted on odd device pixel position.
        https://bugs.webkit.org/show_bug.cgi?id=132521
        <rdar://problem/16803305>

        Reviewed by Simon Fraser.

        Use device pixel snapping when the fieldset's border gets clipped out for the legend's text. It ensures that
        the device pixel snapped border gets properly clipped out.

        Existing fieldset tests cover it.

        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::paintBoxDecorations):

2014-05-02  Zalan Bujtas  <zalan@apple.com>

        CodeCleanup: Remove *MaintainsPixelAlignment from GraphicsLayer*.
        https://bugs.webkit.org/show_bug.cgi?id=132501

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::GraphicsLayer):
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::setMaintainsPixelAlignment): Deleted.
        (WebCore::GraphicsLayer::maintainsPixelAlignment): Deleted.
        (WebCore::GraphicsLayer::pixelAlignmentOffset): Deleted.
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateGeometry):
        (WebCore::GraphicsLayerCA::computePixelAlignment):
        (WebCore::GraphicsLayerCA::setMaintainsPixelAlignment): Deleted.
        * platform/graphics/ca/GraphicsLayerCA.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::createGraphicsLayer):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::keepLayersPixelAligned): Deleted.
        * rendering/RenderLayerCompositor.h:

2014-05-02  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Tiled layer content missing on pages with animated tiled layers
        https://bugs.webkit.org/show_bug.cgi?id=132507
        <rdar://problem/16765740>

        Reviewed by Tim Horton.

        Updating the tiling area of content TileControllers while
        CSS animations are running depends on GraphicsLayerUpdater
        triggering repeated layer flushes. With UI-side compositing, those
        flushes were happening, but nothing triggered RemoteLayerTreeDrawingArea
        to flush changes to the UI process.
        
        Fix by having RenderLayerCompositor schedule a flush, rather
        than just doing a flush, in response to GraphicsLayerUpdater.
        
        Also change the name of the GraphicsLayerUpdaterClient function
        to indicate that it suggests that a flush is required soon, rather than
        that the flushing has to be synchronous.

        * platform/graphics/GraphicsLayerUpdater.cpp:
        (WebCore::GraphicsLayerUpdater::displayRefreshFired):
        * platform/graphics/GraphicsLayerUpdater.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushLayersSoon):
        (WebCore::RenderLayerCompositor::flushLayers): Deleted.
        * rendering/RenderLayerCompositor.h:

2014-05-02  Jeremy Jones  <jeremyj@apple.com>

        Use displayNameForTrack instead of textTrack->label() for captions.
        https://bugs.webkit.org/show_bug.cgi?id=131311

        Reviewed by Darin Adler.

        Use the same mechanism as the desktop to build the captions list so it has the correct
        names in the correct order including none and automatic.

        * platform/ios/WebVideoFullscreenModelMediaElement.h:
        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::setMediaElement):
        move legible track code into updateLegibleOptions()

        (WebVideoFullscreenModelMediaElement::handleEvent):
        updateLegibleOptions on addTrack and removeTrack

        (WebVideoFullscreenModelMediaElement::selectLegibleMediaOption):
        select the corresponding TextTrack on HTMLMediaElement.

        (WebVideoFullscreenModelMediaElement::updateLegibleOptions):
        use the same mechanism as desktop to build the captions menu.

2014-05-02  Jeremy Jones  <jeremyj@apple.com>

        CSS-based Media Controls Show Different times content longer than 1 hour.
        https://bugs.webkit.org/show_bug.cgi?id=132443

        Reviewed by Jer Noble.

        * Modules/mediacontrols/mediaControlsApple.css:
        (audio::-webkit-media-controls-timeline-container .hour-long-time):
        This class has a wider width for longer duration times.

        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.updateDuration):
        Apply .hour-long-time class as appropriate.

        (Controller.prototype.formatTime):
        More robust formatting to handle hours.

        * Modules/mediacontrols/mediaControlsiOS.css:
        (audio::-webkit-media-controls-timeline-container .hour-long-time):
        This class has a wider width for longer duration times.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.formatTime):
        More robust formatting to handle hours.

2014-05-02  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] AVAssetTrack returns incorrect track size
        https://bugs.webkit.org/show_bug.cgi?id=132469

        Reviewed by Brent Fulgham.

        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::SourceBufferPrivateAVFObjC::didParseStreamDataAsAsset):  Remove the sizeChanged() notification.
        (WebCore::SourceBufferPrivateAVFObjC::processCodedFrame): Cache the last parsed video frame size.
        (WebCore::SourceBufferPrivateAVFObjC::naturalSize): Return the cached value.

2014-05-02  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering[iOS]: Use pixelSnappedRoundedRectForPainting() to clip text area rect.
        https://bugs.webkit.org/show_bug.cgi?id=132499
        <rdar://problem/16631050>

        Reviewed by Simon Fraser.

        Snap to device pixels properly instead of relying on float arithmetics while converting from RoundedRect
        to FloatRoundedRect. This is the second, cleanup part of the text-area decoration is off-by-one painting issue.

        Currently not testable.

        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::paintTextFieldDecorations):

2014-05-02  Andreas Kling  <akling@apple.com>

        Remove HistogramSupport.
        <https://webkit.org/b/132354>

        Prune some leftover Chromium gunk that no other ports ever used.

        Reviewed by Simon Fraser.

        * CMakeLists.txt:
        * Modules/indexeddb/IDBDatabase.cpp:
        (WebCore::IDBDatabase::createObjectStore):
        (WebCore::IDBDatabase::deleteObjectStore):
        (WebCore::IDBDatabase::transaction):
        * Modules/indexeddb/IDBFactory.cpp:
        (WebCore::IDBFactory::openInternal):
        (WebCore::IDBFactory::deleteDatabase):
        * Modules/indexeddb/IDBHistograms.h: Removed.
        * Modules/indexeddb/leveldb/IDBBackingStoreLevelDB.cpp:
        (WebCore::IDBBackingStoreLevelDB::open):
        (WebCore::IDBBackingStoreLevelDB::openInMemory):
        (WebCore::recordInternalError): Deleted.
        * Modules/indexeddb/leveldb/IDBBackingStoreTransactionLevelDB.cpp:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSParser.cpp:
        (WebCore::cssPropertyID):
        * dom/Document.cpp:
        (WebCore::Document::~Document):
        (WebCore::histogramMutationEventUsage): Deleted.
        * dom/ShadowRoot.cpp:
        * fileapi/Blob.cpp:
        * fileapi/WebKitBlobBuilder.cpp:
        (WebCore::BlobBuilder::append):
        * history/PageCache.cpp:
        (WebCore::logCanCacheFrameDecision):
        (WebCore::logCanCachePageDecision):
        * platform/HistogramSupport.cpp: Removed.
        * platform/HistogramSupport.h: Removed.
        * platform/leveldb/LevelDBDatabase.cpp:
        (WebCore::LevelDBDatabase::open):
        (WebCore::histogramLevelDBError): Deleted.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateNeedsCompositedScrolling):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::send):

2014-05-02  Brady Eidson  <beidson@apple.com>

        Stop flipping the ImageControlsButton
        <rdar://problem/16773238> and https://bugs.webkit.org/show_bug.cgi?id=132502

        Reviewed by Tim Horton.

        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintImageControlsButton):

2014-05-02  Jeremy Jones  <jeremyj@apple.com>

        Fullscreen UI does not appear after WebProcess has crashed
        https://bugs.webkit.org/show_bug.cgi?id=132442

        Reviewed by Darin Adler.

        Clean up immediately when there is a WebProcess crash.

        * WebCore.exp.in:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::invalidate):
        Clean-up resources immediately.

2014-05-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r168192.
        https://bugs.webkit.org/show_bug.cgi?id=132498

        Was not the correct fix (blurry!) (Requested by bfulgham_ on
        #webkit).

        Reverted changeset:

        "[iOS] deviceScaleFactor is being double-applied when
        rendering captions in full screen mode"
        https://bugs.webkit.org/show_bug.cgi?id=132481
        http://trac.webkit.org/changeset/168192

2014-05-02  Alexey Proskuryakov  <ap@apple.com>

        Remove Blob contentDisposition handling
        https://bugs.webkit.org/show_bug.cgi?id=132490

        Reviewed by Sam Weinig.

        Dead code.

        * platform/network/BlobData.h:
        (WebCore::BlobData::contentDisposition): Deleted.
        (WebCore::BlobData::setContentDisposition): Deleted.
        * platform/network/BlobRegistryImpl.cpp:
        (WebCore::BlobRegistryImpl::registerBlobURL):
        (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
        * platform/network/BlobResourceHandle.cpp:
        (WebCore::BlobResourceHandle::notifyResponseOnSuccess):
        * platform/network/BlobStorageData.h:
        (WebCore::BlobStorageData::create):
        (WebCore::BlobStorageData::contentType):
        (WebCore::BlobStorageData::BlobStorageData):
        (WebCore::BlobStorageData::contentDisposition): Deleted.

2014-05-02  Anders Carlsson  <andersca@apple.com>

        Implement FormData decoding using KeyedDecoder
        https://bugs.webkit.org/show_bug.cgi?id=132494

        Reviewed by Tim Horton.

        * platform/KeyedCoding.h:
        (WebCore::KeyedDecoder::decodeEnum):
        * platform/network/FormData.cpp:
        (WebCore::decodeElement):
        (WebCore::FormData::decode):
        * platform/network/FormData.h:

2014-05-02  Brent Fulgham  <bfulgham@apple.com>

        [iOS] deviceScaleFactor is being double-applied when rendering captions in full screen mode
        https://bugs.webkit.org/show_bug.cgi?id=132481

        Reviewed by Jer Noble.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): Don't set the platform scale factor here. It is already
        being accounted for in the createTextTrackRepresentationImage method.

2014-05-02  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Don't create backing store for -webkit-overflow-scrolling:touch that can't scroll
        https://bugs.webkit.org/show_bug.cgi?id=132487
        <rdar://problem/16758041>

        Reviewed by Sam Weinig.

        Previously, -webkit-overflow-scrolling:touch would cause us to make compositing
        layers for any element that had overflow: auto or scroll on either axis. This
        created lots of backing store when not required.
        
        Improve this to only create compositing for scrolling when there is actually
        scrollable overflow. This makes things slightly more complex, because we can
        only know when layout is up to date.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeRectForRepaint): usesCompositedScrolling() tells
        us if we're actually doing composited overflow.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hasTouchScrollableOverflow):
        (WebCore::RenderLayer::handleTouchEvent):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Only update
        scrolling and clipping layers if layout is not pending.
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::updateScrollingLayers): The caller calls
        updateInternalHierarchy(), so no need to do it here.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForScrolling): We
        can only determine that we're scrollable after layout.
        (WebCore::isStickyInAcceleratedScrollingLayerOrViewport):
        (WebCore::isMainFrameScrollingOrOverflowScrolling):

2014-05-02  Anders Carlsson  <andersca@apple.com>

        Clean up FormDataElement
        https://bugs.webkit.org/show_bug.cgi?id=132483

        Reviewed by Sam Weinig.

        * platform/network/FormData.cpp:
        (WebCore::FormData::FormData):
        (WebCore::FormData::deepCopy):
        (WebCore::FormData::expandDataStore):
        (WebCore::FormData::flatten):
        (WebCore::FormData::resolveBlobReferences):
        (WebCore::FormData::generateFiles):
        (WebCore::FormData::hasGeneratedFiles):
        (WebCore::FormData::hasOwnedGeneratedFiles):
        (WebCore::FormData::removeGeneratedFilesIfNeeded):
        (WebCore::encodeElement):
        (WebCore::decodeElement):
        * platform/network/FormData.h:
        (WebCore::FormDataElement::FormDataElement):
        (WebCore::operator==):
        * platform/network/cf/FormDataStreamCFNet.cpp:
        (WebCore::advanceCurrentStream):
        (WebCore::setHTTPBody):
        * platform/network/curl/FormDataStreamCurl.cpp:
        (WebCore::FormDataStream::read):
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::setupFormData):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::addFormElementsToSoupMessage):

2014-05-02  Jer Noble  <jer.noble@apple.com>

        [iOS] Wireless playback button not blue when active
        https://bugs.webkit.org/show_bug.cgi?id=132473

        Reviewed by Simon Fraser.

        The playback button's class was being set to 'undefined', due to Controller.ClassNames.active being undefined.

        * Modules/mediacontrols/mediaControlsApple.js:

2014-05-02  Alexey Proskuryakov  <ap@apple.com>

        Don't abuse Blob deserialization constructor in WebSocket
        https://bugs.webkit.org/show_bug.cgi?id=132478

        Reviewed by Sam Weinig.

        * Modules/websockets/WebSocketChannel.cpp:
        (WebCore::WebSocketChannel::send):
        (WebCore::WebSocketChannel::enqueueBlobFrame): This is the important change -
        Blob::create was called for no reason. If the blob came from a worker, it was
        already cloned for cross-thread messaging, otherwise there is no reason to make
        a new one.

        * fileapi/Blob.h:
        (WebCore::Blob::deserialize):
        (WebCore::Blob::create): Deleted.
        * fileapi/File.h:
        (WebCore::File::deserialize):
        (WebCore::File::create): Deleted.
        Renamed a special case of "create" function to avoid explaining what it is for.

        * Modules/websockets/ThreadableWebSocketChannel.h:
        * Modules/websockets/WebSocket.cpp:
        (WebCore::WebSocket::send):
        * Modules/websockets/WebSocketChannel.h:
        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
        (WebCore::WorkerThreadableWebSocketChannel::send): Print a full URL in LOG(),
        not one shortened to 1024 characters.
        (WebCore::WorkerThreadableWebSocketChannel::Peer::send):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadSendBlob):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::send):
        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::CloneDeserializer::readFile):
        (WebCore::CloneDeserializer::readTerminal):

2014-05-02  Anders Carlsson  <andersca@apple.com>

        Add and implement KeyedDecoder::decodeBytes
        https://bugs.webkit.org/show_bug.cgi?id=132479

        Reviewed by Tim Horton.

        * platform/KeyedCoding.h:
        (WebCore::KeyedDecoder::decodeBytes):

2014-05-02  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] WebKit2 File Upload Support
        https://bugs.webkit.org/show_bug.cgi?id=132024

        Reviewed by Enrica Casucci.

        * English.lproj/Localizable.strings:
        New localized strings for <input type="file"> on iOS.

2014-05-02  Chris Fleizach  <cfleizach@apple.com>

        AX: WK2: iOS web page scrolling doesn't work with VoiceOver
        https://bugs.webkit.org/show_bug.cgi?id=132028

        Reviewed by Mario Sanchez Prada.

        With the AX tree residing in the WebProcess, scrolling needs to be implemented in
        WebCore using accessibilityScroll: in order for accessibility clients to scroll through the AX API.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::scrollViewAncestor):
        (WebCore::AccessibilityObject::scrollToMakeVisibleWithSubFocus):
        * accessibility/AccessibilityObject.h:
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper _accessibilityConvertPointToViewSpace:]):
        (-[WebAccessibilityObjectWrapper _accessibilityScrollToVisible]):
        (-[WebAccessibilityObjectWrapper accessibilityScroll:]):
        (-[WebAccessibilityObjectWrapper postScrollStatusChangeNotification]):
        (-[WebAccessibilityObjectWrapper _accessibilityScrollPosition]):
        (-[WebAccessibilityObjectWrapper _accessibilityScrollSize]):
        (-[WebAccessibilityObjectWrapper _accessibilityScrollVisibleRect]):

2014-05-02  Jeremy Jones  <jeremyj@apple.com>

        Pause playback on exit fullscreen when inline playback not allowed.
        https://bugs.webkit.org/show_bug.cgi?id=132450

        Reviewed by Jer Noble.

        Use correct method of determining if inline playback is allowed.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        Use m_mediaSession->requiresFullscreenForVideoPlayback to detect if inline playback is allowed.

        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
        Prevent duplicate exit requests.

2014-05-02  Ion Rosca  <rosca@adobe.com>

        [CSS Blending] Remove support for non-separable blend modes from background-blend-mode
        https://bugs.webkit.org/show_bug.cgi?id=132327

        Reviewed by Dean Jackson.

        Removed support for non-separable background blend modes from the CSS parser.
        Covered by existing tests.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseFillProperty):

2014-05-02  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Clean up #include <OwnPtr.h>|<PassOwnPtr.h> in Supplementable classes
        https://bugs.webkit.org/show_bug.cgi?id=132466

        Reviewed by Tim Horton.

        Since r168144, Supplementable classes don't need to include OwnPtr.h or PassOwnPtr.h.
        Clean up those inclusions.

        No new tests, just clean up patch.

        * Modules/encryptedmedia/CDMPrivate.h:
        * Modules/gamepad/NavigatorGamepad.cpp:
        * Modules/geolocation/GeolocationController.cpp:
        (WebCore::GeolocationController::create): Deleted. Don't need to have a factory function.
        * Modules/geolocation/GeolocationController.h:
        * Modules/mediasource/MediaSource.h:
        * Modules/mediastream/UserMediaController.h:
        * Modules/notifications/NotificationCenter.h:
        * Modules/notifications/NotificationController.cpp:
        * Modules/quota/StorageErrorCallback.h:
        * Modules/vibration/Vibration.h:
        * Modules/webdatabase/Database.cpp:
        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.h:
        * Modules/websockets/WebSocket.cpp:
        * Modules/websockets/WebSocket.h:

2014-05-01  Ryuan Choi  <ryuan.choi@samsung.com>

        Remove TiledBackingStore stuff from Frame
        https://bugs.webkit.org/show_bug.cgi?id=132458

        Reviewed by Andreas Kling.

        Although TiledBackingStore is using for the CoordinatedGraphics,
        CoordinatedGraphics does not use tiledBackingStore of Frame.

        This patch removed TiledBackingStore related code of the Frame.

        * page/Frame.cpp:
        (WebCore::Frame::Frame):
        (WebCore::Frame::setView):
        (WebCore::Frame::setTiledBackingStoreEnabled): Deleted.
        (WebCore::Frame::tiledBackingStorePaintBegin): Deleted.
        (WebCore::Frame::tiledBackingStorePaint): Deleted.
        (WebCore::Frame::tiledBackingStorePaintEnd): Deleted.
        (WebCore::Frame::tiledBackingStoreContentsRect): Deleted.
        (WebCore::Frame::tiledBackingStoreVisibleRect): Deleted.
        (WebCore::Frame::tiledBackingStoreBackgroundColor): Deleted.
        * page/Frame.h:
        (WebCore::Frame::tiledBackingStore): Deleted.
        * page/FrameView.cpp:
        (WebCore::FrameView::repaintContentRectangle):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        (WebCore::Settings::setTiledBackingStoreEnabled): Deleted.
        * page/Settings.h:
        (WebCore::Settings::tiledBackingStoreEnabled): Deleted.

2014-05-01  Myles C. Maxfield  <mmaxfield@apple.com>

        Migrate all uses of DeviceMotionController and DeviceOrientationController to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=132461

        Unreviewed build fix.

        No new tests.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/Document.h:
        * platform/ios/DeviceMotionClientIOS.h:
        (WebCore::DeviceMotionClientIOS::create): Deleted.
        * platform/ios/DeviceOrientationClientIOS.h:
        (WebCore::DeviceOrientationClientIOS::create): Deleted.

2014-05-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Convert OwnPtr and PassOwnPtr uses to std::unique_ptr in Supplement
        https://bugs.webkit.org/show_bug.cgi?id=132165

        Reviewed by Darin Adler.

        According to convert from PassOwnPtr to std::unique_ptr, provideTo() callers also begin
        to use std::make_unique.

        * Modules/battery/BatteryController.cpp:
        (WebCore::provideBatteryTo):
        * Modules/battery/BatteryController.h:
        * Modules/battery/NavigatorBattery.cpp:
        (WebCore::NavigatorBattery::from):
        * Modules/gamepad/NavigatorGamepad.cpp:
        (WebCore::NavigatorGamepad::from):
        * Modules/geolocation/GeolocationController.cpp:
        (WebCore::provideGeolocationTo):
        * Modules/geolocation/GeolocationController.h:
        * Modules/geolocation/NavigatorGeolocation.cpp:
        (WebCore::NavigatorGeolocation::from):
        * Modules/indexeddb/DOMWindowIndexedDatabase.cpp:
        (WebCore::DOMWindowIndexedDatabase::from):
        * Modules/indexeddb/PageGroupIndexedDatabase.cpp:
        (WebCore::PageGroupIndexedDatabase::from):
        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
        (WebCore::WorkerGlobalScopeIndexedDatabase::from):
        * Modules/mediastream/UserMediaController.cpp:
        (WebCore::provideUserMediaTo):
        (WebCore::UserMediaController::create): Deleted.
        * Modules/mediastream/UserMediaController.h:
        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::provideNavigatorContentUtilsTo):
        (WebCore::NavigatorContentUtils::create): Deleted.
        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
        * Modules/notifications/DOMWindowNotifications.cpp:
        (WebCore::DOMWindowNotifications::from):
        * Modules/notifications/NotificationController.cpp:
        (WebCore::provideNotification):
        (WebCore::NotificationController::create): Deleted.
        * Modules/notifications/NotificationController.h:
        * Modules/notifications/WorkerGlobalScopeNotifications.cpp:
        (WebCore::WorkerGlobalScopeNotifications::from):
        * Modules/proximity/DeviceProximityController.cpp:
        (WebCore::provideDeviceProximityTo):
        (WebCore::DeviceProximityController::create): Deleted.
        * Modules/proximity/DeviceProximityController.h:
        * Modules/quota/DOMWindowQuota.cpp:
        (WebCore::DOMWindowQuota::from):
        * Modules/quota/NavigatorStorageQuota.cpp:
        (WebCore::NavigatorStorageQuota::from):
        * Modules/quota/WorkerNavigatorStorageQuota.cpp:
        (WebCore::WorkerNavigatorStorageQuota::from):
        * Modules/speech/DOMWindowSpeechSynthesis.cpp:
        (WebCore::DOMWindowSpeechSynthesis::from):
        * Modules/speech/SpeechRecognitionController.cpp:
        (WebCore::provideSpeechRecognitionTo):
        * Modules/vibration/Vibration.cpp:
        (WebCore::provideVibrationTo):
        (WebCore::Vibration::create): Deleted.
        * Modules/vibration/Vibration.h:
        * dom/DeviceMotionController.cpp:
        (WebCore::provideDeviceMotionTo):
        (WebCore::DeviceMotionController::create): Deleted.
        * dom/DeviceMotionController.h:
        * dom/DeviceOrientationController.cpp:
        (WebCore::provideDeviceOrientationTo):
        (WebCore::DeviceOrientationController::create): Deleted.
        * dom/DeviceOrientationController.h:
        * page/SpeechInput.cpp:
        (WebCore::provideSpeechInputTo):
        (WebCore::SpeechInput::create): Deleted.
        * page/SpeechInput.h:
        * platform/Supplementable.h:
        (WebCore::Supplement::provideTo):
        (WebCore::Supplementable::provideSupplement):
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::from):

2014-05-01  Andreas Kling  <akling@apple.com>

        HTMLMediaElement: Remove two unnecessary virtual overrides.
        <https://webkit.org/b/132445>

        Now that ENABLE_PLUGIN_PROXY_FOR_VIDEO is gone, we can remove
        these overrides:

            - defaultEventHandler()
            - willRespondToMouseClickEvents()

        Reviewed by Darin Adler.

        * html/HTMLMediaElement.cpp:
        * html/HTMLMediaElement.h:

2014-05-01  Benjamin Poulain  <bpoulain@apple.com>

        ViewportConfiguration::minimumScale() uses the initial scale as initial value
        https://bugs.webkit.org/show_bug.cgi?id=132451
        <rdar://problem/16780111>

        Reviewed by Enrica Casucci.

        * page/ViewportConfiguration.cpp:
        (WebCore::ViewportConfiguration::minimumScale):
        The initial minimum scale was set to the initial scale, preventing some pages from zooming
        out.

2014-05-01  Alexey Proskuryakov  <ap@apple.com>

        Build fix for !ENABLE(BLOB) builds.

        * fileapi/ThreadableBlobRegistry.cpp:
        (WebCore::ThreadableBlobRegistry::registerBlobURL):
        (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):

2014-05-01  Alexey Proskuryakov  <ap@apple.com>

        Move size computation for Blob constructor into BlobRegistryImpl
        https://bugs.webkit.org/show_bug.cgi?id=132439

        Reviewed by Sam Weinig.

        * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):
        Don't pass the size, anyone who cares can get it from BlobData.

        * bindings/js/JSBlobCustom.cpp: (WebCore::JSBlobConstructor::constructJSBlob):
        Updated for BlobBuilder changes.

        * fileapi/Blob.cpp: (WebCore::Blob::Blob):
        * fileapi/Blob.h: (WebCore::Blob::create):
        No longer take a precomputed size with BlobData, BlobRegistry will compute it as
        part of registration.

        * fileapi/File.h:
        * fileapi/File.cpp:
        (WebCore::File::File): Don't pass a size (that's unknown anyway).
        (WebCore::File::captureSnapshot): Deleted. Finally, only the registry is responsible
        for snapshot tracking now (I doubt that either new or old code is particularly compliant).

        * fileapi/ThreadableBlobRegistry.cpp:
        (WebCore::ThreadableBlobRegistry::registerBlobURL):
        * fileapi/ThreadableBlobRegistry.h:
        Plumbing to make this version of registerBlobURL return a size. I may make size
        calculation lazy and the function async later, but this is needed to move the behavior
        to the right place first.

        * fileapi/WebKitBlobBuilder.h:
        * fileapi/WebKitBlobBuilder.cpp:
        (WebCore::BlobBuilder::BlobBuilder):
        (WebCore::BlobBuilder::append):
        (WebCore::BlobBuilder::appendBytesData):
        (WebCore::BlobBuilder::finalize):
        (WebCore::BlobBuilder::getBlob): Deleted.
        Don't track sizes or modification times, registry will do that with appropriate laziness.
        Cleaned up the API - now that BlobBuilder is not exposed to JS as an object, it
        does not need to be reusable.

        * platform/network/BlobRegistry.h: Made this version of registerBlobURL return a size.
        * platform/network/BlobRegistryImpl.h:
        * platform/network/BlobRegistryImpl.cpp:
        (WebCore::BlobRegistryImpl::appendStorageItems): Assert that length computations are accurate.
        (WebCore::BlobRegistryImpl::registerBlobURL): Compute a size to return, and record
        modification time as necessary.

        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob): Don't pass the
        size, which can be computed from data. Soon, I want to add a constructor that doesn't
        require wrapping a single Vector as BlobData to construct a Blob.

2014-05-01  Eric Carlson  <eric.carlson@apple.com>

        [iOS] audio and video should automatically play to active external device
        https://bugs.webkit.org/show_bug.cgi?id=132428

        Reviewed by Jer Noble.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Set 
            AVPlayer.usesExternalPlaybackWhileExternalScreenIsActive.

2014-05-01  David Hyatt  <hyatt@apple.com>

        REGRESSION (r168046): [New Multicolumn] Selection into and out of column-span elements doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=132066

        Reviewed by Oliver Hunt.

        Make a new SelectionIterator struct that knows how to drill into and out of
        column span placeholders. Also change spans to be selection roots (in the painting
        sense).

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::isSelectionRoot):
        (WebCore::RenderBlock::selectionGaps):
        * rendering/RenderView.cpp:
        (WebCore::SelectionIterator::SelectionIterator):
        (WebCore::SelectionIterator::checkForSpanner):
        (WebCore::SelectionIterator::current):
        (WebCore::SelectionIterator::next):
        (WebCore::RenderView::subtreeSelectionBounds):
        (WebCore::RenderView::repaintSubtreeSelection):
        (WebCore::RenderView::setSubtreeSelection):

2014-05-01  Simon Fraser  <simon.fraser@apple.com>

        Don't always make backing store for -webkit-backface-visibility:hidden
        https://bugs.webkit.org/show_bug.cgi?id=132420

        Reviewed by Sam Weinig.
        
        Previously, -webkit-backface-visibility:hidden unconditionally created
        compositing layers with backing store. This results in high memory use
        on pages with this style applied to many elements (a cargo-cult "optimization").
        
        Fix by only having -webkit-backface-visibility:hidden create compositing layers
        if some ancestor has a 3D transform. That's the only scenario in which the
        element can be flipped around to reveal the back side, so the only time we need
        to do compositing for this property. In future, we could be smarter, and only
        consider 3D transforms in the current preserve-3d context.

        Tests: compositing/backing/backface-visibility-in-3dtransformed.html
               compositing/backing/backface-visibility-in-transformed.html
               compositing/backing/backface-visibility.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::hitTestLayer):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
        (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
        (WebCore::RenderLayerCompositor::requiresCompositingForBackfaceVisibility):
        * rendering/RenderLayerCompositor.h:

2014-05-01  Alex Christensen  <achristensen@webkit.org>

        Finish updating ANGLE.
        https://bugs.webkit.org/show_bug.cgi?id=132434

        Reviewed by Dean Jackson.

        * CMakeLists.txt:
        Removed Uniform.cpp which is no longer in ANGLE.

2014-05-01  David Hyatt  <hyatt@apple.com>

        REGRESSION (new multi-column): WebKit2.ResizeReversePaginatedWebView fails on debug bots
        https://bugs.webkit.org/show_bug.cgi?id=132429

        Reviewed by Alexey Proskuryakov.
        
        Make sure to get the column count directly from the column set.
        I was returning the theoretical column count from the flow thread,
        and that wasn't the right value.

        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::pageCount):

2014-05-01  Brent Fulgham  <bfulgham@apple.com>

        Fix handling of attributes prior to compiling shader
        https://bugs.webkit.org/show_bug.cgi?id=132430

        Reviewed by Dean Jackson.

        WebGL programs that called bindAttribLocations prior to compiling shader sources
        would perform the bind using the non-hashed symbol name, but would later create
        the attributes as hashed names. Consequently, the program would refer to
        attributes that were never actually part of any shader, resulting in some amazing
        display artifacts.

        This patch adds a dictionary of hashed symbol names so that we can tell the WebGL
        program the proper name that will be used when the shader is eventually compiled,
        allowing the WebGL program to link against the proper symbol after compiling and
        linking completes.

        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::generateHashedName): Function uses the ANGLE hashing
        function to generate correct symbol.
        (WebCore::GraphicsContext3D::mappedSymbolName): If we haven't compiled shaders yet, look
        in our set of potentially unused attributes.
        (WebCore::GraphicsContext3D::originalSymbolName): Ditto, for reverse lookup.

2014-05-01  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make selection gaps painting subpixel aware.
        https://bugs.webkit.org/show_bug.cgi?id=132169

        Reviewed by Simon Fraser.

        Push selection gaps painting to device pixel boundaries instead of integral CSS pixel positions.

        Test: fast/inline/hidpi-selection-gap-on-subpixel-position.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::blockSelectionGap):
        (WebCore::RenderBlock::logicalLeftSelectionGap):
        (WebCore::RenderBlock::logicalRightSelectionGap):

2014-05-01  David Kilzer  <ddkilzer@apple.com>

        Really remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
        <http://webkit.org/b/132432>

        Reviewed by Tim Horton.

        * platform/graphics/wince/MediaPlayerPrivateWinCE.h: Remove
        methods and ivar in ENABLE(PLUGIN_PROXY_FOR_VIDEO).

2014-05-01  Javier Fernandez  <jfernandez@igalia.com>

        [CSS Grid Layout] Clamping the number of repetitions in repeat()
        https://bugs.webkit.org/show_bug.cgi?id=131023

        Reviewed by Brent Fulgham.

        The ED suggests now to be able to clamp the number of repetitions when
        using the repeat() function, taking precautions about excessive memory
        usage.

        The implemented max repetitions is 10K.

        Test: fast/css-grid-layout/grid-element-repeat-max-repetitions.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTrackRepeatFunction):

2014-04-30  Jer Noble  <jer.noble@apple.com>

        [MSE] Seeking between two buffered ranges enquues incorrect buffers.
        https://bugs.webkit.org/show_bug.cgi?id=132416

        Reviewed by Eric Carlson.

        std::equal_range(begin, end, value) will return an empty range if equal values cannot
        be found. But the range is not necessarily [end, end).  It may be some other value n,
        such that the empty range is [n, n). Check to see if the returned range is empty in
        findSampleContainingPresentationTime() and its reverse version, and if so, explicitly
        return presentationEnd() or reversePresentationEnd() respectively.

        Drive-by fix: make the comparator functions take const& arguments to minimize object
        creation.

        * Modules/mediasource/SampleMap.cpp:
        (WebCore::SampleIsLessThanMediaTimeComparator::operator()):
        (WebCore::SampleIsGreaterThanMediaTimeComparator::operator()):
        (WebCore::SampleMap::findSampleContainingPresentationTime):
        (WebCore::SampleMap::reverseFindSampleContainingPresentationTime):

2014-05-01  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Inline text selection painting should not snap to integral CSS pixel position.
        https://bugs.webkit.org/show_bug.cgi?id=132164

        Reviewed by Darin Adler.

        Inline text selection painting now snaps to device pixels. It uses the same rounding logic as
        other painting functions.

        Test: fast/inline/hidpi-select-inline-on-subpixel-position.html

        * rendering/EllipsisBox.cpp:
        (WebCore::EllipsisBox::paintSelection):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintSelection):
        (WebCore::alignSelectionRectToDevicePixels): Deleted.
        * rendering/InlineTextBox.h:

2014-05-01  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] There are many warnings with software backend
        https://bugs.webkit.org/show_bug.cgi?id=132422

        Reviewed by Gyuyoung Kim.

        ecore_evas_gl_x11_window_get should be called when only engine is opengl_x11.

        This patch refactors not to call unnecessary API by checking engine type.
        In addition, removed unnecessary isUsingEcoreX().

        * platform/efl/EflScreenUtilities.cpp:
        (WebCore::applyFallbackCursor):
        (WebCore::getEcoreXWindow):
        (WebCore::isUsingEcoreX): Deleted.
        * platform/efl/EflScreenUtilities.h:

2014-05-01  Rik Cabanier  <cabanier@adobe.com>

        Calling createPattern with a broken image must throw an invalidstate error
        https://bugs.webkit.org/show_bug.cgi?id=132407

        Reviewed by Dirk Schulze.

        Per the WebIDL spec, passing non-finite parameter to a method that
        takes doubles, should generate a type error.

        Tests:
        * canvas/philip/tests/2d.imageData.create2.nonfinite.html:
        * fast/canvas/canvas-2d-imageData-create-nonfinite.html:

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::createImageData):

2014-04-30  David Hyatt  <hyatt@apple.com>

        REGRESSION (r168046): [New Multicolumn] LeftToRight-rl.html (and all the other reversed/block-axis pagination tests) fail
        https://bugs.webkit.org/show_bug.cgi?id=132419

        Reviewed by Andreas Kling.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
        Don't flip here. The old code needed to do that, but the new code doesn't.

2014-04-30  Alexey Proskuryakov  <ap@apple.com>

        Roll out fix for https://bugs.webkit.org/show_bug.cgi?id=131637:
        Clean up unnecessary methods in the BackForwardClient interface

        It broke a regression test and an API test.

        * WebCore.exp.in:
        * history/BackForwardClient.h:
        (WebCore::BackForwardClient::backItem):
        (WebCore::BackForwardClient::currentItem):
        (WebCore::BackForwardClient::forwardItem):
        * history/BackForwardController.cpp:
        (WebCore::BackForwardController::BackForwardController):
        * history/BackForwardController.h:
        (WebCore::BackForwardController::client):
        * history/BackForwardList.cpp:
        (WebCore::BackForwardList::BackForwardList):
        (WebCore::BackForwardList::close):
        * history/BackForwardList.h:
        (WebCore::BackForwardList::create):
        (WebCore::BackForwardList::page):
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::PageClients::PageClients):
        * page/Page.h:

2014-04-30  Simon Fraser  <simon.fraser@apple.com>

        More iOS build fixing. MediaPlayerPrivateIOS is defunct and can be removed.
        Fix some build errors in other media files.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/MediaPlayer.cpp:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        * platform/graphics/ios/MediaPlayerPrivateIOS.h: Removed.
        * platform/graphics/ios/MediaPlayerPrivateIOS.mm: Removed.

2014-04-30  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build, which no longer needs these calls
        to enter/exitFullscreen.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):

2014-04-30  Simon Fraser  <simon.fraser@apple.com>

        Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO
        https://bugs.webkit.org/show_bug.cgi?id=132396

        Reviewed by Eric Carlson.

        Remove ENABLE_PLUGIN_PROXY_FOR_VIDEO and related code.

        * Configurations/FeatureDefines.xcconfig:
        * WebCore.exp.in:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::canShareStyleWithElement):
        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createDocument):
        * editing/TextIterator.cpp:
        (WebCore::isRendererReplacedElement):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::setNeedWidgetUpdate): Deleted.
        * html/HTMLMediaSession.cpp:
        (WebCore::HTMLMediaSession::showPlaybackTargetPicker):
        (WebCore::HTMLMediaSession::hasWirelessPlaybackTargets):
        (WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners):
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::createElementRenderer):
        (WebCore::HTMLVideoElement::didAttachRenderers):
        (WebCore::HTMLVideoElement::parseAttribute):
        (WebCore::HTMLVideoElement::setDisplayMode):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateSizes):
        * loader/EmptyClients.cpp:
        (WebCore::EmptyFrameLoaderClient::createMediaPlayerProxyPlugin): Deleted.
        * loader/EmptyClients.h:
        * loader/FrameLoaderClient.h:
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadPlugin):
        (WebCore::SubframeLoader::loadMediaPlayerProxyPlugin): Deleted.
        * loader/SubframeLoader.h:
        * page/FrameView.cpp:
        (WebCore::FrameView::updateEmbeddedObject):
        * page/Settings.cpp:
        (WebCore::Settings::setVideoPluginProxyEnabled): Deleted.
        * page/Settings.h:
        (WebCore::Settings::isVideoPluginProxyEnabled): Deleted.
        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::mediaLayerMustBeUpdatedOnMainThread): Deleted.
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::installedMediaEngines):
        (WebCore::MediaPlayer::MediaPlayer):
        (WebCore::MediaPlayer::loadWithNextMediaEngine):
        (WebCore::NullMediaPlayerPrivate::deliverNotification): Deleted.
        (WebCore::NullMediaPlayerPrivate::setMediaPlayerProxy): Deleted.
        (WebCore::NullMediaPlayerPrivate::setControls): Deleted.
        (WebCore::MediaPlayer::deliverNotification): Deleted.
        (WebCore::MediaPlayer::setMediaPlayerProxy): Deleted.
        (WebCore::MediaPlayer::setControls): Deleted.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::deliverNotification): Deleted.
        (WebCore::MediaPlayerPrivateInterface::setMediaPlayerProxy): Deleted.
        (WebCore::MediaPlayerPrivateInterface::setControls): Deleted.
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateGeometry):
        (WebCore::GraphicsLayerCA::updateContentsRects):
        (WebCore::GraphicsLayerCA::mediaLayerMustBeUpdatedOnMainThread): Deleted.
        * platform/graphics/ca/GraphicsLayerCA.h:
        * rendering/RenderEmbeddedObject.cpp:
        (WebCore::RenderEmbeddedObject::canHaveChildren):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::mediaLayerMustBeUpdatedOnMainThread): Deleted.
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForVideo):

2014-04-30  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Some accerated overflow-scroll doesn't scroll correctly
        https://bugs.webkit.org/show_bug.cgi?id=132375

        Reviewed by Tim Horton.
        
        We set the size of the scrolling layer (which becomes the bounds of
        the UIScrollView) to a non-pixel-snapped padding box size, but the
        size of the contents layer is an integral-snapped scroll size.
        This would result in a fractional difference between the two, which
        makes us thing that the element is scrollable when it really is not.
        
        Fix by setting the size of the scroll layer to pixel snapped client size,
        which is what we also use for scrollability computation.
        
        Added some FIXMEs in code that requires pixel snapping.
        
        Also use #if PLATFORM(IOS)/#else to bracket some code that never runs on iOS
        but tries to do something similar to iOS-only code.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2014-04-30  David Hyatt  <hyatt@apple.com>

        REGRESSION (r168046): [New Multicolumn] Painting order is wrong for columns and fixed positioned elements
        https://bugs.webkit.org/show_bug.cgi?id=132377

        Reviewed by Simon Fraser.

        Added fast/multicol/fixed-stack.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::shouldBeSelfPaintingLayer):
        (WebCore::RenderLayer::shouldBeNormalFlowOnly):
        Change the flow thread layer for multicolumn layout to be normal flow only and to
        stay self-painting. This has the effect of keeping the flow thread layer grouped
        with the enclosing multicolumn layer, and this keeps the paint order correct when
        compositing kicks in (or when something would otherwise try to get between the
        two layers).

2014-04-30  Eric Carlson  <eric.carlson@apple.com>

        [iOS] do not pause video when entering background while playing to external device
        https://bugs.webkit.org/show_bug.cgi?id=132374

        Reviewed by Jer Noble.

        * WebCore.exp.in: Update beginInterruption signature.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::canOverrideBackgroundPlaybackRestriction): New, return true when
            playing to external device.
        * html/HTMLMediaElement.h:

        * platform/audio/MediaSession.cpp:
        (WebCore::MediaSession::beginInterruption): Add interruption type to beginInterruption.
        * platform/audio/MediaSession.h:

        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::beginInterruption): Ditto.
        (WebCore::MediaSessionManager::applicationWillEnterBackground): Ditto.
        (WebCore::MediaSessionManager::systemWillSleep): Ditto.
        * platform/audio/MediaSessionManager.h:

        * platform/audio/ios/AudioDestinationIOS.h:
        * platform/audio/ios/MediaSessionManagerIOS.mm:
        (-[WebMediaSessionHelper interruption:]): Ditto.

        * platform/audio/mac/AudioDestinationMac.h: Make most methods private. Add 
            canOverrideBackgroundPlaybackRestriction. Add missing overrides.
        * testing/Internals.cpp:
        (WebCore::Internals::beginMediaSessionInterruption): Pass interruption type.

2014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>

        Unreviewed, rolling out r167879 and r167942.
        https://bugs.webkit.org/show_bug.cgi?id=132408

        OrderIterator changes caused regressions in flexbox (Requested
        by rego on #webkit).

        We're keeping the new layout test introduced in r167942
        (fast/flexbox/order-iterator-crash.html) to avoid similar
        regressions in the future.

        Reverted changesets:

        "OrderIterator refactoring to avoid extra loops"
        https://bugs.webkit.org/show_bug.cgi?id=119061
        http://trac.webkit.org/changeset/167879

        "REGRESSION (r167879): Heap-use-after-free in
        WebCore::RenderFlexibleBox"
        https://bugs.webkit.org/show_bug.cgi?id=132337
        http://trac.webkit.org/changeset/167942

2014-04-30  Enrica Casucci  <enrica@apple.com>

        Cursor gets thinner on empty lines.
        https://bugs.webkit.org/show_bug.cgi?id=132411
        <rdar://problem/15994556>

        Reviewed by Benjamin Poulain.

        RenderLineBreak::localCaretRect should not define
        locally the constant caretWidth, but use the one from
        RenderObject.h which knows about the differences between
        iOS and the other platforms.

        * rendering/RenderLineBreak.cpp:
        (WebCore::RenderLineBreak::localCaretRect):

2014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>

        [GStreamer] Use GstMetaVideo
        https://bugs.webkit.org/show_bug.cgi?id=132247

        Reviewed by Philippe Normand.

        In WebKitVideoSink we announce the usage of GstMetaVideo, but we do
        not use it when handling the video frames. This might break
        some decoders and filters that rely on buffer's meta, rather
        that in the caps structures.

        This patch enables the use of GstMetaVideo through the GstVideoFrame
        API. And it is used everywhere the buffer mapping is required.

        Also this patch changes to nullptr where zeros were used.

        Also, compile conditionally the video buffer conversion when it is
        ARGB/BGRA, since it is only required for the Cairo backend.

        No new tests, already covered by current tests.

        * platform/graphics/gstreamer/GStreamerUtilities.cpp:
        (WebCore::getVideoSizeAndFormatFromCaps): init the GstVideoInfo before
        used and remove caps fixate check since it is done by
        gst_video_info_from_caps().
        * platform/graphics/gstreamer/ImageGStreamer.h:
        * platform/graphics/gstreamer/ImageGStreamerCairo.cpp:
        (ImageGStreamer::ImageGStreamer): use GstVideoFrame for buffer mapping
        and unmapping.
        (ImageGStreamer::~ImageGStreamer): ditto.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): ditto.
        (WebCore::MediaPlayerPrivateGStreamerBase::currentVideoSinkCaps):
        return nullptr if failed.
        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
        (webkitVideoSinkRender): rely on GstVideoInfo rather than on the
        caps. Use GstVideoFrame for buffer mapping and unmapping. Add guards
        for buffer transformation, since it's only used by Cairo.
        (webkitVideoSinkDispose): remove glib version guards.
        (webkitVideoSinkSetCaps): update the value of the private
        GstVideoInfo.

2014-04-30  Víctor Manuel Jáquez Leal  <vjaquez@igalia.com>

        [GTK][GStreamer] Remove unnecessary GLIB_CHECK_VERSION #ifdefs
        https://bugs.webkit.org/show_bug.cgi?id=132390

        Reviewed by Philippe Normand.

        Since EFL port use GLib 2.38 and GTK+, 2.33.2, I assume it is OK
        remove, in GTK+ and GST, the existing glib version guards.

        No new tests, already covered by current tests.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::MediaPlayerPrivateGStreamerBase):
        (WebCore::MediaPlayerPrivateGStreamerBase::~MediaPlayerPrivateGStreamerBase):
        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
        (webkitVideoSinkDispose):
        (webkitVideoSinkFinalize): Deleted.

2014-04-30  Alex Christensen  <achristensen@webkit.org>

        Updated ANGLE.
        https://bugs.webkit.org/show_bug.cgi?id=132367
        <rdar://problem/16211451>

        Reviewed by Dean Jackson.

        * CMakeLists.txt
        Fixed ANGLE compiling with the update.
        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
        Removed SH_MAP_LONG_VARIABLE_NAMES which is no longer defined in ANGLE.
        See https://chromium.googlesource.com/angle/angle/+/3cdfcce86b38ef31a0afd71855887193a7924468
        * platform/graphics/opengl/Extensions3DOpenGLES.h:
        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
        Updated type names from ANGLE.

2014-04-30  Alexey Proskuryakov  <ap@apple.com>

        Move Blob.slice() implementation into BlobRegistryImpl
        https://bugs.webkit.org/show_bug.cgi?id=132402

        Reviewed by Anders Carlsson.

        Part or centralizing the responsibility for file size tracking.

        * fileapi/Blob.cpp:
        (WebCore::Blob::Blob):
        (WebCore::Blob::slice): Deleted.
        * fileapi/Blob.h:
        (WebCore::Blob::slice):
        * fileapi/ThreadableBlobRegistry.cpp:
        (WebCore::ThreadableBlobRegistry::registerBlobURL):
        (WebCore::ThreadableBlobRegistry::registerBlobURLForSlice):
        (WebCore::registerBlobURLTask): Deleted.
        (WebCore::registerBlobURLFromTask): Deleted.
        * fileapi/ThreadableBlobRegistry.h:
        * platform/network/BlobRegistry.h:
        * platform/network/BlobRegistryImpl.cpp:
        (WebCore::BlobRegistryImpl::appendStorageItems):
        (WebCore::BlobRegistryImpl::registerBlobURLForSlice):
        (WebCore::BlobRegistryImpl::blobSize):
        * platform/network/BlobRegistryImpl.h:

2014-04-30  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix after r168041.

        * WebCore.exp.in: Add missing iOS exports.

2014-04-30  Beth Dakin  <bdakin@apple.com>

        Always-visible scrollbars continuously repaint after non-momentum scrollling
        https://bugs.webkit.org/show_bug.cgi?id=132403
        -and corresponding-
        <rdar://problem/16553878>

        Reviewed by Simon Fraser.

        No longer universally opt into presentation value mode whenever the scroll 
        position changes on the scrolling thread. We really only want it for momentum 
        scrolls, and this will ensure that we always set it to NO once we have set it to 
        YES.
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):

        Expose shouldUsePresentationValue.
        * platform/mac/NSScrollerImpDetails.h:

2014-04-30  Anders Carlsson  <andersca@apple.com>

        Move the legacy WebKit API into WebKitLegacy.framework and move it inside WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=132399
        <rdar://problem/15920046>

        Reviewed by Dan Bernstein.

        Allow WebKitLegacy to link against WebCore.

        * Configurations/WebCore.xcconfig:

2014-04-30  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] ASSERTs in fast/dynamic/continuation-detach-crash.html
        https://bugs.webkit.org/show_bug.cgi?id=132392

        Reviewed by Dean Jackson.

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::setRegionRangeForBox):
        Add ASSERTs in case we ever try to set regions from the wrong flow thread
        as part of the box's region range.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
        Add a bunch of code that handles the discovery of a span from an outer flow thread
        being inserted into an inner flow thread. This forces us to delete that placeholder
        and shift the outer spanning content into the inner flow thread in order to get a new
        mapping/placeholder created in the inner flow thread.

        (WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
        Tighten this code to use the parent() just in case we change the invariant of
        parent = containingBlock later.

        * rendering/RenderMultiColumnFlowThread.h:
        Add a static guard when shifting a spanner to prevent the outer flow thread from
        thinking the spanner belongs to it when it gets punted out of the inner flow thread.
        A better long-term solution might be to make the spanner map global instead of
        per-flow thread.

        * rendering/RenderMultiColumnSpannerPlaceholder.cpp:
        (WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):
        * rendering/RenderMultiColumnSpannerPlaceholder.h:
        Cache the flow thread so that we can get back to it in order to detect if the
        placeholder belongs to us or not.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::insertedIntoTree):
        Notifications from insertedIntoTree are problematic, since this can be called during
        the layout of the outer flow thread for content inside an inner flow thread that is
        not getting a layout yet. This makes the currentFlowThread in the flow thread controller
        inaccurate, so we have to add code to clear it out and put it back.

2014-04-29  Chris Fleizach  <cfleizach@apple.com>

        AX: Make "contenteditable" regions into AXTextAreas
        https://bugs.webkit.org/show_bug.cgi?id=132379

        Reviewed by Mario Sanchez Prada.

        Make contenteditable regions into AXTextAreas. This will allow for a more standardized
        interface for interaction with assistive technologies.

        Test: accessibility/content-editable-as-textarea.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::hasContentEditableAttributeSet):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::contentEditableAttributeIsEnabled):
        * accessibility/AccessibilityObject.h:
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::documentBasedSelectedTextRange):
        (WebCore::AccessibilityRenderObject::selectedText):
        (WebCore::AccessibilityRenderObject::selectedTextRange):
        (WebCore::AccessibilityRenderObject::renderObjectIsObservable):
        (WebCore::AccessibilityRenderObject::determineAccessibilityRole):
        (WebCore::AccessibilityRenderObject::ariaSelectedTextRange): Deleted.
        * accessibility/AccessibilityRenderObject.h:

2014-04-30  Brian J. Burg  <burg@cs.washington.edu>

        Clean up unnecessary methods in the BackForwardClient interface
        https://bugs.webkit.org/show_bug.cgi?id=131637

        Reviewed by Andreas Kling.

        Demote back/current/forwardItem and iOS-specific methods from the
        BackForwardClient interface. Convert the class to not be refcounted.

        No new tests, no behavior was changed.

        * WebCore.exp.in:
        * history/BackForwardClient.h:
        (WebCore::BackForwardClient::~BackForwardClient): Deleted.
        (WebCore::BackForwardClient::backItem): Deleted.
        (WebCore::BackForwardClient::currentItem): Deleted.
        (WebCore::BackForwardClient::forwardItem): Deleted.
        * history/BackForwardController.cpp:
        (WebCore::BackForwardController::BackForwardController):
        * history/BackForwardController.h: Take ownership of the passed BackForwardClient.
        (WebCore::BackForwardController::client): Return a reference.
        * history/BackForwardList.h: Remove the Page field, since it isn't used any more.
        (WebCore::BackForwardList::create): Deleted.
        * page/Page.h: Remove RefPtr from PageClient.
        * page/Page.cpp:
        (WebCore::PageClients::PageClients): Initialize client to nullptr.

2014-04-30  Brent Fulgham  <bfulgham@apple.com>

        [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
        https://bugs.webkit.org/show_bug.cgi?id=132320

        Reviewed by Eric Carlson.

        * Modules/mediacontrols/mediaControlsApple.css:
        (video::-webkit-media-text-track-container .hidden): Added.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::configureTextTrackGroup): Added call to
        new 'updateCaptionsContainer'.
        (WebCore::HTMLMediaElement::updateCaptionContainer): Added.
        * html/HTMLMediaElement.h:

2014-04-30  Alexey Proskuryakov  <ap@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=132363
        Make Blob RawData immutable

        Reviewed by Anders Carlsson.

        * Modules/websockets/WebSocket.cpp: (WebCore::WebSocket::didReceiveBinaryData):
        Create RawData in one step.

        * WebCore.exp.in: Don't export a constructor that we no longer have (and the new one is inline).

        * fileapi/Blob.cpp: Removed entirely dead code.

        * fileapi/WebKitBlobBuilder.cpp:
        * fileapi/WebKitBlobBuilder.h:
        Updated to collect data in a plain Vector, so that we don't have to modify RawData.
        Removed FIXMEs about renaming - there used to be a BlobBuilder exposed to JS, but
        now this is just a helper to implement JS Blob constructor. We should probably
        still rename it, but not how the FIXME suggested.

        * platform/network/BlobData.cpp:
        (WebCore::BlobDataItem::detachFromCurrentThread): RawData::detachFromCurrentThread()
        was a no-op.
        (WebCore::BlobDataHandle::BlobDataHandle): Deleted. This was entirely dead code.
        (WebCore::BlobDataHandle::~BlobDataHandle): Ditto.

        * platform/network/BlobData.h: Made RawData immutable.

        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::responseBlob):
        Create RawData in one step.

2014-04-30  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Region offset not factored in when mapping to local coords
        https://bugs.webkit.org/show_bug.cgi?id=132383

        Reviewed by Anders Carlsson.

        Make sure to cache the offset of the multicolumn set from its parent and then
        add that in to the translation offset.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):

2014-04-30  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>

        Move removeEquivalentProperties functions to EditingStyle
        https://bugs.webkit.org/show_bug.cgi?id=131093

        Reviewed by Csaba Osztrogonác.

        A follow-up to r167967. Use single line declaration for template methods.

        * editing/EditingStyle.h:

2014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Enable runtime feature by default
        https://bugs.webkit.org/show_bug.cgi?id=132189

        Reviewed by Benjamin Poulain.

        * page/Settings.in: Set cssGridLayoutEnabled to true.

2014-04-30  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Grid Layout] Wrap some specific grid code under compilation flag
        https://bugs.webkit.org/show_bug.cgi?id=132341

        Reviewed by Benjamin Poulain.

        Some static variables in RenderBox are only used for CSS Grid Layout code. Wrap them and the related methods
        under ENABLE_CSS_GRID_LAYOUT compilation flag.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::willBeDestroyed):
        (WebCore::RenderBox::containingBlockLogicalWidthForContent):
        (WebCore::RenderBox::containingBlockLogicalHeightForContent):
        (WebCore::RenderBox::perpendicularContainingBlockLogicalHeight):
        (WebCore::RenderBox::computePercentageLogicalHeight):
        * rendering/RenderBox.h:

2014-04-29  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167962 and r167975.
        https://bugs.webkit.org/show_bug.cgi?id=132376

        Mysteriously broke many tests (Requested by ap on #webkit).

        Reverted changesets:

        "[Mac, iOS] Support caption activation via JS
        webkitHasClosedCaptions method"
        https://bugs.webkit.org/show_bug.cgi?id=132320
        http://trac.webkit.org/changeset/167962

        "Unreviewed test fix after r167962."
        http://trac.webkit.org/changeset/167975

2014-04-29  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Multiple tests assert in RenderGeometryMap
        https://bugs.webkit.org/show_bug.cgi?id=132285

        Reviewed by Simon Fraser.

        Implement offsetFromContainer for RenderMultiColumnFlowThread so that the
        geometry map gets the right offsets. This is really only relevant for the 
        geometry map, since I already overrode mapAbsoluteToLocalPoint and multicolumn
        flow threads are repaint containers (so mapLocalToAbsolute never needs offsetFromContainer).

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::offsetFromContainer):
        * rendering/RenderMultiColumnFlowThread.h:

2014-04-29  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] When pageScaleFactor * deviceScaleFactor = 1, the tile grid is completely messed up
        https://bugs.webkit.org/show_bug.cgi?id=132368

        Reviewed by Simon Fraser.

        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::TileController):
        The initial device scale factor was initialized to 1. We were returning the wrong zoomedOutContentsScale() and
        contentsScale() on retina devices until the next successful scale update.

2014-04-29  Alexey Proskuryakov  <ap@apple.com>

        Remove an unused override of BlobRegistryImpl::appendStorageItems
        https://bugs.webkit.org/show_bug.cgi?id=132365

        Reviewed by Andreas Kling.

        * platform/network/BlobRegistryImpl.cpp:
        (WebCore::BlobRegistryImpl::appendStorageItems): Deleted.
        * platform/network/BlobRegistryImpl.h:

2014-04-29  Eric Carlson  <eric.carlson@apple.com>

        [Mac] tag the video layers with descriptive name to aid debugging
        https://bugs.webkit.org/show_bug.cgi?id=132371

        Reviewed by Darin Adler.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Set the AVPlayerLayer
            name in a debug build.

2014-04-29  Nikos Andronikos  <nikos.andronikos-webkit@cisra.canon.com.au>

        [GTK][cmake] CMake variable (non)expansion causing 'File name too long' build error.
        https://bugs.webkit.org/show_bug.cgi?id=132244

        Reviewed by Martin Robinson.

        Removing quotes around include directory variable ${WebCore_INCLUDE_DIRECTORIES} in
        the include_directories cmake macro enables the variable to be expanded correctly.

        No tests created as this fixes a platform specific build issue.

        * PlatformGTK.cmake:

2014-04-29  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed test fix after r167962.
        * Modules/mediacontrols/mediaControlsApple.css:
        (.hidden): Use common '.hidden' class for controls.
        (video::-webkit-media-text-track-container .hidden): Deleted.

2014-04-29  Brady Eidson  <beidson@apple.com>

        Handle selection services menu.
        <rdar://problem/16727798> and https://bugs.webkit.org/show_bug.cgi?id=132362

        Reviewed by Tim Horton.

        * WebCore.exp.in:

2014-04-29  Myles C. Maxfield  <mmaxfield@apple.com>

        Removing unused argument in InlineFlowBox::placeBoxesInInlineDirection()
        https://bugs.webkit.org/show_bug.cgi?id=132369

        Reviewed by Darin Adler.

        This was not caught by our compiler because placeBoxesInInlineDirection()
        is mutually-recursive with placeBoxRangeInInlineDirection().

        No new tests are necessary because there should be no behavior change.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesInInlineDirection):
        (WebCore::InlineFlowBox::placeBoxRangeInInlineDirection):
        * rendering/InlineFlowBox.h:
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):

2014-04-29  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Switch video from GStreamer to Media Foundation.
        https://bugs.webkit.org/show_bug.cgi?id=132358

        Reviewed by Brent Fulgham.

        * WebCore.vcxproj/WebCore.vcxproj:
        Removed dependencies on GStreamer.

2014-04-29  Simon Fraser  <simon.fraser@apple.com>

        Remove some PLATFORM(IOS) #ifdefs related to hasAcceleratedTouchScrolling()
        https://bugs.webkit.org/show_bug.cgi?id=132353

        Reviewed by Tim Horton & Darin Adler.

        Minor cleanup and refactoring to remove #idefs.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollTo): No need for this #ifdef, usesCompositedScrolling()
        gives the right answser already.
        (WebCore::RenderLayer::visibleContentRectInternal): Use showsOverflowControls() to
        avoid #ifdef.
        (WebCore::RenderLayer::invalidateScrollbarRect): Ditto.
        (WebCore::RenderLayer::invalidateScrollCornerRect): Ditto.
        (WebCore::RenderLayer::verticalScrollbarWidth): Ditto.
        (WebCore::RenderLayer::horizontalScrollbarHeight): Ditto.
        (WebCore::RenderLayer::showsOverflowControls): Return false on iOS.
        (WebCore::RenderLayer::paintOverflowControls): Ditto.
        (WebCore::RenderLayer::calculateClipRects): Ditto.
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::layerOrAncestorIsTransformedOrUsingCompositedScrolling):
        Just #ifdef in side of this function rather than having two similar functions.
        (WebCore::RenderLayerBacking::shouldClipCompositedBounds):
        (WebCore::hasNonZeroTransformOrigin):
        (WebCore::RenderLayerBacking::updateGraphicsLayerConfiguration): Use a local bool
        to reduce #ifdefs.
        (WebCore::layerOrAncestorIsTransformedOrScrolling): Deleted.

2014-04-29  Simon Fraser  <simon.fraser@apple.com>

        Remove Settings::compositedScrollingForFramesEnabled
        https://bugs.webkit.org/show_bug.cgi?id=132352

        Reviewed by Andreas Kling.

        The usesCompositedScrolling setting was only used by Chromium, so
        remove it and associated code.

        * page/FrameView.cpp:
        (WebCore::FrameView::usesCompositedScrolling): Deleted.
        * page/FrameView.h:
        * page/Settings.in:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollLayerPosition):

2014-04-29  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>

        Move removeEquivalentProperties functions to EditingStyle
        https://bugs.webkit.org/show_bug.cgi?id=131093

        Reviewed by Darin Adler.

        Moved the removeEquivalentProperties functions
        from StyleProperties to EditingStyle class.

        * css/StyleProperties.cpp:
        (WebCore::MutableStyleProperties::removeEquivalentProperties): Deleted.
        * css/StyleProperties.h:
        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::removeStyleAddedByNode):
        (WebCore::EditingStyle::removeStyleConflictingWithStyleOfNode):
        (WebCore::EditingStyle::prepareToApplyAt):
        (WebCore::EditingStyle::removeEquivalentProperties):
        (WebCore::extractPropertiesNotIn):
        * editing/EditingStyle.h:

2014-04-29  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Implement support for compositing
        https://bugs.webkit.org/show_bug.cgi?id=132298

        Reviewed by Simon Fraser.

        * rendering/RenderLayer.cpp:
        (WebCore::accumulateOffsetTowardsAncestor):
        Add in a case for the new columns that calls into the multi-column flow thread
        to get an offset to adjust by.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::adjustAncestorCompositingBoundsForFlowThread):
        Make sure this code only runs for named flow threads.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::canBeComposited):
        Turn on compositing support for in-flow RenderFlowThreads instead of always returning
        false

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
        Changed this function to fix a couple of bugs exposed by compositing/columns tests. Its
        end goal is the same, but the approach is improved.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::endFlow):
        Don't pad out to a multiple of column height. You can't flip around a flow thread
        to get back to accurate physical coordinates if bogus padding is introduced. This
        seemed to have no effect on any layout tests when removed, so I don't think it 
        was really serving any useful purpose.

        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
        Don't factor in the overall flow thread portion, since this is handled by the callers
        now.

        (WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
        * rendering/RenderMultiColumnSet.h:
        Change this function to be ASSERT_NOT_REACHED(), since we want to know if someone calls
        it. It only runs for named flow thread compositing code, so it would be a mistake if
        this ever gets invoked.

2014-04-29  Mark Hahnenberg  <mhahnenberg@apple.com>

        JSProxies should be cacheable
        https://bugs.webkit.org/show_bug.cgi?id=132351

        Reviewed by Geoffrey Garen.

        No new tests.

        Whenever we encounter a proxy in an inline cache we should try to cache on the 
        proxy's target instead of giving up.

        This patch adds support for a simple "recursive" inline cache if the base object
        we're accessing is a pure forwarding proxy. JSGlobalObject and its subclasses 
        are the only ones to benefit from this right now.

        This is performance neutral on the benchmarks we track. Currently we won't
        cache on JSDOMWindow due to HasImpureGetOwnPropertySlot, but this issue will be fixed soon.

        * bindings/js/JSDOMWindowShell.h:
        (WebCore::JSDOMWindowShell::createStructure):

2014-04-29  Brent Fulgham  <bfulgham@apple.com>

        [Mac, iOS] Support caption activation via JS webkitHasClosedCaptions method
        https://bugs.webkit.org/show_bug.cgi?id=132320

        Reviewed by Eric Carlson.

        * Modules/mediacontrols/mediaControlsApple.css:
        (video::-webkit-media-text-track-container .hidden): Added.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::configureTextTrackGroup): Added call to
        new 'updateCaptionsContainer'.
        (WebCore::HTMLMediaElement::updateCaptionContainer): Added.
        * html/HTMLMediaElement.h:
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::hide): Use CSS class .hidden instead of
        hard-coded "display:none".
        (WebCore::MediaControlTextTrackContainerElement::show): Ditto.
        * html/shadow/MediaControlElements.h:

2014-04-28  Roger Fong  <roger_fong@apple.com>

        Plugins hidden by images should autoplay.
        https://bugs.webkit.org/show_bug.cgi?id=132222.
        <rdar://problem/16653536>

        Reviewed by Jon Lee and Darin Adler.

        * WebCore.exp.in: Add exports needed by WK2.

2014-04-29  Filip Pizlo  <fpizlo@apple.com>

        Use LLVM as a backend for the fourth-tier DFG JIT (a.k.a. the FTL JIT)
        https://bugs.webkit.org/show_bug.cgi?id=112840

        Rubber stamped by Geoffrey Garen.

        It already has a lot of tests.

        * Configurations/FeatureDefines.xcconfig:

2014-04-29  Brady Eidson  <beidson@apple.com>

        Change Image Controls replacement to use selection and paste
        <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992

        Reviewed by Tim Horton.

        * WebCore.exp.in: Remove deleted symbol.

        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
        (WebCore::ImageControlsButtonElementMac::defaultEventHandler):

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::showImageControlsMenu): Select the image element
          before showing the menu.
        (WebCore::ContextMenuController::replaceControlledImage): Deleted.
        * page/ContextMenuController.h:

2014-04-29  Jer Noble  <jer.noble@apple.com>

        [iOS] Remove workaround for <rdar://problem/16578727>.
        https://bugs.webkit.org/show_bug.cgi?id=132338

        Reviewed by Darin Adler.

        Now that <rdar://problem/16578727> is fixed, remove the workaround by replacing the
        call to -_updatePlaybackControlsViewController with one to -layoutIfNeeded.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):

2014-04-29  Zan Dobersek  <zdobersek@igalia.com>

        ScriptExecutionContext::Task should work well with C++11 lambdas
        https://bugs.webkit.org/show_bug.cgi?id=129795

        Reviewed by Darin Adler.

        Instead of having classes that subclass ScriptExecutionContext::Task and override
        the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
        take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
        which would contain the code currently kept in the performTask() methods.

        This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
        cleanup tasks, the Task object can be implicitly constructed by using the initializer list
        constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
        The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
        object in the std::function wrapper, along with a boolean member that indicates whether the
        task is of cleanup nature.

        * Modules/quota/StorageErrorCallback.cpp:
        (WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
        (WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.
        * Modules/quota/StorageErrorCallback.h:
        (WebCore::StorageErrorCallback::CallbackTask::create): Deleted.
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::~Database):
        (WebCore::Database::runTransaction):
        (WebCore::Database::scheduleTransactionCallback):
        (WebCore::DerefContextTask::create): Deleted.
        (WebCore::DerefContextTask::performTask): Deleted.
        (WebCore::DerefContextTask::isCleanupTask): Deleted.
        (WebCore::DerefContextTask::DerefContextTask): Deleted.
        (WebCore::callTransactionErrorCallback): Deleted.
        (WebCore::DeliverPendingCallbackTask::create): Deleted.
        (WebCore::DeliverPendingCallbackTask::performTask): Deleted.
        (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::openDatabase):
        (WebCore::DatabaseCreationCallbackTask::create): Deleted.
        (WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
        (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
        (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
        (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.
        * Modules/webdatabase/SQLCallbackWrapper.h:
        (WebCore::SQLCallbackWrapper::clear):
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.
        * 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/ThreadableWebSocketChannelClientWrapper.h:
        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.
        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
        * bindings/js/JSCallbackData.h:
        (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
        (WebCore::DeleteCallbackDataTask::create): Deleted.
        (WebCore::DeleteCallbackDataTask::performTask): Deleted.
        (WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.
        * bindings/js/JSDOMGlobalObjectTask.cpp:
        (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
        (WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
        (WebCore::JSGlobalObjectTask::performTask): Deleted.
        * bindings/js/JSDOMGlobalObjectTask.h:
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
        * bindings/js/JSWorkerGlobalScopeBase.cpp:
        (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
        * bindings/scripts/CodeGeneratorJS.pm:
        * bindings/scripts/test/JS/JSTestCallback.cpp:
        (WebCore::JSTestCallback::~JSTestCallback):
        (GenerateCallbackImplementation):
        * dom/CrossThreadTask.h:
        (WebCore::CrossThreadTask1::performTask):
        (WebCore::CrossThreadTask2::performTask):
        (WebCore::CrossThreadTask3::performTask):
        (WebCore::CrossThreadTask4::performTask):
        (WebCore::CrossThreadTask5::performTask):
        (WebCore::CrossThreadTask6::performTask):
        (WebCore::CrossThreadTask7::performTask):
        (WebCore::CrossThreadTask8::performTask):
        (WebCore::createCallbackTask):
        (WebCore::CrossThreadTask1::create): Deleted.
        (WebCore::CrossThreadTask2::create): Deleted.
        (WebCore::CrossThreadTask3::create): Deleted.
        (WebCore::CrossThreadTask4::create): Deleted.
        (WebCore::CrossThreadTask5::create): Deleted.
        (WebCore::CrossThreadTask6::create): Deleted.
        (WebCore::CrossThreadTask7::create): Deleted.
        (WebCore::CrossThreadTask8::create): Deleted.
        * dom/Document.cpp:
        (WebCore::Document::addConsoleMessage):
        (WebCore::Document::addMessage):
        (WebCore::Document::postTask):
        (WebCore::Document::pendingTasksTimerFired):
        (WebCore::PerformTaskContext::PerformTaskContext): Deleted.
        (WebCore::Document::didReceiveTask): Deleted.
        * dom/Document.h:
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
        (WebCore::ScriptExecutionContext::timerAlignmentInterval):
        (WebCore::ProcessMessagesSoonTask::create): Deleted.
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
        (WebCore::ScriptExecutionContext::Task::~Task): Deleted.
        * dom/ScriptExecutionContext.h:
        (WebCore::ScriptExecutionContext::Task::Task):
        (WebCore::ScriptExecutionContext::Task::performTask):
        (WebCore::ScriptExecutionContext::Task::isCleanupTask):
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.
        * dom/StringCallback.cpp:
        (WebCore::StringCallback::scheduleCallback):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::postListenerTask):
        (WebCore::CallCacheListenerTask::create): Deleted.
        (WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::postTaskToLoader):
        (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
        (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
        (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
        (WebCore::DefaultSharedWorkerRepository::connectToWorker):
        (WebCore::SharedWorkerConnectTask::create): Deleted.
        (WebCore::SharedWorkerConnectTask::performTask): Deleted.
        * workers/WorkerEventQueue.cpp:
        (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
        (WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
        (WebCore::WorkerEventQueue::EventDispatcher::dispatch):
        (WebCore::WorkerEventQueue::enqueueEvent):
        (WebCore::WorkerEventQueue::cancelEvent):
        (WebCore::WorkerEventQueue::close):
        * workers/WorkerEventQueue.h:
        * workers/WorkerGlobalScope.cpp:
        (WebCore::WorkerGlobalScope::close):
        (WebCore::WorkerGlobalScope::postTask):
        (WebCore::WorkerGlobalScope::addConsoleMessage):
        (WebCore::WorkerGlobalScope::addMessage):
        (WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
        (WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
        (WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.
        * workers/WorkerGlobalScope.h:
        * workers/WorkerLoaderProxy.h:
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
        (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
        (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
        (WebCore::WorkerMessagingProxy::postTaskToLoader):
        (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
        (WebCore::WorkerMessagingProxy::workerThreadCreated):
        (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
        (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
        (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
        (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
        (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
        (WebCore::WorkerMessagingProxy::reportPendingActivity):
        (WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
        (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
        (WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
        (WebCore::MessageWorkerTask::create): Deleted.
        (WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
        (WebCore::MessageWorkerTask::performTask): Deleted.
        (WebCore::WorkerExceptionTask::create): Deleted.
        (WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
        (WebCore::WorkerExceptionTask::performTask): Deleted.
        (WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
        (WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
        (WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
        (WebCore::WorkerTerminateTask::create): Deleted.
        (WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
        (WebCore::WorkerTerminateTask::performTask): Deleted.
        (WebCore::WorkerThreadActivityReportTask::create): Deleted.
        (WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
        (WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
        (WebCore::PostMessageToPageInspectorTask::create): Deleted.
        (WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
        (WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
        (WebCore::NotifyNetworkStateChangeTask::create): Deleted.
        (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
        (WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.
        * workers/WorkerMessagingProxy.h:
        * workers/WorkerRunLoop.cpp:
        (WebCore::WorkerRunLoop::postTask):
        (WebCore::WorkerRunLoop::postTaskAndTerminate):
        (WebCore::WorkerRunLoop::postTaskForMode):
        (WebCore::WorkerRunLoop::Task::create):
        (WebCore::WorkerRunLoop::Task::performTask):
        (WebCore::WorkerRunLoop::Task::Task):
        * workers/WorkerRunLoop.h:
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::stop):
        (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
        (WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
        (WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
        (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
        (WebCore::WorkerThreadShutdownStartTask::create): Deleted.
        (WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
        (WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.

2014-04-29  Manuel Rego Casasnovas  <rego@igalia.com>

        REGRESSION (r167879): Heap-use-after-free in WebCore::RenderFlexibleBox
        https://bugs.webkit.org/show_bug.cgi?id=132337

        Reviewed by Simon Fraser.

        From Blink r154582 by <jchaffraix@chromium.org>

        This is a regression from the changes in OrderIterator. The issue is
        that we don't invalidate our iterator when a child is removed. This
        means that we could hold onto free'd memory until the next layout
        when we will recompute the iterator.

        The solution is simple: just clear the memory when we remove a child.

        Note that RenderGrid is not impacted by this bug as we don't use the
        iterator outside layout yet, but if we do it at some point the very same
        problem will arise, so the same treatment was applied to the class.

        Test: fast/flexbox/order-iterator-crash.html

        * rendering/OrderIterator.cpp:
        (WebCore::OrderIterator::invalidate): Clear m_children Vector.
        * rendering/OrderIterator.h:
        (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): Use
        invalidate() method.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::removeChild): Invalidate m_orderIterator.
        * rendering/RenderFlexibleBox.h: Add removeChild() signature.
        * rendering/RenderGrid.cpp: Invalidate m_orderIterator.
        (WebCore::RenderGrid::removeChild):
        * rendering/RenderGrid.h: Add removeChild() header.

2014-04-29  Enrica Casucci  <enrica@apple.com>

        iOS build fix after http://trac.webkit.org/changeset/167937.
        Unreviewed.

        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::adjustButtonStyle):

2014-04-29  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] off-by-one error in Shape::createRasterShape()
        https://bugs.webkit.org/show_bug.cgi?id=132154

        Reviewed by Bem Jones-Bey.

        This is a port of a patch for a bug that was reported by and fixed in Blink by
        David Vest: https://codereview.chromium.org/237123002/.  Shape::createRasterShape()
        now consistently reports "end-point exclusive" intervals. Before the patch
        an entire row of pixels was above the shape-image-threshold, the interval's end
        index was reported as image.width. Now it's image.width + 1, which is consistent
        with the way the end index is reported if the last above threshold pixel is within
        an image row.

        Two existing tests were revised to account for this change.

        * rendering/shapes/RasterShape.cpp:
        (WebCore::RasterShape::getExcludedIntervals):
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createRasterShape):

2014-04-29  Bem Jones-Bey  <bjonesbe@adobe.com>

        Wrap CSS length conversion arguments in an object
        https://bugs.webkit.org/show_bug.cgi?id=131552

        Reviewed by Andreas Kling.

        This patch introduces a class CSSToLengthConversionData to wrap the
        data required to convert CSS lengths to Lengths. This simplifies the
        plumbing that goes on whenever we need to resolve CSS lengths and
        makes it easier to update the arguments needed for resolving these (in
        particular adding a RenderView for resolving viewport units at style
        recalc time; removing the computingFontSize bool also appears
        possible).

        Note that the zoom argument, which was previously a float in some
        places and a double in others is now a float.

        This is a port of a Blink patch by timloh@chromium.org.

        No new tests, no behavior change.

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.xcodeproj/project.pbxproj:
        * css/BasicShapeFunctions.cpp:
        (WebCore::convertToLength):
        (WebCore::convertToLengthSize):
        (WebCore::convertToCenterCoordinate):
        (WebCore::cssValueToBasicShapeRadius):
        (WebCore::basicShapeForValue):
        * css/BasicShapeFunctions.h:
        * css/CSSCalculationValue.cpp:
        (WebCore::CSSCalcValue::computeLengthPx):
        (WebCore::determineCategory):
        * css/CSSCalculationValue.h:
        (WebCore::CSSCalcValue::createCalculationValue):
        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::addStops):
        (WebCore::positionFromValue):
        (WebCore::CSSGradientValue::computeEndPoint):
        (WebCore::CSSLinearGradientValue::createGradient):
        (WebCore::CSSRadialGradientValue::resolveRadius):
        (WebCore::CSSRadialGradientValue::createGradient):
        * css/CSSGradientValue.h:
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::computeLength):
        (WebCore::CSSPrimitiveValue::computeLengthDouble):
        * css/CSSPrimitiveValue.h:
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::convertToLength):
        * css/CSSToLengthConversionData.cpp: Added.
        (WebCore::CSSToLengthConversionData::zoom):
        * css/CSSToLengthConversionData.h: Added.
        (WebCore::CSSToLengthConversionData::CSSToLengthConversionData):
        (WebCore::CSSToLengthConversionData::style):
        (WebCore::CSSToLengthConversionData::rootStyle):
        (WebCore::CSSToLengthConversionData::computingFontSize):
        (WebCore::CSSToLengthConversionData::copyWithAdjustedZoom):
        * css/CSSToStyleMap.cpp:
        (WebCore::CSSToStyleMap::CSSToStyleMap):
        (WebCore::CSSToStyleMap::mapFillSize):
        (WebCore::CSSToStyleMap::mapFillXPosition):
        (WebCore::CSSToStyleMap::mapFillYPosition):
        (WebCore::CSSToStyleMap::mapNinePieceImageQuad):
        * css/CSSToStyleMap.h:
        (WebCore::CSSToStyleMap::CSSToStyleMap): Deleted.
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyAuto::applyValue):
        (WebCore::ApplyPropertyClip::convertToLength):
        (WebCore::ApplyPropertyLength::applyValue):
        (WebCore::ApplyPropertyBorderRadius::applyValue):
        (WebCore::ApplyPropertyComputeLength::applyValue):
        (WebCore::ApplyPropertyFontSize::applyValue):
        (WebCore::csstoLengthConversionDataWithTextZoomFactor):
        (WebCore::ApplyPropertyMarqueeIncrement::applyValue):
        (WebCore::ApplyPropertyLineHeight::applyValue):
        (WebCore::ApplyPropertyLineHeightForIOSTextAutosizing::applyValue):
        (WebCore::ApplyPropertyWordSpacing::applyValue):
        (WebCore::ApplyPropertyPageSize::mmLength):
        (WebCore::ApplyPropertyPageSize::inchLength):
        (WebCore::ApplyPropertyPageSize::applyValue):
        (WebCore::ApplyPropertyVerticalAlign::applyValue):
        (WebCore::ApplyPropertyClipPath::applyValue):
        (WebCore::ApplyPropertyShape::applyValue):
        (WebCore::ApplyPropertyTextIndent::applyValue):
        * css/MediaQueryEvaluator.cpp:
        (WebCore::colorMediaFeatureEval):
        (WebCore::color_indexMediaFeatureEval):
        (WebCore::monochromeMediaFeatureEval):
        (WebCore::orientationMediaFeatureEval):
        (WebCore::aspect_ratioMediaFeatureEval):
        (WebCore::device_aspect_ratioMediaFeatureEval):
        (WebCore::device_pixel_ratioMediaFeatureEval):
        (WebCore::resolutionMediaFeatureEval):
        (WebCore::gridMediaFeatureEval):
        (WebCore::computeLength):
        (WebCore::device_heightMediaFeatureEval):
        (WebCore::device_widthMediaFeatureEval):
        (WebCore::heightMediaFeatureEval):
        (WebCore::widthMediaFeatureEval):
        (WebCore::min_colorMediaFeatureEval):
        (WebCore::max_colorMediaFeatureEval):
        (WebCore::min_color_indexMediaFeatureEval):
        (WebCore::max_color_indexMediaFeatureEval):
        (WebCore::min_monochromeMediaFeatureEval):
        (WebCore::max_monochromeMediaFeatureEval):
        (WebCore::min_aspect_ratioMediaFeatureEval):
        (WebCore::max_aspect_ratioMediaFeatureEval):
        (WebCore::min_device_aspect_ratioMediaFeatureEval):
        (WebCore::max_device_aspect_ratioMediaFeatureEval):
        (WebCore::min_device_pixel_ratioMediaFeatureEval):
        (WebCore::max_device_pixel_ratioMediaFeatureEval):
        (WebCore::min_heightMediaFeatureEval):
        (WebCore::max_heightMediaFeatureEval):
        (WebCore::min_widthMediaFeatureEval):
        (WebCore::max_widthMediaFeatureEval):
        (WebCore::min_device_heightMediaFeatureEval):
        (WebCore::max_device_heightMediaFeatureEval):
        (WebCore::min_device_widthMediaFeatureEval):
        (WebCore::max_device_widthMediaFeatureEval):
        (WebCore::min_resolutionMediaFeatureEval):
        (WebCore::max_resolutionMediaFeatureEval):
        (WebCore::animationMediaFeatureEval):
        (WebCore::transitionMediaFeatureEval):
        (WebCore::transform_2dMediaFeatureEval):
        (WebCore::transform_3dMediaFeatureEval):
        (WebCore::view_modeMediaFeatureEval):
        (WebCore::video_playable_inlineMediaFeatureEval):
        (WebCore::hoverMediaFeatureEval):
        (WebCore::pointerMediaFeatureEval):
        (WebCore::MediaQueryEvaluator::eval):
        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::State::clear):
        (WebCore::StyleResolver::State::initForStyleResolve):
        (WebCore::StyleResolver::convertToIntLength):
        (WebCore::StyleResolver::convertToFloatLength):
        (WebCore::createGridTrackBreadth):
        (WebCore::StyleResolver::applyProperty):
        (WebCore::StyleResolver::createFilterOperations):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::State::setStyle):
        (WebCore::StyleResolver::State::cssToLengthConversionData):
        * css/TransformFunctions.cpp:
        (WebCore::convertToFloatLength):
        (WebCore::transformsForValue):
        * css/TransformFunctions.h:
        * css/WebKitCSSMatrix.cpp:
        (WebCore::WebKitCSSMatrix::setMatrixValue):
        * rendering/RenderThemeIOS.mm:
        (WebCore::applyCommonButtonPaddingToStyle):
        (WebCore::RenderThemeIOS::adjustButtonStyle):

2014-04-29  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] complex calc args for inset round vanish
        https://bugs.webkit.org/show_bug.cgi?id=132293

        Reviewed by Bem Jones-Bey.

        In order to use calc in the rounded parameters for inset shapes, we need
        to pass RenderStyle for the value creation as we did for the width arguments.
        Without taking RenderStyle into account, we hit an assert not reache
        in CSSPrimitiveValue::init in the debug builds.

        I've added new parsing test.

        * css/BasicShapeFunctions.cpp:
        (WebCore::valueForBasicShape):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::init):
        * css/CSSPrimitiveValue.h:
        (WebCore::CSSPrimitiveValue::create):
        * css/CSSValuePool.h:
        (WebCore::CSSValuePool::createValue):

2014-04-29  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] complex calc values for shape-margin return null for computed style
        https://bugs.webkit.org/show_bug.cgi?id=132313

        Reviewed by Bem Jones-Bey.

        We need to pass RenderStyle* to the cssValuePool when parsing
        shape-margin in order to use calc() as a parameter.

        I've added the new test case to parsing-shape-margin.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):

2014-04-29  Chris Fleizach  <cfleizach@apple.com>

        AX: Row span info is wrong for table cells when a footer section is placed above a body section
        https://bugs.webkit.org/show_bug.cgi?id=131832

        Reviewed by Mario Sanchez Prada.

        If a <footer> section is placed before the body, it renders AX row information and order incorrectly.
        This also affects ARIA tables because they add their children by looking at renderer children, instead
        interrogating the RenderTable directly.

        Test: accessibility/table-with-footer-section-above-body.html

        * accessibility/AccessibilityARIAGrid.cpp:
        (WebCore::AccessibilityARIAGrid::addTableCellChild):
        (WebCore::AccessibilityARIAGrid::addChildren):
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::addChildren):
        (WebCore::AccessibilityTable::addChildrenFromSection):
        * accessibility/AccessibilityTable.h:
        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::rowIndexRange):
        (WebCore::AccessibilityTableCell::columnIndexRange):

2014-04-29  Chris Fleizach  <cfleizach@apple.com>

        AX: SpeechSynthesisUtterance cannot addEventListener
        https://bugs.webkit.org/show_bug.cgi?id=132321

        Reviewed by Mario Sanchez Prada.

        Modified an existing test (speech-synthesis-speak.html) to use addEventTarget.

        * Modules/speech/SpeechSynthesisUtterance.idl:

2014-04-29  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] shape-outside polygon fails when first vertex is 0,0
        https://bugs.webkit.org/show_bug.cgi?id=132132

        Reviewed by Bem Jones-Bey.

        ShapeInterval now distinguishes between x1==x2 - isEmpty() and x1,x2 haven't been
        set yet - isUndefined(). Removed the ShapeInterval setX1() and setX2() methods, since
        they're no longer used.

        The polygon algorithm for computing excluded intervals now ignores horizontal
        edges. It also ignores edges whose lower vertex matches the top of the line, if
        the edge's Y direction is upwards (away from the top of the line). The rationale
        for this was explained here:
        http://hansmuller-webkit.blogspot.com/2012/11/revised-horizontal-box-algorithm.html

        Test: fast/shapes/shape-outside-floats/shape-outside-polygon-zero-vertex.html

        * rendering/shapes/PolygonShape.cpp:
        (WebCore::OffsetPolygonEdge::clippedEdgeXRange):
        (WebCore::PolygonShape::getExcludedIntervals):
        * rendering/shapes/ShapeInterval.h:
        (WebCore::ShapeInterval::ShapeInterval):
        (WebCore::ShapeInterval::isUndefined):
        (WebCore::ShapeInterval::x1):
        (WebCore::ShapeInterval::x2):
        (WebCore::ShapeInterval::width):
        (WebCore::ShapeInterval::isEmpty):
        (WebCore::ShapeInterval::setX1):
        (WebCore::ShapeInterval::setX2):
        (WebCore::ShapeInterval::overlaps):
        (WebCore::ShapeInterval::contains):
        (WebCore::ShapeInterval::unite):

2014-04-29  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Fix getClientRects() for content nodes
        https://bugs.webkit.org/show_bug.cgi?id=117407

        Reviewed by David Hyatt.

        This patch modifies getClientRects() to return a list of fragments
        for a fragmented box instead of a single rectangle positioned inside
        the region where the box center would appear.

        The approach is to split the border box of the element in regions using
        the layout positioning. Then each fragment is mapped to the view coordinates
        and the result added to the list of rectangles. To preserve the originating
        region when mapping the fragment through the ancestor tree I've introduced
        the concept of a current region. The current region is stored inside a
        CurrentRenderRegionMaintainer object, created whenever an algorithm needing
        it needs to run. When the maintainer is destroyed, the cleanup is made
        automatically. The RenderFlowThread holds a pointer to this structure for
        easy access.

        Tests: fast/regions/cssom/client-rects-fixed-content.html
               fast/regions/cssom/client-rects-forced-breaks.html
               fast/regions/cssom/client-rects-inline-complex.html
               fast/regions/cssom/client-rects-inline.html
               fast/regions/cssom/client-rects-nested-regions.html
               fast/regions/cssom/client-rects-positioned.html
               fast/regions/cssom/client-rects-relative-position.html
               fast/regions/cssom/client-rects-simple-block.html
               fast/regions/cssom/client-rects-transforms.html
               fast/regions/cssom/client-rects-unsplittable-float.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::absoluteQuads): Split the box in fragments.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::absoluteQuads): Split the box in fragments.
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::RenderFlowThread):
        (WebCore::RenderFlowThread::mapFromFlowToRegion):
        (WebCore::RenderFlowThread::mapLocalToContainer):
        (WebCore::RenderFlowThread::currentRegion):
        * rendering/RenderFlowThread.h:
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::absoluteQuadsForBoxInRegion): Get
        the fragments for this box in the region.
        * rendering/RenderNamedFlowFragment.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::absoluteQuadsForBox): Virtual function
        that can be used to implement fragments to client rects mapping.
        * rendering/RenderNamedFlowThread.h:
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::rectFlowPortionForBox): Small change to correctly
        map empty rectangles to containers.
        (WebCore::CurrentRenderRegionMaintainer::CurrentRenderRegionMaintainer):
        (WebCore::CurrentRenderRegionMaintainer::~CurrentRenderRegionMaintainer):
        * rendering/RenderRegion.h:
        (WebCore::RenderRegion::absoluteQuadsForBoxInRegion):
        (WebCore::CurrentRenderRegionMaintainer::region):

2014-04-29  Andrei Bucur  <abucur@adobe.com>

        Store the containing region map inside the flow thread
        https://bugs.webkit.org/show_bug.cgi?id=131647

        Reviewed by Mihnea Ovidenie.

        The patch moves the containing region map inside the flow thread where
        it can be better handled in case the region chain changes and the map
        needs to be cleared.

        As a result of this move we are able to also cleanup the lines region
        information of a block flow when it is removed from the tree.

        Test: fast/regions/inline-strike-through.html

        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::InlineFlowBox):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::removeFlowChildInfo):
        (WebCore::RenderFlowThread::invalidateRegions):
        (WebCore::RenderFlowThread::removeLineRegionInfo):
        (WebCore::RenderFlowThread::checkLinesConsistency):
        (WebCore::RenderFlowThread::containingRegionMap):
        * rendering/RenderFlowThread.h:
        * rendering/RootInlineBox.cpp:
        (WebCore::containingRegionMap):
        (WebCore::RootInlineBox::~RootInlineBox):
        (WebCore::RootInlineBox::paint):
        (WebCore::RootInlineBox::containingRegion):
        (WebCore::RootInlineBox::clearContainingRegion):
        (WebCore::RootInlineBox::setContainingRegion):

2014-04-28  Benjamin Poulain  <benjamin@webkit.org>

        SelectorCodeGenerator::generateElementIsNthChild() leaks the parent register :nth-child() is non-filtering
        https://bugs.webkit.org/show_bug.cgi?id=132311

        Reviewed by Andreas Kling.

        In two cases, the parent register was never returned to the register allocator:
        -Non filtering selectors (the early return).
        -Non marking selectors (at the moment: only querySelector API).

        Unfortunately, generateElementIsNthChild() makes function call, which forces us to do this manual allocation
        of the parentElement register. Long term, I want RegisterAllocator and FunctionCall to have a special type for that.

        Test: fast/selectors/several-nth-child.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):

2014-04-28  Yusuke Suzuki  <utatane.tea@gmail.com>

        CSS JIT: backtracking with current / parent element for child
        https://bugs.webkit.org/show_bug.cgi?id=132057

        Reviewed by Benjamin Poulain.

        Calculate appropriate backtracking start height from the closest
        descendant. And at first, we use it for a simple optimization.

        1. When backtracking start height equals to current height, we
        can simply jump to a descendant element check phase.
        2. When backtracking start height equals to current height + 1, we
        can simply jump to a descendant element traversing phase.

        We can apply this optimization to fragments with adjacent combinators.
        But, in the meantime, we start to implement it for a fragment with
        child combinator.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorFragment::SelectorFragment):
        (WebCore::SelectorCompiler::TagNamePattern::TagNamePattern):
        (WebCore::SelectorCompiler::solveDescendantBacktrackingActionForChild):
        (WebCore::SelectorCompiler::solveBacktrackingAction):
        (WebCore::SelectorCompiler::equalTagNames):
        (WebCore::SelectorCompiler::equalTagNamePatterns):
        (WebCore::SelectorCompiler::computeBacktrackingStartHeightFromDescendant):
        (WebCore::SelectorCompiler::computeBacktrackingHeightFromDescendant):
        (WebCore::SelectorCompiler::requiresAdjacentTail):
        (WebCore::SelectorCompiler::requiresDescendantTail):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentNode):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToParentElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateParentElementTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAncestorTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):

2014-04-28  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Restore the scroll position and scale from the HistoryItem (mostly)
        https://bugs.webkit.org/show_bug.cgi?id=132307

        Reviewed by Simon Fraser.

        * WebCore.exp.in:

2014-04-28  Beth Dakin  <bdakin@apple.com>

        Scrollbars do not update properly when topContentInset changes dynamically
        https://bugs.webkit.org/show_bug.cgi?id=132309
        -and corresponding-
        <rdar://problem/16642232>

        Reviewed by Tim Horton.

        It is not sufficient to do a layout and call updateScrollbars(). We must also call 
        RenderLayerCompositor::frameViewDidChangeSize() in order to properly adjust the 
        size and position of all of the scrolling-related layers.
        * page/FrameView.cpp:
        (WebCore::FrameView::topContentInsetDidChange):

2014-04-28  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] event.offsetX/offsetY don't work correctly
        https://bugs.webkit.org/show_bug.cgi?id=132284

        Reviewed by Simon Fraser.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
        Change the code here to only trigger for CSS Regions and not for
        multi-column. Add a FIXME pointing out that the code is broken even for
        CSS regions.

         * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::mapAbsoluteToLocalPoint):
        Override mapAbsoluteToLocalPoint in order to guess a region and attempt
        to translate the point from that region to the flow thread local coordinate
        space.

        (WebCore::RenderMultiColumnFlowThread::physicalTranslationFromRegionToFlow):
        * rendering/RenderMultiColumnFlowThread.h:
        New helper function that just wraps calling the region's logical translation
        function and converting to/from physical coordinates.

2014-04-28  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167857.
        https://bugs.webkit.org/show_bug.cgi?id=132305

        the change was rolled out, roll out the new expectations as
        well (Requested by thorton on #webkit).

        Reverted changeset:

        "Unreviewed. Updating one bindings test baseline after
        r167855."
        http://trac.webkit.org/changeset/167857

2014-04-28  Dean Jackson  <dino@apple.com>

        [Mac] Use the animated version of setHighlighted on NSButtonCell where available
        https://bugs.webkit.org/show_bug.cgi?id=132295
        <rdar://problem/16747240>

        Reviewed by Beth Dakin.

        Like setState, there is an animated version of setHighlighted available.

        * platform/mac/ThemeMac.mm:
        (WebCore::updateStates): Use private version of _setHighlighted where possible.

2014-04-28  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167855.
        https://bugs.webkit.org/show_bug.cgi?id=132301

        Broke the windows build (Requested by bfulgham on #webkit).

        Reverted changeset:

        "ScriptExecutionContext::Task should work well with C++11
        lambdas"
        https://bugs.webkit.org/show_bug.cgi?id=129795
        http://trac.webkit.org/changeset/167855

2014-04-24  Andy Estes  <aestes@apple.com>

        [iOS] Implement WebQuickLookHandleClient for WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=132157

        Reviewed by Darin Adler.

        * WebCore.exp.in: Exported QuickLookHandle::previewUTI().
        * platform/network/ios/QuickLook.h:
        * platform/network/ios/QuickLook.mm:
        (WebCore::QuickLookHandle::previewFileName): Changed to return a WTF::String.
        (WebCore::QuickLookHandle::previewUTI): Added.

2014-04-28  Chris Fleizach  <cfleizach@apple.com>

        REGRESSION: Intermittent crash in SpeechSynthesis::didFinishSpeaking
        https://bugs.webkit.org/show_bug.cgi?id=111613

        Reviewed by Mark Lam.

        I think it's possible that didFinishSpeaking ends up calling directly back into start speaking, and the utterance reference
        we were holding can get cleared, so protecting this should avoid a few asserts.

        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
        (WebCore::PlatformSpeechSynthesizerMock::speakingFinished):

2014-04-28  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167871.
        https://bugs.webkit.org/show_bug.cgi?id=132290

        broke a newmulticol test (spanner-nested-dynamic) (Requested
        by thorton on #webkit).

        Reverted changeset:

        "Store the containing region map inside the flow thread"
        https://bugs.webkit.org/show_bug.cgi?id=131647
        http://trac.webkit.org/changeset/167871

2014-04-28  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167853.
        https://bugs.webkit.org/show_bug.cgi?id=132288

        caused crashes+timeouts+layout test failures described in the
        bug (Requested by thorton on #webkit).

        Reverted changeset:

        "Coalesce responses on network process side"
        https://bugs.webkit.org/show_bug.cgi?id=132229
        http://trac.webkit.org/changeset/167853

2014-04-24  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] flickery scrolling with overflow-scrolling:touch
        https://bugs.webkit.org/show_bug.cgi?id=132150

        Reviewed by Tim Horton.

        Fix typo in a comment.

        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::scheduleUpdateScrollPositionAfterAsyncScroll):

2014-04-28  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Builtin cursors do not properly handle transparency
        https://bugs.webkit.org/show_bug.cgi?id=131866

        Reviewed by Gustavo Noronha Silva.

        Tested by ManualTests/cursor.html.

        * platform/gtk/CursorGtk.cpp:
        (WebCore::createNamedCursor): Instead of interpreting the source bitmap as an A1 image, use
        it as a 1-bit black and white image. We do this by:
            1. Painting the result to a full color image with transparency instead of an alpha-only surface.
            2. Masking a white background using the cursor alpha surface.
            3. Painting the black parts of the cursor by painting the source surface, where black pixels
            will be interpreted as full opaque pixels.

2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        Unreviewed. Update GObject DOM bindings symbols file.

        * bindings/gobject/webkitdom.symbols: Add missing symbols.

2014-04-28  Manuel Rego Casasnovas  <rego@igalia.com>

        OrderIterator refactoring to avoid extra loops
        https://bugs.webkit.org/show_bug.cgi?id=119061

        Reviewed by Darin Adler.

        This patch removes order values Vector and use a Vector of pairs instead. The pairs are formed by a child
        (RenderBox) and the index of this child. In addition, OrderIterator code is simplified.

        It provides a helper class OrderIteratorPopulator, used for manipulating the Vector directly. Which allows to
        consolidate the code into a single implementation across flexbox and grid. OrderIteratorPopulator part is based
        on a patch from Blink r153971 by <jchaffraix@chromium.org>.

        Current implementation is O(number of children * number of order values). Now it will just do a sort operation
        and then a regular loop. So if you have different order values in a flexbox or grid the performance will
        improve.

        Comparing results of perf-tests:
        * Layout/auto-grid-lots-of-data: ~0.5% worse.
        * Layout/fixed-grid-lots-of-data: ~0.5% worse.
        * Layout/fixed-grid-lots-of-data (setting 100 different order values): ~50% better.
        * Layout/flexbox-lots-of-data: ~5% better.

        No new tests, already covered by current tests.

        * rendering/OrderIterator.cpp:
        (WebCore::OrderIterator::currentChild): Return current child according to m_childrenIndex.
        (WebCore::OrderIterator::first): Initialize m_childrenIndex and return current child.
        (WebCore::OrderIterator::next): Increase m_childrenIndex and return current child.
        (WebCore::compareByOrderValueAndIndex): Sorts the Vector by order value and index.
        (WebCore::OrderIteratorPopulator::~OrderIteratorPopulator): Calls compareByOrderValueAndIndex() if there is any
        child with non default order value.
        (WebCore::OrderIteratorPopulator::collectChild): Adds the child and index to the Vector. Update
        m_allChildrenHaveDefaultOrderValue accordingly.
        (WebCore::OrderIterator::OrderIterator): Deleted.
        (WebCore::OrderIterator::setOrderValues): Deleted.
        (WebCore::OrderIterator::reset): Deleted.
        * rendering/OrderIterator.h:
        (WebCore::OrderIteratorPopulator::OrderIteratorPopulator): New helper class to manipulate the Vector.
        (WebCore::OrderIterator::currentChild): Deleted.
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::RenderFlexibleBox): Remove OrderIterator intialization.
        (WebCore::RenderFlexibleBox::layoutBlock): Remove unneeded code related to old OrderValues vector.
        (WebCore::RenderFlexibleBox::prepareOrderIteratorAndMargins): Populate OrderIterator using collectChild().
        (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes): Deleted.
        * rendering/RenderFlexibleBox.h: Rename computeMainAxisPreferredSizes() to prepareOrderIteratorAndMargins().
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::RenderGrid): Remove OrderIterator initialization.
        (WebCore::RenderGrid::populateExplicitGridAndOrderIterator): Populate OrderIterator using collectChild().

2014-04-28  Zan Dobersek  <zdobersek@igalia.com>

        std::bitset<>::test() does unnecessary bounds checks on CSSPropertyID bitsets
        https://bugs.webkit.org/show_bug.cgi?id=131685

        Reviewed by Darin Adler.

        Use std::bitset<>::operator[]() instead of std::bitset<>::test() to avoid
        bounds checks which are not necessary as long as a CSSPropertyID value is used.

        * css/CSSParser.cpp:
        (WebCore::filterProperties):
        * css/StyleProperties.cpp:
        (WebCore::StyleProperties::asText):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::CascadedProperties::hasProperty):
        (WebCore::StyleResolver::CascadedProperties::set):

2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] TextTrack kind and mode attributes are enums since r166180
        https://bugs.webkit.org/show_bug.cgi?id=132228

        Reviewed by Martin Robinson.

        Improve coding style according to review comments, that I forgot
        to do before landing previous commit.

        * bindings/gobject/WebKitDOMCustom.cpp:
        (webkit_dom_text_track_get_kind):
        (webkit_dom_text_track_get_mode):
        (webkit_dom_text_track_set_mode):

2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] TextTrack kind and mode attributes are enums since r166180
        https://bugs.webkit.org/show_bug.cgi?id=132228

        Reviewed by Martin Robinson.

        We don't support enum values yet in GObject DOM bindings, but they
        are internally strings anyway, so we can keep the old
        implementations using strings as custom functions until we
        properly support enums.

        * bindings/gobject/WebKitDOMCustom.cpp:
        (webkit_dom_text_track_get_kind):
        (webkit_dom_text_track_get_mode):
        (webkit_dom_text_track_set_mode):
        * bindings/gobject/WebKitDOMCustom.h:
        * bindings/gobject/WebKitDOMCustom.symbols:

2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] TextTrack::addCue can raise an exception since r163974
        https://bugs.webkit.org/show_bug.cgi?id=132227

        Reviewed by Martin Robinson.

        webkit_dom_text_track_add_cue() now receives a GError paramater
        which is an API break. Add
        webkit_dom_text_track_add_cue_with_error and keep
        webkit_dom_text_track_add_cue as deprecated to keep API
        compatibility.

        * bindings/gobject/WebKitDOMDeprecated.cpp:
        (webkit_dom_text_track_add_cue):
        * bindings/gobject/WebKitDOMDeprecated.h:
        * bindings/gobject/WebKitDOMDeprecated.symbols:
        * bindings/gobject/webkitdom.symbols:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GetEffectiveFunctionName):

2014-04-28  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] TextTrackCue API changed in r163649
        https://bugs.webkit.org/show_bug.cgi?id=132226

        Reviewed by Martin Robinson.

        TextTrackCue is now a base class and part of its API was moved to
        the derived class VTTCue. Update the GObject DOM bindings to keep
        backwards compatibility.

        * PlatformGTK.cmake: Generate bindings for DataCue and VTTCue.
        * bindings/gobject/WebKitDOMDeprecated.cpp:
        (webkit_dom_text_track_cue_get_cue_as_html): Mark as deprecated in
        favor of VTTCue API.
        (webkit_dom_text_track_cue_get_vertical): Ditto.
        (webkit_dom_text_track_cue_set_vertical): Ditto.
        (webkit_dom_text_track_cue_get_snap_to_lines): Ditto.
        (webkit_dom_text_track_cue_set_snap_to_lines): Ditto.
        (webkit_dom_text_track_cue_get_line): Ditto.
        (webkit_dom_text_track_cue_set_line): Ditto.
        (webkit_dom_text_track_cue_get_position): Ditto.
        (webkit_dom_text_track_cue_set_position): Ditto.
        (webkit_dom_text_track_cue_get_size): Ditto.
        (webkit_dom_text_track_cue_set_size): Ditto.
        (webkit_dom_text_track_cue_get_align): Ditto.
        (webkit_dom_text_track_cue_set_align): Ditto.
        (webkit_dom_text_track_cue_get_text): Ditto.
        (webkit_dom_text_track_cue_set_text): Ditto.
        * bindings/gobject/WebKitDOMDeprecated.h:
        * bindings/gobject/WebKitDOMDeprecated.symbols: Add new deprecated symbols.
        * bindings/gobject/WebKitDOMPrivate.cpp:
        (WebKit::wrap): Add generic wrap for TextTrackCue now that it's a
        base class to generate DataCue or VTTCue objects.
        * bindings/gobject/WebKitDOMPrivate.h:
        * bindings/gobject/webkitdom.symbols: Add DataCue symbols.
        * bindings/scripts/CodeGeneratorGObject.pm:
        (IsPolymorphic): Add TextTrackCue to the list of polymorphic classes.

2014-04-27  Andrei Bucur  <abucur@adobe.com>

        Store the containing region map inside the flow thread
        https://bugs.webkit.org/show_bug.cgi?id=131647

        Reviewed by Mihnea Ovidenie.

        The patch moves the containing region map inside the flow thread where
        it can be better handled in case the region chain changes and the map
        needs to be cleared.

        As a result of this move we are able to also cleanup the lines region
        information of a block flow when it is removed from the tree.

        Test: fast/regions/inline-strike-through.html

        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::InlineFlowBox):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::addOverflowFromInlineChildren):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::removeFlowChildInfo):
        (WebCore::RenderFlowThread::invalidateRegions):
        (WebCore::RenderFlowThread::removeLineRegionInfo):
        (WebCore::RenderFlowThread::checkLinesConsistency):
        (WebCore::RenderFlowThread::containingRegionMap):
        * rendering/RenderFlowThread.h:
        * rendering/RootInlineBox.cpp:
        (WebCore::containingRegionMap):
        (WebCore::RootInlineBox::~RootInlineBox):
        (WebCore::RootInlineBox::paint):
        (WebCore::RootInlineBox::containingRegion):
        (WebCore::RootInlineBox::clearContainingRegion):
        (WebCore::RootInlineBox::setContainingRegion):

2014-04-27  Darin Adler  <darin@apple.com>

        REGRESSION (r159345): The hover state for links in the top navigation of Yahoo.com doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=132241
        rdar://problem/16501924

        Reviewed by Andreas Kling.

        Test: fast/text/simple-lines-hover-underline.html

        Checked that this does not hurt performance by running the
        run-perf-tests PerformanceTests/Layout/line-layout.html command before and after.

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::hitTestInlineChildren): Use simpleLineLayout function rather than
        getting at the data member directly.
        (WebCore::RenderBlockFlow::firstLineBaseline): Ditto.
        (WebCore::RenderBlockFlow::inlineBlockBaseline): Ditto.
        (WebCore::RenderBlockFlow::lineCount): Ditto.
        (WebCore::RenderBlockFlow::paintInlineChildren): Ditto.
        (WebCore::RenderBlockFlow::hasLines): Ditto.
        (WebCore::RenderBlockFlow::simpleLineLayout): Added logic to determine which path to use if
        m_lineLayoutPath is undetermined, and call createLineBoxes if it's not simple.
        (WebCore::RenderBlockFlow::ensureLineBoxes): Factored out most of the code into a new
        createLineBoxes function.
        (WebCore::RenderBlockFlow::createLineBoxes): Ditto.

        * rendering/RenderBlockFlow.h: Made simpleLineLayout function no longer an inline.
        Added a private createLineBoxes function.

2014-04-27  Praveen R Jadhav  <praveen.j@samsung.com>

        [MediaStream] .ended shouldn't be part of MediaStream IDL
        https://bugs.webkit.org/show_bug.cgi?id=132104

        Reviewed by Eric Carlson.

        .ended attribute is spec'ed out of MediaStream IDL. Instead, .active
        is introduced to handle more scenarios. This patch replaces all 'ended'
        attribute calls with corresponding 'active' attributes. 

        MediaStream-add-remove-tracks.html is updated.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::addTrack): Replaced ended() with active().
        (WebCore::MediaStream::removeTrack): setEnded() isn't called. setActive()
        is retained which propagates oninactive event.
        (WebCore::MediaStream::trackDidEnd): setEnded() isn't called.
        (WebCore::MediaStream::removeRemoteSource): Replaced ended() with active().
        (WebCore::MediaStream::addRemoteTrack): Replaced ended() with active().
        (WebCore::MediaStream::removeRemoteTrack): Replaced ended() with active().
        (WebCore::MediaStream::ended): Deleted.
        (WebCore::MediaStream::setEnded): Deleted.
        (WebCore::MediaStream::streamDidEnd): Deleted.
        * Modules/mediastream/MediaStream.h:
        * Modules/mediastream/MediaStream.idl:
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::didRemoveRemoteStream): Replaced setEnded()
        with setActive().
        * platform/mediastream/MediaStreamPrivate.cpp:
        (WebCore::MediaStreamPrivate::MediaStreamPrivate):
        (WebCore::MediaStreamPrivate::setActive): Updated comment from bug 
        https://bugs.webkit.org/show_bug.cgi?id=131973
        (WebCore::MediaStreamPrivate::setEnded): Deleted.
        * platform/mediastream/MediaStreamPrivate.h:
        (WebCore::MediaStreamPrivate::ended): Deleted.

2014-04-25  Andy Estes  <aestes@apple.com>

        [iOS] Stop creating a WKWebResourceQuickLookDelegate for every WebResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=132215

        Reviewed by Dan Bernstein.

        * WebCore.exp.in: Moved QuickLook symbols to the USE(QUICK_LOOK) stanza.
        * platform/network/ios/QuickLook.h: Changed one of the create() overloads to no longer take a delegate argument.
        * platform/network/ios/QuickLook.mm: Moved WKWebResourceQuickLookDelegate to here and renamed to WebResourceLoaderQuickLookDelegate.
        (WebCore::QuickLookHandle::create): Created a WebResourceLoaderQuickLookDelegate only if QuickLook can handle the response.

2014-04-27  Sam Weinig  <sam@webkit.org>

        [iOS WebKit2] Add support for text autosizing
        <rdar://problem/16545245>
        https://bugs.webkit.org/show_bug.cgi?id=132237

        Reviewed by Tim Horton.

        Move text autosizing width from Frame to Page, as it is a Page level concept.

        * WebCore.exp.in:
        * page/Frame.cpp:
        (WebCore::Frame::textAutosizingWidth): Deleted.
        (WebCore::Frame::setTextAutosizingWidth): Deleted.
        * page/Frame.h:
        * page/FrameView.cpp:
        (WebCore::FrameView::layout):
        * page/Page.cpp:
        (WebCore::Page::Page):
        * page/Page.h:
        (WebCore::Page::textAutosizingWidth):
        (WebCore::Page::setTextAutosizingWidth):

2014-04-27  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Updating one bindings test baseline after r167855.

        * bindings/scripts/test/JS/JSTestCallback.cpp:
        (WebCore::JSTestCallback::~JSTestCallback):

2014-04-27  Darin Adler  <darin@apple.com>

        Webpages can trigger loads with invalid URLs
        https://bugs.webkit.org/show_bug.cgi?id=132224
        rdar://problem/16697142

        Reviewed by Alexey Proskuryakov.

        Invalid URLs can be a way to trick the user about what website they
        are looking at.  Still trying to figure out a good way to regression-test this.

        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv): Pass a URL rather than a String to
        the navigation scheduler.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::receivedFirstData): Ditto.

        * loader/NavigationScheduler.cpp:
        (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Take a URL rather
        than a string.
        (WebCore::ScheduledURLNavigation::url): Ditto.
        (WebCore::ScheduledRedirect::ScheduledRedirect): Ditto.
        (WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
        (WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
        (WebCore::NavigationScheduler::shouldScheduleNavigation): Added a check that
        prevents navigation to any URL that is invalid, except for JavaScript URLs,
        which need not be valid.
        (WebCore::NavigationScheduler::scheduleRedirect): Use URL instead of String.
        (WebCore::NavigationScheduler::scheduleLocationChange): Use URL instead of
        String. Also got rid of empty string check since empty URLs are also invalid,
        and so shouldScheduleNavigation will take care of it.
        (WebCore::NavigationScheduler::scheduleRefresh): Use URL instead of String.

        * loader/NavigationScheduler.h: Take URL instead of String. Also removed some
        unneeded incldues and uses of WTF_MAKE_NONCOPYABLE. NavigationScheduler is
        already noncopyable because it has a reference for a data member, and the
        disabler doesn't have any real reason to be noncopyable.

        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadOrRedirectSubframe): Pass a URL rather than a
        String to the NavigationScheduler.
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::createWindow): Ditto.

        * page/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::urlWithUniqueSecurityOrigin): Return a URL instead
        of a String.
        * page/SecurityOrigin.h: Updated for above change.

2014-04-27  Zan Dobersek  <zdobersek@igalia.com>

        ScriptExecutionContext::Task should work well with C++11 lambdas
        https://bugs.webkit.org/show_bug.cgi?id=129795

        Reviewed by Darin Adler.

        Instead of having classes that subclass ScriptExecutionContext::Task and override
        the performTask(ScriptExecutionContext*) method, have the ScriptExecutionContext::Task
        take in a std::function<void (ScriptExecutionContext*)>-like object trough the constructor
        which would contain the code currently kept in the performTask() methods.

        This enables inlining C++11 lambdas into ScriptExecutionContext::postTask() calls. For
        cleanup tasks, the Task object can be implicitly constructed by using the initializer list
        constructor with the first argument being the ScriptExecutionContext::Task::CleanupTask tag.
        The ScriptExecutionContext class remains non-copyable and now stores the passed-in invokable
        object in the std::function wrapper, along with a boolean member that indicates whether the
        task is of cleanup nature.

        * Modules/quota/StorageErrorCallback.cpp:
        (WebCore::StorageErrorCallback::CallbackTask::CallbackTask):
        (WebCore::StorageErrorCallback::CallbackTask::performTask): Deleted.
        * Modules/quota/StorageErrorCallback.h:
        (WebCore::StorageErrorCallback::CallbackTask::create): Deleted.
        * Modules/webdatabase/Database.cpp:
        (WebCore::Database::~Database):
        (WebCore::Database::runTransaction):
        (WebCore::Database::scheduleTransactionCallback):
        (WebCore::DerefContextTask::create): Deleted.
        (WebCore::DerefContextTask::performTask): Deleted.
        (WebCore::DerefContextTask::isCleanupTask): Deleted.
        (WebCore::DerefContextTask::DerefContextTask): Deleted.
        (WebCore::callTransactionErrorCallback): Deleted.
        (WebCore::DeliverPendingCallbackTask::create): Deleted.
        (WebCore::DeliverPendingCallbackTask::performTask): Deleted.
        (WebCore::DeliverPendingCallbackTask::DeliverPendingCallbackTask): Deleted.
        * Modules/webdatabase/DatabaseManager.cpp:
        (WebCore::DatabaseManager::openDatabase):
        (WebCore::DatabaseCreationCallbackTask::create): Deleted.
        (WebCore::DatabaseCreationCallbackTask::performTask): Deleted.
        (WebCore::DatabaseCreationCallbackTask::DatabaseCreationCallbackTask): Deleted.
        * Modules/webdatabase/DatabaseSync.cpp:
        (WebCore::CloseSyncDatabaseOnContextThreadTask::create): Deleted.
        (WebCore::CloseSyncDatabaseOnContextThreadTask::performTask): Deleted.
        (WebCore::CloseSyncDatabaseOnContextThreadTask::CloseSyncDatabaseOnContextThreadTask): Deleted.
        * Modules/webdatabase/SQLCallbackWrapper.h:
        (WebCore::SQLCallbackWrapper::clear):
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::create): Deleted.
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::performTask): Deleted.
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::isCleanupTask): Deleted.
        (WebCore::SQLCallbackWrapper::SafeReleaseTask::SafeReleaseTask): Deleted.
        * 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/ThreadableWebSocketChannelClientWrapper.h:
        * Modules/websockets/WorkerThreadableWebSocketChannel.cpp:
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::mainThreadInitialize):
        (WebCore::WorkerThreadableWebSocketChannel::mainThreadDestroy):
        (WebCore::WorkerThreadableWebSocketChannel::Bridge::disconnect):
        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::create): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::~WorkerGlobalScopeDidInitializeTask): Deleted.
        (WebCore::WorkerThreadableWebSocketChannel::WorkerGlobalScopeDidInitializeTask::WorkerGlobalScopeDidInitializeTask): Deleted.
        * Modules/websockets/WorkerThreadableWebSocketChannel.h:
        * bindings/js/JSCallbackData.h:
        (WebCore::DeleteCallbackDataTask::DeleteCallbackDataTask):
        (WebCore::DeleteCallbackDataTask::create): Deleted.
        (WebCore::DeleteCallbackDataTask::performTask): Deleted.
        (WebCore::DeleteCallbackDataTask::isCleanupTask): Deleted.
        * bindings/js/JSDOMGlobalObjectTask.cpp:
        (WebCore::JSGlobalObjectTask::JSGlobalObjectTask):
        (WebCore::JSGlobalObjectTask::~JSGlobalObjectTask): Deleted.
        (WebCore::JSGlobalObjectTask::performTask): Deleted.
        * bindings/js/JSDOMGlobalObjectTask.h:
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::queueTaskToEventLoop):
        * bindings/js/JSWorkerGlobalScopeBase.cpp:
        (WebCore::JSWorkerGlobalScopeBase::queueTaskToEventLoop):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateCallbackImplementation):
        * dom/CrossThreadTask.h:
        (WebCore::CrossThreadTask1::performTask):
        (WebCore::CrossThreadTask2::performTask):
        (WebCore::CrossThreadTask3::performTask):
        (WebCore::CrossThreadTask4::performTask):
        (WebCore::CrossThreadTask5::performTask):
        (WebCore::CrossThreadTask6::performTask):
        (WebCore::CrossThreadTask7::performTask):
        (WebCore::CrossThreadTask8::performTask):
        (WebCore::createCallbackTask):
        (WebCore::CrossThreadTask1::create): Deleted.
        (WebCore::CrossThreadTask2::create): Deleted.
        (WebCore::CrossThreadTask3::create): Deleted.
        (WebCore::CrossThreadTask4::create): Deleted.
        (WebCore::CrossThreadTask5::create): Deleted.
        (WebCore::CrossThreadTask6::create): Deleted.
        (WebCore::CrossThreadTask7::create): Deleted.
        (WebCore::CrossThreadTask8::create): Deleted.
        * dom/Document.cpp:
        (WebCore::Document::addConsoleMessage):
        (WebCore::Document::addMessage):
        (WebCore::Document::postTask):
        (WebCore::Document::pendingTasksTimerFired):
        (WebCore::PerformTaskContext::PerformTaskContext): Deleted.
        (WebCore::Document::didReceiveTask): Deleted.
        * dom/Document.h:
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::processMessagePortMessagesSoon):
        (WebCore::ScriptExecutionContext::timerAlignmentInterval):
        (WebCore::ProcessMessagesSoonTask::create): Deleted.
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::performTask): Deleted.
        (WebCore::ScriptExecutionContext::Task::~Task): Deleted.
        * dom/ScriptExecutionContext.h:
        (WebCore::ScriptExecutionContext::Task::Task):
        (WebCore::ScriptExecutionContext::Task::performTask):
        (WebCore::ScriptExecutionContext::Task::isCleanupTask):
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::AddConsoleMessageTask):
        (WebCore::ScriptExecutionContext::AddConsoleMessageTask::create): Deleted.
        * dom/StringCallback.cpp:
        (WebCore::StringCallback::scheduleCallback):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::postListenerTask):
        (WebCore::CallCacheListenerTask::create): Deleted.
        (WebCore::CallCacheListenerTask::CallCacheListenerTask): Deleted.
        * workers/DefaultSharedWorkerRepository.cpp:
        (WebCore::SharedWorkerProxy::postTaskToLoader):
        (WebCore::SharedWorkerProxy::postTaskForModeToWorkerGlobalScope):
        (WebCore::SharedWorkerConnectTask::SharedWorkerConnectTask):
        (WebCore::DefaultSharedWorkerRepository::workerScriptLoaded):
        (WebCore::DefaultSharedWorkerRepository::connectToWorker):
        (WebCore::SharedWorkerConnectTask::create): Deleted.
        (WebCore::SharedWorkerConnectTask::performTask): Deleted.
        * workers/WorkerEventQueue.cpp:
        (WebCore::WorkerEventQueue::EventDispatcher::EventDispatcher):
        (WebCore::WorkerEventQueue::EventDispatcher::~EventDispatcher):
        (WebCore::WorkerEventQueue::EventDispatcher::dispatch):
        (WebCore::WorkerEventQueue::enqueueEvent):
        (WebCore::WorkerEventQueue::cancelEvent):
        (WebCore::WorkerEventQueue::close):
        * workers/WorkerEventQueue.h:
        * workers/WorkerGlobalScope.cpp:
        (WebCore::WorkerGlobalScope::close):
        (WebCore::WorkerGlobalScope::postTask):
        (WebCore::WorkerGlobalScope::addConsoleMessage):
        (WebCore::WorkerGlobalScope::addMessage):
        (WebCore::CloseWorkerGlobalScopeTask::create): Deleted.
        (WebCore::CloseWorkerGlobalScopeTask::performTask): Deleted.
        (WebCore::CloseWorkerGlobalScopeTask::isCleanupTask): Deleted.
        * workers/WorkerGlobalScope.h:
        * workers/WorkerLoaderProxy.h:
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::postMessageToWorkerObject):
        (WebCore::WorkerMessagingProxy::postMessageToWorkerGlobalScope):
        (WebCore::WorkerMessagingProxy::postTaskForModeToWorkerGlobalScope):
        (WebCore::WorkerMessagingProxy::postTaskToLoader):
        (WebCore::WorkerMessagingProxy::postExceptionToWorkerObject):
        (WebCore::WorkerMessagingProxy::workerThreadCreated):
        (WebCore::WorkerMessagingProxy::notifyNetworkStateChange):
        (WebCore::WorkerMessagingProxy::workerGlobalScopeDestroyed):
        (WebCore::WorkerMessagingProxy::workerGlobalScopeClosed):
        (WebCore::WorkerMessagingProxy::postMessageToPageInspector):
        (WebCore::WorkerMessagingProxy::confirmMessageFromWorkerObject):
        (WebCore::WorkerMessagingProxy::reportPendingActivity):
        (WebCore::MessageWorkerGlobalScopeTask::create): Deleted.
        (WebCore::MessageWorkerGlobalScopeTask::MessageWorkerGlobalScopeTask): Deleted.
        (WebCore::MessageWorkerGlobalScopeTask::performTask): Deleted.
        (WebCore::MessageWorkerTask::create): Deleted.
        (WebCore::MessageWorkerTask::MessageWorkerTask): Deleted.
        (WebCore::MessageWorkerTask::performTask): Deleted.
        (WebCore::WorkerExceptionTask::create): Deleted.
        (WebCore::WorkerExceptionTask::WorkerExceptionTask): Deleted.
        (WebCore::WorkerExceptionTask::performTask): Deleted.
        (WebCore::WorkerGlobalScopeDestroyedTask::create): Deleted.
        (WebCore::WorkerGlobalScopeDestroyedTask::WorkerGlobalScopeDestroyedTask): Deleted.
        (WebCore::WorkerGlobalScopeDestroyedTask::performTask): Deleted.
        (WebCore::WorkerTerminateTask::create): Deleted.
        (WebCore::WorkerTerminateTask::WorkerTerminateTask): Deleted.
        (WebCore::WorkerTerminateTask::performTask): Deleted.
        (WebCore::WorkerThreadActivityReportTask::create): Deleted.
        (WebCore::WorkerThreadActivityReportTask::WorkerThreadActivityReportTask): Deleted.
        (WebCore::WorkerThreadActivityReportTask::performTask): Deleted.
        (WebCore::PostMessageToPageInspectorTask::create): Deleted.
        (WebCore::PostMessageToPageInspectorTask::PostMessageToPageInspectorTask): Deleted.
        (WebCore::PostMessageToPageInspectorTask::performTask): Deleted.
        (WebCore::NotifyNetworkStateChangeTask::create): Deleted.
        (WebCore::NotifyNetworkStateChangeTask::NotifyNetworkStateChangeTask): Deleted.
        (WebCore::NotifyNetworkStateChangeTask::performTask): Deleted.
        * workers/WorkerMessagingProxy.h:
        * workers/WorkerRunLoop.cpp:
        (WebCore::WorkerRunLoop::postTask):
        (WebCore::WorkerRunLoop::postTaskAndTerminate):
        (WebCore::WorkerRunLoop::postTaskForMode):
        (WebCore::WorkerRunLoop::Task::create):
        (WebCore::WorkerRunLoop::Task::performTask):
        (WebCore::WorkerRunLoop::Task::Task):
        * workers/WorkerRunLoop.h:
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::stop):
        (WebCore::WorkerThread::releaseFastMallocFreeMemoryInAllThreads):
        (WebCore::WorkerThreadShutdownFinishTask::create): Deleted.
        (WebCore::WorkerThreadShutdownFinishTask::performTask): Deleted.
        (WebCore::WorkerThreadShutdownFinishTask::isCleanupTask): Deleted.
        (WebCore::WorkerThreadShutdownStartTask::create): Deleted.
        (WebCore::WorkerThreadShutdownStartTask::performTask): Deleted.
        (WebCore::WorkerThreadShutdownStartTask::isCleanupTask): Deleted.

2014-04-27  Antti Koivisto  <antti@apple.com>

        Coalesce responses on network process side
        https://bugs.webkit.org/show_bug.cgi?id=132229

        Reviewed by Andreas Kling.

        * WebCore.exp.in:

2014-04-27  David Kilzer  <ddkilzer@apple.com>

        Roll out changes not part of the patch reviewed for Bug 132089
        <http://webkit.org/b/132089>

        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadOrRedirectSubframe):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::setLocation):
        (WebCore::DOMWindow::createWindow):
        (WebCore::DOMWindow::open):

2014-04-26  Darin Adler  <darin@apple.com>

        Frame and page lifetime fixes in WebCore::createWindow
        https://bugs.webkit.org/show_bug.cgi?id=132089

        Reviewed by Sam Weinig.

        Speculative fix because I was unable to reproduce the crash that was
        reported with the test case attached to this bug.

        * loader/FrameLoader.cpp:
        (WebCore::createWindow): Changed code to remove the assumption that calls
        out will not destroy the page or frame. Use RefPtr for the frame, and
        added early exits if frame->page() becomes null at any point before we
        use a page pointer.

2014-04-26  Alexey Proskuryakov  <ap@apple.com>

        Local files should not be allowed to read pasteboard data during drag
        https://bugs.webkit.org/show_bug.cgi?id=131767

        Reviewed by Sam Weinig.

        Test: fast/files/local-file-drag-security.html

        * page/DragController.cpp:
        (WebCore::DragController::dragExited):
        (WebCore::DragController::tryDHTMLDrag):
        Make an old Dashboard quirk really Dashboard only.

2014-04-24  Darin Adler  <darin@apple.com>

        REGRESSION (r164133): Selection doesn't paint when scrolling some pages
        https://bugs.webkit.org/show_bug.cgi?id=132172
        rdar://problem/16719473

        Reviewed by Brent Fulgham.

        Tests: fast/dynamic/remove-invisible-node-inside-selection.html
               fast/dynamic/remove-node-inside-selection.html

        * editing/FrameSelection.cpp:
        (WebCore::clearRenderViewSelection): Changed to take a Node& because having
        this take a Position& was unnecessary and strange, when really it just needs
        to take a document as an argument.
        (WebCore::DragCaretController::nodeWillBeRemoved): Updated for the above.
        (WebCore::FrameSelection::respondToNodeModification): Added code to set the
        m_pendingSelectionUpdate flag and call RenderView::setNeedsLayout so the
        selection will be recomputed after it's temporarily cleared when one of
        the selected nodes is removed.

2014-04-25  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r167689): Hovering file name in a file input causes a crash
        https://bugs.webkit.org/show_bug.cgi?id=132214

        Reviewed by Andreas Kling.

        The bug was caused by callDefaultEventHandlersInTheBubblingOrder unconditionally
        accessing path.contextAt(0) even if the event path was empty.

        Fixed the bug by exiting early when the event path is empty.

        Test: fast/events/shadow-event-path-2.html

        * dom/EventDispatcher.cpp:
        (WebCore::callDefaultEventHandlersInTheBubblingOrder):

2014-04-25  Tim Horton  <timothy_horton@apple.com>

        REGRESSION (r167828): http/tests/media/hls/video-controls-live-stream.html fails

        * English.lproj/mediaControlsLocalizedStrings.js:
        Add 'Live Broadcast' to the localized strings list.

2014-04-25  Brady Eidson  <beidson@apple.com>

        Add a selection overlay.
        <rdar://problem/16727797> and https://bugs.webkit.org/show_bug.cgi?id=132200

        Reviewed by David Hyatt.

        No new tests (WK2 feature in development).

        * WebCore.xcodeproj/project.pbxproj:

        Add a SelectionRectGathterer class.
        It creates a Notifier (given a RenderView) then accepts Rects from the RenderView.
        When the Notifier is destroyed, the appropriate EditorClient is notified of the gathered rects.
        * editing/SelectionRectGatherer.cpp: Added.
        (WebCore::SelectionRectGatherer::SelectionRectGatherer):
        (WebCore::SelectionRectGatherer::addRect):
        (WebCore::SelectionRectGatherer::addRects):
        (WebCore::SelectionRectGatherer::Notifier::Notifier):
        (WebCore::SelectionRectGatherer::Notifier::~Notifier):
        (WebCore::SelectionRectGatherer::clearAndCreateNotifier):
        * editing/SelectionRectGatherer.h: Added.

        * page/EditorClient.h:
        (WebCore::EditorClient::selectionRectsDidChange):

        * rendering/RenderView.cpp:
        (WebCore::RenderView::RenderView):
        (WebCore::RenderView::setSelection): Clear the gatherer’s rects then create a Notifier.
        (WebCore::RenderView::setSubtreeSelection): Give all the selection rects to be painted to
          the SelectionRectGatherer.
        * rendering/RenderView.h:

2014-04-08  Jer Noble  <jer.noble@apple.com>

        Support "Live" streams in media controls.
        https://bugs.webkit.org/show_bug.cgi?id=131390

        Reviewed by Brent Fulgham.

        Test: http/tests/media/hls/video-controls-live-stream.html

        Support "Live" streams by adding an isLive property to our media controls.

        * Modules/mediacontrols/mediaControlsApple.css:
        (audio::-webkit-media-controls-status-display):
        (video:-webkit-full-screen::-webkit-media-controls-status-display):
        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller): isLive defaults to false.
        (Controller.prototype.setIsLive): Set the isLive property and conditionally reconfigure the controls.
        (Controller.prototype.configureInlineControls): Don't add the timeline if we are live.
        (Controller.prototype.configureFullScreenControls): Ditto.
        (Controller.prototype.updateStatusDisplay): Added.
        (Controller.prototype.handleLoadStart): Call updateStatusDisplay().
        (Controller.prototype.handleError): Ditto.
        (Controller.prototype.handleAbort): Ditto.
        (Controller.prototype.handleSuspend): Ditto.
        (Controller.prototype.handleStalled): Ditto.
        (Controller.prototype.handleWaiting): Ditto.
        (Controller.prototype.updateDuration): Ditto.
        (Controller.prototype.updateReadyState): Ditto.

2014-04-25  Dean Jackson  <dino@apple.com>

        Allow a platform-specific size enumeration to be passed into popup-menu display
        https://bugs.webkit.org/show_bug.cgi?id=132195

        Reviewed by Brent Fulgham. With some in-person review comments from Sam Weinig.

        Platforms like OS X use a set of predefined sizes for built-in controls
        used for <select>: normal, small and mini. Expose that information to
        the PopupMenuClient via the PopupMenuStyle, allowing it to be passed
        into the platform code in WebKitSystemInterface.

        * platform/PopupMenuStyle.h: Add a menu size enum.
        (WebCore::PopupMenuStyle::PopupMenuStyle):
        (WebCore::PopupMenuStyle::menuSize):
        * platform/mac/WebCoreSystemInterface.h: Pass in NSControlSize as a parameter
        to WKPopupMenu.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.
        * rendering/RenderMenuList.cpp:
        (RenderMenuList::menuStyle): Ask the RenderTheme to calculate the size
        of the menu button, so that it can be added to the PopupMenuStyle.
        * rendering/RenderTheme.h: New method to retrieve the menu size.
        (WebCore::RenderTheme::popupMenuSize): Convert an NSControlSize into a PopupMenuSize.
        * rendering/RenderThemeMac.h: Override the base function, and add a
        controlSizeForCell helper.
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::controlSizeForCell): Used by this new
        code and the old setControlSizeForCell to calculate the NSControlSize
        that would be used for the button.
        (WebCore::RenderThemeMac::setControlSize): Call the new helper.
        (WebCore::RenderThemeMac::popupMenuSize): Return the value from the helper.

2014-04-25  Javier Fernandez  <jfernandez@igalia.com>

        REGRESSION(r167799): ASSERTION in parseGridTemplateShorthand in fast/css-grid-layout/grid-template-shorthand-get-set.html
        https://bugs.webkit.org/show_bug.cgi?id=132194

        Reviewed by Martin Robinson.

        Properly resolving the grid-template shorthand for the corresponding longhand
        properties.

        No new tests, grid-template-shorthand-get-set.html already covers this case.

        * css/StyleProperties.cpp:
        (WebCore::StyleProperties::getPropertyValue):
        * css/StylePropertyShorthand.cpp:
        (WebCore::shorthandForProperty):
        (WebCore::matchingShorthandsForLonghand):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):

2014-04-25  David Hyatt  <hyatt@apple.com>

        Column rules not respecting scroll offsets.
        https://bugs.webkit.org/show_bug.cgi?id=109683

        Reviewed by Dean Jackson.

        Added fast/multicol/scrolling-column-rules.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintColumnRules):
        Make paintColumnRules virtual so that it works with both column implementations.

        (WebCore::RenderBlock::paintObject):
        Changed to call paintColumnRules with the adjusted scroll offset and to do it after
        bailing on the root background only check.

        * rendering/RenderBlock.h:
        paintColumnRules is now virtual.

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::paintColumnRules):
        (WebCore::RenderBlockFlow::paintBoxDecorations): Deleted.
        * rendering/RenderBlockFlow.h:
        Got rid of paintBoxDecorations override since it failed when hasBoxDecorations was false
        anyway. Override paintColumnRules instead to paint at the right time.

2014-04-23  Jon Honeycutt  <jhoneycutt@apple.com>

        Crash applying editing commands from iframe onload event

        <https://bugs.webkit.org/show_bug.cgi?id=132103>
        <rdar://problem/15696351>

        This patch merges the Chromium bug workaround from
        <http://src.chromium.org/viewvc/blink?revision=162080&view=revision>,
        which prevents reentrancy in CompositeEditCommand::apply().

        Reviewed by Darin Adler.

        Test: editing/apply-style-iframe-crash.html

        * editing/CompositeEditCommand.cpp:
        (WebCore::HTMLNames::ReentrancyGuard::isRecursiveCall):
        (WebCore::HTMLNames::ReentrancyGuard::Scope::Scope):
        (WebCore::HTMLNames::ReentrancyGuard::Scope::~Scope):
        (WebCore::CompositeEditCommand::apply):
        If this is a recursive call, return early.

2014-04-25  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] fast/multicol/hit-test-* layout tests all fail
        https://bugs.webkit.org/show_bug.cgi?id=132081

        Reviewed by Dean Jackson.

        Added a bunch of tests in fast/multicol/newmulticol/compare-with-old-impl/hit-test-*.html

        * rendering/RenderBlock.h:
        Make offsetForContents public, since I need to call it from RenderMultiColumnSet.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::populate):
        Stop an ASSERT in the new columns code on the hit tests by making sure layout state is
        disabled when moving children around.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::positionForPoint):
        Refactor this function to call a helper function instead, translateRegionPointToFlowThread.

        (WebCore::RenderMultiColumnSet::translateRegionPointToFlowThread):
        This function is logical (unlike the mistaken physical function I first implemented in
        positionForPoint).

        (WebCore::RenderMultiColumnSet::updateHitTestResult):
        * rendering/RenderMultiColumnSet.h:
        Overridden to fill in the correct local coordinate when the HTML document is inside a paginated
        RenderView. Note that column spans don't actually work, but once we move over to a 
        non-column based pagination API, that will become irrelevant.

2014-04-25  Andreas Kling  <akling@apple.com>

        Mark some things with WTF_MAKE_FAST_ALLOCATED.
        <https://webkit.org/b/132198>

        Use FastMalloc for more things.

        Reviewed by Anders Carlsson.

        * bindings/js/ScriptController.h:
        * dom/DocumentOrderedMap.h:
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorDOMAgent.h:
        * inspector/InspectorDOMDebuggerAgent.h:
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorLayerTreeAgent.h:
        * inspector/InspectorPageAgent.h:
        * inspector/InspectorResourceAgent.h:
        * inspector/InspectorTimelineAgent.h:
        * inspector/InspectorWorkerAgent.h:
        * inspector/PageRuntimeAgent.h:
        * loader/HistoryController.h:
        * page/DeviceClient.h:
        * page/DeviceController.h:
        * page/EventHandler.h:
        * page/Page.h:
        * page/scrolling/ScrollingStateNode.h:
        * platform/graphics/FontGenericFamilies.h:
        * platform/graphics/FontPlatformData.h:

2014-04-25  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Rename objectShouldPaintInFlowRegion to something more clear
        https://bugs.webkit.org/show_bug.cgi?id=132050

        Reviewed by Andreas Kling.

        The objectShouldPaintInFlowRegion is no longer used only by the painting process
        but also for hit-testing, so it was renamed to something more generic (objectShouldFragmentInFlowRegion).

        No new tests required, it's just a method rename.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paint):
        (WebCore::RenderBlock::selectionGaps):
        (WebCore::RenderBlock::nodeAtPoint):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::positionForPoint):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::objectShouldFragmentInFlowRegion):
        (WebCore::RenderFlowThread::objectShouldPaintInFlowRegion): Deleted.
        * rendering/RenderFlowThread.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::hitTestLayer):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::ensureOverflowForBox):
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::shouldPaint):

2014-04-25  Enrica Casucci  <enrica@apple.com>

        iOS build fix after http://trac.webkit.org/changeset/167803
        Unreviewed.

        * page/Frame.cpp:
        (WebCore::Frame::checkOverflowScroll):
        * rendering/RenderBlock.cpp:
        (WebCore::positionForPointRespectingEditingBoundaries):

2014-04-24  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Add support for offsetLeft and offsetTop.
        https://bugs.webkit.org/show_bug.cgi?id=132080

        Reviewed by Andrei Bucur.

        Added fast/multicol/client-spanners-complex.html and offset-top-left.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
        Patch the offsetLeft/Top loop to handle calling into RenderMultiColumnFlowThread
        in order to adjust the coordinates for the new multicolumn layout.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::mapFromFlowToRegion):
        Modified to use a helper that can be shared by offsetLeft/Top code. This code
        ran for client rects, and I'm moving/refactoring it for more sharing.

        (WebCore::RenderMultiColumnFlowThread::physicalTranslationOffsetFromFlowToRegion):
        (WebCore::RenderMultiColumnFlowThread::physicalTranslationFromFlowToRegion):
        * rendering/RenderMultiColumnFlowThread.h:
        New functions that beef up what was in mapFromFlowToRegion and fix some bugs
        with the translation code.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
        Patched to factor in the flow thread portion rect of the specific multicolumn set.

        * rendering/RenderObject.h:
        (WebCore::RenderObject::isRenderMultiColumnFlowThread):
        Added for toRenderMultiColumnFlowThread capability.

2014-04-25  Brent Fulgham  <bfulgham@apple.com>

        ScrollingCoordinator is unaware of topContentInset
        https://bugs.webkit.org/show_bug.cgi?id=132158
        <rdar://problem/16706152>

        Reviewed by Darin Adler.

        Test: platform/mac/fast/scrolling/scroll-select-bottom-test.html

        The calculation of non-fast-scrollable regions does not currently take
        the topContentOffset into account. Consequently, the logic that decides
        whether to stay on the scrolling thread, or drop down to an individual
        page element, can make the wrong choice. This is especially true for
        small scrollable regions (such as <select> elements), where the
        topContentInset may be quite close to the size of the scrollable
         element itself.

        * page/scrolling/ScrollingCoordinator.cpp:
        (WebCore::ScrollingCoordinator::computeNonFastScrollableRegion): Also
        include the topContentInset value in our calculation.

2014-04-25  Javier Fernandez  <jfernandez@igalia.com>

        REGRESSION(r167799): Breaks debug build
        https://bugs.webkit.org/show_bug.cgi?id=132194

        Reviewed by Andrei Bucur.

        Fix the debug bots after r167799

        No new tests, no new functionality.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTemplateShorthand):

2014-04-25  Miyoung Shin  <myid.shin@samsung.com>

        Web process is crashed during dispatching touchEvent created by JS.
        https://bugs.webkit.org/show_bug.cgi?id=113225

        Reviewed by Benjamin Poulain.

        TouchEvent created by JS should have the necessary attributes
        of touches, targetTouches and changedTouches.
        It should be verified weather there are touchLists before dispatching touch event.

        Test: fast/events/touch/create-touch-event-without-touchList.html

        * dom/EventDispatcher.cpp:
        (WebCore::EventDispatcher::dispatchEvent):
        (WebCore::EventPath::updateTouchLists):
        (WebCore::addRelatedNodeResolversForTouchList): Deleted.

2014-04-25  Philippe Normand  <pnormand@igalia.com>

        [GTK] File webkitRelativePath attribute was removed in r163483
        https://bugs.webkit.org/show_bug.cgi?id=132193

        Reviewed by Carlos Garcia Campos.

        Add the removed getter as deprecated API to keep backwards compatibility.

        * bindings/gobject/WebKitDOMDeprecated.cpp:
        (webkit_dom_file_get_webkit_relative_path):
        * bindings/gobject/WebKitDOMDeprecated.h:
        * bindings/gobject/WebKitDOMDeprecated.symbols:

2014-04-25  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Overflow selection doesn't work properly
        https://bugs.webkit.org/show_bug.cgi?id=130715

        Reviewed by David Hyatt.

        When hit-testing, painting block selection gaps and searching for the node at a specific point inside a flow thread,
        the region range of the box being checked must be validated in order to not return false positives. Otherwise, hit-testing
        at the top of region B could hit elements that overflow the bottom of region A.

        Tests: fast/regions/selection-in-overflow-hit-testing.html
               fast/regions/selection-in-overflow.html
               fast/regions/selection-in-text-after-overflow-hit-testing.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::visiblePositionRangeForLine):
        (WebCore::AccessibilityRenderObject::visiblePositionForPoint):
        * dom/Document.cpp:
        (WebCore::Document::caretRangeFromPoint):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::contains):
        * editing/VisibleUnits.cpp:
        (WebCore::previousLinePosition):
        (WebCore::nextLinePosition):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectClosestWordFromHitTestResult):
        (WebCore::EventHandler::selectClosestWordOrLinkFromMouseEvent):
        (WebCore::EventHandler::handleMousePressEventTripleClick):
        (WebCore::EventHandler::handleMousePressEventSingleClick):
        (WebCore::selectionExtentRespectingEditingBoundary):
        (WebCore::EventHandler::updateSelectionForMouseDrag):
        (WebCore::EventHandler::handleMouseReleaseEvent):
        * page/Frame.cpp:
        (WebCore::Frame::visiblePositionForPoint):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::selectionGaps):
        (WebCore::RenderBlock::nodeAtPoint):
        (WebCore::positionForPointRespectingEditingBoundaries):
        (WebCore::RenderBlock::positionForPointWithInlineChildren):
        (WebCore::isChildHitTestCandidate):
        (WebCore::RenderBlock::positionForPoint):
        * rendering/RenderBlock.h:
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::positionForPointWithInlineChildren):
        (WebCore::RenderBlockFlow::positionForPoint):
        * rendering/RenderBlockFlow.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::positionForPoint):
        * rendering/RenderBox.h:
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::positionForPoint):
        * rendering/RenderFileUploadControl.h:
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::positionForPoint):
        * rendering/RenderInline.h:
        * rendering/RenderLineBreak.cpp:
        (WebCore::RenderLineBreak::positionForPoint):
        * rendering/RenderLineBreak.h:
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::positionForPoint):
        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::positionForPoint):
        * rendering/RenderObject.h:
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::positionForPoint):
        * rendering/RenderRegion.h:
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::positionForPoint):
        * rendering/RenderReplaced.h:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::positionForPoint):
        * rendering/RenderText.h:
        * rendering/svg/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::positionForPoint):
        * rendering/svg/RenderSVGInlineText.h:
        * rendering/svg/RenderSVGText.cpp:
        (WebCore::RenderSVGText::positionForPoint):
        * rendering/svg/RenderSVGText.h:

2014-04-25  Philippe Normand  <pnormand@igalia.com>

        [GTK] Iframe seamless support was removed in r163427
        https://bugs.webkit.org/show_bug.cgi?id=132192

        Reviewed by Carlos Garcia Campos.

        Add the removed get and set methods as deprecated API to keep
        backwards compatibility.

        * bindings/gobject/WebKitDOMDeprecated.cpp:
        (webkit_dom_processing_instruction_set_data):
        (webkit_dom_html_iframe_element_get_seamless):
        (webkit_dom_html_iframe_element_set_seamless):
        * bindings/gobject/WebKitDOMDeprecated.h:
        * bindings/gobject/WebKitDOMDeprecated.symbols:

2014-04-25  Philippe Normand  <pnormand@igalia.com>

        [GTK] HTMLInputElement webkitdirectory property was removed in r163483
        https://bugs.webkit.org/show_bug.cgi?id=132191

        Reviewed by Carlos Garcia Campos.

        Add the removed get and set methods as deprecated API to keep
        backwards compatibility.

        * bindings/gobject/WebKitDOMDeprecated.cpp:
        (webkit_dom_html_input_element_get_webkitdirectory):
        (webkit_dom_html_input_element_set_webkitdirectory):
        * bindings/gobject/WebKitDOMDeprecated.h:
        * bindings/gobject/WebKitDOMDeprecated.symbols:

2014-04-25  Javier Fernandez  <jfernandez@igalia.com>

        [CSS Grid Layout] Implementation of the grid-template shorthand.
        https://bugs.webkit.org/show_bug.cgi?id=128980

        Reviewed by Darin Adler.

        This shorthand sets the values for the grid-template-columns,
        grid-template-rows and grid-template-areas, so the implementation
        tries to reuse as much available parsing functions as possible.

        The "parsingGridTrackList" was refactored to return a CSSValue and
        let the "parseValue" function to assign the property value. The
        "forwardSlash" operator is now valid when the track-list clause is
        part of a shorthand. The "parseValue" function checkouts that only
        additional clauses are allowed when processing shorthands; the
        grid-columns-rows-get-set.html tests was modified to verify this.

        The "parseGridTemplateAreas" was refactored too, in order to
        process single areas's rows. This is very useful for the
        gris-template secondary syntax, which mixes areas and rows values.

        Finally, the "parseGirdLineNames" function was modified as well by
        defining an new argument to concatenate head/tail custom-ident
        elements and ensure the identList is at the heading index, since
        it's now possible the parseList was rewound.

        The implementation of the grid-template shorthand tries first to
        match the <grid-template-columns> / <grid-template-rows> syntax,
        failing back to the secondary syntax if needed.  This approach
        requires to rewind the parseList but it produces a clearer code.

        Test: fast/css-grid-layout/grid-template-shorthand-get-set.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseGridTemplateRowsAndAreas):
        (WebCore::CSSParser::parseGridTemplateShorthand):
        (WebCore::CSSParser::parseGridLineNames):
        (WebCore::CSSParser::parseGridTrackList):
        (WebCore::CSSParser::parseGridTemplateAreasRow):
        (WebCore::CSSParser::parseGridTemplateAreas):
        * css/CSSParser.h:
        * css/CSSParserValues.h:
        (WebCore::CSSParserValueList::setCurrentIndex):
        * css/CSSPropertyNames.in:
        * css/StylePropertyShorthand.cpp:
        (WebCore::webkitGridTemplateShorthand):
        * css/StylePropertyShorthand.h:

2014-04-25  Andreas Kling  <akling@apple.com>

        Remove two unused SVGDocument functions.
        <https://webkit.org/b/132178>

        Reviewed by Antti Koivisto.

        * svg/SVGDocument.cpp:
        (WebCore::SVGDocument::dispatchZoomEvent): Deleted.
        (WebCore::SVGDocument::dispatchScrollEvent): Deleted.
        * svg/SVGDocument.h:

2014-04-25  Ion Rosca  <rosca@adobe.com>

        Incomplete body painting when using blend modes
        https://bugs.webkit.org/show_bug.cgi?id=131889

        The incomplete painting was caused by the transparency layer created for
        the root renderer. We can safely skip creating this transparency layer at
        the root level, as there is nothing else being painted behind this layer that
        could be used erroneously as a backdrop.

        Reviewed by Simon Fraser.

        Test: css3/compositing/blend-mode-with-body.html

        * rendering/RenderLayer.h:
        Changing RenderLayer::paintsWithTransparency so that it will not
        return true when the root renderer needs to isolate blending.

2014-04-25  Darin Adler  <darin@apple.com>

        ASSERTION FAILED: "!m_isolatedWorld->isNormal() || m_wrapper || !m_jsFunction" in svg/custom/use-instanceRoot-event-listeners.xhtml
        https://bugs.webkit.org/show_bug.cgi?id=132148

        Reviewed by Andreas Kling.

        Changed how JSCustomMarkFunction generation works. Instead of leaving out
        the generated visitChildren function, just generate a call to visitAdditionalChildren.
        This eliminates the need to repeat boilerplate.

        The fix for the above bug was to correct mistaken logic where JSSVGElementInstance
        had a visitChildren that did not properly mark event listeners because it explicitly
        did not call through to the base class visitChildren. The new arrangement makes that
        mistake impossible.

        * bindings/js/JSAttrCustom.cpp:
        (WebCore::JSAttr::visitAdditionalChildren): Use this instead of visitChildren.
        * bindings/js/JSAudioTrackCustom.cpp:
        (WebCore::JSAudioTrack::visitAdditionalChildren): Ditto.
        * bindings/js/JSAudioTrackListCustom.cpp:
        (WebCore::JSAudioTrackList::visitAdditionalChildren): Ditto.
        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::JSCSSRule::visitAdditionalChildren): Ditto.
        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::JSCSSStyleDeclaration::visitAdditionalChildren): Ditto.
        * bindings/js/JSCanvasRenderingContextCustom.cpp:
        (WebCore::JSCanvasRenderingContext::visitAdditionalChildren): Ditto.
        * bindings/js/JSCryptoKeyPairCustom.cpp:
        (WebCore::JSCryptoKeyPair::visitAdditionalChildren): Ditto.
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::visitAdditionalChildren): Ditto.
        * bindings/js/JSMessageChannelCustom.cpp:
        (WebCore::JSMessageChannel::visitAdditionalChildren): Ditto.
        * bindings/js/JSMessagePortCustom.cpp:
        (WebCore::JSMessagePort::visitAdditionalChildren): Ditto.
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::JSNode::visitAdditionalChildren): Ditto.
        * bindings/js/JSNodeFilterCustom.cpp:
        (WebCore::JSNodeFilter::visitAdditionalChildren): Ditto.
        * bindings/js/JSNodeIteratorCustom.cpp:
        (WebCore::JSNodeIterator::visitAdditionalChildren): Ditto.
        * bindings/js/JSSVGElementInstanceCustom.cpp:
        (WebCore::JSSVGElementInstance::visitAdditionalChildren): Ditto.
        * bindings/js/JSSharedWorkerCustom.cpp:
        (WebCore::JSSharedWorker::visitAdditionalChildren): Ditto.
        * bindings/js/JSStyleSheetCustom.cpp:
        (WebCore::JSStyleSheet::visitAdditionalChildren): Ditto.
        * bindings/js/JSTextTrackCueCustom.cpp:
        (WebCore::JSTextTrackCue::visitAdditionalChildren): Ditto.
        * bindings/js/JSTextTrackCustom.cpp:
        (WebCore::JSTextTrack::visitAdditionalChildren): Ditto.
        * bindings/js/JSTextTrackListCustom.cpp:
        (WebCore::JSTextTrackList::visitAdditionalChildren): Ditto.
        * bindings/js/JSTreeWalkerCustom.cpp:
        (WebCore::JSTreeWalker::visitAdditionalChildren): Ditto.
        * bindings/js/JSVideoTrackCustom.cpp:
        (WebCore::JSVideoTrack::visitAdditionalChildren): Ditto.
        * bindings/js/JSVideoTrackListCustom.cpp:
        (WebCore::JSVideoTrackList::visitAdditionalChildren): Ditto.
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::JSWebGLRenderingContext::visitAdditionalChildren): Ditto.
        * bindings/js/JSWorkerGlobalScopeCustom.cpp:
        (WebCore::JSWorkerGlobalScope::visitAdditionalChildren): Ditto.
        * bindings/js/JSXMLHttpRequestCustom.cpp:
        (WebCore::JSXMLHttpRequest::visitAdditionalChildren): Ditto.
        * bindings/js/JSXPathResultCustom.cpp:
        (WebCore::JSXPathResult::visitAdditionalChildren): Ditto.

        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::visitChildren): Rewrote to use modern for loops.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader): Generate declaration of visitAdditionalChildren.
        (GenerateImplementation): Generate call to visitAdditionalChildren.

2014-04-24  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] Enable optimization to mmap downloaded resources once they become file-backed.
        <https://webkit.org/b/132171>
        <rdar://problem/16720733>

        Add a missing export for the USE(CFNETWORK) + WebKit2 combo.

        Reviewed by Antti Koivisto.

        * WebCore.exp.in:

2014-04-24  Darin Adler  <darin@apple.com>

        FrameLoader::checkCompleted can hit the "ref'ing while destroyed" assertion
        https://bugs.webkit.org/show_bug.cgi?id=132163
        rdar://problem/16720640

        Reviewed by Brady Eidson.

        Couldn't find a way to test this yet. Would be nice to have a test.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::checkCompleted): Move protector until after we check
        if the frame is already complete. That can happen in practice when this is
        called from within the frame's destructor. All the code that runs before the
        protector simply checks state and does not require protection.

2014-04-24  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Mark Supplement instead of RefCountedSupplement in NavigatorContentUtils 
        https://bugs.webkit.org/show_bug.cgi?id=132151

        Reviewed by Darin Adler.

        Though Original goal was to make it sharable across navigator instances, the NavigatorContentUtils
        has used RefCountedSupplement<Page> instead of RefCountedSupplement<Navigator>. This patch makes it
        use Supplement<Page> because there is no scenario which needs to be shared across navigator instances.

        Blink merge from https://src.chromium.org/viewvc/blink?view=rev&revision=171403.

        No new tests, no behavior changes.

        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::NavigatorContentUtils::from):
        (WebCore::NavigatorContentUtils::create):
        (WebCore::provideNavigatorContentUtilsTo):
        * Modules/navigatorcontentutils/NavigatorContentUtils.h:

2014-04-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167700.
        https://bugs.webkit.org/show_bug.cgi?id=132142

        Incorrectly reverted the change in r167547 for
        webkit.org/b/131898 (Requested by rniwa on #webkit).

        Reverted changeset:

        "Cursor doesn't change back to pointer when leaving the Safari
        window"
        https://bugs.webkit.org/show_bug.cgi?id=132038
        http://trac.webkit.org/changeset/167700

2014-04-24  Brady Eidson  <beidson@apple.com>

        Rename "IMAGE_CONTROLS" feature to "SERVICE_CONTROLS"
        https://bugs.webkit.org/show_bug.cgi?id=132155

        Reviewed by Tim Horton.

        No new tests (No change in behavior).

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * WebCore.exp.in:
        * css/CSSDefaultStyleSheets.cpp:
        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/CSSValueKeywords.in:
        * dom/Node.h:
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::HTMLImageElement):
        (WebCore::HTMLImageElement::parseAttribute):
        (WebCore::HTMLImageElement::didAttachRenderers):
        * html/HTMLImageElement.h:
        * html/shadow/ImageControlsRootElement.cpp:
        * html/shadow/ImageControlsRootElement.h:
        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
        * html/shadow/mac/ImageControlsButtonElementMac.h:
        * html/shadow/mac/ImageControlsRootElementMac.cpp:
        * html/shadow/mac/ImageControlsRootElementMac.h:
        * page/ContextMenuContext.cpp:
        (WebCore::ContextMenuContext::ContextMenuContext):
        * page/ContextMenuContext.h:
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::maybeCreateContextMenu):
        (WebCore::ContextMenuController::populate):
        * page/ContextMenuController.h:
        * page/Settings.in:
        * platform/ThemeTypes.h:
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::canHaveChildren):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::paintBorderOnly):
        (WebCore::RenderTheme::paintDecorations):
        * rendering/RenderTheme.h:
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::servicesRolloverButtonCell):
        (WebCore::RenderThemeMac::paintImageControlsButton):
        (WebCore::RenderThemeMac::imageControlsButtonSize):

2014-04-24  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: Restore PageDebuggerAgent::enable / disable
        https://bugs.webkit.org/show_bug.cgi?id=132156

        Restore functions that were eroniously removed in r167530.

        Reviewed by Joseph Pecoraro.

        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::enable): Added.
        (WebCore::PageDebuggerAgent::disable): Added.
        * inspector/PageDebuggerAgent.h:

2014-04-24  Alexey Proskuryakov  <ap@apple.com>

        Dropzone effects don't work in non-file documents
        https://bugs.webkit.org/show_bug.cgi?id=131770

        Reviewed by Darin Adler.

        File documents have two quirks that were making dropzone work in these before:
        1. An ancient hack for Dashboard allows pasteboard access from JS.
        2. On Mac, sandbox doesn't prevent File object creation, as we already have the access.

        * dom/DataTransfer.cpp:
        (WebCore::DataTransfer::hasFileOfType):
        (WebCore::DataTransfer::hasStringOfType):
        * dom/DataTransfer.h:
        Moved these functions from EventHandler to DataTransfer. We can't create a DataTransfer
        with Files while dragging, security doesn't permit us to. But we can get the file name.

        * fileapi/File.cpp:
        (WebCore::createBlobDataForFile):
        (WebCore::createBlobDataForFileWithName):
        (WebCore::File::contentTypeFromFilePath):
        (WebCore::getContentTypeFromFileName): Deleted.
        * fileapi/File.h:
        Exposed a function to get file type from path without creating a File first.
        This is much cheaper than creating a File, and works even when sandbox disallows
        read access to content, such as when dragging over a target.

        * page/EventHandler.cpp:
        (WebCore::hasDropZoneType):
        (WebCore::hasFileOfType): Deleted.
        (WebCore::hasStringOfType): Deleted.

2014-04-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167441.
        https://bugs.webkit.org/show_bug.cgi?id=132152

        Caused full screen regressions on vimeo, youtube, and others.
        (Requested by jernoble on #webkit).

        Reverted changeset:

        "Fullscreen media controls are unusable in pagination mode"
        https://bugs.webkit.org/show_bug.cgi?id=131705
        http://trac.webkit.org/changeset/167441

2014-04-24  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Unused class forward declarations in Page
        https://bugs.webkit.org/show_bug.cgi?id=132141

        Reviewed by Benjamin Poulain.

        No new tests, no change on behavior.

        * page/Page.h:

2014-04-24  Eric Carlson  <eric.carlson@apple.com>

        [Mac] don't ask for AVAssetTrack properties before they are available
        https://bugs.webkit.org/show_bug.cgi?id=131902
        <rdar://problem/16505076>

        Reviewed by Brent Fulgham.

        No new tests, the behavior this changes can not be tested with a layout test.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
            m_cachedTotalBytes.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): Don't report that
            metadata has been loaded until the track properties we need have been loaded too.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Cache totalBytes instead
            of recalculating it every time.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Invalidate cached
            total bytes.
        (WebCore::assetTrackMetadataKeyNames): Array of AVAssetTrack properties we use.

2014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>

        Unify platformWidthForGlyph across OS X and iOS
        https://bugs.webkit.org/show_bug.cgi?id=132036

        Reviewed by Darin Adler.

        This patch creates on shared SimpleFontData::platformWidthForGlyph() function for both OS X and iOS.

        No new tests are necessary because there should be no behavior changes.

        * platform/graphics/SimpleFontData.h: Signatures for two helper functions
        * platform/graphics/ios/SimpleFontDataIOS.mm: Replace iOS implementation of platformWidthForGlyph() with
        implementations of only the two helper functions
        (WebCore::SimpleFontData::getRenderingStyle): Compute style argument to CGFontGetGlyphAdvancesForStyle()
        (WebCore::SimpleFontData::advanceForColorBitmapFont): iOS doesn't have color bitmap fonts
        (WebCore::SimpleFontData::platformWidthForGlyph): Deleted.
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::SimpleFontData::getRenderingStyle): Compute style argument to CGFontGetGlyphAdvancesForStyle()
        (WebCore::SimpleFontData::advanceForColorBitmapFont): Use [NSFont advancementForGlyph] to compute the advance
        (WebCore::hasCustomTracking): Removed #if
        (WebCore::isEmoji): Only relevant on iOS
        (WebCore::SimpleFontData::platformWidthForGlyph): Shared implementation. Calls helper functions.

2014-04-24  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Clipping on text areas when shifted by one device pixel.
        https://bugs.webkit.org/show_bug.cgi?id=132008

        Reviewed by Darin Adler.

        Make RenderTheme paint* functions LayoutRect aware. Textarea is device pixel snapped, while
        other theme controls are still on integral size/positions.

        Test: fast/forms/hidpi-textarea-on-subpixel-position.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::paintBorderOnly):
        (WebCore::RenderTheme::paintDecorations):
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::paintTextField):
        (WebCore::RenderTheme::paintTextFieldDecorations):
        (WebCore::RenderTheme::paintTextArea):
        (WebCore::RenderTheme::paintTextAreaDecorations):
        * rendering/RenderThemeIOS.h:
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::paintTextFieldDecorations):
        (WebCore::RenderThemeIOS::paintTextAreaDecorations):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintTextField):
        (WebCore::RenderThemeMac::paintTextArea):

2014-04-24  Myles C. Maxfield  <mmaxfield@apple.com>

        FontCache::fontCache() never returns nullptr so it can be made to return a reference instead
        https://bugs.webkit.org/show_bug.cgi?id=132110

        Reviewed by Tim Horton.

        Updates callers to use '.' instead of '->'.

        No new tests are necessary because there should be no behavior change.

        * css/CSSFontFaceSource.cpp:
        (WebCore::CSSFontFaceSource::getFontData):
        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::CSSFontSelector):
        (WebCore::CSSFontSelector::~CSSFontSelector):
        (WebCore::CSSFontSelector::addFontFaceRule):
        (WebCore::fontDataForGenericFamily):
        (WebCore::CSSFontSelector::getFallbackFontData):
        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::releaseMemory):
        * platform/graphics/FontCache.cpp:
        (WebCore::fontCache): Return a reference
        * platform/graphics/FontCache.h:
        (WebCore::FontCachePurgePreventer::FontCachePurgePreventer):
        (WebCore::FontCachePurgePreventer::~FontCachePurgePreventer):
        * platform/graphics/FontGlyphs.cpp:
        (WebCore::FontGlyphs::FontGlyphs):
        (WebCore::FontGlyphs::releaseFontData):
        (WebCore::FontGlyphs::realizeFontDataAt):
        (WebCore::FontGlyphs::glyphDataAndPageForCharacter):
        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
        (WebCore::FontPlatformData::verticalData):
        * platform/graphics/ios/SimpleFontDataIOS.mm:
        (WebCore::SimpleFontData::platformCreateScaledFontData):
        * platform/graphics/mac/ComplexTextControllerCoreText.mm:
        (WebCore::ComplexTextController::collectComplexTextRunsForCharacters):
        * platform/graphics/mac/FontCacheMac.mm:
        (WebCore::invalidateFontCache):
        (WebCore::fontCacheRegisteredFontsChangedNotificationCallback):
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::platformCreateScaledFontData):
        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::getCJKCodePageMasks):
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::containsCharacters):
        * platform/graphics/wince/FontCacheWinCE.cpp:
        (WebCore::getCJKCodePageMasks):
        * platform/graphics/wince/FontPlatformData.cpp:
        (WebCore::FontFamilyCodePageInfo::codePages):
        (WebCore::FixedSizeFontData::create):
        * platform/graphics/wince/GlyphPageTreeNodeWinCE.cpp:
        (WebCore::GlyphPage::fill):
        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
        (WebCore::SimpleFontData::platformCreateScaledFontData):
        (WebCore::SimpleFontData::containsCharacters):

2014-04-24  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Manage AudioSession category according to media type
        https://bugs.webkit.org/show_bug.cgi?id=132096

        Reviewed by Jer Noble.

        * WebCore.exp.in: Export setting.

        * html/HTMLMediaSession.cpp:
        (WebCore::HTMLMediaSession::HTMLMediaSession):
        (WebCore::initializeAudioSession): Deleted.

        * page/Settings.cpp:
        * page/Settings.h:
        (WebCore::Settings::setShouldManageAudioSession): New.
        (WebCore::Settings::shouldManageAudioSession): Ditto.

        * platform/audio/ios/AudioDestinationIOS.cpp:
        (WebCore::AudioDestinationIOS::AudioDestinationIOS): Use a MediaSession instead of inheriting
            from AudioListener and calling the AudioSession directly.
        (WebCore::AudioDestinationIOS::~AudioDestinationIOS): Ditto.
        (WebCore::AudioDestinationIOS::start): Notify session.
        (WebCore::AudioDestinationIOS::stop): Ditto.
        (WebCore::AudioDestinationIOS::beganAudioInterruption): Deleted.
        (WebCore::AudioDestinationIOS::endedAudioInterruption): Deleted.
        * platform/audio/ios/AudioDestinationIOS.h:
        (WebCore::AudioDestinationIOS::mediaType):
        (WebCore::AudioDestinationIOS::canReceiveRemoteControlCommands):
        (WebCore::AudioDestinationIOS::didReceiveRemoteControlCommand):
        (WebCore::AudioDestinationIOS::isPlaying): Deleted.

        * platform/audio/ios/AudioSessionIOS.mm:
        (WebCore::categoryName): Debug-only logging function.
        (WebCore::AudioSession::setCategory): Don't stick with "media" once it is set.

        * platform/audio/ios/MediaSessionManagerIOS.mm:
        (WebCore::MediaSessionManageriOS::resetRestrictions): Set up restrictions for WebAudio.
        (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Don't set invalid start time.

        * platform/audio/mac/MediaSessionManagerMac.cpp:
        (MediaSessionManager::updateSessionState): Manage AudioSession.active when WebAudio clients
            come and go. Manage AudioSession.category according to the number of WebAudio and
            HTMLMediaElement clients.

2014-04-24  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Client rects don't work with column spans.
        https://bugs.webkit.org/show_bug.cgi?id=132131

        Reviewed by Dean Jackson.
        
        Don't factor in the offset of the multicolumn set from the top
        of the multicolumn block. This was added already, and it doesn't
        need to be a part of columnTranslationForOffset.

        Added fast/multicol/client-rects-spanners.html

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):

2014-04-24  Praveen R Jadhav  <praveen.j@samsung.com>

        [EFL] WebKit build fails when MEDIA_SOURCE is enabled
        https://bugs.webkit.org/show_bug.cgi?id=132118

        Reviewed by Brent Fulgham.

        Files MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp and
        WebKitMediaSourceGStreamer.cpp are included for EFL port build.

        No new tests. No change in behaviour.

        * PlatformEfl.cmake: MediaSourceGStreamer.cpp, SourceBufferPrivateGStreamer.cpp
        and WebKitMediaSourceGStreamer.cpp are included for compilation.

2014-04-24  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>

        ASSERTION FAILED: !begin.isIndefinite() in WebCore::SVGSMILElement::resolveFirstInterval.
        https://bugs.webkit.org/show_bug.cgi?id=131097

        Reviewed by Darin Adler.

        According to smil animation reference, max attribute cannot be 0.

        Test: svg/animations/smil-animation-max-attribute-zero-crash.svg

        * svg/animation/SVGSMILElement.cpp:
        (WebCore::SVGSMILElement::maxValue):
          changed (result < 0) to (result <= 0)

2014-04-24  Ryuan Choi  <ryuan.choi@samsung.com>

        Remove screenColorProfile()
        https://bugs.webkit.org/show_bug.cgi?id=132035

        Reviewed by Darin Adler.

        Only chromium used screenColorProfile() since r120789.

        * platform/PlatformScreen.h:
        * platform/efl/PlatformScreenEfl.cpp:
        (WebCore::screenColorProfile): Deleted.
        * platform/gtk/PlatformScreenGtk.cpp:
        (WebCore::screenColorProfile): Deleted.
        * platform/image-decoders/ImageDecoder.h:
        (WebCore::ImageDecoder::qcmsOutputDeviceProfile):
        * platform/ios/PlatformScreenIOS.mm:
        (WebCore::screenColorProfile): Deleted.
        * platform/mac/PlatformScreenMac.mm:
        (WebCore::screenColorProfile): Deleted.
        * platform/win/PlatformScreenWin.cpp:
        (WebCore::screenColorProfile): Deleted.

2014-04-24  Zalan Bujtas  <zalan@apple.com>

        One more unreviewed build fix after r167755.

        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
        (WebCore::RenderImageControlsButton::updateLogicalWidth):
        (WebCore::RenderImageControlsButton::computeLogicalHeight):

2014-04-24  Zalan Bujtas  <zalan@apple.com>

        Unreviewed build fix after r167755.

        * rendering/RenderThemeMac.h:

2014-04-24  Zalan Bujtas  <zalan@apple.com>

        Transition RenderTheme API from RenderObject* to const RenderObject&
        https://bugs.webkit.org/show_bug.cgi?id=132037

        Reviewed by Andreas Kling.

        Using const references provides better encapsulation and improve security.

        No change in behavior.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::boundingBoxForQuads):
        * dom/Element.cpp:
        (WebCore::Element::setActive):
        (WebCore::Element::setHovered):
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::focusedOrActiveStateChanged):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::disabledStateChanged):
        (WebCore::HTMLFormControlElement::readOnlyAttributeChanged):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setChecked):
        (WebCore::HTMLInputElement::setIndeterminate):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::parseAttribute):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addVisualOverflowFromTheme):
        (WebCore::RenderBlock::baselinePosition):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations):
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::styleDidChange):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::paintObject):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::drawLineForBoxSide):
        * rendering/RenderObject.h:
        * rendering/RenderProgress.cpp:
        (WebCore::RenderProgress::computeLogicalHeight):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::paint):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::paintBorderOnly):
        (WebCore::RenderTheme::paintDecorations):
        (WebCore::RenderTheme::baselinePosition):
        (WebCore::RenderTheme::adjustRepaintRect):
        (WebCore::RenderTheme::stateChanged):
        (WebCore::RenderTheme::updateControlStatesForRenderer):
        (WebCore::RenderTheme::extractControlStatesForRenderer):
        (WebCore::RenderTheme::isActive):
        (WebCore::RenderTheme::isChecked):
        (WebCore::RenderTheme::isIndeterminate):
        (WebCore::RenderTheme::isEnabled):
        (WebCore::RenderTheme::isFocused):
        (WebCore::RenderTheme::isPressed):
        (WebCore::RenderTheme::isSpinUpButtonPartPressed):
        (WebCore::RenderTheme::isReadOnlyControl):
        (WebCore::RenderTheme::isHovered):
        (WebCore::RenderTheme::isSpinUpButtonPartHovered):
        (WebCore::RenderTheme::isDefault):
        (WebCore::RenderTheme::paintInputFieldSpeechButton):
        (WebCore::RenderTheme::paintMeter):
        (WebCore::RenderTheme::paintSliderTicks):
        (WebCore::RenderTheme::progressBarRectForBounds):
        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::controlSupportsTints):
        (WebCore::RenderTheme::paintCapsLockIndicator):
        (WebCore::RenderTheme::paintFileUploadIconDecorations):
        (WebCore::RenderTheme::imageControlsButtonSize):
        (WebCore::RenderTheme::paintCheckbox):
        (WebCore::RenderTheme::paintRadio):
        (WebCore::RenderTheme::paintButton):
        (WebCore::RenderTheme::paintInnerSpinButton):
        (WebCore::RenderTheme::paintCheckboxDecorations):
        (WebCore::RenderTheme::paintRadioDecorations):
        (WebCore::RenderTheme::paintButtonDecorations):
        (WebCore::RenderTheme::paintTextField):
        (WebCore::RenderTheme::paintTextFieldDecorations):
        (WebCore::RenderTheme::paintTextArea):
        (WebCore::RenderTheme::paintTextAreaDecorations):
        (WebCore::RenderTheme::paintMenuList):
        (WebCore::RenderTheme::paintMenuListDecorations):
        (WebCore::RenderTheme::paintMenuListButtonDecorations):
        (WebCore::RenderTheme::paintPushButtonDecorations):
        (WebCore::RenderTheme::paintSquareButtonDecorations):
        (WebCore::RenderTheme::paintProgressBar):
        (WebCore::RenderTheme::paintSliderTrack):
        (WebCore::RenderTheme::paintSliderThumb):
        (WebCore::RenderTheme::paintSliderThumbDecorations):
        (WebCore::RenderTheme::paintSearchField):
        (WebCore::RenderTheme::paintSearchFieldDecorations):
        (WebCore::RenderTheme::paintSearchFieldCancelButton):
        (WebCore::RenderTheme::paintSearchFieldDecorationPart):
        (WebCore::RenderTheme::paintSearchFieldResultsDecorationPart):
        (WebCore::RenderTheme::paintSearchFieldResultsButton):
        (WebCore::RenderTheme::paintMediaFullscreenButton):
        (WebCore::RenderTheme::paintMediaPlayButton):
        (WebCore::RenderTheme::paintMediaOverlayPlayButton):
        (WebCore::RenderTheme::paintMediaMuteButton):
        (WebCore::RenderTheme::paintMediaSeekBackButton):
        (WebCore::RenderTheme::paintMediaSeekForwardButton):
        (WebCore::RenderTheme::paintMediaSliderTrack):
        (WebCore::RenderTheme::paintMediaSliderThumb):
        (WebCore::RenderTheme::paintMediaVolumeSliderContainer):
        (WebCore::RenderTheme::paintMediaVolumeSliderTrack):
        (WebCore::RenderTheme::paintMediaVolumeSliderThumb):
        (WebCore::RenderTheme::paintMediaRewindButton):
        (WebCore::RenderTheme::paintMediaReturnToRealtimeButton):
        (WebCore::RenderTheme::paintMediaToggleClosedCaptionsButton):
        (WebCore::RenderTheme::paintMediaControlsBackground):
        (WebCore::RenderTheme::paintMediaCurrentTime):
        (WebCore::RenderTheme::paintMediaTimeRemaining):
        (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderTrack):
        (WebCore::RenderTheme::paintMediaFullScreenVolumeSliderThumb):
        (WebCore::RenderTheme::paintSnapshottedPluginOverlay):
        (WebCore::RenderTheme::paintImageControlsButton):
        * rendering/RenderThemeIOS.h:
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::addRoundedBorderClip):
        (WebCore::RenderThemeIOS::paintCheckboxDecorations):
        (WebCore::RenderThemeIOS::baselinePosition):
        (WebCore::RenderThemeIOS::paintRadioDecorations):
        (WebCore::RenderThemeIOS::paintTextFieldDecorations):
        (WebCore::RenderThemeIOS::paintTextAreaDecorations):
        (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
        (WebCore::RenderThemeIOS::paintSliderTrack):
        (WebCore::RenderThemeIOS::paintSliderThumbDecorations):
        (WebCore::RenderThemeIOS::paintProgressBar):
        (WebCore::RenderThemeIOS::paintSearchFieldDecorations):
        (WebCore::RenderThemeIOS::paintButtonDecorations):
        (WebCore::RenderThemeIOS::paintPushButtonDecorations):
        (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
        * rendering/RenderThemeMac.h:
        (WebCore::RenderThemeMac::updateActiveState):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::documentViewFor):
        (WebCore::RenderThemeMac::adjustRepaintRect):
        (WebCore::RenderThemeMac::convertToPaintingRect):
        (WebCore::RenderThemeMac::updateCheckedState):
        (WebCore::RenderThemeMac::updateEnabledState):
        (WebCore::RenderThemeMac::updateFocusedState):
        (WebCore::RenderThemeMac::updatePressedState):
        (WebCore::RenderThemeMac::controlSupportsTints):
        (WebCore::RenderThemeMac::paintTextField):
        (WebCore::RenderThemeMac::paintCapsLockIndicator):
        (WebCore::RenderThemeMac::paintTextArea):
        (WebCore::RenderThemeMac::paintMenuList):
        (WebCore::RenderThemeMac::paintMeter):
        (WebCore::RenderThemeMac::progressBarRectForBounds):
        (WebCore::RenderThemeMac::paintProgressBar):
        (WebCore::RenderThemeMac::paintMenuListButtonGradients):
        (WebCore::RenderThemeMac::paintMenuListButtonDecorations):
        (WebCore::RenderThemeMac::setPopupButtonCellState):
        (WebCore::RenderThemeMac::paintSliderTrack):
        (WebCore::RenderThemeMac::paintSliderThumb):
        (WebCore::RenderThemeMac::paintSearchField):
        (WebCore::RenderThemeMac::setSearchCellState):
        (WebCore::RenderThemeMac::paintSearchFieldCancelButton):
        (WebCore::RenderThemeMac::paintSearchFieldDecorationPart):
        (WebCore::RenderThemeMac::paintSearchFieldResultsDecorationPart):
        (WebCore::RenderThemeMac::paintSearchFieldResultsButton):
        (WebCore::RenderThemeMac::paintSnapshottedPluginOverlay):
        (WebCore::RenderThemeMac::paintImageControlsButton):
        (WebCore::RenderThemeMac::imageControlsButtonSize):

2014-04-23  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] HTML Media capture attribute is a boolean since r163958
        https://bugs.webkit.org/show_bug.cgi?id=132061

        Reviewed by Gustavo Noronha Silva.

        Add new methods webkit_dom_html_input_element_get_capture_enabled
        and webkit_dom_html_input_element_set_capture_enabled using a
        boolean and deprecate the old methods.

        * bindings/gobject/WebKitDOMDeprecated.cpp:
        (webkit_dom_html_input_element_get_capture):
        (webkit_dom_html_input_element_set_capture):
        * bindings/gobject/WebKitDOMDeprecated.h:
        * bindings/gobject/WebKitDOMDeprecated.symbols:
        * bindings/gobject/webkitdom.symbols:
        * bindings/scripts/CodeGeneratorGObject.pm:
        (GetEffectiveFunctionName): Helper function to rename API methods
        for special cases.
        (GenerateFunction): Use GetEffectiveFunctionName().

2014-04-23  Praveen R Jadhav  <praveen.j@samsung.com>

        [MediaStream] Implement MediaStream active attribute
        https://bugs.webkit.org/show_bug.cgi?id=131973

        Reviewed by Eric Carlson.

        MediaStream .active attribute are introduced which will replace
        .ended attribute. This patch implements the newly introduced attributes.

        MediaStream-add-remove-tracks.html is updated to handle this scenario.

        * Modules/mediastream/MediaStream.cpp:
        (WebCore::MediaStream::active): Added.
        (WebCore::MediaStream::setActive): Added.
        (WebCore::MediaStream::addTrack): Propagates 'onactive' event when required.
        (WebCore::MediaStream::removeTrack): Propagates 'oninactive' event when required.
        (WebCore::MediaStream::trackDidEnd): Propagates 'oninactive' event when required.
        (WebCore::MediaStream::streamDidEnd):
        (WebCore::MediaStream::setStreamIsActive): Added.
        * Modules/mediastream/MediaStream.h:
        * Modules/mediastream/MediaStream.idl:
        * dom/EventNames.h:
        * platform/mediastream/MediaStreamPrivate.cpp:
        (WebCore::MediaStreamPrivate::MediaStreamPrivate): Initialize .active attribute
        (WebCore::MediaStreamPrivate::setEnded):
        (WebCore::MediaStreamPrivate::setActive): Added.
        * platform/mediastream/MediaStreamPrivate.h:
        (WebCore::MediaStreamPrivate::active): Added.

2014-04-23  Darin Adler  <darin@apple.com>

        [Cocoa] fix CF leaks found by code inspection
        https://bugs.webkit.org/show_bug.cgi?id=132106

        Reviewed by Andreas Kling.

        * page/CaptionUserPreferencesMediaAF.cpp:
        (WebCore::trackDisplayName): Added a missing adoptCF.

        * platform/Language.cpp:
        (WebCore::displayNameForLanguageLocale): Added a missing adoptCF.

        * platform/graphics/FontPlatformData.cpp:
        (WebCore::FontPlatformData::openTypeTable): Added a missing adoptCF.

        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
        (WebCore::InbandTextTrackPrivateAVCF::label): Added two missing adoptCF.

        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::AVFWrapper::createImageForTimeInRect): Added two missing adoptCF.

        * platform/graphics/cg/PDFDocumentImage.cpp:
        (WebCore::PDFDocumentImage::createPDFDocument): Added missing adoptCF.

        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
        (WebCore::cascadeToLastResortFontDescriptor): Added two missing adoptCF.

        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::primaryFontDataIsSystemFont): Added missing adoptCF.

        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::hasCustomTracking): Added missing adoptCF.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::ImageDecoder::qcmsOutputDeviceProfile): Added CFRelease.

        * plugins/mac/PluginPackageMac.cpp:
        (WebCore::readPListFile): Added two missing adoptCF.

2014-04-23  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r157328): popover to check into flight ba.com dismisses instantly when focusing form
        https://bugs.webkit.org/show_bug.cgi?id=131949

        Address the review comment.

        * dom/EventDispatcher.cpp:
        (WebCore::EventRelatedNodeResolver::findHostOfTreeScopeInTargetTreeScope):

2014-04-23  Andreas Kling  <akling@apple.com>

        CachedResourceLoader hoards URLs indefinitely for no good reason.
        <https://webkit.org/b/132102>
        <rdar://problem/16708265>

        Since we don't care about CachedResourceLoader::m_validatedURL's after
        the Document has finished dispatching its initial load event, clear the
        set at that point, and don't add any new URLs to it.

        Reviewed by Anders Carlsson.

        * dom/Document.cpp:
        (WebCore::Document::dispatchWindowLoadEvent):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):
        (WebCore::CachedResourceLoader::documentDidFinishLoadEvent):
        * loader/cache/CachedResourceLoader.h:

2014-04-23  Andreas Kling  <akling@apple.com>

        Canvas cache of clean URLs can grow without bounds.
        <https://webkit.org/b/132091>
        <rdar://problem/16695665>

        Remove a silly "optimization" that kept a cache of clean URLs
        that can be drawn into a canvas without tainting it, all to avoid
        the "expensive" checks to determine whether it would taint.

        Reviewed by Benjamin Poulain.

        * html/canvas/CanvasRenderingContext.cpp:
        (WebCore::CanvasRenderingContext::wouldTaintOrigin):
        * html/canvas/CanvasRenderingContext.h:

2014-04-23  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix a few mistakes affecting the initial layout and the initial unobscured rect
        https://bugs.webkit.org/show_bug.cgi?id=132093

        Reviewed by Tim Horton.

        Change the minimum layout size to float point values to account for size defined on retina displays.
        The minimum layout size supports half-pixels, the value is rounded later when computing the layout size
        in document coordinates.

        * WebCore.exp.in:
        * page/ViewportConfiguration.cpp:
        (WebCore::ViewportConfiguration::ViewportConfiguration):
        Setting the initial content size is incorrect. The layout size computation already take into account
        empty size for the first layout.

        Setting the content size upfront make the first computation incorrect when the viewport arguments specify
        the initial scale.

        (WebCore::ViewportConfiguration::setMinimumLayoutSize):
        * page/ViewportConfiguration.h:
        (WebCore::ViewportConfiguration::minimumLayoutSize):

2014-04-23  Brent Fulgham  <bfulgham@apple.com>

        [Mac, iOS] Stop buffering media when on an inactive tab. 
        https://bugs.webkit.org/show_bug.cgi?id=132077

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp: Rename 'm_isDisplaySleepDisablingSuspended'
        to 'm_elementIsHidden'.
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::visibilityStatusChanged): Notify the
        media session that the element is (or is not) hidden.
        (WebCore::HTMLMediaElement::setShouldBufferData): Added.
        * html/HTMLMediaElement.h:
        * platform/audio/MediaSession.cpp:
        (WebCore::MediaSession::clientWillBeginPlayback): Tell media to
        buffer if not hidden or playing.
        (WebCore::MediaSession::clientWillPausePlayback): Ditto.
        (WebCore::MediaSession::visibilityChanged): Added. Client API, just relays call
        to updateClientDataBuffering.
        (WebCore::MediaSession::updateClientDataBuffering): Tell client it should only
        buffer data if it's currently playing, or not hidden.
        * platform/audio/MediaSession.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::setShouldBufferData): Added: Just relays to
        MediaPlayerPrivate object.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::setShouldBufferData):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setShouldBufferData): Added.
        Detach the player item from the player if we don't want to continue
        buffering or other background tasks.

2014-04-23  Alexey Proskuryakov  <ap@apple.com>

        Eliminate internals.setMockScrollbarsEnabled()
        https://bugs.webkit.org/show_bug.cgi?id=132085

        Reviewed by Tim Horton.

        This was essentially unused, and also didnt work.

        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::restoreTo):
        (WebCore::InternalSettings::setMockScrollbarsEnabled): Deleted.
        * testing/InternalSettings.h:
        * testing/InternalSettings.idl:

2014-04-23  Anders Carlsson  <andersca@apple.com>

        Don't migrate the WKView.h header from WebCore to WebKit
        https://bugs.webkit.org/show_bug.cgi?id=132086

        Reviewed by Dan Bernstein.

        * WebCore.xcodeproj/project.pbxproj:
        Add WAKViewInternal.h.

        * platform/WAKViewInternal.h: Added.

        * platform/ios/wak/WAKClipView.m:
        Import WAKViewInternal.h instead of WAKViewPrivate.h.

        * platform/ios/wak/WAKScrollView.mm:
        Import WAKViewInternal.h instead of WAKViewPrivate.h.

        * platform/ios/wak/WAKView.h:
        Move ivars to a class extension in WAKViewInternal.h and remove WKView.h import.

        * platform/ios/wak/WAKView.mm:
        Import WAKViewInternal.h instead of WAKViewPrivate.h.

        * platform/ios/wak/WAKViewPrivate.h:
        Import WKViewPrivate.h.

2014-04-23  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] fast/multicol/fixed-column-percent-logical-height-orthogonal-writing-mode.html fails
        https://bugs.webkit.org/show_bug.cgi?id=132078

        Reviewed by Anders Carlsson.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation):
        Add a parameter to test for orthogonal writing modes. If we're perpendicular,
        then we should not skip the flow thread, since we resolve relative to the column width,
        and that is always set.

        (WebCore::RenderBox::computePercentageLogicalHeight):
        Patched to pass in whether or not the box and the ancestor block are perpendicular.

        * rendering/RenderBox.h:
        Patched the signature of skipContainingBlockForPercentHeightCalculation

2014-04-23  Myles C. Maxfield  <mmaxfield@apple.com>

        [OS X] Make checking if a font is the system font more robust
        https://bugs.webkit.org/show_bug.cgi?id=132030

        Reviewed by Dean Jackson.

        Instead of inspecting a font's name to determine if it is a system font,
        on OS X we can ask the system directly.

        This patch also moves a platform-specific check into platform-specific
        code, so that other platforms don't check for OS X-specific behavior.

        Covered by existing tests.

        * platform/graphics/Font.cpp:
        (WebCore::Font::hasValidAverageCharWidth):
        * platform/graphics/Font.h:
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::primaryFontDataIsSystemFont):

2014-04-23  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Assertion failure in huge-column-count.html
        https://bugs.webkit.org/show_bug.cgi?id=132071

        Reviewed by Dean Jackson.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::regionAtBlockOffset):
        Back out this change, since it wasn't general enough.

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::getRegionRangeForBox):
        The real issue was that this loop needed to consider the actual box
        rather than starting from the parent. This was a non-issue for normal
        regions (which cannot have nested flow threads), but for columns, you 
        have to consider the fact that the box could itself be a flow thread.

2014-04-23  Andreas Kling  <akling@apple.com>

        [iOS] Memory pressure notification should fire on main thread.
        <https://webkit.org/b/132074>

        Rejig the memory pressure notification to fire on the main queue
        directly instead of rerouting it manually.

        Reviewed by Mark Rowe.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::install):

2014-04-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167720.
        https://bugs.webkit.org/show_bug.cgi?id=132075

        broke eight newmulticol tests (Requested by thorton on
        #webkit).

        Reverted changeset:

        "[New Multicolumn] Assertion failure in huge-column-
        count.html"
        https://bugs.webkit.org/show_bug.cgi?id=132071
        http://trac.webkit.org/changeset/167720

2014-04-23  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Assertion failure in huge-column-count.html
        https://bugs.webkit.org/show_bug.cgi?id=132071

        Reviewed by Dean Jackson.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::regionAtBlockOffset):
        Remove the code that returned 0 here, since we're going to patch a lower-level
        function to catch all cases.

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::getRegionRangeForBox):
        Don't allow in-flow RenderFlowThreads to ever have a region range. The sets
        are what should have ranges... the flow thread needs to just be ignored.

2014-04-23  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Crasher when clearing out a flow thread in multicolumn layout.
        https://bugs.webkit.org/show_bug.cgi?id=132069

        Reviewed by Dean Jackson.

        This is imported from a patch Morten did for Blink, but I had to change it a fair
        bit. deleteLines() is used to handle simple line box layout instead of just calling
        deleteLineBoxTree.
        
        I also had to disable the layout state to stop asserts on repaint when the children
        get moved. Not sure why Blink didn't hit this, but it's simple enough to add a
        LayoutStateDisabler to stop the assert.

        Added fast/multicol/inline-children-crash.html

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):

2014-04-23  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] IOSurfacePool should force CA to actually garbage collect surfaces.
        <https://webkit.org/b/132065>
        <rdar://problem/16110687>

        Add a platformGarbageCollectNow() helper function to IOSurfacePool that
        triggers a sweep of the IOSurfaces. Call this from collectionTimerFired()
        and discardAllSurfaces().

        This lets us drop all otherwise-unused 420f surfaces on memory pressure.

        Reviewed by Tim Horton.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/cg/IOSurfacePool.cpp:
        (WebCore::IOSurfacePool::collectionTimerFired):
        (WebCore::IOSurfacePool::discardAllSurfaces):
        * platform/graphics/cg/IOSurfacePool.h:
        * platform/graphics/cocoa/IOSurfacePoolCocoa.mm: Added.
        (WebCore::IOSurfacePool::platformGarbageCollectNow):

2014-04-23  Morten Stenshorne  <mstensho@opera.com>

        REGRESSION (Safari 6 - ToT): Incorrectly assumes that RenderStyle data can be shared
        https://bugs.webkit.org/show_bug.cgi?id=113058

        Reviewed by David Hyatt.

        Before sharing CSS properties with an element in the cache, we need to
        check that the new element is suitable for this, just like we check
        elements before inserting them into the cache.

        Test: fast/css/identical-logical-height-decl.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyMatchedProperties):

2014-04-23  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167713.
        https://bugs.webkit.org/show_bug.cgi?id=132070

        broke hundreds of tests (Requested by thorton on #webkit).

        Reverted changeset:

        "[OS X] Make checking if a font is the system font more
        robust"
        https://bugs.webkit.org/show_bug.cgi?id=132030
        http://trac.webkit.org/changeset/167713

2014-04-22  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Nested columns not working at all.
        https://bugs.webkit.org/show_bug.cgi?id=131805

        Reviewed by Dean Jackson.

        Add support for nested pagination contexts, allowing for an arbitrary level
        of nesting of multicolumn layouts. There were a number of things that had to
        be patched in order for this to work.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::regionAtBlockOffset):
        Make sure RenderMultiColumnFlowThreads just return null for regions at any
        block offset. Individual region sets will be created as you cross ancestor
        regions eventually, so this is just getting in the way.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::enclosingPaginationLayerInSubtree):
        Add a new helper method for obtaining an enclosingPaginationLayer when
        constrained by some root. This function ensures you don't accidentally
        cross your subtree root when looking for enclosing pagination layers.

        (WebCore::RenderLayer::collectFragments):
        Patch collectFragments to know how to recur to collect ancestor fragments
        in order to apply nested splitting as you cross pagination boundaries.

        (WebCore::RenderLayer::updatePaintingInfoForFragments):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        (WebCore::LayerFragment::LayerFragment):
        (WebCore::LayerFragment::setRects):
        (WebCore::LayerFragment::moveBy):
        (WebCore::LayerFragment::intersect):
        Improve the LayerFragment so that it caches transformed bounding boxes as
        well. This is needed to fix intersectsDamageRect so that it doesn't grab
        the wrong bounding box when checking inline layers that are paginated.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
        Ignore inserted flow threads inside an ancestor flow thread, since we only
        care about what the sets do.
        
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::insertedIntoTree):
        Make sure that nested flow thread layers return themselves when a child
        is inserted directly under them.

2014-04-22  Myles C. Maxfield  <mmaxfield@apple.com>

        [OS X] Make checking if a font is the system font more robust
        https://bugs.webkit.org/show_bug.cgi?id=132030

        Reviewed by Dean Jackson.

        Instead of inspecting a font's name to determine if it is a system font,
        on OS X we can ask the system directly.

        This patch also moves a platform-specific check into platform-specific
        code, so that other platforms don't check for OS X-specific behavior.

        Covered by existing tests.

        * platform/graphics/Font.cpp:
        (WebCore::Font::hasValidAverageCharWidth):
        * platform/graphics/Font.h:
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::primaryFontDataIsSystemFont):

2014-04-23  Philippe Normand  <pnormand@igalia.com>

        [GTK] Focus management API was moved from HTMLDocument to Document in r166668
        https://bugs.webkit.org/show_bug.cgi?id=132060

        Reviewed by Carlos Garcia Campos.

        Deprecate the removed methods in WebKitDOMHTMLDocument to keep API compatibility.

        * bindings/gobject/WebKitDOMDeprecated.cpp:
        (webkit_dom_html_document_get_active_element):
        (webkit_dom_html_document_has_focus):
        * bindings/gobject/WebKitDOMDeprecated.h:
        * bindings/gobject/WebKitDOMDeprecated.symbols:
        * bindings/gobject/webkitdom.symbols:

2014-04-22  Andreas Kling  <akling@apple.com>

        [iOS WebKit1] MemoryPressureHandler::respondToMemoryPressure called on wrong thread.
        <https://webkit.org/b/132041>
        <rdar://problem/16687238>

        Always dispatch the memory pressure relief code on the main queue.
        This is really only needed for iOS/WK1, but we might as well share the code.

        Reviewed by Michael Saboff.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::install):

2014-04-23  Philippe Normand  <pnormand@igalia.com>

        [GTK] ShadowRoot API was removed in r164131
        https://bugs.webkit.org/show_bug.cgi?id=132059

        Reviewed by Gustavo Noronha Silva.

        Add ShadowRoot removed API to WebKitDOMDeprecated to keep API/ABI compatibility.

        * bindings/gobject/WebKitDOMDeprecated.cpp:
        (webkit_dom_shadow_root_class_init):
        (webkit_dom_shadow_root_init):
        (webkit_dom_shadow_root_element_from_point):
        (webkit_dom_shadow_root_get_active_element):
        (webkit_dom_shadow_root_get_apply_author_styles):
        (webkit_dom_shadow_root_get_element_by_id):
        (webkit_dom_shadow_root_get_elements_by_class_name):
        (webkit_dom_shadow_root_get_elements_by_tag_name):
        (webkit_dom_shadow_root_get_elements_by_tag_name_ns):
        (webkit_dom_shadow_root_get_inner_html):
        (webkit_dom_shadow_root_get_reset_style_inheritance):
        (webkit_dom_shadow_root_get_selection):
        (webkit_dom_shadow_root_set_apply_author_styles):
        (webkit_dom_shadow_root_set_inner_html):
        (webkit_dom_shadow_root_set_reset_style_inheritance):
        * bindings/gobject/WebKitDOMDeprecated.h:
        * bindings/gobject/WebKitDOMDeprecated.symbols:

2014-04-23  Morten Stenshorne  <mstensho@opera.com>

        [New Multicolumn] fast/multicol/overflow-content.html displays red
        https://bugs.webkit.org/show_bug.cgi?id=131809

        Reviewed by David Hyatt.

        Insert a break at end of content on our own in the multicol code, to make sure
        that overflow is accounted for, and also to make sure that we account for all
        content in non-final sets (i.e. those preceding spanners).

        In other words, this will additionally fix balancing issues in sets preceding
        a spanner. Added a test for that.

        Tests: fast/multicol/break-in-columns-before-spanner.html
               fast/multicol/newmulticol/compare-with-old-impl/overflow-content.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::regionInRange): Deleted.
        * rendering/RenderFlowThread.h:
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::distributeImplicitBreaks):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::applyBreakAfterContent):
        * rendering/RenderNamedFlowThread.h:

2014-04-23  Morten Stenshorne  <mstensho@opera.com>

        Overflow propagation broken in BTT and RTL writing-modes
        https://bugs.webkit.org/show_bug.cgi?id=113781

        Reviewed by David Hyatt.

        Overflow rectangles are not quite physical, not quite logical. This
        means that we cannot use clientBoxRect() directly to represent a
        rectangle that expresses exactly no overflow. This rectangle is the
        padding box (relative to the border box) in vertical-lr and
        horizontal-tb, but the block-direction borders need to be flipped in
        vertical-rl and horizontal-bt.

        Tests: fast/css/overflow-btt-border-after.html
               fast/css/overflow-rtl-border-after.html

        * WebCore.exp.in:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeOverflow):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::addLayoutOverflow):
        (WebCore::RenderBox::addVisualOverflow):
        (WebCore::RenderBox::layoutOverflowRectForPropagation):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::layoutOverflowRect):

2014-04-23  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Improve the debugging infrastructure
        https://bugs.webkit.org/show_bug.cgi?id=132042

        Reviewed by Mihnea Ovidenie.

        This patch improves the debugging code for CSS Regions.

        Tests: No function change. No new tests.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::showRegionsInformation): Print brackets around the region range when dumping
        the render tree to the console.
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::containingRegion): Convert the ASSERT to an ASSERT_WITH_SECURITY_IMPLICATION.

2014-04-22  Ryosuke Niwa  <rniwa@webkit.org>

        Cursor doesn't change back to pointer when leaving the Safari window
        https://bugs.webkit.org/show_bug.cgi?id=132038

        Reviewed by Alexey Proskuryakov.

        r147739 incorrectly added an early exit in EventHandler::selectCursor when hit test result didn't have
        any node associated with it. Since we will hit this code when the cursor is outside of the WebView,
        we still need to take the CURSOR_AUTO path as did the code before r147739.

        No new test is added since this behavior can't be tested in DRT or WTR.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectCursor):

2014-04-22  Zalan Bujtas  <zalan@apple.com>

        Do not paint border image when the border rect is empty.
        https://bugs.webkit.org/show_bug.cgi?id=131988

        Reviewed by Darin Adler.

        http://trac.webkit.org/changeset/167351 introduced an early return when border
        rect is empty. This patch ensures that border image is not painted either in that case.

        Modified padding-margin-negative-border.html to cover border-image case.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintBorder):

2014-04-22  Tim Horton  <timothy_horton@apple.com>

        ASSERTION FAILED: scrollerImp == scrollbarPainterForScrollbar(_scrollbar) on two API tests
        https://bugs.webkit.org/show_bug.cgi?id=132034
        <rdar://problem/16624332>

        Reviewed by Simon Fraser.

        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate shouldUseLayerPerPartForScrollerImp:]):
        scrollerImpWithStyle:controlSize:horizontal:replacingScrollerImp: moves the delegate
        from the old scrollerImp to the new one, and also happens to call shouldUseLayerPerPartForScrollerImp.
        Since scrollerImpWithStyle: has not returned yet, the scrollbarPainterForScrollbar still returns the old scrollerImp,
        so this assertion fires. It's safe to remove this because supportsUpdateOnSecondaryThread doesn't make use of the imp.

2014-04-22  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION (r157328): popover to check into flight ba.com dismisses instantly when focusing form
        https://bugs.webkit.org/show_bug.cgi?id=131949

        Reviewed by Darin Adler.

        The regression was caused by two bugs:
        1. The event didn't stop propagating itself even when it should.
           If the related target is same as the event origin, the event propagation should stop when the event reaches
           the root of the related target's tree scope. Otherwise, it should stop when it reaches the related target.

        2. Mouse event's related target exposed nodes inside a user-agent shadow DOM when the related target appeared
           inside the origin.

        Fixed the bugs by re-introducing path shrinkage algorithm removed in r157328 into EventPath::setRelatedTarget
        and adding an algorithm to determine the least common ancestor of the related target and the current target
        in moveToParentOrShadowHost. The latter algorithm doesn't match the shadow DOM specification:
        http://www.w3.org/TR/2013/WD-shadow-dom-20130514/
        but it's good enough in terms of the Web exposed behavior as we don't support author defined insertion points.

        Test: fast/events/shadow-event-path.html

        * dom/EventDispatcher.cpp:
        (WebCore::EventRelatedNodeResolver::moveToParentOrShadowHost):
        (WebCore::EventRelatedNodeResolver::findHostOfTreeScopeInTargetTreeScope): Added.
        (WebCore::EventDispatcher::dispatchEvent):
        (WebCore::EventPath::setRelatedTarget):

2014-04-22  Ryosuke Niwa  <rniwa@webkit.org>

        Rollout r156635 since the old behavior was intentional.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectCursor):

2014-04-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167674.
        https://bugs.webkit.org/show_bug.cgi?id=132025

        Going a different way with this (Requested by bradee-oh on
        #webkit).

        Reverted changeset:

        "Change Image Controls replacement to use selection and paste"
        https://bugs.webkit.org/show_bug.cgi?id=131992
        http://trac.webkit.org/changeset/167674

2014-04-22  Brent Fulgham  <bfulgham@apple.com>

        [Win] Support Python 2.7 in Cygwin
        https://bugs.webkit.org/show_bug.cgi?id=132023

        Reviewed by Michael Saboff.

        * DerivedSources.make: Use proper path to Cygwin on
        all platforms.

2014-04-22  Andreas Kling  <akling@apple.com>

        REGRESSION (r151839): Subframe keeps getting mousemove events with the same coordinates after hiding a hovered element.
        <https://webkit.org/b/131974>
        <rdar://problem/15907469>

        When the currently hovered element disappears as a result of style recalc,
        we send a fake mousemove event to the page, to see if anything newly added
        should become hovered.

        The faking mechanism lives in EventHandler and simply synthesizes a new
        mousemove event using the last seen mouse location.

        The problem here is that we were sending this fake mousemove event to the
        subframe where the hovered element lived. Since subframes aren't kept up
        to date on recent mouse locations, this could cause some strange behavior
        where a subframe would dispatch mousemove events with stale coordinates.

        The solution is to always dispatch fake mousemove events from the main
        frame's event handler. This is how real event delivery happens, and hit
        testing will then find the appropriate subframe, if any.

        Reviewed by Benjamin Poulain.

        Test: fast/events/ghostly-mousemoves-in-subframe.html

        * dom/Document.cpp:
        (WebCore::Document::recalcStyle):

2014-04-22  Myles C. Maxfield  <mmaxfield@apple.com>

        [OS X] Glyph spacing for system fonts may be incorrect
        https://bugs.webkit.org/show_bug.cgi?id=131967

        Unreviewed iOS build fix after r167679.

        * platform/graphics/mac/SimpleFontDataMac.mm:

2014-04-22  Myles C. Maxfield  <mmaxfield@apple.com>

        [OS X] Glyph spacing for system fonts may be incorrect
        https://bugs.webkit.org/show_bug.cgi?id=131967

        Unreviewed build fix after r167679.

        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::hasCustomTracking):

2014-04-21  Myles C. Maxfield  <mmaxfield@apple.com>

        [OS X] Glyph spacing for system fonts may be incorrect
        https://bugs.webkit.org/show_bug.cgi?id=131967

        Reviewed by Simon Fraser.

        Covered by existing tests.

        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::SimpleFontData::platformWidthForGlyph): Update to use CTFontGetAdvancesForGlyphs() for system fonts
        (WebCore::hasCustomTracking):

2014-04-22  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] widows/orphans cause assertion failures.
        https://bugs.webkit.org/show_bug.cgi?id=131233

        Reviewed by Dean Jackson.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::recordSpaceShortage):
        Fix an obvious bug where the space shortage is recorded twice (and the
        if statement that kept it from being negative is accidentally ignored).

2014-04-22  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Make sure columnTranslationForOffset has the same column-span-aware
        translation that fragment collection does.
        https://bugs.webkit.org/show_bug.cgi?id=131738

        Reviewed by Anders Carlsson.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::collectLayerFragments):
        Remove a FIXME that is no longer needed, since the translation offset of the 
        column set did get patched.

        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
        Add the exact same fix to columnTranslationForOffset that was applied to collectLayerFragments.

2014-04-22  Mark Lam  <mark.lam@apple.com>

        WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript() needs to acquire the JSLock before calling into JS.
        <https://webkit.org/b/132021>

        Reviewed by Mark Hahnenberg.

        Covered by existing layout test.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):

2014-04-22  Manuel Rego Casasnovas  <rego@igalia.com>

        REGRESSION (r167652): Broke fast/regions/cssom/region-range-for-box-crash.html in debug mode
        https://bugs.webkit.org/show_bug.cgi?id=131982

        Reviewed by David Hyatt.

        The problem was creating the Range from the arguments received at RenderView::setSelection(). Specifically
        in this test endPos is 1 when the element has not children which creates an invalid Range.

        * rendering/RenderView.cpp:
        (WebCore::RenderView::splitSelectionBetweenSubtrees): Pass 0 as startPos and endPos to Range::create() as we are
        not interested in the positions at this point.

2014-04-22  Brady Eidson  <beidson@apple.com>

        Change Image Controls replacement to use selection and paste
        <rdar://problem/16302722> and https://bugs.webkit.org/show_bug.cgi?id=131992

        Reviewed by Tim Horton.

        * WebCore.exp.in: Remove deleted symbol.

        * html/shadow/mac/ImageControlsButtonElementMac.cpp:
        (WebCore::ImageControlsButtonElementMac::defaultEventHandler):

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::showImageControlsMenu): Select the image element
          before showing the menu.
        (WebCore::ContextMenuController::replaceControlledImage): Deleted.
        * page/ContextMenuController.h:

2014-04-22  David Hyatt  <hyatt@apple.com>

        REGRESSION: Hitting asserts in new flow thread selection code.
        https://bugs.webkit.org/show_bug.cgi?id=132019

        Reviewed by Anders Carlsson.

        Null checking flowThreadController is not enough. The list of threads
        can be null even when the flowThreadController is not. That's why you
        use hasRenderNamedFlowThreads. I patched the two bad places in the code
        to use hasRenderNamedFlowThreads to stop the crashes.
        
        * rendering/RenderView.cpp:
        (WebCore::RenderView::selectionBounds):
        (WebCore::RenderView::repaintSelection):

2014-04-22  Brent Fulgham  <bfulgham@apple.com>

        Check (rather than assume) element is a RenderTableSection before using it
        https://bugs.webkit.org/show_bug.cgi?id=121858

        Reviewed by David Kilzer.

        Test: fast/table/table-insert-object-before-td-crash.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild): Check that lastBox is a table section before
        using the node as if it was one.

2014-04-22  Alex Christensen  <achristensen@webkit.org>

        Begin implementation of video using Media Foundation.
        https://bugs.webkit.org/show_bug.cgi?id=131830

        Reviewed by Brent Fulgham.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        Added MediaPlayerPrivateMediaFoundation files.
        * platform/graphics/MediaPlayer.cpp:
        Include MediaPlayerPrivateMediaFoundation inside new USE(MEDIA_FOUNDATION) flag.
        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.cpp: Added.
        * platform/graphics/win/MediaPlayerPrivateMediaFoundation.h: Added.

2014-04-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167658.
        https://bugs.webkit.org/show_bug.cgi?id=131993

        Caused many crashes on media tests (Requested by ap on
        #webkit).

        Reverted changeset:

        "[Mac] don't ask for AVAssetTrack properties before they are
        available"
        https://bugs.webkit.org/show_bug.cgi?id=131902
        http://trac.webkit.org/changeset/167658

2014-04-22  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] fast/multicol/multicol-with-child-renderLayer-for-input.html puts the textfield in the wrong place
        https://bugs.webkit.org/show_bug.cgi?id=131808

        Reviewed by Brady Eidson.
    
        Make sure FrameView is patched to pass in the update pagination flag when subtree layout
        is done on textfields. It had code for the old multicolumn system but did not have a check
        for the new multicolumn system.

        Added fast/multicol/newmulticol/compare-with-old-impl/multicol-with-child-renderLayer-for-input.html

        * page/FrameView.cpp:
        (WebCore::updateLayerPositionFlags):

2014-04-22  Zalan Bujtas  <zalan@apple.com>

        border-style: double rendered as solid when combined with border-radius
        https://bugs.webkit.org/show_bug.cgi?id=131927

        Reviewed by Simon Fraser.

        BorderEdge::getDoubleBorderStripeWidths() should return the calculated inner, outer border widths. 

        Test: fast/borders/hidpi-double-border-with-border-radius-always-produce-solid-line.html

        * rendering/BorderEdge.cpp:
        (WebCore::BorderEdge::getDoubleBorderStripeWidths):
        * rendering/BorderEdge.h:

2014-04-22  Eric Carlson  <eric.carlson@apple.com>

        [Mac] don't ask for AVAssetTrack properties before they are available
        https://bugs.webkit.org/show_bug.cgi?id=131902
        <rdar://problem/16505076>

        Reviewed by Jer Noble.

        No new tests, the behavior this changes can not be tested with a layout test.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
            m_cachedTotalBytes.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::beginLoadingMetadata): Don't report that
            metadata has been loaded until the track properties we need have been loaded too.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::totalBytes): Cache totalBytes instead
            of recalculating it every time.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksDidChange): Invalidate cached
            total bytes.
        (WebCore::assetTrackMetadataKeyNames): Array of AVAssetTrack properties we use.

2014-04-22  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        Buildfix after r167650 broke non-Cocoa builds
        https://bugs.webkit.org/show_bug.cgi?id=131980

        Reviewed by Mario Sanchez Prada.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleWheelEvent):

2014-04-22  Manuel Rego Casasnovas  <rego@igalia.com>

        [CSS Regions] Selection highlight doesn't match DOM selection
        https://bugs.webkit.org/show_bug.cgi?id=131511

        Reviewed by David Hyatt.

        This patch implements a subtrees approach to fix selection interaction in CSS Regions.

        The idea is to divide the Render tree in subtrees. One subtree will be the RenderView (which is always present),
        then for each RenderNamedFlowThread (which are children of RenderView) we will have an extra subtree.

        For each subtree it determines the start and end positions according to the DOM tree. So, every subtree will
        always have a start and end position, and the selection algorithm will be able to reach the end from the start
        without problems (this allows us to remove the changes introduced in r155058).

        Then selection related methods in RenderView are adapted to ensure that they are called for each subtree. Making
        the selection highlight to match DOM selection as expected.

        Test: fast/regions/selection/selecting-text-including-region.html

        * CMakeLists.txt: Add new class SelectionSubtreeRoot to build file.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * rendering/RenderNamedFlowThread.h: Inherit from SelectionSubtreeRoot.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::selectionRoot): New method to return the RenderNamedFlowThread if any or the RenderView
        otherwise.
        (WebCore::RenderObject::selectionStartEnd): If it's inside a RenderNamedFlowThread use specific method instead
        of the RenderView's one.
        * rendering/RenderObject.h: Add new method signature.
        * rendering/RenderView.cpp:
        (WebCore::RenderView::selectionBounds): Adapt method to subtrees approach.
        (WebCore::RenderView::subtreeSelectionBounds): Modify previous method in order to use SelectionSubtreeRoot
        objects.
        (WebCore::RenderView::repaintSelection): Adapt method to subtrees approach.
        (WebCore::RenderView::repaintSubtreeSelection): Modify previous method in order to use SelectionSubtreeRoot
        objects.
        (getNextOrPrevRenderObjectBasedOnDirection): Deleted method from r155058 as it is not needed anymore. Each
        subtree will have start and end positions, so the selection algorithm will always find the end.
        (WebCore::RenderView::setSelection): Adapt method to subtrees approach.
        (WebCore::RenderView::splitSelectionBetweenSubtrees): Determine start and end positions for each subtree and
        call setSubtreeSelection().
        (WebCore::RenderView::setSubtreeSelection): Modify previous method in order to use SelectionSubtreeRoot objects.
        * rendering/RenderView.h: Inherit from SelectionSubtreeRoot. Add signature for new helper methods receiving
        SelectionSubtreeRoot objects.
        * rendering/SelectionSubtreeRoot.cpp: Added.
        (WebCore::SelectionSubtreeRoot::SelectionSubtreeRoot):
        (WebCore::SelectionSubtreeRoot::selectionStartEndPositions):
        * rendering/SelectionSubtreeRoot.h: Added. New class to identify root elements for the subtrees. With some basic
        attributes and methods to store the start and end positions and offsets.
        (WebCore::SelectionSubtreeRoot::selectionStart):
        (WebCore::SelectionSubtreeRoot::selectionStartPos):
        (WebCore::SelectionSubtreeRoot::selectionEnd):
        (WebCore::SelectionSubtreeRoot::selectionEndPos):
        (WebCore::SelectionSubtreeRoot::setSelectionStart):
        (WebCore::SelectionSubtreeRoot::setSelectionStartPos):
        (WebCore::SelectionSubtreeRoot::setSelectionEnd):
        (WebCore::SelectionSubtreeRoot::setSelectionEndPos):

2014-04-21  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Follow-up: After a horizontal overflow scroll with a mechanical wheel mouse, vertical scrolling no longer works
        https://bugs.webkit.org/show_bug.cgi?id=131960
        <rdar://problem/16142100>

        Unreviewed build fix.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleWheelEvent): The test to clear the
        last scrolled node was too broad. It should only follow this path
        if both the phase and momentum phase are 'None'.

2014-04-21  Brent Fulgham  <bfulgham@apple.com>

        [Mac] After a horizontal overflow scroll with a mechanical wheel mouse, vertical scrolling no longer works
        https://bugs.webkit.org/show_bug.cgi?id=131960
        <rdar://problem/16142100>

        Reviewed by Darin Adler.

        Test: platform/mac/fast/scrolling/scroll-div-no-latching.html

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleWheelEvent): When not latching, always clear m_latchedWheelEventElement and m_previousWheelScrolledElement.

2014-04-21  Joseph Pecoraro  <pecoraro@apple.com>

        WebProfilerAgent::disable is calling the wrong superclass method
        https://bugs.webkit.org/show_bug.cgi?id=131968

        Reviewed by Simon Fraser.

        * inspector/WebProfilerAgent.cpp:
        (WebCore::WebProfilerAgent::disable):

2014-04-21  Enrica Casucci  <enrica@apple.com>

        Followup from http://trac.webkit.org/changeset/167624

        Reviewed by Darin Adler.

        Fixing incorrect use of ? : syntax.

        * editing/VisibleUnits.cpp:
        (WebCore::characterBeforePosition):

2014-04-21  Ryuan Choi  <ryuan.choi@samsung.com>

        Move CoordinatedGraphics related codes out of CMakeLists.txt
        https://bugs.webkit.org/show_bug.cgi?id=131931

        Reviewed by Gyuyoung Kim.

        Move CoordinatedGraphics related files to PlatformEfl.cmake because they are not common files.

        * CMakeLists.txt: 
        * PlatformEfl.cmake:

2014-04-21  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] AVSampleBufferDisplayLayer and AudioRenderer is overretained.
        https://bugs.webkit.org/show_bug.cgi?id=131963

        Reviewed by Jon Honeycutt.

        Adopt the results of -[[class alloc] init] rather than retaining them.

        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::SourceBufferPrivateAVFObjC::hasVideo):
        (WebCore::SourceBufferPrivateAVFObjC::trackDidChangeEnabled):

2014-04-21  Zalan Bujtas  <zalan@apple.com>

        REGRESSION (r166784): Gradient at background of iCloud login page doesn’t go all the way to the bottom
        https://bugs.webkit.org/show_bug.cgi?id=131924

        Computing tile dimension for contain/cover requires higher precision than what LayoutUnit has. Switching to floats.

        Reviewed by Simon Fraser.

        Test: fast/backgrounds/hidpi-background-image-contain-cover-scale-needs-more-precision.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateFillTileSize):

2014-04-21  Dean Jackson  <dino@apple.com>

        Build fix for Mountain Lion.

        * platform/mac/SerializedPlatformRepresentationMac.mm:
        (WebCore::SerializedPlatformRepresentationMac::deserialize):

2014-04-21  Dan Bernstein  <mitz@apple.com>

        WebCore part of <rdar://problem/16631323> Page::setDefersLoading doesn’t do anything when using the Network process
        https://bugs.webkit.org/show_bug.cgi?id=131939

        Reviewed by David Kilzer.

        * WebCore.exp.in: Exported WebCore::ResourceHandle::setDefersLoading.

        * loader/ResourceLoadScheduler.cpp:
        (WebCore::ResourceLoadScheduler::setDefersLoading): Added a no-op implementation.
        * loader/ResourceLoadScheduler.h: Declared new virtual member function setDefersLoading.

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::setDefersLoading): Added a call to the above function.

2014-04-21  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Difficulty gesture scrolling vertically with trackpad after scrolling horizontally 
        https://bugs.webkit.org/show_bug.cgi?id=131959
        <rdar://problem/16654523>

        Reviewed by Simon Fraser.

        * page/mac/EventHandlerMac.mm:
        (WebCore::deltaIsPredominantlyVertical): Added.
        (WebCore::scrolledToEdgeInDominantDirection): Only consider current mouse wheel event. We don't care about
        overall history when deciding if we are bumping against the edge of a scrollable region. Short-circuit if
        the element style indicates that overflow is hidden, since this means there is no scroll possible in that
        direction.
        (WebCore::EventHandler::platformPrepareForWheelEvents): Update for new signature.

2014-04-21  Eric Carlson  <eric.carlson@apple.com>

        [Mac] implement WebKitDataCue
        https://bugs.webkit.org/show_bug.cgi?id=131799

        Reviewed by Dean Jackson.

        Tests: http/tests/media/track-in-band-hls-metadata.html
               media/track/track-datacue-value.html

        * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.
        * DerivedSources.make: Add ENABLE_DATACUE_VALUE to HTML_FLAGS when appropriate.

        * CMakeLists.txt: Add JSDataCueCustom.cpp.
        * bindings/js/JSBindingsAllInOne.cpp:
        * WebCore.xcodeproj/project.pbxproj: Add new files.

        * bindings/js/JSDataCueCustom.cpp: Added.
        (WebCore::JSDataCue::value): 
        (WebCore::JSDataCue::setValue):
        (WebCore::JSDataCueConstructor::constructJSDataCue): Custom constructor.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive-by fixes: don't schedule timeupdate
            events when paused, don't call sort on an Vector that can't be sorted.

        * html/track/DataCue.cpp:
        (WebCore::DataCue::DataCue): Initialize m_type.
        (WebCore::DataCue::~DataCue): Unprotect the JSValue if necessary.
        (WebCore::DataCue::data): Ask the platform value for data if non-null.
        (WebCore::DataCue::setData): Clear m_platformValue and m_value.
        (WebCore::DataCue::isEqual): New.
        (WebCore::DataCue::value): Return a JSValue from the platform value, or the value passed
            to the constructor/set by script.
        (WebCore::DataCue::setValue): Set m_value.
        * html/track/DataCue.h:
        * html/track/DataCue.idl:

        * html/track/InbandDataTextTrack.cpp:
        (WebCore::InbandDataTextTrack::addDataCue): Don't add the same cue more than once.
        (WebCore::InbandDataTextTrack::updateDataCue): Update a cue's duration.
        (WebCore::InbandDataTextTrack::removeDataCue): Remove an incomplete cue.
        (WebCore::InbandDataTextTrack::removeCue): Remove a cue from the incomplete cue map if necessary.
        * html/track/InbandDataTextTrack.h:

        * html/track/InbandGenericTextTrack.cpp:
        (WebCore::InbandGenericTextTrack::addGenericCue): CueMatchRules is now in TextTrackCue instead
            of VTTCue.
        * html/track/InbandTextTrack.h:

        * html/track/InbandWebVTTTextTrack.cpp:
        (WebCore::InbandWebVTTTextTrack::newCuesParsed): Ditto.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::hasCue): Ditto.
        * html/track/TextTrack.h:

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::isEqual): New, test base class equality.
        * html/track/TextTrackCue.h:

        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGeneric::isEqual): Call TextTrackCue::isEqual first.
        * html/track/TextTrackCueGeneric.h:

        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::isEqual): Call TextTrackCue::isEqual first.
        * html/track/VTTCue.h:

        * platform/SerializedPlatformRepresentation.h: Added.
        (WebCore::SerializedPlatformRepresentation::~SerializedPlatformRepresentation):
        (WebCore::SerializedPlatformRepresentation::SerializedPlatformRepresentation):

        * platform/graphics/InbandTextTrackPrivateClient.h: Add methods for DataCue with SerializedPlatformRepresentation.

        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: Added.
        (WebCore::InbandMetadataTextTrackPrivateAVF::create):
        (WebCore::InbandMetadataTextTrackPrivateAVF::InbandMetadataTextTrackPrivateAVF):
        (WebCore::InbandMetadataTextTrackPrivateAVF::~InbandMetadataTextTrackPrivateAVF):
        (WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
        (WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes):
        (WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues):
        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h: Added.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): currentTrack -> currentTextTrack.
        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Ditto.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTextTrack):
        (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTrack): Deleted.

        Renamed currentTrack and setCurrentTrack to currentTextTrack and setCurrentTextTrack.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::AVFWrapper::currentTextTrack):
        (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTextTrack):
        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTextTrack):
        (WebCore::AVFWrapper::setCurrentTextTrack):
        (WebCore::AVFWrapper::AVFWrapper):
        (WebCore::AVFWrapper::processCue):
        (WebCore::AVFWrapper::currentTrack): Deleted.
        (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTrack): Deleted.
        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTrack): Deleted.
        (WebCore::AVFWrapper::setCurrentTrack): Deleted.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): currentTrack -> currentTextTrack
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): currentTrack -> currentTextTrack.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack): New.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): m_currentTrack -> m_currentTextTrack.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): Renamed from setCurrentTextTrack.
        (WebCore::metadataType): Map an AVFoundation metadata key space to a metadata cue type.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Process new metadata.
        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Deleted.

        Create a JSValue representation from an AVMetadataItem.
        * platform/mac/SerializedPlatformRepresentationMac.h: Added.
        (WebCore::SerializedPlatformRepresentationMac::platformType):
        (WebCore::SerializedPlatformRepresentationMac::nativeValue):
        * platform/mac/SerializedPlatformRepresentationMac.mm: Added.
        (WebCore::SerializedPlatformRepresentationMac::SerializedPlatformRepresentationMac):
        (WebCore::SerializedPlatformRepresentationMac::~SerializedPlatformRepresentationMac):
        (WebCore::SerializedPlatformRepresentationMac::create):
        (WebCore::SerializedPlatformRepresentationMac::data):
        (WebCore::SerializedPlatformRepresentationMac::deserialize):
        (WebCore::SerializedPlatformRepresentationMac::isEqual):
        (WebCore::toSerializedPlatformRepresentationMac):
        (WebCore::jsValueWithValueInContext):
        (WebCore::jsValueWithDataInContext):
        (WebCore::jsValueWithArrayInContext):
        (WebCore::jsValueWithDictionaryInContext):
        (WebCore::jsValueWithAVMetadataItemInContext):

2014-04-21  Benjamin Poulain  <benjamin@webkit.org>

        Add Element.matches, the standard name for webkitMatchesSelector
        https://bugs.webkit.org/show_bug.cgi?id=131922

        Reviewed by Andreas Kling.

        This patch just renames webkitMatchesSelector() to matches().

        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateImplementation):
        The Objective-C binding generator only supported ImplementedAs for getters and setters.
        This adds support for the option so that Element.matches can be generated for Obj-C.

        * dom/Element.cpp:
        (WebCore::Element::matches):
        (WebCore::Element::webkitMatchesSelector): Deleted.
        * dom/Element.h:
        * dom/Element.idl:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

2014-04-21  Beth Dakin  <bdakin@apple.com>

        topContentInset does not play well with fullscreen elements
        https://bugs.webkit.org/show_bug.cgi?id=131955
        -and corresponding-
        <rdar://problem/16651925>

        Reviewed by Sam Weinig.

        Calling setNeedsLayout() is not sufficient when the topContentInset has changed 
        dynamically. We need to perform the layout right away and update the scrollbars. 
        This works completely when the inset changes due to entering/exiting fullscreen, 
        but I left a FIXME behind because it is possible to change the inset dynamically 
        just through the WK2 API and end up in a situation where everything looks right 
        except for the scrollbars. 
        * page/FrameView.cpp:
        (WebCore::FrameView::topContentInsetDidChange):
        * page/FrameView.h:
        * page/Page.cpp:
        (WebCore::Page::setTopContentInset):

2014-04-18  Jon Honeycutt  <jhoneycutt@apple.com>

        Empty RenderInline objects should not be line break objects.

        https://bugs.webkit.org/show_bug.cgi?id=131861
        <rdar://problem/15663617>

        Reviewed by David Hyatt.

        * rendering/line/BreakingContextInlineHeaders.h:
        (WebCore::BreakingContext::canBreakAtThisPosition):
        Don't break at this position if this is an empty RenderInline.

2014-04-21  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] support replacements for misspelled words.
        https://bugs.webkit.org/show_bug.cgi?id=131827
        <rdar://problem/16319657>

        Reviewed by Darin Adler.

        Adds utility function to return the character before the current selection
        and converts the nbsp to the space character.

        * WebCore.exp.in:
        * editing/VisibleUnits.cpp:
        (WebCore::characterBeforePosition):
        * editing/VisibleUnits.h:

2014-04-21  Eric Carlson  <eric.carlson@apple.com>

        [iOS] enable plug-in replacement
        https://bugs.webkit.org/show_bug.cgi?id=131947

        Reviewed by Jer Noble.

        * bindings/generic/RuntimeEnabledFeatures.cpp:
        (WebCore::RuntimeEnabledFeatures::RuntimeEnabledFeatures): initialize m_isPluginReplacementEnabled
            to true on iOS.

2014-04-21  Rik Cabanier  <cabanier@adobe.com>

        [CSS Blending] Remove support for non-separable blend modes from mix-blend-mode
        https://bugs.webkit.org/show_bug.cgi?id=131824

        Reviewed by Dean Jackson.

        Removed support for non-separable blend modes from the CSS parser.

        Covered by existing tests

        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
        (PlatformCAFilters::setBlendingFiltersOnLayer):

2014-04-21  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Column set drawing under horizontal scrollbar.
        https://bugs.webkit.org/show_bug.cgi?id=131812.

        Reviewed by Sam Weinig.

        Added fast/multicol/newmulticol/compare-with-old-impl/LeftToRight-tb.html.

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::layoutBlock):
        (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
        * rendering/RenderBlockFlow.h:
        Pass in relayoutChildren as a reference boolean to checkForPaginationLogicalHeightChange.
        The new columns need to be able to set it to true if the amount of available column
        height ever changes, so that the RenderFlowThread and the sets get a layout call.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::setColumnStylesFromPaginationMode):
        Make sure that the pagination mode is set up with an auto column-fill specified. You
        don't ever want to balance when you set a pagination mode on the RenderView.

2014-04-21  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Implement CSS viewport units
        https://bugs.webkit.org/show_bug.cgi?id=131863
        <rdar://problem/16279088>

        Reviewed by Darin Adler.

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::setViewportSize):
        * page/FrameView.h:
        (WebCore::FrameView::viewportSize):
        Add setViewportSize() and viewportSize().
        If the viewport size changes, we have to do style recalc.
        If we have an overridden viewport size, use it.

        * rendering/RenderView.cpp:
        (WebCore::RenderView::viewportSize):
        * rendering/RenderView.h:
        Get the size from FrameView.

2014-04-21  Joseph Pecoraro  <pecoraro@apple.com>

        Remove unused WebKitSystemInterface functions
        https://bugs.webkit.org/show_bug.cgi?id=131938

        Reviewed by Alexey Proskuryakov.

        * WebCore.exp.in:
        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2014-04-21  Andreas Kling  <akling@apple.com>

        Move the JSString cache from DOMWrapperWorld to VM.
        <https://webkit.org/b/131940>

        Since there's no need for JSStrings to be world-specific, this patch
        moves the string cache to JSC::VM. This makes jsStringWithCache()
        a lot faster since it no longer has to jump through twenty-eleven
        hoops to find the DOMWrapperWorld.

        Reviewed by Geoff Garen.

        * bindings/js/DOMWrapperWorld.cpp:
        (WebCore::DOMWrapperWorld::clearWrappers):
        * bindings/js/DOMWrapperWorld.h:
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::jsStringWithCache):

2014-04-21  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Column balancing is slow on float-multicol.html
        https://bugs.webkit.org/show_bug.cgi?id=131801

        Reviewed by Enrica Casucci.

        Added fast/multicol/tall-float.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
        Make RenderFlowThreads expand to encompass floats. Also from Morten's patch for
        Blink (#361551).

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::computeOverflow):
        Fix a bug where the new multi-column code was adding in overflow for floats
        when it should not. This was resulting in the creation of scrollbars when none
        should exist. This is my own addition.

        (WebCore::RenderBlockFlow::addOverhangingFloats):
        Make RenderFlowThreads and RenderRegions ignore overhanging float additions. This
        comes from Morten's patch for Blink (#361551).

2014-04-21  Darin Adler  <darin@apple.com>

        REGRESSION (r160908): Safari doesn't draw rotated images properly first time
        https://bugs.webkit.org/show_bug.cgi?id=131930

        Reviewed by Anders Carlsson.

        With render tree creation sufficiently lazy, we had to put some explicit
        calls to updateStyleIfNeeded into the ImageDocument class.

        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createDocument): Pass a Frame&.

        * html/ImageDocument.cpp:
        (WebCore::ImageDocument::imageSize): Added this helper function. This updates
        style so we can use the renderer to compute an image size taking things like
        orientation into account, and also passes in the zoom factor.
        (WebCore::ImageDocument::updateDuringParsing): Moved the body of the
        ImageDocumentParser::appendBytes function into this function. Since it's a
        member of ImageDocument, it has better access to appropriate private members,
        and we don't have to expose as many functions to the public. Also changed to
        not use the frame so much. Also merged in the code that creates the document
        instead of having it be a side effect in the cachedImage helper function; all
        the other call sites were checking for null before calling cachedImage.
        (WebCore::ImageDocument::finishedParsing): Moved the body of the
        ImageDocumentParser::finish function here. Added a call to updateStyleIfNeeded
        before using the renderer to get the image size.
        (WebCore::ImageDocumentParser::document): Made this return a reference. It's
        just a convenience function used in the two functions below.
        (WebCore::ImageDocumentParser::appendBytes): Just call updateDuringParsing.
        (WebCore::ImageDocumentParser::finish): Just call finishedParsing.
        (WebCore::ImageDocument::ImageDocument): Take a reference for the argument,
        use nullptr, and also initialize m_shouldShrinkImage directly instead of using
        a shouldShrinkToFit() helper function to do it.
        (WebCore::ImageDocument::createDocumentStructure): Removed unneeded check of
        null for the frame, since the caller does it. Removed some unneeded
        IGNORE_EXCEPTON and a stray semicolon. Use m_shouldShrinkImage instead of
        calling shouldShrinkToFit since at this early point they will be identical.
        (WebCore::ImageDocument::scale): Make non-const so we can call the new
        imageSize helper. Use Document::view instead of Frame::view. Improved the
        conversion to floating point so it doesn't involve a static_cast and an extra
        conversion from int to LayoutUnit.
        (WebCore::ImageDocument::resizeImageToFit): Ditto.
        (WebCore::ImageDocument::imageClicked): Ditto.
        (WebCore::ImageDocument::imageUpdated): Ditto. Also use m_shouldShrinkImage
        ibnstead of shouldShrinkToFit.
        (WebCore::ImageDocument::restoreImageSize): Ditto.
        (WebCore::ImageDocument::imageFitsInWindow): Ditto.
        (WebCore::ImageDocument::windowSizeChanged): Ditto.
        (WebCore::ImageDocument::cachedImage): Deleted. Moved logic into updateDuringParsing.
        (WebCore::ImageDocument::shouldShrinkToFit): Deleted. Moved logic into constructor.
        (WebCore::ImageEventListener::handleEvent): Updated for changes above.
        (WebCore::ImageEventListener::operator==): Simplified. No reason this has to check
        whether both listeners are in the same document.
        (WebCore::ImageDocumentElement::didMoveToNewDocument): Use nullptr.

        * html/ImageDocument.h: Deleted some unused things, updated for changes above,
        and made some memer functions private.

        * loader/FrameLoaderClient.h: Deleted the allowScriptFromSource, allowPlugins,
        allowImage, and allowDisplayingInsecureContent functions. These were only used in
        Chromium and are now unneeded complexity. We could bring them back if anyone wants them.

        * loader/MixedContentChecker.cpp:
        (WebCore::MixedContentChecker::canDisplayInsecureContent): Removed call to
        allowDisplayingInsecureContent, just use the setting directly.
        (WebCore::MixedContentChecker::canRunInsecureContent): Removed call to
        allowRunningInsecureContent, just use the setting directly.

        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::allowPlugins): Removed call to allowPlugins, just
        use the arePluginsEnabled setting directly.

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::canRequest): Removed call to allowScriptFromSource, just
        use the isScriptEnabled setting directly.
        (WebCore::CachedResourceLoader::clientDefersImage): Removed call to allowImage.

2014-04-21  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Pagination mode messed up with non-inline axis and reversed direction.
        https://bugs.webkit.org/show_bug.cgi?id=131811

        Reviewed by Dean Jackson.

        Added fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html
        
        With block axis pagination mode, it is possible to set a column height that is not the same
        as the available fill height for a block. The new multi-column code had the assumption that
        the column height was the same as the amount of fill room you had available. This is not
        the case.
        
        To correct the issue, I added a member variable to RenderMultiColumnSet that stores the
        available column height as a separate variable from the computed column height. This allows
        the pagination API to specify a different column height that is not the same as the view's
        content height.

        Even though it isn't involved in the solution, I also patched pageOrViewLogicalHeight on
        RenderView to work with the new column code as well.

        To address the layout test failures (that caused the previous rollout), I made sure to
        initialize m_availableHeight to 0 when m_computedColumnHeight also gets reset to 0.
        
        The assertion is not something I could reproduce on any machine, but I can see the problem.
        I patched Page's pageCount method to not have column code directly in Page.cpp, 
        and to make a new pageCount() method on RenderView that Page calls
        into. This method is now patched to handle the new column code as well as the old. I have
        no real way of testing this method though, since I can't reproduce the assertion that the
        bots were experiencing.

        * page/Page.cpp:
        (WebCore::Page::pageCount):
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
        (WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight):
        (WebCore::RenderMultiColumnSet::prepareForLayout):
        (WebCore::RenderMultiColumnSet::computeLogicalHeight):
        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::pageOrViewLogicalHeight):
        (WebCore::RenderView::pageCount):
        * rendering/RenderView.h:

2014-04-18  Dean Jackson  <dino@apple.com>

        [Media] Clean up localized strings in controls
        https://bugs.webkit.org/show_bug.cgi?id=131857
        <rdar://problem/16663005>

        Reviewed by Eric Carlson.

        There is no need for separate localization files
        on OS X and iOS. Move the small number of iOS-specific
        localizations into a shared file.

        We also don't need a function to return a static table.
        Ultimately I think we want a top-level WebKit object that
        hold the table, but for now use a global variable
        called UIStringTable. Since we're in an isolated world, we
        won't clash with anything.

        I noticed a few cases were we grab a localized string and
        then instantly run a replacement on it. This should be
        supported directly in the UIString() accessor.

        * English.lproj/mediaControlsLocalizedStrings.js: Add iOS strings. Just
        use a static table.
        (mediaControlsLocalizedStrings): Deleted.
        * English.lproj/mediaControlsLocalizedStringsiOS.js: Removed.
        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.extend): Fix braces.
        (Controller.prototype.UIString): Use the string table, and allow replacement.
        (Controller.prototype.createControls): Use new UIString replacement.
        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.updateWirelessPlaybackStatus): Use new UIString.
        (ControllerIOS.prototype.UIString): Deleted. Use the parent class version.
        * WebCore.xcodeproj/project.pbxproj: Remove file from Resources.
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::mediaControlsScript): No need to include the iOS
        specific localization file.

2014-04-21  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed build fix.

        * inspector/TimelineRecordFactory.cpp: Add missing include.

2014-04-21  Zan Dobersek  <zdobersek@igalia.com>

        Move cross-port Source/WebCore/page/ code to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=130534

        Reviewed by Darin Adler.

        Replace uses of OwnPtr and PassOwnPtr in cross-port code under Source/WebCore/page/ with
        std::unique_ptr. Unnecessary OwnPtr.h and PassOwnPtr.h header inclusions are removed as well.

        * dom/Document.cpp:
        (WebCore::Document::initSecurityContext):
        * dom/SecurityContext.cpp:
        (WebCore::SecurityContext::setContentSecurityPolicy):
        * dom/SecurityContext.h:
        * page/CaptionUserPreferences.h:
        * page/ContentSecurityPolicy.cpp:
        (WebCore::CSPDirectiveList::create):
        (WebCore::CSPDirectiveList::checkEvalAndReportViolation):
        (WebCore::CSPDirectiveList::checkInlineAndReportViolation):
        (WebCore::CSPDirectiveList::checkSourceAndReportViolation):
        (WebCore::CSPDirectiveList::setCSPDirective):
        (WebCore::ContentSecurityPolicy::didReceiveHeader):
        * page/ContentSecurityPolicy.h:
        * page/DOMSecurityPolicy.h:
        * page/DOMWindow.cpp:
        (WebCore::PostMessageTimer::fired):
        (WebCore::DOMWindow::postMessageTimerFired):
        * page/DOMWindow.h:
        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler):
        * page/EventHandler.h:
        * page/Frame.cpp:
        (WebCore::Frame::Frame):
        (WebCore::createRegExpForLabels):
        (WebCore::Frame::searchForLabelsAboveCell):
        (WebCore::Frame::searchForLabelsBeforeElement):
        (WebCore::matchLabelsAgainstString):
        (WebCore::Frame::setTiledBackingStoreEnabled):
        * page/Frame.h:
        * page/FrameView.cpp:
        (WebCore::FrameView::addEmbeddedObjectToUpdate):
        (WebCore::FrameView::addSlowRepaintObject):
        (WebCore::FrameView::addViewportConstrainedObject):
        (WebCore::FrameView::addScrollableArea):
        * page/FrameView.h:
        * page/Page.cpp:
        (WebCore::Page::Page):
        * page/Page.h:
        * page/PageConsole.h:
        * page/PageThrottler.h:
        * page/SecurityPolicy.cpp:
        (WebCore::SecurityPolicy::addOriginAccessWhitelistEntry):
        * page/animation/AnimationController.h:
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
        (WebCore::CSSPropertyAnimationWrapperMap::instance):
        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
        * page/mac/PageMac.cpp:
        (WebCore::Page::addSchedulePair):
        * workers/WorkerGlobalScope.cpp:
        (WebCore::WorkerGlobalScope::applyContentSecurityPolicyFromString):

2014-04-21  Darin Adler  <darin@apple.com>

        Add HashSet::takeAny
        https://bugs.webkit.org/show_bug.cgi?id=131928

        Reviewed by Benjamin Poulain.

        * dom/Document.cpp:
        (WebCore::Document::takeAnyMediaCanStartListener): Use HashSet::takeAny.
        * dom/ScriptExecutionContext.cpp:
        (WebCore::takeAny): Deleted.
        (WebCore::ScriptExecutionContext::~ScriptExecutionContext): Use HashSet::takeAny.

2014-04-21  Zan Dobersek  <zdobersek@igalia.com>

        iOS and non-iOS RemoteCommandListener::create() functions should use std::make_unique<>()
        https://bugs.webkit.org/show_bug.cgi?id=131916

        Reviewed by Darin Adler.

        A follow-up to r167197. Make RemoteCommandListener ctor public and use std::make_unique<>()
        in both versions of RemoteCommandListener::create() functions (iOS and non-iOS).

        * platform/RemoteCommandListener.cpp:
        (WebCore::RemoteCommandListener::create):
        * platform/RemoteCommandListener.h:
        (WebCore::RemoteCommandListener::RemoteCommandListener):
        * platform/ios/RemoteCommandListenerIOS.mm:
        (WebCore::RemoteCommandListener::create):

2014-04-21  Andreas Kling  <akling@apple.com>

        Micro-optimize the way we hand NodeLists to JSC.
        <https://webkit.org/b/131932>

        Use HashMap::fastAdd() when returning cached node lists and collections.
        10.9% progression on Bindings/get-elements-by-tag-name.html

        Reviewed by Antti Koivisto.

        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
        (WebCore::NodeListsNodeData::addCacheWithName):
        (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
        (WebCore::NodeListsNodeData::addCachedCollection):

2014-04-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167584.
        https://bugs.webkit.org/show_bug.cgi?id=131929

        Broke Objective-C bindings test (Requested by ap on #webkit).

        Reverted changeset:

        "Add Element.matches, the standard name for
        webkitMatchesSelector"
        https://bugs.webkit.org/show_bug.cgi?id=131922
        http://trac.webkit.org/changeset/167584

2014-04-20  Benjamin Poulain  <benjamin@webkit.org>

        Compile the :root pseudo class and fix a related issue with :nth-child()
        https://bugs.webkit.org/show_bug.cgi?id=131926

        Reviewed by Andreas Kling.

        Add the :root pseudo class. This is another trivial selector, we just need to compare
        the element pointer with the documentElement.

        I discovered some issues with :nth-child(n) through the layout tests for ":root".
        When the pseudo class nth-child could match anything, no code was generated. That decision
        was taken when generating the fragments.

        The specification of :nth-child() has two tests: the parent test and the counter test.
        Since some fragments would not generate any code for :nth-child(n), they would succeed on the root,
        which is incorrect since the root should fail the parent test.

        This was fixed by moving the filtering of non-counting :nth-child() after we generate the parent
        check.
        We still don't generate any counter test unless required.

        Test: fast/selectors/nth-child-on-root.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsRoot):
        * dom/Document.h:
        (WebCore::Document::documentElementMemoryOffset):

2014-04-20  Benjamin Poulain  <benjamin@webkit.org>

        Add Element.matches, the standard name for webkitMatchesSelector
        https://bugs.webkit.org/show_bug.cgi?id=131922

        Reviewed by Andreas Kling.

        This patch just renames webkitMatchesSelector() to matches().

        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateImplementation):
        The Objective-C binding generator only supported ImplementedAs for getters and setters.
        This adds support for the option so that Element.matches can be generated for Obj-C.

        * dom/Element.cpp:
        (WebCore::Element::matches):
        (WebCore::Element::webkitMatchesSelector): Deleted.
        * dom/Element.h:
        * dom/Element.idl:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):

2014-04-20  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: RenderLayer's size is set using enclosingRect() which can result in cruft.
        https://bugs.webkit.org/show_bug.cgi?id=131468

        Reviewed by Darin Adler.

        Layers marked opaque may not paint edge pixels, when RenderLayer bounds are non-integral and
        get device pixel snapped.
        For details see this: https://trac.webkit.org/r159463

        Test: compositing/hidpi-non-simple-compositing-layer-with-fractional-size-and-background.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2014-04-19  Darin Adler  <darin@apple.com>

        Simple layout can get confused by coordinate overflow
        https://bugs.webkit.org/show_bug.cgi?id=131890
        rdar://problem/15558510

        Reviewed by Andreas Kling.

        Test: fast/css/simple-layout-overflow.html

        * rendering/SimpleLineLayoutResolver.h:
        (WebCore::SimpleLineLayout::RunResolver::rangeForRect):
        If lastLine is smaller than firstLine, just ignore it.

2014-04-20  Darin Adler  <darin@apple.com>

        ScriptExecutionContext::stopActiveDOMObjects iterates a hash map that can change during iteration (for multiple reasons, including GC)
        https://bugs.webkit.org/show_bug.cgi?id=52719

        Reviewed by Alexey Proskuryakov.

        At least two specific ways this can happen:

        1) XMLHttpRequest::stop can trigger a JavaScript garbage collection.
        2) NotificationCenter::stop can delete the last references to notifications;
           those notifications are also active DOM objects.

        Besides fixing the iteration in that function, did some other fixes for the
        ScriptExecutionContext class, including some coding style changes. Many uses
        of nullptr instead of 0, without listing each function separately below.

        * Modules/webdatabase/DatabaseContext.cpp:
        (WebCore::DatabaseContext::contextDestroyed): Call through to the base class
        version of contextDestroyed rather than repeating what it does (with a large
        comment that doesn't acknowledge the base class alread does it).
        * Modules/webdatabase/DatabaseContext.h: Removed some unneeded includes.
        Wrote out "private" explicitly for deriving from ActiveDOMObject. Made the
        ActiveDOMObject function overrides private, and marked them override and final.

        * dom/ActiveDOMObject.h: Updated comments. Replaced suspendIfNeededCalled with
        assertSuspendIfNeededWasCalled, which has an empty inline version in the header.
        Renamed m_suspendIfNeededCalled to m_suspendIfNeededWasCalled.

        * dom/ActiveDOMObject.cpp:
        (WebCore::ActiveDOMObject::ActiveDOMObject): Pass a reference instead of a pointer.
        (WebCore::ActiveDOMObject::~ActiveDOMObject): Ditto.
        (WebCore::ActiveDOMObject::suspendIfNeeded): Ditto.

        * dom/ContextDestructionObserver.cpp:
        (WebCore::ContextDestructionObserver::observeContext): Pass a reference instead of a pointer.

        * dom/MessagePort.cpp:
        (WebCore::MessagePort::MessagePort): Pass a reference instead of a pointer.
        (WebCore::MessagePort::~MessagePort): Ditto.
        (WebCore::MessagePort::disentangle): Ditto.

        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::ScriptExecutionContext): Updated flags used
        for assertions so they are conditional and updated their names.
        (WebCore::takeAny): Added. Helper function that we can consider for HashSet in
        the future; makes loop below easier to read.
        (WebCore::checkConsistency): Added. Assertions that were done multiple places below,
        and should not be written over and over again.
        (WebCore::ScriptExecutionContext::~ScriptExecutionContext): Changed to use C++11
        for loops and the takeAny function above.
        (WebCore::ScriptExecutionContext::dispatchMessagePortEvents): Ditto.
        (WebCore::ScriptExecutionContext::createdMessagePort): Changed to take a reference
        for clarity and so it doesn't have to do an assert the pointer is non-null.
        (WebCore::ScriptExecutionContext::destroyedMessagePort): Ditto.
        (WebCore::ScriptExecutionContext::canSuspendActiveDOMObjects): Changed to use
        C++11 for loop and reworded comment and redid assertions.
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjects): Ditto.
        (WebCore::ScriptExecutionContext::resumeActiveDOMObjects): Ditto.
        (WebCore::ScriptExecutionContext::stopActiveDOMObjects): Changed to support
        removal of an active DOM object during the stop function. Included new comments
        to clarify what the rules are.
        (WebCore::ScriptExecutionContext::suspendActiveDOMObjectIfNeeded): Changed to take
        a reference for clarity and so it doesn't have to assert a pointer is non-null.
        (WebCore::ScriptExecutionContext::didCreateActiveDOMObject): Ditto. Also changed to
        use RELEASE_ASSERT instead of CRASH.
        (WebCore::ScriptExecutionContext::willDestroyActiveDOMObject): Ditto.
        (WebCore::ScriptExecutionContext::didCreateDestructionObserver): Ditto.
        (WebCore::ScriptExecutionContext::willDestroyDestructionObserver): Ditto.
        (WebCore::ScriptExecutionContext::closeMessagePorts): Moved the body of this
        function into its one call site, ScriptExecutionContext::stopActiveDOMObjects,
        since it's simple enough when written as a C++11 for loop.
        (WebCore::ScriptExecutionContext::hasPendingActivity): Added. This function was
        already exported for workers, and implementing it outside this class required
        exposing the private HashSet members; more sensible to implement it here and
        simply make it public in WorkerGlobalScope.

        * dom/ScriptExecutionContext.h: Removed unnecessary includes and forward declarations.
        Removed a long-ago-fixed FIXME. Changed various functions to take references instead of
        pointers. Added a protected hasPendingActivity function, deleted the closeMessagePorts
        function, deleted the ActiveDOMObjectsSet typedef, made the assertion flags be
        !ASSERT_DISABLED only, and deleted the messagePorts and activeDOMObjects functions.

        * workers/WorkerGlobalScope.cpp:
        (WebCore::WorkerGlobalScope::hasPendingActivity): Deleted. This is now implemented
        in the base class.

        * workers/WorkerGlobalScope.h: Make hasPendingActivity function from the base class
        public instead of declaring it in this class.

2014-04-20  Brent Fulgham  <bfulgham@apple.com>

        [Mac] Unable to select 'Off' or 'Auto' from track menu when tracks consist of unsupported track types
        https://bugs.webkit.org/show_bug.cgi?id=131908
        <rdar://problem/15999882>

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setSelectedTextTrack): When the user selects 'Off', make sure the currently 'showing'
        track is switched to 'disabled'.

2014-04-20  Andreas Kling  <akling@apple.com>

        Speed up jsStringWithCache() through WeakGCMap inlining.
        <https://webkit.org/b/131923>

        Inline the common path of WeakGCMap::add() in jsStringWithCache().
        26% progression on Bindings/id-getter.html

        Reviewed by Darin Adler.

        * WebCore.exp.in:
        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::jsStringWithCache):

            Move jsStringWithCache() out of line since we're now blowing up
            its size quite a bit.

2014-04-20  Benjamin Poulain  <benjamin@webkit.org>

        Fix the build after r167574

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):

2014-04-20  Benjamin Poulain  <benjamin@webkit.org>

        Compile the pseudo class :target
        https://bugs.webkit.org/show_bug.cgi?id=131904

        Reviewed by Andreas Kling.

        The pseudo class :target is trivial, it just compare the current element with
        Document::cssTarget().

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::getDocument):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsTarget):
        * dom/Document.h:
        (WebCore::Document::cssTargetMemoryOffset):

2014-04-20  Benjamin Poulain  <benjamin@webkit.org>

        Rename the CSSSelector PseudoType to PseudoClassType
        https://bugs.webkit.org/show_bug.cgi?id=131907

        Reviewed by Andreas Kling.

        Pseudo Elements and Page Pseudo Classes have been moved out of PseudoType in previous patches.
        The remaining values in the PseudoType enumeration are the pseudo classes.

        This patch is the final clean up, PseudoType is renamed to PseudoClassType.

        * css/CSSGrammar.y.in:
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):
        * css/CSSParserValues.h:
        (WebCore::CSSParserSelector::pseudoClassType):
        (WebCore::CSSParserSelector::pseudoType): Deleted.
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::specificityForOneSelector):
        (WebCore::appendPseudoClassFunctionTail):
        (WebCore::CSSSelector::selectorText):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::pseudoClassType):
        (WebCore::CSSSelector::pseudoElementType):
        (WebCore::CSSSelector::pagePseudoClassType):
        (WebCore::pseudoClassIsRelativeToSiblings):
        (WebCore::CSSSelector::isSiblingSelector):
        (WebCore::CSSSelector::CSSSelector):
        (WebCore::CSSSelector::pseudoType): Deleted.
        * css/RuleSet.cpp:
        (WebCore::RuleSet::findBestRuleSetAndAdd):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        (WebCore::SelectorChecker::checkScrollbarPseudoClass):
        (WebCore::SelectorChecker::determineLinkMatchType):
        (WebCore::SelectorChecker::matchesFocusPseudoClass):
        * css/SelectorChecker.h:
        (WebCore::SelectorChecker::isCommonPseudoClassSelector):
        * css/SelectorCheckerFastPath.cpp:
        (WebCore::SelectorCheckerFastPath::commonPseudoClassSelectorMatches):
        * css/SelectorPseudoClassAndCompatibilityElementMap.in:
        * css/SelectorPseudoTypeMap.h:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleForElement):
        * css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
        (enumerablePseudoType):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoClassType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::addPseudoType): Deleted.
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::computePseudoClassMask):
        (WebCore::InspectorCSSAgent::forcePseudoState):
        * inspector/InspectorCSSAgent.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::forcePseudoStateImpl):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::forcePseudoState):

2014-04-19  Alexey Proskuryakov  <ap@apple.com>

        Crashes in HTMLFormElement::submit.
        https://bugs.webkit.org/show_bug.cgi?id=131910
        <rdar://problem/15661790>

        Based on a patch by Kent Tamura.

        Reviewed by Anders Carlsson.

        Tests: fast/forms/form-submission-crash-2.html
               fast/forms/form-submission-crash.html

        Code that executes arbitrary JS needs to protect objects that it uses afterwards.

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::prepareForSubmission):
        (WebCore::HTMLFormElement::submit):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::submitForm):

2014-04-20  Antti Koivisto  <antti@apple.com>

        Text bounding box computation for simple line layout is wrong
        https://bugs.webkit.org/show_bug.cgi?id=131912

        Reviewed by Andreas Kling.

        Top-left is currently the first line top-left which is not always correct.

        * WebCore.exp.in:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::firstRunLocation):
        (WebCore::RenderText::firstRunOrigin): Deleted.
        (WebCore::RenderText::firstRunX): Deleted.
        (WebCore::RenderText::firstRunY): Deleted.
        
            Keep just one accessor and rename it.
            Encapsulate the line box and simple line versions.

        * rendering/RenderText.h:
        * rendering/RenderTextLineBoxes.cpp:
        (WebCore::RenderTextLineBoxes::firstRunLocation):

            Line box version.

        * rendering/RenderTextLineBoxes.h:
        * rendering/RenderTreeAsText.cpp:
        
            Simplify RenderText dumping.

        (WebCore::RenderTreeAsText::writeRenderObject):
        * rendering/SimpleLineLayoutFunctions.cpp:
        (WebCore::SimpleLineLayout::computeTextBoundingBox):
        
            Return the correct x position.

        (WebCore::SimpleLineLayout::computeTextFirstRunLocation):
        
            Simple line version.

        * rendering/SimpleLineLayoutFunctions.h:
        * rendering/svg/SVGRenderTreeAsText.cpp:
        (WebCore::writeSVGInlineText):

2014-04-19  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: RenderLayer's clipping should snap to device pixel boundaries.
        https://bugs.webkit.org/show_bug.cgi?id=131466

        Reviewed by Simon Fraser.

        Fractional pixel clipping can produce cruft on RenderLayers. Since RenderLayer
        sizing and painting are snapped, painting clip rect needs to be snapped the same way.

        Test: fast/clip/clip-when-rect-has-fractional-pixel-value.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::clipToRect):

2014-04-19  Brent Fulgham  <bfulgham@apple.com>

        Latched scrolling may interact badly with custom programmatic scrolling
        https://bugs.webkit.org/show_bug.cgi?id=131869
        <rdar://problem/16249557>

        Reviewed by Darin Adler.

        * dom/Element.cpp:
        (WebCore::Element::setScrollLeft): Mark scrollable area as having
        been scrolled programmatically.
        (WebCore::Element::setScrollTop): Ditto.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleWheelEvent): Check for programmatic scroll, and
        clear latched state if the handler manually scrolled. Clear programmatic
        scroll state at the end of event handling.
        (WebCore::EventHandler::clearLatchedState): Refactored code.
        * page/EventHandler.h:
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::platformPrepareForWheelEvents): Check
        if scrollable area was scrolled programmatically. If it was, do
        not honor latching behavior.
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::ScrollableArea): Initialize new member.
        * platform/ScrollableArea.h:
        (WebCore::ScrollableArea::isScrolledProgrammatically): Added.
        (WebCore::ScrollableArea::setScrolledProgrammatically): Added.

2014-04-19  Chris Fleizach  <cfleizach@apple.com>

        AX: grid rows are not recognized do to lack of explicit role="row", role="gridcell"
        https://bugs.webkit.org/show_bug.cgi?id=131819

        Reviewed by Darin Adler.

        Test: accessibility/table-with-missing-aria-role-rows.html

        If a table is using role="grid", and it has <tr> elements that do not have
        role="row", we should still treat them as row elements.

        * accessibility/AccessibilityARIAGrid.cpp:
        (WebCore::AccessibilityARIAGrid::addTableCellChild):

2014-04-19  Chris Fleizach  <cfleizach@apple.com>

        AX: Malformed tables exposing incorrect col and colSpans
        https://bugs.webkit.org/show_bug.cgi?id=131796

        Reviewed by Darin Adler.

        Test: accessibility/table-incorrect-colspan-cell.html

        When a developer has specified malformed colspans, accessibility is reporting those values instead of the effective column information.

        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::columnIndexRange):

2014-04-19  Benjamin Poulain  <bpoulain@apple.com>

        Make the CSS JIT compile for ARM64
        https://bugs.webkit.org/show_bug.cgi?id=131834

        Reviewed by Gavin Barraclough.

        Add the CPU specific code required to compile SelectorCompiler on ARM64.
        The code is absolutely non-functional, it would crash immediately, but it compiles.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::FunctionCall):
        (WebCore::FunctionCall::callAndBranchOnCondition):
        * cssjit/RegisterAllocator.h:
        What am I supposed to do with all those registers? There are so many of them :)
        The array calleeSavedRegisters is defined for compatibility but it cannot be reached at the moment.

        (WebCore::RegisterAllocator::isValidRegister):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
        Implement modulo by doing dividend - (divisor * int(dividend/divisor)).

        * cssjit/StackAllocator.h:
        StackAllocator will need a small redesign to handle the 16 bytes alligned stack of
        ARM64.
        The code has been modified to build but it is pretty useless.

        (WebCore::StackAllocator::allocateUninitialized):
        (WebCore::StackAllocator::push):
        (WebCore::StackAllocator::pop):
        (WebCore::StackAllocator::popAndDiscard):
        (WebCore::StackAllocator::popAndDiscardUpTo):
        (WebCore::StackAllocator::alignStackPreFunctionCall):
        (WebCore::StackAllocator::unalignStackPostFunctionCall):

2014-04-19  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Implement blend modes
        https://bugs.webkit.org/show_bug.cgi?id=131891
        <rdar://problem/16490085>

        Reviewed by Tim Horton.

        Implement blend modes with UI-side compositing.
        
        PlatformCALayer::setBlendMode() becomes pure virtual, and overridden in
        PlatformCALayerMac and PlatformCALayerRemote.
        PlatformCAFilters::setBlendingFiltersOnLayer() now takes a raw platform
        layer, so it can be called from the UI process on a CALayer*.
        
        Fix an issue with GraphicsLayerCA::LayerChange flags. 1 << 31 shifts
        a signed integer, so it ended up setting all the high bits in m_uncommittedChanges,
        causing us to push blend modes to the UI process for every layer. Fix by shifting
        an unsigned long long (1LLU << 31). This should also fix a build warning on Windows.

        * WebCore.exp.in:
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/PlatformCAFilters.h:
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
        (PlatformCAFilters::setBlendingFiltersOnLayer):
        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayerMac::setFilters):
        (PlatformCALayerMac::setBlendMode):
        (PlatformCALayer::setBlendMode): Deleted.

2014-04-19  Joseph Pecoraro  <pecoraro@apple.com>

        Fix AVPlayerController leak on pages with video
        https://bugs.webkit.org/show_bug.cgi?id=131878

        Reviewed by Eric Carlson.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVPlayerController init]):
        Assigning to the retain property will increment the count,
        so balance the alloc with an autorelease.

2014-04-19  Andreas Kling  <akling@apple.com>

        Slap ALWAYS_INLINE on Element attribute lookup things.
        <https://webkit.org/b/131892>

        Most of the "inline" helpers for setting/getting attributes were not
        actually getting inlined by the compiler, so let's make that happen.

        Reviewed by Geoffrey Garen.

        * dom/Element.cpp:
        (WebCore::Element::synchronizeAttribute):
        * dom/ElementData.h:
        (WebCore::ElementData::findAttributeByName):
        (WebCore::ElementData::findAttributeIndexByName):

2014-04-19  Darin Adler  <darin@apple.com>

        Telephone number detection should respect its setting consistently
        https://bugs.webkit.org/show_bug.cgi?id=131893
        rdar://problem/16597639

        Reviewed by Tim Horton.

        * editing/Editor.cpp:
        (WebCore::Editor::respondToChangedSelection): Only start the timer
        if shouldDetectTelephoneNumbers returns true.
        (WebCore::Editor::shouldDetectTelephoneNumbers): Added. Calls both
        isTelephoneNumberParsingEnabled and TelephoneNumberDetector::isSupported.
        (WebCore::Editor::scanSelectionForTelephoneNumbers): Use
        shouldDetectTelephoneNumbers.
        (WebCore::Editor::clearDataDetectedTelephoneNumbers): Use document()
        instead of m_frame.document().

        * editing/Editor.h: Added declaration of shouldDetectTelephoneNumbers.

2014-04-19  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Harden the layout in case there are no regions
        https://bugs.webkit.org/show_bug.cgi?id=131517

        Reviewed by Mihnea Ovidenie.

        The patch fixes the cases when the content of a flow thread is not
        properly invalidated when all the regions of its chain are removed.

        Test: fast/regions/simplified-layout-no-regions.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::ensureOverflowForBox):

2014-04-19  Zalan Bujtas  <zalan@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=131594
        Subpixel rendering: WK1: Wrong repaint rect is calculated when layer has non-compositing transform.

        Reviewed by Simon Fraser.

        We need to snap the repaint rect for transformed object the same way when we paint them.

        Test: fast/repaint/hidpi-wrong-repaint-rect-when-parent-has-noncompositing-transform.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeRectForRepaint):

2014-04-18  Simon Fraser  <simon.fraser@apple.com>

        Use 'override' in GraphicsLayerCA
        https://bugs.webkit.org/show_bug.cgi?id=131882

        Reviewed by Tim Horton.

        Add 'override' to all overridden functions. Found a few that need
        not have been virtual. Removed "allowTiledLayer" stuff that was
        never called.

        * WebCore.exp.in:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::GraphicsLayerCA):
        (WebCore::GraphicsLayerCA::requiresTiledLayer):
        (WebCore::GraphicsLayerCA::setAllowTiledLayer): Deleted.
        * platform/graphics/ca/GraphicsLayerCA.h:
        (WebCore::GraphicsLayerCA::platformCALayer):
        (WebCore::GraphicsLayerCA::hasContentsLayer): Deleted.
        (WebCore::GraphicsLayerCA::allowTiledLayer): Deleted.
        (WebCore::GraphicsLayerCA::isGraphicsLayerCA): Deleted.
        (WebCore::GraphicsLayerCA::platformCALayerLayoutSublayersOfLayer): Deleted.
        (WebCore::GraphicsLayerCA::platformCALayerRespondsToLayoutChanges): Deleted.
        (WebCore::GraphicsLayerCA::platformCALayerContentsOrientation): Deleted.
        (WebCore::GraphicsLayerCA::platformCALayerShowDebugBorders): Deleted.
        (WebCore::GraphicsLayerCA::platformCALayerIncrementRepaintCount): Deleted.
        (WebCore::GraphicsLayerCA::platformCALayerContentsOpaque): Deleted.
        (WebCore::GraphicsLayerCA::platformCALayerDrawsContent): Deleted.
        (WebCore::GraphicsLayerCA::platformCALayerLayerDidDisplay): Deleted.

2014-04-18  Timothy Hatcher  <timothy@apple.com>

        Web Inspector: Move InspectorProfilerAgent to JavaScriptCore
        https://bugs.webkit.org/show_bug.cgi?id=131673

        Passes existing profiler and inspector tests.

        Reviewed by Joseph Pecoraro.

        * CMakeLists.txt:
        * DerivedSources.make:
        * ForwardingHeaders/inspector/agents/InspectorProfilerAgent.h: Added.
        * WebCore.exp.in:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/ScriptProfile.cpp: Removed.
        * bindings/js/ScriptProfile.h:
        * bindings/js/ScriptProfiler.cpp: Removed.
        * bindings/js/ScriptProfiler.h: Removed.
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorConsoleInstrumentation.h:
        (WebCore::InspectorInstrumentation::profilerEnabled):
        (WebCore::InspectorInstrumentation::startProfiling):
        (WebCore::InspectorInstrumentation::stopProfiling):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorController.h:
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        (WebCore::InspectorInstrumentation::startProfilingImpl):
        (WebCore::InspectorInstrumentation::stopProfilingImpl):
        (WebCore::InspectorInstrumentation::consoleTimeStampImpl): Deleted.
        * inspector/InspectorInstrumentation.h:
        * inspector/InspectorProfilerAgent.cpp: Removed.
        * inspector/InspectorProfilerAgent.h: Removed.
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::startProfiling):
        (WebCore::stopProfiling):
        (WebCore::InspectorTimelineAgent::willCallFunction):
        (WebCore::InspectorTimelineAgent::didCallFunction):
        (WebCore::InspectorTimelineAgent::willEvaluateScript):
        (WebCore::InspectorTimelineAgent::didEvaluateScript):
        (WebCore::InspectorTimelineAgent::didDispatchXHRLoadEvent): Deleted.
        * inspector/InstrumentingAgents.h:
        (WebCore::InstrumentingAgents::inspectorProfilerAgent):
        (WebCore::InstrumentingAgents::setInspectorProfilerAgent):
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::sourceMapURLForScript): Deleted.
        * inspector/PageDebuggerAgent.h:
        * inspector/PageProfilerAgent.cpp: Added.
        (WebCore::PageProfilerAgent::PageProfilerAgent):
        (WebCore::PageProfilerAgent::profilingGlobalExecState):
        * inspector/PageProfilerAgent.h: Added.
        (WebCore::PageProfilerAgent::~PageProfilerAgent):
        * inspector/ScriptProfile.idl:
        * inspector/TimelineRecordFactory.cpp:
        (WebCore::TimelineRecordFactory::appendProfile):
        * inspector/TimelineRecordFactory.h:
        * inspector/WebConsoleAgent.cpp:
        * inspector/WebProfilerAgent.cpp: Added.
        (WebCore::WebProfilerAgent::WebProfilerAgent):
        (WebCore::WebProfilerAgent::enable):
        (WebCore::WebProfilerAgent::disable):
        * inspector/WebProfilerAgent.h: Added.
        (WebCore::WebProfilerAgent::~WebProfilerAgent):
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        * inspector/WorkerProfilerAgent.cpp: Added.
        (WebCore::WorkerProfilerAgent::WorkerProfilerAgent):
        (WebCore::WorkerProfilerAgent::profilingGlobalExecState):
        * inspector/WorkerProfilerAgent.h: Added.
        (WebCore::WorkerProfilerAgent::~WorkerProfilerAgent):
        * loader/appcache/ApplicationCacheGroup.cpp:
        * page/PageConsole.cpp:
        (WebCore::PageConsole::profile):
        (WebCore::PageConsole::profileEnd):
        (WebCore::PageConsole::time): Deleted.
        (WebCore::PageConsole::timeEnd): Deleted.
        (WebCore::PageConsole::timeStamp): Deleted.
        * page/PageConsole.h:
        * testing/Internals.cpp:
        * testing/Internals.h:
        * xml/XMLHttpRequest.cpp:

2014-04-18  Simon Fraser  <simon.fraser@apple.com>

        Contents of directly composited image layers are sometimes missing
        https://bugs.webkit.org/show_bug.cgi?id=131880

        Reviewed by Tim Horton.
        
        RenderLayerBacking::updateGraphicsLayerGeometry() tested whether a
        GraphicsLayer had a contents layer to determine whether to call code
        that updates the contents rect. However, on Mac, we don't make a contents
        layer until later at layer flush time. That would result in an empty
        contentsRect being set.
        
        Fix by renaming GraphicsLayer::hasContentsLayer() to usesContentsLayer(),
        and on Mac consulting the m_contentsLayerPurpose flag, which is set
        at the appropriate time.

        Test: compositing/images/update-content-rect.html

        * platform/ScrollView.cpp:
        (WebCore::positionScrollbarLayer):
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::getDebugBorderInfo):
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::usesContentsLayer):
        (WebCore::GraphicsLayer::hasContentsLayer): Deleted.
        * platform/graphics/ca/GraphicsLayerCA.h:
        (WebCore::GraphicsLayerCA::hasContentsLayer): Deleted.
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        (WebCore::GraphicsLayerTextureMapper::usesContentsLayer):
        (WebCore::GraphicsLayerTextureMapper::hasContentsLayer): Deleted.
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::positionOverflowControlsLayers):
        (WebCore::RenderLayerBacking::compositingLayerType):

2014-04-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167527.
        https://bugs.webkit.org/show_bug.cgi?id=131883

        Broke 32-bit build (Requested by ap on #webkit).

        Reverted changeset:

        "[Mac] implement WebKitDataCue"
        https://bugs.webkit.org/show_bug.cgi?id=131799
        http://trac.webkit.org/changeset/167527

2014-04-18  Eric Carlson  <eric.carlson@apple.com>

        [Mac] implement WebKitDataCue
        https://bugs.webkit.org/show_bug.cgi?id=131799

        Reviewed by Dean Jackson.

        Tests: http/tests/media/track-in-band-hls-metadata.html
               media/track/track-datacue-value.html

        * Configurations/FeatureDefines.xcconfig: Define ENABLE_DATACUE_VALUE.
        * DerivedSources.make: Add ENABLE_DATACUE_VALUE to HTML_FLAGS when appropriate.

        * CMakeLists.txt: Add JSDataCueCustom.cpp.
        * bindings/js/JSBindingsAllInOne.cpp:
        * WebCore.xcodeproj/project.pbxproj: Add new files.

        * bindings/js/JSDataCueCustom.cpp: Added.
        (WebCore::JSDataCue::value): 
        (WebCore::JSDataCue::setValue):
        (WebCore::JSDataCueConstructor::constructJSDataCue): Custom constructor.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::updateActiveTextTrackCues): Drive-by fixes: don't schedule timeupdate
            events when paused, don't call sort on an Vector that can't be sorted.

        * html/track/DataCue.cpp:
        (WebCore::DataCue::DataCue): Initialize m_type.
        (WebCore::DataCue::~DataCue): Unprotect the JSValue if necessary.
        (WebCore::DataCue::data): Ask the platform value for data if non-null.
        (WebCore::DataCue::setData): Clear m_platformValue and m_value.
        (WebCore::DataCue::isEqual): New.
        (WebCore::DataCue::value): Return a JSValue from the platform value, or the value passed
            to the constructor/set by script.
        (WebCore::DataCue::setValue): Set m_value.
        * html/track/DataCue.h:
        * html/track/DataCue.idl:

        * html/track/InbandDataTextTrack.cpp:
        (WebCore::InbandDataTextTrack::addDataCue): Don't add the same cue more than once.
        (WebCore::InbandDataTextTrack::updateDataCue): Update a cue's duration.
        (WebCore::InbandDataTextTrack::removeDataCue): Remove an incomplete cue.
        (WebCore::InbandDataTextTrack::removeCue): Remove a cue from the incomplete cue map if necessary.
        * html/track/InbandDataTextTrack.h:

        * html/track/InbandGenericTextTrack.cpp:
        (WebCore::InbandGenericTextTrack::addGenericCue): CueMatchRules is now in TextTrackCue instead
            of VTTCue.
        * html/track/InbandTextTrack.h:

        * html/track/InbandWebVTTTextTrack.cpp:
        (WebCore::InbandWebVTTTextTrack::newCuesParsed): Ditto.

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::hasCue): Ditto.
        * html/track/TextTrack.h:

        * html/track/TextTrackCue.cpp:
        (WebCore::TextTrackCue::isEqual): New, test base class equality.
        * html/track/TextTrackCue.h:

        * html/track/TextTrackCueGeneric.cpp:
        (WebCore::TextTrackCueGeneric::isEqual): Call TextTrackCue::isEqual first.
        * html/track/TextTrackCueGeneric.h:

        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::isEqual): Call TextTrackCue::isEqual first.
        * html/track/VTTCue.h:

        * platform/SerializedPlatformRepresentation.h: Added.
        (WebCore::SerializedPlatformRepresentation::~SerializedPlatformRepresentation):
        (WebCore::SerializedPlatformRepresentation::SerializedPlatformRepresentation):

        * platform/graphics/InbandTextTrackPrivateClient.h: Add methods for DataCue with SerializedPlatformRepresentation.

        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.cpp: Added.
        (WebCore::InbandMetadataTextTrackPrivateAVF::create):
        (WebCore::InbandMetadataTextTrackPrivateAVF::InbandMetadataTextTrackPrivateAVF):
        (WebCore::InbandMetadataTextTrackPrivateAVF::~InbandMetadataTextTrackPrivateAVF):
        (WebCore::InbandMetadataTextTrackPrivateAVF::addDataCue):
        (WebCore::InbandMetadataTextTrackPrivateAVF::updatePendingCueEndTimes):
        (WebCore::InbandMetadataTextTrackPrivateAVF::flushPartialCues):
        * platform/graphics/avfoundation/InbandMetadataTextTrackPrivateAVF.h: Added.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::seekWithTolerance): currentTrack -> currentTextTrack.
        (WebCore::MediaPlayerPrivateAVFoundation::seekCompleted): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundation::configureInbandTracks): Ditto.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTextTrack):
        (WebCore::MediaPlayerPrivateAVFoundation::setCurrentTrack): Deleted.

        Renamed currentTrack and setCurrentTrack to currentTextTrack and setCurrentTextTrack.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::AVFWrapper::currentTextTrack):
        (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTextTrack):
        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTextTrack):
        (WebCore::AVFWrapper::setCurrentTextTrack):
        (WebCore::AVFWrapper::AVFWrapper):
        (WebCore::AVFWrapper::processCue):
        (WebCore::AVFWrapper::currentTrack): Deleted.
        (WebCore::MediaPlayerPrivateAVFoundationCF::setCurrentTrack): Deleted.
        (WebCore::MediaPlayerPrivateAVFoundationCF::currentTrack): Deleted.
        (WebCore::AVFWrapper::setCurrentTrack): Deleted.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::seekToTime): currentTrack -> currentTextTrack
        (WebCore::MediaPlayerPrivateAVFoundationObjC::tracksChanged): currentTrack -> currentTextTrack.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMetadataTrack): New.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processCue): m_currentTrack -> m_currentTextTrack.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::flushCues): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTextTrack): Renamed from setCurrentTextTrack.
        (WebCore::metadataType): Map an AVFoundation metadata key space to a metadata cue type.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive): Process new metadata.
        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Deleted.

        Create a JSValue representation from an AVMetadataItem.
        * platform/mac/SerializedPlatformRepresentationMac.h: Added.
        (WebCore::SerializedPlatformRepresentationMac::platformType):
        (WebCore::SerializedPlatformRepresentationMac::nativeValue):
        * platform/mac/SerializedPlatformRepresentationMac.mm: Added.
        (WebCore::SerializedPlatformRepresentationMac::SerializedPlatformRepresentationMac):
        (WebCore::SerializedPlatformRepresentationMac::~SerializedPlatformRepresentationMac):
        (WebCore::SerializedPlatformRepresentationMac::create):
        (WebCore::SerializedPlatformRepresentationMac::data):
        (WebCore::SerializedPlatformRepresentationMac::deserialize):
        (WebCore::SerializedPlatformRepresentationMac::isEqual):
        (WebCore::toSerializedPlatformRepresentationMac):
        (WebCore::jsValueWithValueInContext):
        (WebCore::jsValueWithDataInContext):
        (WebCore::jsValueWithArrayInContext):
        (WebCore::jsValueWithDictionaryInContext):
        (WebCore::jsValueWithAVMetadataItemInContext):

2014-04-18  Jon Honeycutt  <jhoneycutt@apple.com>

        Harden RenderInline::inlineElementContinuation()

        <https://bugs.webkit.org/show_bug.cgi?id=131858>

        Reviewed by Sam Weinig.

        No new tests, as there are no known cases of this happening.

        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::inlineElementContinuation):
        Return nullptr if the continuation is neither a RenderInline nor a
        RenderBlock.

2014-04-18  Stephanie Lewis  <slewis@apple.com>

        We shouldn’t create page throttlers for other pages than WebKit2 pages.
        Part of <rdar://problem/16473045> Visibility state counters are often incorrect
        https://bugs.webkit.org/show_bug.cgi?id=131696

        Reviewed by Gavin Barraclough.

        No new test since not web exposed.

        Page throttlers were being created for SVG images and other page instances that
        were not accurately tracking the states that enable and disable page throttling.
        Make the throttler an unique ptr and only initialize it for WebKit2.

        This also fixes an inefficiency where we would throttle a new page on creation because 
        we assumed it was visible even if that was not the case.

        * WebCore.exp.in:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute): Check page throttler exists.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::started): ditto
        * page/Page.cpp:
        (WebCore::Page::Page): Don’t automatically create page throttler.
        (WebCore::Page::createPageThrottler): Create page throttler.
        (WebCore::Page::setViewState): Check page throttler exists.
        * page/Page.h:
        (WebCore::Page::pageThrottler): Make the page throttler a unique ptr.
        * page/PageThrottler.h:
        * page/Settings.cpp: 
        (WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled): Check page throttler exists.

2014-04-18  Stephanie Lewis  <slewis@apple.com>

        Move DOM throttling out of the page throttler
        <rdar://problem/16473004>
        https://bugs.webkit.org/show_bug.cgi?id=131697

        Reviewed by Gavin Barraclough.

        No new tests since it's not web exposed.

        DOM timer throttling is currently part of the page throttler which uses per process 
        state and per page state to determine when to throttle.  This led us to being overly 
        conservative when turning DOM throttling off.  It should only respond to view state changes.

        Additionally since creating extra page throttlers SVG images caused bugs 
        in tracking state we'll reserve the page throttler for WebKit2 views.  To avoid regressing 
        WebKit1 we should move DOM timer throttling back to the page.

        * page/Page.cpp:
        (WebCore::Page::Page): set DOM timer throttling.
        (WebCore::Page::setIsVisuallyIdleInternal): ditto.
        (WebCore::Page::hiddenPageDOMTimerThrottlingStateChanged): ditto.
        (WebCore::Page::setIsVisible): Update view state masks for WebKit1 to include IsVisibleOrOccluded and IsVisuallyIdle
        * page/Page.h:
        * page/PageThrottler.cpp:
        (WebCore::PageThrottler::PageThrottler): remove DOM timer throttling.
        (WebCore::PageThrottler::started): ditto.
        (WebCore::PageThrottler::stopped): ditto.
        (WebCore::PageThrottler::hiddenPageDOMTimerThrottlingStateChanged): Deleted.
        * page/PageThrottler.h:
        * page/Settings.cpp:
        (WebCore::Settings::setHiddenPageDOMTimerThrottlingEnabled):

2014-04-18  Dean Jackson  <dino@apple.com>

        [WebGL] Limit maximum texture sizes on older Intel hardware
        https://bugs.webkit.org/show_bug.cgi?id=131867

        Reviewed by Geoffrey Garen.

        Both Chrome and Firefox limit the MAX_TEXTURE_SIZE on
        older Intel hardware to be at most 4096. This does the
        same for WebKit.

        * platform/graphics/Extensions3D.h: Add requiresRestrictedMaximumTextureSize() accessor.
        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
        (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon): Record the value of GL_RENDERER
        and test for "Intel HD Graphics 3000", which is the problematic hardware.
        * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
        (WebCore::Extensions3DOpenGLCommon::requiresRestrictedMaximumTextureSize): Getter.
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        (WebCore::GraphicsContext3D::getIntegerv): If you're asking for MAX_TEXTURE_SIZE or
        MAX_CUBE_MAP_TEXTURE_SIZE, and you're on problematic hardware, return a clamped value
        (4096 and 1024 respectively).

2014-04-18  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] Add parsing support for gradients
        https://bugs.webkit.org/show_bug.cgi?id=131444

        Reviewed by Bem Jones-Bey.

        Added support for shape-outside gradient values.

        Test: fast/shapes/shape-outside-floats/shape-outside-linear-gradient.html

        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyShape::applyValue): Accept generated images as shape-outside values.
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::checkShapeImageOrigin): Generated images get a pass, others do not.
        (WebCore::getShapeImageAndRect): Use StyleImage::image() to get a generated image.
        (WebCore::ShapeOutsideInfo::isEnabledFor):
        * rendering/style/ShapeValue.h:
        (WebCore::ShapeValue::isImageValid): Generated images are always considered valid.

2014-04-18  Brady Eidson  <beidson@apple.com>

        REGRESSION (r155700): Pasting an image into content-editable regions is broken.
        <rdar://problem/16654156> and https://bugs.webkit.org/show_bug.cgi?id=131844

        Reviewed by Enrica Casucci.

        * editing/mac/EditorMac.mm:
        (WebCore::Editor::createFragmentForImageResourceAndAddResource): Add the ArchiveResource before
          creating the element that uses it.

2014-04-18  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Make window.scroll() and window.scrollBy() work
        https://bugs.webkit.org/show_bug.cgi?id=131848
        <rdar://problem/16638319>

        Reviewed by Beth Dakin.

        The scrolling-related functions in DOMWindow were #ifdeffed for iOS
        to use the hacky WK1-specific "actual scroll" functions, which do nothing
        in WK2.
        
        Fix by adding a scroll position wrapper (contentsScrollPosition) which does
        the right thing on WK1 and WK2, and change almost all the places that used "actualScrollPosition"
        to us it (with the exception of contentsScrollOffset() in MouseRelatedEvent.cpp, which has
        confusing scaling behavior).

        * dom/MouseRelatedEvent.cpp:
        (WebCore::MouseRelatedEvent::MouseRelatedEvent):
        * dom/TreeScope.cpp:
        (WebCore::nodeFromPoint): Remove #ifdefs. 
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::scrollLeft):
        (WebCore::HTMLBodyElement::scrollTop):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::scrollX):
        (WebCore::DOMWindow::scrollY):
        (WebCore::DOMWindow::scrollBy):
        (WebCore::DOMWindow::scrollTo):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::contentsScrollPosition):
        (WebCore::ScrollView::setContentsScrollPosition):
        * platform/ScrollView.h:

2014-04-18  Simon Fraser  <simon.fraser@apple.com>

        Worse animation performance on pages with 3D transforms
        https://bugs.webkit.org/show_bug.cgi?id=131838
        <rdar://problem/16428630&15705876>

        Reviewed by Dean Jackson.
        
        r155977 added logic to adjust the contentsScale of compositing layers
        based on a root-relative transform. However, this resulted in
        the contentsScale continually changing on layers whose transforms
        are changed dynamically, which caused lots of expensive painting.
        
        Fix by bucketing the part of the scale computed from the root-relative transform
        into buckets of 0.25 via rounding.

        Test: compositing/contents-scale/rounded-contents-scale.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::clampedContentsScaleForScale):
        (WebCore::GraphicsLayerCA::updateContentsOpaque):
        (WebCore::GraphicsLayerCA::updateContentsScale):
        (WebCore::GraphicsLayerCA::updateContentsVisibility): Deleted.
        (WebCore::GraphicsLayerCA::animatedLayerClones): Deleted.

2014-04-18  Simon Fraser  <simon.fraser@apple.com>

        Remove some includes from image-related headers, and Document.h
        https://bugs.webkit.org/show_bug.cgi?id=131797

        Reviewed by Martin Robinson.

        Remove some #includes from Document.h, DragImage.h, GradientImage.h,
        Image.h, and ImageBuffer.h and deal with the fallout.

        * dom/ContainerNode.h:
        * dom/Document.cpp:
        (WebCore::Document::setInputCursor):
        * dom/Document.h:
        (WebCore::Document::inputCursor):
        * dom/MutationObserverRegistration.cpp:
        * html/canvas/WebGLRenderingContext.cpp:
        * page/FrameSnapshotting.cpp:
        * page/Page.cpp:
        * platform/DragImage.h:
        * platform/graphics/BitmapImage.cpp:
        * platform/graphics/GradientImage.cpp:
        (WebCore::GradientImage::GradientImage):
        (WebCore::GradientImage::~GradientImage):
        * platform/graphics/GradientImage.h:
        * platform/graphics/Image.h:
        * platform/graphics/ImageBuffer.cpp:
        * platform/graphics/ImageBuffer.h:
        (WebCore::ImageBuffer::create):
        (WebCore::ImageBuffer::internalSize):
        (WebCore::ImageBuffer::logicalSize):
        (WebCore::ImageBuffer::baseTransform):
        (WebCore::ImageBuffer::spaceSize):
        (WebCore::ImageBuffer::setSpaceSize):
        * rendering/RenderThemeMac.mm:
        * rendering/shapes/Shape.cpp:
        * rendering/svg/RenderSVGContainer.cpp:
        * svg/SVGURIReference.h:

2014-04-18  Gabor Rapcsanyi  <rgabor@webkit.org>

        Unreviewed. ARM64 buildfix after r167473.

        * platform/audio/DenormalDisabler.h: Put back the MathExtras.h include.

2014-04-18  Radu Stavila  <stavila@adobe.com>

        [CSSRegions] Incorrect background paint on positioned element hover
        https://bugs.webkit.org/show_bug.cgi?id=131617

        Reviewed by Andrei Bucur.

        When computing the repaint rect for absolute elements flowed into regions, the Y location of the
        region within the flow thread must no longer be added to the repaint rect's location because absolute
        positioned elements get pushed down through the regions by their absolute top. So adding the region's
        position in the flow thread and then adding the element's absolute top would cause us to add
        something twice.

        Tests: fast/regions/repaint/repaint-absolute-pushed-to-next-region.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeRectForRepaint):

2014-04-18  Philippe Normand  <pnormand@igalia.com>

        Remove NETWORK_INFO support
        https://bugs.webkit.org/show_bug.cgi?id=131841

        Reviewed by Gyuyoung Kim.

        * CMakeLists.txt:
        * Modules/networkinfo/NavigatorNetworkInfoConnection.cpp: Removed.
        * Modules/networkinfo/NavigatorNetworkInfoConnection.h: Removed.
        * Modules/networkinfo/NavigatorNetworkInfoConnection.idl: Removed.
        * Modules/networkinfo/NetworkInfo.cpp: Removed.
        * Modules/networkinfo/NetworkInfo.h: Removed.
        * Modules/networkinfo/NetworkInfoClient.h: Removed.
        * Modules/networkinfo/NetworkInfoConnection.cpp: Removed.
        * Modules/networkinfo/NetworkInfoConnection.h: Removed.
        * Modules/networkinfo/NetworkInfoConnection.idl: Removed.
        * Modules/networkinfo/NetworkInfoController.cpp: Removed.
        * Modules/networkinfo/NetworkInfoController.h: Removed.
        * PlatformEfl.cmake:
        * dom/EventTargetFactory.in:
        * platform/efl/NetworkInfoProviderEfl.cpp: Removed.
        * platform/efl/NetworkInfoProviderEfl.h: Removed.
        * testing/Internals.cpp:
        (WebCore::Internals::setNetworkInformation): Deleted.
        * testing/Internals.h:
        * testing/Internals.idl:

2014-04-17  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167478.
        https://bugs.webkit.org/show_bug.cgi?id=131840

        Broke multicol tests (Requested by ap on #webkit).

        Reverted changeset:

        "[New Multicolumn] Pagination mode messed up with non-inline
        axis and reversed direction."
        https://bugs.webkit.org/show_bug.cgi?id=131811
        http://trac.webkit.org/changeset/167478

2014-04-17  Daniel Bates  <dabates@apple.com>

        [iOS] Hook up screen.{availHeight, availWidth, height, width}
        https://bugs.webkit.org/show_bug.cgi?id=131821
        <rdar://problem/16413795>

        Reviewed by Benjamin Poulain and Tim Horton.

        Implement support for screen.{availHeight, availWidth, height, width} in WebKit2 for iOS.

        Additionally substitute "screenSize" for "viewporScreenSize" to make the code more understandable.

        * WebCore.exp.in: Export symbol for WebCore System Interface function
        _wkGetAvailableScreenSize.
        * dom/Document.cpp:
        (WebCore::Document::processViewport): Modified to call Chrome::screenSize(); formerly it
        called ChromeClient::viewportScreenSize().
        * page/Chrome.cpp:
        (WebCore::Chrome::screenSize): Added; turns around and calls ChromeClient::screenSize().
        (WebCore::Chrome::availableScreenSize): Added; turns around and calls ChromeClient::availableScreenSize().
        * page/Chrome.h:
        * page/ChromeClient.h:
        (WebCore::ChromeClient::screenSize): Renamed; formerly named viewportScreenSize.
        (WebCore::ChromeClient::availableScreenSize): Added; default implementation, which
        returns the size of Chrome::windowRect().
        * page/ViewportConfiguration.cpp:
        (WebCore::ViewportConfiguration::textDocumentParameters):
        * platform/HostWindow.h: Added declarations for availableScreenSize() and screenSize()
        so that a caller (e.g. WebCore::screenRect()) can query for such screen information using
        only the HostWindow interface. That is, a caller doesn't need to know about ChromeClient.
        * platform/ios/PlatformScreenIOS.mm:
        (WebCore::screenRect): Modified to query HostWindow::screenSize() when computing the
        screen rectangle in WebKit2 for iOS.
        (WebCore::screenAvailableRect): Modified to query HostWindow::availableScreenSize()
        when computing the available screen rectangle in WebKit2 for iOS.
        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/mac/WebCoreSystemInterface.h:

2014-04-17  Darin Adler  <darin@apple.com>

        origin spoofing possible (HTTP Origin, postMessage event.origin) due to inappropriate URL escape sequence decoding
        https://bugs.webkit.org/show_bug.cgi?id=131837
        rdar://problem/15211936

        Reviewed by Anders Carlsson and Dave Hyatt.

        Tests: fast/dom/DOMURL/parsing.html
               fast/dom/HTMLAnchorElement/anchor-element-href-parsing.html

        * platform/URL.cpp:
        (WebCore::URL::host): Removed unnecessary call to decodeURLEscapeSequences, which caused
        problems and was not needed.

2014-04-17  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Pagination mode messed up with non-inline axis and reversed direction.
        https://bugs.webkit.org/show_bug.cgi?id=131811

        Reviewed by Dean Jackson.

        Added fast/multicol/newmulticol/compare-with-old-impl/BottomToTop-tb.html
        
        With block axis pagination mode, it is possible to set a column height that is not the same
        as the available fill height for a block. The new multi-column code had the assumption that
        the column height was the same as the amount of fill room you had available. This is not
        the case.
        
        To correct the issue, I added a member variable to RenderMultiColumnSet that stores the
        available column height as a separate variable from the computed column height. This allows
        the pagination API to specify a different column height that is not the same as the view's
        content height.

        Even though it isn't involved in the solution, I also patched pageOrViewLogicalHeight on
        RenderView to work with the new column code as well.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::RenderMultiColumnSet):
        (WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight):
        (WebCore::RenderMultiColumnSet::computeLogicalHeight):
        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::pageOrViewLogicalHeight):

2014-04-17  Anders Carlsson  <andersca@apple.com>

        Build fix.

        * svg/animation/SMILTime.h:

2014-04-17  Bem Jones-Bey  <bjonesbe@adobe.com>

        Unreviewed, rolling out r167384.

        Sounds like this isn't the right fix, and causes generation to
        run far too often.

        Reverted changeset:

        "Fix CodeGenerator.pm to only write files if the generated
        content has changed"
        https://bugs.webkit.org/show_bug.cgi?id=131756
        http://trac.webkit.org/changeset/167384

2014-04-17  Ryuan Choi  <ryuan.choi@samsung.com>

        Remove unnecessary MathExtras.h includes
        https://bugs.webkit.org/show_bug.cgi?id=131789

        Reviewed by Anders Carlsson.

        * platform/FileSystem.h:
        * platform/Scrollbar.h:
        * platform/animation/AnimationUtilities.h:
        * platform/audio/DenormalDisabler.h:
        * platform/graphics/Font.h:
        * platform/graphics/IntPoint.h: Included cmath instad of MathExtras.h.
        * platform/graphics/LayoutPoint.h:
        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
        * rendering/svg/SVGMarkerData.h:
        * svg/animation/SMILTime.h:

2014-04-16  Huang Dongsung  <luxtella@company100.net>

        Make RenderLayerBacking get the timingFunction of the correct animation.
        https://bugs.webkit.org/show_bug.cgi?id=100632

        Reviewed by Simon Fraser.

        When an element has multiple animations that have different timingFunctions,
        the progress of each animation should be calculated using its respective
        timingFunction. But at this point, the timingFunction of the first animation is
        only used in RenderLayerBacking::startAnimation(), regardless of how many
        animations the element has.

        getAnimationFromStyleByName() was introduced in r89462 so that the
        timingFunction of the correct animation searched by its name would be
        used. This patch moves the function to KeyframeValue::timingFunction()
        so that RenderLayerBacking reuses this method.

        Test: animations/keyframe-multiple-timing-functions-transform.html

        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::fetchIntervalEndpointsForProperty):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::startAnimation):
        * rendering/style/KeyframeList.cpp:
        (WebCore::KeyframeValue::timingFunction):
        (WebCore):
        * rendering/style/KeyframeList.h:
        (WebCore):
        (KeyframeValue):

2014-04-17  Andreas Kling  <akling@apple.com>

        Rollout: Add a way to cache never-changing IDL attributes in the wrapper.
        <https://webkit.org/b/131759>

        This behavior may be observable from the web, so we can't do it this way.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/IDLAttributes.txt:
        * bindings/scripts/test/*:
        * dom/Element.idl:
        * dom/Node.idl:

2014-04-17  Andreas Kling  <akling@apple.com>

        Cheesy Mountain Lion build fix.

        * platform/MemoryPressureHandler.h:
        (WebCore::MemoryPressureHandler::ReliefLogger::logString):

2014-04-17  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Column rules don't respect the specified stacking order.
        https://bugs.webkit.org/show_bug.cgi?id=131804

        Reviewed by Beth Dakin.

        Added fast/multicol/newmulticol/compare_with_old_impl/column-rules-stacking.html

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::paintBoxDecorations):
        * rendering/RenderBlockFlow.h:
        Override paintBoxDecorations for block flows so that we can iterate over our column sets
        and paint their rules just after painting our background and border. We can't wait until
        the child column sets paint their backgrounds, since that is specified as being above negative
        z-index children. We have to pretend that the column sets don't exist as
        far as column rule painting is concerned.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::paintObject): Deleted.
        * rendering/RenderMultiColumnSet.h:
        Turn paintObject in RenderMultiColumnSet into an override that doesn't paint anything.

2014-04-17  Beth Dakin  <bdakin@apple.com>

        Hit-testing is incorrect for plugins inside iframes when there is a 
        topContentInset
        https://bugs.webkit.org/show_bug.cgi?id=131826
        -and corresponding-
        <rdar://problem/16649996>

        Reviewed by Tim Horton.

        I missed one coordinate-conversion spot when getting hit-testing to work. Like 
        headerHeight() which also manipulates the location of the root layer, 
        topContentInset() has to be factored into all of these conversions.
        * page/FrameView.cpp:
        (WebCore::FrameView::convertFromRenderer):

2014-04-17  Andreas Kling  <akling@apple.com>

        Stub out MemoryPressureHandler::ReliefLogger on older OS X'es.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::ReliefLogger::platformLog):
        (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):

2014-04-17  Dirk Schulze  <krit@webkit.org>

        Remove CANVAS_PATH where possible
        https://bugs.webkit.org/show_bug.cgi?id=131788

        Reviewed by Dean Jackson.

        Since Firefox and Chrome ship the same interoperable subset of Path2D soon, 
        it is time to remove CANVAS_PATH where possible.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::clip):
        (WebCore::CanvasRenderingContext2D::isPointInStroke):
        * html/canvas/CanvasRenderingContext2D.h:
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/DOMPath.h:
        * html/canvas/DOMPath.idl:

2014-04-17  Brendan Long  <b.long@cablelabs.com>

        [GStreamer] Store TrackPrivateBaseGStreamer's label and language as AtomicStrings
        https://bugs.webkit.org/show_bug.cgi?id=130404

        Reviewed by Philippe Normand.

        No new tests, this just makes things more efficient.

        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
        (WebCore::TrackPrivateBaseGStreamer::getLanguageCode):
        (WebCore::TrackPrivateBaseGStreamer::getTag):
        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:

2014-04-17  Andreas Kling  <akling@apple.com>

        Fix Cocoa build.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):

2014-04-17  Rik Cabanier  <cabanier@adobe.com>

        [CSS Blending] Remove the -webkit- prefix for mix-blend-mode and isolation CSS properties
        https://bugs.webkit.org/show_bug.cgi?id=131355

        Reviewed by Dean Jackson.

        Removed webkit prefix from mix-blend-mode and isolation. These properties
        never shipped and their spec is now in CR.

        Covered by existing tests.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::isKeywordPropertyID):
        (WebCore::CSSParser::parseValue):
        * css/CSSPropertyNames.in:
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):

2014-04-17  David Kilzer  <ddkilzer@apple.com>

        Tidy up isIsolatedInline() and highestContainingIsolateWithinRoot()
        <http://webkit.org/b/131117>

        Reviewed by Daniel Bates.

        Based on review feedback for r166650.

        * rendering/InlineIterator.h:
        (WebCore::isIsolatedInline):
        - Switch argument to a reference since it is never called with a
          nullptr.
        (WebCore::highestContainingIsolateWithinRoot):
        - Switch first argument to a reference since it's never a
          nullptr.
        - Use nullptr for pointer initialization.
        - Switch while() loop to for() loop. Pass reference to
          isIsolatedInline().
        (WebCore::numberOfIsolateAncestors):
        - Switch while() loop to for() loop. Pass reference to
          isIsolatedInline().
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::constructBidiRunsForSegment):
        - Rename startObj to startObject.
        - No longer need to pass the address of startObject here.

2014-04-17  Andreas Kling  <akling@apple.com>

        Log number of bytes reclaimed at each step of memory pressure relief.
        <https://webkit.org/b/131751>

        Reviewed by Antti Koivisto.

        * platform/MemoryPressureHandler.h:
        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::ReliefLogger::platformLog):
        (WebCore::MemoryPressureHandler::ReliefLogger::platformMemoryUsage):
        (WebCore::MemoryPressureHandler::ReliefLogger::ReliefLogger):
        (WebCore::MemoryPressureHandler::ReliefLogger::~ReliefLogger):
        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandlerCocoa::ReliefLogger::platformMemoryUsage):
        (WebCore::MemoryPressureHandlerCocoa::ReliefLogger::platformLog):

            Add a simple RAII helper to check memory usage before and after
            a block of code, and then dump the delta to system log.

        (WebCore::MemoryPressureHandler::releaseMemory):
        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::platformReleaseMemory):

            Use ReliefLogger to annotate the various attempts to reduce
            our memory footprint. This will help us understand the efficiency
            of our current strategy.

2014-04-17  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] columnNumberForOffset is not patched for new multicolumn code yet.
        https://bugs.webkit.org/show_bug.cgi?id=131740

        Reviewed by Enrica Casucci.
        
        I took the opportunity to clean this code up while adding support for the new columns.
        columnNumberForOffset only applied for paginated RenderViews and was really about
        pages and not columns. It also only returns an actual page number if the columns are
        block progressed (e.g., right-to-left vertical Japanese books).
        
        Therefore I renamed columnNumberForOffset to pageNumberForBlockProgressionOffset and
        moved it to RenderView.
        
        I also renamed the member variable of SelectionRect to be pageNumber instead of
        columnNumber in order to make it more obvious that this isn't about columns per se
        (since the fact that we implemented RenderView's pagination mode using columns is an
        implementation detail).

        * dom/Range.cpp:
        (WebCore::coalesceSelectionRects):
        (WebCore::Range::collectSelectionRects):
        * platform/ios/SelectionRect.h:
        (WebCore::SelectionRect::pageNumber):
        (WebCore::SelectionRect::columnNumber): Deleted.
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::collectSelectionRects):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::collectSelectionRects):
        (WebCore::RenderObject::columnNumberForOffset): Deleted.
        * rendering/RenderObject.h:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::collectSelectionRects):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::pageNumberForBlockProgressionOffset):
        * rendering/RenderView.h:

2014-04-16  Brent Fulgham  <bfulgham@apple.com>

        [Win] A few final cleanups to the DataObject classes.
        https://bugs.webkit.org/show_bug.cgi?id=131784

        Reviewed by Anders Carlsson.

        * platform/win/WCDataObject.cpp:
        (WebCore::WCDataObject::clearData): Use 'last()' method.

2014-04-15  Jer Noble  <jer.noble@apple.com>

        Fullscreen media controls are unusable in pagination mode
        https://bugs.webkit.org/show_bug.cgi?id=131705

        Reviewed by Darin Adler.

        When pagination mode is enabled, the full screen media will (depending on the width of the
        pagination columns) overflow its column, and hit testing will be clipped to the column. In extreme
        cases, where the column width < 0.5 * media element width, the media controls will be entirely
        unclickable.

        Rather than making the RenderFullScreen a child of the full screen element's parent's renderer,
        make it a child of the RenderView, putting it outside of the columns entirely. Always create and
        insert the fullscreenRenderer's placeholder, using it as the remembered insertion point for the
        fullscreen element's renderer when we exit full screen.

        Drive-by fix: don't wrap the full screen element's renderer in webkitWillEnterFullScreenForElement();
        it will just be re-wrapped in createRendererIfNeeded().

        * dom/Document.cpp:
        (WebCore::Document::webkitWillEnterFullScreenForElement): Don't wrap the full screen element's renderer.
        (WebCore::Document::setFullScreenRenderer): Call setPlaceholderStyle.
        * rendering/RenderFullScreen.cpp:
        (WebCore::RenderFullScreenPlaceholder::willBeDestroyed): Call clearPlaceholder.
        (WebCore::RenderFullScreen::wrapRenderer): Make fullscreenRenderer a child of the view().
        (WebCore::RenderFullScreen::unwrapRenderer): Return the children to the parent of the placeholder().
        (WebCore::RenderFullScreen::clearPlaceholder): Renamed from setPlaceholder().
        (WebCore::RenderFullScreen::ensurePlaceholder): Added. 
        (WebCore::RenderFullScreen::setPlaceholderStyle): Renamed from createPlaceholder().
        (WebCore::RenderFullScreen::setPlaceholder): Deleted.
        (WebCore::RenderFullScreen::createPlaceholder): Deleted.
        * rendering/RenderFullScreen.h:

2014-04-16  Jer Noble  <jer.noble@apple.com>

        [MSE] Multiple initialization segments with same codecs in tracks fail validation.
        https://bugs.webkit.org/show_bug.cgi?id=131768

        Additional initialization segments added to the same SourceBuffer with the same
        codec values will fail validation. Update the validation check to add the correct
        codec information for the initial segment, and check against the correct codecs during
        the validation step.

        Additionally, after validation, if successful update the Audio, Video, and TextTracks
        for the SourceBuffer with the updated initialization segment information.

        Reviewed by Eric Carlson.

        Test: media/media-source/media-source-multiple-initialization-segments.html

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::appendBufferTimerFired): m_source may have been cleared
            as a result of the append, so check it before using.
        (WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Call streamEndedWithError
            instead of endOfStream as the latter is safe to call within an update.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment): Ditto.
            Update the track lists if validation succeeds.
        (WebCore::SourceBuffer::validateInitializationSegment): Switch the audio and video
            codec checks.

        Add the ability for Audio, Video, and InbandTextTracks to replace their private tracks:
        * html/track/AudioTrack.cpp:
        (WebCore::AudioTrack::AudioTrack): Call updateKindFromPrivate().
        (WebCore::AudioTrack::setPrivate):
        (WebCore::AudioTrack::updateKindFromPrivate): Split out from constructor.
        * html/track/AudioTrack.h:
        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::InbandTextTrack): Call updateKindFromPrivate().
        (WebCore::InbandTextTrack::setPrivate):
        (WebCore::InbandTextTrack::setMode): Split up into setModeInternal().
        (WebCore::InbandTextTrack::setModeInternal): Broke out from setMode().
        (WebCore::InbandTextTrack::updateKindFromPrivate): Split out from constructor.
        * html/track/InbandTextTrack.h:
        * html/track/TextTrack.h:
        (WebCore::TextTrack::isInband): Added, returns false.
        * html/track/VideoTrack.cpp:
        (WebCore::VideoTrack::VideoTrack): Call updateKindFromPrivate().
        (WebCore::VideoTrack::setPrivate):
        (WebCore::VideoTrack::updateKindFromPrivate):  Split out from constructor.
        * html/track/VideoTrack.h:

2014-04-17  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Column sets below spanners don't repaint properly.
        https://bugs.webkit.org/show_bug.cgi?id=131778

        Reviewed by Beth Dakin.

        Added fast/repaint/spanner-with-margins.html.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computeRectForRepaint):
        Turn off some code that was running for in-flow RenderFlowThreads that made no sense.
        I'm not convinced the code is right for other types of RenderFlowThreads either,
        but will leave that to the named flow thread experts. :)

2014-04-17  Koji Ishii  <kojishi@gmail.com>

        Catch up ruby and its tag omission rule changes in HTML5 CR Feb 2014
        https://bugs.webkit.org/show_bug.cgi?id=131175

        Reviewed by Darin Adler.

        Tests: html5lib/resources/ruby.dat
               html5lib/resources/tests19.dat

        This patch makes WebKit HTML parser to match to the tag omission rules of HTML5 CR Feb 2014:
        http://www.w3.org/TR/2014/CR-html5-20140204/syntax.html#syntax-tag-omission
        with the support for two new elements (rb, rtc) which were also defined in the spec:
        http://www.w3.org/TR/2014/CR-html5-20140204/text-level-semantics.html#the-rb-element
        http://www.w3.org/TR/2014/CR-html5-20140204/text-level-semantics.html#the-rtc-element
        to better support use cases presented by W3C I18N WG:
        http://www.w3.org/TR/ruby-use-cases/

        * html/HTMLTagNames.in: rb and rtc added as HTMLElement interfaces.
        * html/parser/HTMLConstructionSite.cpp:
        (WebCore::hasImpliedEndTag): the spec says rb and rtc have implied end tags.
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processStartTagForInBody): rb and rtc added. rt excludes rtc from its implied end tags.

2014-04-17  Darin Adler  <darin@apple.com>

        Try to fix EFL and GTK builds.

        * workers/WorkerGlobalScope.idl: Touch file to make it rebuild, assuming that
        module dependencies aren't working right with CMake. Tweaked formatting quite a
        bit while I was in here.

2014-04-17  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] REGRESSION: Column set styles don't update when zooming etc.
        https://bugs.webkit.org/show_bug.cgi?id=131777

        Reviewed by Enrica Casucci.

        Added fast/multicol/zoom-test.html

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::styleDidChange):
        Put back in the code that propagates new styles to the flow thread and column sets
        when styles change. This propagation was removed when the column span code landed.
        This patch puts it back in but qualifies the types of objects that get styles
        propagated to avoid accidentally propagating the wrong style to column spans.

2014-04-17  Darin Adler  <darin@apple.com>

        Add separate flag for IndexedDatabase in workers since the current implementation is not threadsafe
        https://bugs.webkit.org/show_bug.cgi?id=131785
        rdar://problem/16003108

        Reviewed by Brady Eidson.

        * Configurations/FeatureDefines.xcconfig: Added INDEXED_DATABASE_IN_WORKERS.

        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp: Use the new conditional
        instead of the old one.
        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h: Ditto.
        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl: Ditto.

2014-04-17  Dan Bernstein  <mitz@apple.com>

        WebCore part of <rdar://problem/16601336> [Cocoa] _userInitiated is always NO in WKNavigationAction passed to -webView:createWebViewWithConfiguration:forNavigationAction:windowFeatures:
        https://bugs.webkit.org/show_bug.cgi?id=131783

        Reviewed by Tim Horton.

        * loader/NavigationAction.cpp:
        (WebCore::NavigationAction::NavigationAction): Initialize m_processingUserGesture to
        ScriptController::processingUserGesture() at the time the NavigationAction is constructed.
        * loader/NavigationAction.h:
        Added boolean member variable m_processionUserGesture
        (WebCore::NavigationAction::processingUserGesture): Added this getter.

2014-04-17  Ion Rosca  <rosca@adobe.com>

        [CSS Blending] Isolation descendant dependent flags are not updated correctly
        https://bugs.webkit.org/show_bug.cgi?id=130892

        Reviewed by Dean Jackson.

        The isolation descendant dependent flag (m_hasUnisolatedBlendingDescendants)
        will help us to determine if a layer should isolate blending descendants or not.
        The m_hasUnisolatedBlendingDescendants flag should be set for layers that have blending descendant layers
        not isolated by descendant stacking contexts.
        An element isolatesBlending() if it has this flag set and creates stacking context.

        Tests: css3/compositing/blend-mode-isolation-flags-append-non-stacking-context-blending.html
               css3/compositing/blend-mode-isolation-flags-append-stacking-context-blending.html
               css3/compositing/blend-mode-isolation-flags-remove-non-stacking-context-blending.html
               css3/compositing/blend-mode-isolation-flags-remove-stacking-context-blending.html
               css3/compositing/blend-mode-isolation-flags-turn-off-blending-no-isolation.html
               css3/compositing/blend-mode-isolation-flags-turn-off-blending.html
               css3/compositing/blend-mode-isolation-flags-turn-off-stacking-context.html
               css3/compositing/blend-mode-isolation-flags-turn-on-blending.html
               css3/compositing/blend-mode-isolation-flags-turn-on-stacking-context.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        (WebCore::RenderLayer::updateBlendMode):
        (WebCore::RenderLayer::updateAncestorChainHasBlendingDescendants):
            When a layer has blending and it hasn't had it before, we set the isolation
        flag for all its ancestors up to the first layer creating stacking context.
        I removed the isComposited() check here. Isolation flags should be correct regardless
        of compositing state. Moreover, if this method is called from styleChanged(),
        the compositing state might not be accurate, it's going to be recalculated afterwards.  
        (WebCore::RenderLayer::dirtyAncestorChainHasBlendingDescendants):
            When a layer doesn't have blending, but it used to have it before, we mark
        the isolation flag as dirty for all its ancestors up to the first layer
        creating stacking context. The isolation flags will be recalculated by
        RenderLayer::updateDescendantDependentFlags.
        (WebCore::RenderLayer::updateDescendantDependentFlags):
            Evaluates if the layer has unisolated blending descendants by traversing
        the layer subtree.
        (WebCore::RenderLayer::addChild):
            When adding a subtree that has blending or has some unisolated descendants,
        we set the flag for all the ancestors, up to the stacking context layer.
        (WebCore::RenderLayer::removeChild):
            When removing a subtree that had blending or had some unisolated descendants,
        we dirty the flag so that it could be reevaluated.
        (WebCore::RenderLayer::calculateClipRects):
        (WebCore::RenderLayer::updateTransform):
        * rendering/RenderLayer.h:
            Rename m_hasBlendedElementInChildStackingContext => m_hasUnisolatedBlendingDescendants
        and m_hasBlendedElementInChildStackingContextStatusDirty => m_hasUnisolatedBlendingDescendantsStatusDirty,
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
            Add an assert to make sure that if m_hasUnisolatedCompositedBlendingDescendants is true,
        then m_hasUnisolatedBlendingDescendants is true as well.

2014-04-17  Tim Horton  <timothy_horton@apple.com>

        Uninline blend(Color, Color) to get AnimationUtilities out of Color.h
        https://bugs.webkit.org/show_bug.cgi?id=131781

        Reviewed by Simon Fraser.

        * platform/graphics/Color.cpp:
        (WebCore::blend):
        Un-inline.

        * platform/graphics/Color.h:
        No more AnimationUtilities.

2014-04-16  Benjamin Poulain  <bpoulain@apple.com>

        Fix the build after r167412

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars):

2014-04-16  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Fix annoying scrolling bugs
        https://bugs.webkit.org/show_bug.cgi?id=131722

        Reviewed by Simon Fraser.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars):
        Since ScrollingStateScrollingNode::setRequestedScrollPosition() was added, we see ScrollView::updateScrollbars()
        keep changing the scroll position to incorrect values.

        On iOS, the scrollbars are handled by the native UI, the code just compute incorrect scroll position. On WebKit1,
        the code does not run because there is a platformWidget().

        Just #ifdef the whole useless code.

2014-04-16  Alexandru Chiculita  <achicu@adobe.com>

        Improve performance of the RenderLayerCompositor::OverlapMap
        https://bugs.webkit.org/show_bug.cgi?id=115063

        Reviewed by Simon Fraser.

        No new tests, no new functionality or behavior.

        Do not use the OverlapMap in RenderLayerCompositor::computeCompositingRequirements if the layer already
        has a 3D transform. This way we can avoid a potential expensive lookups when we know for sure the layer
        is already supposed to be composited. 

        Also, added a bounding box of the overlap map, so that it can catch cases when the new layer is not overlapping
        any of the previous layers. This is pretty common when having composited layers laid out in a vertical/horizontal list.


        * rendering/RenderLayerCompositor.cpp:
        (OverlapMapContainer):
        (WebCore::OverlapMapContainer::add):
        (WebCore::OverlapMapContainer::overlapsLayers):
        (WebCore::OverlapMapContainer::unite):
        (WebCore):
        (WebCore::RenderLayerCompositor::OverlapMap::add):
        (WebCore::RenderLayerCompositor::OverlapMap::overlapsLayers):
        (WebCore::RenderLayerCompositor::OverlapMap::pushCompositingContainer):
        (WebCore::RenderLayerCompositor::OverlapMap::popCompositingContainer):
        (RenderLayerCompositor::OverlapMap):
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):

2014-04-16  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: memoize fallback time values for document.lastModified
        https://bugs.webkit.org/show_bug.cgi?id=131318

        Reviewed by Joseph Pecoraro.

        If a document's Last-Modified header can't be found or used, then 
        document.lastModified is derived from the current system time or
        from filesystem data, which is obviously nondeterministic.

        It's better to handle this inside Document::lastModified rather than using
        MemoizedDOMResult, because only the fallback case is nondeterministic.

        Test: http/tests/inspector/replay/document-last-modified-fallback-value.html

        The test is skipped for now, as it will be very flaky without the
        functionality introduced by bugs 130728 and 129391.

        * dom/Document.cpp:
        (WebCore::Document::lastModified): Save or reuse memoized fallback value.
        * replay/WebInputs.json: Add input DocumentLastModifiedDate.

2014-04-16  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] Selection gets confused when the mouse is in the column gaps.
        https://bugs.webkit.org/show_bug.cgi?id=131739

        Reviewed by Enrica Casucci.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::selectionGaps):
        Make sure not to paint selection gaps. This matches the old multi-column behavior. Even though
        selection gaps *nearly* work with the new multi-column code, I am disabling them so that we
        can turn them on without visual regressions.
        
        (WebCore::isChildHitTestCandidate):
        Don't allow in-flow RenderFlowThreads to be descended into from positionForPoint. We always want
        to look only at the spanners and at the sets.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::nodeAtPoint):
        * rendering/RenderMultiColumnFlowThread.h:
        Override nodeAtPoint to disallow the RenderMultiColumnFlowThread from being considered for hit
        testing when no DOM node is found. It's better to just let RenderBlock's positionForPoint run
        to drill back down into the appropriate column set.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::positionForPoint):
        Implement positionForPoint for RenderMultiColumnSets. This is a straight-up port of the
        old multi-column code's adjustPointToColumnContents function.

        * rendering/RenderMultiColumnSet.h:
        Add override of positionForPoint.

2014-04-16  Dean Jackson  <dino@apple.com>

        MediaDocument on iOS should be full page
        https://bugs.webkit.org/show_bug.cgi?id=131774

        Reviewed by Jer Noble.

        A MediaDocument on iOS has two problems. It can't rely
        on intrinsic size, since it doesn't load the content until
        a user gesture. Secondly, on a small screen you want the
        media to fill the page.

        Add width/height 100% for iOS documents.

        Test: platform/iphone-simulator/media/media-document-controls-size.html

        * html/MediaDocument.cpp:
        (WebCore::MediaDocumentParser::createDocumentStructure):

2014-04-16  Roger Fong  <roger_fong@apple.com>

        Add a way for layout tests to determine whether or not a plugin is snapshotted.
        https://bugs.webkit.org/show_bug.cgi?id=131650.
        <rdar://problem/16615528>

        Reviewed by Dean Jackson.

        * testing/Internals.cpp:
        (WebCore::Internals::isPluginSnapshotted):
        * testing/Internals.h:
        * testing/Internals.idl:

2014-04-16  Zoltan Horvath  <zoltan@webkit.org>

        Vanish unnecessary includes from Shapes.{h|cpp}
        https://bugs.webkit.org/show_bug.cgi?id=131762

        Reviewed by Andreas Kling.

        No new tests, no behavior change.

        * rendering/shapes/BoxShape.h:
        * rendering/shapes/Shape.cpp:
        * rendering/shapes/Shape.h:
        * rendering/shapes/ShapeOutsideInfo.h:

2014-04-16  Andreas Kling  <akling@apple.com>

        Revert direct caching of tagName and nodeName from r167383.

        Ryosuke tells me this is not entirely safe, will need to rethink.

        * dom/Element.idl:
        * dom/Node.idl:

2014-04-16  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        Improve security mitigation added in webkit r94001.
        We missed the case where attachLine was called when we already had an inline box wrapper.
        https://bugs.webkit.org/show_bug.cgi?id=127285

        Reviewed by Brent Fulgham.

        Merged from Blink: https://src.chromium.org/viewvc/blink?revision=150697&view=revision

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::positionLineBox):
        * rendering/RenderBox.h:
        (WebCore::RenderBox::setInlineBoxWrapper):

2014-04-16  Bem Jones-Bey  <bjonesbe@adobe.com>

        Fix CodeGenerator.pm to only write files if the generated content has changed
        https://bugs.webkit.org/show_bug.cgi?id=131756

        Reviewed by Sam Weinig.

        To improve build speed, don't touch generated files unless the newly
        generated content is actually different.

        * bindings/scripts/CodeGenerator.pm:
        (UpdateFile):

2014-04-16  Andreas Kling  <akling@apple.com>

        Add a way to cache never-changing IDL attributes in the wrapper.
        <https://webkit.org/b/131759>

        Some IDL attributes will always return the same value when queried
        on an object, so let's have a way to avoid calling into C++ code
        every time they are queried.

        This patch adds a custom IDL thingy called "ReturnsCacheableValue"
        which causes the code generator to emit code to cache the returned
        value directly in the JS wrapper object.

        Reviewed by Oliver Hunt.

        * bindings/scripts/IDLAttributes.txt:
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):

            Add ReturnsCacheableValue custom attribute.

        * dom/Element.idl:
        * dom/Node.idl:

            Annotate some attributes that return fully cacheable values.

        * bindings/scripts/test/*:

            Rebaseline.

2014-04-16  Noel Gordon  <noel.gordon@gmail.com>

        Progressive JPEG outputScanlines() calls should handle failure
        https://bugs.webkit.org/show_bug.cgi?id=116701

        Reviewed by Brent Fulgham.

        outputScanlines() can fail and delete |this|. Copy the decoder pointer
        member and use that copy to detect and handle the failure case.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageReader::decode):

2014-04-16  Robert Sipka  <sipka@inf.u-szeged.hu>

        [curl] Add WEB_TIMING support
        https://bugs.webkit.org/show_bug.cgi?id=127555

        Reviewed by Brent Fulgham.

        Access timing information related to navigation.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::milisecondsSinceRequest):
        (WebCore::calculateWebTimingInformations):
        (WebCore::sockoptfunction):
        (WebCore::headerCallback):
        (WebCore::ResourceHandleManager::downloadTimerCallback):
        (WebCore::ResourceHandleManager::dispatchSynchronousJob):
        (WebCore::ResourceHandleManager::initializeHandle):

2014-04-16  Zoltan Horvath  <zoltan@webkit.org>

        Cleanup header includes in ShapeOutsideInfo.h
        https://bugs.webkit.org/show_bug.cgi?id=131750

        Reviewed by Antti Koivisto.

        Make the build faster by removing unnecessary header includes.

        No new tests, no behavior change.

        * rendering/shapes/ShapeOutsideInfo.h:

2014-04-16  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build.

        * platform/graphics/cg/BitmapImageCG.cpp:
        (WebCore::BitmapImage::draw):

2014-04-16  Alexey Proskuryakov  <ap@apple.com>

        DataTransfer should cache its FileList
        https://bugs.webkit.org/show_bug.cgi?id=131694

        Reviewed by Darin Adler.

        Test: fast/events/data-transfer-files-attribute-identity.html

        * bindings/js/SerializedScriptValue.cpp: (WebCore::CloneDeserializer::readTerminal):
        Switched to a new FileList constructor, CloneDeserializer doesn't really need to modify
        the FileList with append().

        * dom/DataTransfer.h:
        * dom/DataTransfer.cpp:
        (WebCore::DataTransfer::types): Added a FIXME.
        (WebCore::DataTransfer::files): Changed to reuse a cached FileList. It's currently
        easy, because we don't support DataTransferItemList. Once we do, making any changes
        through it will also require updating the FileList in a way that doesn't replace
        File objects for unchanged files.

        * fileapi/FileList.h:
        (WebCore::FileList::create):
        (WebCore::FileList::isEmpty):
        (WebCore::FileList::FileList):
        (WebCore::FileList::append):
        (WebCore::FileList::clear):
        Made non-const functions private, because neither DataTransfer nor FileInputType
        expect the list to be modified without their knowledge. Added a new Vector based
        constructor so that a FileList could be created without the use of append().

        * html/FileInputType.cpp: (WebCore::FileInputType::createFileList): Simplified
        the code a little bit. FileInputType still needs to modify the list for clear(),
        but doesn't need to add to it dynamically - unlike with DataTransfer, it's expected
        to create a new FileList when it's modified.

2014-04-15  Brent Fulgham  <bfulgham@apple.com>

        [Win] Eliminate use of deleteAllValues in Windows Files
        https://bugs.webkit.org/show_bug.cgi?id=131631

        Reviewed by Darin Adler.

        Update to use std::unique_ptr for object lifetime. Get rid of
        deleteAllValues now that it is no loner needed. Use ranged for
        loops where possible.

        * platform/win/WCDataObject.cpp:
        (WebCore::WCEnumFormatEtc::WCEnumFormatEtc):
        (WebCore::WCDataObject::~WCDataObject):
        (WebCore::WCDataObject::GetData):
        (WebCore::WCDataObject::QueryGetData):
        (WebCore::WCDataObject::SetData):
        (WebCore::WCDataObject::clearData):
        * platform/win/WCDataObject.h:

2014-04-16  Chris Fleizach  <cfleizach@apple.com>

        AX: Accessing a table cell with an invalid column header crashes
        https://bugs.webkit.org/show_bug.cgi?id=131719

        Reviewed by Darin Adler.

        If no tableCell is available as a column/row header, then do not continue processing.

        Test: accessibility/table-missing-column-header-crash.html

        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::columnHeaders):
        (WebCore::AccessibilityTableCell::rowHeaders):

2014-04-16  Brendan Long  <b.long@cablelabs.com>

        [GTK] Fix unused parameter warnings
        https://bugs.webkit.org/show_bug.cgi?id=131721

        Reviewed by Darin Adler.

        * bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
        (WebCore::toJS): Remove unused 'exec' parameter.

2014-04-16  Simon Fraser  <simon.fraser@apple.com>

        Convert the boolean param of Image::startAnimation() to an enum
        https://bugs.webkit.org/show_bug.cgi?id=131742

        Reviewed by Tim Horton.

        Use an enum to make the code more readable.

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::startAnimation):
        * platform/graphics/BitmapImage.h:
        * platform/graphics/Image.cpp:
        (WebCore::Image::drawTiled):
        * platform/graphics/Image.h:
        (WebCore::Image::startAnimation):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::startAnimation):
        * svg/graphics/SVGImage.h:

2014-04-16  David Hyatt  <hyatt@apple.com>

        Make sure to skip the RenderMultiColumnFlowThread when resolving percentage heights inside columns against
        containing blocks. The flow thread's auto height should not interfere if a fixed height is specified on
        an ancestor.

        https://bugs.webkit.org/show_bug.cgi?id=131741

        Reviewed by Simon Fraser.

        Added fast/multicol/percent-height.html.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::skipContainingBlockForPercentHeightCalculation):
        Add an isInFlowRenderFlowThread check so that we skip those blocks and don't consider them at all
        when resolving percentage heights.

2014-04-16  Daewoong Jang  <daewoong.jang@navercorp.com>

        [WinCairo][cURL] Build fix for WinCairo build with USE(CURL).
        https://bugs.webkit.org/show_bug.cgi?id=131614

        Reviewed by Brent Fulgham.

        Build fix, no new tests needed.

        * platform/network/curl/CurlCacheEntry.cpp:
        (WebCore::CurlCacheEntry::loadResponseHeaders):
        * platform/network/curl/CurlCacheManager.cpp:
        (WebCore::CurlCacheManager::loadIndex):
        * platform/network/soup/ResourceError.h:
        * platform/network/soup/SocketStreamHandle.h:

2014-04-16  Martin Hodovan  <mhodovan@inf.u-szeged.hu>

        ASSERTION FAILED: x2 >= x1 in WebCore::RenderObject::drawLineForBoxSide
        https://bugs.webkit.org/show_bug.cgi?id=127835

        In some cases when a negative margin and a positive padding are applied
        together to the right and/or left side of the box, the logical width of
        the borders can be set to a negative value, making the assertion fire.
        The fix checks if the width or height of the box is negative, and if so,
        it will not display the borders and shadows of the box.

        Reviewed by Darin Adler.

        Test: fast/css/padding-margin-negative-border.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintBorder):

2014-04-16  Jer Noble  <jer.noble@apple.com>

        [MSE] Seeks into buffered ranges will never complete.
        https://bugs.webkit.org/show_bug.cgi?id=131717

        Reviewed by Eric Carlson.

        Test: media/media-source/media-source-seek-complete.html

        Run the SourceBuffer Monitoring step after initiating a seek.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateSeekToTime):

2014-04-15  Hyowon Kim  <hw1008.kim@samsung.com>

        [EFL] Fix problems with the pixel dump.
        https://bugs.webkit.org/show_bug.cgi?id=131265

        Reviewed by Gyuyoung Kim.

        Painting and compositing paths of WebKit-EFL were totally modified from r166768.
        However pixel dump codes still call deprecated functions like ewk_view_paint(),
        which causes that nothing is drawn.

        This patch adds new member functions to AcceleratedCompositingContext to support pixel dump.
        One of new functions is AcceleratedCompositingContext::extractImageData(),
        which replaces deprecated function calls. Besides the extractImageData() is invoked by
        ewk_view_screenshot_contents_get() in order to take the visible content displayed on the EFL webview.

        * platform/graphics/cairo/CairoUtilities.cpp:
        (WebCore::flipImageSurfaceVertically): Flip pixel data of given cairo_surface_t vertically up/down.
        Whereas Cairo uses the top-left corner as being 0,0 of the coordinate system,
        OpenGL uses the bottom-left corner being 0,0.
        So we need to vertically flip resultant images taken by glReadPixels().
        * platform/graphics/cairo/CairoUtilities.h:

2014-04-15  Hyowon Kim  <hw1008.kim@samsung.com>

        Make page overlay functionality working on coordinated graphics.
        https://bugs.webkit.org/show_bug.cgi?id=131425

        Reviewed by Darin Adler.

        Page overlay functionality did not work on coordinated graphics since r166975.
        This patch removes deprecated code related to the PageOverlay GraphicsLayer management.
        and makes CoordinatedLayerTreeHost use PageOverlayController.

        * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp:
        (WebCore::CompositingCoordinator::setRootCompositingLayer):
        (WebCore::CompositingCoordinator::flushPendingLayerChanges):
        * platform/graphics/texmap/coordinated/CompositingCoordinator.h:

2014-04-10  Roger Fong  <roger_fong@apple.com>

        Snapshotted plugins may need to be restarted if style properties are changed after initial load of plugin.
        https://bugs.webkit.org/show_bug.cgi?id=131553.
        <rdar://problem/15443375>

        Reviewed by Timothy Horton.

        Test: plugins/snapshotting/set-plugin-size-to-tiny.html

        When updating embedded objects during our post layout checks, check for certain style changes
        that may result in the plugin needing to be restarted.

        * html/HTMLPlugInImageElement.h: 
        Add m_plugInDimensionsSpecified field to keep track of whether or not dimensions on the plugin’s renderer have been specified.
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
        Initialize m_plugInDimensionsSpecified.
        (WebCore::isSmallerThanTinySizingThreshold):
        Refactoring, move check for whether or not plugin is smaller than the tiny plugin size threshold to this method.
        (WebCore::HTMLPlugInImageElement::isTopLevelFullPage): 
        Refactoring, move check for whether or not plugin is top level full page to this method.
        (WebCore::HTMLPlugInImageElement::checkSnapshotStatus): 
        Use refactored checks here as well to determine whether or not we need to restart the snapshotted plugin.
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Use refactored checks.
        If plugin dimensions were specified, set m_plugInDimensionsSpecified to true.

2014-04-15  Andreas Kling  <akling@apple.com>

        [iOS WebKit2] Listen for system memory pressure notifications.
        <https://webkit.org/b/131653>
        <rdar://problem/16208123>

        Reviewed by Antti Koivisto.

        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::install):

            Use the right invocation to summon the memory pressure handler.

        (WebCore::MemoryPressureHandler::install):
        (WebCore::MemoryPressureHandler::uninstall):
        (WebCore::MemoryPressureHandler::holdOff):
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):

            Make stubbed out functions !PLATFORM(COCOA)

2014-04-14  Morten Stenshorne  <mstensho@opera.com>

        [New Multicolumn] Add support for column-span:all
        https://bugs.webkit.org/show_bug.cgi?id=129330

        Reviewed by Dave Hyatt.

        Column spanners are implemented as siblings of RenderMultiColumnSet
        objects (i.e. the regions for the column rows). This means that they
        are pulled out from the flow thread tree where they would otherwise
        live. This causes some complexity, most of which is contained within
        the multicol code.

        A placeholder is put in the flow thread tree where the spanner's
        renderer would otherwise live. This is needed in order make sure that
        we interrupt line layout before after the spanner. We also need this
        to be able to switch from one multicol set to the next.

        Some extra logic is required when dynamically inserting and removing
        flow thread descendants now, because we need to figure out if the
        renderer added should trigger creation of new multi column sets. If
        a spanner is inserted in the middle of a multi column set, we need to
        detect this, split the set and put the spanner in the middle.

        Wrote a bunch of tests. A few of the tests were copied from existing
        (old-impl) tests and put in a separate directory. That directory can
        be wiped when we turn on the new multicol implementation by default.

        Tests: fast/multicol/newmulticol/adjacent-spanners.html
               fast/multicol/newmulticol/block-becomes-spanner.html
               fast/multicol/newmulticol/change-spanner-display.html
               fast/multicol/newmulticol/change-spanner-parent-display.html
               fast/multicol/newmulticol/compare-with-old-impl/anonymous-block-split-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/before-child-anonymous-column-block.html
               fast/multicol/newmulticol/compare-with-old-impl/clone-before-after-content-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/clone-block-children-inline-mismatch-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/clone-flexbox.html
               fast/multicol/newmulticol/compare-with-old-impl/clone-summary.html
               fast/multicol/newmulticol/compare-with-old-impl/column-span-inside-multicol-webkit-box.html
               fast/multicol/newmulticol/compare-with-old-impl/continuation-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/double-merge-anonymous-block-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/empty-anonymous-block-split-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/float-not-removed-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/list-multi-column-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/positioned-child-not-removed-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/positioned-objects-not-removed-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/recursive-split-flow-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/removal-of-multicol-span-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/remove-child-split-flow-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/runin-continuation-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/span-as-immediate-child-complex-splitting.html
               fast/multicol/newmulticol/compare-with-old-impl/span-as-nested-inline-block-child.html
               fast/multicol/newmulticol/compare-with-old-impl/split-flow-anonymous-wrapper-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/split-inline-wrong-post-block-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/table-multi-column-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/textbox-not-removed-crash.html
               fast/multicol/newmulticol/compare-with-old-impl/update-after-content-before-child-crash.html
               fast/multicol/newmulticol/insert-row-content1.html
               fast/multicol/newmulticol/insert-row-content2.html
               fast/multicol/newmulticol/insert-row-content3.html
               fast/multicol/newmulticol/insert-row-content4.html
               fast/multicol/newmulticol/insert-row-content5.html
               fast/multicol/newmulticol/insert-row-content6.html
               fast/multicol/newmulticol/insert-row-content7.html
               fast/multicol/newmulticol/insert-row-content8.html
               fast/multicol/newmulticol/insert-row-content9.html
               fast/multicol/newmulticol/insert-spanner-child1.html
               fast/multicol/newmulticol/insert-spanner-child2.html
               fast/multicol/newmulticol/insert-spanner-child3.html
               fast/multicol/newmulticol/insert-spanner1.html
               fast/multicol/newmulticol/insert-spanner2.html
               fast/multicol/newmulticol/insert-spanner3.html
               fast/multicol/newmulticol/insert-spanner4.html
               fast/multicol/newmulticol/insert-spanner5.html
               fast/multicol/newmulticol/insert-spanner6.html
               fast/multicol/newmulticol/insert-spanner7.html
               fast/multicol/newmulticol/insert-spanner8.html
               fast/multicol/newmulticol/multicol-with-spanner-becomes-regular-block.html
               fast/multicol/newmulticol/remove-row-content1.html
               fast/multicol/newmulticol/remove-row-content2.html
               fast/multicol/newmulticol/remove-row-content3.html
               fast/multicol/newmulticol/remove-row-content4.html
               fast/multicol/newmulticol/remove-row-content5.html
               fast/multicol/newmulticol/remove-row-content6.html
               fast/multicol/newmulticol/remove-row-content7.html
               fast/multicol/newmulticol/remove-row-content8.html
               fast/multicol/newmulticol/remove-row-content9.html
               fast/multicol/newmulticol/remove-spanner1.html
               fast/multicol/newmulticol/remove-spanner2.html
               fast/multicol/newmulticol/remove-spanner3.html
               fast/multicol/newmulticol/remove-spanner4.html
               fast/multicol/newmulticol/remove-spanner5.html
               fast/multicol/newmulticol/remove-spanner6.html
               fast/multicol/newmulticol/sole-spanner.html
               fast/multicol/newmulticol/span-between-text.html
               fast/multicol/newmulticol/spanner-becomes-regular-block.html
               fast/multicol/newmulticol/spanner-first.html
               fast/multicol/newmulticol/spanner-img.html
               fast/multicol/newmulticol/spanner-inline-block.html
               fast/multicol/newmulticol/spanner-last.html
               fast/multicol/newmulticol/spanner-nested-dynamic.html
               fast/multicol/newmulticol/spanner-nested.html
               fast/multicol/newmulticol/spanner-pseudo-after1.html
               fast/multicol/newmulticol/spanner-pseudo-after2.html
               fast/multicol/newmulticol/spanner-pseudo-after3.html
               fast/multicol/newmulticol/spanner-pseudo-after4.html
               fast/multicol/newmulticol/spanner-pseudo-before-after1.html
               fast/multicol/newmulticol/spanner-pseudo-before-after2.html
               fast/multicol/newmulticol/spanner-pseudo-before-after3.html
               fast/multicol/newmulticol/spanner-pseudo-before-after4.html
               fast/multicol/newmulticol/spanner-pseudo-before1.html
               fast/multicol/newmulticol/spanner-pseudo-before2.html
               fast/multicol/newmulticol/spanner-pseudo-before3.html
               fast/multicol/newmulticol/spanner-pseudo-before4.html
               fast/multicol/newmulticol/spanner-table.html
               fast/multicol/newmulticol/spanner-with-margin.html
               fast/multicol/newmulticol/spanner1.html
               fast/multicol/newmulticol/spanner2.html
               fast/multicol/newmulticol/spanner3.html
               fast/multicol/newmulticol/spanner4.html
               fast/multicol/newmulticol/spanner5.html
               fast/multicol/newmulticol/spanner6.html
               fast/multicol/newmulticol/spanner7.html
               fast/multicol/newmulticol/spanner8.html
               fast/multicol/newmulticol/spanner9.html
               fast/multicol/newmulticol/trailing-margin-with-spanner.html
               fast/multicol/newmulticol/trailing-margin-with-spanner2.html

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
        Disable the old anonymous multicol container and spanner anonymous
        block generation machinery when the new multicol implementation is
        enabled.
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::createMultiColumnFlowThread):
        (WebCore::RenderBlockFlow::destroyMultiColumnFlowThread):
        (WebCore::RenderBlockFlow::layoutBlockChild): Need to notify the
        flow thread when a descendant's final position is known. Spanner
        placeholders need to know where to terminate the column set that
        it follows.
        (WebCore::RenderBlockFlow::styleDidChange): Remove old code that
        isn't needed anymore. The renderers in question (flow thread and
        column sets) set display:block on themselves already. This code
        caused problems for spanners, which got all their style wiped.
        (WebCore::RenderBlockFlow::setMultiColumnFlowThread): If setting
        the flow thread to nullptr, there's no need to create the "rare
        data" structure.
        (WebCore::RenderBlockFlow::relayoutForPagination):
        (WebCore::RenderBlockFlow::layoutSpecialExcludedChild):
        (WebCore::RenderBlockFlow::addChild): beforeChild is retrieved via
        the DOM. If it is a spanner, we need to locate the placeholder
        here, because that's the correct location to insert siblings,
        DOM-wise.
        (WebCore::RenderBlockFlow::removeChild): The multicol flow thread
        needs to know when children disappear.
        (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
        Don't modify the height back and forth when calculating the
        multicol container's final height, as that messes up balancing.
        (WebCore::RenderBlockFlow::insertedIntoTree): Deleted.
        (WebCore::RenderBlockFlow::willBeDestroyed): Deleted.
        (WebCore::RenderBlockFlow::styleWillChange): Deleted.
        (WebCore::RenderBlockFlow::lineAtIndex): Deleted.
        * rendering/RenderBlockFlow.h:
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::insertedIntoTree): Set up an element's
        layer before notifying the flow thread. The multicol flow thread
        may decide to move the element (if it's a spanner), which may
        involve re-insertion of layers.  Calling
        RenderObject::insertedIntoTree() last instead of first also better
        matches the order we used to have prior to the introduction of
        RenderElement, FWIW.
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::layout):
        (WebCore::RenderFlowThread::removeRegionFromThread): Deleted.
        (WebCore::RenderFlowThread::invalidateRegions): Deleted.
        * rendering/RenderFlowThread.h:
        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::RenderMultiColumnFlowThread):
        (WebCore::RenderMultiColumnFlowThread::removeFlowChildInfo): When
        a flow thread descendant is inserted, the multicol flow thread
        needs to be notified.
        (WebCore::RenderMultiColumnFlowThread::firstMultiColumnSet):
        (WebCore::RenderMultiColumnFlowThread::lastMultiColumnSet):
        (WebCore::RenderMultiColumnFlowThread::firstColumnSetOrSpanner):
        (WebCore::RenderMultiColumnFlowThread::nextColumnSetOrSpannerSiblingOf):
        (WebCore::RenderMultiColumnFlowThread::previousColumnSetOrSpannerSiblingOf):
        (WebCore::RenderMultiColumnFlowThread::layout):
        (WebCore::RenderMultiColumnFlowThread::findSetRendering):
        (WebCore::RenderMultiColumnFlowThread::populate):
        (WebCore::RenderMultiColumnFlowThread::evacuateAndDestroy):
        (WebCore::RenderMultiColumnFlowThread::addRegionToThread):
        (WebCore::RenderMultiColumnFlowThread::willBeRemovedFromTree):
        Need to detach column sets here, since they have pointers to their
        flow thread.
        (WebCore::RenderMultiColumnFlowThread::resolveMovedChild):
        (WebCore::isValidColumnSpanner):
        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantInserted):
        (WebCore::RenderMultiColumnFlowThread::flowThreadRelativeWillBeRemoved):
        (WebCore::RenderMultiColumnFlowThread::flowThreadDescendantBoxLaidOut):
        (WebCore::RenderMultiColumnFlowThread::autoGenerateRegionsToBlockOffset):
        Nothing to be done here for the time being. Column sets are now
        created during box creation. We are going to need to add some code
        here again once multicol properly supports nested fragmentation
        contexts (and you get adjacent column rows because of that).
        (WebCore::RenderMultiColumnFlowThread::regionAtBlockOffset):
        During layout, don't trust the region interval tree, as that one
        depends on the resulting layout.
        (WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox): With
        a convenience method to get the last column set, and column sets
        now being created during normal box creation, this young method
        needs an overhaul.
        (WebCore::RenderMultiColumnFlowThread::setRegionRangeForBox):
        (WebCore::RenderMultiColumnFlowThread::isPageLogicalHeightKnown):
        * rendering/RenderMultiColumnFlowThread.h:
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::nextSiblingMultiColumnSet):
        (WebCore::RenderMultiColumnSet::previousSiblingMultiColumnSet):
        (WebCore::RenderMultiColumnSet::firstRendererInFlowThread):
        (WebCore::RenderMultiColumnSet::lastRendererInFlowThread):
        (WebCore::precedesRenderer):
        (WebCore::RenderMultiColumnSet::containsRendererInFlowThread):
        (WebCore::RenderMultiColumnSet::setLogicalTopInFlowThread):
        (WebCore::RenderMultiColumnSet::setLogicalBottomInFlowThread):
        (WebCore::RenderMultiColumnSet::pageLogicalTopForOffset):
        (WebCore::RenderMultiColumnSet::distributeImplicitBreaks):
        (WebCore::RenderMultiColumnSet::calculateBalancedHeight):
        (WebCore::RenderMultiColumnSet::addForcedBreak):
        (WebCore::RenderMultiColumnSet::recalculateColumnHeight):
        Previously only needed if columns were to be balanced, now it's
        also needed when not balancing.
        (WebCore::RenderMultiColumnSet::recordSpaceShortage): Some layout
        elements actually have 0 height. Skip them, since they're not
        taking us anywhere.
        (WebCore::RenderMultiColumnSet::updateLogicalWidth):
        (WebCore::RenderMultiColumnSet::requiresBalancing): Column sets
        now have individual balancing needs. If they precede a spanner,
        they must always be balanced. For the last column set, see if
        height is unspecified or column-fill is 'balance' (like before).
        (WebCore::RenderMultiColumnSet::prepareForLayout):
        (WebCore::RenderMultiColumnSet::beginFlow):
        (WebCore::RenderMultiColumnSet::endFlow):
        (WebCore::RenderMultiColumnSet::layout):
        (WebCore::RenderMultiColumnSet::calculateMaxColumnHeight):
        (WebCore::RenderMultiColumnSet::columnRectAt):
        (WebCore::RenderMultiColumnSet::flowThreadPortionOverflowRect):
        (WebCore::RenderMultiColumnSet::paintColumnRules):
        (WebCore::RenderMultiColumnSet::initialBlockOffsetForPainting):
        (WebCore::RenderMultiColumnSet::collectLayerFragments):
        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
        (WebCore::RenderMultiColumnSet::setAndConstrainColumnHeight): Deleted.
        (WebCore::RenderMultiColumnSet::findRunWithTallestColumns): Deleted.
        (WebCore::RenderMultiColumnSet::clearForcedBreaks): Deleted.
        (WebCore::RenderMultiColumnSet::repaintFlowThreadContent): Deleted.
        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderMultiColumnSpannerPlaceholder.cpp: Added.
        (WebCore::RenderMultiColumnSpannerPlaceholder::createAnonymous):
        (WebCore::RenderMultiColumnSpannerPlaceholder::RenderMultiColumnSpannerPlaceholder):
        (WebCore::RenderMultiColumnSpannerPlaceholder::renderName):
        * rendering/RenderMultiColumnSpannerPlaceholder.h: Added.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::insertedIntoTree): Need to notify the
        multicol flow thread when descendants are inserted. That may
        trigger insertion of column sets, or, in the case of spanners,
        they need to be moved out from the flow thread.
        * rendering/RenderObject.h:
        (WebCore::RenderObject::isRenderMultiColumnSpannerPlaceholder):
        (WebCore::RenderObject::isAnonymousBlock): Exclude column sets
        here, so that they don't get involved in anonymous block merging
        and other kinds of fun.
        * rendering/RenderRegion.h:
        * rendering/RenderRegionSet.h:

2014-04-15  Simon Fraser  <simon.fraser@apple.com>

        LayerTreeAsTextBehavior should be in the WebCore namespace
        https://bugs.webkit.org/show_bug.cgi?id=131683

        Reviewed by Andrei Bucur.

        Move LayerTreeAsTextBehavior and the bit flags into the WebCore namespace.

        * platform/graphics/GraphicsLayer.cpp:
        (showGraphicsLayerTree):
        * platform/graphics/GraphicsLayer.h:

2014-04-15  Benjamin Poulain  <bpoulain@apple.com>

        ViewportConfiguration handles userZoom incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=131657

        Reviewed by Darin Adler.

        * page/ViewportConfiguration.cpp:
        (WebCore::viewportArgumentUserZoomIsSet):
        (WebCore::ViewportConfiguration::updateConfiguration):
        The other viewport values must be strictly positive, userZoom is always either zero, one or minus one.
        As a result, the value zero was never set.

2014-04-15  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Pages often blank on first load if page loaded by typing the URL
        https://bugs.webkit.org/show_bug.cgi?id=131665

        Reviewed by Tim Horton.

        The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
        was triggering a compositing layer flush when called with a null rootLayer, which happens
        for pages going into the page cache. This would trigger a layer flush that would clobber
        the root layer for the visible page, resulting in missing content.
        
        Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
        was being added to (and then removed from) every single compositing layers.
        
        Fix both these by changing to a pull model, where RenderLayerCompositor requests
        the overlay layer via ChromeClient, and gets it at the end of every flush,
        adding to the children of the root layer.

        * WebCore.exp.in:
        * page/ChromeClient.h:
        (WebCore::ChromeClient::documentOverlayLayerForFrame):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Put visibleRect
        into a variable for ease of debugging.
        (WebCore::RenderLayerCompositor::updateCompositingLayers): Asser
        that we're not in the page cache (this would have caught the bug).
        (WebCore::RenderLayerCompositor::appendOverlayLayers):
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
        (WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer): Deleted.
        * rendering/RenderLayerCompositor.h:

2014-04-15  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167199 and r167251.
        https://bugs.webkit.org/show_bug.cgi?id=131678

        Caused a DYEBench regression and does not seem to improve perf
        on relevant websites (Requested by rniwa on #webkit).

        Reverted changesets:

        "Rewrite Function.bind as a builtin"
        https://bugs.webkit.org/show_bug.cgi?id=131083
        http://trac.webkit.org/changeset/167199

        "Update test result"
        http://trac.webkit.org/changeset/167251

2014-04-15  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Remove unnecessary null checking in NavigatorContentUtils
        https://bugs.webkit.org/show_bug.cgi?id=131652

        Reviewed by Darin Adler.

        Some functions have checked if document is null. However, document is always not
        null when frame is existed.

        No new tests, no behavior changes.

        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::NavigatorContentUtils::registerProtocolHandler):
        (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
        (WebCore::NavigatorContentUtils::unregisterProtocolHandler):

2014-04-15  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167298.
        https://bugs.webkit.org/show_bug.cgi?id=131670

        Broke CSS filters (17 test crashes) (Requested by ap on
        #webkit).

        Reverted changeset:

        "[iOS WK2] Pages often blank on first load if page loaded by
        typing the URL"
        https://bugs.webkit.org/show_bug.cgi?id=131665
        http://trac.webkit.org/changeset/167298

2014-04-14  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. Attempt to fix Windows build after r167277.

        * page/FrameView.cpp:
        (WebCore::FrameView::willPaintContents):

2014-04-14  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167261.
        https://bugs.webkit.org/show_bug.cgi?id=131667

        broke many navigation tests (Requested by ap on #webkit).

        Reverted changeset:

        "Web Replay: memoize fallback time values for
        document.lastModified"
        https://bugs.webkit.org/show_bug.cgi?id=131318
        http://trac.webkit.org/changeset/167261

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Pages often blank on first load if page loaded by typing the URL
        https://bugs.webkit.org/show_bug.cgi?id=131665

        Reviewed by Tim Horton.

        The document overlay-related code in RemoteLayerTreeDrawingArea::setRootCompositingLayer()
        was triggering a compositing layer flush when called with a null rootLayer, which happens
        for pages going into the page cache. This would trigger a layer flush that would clobber
        the root layer for the visible page, resulting in missing content.
        
        Also, rebuildCompositingLayerTree() is called recursively and the m_documentOverlayRootLayer
        was being added to (and then removed from) every single compositing layers.
        
        Fix both these by changing to a pull model, where RenderLayerCompositor requests
        the overlay layer via ChromeClient, and gets it at the end of every flush,
        adding to the children of the root layer.

        * WebCore.exp.in:
        * page/ChromeClient.h:
        (WebCore::ChromeClient::documentOverlayLayerForFrame):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges): Put visibleRect
        into a variable for ease of debugging.
        (WebCore::RenderLayerCompositor::updateCompositingLayers): Asser
        that we're not in the page cache (this would have caught the bug).
        (WebCore::RenderLayerCompositor::appendOverlayLayers):
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
        (WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer): Deleted.
        * rendering/RenderLayerCompositor.h:

2014-04-14  Jon Honeycutt  <jhoneycutt@apple.com>

        Assertion failure under FEImage::determineAbsolutePaintRect()

        <https://bugs.webkit.org/show_bug.cgi?id=131660>
        <rdar://problem/15669294>

        This patch merges Chromium r149536 (see
        <https://chromiumcodereview.appspot.com/14701012>), which moves
        m_absoluteTransform out of SVGFilter and into the base Filter class, so
        that it isn't necessary to cast a Filter to SVGFilter to get the
        absolute transform.

        Reviewed by Geoffrey Garen.

        Test: svg/filters/feImage-filter-assertion.html

        * platform/graphics/filters/Filter.h:
        (WebCore::Filter::Filter):
        Changed to take the absolute transform.
        (WebCore::Filter::absoluteTransform):
        Moved from SVGFilter.
        (WebCore::Filter::mapAbsolutePointToLocalPoint):
        Ditto.

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::FilterEffectRenderer):
        Pass a default AffineTransform() to the Filter base class.

        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::determineAbsolutePaintRect):
        Use the Filter without casting it to SVGFilter.
        (WebCore::FEImage::platformApplySoftware):
        Ditto.

        * svg/graphics/filters/SVGFilter.cpp:
        (WebCore::SVGFilter::SVGFilter):
        Pass the transform to the base class, and remove initialization of a
        removed member var.

        * svg/graphics/filters/SVGFilter.h:
        Member var moved to Filter.h.

2014-04-14  Darin Adler  <darin@apple.com>

        REGRESSION (r158617): Find on Page can get stuck in a loop when the search string occurs in an <input> in a <fieldset>
        https://bugs.webkit.org/show_bug.cgi?id=126322

        Reviewed by Ryosuke Niwa.

        One additional tweak to the fix for the bug above.
        Fixes crash in editing/editability/ignored-content.html test.

        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::canContainRangeEndPoint): Call through to
        HTMLElement::canContainRangeEndPoint, bypassing HTMLPlugInElement override
        that always returns false. Without this change, this function was always
        returning false.

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        Crash in TileController::tileRevalidationTimerFired
        https://bugs.webkit.org/show_bug.cgi?id=131656
        <rdar://problem/16583166>

        Reviewed by Sam Weinig.

        It's possible for the TileController revalidation timer to fire after
        the GraphicsLayer has been destroyed, so the PlatformCALayer no longer
        has an owningGraphicsLayer.
        
        Bail from the timer callback if owningGraphicsLayer() is null.
        
        Also some drive-by 0 -> nullptr changes.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::willBeDestroyed):
        * platform/graphics/ca/PlatformCALayer.cpp:
        (WebCore::PlatformCALayer::~PlatformCALayer):
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::tileRevalidationTimerFired):

2014-04-14  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] Remove some leftover shape-inside code
        https://bugs.webkit.org/show_bug.cgi?id=131641

        Reviewed by Dean Jackson.

        I discovered that some code had been leftover from the shape-inside
        removal. This removes that leftover code.

        No new tests, no behavior change.

        * platform/text/BidiResolver.h:
        * rendering/BidiRun.cpp:
        (WebCore::BidiRun::BidiRun):
        * rendering/RenderBlockFlow.h:
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::createLineBoxes):
        (WebCore::RenderBlockFlow::constructLine):
        (WebCore::computeExpansionForJustifiedText):
        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):

2014-04-14  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] video.currentTime is sometimes negative.
        https://bugs.webkit.org/show_bug.cgi?id=131644

        Reviewed by Eric Carlson.

        AVSampleBufferRenderSynchronizer will occasionally return slightly negative values
        when beginning playback. Clamp the return value to 0.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::currentTimeDouble):

2014-04-14  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSSExclusions] Remove FIXME referencing closed bug
        https://bugs.webkit.org/show_bug.cgi?id=131645

        Reviewed by Dean Jackson.

        This is silly, but the comment is really confusing as it's entirely
        wrong now.

        No new tests, no behavior change.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresRepaint):

2014-04-14  Andreas Kling  <akling@apple.com>

        Build fixage.

        * page/FrameView.cpp:

2014-04-14  Jon Honeycutt  <jhoneycutt@apple.com>

        Assertion failure !node || node->isElementNode() in
        WebCore::RenderBlock::inlineElementContinuation
  
        https://bugs.webkit.org/show_bug.cgi?id=108829
        <rdar://problem/13666405>
  
        I can't reproduce this assertion failure, but there seems to be an
        invalid assumption in RenderBlock::inlineElementContinuation() that
        anything with the "isInline()" bit set is a RenderInline.
        
        No new test because the test case in the bug does not repro for me.

        Reviewed by Brent Fulgham.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::inlineElementContinuation):
        Dave Hyatt says that this function should only return RenderInline
        objects (not non-RenderInline inline objects), so update the checks
        from isInline() to isRenderInline() before casting with
        toRenderInline().

        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::inlineElementContinuation):
        Ditto.

2014-04-14  Andreas Kling  <akling@apple.com>

        Do more things under memory pressure on non-iOS platforms.
        <https://webkit.org/b/131625>

        Reviewed by Antti Koivisto.

        Rename hasReceivedMemoryPressure() to isUnderMemoryPressure() and
        make it use std::atomic<bool> instead of OSAtomic primitives.

        Unmask most of the PLATFORM(IOS) blocks so all platforms can take
        advantage of optimizations done while under pressure. Note that
        isUnderMemoryPressure() will still always return false on platforms
        other than iOS/WK1, but this will change soon.

        * history/PageCache.cpp:
        (WebCore::PageCache::canCache):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::commitProvisionalLoad):
        * page/FrameView.cpp:
        (WebCore::FrameView::willPaintContents):
        (WebCore::FrameView::didPaintContents):
        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::MemoryPressureHandler):
        * platform/MemoryPressureHandler.h:
        (WebCore::MemoryPressureHandler::isUnderMemoryPressure):
        * platform/cocoa/MemoryPressureHandlerCocoa.mm:
        (WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
        (WebCore::MemoryPressureHandler::clearMemoryPressure):
        (WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):
        (WebCore::MemoryPressureHandler::hasReceivedMemoryPressure): Deleted.
        * platform/graphics/FontCache.cpp:
        (WebCore::FontCache::purgeInactiveFontDataIfNeeded):
        * platform/ios/LegacyTileCache.mm:
        (WebCore::LegacyTileCache::createTilesInActiveGrid):
        * platform/ios/LegacyTileGrid.mm:
        (WebCore::LegacyTileGrid::shouldUseMinimalTileCoverage):
        * platform/ios/LegacyTileLayerPool.mm:
        (WebCore::LegacyTileLayerPool::addLayer):
        * platform/ios/TileControllerMemoryHandlerIOS.cpp:
        (WebCore::TileControllerMemoryHandler::tileControllerGainedUnparentedTiles):

2014-04-14  Beth Dakin  <bdakin@apple.com>

        RenderLayerCompositor's m_layerForOverhangAreas should be offset by the 
        topContentInset
        https://bugs.webkit.org/show_bug.cgi?id=131632
        -and corresponding-
        <rdar://problem/16609602>

        Reviewed by Tim Horton.

        Offset m_layerForOverhangAreas by the topContentInset. 
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateOverflowControlsLayers):

2014-04-14  Alexey Proskuryakov  <ap@apple.com>

        Eliminate CachedFrame::m_mousePressNode
        https://bugs.webkit.org/show_bug.cgi?id=131626

        Reviewed by Brady Eidson.

        I couldn't find any observable effect of this change.

        * history/CachedFrame.cpp:
        (WebCore::CachedFrameBase::CachedFrameBase):
        (WebCore::CachedFrameBase::restore):
        (WebCore::CachedFrame::clear):
        * history/CachedFrame.h:
        (WebCore::CachedFrame::documentLoader):
        (WebCore::CachedFrame::mousePressNode): Deleted.
        Eliminated m_mousePressNode, accessor, and code that reached out to EventHandler.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::mousePressNode): Deleted.
        (WebCore::EventHandler::setMousePressNode): Deleted.
        * page/EventHandler.h:
        (WebCore::EventHandler::setMousePressed): Deleted. This function was already unused.

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        Run filter animations in the UI process with UI-side compositing
        https://bugs.webkit.org/show_bug.cgi?id=131199
        <rdar://problem/16479487>

        Reviewed by Sam Weinig.

        Add FilterOperation::clone() which is used during decoding.
        Export some things.

        * WebCore.exp.in:
        * platform/graphics/filters/FilterOperation.h:

2014-04-14  Jer Noble  <jer.noble@apple.com>

        Use after free in WebCore::CachedResourceHandleBase::~CachedResourceHandleBase / WebCore::removeDetachedChildrenInContainer
        https://bugs.webkit.org/show_bug.cgi?id=131169

        Reviewed by Eric Carlson.

        Invalidate the WebCoreAVFResourceLoader owned by MediaPlayerPrivateAVFoundationObjC
        in its destructor, to prevent a private function being called in response to the
        WebCoreAVFResourceLoader being stopped.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):
        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.h:
        * platform/graphics/avfoundation/objc/WebCoreAVFResourceLoader.mm:
        (WebCore::WebCoreAVFResourceLoader::invalidate):

2014-04-14  Simon Fraser  <simon.fraser@apple.com>

        [WK2 iOS] Scrolling to anchor links is broken
        https://bugs.webkit.org/show_bug.cgi?id=131618
        <rdar://problem/16599144>

        Reviewed by Tim Horton.

        Have ScrollingTreeScrollingNode pass RequestedScrollPosition updates
        to the scrolling tree, so that the scrolling tree can have custom behavior
        for them if necessary.

        * page/scrolling/ScrollingTree.h:
        (WebCore::ScrollingTree::scrollingTreeNodeRequestsScroll):
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::updateAfterChildren):
        * page/scrolling/ScrollingTreeScrollingNode.h:

2014-04-14  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: memoize fallback time values for document.lastModified
        https://bugs.webkit.org/show_bug.cgi?id=131318

        Reviewed by Joseph Pecoraro.

        If a document's Last-Modified header can't be found or used, then 
        document.lastModified is derived from the current system time or
        from filesystem data, which is obviously nondeterministic.

        It's better to handle this inside Document::lastModified rather than using
        MemoizedDOMResult, because only the fallback case is nondeterministic.

        Test: http/tests/inspector/replay/document-last-modified-fallback-value.html

        * dom/Document.cpp:
        (WebCore::Document::lastModified): Save or reuse memoized fallback value.
        * replay/WebInputs.json: Add input DocumentLastModifiedDate.

2014-04-12  Antti Koivisto  <antti@apple.com>

        Keep secondary tile grid for zoomed-out scale
        https://bugs.webkit.org/show_bug.cgi?id=131586

        Reviewed by Darin Adler.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateContentsScale):
        
            Don't repaint tiled backing with setNeedsDisplay, it invalidates itself correctly in setContentsScale.
            Update custom child layers when tiled backing scale changes.

        * platform/graphics/ca/mac/TileController.h:
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::TileController):
        (WebCore::TileController::setNeedsDisplay):
        
            Drop the whole zoomed-out grid on full repaint.

        (WebCore::TileController::setNeedsDisplayInRect):
            
            Drop changed zoomed-out tiles. A more sophisticated strategy is possible.

        (WebCore::TileController::setContentsScale):
        
            Swap the zoomed-out grid in and out as needed.
            Repaint the active grid after scale change so the client does not have to.

        (WebCore::TileController::contentsScale):
        
            Get the content scale from the tile grid so it is not kept in two places.

        (WebCore::TileController::zoomedOutContentsScale):
        (WebCore::TileController::setZoomedOutContentsScale):
        
            Drop the zoomed-out grid if it no longer matches the zoomed-out scale.

        (WebCore::TileController::tileRevalidationTimerFired):
        (WebCore::TileController::retainedTileBackingStoreMemory):
        (WebCore::TileController::containerLayers):
        
            Return both zoomed-out tiles and the active tiles. Active tiles are on top.

        (WebCore::TileController::numberOfUnparentedTiles):
        (WebCore::TileController::removeUnparentedTilesNow):
        * platform/graphics/ca/mac/TileGrid.h:
        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::dropTilesInRect):
        
            Add a function for dropping tiles.

        (WebCore::TileGrid::revalidateTiles):

2014-04-14  Oliver Hunt  <oliver@apple.com>

        Update test result

        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        (WebCore::JSTestNondeterministicConstructor::finishCreation):

2014-04-14  Dirk Schulze  <krit@webkit.org>

        Optimize Canvas fill and drawImage with SourceIn, DestinationIn, SourceOut, and DestinationAtop using transparencyLayer.
        https://bugs.webkit.org/show_bug.cgi?id=79659

        Reviewed by Darin Adler.

        Optimize fill() and fillRect() operations in Canvas on composited contexts by
        10 to 20 times on CG.

        Replacing the ImageBuffer code by transparency layers allows the
        graphics library to optimize the drawing.

        Doing the same for drawImage() would give performance regressions.

        An inline function will create a transparency layer for CG. Cairo graphics
        does not composite correctly when a transparency layer gets created. 
        The inline function is just a NOOP for Cairo.

        This fixes bug 131303 as well.

        Added performance tests with r167124 already.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::fillInternal):
        (WebCore::CanvasRenderingContext2D::strokeInternal):
        (WebCore::CanvasRenderingContext2D::beginCompositeLayer):
        (WebCore::CanvasRenderingContext2D::endCompositeLayer):
        (WebCore::CanvasRenderingContext2D::fillRect):
        (WebCore::CanvasRenderingContext2D::strokeRect):
        (WebCore::CanvasRenderingContext2D::drawTextInternal):
        (WebCore::CanvasRenderingContext2D::fullCanvasCompositedFill): Deleted.
        * html/canvas/CanvasRenderingContext2D.h:

2014-04-14  Tim Horton  <timothy_horton@apple.com>

        Lots of compositing test failures after r167152
        https://bugs.webkit.org/show_bug.cgi?id=131574

        Reviewed by Darin Adler.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::dumpChildren):
        (WebCore::GraphicsLayer::dumpProperties):
        Make child-dumping recursive so that we can easily skip layers up to any depth.

2014-04-14  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        Fix incorrect indentations in CodeGeneratorJS.pm introduced in r165521
        https://bugs.webkit.org/show_bug.cgi?id=131613

        Reviewed by Csaba Osztrogonác.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        Fixed 5-space indentation.
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp:
        Updated the tests accordingly.

2014-04-14  Manuel Rego Casasnovas  <rego@igalia.com>

        [JSC] CSSStyleDeclaration report incorrect descriptor
        https://bugs.webkit.org/show_bug.cgi?id=89697

        Reviewed by Benjamin Poulain.

        Change descriptor of CSSStyleDeclaration properties in order to have
        writable and enumerable attributes set to true. Configurable is kept to
        false since the property is not deleteable.

        Test: fast/dom/CSSStyleDeclaration/cssstyledeclaration-properties-descriptor.html

        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::JSCSSStyleDeclaration::getOwnPropertySlotDelegate): Only set
        DontDelete attribute when creating the descriptor for
        CSSStyleDeclaration properties.

2014-04-14  Benjamin Poulain  <benjamin@webkit.org>

        [JSC] Improve the call site of string comparison in some hot path
        https://bugs.webkit.org/show_bug.cgi?id=131605

        Reviewed by Darin Adler.

        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::equal):
        We should use the right comparison operation depending on the Hash Traits.

2014-04-14  Andreas Kling  <akling@apple.com>

        Merge MemoryPressureHandler{Mac,IOS}.mm
        <https://webkit.org/b/131603>

        Join the iOS and Mac platform implementations of MemoryPressureHandler
        under the shared Cocoa banner. Each platform still has its own quirky
        behavior, but this puts them in the same file so we can start sharing.

        Reviewed by Darin Adler.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/cocoa/MemoryPressureHandlerCocoa.mm: Renamed from Source/WebCore/platform/mac/MemoryPressureHandlerMac.mm.
        (WebCore::MemoryPressureHandler::platformReleaseMemory):
        (WebCore::MemoryPressureHandler::install):
        (WebCore::MemoryPressureHandler::uninstall):
        (WebCore::MemoryPressureHandler::holdOff):
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
        (WebCore::respondToMemoryPressureCallback):
        (WebCore::MemoryPressureHandler::installMemoryReleaseBlock):
        (WebCore::MemoryPressureHandler::setReceivedMemoryPressure):
        (WebCore::MemoryPressureHandler::hasReceivedMemoryPressure):
        (WebCore::MemoryPressureHandler::clearMemoryPressure):
        (WebCore::MemoryPressureHandler::shouldWaitForMemoryClearMessage):
        (WebCore::MemoryPressureHandler::respondToMemoryPressureIfNeeded):
        * platform/ios/MemoryPressureHandlerIOS.mm: Removed.

2014-04-14  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: compile the :nth-child() pseudo class
        https://bugs.webkit.org/show_bug.cgi?id=131602

        Reviewed by Andreas Kling.

        Tests: fast/selectors/nth-child-bounds.html
               fast/selectors/nth-child-with-backtracking.html

        Compile the :nth-child() pseudo class function + some related clean up.

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::nthA):
        (WebCore::CSSSelector::nthB):
        Expose the parsed value of an+b filters. Those values are used to compile
        the selector.

        (WebCore::CSSSelector::RareData::parseNth):
        While working on the patch, I discovered some severe issues with the parsing of large
        values of a and/or b. The problem comes from the way the CSS parser handle the values:
        the values are parsed as a double then converted to an AtomicString for CSSSelector.

        There are many problems related to large values but we never got bug reports because
        they are very uncommon. Fixing those problem would require changing the parser.

        Here, CSSSelector::RareData::parseNth() is hardened a little bit to avoid absurd values
        of a and b.

        * css/CSSSelector.h:
        * cssjit/RegisterAllocator.h:
        It looks like I forgot RDX in the list of register. Add it now since it is required
        for SelectorCodeGenerator::modulo().

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::modulo):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::moduloIsZero):
        There is no modulo() operation exposed on the macro assemblers. This is a basic
        implementation on top of idiv for x86_64.

        Since idiv works exclusively with RAX and RDX, most of the code is about getting
        those registers efficiently.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::setElementChildIndex):
        (WebCore::SelectorCompiler::setElementChildIndexAndUpdateStyle):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsNthChild):
        This is pretty much a straightforward implementation of :nth-child().
        The first part counts the number of previous elements.
        The second part updates the tree if this is style resolution.
        The last part compares the number of previous siblings to an+b to find if the filter matches.

        The only part that diverges from SelectorChecker is how childIndex is used. Instead of testing it
        at every iteration, only the first iteration handle the cache.

        * dom/ElementRareData.h:
        (WebCore::ElementRareData::childIndexMemoryOffset):
        * dom/Node.h:
        (WebCore::Node::rareDataMemoryOffset):
        (WebCore::Node::flagHasRareData):
        * rendering/style/RenderStyle.h:

2014-04-14  Tim Horton  <timothy_horton@apple.com>

        Support setting a background color on page overlays
        https://bugs.webkit.org/show_bug.cgi?id=131600

        Reviewed by Darin Adler.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer):
        Mark the compositing tree as needing a rebuild when we get a new document-relative
        overlay layer; otherwise we were depending on something else coming along and
        requiring a rebuild, which didn't always happen.

2014-04-14  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSS Regions] Hit testing doesn't work in video
        https://bugs.webkit.org/show_bug.cgi?id=131485

        Reviewed by Andrei Bucur.

        When hit testing flow thread layer through the region layer,
        we have to pass the depth sorting information and take that
        into account for the situation in which an ancestor of the region
        has preserve-3d transform style.

        Test: fast/regions/hit-test-region-preserve3d-container.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::hitTestFlowThreadIfRegionForFragments):
        * rendering/RenderLayer.h:

2014-04-13  Darin Adler  <darin@apple.com>

        userVisibleString should not try to "encode" host names
        https://bugs.webkit.org/show_bug.cgi?id=131587
        rdar://problem/14686849

        Reviewed by Alexey Proskuryakov.

        * WebCore.exp.in: Updated for WebCoreNSURLExtras argument type changes.

        * platform/mac/WebCoreNSURLExtras.h: Removed unneeded code to make this
        Objective-C++ header compile in plain C++ files, which we never need to do.
        Added missing argument name, baseURL, and changed mysterious CFIndex arguments
        to the correct type, CFURLComponentType.

        * platform/mac/WebCoreNSURLExtras.mm:
        (WebCore::isLookalikeCharacter): Removed the inline keyword from this, and added
        more lookalike characters from the Mozilla list referenced here.
        (WebCore::URLByTruncatingOneCharacterBeforeComponent): Updated argument type.
        (WebCore::dataForURLComponentType): Ditto.
        (WebCore::userVisibleString): Only call mapHostNames if host name decoding is
        needed; no encoding here.

2014-04-13  Darin Adler  <darin@apple.com>

        REGRESSION (r158617): Find on Page can get stuck in a loop when the search string occurs in an <input> in a <fieldset>
        https://bugs.webkit.org/show_bug.cgi?id=126322

        Reviewed by Ryosuke Niwa.

        * dom/Element.cpp:
        (WebCore::Element::canContainRangeEndPoint): Now returns false when the role of the element
        is "img". This is the same rule that's hard-coded in isRenderReplacedElement for the same
        reason. Need more test coverage to make sure this role feature works consistently.

        * dom/Element.h: Made canContainRangeEndPoint no longer inline since it's not just a
        return statement any more.

        * dom/Position.cpp:
        (WebCore::Position::isCandidate): Took out code that calls isRendererReplacedElement
        that was added in r158617; not needed now that we updated canContainRangeEndPoint.

        * dom/Range.cpp:
        (WebCore::Range::firstNode): Removed code here that called isRendererReplacedElement.
        This was the wrong level to be adding editing logic, and there's a FIXME here to that
        effect, which we are now deleting. This was the change that broke Find.

        * editing/TextIterator.cpp: Added a comment about the redundancy between the
        isRendererReplacedElement and editingIgnoresContent functions.

        * html/HTMLHRElement.cpp:
        (WebCore::HTMLHRElement::canContainRangeEndPoint): Call through to base class instead
        of just returning true when we have child nodes. Lets Element::canContainRangeEndPoint
        do its thing.
        * html/HTMLHRElement.h: Ditto.

        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::canContainRangeEndPoint): Call through to base class instead
        of just returning true when we have fallback content. Lets Element::canContainRangeEndPoint
        do its thing.
        * html/HTMLObjectElement.h: Ditto.

        * testing/Internals.cpp:
        (WebCore::Internals::countMatchesForText): Set the limit to 1000 instead of infinite.

2014-04-12  Darin Adler  <darin@apple.com>

        Use unique_ptr for FillLayer::m_next
        https://bugs.webkit.org/show_bug.cgi?id=75222

        Reviewed by Dan Bernstein.

        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyFillLayer::applyInheritValue):
        Renamed currChild to just child and prevChild to previousChild.
        Changed code to pass ownership of the new FillLayer immediately.
        Changed some loops to be for loops.
        (WebCore::ApplyPropertyFillLayer::applyInitialValue): Ditto.
        (WebCore::ApplyPropertyFillLayer::applyValue): Ditto.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::backgroundHasOpaqueTopLayer): Use reference
        instead of pointer.
        (WebCore::RenderBox::paintFillLayers): Ditto.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Ditto.

        * rendering/style/FillLayer.cpp:
        (WebCore::FillLayer::FillLayer): Removed m_next initializer since it is now an
        OwnPtr and initializes automatically. In a couple other places, changed m_next
        initializer to use make_unique.
        (WebCore::FillLayer::~FillLayer): Wrote loop for deletion of m_next.
        (WebCore::FillLayer::operator=): Removed unneeded explicit deletion of m_next.
        (WebCore::FillLayer::cullEmptyLayers): Ditto.
        (WebCore::clipMax): Marked inline.
        (WebCore::FillLayer::computeClipMax): Rewrote to use a loop instead of recursion.
        (WebCore::FillLayer::containsImage): Ditto.
        (WebCore::FillLayer::imagesAreLoaded): Ditto.
        (WebCore::FillLayer::hasOpaqueImage): Rewrote to use && instead of multiple if.
        (WebCore::FillLayer::hasImage): Rewrote to use a loop instead of recursion.
        (WebCore::FillLayer::hasFixedImage): Ditto.

        * rendering/style/FillLayer.h: Changed m_next to be a unique_ptr.

2014-04-13  Andy Estes  <aestes@apple.com>

        [QuickLook] Move file system-related code into WebKit
        https://bugs.webkit.org/show_bug.cgi?id=131597

        Reviewed by Dan Bernstein.

        QuickLookHandle should not be responsible for saving a copy of the
        original document to disk as it might be running in a process that
        either can't write to disk or can only write into a sandboxed
        container. To account for this, we need to separate the concern of
        quick look conversion from that of original document saving so that
        each activity can run in the appropriate process.

        Created a new interface between WebCore and WebKit by adding a client
        (QuickLookHandleClient) to QuickLookHandle which is notified of incoming
        bytes. A new function on FrameLoaderClient tells WebKit when a new
        QuickLookHandle is created, giving WebKit the opportunity to register a
        handle client. Moved the existing file system-related code as well as
        code only needed by WebKit1 in QuickLookHandle into a new WebKit1
        QuickLookHandleClient subclass.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj: Made QuickLookHandleClient.h Private.
        * loader/FrameLoaderClient.h:
        (WebCore::FrameLoaderClient::didCreateQuickLookHandle): Added.
        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::didCreateQuickLookHandle): Called FrameLoaderClient::didCreateQuickLookHandle().
        * loader/ResourceLoader.h:
        * platform/network/ResourceHandle.h: Made m_quickLook a unique_ptr.
        (WebCore::ResourceHandle::setQuickLookHandle): Changed to take a unique_ptr.
        * platform/network/ResourceHandleClient.h:
        (WebCore::ResourceHandleClient::didCreateQuickLookHandle): Added.
        * platform/network/ios/QuickLook.h: Added m_client, gave m_converter a stronger type, and made m_nsResponse a RetainPtr.
        (WebCore::QuickLookHandle::setClient): Added.
        (WebCore::QuickLookHandle::firstRequestURL): Added.
        (WebCore::QuickLookHandle::converter): Added.
        * platform/network/ios/QuickLook.mm:
        (WebCore::registerQLPreviewConverterIfNeeded):
        (WebCore::createTemporaryFileForQuickLook): Made non-static.
        (WebCore::emptyClient): Returned a shared empty QuickLookHandleClient.
        (WebCore::QuickLookHandle::QuickLookHandle): Removed file system and WebKit1-only code.
        (WebCore::QuickLookHandle::create): Changed to return a unique_ptr.
        (WebCore::QuickLookHandle::nsResponse):
        (WebCore::QuickLookHandle::didReceiveDataArray): Removed file system code and called QuickLookHandleClient::didReceiveDataArray() instead.
        (WebCore::QuickLookHandle::didReceiveData): Removed file system code and called QuickLookHandleClient::didReceiveData() instead.
        (WebCore::QuickLookHandle::didFinishLoading): Removed file system code and called QuickLookHandleClient::didFinishLoading() instead.
        (WebCore::QuickLookHandle::didFail): Removed file system and WebKit1-only code, calling QuickLookHandleClient::didFail() instead.
        (WebCore::QuickLookHandle::~QuickLookHandle): Removed file system and WebKit1-only code. Cleared our reference to m_client.
        (WebCore::QuickLookHandle::previewFileName): Retrieved from m_converter.
        (WebCore::QuickLookHandle::previewRequestURL): Ditto.
        * platform/network/ios/QuickLookHandleClient.h: Added.
        (WebCore::QuickLookHandleClient::~QuickLookHandleClient):
        (WebCore::QuickLookHandleClient::didReceiveDataArray):
        (WebCore::QuickLookHandleClient::didReceiveData):
        (WebCore::QuickLookHandleClient::didFinishLoading):
        (WebCore::QuickLookHandleClient::didFail):

2014-04-10  Pratik Solanki  <psolanki@apple.com>

        Move early return out of dispatch_async() block so we can return from willSendRequest quickly
        https://bugs.webkit.org/show_bug.cgi?id=131478
        <rdar://problem/16575535>

        Reviewed by Alexey Proskuryakov.

        Do a quick check to see if we need to synthesize the redirect response on the dispatch queue
        and return from willSendRequest callback quickly instead of always doing an effectively synchronous
        call to the main thread. We can't call synthesizeRedirectResponseIfNecessary on the dispatch
        queue since that accesses the ResourceRequest.

        No new tests because no change in functionality.

        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::setupRequest): Save the
        request scheme to use later for early return from willSendRequest.
        (WebCore::ResourceHandleCFURLConnectionDelegateWithOperationQueue::willSendRequest):

2014-04-08  Oliver Hunt  <oliver@apple.com>

        Rewrite Function.bind as a builtin
        https://bugs.webkit.org/show_bug.cgi?id=131083

        Reviewed by Geoffrey Garen.

        Switch WebCore to use the helper functions when defining the
        prototype properties on DOM constructors, and update bindings
        tests accordingly.

        * bindings/js/JSImageConstructor.cpp:
        (WebCore::JSImageConstructor::finishCreation):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConstructorHelperMethods):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::JSTestEventConstructorConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::JSTestEventTargetConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestException.cpp:
        (WebCore::JSTestExceptionConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        (WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfaceConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorConstructor::finishCreation):
        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestNode.cpp:
        (WebCore::JSTestNodeConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObjConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::JSTestTypedefsConstructor::finishCreation):
        * bindings/scripts/test/JS/JSattribute.cpp:
        (WebCore::JSattributeConstructor::finishCreation):
        * bindings/scripts/test/JS/JSreadonly.cpp:
        (WebCore::JSreadonlyConstructor::finishCreation):

2014-04-13  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Hook up scrolling tree nodes when coming out of the page cache
        https://bugs.webkit.org/show_bug.cgi?id=131577

        Reviewed by Tim Horton.

        The call to scrollingCoordinator->frameViewRootLayerDidChange() was inside
        a #if !PLATFORM(IOS) block, but now that we use the ScrollingCoordinator
        for WK2 we want to call this.

        * loader/HistoryController.cpp:
        (WebCore::HistoryController::restoreScrollPositionAndViewState):

2014-04-13  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fix after r167196.

        * platform/RemoteCommandListener.cpp:
        (WebCore::RemoteCommandListener::create): Fall back to using the new operator
        for allocating RemoteCommandListener object. Using std::make_unique() requires
        for the operator to be public, which doesn't work well with the static create()
        method.

2014-04-13  Zan Dobersek  <zdobersek@igalia.com>

        Remove unnecessary uses of std::move() in return statements
        https://bugs.webkit.org/show_bug.cgi?id=131457

        Reviewed by Darin Adler.

        Don't use std::move() in return statements unless necessary as it inhibits
        named return value optimizations as performed by compilers.

        * Modules/battery/BatteryManager.cpp:
        (WebCore::BatteryManager::create):
        * html/FormController.cpp:
        (WebCore::FormController::createSavedFormStateMap):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::create):
        * platform/RemoteCommandListener.cpp:
        (WebCore::RemoteCommandListener::create):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayer::create):
        * platform/ios/RemoteCommandListenerIOS.mm:
        (WebCore::RemoteCommandListener::create):
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setupFilters):
        * rendering/style/CounterDirectives.cpp:
        (WebCore::clone):

2014-04-13  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167168 and r167194.
        https://bugs.webkit.org/show_bug.cgi?id=131589

        Caused massive ASSERTION failures on the GTK Debug bot
        (Requested by philn on #webkit).

        Reverted changesets:

        "[GTK] Add HighDPI support for non-accelerated compositing
        contents"
        https://bugs.webkit.org/show_bug.cgi?id=131562
        http://trac.webkit.org/changeset/167168

        "Unreviewed. Fix GTK+ build with recent cairo and GTK+ after
        r167168."
        http://trac.webkit.org/changeset/167194

2014-04-13  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [GStreamer] No CORS support for media elements
        https://bugs.webkit.org/show_bug.cgi?id=99037

        Reviewed by Philippe Normand.

        Added CORS access control check to media sources when crossorigin attribute is set.

        Added getter to CORS access control check status (used to compute whether the stream is tainted or not).
        Related test is http/tests/security/video-cross-origin-readback.html.

        Disabled access to cross-origin streams that fail CORS check when crossorigin attribute is set.
        Related test is http/tests/security/video-cross-origin-accessfailure.html.

        Tests: http/tests/security/video-cross-origin-accessfailure.html
               http/tests/security/video-cross-origin-accesssameorigin.html

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::didPassCORSAccessCheck): Return whether media is cross-origin (tainted) or not by querying the gstreamer source layer.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added MediaPlayerPrivateGStreamer::didPassCORSAccessCheck declaration.
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcStart): Passed CORS mode parameter to the streaming client. In case of CORS check failure, stop the resource loading.
        (webKitSrcPassedCORSAccessCheck): Return whether CORS access control check was done and successful.
        (StreamingClient::handleResponseReceived): Take a parameter to assign the CORS access control check result.
        (CachedResourceStreamingClient::CachedResourceStreamingClient): Updated setting of the ResourceLoaderOptions according CORS mode.
        (CachedResourceStreamingClient::responseReceived): Check CORS and pass result to handleResponseReceived.
        (ResourceHandleStreamingClient::didReceiveResponse): No CORS check.
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Added webKitSrcPassedCORSAccessCheck declaration.

2014-04-12  Darin Adler  <darin@apple.com>

        REGRESSION (r166860): ASSERTION FAILED: !isCalculated() on fast/css/image-set-value-not-removed-crash.html
        https://bugs.webkit.org/show_bug.cgi?id=131480

        Reviewed by Andreas Kling.

        Fixes intermittent assertion failure in fast/css/image-set-value-not-removed-crash.html.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForImageSliceSide): Added. Helper used below in valueForNinePieceImageSlice.
        Handles calculated values by returning 0; incorrect but predictable.
        (WebCore::valueForNinePieceImageSlice): Updated to call valueForImageSliceSide.
        (WebCore::positionOffsetValue): Use nullptr.
        (WebCore::ComputedStyleExtractor::propertyValue): Updated to call positionOffsetValue
        by its new name. Removed "get" from the name.
        (WebCore::positionOffsetValue): Renamed from getPositionOffsetValue.

        * platform/Length.h: Made isCalculated public.

2014-04-12  Andy Estes  <aestes@apple.com>

        Fix the iOS build after r167183.

        * platform/network/ResourceHandle.h:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::schedule):
        (WebCore::ResourceHandle::unschedule):

2014-04-12  Andy Estes  <aestes@apple.com>

        [iOS] Move QuickLookHandle from ResourceLoader to WebResourceLoader
        https://bugs.webkit.org/show_bug.cgi?id=131580

        Reviewed by Darin Adler.

        There's no need to bloat WebKit1's ResourceLoader with a pointer that
        only WebKit2's WebResourceLoader cares about.

        * loader/ResourceLoader.h:
        (WebCore::ResourceLoader::quickLookHandle): Deleted.
        (WebCore::ResourceLoader::setQuickLookHandle): Deleted.

2014-04-12  Chris Fleizach  <cfleizach@apple.com>

        AX: Cleanup AccessibilityObject::getAttribute
        https://bugs.webkit.org/show_bug.cgi?id=131555

        Reviewed by Darin Adler.

        No new functionality.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::getAttribute):

2014-04-12  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [SOUP] Libsoup internal credential setting should be controlled by loader decision
        https://bugs.webkit.org/show_bug.cgi?id=130963

        Reviewed by Darin Adler.

        Disabled libsoup internal authentication manager for messages for which no credential is available and no stored credentials should be used.
        Updated synchronous loader to return whether using credentials or not according StoredCredential loader option parameter.
        Unskipped test http/tests/xmlhttprequest/cross-origin-no-authorization.html covers the patch.

        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal): Added m_useAuthenticationManager boolean to control whether disable authentication manager or not.
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::WebCoreSynchronousLoader::WebCoreSynchronousLoader): Added m_storedCredentials member.
        (WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage): Return true if stored credentials are allowed.
        (WebCore::applyAuthenticationToRequest): Set m_useAuthenticationManager value to disable authentication manager if cannot use stored credentials and ResourceHandleInternal has no username and password.
        (WebCore::createSoupMessageForHandleAndRequest): Disable authentication mananger according m_useAuthenticationManager value.
        (WebCore::ResourceHandle::platformLoadResourceSynchronously): Added StoredCredentials loader option to the sync loader constructor.

2014-04-11  Darin Adler  <darin@apple.com>

        Some small loader refinements and refactoring
        https://bugs.webkit.org/show_bug.cgi?id=131541

        Reviewed by Alexey Proskuryakov.

        Cut down on use of ResourceLoader::handle, which always returns null when
        using a network process. Also streamlined conditionals and did some other
        small refactoring.

        * loader/DocumentLoader.h: Use references rather than pointers for SchedulePair.

        * loader/ResourceLoader.cpp:
        (WebCore::ResourceLoader::didChangePriority): Use m_handle instead of handle(),
        since we'd like to delete handle() entirely soon.
        (WebCore::ResourceLoader::didReceiveAuthenticationChallenge): Ditto.
        (WebCore::ResourceLoader::schedule): Added.
        (WebCore::ResourceLoader::unschedule): Ditto.
        * loader/ResourceLoader.h: Rearranged header to eliminate nested conditionals.
        Added schedule and unschedule functions for Mac.

        * loader/mac/DocumentLoaderMac.cpp:
        (WebCore::scheduleAll): Changed to take a reference and call ResourceLoader::schedule.
        (WebCore::unscheduleAll): Ditto.
        (WebCore::DocumentLoader::schedule): Ditto.
        (WebCore::DocumentLoader::unschedule): Ditto.

        * page/mac/PageMac.cpp:
        (WebCore::Page::addSchedulePair): Pass a reference rather than a pointer to schedule.
        (WebCore::Page::removeSchedulePair): Ditto.

        * platform/network/ResourceHandle.h: Did a bit of reformatting and reorganizing of
        conditionals.

        * platform/network/ResourceHandleInternal.h: Removed a tiny bit of unneeded declaration.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::schedule): Updated to take a reference rather than a pointer.
        (WebCore::ResourceHandle::unschedule): Ditto.

2014-04-11  Andreas Kling  <akling@apple.com>

        Make NodeList.length inline-cacheable by JSC.
        <https://webkit.org/b/131579>

        For objects with custom index or name getters, we have to make sure
        that builtin properties take precedence. We do this by scanning the
        ancestor chain for a suitable property slot before moving on to
        named items.

        With this patch, we now mark such builtins as cacheable. This is
        safe since the whole point of doing this before processing named
        items is to ensure the same slot is returned consistently.

        Reviewed by Benjamin Poulain.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):

2014-04-11  Tim Horton  <timothy_horton@apple.com>

        Lots of compositing test failures after r167152
        https://bugs.webkit.org/show_bug.cgi?id=131574

        Reviewed by Simon Fraser.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::dumpProperties):
        We were asking the parent's client whether the child should be dumped,
        but really the child's client is the one who should decide.

2014-04-11  Benjamin Poulain  <bpoulain@apple.com>

        ViewportConfiguration::layoutWidth() compute the width incorrectly when initial-scale+width do not fit in view
        https://bugs.webkit.org/show_bug.cgi?id=131575

        Reviewed by Enrica Casucci.

        I made a mistake when writing the new viewport code: ViewportConfiguration::layoutWidth() uses m_contentSize in one place.
        That make no sense, contentSize depends on the layout width.

        * page/ViewportConfiguration.cpp:
        (WebCore::ViewportConfiguration::layoutWidth):

2014-04-11  Andreas Kling  <akling@apple.com>

        Remove "numeric index getter" stuff from bindings code generator.
        <https://webkit.org/b/131565>

        This was used for an earlier generation of typed arrays. Now that JSC
        has native typed array support, we're not using this functionality and
        can just remove it.

        Reviewed by Geoffrey Garen.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
        (HasComplexGetOwnProperty):
        (InterfaceRequiresAttributesOnInstance):
        (InstanceOverridesGetOwnPropertySlot):
        (GenerateHeader):
        (GenerateImplementation):

2014-04-11  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: consolidate decoding macros used in SerializationMethods
        https://bugs.webkit.org/show_bug.cgi?id=131564

        Reviewed by Timothy Hatcher.

        We can use EncodingTraits<T>::DecodedType to create a local variable
        with the appropriate decoded type, rather than special casing.

        * replay/SerializationMethods.cpp:
        (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):
        (JSC::EncodingTraits<KeypressCommand>::decodeValue):
        (JSC::EncodingTraits<PlatformKeyboardEvent>::decodeValue):
        (JSC::EncodingTraits<PlatformMouseEvent>::decodeValue):
        (JSC::EncodingTraits<PlatformWheelEvent>::decodeValue):
        (JSC::EncodingTraits<PluginData>::decodeValue):

2014-04-11  Beth Dakin  <bdakin@apple.com>

        Need WK2 API to disable rubber-banding
        https://bugs.webkit.org/show_bug.cgi?id=131567

        Reviewed by Simon Fraser.

        Page will now store a vertical and horizontal ScrollElasticity in case the API has 
        been called before the FrameView even exists.

        New Page functions.
        * WebCore.exp.in:

        Use Page’s cached ScrollElasticity.
        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView):

        If there is already a FrameView, then assign it the new ScrollElasticity.
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::setVerticalScrollElasticity):
        (WebCore::Page::setHorizontalScrollElasticity):
        * page/Page.h:
        (WebCore::Page::verticalScrollElasticity):
        (WebCore::Page::horizontalScrollElasticity):

2014-04-11  Martin Robinson  <mrobinson@igalia.com>

        REGRESSION(167145): Many media tests fail
        https://bugs.webkit.org/show_bug.cgi?id=131569

        Reviewed by Brent Fulgham.

        * PlatformGTK.cmake: Add the localized strings file to the list of user agent scripts.
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::mediaControlsScript): Include the localized strings file in the script body.

2014-04-11  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Find-in-page indicator
        https://bugs.webkit.org/show_bug.cgi?id=131510
        <rdar://problem/16547777>

        Reviewed by Simon Fraser and Enrica Casucci.

        * editing/Editor.cpp:
        (WebCore::Editor::findString):
        * editing/FindOptions.h:
        Add a find option which prevents WebCore from revealing the selection
        after selecting a successful find match.

2014-04-11  Owen Taylor  <otaylor@redhat.com>

        [GTK] Add HighDPI support for non-accelerated compositing contents
        https://bugs.webkit.org/show_bug.cgi?id=131562

        Reviewed by Martin Robinson.

        No new tests. This will be tested once we have the proper dependencies in the WebKit testing
        JHBuild.

        * platform/cairo/WidgetBackingStore.h:
        (WebCore::WidgetBackingStore::WidgetBackingStore): Accept a device scale argument.
        * platform/cairo/WidgetBackingStoreCairo.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
        * platform/cairo/WidgetBackingStoreCairo.h: Accept a device scale argument.
        * platform/graphics/cairo/CairoUtilities.cpp: Add a new helper to set the device scale if Cairo built against is new enough.
        * platform/graphics/cairo/CairoUtilities.h:
        * platform/gtk/GtkVersioning.h: Add the HAVE_GTK_SCALE_FACTOR macro.
        * platform/gtk/WidgetBackingStoreGtkX11.cpp: Use the device scale argument to make the surface the proper size and set the surface device scale.
        * platform/gtk/WidgetBackingStoreGtkX11.h: Accept a device scale argument.

2014-04-11  Jon Honeycutt  <jhoneycutt@apple.com>

        Assertion failure changing select element size during focus event
        dispatch
        <https://bugs.webkit.org/show_bug.cgi?id=131566>
        <rdar://problem/16400735>

        Reviewed by Andy Estes.

        Test: fast/forms/select-change-size-during-focus.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
        Adopt the fix from Chromium r171216; check that the renderer is still
        of the expected type, and return early if it is not.

2014-04-11  Bem Jones-Bey  <bjonesbe@adobe.com>

        Clear sibling floats while splitting inline flow
        https://bugs.webkit.org/show_bug.cgi?id=130905

        Reviewed by David Hyatt.

        This is a port of a Blink patch by kenrb@chromium.org.
        (https://src.chromium.org/viewvc/blink?revision=169658&view=revision)

        During RenderInline::splitFlow(), floats are cleared on an anonymous
        containingBlock() for the inline being split. This is a problem if
        siblings of the block contain references to the same floats, since the
        float removal code in markSiblingsWithFloatsForLayout() will not later
        find them.

        This change also affects RenderBlock::splitFlow() and
        RenderBoxModelObject::moveChildrenTo, since those are called in
        similar situations as RenderInline::splitFlow().

        Test: fast/block/float/split-inline-sibling-of-float-crash.html

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::removeFloatingObjects): Add call to
            markSiblingsWithFloatsForLayout() before removing floats.

2014-04-11  Gavin Barraclough  <baraclough@apple.com>

        Rollout - Rewrite Function.bind as a builtin
        https://bugs.webkit.org/show_bug.cgi?id=131083

        Unreviewed.

        Rolling out r167020 while investigating a performance regression.

        * bindings/js/JSImageConstructor.cpp:
        (WebCore::JSImageConstructor::finishCreation):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConstructorHelperMethods):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::JSTestEventConstructorConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::JSTestEventTargetConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestException.cpp:
        (WebCore::JSTestExceptionConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        (WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfaceConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorConstructor::finishCreation):
        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestNode.cpp:
        (WebCore::JSTestNodeConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObjConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::JSTestTypedefsConstructor::finishCreation):
        * bindings/scripts/test/JS/JSattribute.cpp:
        (WebCore::JSattributeConstructor::finishCreation):
        * bindings/scripts/test/JS/JSreadonly.cpp:
        (WebCore::JSreadonlyConstructor::finishCreation):

2014-04-11  Myles C. Maxfield  <mmaxfield@apple.com>

        Build Fix after r167151.

        Unreviewed.

        * editing/AlternativeTextController.cpp:
        (WebCore::AlternativeTextController::applyAlternativeTextToRange):

2014-04-10  Jer Noble  <jer.noble@apple.com>

        [EME][Mac] Using KeySession.update([renew]) should trigger KeyMessage event instead of NeedKey event
        https://bugs.webkit.org/show_bug.cgi?id=131527

        Reviewed by Eric Carlson.

        Rather than triggering a needKey() event, necessatating the creation
        of an entirely new MediaKeySession, cause a new key request to be
        created by sending the same initData back into the AVSampleDataParser.

        Also, do some drive-by clean up suggested by Darin in the review for
        r166509.

        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::isEqual): Support an alloc-free equality check between
            Uint8Array and static strings.
        (WebCore::CDMSessionMediaSourceAVFObjC::update):

2014-04-11  David Kilzer  <ddkilzer@apple.com>

        Build fix (r167151): Do not dereference Node::document() before passing to Range::create()
        <https://webkit.org/b/131475>

        Fixes the following build failure:

            WebCore/editing/AlternativeTextController.cpp:275:71: error: indirection requires pointer operand ('WebCore::Document' invalid)
                int paragraphStartIndex = TextIterator::rangeLength(Range::create(*rootNode.document(), &rootNode, 0, paragraphRangeContainingCorrection.get()->startContainer(), paragraphRangeContainingCorrection.get()->startOffset()).get());
                                                                                  ^~~~~~~~~~~~~~~~~~~~

        * editing/AlternativeTextController.cpp:
        (WebCore::AlternativeTextController::applyAlternativeTextToRange):
        Remove unneeded '*' operator since Node::document() returns a
        Document& and Range::create() accepts a Document& for its first
        argument.

2014-04-11  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: memoize nondeterministic attributes of the Navigator interface
        https://bugs.webkit.org/show_bug.cgi?id=131340

        Reviewed by Timothy Hatcher.

        Most attributes of window.navigator do not change very often, but they
        could be easily changed by the user or embedder. So, memoize attribute values.

        This change does not include navigator.mimeTypes and navigator.plugins,
        which will be handled at a different level. <https://webkit.org/b/131341>

        Test: ManualTests/inspector/replay-window-navigator-basic.html

        * page/Navigator.idl: Add Nondeterministic attribute.

2014-04-10  Jer Noble  <jer.noble@apple.com>

        [iOS][WK2] Videos should animate into and out of fullscreen.
        https://bugs.webkit.org/show_bug.cgi?id=131497

        Reviewed by Simon Fraser.

        Use AVPlayerViewController's new enterFullScreenWithCompletionHandler: and exitFullScreenWithCompletionHandler:
        methods to animate into and out of full screen. To do so, use the provided initialFrame and finalFrame screen
        rects to correctly place the AVPlayerViewController's view before entering or exiting fullscreen.

        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        (-[WebVideoFullscreenController enterFullscreen:]): Pass the media element's screen rect.
        (-[WebVideoFullscreenController exitFullscreen]): Ditto.
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVPlayerController playerViewController:shouldExitFullScreenWithReason:]): Renamed from shouldDismissWithReason.
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen): Use the new AVKit APIs.
        (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Ditto.
        * WebCore.exp.in: Modify the exported symbols for enter and exitFullscreen.

2014-04-11  Tim Horton  <timothy_horton@apple.com>

        Support document-relative and custom-frame page overlays
        https://bugs.webkit.org/show_bug.cgi?id=131560
        <rdar://problem/16595556>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::RenderLayerCompositor):
        (WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
        (WebCore::RenderLayerCompositor::setDocumentOverlayRootLayer):
        * rendering/RenderLayerCompositor.h:
        Add the concept of a document overlay layer, which is plugged in as the
        last child of the root content layer. Expose it to WebKit2.

2014-04-09  Myles C. Maxfield  <mmaxfield@apple.com>

        Autocorrection causes ASSERT when replacing alternative string
        https://bugs.webkit.org/show_bug.cgi?id=131475

        Reviewed by Ryosuke Niwa.

        In AlternativeTextController::applyAlternativeTextToRange(), we attempt to create
        a Range that crosses from outside of a shadow root to inside of one. Instead,
        we should keep the Range entirely within the shadow root.

        Test: ManualTests/autocorrection/autocorrection-accept-crash.html

        * editing/AlternativeTextController.cpp:
        (WebCore::AlternativeTextController::applyAlternativeTextToRange):

2014-04-11  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] shape-outside from image doesn't load properly
        https://bugs.webkit.org/show_bug.cgi?id=131491

        Reviewed by Bem Jones-Bey.

        Make RenderImage::imageChanged() call super if there's a shape-outside
        image because the shape-outside imageChanged() logic is in RenderBox.

        Test: http/tests/css/shape-image-file.html

        * rendering/RenderElement.h:
        (WebCore::RenderElement::hasShapeOutside):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::imageChanged):

2014-04-11  Brady Eidson  <beidson@apple.com>

        Aggregate multiple "respondToChangedSelection" calls to one scan for telephone numbers
        https://bugs.webkit.org/show_bug.cgi?id=131559

        Reviewed by Gavin Barraclough.

        No new tests (Perf-only change to an untested feature)

        * editing/Editor.cpp:
        (WebCore::Editor::Editor):
        (WebCore::Editor::respondToChangedSelection): Start a one shot timer for scanSelectionForTelephoneNumbers
          instead of scanning synchronously.
        (WebCore::Editor::scanSelectionForTelephoneNumbers):
        * editing/Editor.h:

2014-04-11  Antti Koivisto  <antti@apple.com>

        Try to fix windows build.
        
        * platform/graphics/ca/GraphicsLayerCA.h:

2014-04-11  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed follow-up for r167145

        * English.lproj/mediaControlsLocalizedStringsiOS.js:
        (mediaControlsLocalizedStringsiOS): Use smart-quote in
        message string.

2014-04-11  Brent Fulgham  <bfulgham@apple.com>

        Regression: media controls and status messages are no longer localized.
        https://bugs.webkit.org/show_bug.cgi?id=120956

        Reviewed by Jer Noble.

        * English.lproj/mediaControlsLocalizedStrings.js: Added.
        (mediaControlsLocalizedStrings): Moved from mediaControlsApple.js.
        * English.lproj/mediaControlsLocalizedStringsiOS.js: Added.
        (mediaControlsLocalizedStringsiOS): Moved from mediaControlsiOS.js.
        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.UIString): Get strings from external file.
        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.UIString): Ditto.
        * WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Copy to Windows bundle.
        * WebCore.xcodeproj/project.pbxproj: Copy new files to bundle.
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::mediaControlsScript): Load the locale-specific
        string resource when loading the media controls.
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::mediaControlsScript): Ditto.
        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::mediaControlsScript): Ditto.

2014-04-11  Brent Fulgham  <bfulgham@apple.com>

        [Win] Build fix after r167138

        * platform/graphics/ca/GraphicsLayerCA.h: The TileController is
        only available on Mac/Cocoa builds.

2014-04-11  Mark Lam  <mark.lam@apple.com>

        JSMainThreadExecState::call() should clear exceptions before returning.
        <https://webkit.org/b/131530>

        Reviewed by Geoffrey Garen.

        Test: fast/dom/regress-131530.html

        Previously, JSMainThreadExecState::call() did not clear any pending
        exceptions in the VM before returning.  On returning, the
        JSMainThreadExecState destructor may re-enter the VM to notify
        MutationObservers.  This may result in a crash because the VM expects
        exceptions to be cleared at entry.

        We now change JSMainThreadExecState::call() to return the exception
        (if present) via an argument, and clear it from the VM before returning.

        As part of this change, I updated various parts of the code base to use the
        new API as needed.

        * bindings/js/JSCallbackData.cpp:
        (WebCore::JSCallbackData::invokeCallback):
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/js/JSDOMGlobalObjectTask.cpp:
        - Assert that there's no unhandled exception after the Microtask returns.
          See comment for WebCore::JSMainThreadExecState::runTask below for more
          details.

        * bindings/js/JSErrorHandler.cpp:
        (WebCore::JSErrorHandler::handleEvent):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::open):
        - Document.open() cannot be the first function on the JS stack.  Hence,
          there is no need to use JSMainThreadExecState to call into the VM, as
          this is only needed to catch the event of returning from the first
          function for the purpose of notifying MutationObservers.  Change to
          call JSC::call() directly.

        * bindings/js/JSMainThreadExecState.cpp:
        (WebCore::functionCallHandlerFromAnyThread):
        * bindings/js/JSMainThreadExecState.h:
        (WebCore::JSMainThreadExecState::call):
        (WebCore::JSMainThreadExecState::evaluate):
        - Remove the explicitly acquisition of the JSLock here because we now
          acquire the JSLock as part of the JSMainThreadExecState instance.
        (WebCore::JSMainThreadExecState::runTask):
        - Added an assert to verify that the task does not return with an
          unhandled exception.  Currently, the only Microtask in use is for the
          Promise implementation, which will eat the exception before returning.
          This assertion is added here to verify that this contract does not
          inadvertantly change in the future.
        (WebCore::JSMainThreadExecState::JSMainThreadExecState):
        - Now acquires the JSLock as well since by definition, we're only
          instantiating the JSMainThreadExecState because we're about to enter
          the VM.

        * bindings/js/JSMutationCallback.cpp:
        (WebCore::JSMutationCallback::call):
        * bindings/js/JSNodeFilterCondition.cpp:
        (WebCore::JSNodeFilterCondition::acceptNode):
        - acceptNode() is only used in the TreeWalker and NodeIterator APIs which
          cannot be the first function on the JS stack.  Hence, we should call
          JSC::call() directly instead of going through JSMainThreadExecState.

        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::executeFunctionInContext):
        * bindings/objc/WebScriptObject.mm:
        (WebCore::addExceptionToConsole):
        (-[WebScriptObject callWebScriptMethod:withArguments:]):

2014-04-11  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: CodeGeneratorJS should guard includes of replay-related headers
        https://bugs.webkit.org/show_bug.cgi?id=131407

        Reviewed by Timothy Hatcher.

        This patch adds guards to headers that are only required by generated replay code
        that is itself guarded. Other ports probably haven't added the headers to their
        build files, so we don't want to emit the unused header includes.

        This patch also converts generated uses of DEFINE_STATIC_LOCAL to NeverDestroyed<T>.
        Finally, a new bindings test was added to document changes to generated replay code.

        Test: Source/WebCore/bindings/scripts/test/TestNondeterministic.idl

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (GenerateImplementationFunctionCall):

        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.cpp: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.h: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministic.symbols: Added.
        * bindings/scripts/test/GObject/WebKitDOMTestNondeterministicPrivate.h: Added.
        * bindings/scripts/test/JS/JSTestNondeterministic.cpp: Added.
        * bindings/scripts/test/JS/JSTestNondeterministic.h: Added.
        * bindings/scripts/test/ObjC/DOMTestNondeterministic.h: Added.
        * bindings/scripts/test/ObjC/DOMTestNondeterministic.mm: Added.
        * bindings/scripts/test/ObjC/DOMTestNondeterministicInternal.h: Added.
        * bindings/scripts/test/TestNondeterministic.idl: Added.

2014-04-11  Antti Koivisto  <antti@apple.com>

        Pipe initial scale factor to TileController
        https://bugs.webkit.org/show_bug.cgi?id=131521

        Reviewed by Tim Horton.

        * WebCore.exp.in:
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::setZoomedOutPageScaleFactor):
        * page/Page.h:
        (WebCore::Page::zoomedOutPageScaleFactor):
        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::zoomedOutPageScaleFactor):
        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateContentsScale):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/mac/TileController.h:
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::TileController):
        (WebCore::TileController::setContentsScale):
        (WebCore::TileController::setZoomedOutContentsScale):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::zoomedOutPageScaleFactor):
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::zoomedOutPageScaleFactor):
        * rendering/RenderLayerCompositor.h:

2014-04-10  Chris Fleizach  <cfleizach@apple.com>

        Heap-use-after-free in WebCore::SpeechSynthesisUtterance::startTime
        https://bugs.webkit.org/show_bug.cgi?id=131482

        Reviewed by David Kilzer.

        Hold onto the utterance until it has time to fire, in case other references have been removed.

        Merged from Blink r171077 by <dmazzoni@chromium.org>

        Test: platform/mac/fast/speechsynthesis/speech-synthesis-gc-utterance-crash.html

        * Modules/speech/SpeechSynthesis.cpp:
        (WebCore::SpeechSynthesis::handleSpeakingCompleted):

2014-04-11  Zan Dobersek  <zdobersek@igalia.com>

        Avoid Vector copies in RenderGrid::placeItemsOnGrid()
        https://bugs.webkit.org/show_bug.cgi?id=131452

        Reviewed by Sergio Villar Senin.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid): Take in a const reference to the
        Vector object. Make the for-loop that iterates through it range-based.
        (WebCore::RenderGrid::placeAutoMajorAxisItemsOnGrid): Ditto.
        * rendering/RenderGrid.h:

2014-04-11  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remove shared PageScriptDebugServer, create per-Page
        https://bugs.webkit.org/show_bug.cgi?id=131523

        Reviewed by Timothy Hatcher.

        Having a shared PageScriptDebugServer was causing issues when we called
        JSC::Debugger::clearBreakpoints() closing one inspector while another
        is open for another WebCore::Page in the same process. Having the same
        JSC::Debugger underlying multiple InspectorDebuggerAgent instances
        means that when clearBreakpoints is called, the real JSC breakpoints
        underlying other InspectorDebuggerAgent's get removed. When those
        InspectorDebuggerAgents attempt to remove their breakpoints they
        encounter unexpected issues.

        This entirely rebuilds PageScriptDebugServer to be per-Page instead
        of shared across all pages. So take this opportunity to move the
        file from WebCore/bindings/js to WebCore/inspector.

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/PageScriptDebugServer.h: Removed.
        * inspector/InspectorAllInOne.cpp:
        Move PageScriptDebugServer.

        * inspector/InspectorController.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        Set the ScriptDebugServer directly on some other agents that
        were previously using the global debug server.

        * inspector/InspectorProfilerAgent.h:
        (WebCore::InspectorProfilerAgent::scriptDebugServer):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
        (WebCore::InspectorProfilerAgent::setScriptDebugServer):
        (WebCore::InspectorProfilerAgent::start):
        (WebCore::InspectorProfilerAgent::willDestroyFrontendAndBackend): Deleted.
        * inspector/InspectorTimelineAgent.h:
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::start):
        (WebCore::InspectorTimelineAgent::stop):
        (WebCore::InspectorTimelineAgent::setPageScriptDebugServer):
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        Refactor these two agents to take in a script debug server.
        The server is expected to be set during initialization and
        to always be valid (like debug server on RuntimeAgent).

        * inspector/PageDebuggerAgent.h:
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::PageDebuggerAgent):
        (WebCore::PageDebuggerAgent::startListeningScriptDebugServer):
        (WebCore::PageDebuggerAgent::stopListeningScriptDebugServer):
        (WebCore::PageDebuggerAgent::scriptDebugServer):
        Have PageDebuggerAgent hold the PageScriptDebugServer.
        Update for the simplified interfaces.

        * inspector/PageScriptDebugServer.h: Added.
        * inspector/PageScriptDebugServer.cpp: Renamed from Source/WebCore/bindings/js/PageScriptDebugServer.cpp.
        (WebCore::PageScriptDebugServer::PageScriptDebugServer):
        (WebCore::PageScriptDebugServer::addListener):
        (WebCore::PageScriptDebugServer::removeListener):
        (WebCore::PageScriptDebugServer::recompileAllJSFunctions):
        (WebCore::PageScriptDebugServer::didPause):
        (WebCore::PageScriptDebugServer::didContinue):
        (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
        (WebCore::PageScriptDebugServer::runEventLoopWhilePausedInternal):
        (WebCore::PageScriptDebugServer::isContentScript):
        (WebCore::PageScriptDebugServer::reportException):
        (WebCore::PageScriptDebugServer::setJavaScriptPaused):
        Model after JSGlobalObjectScriptDebugServer, the PageScriptDebugServer
        holds a reference to a Page.

2014-04-11  Bear Travis  <betravis@adobe.com>

        [CSS Shapes] inset args and radial args should serialize to the simplest form
        https://bugs.webkit.org/show_bug.cgi?id=129825

        Reviewed by Dirk Schulze.

        Modify inset serialization to omit components where possible. The insets simplify
        according to the margin shorthand, while the corner radii simplify according to
        the border-radius shorthand.

        Modifying existing parsing tests.

        * css/CSSBasicShapes.cpp:
        (WebCore::buildInsetRadii): Add the necessary radii, omitting components where possible.
        (WebCore::buildInsetString): Omit components where possible.

2014-04-11  Praveen R Jadhav  <praveen.j@samsung.com>

        "playbackTime" parameter is not present in AudioProcessingEvent Interface as per W3C spec
        https://bugs.webkit.org/show_bug.cgi?id=105518

        Reviewed by Jer Noble.

        Attribute "playbackTime" in AudioProcessingEvent implemented to pass playback time of
        audiobuffer associated with ScriptProcessorNode of the context.
 
        Reference: https://codereview.chromium.org/210973002

        Spec: http://www.w3.org/TR/webaudio/#AudioProcessingEvent

        Test: webaudio/audioprocessingevent.html

        * Modules/webaudio/AudioProcessingEvent.cpp:
        (WebCore::AudioProcessingEvent::create):
        (WebCore::AudioProcessingEvent::AudioProcessingEvent):
        * Modules/webaudio/AudioProcessingEvent.h:
        (WebCore::AudioProcessingEvent::playbackTime):
        * Modules/webaudio/AudioProcessingEvent.idl:
        * Modules/webaudio/ScriptProcessorNode.cpp:
        (WebCore::ScriptProcessorNode::fireProcessEvent):

2014-04-11  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: WK1: Trail of cruft in redraw during animations.
        https://bugs.webkit.org/show_bug.cgi?id=131525

        Reviewed by Simon Fraser.

        Use enclosing rect instead of snapping to make sure the repaint rect always
        covers the dirty area when painting is requested in a non-compositing RenderView.
        This only applies to WK1 as WK2 has compositing RenderView and the repainting 
        is managed by RenderLayerBacking.

        This is a temporary solution until after ScrollView/FrameView/RenderView
        is transitioned to device pixels. (tracked here: webkit.org/b/131526).

        Test: fast/repaint/hidpi-block-width-change-leaves-cruft.html

        * rendering/RenderView.cpp:
        (WebCore::RenderView::repaintViewRectangle):

2014-04-10  Dean Jackson  <dino@apple.com>

        WebGL: need error checking after texture uploads
        https://bugs.webkit.org/show_bug.cgi?id=62902
        rdar://problem/9640309

        Reviewed by Brent Fulgham.

        A followup to Darin's r167109. We need to also check for errors
        in the texImage2D case.

        This is difficult to reproducibly test because it would require
        attempting to exhaust GPU memory.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::compressedTexImage2D): Check for errors by calling
        moveErrorsToSyntheticErrorList twice, once before and once after. If an error
        occurred, explicitly mark the texture as invalid.
        (WebCore::WebGLRenderingContext::texImage2DBase): Ditto.
        * html/canvas/WebGLTexture.cpp:
        (WebCore::WebGLTexture::markInvalid): If the LevelInfo exists for this
        mipmap level, then set the valid flag to false. There is a chance that
        a previous call to texImage2D succeeded for this level, but it's probably
        better to assume that is now invalid.
        * html/canvas/WebGLTexture.h: New markInvalid method.

2014-04-10  Darin Adler  <darin@apple.com>

        WebGL: need error checking after texture and buffer uploads in some cases
        https://bugs.webkit.org/show_bug.cgi?id=62902
        rdar://problem/9640309

        Reviewed by Dean Jackson.

        Not clear how to write a test for this.

        * html/canvas/WebGLBuffer.cpp:
        (WebCore::WebGLBuffer::disassociateBufferData): Added.
        * html/canvas/WebGLBuffer.h: Added disassociateBufferData.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::bufferData): Check for errors by calling
        moveErrorsToSyntheticErrorList twice, once before and once after. If an error
        occurred, call the WebGLBuffer so it doesn't think it has data.
        (WebCore::WebGLRenderingContext::bufferSubData): Ditto.

        * platform/graphics/GraphicsContext3D.h: Added moveErrorsToSyntheticErrorList.

        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::moveErrorsToSyntheticErrorList): Added. Calls
        glError and moves any errors to the synthetic error list.
        (WebCore::GraphicsContext3D::getError): Added call to moveErrorsToSyntheticErrorList
        to preserve error ordering.
        (WebCore::GraphicsContext3D::synthesizeGLError): Ditto.

2014-04-10  Enrica Casucci  <enrica@apple.com>

        iOS build fix to deal with CoreText changes.
        
        Reviewed by Benjamin Poulain.
        
        This is a temporary fix until CT fixes the issue.

        * rendering/RenderThemeIOS.mm:

2014-04-10  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167073.
        https://bugs.webkit.org/show_bug.cgi?id=131516

        This patch caused crashes in video tests. (Requested by
        mrobinson on #webkit).

        Reverted changeset:

        "[GStreamer] No CORS support for media elements"
        https://bugs.webkit.org/show_bug.cgi?id=99037
        http://trac.webkit.org/changeset/167073

2014-04-10  Beth Dakin  <bdakin@apple.com>

        Radio buttons are using the wrong sizes and margins
        https://bugs.webkit.org/show_bug.cgi?id=131503

        Reviewed by Jer Noble.

        This is a regression that I caused recently when I combined radio button and 
        checkbox code. 
        * platform/mac/ThemeMac.mm:
        (WebCore::paintToggleButton):

2014-04-08  Jon Honeycutt  <jhoneycutt@apple.com>

        Assertion failure in WebCore::FlexBoxIterator::next()
        <https://bugs.webkit.org/show_bug.cgi?id=117176>
        <rdar://problem/14054549>

        Code added in r115687 began removing anonymous wrappers when children
        become inline. However, there are some objects, like
        RenderDeprecatedFlexBox, whose children should always be blocks.

        Reviewed by Tim Horton.

        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::canCollapseAnonymousBlockChild):
        Made public.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::removeAnonymousWrappersForInlinesIfNecessary):
        Return early if we can't collapse anonymous block children.

2014-04-07  Jon Honeycutt  <jhoneycutt@apple.com>

        Assertion failure, !node || node->isElementNode(), in
        WebCore::RenderBlock::clone()
        <https://bugs.webkit.org/show_bug.cgi?id=110489>
        <rdar://problem/13666425>

        Reviewed by Antti Koivisto.

        We're ending up in RenderBlock::splitBlocks() with |this| ==
        |fromBlock|.  We then try to climb the ancestor block chain from
        this->parent() to |fromBlock|, but this->parent() is already above
        |fromBlock|, so we end up climbing up to the RenderView and trying to
        clone it, causing the assertion failure.

        Adopt Chromium's mitigation for this from
        <https://codereview.chromium.org/13852041>. This is not intended as a
        fix for the underlying issue.

        Also, fix another issue that occurs with this fuzzed test case that's
        not handled by the Chromium fix.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::splitBlocks):
        Ensure while we're in the loop that |curr| is a descendant of
        |fromBlock|. From the Chromium patch:

            We need to check in every iteration of the loop because
            moveChildrenTo could have moved |curr|. This is a mitigation and
            not really a fix against a class of tree craziness.

        Finally, before moving children from |fromBlock| to |toBlock|, ensure
        that the children are children of |fromBlock|. If we never entered the
        loop, they will be siblings of |fromBlock|, not children.

2014-04-10  Enrica Casucci  <enrica@apple.com>

        Build fix after http://trac.webkit.org/changeset/167085.

        Reviewed by Timothy Hatcher.

        * plugins/PluginData.h:

2014-04-10  Zalan Bujtas  <zalan@apple.com>

        Web Inspector: Breakpoint in gutter has clipped / broken border image.
        https://bugs.webkit.org/show_bug.cgi?id=131500

        Reviewed by Joseph Pecoraro.

        Typo in r166925.

        Test: fast/borders/border-image-slice-missing-right.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintNinePieceImage):

2014-04-10  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: expose aria-busy state of current and ancestor nodes
        https://bugs.webkit.org/show_bug.cgi?id=130826

        Reviewed by Timothy Hatcher.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        Expose if node is contained by any "busy" ancestor nodes, too.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

2014-04-10  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remove unused ruler in overlay code
        https://bugs.webkit.org/show_bug.cgi?id=131507

        Reviewed by Timothy Hatcher.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::highlightConfigFromInspectorObject):
        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForHighlight):
        * inspector/InspectorOverlay.h:
        (WebCore::Highlight::Highlight):
        (WebCore::Highlight::setDataFromConfig):
        * inspector/InspectorOverlayPage.js:
        (_drawFragmentHighlight):
        (_drawRegionNumber): Deleted.
        (quadToPath): Deleted.
        (drawOutlinedQuad): Deleted.
        (pathCommand): Deleted.
        (drawPath): Deleted.
        (drawOutlinedQuadWithClip): Deleted.
        (quadEquals): Deleted.
        (drawGutter): Deleted.
        (drawNodeHighlight): Deleted.
        (drawQuadHighlight): Deleted.
        (setPlatform): Deleted.
        (dispatch): Deleted.
        (log): Deleted.

2014-04-10  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: memoize plugin data for navigator.mimeTypes and navigator.plugins
        https://bugs.webkit.org/show_bug.cgi?id=131341

        Reviewed by Timothy Hatcher.

        Information about plugins and mime types is nondeterministic and can change
        at any time, whether by system events, browser settings changes, or
        triggered by script. To avoid interposing on all those code paths, just
        memoize the plugin data used by DOMPluginArray and DOMMimeTypeArray.

        This is less efficient than controlling mutations to the underlying PluginData
        of a Page, but that can be done later if better plugin support is desired.
        The point of this change is to make analytics trackers deterministic across
        enabling/disabling of plugins.

        Test: LayoutTests/inspector/window-navigator-plugins-memoized.hml

        * plugins/DOMMimeTypeArray.cpp:
        (WebCore::DOMMimeTypeArray::getPluginData):
        * plugins/DOMPluginArray.cpp:
        (WebCore::DOMPluginArray::pluginData): Save or restore memoized plugin
        data during capture and replay, respectively.

        * plugins/PluginData.h:
        (WebCore::PluginData::PluginData): Add a constructor that uses the
        provided plugin data rather than fetching live plugin data. This is
        marked protected so it's only used by a subclass specifically for
        deserialization.

        * replay/SerializationMethods.cpp: Add encoder specializations.
        (JSC::EncodingTraits<MimeClassInfo>::encodeValue):
        (JSC::EncodingTraits<MimeClassInfo>::decodeValue):
        (JSC::EncodingTraits<PluginInfo>::encodeValue):
        (JSC::EncodingTraits<PluginInfo>::decodeValue):
        (JSC::EncodingTraits<PluginData>::encodeValue):
        (JSC::DeserializedPluginData::DeserializedPluginData): Add a custom
        subclass of PluginData that can be initialized from deserialized data.
        (JSC::EncodingTraits<PluginData>::decodeValue):
        * replay/SerializationMethods.h:
        * replay/WebInputs.json: Add new input FetchPluginData.

2014-04-10  Myles C. Maxfield  <mmaxfield@apple.com>

        Remove "System Font" from character width calculations
        https://bugs.webkit.org/show_bug.cgi?id=131411

        Reviewed by Tim Horton.

        Covered by existing tests

        * platform/graphics/Font.cpp:
        (WebCore::Font::hasValidAverageCharWidth):

2014-04-10  Bem Jones-Bey  <bjonesbe@adobe.com>

        Invalid cast in WebCore::RenderLayer::setupClipPath
        https://bugs.webkit.org/show_bug.cgi?id=131368

        Reviewed by Dirk Schulze.

        Only attempt to clip to a box shape if the renderer being clipped is
        actually a box.

        Test: css3/masking/clip-path-box-shape-on-inline-crash.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setupClipPath): Add isBox() check.

2014-04-10  Owen Taylor  <otaylor@redhat.com>

        [GTK] Remove a comment that was incorrectly cut-and-pasted from WidgetBackingStoreCairo
        https://bugs.webkit.org/show_bug.cgi?id=131499

        Reviewed by Martin Robinson.

        * platform/gtk/WidgetBackingStoreGtkX11.cpp: Remove a comment that was incorrectly copy and pasted
        from the Cairo implementation.

2014-04-09  Alexey Proskuryakov  <ap@apple.com>

        Eliminate DragSession structure
        https://bugs.webkit.org/show_bug.cgi?id=131465

        Reviewed by Benjamin Poulain.

        DragSession is really just a transient response to NSDragDestination delegate methods.
        The "session" name was quite misleading, and thankfully, we don't need a class for this
        bag of data at all.

        * WebCore.xcodeproj/project.pbxproj:
        * page/DragController.cpp:
        (WebCore::DragController::DragController):
        (WebCore::DragController::dragEntered):
        (WebCore::DragController::dragUpdated):
        (WebCore::DragController::dragEnteredOrUpdated):
        (WebCore::DragController::tryDocumentDrag):
        * page/DragController.h:
        (WebCore::DragController::mouseIsOverFileInput):
        (WebCore::DragController::numberOfItemsToBeAccepted):
        * page/DragSession.h: Removed.

2014-04-10  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [GStreamer] No CORS support for media elements
        https://bugs.webkit.org/show_bug.cgi?id=99037

        Reviewed by Philippe Normand.

        Added CORS access control check to media sources when crossorigin attribute is set.

        Added getter to CORS access control check status (used to compute whether the stream is tainted or not).
        Related test is http/tests/security/video-cross-origin-readback.html.

        Disabled access to cross-origin streams that fail CORS check when crossorigin attribute is set.
        Related test is http/tests/security/video-cross-origin-accessfailure.html.

        Tests: http/tests/security/video-cross-origin-accessfailure.html
               http/tests/security/video-cross-origin-accesssameorigin.html

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::didPassCORSAccessCheck): Return whether media is cross-origin (tainted) or not by querying the gstreamer source layer.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h: Added MediaPlayerPrivateGStreamer::didPassCORSAccessCheck declaration.
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcStart): Passed CORS mode parameter to the streaming client. In case of CORS check failure, stop the resource loading.
        (webKitSrcPassedCORSAccessCheck): Return whether CORS access control check was done and successful.
        (StreamingClient::handleResponseReceived): Take a parameter to assign the CORS access control check result.
        (CachedResourceStreamingClient::CachedResourceStreamingClient): Updated setting of the ResourceLoaderOptions according CORS mode.
        (CachedResourceStreamingClient::responseReceived): Check CORS and pass result to handleResponseReceived.
        (ResourceHandleStreamingClient::didReceiveResponse): No CORS check.
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.h: Added webKitSrcPassedCORSAccessCheck declaration.

2014-04-10  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Move UseJSC.cmake back to CMakeLists.txt
        https://bugs.webkit.org/show_bug.cgi?id=130834

        Reviewed by Csaba Osztrogonác.

        No new tests required.

        * CMakeLists.txt:
        * UseJSC.cmake: Removed.

2014-04-09  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r167046.
        https://bugs.webkit.org/show_bug.cgi?id=131479

        Caused 300+ failures on Mavericks WK1 tester (Requested by ap
        on #webkit).

        Reverted changeset:

        "Remove "System Font" from whitelisted DRT fonts and char
        width calculations"
        https://bugs.webkit.org/show_bug.cgi?id=131411
        http://trac.webkit.org/changeset/167046

2014-04-09  Jeremy Jones  <jeremyj@apple.com>

        Fix build failure.
        https://bugs.webkit.org/show_bug.cgi?id=131473

        Reviewed by Dan Bernstein.

        Fix build failure.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (mediaSelectionOptions):

2014-04-09  Enrica Casucci  <enrica@apple.com>

        Unreviewed build fix after http://trac.webkit.org/changeset/167045

        The file contained an invalid character.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):

2014-04-09  Dean Jackson  <dino@apple.com>

        [iOS] Media controls should resize as the user zooms
        https://bugs.webkit.org/show_bug.cgi?id=131322

        Reviewed by Eric Carlson.

        On iOS the media controls should remain the same size
        independent of user zoom. Have the HTMLMediaElement optionally
        register for updates in the page scale to apply an inverse
        scale.

        * Modules/mediacontrols/MediaControlsHost.cpp: New exposed property that calls
        back into HTMLMediaElement::mediaControlsDependOnPageScaleFactor.
        (WebCore::MediaControlsHost::controlsDependOnPageScaleFactor):
        (WebCore::MediaControlsHost::setControlsDependOnPageScaleFactor):
        * Modules/mediacontrols/MediaControlsHost.h: Keep a reference to the actual
        controls from the JavaScript side so we can talk to it later.
        (WebCore::MediaControlsHost::controllerJSValue):
        (WebCore::MediaControlsHost::setControllerJSValue):
        * Modules/mediacontrols/MediaControlsHost.idl: Expose controlsDependOnPageScaleFactor.

        * Modules/mediacontrols/mediaControlsiOS.css:
        (audio::-webkit-media-controls-panel): Specify the transform origin so that
        scaling will keep the controls pinned to the bottom left corner.
        (audio::-webkit-media-controls-start-playback-button): Update to the correct size
        and provide new artwork.
        (audio::-webkit-media-controls-start-playback-button.failed): New artwork.
        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS): Tell the host that these controls care about the page scale.
        (ControllerIOS.prototype.get pageScaleFactor): New getter.
        (ControllerIOS.prototype.set pageScaleFactor): When set, update the play button and the panel.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::ensureMediaControlsInjectedScript): Small naming cleanup.
        (setPageScaleFactorProperty): Static helper to set a JS property value.
        (WebCore::HTMLMediaElement::didAddUserAgentShadowRoot): Keep a reference to the controls object,
        and make sure to set the page scale factor on the controls.
        (WebCore::HTMLMediaElement::pageScaleFactorChanged): Implement the callback, telling
        the controls object that it needs to relayout.

2014-04-09  Antti Koivisto  <antti@apple.com>

        Try to fix iOS build.

        * platform/graphics/ca/mac/TileController.mm:

2014-04-09  Andy Estes  <aestes@apple.com>

        REGRESSION (r165908): ~QuickLookHandle() tries to dereference a null ResourceHandle
        https://bugs.webkit.org/show_bug.cgi?id=131467

        Reviewed by Tim Horton.

        QuickLookHandle stored a ResourceHandle pointer in order to later
        retrive the URL of its firstRequest(), but after r165908 we no longer
        always have a ResourceHandle. Since firstRequest()'s URL is the only
        thing we need from ResourceHandle, store it directly rather than a
        ResourceHandle pointer. In the case where we create a QuickLookHandle
        from a ResourceLoader rather than a ResourceHandle, pass the loader's
        originalRequest(), which represents the same request as firstRequest()
        (i.e. the request after willSendRequest() but before redirects).

        * platform/network/ios/QuickLook.h:
        * platform/network/ios/QuickLook.mm:
        (WebCore::QuickLookHandle::QuickLookHandle):
        (WebCore::QuickLookHandle::create):
        (WebCore::QuickLookHandle::didFail):
        (WebCore::QuickLookHandle::~QuickLookHandle):

2014-04-09  James Craig  <jcraig@apple.com>

        AX: Bug in AccessibilityNodeObject::helpText
        https://bugs.webkit.org/show_bug.cgi?id=130386

        Reviewed by Chris Fleizach.

        Test: accessibility/help-text.html

        Ancestor loop was always checking attribute of original node rather than current node.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::helpText):

2014-04-09  Chris Fleizach  <cfleizach@apple.com>

        Regression: AX: list heuristics sometimes determined as presentational even when explicit roles applied
        https://bugs.webkit.org/show_bug.cgi?id=131041

        Reviewed by Mario Sanchez Prada.

        When display:table is used on a list item, it inserts RenderObjects that can be ignored as the children
        of the list. This allows normal list heuristics to be applied.

        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::computeAccessibilityIsIgnored):

2014-04-09  Antti Koivisto  <antti@apple.com>

        TileGrid should be PlatformCALayerClient instead of TileController
        https://bugs.webkit.org/show_bug.cgi?id=131456
        
        Switch one more place to use removeTiles.

        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::revalidateTiles):

2014-04-09  Myles C. Maxfield  <mmaxfield@apple.com>

        Remove "System Font" from whitelisted DRT fonts and char width calculations
        https://bugs.webkit.org/show_bug.cgi?id=131411

        Reviewed by Tim Horton.

        Covered by existing tests.

        * platform/graphics/Font.cpp:
        (WebCore::Font::hasValidAverageCharWidth):

2014-04-09  Jeremy Jones  <jeremyj@apple.com>

        Fullscreen does two view controller changes at once
        https://bugs.webkit.org/show_bug.cgi?id=131432

        Reviewed by Eric Carlson.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
        delay -presentViewController on the main run loop to allow
        previous view controller change to complete.

2014-04-09  Jeremy Jones  <jeremyj@apple.com>

        Enable fullscreen captions selection
        https://bugs.webkit.org/show_bug.cgi?id=131069

        Reviewed by Eric Carlson.

        Enable media selection options from fullscreen. i.e. captions.

        * WebCore.exp.in:
        Add exports for 
        setAudioMediaSelectionOptions
        setLegibleMediaSelectionOptions
        selectAudioMediaOption
        selectLegibleMediaOption

        * platform/ios/WebVideoFullscreenInterface.h:
        Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions

        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        Add setAudioMediaSelectionOptions/setLegibleMediaSelectionOptions

        (-[WebAVPlayerController dealloc]):
        (-[WebAVPlayerController hasMediaSelectionOptions]):
        (+[WebAVPlayerController keyPathsForValuesAffectingHasMediaSelectionOptions]):
        (-[WebAVPlayerController hasAudioMediaSelectionOptions]):
        (+[WebAVPlayerController keyPathsForValuesAffectingHasAudioMediaSelectionOptions]):
        (-[WebAVPlayerController hasLegibleMediaSelectionOptions]):
        (+[WebAVPlayerController keyPathsForValuesAffectingHasLegibleMediaSelectionOptions]):
        (-[WebAVPlayerController currentAudioMediaSelectionOption]):
        (-[WebAVPlayerController setCurrentAudioMediaSelectionOption:]):
        (-[WebAVPlayerController currentLegibleMediaSelectionOption]):
        (-[WebAVPlayerController setCurrentLegibleMediaSelectionOption:]):
        (WebVideoFullscreenInterfaceAVKit::setAudioMediaSelectionOptions):
        (WebVideoFullscreenInterfaceAVKit::setLegibleMediaSelectionOptions):
        * platform/ios/WebVideoFullscreenModel.h:
        Add selectAudioMediaOption/selectLegibleMediaOption

        * platform/ios/WebVideoFullscreenModelMediaElement.h:
        Add selectAudioMediaOption/selectLegibleMediaOption

        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        Add selectAudioMediaOption/selectLegibleMediaOption

        (WebVideoFullscreenModelMediaElement::setMediaElement):
        Send initial media selection options.

        (WebVideoFullscreenModelMediaElement::selectAudioMediaOption):
        Will be implemented when audio track slection is implemented.

        (WebVideoFullscreenModelMediaElement::selectLegibleMediaOption):
        Select corresponding text track on HTMLMediaElement.

2014-04-09  Antti Koivisto  <antti@apple.com>

        TileGrid should be PlatformCALayerClient instead of TileController
        https://bugs.webkit.org/show_bug.cgi?id=131456

        Reviewed by Tim Horton.

        The client interface is for the tiles in the grid.

        * platform/graphics/ca/mac/TileController.h:
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::setContentsScale):
        (WebCore::TileController::createTileLayer):
        (WebCore::TileController::platformCALayerPaintContents): Deleted.
        (WebCore::TileController::platformCALayerDeviceScaleFactor): Deleted.
        (WebCore::TileController::platformCALayerShowDebugBorders): Deleted.
        (WebCore::TileController::platformCALayerShowRepaintCounter): Deleted.
        (WebCore::TileController::platformCALayerIncrementRepaintCount): Deleted.
        * platform/graphics/ca/mac/TileGrid.h:
        
            Move repaint counter to TileGrid too.

        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::removeTiles):
        (WebCore::TileGrid::removeAllSecondaryTiles):
        (WebCore::TileGrid::removeTilesInCohort):
        
           Cleaned up tile removal.

        (WebCore::TileGrid::revalidateTiles):
        (WebCore::TileGrid::ensureTilesForRect):
        (WebCore::TileGrid::platformCALayerPaintContents):
        (WebCore::TileGrid::platformCALayerDeviceScaleFactor):
        (WebCore::TileGrid::platformCALayerShowDebugBorders):
        (WebCore::TileGrid::platformCALayerShowRepaintCounter):
        (WebCore::TileGrid::platformCALayerContentsOpaque):
        (WebCore::TileGrid::platformCALayerIncrementRepaintCount):
        (WebCore::queueTileForRemoval): Deleted.

2014-04-09  Alexey Proskuryakov  <ap@apple.com>

        Rename some dragging functions
        https://bugs.webkit.org/show_bug.cgi?id=131460

        Reviewed by Tim Horton.

        Renamed performDrag to performDragOperation. This function is responsible for
        accepting a drop, not for the whole drag.

        The new name is not perfect either, but I think that it's better, and at least
        it matches AppKit, like the other dragging destination functions already do.

        * WebCore.exp.in:
        * page/DragController.cpp:
        (WebCore::DragController::performDragOperation):
        (WebCore::DragController::performDrag): Deleted.
        * page/DragController.h:

2014-04-08  Samuel White  <samuel_white@apple.com>

        AX: Initial text selection point should respect element focus.
        https://bugs.webkit.org/show_bug.cgi?id=131402

        Reviewed by Chris Fleizach.

        Support the case where we want to set the initial selection and there's already a focused element.

        No new tests, updated existing selection-initial to test this functionality.

        * page/EventHandler.cpp:
        (WebCore::setKeyboardSelection):
        (WebCore::handleKeyboardSelectionMovement):

2014-04-09  Ryosuke Niwa  <rniwa@webkit.org>

        HTMLCollection::updateNamedElementCach iterates over items twice
        https://bugs.webkit.org/show_bug.cgi?id=131448

        Reviewed by Andreas Kling.

        Compute the length first and go through the cache interface to traverse through items.

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::updateNamedElementCache):

2014-04-09  Brendan Long  <b.long@cablelabs.com>

        [GStreamer] Expose MPEG-TS metadata
        https://bugs.webkit.org/show_bug.cgi?id=122001

        Reviewed by Eric Carlson.

        Test: media/track/in-band/track-in-band-mpegts-metadata.html

        * CMakeLists.txt: Add InbandDataTextTrack.
        * PlatformGTK.cmake: Look for gstreamer-mpegts and use it if available.
        * WebCore.vcxproj/WebCore.vcxproj: Add InbandDataTextTrack.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Same.
        * WebCore.xcodeproj/project.pbxproj: Same.
        * html/track/DataCue.cpp:
        (WebCore::DataCue::DataCue): Add a constructor using raw data.
        * html/track/DataCue.h:
        (WebCore::DataCue::create): Same.
        * html/track/InbandDataTextTrack.cpp: Added, InbandTextTrack which implements addDataCue().
        * html/track/InbandDataTextTrack.h:
        * html/track/InbandGenericTextTrack.h: Move unimplemented methods to InbandTextTrack.
        * html/track/InbandWebVTTTextTrack.h: Same.
        * html/track/InbandTextTrack.h: Same, and add inBandMetadataTrackDispatchType.
        * html/track/InbandTextTrack.cpp:
        (WebCore::InbandTextTrack::create): Add constructor for InbandDataTextTrack.
        (WebCore::InbandTextTrack::inBandMetadataTrackDispatchType): Added.
        * html/track/TextTrack.h:
        (WebCore::TextTrack::inBandMetadataTrackDispatchType): Added (empty).
        * html/track/TextTrack.idl: Add inBandMetadataTrackDispatchType.
        * platform/graphics/InbandTextTrackPrivate.h: Add inBandMetadataTrackDispatchType and Data format.
        (WebCore::InbandTextTrackPrivate::inBandMetadataTrackDispatchType):
        * platform/graphics/InbandTextTrackPrivateClient.h: Add addDataCue() method.
        * platform/graphics/gstreamer/InbandMetadataTextTrackPrivateGStreamer.h:
        (WebCore::InbandMetadataTextTrackPrivateGStreamer::create): Allow specifying the cue format and id.
         (WebCore::InbandMetadataTextTrackPrivateGStreamer::InbandMetadataTextTrackPrivateGStreamer): Same.
        (WebCore::InbandMetadataTextTrackPrivateGStreamer::setInBandMetadataTrackDispatchType): Added.
        (WebCore::InbandMetadataTextTrackPrivateGStreamer::addDataCue): Added.
        (WebCore::InbandMetadataTextTrackPrivateGStreamer::addGenericCue): Added.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::handleMessage): Check for MPEG-TS sections.
        (WebCore::MediaPlayerPrivateGStreamer::processMpegTsSection): Add MPEG-TS section metadata, and get inBandMetadataTrackDispatchType from the PMT.
        (WebCore::MediaPlayerPrivateGStreamer::processTableOfContents): Explicitly use Generic CueFormat.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

2014-04-08  Chris Fleizach  <cfleizach@apple.com>

        AX: Make AXPress much more reliable on the Web
        https://bugs.webkit.org/show_bug.cgi?id=131426

        Reviewed by Mario Sanchez Prada.

        AXPress fails when an event handler is on a node higher in the parent chain than the focused node.

        We need to make AXPress more reliable by 
            1) Using the element that is focused as the target of the event
            2) Search for the inner most control object when dispatching the event

        Updated existing accessibility/press-works-on-control-types.html

        * accessibility/AccessibilityMenuList.cpp:
        (WebCore::AccessibilityMenuList::press):
        * accessibility/AccessibilityMenuList.h:
        * accessibility/AccessibilityMenuListPopup.cpp:
        (WebCore::AccessibilityMenuListPopup::press):
        * accessibility/AccessibilityMenuListPopup.h:
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::press):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::performDefaultAction):
        * accessibility/AccessibilitySearchFieldButtons.cpp:
        (WebCore::AccessibilitySearchFieldCancelButton::press):
        * accessibility/AccessibilitySearchFieldButtons.h:
        * accessibility/AccessibilitySpinButton.cpp:
        (WebCore::AccessibilitySpinButtonPart::press):
        * accessibility/AccessibilitySpinButton.h:

2014-04-09  Brady Eidson  <beidson@apple.com>

        ContentFilterMac is broken when NE_FILTER_SOURCE is enabled.
        <rdar://problem/15978793> and https://bugs.webkit.org/show_bug.cgi?id=131445

        Reviewed by Andy Estes.

        No new tests (Not a tested feature).

        * platform/mac/ContentFilterMac.mm:
        (WebCore::ContentFilter::needsMoreData): Only consider m_neFilterSourceStatus if m_neFilterSource exists.
        (WebCore::ContentFilter::didBlockData): Ditto.

2014-04-08  Oliver Hunt  <oliver@apple.com>

        Rewrite Function.bind as a builtin
        https://bugs.webkit.org/show_bug.cgi?id=131083

        Reviewed by Geoffrey Garen.

        Switch WebCore to use the helper functions when defining the
        prototype properties on DOM constructors, and update bindings
        tests accordingly.

        * bindings/js/JSImageConstructor.cpp:
        (WebCore::JSImageConstructor::finishCreation):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateConstructorHelperMethods):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::JSTestActiveDOMObjectConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::JSTestCustomNamedGetterConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::JSTestEventConstructorConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::JSTestEventTargetConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestException.cpp:
        (WebCore::JSTestExceptionConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        (WebCore::JSTestGenerateIsReachableConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::JSTestInterfaceConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::JSTestMediaQueryListListenerConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::JSTestNamedConstructorConstructor::finishCreation):
        (WebCore::JSTestNamedConstructorNamedConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestNode.cpp:
        (WebCore::JSTestNodeConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObjConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        (WebCore::JSTestOverloadedConstructorsConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::JSTestSerializedScriptValueInterfaceConstructor::finishCreation):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::JSTestTypedefsConstructor::finishCreation):
        * bindings/scripts/test/JS/JSattribute.cpp:
        (WebCore::JSattributeConstructor::finishCreation):
        * bindings/scripts/test/JS/JSreadonly.cpp:
        (WebCore::JSreadonlyConstructor::finishCreation):

2014-04-09  Enrica Casucci  <enrica@apple.com>

        Unreviewed iOS build fix. Replacing deprecated enum with AVPlayerViewControllerExitFullScreenReason.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVPlayerController playerViewController:shouldDismissWithReason:]):

2014-04-09  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Monolithic elements should not affect the layout of the content outside its region
        https://bugs.webkit.org/show_bug.cgi?id=130499

        Reviewed by David Hyatt.

        When performing layout on an element flowed into regions, its logical height must not be incremented 
        past the region's logical bottom for monolithic elements in regions different than the last region their containing
        block is fragmented into. This ensures that the following elements are correctly laid out 
        from the top of the next region.
        This change must also be applied to floats in order to prevent text from avoiding part
        of a float that did not actually made it into the current region, but instead overflowed
        the previous one.

        Tests: fast/regions/fragmentation-after-float-overflow-single-region.html
               fast/regions/fragmentation-after-monolithic-overflow-self-collapsed.html
               fast/regions/fragmentation-after-monolithic-overflow-single-region.html
               fast/regions/fragmentation-after-monolithic-overflow.html

        * rendering/FloatingObjects.cpp:
        (WebCore::FloatingObjects::computePlacedFloatsTree):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::layoutBlockChild):
        (WebCore::RenderBlockFlow::adjustBlockChildForPagination):
        (WebCore::RenderBlockFlow::lowestFloatLogicalBottom):
        (WebCore::RenderBlockFlow::getClearDelta):
        (WebCore::RenderBlockFlow::applyAfterBreak): Deleted.
        (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelow): Deleted.
        (WebCore::RenderBlockFlow::nextFloatLogicalBottomBelowForBlock): Deleted.
        (WebCore::RenderBlockFlow::flipFloatForWritingModeForChild): Deleted.
        * rendering/RenderBlockFlow.h:
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::isBoxInDifferentRegionsAsFloat):
        * rendering/RenderFlowThread.h:

2014-04-09  Anders Carlsson  <andersca@apple.com>

        Use std::array in AffineTransform, and get rid of setMatrix
        https://bugs.webkit.org/show_bug.cgi?id=131416

        Reviewed by Sam Weinig.

        * platform/graphics/transforms/AffineTransform.cpp:
        (WebCore::AffineTransform::AffineTransform):
        (WebCore::AffineTransform::multiply):
        * platform/graphics/transforms/AffineTransform.h:
        (WebCore::AffineTransform::setMatrix): Deleted.

2014-04-09  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Plugin process crashes when loading totem plugin
        https://bugs.webkit.org/show_bug.cgi?id=131357

        Reviewed by Martin Robinson.

        Remove netscape plugin implementation from WebCore that was only
        used by WebKit1. This removes the conflict between the WebCore NPN
        symbols and the ones used by the plugins.

        * CMakeLists.txt:
        * PlatformEfl.cmake:
        * PlatformGTK.cmake:
        * PlatformWin.cmake:
        * plugins/PluginViewNone.cpp:
        * plugins/gtk/PluginPackageGtk.cpp: Removed.
        * plugins/gtk/PluginViewGtk.cpp: Removed.
        * plugins/gtk/gtk2xtbin.c: Removed.
        * plugins/gtk/gtk2xtbin.h: Removed.
        * plugins/gtk/xembed.h: Removed.

2014-04-09  Jeremy Jones  <jeremyj@apple.com>

        fullscreen controls first show a play button instead of a pause button
        https://bugs.webkit.org/show_bug.cgi?id=131430

        Reviewed by Jer Noble.

        isPlaying() is false while buffering, paused() isn't; use paused() for
        the play button.

        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::setMediaElement):
        (WebVideoFullscreenModelMediaElement::handleEvent):
        Use HTMLMediaElement::paused() instead of HTMLMediaElement::isPlaying()

2014-04-09  Eva Balazsfalvi  <evab.u-szeged@partner.samsung.com>

        Remove duplicated files and unnecessary conditions from UseJSC.cmake
        https://bugs.webkit.org/show_bug.cgi?id=131438

        Reviewed by Csaba Osztrogonác.

        No new tests required.

        * UseJSC.cmake:

2014-04-09  Mario Sanchez Prada  <mario.prada@samsung.com>

        [GTK] Layout tests accessibility/children-changed-sends-notification.html and accessibility/notification-listeners.html fails
        https://bugs.webkit.org/show_bug.cgi?id=131380

        Reviewed by Chris Fleizach.

        Don't emit signals for added objects that we know won't be exposed
        to the accessibility hierarchy (e.g. static text).

        * accessibility/atk/AXObjectCacheAtk.cpp:
        (WebCore::AXObjectCache::attachWrapper): Add extra check and early return.

2014-04-09  Mario Sanchez Prada  <mario.prada@samsung.com>

        [AX][GTK] No new lines in some AX tests output
        https://bugs.webkit.org/show_bug.cgi?id=131294

        Reviewed by Martin Robinson.

        Do not implement Hypetext or AtkText for the WebArea. Those
        interfaces will be implemented by the containers (automatically
        generated or not) for the different parts of the DOM and the
        render subtree under this element anyway.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (getInterfaceMaskFromObject): Make sure we don't apply
        WAIHypertext nor WAIText to objects with role WebAreaRole.

2014-04-08  Conrad Shultz  <conrad_shultz@apple.com>

        nil should only be used for objects
        https://bugs.webkit.org/show_bug.cgi?id=131431

        Reviewed by Chris Fleizach.

        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (-[WebAccessibilityObjectWrapper accessibilityIsAttributeSettable:]):
        nil -> NO.

        * platform/mac/WebVideoFullscreenController.mm:
        (-[WebVideoFullscreenController setMediaElement:]):
        nil -> 0; change a NULL to nullptr while we're here.

2014-04-08  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Crash when video in region exits fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=131366

        Reviewed by Andrei Bucur.

        After fix for https://bugs.webkit.org/show_bug.cgi?id=130392, we compute the region ranges
        information for inline elements collected in named flows with associated region chains.
        The algorithm for this computation, implemented in RenderFlowThread::getRegionRangeForBox,
        walks up the render tree trying to find the top-most unsplittable box under the named flow
        in the case where the region ranges information is not available.

        As this traversal works properly only when the starting box is not detached from the render tree,
        i changed the named flow information clearing in RenderBlock::collapseAnonymousBoxChild
        to occur before the child to be collapsed is removed from the render tree.

        Test: fast/regions/full-screen-video-in-region-crash.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::collapseAnonymousBoxChild):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::getRegionRangeForBox):

2014-04-08  Chris Fleizach  <cfleizach@apple.com>

        Unreviewed build fix for iOS (redux).

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper accessibilityARIAIsBusy]):
        (-[WebAccessibilityObjectWrapper accessibilityARIALiveRegionIsAtomic]):

2014-04-08  Chris Fleizach  <cfleizach@apple.com>
 
        Unreviewed build fix for iOS.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper accessibilityElementCount]):

2014-04-08  Antti Koivisto  <antti@apple.com>

        Factor tile coverage map into a class
        https://bugs.webkit.org/show_bug.cgi?id=131417

        Reviewed by Tim Horton.

        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/ca/PlatformCALayerClient.h:
        (WebCore::PlatformCALayerClient::platformCALayerLayoutSublayersOfLayer):
        (WebCore::PlatformCALayerClient::platformCALayerRespondsToLayoutChanges):
        (WebCore::PlatformCALayerClient::platformCALayerAnimationStarted):
        (WebCore::PlatformCALayerClient::platformCALayerContentsOrientation):
        (WebCore::PlatformCALayerClient::platformCALayerShowDebugBorders):
        (WebCore::PlatformCALayerClient::platformCALayerShowRepaintCounter):
        (WebCore::PlatformCALayerClient::platformCALayerIncrementRepaintCount):
        (WebCore::PlatformCALayerClient::platformCALayerLayerDidDisplay):
        
            Added default implementation to some of these to make clients less messy.

        * platform/graphics/ca/mac/TileController.h:
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::~TileController):
        (WebCore::TileController::platformCALayerPaintContents):
        (WebCore::TileController::setTiledScrollingIndicatorPosition):
        (WebCore::TileController::updateTileCoverageMap):
        (WebCore::TileController::tiledScrollingIndicatorLayer):
        * platform/graphics/ca/mac/TileCoverageMap.h: Added.
        (WebCore::TileCoverageMap::setPosition):
        (WebCore::TileCoverageMap::layer):
        * platform/graphics/ca/mac/TileCoverageMap.mm: Added.
        
            The new class.

        (WebCore::TileCoverageMap::TileCoverageMap):
        (WebCore::TileCoverageMap::~TileCoverageMap):
        (WebCore::TileCoverageMap::update):
        (WebCore::TileCoverageMap::platformCALayerPaintContents):
        (WebCore::TileCoverageMap::platformCALayerDeviceScaleFactor):
        * platform/graphics/ca/mac/TileGrid.h:
        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::drawTileMapContents):

2014-04-08  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Clip outer rounded border rect on device pixel boundaries.
        https://bugs.webkit.org/show_bug.cgi?id=131404

        Reviewed by Simon Fraser.

        Use device pixel snapped rectangle to clip out rounded rects, when not all sides are solid/double.
        Snapping it to device pixel boundaries ensures that when we call drawRect(devicePixelSnappedRect) later,
        it leaves no cruft behind.

        Test: fast/borders/hidpi-rounded-border-on-subpixel-position.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintBorder):

2014-04-08  Jon Lee  <jonlee@apple.com>

        Turn MSE on by default
        https://bugs.webkit.org/show_bug.cgi?id=131313
        <rdar://problem/16525223>

        Reviewed by Jer Noble.

        * Configurations/FeatureDefines.xcconfig:
        * page/Settings.in: Add MEDIA_SOURCE conditional.

2014-04-08  Anders Carlsson  <andersca@apple.com>

        Remove an unused parameter from loadResource.

        Reviewed by Darin Adler.

        Since the CachedResourceRequest has the charset in it, we don't need to pass it separately to loadRequest.

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):
        (WebCore::CachedResourceLoader::loadResource):
        * loader/cache/CachedResourceLoader.h:

2014-04-08  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed EFL build fix attempt since r166956

        * page/efl/DragControllerEfl.cpp: Rename Clipboard to DataTransfer.
        (WebCore::DragController::declareAndWriteDragImage):

2014-04-08  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r155998): Elements render at very low resolution with some 3d transforms
        https://bugs.webkit.org/show_bug.cgi?id=131412
        <rdar://problem/16525044>

        Reviewed by Tim Horton.
        
        In r155998 we started to compute a root-relative transform in order to choose
        a good contentsScale to avoid blurring on scaling.
        
        However, the code failed to update this transform when passing over
        GraphicsLayerCAs with no uncommitted changes, which caused us to choose
        an incorrect contentsScale sometimes, resulting in blurriness.
        
        Fix by updating the root-relative transform on layers with no uncommitted
        changes.

        Test: compositing/contents-scale/incremental-change.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):

2014-04-08  Anders Carlsson  <andersca@apple.com>

        Don't call CGPathAddPath with invalid CGAffineTransform objects
        https://bugs.webkit.org/show_bug.cgi?id=131413
        <rdar://problem/16399645>

        Reviewed by Darin Adler.

        Covered by existing tests.

        * platform/graphics/cg/PathCG.cpp:
        (WebCore::Path::addPath):
        Don't try to add the path if the affine transform isn't invertible.

        * platform/graphics/transforms/AffineTransform.cpp:
        (WebCore::AffineTransform::isInvertible):
        Handle infinite and NaN determinants.

        (WebCore::AffineTransform::inverse):
        Handle infinite and NaN determinants.

2014-04-08  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: memoize nondeterministic attributes of the Screen interface
        https://bugs.webkit.org/show_bug.cgi?id=131339

        Reviewed by Timothy Hatcher.

        The values from the screen interface are nondeterministic. Since we can't
        change the physical screen dimensions, instead memoize values of attributes.

        Test: ManualTests/inspector/replay-window-screen.html

        * page/Screen.idl: Add Nondeterministic attribute.

2014-04-08  Beth Dakin  <bdakin@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=131408
        Scrollbars layers don't dynamically update when device scale factor changes
        -and corresponding-
        <rdar://problem/16503875>

        Reviewed by Tim Horton.

        The scrollbar layers are not children of the RenderView's layer, so they were 
        completely skipped over by this function before. We need to start this higher up 
        the tree in the rootGraphicsLayer(), which will typically return the 
        m_overflowControlsHostLayer.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::deviceOrPageScaleFactorChanged):

2014-04-08  Ryosuke Niwa  <rniwa@webkit.org>

        HTMLConverter::aggregatedAttributesForAncestors should cache intermediate results
        https://bugs.webkit.org/show_bug.cgi?id=131400

        Reviewed by Sam Weinig.

        Instead of accumulating attributes from a character node to the highest ancestor,
        recursively call aggregatedAttributesForElementAndItsAncestors so that aggregated
        attributes are cached on each ancestor to eliminate the old O(n^2) behavior.

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::aggregatedAttributesForAncestors):
        (HTMLConverter::aggregatedAttributesForElementAndItsAncestors): Extracted from aggregatedAttributesForAncestors.

2014-04-08  Jinwoo Song  <jinwoo7.song@samsung.com>

        Unreviewed CMake build fix after r166965.

        * UseJSC.cmake: Rename JSClipboardCustom.cpp to JSDataTransferCustom.cpp.

2014-04-08  Enrica Casucci  <enrica@apple.com>

        Unreviewed iOS build fix.

        Return false instead of nil in a function that returns BOOL.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper accessibilityCanFuzzyHitTest]):

2014-04-08  Brady Eidson  <beidson@apple.com>

        Non-empty ranges misdetected as empty ranges, avoiding telephone number detection.
        <rdar://problem/16553441> and https://bugs.webkit.org/show_bug.cgi?id=131397 

        Reviewed by Tim Horton.

        No new tests (Only affects a currently untested Mac-only WK2 feature)

        * editing/Editor.cpp:
        (WebCore::Editor::scanSelectionForTelephoneNumbers): Fix detection of empty ranges so we don’t
          early return erroneously.

2014-04-08  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        [SVG] Fix CSS transform handling when zoomed
        https://bugs.webkit.org/show_bug.cgi?id=125836

        Reviewed by Tim Horton.

        Tests: svg/zoom/page/zoom-css-transforms-expected.svg
               svg/zoom/page/zoom-css-transforms.svg

        Adjusts CSS transforms when used in SVG to account for unexpected
        translation scale. Backport from Chromium #174910.

        * svg/SVGGraphicsElement.cpp:
        (WebCore::SVGGraphicsElement::animatedLocalTransform):

2014-04-08  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] large corner radius combined with 0 radius does not wrap properly
        https://bugs.webkit.org/show_bug.cgi?id=129739

        Reviewed by Bem Jones-Bey.

        Corrected special case handling for shape-outside border-box values with border-radius
        values that greater than or equal to the box's height.

        Tests: fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius-001.html
               fast/shapes/shape-outside-floats/shape-outside-big-box-border-radius-002.html

        * rendering/shapes/BoxShape.cpp:
        (WebCore::BoxShape::getExcludedIntervals):

2014-04-08  Alexey Proskuryakov  <ap@apple.com>

        Rename Clipboard to DataTransfer
        https://bugs.webkit.org/show_bug.cgi?id=131371

        Reviewed by Anders Carlsson.

        This is the name used in HTML5, and it's much better than the confusing Clipboard one.

        Renamed related enums too, and made DataTransferAccessPolicy an enum class.

        * CMakeLists.txt:
        * Configurations/WebCore.xcconfig:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * WebCore.exp.in:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSBindingsAllInOne.cpp:
        * bindings/js/JSClipboardCustom.cpp: Removed.
        * bindings/js/JSDataTransferCustom.cpp: Copied from Source/WebCore/bindings/js/JSClipboardCustom.cpp.
        (WebCore::JSDataTransfer::types):
        (WebCore::JSClipboard::types): Deleted.
        * bindings/js/JSEventCustom.cpp:
        * dom/Clipboard.cpp: Removed.
        * dom/Clipboard.h: Removed.
        * dom/Clipboard.idl: Removed.
        * dom/ClipboardAccessPolicy.h: Removed.
        * dom/ClipboardEvent.cpp:
        (WebCore::ClipboardEvent::ClipboardEvent):
        * dom/ClipboardEvent.h:
        (WebCore::ClipboardEvent::create):
        (WebCore::ClipboardEvent::clipboard): Deleted.
        * dom/ClipboardMac.mm: Removed.
        * dom/DOMAllInOne.cpp:
        * dom/DataTransfer.cpp: Copied from Source/WebCore/dom/Clipboard.cpp.
        (WebCore::DataTransfer::DataTransfer):
        (WebCore::DataTransfer::createForCopyAndPaste):
        (WebCore::DataTransfer::~DataTransfer):
        (WebCore::DataTransfer::setAccessPolicy):
        (WebCore::DataTransfer::canReadTypes):
        (WebCore::DataTransfer::canReadData):
        (WebCore::DataTransfer::canWriteData):
        (WebCore::DataTransfer::clearData):
        (WebCore::DataTransfer::getData):
        (WebCore::DataTransfer::setData):
        (WebCore::DataTransfer::types):
        (WebCore::DataTransfer::files):
        (WebCore::DataTransfer::dropEffect):
        (WebCore::DataTransfer::setDropEffect):
        (WebCore::DataTransfer::effectAllowed):
        (WebCore::DataTransfer::setEffectAllowed):
        (WebCore::DataTransfer::setDragImage):
        (WebCore::DataTransfer::createForDragAndDrop):
        (WebCore::DataTransfer::canSetDragImage):
        (WebCore::DataTransfer::updateDragImage):
        (WebCore::DataTransfer::createDragImage):
        (WebCore::DragImageLoader::DragImageLoader):
        (WebCore::DragImageLoader::imageChanged):
        (WebCore::DataTransfer::sourceOperation):
        (WebCore::DataTransfer::destinationOperation):
        (WebCore::DataTransfer::setSourceOperation):
        (WebCore::DataTransfer::setDestinationOperation):
        (WebCore::Clipboard::Clipboard): Deleted.
        (WebCore::Clipboard::createForCopyAndPaste): Deleted.
        (WebCore::Clipboard::~Clipboard): Deleted.
        (WebCore::Clipboard::setAccessPolicy): Deleted.
        (WebCore::Clipboard::canReadTypes): Deleted.
        (WebCore::Clipboard::canReadData): Deleted.
        (WebCore::Clipboard::canWriteData): Deleted.
        (WebCore::Clipboard::clearData): Deleted.
        (WebCore::Clipboard::getData): Deleted.
        (WebCore::Clipboard::setData): Deleted.
        (WebCore::Clipboard::types): Deleted.
        (WebCore::Clipboard::files): Deleted.
        (WebCore::Clipboard::dropEffect): Deleted.
        (WebCore::Clipboard::setDropEffect): Deleted.
        (WebCore::Clipboard::effectAllowed): Deleted.
        (WebCore::Clipboard::setEffectAllowed): Deleted.
        (WebCore::Clipboard::setDragImage): Deleted.
        (WebCore::Clipboard::createForDragAndDrop): Deleted.
        (WebCore::Clipboard::canSetDragImage): Deleted.
        (WebCore::Clipboard::updateDragImage): Deleted.
        (WebCore::Clipboard::createDragImage): Deleted.
        (WebCore::Clipboard::sourceOperation): Deleted.
        (WebCore::Clipboard::destinationOperation): Deleted.
        (WebCore::Clipboard::setSourceOperation): Deleted.
        (WebCore::Clipboard::setDestinationOperation): Deleted.
        * dom/DataTransfer.h: Copied from Source/WebCore/dom/Clipboard.h.
        * dom/DataTransfer.idl: Copied from Source/WebCore/dom/Clipboard.idl.
        * dom/DataTransferAccessPolicy.h: Copied from Source/WebCore/dom/ClipboardAccessPolicy.h.
        * dom/DataTransferItemList.h:
        * dom/DataTransferMac.mm: Copied from Source/WebCore/dom/ClipboardMac.mm.
        (WebCore::DataTransfer::createDragImage):
        (WebCore::Clipboard::createDragImage): Deleted.
        * dom/Event.h:
        (WebCore::Event::clipboardData):
        (WebCore::Event::internalDataTransfer):
        (WebCore::Event::clipboard): Deleted.
        * dom/Event.idl:
        * dom/MouseEvent.cpp:
        (WebCore::MouseEvent::create):
        (WebCore::MouseEvent::MouseEvent):
        (WebCore::MouseEvent::initMouseEvent):
        * dom/MouseEvent.h:
        (WebCore::MouseEvent::dataTransfer):
        * dom/MouseEvent.idl:
        * dom/WheelEvent.cpp:
        * editing/Editor.cpp:
        (WebCore::Editor::canDHTMLCut):
        (WebCore::Editor::canDHTMLCopy):
        (WebCore::Editor::canDHTMLPaste):
        (WebCore::Editor::tryDHTMLCopy):
        (WebCore::Editor::tryDHTMLCut):
        (WebCore::Editor::tryDHTMLPaste):
        (WebCore::Editor::dispatchCPPEvent):
        (WebCore::Editor::performCutOrCopy):
        (WebCore::Editor::selectedTextForDataTransfer):
        (WebCore::Editor::selectedTextForClipboard): Deleted.
        * editing/Editor.h:
        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::stringSelectionForPasteboardWithImageAltText):
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::takeFindStringFromSelection):
        (WebCore::Editor::stringSelectionForPasteboardWithImageAltText):
        * loader/EmptyClients.h:
        * page/DragClient.h:
        * page/DragController.cpp:
        (WebCore::DragController::dragExited):
        (WebCore::DragController::performDrag):
        (WebCore::DragController::tryDHTMLDrag):
        (WebCore::DragController::startDrag):
        (WebCore::DragController::doImageDrag):
        (WebCore::DragController::doSystemDrag):
        * page/DragController.h:
        * page/DragState.h:
        * page/EventHandler.cpp:
        (WebCore::EventHandler::dispatchDragEvent):
        (WebCore::hasFileOfType):
        (WebCore::hasStringOfType):
        (WebCore::hasDropZoneType):
        (WebCore::findDropZone):
        (WebCore::EventHandler::updateDragAndDrop):
        (WebCore::EventHandler::cancelDragAndDrop):
        (WebCore::EventHandler::performDragAndDrop):
        (WebCore::EventHandler::freeDataTransfer):
        (WebCore::EventHandler::dragSourceEndedAt):
        (WebCore::EventHandler::dispatchDragSrcEvent):
        (WebCore::EventHandler::handleDrag):
        (WebCore::EventHandler::freeClipboard): Deleted.
        * page/EventHandler.h:
        * page/efl/EventHandlerEfl.cpp:
        (WebCore::EventHandler::createDraggingDataTransfer):
        (WebCore::EventHandler::createDraggingClipboard): Deleted.
        * page/gtk/DragControllerGtk.cpp:
        (WebCore::DragController::declareAndWriteDragImage):
        * page/gtk/EventHandlerGtk.cpp:
        (WebCore::EventHandler::createDraggingDataTransfer):
        (WebCore::EventHandler::createDraggingClipboard): Deleted.
        * page/mac/DragControllerMac.mm:
        (WebCore::DragController::declareAndWriteDragImage):
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::createDraggingDataTransfer):
        (WebCore::EventHandler::createDraggingClipboard): Deleted.
        * page/win/DragControllerWin.cpp:
        (WebCore::DragController::declareAndWriteDragImage):
        * page/win/EventHandlerWin.cpp:
        (WebCore::EventHandler::createDraggingataTransfer):
        (WebCore::EventHandler::createDraggingClipboard): Deleted.
        * platform/Pasteboard.h:
        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::writeSelection):
        * platform/mac/PasteboardMac.mm:
        * platform/win/PasteboardWin.cpp:
        (WebCore::Pasteboard::writeRangeToDataObject):
        (WebCore::Pasteboard::writeSelection):

2014-04-08  Jer Noble  <jer.noble@apple.com>

        Unreviewed iOS build fix. Pass 0 instead of nil to the options parameter of addObserver:forKeyPath:options:context.

        * platform/graphics/ios/TextTrackRepresentationIOS.mm:
        (-[WebCoreTextTrackRepresentationIOSHelper setParent:]):

2014-04-08  Antti Koivisto  <antti@apple.com>

        Remove exposedRect from TileController
        https://bugs.webkit.org/show_bug.cgi?id=131378

        Reviewed by Simon Fraser.

        Having two separate visible rectangles is confusing. We should compute one on higher level.

        * page/FrameView.cpp:
        (WebCore::FrameView::setExposedRect):
        
            Push exposed rect to tile controller by doing a layer flush (like the changed visible rect is normally passed).

        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/mac/TileController.h:
        * platform/graphics/ca/mac/TileController.mm:
        
            Remove exposedRect and just use visibleRect.

        (WebCore::TileController::TileController):
        (WebCore::TileController::setTiledScrollingIndicatorPosition):
        
            Update the scrolling indicator position.

        (WebCore::TileController::updateTileCoverageMap):
        (WebCore::TileController::setExposedRect): Deleted.
        * platform/graphics/ca/mac/TileGrid.h:
        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::tilesWouldChangeForVisibleRect):
        (WebCore::TileGrid::revalidateTiles):
        (WebCore::TileGrid::scaledExposedRect): Deleted.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking):
        
            No need to push exposedRect anymore.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
        
            Integrate exposed rect to visible rect when flushing layers.

2014-04-08  Andreas Kling  <akling@apple.com>

        [Mac] Always do a full GC when simulating memory pressure.
        <https://webkit.org/b/129790>

        To get more consistent accounting on automated memory testers,
        add a synchronous GC as part of the simulated memory pressure event.

        Reviewed by Geoffrey Garen.

        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::install):

2014-04-08  Jer Noble  <jer.noble@apple.com>

        Unreviewed iOS build fix. Pass 0 instead of nil to setRate: when pausing.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformPause):

2014-04-08  Mark Lam  <mark.lam@apple.com>

        Refactor to make JSMainThreadExecState's constructor and destructor private.
        <https://webkit.org/b/131372>

        Reviewed by Mark Hahnenberg.

        This is in preparation for subsequent patches to ensure that we don't
        exit the VM with an exception still pending.

        No new tests required.  This is only a refactor of existing behavior.

        * bindings/js/JSDOMGlobalObjectTask.cpp:
        * bindings/js/JSMainThreadExecState.h:
        (WebCore::JSMainThreadExecState::runTask):

2014-04-07  Jer Noble  <jer.noble@apple.com>

        [WK2][iOS] Consecutive videos in full screen display only black
        https://bugs.webkit.org/show_bug.cgi?id=131316

        Reviewed by Eric Carlson.

        Update the MediaPlayer's full screen attributes whenever the underlying engine changes,
        not just when the engine is initially created. Also, clear the videoLayer out of the
        fullscreen layer when destroying the videoLayer.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer):

2014-04-08  Morten Stenshorne  <mstensho@opera.com>

        [New Multicolumn] Child top margin sometimes ignored for column balancing
        https://bugs.webkit.org/show_bug.cgi?id=122754

        Reviewed by David Hyatt.

        We need to set zero page logical height in LayoutState when column
        height is unknown (when the columns haven't yet been
        balanced). There's code that assumes that non-zero page height means
        that page height is known. Lying about this makes the pagination code
        believe that every top margin is adjacent to a column break, which
        makes it eat and ignore all top margins.

        This should be cleaned up, but it's easier to wait until the old
        multicol code has been removed.

        Tests: fast/multicol/break-in-scrollable.html
               fast/multicol/newmulticol/leading-and-trailing-margin.html
               fast/multicol/newmulticol/leading-margin.html

        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::checkForPaginationLogicalHeightChange):
        * rendering/RenderFlowThread.h:
        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::isPageLogicalHeightKnown):
        * rendering/RenderMultiColumnFlowThread.h:

2014-04-07  Dean Jackson  <dino@apple.com>

        Allow elements to register for changes in page scale
        https://bugs.webkit.org/show_bug.cgi?id=131319

        Reviewed by Eric Carlson.

        Some parts of WebCore need to react to changes in the page
        scale factor, such as resizing when the user zooms. A followup
        patch will enable this for media controls - this simply lays
        the groundwork.

        At the moment we only allow HTMLMediaElements to register, but if
        necessary this could be expanded in the future.

        * dom/Document.cpp: New methods to keep a list of HTMLMediaElements that
        are interested in updates.
        (WebCore::Document::registerForPageScaleFactorChangedCallbacks):
        (WebCore::Document::unregisterForPageScaleFactorChangedCallbacks):
        (WebCore::Document::pageScaleFactorChanged):
        * dom/Document.h:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::registerWithDocument): Add ourselves to the
        the document's pageScale callback.
        (WebCore::HTMLMediaElement::unregisterWithDocument): Remove ourselves from the
        the document's pageScale callback.
        (WebCore::HTMLMediaElement::setMediaControlsDependOnPageScaleFactor): Add/remove ourselves to/from
        the callback if necessary.
        (WebCore::HTMLMediaElement::pageScaleFactorChanged): The callback function. Empty for now.
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::mediaControlsDependOnPageScaleFactor): Accessor.
        * page/Page.cpp:
        (WebCore::Page::setPageScaleFactor): Tell all documents that the user has zoomed.

2014-04-08  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Compile error in TextureMapper.h
        https://bugs.webkit.org/show_bug.cgi?id=131360

        Reviewed by Brent Fulgham.

        The TextureMapper class has pure virtual methods, and cannot be instantiated.

        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::TextureMapper::platformCreateAccelerated):

2014-04-08  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Slow paint path for inlines should snap to device pixels.
        https://bugs.webkit.org/show_bug.cgi?id=131259

        Reviewed by Simon Fraser.

        InlineTextBox::paint needs to round to the same device pixel position as SimpleLineLayout does.

        Test: fast/inline/hidpi-slow-path-text-on-subpixel-position.html

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paint):
        * rendering/TextPainter.h: Cleanup. No reason to have them as references here.

2014-04-07  Brent Fulgham  <bfulgham@apple.com>

        Keep 'webkitClosedCaptionsVisible' API in sync with captions display preferences
        https://bugs.webkit.org/show_bug.cgi?id=131344

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::configureTextTrackGroup) If we decide that captions should
        be active (due to user preferences) make sure the 'webkitClosedCaptionsVisible' state
        is turned on.

2014-04-08  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Paint the filter effect result image on device pixel position.
        https://bugs.webkit.org/show_bug.cgi?id=131255

        Reviewed by Simon Fraser.

        This patch moves filter effect images from integral to device pixel position. However,
        result images are still integral based.

        Test: css3/filters/hidpi-filter-is-on-subpixel-position.html

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRendererHelper::applyFilterEffect):

2014-04-08  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make border images device pixel aware.
        https://bugs.webkit.org/show_bug.cgi?id=131209

        Reviewed by Simon Fraser.

        Snap border-image size and position to device pixels. It works both on generated and bitmap images.

        Test: fast/borders/hidpi-border-image-gradient-on-subpixels.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintNinePieceImage):

2014-04-08  Youenn Fablet  <youenn.fablet@crf.canon.fr>

        [SOUP] Control cookie management according ResourceRequest.allowCookies()
        https://bugs.webkit.org/show_bug.cgi?id=131026

        Reviewed by Sergio Villar Senin.

        Added per soup-message disabling of cookie jar manager when related ResourceRequest does not allow cookies (e.g. some cross-origin requests).

        Patch is covered by unskipped test http/tests/xmlhttprequest/cross-origin-cookie-storage.html.

        * platform/network/soup/ResourceRequestSoup.cpp:
        (WebCore::ResourceRequest::updateSoupMessageMembers): Added disabling of cookie jar manager if cookies are not allowed.

2014-04-08  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Handle min/max height in the grid element
        https://bugs.webkit.org/show_bug.cgi?id=131302

        Reviewed by Darin Adler.

        Removed a FIXME in the code as we're already handling min/max
        height in the code. Added a couple of test cases to improve the
        test coverage.

        Merged from Blink r161876 by <jchaffraix@chromium.org>

        Tests: fast/css-grid-layout/flex-content-sized-columns-resize.html
               fast/css-grid-layout/grid-element-min-max-height.html

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::layoutGridItems):

2014-04-08  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Remove unused RenderBox::clearRenderBoxRegionInfo
        https://bugs.webkit.org/show_bug.cgi?id=131352

        Reviewed by Andrei Bucur.

        No new tests, code clean-up.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::clearRenderBoxRegionInfo): Deleted.
        * rendering/RenderBox.h:

2014-04-08  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>

        Buildfix after r166917
        https://bugs.webkit.org/show_bug.cgi?id=131351

        Reviewed by Andrei Bucur.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::accessibleNameForNode):

2014-04-08  Darin Adler  <darin@apple.com>

        Fix assertions triggered by CSS calc changes in r166860
        https://bugs.webkit.org/show_bug.cgi?id=131346

        Reviewed by Andrei Bucur.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::getBorderRadiusCornerValues): Use isPercentNotCalculated() instead of
        type() == Percent; no behavior change.
        (WebCore::getBorderRadiusCornerValue): Ditto.
        (WebCore::lineHeightFromStyle): Use isPercentNotCalculated() before code
        that calls percent(), which won't work for a calculated length.

        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyBorderRadius::applyValue): Use isNegative and isZero rather
        than calling value() unconditionally. Should make calculated values work better.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::is100Percent): Use isPercentNotCalculated() before code
        that calls percent(), which won't work for a calculated length.

        * platform/Length.cpp:
        (WebCore::CalculationValueMap::deref): Use adoptRef here instead of calling deref
        immediately, so the deref will happen after calling remove. This makes the code
        work properly even if it's reentered inside the calculation value's destructor.

        * platform/Length.h:
        (WebCore::Length::percent): Change assert to isPercentNotCalculated, since the
        value function this calls only works for non-calculated values anyway.
        (WebCore::Length::isPercentNotCalculated): Added.
        (WebCore::Length::isPercent): Changed to call isPercentNotCalculated.
        (WebCore::Length::isSpecified): Changed to call isPercent.

        * platform/graphics/transforms/TranslateTransformOperation.h:
        (WebCore::TranslateTransformOperation::apply): Use isPercentNotCalculated()
        instead of type() == Percent; no behavior change.

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn): Use isPercentNotCalculated()
        before code that calls value() or percent(), which won't work for a calculated length.
        (WebCore::AutoTableLayout::computeIntrinsicLogicalWidths): Ditto.
        (WebCore::AutoTableLayout::calcEffectiveLogicalWidth): Ditto.
        (WebCore::AutoTableLayout::layout): Ditto.
        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::layout): Ditto.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions): Ditto.
        * rendering/RenderTableSection.cpp:
        (WebCore::updateLogicalHeightForCell): Ditto.
        (WebCore::RenderTableSection::distributeExtraLogicalHeightToPercentRows): Ditto.
        (WebCore::RenderTableSection::distributeExtraLogicalHeightToRows): Ditto.

        * rendering/style/RenderStyle.cpp:
        (WebCore::requireTransformOrigin): Use modern for loop. Also marked function static,
        since it's private to this file.
        (WebCore::RenderStyle::applyTransform): Use isPercentNotCalculated() instead of
        type() == Percent; no behavior change. Also use a modern for loop and auto& to avoid
        a really long type name.

        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation): Use isPercentNotCalculated()
        before code that calls percent(), which won't work for a calculated length.

        * platform/Length.h:
        (WebCore::Length::percent):
        (WebCore::Length::isPercentNotCalculated):
        (WebCore::Length::isPercent):
        (WebCore::Length::isSpecified):
        * platform/graphics/transforms/TranslateTransformOperation.h:
        (WebCore::TranslateTransformOperation::apply):
        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn):
        (WebCore::AutoTableLayout::computeIntrinsicLogicalWidths):
        (WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
        (WebCore::AutoTableLayout::layout):
        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::layout):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
        * rendering/RenderTableSection.cpp:
        (WebCore::updateLogicalHeightForCell):
        (WebCore::RenderTableSection::distributeExtraLogicalHeightToPercentRows):
        (WebCore::RenderTableSection::distributeExtraLogicalHeightToRows):
        * rendering/style/RenderStyle.cpp:
        (WebCore::requireTransformOrigin):
        (WebCore::RenderStyle::applyTransform):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeIntrinsicRatioInformation):

2014-04-08  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GTK] Remove media controls dead code
        https://bugs.webkit.org/show_bug.cgi?id=131300

        Reviewed by Eric Carlson.

        MediaControlsGtk.cpp is no longer used so we can remove it from
        the repo.

        No new tests needed.

        * PlatformGTK.cmake: Remove html/shadow/MediaControlsGtk.cpp from
        compilation.
        * html/shadow/MediaControlsGtk.cpp: Removed.

2014-04-08  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Fixed positioned elements in named flows have fragmented content
        https://bugs.webkit.org/show_bug.cgi?id=130595

        Reviewed by Darin Adler.

        Fixed positioned elements that have the named flow as parent are positioned
        and sized relative to the viewport. Because of that, when the named flow
        has an associated region chain, the fixed positioned elements should not
        be fragmented.

        By making a fixed positioned element with a named flow parent unsplittable
        for fragmentation, we prevent this wrong behavior.

        Test: fast/regions/fixed-pos-content-fragmented.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::isUnsplittableForPagination):

2014-04-07  Chris Fleizach  <cfleizach@apple.com>

        Regression: AX: image labels no longer exposed to AX API in SVG test case
        https://bugs.webkit.org/show_bug.cgi?id=131208

        Reviewed by Daniel Bates.

        accessibleNameForNode should work on any Element, not just HTML elements.

        Test: accessibility/svg-labelledby.html

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::accessibleNameForNode):

2014-04-08  Andres Gomez  <agomez@igalia.com>

        [GTK] [EFL] Build fails with GCC < 4.8.x
        https://bugs.webkit.org/show_bug.cgi?id=130585

        Reviewed by Martin Robinson.

        The behavior in lower versions of GCC seem to be related to
        http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#2132.

        Provided explicit casts for the failing ambiguous overloads.

        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        (WebCore::AudioFileReader::createBus):
        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
        (webKitMediaSrcChangeState):
        (webKitMediaVideoSrcNeedDataCb):
        (webKitMediaAudioSrcNeedDataCb):
        (webKitMediaVideoSrcEnoughDataCb):
        (webKitMediaAudioSrcEnoughDataCb):
        (webKitMediaVideoSrcSeekDataCb):
        (webKitMediaAudioSrcSeekDataCb):
        * platform/gtk/GtkDragAndDropHelper.cpp:
        (WebCore::GtkDragAndDropHelper::handleDragLeave):
        * platform/gtk/SharedTimerGtk.cpp:
        (WebCore::setSharedTimerFireInterval):

2014-04-08  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Change NavigatorContentUtils client ownership from port side to NavigatorContentUtils
        https://bugs.webkit.org/show_bug.cgi?id=131299

        Reviewed by Darin Adler.

        EFL and GTK ports have managed own client of NavigatorContentUtils though it is only passed to
        NavigatorContentUtils. The NavigatorContentUtils has used the client to call port functions. So,
        there is no reason port implementation needs to manage the ownership. To manage the client is
        unnecessary work in current implementation.

        No new tests, no behavior changes.

        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::NavigatorContentUtils::create):
        (WebCore::provideNavigatorContentUtilsTo):
        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
        * Modules/navigatorcontentutils/NavigatorContentUtilsClient.h:

2014-04-07  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Simplify the parsing of width arguments for Inset shapes
        https://bugs.webkit.org/show_bug.cgi?id=131305

        Reviewed by Andreas Kling.

        This code introduces some helper functions for setting the size arguments of inset shapes. This change
        also modifies the code to be the same as in Blink, so it helps us to keep the shapes code similar.

        No new tests, no behavior change.

        * css/CSSBasicShapes.h:
        (WebCore::CSSBasicShapeInset::updateShapeSize4Values):
        (WebCore::CSSBasicShapeInset::updateShapeSize1Value):
        (WebCore::CSSBasicShapeInset::updateShapeSize2Values):
        (WebCore::CSSBasicShapeInset::updateShapeSize3Values):
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseBasicShapeInset):

2014-04-07  Martin Robinson  <mrobinson@igalia.com>

        fast/css3-text/css3-text-decoration/text-decoration-thickness.html fails on GTK
        https://bugs.webkit.org/show_bug.cgi?id=129957

        Reviewed by Dean Jackson.

        Causes existing tests to pass.

        * platform/graphics/cairo/GraphicsContextCG.cpp: Use the now-shared computeLineBoundsAndAntialiasingModeForText.
        * platform/graphics/cairo/GraphicsContextCairo.cpp: Align the Cairo version of text underline drawing with the CG version.
        * platform/graphics/GraphicsContext.h: Add computeLineBoundsAndAntialiasingModeForText.
        * platform/graphics/GraphicsContext.cpp: Ditto.

2014-04-07  Beth Dakin  <bdakin@apple.com>

        REGRESSION (r163194-r163227): Garbage tiles in overflow of RTL page with 
        background image
        https://bugs.webkit.org/show_bug.cgi?id=131323
        -and corresponding-
        <rdar://problem/16402013>

        Reviewed by Tim Horton.

        Returning the TiledBacking::bounds() for the 
        FrameView::extendedBackgroundRectForPainting() in convenient for ltr pages, but it 
        is simply incorrect in rtl. There is no easy way to map the rect into the right 
        coordinate space, so this patch re-works the code to use computations in 
        RenderView to get the right rect.

        Call RenderView::unextendedBackgroundRect() and expand and move it based on the 
        TiledBacking’s margins.
        * page/FrameView.cpp:
        (WebCore::FrameView::extendedBackgroundRectForPainting):

        The logic that used to be in backgroundRect() has been moved to 
        unextendedBackgroundRect(). 
        * rendering/RenderView.cpp:
        (WebCore::RenderView::unextendedBackgroundRect):
        (WebCore::RenderView::backgroundRect):
        * rendering/RenderView.h:

2014-04-07  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] inset complex calc() args vanish in serialized computed style
        https://bugs.webkit.org/show_bug.cgi?id=129838

        Reviewed by Bem Jones-Bey.

        We didn't pass the style parameter when setting the width members of CSSBasicShapeInset,
        which lead to a 'should never reach asserttion' in CSSPrimitiveValue::init. This patch
        adds the missing parameters to the call sites.

        Extended existing parsing test script.

        * css/BasicShapeFunctions.cpp:
        (WebCore::valueForBasicShape):

2014-04-07  Eric Carlson  <eric.carlson@apple.com>

        [iOS] MediaDocument should allow autoplay
        https://bugs.webkit.org/show_bug.cgi?id=131301

        Reviewed by Jer Noble.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Don't add the RequireUserGestureForRateChange
            behavior restriction when in a MediaDocument.

2014-04-07  Hyowon Kim  <hw1008.kim@samsung.com>

        Move to using std::unique_ptr for opengl, texmap, transforms and efl in WebCore/platform/graphics.
        https://bugs.webkit.org/show_bug.cgi?id=131276

        Reviewed by Darin Adler.

        Replace uses of OwnPtr and PassOwnPtr in code under WebCore/platform/graphics/
        opengl, texmap, transforms and efl with std::unique_ptr.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::initializeNewContext):
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::create): Deleted.
        * platform/graphics/GraphicsContext3DPrivate.h:
        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::setContextLostCallback):
        (WebCore::GraphicsContext3D::setErrorMessageCallback):
        * platform/graphics/efl/EvasGLContext.h:
        * platform/graphics/efl/EvasGLSurface.h:
        * platform/graphics/efl/GraphicsContext3DEfl.cpp:
        (WebCore::GraphicsContext3D::setContextLostCallback):
        (WebCore::GraphicsContext3D::setErrorMessageCallback):
        * platform/graphics/efl/GraphicsContext3DPrivate.cpp:
        (WebCore::GraphicsContext3DPrivate::create):
        (WebCore::GraphicsContext3DPrivate::setContextLostCallback):
        * platform/graphics/efl/GraphicsContext3DPrivate.h:
        * platform/graphics/mac/GraphicsContext3DMac.mm:
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::setContextLostCallback):
        (WebCore::GraphicsContext3D::setErrorMessageCallback):
        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
        (WebCore::Extensions3DOpenGLES::setEXTContextLostCallback):
        * platform/graphics/opengl/Extensions3DOpenGLES.h:
        * platform/graphics/opengl/GLPlatformContext.cpp:
        (WebCore::createOffScreenContext):
        (WebCore::GLPlatformContext::createContext):
        * platform/graphics/opengl/GLPlatformContext.h:
        * platform/graphics/opengl/GLPlatformSurface.cpp:
        (WebCore::GLPlatformSurface::createOffScreenSurface):
        * platform/graphics/opengl/GLPlatformSurface.h:
        * platform/graphics/surfaces/efl/GraphicsSurfaceCommon.cpp:
        * platform/graphics/surfaces/egl/EGLSurface.cpp:
        (WebCore::EGLOffScreenSurface::createOffScreenSurface):
        * platform/graphics/surfaces/egl/EGLSurface.h:
        * platform/graphics/texmap/GraphicsLayerTextureMapper.cpp:
        (WebCore::GraphicsLayerTextureMapper::GraphicsLayerTextureMapper):
        * platform/graphics/texmap/GraphicsLayerTextureMapper.h:
        * platform/graphics/texmap/TextureMapper.cpp:
        (WebCore::TextureMapper::create):
        (WebCore::TextureMapper::TextureMapper):
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::TextureMapper::platformCreateAccelerated):
        * platform/graphics/texmap/TextureMapperGL.cpp:
        (WebCore::TextureMapper::platformCreateAccelerated):
        * platform/graphics/texmap/TextureMapperGL.h:
        (WebCore::TextureMapperGL::create): Deleted.
        * platform/graphics/texmap/TextureMapperImageBuffer.h:
        (WebCore::TextureMapperImageBuffer::TextureMapperImageBuffer):
        (WebCore::TextureMapperImageBuffer::create): Deleted.
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        (WebCore::CoordinatedGraphicsScene::purgeGLResources):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
        * platform/graphics/transforms/TransformState.cpp:
        (WebCore::TransformState::operator=):
        (WebCore::TransformState::applyTransform):
        * platform/graphics/transforms/TransformState.h:
        * platform/graphics/win/GraphicsContext3DWin.cpp:
        (WebCore::GraphicsContext3D::GraphicsContext3D):
        (WebCore::GraphicsContext3D::setContextLostCallback):
        (WebCore::GraphicsContext3D::setErrorMessageCallback):

2014-04-07  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Make back-buffers purgeable when possible
        https://bugs.webkit.org/show_bug.cgi?id=131213
        <rdar://problem/15373906>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * platform/graphics/cg/IOSurfacePool.cpp:
        (WebCore::IOSurfacePool::takeSurface):
        (WebCore::IOSurfacePool::markOlderSurfacesPurgeable):
        (WebCore::IOSurfacePool::showPoolStatistics):
        * platform/graphics/cocoa/IOSurface.h:
        * platform/graphics/cocoa/IOSurface.mm:
        (IOSurface::isVolatile):
        (IOSurface::setIsVolatile):
        Rename purgeability functions to match the system
        and reduce confusion between purgeable memory
        and volatile vs. non-volatile memory.

2014-04-07  Benjamin Poulain  <benjamin@webkit.org>

        Split CSS Selectors pseudo class and pseudo elements
        https://bugs.webkit.org/show_bug.cgi?id=131295

        Reviewed by Andreas Kling.

        Split pseudo class and pseudo element to make it clearer what pseudo types
        are possible for a given match type.

        Pseudo Element types are separated and Pseudo Class are left in place. The Pseudo Class
        will have to be renamed too but that will be done separately to make this change smaller.

        * css/CSSGrammar.y.in:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::rewriteSpecifiersWithElementName):
        (WebCore::CSSParser::rewriteSpecifiers):
        Use a method isPseudoElementCueFunction() to abstract the #ifdef out of the parser.

        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::parsePseudoElementSelector):

        (WebCore::CSSParserSelector::parsePseudoElementCueFunctionSelector):
        Rename to specify this is for the pseudo element cue function, not the pseudo element cue.

        (WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):
        (WebCore::CSSParserSelector::parsePseudoCueFunctionSelector): Deleted.
        * css/CSSParserValues.h:
        (WebCore::CSSParserSelector::isPseudoElementCueFunction):
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::specificityForOneSelector):
        (WebCore::CSSSelector::pseudoId):
        (WebCore::CSSSelector::parsePseudoElementType):
        (WebCore::CSSSelector::operator==):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::pseudoType):
        (WebCore::CSSSelector::setPseudoElementType):
        (WebCore::CSSSelector::pseudoElementType):
        (WebCore::CSSSelector::isUnknownPseudoElement):
        (WebCore::CSSSelector::isCustomPseudoElement):
        (WebCore::pseudoClassIsRelativeToSiblings):
        (WebCore::CSSSelector::isSiblingSelector):
        * css/RuleFeature.cpp:
        (WebCore::RuleFeatureSet::collectFeaturesFromSelector):
        * css/RuleSet.cpp:
        (WebCore::determinePropertyWhitelistType):
        (WebCore::RuleSet::findBestRuleSetAndAdd):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):
        (WebCore::SelectorChecker::checkOne):
        (WebCore::SelectorChecker::checkScrollbarPseudoClass):
        (WebCore::SelectorChecker::determineLinkMatchType):
        * css/SelectorPseudoClassAndCompatibilityElementMap.in:
        * css/SelectorPseudoElementTypeMap.in:
        * css/SelectorPseudoTypeMap.h:
        * css/makeSelectorPseudoClassAndCompatibilityElementMap.py:
        * css/makeSelectorPseudoElementsMap.py:
        (enumerablePseudoType):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::getMatchedCSSRules):

        * rendering/style/RenderStyleConstants.h:
        All the fullscreen pseudo types are pseudo class selectors. They should not have a pseudo ID.

2014-04-07  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: detect possible replay divergence from unexpected DOM event dispatches
        https://bugs.webkit.org/show_bug.cgi?id=131193

        Reviewed by Andreas Kling.

        Add assertions to catch potential nondeterministic behavior.

        The assertion added by this patch catches dispatched DOM events
        that are triggered by nondeterministic event loop cycles. If we
        did not capture an event loop input in the current event loop
        cycle nor are we manually simulating an event loop input during
        playback, then DOM events fired during the unordered cycle could
        run JavaScript and diverge the execution.

        During playback, we can assert that EventLoopInputDispatcher is dispatching
        when a DOM event is be dispatched to a document that is being replayed.

        During capturing, event loop inputs are captured rather than
        dispatched, so we add some accounting to track what caused a DOM
        event. To approximate the extent of computation triggered by an
        event loop input, we add RAII helpers to call sites where event
        loop inputs are captured.

        The assertions are disabled by default until the most common
        sources of nondeterminism are handled and playback errors are
        gracefully surfaced to the user. <https://webkit.org/b/131279>

        No new tests. This patch adds extra assertions for debugging purposes.

        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorInstrumentation.cpp: Notify ReplayAgent of dispatched DOM event.
        (WebCore::InspectorInstrumentation::willDispatchEventImpl):
        (WebCore::InspectorInstrumentation::willDispatchEventOnWindowImpl):
        * inspector/InspectorReplayAgent.cpp: Forward dispatched DOM events to ReplayController.
        (WebCore::InspectorReplayAgent::willDispatchEvent): Added.
        * inspector/InspectorReplayAgent.h:
        * replay/CapturingInputCursor.cpp:
        (WebCore::CapturingInputCursor::CapturingInputCursor):
        (WebCore::CapturingInputCursor::setWithinEventLoopInputExtent): Added.
        * replay/CapturingInputCursor.h:
        * replay/EventLoopInput.cpp: Added.
        (WebCore::EventLoopInputExtent::EventLoopInputExtent): Added.
        (WebCore::EventLoopInputExtent::~EventLoopInputExtent): Added.
        * replay/EventLoopInput.h:
        * replay/EventLoopInputDispatcher.h:
        (WebCore::EventLoopInputDispatcher::isDispatching): Add a getter.
        * replay/ReplayController.cpp:
        (WebCore::logDispatchedDOMEvent): Added. This is useful for understanding script-visible events.
        (WebCore::ReplayController::willDispatchEvent): Added.
        * replay/ReplayController.h:
        * replay/UserInputBridge.cpp: Add extent helpers to call sites that capture inputs.
        (WebCore::UserInputBridge::handleMousePressEvent):
        (WebCore::UserInputBridge::handleMouseReleaseEvent):
        (WebCore::UserInputBridge::handleMouseMoveEvent):
        (WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
        (WebCore::UserInputBridge::handleKeyEvent):
        (WebCore::UserInputBridge::handleWheelEvent):
        (WebCore::UserInputBridge::scrollRecursively):
        (WebCore::UserInputBridge::logicalScrollRecursively):

2014-04-07  Timothy Hatcher  <timothy@apple.com>

        Remove copy of combine-javascript-resources.pl that isn't used anymore
        https://bugs.webkit.org/show_bug.cgi?id=131307

        Reviewed by Joseph Pecoraro.

        * WebCore.xcodeproj/project.pbxproj:
        * inspector/combine-javascript-resources.pl: Removed.

2014-04-07  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Clean up invalid FIXME
        https://bugs.webkit.org/show_bug.cgi?id=131304

        Reviewed by Andreas Kling.

        No new tests, no behavior change.

        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::blendFunc):

2014-04-07  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL] Turn on ENABLE_MEDIA_CONTROLS_SCRIPT
        https://bugs.webkit.org/show_bug.cgi?id=131257

        Reviewed by Gyuyoung Kim.

        no new tests. just rebased exisiting tests.

        * PlatformEfl.cmake: Added the media controls script associated files.
        * css/mediaControlsEfl.css: Removed.
        * css/mediaControlsEflFullscreen.css: Removed.
        * platform/efl/DefaultTheme/CMakeLists.txt:
        * platform/efl/DefaultTheme/default.edc:
        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/enterfullscreenbutton.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/exitfullscreenbutton.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/fullscreenbutton/fullscreen_button.edc: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mute_button.edc: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/mutebutton.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/mutebutton/unmutebutton.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/pausebutton.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playbutton.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/playpausebutton/playpause_button.edc: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackward_button.edc: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/seekbackwardbutton/seekbackwardbutton.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforward_button.edc: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/seekforwardbutton/seekforwardbutton.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/closedcaption_disabled.png: Removed.
        * platform/efl/DefaultTheme/widget/mediacontrol/togglecaptionsbutton/toggle_captions_button.edc: Removed.
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::toEdjeGroup):
        (WebCore::RenderThemeEfl::RenderThemeEfl):
        (WebCore::RenderThemeEfl::adjustSliderThumbSize):
        (WebCore::RenderThemeEfl::mediaControlsStyleSheet): Modified to load bundle style sheet.
        (WebCore::RenderThemeEfl::mediaControlsScript): Added to load bundle scripts.
        (WebCore::RenderThemeEfl::emitMediaButtonSignal): Deleted.
        (WebCore::RenderThemeEfl::extraMediaControlsStyleSheet): Deleted.
        (WebCore::RenderThemeEfl::extraFullScreenStyleSheet): Deleted.
        (WebCore::RenderThemeEfl::formatMediaControlsCurrentTime): Deleted.
        (WebCore::RenderThemeEfl::hasOwnDisabledStateHandlingFor): Deleted.
        (WebCore::RenderThemeEfl::paintMediaFullscreenButton): Deleted.
        (WebCore::RenderThemeEfl::paintMediaMuteButton): Deleted.
        (WebCore::RenderThemeEfl::paintMediaPlayButton): Deleted.
        (WebCore::RenderThemeEfl::paintMediaSeekBackButton): Deleted.
        (WebCore::RenderThemeEfl::paintMediaSeekForwardButton): Deleted.
        (WebCore::RenderThemeEfl::paintMediaSliderTrack): Deleted.
        (WebCore::RenderThemeEfl::paintMediaSliderThumb): Deleted.
        (WebCore::RenderThemeEfl::paintMediaVolumeSliderContainer): Deleted.
        (WebCore::RenderThemeEfl::paintMediaVolumeSliderTrack): Deleted.
        (WebCore::RenderThemeEfl::paintMediaVolumeSliderThumb): Deleted.
        (WebCore::RenderThemeEfl::paintMediaCurrentTime): Deleted.
        (WebCore::RenderThemeEfl::supportsClosedCaptioning): Deleted.
        (WebCore::RenderThemeEfl::paintMediaToggleClosedCaptionsButton): Deleted.
        * platform/efl/RenderThemeEfl.h:

2014-04-07  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: change the node flags directly instead of using function calls when possible
        https://bugs.webkit.org/show_bug.cgi?id=131292

        Reviewed by Andreas Kling.

        For historical reasons, changing the node flags was always done with function calls.
        This patch changes those calls to modify the nodes directly.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::setNodeFlag):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
        (WebCore::SelectorCompiler::markElementWithSetChildrenAffectedByLastChildRules): Deleted.
        (WebCore::SelectorCompiler::markElementWithSetChildrenAffectedByFirstChildAndLastChildRules): Deleted.
        * dom/Element.cpp:
        (WebCore::Element::setChildrenAffectedByFirstChildRules): Deleted.
        (WebCore::Element::setChildrenAffectedByDirectAdjacentRules): Deleted.
        * dom/Element.h:
        * dom/Node.h:
        (WebCore::Node::flagChildrenAffectedByFirstChildRulesFlag):
        (WebCore::Node::flagChildrenAffectedByLastChildRulesFlag):
        (WebCore::Node::flagChildrenAffectedByDirectAdjacentRulesFlag):

2014-04-07  Krzysztof Czech  <k.czech@samsung.com>

        Remove unused header from PlatformSpeechSynthesizer.h
        https://bugs.webkit.org/show_bug.cgi?id=131103

        Reviewed by Anders Carlsson.

        Since WebSpeech has switched to use std::unique_ptr, we do not need to include PassOwnPtr.

        No new tests. No behaviour change, just quick fix.

        * platform/PlatformSpeechSynthesizer.h:

2014-04-06  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Use RenderRegion::isValid() before using a region
        https://bugs.webkit.org/show_bug.cgi?id=131232

        Reviewed by Andreas Kling.

        RenderRegion method isValid() should be used to test whether a region
        is good to use instead of a mix between isValid() and flowThread().
        When the region is designed to fragment content from a parent flow thread,
        the m_flowThread is not nullified anymore, thus ensuring the same treatment for all invalid
        regions.
        Covered by existing regions tests.

        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForElementInfo):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::layoutOverflowRectForPropagation):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateLayerPositions):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::pageLogicalHeight):
        (WebCore::RenderNamedFlowFragment::maxPageLogicalHeight):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::getRanges):
        (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
        (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::RenderRegion):
        (WebCore::RenderRegion::positionForPoint):
        (WebCore::RenderRegion::pageLogicalWidth):
        (WebCore::RenderRegion::pageLogicalHeight):
        (WebCore::RenderRegion::styleDidChange):
        (WebCore::RenderRegion::installFlowThread):
        (WebCore::RenderRegion::attachRegion):
        (WebCore::RenderRegion::detachRegion):
        (WebCore::RenderRegion::ensureOverflowForBox):
        (WebCore::RenderRegion::renderBoxRegionInfo):

2014-04-06  Benjamin Poulain  <benjamin@webkit.org>

        Fix the debug bots after r166863

        * css/PageRuleCollector.cpp:
        (WebCore::checkPageSelectorComponents): I forgot to update one call site for PagePseudoClass.

2014-04-06  Darin Adler  <darin@apple.com>

        Make some bindings improvements, with smaller code size for error message generation
        https://bugs.webkit.org/show_bug.cgi?id=131285

        Reviewed by Andreas Kling.

        * WebCore.exp.in: Updated to remove old and add new functions, for use by the Internals
        JavaScript bindings.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::makeDOMBindingsTypeErrorStringInternal): Deleted.
        (WebCore::throwTypeError): Added. Helper to avoid repeating throwVMError/createTypeError.
        (WebCore::appendArgumentMustBe): Added. Helper for building up argument error strings.
        (WebCore::reportDeprecatedGetterError): Added. For bindings to use.
        (WebCore::throwArgumentMustBeEnumError): Ditto.
        (WebCore::throwArgumentMustBeFunctionError): Ditto.
        (WebCore::throwArgumentTypeError): Ditto.
        (WebCore::throwArrayElementTypeError): Ditto.
        (WebCore::throwAttributeTypeError): Ditto.
        (WebCore::throwConstructorDocumentUnavailableError): Ditto.
        (WebCore::throwGetterTypeError): Ditto.
        (WebCore::throwSequenceTypeError): Ditto.
        (WebCore::throwSetterTypeError): Ditto.
        (WebCore::throwThisTypeError): Ditto.

        * bindings/js/JSDOMBinding.h: Added declarations for new functions. Removed forward
        declarations for things not used in this file. Use nullptr instead of 0. Format
        templates consistently. Use a better for loop in the jsArray function. Removed
        unused HasMemoryCostMemberFunction, makeDOMBindingsTypeErrorString, and
        makeDOMBindingsTypeErrorStringInternal.

        * bindings/js/JSNavigatorCustom.cpp: Fixed a hand-written binding that was using
        makeDOMBindingsTypeErrorString to make a string.

        * bindings/js/ScriptController.h: Updated forward declarations.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation): Cut down on use of UNUSED_PARAM. Use the new functions
        for errors, keeping the code in the generated file to a minimum.
        (GenerateParametersCheck): Ditto.
        (GenerateConstructorDefinition): Ditto.

        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        * bindings/scripts/test/JS/JSTestException.cpp:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        * bindings/scripts/test/JS/JSTestNode.cpp:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        * bindings/scripts/test/JS/JSattribute.cpp:
        * bindings/scripts/test/JS/JSreadonly.cpp:
        Updated expected results for changes above.

2014-04-06  Benjamin Poulain  <benjamin@webkit.org>

        Move the PseudoPageClass types out of the pseudo element/class mix
        https://bugs.webkit.org/show_bug.cgi?id=131284

        Reviewed by Darin Adler.

        Some more cleanup of Selector's pseudo types. This patch moves the page pseudo
        class types into their own enumeration (PagePseudoClassType).

        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::parsePagePseudoSelector):
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::specificityForPage):
        (WebCore::CSSSelector::pseudoId):
        (WebCore::CSSSelector::selectorText):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::setPagePseudoType):
        (WebCore::CSSSelector::pagePseudoClassType):
        * css/PageRuleCollector.cpp:
        (WebCore::checkPageSelectorComponents):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):

2014-04-06  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: add support for :last-child and :only-child
        https://bugs.webkit.org/show_bug.cgi?id=131283

        Reviewed by Andreas Kling.

        This is the straightforward implementation of :last-child and :only-child.

        Both are extremely similar to :first-child. There are only minor differences:
        -:last-child has an additional check for the flag IsParsingChildrenFinished.
        -:only-child is like :first-child + :last-child but with combined marking.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToNextAdjacentElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoPreviousAdjacentElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNoNextAdjacentElement):
        (WebCore::SelectorCompiler::markElementWithSetChildrenAffectedByLastChildRules):
        (WebCore::SelectorCompiler::setLastChildState):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsLastChild):
        (WebCore::SelectorCompiler::markElementWithSetChildrenAffectedByFirstChildAndLastChildRules):
        (WebCore::SelectorCompiler::setOnlyChildState):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsOnlyChild):
        * dom/Node.h:
        (WebCore::Node::nextSiblingMemoryOffset):
        (WebCore::Node::flagIsParsingChildrenFinished):
        * rendering/style/RenderStyle.h:
        Removed the unused flags, I will add them back later as needed.

2014-04-06  Darin Adler  <darin@apple.com>

        Rework CSS calc logic, fixing some reference count mistakes in Length
        https://bugs.webkit.org/show_bug.cgi?id=131280
        rdar://problem/16400823

        Reviewed by Andreas Kling.

        New unit test in TestWebKitAPI.

        Changed the classes related to CSS "calc" to make the code a bit easier to read by
        moving code out of class definitions. Also used final some more, made more things private,
        used references instead of pointers, and other such changes. Biggest change, though, is to
        Length, which had a broken system for managing reference counted calculated objects.
        There were multiple bugs including a basic design mistake of not having a reference count
        and trying to use the reference count in the object itself. Fixed and covered by the unit
        test now; test found multiple problems in both the old and new implementations.

        * WebCore.exp.in: Updated exports, including symbols to make the unit test practical.

        * WebCore.xcodeproj/project.pbxproj: Made CalculationValue.h a Private file so it can
        be used in a unit test. Also let Xcode update the file type for a gperf file.

        * css/CSSCalculationValue.cpp:
        (WebCore::CSSCalcValue::equals): Updated since m_expression is a Ref now.
        (WebCore::CSSCalcValue::clampToPermittedRange): Marked inline and updated for data member
        name change.
        (WebCore::isIntegerResult): Changed argument order to put the operator first and use
        references instead of pointers. Also marked inline.
        (WebCore::createBlendHalf): Added. Helper to make the other functions more readable.
        (WebCore::createExpressionNode): Made non-member function private to this file. Also made
        many small improvements.
        (WebCore::CSSCalcValue::create): Updated so both of these call the same constructor.

        * css/CSSCalculationValue.h: Cut down CSSCalcValue class by making more things private
        and deleting unneeded things. Also use Ref instead of RefPtr.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::getPositionOffsetValue): Use isFixed function instead of type function.

        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::addStops): Updated code since toCalcValue now returns PassRef
        instead of PassRefPtr. Unfortunately the new code is a bit more verbose.
        (WebCore::positionFromValue): Ditto.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseCalculation):

        * css/CSSPrimitiveValue.cpp:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Updated to pass reference rather than pointer.
        (WebCore::CSSPrimitiveValue::init): Ditto.

        * css/CSSToStyleMap.h: Removed unneeded include of LengthBox.h.

        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyLength::applyValue): Updated for function name change.
        (WebCore::ApplyPropertyBorderRadius::applyValue): Removed extra parentheses.
        (WebCore::ApplyPropertyFontSize::applyValue): Ditto. Also updated since toCalcValue returns Ref.

        * css/LengthFunctions.cpp:
        (WebCore::floatValueForLength): Updated to call value instead of getFloatValue; both are the same.

        * css/StyleResolver.cpp:
        (WebCore::addIntrinsicMargins): Updated for function name change.
        (WebCore::createGridTrackBreadth): Ditto.

        * platform/CalculationValue.cpp:
        (WebCore::CalculationValue::create): Changed to return PassRef.
        (WebCore::CalcExpressionNumber::evaluate): Moved this function out of the header, since it's
        virtual and not really going to be inlined.
        (WebCore::CalcExpressionNumber::operator==): Ditto.
        (WebCore::CalculationValue::evaluate): Ditto.
        (WebCore::CalcExpressionBinaryOperation::operator==): Ditto.
        (WebCore::CalcExpressionLength::evaluate): Ditto.
        (WebCore::CalcExpressionLength::operator==): Ditto.
        (WebCore::CalcExpressionBlendLength::evaluate): Ditto.
        (WebCore::CalcExpressionBlendLength::operator==): Ditto.

        * platform/CalculationValue.h: Moved most functions out of the class bodies so the classes are
        easier to see. Made all the == operator functions non-member ones except for the polymorphic
        one from the base class. Changed the casting functions to work on references instead of pointers.
        Tweaked name of some members.

        * platform/Length.cpp: Reworked the CalculationValueMap (formerly CalculationValueHandleMap) to
        use unsigned instead of int, and store reference counts in the map rather than trying to share the
        reference count of the underlying CalculationValue object, which can lead to storage leaks where
        handles end up in the map permanently.
        (WebCore::calculationValues): Use NeverDestroyed instead of DEPRECATED_DEFINE_STATIC_LOCAL.
        (WebCore::Length::Length): Updated some data member names.
        (WebCore::Length::calculationValue): Updated to return a reference instead of a PassRefPtr.
        (WebCore::Length::ref): Renamed and updated for new interface to the map.
        (WebCore::Length::deref): Ditto.
        (WebCore::Length::nonNanCalculatedValue): Updated to use a reference instead of a pointer.
        (WebCore::Length::isCalculatedEqual): Updated since this is now only called if both objects are
        known to be calculated values.

        * platform/Length.h: Moved most functions out of the class definition to make the class definition
        easier to read. Reworked the constructors and assignment operators to handle the reference counting
        correctly. Added various FIXMEs and assertions. Removed some unused functions, made others private.

        * platform/LengthBox.h: Renamed some one-letter arguments to use words instead.

        * rendering/AutoTableLayout.cpp:
        (WebCore::AutoTableLayout::recalcColumn): Updated for change to Length::setValue.
        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::calcWidthArray): Ditto.

        * rendering/style/FillLayer.h:
        (WebCore::FillLayer::initialFillXPosition): Updated to not convert a double to a float at runtime.
        (WebCore::FillLayer::initialFillYPosition): Ditto.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::setWordSpacing): Removed a bogus FALLTHROUGH that was clearly wrong, but
        harmless. Updated for changes to Length.

        * rendering/style/RenderStyle.h: Updated for name changes and to avoid converting doubles to floats
        at runtime.

2014-04-06  Brent Fulgham  <bfulgham@apple.com>

        Honor System-Level User Preferences for Caption Display
        https://bugs.webkit.org/show_bug.cgi?id=131258

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setSelectedTextTrack): Allow preferenced change to fully dispatch
        so we can properly deal with captions being turned off.
        (WebCore::HTMLMediaElement::captionPreferencesChanged): Use 'webkit' variant of the
        setWebKitClosedCaptionsVisible method so we properly adjust settings needed for the JS API call.
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay): When captions are turned off, e.g.
        because the user turned off the preference, don't inadvertently turn them back on just bacause there
        was an existing track that was not in a 'hidden' state.

2014-04-06  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: add methods to encode a frame's index based on its FrameTree position
        https://bugs.webkit.org/show_bug.cgi?id=131281

        Reviewed by Timothy Hatcher.

        Given a frame, its encoded index is computed by traversing the frame tree
        and saving how many nodes have been traversed to reach a given frame.

        This is used to disambiguate frames when dispatching frame-specific event
        loop inputs during replay, such as timers and resource loaders.

        * replay/SerializationMethods.cpp:
        (WebCore::frameIndexFromDocument): Added.
        (WebCore::frameIndexFromFrame): Added.
        (WebCore::documentFromFrameIndex): Added.
        (WebCore::frameFromFrameIndex): Added.
        * replay/SerializationMethods.h:

2014-04-06  Alexey Proskuryakov  <ap@apple.com>

        iOS build fix.

        * WebCore.exp.in: Move newly exported function to a right section of this file.

2014-04-06  Darin Adler  <darin@apple.com>

        Refactor post-attach and HTMLObjectElement-related code
        https://bugs.webkit.org/show_bug.cgi?id=131282

        Reviewed by Antti Koivisto.

        * dom/ContainerNode.cpp: Moved the post-attach callback code from here to
        StyleResolveTree.h/cpp.
        * dom/ContainerNode.h: Ditto.

        * dom/Document.cpp:
        (WebCore::Document::recalcStyle): Use Style::PostResolutionCallbackDisabler instead of
        PostAttachCallbackDisabler.

        * dom/Element.h: Moved the post-attach callback code from here to StyleResolveTree.h/cpp.

        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseAttribute): Simplified the code for typeAttr, turning
        it into a 1-liner. Added a FIXME in codeAttr about the fact that it does not have the
        code to trigger image loads.

        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::didAttachRenderers): Updated to use
        Style::queuePostResolutionCallback and use a lambda instead of a function.
        (WebCore::HTMLFormControlElement::didRecalcStyle): Ditto. Also added RefPtr instead
        of just using wishful thinking to keep the object alive.
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc): Ditto.

        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseAttribute):: Simplified the code for typeAttr, turning
        it into a 1-liner. Made dataAttr call setNeedsWidgetUpdate(true) unconditionally after
        checking carefully to see that's harmless if there is no renderer. Changed classidAttr
        to call setNeedsWidgetUpdate(true) unconditionally and not set m_classId.
        (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk): Use fastGetAttribute
        instead of classId and descendantsOfType instead of getElementsByTagName.
        (WebCore::HTMLObjectElement::hasValidClassId): Use fastGetAttribute instead of classId.
        (WebCore::HTMLObjectElement::renderFallbackContent): Use imageLoader instead of m_imageLoader.

        * html/HTMLObjectElement.h: Removed classId, since there is no reason to cache that
        attribute in a data member. Rearranged header, making more private, and fixing some typos,
        and doing a "using" instead of a function to disambiguate the inherited form functions.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::createElementRenderer): Fixed some code that assumed the
        first child of the shadow root is guaranteed to be an element.
        (WebCore::HTMLPlugInImageElement::didMoveToNewDocument): Removed null check on oldDocument,
        since m_needsDocumentActivationCallbacks can't be true if the old document was null.
        (WebCore::is100Percent): Added helper to make function below more readable.
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Restructured the code a
        bit. The part that attracted my attention was the local variable of type RenderBox, which
        was named renderEmbeddedObject. Turns out the caller guarantees to only call this if there
        is a renderer of type RenderEmbeddedObject, so depend on that.

        * html/HTMLPlugInImageElement.h: Trimmed includes a bit. Made more members private.
        Marked more function members final. Made a protected imageLoader function so that
        m_imageLoader can be private eventually. Made m_imageLoader be std::unique_ptr.

        * style/StyleResolveTree.cpp:
        (WebCore::Style::needsPseudoElement): Fixed spelling error in the name of this function.
        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded): Updated for name change.
        (WebCore::Style::attachRenderTree): Update for new name of PostResolutionCallbackDisabler.
        (WebCore::Style::updateBeforeOrAfterPseudoElement): Updated for name change.
        (WebCore::Style::postResolutionCallbackQueue): Added.
        (WebCore::Style::queuePostResolutionCallback): Added.
        (WebCore::Style::suspendMemoryCacheClientCalls): Added. This is a side effect of the original
        PostAttachCallbackDisabler that is now done in a cleaner way, using the callback queue, instead
        of as a special case. It should not work for multiple documents across multiple pages instead of
        only the outermost one.
        (WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler): Added.
        Calls suspendMemoryCacheClientCalls, but a FIXME tries to point out why that isn't so great.
        (WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler): Added.
        (WebCore::Style::postResolutionCallbacksAreSuspended): Added.

        * style/StyleResolveTree.h: Added queuePostResolutionCallback and
        postResolutionCallbacksAreSuspended. Also added PostResolutionCallbackDisabler, which should
        eventually become a private implementation detail.

2014-04-04  Brian J. Burg  <burg@cs.washington.edu>

        Enable WEB_REPLAY for PLATFORM(MAC)
        https://bugs.webkit.org/show_bug.cgi?id=130700

        Reviewed by Timothy Hatcher.

        Switch on WEB_REPLAY feature flag for non-production builds.

        * Configurations/FeatureDefines.xcconfig:
        * replay/ReplayInputDispatchMethods.cpp: Fix the ENABLE(WEB_REPLAY) build.
        It was broken by the bool to enum refactoring in r166684.
        (WebCore::InitialNavigation::dispatch):

2014-04-05  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: remove unused test hook setInspectorResourcesDataSizeLimits
        https://bugs.webkit.org/show_bug.cgi?id=131268

        Reviewed by Timothy Hatcher.

        This was used in the old inspector frontend tests for the Network panel.
        It's no longer used by any tests or frontend code.

        * WebCore.exp.in: Remove symbols.
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::setInspectorResourcesDataSizeLimits): Deleted.
        * inspector/InspectorController.h:
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::setResourcesDataSizeLimitsFromInternals): Deleted.
        * inspector/InspectorResourceAgent.h:
        * inspector/NetworkResourcesData.cpp:
        (WebCore::NetworkResourcesData::setResourcesDataSizeLimits): Deleted.
        * inspector/NetworkResourcesData.h:
        * testing/Internals.cpp:
        (WebCore::Internals::setInspectorResourcesDataSizeLimits): Deleted.
        * testing/Internals.h:
        * testing/Internals.idl:

2014-04-05  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (NetworkProcess): Subresources fail to load from AppCache
        https://bugs.webkit.org/show_bug.cgi?id=131262
        <rdar://problem/15370653>

        Reviewed by Sam Weinig.

        Exported ApplicationCacheHost::maybeLoadResource. Changed it to take a const
        reference to ResourceRequest, as appropriate for WebResourceLoadScheduler.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::maybeLoadResource):
        * loader/appcache/ApplicationCacheHost.h:

2014-04-05  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: remove unused metrics and commands from the Timeline agent
        https://bugs.webkit.org/show_bug.cgi?id=131184

        Reviewed by Timothy Hatcher.

        This patch removes several instrumentation hooks that are not being
        used by the frontend in any way. Most of them are not hooked up to
        produce any data, so they just clutter up InspectorClient and the agent.

        * WebCore.exp.in: Remove didBeginFrame/didCancelFrame.
        * inspector/InspectorClient.h: Remove client methods that are never overridden.
        (WebCore::InspectorClient::canMonitorMainThread): Deleted.
        (WebCore::InspectorClient::supportsFrameInstrumentation): Deleted.
        (WebCore::InspectorClient::getAllocatedObjects): Deleted.
        (WebCore::InspectorClient::dumpUncountedAllocatedObjects): Deleted.

        * inspector/InspectorController.cpp: Remove unused instrumentation.
        (WebCore::InspectorController::didBeginFrame): Deleted.
        (WebCore::InspectorController::didCancelFrame): Deleted.
        (WebCore::InspectorController::didComposite): Deleted.
        (WebCore::InspectorController::wilComposite): Deleted.
        * inspector/InspectorController.h:

        * inspector/InspectorTimelineAgent.cpp: Remove the backend's BeginFrame enum
        value, but keep it in the protocol for when it is reimplemented. Remove
        management of the current frame record, and simplify some code.
        (WebCore::toProtocol):
        (WebCore::InspectorTimelineAgent::addRecordToTimeline):
        (WebCore::InspectorTimelineAgent::didCompleteCurrentRecord):
        (WebCore::InspectorTimelineAgent::pushCurrentRecord):
        (WebCore::InspectorTimelineAgent::clearRecordStack):
        (WebCore::InspectorTimelineAgent::canMonitorMainThread): Deleted.
        (WebCore::InspectorTimelineAgent::supportsFrameInstrumentation): Deleted.
        (WebCore::InspectorTimelineAgent::didBeginFrame): Deleted.
        (WebCore::InspectorTimelineAgent::didCancelFrame): Deleted.
        (WebCore::InspectorTimelineAgent::didComposite): Deleted.
        (WebCore::InspectorTimelineAgent::wilComposite): Deleted.
        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline): Deleted. Undo telescoping.
        (WebCore::usedHeapSize): Deleted.
        (WebCore::InspectorTimelineAgent::commitFrameRecord): Deleted.
        * inspector/InspectorTimelineAgent.h:
        (WebCore::InspectorTimelineAgent::TimelineRecordEntry::TimelineRecordEntry):
        * inspector/protocol/Timeline.json:

        * platform/graphics/texmap/coordinated/CompositingCoordinator.cpp: Remove
        instrumentation hook for beginFrame. This is the only backend that implements it.
        (WebCore::CompositingCoordinator::syncDisplayState):

        * testing/Internals.cpp: Remove crufty test methods that aren't used.
        (WebCore::Internals::emitInspectorDidBeginFrame): Deleted.
        (WebCore::Internals::emitInspectorDidCancelFrame): Deleted.
        * testing/Internals.h:
        * testing/Internals.idl:

2014-04-05  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r163914): Application cache cannot be used in main frame
        https://bugs.webkit.org/show_bug.cgi?id=131263
        <rdar://problem/16532063>

        Reviewed by Sam Weinig.

        * loader/appcache/ApplicationCacheHost.cpp: (WebCore::ApplicationCacheHost::isApplicationCacheBlockedForRequest):
        Don't check main frame origin when loading into main frame, it's not a 3rd party
        subframe, and the URL is unrelated to the page we are loading now.

        * loader/appcache/ApplicationCacheGroup.cpp: (WebCore::ApplicationCacheGroup::cacheForMainRequest):
        Removed the same incorrect check that was duplicated here. The only caller already
        checks isApplicationCacheBlockedForRequest().

2014-04-05  Dan Bernstein  <mitz@apple.com>

        [Xcode] Clean up the platform/graphics group
        https://bugs.webkit.org/show_bug.cgi?id=131271

        Reviewed by Eric Carlson.

        * WebCore.xcodeproj/project.pbxproj: Created an opentype group and moved opentype file
        references into it. Removed duplicate file references.

2014-04-05  Andreas Kling  <akling@apple.com>

        Remove unused type casting helpers for HTMLUnknownElement...

        ...to fix the debug build.

        * html/HTMLUnknownElement.h:

2014-04-05  Dirk Schulze  <krit@webkit.org>

        Canvas strokeText and fillText with SourceIn, DestinationIn, SourceOut, DestinationAtop and Copy have errors
        https://bugs.webkit.org/show_bug.cgi?id=66766

        Reviewed by Andreas Kling.

        Use transparency layers to draw text with certain compositing modes on
        the canvas. This follows the Canvas specification and makes WebKit fully
        compatible with IE. It also makes it more compatible with Firefox, even though
        Firefox still has some bugs.

        Test: fast/canvas/canvas-composite-text-alpha.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawTextInternal):

2014-04-05  Andreas Kling  <akling@apple.com>

        Devirtualize isHTMLUnknownElement().
        <https://webkit.org/b/131269>

        We were hitting isHTMLUnknownElement() pretty hard when marking
        out-of-document Nodes. (The check is part of isHTMLAudioElement()
        which is called by JSNodeOwner::isReachableFromOpaqueRoots().)

        This patch uses a Node flag for the unknown element instead.
        I'm also adding HTMLUnknownElement.{h,idl} to the Xcode project
        since they were suspiciously missing.

        Reviewed by Benjamin Poulain.

        * WebCore.xcodeproj/project.pbxproj:
        * dom/Node.h:
        * html/HTMLElement.h:
        (WebCore::HTMLElement::isHTMLUnknownElement):
        * html/HTMLUnknownElement.h:
        (WebCore::toHTMLUnknownElement): Deleted.

2014-04-05  Dirk Schulze  <krit@webkit.org>

        Canvas stroke and strokeRect with SourceIn, DestinationIn, SourceOut, DestinationAtop and Copy have errors
        https://bugs.webkit.org/show_bug.cgi?id=66762

        Reviewed by Andreas Kling.

        For fill operations we create a new ImageBuffer to ensure that the results are composited
        correctly according to the Canvas spec. This patch creates a new transparency layer
        for stroking on certain compositing operators to archive the same. This makes WebKit's
        behavior interoperable with Firefox and IE as well. 

        Test: fast/fast/canvas/canvas-composite-stroke-alpha.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::strokeInternal):
        (WebCore::CanvasRenderingContext2D::strokeRect):

2014-04-05  Yusuke Suzuki  <utatane.tea@gmail.com>

        Use preallocated stack reference to store adjacentBacktrackingStart
        https://bugs.webkit.org/show_bug.cgi?id=131237

        Reviewed by Benjamin Poulain.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacent): Deleted.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures): Deleted.
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDescendantBacktrackingTail): Deleted.
        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::allocateUninitialized):

2014-04-05  Jeongeun Kim  <je_julie.kim@samsung.com>

        bad values from HTMLImageElement x and y attributes (CSSOM-View)
        https://bugs.webkit.org/show_bug.cgi?id=130308
        
        Reviewed by Simon Fraser.

        According to CSSOM-View, interface HTMLImageElement,
        The x attribute must return the x-coordinate.
        If style is not updated when x() is called, it can’t return anything.
        Style and layout should be done before getting value for x() and y(). 

        Test: cssom/cssom-view-img-attributes-001.html

        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::x):
        (WebCore::HTMLImageElement::y):

2014-04-05  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Remove CSSBoxType member from BasicShape and CSSBasicShape
        https://bugs.webkit.org/show_bug.cgi?id=129706

        Reviewed by Andreas Kling.

        The CSSBoxType has been moved up to ShapeValue and is no longer needed in the BasicShape classes.

        No new tests, no behavior change.

        * css/BasicShapeFunctions.cpp:
        (WebCore::valueForBasicShape):
        (WebCore::basicShapeForValue):
        * rendering/style/BasicShapes.cpp:
        (WebCore::BasicShape::canBlend):
        * rendering/style/BasicShapes.h:
        (WebCore::BasicShape::referenceBox): Deleted.
        (WebCore::BasicShape::setReferenceBox): Deleted.
        (WebCore::BasicShape::BasicShape): Deleted.

2014-04-05  Mark Rowe  <mrowe@apple.com>

        Fix the 32-bit build after r166818.

        * WebCore.exp.in:

2014-04-03  Brian J. Burg  <burg@cs.washington.edu>

        Web Inspector: hook up probe samples to TimelineAgent's records
        https://bugs.webkit.org/show_bug.cgi?id=131127

        Reviewed by Timothy Hatcher.

        Hook up probe callbacks from ScriptDebugListener so that timeline records are
        created for probe samples. The record includes the probe identifier and hit count.
        The actual probe evaluation result is sent separately by DebuggerAgent, and
        can be looked up in frontend models using the identifier and hit count.

        * inspector/InspectorTimelineAgent.cpp: Only listen to the debug server when recording.
        (WebCore::InspectorTimelineAgent::start):
        (WebCore::InspectorTimelineAgent::stop):
        (WebCore::InspectorTimelineAgent::breakpointActionProbe):
        (WebCore::toProtocol):
        * inspector/InspectorTimelineAgent.h:
        * inspector/TimelineRecordFactory.cpp:
        (WebCore::TimelineRecordFactory::createProbeSampleData):
        * inspector/TimelineRecordFactory.h:
        * inspector/protocol/Timeline.json: Add new enum value.

2014-04-04  Andreas Kling  <akling@apple.com>

        Streamline cached wrapper lookup for Nodes in the normal world.
        <https://webkit.org/b/131249>

        Inline the hot path for toJS(..., Node*) for cached wrapper lookups
        in the normal world. (Or really, out-of-line the cold path, since
        that was preventing the compiler from inlining this function.)

        Also have JSDOMGlobalObject cache the "is normal world" flag from
        the DOMWrapperWorld so we can avoid the extra load.

        Reviewed by Benjamin Poulain.

        * WebCore.exp.in:
        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::JSDOMGlobalObject):
        * bindings/js/JSDOMGlobalObject.h:
        (WebCore::JSDOMGlobalObject::worldIsNormal):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::getOutOfLineCachedWrapper):
        * bindings/js/JSNodeCustom.h:
        (WebCore::toJS):

2014-04-04  Brady Eidson  <beidson@apple.com>

        Show DataDetector UI on scanned phone numbers.
        <rdar://problem/16379588> and https://bugs.webkit.org/show_bug.cgi?id=131247

        Reviewed by Tim Horton.

        Gather the ranges of the scanned telephone numbers and send them up to WK2:
        * editing/Editor.cpp:
        (WebCore::Editor::respondToChangedSelection):
        (WebCore::Editor::scanSelectionForTelephoneNumbers):
        (WebCore::Editor::scanRangeForTelephoneNumbers):
        * editing/Editor.h:

        Add client method to receive scanned telephone number ranges:
        * page/EditorClient.h:
        (WebCore::EditorClient::selectedTelephoneNumberRangesChanged):

        Remove unneeded placeholder UI:
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintDocumentMarkers):
        (WebCore::InlineTextBox::computeRectForReplacementMarker): Deleted.
        (WebCore::InlineTextBox::paintCompositionUnderline): Deleted.
        * rendering/InlineTextBox.h:
        (WebCore::InlineTextBox::expansionBehavior): Deleted.

2014-04-04  James Craig  <jcraig@apple.com>

        AX: supportsARIAExpanded should always return true for a few roles: combobox, disclosure.
        https://bugs.webkit.org/show_bug.cgi?id=129787

        Reviewed by Chris Fleizach.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::supportsARIAExpanded):

2014-04-04  Andreas Kling  <akling@apple.com>

        JSGenerateToNativeObject should use fast JSNode/JSElement casts.
        <https://webkit.org/b/131245>

        Make JSGenerateToNativeObject spit out code using the fast new wrapper
        casts for JSNode and JSElement.

        This avoids walking the ClassInfo chain in many core functions, e.g:

            - Node.insertBefore()
            - Node.replaceChild()
            - Node.removeChild()
            - Node.appendChild()
            - window.getComputedStyle()

        Reviewed by Geoff Garen.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):

2014-04-04  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] polygon y-value calc() args serialize incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=129842

        Reviewed by Bem Jones-Bey.

        The code hit ASSERT(isCalculation(value)) in CSSParser::createPrimitiveNumbericValue, because
        CSSParser::validUnit had been called on both coordinates, which set the value for m_parsedCalculation,
        but only one of the coordinates was calculation value. I reordered calling valudUnit and
        createPrimitiveNumbericValue to be called in the correct order on the coordinates.

        I added the new test case to parsing-test-utils.js.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseBasicShapePolygon):

2014-04-04  Brian J. Burg  <burg@cs.washington.edu>

        Web Replay: capture and replay wheel events and scroll commands
        https://bugs.webkit.org/show_bug.cgi?id=129402

        Reviewed by Timothy Hatcher and Simon Fraser.

        To capture and replay scrolling, the scrolling coordinator will force synchronous 
        scrolling during capture and replay. If the page is capturing or replaying,
        ForceOnMainThread will be added to the coordinator's SynchronousScrollingReasons.

        A callback was added to signal that replay session state have changed,
        and thus the synchronous scrolling reasons should be recomputed.

        Automated replay reftests for scrolling are not included, because they will be
        too flaky until more nondeterminism is handled. Specifically, resource loading,
        initial focus/active state, and parsing are known blocking issues.

        Test: ManualTests/inspector/replay-wheel-events.html

        * page/scrolling/ScrollingCoordinator.cpp: Add a new callback for replay state
        session changes. Add ForceOnMainThread if the page's active input cursor is
        capturing or replaying.

        (WebCore::ScrollingCoordinator::synchronousScrollingReasons):
        (WebCore::ScrollingCoordinator::replaySessionStateDidChange): Added.
        * page/scrolling/ScrollingCoordinator.h:

        * platform/PlatformWheelEvent.h:
        * platform/ScrollTypes.h: Add explicit enum storage types so these enums can
        be forward-declared. This is necessary to generate enum encode/decode implementations.

        * replay/ReplayController.cpp:
        (WebCore::ReplayController::setForceDeterministicSettings): If async scrolling
        support is available, tell the scrolling tree to behave deterministically.

        * replay/ReplayInputDispatchMethods.cpp:
        (WebCore::HandleWheelEvent::dispatch): Added.
        (WebCore::LogicalScrollPage::dispatch): Added.
        (WebCore::ScrollPage::dispatch): Added.
        * replay/SerializationMethods.cpp: Introduce more specific macros for values
        deserialized to arbitraray lvalues, scalars, RefPtr, and unique_ptr. Fix existing
        uses of decode macros.

        (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue): Fix macro name.
        (JSC::EncodingTraits<KeypressCommand>::encodeValue): Fix macro name.
        (JSC::EncodingTraits<PlatformKeyboardEvent>::encodeValue): Fix macro name.
        (JSC::EncodingTraits<PlatformMouseEvent>::encodeValue): Fix macro name.
        (JSC::PlatformWheelEventCocoa::PlatformWheelEventCocoa): Added. Encapsulate
        and initialize data members specific to PLATFORM(COCOA).

        (JSC::EncodingTraits<PlatformWheelEvent>::encodeValue): Added.
        (JSC::EncodingTraits<PlatformWheelEvent>::decodeValue): Added.
        * replay/SerializationMethods.h:
        * replay/UserInputBridge.cpp: Fill in bridge methods to capture inputs.
        (WebCore::UserInputBridge::handleWheelEvent):
        (WebCore::UserInputBridge::scrollRecursively):
        (WebCore::UserInputBridge::logicalScrollRecursively):
        * replay/WebInputs.json: Add inputs and new enum types.

2014-04-04  Yusuke Suzuki  <utatane.tea@gmail.com>

        Upgrade to SelectorFailsAllSiblings when Child selector is failed.
        https://bugs.webkit.org/show_bug.cgi?id=130961

        Reviewed by Benjamin Poulain.

        When Child selector fails, we should resume matching from the closest
        Descendant selector.
        So upgrading SelectorFailsLocally to SelectorFailsAllSibling at least
        to prevent unnecessary direct/indirect adjacent selectors matching.

        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::matchRecursively):

2014-04-04  Roger Fong  <roger_fong@apple.com>

        Keep track of filtered active attribute/uniform indices per shader program.
        https://bugs.webkit.org/show_bug.cgi?id=131235.

        Reviewed by Dean Jackson.

        Tests: Covered by existing Khronos Conformance tests. 
        Will create a test to use multiple shader programs in a follow-up patch.

        * html/canvas/WebGLProgram.cpp:
        (WebCore::WebGLProgram::cacheActiveAttribLocations): Use getActiveAttribImpl. We do not need to use the filtered list of attributes here.
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getUniformLocation): Use filtered list of uniforms for uniform count.
        * platform/graphics/GraphicsContext3D.h: Create a map of shader programs to ActiveShaderSymbolCounts.
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::attachShader): 
        When attaching or detaching a shader the shader program's active symbols list will change. Clear it so that it will be updated later.
        (WebCore::GraphicsContext3D::detachShader): Ditto.
        (WebCore::GraphicsContext3D::compileShader): No need to clear symbol counts here.
        (WebCore::GraphicsContext3D::getActiveAttrib): getActiveAttrib should only be able to query for attributes in the filtered list.
        (WebCore::GraphicsContext3D::getActiveUniform): getActiveUniform should only be able to query for uniforms in the filtered list.
        (WebCore::GraphicsContext3D::getNonBuiltInActiveSymbolCount): Return the filtered symbol count for a shader program.

2014-04-04  Ion Rosca  <rosca@adobe.com>

        [CSS Blending] Add compositing reason for isolation.
        https://bugs.webkit.org/show_bug.cgi?id=131153

        Reviewed by Joseph Pecoraro.

        There are 2 reasons involving blend modes for a layer to be composited:
        1) the layer has blend mode and has composited descendants: CompositingReasonBlendingWithCompositedDescendants.
        2) the layer has to isolate composited blending descendants: CompositingReasonIsolatesCompositedBlendingDescendants

        Test: inspector-protocol/layers/layers-blending-compositing-reasons.html

        * inspector/InspectorLayerTreeAgent.cpp:
        (WebCore::InspectorLayerTreeAgent::reasonsForCompositingLayer):
        * inspector/protocol/LayerTree.json:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::reasonsForCompositing):
        (WebCore::RenderLayerCompositor::logReasonsForCompositing):
        * rendering/RenderLayerCompositor.h: adding CompositingReasonIsolatesCompositedBlendingDescendants.

2014-04-04  Bem Jones-Bey  <bjonesbe@adobe.com>

        Use more const refs in ShapeOutsideInfo and some misc cleanup
        https://bugs.webkit.org/show_bug.cgi?id=131192

        Reviewed by Dirk Schulze.

        Use const refs for pretty much everything that can't be null. Also
        cleanup some code that got a bit messy when ShapeInfo was merged into
        ShapeOutsideInfo.

        No new tests, no behavior change.

        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::ShapeOutsideInfo::shapeToRendererPoint):
        (WebCore::ShapeOutsideInfo::shapeToRendererSize):
        (WebCore::referenceBox):
        (WebCore::ShapeOutsideInfo::setReferenceBoxLogicalSize):
        (WebCore::getShapeImageAndRect):
        (WebCore::ShapeOutsideInfo::computedShape):
        (WebCore::ShapeOutsideInfo::logicalTopOffset):
        (WebCore::ShapeOutsideInfo::logicalLeftOffset):
        * rendering/shapes/ShapeOutsideInfo.h:

2014-04-04  Alexey Proskuryakov  <ap@apple.com>

        REGRESSION (r166615): Pressing return doesn’t submit search term at bing.com
        https://bugs.webkit.org/show_bug.cgi?id=131212
        <rdar://problem/16521788>

        Reviewed by Dan Bernstein.

        Test: fast/forms/submit-while-you-submit.html

        Turns out that m_shouldSubmit can actually be modified in a code path where we can't
        directly return the result. I'm not sure if the current behavior is entirely correct
        (we have open bugs about submitting forms multiple times), but let's restore it to
        pre-r166615 state.

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::HTMLFormElement):
        (WebCore::HTMLFormElement::prepareForSubmission):
        (WebCore::HTMLFormElement::submit):
        * html/HTMLFormElement.h:

2014-04-04  Martin Hock  <mhock@apple.com>

        [Mac] Change operation queue width to NSOperationQueueDefaultMaxConcurrentOperationCount.
        https://bugs.webkit.org/show_bug.cgi?id=131231

        <rdar://problem/13913483>

        Reviewed by Brady Eidson.

        No new tests, no behavior change.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::operationQueueForAsyncClients):

2014-04-04  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] Simplify Polygon implementation
        https://bugs.webkit.org/show_bug.cgi?id=130975

        Reviewed by Andreas Kling.

        Only floats can specify shape-outside. For polygon shape-outside values, the problem
        of finding the left and right exclusion edges reduces to finding the X axis
        limits of the polygon edges that overlap a particular layout line. This is a much
        simpler version of the problem that PolygonShape was originally designed for, and so
        the implementation can also be simplified. There's more about the new algorithm in
        http://hansmuller-webkit.blogspot.com/2014/03/a-simpler-algorithm-for-css-shapes.html.

        No new tests, since functionality was only removed.

        * platform/graphics/FloatRect.h:
        (WebCore::FloatRect::overlapsYRange):
        (WebCore::FloatRect::overlapsXRange):
        * rendering/shapes/PolygonShape.cpp:
        (WebCore::OffsetPolygonEdge::xIntercept):
        (WebCore::circleXIntercept):
        (WebCore::OffsetPolygonEdge::clippedEdgeXRange): X axis extent of the edge clipped to a vertical interval.
        (WebCore::clippedCircleXRange): X axis extent of a circle clipped to a vertical interval.
        (WebCore::PolygonShape::shapeMarginLogicalBoundingBox):
        (WebCore::PolygonShape::getExcludedIntervals):
        (WebCore::PolygonShape::buildDisplayPaths):
        * rendering/shapes/PolygonShape.h:
        (WebCore::OffsetPolygonEdge::OffsetPolygonEdge):
        (WebCore::OffsetPolygonEdge::isWithinYRange):
        (WebCore::OffsetPolygonEdge::overlapsYRange):
        (WebCore::PolygonShape::PolygonShape):
        * rendering/shapes/ShapeInterval.h:
        (WebCore::ShapeInterval::isEmpty):
        (WebCore::ShapeInterval::unite):

2014-04-04  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] shape-margin in percentage units always computes to 0px
        https://bugs.webkit.org/show_bug.cgi?id=130369

        Reviewed by Andreas Kling.

        Make shape-margin parsing accept percentages and properly compute the
        length once the percentage is accepted.

        Test: fast/shapes/shape-outside-floats/shape-outside-floats-shape-margin-percent.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createShape):
        (WebCore::Shape::createRasterShape):
        (WebCore::Shape::createBoxShape):
        * rendering/shapes/Shape.h:
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::ShapeOutsideInfo::computedShape):

2014-04-04  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Remove outside-shape CSS value
        https://bugs.webkit.org/show_bug.cgi?id=131201

        Reviewed by Bem Jones-Bey.

        Outside-shape is not a valid CSS value anymore. This patch removes it.

        No new tests, existing tests are removed.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::shapePropertyValue):
        * css/CSSValueKeywords.in:
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyShape::applyValue):
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::ShapeOutsideInfo::computedShape):
        (WebCore::ShapeOutsideInfo::isEnabledFor):
        * rendering/style/ShapeValue.h:
        (WebCore::ShapeValue::createOutsideValue): Deleted.

2014-04-04  Dirk Schulze  <krit@webkit.org>

        Gradient offsets are off if compositing operator != source-over
        https://bugs.webkit.org/show_bug.cgi?id=129791

        Reviewed by Andreas Kling.

        Instead of transforming the path before drawing it on the context,
        the whole context should be transformed. This will make the gradient
        map correctly to the context space.

        Test: fast/canvas/canvas-gradient-on-compositing.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::fullCanvasCompositedFill):

2014-04-04  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Move background images to device pixel boundaries.
        https://bugs.webkit.org/show_bug.cgi?id=131144

        Reviewed by Simon Fraser.

        Replace integral snapping with device pixel snapping.
        Background image geometry calculation uses LayoutUnits and we snap to device pixels right before painting.

        Tests: fast/backgrounds/hidpi-bitmap-background-on-subpixel-position.html
               fast/backgrounds/hidpi-bitmap-background-origin-on-subpixel-position.html
               fast/backgrounds/hidpi-bitmap-background-repeat-on-subpixel-position.html
               fast/backgrounds/hidpi-generated-gradient-background-on-subpixel-position.html

        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::setContentsTilePhase):
        (WebCore::GraphicsLayer::contentsTilePhase):
        (WebCore::GraphicsLayer::setContentsTileSize):
        (WebCore::GraphicsLayer::contentsTileSize):
        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::setContentsTileSize):
        (WebCore::TextureMapperLayer::setContentsTilePhase):
        * platform/graphics/texmap/TextureMapperLayer.h:
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.cpp:
        (WebCore::CoordinatedGraphicsLayer::setContentsTileSize):
        (WebCore::CoordinatedGraphicsLayer::setContentsTilePhase):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsLayer.h:
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsState.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::repaintLayerRectsForImage):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        (WebCore::resolveWidthForRatio):
        (WebCore::resolveHeightForRatio):
        (WebCore::resolveAgainstIntrinsicWidthOrHeightAndRatio):
        (WebCore::resolveAgainstIntrinsicRatio):
        (WebCore::RenderBoxModelObject::calculateImageIntrinsicDimensions):
        (WebCore::RenderBoxModelObject::calculateFillTileSize):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatX):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setNoRepeatY):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::useFixedAttachment):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::clip):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::relativePhase):
        (WebCore::getSpace):
        (WebCore::RenderBoxModelObject::pixelSnapBackgroundImageGeometryForPainting):
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
        (WebCore::RenderBoxModelObject::getGeometryForBackgroundImage):
        (WebCore::RenderBoxModelObject::paintNinePieceImage):
        (WebCore::applySubPixelHeuristicForTileSize): Deleted.
        * rendering/RenderBoxModelObject.h:
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destOrigin):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestOrigin):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::destRect):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setDestRect):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::phase):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhase):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::tileSize):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setTileSize):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::spaceSize):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setSpaceSize):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseX):
        (WebCore::RenderBoxModelObject::BackgroundImageGeometry::setPhaseY):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::getShapeImageAndRect):

2014-04-04  Brent Fulgham  <bfulgham@apple.com>

        [Win] Unreviewed test fix (crash in debug build).

        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::AVFWrapper::legibleOutputCallback): Correct assertion. This
        callback is scheduled for the caption queue, not the main queue.

2014-04-03  Brent Fulgham  <bfulgham@apple.com>

        [Win] Load Media Controls js/css from bundle
        https://bugs.webkit.org/show_bug.cgi?id=131194

        Reviewed by Dean Jackson.

        * DerivedSources.cpp: Remove no-longer generated file.
        * DerivedSources.make: Don't generate unneeded files.
        * WebCore.vcxproj/WebCore.vcxproj: Don't compile unneeded files.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * WebCore.vcxproj/copyWebCoreResourceFiles.cmd: Copy css/js to resource
        * rendering/RenderThemeSafari.cpp:
        * rendering/RenderThemeSafari.h:
        * rendering/RenderThemeWin.cpp:
        * rendering/RenderThemeWin.h:

2014-04-04  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Region's behaviour not updated when becoming valid from invalid
        https://bugs.webkit.org/show_bug.cgi?id=131211

        Reviewed by Andrei Bucur.

        When a region becomes valid again from invalid, it was part of a dependency cycle and the dependency cycle was broken,
        it needs to behave like a valid region again: if it has autoheight then it should compute its height based on the
        named flow content, if it has region styling then it should apply the additional style to the flowed content.

        Added a new method, updateRegionFlags, that is used to ensure that auto-height and region-styling flags
        are properly set in several situations. Checking the behaviour, autoheight or styling, is done only
        if the region is valid.

        Tests: fast/regions/auto-size/autoheight-region-valid-from-invalid.html
               fast/regions/region-styling/region-withstyling-valid-from-invalid.html

        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::updateRegionFlags):
        (WebCore::RenderNamedFlowFragment::styleDidChange):
        (WebCore::RenderNamedFlowFragment::updateRegionHasAutoLogicalHeightFlag):
        (WebCore::RenderNamedFlowFragment::checkRegionStyle):
        (WebCore::RenderNamedFlowFragment::attachRegion):
        (WebCore::RenderNamedFlowFragment::detachRegion):
        * rendering/RenderNamedFlowFragment.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::addFragmentToNamedFlowThread):

2014-04-04  Raphael Kubo da Costa  <raphael.kubo.da.costa@intel.com>

        [GTK][CMake] Remove FindXt.cmake.
        https://bugs.webkit.org/show_bug.cgi?id=131227

        Reviewed by Anders Carlsson.

        * PlatformGTK.cmake: Use FindX11.cmake's Xt variables instead of our own FindXt.cmake's ones.

2014-04-03  Andreas Kling  <akling@apple.com>

        Fast-path for casting JS wrappers to JSElement.
        <https://webkit.org/b/131210>

        Add an extended JSType for Element wrappers so we can avoid walking
        the ClassInfo chain in those bindings as well.

        Generalized the code to select a casting helper in the bindings
        generator into a function (GetCastingHelperForThisObject.)
        Updated all the jsDynamicCast call sites to go through this, in case
        there's an optimized cast available for the desired type.

        Reviewed by Benjamin Poulain.

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDOMWrapper.h:
        * bindings/js/JSElementCustom.h: Added.
        (WebCore::jsElementCast):
        * bindings/js/JSNodeCustom.h:
        (WebCore::jsNodeCast):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GetCastingHelperForThisObject):
        (GenerateImplementation):
        * dom/Element.idl:

2014-04-03  Andreas Kling  <akling@apple.com>

        Rebaseline a bindings test.

        * bindings/scripts/test/JS/JSTestNode.h:
        (WebCore::JSTestNode::createStructure):

2014-04-03  Andreas Kling  <akling@apple.com>

        Fast-path for casting JS wrappers to JSNode.
        <https://webkit.org/b/131196>

        Add a way to quickly determine that a given JSObject is a JSNode.
        This lets us avoid walking the ClassInfo chain in the DOM bindings
        for WebCore::Node.

        Reviewed by Mark Hahnenberg and Geoff Garen.

        * bindings/js/JSDOMWrapper.h:

            Added a JSNodeType constant that extends beyond JSC::JSType.

        * bindings/js/JSNodeCustom.h:
        (WebCore::jsNodeCast):

            Added. Fast cast from JSValue to JSNode.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):

            Generate code that uses jsNodeCast in Node interfaces.

2014-04-03  Bem Jones-Bey  <bjonesbe@adobe.com>

        Merge ShapeInfo & ShapeOutsideInfo now that ShapeInsideInfo is no more
        https://bugs.webkit.org/show_bug.cgi?id=131180

        Reviewed by Andreas Kling.

        Now that ShapeInsideInfo is gone, having a class hiearachy and
        templates doesn't make any sense. As a first step to cleaning up the
        code, this remove ShapeInfo and puts all of its functionality into
        ShapeOutsideInfo.

        No new tests, no behavior change.

        * CMakeLists.txt:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * rendering/shapes/ShapeInfo.cpp: Removed.
        * rendering/shapes/ShapeInfo.h: Removed.
        * rendering/shapes/ShapeOutsideInfo.cpp:
        (WebCore::ShapeOutsideInfo::computedShapePhysicalBoundingBox):
        (WebCore::ShapeOutsideInfo::shapeToRendererPoint):
        (WebCore::ShapeOutsideInfo::shapeToRendererSize):
        (WebCore::referenceBox):
        (WebCore::ShapeOutsideInfo::setReferenceBoxLogicalSize):
        (WebCore::checkShapeImageOrigin):
        (WebCore::getShapeImageAndRect):
        (WebCore::getShapeImageMarginRect):
        (WebCore::ShapeOutsideInfo::computedShape):
        (WebCore::borderBeforeInWritingMode):
        (WebCore::borderAndPaddingBeforeInWritingMode):
        (WebCore::ShapeOutsideInfo::logicalTopOffset):
        (WebCore::borderStartWithStyleForWritingMode):
        (WebCore::borderAndPaddingStartWithStyleForWritingMode):
        (WebCore::ShapeOutsideInfo::logicalLeftOffset):
        (WebCore::ShapeOutsideInfo::computeSegmentsForLine):
        (WebCore::ShapeOutsideInfo::updateDeltasForContainingBlockLine):
        (WebCore::ShapeOutsideInfo::shapeValue): Deleted.
        (WebCore::ShapeOutsideInfo::styleForWritingMode): Deleted.
        * rendering/shapes/ShapeOutsideInfo.h:

2014-04-03  Andreas Kling  <akling@apple.com>

        Fix over-retain in SharedBufferCF's createCFData().
        <https://webkit.org/b/131139>

        Constructing the return type (RetainPtr<CFDataRef>) will also retain
        the pointee, so this would end up leaking.

        Reviewed by Anders Carlsson.

        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::createCFData):

2014-04-03  Brent Fulgham  <bfulgham@apple.com>

        [Win] Turn on ENABLE_CSS_GRID_LAYOUT
        https://bugs.webkit.org/show_bug.cgi?id=131147

        Reviewed by Simon Fraser.

        Covered by existing fast/css/getComputedStyle tests.

        * css/CSSAllInOne.cpp: Add CSSGridLineNamesValue.cpp when building
        with ENABLE(CSS_GRID_LAYOUT)

2014-04-03  Simon Fraser  <simon.fraser@apple.com>

        Pixelated WebView when display is changed from hiDPI to regularDPI
        https://bugs.webkit.org/show_bug.cgi?id=131185

        Reviewed by Tim Horton.

        r166309 added a short circuit in GraphicsLayerCA::updateContentsScale()
        when the scale didn't change. This broke layers which expected to
        unconditionally receive a setContentsScale(), namely the WebTiledBackingLayer
        which owns the TileController. WebTiledBackingLayer overrode -setContentsScale:
        to pass the scale down to the TileController; however, it didn't override
        -contentsScale, and it mucked with the scale passed in.
        
        Fix by having setting and fetching contentsScale on a WebTiledBackingLayer
        work as expected. Also rename the TileController functions to mirror the
        CALayer functions better.

        * WebCore.exp.in:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateContentsScale):
        * platform/graphics/ca/mac/TileController.h:
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::TileController):
        (WebCore::TileController::contentsScale):
        (WebCore::TileController::setContentsScale):
        (WebCore::TileController::scale): Deleted.
        (WebCore::TileController::setScale): Deleted.
        * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
        (-[WebTiledBackingLayer setContentsScale:]):
        (-[WebTiledBackingLayer contentsScale]):

2014-04-03  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] LineSegment logicalLeft and logicalRight members should be floats
        https://bugs.webkit.org/show_bug.cgi?id=116160

        Reviewed by Andreas Kling. 

        LineSegment edges should not have been changed to LayoutUnit. These are
        used only as floats. I modified them back to floats. 

        No new tests are needed, no behavior change.

        * rendering/shapes/Shape.h:

2014-04-03  Dirk Schulze  <krit@webkit.org>

        [CG] Canvas lineDashOffset does not handle negative numbers correctly
        https://bugs.webkit.org/show_bug.cgi?id=80560

        Reviewed by Dean Jackson.

        CG ignores negative dash array offsets. Check if we have a negative offset, if yes
        then calculate the length of the dash array and modulo the dash array offset with
        the dash array length.

        Test: fast/canvas/canvas-negative-lineDashOffset.html

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::setLineDash):

2014-04-03  David Hyatt  <hyatt@apple.com>

        REGRESSION: fast/css/relative-positioned-block-nested-with-inline-parent-multiple-descendant-blocks-dynamic.html broken
        https://bugs.webkit.org/show_bug.cgi?id=131183

        Reviewed by Simon Fraser.

        Revert the loop to continue rather than breaking when an invalid block is encountered.
        This is what it used to do if it encountered a non-continuation block.

        * rendering/RenderInline.cpp:
        (WebCore::updateStyleOfAnonymousBlockContinuations):

2014-04-02  Simon Fraser  <simon.fraser@apple.com>

        Harden FilterOperation type casting
        https://bugs.webkit.org/show_bug.cgi?id=131142

        Reviewed by Sam Weinig.

        DefaultFilterOperation had an error-prone behavior where it set the base class
        OperationType to the type of some other filter class, but overrode isDefault(). 
        This made it very easy to write incorrect code that casted incorrectly based on type().
        
        Fix by making adding a DEFAULT filter operation type, and storing the represented
        type on DefaultFilterOperation().
        
        Also remove the OperationType argument for constructors of FilterOperations that
        can only be of one type, to avoid possible mistakes.
        
        Make the type cast macros a bit more normal, and use them in a few places.
        
        Fixed PlatformCAFiltersMac to handle the default filter case more cleanly.

        * WebCore.exp.in:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::valueForFilter):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::createFilterOperations):
        * platform/graphics/ca/PlatformCAFilters.h:
        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
        (PlatformCAFilters::filterValueForOperation):
        (PlatformCAFilters::colorMatrixValueForFilter):
        * platform/graphics/filters/FilterOperation.cpp:
        (WebCore::DefaultFilterOperation::operator==):
        (WebCore::ReferenceFilterOperation::ReferenceFilterOperation):
        (WebCore::ReferenceFilterOperation::operator==):
        (WebCore::BlurFilterOperation::operator==):
        (WebCore::BlurFilterOperation::blend):
        (WebCore::DropShadowFilterOperation::operator==):
        (WebCore::DropShadowFilterOperation::blend):
        * platform/graphics/filters/FilterOperation.h:
        (WebCore::FilterOperation::blend):
        (WebCore::FilterOperation::type):
        (WebCore::FilterOperation::isBasicColorMatrixFilterOperation):
        (WebCore::FilterOperation::isBasicComponentTransferFilterOperation):
        (WebCore::FilterOperation::isSameType):
        (WebCore::DefaultFilterOperation::create):
        (WebCore::DefaultFilterOperation::representedType):
        (WebCore::DefaultFilterOperation::DefaultFilterOperation):
        (WebCore::ReferenceFilterOperation::create):
        (WebCore::BlurFilterOperation::create):
        (WebCore::BlurFilterOperation::BlurFilterOperation):
        (WebCore::DropShadowFilterOperation::create):
        (WebCore::DropShadowFilterOperation::DropShadowFilterOperation):
        (WebCore::FilterOperation::isDefault): Deleted.
        * platform/graphics/filters/FilterOperations.cpp:
        (WebCore::FilterOperations::outsets):
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::build):
        * rendering/RenderLayerFilterInfo.cpp:
        (WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):

2014-04-03  Andreas Kling  <akling@apple.com>

        Stop throwing away the Document's StyleResolver on a timer.
        <https://webkit.org/b/131168>
        <rdar://problem/15227045>

        This was causing some unfortunate pauses when returning to idle pages
        after a long-ish time. There's already a mechanism in place that will
        throw these away if the system comes under memory pressure.

        Reviewed by Sam Weinig.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleForElement):
        (WebCore::StyleResolver::styleForKeyframe):
        (WebCore::StyleResolver::pseudoStyleForElement):
        (WebCore::StyleResolver::styleForPage):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::didAccessStyleResolver): Deleted.
        (WebCore::Document::styleResolverThrowawayTimerFired): Deleted.
        * dom/Document.h:

2014-04-02  Simon Fraser  <simon.fraser@apple.com>

        Assertion under RenderLayerCompositor::updateScrollCoordinatedLayer on time.com on iOS
        https://bugs.webkit.org/show_bug.cgi?id=131150

        Reviewed by Beth Dakin.

        When calling updateScrollCoordinatedLayer() under styleChanged, we haven't done
        layout yet so our composting layers haven't been hooked together. Don't try
        to add a zero nodeID to the map in this case.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

2014-04-03  David Hyatt  <hyatt@apple.com>

        Continuations casting issue.
        https://bugs.webkit.org/show_bug.cgi?id=130057
        <rdar://problem/16283406>

        Reviewed by Simon Fraser.

        The code to update relative positioned anonymous block continuations should not
        have assumed that all siblings were RenderBlocks. Make the code smarter and
        make it bail when it hits something that isn't part of the block continuation
        chain.

        Added fast/block/continuation-crash.html

        * rendering/RenderInline.cpp:
        (WebCore::updateStyleOfAnonymousBlockContinuations):

2014-04-03  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] CRASH with calc() value args in inset round
        https://bugs.webkit.org/show_bug.cgi?id=129816

        Reviewed by Andreas Kling.

        The code to parse the inset rounded corners was adding the parser
        value arguments to a temporary CSSParserValueList. Unfortunately,
        CSSParserValueList expects to own the values it contains, and it frees
        the values it contains when the list is destroyed. This was a problem
        because the values are owned by the CSSParserValueList passed in to
        parseInsetRoundedCorners, and thus the calc's argument list would get
        double freed, resulting in a crash. This patch fixes this by using a
        Vector to hold the pointers instead.

        Test: fast/shapes/shape-outside-floats/shape-outside-inset-round-calc-crash.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseInsetRoundedCorners):

2014-04-03  Jer Noble  <jer.noble@apple.com>

        Leaving a streaming movie by going "Back" keeps playing the audio
        https://bugs.webkit.org/show_bug.cgi?id=131149

        Reviewed by Eric Carlson.

        When stopping a HTMLMediaElement, call userCancelledLoad() (which clears the
        MediaPlayer) only after calling setPausedInternal() (which pauses the MediaPlayer).
        Previously, and in the reverse order, the MediaPlayer would never get a chance to pause
        before being cleared. There is an underlying error with the QTKit media engine which
        is causing it to continue playing even after its last reference is released, but this
        does fix the symptom of playback continuing even after stopping.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::stop):

2014-04-03  Jer Noble  <jer.noble@apple.com>

        [EME] Crash when passing a NULL initData to MediaKeys.createSession()
        https://bugs.webkit.org/show_bug.cgi?id=131156

        Reviewed by Eric Carlson.

        Update the checks at the start of createSession() to match the current spec, notably
        bailing early if the initData parameter is NULL or empty.

        * Modules/encryptedmedia/MediaKeys.cpp:
        (WebCore::MediaKeys::createSession):

2014-04-03  Eric Carlson  <eric.carlson@apple.com>

        [iOS] add missing QuickTime plug-in replacement API
        https://bugs.webkit.org/show_bug.cgi?id=131042

        Reviewed by Dean Jackson.

        Rename QuickTimePluginReplacement.cpp to QuickTimePluginReplacement.mm to make it possible
        to use the ObjC JSC API.
        * Modules/plugins/QuickTimePluginReplacement.cpp:
        * Modules/plugins/QuickTimePluginReplacement.h:
        (WebCore::QuickTimePluginReplacement::parentElement):
        * Modules/plugins/QuickTimePluginReplacement.idl:

        * Modules/plugins/QuickTimePluginReplacement.js:
        (Replacement.prototype.timedMetadataUpdates): Implement.
        (Replacement.prototype.accessLog): Ditto.
        (Replacement.prototype.errorLog): Ditto.

        Use the JSC ObjC API to create a JavaScript object from an array of AVMetadataItems. The
        JSC ObjC API supports basic NSTypes, but an AVMetadataItem can also contain NSData which 
        the existing plug-in returns as base-64 encoded data, so create wrappers for NSDictionary
        and NSArray.
        * Modules/plugins/QuickTimePluginReplacement.mm: Copied from Source/WebCore/Modules/plugins/QuickTimePluginReplacement.cpp.
        (WebCore::QuickTimePluginReplacement::ensureReplacementScriptInjected): Disambiguate with "JSC::"
        (WebCore::QuickTimePluginReplacement::installReplacement): Ditto.
        (WebCore::jsValueWithDataInContext): Create JSValue* from NSData.
        (WebCore::jsValueWithArrayInContext): Create JSValue* from NSArray.
        (WebCore::jsValueWithDictionaryInContext): Create JSValue* from NSDictionary.
        (WebCore::jsValueWithValueInContext): Create JSValue* from basic NSTypes plus AVMetadataItem
            and NSData.
        (WebCore::jsValueWithAVMetadataItemInContext): Create JSValue* from AVMetadataItem.
        (WebCore::JSQuickTimePluginReplacement::timedMetaData): Script interface.
        (WebCore::JSQuickTimePluginReplacement::accessLog): Ditto.
        (WebCore::JSQuickTimePluginReplacement::errorLog): Ditto.

        * WebCore.xcodeproj/project.pbxproj: QuickTimePluginReplacement.cpp -> QuickTimePluginReplacement.mm.

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::timedMetadata): iOS only accessor.
        (WebCore::MediaPlayer::accessLog): Ditto.
        (WebCore::MediaPlayer::errorLog): Ditto.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::timedMetadata):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::accessLog):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::errorLog):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::metadataDidArrive):
        (WebCore::itemKVOProperties):
        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):

2014-04-03  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Include region range information when printing the render tree
        https://bugs.webkit.org/show_bug.cgi?id=131159

        Reviewed by Mihnea Ovidenie.

        With this change showRenderObject() will print the region range for objects inside
        a flow thread. The format is:
        Rs: <startRegion> Re: <endRegion>

        Because this can be called anytime during debugging, it's necessary to disable the
        current flow thread caching to prevent using the wrong flow thread for an object.

        Tests: No new tests, no functional change.

        * rendering/RenderFlowThread.cpp:
        (WebCore::CurrentRenderFlowThreadDisabler::CurrentRenderFlowThreadDisabler):
        (WebCore::CurrentRenderFlowThreadDisabler::~CurrentRenderFlowThreadDisabler):
        * rendering/RenderFlowThread.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::showRegionsInformation): Added.
        (WebCore::RenderObject::showRenderObject):
        * rendering/RenderObject.h:

2014-04-03  Antti Koivisto  <antti@apple.com>

        RenderSnapshottedPlugIn::paint should use iterator for traversal.
        https://bugs.webkit.org/show_bug.cgi?id=131158

        Reviewed by Dean Jackson.

        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::paint):

2014-03-27  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] <string> not allowed in grid-{area | row | column} syntax
        https://bugs.webkit.org/show_bug.cgi?id=129713

        Reviewed by Darin Adler.

        Grid positioning properties no longer accept <string> values for
        named grid lines as they did in previous versions of the specs. They
        were first replaced by <ident> and since the beginning of 2014 they
        should only accept <custom-ident>.

        Updated the parser and the style resolver to this new syntax. Also
        updated the tests accordingly.

        Test: fast/css-grid-layout/grid-container-change-named-grid-lines-recompute-child.html

        * css/CSSParser.cpp:
        (WebCore::isValidCustomIdent): New function that checks that the
        <custom-ident> is valid.
        (WebCore::CSSParser::parseIntegerOrCustomIdentFromGridPosition):
        (WebCore::CSSParser::parseGridPosition):
        (WebCore::CSSParser::parseIntegerOrStringFromGridPosition):
        Replaced by WebCore::CSSParser::parseIntegerOrCustomIdentFromGridPosition.
        * css/CSSParser.h:
        * css/StyleResolver.cpp:
        (WebCore::createGridPosition):

2014-04-03  Antti Koivisto  <antti@apple.com>

        Crash after mutating after pseudo style
        https://bugs.webkit.org/show_bug.cgi?id=130881

        Reviewed by Andreas Kling.

        Test: fast/css/pseudo-after-crash.html

        * style/StyleResolveTree.cpp:
        (WebCore::Style::updateBeforeOrAfterPseudoElement):
        
            Invalidate the cached renderer for pseudo elements too.
    
        (WebCore::Style::needsPseudeElement): Deleted.
        
            Fix spelling.

2014-04-02  Chris Fleizach  <cfleizach@apple.com>

        AX: AccessibilityObject::children() returns invalid results sometimes
        https://bugs.webkit.org/show_bug.cgi?id=130563

        Reviewed by Joseph Pecoraro.

        Allow the DOM inspector to handle AX objects that do not have Node equivalents
        (e.g. anonymous renderers).

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::processAccessibilityChildren):
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/InspectorDOMAgent.h:

2014-04-02  Alexey Proskuryakov  <ap@apple.com>

        Sandbox violation in NetworkProcess when uploading a bundle
        https://bugs.webkit.org/show_bug.cgi?id=131133

        Reviewed by Brady Eidson.

        Track generated file ownership explicitly, so that each copy of FormData would know
        whether to delete the file.

        This part is needed to prevent asserting in FormData destructor in NetworkProcess,
        because it doesn't delete the files. Also, some cleanup.

        * WebCore.exp.in: Don't export FormData::removeGeneratedFilesIfNeeded(), WebKit2
        doesn't need it any more.
        * platform/network/FormData.cpp: Removed m_hasGeneratedFiles. There is no problem
        iterating over FormDataElements to compute it, and that's more robust when FormDatas
        are passed or stored on disk permanently.
        Updated touched functions to use C++ iteration, and renamed "e" to "element".
        (WebCore::FormData::encode): Keep encoding a boolean for hasGeneratedFiles, because
        the encoded FormData can be stored persitently, and we can't change the format.

        * platform/network/FormData.h: (WebCore::FormDataElement::FormDataElement):
        Added m_ownsGeneratedFile. FormData will only delete files it owns. Since files
        are generated immediately before form submission, it's always the FormData being
        submitted that owns the generated files.

2014-04-02  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Use RenderStyle::hasFlowInto when needed
        https://bugs.webkit.org/show_bug.cgi?id=131092

        Reviewed by Andrei Bucur.

        Add hasFlowInto() helper method on RenderStyle to be used
        instead of directly checking the presence or absence of flowThread value.
        No new functionality, no new tests.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * dom/Element.cpp:
        (WebCore::Element::shouldMoveToFlowThread):
        * rendering/style/RenderStyle.h:
        * style/StyleResolveTree.cpp:
        (WebCore::Style::isRendererReparented):

2014-04-02  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: the adjacent position is never reset
        https://bugs.webkit.org/show_bug.cgi?id=131145

        Reviewed by Andreas Kling.

        Corresponding radar: <rdar://problem/16440036>. The backtracking action would use a tail
        when not needed.

        Test: fast/selectors/multiple-adjacent-chain-without-adjacent-tail.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::updateChainStates):

2014-04-02  Brent Fulgham  <bfulgham@apple.com>

        Speculative build fix for Windows.

        * DerivedSources.make: Make sure we generate our media control
        scripts for Apple Windows (but not WinCairo)

2014-04-02  Tim Horton  <timothy_horton@apple.com>

        Fix the !USE(IOSURFACE) iOS build.

        * platform/ios/MemoryPressureHandlerIOS.mm:
        (WebCore::MemoryPressureHandler::platformReleaseMemory):

2014-04-02  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/131136> Remove FrameLoadRequest's m_lockHistory member since it's always false.

        Reviewed by Andreas Kling.

        * loader/FrameLoadRequest.cpp:
        (WebCore::FrameLoadRequest::FrameLoadRequest):
        * loader/FrameLoadRequest.h:
        (WebCore::FrameLoadRequest::FrameLoadRequest):
        (WebCore::FrameLoadRequest::lockHistory): Deleted.
        (WebCore::FrameLoadRequest::setLockHistory): Deleted.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::load): Remove an if whose body was never executed.

2014-04-02  Mark Rowe  <mrowe@apple.com>

        <https://webkit.org/b/131135> Introduce LockHistory and LockBackForwardList enums to use in place of bools.

        These arguments are often passed using literals at the call site, where the use of bools severely hinders
        the readability of the code.

        Reviewed by Andreas Kling.

        * WebCore.exp.in:
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::handleClick):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::submit):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::openURL):
        (WebCore::HTMLFrameElementBase::setLocation):
        * html/HTMLFrameElementBase.h:
        * inspector/InspectorFrontendClientLocal.cpp:
        (WebCore::InspectorFrontendClientLocal::openInNewTab):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::navigate):
        * loader/FormSubmission.cpp:
        (WebCore::FormSubmission::FormSubmission):
        (WebCore::FormSubmission::create):
        * loader/FormSubmission.h:
        (WebCore::FormSubmission::lockHistory):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::changeLocation):
        (WebCore::FrameLoader::urlSelected):
        (WebCore::FrameLoader::loadURLIntoChildFrame):
        (WebCore::FrameLoader::loadFrameRequest):
        (WebCore::FrameLoader::loadURL):
        (WebCore::FrameLoader::loadWithNavigationAction):
        (WebCore::FrameLoader::clientRedirected):
        (WebCore::FrameLoader::loadPostRequest):
        (WebCore::FrameLoader::continueLoadAfterNewWindowPolicy):
        (WebCore::FrameLoader::loadDifferentDocumentItem):
        * loader/FrameLoader.h:
        * loader/FrameLoaderTypes.h:
        * loader/NavigationScheduler.cpp:
        (WebCore::ScheduledNavigation::ScheduledNavigation):
        (WebCore::ScheduledNavigation::lockHistory):
        (WebCore::ScheduledNavigation::lockBackForwardList):
        (WebCore::ScheduledURLNavigation::ScheduledURLNavigation):
        (WebCore::ScheduledRedirect::ScheduledRedirect):
        (WebCore::ScheduledLocationChange::ScheduledLocationChange):
        (WebCore::ScheduledRefresh::ScheduledRefresh):
        (WebCore::ScheduledHistoryNavigation::ScheduledHistoryNavigation):
        (WebCore::ScheduledFormSubmission::ScheduledFormSubmission):
        (WebCore::NavigationScheduler::scheduleRedirect):
        (WebCore::NavigationScheduler::mustLockBackForwardList):
        (WebCore::NavigationScheduler::scheduleLocationChange):
        (WebCore::NavigationScheduler::scheduleFormSubmission):
        * loader/NavigationScheduler.h:
        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::requestFrame):
        (WebCore::SubframeLoader::requestObject):
        (WebCore::SubframeLoader::loadOrRedirectSubframe):
        * loader/SubframeLoader.h:
        * page/ContextMenuController.cpp:
        (WebCore::openNewWindow):
        (WebCore::ContextMenuController::contextMenuItemSelected):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::setLocation):
        (WebCore::DOMWindow::createWindow):
        (WebCore::DOMWindow::open):
        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::defaultEventHandler):

2014-04-02  Tim Horton  <timothy_horton@apple.com>

        Pool IOSurfaces to help with allocation cost
        https://bugs.webkit.org/show_bug.cgi?id=131096
        <rdar://problem/15373942>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        
        * platform/Timer.h:
        (WebCore::TimerBase::startRepeating): Add a std::chrono startRepeating.

        * platform/graphics/cg/IOSurfacePool.h: Added.
        (WebCore::IOSurfacePool::CachedSurfaceDetails::CachedSurfaceDetails):
        (WebCore::IOSurfacePool::CachedSurfaceDetails::resetLastUseTime):
        * platform/graphics/cg/ImageBufferBackingStoreCache.cpp: Removed.
        * platform/graphics/cg/ImageBufferBackingStoreCache.h: Removed.
        * platform/graphics/cg/IOSurfacePool.cpp: Added.
        (WebCore::IOSurfacePool::IOSurfacePool):
        (WebCore::IOSurfacePool::sharedPool):
        (WebCore::surfaceMatchesParameters):
        (WebCore::IOSurfacePool::willAddSurface):
        (WebCore::IOSurfacePool::didRemoveSurface):
        (WebCore::IOSurfacePool::didUseSurfaceOfSize):
        (WebCore::IOSurfacePool::takeSurface):
        (WebCore::IOSurfacePool::addSurface):
        (WebCore::IOSurfacePool::insertSurfaceIntoPool):
        (WebCore::IOSurfacePool::setPoolSize):
        (WebCore::IOSurfacePool::tryEvictInUseSurface):
        (WebCore::IOSurfacePool::tryEvictOldestCachedSurface):
        (WebCore::IOSurfacePool::evict):
        (WebCore::IOSurfacePool::collectInUseSurfaces):
        (WebCore::IOSurfacePool::markOlderSurfacesPurgeable):
        (WebCore::IOSurfacePool::collectionTimerFired):
        (WebCore::IOSurfacePool::scheduleCollectionTimer):
        (WebCore::IOSurfacePool::discardAllSurfaces):
        (WebCore::IOSurfacePool::showPoolStatistics):
        Add a pool of IOSurfaces. It behaves as such:

            - Keeps up to 64MB of surfaces.
            - Keeps unused and in-use surfaces (but never gets more than 1/2 full with the latter)
            - Marks surfaces purgeable after they've been unused for 2 seconds.
            - Tries to move surfaces from the in-use pool to the unused pool every 500ms.
            - Evicts in an LRU-ish fashion, interleaving eviction of the oldest
              surfaces and the in-use surfaces (since in-use surfaces are not immediately
              useful for the pool, but they are desirous because they were recently used).
            - Throws everything away under memory pressure.

        * platform/graphics/cocoa/IOSurface.mm:
        (IOSurface::create):
        Try to grab a surface from the IOSurfacePool.

        * platform/ios/MemoryPressureHandlerIOS.mm:
        (WebCore::MemoryPressureHandler::platformReleaseMemory):
        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::install):
        (WebCore::MemoryPressureHandler::platformReleaseMemory):
        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::platformReleaseMemory):
        Fix some includes, and throw away all surfaces when we're under memory pressure.

2014-04-02  Stephanie Lewis  <slewis@apple.com>

        Roll out http://trac.webkit.org/changeset/166144
        <rdar://problem/16481284> PLT stops loading on news.google.com

        Unreviewed rollout.

        Rollout 166144 since it prevents the PLT from completing.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::suspendPostAttachCallbacks):
        (WebCore::ContainerNode::resumePostAttachCallbacks):
        (WebCore::ContainerNode::queuePostAttachCallback):
        (WebCore::ContainerNode::postAttachCallbacksAreSuspended):
        (WebCore::ContainerNode::dispatchPostAttachCallbacks):
        * dom/ContainerNode.h:
        * dom/Document.cpp:
        (WebCore::Document::recalcStyle):
        * dom/Element.h:
        (WebCore::PostAttachCallbackDisabler::PostAttachCallbackDisabler):
        (WebCore::PostAttachCallbackDisabler::~PostAttachCallbackDisabler):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseAttribute):
        * html/HTMLFormControlElement.cpp:
        (WebCore::focusPostAttach):
        (WebCore::HTMLFormControlElement::didAttachRenderers):
        (WebCore::updateFromElementCallback):
        (WebCore::HTMLFormControlElement::didRecalcStyle):
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::needsStyleRecalcCallback):
        (WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseAttribute):
        (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk):
        (WebCore::HTMLObjectElement::hasValidClassId):
        (WebCore::HTMLObjectElement::renderFallbackContent):
        * html/HTMLObjectElement.h:
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement):
        (WebCore::HTMLPlugInImageElement::createElementRenderer):
        (WebCore::HTMLPlugInImageElement::didAttachRenderers):
        (WebCore::HTMLPlugInImageElement::willDetachRenderers):
        (WebCore::HTMLPlugInImageElement::updateWidgetIfNecessary):
        (WebCore::HTMLPlugInImageElement::didMoveToNewDocument):
        (WebCore::HTMLPlugInImageElement::updateWidgetCallback):
        (WebCore::HTMLPlugInImageElement::startLoadingImage):
        (WebCore::HTMLPlugInImageElement::startLoadingImageCallback):
        (WebCore::HTMLPlugInImageElement::createShadowIFrameSubtree):
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn):
        (WebCore::HTMLPlugInImageElement::didRecalcStyle): Deleted.
        (WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution): Deleted.
        (WebCore::HTMLPlugInImageElement::updateAfterStyleResolution): Deleted.
        (WebCore::HTMLPlugInImageElement::removedFrom): Deleted.
        (WebCore::is100Percent): Deleted.
        (WebCore::HTMLPlugInImageElement::setNeedsImageReload): Deleted.
        * html/HTMLPlugInImageElement.h:
        (WebCore::HTMLPlugInImageElement::imageLoader): Deleted.
        (WebCore::HTMLPlugInImageElement::updateImageLoaderWithNewURLSoon): Deleted.
        * style/StyleResolveTree.cpp:
        (WebCore::Style::needsPseudeElement):
        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
        (WebCore::Style::attachRenderTree):
        (WebCore::Style::updateBeforeOrAfterPseudoElement):
        (WebCore::Style::needsPseudoElement): Deleted.
        (WebCore::Style::postResolutionCallbackQueue): Deleted.
        (WebCore::Style::queuePostResolutionCallback): Deleted.
        (WebCore::Style::suspendMemoryCacheClientCalls): Deleted.
        (WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler): Deleted.
        (WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler): Deleted.
        (WebCore::Style::postResolutionCallbacksAreSuspended): Deleted.
        * style/StyleResolveTree.h:

2014-04-02  Jinwoo Song  <jinwoo7.song@samsung.com>

        Page should use std::unique_ptr for PointerLockController
        https://bugs.webkit.org/show_bug.cgi?id=131098

        Reviewed by Anders Carlsson.

        Make Page keep a std::unique_ptr to PointerLockController. Store page 
        references and return controller references where possible.

        * dom/Document.cpp:
        (WebCore::Document::prepareForDestruction):
        (WebCore::Document::webkitExitPointerLock):
        (WebCore::Document::webkitPointerLockElement):
        * dom/Element.cpp:
        (WebCore::Element::removedFrom):
        (WebCore::Element::webkitRequestPointerLock):
        * page/Page.cpp:
        (WebCore::Page::Page):
        * page/Page.h:
        (WebCore::Page::pointerLockController):
        * page/PointerLockController.cpp:
        (WebCore::PointerLockController::PointerLockController):
        (WebCore::PointerLockController::requestPointerLock):
        (WebCore::PointerLockController::requestPointerUnlock):
        (WebCore::PointerLockController::create): Deleted.
        * page/PointerLockController.h:

2014-04-02  Dean Jackson  <dino@apple.com>

        Load Media Controls js/css from bundle
        https://bugs.webkit.org/show_bug.cgi?id=131086

        Followup comments from Eric Carlson.

        Remove the booleans that were guarding loading the resources.

        * rendering/RenderThemeIOS.h:
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::mediaControlsStyleSheet):
        (WebCore::RenderThemeIOS::mediaControlsScript):
        (WebCore::RenderThemeIOS::RenderThemeIOS):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::RenderThemeMac):
        (WebCore::RenderThemeMac::mediaControlsStyleSheet):
        (WebCore::RenderThemeMac::mediaControlsScript):

2014-04-01  Dean Jackson  <dino@apple.com>

        Load Media Controls js/css from bundle
        https://bugs.webkit.org/show_bug.cgi?id=131086

        Reviewed by Eric Carlson.

        Rather than embed encoded versions of the JS and CSS files
        into C++ source, just load the files directly from the bundle.

        * DerivedSources.make: Removed now unnecessary rules.
        * WebCore.xcodeproj/project.pbxproj: Copy mediaControls files to the bundle.
        * rendering/RenderThemeIOS.h:
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::RenderThemeIOS):
        (WebCore::RenderThemeIOS::mediaControlsStyleSheet): Load from the bundle.
        (WebCore::RenderThemeIOS::mediaControlsScript): Ditto.
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::RenderThemeMac):
        (WebCore::RenderThemeMac::mediaControlsStyleSheet):
        (WebCore::RenderThemeMac::mediaControlsScript):

2014-04-02  Daniel Bates  <dabates@apple.com>

        Move focus management API from HTMLDocument to Document
        https://bugs.webkit.org/show_bug.cgi?id=131079
        <rdar://problem/16220103>

        Reviewed by Timothy Hatcher.

        Merged from Blink (patch by Christophe Dumez):
        https://src.chromium.org/viewvc/blink?view=rev&revision=165515

        Move hasFocus() and attribute activeElement from interface HTMLDocument
        to DOMDocument as per section Focus management APIs of the HTML5 standard:
        <http://www.whatwg.org/specs/web-apps/current-work/#focus-management-apis> (1 April 2014).

        Test: fast/dom/Document/xml-document-focus.xml

        * bindings/objc/PublicDOMInterfaces.h: Moved hasFocus() and property activeElement from
        interface DOMHTMLDocument to DOMDocument.
        * dom/Document.cpp:
        (WebCore::Document::activeElement): Added.
        (WebCore::Document::hasFocus): Added.
        * dom/Document.h:
        * dom/Document.idl:
        * html/HTMLDocument.cpp:
        (WebCore::HTMLDocument::activeElement): Deleted.
        (WebCore::HTMLDocument::hasFocus): Deleted.
        * html/HTMLDocument.h:
        * html/HTMLDocument.idl:

2014-04-02  Benjamin Poulain  <benjamin@webkit.org>

        Refactor the function call generator to take the arguments by value
        https://bugs.webkit.org/show_bug.cgi?id=131129

        Reviewed by Andreas Kling.

        Nothing forces the pointed address to stay alive between setOneArgument/setTwoArguments
        and prepareAndCall.

        This patch changes FunctionCall to:
        -Keep the register by value instead of using pointers.
        -Crash at compile time if a register is invalid.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::FunctionCall):
        (WebCore::FunctionCall::setOneArgument):
        (WebCore::FunctionCall::setTwoArguments):
        (WebCore::FunctionCall::swapArguments):
        (WebCore::FunctionCall::prepareAndCall):
        * cssjit/RegisterAllocator.h:
        (WebCore::RegisterAllocator::isValidRegister):

2014-04-02  Daniel Bates  <dabates@apple.com>

        Remove Settings::maximumDecodedImageSize()
        https://bugs.webkit.org/show_bug.cgi?id=131057
        <rdar://problem/15626368>

        Reviewed by Darin Adler.

        The setting Settings::maximumDecodedImageSize() and its related logic have various
        shortcomings, including the inability to cancel an image load when the estimated
        decoded image size exceeds the maximum decoded image size. In the iOS port, this
        setting is less useful given image subsampling support. For now, we remove this
        setting and its related logic. Should it turn out that such a setting is useful
        then we can implement it again taking care to address the shortcomings in the
        original design.

        * html/HTMLCanvasElement.cpp: For the iOS port, define MaxCanvasArea to be 4580 * 1145
        pixels such that the maximum size of the image buffer is 20 MB (assumes 4 bytes per pixel).
        (WebCore::HTMLCanvasElement::HTMLCanvasElement):
        (WebCore::HTMLCanvasElement::createImageBuffer):
        * html/HTMLCanvasElement.h:
        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::createImageData):
        (WebCore::CanvasRenderingContext2D::getImageData):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::addIncrementalDataBuffer):
        (WebCore::CachedImage::finishLoading):
        * loader/cache/CachedImage.h:
        * page/Settings.in:

2014-04-02  Martin Hock  <mhock@apple.com>

        Unify private browsing with sessions.
        https://bugs.webkit.org/show_bug.cgi?id=130099

        Reviewed by Alexey Proskuryakov.

        Unless otherwise noted, the following consists solely of mechanical changes to replace querying WebCore::Settings::privateBrowsingEnabled() with Page::usesEphemeralSession().

        * Modules/webdatabase/DatabaseContext.cpp:
        (WebCore::DatabaseContext::allowDatabaseAccess):
        * WebCore.exp.in: Remove Settings::setPrivateBrowsingEnabled, add Page::legacyPrivateBrowsingEnabled.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * loader/HistoryController.cpp:
        (WebCore::HistoryController::updateForStandardLoad):
        (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
        (WebCore::HistoryController::updateForClientRedirect):
        (WebCore::HistoryController::updateForSameDocumentNavigation):
        (WebCore::HistoryController::pushState):
        (WebCore::HistoryController::replaceState):
        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::cacheForMainRequest):
        (WebCore::ApplicationCacheGroup::selectCache):
        (WebCore::ApplicationCacheGroup::selectCacheWithoutManifestURL):
        (WebCore::ApplicationCacheGroup::update):
        * loader/appcache/ApplicationCacheHost.cpp:
        (WebCore::ApplicationCacheHost::isApplicationCacheEnabled):
        * loader/icon/IconController.cpp:
        (WebCore::IconController::continueLoadWithDecision):
        * page/Page.cpp:
        (WebCore::Page::Page): Initialize with defaultSessionID.
        (WebCore::Page::legacyPrivateBrowsingEnabled): Legacy setting for private browsing.
        (WebCore::Page::privateBrowsingStateChanged): Move implementation to setSessionID.
        (WebCore::Page::sessionID): Simplify to just return m_sessionID.
        (WebCore::Page::setSessionID): Also perform privateBrowsingStateChanged action.a
        (WebCore::Page::privateBrowsingStateChanged): Deleted.
        (WebCore::Page::checkSubframeCountConsistency): Deleted.
        * page/Page.h:
        * page/PageConsole.cpp:
        (WebCore::PageConsole::addMessage):
        (WebCore::PageConsole::messageWithTypeAndLevel):
        * page/Settings.cpp: Remove privateBrowsingEnabled setting.
        (WebCore::Settings::Settings):
        (WebCore::Settings::setPrivateBrowsingEnabled): Page reflects setting using session.
        * page/Settings.h:
        * plugins/PluginView.cpp:
        (WebCore::PluginView::getValue):
        * rendering/RenderSearchField.cpp:
        (WebCore::RenderSearchField::addSearchResult):
        * storage/Storage.cpp:
        (WebCore::Storage::isDisabledByPrivateBrowsing):

2014-04-02  Antti Koivisto  <antti@apple.com>

        Try to fix test failures.

        * platform/graphics/ca/mac/TileGrid.mm:
        (WebCore::TileGrid::TileGrid):  Initialize a field.

2014-04-02  Timothy Hatcher  <timothy@apple.com>

        Remove Input domain from the Web Inspector protocol.

        https://bugs.webkit.org/show_bug.cgi?id=131073

        Reviewed by Joseph Pecoraro.

        * CMakeLists.txt:
        * DerivedSources.make:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorInputAgent.cpp: Removed.
        * inspector/InspectorInputAgent.h: Removed.
        * inspector/protocol/Input.json: Removed.

2014-04-02  Antti Koivisto  <antti@apple.com>

        Split tile grid out from TileController
        https://bugs.webkit.org/show_bug.cgi?id=131102

        Reviewed by Simon Fraser.

        Add a TileGrid class that encapsulates tiles, zoom level and the related metadata.
        This will make it possible to have multiple grids per TileController later.

2014-03-31  Brent Fulgham  <bfulgham@apple.com>

        [Win] Correct media controls for test harness
        https://bugs.webkit.org/show_bug.cgi?id=131008 

        Reviewed by Eric Carlson.

        * rendering/RenderThemeSafari.cpp: Revise to match RenderThemeWin logic.
        (WebCore::RenderThemeSafari::systemFont):
        (WebCore::RenderThemeSafari::paintMenuList):
        (WebCore::RenderThemeSafari::paintSearchFieldResultsButton):
        (WebCore::RenderThemeSafari::mediaControlsStyleSheet):
        (WebCore::RenderThemeSafari::mediaControlsScript):
        (WebCore::RenderThemeSafari::paintMediaFullscreenButton): Deleted.
        (WebCore::RenderThemeSafari::paintMediaMuteButton): Deleted.
        (WebCore::RenderThemeSafari::paintMediaPlayButton): Deleted.
        (WebCore::RenderThemeSafari::paintMediaSeekBackButton): Deleted.
        (WebCore::RenderThemeSafari::paintMediaSeekForwardButton): Deleted.
        (WebCore::RenderThemeSafari::paintMediaSliderTrack): Deleted.
        (WebCore::RenderThemeSafari::paintMediaSliderThumb): Deleted.
        * rendering/RenderThemeSafari.h:

2014-04-02  peavo@outlook.com  <peavo@outlook.com>

        [WinCairo] Compile error.
        https://bugs.webkit.org/show_bug.cgi?id=131110

        Reviewed by Simon Fraser.

        Image::size() now returns a FloatSize instead of an IntSize.

        * platform/win/DragImageCairoWin.cpp:
        (WebCore::createDragImageFromImage):

2014-04-02  David Kilzer  <ddkilzer@apple.com>

        Use outermost containing isolate when constructing bidi runs
        <http://webkit.org/b/131107>
        <rdar://problem/15690021>

        Reviewed by Darin Adler.

        Merged from Blink (patch by jww@chromium.org):
        https://src.chromium.org/viewvc/blink?revision=157268&view=revision
        http://crbug.com/279277

            Update containingIsolate to go back all the way to top
            isolate from current root, rather than stopping at the first
            isolate it finds. This works because the current root is
            always updated with each isolate run.

        Tests: fast/text/international/unicode-bidi-isolate-nested-with-removes-not-adjacent.html
               fast/text/international/unicode-bidi-isolate-nested-with-removes.html

        * rendering/InlineIterator.h:
        (WebCore::highestContainingIsolateWithinRoot):
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::constructBidiRunsForSegment):

2014-04-02  Chris Fleizach  <cfleizach@apple.com>

        AX: Improve ARIA live region reliability by sending notifications when live regions are created/shown and hidden/destroyed
        https://bugs.webkit.org/show_bug.cgi?id=124381

        Reviewed by Mario Sanchez Prada.

        Re-organize some code so that when we detect a new node has been created, we can safely determine its live region status.
        If it is a live region, we fire off a live region created notification.

        Test: platform/mac/accessibility/live-region-creation-notification.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::handleLiveRegionCreated):
        (WebCore::AXObjectCache::childrenChanged):
        (WebCore::AXObjectCache::handleAttributeChanged):
        * accessibility/AXObjectCache.h:
        (WebCore::AXObjectCache::childrenChanged):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::defaultLiveRegionStatusForRole):
        (WebCore::AccessibilityObject::liveRegionStatusIsEnabled):
        (WebCore::AccessibilityObject::supportsARIALiveRegion):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::ariaLiveRegionStatus):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
        * accessibility/AccessibilityRenderObject.h:
        * accessibility/ios/AXObjectCacheIOS.mm:
        (WebCore::AXObjectCache::postPlatformNotification):
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper postLiveRegionCreatedNotification]):
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::postPlatformNotification):

2014-04-02  Martin Robinson  <mrobinson@igalia.com>

        REGRESSION(r165704): [GTK] Inspector resources not correctly generated
        https://bugs.webkit.org/show_bug.cgi?id=130343

        Reviewed by Gustavo Noronha Silva.

        * CMakeLists.txt: Generate the web inspector JS file into the new WebInspectorUI derived sources
        directory.

2014-04-02  Zalan Bujtas  <zalan@apple.com>

        Unreviewed build fix after r166642.
        (WinCairo should really turn subpixel layout on.)

        * platform/graphics/LayoutSize.h:
        (WebCore::flooredForPainting):

2014-04-02  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make GraphicsContext::drawTiledImage* functions float based.
        https://bugs.webkit.org/show_bug.cgi?id=131062

        Reviewed by Simon Fraser.

        This is in preparation to support subpixel positioned/sized background images. Generated images
        need to be able to sized on device pixels.

        No change in behavior.

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        (WebCore::GraphicsContext::drawTiledImage):
        * platform/graphics/GraphicsContext.h:

2014-04-02  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Build fix after r166496.
        https://bugs.webkit.org/show_bug.cgi?id=131006

        Reviewed by Carlos Garcia Campos.

        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
        (WebCore::InbandTextTrackPrivateGStreamer::handleSample):
        (WebCore::InbandTextTrackPrivateGStreamer::streamChanged):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::changePipelineState):
        (WebCore::MediaPlayerPrivateGStreamer::videoChanged):
        (WebCore::MediaPlayerPrivateGStreamer::videoCapsChanged):
        (WebCore::MediaPlayerPrivateGStreamer::audioChanged):
        (WebCore::MediaPlayerPrivateGStreamer::textChanged):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
        (WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):
        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
        (WebCore::TrackPrivateBaseGStreamer::activeChanged):
        (WebCore::TrackPrivateBaseGStreamer::tagsChanged):
        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
        (webkitVideoSinkRender):
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcChangeState):
        (webKitWebSrcNeedDataCb):
        (webKitWebSrcEnoughDataCb):
        (webKitWebSrcSeekDataCb):
        Added std::function<void()> constructors to help Visual Studio decide which version of 
        GMainLoopSource::schedule or GMainLoopSource::scheduleAfterDelay to use.

2014-04-02  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Transition class CSSImageGeneratorValue/class StyleImage (and its dependencies) from 
        IntSize to FloatSize to enable subpixel sized (generated)images.
        https://bugs.webkit.org/show_bug.cgi?id=130659

        Reviewed by Simon Fraser and Andreas Kling.

        This is in preparation to support subpixel positioned/sized background images. Generated images
        needs to be able to sized on device pixels.

        No change in behavior.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSCanvasValue.cpp:
        (WebCore::CSSCanvasValue::fixedSize):
        (WebCore::CSSCanvasValue::image):
        * css/CSSCanvasValue.h:
        * css/CSSCrossfadeValue.cpp:
        (WebCore::CSSCrossfadeValue::fixedSize):
        (WebCore::CSSCrossfadeValue::image):
        * css/CSSCrossfadeValue.h:
        * css/CSSFilterImageValue.cpp:
        (WebCore::CSSFilterImageValue::fixedSize):
        (WebCore::CSSFilterImageValue::image):
        * css/CSSFilterImageValue.h:
        * css/CSSGradientValue.cpp:
        (WebCore::CSSGradientValue::image):
        (WebCore::positionFromValue):
        (WebCore::CSSGradientValue::computeEndPoint):
        (WebCore::endPointsFromAngle):
        (WebCore::CSSLinearGradientValue::createGradient):
        (WebCore::CSSRadialGradientValue::createGradient):
        * css/CSSGradientValue.h:
        (WebCore::CSSGradientValue::fixedSize):
        * css/CSSImageGeneratorValue.cpp:
        (WebCore::CSSImageGeneratorValue::cachedImageForSize):
        (WebCore::CSSImageGeneratorValue::saveCachedImageForSize):
        (WebCore::CSSImageGeneratorValue::evictCachedGeneratedImage):
        (WebCore::CSSImageGeneratorValue::CachedGeneratedImage::CachedGeneratedImage):
        (WebCore::CSSImageGeneratorValue::image):
        (WebCore::CSSImageGeneratorValue::fixedSize):
        * css/CSSImageGeneratorValue.h:
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::setContainerSizeForRenderer):
        * loader/cache/CachedImage.h:
        * platform/graphics/FloatSizeHash.h: Added.
        (WTF::FloatHash<WebCore::FloatSize>::hash):
        (WTF::FloatHash<WebCore::FloatSize>::equal):
        (WTF::HashTraits<WebCore::FloatSize>::constructDeletedValue):
        (WTF::HashTraits<WebCore::FloatSize>::isDeletedValue):
        * platform/graphics/LayoutSize.h:
        (WebCore::flooredForPainting):
        * rendering/RenderImageResourceStyleImage.h:
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::computePreferredLogicalWidths):
        * rendering/style/StyleCachedImage.cpp:
        (WebCore::StyleCachedImage::imageSize):
        (WebCore::StyleCachedImage::setContainerSizeForRenderer):
        (WebCore::StyleCachedImage::image):
        * rendering/style/StyleCachedImage.h:
        * rendering/style/StyleCachedImageSet.cpp:
        (WebCore::StyleCachedImageSet::imageSize):
        (WebCore::StyleCachedImageSet::setContainerSizeForRenderer):
        (WebCore::StyleCachedImageSet::image):
        * rendering/style/StyleCachedImageSet.h:
        * rendering/style/StyleGeneratedImage.cpp:
        (WebCore::StyleGeneratedImage::imageSize):
        (WebCore::StyleGeneratedImage::computeIntrinsicDimensions):
        (WebCore::StyleGeneratedImage::image):
        * rendering/style/StyleGeneratedImage.h:
        * rendering/style/StyleImage.h:
        * rendering/style/StylePendingImage.h:
        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::setContainerSizeForRenderer):
        * svg/graphics/SVGImageCache.h:

2014-04-02  Gergo Balogh  <gbalogh.u-szeged@partner.samsung.com>

        Warning fix for RenderLayer.
        https://bugs.webkit.org/show_bug.cgi?id=131090

        Reviewed by Csaba Osztrogonác.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateDescendantDependentFlags):

2014-04-02  Frédéric Wang  <fred.wang@free.fr>

        Operator stretching: read the Open Type MATH table
        https://bugs.webkit.org/show_bug.cgi?id=130324

        Reviewed by Chris Fleizach.

        We parse and expose some data from the OpenType MATH table that will be
        be relevant for at least the MathML operator stretching (bug 130322):
        math constants, italic corrections and size variants / glyph assembly.
        This will be tested when the MathML code uses the data.

        * WebCore.xcodeproj/project.pbxproj: Add OpenTypeTypes.h to the Mac build.
        * platform/graphics/opentype/OpenTypeMathData.cpp: We implement the low-level parsing of the MATH table.
        (WebCore::OpenType::MathItalicsCorrectionInfo::getItalicCorrection):
        (WebCore::OpenType::MathGlyphInfo::mathItalicsCorrectionInfo):
        (WebCore::OpenType::GlyphAssembly::getAssemblyParts):
        (WebCore::OpenType::MathGlyphConstruction::getSizeVariants):
        (WebCore::OpenType::MathGlyphConstruction::getAssemblyParts):
        (WebCore::OpenType::MathVariants::mathGlyphConstruction):
        (WebCore::OpenType::MATHTable::mathConstants):
        (WebCore::OpenType::MATHTable::mathGlyphInfo):
        (WebCore::OpenType::MATHTable::mathVariants):
        (WebCore::OpenTypeMathData::OpenTypeMathData): We load the MATH table.
        (WebCore::OpenTypeMathData::getMathConstant): We add a function to get values from the MathConstant subtable.
        (WebCore::OpenTypeMathData::getItalicCorrection): We add a function to get italic correction from the MathGlyphInfo subtable.
        (WebCore::OpenTypeMathData::getMathVariants): We add a function to get size variants / glyph assembly from the MathVariants subtable.
        * platform/graphics/opentype/OpenTypeMathData.h: We expose three new functions to get math data.
        * platform/graphics/opentype/OpenTypeTypes.h: We share the coverage tables that are common to vertical and math data.
        (WebCore::OpenType::TableWithCoverage::getCoverageIndex): We add a function to get the coverage index from a given glyph.
        * platform/graphics/opentype/OpenTypeVerticalData.cpp: We move the coverage tables to OpenTypeTypes.h.

2014-04-02  Ion Rosca  <rosca@adobe.com>

        [CSS Blending] Compositing requirements for blending are not computed correctly
        https://bugs.webkit.org/show_bug.cgi?id=130664

        Reviewed by Dean Jackson.

        Tests: css3/compositing/blend-mode-accelerated-with-multiple-stacking-contexts.html
               css3/compositing/blend-mode-with-accelerated-sibling.html

        Compositing requirements for blending: if a layer having blend mode
        other than normal is composited for any reason, its closest stacking
        context ancestor should be composited as well.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer):
        * rendering/RenderLayer.h: added a new field,
        m_hasUnisolatedCompositedBlendingDescendants, which is true if the layer
        has composited blending descendants not isolated by any stacking context child;
        added a new method: isolatesCompositedBlending(), which is true if we should
        accelerate that layer in order to perform isolation correctly.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::CompositingState::CompositingState): m_subtreeHasBlending was renamed
        m_hasUnisolatedCompositedBlendingDescendants in order to be more self-explanatory.
        (WebCore::RenderLayerCompositor::computeCompositingRequirements):
        computes the isolation requirements for composited blending by
        (re)setting RenderLayer::m_hasUnisolatedCompositedBlendingDescendants flag.

        (WebCore::RenderLayerCompositor::reasonsForCompositing):
        fixed the reason of compositing: isolation instead of blending.

        (WebCore::RenderLayerCompositor::requiresCompositingForIndirectReason):
        * rendering/RenderLayerCompositor.h:

2014-04-02  Frédéric Wang  <fred.wang@free.fr>

        Operator stretching: expose a math data API
        https://bugs.webkit.org/show_bug.cgi?id=130572

        Reviewed by Chris Fleizach.

        We expose a new SimpleFontData API to give access to the data from the
        OpenType MATH table. The class OpenTypeMathData will
        be implemented in bug 130324. On Darwin platform, we also implement the
        missing FontPlatformData::openTypeTable function which will be necessary
        to load the OpenType MATH table. The changes are intended to be used
        for MathML operator stretching (bug 130322) so tests are not added yet.

        * CMakeLists.txt: add new OpenTypeMathData files.
        * WebCore.vcxproj/WebCore.vcxproj: ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
        * WebCore.xcodeproj/project.pbxproj: ditto.
        * platform/graphics/FontPlatformData.cpp:
        (WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
        * platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData):
        (WebCore::SimpleFontData::mathData): Initialize and return the math data.
        * platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
        * platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
        (WebCore::OpenTypeMathData::OpenTypeMathData):
        * platform/graphics/opentype/OpenTypeMathData.h: Added.
        (WebCore::OpenTypeMathData::create):
        (WebCore::OpenTypeMathData::hasMathData):

2014-04-01  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Displaying region's children in another region not supported
        https://bugs.webkit.org/show_bug.cgi?id=130735

        Reviewed by David Hyatt.

        With http://trac.webkit.org/changeset/166353, we disabled the possibility
        of collecting the region's children into another flow and displaying them
        in another region.
        I added a new test for this and also changed the plain ASSERT in Element dtor
        to ASSERT_WITH_SECURITY_IMPLICATION to better reflect the meaning of the assertion.

        Test: fast/regions/region-child-not-flowed.html

        * dom/Element.cpp:
        (WebCore::Element::~Element):

2014-04-01  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Simplify the RenderFlowThread state pusher
        https://bugs.webkit.org/show_bug.cgi?id=131035

        Reviewed by David Hyatt.

        The RenderFlowThread state pusher is desynchronized from the RenderView layout state pusher
        by one renderer. This patch fixes the anomaly by correctly ordering the push and pop operations
        between the two systems.

        Tests: no functional change, no new tests.

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::pushFlowThreadLayoutState):
        (WebCore::RenderFlowThread::popFlowThreadLayoutState):
        (WebCore::RenderFlowThread::offsetFromLogicalTopOfFirstRegion):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::pushLayoutState):
        * rendering/RenderView.h:

2014-04-01  Beth Dakin  <bdakin@apple.com>

        willReveal edge events should be hooked up for overflow:scroll
        https://bugs.webkit.org/show_bug.cgi?id=131071
        -and corresponding-
        <rdar://problem/16190392>

        Reviewed by Sam Weinig.

        This patch moves the will reveal logic from FrameView to Document so that it can 
        be shared for RenderLayers.

        This is mostly just a moved function, but now the function takes an Element* that 
        represents the target of the event if the target is not the window.
        * dom/Document.cpp:
        (WebCore::Document::sendWillRevealEdgeEventsIfNeeded):
        * dom/Document.h:

        No longer implement sendWillRevealEdgeEventsIfNeeded() on FrameView or 
        ScrollableArea at all. Call into Document instead.
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollPositionChanged):
        (WebCore::FrameView::sendWillRevealEdgeEventsIfNeeded): Deleted.
        * page/FrameView.h:
        * platform/ScrollableArea.h:
        (WebCore::ScrollableArea::sendWillRevealEdgeEventsIfNeeded): Deleted.

        Call sendWillRevealEdgeEventsIfNeeded() after sending scroll events. 
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollTo):

2014-04-01  Jon Honeycutt  <jhoneycutt@apple.com>

        Crash in WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients

        <https://bugs.webkit.org/show_bug.cgi?id=121887>
        <rdar://problem/15073043>

        Reviewed by Dean Jackson.

        Test: svg/filters/first-letter-crash.html

        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::buildReferenceFilter):
        Added a null check to prevent crashes for anonymous RenderObjects.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::filterNeedsRepaint):
        Get the enclosing element, if there is one, and recalculate its style.
        We use the enclosing element so that we recalculate style for the
        ancestor of an anonymous RenderElement.
        (WebCore::RenderLayer::enclosingElement):
        Remove an assertion; we may now reach this condition if loading a
        cached SVG document results in RenderLayer::filterNeedsRepaint() being
        called before the object has been inserted into the render tree.

        * rendering/RenderLayerFilterInfo.cpp:
        (WebCore::RenderLayer::FilterInfo::notifyFinished):
        Tell the RenderLayer that the filter needs repainting.
        (WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
        Get the Element from the renderer rather than asking the renderer's
        Element, which will be null for anonymous RenderObjects.

        * rendering/RenderLayerFilterInfo.h:
        Removed declaration for the old workaround function, layerElement().

2014-04-01  Ryuan Choi  <ryuan.choi@samsung.com>

        Build break when disabled VIDEO since r166261
        https://bugs.webkit.org/show_bug.cgi?id=131087

        Reviewed by Gyuyoung Kim.

        * testing/Internals.cpp: Added ENABLE(VIDEO) guards
        (WebCore::Internals::simulateSystemSleep):
        (WebCore::Internals::simulateSystemWake):

2014-04-01  Timothy Hatcher  <timothy@apple.com>

        Remove HeapProfiler from the Web Inspector protocol.

        https://bugs.webkit.org/show_bug.cgi?id=131070

        Reviewed by Joseph Pecoraro.

        * CMakeLists.txt:
        * DerivedSources.make:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/ScriptHeapSnapshot.h: Removed.
        * bindings/js/ScriptProfiler.h:
        (WebCore::ScriptProfiler::takeHeapSnapshot): Deleted.
        (WebCore::ScriptProfiler::isSampling): Deleted.
        (WebCore::ScriptProfiler::hasHeapProfiler): Deleted.
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorHeapProfilerAgent.cpp: Removed.
        * inspector/InspectorHeapProfilerAgent.h: Removed.
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        * inspector/InspectorProfilerAgent.cpp:
        (WebCore::InspectorProfilerAgent::InspectorProfilerAgent):
        (WebCore::InspectorProfilerAgent::getProfileHeaders):
        (WebCore::InspectorProfilerAgent::removeProfile):
        (WebCore::InspectorProfilerAgent::resetState): The CommandLineAPIHost call to
        clear inspected objects should have not been here. It was only needed by the
        HeapProfilerAgent.
        (WebCore::InspectorProfilerAgent::resetFrontendProfiles):
        (WebCore::InspectorProfilerAgent::collectGarbage): Deleted.
        (WebCore::InspectorProfilerAgent::createSnapshotHeader): Deleted.
        (WebCore::InspectorProfilerAgent::isSampling): Deleted.
        (WebCore::InspectorProfilerAgent::hasHeapProfiler): Deleted.
        (WebCore::InspectorProfilerAgent::getHeapSnapshot): Deleted.
        (WebCore::InspectorProfilerAgent::takeHeapSnapshot): Deleted.
        (WebCore::InspectorProfilerAgent::getObjectByHeapObjectId): Deleted.
        (WebCore::InspectorProfilerAgent::getHeapObjectId): Deleted.
        * inspector/InspectorProfilerAgent.h:
        * inspector/InstrumentingAgents.h:
        (WebCore::InstrumentingAgents::inspectorHeapProfilerAgent): Deleted.
        (WebCore::InstrumentingAgents::setInspectorHeapProfilerAgent): Deleted.
        * inspector/WebConsoleAgent.cpp:
        (WebCore::WebConsoleAgent::addInspectedHeapObject): Deleted.
        * inspector/WebConsoleAgent.h:
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        * inspector/protocol/HeapProfiler.json: Removed.
        * inspector/protocol/Profiler.json:

2014-04-01  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Exclusions] Remove exclusions parsing support
        https://bugs.webkit.org/show_bug.cgi?id=131046

        Reviewed by David Hyatt.

        CSS Exclusions specification [1] needs some evolution before the actual implementation happens.
        We have only the parsing code in WebKit for -webkit-wrap-flow and -webkit-wrap-through.
        This patch removes the code from the trunk for now, it doesn't make sense to keep it around.

        [1] http://www.w3.org/TR/css3-exclusions/

        Removed existing parsing tests.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::isKeywordPropertyID):
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue): Deleted.
        (WebCore::CSSPrimitiveValue::operator WrapFlow): Deleted.
        (WebCore::CSSPrimitiveValue::operator WrapThrough): Deleted.
        * css/CSSPropertyNames.in:
        * css/CSSValueKeywords.in:
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayout):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2014-04-01  Timothy Hatcher  <timothy@apple.com>

        Remove the rest of the old Canvas inspection support.

        https://bugs.webkit.org/show_bug.cgi?id=131066

        Reviewed by Joseph Pecoraro.

        * CMakeLists.txt: Removed Canvas.json.
        * DerivedSources.make: Ditto.
        * inspector/InjectedScriptCanvasModuleSource.js: Removed.
        * inspector/protocol/Canvas.json: Removed.

2014-04-01  Alexey Proskuryakov  <ap@apple.com>

        Eliminate HTMLFormElement::m_shouldSubmit
        https://bugs.webkit.org/show_bug.cgi?id=131055

        Reviewed by Tim Horton.

        m_shouldSubmit was used for two purposes:
        - as a return value in a function whose return value is ignored by all callers;
        - to make a decision that's local to a function.

        There is no need for it to be an instance variable.

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::HTMLFormElement):
        (WebCore::HTMLFormElement::prepareForSubmission):
        (WebCore::HTMLFormElement::submit):
        * html/HTMLFormElement.h:

2014-04-01  Benjamin Poulain  <bpoulain@apple.com>

        Remove a couple of useless static strings
        https://bugs.webkit.org/show_bug.cgi?id=131003

        Reviewed by David Kilzer.

        There is zero value in keeping those strings alive.

        * css/StyleProperties.cpp:
        (WebCore::isInitialOrInherit):

2014-04-01  Myles C. Maxfield  <mmaxfield@apple.com>

        svg/text/text-overflow-ellipsis-svgfont-kerning-ligatures.html and svg/css/font-face-crash.html frequently assert in ComplexTextController::offsetForPosition
        https://bugs.webkit.org/show_bug.cgi?id=119747

        Reviewed by Simon Fraser.

        Even though kerning and ligatures currently don't work with the
        simple text path, messing those up is better than creating null
        CTRun and CTLine objects.

        Rather than calling the badly-named renderingContext() function on TextRun objects
        to determine if they are drawn with an SVG font, this patch creates a wrapper function
        with a better name and uses that instead.

        Test: svg/text/svg-font-hittest.html

        * platform/graphics/Font.cpp:
        (WebCore::isDrawnWithSVGFont): Wrapper around renderingContext()
        (WebCore::Font::drawText): Use wrapper function
        (WebCore::Font::drawEmphasisMarks): Use wrapper function
        (WebCore::Font::width): Use wrapper function
        (WebCore::Font::selectionRectForText): Use wrapper function
        (WebCore::Font::offsetForPosition): If we are using an SVG font, use the simple path
        instead of the complex one
        (WebCore::Font::codePath): Use wrapper function
        * platform/graphics/cocoa/FontPlatformDataCocoa.mm:
        (WebCore::FontPlatformData::ctFont):

2014-04-01  Daniel Bates  <dabates@apple.com>

        RenderQuote must destroy remaining text renderer before first letter renderer
        https://bugs.webkit.org/show_bug.cgi?id=78023
        <rdar://problem/10830009>

        Reviewed by Brent Fulgham.

        Merged from Blink (patch by Abhishek Arya):
        https://src.chromium.org/viewvc/blink?view=rev&revision=151270

        Following the fix for <https://bugs.webkit.org/show_bug.cgi?id=114586>, a
        RenderQuote may have child render objects for the first letter of its text
        and everything following the first letter so as to support the CSS first-
        letter property. The latter renderer is responsible for destroying the former
        on destruction. It's sufficient to reverse the destruction of the children of
        RenderQuote to ensure that we destroy the remaining text renderer before we
        destroy the first letter renderer.

        Test: fast/css-generated-content/quote-first-letter-crash.html

        * rendering/RenderQuote.cpp:
        (WebCore::RenderQuote::updateText):

2014-04-01  David Kilzer  <ddkilzer@apple.com>

        Do not allow HTTP refresh headers to refresh to javascript: URLs
        <http://webkit.org/b/119051>
        <rdar://problem/14536453>

        Reviewed by Alexey Proskuryakov.

        Merged from Blink (patch by tsepez@chromium.org):
        https://src.chromium.org/viewvc/blink?revision=153912&view=revision
        http://crbug.com/258151

            This behaviour has been standard in IE since IE7.  This makes us both
            more compatible and less vulnerable to XSS.

        Tests: http/tests/security/no-javascript-location-percent-escaped.html
               http/tests/security/no-javascript-location.html
               http/tests/security/no-javascript-refresh-percent-escaped.php
               http/tests/security/no-javascript-refresh-spaces.php
               http/tests/security/no-javascript-refresh-static-percent-escaped.html
               http/tests/security/no-javascript-refresh-static-spaces.html
               http/tests/security/no-javascript-refresh-static.html
               http/tests/security/no-javascript-refresh.php

        * dom/Document.cpp:
        (WebCore::Document::processHttpEquiv):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::receivedFirstData):
        - Do not fire meta http refresh for a javascript: URL protocol.

2014-04-01  Pratik Solanki  <psolanki@apple.com>

        Unreviewed build fix. Remove duplicate file entries.

        * WebCore.xcodeproj/project.pbxproj:

2014-03-31  Simon Fraser  <simon.fraser@apple.com>

        Enable WEB_TIMING on Mac and iOS
        https://bugs.webkit.org/show_bug.cgi?id=128064

        Reviewed by Sam Weinig, Brent Fulgham.

        Enable WEB_TIMING. Add PerformanceTiming.cpp and JSPerformanceTiming.cpp
        to the project.
        
        * Configurations/FeatureDefines.xcconfig:
        * WebCore.xcodeproj/project.pbxproj:

2014-04-01  James Craig  <jcraig@apple.com>

        AX: AccessibilityRenderObject::ariaLiveRegionAtomic() should default to true if
        roleValue is ApplicationAlertRole || ApplicationStatusRole
        https://bugs.webkit.org/show_bug.cgi?id=130907

        Reviewed by Chris Fleizach.

        Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html:
               platform/mac/accessibility/aria-liveregions-attributes.html:

        Updated AccessibilityRenderObject::ariaLiveRegionAtomic() to match ARIA spec.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::ariaLiveRegionAtomic):

2014-04-01  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Fixing debug builds after r166586.

        * svg/SVGElement.cpp:
        (WebCore::SVGElement::addEventListener): Fix the ASSERT.
        (WebCore::SVGElement::removeEventListener): Ditto.

2014-04-01  Zan Dobersek  <zdobersek@igalia.com>

        Prevent unnecessary copies in compareEqual template
        https://bugs.webkit.org/show_bug.cgi?id=131014

        Reviewed by Antti Koivisto.

        * rendering/style/RenderStyle.h:
        (compareEqual): Casting the second parameter to a non-const, non-reference type
        causes an extra copy of that object. Casting to the const reference type of the
        first parameter avoids that.

2014-04-01  Zan Dobersek  <zdobersek@igalia.com>

        Avoid unnecessary HashSet copies when calling collectInstancesForSVGElement
        https://bugs.webkit.org/show_bug.cgi?id=131020

        Reviewed by Andreas Kling.

        Remove collectInstancesForSVGElement() to avoid HashSet copies when assigning a const
        HashSet reference to a non-const HashSet reference. Instead, range-based for-loops are
        deployed to iterate directly over the const reference to HashSet that's returned by
        SVGElement::instancesForElement(). SVGElement::containingShadowRoot() return value
        is checked to see if the iteration should be performed in the first place, preserving
        the behavior of collectInstancesForSVGElement().

        * svg/SVGElement.cpp:
        (WebCore::SVGElement::addEventListener):
        (WebCore::SVGElement::removeEventListener):
        (WebCore::collectInstancesForSVGElement): Deleted.

2014-04-01  Zan Dobersek  <zdobersek@igalia.com>

        Move the attributes HashMap out of the parseAttributes function
        https://bugs.webkit.org/show_bug.cgi?id=131019

        Reviewed by Andreas Kling.

        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::parseAttributes): Avoid copying the HashMap object that's being returned by
        converting it to an xvalue through using std::move() in the return statement.

2014-04-01  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Transition class Image (and its dependencies) from int to float to enable subpixel positioned/sized images.
        https://bugs.webkit.org/show_bug.cgi?id=130643

        Reviewed by Simon Fraser.

        This is in preparation to support subpixel positioned/sized background images. While 1x bitmap images can't take
        subpixel sizing on hidpi resolutions, both generated and hidpi images can.
        This patch does not change Image behavior in general as both position and size are still snapped to integral values.  

        No change in behavior.

        * WebCore.exp.in:
        * css/CSSCrossfadeValue.cpp:
        (WebCore::CSSCrossfadeValue::fixedSize):
        * css/CSSFilterImageValue.cpp:
        (WebCore::CSSFilterImageValue::fixedSize):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::drawImageIntoBuffer):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::imageSizeForRenderer):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectCursor):
        * platform/Cursor.cpp:
        (WebCore::determineHotSpot):
        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::size):
        (WebCore::BitmapImage::currentFrameSize):
        * platform/graphics/BitmapImage.h:
        * platform/graphics/CrossfadeGeneratedImage.cpp:
        (WebCore::CrossfadeGeneratedImage::CrossfadeGeneratedImage):
        (WebCore::drawCrossfadeSubimage):
        (WebCore::CrossfadeGeneratedImage::drawCrossfade):
        * platform/graphics/CrossfadeGeneratedImage.h:
        * platform/graphics/GeneratedImage.h:
        * platform/graphics/Gradient.cpp:
        (WebCore::Gradient::adjustParametersForTiledDrawing):
        * platform/graphics/Gradient.h:
        * platform/graphics/GradientImage.cpp:
        (WebCore::GradientImage::drawPattern):
        * platform/graphics/GradientImage.h:
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::createCompatibleBuffer):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/Image.cpp:
        (WebCore::Image::adjustSourceRectForDownSampling):
        * platform/graphics/Image.h:
        (WebCore::Image::setContainerSize):
        (WebCore::Image::rect):
        (WebCore::Image::width):
        (WebCore::Image::height):
        * platform/graphics/ImageBuffer.cpp:
        (WebCore::ImageBuffer::createCompatibleBuffer):
        * platform/graphics/ImageBuffer.h:
        (WebCore::ImageBuffer::create):
        * platform/graphics/IntPoint.cpp:
        (WebCore::IntPoint::IntPoint):
        * platform/graphics/IntPoint.h:
        * platform/graphics/IntSize.cpp:
        (WebCore::IntSize::IntSize):
        * platform/graphics/IntSize.h:
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        (WebCore::ImageBuffer::ImageBuffer):
        * platform/graphics/cairo/ImageCairo.cpp:
        (WebCore::Image::drawPattern):
        * platform/graphics/cg/ImageBufferCG.cpp:
        (WebCore::ImageBuffer::ImageBuffer):
        * platform/graphics/cg/ImageBufferDataCG.cpp:
        * platform/graphics/cg/PDFDocumentImage.cpp:
        (WebCore::PDFDocumentImage::size):
        (WebCore::PDFDocumentImage::updateCachedImageIfNeeded):
        (WebCore::applyRotationForPainting):
        * platform/graphics/cg/PDFDocumentImage.h:
        * platform/graphics/cg/PatternCG.cpp:
        (WebCore::Pattern::createPlatformPattern):
        * platform/graphics/mac/GraphicsContextMac.mm:
        * platform/graphics/mac/IconMac.mm:
        * platform/graphics/texmap/TextureMapperTiledBackingStore.cpp:
        (WebCore::TextureMapperTiledBackingStore::updateContentsFromImageIfNeeded):
        * platform/graphics/texmap/coordinated/CoordinatedImageBacking.cpp:
        (WebCore::CoordinatedImageBacking::update):
        * platform/graphics/win/ImageCGWin.cpp:
        (WebCore::BitmapImage::getHBITMAPOfSize):
        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
        * platform/graphics/win/ImageCairoWin.cpp:
        (WebCore::BitmapImage::getHBITMAPOfSize):
        (WebCore::BitmapImage::drawFrameMatchingSourceSize):
        * platform/mac/DragImageMac.mm:
        (WebCore::createDragImageFromImage):
        * platform/win/DragImageCGWin.cpp:
        (WebCore::createDragImageFromImage):
        * platform/win/PasteboardWin.cpp:
        (WebCore::Pasteboard::writeImage):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::imageSizeForError):
        (WebCore::RenderImage::paintReplaced):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::drawPlatformResizerImage):
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::setContainerSize):
        * svg/graphics/SVGImage.h:
        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::imageSizeForRenderer):
        * svg/graphics/SVGImageCache.h:
        * svg/graphics/SVGImageForContainer.cpp:
        (WebCore::SVGImageForContainer::size):
        * svg/graphics/SVGImageForContainer.h:
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::externalRepresentation):
        * testing/Internals.cpp:
        (WebCore::Internals::getCurrentCursorInfo):

2014-04-01  Ryuan Choi  <ryuan.choi@samsung.com>

        Unreviewed build fix when disabled ACCESSIBILITY

        * accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
        Separated macros not to check ATK version when disabled ACCESSIBILITY

2014-04-01  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        [CMake][EFL] Enable CSS JIT
        https://bugs.webkit.org/show_bug.cgi?id=131010

        Reviewed by Benjamin Poulain.

        Add an inclusion path for enabling CSS JIT on EFL and GTK ports.
        This patch only enables it for EFL port.

        * CMakeLists.txt:

2014-04-01  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Readonly attributes installed as readwrite in GObject DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=130978

        Reviewed by Carlos Garcia Campos.

        Unify how we decide if an attribute is readable or writeable and improve the code.
        This results in some attributes now being marked as read-only which didn't have
        corresponding case statements in the set_property switch statements and also correctly
        installs set_property support for some more POD types.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (IsPropertyReadable): Added this helper to simplify deciding if an attribute is readable.
        (IsPropertyWriteable): Added this helper to simplify deciding if an attribute is writeable. Also
        update the list of types to reflect the full list of types we can generate setters for.
        (GenerateProperty): Use the IsPropertyWriteable helper instead of checking whether the attribute is read-only.
        Also fix generation of the blurb by using $mutableString instead of $mutableStringconst which isn't used.
        (GenerateProperties): Use grep and the new helpers to simplify the code.
        (GetReadableProperties): Deleted.
        (GetWriteableProperties): Deleted.
        * bindings/scripts/test/GObject: Update results

2014-03-31  Ryuan Choi  <ryuan.choi@samsung.com>

        [EFL][WK2] Extract the control of page background out of color_set
        https://bugs.webkit.org/show_bug.cgi?id=127539

        Reviewed by Gyuyoung Kim.

        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.cpp:
        Added m_viewBackgroundColor to clear when m_setDrawsBackground is false.
        (WebCore::CoordinatedGraphicsScene::CoordinatedGraphicsScene):
        (WebCore::CoordinatedGraphicsScene::paintToCurrentGLContext):
        (WebCore::CoordinatedGraphicsScene::paintToGraphicsContext):
        * platform/graphics/texmap/coordinated/CoordinatedGraphicsScene.h:
        (WebCore::CoordinatedGraphicsScene::setViewBackgroundColor):
        (WebCore::CoordinatedGraphicsScene::viewBackgroundColor):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):
        Added EFL guard not to set opaque as a default for MainFrameRenderViewLayer.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::ensureRootLayer):
        Added EFL guard to apply page scale on RenderView like IOS.

2014-03-31  Byungseon Shin  <sun.shin@lge.com>

        [WebGL][OpenGLES] Enable MSAA support for WebGL Canvas
        https://bugs.webkit.org/show_bug.cgi?id=130955

        Reviewed by Dean Jackson.

        To avoid aliasing issues when we render content to WebGL canvas,
         we need to implement MSAA support.
        - Imagination OpenGLES GPU Driver already support MSAA, so we
         need a separate code path to enable it.

        * platform/graphics/Extensions3D.h:
        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
        (WebCore::Extensions3DOpenGLCommon::Extensions3DOpenGLCommon):
        * platform/graphics/opengl/Extensions3DOpenGLCommon.h:
        (WebCore::Extensions3DOpenGLCommon::isImagination):
        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
        (WebCore::GraphicsContext3D::reshapeFBOs):

2014-03-31  Alexey Proskuryakov  <ap@apple.com>

        Crashes in PageConsole::addMessage
        https://bugs.webkit.org/show_bug.cgi?id=130991
        <rdar://problem/14795232>

        Reviewed by Geoffrey Garen.

        Test: http/tests/misc/detached-frame-console.html

        * page/DOMWindow.cpp: (WebCore::DOMWindow::printErrorMessage): Added a null check.
        It's legitimate for this to be called for a window that is not currently displayed
        in a frame.

2014-03-31  Simon Fraser  <simon.fraser@apple.com>

        [UI-side compositing] Proxy animations to the UI process
        https://bugs.webkit.org/show_bug.cgi?id=130946

        Reviewed by Tim Horton.
        
        To proxy CA animations, make PlatformCAAnimation a pure virtual base class
        and subclass for Mac, Windows, and Remote (just like PlatformCALayer).
        
        Add coding support for TimingFunctions.
        
        Do some minor #include tidyup.
        
        Minor refactor in GraphicsLayerCA to share some animations code.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/animation/TimingFunction.h: Add setters need for encode/decode.
        (WebCore::CubicBezierTimingFunction::setValues):
        (WebCore::CubicBezierTimingFunction::setTimingFunctionPreset):
        (WebCore::StepsTimingFunction::create):
        (WebCore::StepsTimingFunction::setNumberOfSteps):
        (WebCore::StepsTimingFunction::setStepAtStart):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::createPlatformCAAnimation):
        (WebCore::GraphicsLayerCA::animationCanBeAccelerated): Minor refactor so we can share
        code with GraphicsLayerCARemote.
        (WebCore::GraphicsLayerCA::addAnimation):
        (WebCore::GraphicsLayerCA::createBasicAnimation):
        (WebCore::PassRefPtr<PlatformCAAnimation>GraphicsLayerCA::createKeyframeAnimation):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/PlatformCAAnimation.h:
        (WebCore::PlatformCAAnimation::~PlatformCAAnimation):
        (WebCore::PlatformCAAnimation::isPlatformCAAnimationMac):
        (WebCore::PlatformCAAnimation::isPlatformCAAnimationWin):
        (WebCore::PlatformCAAnimation::isPlatformCAAnimationRemote):
        (WebCore::PlatformCAAnimation::PlatformCAAnimation):
        (WebCore::PlatformCAAnimation::setType):
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/mac/PlatformCAAnimationMac.h: Added.
        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayerMac::addAnimationForKey):
        (PlatformCALayerMac::animationForKey):
        * platform/graphics/ca/mac/TileController.mm:
        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
        * platform/graphics/ca/win/PlatformCAAnimationWin.h: Added.

2014-03-31  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: compile the first-child pseudo class
        https://bugs.webkit.org/show_bug.cgi?id=130954

        Reviewed by Andreas Kling.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::collectMatchingRules):
        The compiler use the context's style directly when resolving style. An error introduced
        in the rule collector would cause a crash in the compiled code which would be hard to debug.
        Add an assertion early in the stack to catch errors where it is easier to debug them.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::State::initForStyleResolve):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoType):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacentElement):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateWalkToPreviousAdjacent):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateDirectAdjacentTreeWalker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateIndirectAdjacentTreeWalker):
        Refactor those to be able to reuse the code getting a sibling element preceding the current element.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::jumpIfNotResolvingStyle):
        Extract the code checking the current mode from SelectorCodeGenerator::markParentElementIfResolvingStyle()
        in a separate function. This will be useful for all the pseudo class with marking.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementMatching):
        (WebCore::SelectorCompiler::setFirstChildState):
        This is the slow path for when the first-child pseudo class is on a fragment that is not
        the rightmost.
        The reason to use a slow path is accessing renderStyle() is not trivial and this case isn't not
        as common. We should improve this later.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementIsFirstChild):
        This is just implementing the test for first-child plus the tree marking. Nothing fancy,
        this is basically the same thing as SelectorChecker.

        * dom/Element.cpp:
        (WebCore::Element::setChildrenAffectedByFirstChildRules):
        * dom/Element.h:
        C++ fallback to set the flag, to be improved later with the other flags.

        * rendering/style/RenderStyle.h:
        I accidentaly put noninheritedFlagsMemoryOffset() as private in the RenderStyle refactoring.

        Also update the flags accessor to make them easier to work with from the compiler. In particular,
        setFirstChildStateFlags() sets both isUnique and firstChild. Currently the JIT does not need to access
        the value so individual flags are made private.

2014-03-31  Dean Jackson  <dino@apple.com>

        Remove WEB_ANIMATIONS
        https://bugs.webkit.org/show_bug.cgi?id=130989

        Reviewed by Simon Fraser.

        Remove this feature flag until we plan to implement.

        * Configurations/FeatureDefines.xcconfig:

2014-03-31  Simon Fraser  <simon.fraser@apple.com>

        Fix iOS build.

        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterDelegatedScroll):

2014-03-31  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. iOS build fix after r166532. Add missing comma.

        * dom/DocumentMarker.h:

2014-03-31  Brady Eidson  <beidson@apple.com>

        Add variant of phone number parsing that use DocumentMarker in the current selection
        <rdar://problem/16379566> and https://bugs.webkit.org/show_bug.cgi?id=130917

        Reviewed by Darin Adler.

        * dom/DocumentMarker.h:
        (WebCore::DocumentMarker::AllMarkers::AllMarkers): Add a new TelephoneNumber document marker type.

        * editing/Editor.cpp:
        (WebCore::Editor::respondToChangedSelection):
        (WebCore::Editor::scanSelectionForTelephoneNumbers): TextIterate over the selected range looking for numbers.
        (WebCore::Editor::scanRangeForTelephoneNumbers): Scan the given range for a telephone number,
          adding the DocumentMarker to any that are found.
        (WebCore::Editor::clearDataDetectedTelephoneNumbers):
        * editing/Editor.h:

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processCharacterBufferForInBody): Only linkify on iOS.

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintTelephoneNumberMarker): Placeholder UI while the feature is developed.
        (WebCore::InlineTextBox::paintDocumentMarkers):
        * rendering/InlineTextBox.h:

        * testing/Internals.cpp:
        (WebCore::markerTypesFrom):

2014-03-31  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Hook up scroll events for accelerated overflow:scroll
        https://bugs.webkit.org/show_bug.cgi?id=130976

        Reviewed by Tim Horton.

        When an accelerated overflow:scroll is scrolled in the UI process,
        tell the WebProcess that the scroll happened to update RenderLayer
        state and fire events.
        
        In the WebProcess, RemoteScrollingCoordinator gets a message from the
        UI process and calls AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll().
        Fixed that function to handle scrolling nodes other than the root, which
        required storing a map of ScrollingNodeID->RenderLayer* on RenderLayerCompositor,
        accessible through FrameView::scrollableAreaForScrollLayerID().

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::scrollableAreaForScrollLayerID):
        * page/FrameView.h:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll): Handle
        overflow as well as main frame scrolling nodes.
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling): Use isScrollingNode().
        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling): When an overflow
        scroll node was scrolled externally, we have to update layers in decendant nodes,
        and then call scrollingTreeNodeDidScroll() which tells the ScrollingCoordinator that
        we scrolled.
        * page/scrolling/ScrollingTree.h: Try to reduce confusion between the roles played
        by these various functions, some of which happen in the UI process with UI-side
        compositing.
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h: Need some functions to be
        callable by subclasses.
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterDelegatedScroll):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): Add
        scrolling layers to the m_scrollingNodeToLayerMap
        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): Remove
        layer from the m_scrollingNodeToLayerMap.
        (WebCore::RenderLayerCompositor::scrollableAreaForScrollLayerID):
        * rendering/RenderLayerCompositor.h:

2014-03-31  Antti Koivisto  <antti@apple.com>

        Rename TileCache to LegacyTileCache
        https://bugs.webkit.org/show_bug.cgi?id=130986

        Reviewed by Simon Fraser.

        Rename iOS WebKit1 tile cache classes to reflect its status.
        This also frees some good type names.

        TileCache -> LegacyTileCache
        TileGrid -> LegacyTileGrid
        TileGridTile -> LegacyTileGridTile
        etc.

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        Small adjustments to WebCore::IOSurface
        https://bugs.webkit.org/show_bug.cgi?id=130981

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        Export some more things.

        * platform/graphics/cocoa/IOSurface.h:
        createImage() can't be const because it calls ensurePlatformContext().

        * platform/graphics/cocoa/IOSurface.mm:
        (IOSurface::createImage):
        We should be able to create an image even if the CGContext has been cleared (or never created).

        (IOSurface::isInUse):
        Rename inUse() to isInUse().

        (IOSurface::clearGraphicsContext):
        Add clearGraphicsContext().

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        Allocate IOSurfaces with the same cache mode that CoreAnimation uses
        https://bugs.webkit.org/show_bug.cgi?id=130982

        Reviewed by Simon Fraser.

        * platform/graphics/cocoa/IOSurface.mm:
        (IOSurface::IOSurface):
        CA uses kIOMapWriteCombineCache for IOSurfaces allocated on iOS.

2014-03-31  Ion Rosca  <rosca@adobe.com>

        [CSS Blending] Blend mode property is propagated to multiple GraphicLayers
        https://bugs.webkit.org/show_bug.cgi?id=130337

        Reviewed by Dean Jackson.

        Resets the blend mode for graphicsLayer when it has an ancestorClippingLayer.

        Test: css3/compositing/blend-mode-ancestor-clipping-layer.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateBlendMode):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateBlendMode):
        * rendering/RenderLayerBacking.h:

2014-03-31  Ion Rosca  <rosca@adobe.com>

        [CSS Blending] showLayerTree should dump layer's blend mode and isolation properties
        https://bugs.webkit.org/show_bug.cgi?id=130922

        Reviewed by Simon Fraser.

        This change only updates existing tests involving blending. No new test required,
        as there is no new or changed functionality.

        * rendering/RenderLayer.h: adding blendMode() getter.
        * rendering/RenderTreeAsText.cpp:
        (WebCore::write):
        adding blendMode property and layer's isolation status (does layer isolate blending descendants or not?).

2014-03-31  Benjamin Poulain  <benjamin@webkit.org>

        CSS JIT: clean up the functions ending when generating a checker with context
        https://bugs.webkit.org/show_bug.cgi?id=130959

        Reviewed by Andreas Kling.

        This code got refactored over time and now both branches do the exact same action
        on the stack.
        This patch removes the stack split and move the stack cleanup in the common ending
        just before restoring the callee saved registers.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):

2014-03-31  Beth Dakin  <bdakin@apple.com>

        ThemeMac should use std::array instead of IntSize* for control sizes
        https://bugs.webkit.org/show_bug.cgi?id=130985

        Reviewed by Darin Adler.

        Replace uses of const IntSize* with const std::array<IntSize, 3>
        * platform/mac/ThemeMac.mm:
        (WebCore::sizeFromNSControlSize):
        (WebCore::sizeFromFont):
        (WebCore::controlSizeFromPixelSize):
        (WebCore::setControlSize):
        (WebCore::checkboxSizes):
        (WebCore::radioSizes):
        (WebCore::buttonSizes):
        (WebCore::setUpButtonCell):
        (WebCore::stepperSizes):

2014-03-31  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] Simplify RasterShape implementation
        https://bugs.webkit.org/show_bug.cgi?id=130916

        Reviewed by Dean Jackson.

        Since only floats can specify shape-outside, the RasterShapeIntervals
        class only needs to track the first and last above threshold pixel column
        (x1 and x2 in the implementation) for each row. Removed code for dealing with
        multiple "runs" per row as well as shape-inside internals.

        No new tests, since functionality was only removed.

        * rendering/shapes/RasterShape.cpp:
        (WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
        (WebCore::RasterShapeIntervals::initializeBounds):
        (WebCore::RasterShapeIntervals::buildBoundsPath):
        (WebCore::RasterShape::getExcludedIntervals):
        * rendering/shapes/RasterShape.h:
        (WebCore::RasterShapeIntervals::RasterShapeIntervals):
        (WebCore::RasterShapeIntervals::intervalAt):
        (WebCore::RasterShape::RasterShape):
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createRasterShape):
        * rendering/shapes/ShapeInterval.h:
        (WebCore::ShapeInterval::unite):

2014-03-31  Andreas Kling  <akling@apple.com>

        Always inline toJS() for NodeList.
        <https://webkit.org/b/130974>

        This is a pretty cheesy optimization, but it's a 3% progression on
        Dromaeo/dom-query.html on my MBP.

        Reviewed by Benjamin Poulain.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSNodeListCustom.h: Added.
        (WebCore::toJS):
        * dom/NodeList.idl:

2014-03-31  Benjamin Poulain  <bpoulain@apple.com>

        Attempt to fix the 32bits debug builds

        The additional debug flags in RefCounted cause the structure to have different alignment
        with the 64bits flags.

        * rendering/style/RenderStyle.cpp:

2014-03-29  Simon Fraser  <simon.fraser@apple.com>

        Clarify some scrolling tree terminology
        https://bugs.webkit.org/show_bug.cgi?id=130929

        Reviewed by Tim Horton.

        Attempt to reduce some ambiguity in scrolling tree terminology.
        When async scrolling occurs, there are two tasks we have to perform:
        1. Layers need to be updated to reflect the scroll
        2. WebCore state has to be updated.
        The "updateForViewport" name didn't clearly reflect which of these
        tasks was being performed, so rename it to updateLayersAfterViewportChange()
        to reflect the fact that it only does the first.
        
        Remove the Mac implementation of updateLayersAfterViewportChange(), since
        it was confsued about this, and was never called anyway.

        * WebCore.exp.in:
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeScrollingNodeIOS::updateLayersAfterViewportChange):
        (WebCore::ScrollingTreeScrollingNodeIOS::updateForViewport): Deleted.
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::updateLayersAfterViewportChange):
        (WebCore::ScrollingTreeScrollingNodeMac::updateForViewport): Deleted.

2014-03-31  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Disable tile cohort retention for now
        https://bugs.webkit.org/show_bug.cgi?id=130926
        <rdar://problem/16465413>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        (WebCore::Settings::setScrollingPerformanceLoggingEnabled):
        (WebCore::Settings::setAggressiveTileRetentionEnabled): Deleted.
        * page/Settings.h:
        (WebCore::Settings::aggressiveTileRetentionEnabled): Deleted.
        * page/Settings.in:
        Use Settings.in for these simple settings.

        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::shouldAggressivelyRetainTiles):
        (WebCore::GraphicsLayerClient::shouldTemporarilyRetainTileCohorts):
        * platform/graphics/TiledBacking.h:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::platformCALayerShouldAggressivelyRetainTiles):
        (WebCore::GraphicsLayerCA::platformCALayerShouldTemporarilyRetainTileCohorts):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/PlatformCALayerClient.h:
        (WebCore::PlatformCALayerClient::platformCALayerShouldAggressivelyRetainTiles):
        (WebCore::PlatformCALayerClient::platformCALayerShouldTemporarilyRetainTileCohorts):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::shouldAggressivelyRetainTiles):
        (WebCore::RenderLayerBacking::shouldTemporarilyRetainTileCohorts):
        * rendering/RenderLayerBacking.h:
        Plumb the two tile-retention settings through to TileController in a pull manner
        instead of a push manner, as there were some cases (especially on iOS) where
        the settings weren't always getting pushed down.

        * platform/graphics/ca/mac/TileController.h:
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::TileController):
        (WebCore::TileController::tileRevalidationTimerFired):
        (WebCore::TileController::revalidateTiles):
        (WebCore::TileController::drawTileMapContents):
        Aggressive tile retention wins over temporary retention. If we aren't
        using temporary (cohort) retention, throw away the cohort as soon as it
        is created.

2014-03-31  Beth Dakin  <bdakin@apple.com>

        Radio buttons and checkboxes should share code
        https://bugs.webkit.org/show_bug.cgi?id=130915

        Reviewed by Sam Weinig.

        Radio buttons and checkboxes now share a lot of code. The common term for both is 
        toggle buttons.

        Move these radio-sizing functions up in the file to be next to the checkbox sizing 
        functions.
        * platform/mac/ThemeMac.mm:
        (WebCore::radioSizes):
        (WebCore::radioMargins):
        (WebCore::radioSize):

        Configures a radio button or a checkbox.
        (WebCore::configureToggleButton):

        Creates a radio button or a checkbox.
        (WebCore::createToggleButtonCell):

        Still have a shared cell for each.
        (WebCore::sharedRadioCell):
        (WebCore::sharedCheckboxCell):

        Does the work of the old paintRadio() and paintCheckbox().
        (WebCore::paintToggleButton):

        Use sharedRadioCell() here.
        (WebCore::ThemeMac::inflateControlPaintRect):

        Call paintToggleButton() for radio buttons and checkboxes.
        (WebCore::ThemeMac::paint):

        All gone.
        (WebCore::configureCheckbox): Deleted.
        (WebCore::createCheckboxCell): Deleted.
        (WebCore::paintCheckbox): Deleted.
        (WebCore::radio): Deleted.
        (WebCore::paintRadio): Deleted.

2014-03-31  Samuel White  <samuel_white@apple.com>

        AX: Need ability to get line range for text marker.
        https://bugs.webkit.org/show_bug.cgi?id=130906

        Reviewed by Chris Fleizach.

        Added ability to get line range from any marker on that line. This matches the functionality of existing
        attributes such as AXParagraphTextMarkerRangeForTextMarker and AXSentenceTextMarkerRangeForTextMarker.

        Test: platform/mac/accessibility/line-range-for-text-marker.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::visiblePositionRangeForRange):
        (WebCore::AccessibilityObject::lineRangeForPosition):
        * accessibility/AccessibilityObject.h:
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (-[WebAccessibilityObjectWrapper accessibilityParameterizedAttributeNames]):
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:forParameter:]):

2014-03-31  Anders Carlsson  <andersca@apple.com>

        Fix iOS build.

        * page/ChromeClient.h:
        (WebCore::ChromeClient::updateViewportConstrainedLayers):

2014-03-31  Jer Noble  <jer.noble@apple.com>

        [MSE][Mac] Support lease-renewal.
        https://bugs.webkit.org/show_bug.cgi?id=130919

        Reviewed by Eric Carlson.

        Trigger a new key request when receiving an update message containting "renew".

        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest): Drive-by fix; generate a UTF-8
            based array.
        (WebCore::CDMSessionMediaSourceAVFObjC::update):

2014-03-31  Alexey Proskuryakov  <ap@apple.com>

        Remove special handling of soft hyphens in search code
        https://bugs.webkit.org/show_bug.cgi?id=130940

        Reviewed by Anders Carlsson.

        ICU knows to ignore soft hyphens, so we don't need to replace them before searching.

        Covered by existing tests.

        * editing/TextIterator.cpp:
        (WebCore::foldQuoteMark):
        (WebCore::foldQuoteMarks):
        (WebCore::SearchBuffer::SearchBuffer):
        (WebCore::SearchBuffer::append):
        (WebCore::foldQuoteMarkOrSoftHyphen): Deleted.
        (WebCore::foldQuoteMarksAndSoftHyphens): Deleted.

2014-03-31  Alex Christensen  <achristensen@webkit.org>

        Preparation for using Soup on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=130615

        Reviewed by Carlos Garcia Campos.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        Added Soup source files in WinCairo build.
        * loader/soup/CachedRawResourceSoup.cpp:
        * loader/soup/SubresourceLoaderSoup.cpp:
        * platform/soup/SharedBufferSoup.cpp:
        * platform/soup/URLSoup.cpp:
        * platform/network/NetworkStorageSessionStub.cpp:
        Only build if USE(SOUP) to prevent building when USE(CURL) is true.
        * platform/network/soup/ResourceHandleSoup.cpp:
        Only include unistd.h in non-Visual Studio builds.
        This would normally be done with a HAVE_UNISTD_H macro when compiling glib and Soup,
        but that would need to be left undefined for Visual Studio.

2014-03-31  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Addressing reviewing comments for r166491 that I forgot
        to address before landing.

        * html/FormController.cpp:
        (WebCore::SavedFormState::deserialize): No need to move the std::unique_ptr
        object on the way out.
        (WebCore::FormController::createSavedFormStateMap): FormKeyGenerator can be
        allocated on the stack.
        (WebCore::FormController::formStatesFromStateVector): Use auto.

2014-03-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use GMainLoopSource for idle and timeout sources in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=130078

        Reviewed by Philippe Normand.

        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        * platform/gtk/GtkDragAndDropHelper.cpp:
        * platform/gtk/SharedTimerGtk.cpp:

2014-03-31  Andrei Bucur  <abucur@adobe.com>

        Wrong layout while animating content in regions
        https://bugs.webkit.org/show_bug.cgi?id=125086

        Reviewed by David Hyatt.

        The region to layer and regions to layer mappings should be cleared when the region chain changes.

        Test: fast/regions/layers/region-removed-during-animation.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::invalidateRegions): Clear the two maps and flag them for recomputation.
        (WebCore::RenderFlowThread::cachedRegionForCompositedLayer): Assert that the returned region exists.

2014-03-31  Dániel Bátyai  <dbatyai.u-szeged@partner.samsung.com>

        Remove hostThisRegister() and hostThisValue()
        https://bugs.webkit.org/show_bug.cgi?id=130895

        Reviewed by Geoffrey Garen.

        Removed hostThisRegister() and hostThisValue() and instead use thisArgumentOffset() and thisValue() respectively.

        No new tests, no behavior changes.

        * bindings/js/JSNavigatorCustom.cpp:
        (WebCore::JSNavigator::webkitGetUserMedia):
        * bindings/js/JSPluginElementFunctions.cpp:
        (WebCore::callPlugin):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/test/JS/JSFloat64Array.cpp:
        (WebCore::jsFloat64ArrayPrototypeFunctionFoo):
        (WebCore::jsFloat64ArrayPrototypeFunctionSet):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::jsTestEventTargetPrototypeFunctionItem):
        (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
        (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionVoidMethod):
        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionByteMethod):
        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionOctetMethod):
        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionLongMethod):
        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethod):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
        (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionSerializedValue):
        (WebCore::jsTestObjPrototypeFunctionOptionsObject):
        (WebCore::jsTestObjPrototypeFunctionMethodWithException):
        (WebCore::jsTestObjPrototypeFunctionCustomMethod):
        (WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionAddEventListener):
        (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
        (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
        (WebCore::jsTestObjPrototypeFunctionConvert1):
        (WebCore::jsTestObjPrototypeFunctionConvert2):
        (WebCore::jsTestObjPrototypeFunctionConvert4):
        (WebCore::jsTestObjPrototypeFunctionConvert5):
        (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
        (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
        (WebCore::jsTestObjPrototypeFunctionOrange):
        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
        (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
        (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
        (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
        (WebCore::jsTestObjPrototypeFunctionAny):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::jsTestTypedefsPrototypeFunctionFunc):
        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
        (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
        * bridge/objc/objc_runtime.mm:
        (JSC::Bindings::callObjCFallbackObject):
        * bridge/runtime_method.cpp:
        (JSC::callRuntimeMethod):

2014-03-31  Zan Dobersek  <zdobersek@igalia.com>

        Move the rest of Source/WebCore/html/ code to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=129669

        Reviewed by Anders Carlsson.

        Replace the remaining uses of OwnPtr, PassOwnPtr under Source/WebCore/html/ with std::unique_ptr.

        * html/FormController.cpp:
        (WebCore::SavedFormState::SavedFormState):
        (WebCore::SavedFormState::deserialize):
        (WebCore::FormController::createSavedFormStateMap):
        (WebCore::FormController::formElementsState):
        (WebCore::FormController::takeStateForFormElement):
        (WebCore::FormController::formStatesFromStateVector):
        * html/FormController.h:
        * html/HTMLAreaElement.cpp:
        (WebCore::HTMLAreaElement::mapMouseEvent):
        * html/HTMLAreaElement.h:
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::setSurfaceSize):
        (WebCore::HTMLCanvasElement::createImageBuffer):
        * html/HTMLCanvasElement.h:
        * html/HTMLCollection.h:
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseAttribute):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::updateVisibleValidationMessage):
        * html/HTMLFormControlElement.h:
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::addToPastNamesMap):
        * html/HTMLFormElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::imageLoader):
        (WebCore::HTMLInputElement::resetListAttributeTargetObserver):
        * html/HTMLInputElement.h:
        (WebCore::HTMLInputElement::hasImageLoader):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseAttribute):
        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::startLoadingImage):
        * html/HTMLPlugInImageElement.h:
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::didAttachRenderers):
        (WebCore::HTMLVideoElement::parseAttribute):
        * html/HTMLVideoElement.h:
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::ValidationMessage):
        (WebCore::ValidationMessage::setMessage):
        (WebCore::ValidationMessage::setMessageDOMAndStartTimer):
        (WebCore::ValidationMessage::requestToHideMessage):
        * html/ValidationMessage.h:

2014-03-31  Maurice van der Pot  <griffon26@kfk4ever.com>

        Fix mixed use of booleans in JPEGImageDecoder.cpp
        https://bugs.webkit.org/show_bug.cgi?id=122412

        Reviewed by Darin Adler.

        Trivial fix for compilation error; no new tests.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageReader::decode):
        (WebCore::fill_input_buffer):
        Use TRUE/FALSE defined by libjpeg for libjpeg booleans

2014-03-23  Zan Dobersek  <zdobersek@igalia.com>

        Move Source/WebCore/rendering/ code to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=129664

        Reviewed by Anders Carlsson.

        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/rendering/ with std::unique_ptr.

        * platform/graphics/FloatPolygon.cpp:
        (WebCore::FloatPolygon::FloatPolygon):
        * platform/graphics/FloatPolygon.h:
        * rendering/ClipPathOperation.h:
        * rendering/FlowThreadController.cpp:
        (WebCore::FlowThreadController::ensureRenderFlowThreadWithName):
        * rendering/FlowThreadController.h:
        * rendering/HitTestLocation.h:
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::HitTestResult):
        (WebCore::HitTestResult::operator=):
        (WebCore::HitTestResult::rectBasedTestResult):
        (WebCore::HitTestResult::mutableRectBasedTestResult):
        * rendering/HitTestResult.h:
        * rendering/HitTestingTransformState.cpp:
        * rendering/ImageQualityController.h:
        * rendering/RenderBlock.cpp:
        (WebCore::removeBlockFromDescendantAndContainerMaps):
        (WebCore::RenderBlock::finishDelayUpdateScrollInfo):
        (WebCore::RenderBlock::addContinuationWithOutline):
        (WebCore::RenderBlock::paintContinuationOutlines):
        (WebCore::RenderBlock::insertIntoTrackedRendererMaps):
        (WebCore::RenderBlock::removeFromTrackedRendererMaps):
        (WebCore::RenderBlock::setComputedColumnCountAndWidth):
        * rendering/RenderBlock.h:
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::createFloatingObjects):
        * rendering/RenderBlockFlow.h:
        * rendering/RenderBoxRegionInfo.h:
        * rendering/RenderButton.cpp:
        (WebCore::RenderButton::styleDidChange):
        * rendering/RenderButton.h:
        * rendering/RenderCounter.cpp:
        (WebCore::makeCounterNode):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::updateAllLayerToRegionMappings):
        (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
        * rendering/RenderFlowThread.h:
        * rendering/RenderGeometryMap.cpp:
        (WebCore::RenderGeometryMap::push):
        (WebCore::RenderGeometryMap::pushView):
        * rendering/RenderGeometryMap.h:
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::GridIterator::nextEmptyGridArea):
        (WebCore::RenderGrid::placeItemsOnGrid):
        (WebCore::RenderGrid::populateExplicitGridAndOrderIterator):
        (WebCore::RenderGrid::placeSpecifiedMajorAxisItemsOnGrid):
        (WebCore::RenderGrid::placeAutoMajorAxisItemOnGrid):
        (WebCore::RenderGrid::resolveGridPositionsFromStyle):
        (WebCore::RenderGrid::resolveGridPositionAgainstOppositePosition):
        (WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition):
        (WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):
        (WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition):
        * rendering/RenderGrid.h:
        * rendering/RenderImageResource.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateDescendantsAreContiguousInStackingOrder):
        (WebCore::RenderLayer::updateTransform):
        (WebCore::RenderLayer::setupFilters):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::paintChildLayerIntoColumns):
        (WebCore::RenderLayer::hitTestChildLayerColumns):
        (WebCore::RenderLayer::updateClipRects):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        (WebCore::RenderLayer::clearZOrderLists):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::notifyFlushBeforeDisplayRefresh):
        (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
        * rendering/RenderLayerCompositor.h:
        * rendering/RenderLayerFilterInfo.cpp:
        (WebCore::RenderLayer::FilterInfo::map):
        (WebCore::RenderLayer::FilterInfo::get):
        * rendering/RenderLayerFilterInfo.h:
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::setRenderBoxRegionInfo):
        (WebCore::RenderRegion::takeRenderBoxRegionInfo):
        * rendering/RenderRegion.h:
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::styleDidChange):
        * rendering/RenderTable.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::selectionBounds):
        (WebCore::RenderView::setSelection):
        (WebCore::RenderView::compositor):
        (WebCore::RenderView::flowThreadController):
        (WebCore::RenderView::imageQualityController):
        * rendering/RenderView.h:
        * rendering/RootInlineBox.h:
        (WebCore::RootInlineBox::appendFloat):
        * rendering/TextAutosizer.h:
        * rendering/shapes/PolygonShape.cpp:
        (WebCore::computeShapePaddingBounds):
        (WebCore::computeShapeMarginBounds):
        * rendering/shapes/PolygonShape.h:
        (WebCore::PolygonShape::PolygonShape):
        * rendering/shapes/RasterShape.cpp:
        (WebCore::RasterShapeIntervals::computeShapeMarginIntervals):
        * rendering/shapes/RasterShape.h:
        (WebCore::RasterShape::RasterShape):
        * rendering/shapes/Shape.cpp:
        (WebCore::createInsetShape):
        (WebCore::createRectangleShape):
        (WebCore::createCircleShape):
        (WebCore::createEllipseShape):
        (WebCore::createPolygonShape):
        (WebCore::Shape::createShape):
        (WebCore::Shape::createRasterShape):
        (WebCore::Shape::createLayoutBoxShape):
        * rendering/shapes/Shape.h:
        * rendering/shapes/ShapeInfo.h:
        (WebCore::ShapeInfo::markShapeAsDirty):
        (WebCore::ShapeInfo::isShapeDirty):
        * rendering/shapes/ShapeInsideInfo.h:
        * rendering/style/ContentData.h:
        * rendering/style/CounterDirectives.cpp:
        (WebCore::clone):
        * rendering/style/CounterDirectives.h:
        * rendering/style/GridCoordinate.h:
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::addCachedPseudoStyle):
        (WebCore::RenderStyle::accessCounterDirectives):
        (WebCore::RenderStyle::accessAnimations):
        (WebCore::RenderStyle::accessTransitions):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        * rendering/style/StyleRareNonInheritedData.h:
        * rendering/svg/RenderSVGResourceGradient.cpp:
        (WebCore::RenderSVGResourceGradient::applyResource):
        * rendering/svg/RenderSVGResourceGradient.h:
        * rendering/svg/RenderSVGResourcePattern.cpp:
        (WebCore::RenderSVGResourcePattern::buildPattern):
        * rendering/svg/RenderSVGResourcePattern.h:
        * rendering/svg/RenderSVGShape.cpp:
        (WebCore::RenderSVGShape::updateShapeFromElement):
        * rendering/svg/RenderSVGShape.h:
        * rendering/svg/SVGResources.cpp:
        (WebCore::SVGResources::setClipper):
        (WebCore::SVGResources::setFilter):
        (WebCore::SVGResources::setMarkerStart):
        (WebCore::SVGResources::setMarkerMid):
        (WebCore::SVGResources::setMarkerEnd):
        (WebCore::SVGResources::setMasker):
        (WebCore::SVGResources::setFill):
        (WebCore::SVGResources::setStroke):
        * rendering/svg/SVGResources.h:
        * rendering/svg/SVGResourcesCache.cpp:
        (WebCore::SVGResourcesCache::addResourcesFromRenderer):
        (WebCore::SVGResourcesCache::removeResourcesFromRenderer):
        * rendering/svg/SVGResourcesCache.h:
        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer):
        * rendering/svg/SVGTextMetricsBuilder.h:

2014-03-28  Sergio Villar Senin  <svillar@igalia.com>

        Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in loader
        https://bugs.webkit.org/show_bug.cgi?id=130893

        Reviewed by Darin Adler.

        * loader/ImageLoader.cpp:
        (WebCore::beforeLoadEventSender):
        (WebCore::loadEventSender):
        (WebCore::errorEventSender):
        * loader/appcache/ApplicationCacheStorage.cpp:
        (WebCore::cacheStorage):
        * loader/appcache/ApplicationCacheStorage.h:
        * loader/archive/ArchiveFactory.cpp:
        (WebCore::archiveMIMETypes):
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::brokenImage):
        * loader/cache/CachedRawResource.cpp:
        (WebCore::shouldIgnoreHeaderForCacheReuse):
        * loader/cache/MemoryCache.cpp:
        (WebCore::dummyCachedImageClient):

2014-03-28  Sergio Villar Senin  <svillar@igalia.com>

        Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in css
        https://bugs.webkit.org/show_bug.cgi?id=130409

        Reviewed by Darin Adler.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::logUnimplementedPropertyID):
        * css/CSSDefaultStyleSheets.cpp:
        (WebCore::screenEval):
        (WebCore::printEval):
        * css/CSSParser.cpp:
        (WebCore::strictCSSParserContext):
        * css/CSSPrimitiveValue.cpp:
        (WebCore::cssTextCache):
        * css/CSSProperty.cpp:
        (WebCore::borderDirections):
        * css/CSSStyleRule.cpp:
        (WebCore::selectorTextCache):
        * css/CSSValuePool.cpp:
        (WebCore::cssValuePool):
        * css/CSSValuePool.h:
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyPageSize::getPageSizeFromName):
        (WebCore::DeprecatedStyleBuilder::sharedStyleBuilder):
        * css/DeprecatedStyleBuilder.h:

2014-03-30  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GTK] [TextureMapper] Weird brightness with some videos with acceletared compositing
        https://bugs.webkit.org/show_bug.cgi?id=130665

        Reviewed by Martin Robinson.

        When we uploaded a video texture to the mapper we were not
        considering that some videos could be decoded into a format
        without alpha component. Now we check if the video has alpha and
        if it does not, we remove the alpha flag when retrieving the
        texture from the pool. For this, the method to get the texture
        from the pool was modified to receive the flags, that is mapped to
        have alpha by default in order not to break any other existing
        code.

        Though we have a problem with AC in WTR and that makes it
        currently not testable, no new tests are needed because once this
        is fixed the current test set suffices to detect a possible
        regression in this.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::updateTexture): Check
        the video format and decide if the texture shall be pulled with
        alpha support or not.
        * platform/graphics/texmap/TextureMapper.cpp:
        (WebCore::TextureMapper::acquireTextureFromPool): Use the flags
        when resetting the texture.
        * platform/graphics/texmap/TextureMapper.h:
        (WebCore::BitmapTexture::Flag::None): Added with 0x00.
        (WebCore::TextureMapper::acquireTextureFromPool): Added flag
        parameter to set up the texture with the default for including
        alpha channel.

2014-03-30  Jinwoo Song  <jinwoo7.song@samsung.com>

        Adopt range-based for loops to TextCheckerEnchant
        https://bugs.webkit.org/show_bug.cgi?id=130714

        Reviewed by Darin Adler.

        * platform/text/enchant/TextCheckerEnchant.cpp:
        (WebCore::TextCheckerEnchant::ignoreWord):
        (WebCore::TextCheckerEnchant::learnWord):
        (WebCore::TextCheckerEnchant::checkSpellingOfWord):
        (WebCore::TextCheckerEnchant::getGuessesForWord):
        (WebCore::TextCheckerEnchant::updateSpellCheckingLanguages):
        (WebCore::TextCheckerEnchant::loadedSpellCheckingLanguages):
        (WebCore::TextCheckerEnchant::availableSpellCheckingLanguages):
        (WebCore::TextCheckerEnchant::freeEnchantBrokerDictionaries):

2014-03-30  Benjamin Poulain  <benjamin@webkit.org>

        Second attempt to fix 32bits build after r166465

        * rendering/style/RenderStyle.h:
        The compiler probably complain about the return value, that makes more sense.

2014-03-30  Benjamin Poulain  <benjamin@webkit.org>

        Attempt to fix 32bits build after r166465

        * rendering/style/RenderStyle.h:

2014-03-30  Benjamin Poulain  <benjamin@webkit.org>

        Make RenderStyle's non inherited flags more JSC friendly
        https://bugs.webkit.org/show_bug.cgi?id=130939

        Reviewed by Andreas Kling.

        Make RenderStyle::NonInheritedFlags accessible to the JIT:
        -Make the struct public to give access to the offset.
        -Move away from a bit field to static offsets we can use
         with the MacroAssembler.
        -Reorder the field to simplify bit access of the flags we need.

        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyVerticalAlign::createHandler):
        (WebCore::ApplyPropertyDisplay::applyInitialValue):
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::RenderStyle):
        (WebCore::RenderStyle::copyNonInheritedFrom):
        (WebCore::RenderStyle::hashForTextAutosizing):
        (WebCore::RenderStyle::equalForTextAutosizing):
        (WebCore::RenderStyle::changeRequiresLayout):
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyle::hasAnyPublicPseudoStyles):
        (WebCore::RenderStyle::hasPseudoStyle):
        (WebCore::RenderStyle::setHasPseudoStyle):
        * rendering/style/StyleMultiColData.cpp:
        (WebCore::StyleMultiColData::StyleMultiColData):
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):

2014-03-30  David Kilzer  <ddkilzer@apple.com>

        [iOS] Fix build of HTMLConverter.mm after r166454

        Fixes the following build failures:

            WebCore/editing/cocoa/HTMLConverter.mm:1507:13: error: value of type 'WebCore::Element' is not contextually convertible to 'bool'
                    if (element)
                        ^~~~~~~
            WebCore/editing/cocoa/HTMLConverter.mm:1508:49: error: no matching function for call to 'core'
                        _caches->floatPropertyValueForNode(*core(element), CSSPropertyVerticalAlign, verticalAlign);
                                                            ^~~~
            In file included from WebCore/editing/cocoa/HTMLConverter.mm:41:
            In file included from WebCore/page/Frame.h:42:
            In file included from WebCore/editing/VisibleSelection.h:30:
            In file included from WebCore/editing/VisiblePosition.h:30:
            In file included from WebCore/dom/Position.h:31:
            WebCore/editing/TextAffinity.h:54:27: note: candidate function not viable: no known conversion from 'WebCore::Element' to 'NSSelectionAffinity' (aka '_NSSelectionAffinity') for 1st argument
            inline WebCore::EAffinity core(NSSelectionAffinity affinity)
                                      ^
            WebCore/editing/cocoa/HTMLConverter.mm:1509:81: error: reference to non-static member function must be called; did you mean to call it with no arguments?
                    attachment.get().bounds = CGRectMake(0, (verticalAlign / 100) * element.clientHeight, element.clientWidth, element.clientHeight);
                                                                                    ~~~~~~~~^~~~~~~~~~~~
                                                                                                        ()
            WebCore/editing/cocoa/HTMLConverter.mm:1509:103: error: reference to non-static member function must be called; did you mean to call it with no arguments?
                    attachment.get().bounds = CGRectMake(0, (verticalAlign / 100) * element.clientHeight, element.clientWidth, element.clientHeight);
                                                                                                          ~~~~~~~~^~~~~~~~~~~
                                                                                                                             ()
            WebCore/editing/cocoa/HTMLConverter.mm:1509:124: error: reference to non-static member function must be called; did you mean to call it with no arguments?
                    attachment.get().bounds = CGRectMake(0, (verticalAlign / 100) * element.clientHeight, element.clientWidth, element.clientHeight);
                                                                                                                               ~~~~~~~~^~~~~~~~~~~~
                                                                                                                                                   ()
            5 errors generated.

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_addAttachmentForElement):

2014-03-30  Andreas Kling  <akling@apple.com>

        Make NodeList and HTMLCollection caching helpers use PassRef.
        <https://webkit.org/b/130943>

        Tweak the helpers in NodeListsNodeData to return PassRef instead of
        PassRefPtr. This knocks 2 branches off of some pretty hot code on
        Dromaeo/dom-query.

        Reviewed by Antti Koivisto.

        * dom/ChildNodeList.h:
        * dom/ClassNodeList.h:
        * dom/NameNodeList.h:
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::ensureChildNodeList):
        (WebCore::NodeListsNodeData::ensureEmptyChildNodeList):
        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
        (WebCore::NodeListsNodeData::addCacheWithName):
        (WebCore::NodeListsNodeData::addCacheWithQualifiedName):
        (WebCore::NodeListsNodeData::addCachedCollection):
        * dom/TagNodeList.h:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::create):
        * html/HTMLCollection.h:
        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::create):
        * html/HTMLFormControlsCollection.h:
        * html/RadioNodeList.h:

2014-03-29  Antti Koivisto  <antti@apple.com>

        LiveNodeLists should use ElementDescendantIterator
        https://bugs.webkit.org/show_bug.cgi?id=130931

        Reviewed by Andreas Kling.
        
        Make LiveNodeList traversal use the common DOM tree iterator.

        * dom/ChildNodeList.cpp:
        (WebCore::ChildNodeList::ChildNodeList):
        (WebCore::ChildNodeList::collectionBegin):
        (WebCore::ChildNodeList::collectionTraverseForward):
        (WebCore::ChildNodeList::collectionTraverseBackward):
        (WebCore::ChildNodeList::invalidateCache):
        (WebCore::ChildNodeList::collectionFirst): Deleted.
        
            Iterator for ChildNodeList is still just Node*.

        * dom/ChildNodeList.h:
        * dom/CollectionIndexCache.h:
        (WebCore::CollectionIndexCache::hasValidCache):
        (WebCore::Iterator>::CollectionIndexCache):
        (WebCore::Iterator>::nodeCount):
        (WebCore::Iterator>::computeNodeCountUpdatingListCache):
        (WebCore::Iterator>::traverseBackwardTo):
        (WebCore::Iterator>::traverseForwardTo):
        (WebCore::Iterator>::nodeAt):
        (WebCore::Iterator>::invalidate):
        
            Make CollectionIndexCache iterator based instead of using NodeType*. The iterator type may
            still be a Node* though.

        (WebCore::NodeType>::CollectionIndexCache): Deleted.
        (WebCore::NodeType>::nodeCount): Deleted.
        (WebCore::NodeType>::computeNodeCountUpdatingListCache): Deleted.
        (WebCore::NodeType>::nodeBeforeCached): Deleted.
        (WebCore::NodeType>::nodeAfterCached): Deleted.
        (WebCore::NodeType>::nodeAt): Deleted.
        (WebCore::NodeType>::invalidate): Deleted.
        * dom/ElementDescendantIterator.h:
        (WebCore::ElementDescendantIterator::operator--):
        
            Add backward iteration support.

        (WebCore::ElementDescendantIteratorAdapter::last):
        (WebCore::ElementDescendantConstIteratorAdapter::last):
        
            Add a way to get the last item.
            Provide std::iterator_traits so we can extract the type.

        * dom/LiveNodeList.h:
        (WebCore::CachedLiveNodeList::collectionEnd):
        (WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
        (WebCore::CachedLiveNodeList<NodeListType>::~CachedLiveNodeList):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionBegin):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
        (WebCore::CachedLiveNodeList<NodeListType>::invalidateCache):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionFirst): Deleted.
        
            Make LiveNodeList traversal use ElementDescendantIterator.

        (WebCore::nextMatchingElement): Deleted.
        (WebCore::previousMatchingElement): Deleted.
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::~HTMLCollection):
        (WebCore::HTMLCollection::collectionBegin):
        (WebCore::HTMLCollection::collectionTraverseForward):
        (WebCore::HTMLCollection::collectionTraverseBackward):
        (WebCore::HTMLCollection::invalidateCache):
        (WebCore::HTMLCollection::collectionFirst): Deleted.
        * html/HTMLCollection.h:
        (WebCore::HTMLCollection::collectionEnd):
        
            HTMLCollection still uses Element* as iterator for now.

2014-03-29  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166434.
        https://bugs.webkit.org/show_bug.cgi?id=130938

        Caused crashes and other failures on cache tests (Requested by
        ap on #webkit).

        Reverted changeset:

        "Web Replay: add page-level setting to bypass the MemoryCache"
        https://bugs.webkit.org/show_bug.cgi?id=130728
        http://trac.webkit.org/changeset/166434

2014-03-29  David Kilzer  <ddkilzer@apple.com>

        Preserve selection end positions in directionOfSelection
        <http://webkit.org/b/104813>
        <rdar://problem/13666417>

        Reviewed by Brent Fulgham.

        Merged from Blink (patch by kenrb@chromium.org):
        https://src.chromium.org/viewvc/blink?revision=150621&view=revision
        http://crbug.com/164263

            VisibleSelection::visibleStart() and VisibleSelection::visibleEnd()
            can both cause layouts, which has the potential to invalidate any
            rendertree-based objects. This was causing a problem in
            FrameSelection::directionOfSelection(), where a reference to a
            lineBox was being held across a call to visibleEnd().

            This patch ensures that the any layout is completed before linebox
            references are retrieved.

        Test: editing/selection/layout-during-move-selection-crash.html

        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::directionOfSelection):

2014-03-29  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Simple line layout should not round to integral position while painting.
        https://bugs.webkit.org/show_bug.cgi?id=130934

        Reviewed by Simon Fraser.

        Remove rounding to integral position. When RenderLayer is injected and hides subpixel positions,
        integral rounding produces different paint position.

        Test: fast/flexbox/hidpi-simple-line-layout-with-flexbox-and-transition.html

        * rendering/SimpleLineLayoutFunctions.cpp:
        (WebCore::SimpleLineLayout::paintFlow):

2014-03-29  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make GraphicsContext::drawImageBuffer* functions float based.
        https://bugs.webkit.org/show_bug.cgi?id=130932

        Reviewed by Simon Fraser.
        
        This is in preparation to support device pixel based filter painting.
        Filter calculation is still integral based.

        No change in behavior.

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImageBuffer):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/filters/FilterEffect.cpp: This will eventually be fully float based.
        Right now, this IntRect->FloatRect change is only to ensure that we can call 
        the float based drawImageBuffer(). 
        (WebCore::FilterEffect::drawingRegionOfInputImage):
        * platform/graphics/filters/FilterEffect.h:

2014-03-27  Sam Weinig  <sam@webkit.org>

        Convert yet more of HTMLConverter to C++
        https://bugs.webkit.org/show_bug.cgi?id=130850

        Reviewed by Anders Carlsson.

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverterCaches::isAncestorsOfStartToBeConverted):
        (HTMLConverter::HTMLConverter):
        (HTMLConverter::~HTMLConverter):
        (HTMLConverter::convert):
        (HTMLConverter::computedAttributesForElement):
        (HTMLConverter::attributesForElement):
        (HTMLConverter::_newParagraphForElement):
        (HTMLConverter::_newLineForElement):
        (HTMLConverter::_newTabForElement):
        (HTMLConverter::_addAttachmentForElement):
        (HTMLConverter::_addQuoteForElement):
        (HTMLConverter::_addValue):
        (HTMLConverter::_processHeadElement):
        (HTMLConverter::_enterElement):
        (HTMLConverter::_addTableCellForElement):
        (HTMLConverter::_processElement):
        (HTMLConverter::_addMarkersToList):
        (HTMLConverter::_exitElement):
        (HTMLConverter::_processText):
        (HTMLConverter::_traverseNode):
        (HTMLConverter::_traverseFooterNode):
        (WebCore::attributedStringFromRange):
        (_childrenForNode): Deleted.
        (HTMLConverter::_computedAttributesForElement): Deleted.
        (HTMLConverter::_attributesForElement): Deleted.
        (HTMLConverter::_loadFromDOMRange): Deleted.

2014-03-28  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed buildfix after r166441 and r166443.

        * CMakeLists.txt: Add platform/audio/AudioHardwareListener.cpp.

2014-03-28  Javier Fernandez  <jfernandez@igalia.com>

        [CSS Grid Layout] The 'auto' height must be adapted to the item's margin.
        https://bugs.webkit.org/show_bug.cgi?id=130920

        Reviewed by Darin Adler.

        Adding the grid-item's marginLogicalHeight to the used breadth when computing
        content based grid-track sizes.

        Test: fast/css-grid-layout/grid-item-margin-auto-columns-rows.html

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::logicalContentHeightForChild):

2014-03-28  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: support for live regions
        https://bugs.webkit.org/show_bug.cgi?id=130725

        Reviewed by Timothy Hatcher.

        Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html
               inspector-protocol/dom/getAccessibilityPropertiesForNode_liveRegion.html

        Initial support for @aria-live, @aria-atomic, and @aria-busy.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/protocol/DOM.json:

2014-03-28  Darin Adler  <darin@apple.com>

        Fix recently-introduced off-by-one error in centerTruncateToBuffer
        https://bugs.webkit.org/show_bug.cgi?id=130889
        <rdar://problem/16408694>

        Reviewed by Alexey Proskuryakov.

        * platform/graphics/StringTruncator.cpp:
        (WebCore::centerTruncateToBuffer): Simplified expression that computes truncatedLength.
        Removed incorrect "+ 1" from computation of where to write characters.

2014-03-28  Benjamin Poulain  <bpoulain@apple.com>

        Update the code related to SelectorPseudoTypeMap to reflect its new purpose
        https://bugs.webkit.org/show_bug.cgi?id=130620

        Reviewed by Andreas Kling.

        Since r166094, SelectorPseudoTypeMap only contains PseudoClass instances and the 4 compatibility PseudoElement.

        This patch rename SelectorPseudoTypeMap to SelectorPseudoClassAndCompatibilityElementMap and update the parsing
        to split PseudoClass and PseudoElement.

        * CMakeLists.txt:
        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSGrammar.y.in:
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::parsePseudoClassAndCompatibilityElementSelector):
        (WebCore::CSSParserSelector::setPseudoClassValue):
        * css/CSSParserValues.h:
        * css/CSSSelector.cpp:
        (WebCore::appendPseudoClassFunctionTail):
        (WebCore::CSSSelector::selectorText):
        * css/SelectorPseudoClassAndCompatibilityElementMap.in: Renamed from Source/WebCore/css/SelectorPseudoTypeMap.in.
        * css/SelectorPseudoTypeMap.h:
        * css/makeSelectorPseudoClassAndCompatibilityElementMap.py: Renamed from Source/WebCore/css/makeSelectorPseudoTypeMap.py.
        (enumerablePseudoType):
        (expand_ifdef_condition):

2014-03-28  Stephanie Lewis  <slewis@apple.com>

        Unreviewed build fix.

        * platform/audio/AudioHardwareListener.cpp:
        (WebCore::AudioHardwareListener::create):
        (WebCore::AudioHardwareListener::audioHardwareListenerIsSupported): Deleted.
        * platform/audio/AudioHardwareListener.h:

2014-03-28  Lukasz Bialek  <l.bialek@samsung.com>

        Refactor cut and copy functions as suggested in FIXME line
        https://bugs.webkit.org/show_bug.cgi?id=129867

        Reviewed by Darin Adler.

        Cut and Copy functions in Editor.cpp use lots of common code.
        Those functions are merged into one to share code, several
        additional conditions are added to preserve Cut and Copy
        functionality.

        * editing/Editor.cpp:
        (WebCore::Editor::cut):
        (WebCore::Editor::copy):
        (WebCore::Editor::performCutOrCopy):
        * editing/Editor.h:

2014-03-28  Stephanie Lewis  <slewis@apple.com>

        Rename pluginDidEvaluate to better represent when it’s called.
        Part of <rdar://problem/16061257> PluginProcess should AppNap when no plugins on active tab.

        Reviewed by Anders Carlsson.

        No new test because it’s just a name change.

        * page/PageThrottler.h:
        (WebCore::PageThrottler::pluginDidEvaluateWhileAudioIsPlaying):

2014-03-28  Stephanie Lewis  <slewis@apple.com>

        Notification handler for telling if audio hardware is active.
        https://bugs.webkit.org/show_bug.cgi?id=130743

        Reviewed by Jer Noble.

        Not web-exposed so no easy way to test.

        Listen to CoreAudio to see if audio hardware is active in the current process.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/audio/AudioHardwareListener.cpp: Added.
        (WebCore::AudioHardwareListener::create):
        (WebCore::AudioHardwareListener::AudioHardwareListener):
        * platform/audio/AudioHardwareListener.h: Added.
        (WebCore::AudioHardwareListener::Client::~Client):
        (WebCore::AudioHardwareListener::~AudioHardwareListener):
        (WebCore::AudioHardwareListener::isHardwareActive):
        * platform/audio/mac/AudioHardwareListenerMac.cpp: Added.
        (WebCore::isAudioHardwareProcessRunning):
        (WebCore::AudioHardwareListener::create):
        (WebCore::AudioHardwareListenerMac::create):
        (WebCore::AudioHardwareListenerMac::AudioHardwareListenerMac):
        (WebCore::AudioHardwareListenerMac::~AudioHardwareListenerMac):
        (WebCore::AudioHardwareListenerMac::setHardwareActive):
        * platform/audio/mac/AudioHardwareListenerMac.h: Added.

2014-03-28  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: expose what elements get generic "clickable" status
        https://bugs.webkit.org/show_bug.cgi?id=130721

        Reviewed by Timothy Hatcher.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html:
        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode_mouseEventNodeId.html

        Expose ancestor element link to "Click Listener" or generic "Clickable: Yes" if current node has mouse handler.

        Update AccessibilityNodeObject::mouseButtonListener() to optionally return body element if 
            requested so that Web Inspector can display body event delegate handlers.

        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::mouseButtonListener):
        * accessibility/AccessibilityNodeObject.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/protocol/DOM.json:

2014-03-28  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Really drop all locks in nested run loop on iOS if WebThread is enabled
        https://bugs.webkit.org/show_bug.cgi?id=130912

        Reviewed by Geoffrey Garen.

        Previously we were calling DropAllLocks inside of a single line if statement,
        so the JSLock was getting reaquired very quickly. We really want to DropAllLocks
        for the duration of running the nested run loop on iOS if there is a WebThread.

        * bindings/js/PageScriptDebugServer.h:
        * bindings/js/PageScriptDebugServer.cpp:
        (WebCore::PageScriptDebugServer::runEventLoopWhilePaused):
        (WebCore::PageScriptDebugServer::runEventLoopWhilePausedInternal):

2014-03-28  Brent Fulgham  <bfulgham@apple.com>

        [Win] Enable Media Track testing features on Windows
        https://bugs.webkit.org/show_bug.cgi?id=130851

        Reviewed by Eric Carlson.

        * testing/Internals.cpp:
        (WebCore::Internals::resetToConsistentState): Execute code on Windows as well.
        (WebCore::Internals::Internals): Ditto.
        (WebCore::Internals::captionsStyleSheetOverride): Ditto.
        (WebCore::Internals::setCaptionsStyleSheetOverride): Ditto.
        (WebCore::Internals::setPrimaryAudioTrackLanguageOverride): Ditto.
        (WebCore::Internals::setCaptionDisplayMode): Ditto.

2014-03-28  Brian Burg  <bburg@apple.com>

        Web Replay: add page-level setting to bypass the MemoryCache
        https://bugs.webkit.org/show_bug.cgi?id=130728

        Reviewed by Timothy Hatcher.

        When replaying a specific Page we don't want to store its cached resources in the
        MemoryCache. This patch adds a page setting to prevent the page's resources from
        being saved in the MemoryCache.

        If Settings::usesMemoryCache() is false, page resources are given the special
        SessionID bypassCacheSessionID(). The cached resource loader and memory cache
        act as if the memory cache is disabled if the resource has this special session id.

        Hook up ReplayController to override the memory cache setting during capture/replay.

        Test: http/tests/cache/bypass-memory-cache-after-reload.html

        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::requestResource):
        (WebCore::CachedResourceLoader::revalidateResource):
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::add):
        * page/Page.cpp:
        (WebCore::Page::sessionID):
        * page/SessionID.h:
        (WebCore::SessionID::bypassCacheSessionID):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        (WebCore::Settings::setUsesMemoryCache):
        (WebCore::Settings::usesMemoryCache):
        * replay/ReplayController.cpp:
        (WebCore::ReplayController::setForceDeterministicSettings):
        * replay/ReplayController.h:
        * testing/InternalSettings.cpp:
        (WebCore::InternalSettings::Backup::Backup):
        (WebCore::InternalSettings::Backup::restoreTo):
        (WebCore::InternalSettings::setUsesMemoryCache):
        * testing/InternalSettings.h:
        * testing/InternalSettings.idl:

2014-03-28  Radu Stavila  <stavila@adobe.com>

        In some situations, partial layouts of floating elements produce incorrect results.
        https://bugs.webkit.org/show_bug.cgi?id=122668

        Reviewed by David Hyatt.

        When performing partial layout of float elements and checking if other float
        elements are encountered, incorrect results were obtained by not checking
        the size of the existing floats vector.

        Test: fast/block/float/floats-in-clean-line-crash.html

        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::checkFloatsInCleanLine):

2014-03-28  Beth Dakin  <bdakin@apple.com>

        Build fix.

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paint):

2014-03-28  Jer Noble  <jer.noble@apple.com>

        [MSE] Implement support for SourceBuffer.remove()
        https://bugs.webkit.org/show_bug.cgi?id=121562

        Reviewed by Eric Carlson.

        Test: media/media-source/media-source-remove.html

        Add support for SourceBuffer.remove().

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::SourceBuffer): Initialize new member variables.
        (WebCore::SourceBuffer::setTimestampOffset): Update comments to match spec.
        (WebCore::SourceBuffer::remove): Added; start removeTimer.
        (WebCore::SourceBuffer::abortIfUpdating): Cancel removeTimer.
        (WebCore::SourceBuffer::removedFromMediaSource): Call abortIfUpdating().
        (WebCore::SourceBuffer::stop): Cancel removeTimer.
        (WebCore::SourceBuffer::removeCodedFrames): Added.
        (WebCore::SourceBuffer::removeTimerFired): Added.
        * Modules/mediasource/SourceBuffer.h:
        * Modules/mediasource/SourceBuffer.idl:

2014-03-27  Dean Jackson  <dino@apple.com>

        Support form controls that may need incremental redraw
        https://bugs.webkit.org/show_bug.cgi?id=130736

        Reviewed by Beth Dakin.

        There are some form controls that change appearance
        over time. Expand the ControlStates so that it can
        hold a little more information, including a reference
        to the native form control. This way the Theme implementation
        can repaint the existing native control if necessary. At
        least ThemeMac was reusing a single control for painting
        all instances before this change.

        Since ControlStates is now a class, pass it around by
        reference.

        The other major change is keeping a timer to trigger a
        repaint in RenderBox, which happens if Theme/RenderTheme
        update the ControlState to request one.

        * WebCore.xcodeproj/project.pbxproj: Add ControlStates.h.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * dom/Element.cpp:
        (WebCore::Element::setActive): States now within ControlStates.
        (WebCore::Element::setHovered): Ditto.
        * editing/FrameSelection.cpp:
        (WebCore::FrameSelection::focusedOrActiveStateChanged): Ditto.
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::disabledStateChanged): Ditto.
        (WebCore::HTMLFormControlElement::readOnlyAttributeChanged): Ditto.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setChecked): Ditto.
        (WebCore::HTMLInputElement::setIndeterminate): Ditto.
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::parseAttribute): Ditto.
        * platform/ControlStates.h: New file. Copied the old ControlStates enum,
        and added accessors to hold whether or not the state is dirty, and
        a reference to a platform control if necessary.
        * platform/Theme.h:
        (WebCore::Theme::selectionColor): Pass ControlStates pointer.
        (WebCore::Theme::paint): Ditto.
        (WebCore::Theme::inflateControlPaintRect): Ditto.
        * platform/ThemeTypes.h: Remove ControlStates enum.
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::applyEdjeStateFromForm): Pass ControlStates pointer.
        (WebCore::RenderThemeEfl::paintThemePart): Ditto.
        * platform/efl/RenderThemeEfl.h: Ditto.
        * platform/mac/ThemeMac.h: Ditto.
        * platform/mac/ThemeMac.mm:
        (-[WebCoreThemeView addSubview:]): New method to make sure we don't add CALayer backed
        views to the NSView we're using for rendering.
        (WebCore::updateStates): Use the private animated setters if necessary.
        (WebCore::convertControlStatesToThemeDrawState): Namespacing.
        (WebCore::configureCheckbox): Pass ControlStates pointer.
        (WebCore::createCheckboxCell): New helper since we're creating non-static cells.
        (WebCore::sharedCheckboxCell): The old static provider, renamed.
        (WebCore::paintCheckbox): Check if this paint was triggered by a state change
        or an animation. Update the ControlStates if we need to be repainted.
        (WebCore::radio): Parameter is now ControlStates*.
        (WebCore::paintRadio): Ditto.
        (WebCore::setUpButtonCell): Ditto.
        (WebCore::button): Ditto.
        (WebCore::paintButton): Ditto.
        (WebCore::paintStepper): Ditto.
        (WebCore::ThemeMac::ensuredView): Ditto.
        (WebCore::ThemeMac::inflateControlPaintRect): Ditto.
        (WebCore::ThemeMac::paint): Ditto.
        (WebCore::checkbox): Deleted.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::RenderBox): Initialize timer.
        (WebCore::RenderBox::~RenderBox): Stop any pending timers and delete the ControlState if necessary.
        (WebCore::RenderBox::paintBoxDecorations): Create a ControlStates if needed. Paint, and start the repaint
        timer if the ControlStates say we should.
        (WebCore::RenderBox::repaintTimerFired): Call repaint when the timer fires.
        * rendering/RenderBox.h: Add a timer for repainting.
        * rendering/RenderElement.cpp:
        (WebCore::controlStatesRendererMap): A static HashMap that associates renderers with ControlStates.
        (WebCore::RenderElement::hasControlStatesForRenderer):
        (WebCore::RenderElement::controlStatesForRenderer):
        (WebCore::RenderElement::removeControlStatesForRenderer):
        (WebCore::RenderElement::addControlStatesForRenderer):
        * rendering/RenderElement.h:
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::paint): Use a pointer to ControlStates.
        (WebCore::RenderTheme::adjustRepaintRect): Ditto.
        (WebCore::RenderTheme::stateChanged): Ditto.
        (WebCore::RenderTheme::updateControlStatesForRenderer): New method that just updates the states part of ControlStates.
        (WebCore::RenderTheme::extractControlStatesForRenderer): New method that calculates the state.
        (WebCore::RenderTheme::controlStatesForRenderer): Deleted.
        * rendering/RenderTheme.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::documentViewFor): Use a ControlStates pointer.

2014-03-28  Myles C. Maxfield  <mmaxfield@apple.com>

        Clear SVGInlineTextBox fragments when the text changes.
        https://bugs.webkit.org/show_bug.cgi?id=130879

        Reviewed by Darin Adler.

        Ported from Blink: https://src.chromium.org/viewvc/blink?revision=150456&view=revision

        This patch modifies SVGInlineTextBox::dirtyLineBoxes to clear all
        following text boxes when invoked. Typically this method is called
        when the underlying text string changes, and that change needs to
        be propagated to all the boxes that use the text beyond the point
        where the text is first modified.
        
        Also cleans up final function keywords for SVGRootInlineBox.

        Test: svg/custom/unicode-in-tspan-multi-svg-crash.html

        * rendering/InlineTextBox.h: Added (non-recursive) dirtyOwnLineBoxes() function
        (WebCore::InlineTextBox::dirtyOwnLineBoxes): Calls dirtyLineBoxes()
        * rendering/svg/SVGInlineTextBox.h: Added (non-recursive) dirtyOwnLineBoxes() function
        (WebCore::SVGInlineTextBox::dirtyOwnLineBoxes):
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::dirtyOwnLineBoxes): Non-recursive part of dirtyLineBoxes()
        (WebCore::SVGInlineTextBox::dirtyLineBoxes): Calls dirtyOwnLineBoxes() in a loop
        * rendering/svg/SVGRootInlineBox.h:

2014-03-28  Andreas Kling  <akling@apple.com>

        Rebaseline bindings tests.

2014-03-28  Michael Saboff  <msaboff@apple.com>

        Unreviewed, rolling r166248 back in.

        Turns out r166070 didn't cause a 2% performance loss in page load times

        Reverted changeset:

        Unreviewed, rolling out r166126.
        Rollout r166126 in prepartion to roll out prerequisite r166070

2014-03-26  Antonio Gomes  <a1.gomes@sisa.samsung.com>

        [Bindings] constants are always typed to 'int'
        https://bugs.webkit.org/show_bug.cgi?id=130775

        Reviewed by Darin Adler.

        Patch fixes a bug where all constant getter generated
        methods were returning 'integer' values due to static_cast.

        Compilers should be smarth enough to properly infer which
        jsNumber class construtor to call given a literal value.

        Patch also fixes a bug where values whose representation
        is bigger an integer maximum were overflowing. For instance,
        NodeFilter.SHOW_ALL (0xFFFFFFFF).

        Tests:
        Binding tests updated.
        Rebaselined fast/dom/constants.html

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::jsTestInterfaceIMPLEMENTSCONSTANT1):
        (WebCore::jsTestInterfaceIMPLEMENTSCONSTANT2):
        (WebCore::jsTestInterfaceSUPPLEMENTALCONSTANT1):
        (WebCore::jsTestInterfaceSUPPLEMENTALCONSTANT2):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjCONDITIONAL_CONST):
        (WebCore::jsTestObjCONST_VALUE_0):
        (WebCore::jsTestObjCONST_VALUE_1):
        (WebCore::jsTestObjCONST_VALUE_2):
        (WebCore::jsTestObjCONST_VALUE_4):
        (WebCore::jsTestObjCONST_VALUE_8):
        (WebCore::jsTestObjCONST_VALUE_9):
        (WebCore::jsTestObjCONST_VALUE_11):
        (WebCore::jsTestObjCONST_VALUE_12):
        (WebCore::jsTestObjCONST_VALUE_13):
        (WebCore::jsTestObjCONST_VALUE_14):
        (WebCore::jsTestObjCONST_JAVASCRIPT):
        (WebCore::jsTestObjReadonly):

2014-03-28  Myles C. Maxfield  <mmaxfield@apple.com>

        A TrailingObject's endpoint might get decremented twice
        https://bugs.webkit.org/show_bug.cgi?id=130874

        Reviewed by Darin Adler.

        There are two places where we might shave off a trailing space from the end
        of a line. We don't want to hit both codepaths for a single line.

        Fixes fast/block/update-midpoints-for-trailing-boxes-crash.html after r166245.

        * rendering/line/BreakingContextInlineHeaders.h:
        (WebCore::checkMidpoints):
        (WebCore::BreakingContext::handleEndOfLine):

2014-03-28  Andreas Kling  <akling@apple.com>

        Inline JSDOMWrapper subclasses' finishCreation().
        <https://webkit.org/b/130890>

        finishCreation() is really a no-op for JSDOMWrapper subclasses in
        release builds. None of the ancestor classes do anything but assert
        in their implementations.

        Generate the function inline, reducing binary size, and removing
        an unnecessary call from the JSFoo::create() helpers.

        Reviewed by Sam Weinig.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHeader):
        (GenerateImplementation):

2014-03-28  Jer Noble  <jer.noble@apple.com>

        [Mac] HLS streams will report an incorrect natural size.
        https://bugs.webkit.org/show_bug.cgi?id=130859

        Reviewed by Eric Carlson.

        Some HLS streams will report incorrect naturalSizes due to the asset's preferredTransform
        property not being  available at the same time as the track's natural size. Given that
        AVFoundation only allows one video track to be selected at a time, simply use the asset's
        presentation size, cached in m_cachedPresentation size in all cases.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::sizeChanged):

2014-03-28  Antti Koivisto  <antti@apple.com>

        Remove NodeListRootType flag
        https://bugs.webkit.org/show_bug.cgi?id=130896

        Reviewed by Anders Carlsson.

        This can be handled statically (except for the RadioNodeList case) removing
        a branch from NodeList traversal.

        * dom/ClassNodeList.h:
        * dom/Document.cpp:
        (WebCore::Document::registerNodeListForInvalidation):
        (WebCore::Document::unregisterNodeListForInvalidation):
        (WebCore::Document::registerNodeList): Deleted.
        (WebCore::Document::unregisterNodeList): Deleted.
        
            Mark document invalidation registered lists with a bit.
            Renamed for clarity.

        * dom/Document.h:
        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::LiveNodeList):
        (WebCore::LiveNodeList::rootNode):
        
            Base class version that invokes virtual isRootedAtDocument. It is needed to support 
            LiveNodeList::namedItem.

        * dom/LiveNodeList.h:
        (WebCore::LiveNodeList::isRegisteredForInvalidationAtDocument):
        (WebCore::LiveNodeList::setRegisteredForInvalidationAtDocument):
        (WebCore::LiveNodeList::document):
        (WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
        (WebCore::CachedLiveNodeList<NodeListType>::~CachedLiveNodeList):
        (WebCore::CachedLiveNodeList<NodeListType>::rootNode):
        
            Call isRootedAtDocument on the final leaf type. Except for RadioNodeList this
            resolves statically.

        (WebCore::CachedLiveNodeList<NodeListType>::willValidateIndexCache):
        (WebCore::CachedLiveNodeList<NodeListType>::invalidateCache):
        (WebCore::LiveNodeList::isRootedAtDocument): Deleted.
        (WebCore::LiveNodeList::rootType): Deleted.
        (WebCore::LiveNodeList::rootNode): Deleted.
        * dom/NameNodeList.h:
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::adoptDocument):
        * dom/TagNodeList.h:
        * html/HTMLCollection.cpp:
        (WebCore::rootTypeFromCollectionType):
        * html/HTMLCollection.h:
        (WebCore::HTMLCollection::isRootedAtDocument):
        (WebCore::HTMLCollection::rootType):
        
            HTMLCollections still needs the flag.

        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::LabelsNodeList):
        * html/LabelsNodeList.h:
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::RadioNodeList):
        * html/RadioNodeList.h:

2014-03-28  Mario Sanchez Prada  <mario.prada@samsung.com>

        [GTK] Geoclue2 providers won't work after reloading
        https://bugs.webkit.org/show_bug.cgi?id=130898

        Reviewed by Martin Robinson.

        Don't reuse the Geoclue2 client proxy between different calls to
        startPosition(), and create a new client proxy each time instead.

        * platform/geoclue/GeolocationProviderGeoclue2.cpp:
        (GeolocationProviderGeoclue::startUpdating): Don't reuse the
        client proxy, by always calling geoclue_manager_call_get_client().
        (GeolocationProviderGeoclue::stopUpdating): Disconnect from the
        'location-updated' signal and dispose the client proxy.

2014-03-28  Diego Pino Garcia  <dpino@igalia.com>

        [GTK] Too many redirects visiting www.globalforestwatch.org
        https://bugs.webkit.org/show_bug.cgi?id=129681

        Reviewed by Martin Robinson.

        * platform/gtk/UserAgentGtk.cpp:
        (WebCore::standardUserAgent): Append Safari version to UserAgent
        string.

2014-03-28  Michael Saboff  <msaboff@apple.com>

        Unreviewed, rolling r166249 back in.

        Turns out r166070 didn't cause a 2% performance loss in page load times

        Reverted changeset:

        Unreviewed, rolling out r166070.
        Rollout r166070 due to 2% performance loss in page load times

2014-03-28  James Craig  <jcraig@apple.com>

        Web Inspector: Copy/paste error. EventListener block in DOM.json uses description from Node.
        https://bugs.webkit.org/show_bug.cgi?id=130158

        Reviewed by Timothy Hatcher.

        * inspector/protocol/DOM.json: Fixed a copy/paste annoyance.

2014-03-27  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: expose selectedChildNodeIds of list boxes, tree controls, etc., and reconcile UI with childNodeIds
        https://bugs.webkit.org/show_bug.cgi?id=130827

        Reviewed by Timothy Hatcher.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        Support for selectedChildNodeIds in inspector-protocol: DOM.getAccessibilityPropertiesForNode.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/protocol/DOM.json:

2014-03-27  Brent Fulgham  <bfulgham@apple.com>

        Specify Shadow DOM Pseudo IDs in Media Element Constructors
        https://bugs.webkit.org/show_bug.cgi?id=130882

        Reviewed by Eric Carlson.

        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlPanelElement::MediaControlPanelElement): Call setPseudoId in constructor.
        (WebCore::MediaControlPanelEnclosureElement::MediaControlPanelEnclosureElement): Ditto.
        (WebCore::MediaControlTimelineContainerElement::MediaControlTimelineContainerElement): Ditto.
        (WebCore::MediaControlVolumeSliderContainerElement::MediaControlVolumeSliderContainerElement): Ditto.
        (WebCore::MediaControlStatusDisplayElement::MediaControlStatusDisplayElement): Ditto.
        (WebCore::MediaControlPanelMuteButtonElement::MediaControlPanelMuteButtonElement): Ditto.
        (WebCore::MediaControlVolumeSliderMuteButtonElement::MediaControlVolumeSliderMuteButtonElement): Ditto.
        (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement): Ditto.
        (WebCore::MediaControlOverlayPlayButtonElement::MediaControlOverlayPlayButtonElement): Ditto.
        (WebCore::MediaControlSeekForwardButtonElement::MediaControlSeekForwardButtonElement): Ditto.
        (WebCore::MediaControlSeekBackButtonElement::MediaControlSeekBackButtonElement): Ditto.
        (WebCore::MediaControlRewindButtonElement::MediaControlRewindButtonElement): Ditto.
        (WebCore::MediaControlReturnToRealtimeButtonElement::MediaControlReturnToRealtimeButtonElement): Ditto.
        (WebCore::MediaControlToggleClosedCaptionsButtonElement::MediaControlToggleClosedCaptionsButtonElement): Ditto.
        (WebCore::MediaControlClosedCaptionsContainerElement::MediaControlClosedCaptionsContainerElement): Ditto.
        (WebCore::MediaControlClosedCaptionsTrackListElement::MediaControlClosedCaptionsTrackListElement): Ditto.
        (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Ditto.
        (WebCore::MediaControlPanelVolumeSliderElement::MediaControlPanelVolumeSliderElement): Ditto.
        (WebCore::MediaControlFullscreenVolumeSliderElement::MediaControlFullscreenVolumeSliderElement): Ditto.
        (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement): Ditto.
        (WebCore::MediaControlFullscreenVolumeMinButtonElement::MediaControlFullscreenVolumeMinButtonElement): Ditto.
        (WebCore::MediaControlFullscreenVolumeMaxButtonElement::MediaControlFullscreenVolumeMaxButtonElement): Ditto.
        (WebCore::MediaControlTimeRemainingDisplayElement::MediaControlTimeRemainingDisplayElement): Ditto.
        (WebCore::MediaControlCurrentTimeDisplayElement::MediaControlCurrentTimeDisplayElement): Ditto.
        (WebCore::MediaControlTextTrackContainerElement::MediaControlTextTrackContainerElement): Ditto.

2014-03-27  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Adjust the tile coverage on the scrollview's edges
        https://bugs.webkit.org/show_bug.cgi?id=130884

        Reviewed by Dan Bernstein.

        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::computeCoverageRect):
        Pull back the future rect inside the contentRect if it goes outside.
        There is no point in retiling for rubberbanding and the extra tiles should be always be
        on the opposite side to the edges.

2014-03-27  Joseph Pecoraro  <pecoraro@apple.com>

        Remove unused LocaleMac::create method
        https://bugs.webkit.org/show_bug.cgi?id=130870

        Reviewed by Andreas Kling.

        * platform/text/mac/LocaleMac.h:
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::create): Deleted.
        (WebCore::LocaleMac::shortDateFormatter): Deleted.

2014-03-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Clean up unneeded "mutable" keyword
        https://bugs.webkit.org/show_bug.cgi?id=130832

        Reviewed by Andreas Kling.

        As r166350, this patch cleans up unneeded "mutable" keywords.
        Additionally, m_validatedSelectionCache is removed because it is not used anywhere else.

        * css/CSSFontFaceRule.h:
        * css/CSSStyleRule.h:
        * editing/FrameSelection.h:

2014-03-27  Enrica Casucci  <enrica@apple.com>

        Add support for AirPlay picker in WK2 for iOS.
        https://bugs.webkit.org/show_bug.cgi?id=130855
        <rdar://problem/15349859>

        Reviewed by Eric Carlson, Joseph Pecoraro and Benjamin Poulain.

        Adds support in HTMLMediaSession to display the airplay picker
        and to monitor presence of available wireless targets.

        * html/HTMLMediaSession.cpp:
        (WebCore::HTMLMediaSession::showPlaybackTargetPicker):
        (WebCore::HTMLMediaSession::hasWirelessPlaybackTargets):
        (WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners):
        * loader/EmptyClients.h:
        * page/ChromeClient.h:
        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::wirelessRoutesAvailableChanged):
        * platform/audio/MediaSessionManager.h:
        (WebCore::MediaSessionManager::hasWirelessTargetsAvailable):
        (WebCore::MediaSessionManager::startMonitoringAirPlayRoutes):
        (WebCore::MediaSessionManager::stopMonitoringAirPlayRoutes):
        * platform/audio/ios/MediaSessionManagerIOS.h:
        * platform/audio/ios/MediaSessionManagerIOS.mm:
        (WebCore::MediaSessionManageriOS::hasWirelessTargetsAvailable):
        (WebCore::MediaSessionManageriOS::startMonitoringAirPlayRoutes):
        (WebCore::MediaSessionManageriOS::stopMonitoringAirPlayRoutes):
        (-[WebMediaSessionHelper initWithCallback:]):
        (-[WebMediaSessionHelper hasWirelessTargetsAvailable]):
        (-[WebMediaSessionHelper startMonitoringAirPlayRoutes]):
        (-[WebMediaSessionHelper stopMonitoringAirPlayRoutes]):
        (-[WebMediaSessionHelper wirelessRoutesAvailableDidChange:]):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessVideoPlaybackDisabled):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessVideoPlaybackDisabled):

2014-03-27  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes][css clip-path] rounded corner calculation for box shapes is wrong
        https://bugs.webkit.org/show_bug.cgi?id=127982

        Reviewed by Simon Fraser.

        Calculate rounded corners for box shapes as defined in the CSS Shapes
        spec.

        Tests: css3/masking/clip-path-border-radius-border-box-000.html
               css3/masking/clip-path-border-radius-content-box-000.html
               css3/masking/clip-path-border-radius-content-box-001.html
               css3/masking/clip-path-border-radius-padding-box-000.html
               css3/masking/clip-path-border-radius-padding-box-001.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-border-box-000.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-border-box-001.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-border-box-002.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-000.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-001.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-002.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-content-box-003.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-000.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-001.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-002.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-003.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-margin-box-004.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-000.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-001.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-002.html
               fast/shapes/shape-outside-floats/shape-outside-floats-border-radius-padding-box-003.html

        * platform/graphics/RoundedRect.h:
        (WebCore::RoundedRect::Radii::transposedRadii): Transpose radii for
            vertical writing modes.
        (WebCore::RoundedRect::moveBy): Add method for use with clip path.
        (WebCore::RoundedRect::transposedRect): Transpose rect for vertical
            writing modes.
        * rendering/RenderBox.h:
        (WebCore::RenderBox::marginBoxRect): Return the margin box rect for
            the RenderBox.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setupClipPath): Call the new function for the
            rounded corner calculation.
        * rendering/shapes/ShapeInfo.cpp:
        (WebCore::ShapeInfo<RenderType>::computedShape): Call the new function
            for the rounded corner calculation.
        * rendering/shapes/BoxShape.cpp:
        (WebCore::adjustRadiusForMarginBoxShape): Helper function for
            computeRoundedRectForLayoutBoxShape.
        (WebCore::computeMarginBoxShapeRadius): Ditto.
        (WebCore::computeMarginBoxShapeRadii): Ditto.
        (WebCore::computeRoundedRectForBoxShape): Utility function to do the
            rounded corner calculation.
        * rendering/shapes/BoxShape.h: Add new function.
        * rendering/style/RenderStyle.h:
        (WebCore::RenderStyle::getRoundedInnerBorderFor): Add default argument
            values.

2014-03-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166364.
        https://bugs.webkit.org/show_bug.cgi?id=130872

        Caused a test assertion (Requested by smfr on #webkit).

        Reverted changeset:

        "Operator stretching: expose a math data API"
        https://bugs.webkit.org/show_bug.cgi?id=130572
        http://trac.webkit.org/changeset/166364

2014-03-27  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Compute a good exposed rect when scaling WKContentView
        https://bugs.webkit.org/show_bug.cgi?id=130761

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * platform/ScrollView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::setScrollVelocity):
        (WebCore::ScrollView::computeCoverageRect):
        While scaling in, do not add margins tiles. When scaling out, add 1 margin tile size
        all around.

2014-03-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166360.
        https://bugs.webkit.org/show_bug.cgi?id=130869

        Seems to have broken PLT (Requested by ap on #webkit).

        Reverted changeset:

        "Connection::dispatchOneMessage() can be re-entered while
        handling Cmd-key menu"
        https://bugs.webkit.org/show_bug.cgi?id=130767
        http://trac.webkit.org/changeset/166360

2014-03-27  Antti Koivisto  <antti@apple.com>

        Remove LiveNodeList::Type
        https://bugs.webkit.org/show_bug.cgi?id=130866

        Reviewed by Andreas Kling.

        We don't need dynamic type information anymore.

        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::ClassNodeList):
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::getElementsByTagName):
        (WebCore::ContainerNode::getElementsByName):
        (WebCore::ContainerNode::getElementsByClassName):
        (WebCore::ContainerNode::radioNodeList):
        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::LiveNodeList):
        * dom/LiveNodeList.h:
        (WebCore::LiveNodeList::invalidationType):
        (WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
        (WebCore::LiveNodeList::type): Deleted.
        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::NameNodeList):
        (WebCore::NameNodeList::nodeMatches): Deleted.
        * dom/NameNodeList.h:
        (WebCore::NameNodeList::nodeMatches):
        * dom/NodeRareData.h:
        (WebCore::NodeListTypeIdentifier<ClassNodeList>::value):
        (WebCore::NodeListTypeIdentifier<NameNodeList>::value):
        (WebCore::NodeListTypeIdentifier<TagNodeList>::value):
        (WebCore::NodeListTypeIdentifier<HTMLTagNodeList>::value):
        (WebCore::NodeListTypeIdentifier<RadioNodeList>::value):
        (WebCore::NodeListTypeIdentifier<LabelsNodeList>::value):
        
            Get unique id from type for key generation purposes only.

        (WebCore::NodeListsNodeData::addCacheWithAtomicName):
        (WebCore::NodeListsNodeData::addCacheWithName):
        (WebCore::NodeListsNodeData::removeCacheWithAtomicName):
        (WebCore::NodeListsNodeData::removeCacheWithName):
        (WebCore::NodeListsNodeData::namedNodeListKey):
        * dom/TagNodeList.cpp:
        (WebCore::TagNodeList::TagNodeList):
        (WebCore::HTMLTagNodeList::HTMLTagNodeList):
        * dom/TagNodeList.h:
        * html/LabelableElement.cpp:
        (WebCore::LabelableElement::labels):
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::LabelsNodeList):
        * html/LabelsNodeList.h:
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::RadioNodeList):
        * html/RadioNodeList.h:

2014-03-27  Simon Fraser  <simon.fraser@apple.com>

        Fix crash when RenderView is cleared inside of frame flattening layout
        https://bugs.webkit.org/show_bug.cgi?id=130864

        Reviewed by Dan Bernstein.
        
        Navigating on http://wallstcheatsheet.com pages on iOS in WebKit1 would
        sometimes crash when, inside the inChildFrameLayoutWithFrameFlattening clause,
        our frame's RenderView would be null after doing a layout from the root frame,
        possibly also when WebCore was being re-entered from another thread.
        
        Add a null check to fix this.
        
        Crash was timing-dependent and hard to test.

        * page/FrameView.cpp:
        (WebCore::FrameView::layout):

2014-03-27  Antti Koivisto  <antti@apple.com>

        Remove some unnecessary branches from LiveNodeList traversal
        https://bugs.webkit.org/show_bug.cgi?id=130854

        Reviewed by Andreas Kling.

        Compile different traversal code paths for all NodeList subclasses.

        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::ClassNodeList):
        (WebCore::ClassNodeList::~ClassNodeList):
        (WebCore::ClassNodeList::nodeMatches): Deleted.
        * dom/ClassNodeList.h:
        (WebCore::ClassNodeList::nodeMatches):
        (WebCore::ClassNodeList::nodeMatchesInlined): Deleted.
        
            Remove separate nodeMatchesInlined functions. 
            We now rely on exact types and marking classes final.

        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::LiveNodeList):
        (WebCore::LiveNodeList::~LiveNodeList):
        (WebCore::LiveNodeList::namedItem):
        (WebCore::LiveNodeList::rootNode): Deleted.
        (WebCore::isMatchingElement): Deleted.
        (WebCore::firstMatchingElement): Deleted.
        (WebCore::lastMatchingElement): Deleted.
        (WebCore::nextMatchingElement): Deleted.
        (WebCore::previousMatchingElement): Deleted.
        (WebCore::traverseMatchingElementsForward): Deleted.
        (WebCore::traverseMatchingElementsBackward): Deleted.
        (WebCore::LiveNodeList::collectionFirst): Deleted.
        (WebCore::LiveNodeList::collectionLast): Deleted.
        (WebCore::LiveNodeList::collectionTraverseForward): Deleted.
        (WebCore::LiveNodeList::collectionTraverseBackward): Deleted.
        (WebCore::LiveNodeList::length): Deleted.
        (WebCore::LiveNodeList::item): Deleted.
        (WebCore::LiveNodeList::memoryCost): Deleted.
        (WebCore::LiveNodeList::invalidateCache): Deleted.
        * dom/LiveNodeList.h:
        (WebCore::LiveNodeList::invalidateCacheForAttribute):
        (WebCore::CachedLiveNodeList::collectionCanTraverseBackward):
        (WebCore::LiveNodeList::rootNode):
        (WebCore::CachedLiveNodeList<NodeListType>::CachedLiveNodeList):
        
            Add CachedLiveNodeList<NodeListType> utility type that interfaces with CollectionIndexCache.
            It is the base class for all concrete LiveNodeLists.

        (WebCore::CachedLiveNodeList<NodeListType>::~CachedLiveNodeList):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionFirst):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionLast):
        (WebCore::nextMatchingElement):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseForward):
        (WebCore::previousMatchingElement):
        (WebCore::CachedLiveNodeList<NodeListType>::collectionTraverseBackward):
        (WebCore::CachedLiveNodeList<NodeListType>::willValidateIndexCache):
        (WebCore::CachedLiveNodeList<NodeListType>::invalidateCache):
        (WebCore::CachedLiveNodeList<NodeListType>::length):
        (WebCore::CachedLiveNodeList<NodeListType>::item):
        (WebCore::CachedLiveNodeList<NodeListType>::memoryCost):
        
            Templated code moves to header.

        (WebCore::LiveNodeList::LiveNodeList): Deleted.
        (WebCore::LiveNodeList::~LiveNodeList): Deleted.
        (WebCore::LiveNodeList::invalidateCache): Deleted.
        (WebCore::LiveNodeList::collectionCanTraverseBackward): Deleted.
        (WebCore::LiveNodeList::willValidateIndexCache): Deleted.
        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::NameNodeList):
        * dom/NameNodeList.h:
        * dom/Node.cpp:
        (WebCore::Document::invalidateNodeListAndCollectionCaches):
        (WebCore::NodeListsNodeData::invalidateCaches):
        * dom/TagNodeList.cpp:
        (WebCore::TagNodeList::TagNodeList):
        (WebCore::HTMLTagNodeList::HTMLTagNodeList):
        (WebCore::HTMLTagNodeList::~HTMLTagNodeList):
        (WebCore::TagNodeList::nodeMatches): Deleted.
        (WebCore::HTMLTagNodeList::nodeMatches): Deleted.
        * dom/TagNodeList.h:
        (WebCore::TagNodeList::nodeMatches):
        (WebCore::HTMLTagNodeList::nodeMatches):
        (WebCore::TagNodeList::create): Deleted.
        (WebCore::HTMLTagNodeList::nodeMatchesInlined): Deleted.
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::LabelsNodeList):
        * html/LabelsNodeList.h:
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::RadioNodeList):
        * html/RadioNodeList.h:

2014-03-27  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Remove comment from Filter.h
        https://bugs.webkit.org/show_bug.cgi?id=130848

        Reviewed by Simon Fraser.

        Exploring the use of consts on applyScale() methods didn't yield
        good results.

        No new tests, no change on behavior.

        * platform/graphics/filters/Filter.h:

2014-03-27  Frédéric Wang  <fred.wang@free.fr>

        Operator stretching: expose a math data API
        https://bugs.webkit.org/show_bug.cgi?id=130572

        Reviewed by Chris Fleizach.

        We expose a new SimpleFontData API to give access to the data from the
        OpenType MATH table using a font cache. The class OpenTypeMathData will
        be implemented in bug 130324. On Darwin platform, we also implement the
        missing FontPlatformData::openTypeTable function which will be necessary
        to load the OpenType MATH table. The changes are intended to be used
        for MathML operator stretching (bug 130322) so tests are not added yet.

        * CMakeLists.txt: add new OpenTypeMathData files.
        * WebCore.vcxproj/WebCore.vcxproj: ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
        * WebCore.xcodeproj/project.pbxproj: ditto.
        * platform/graphics/FontCache.cpp: We add a FontCache::getMathData function to implement a cache for the math data.
        We make the math and vertical data share the same key for the cache.
        (WebCore::fontMathDataCacheInstance):
        (WebCore::FontCache::getMathData):
        (WebCore::fontVerticalDataCacheInstance):
        * platform/graphics/FontCache.h: We declare FontCache::getMathData and FontFileKey on all platforms.
        * platform/graphics/FontPlatformData.cpp:
        (WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
        * platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
        * platform/graphics/SimpleFontData.cpp: We initialize m_mathData from the font cache.
        (WebCore::SimpleFontData::SimpleFontData):
        * platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
        * platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
        (WebCore::OpenTypeMathData::OpenTypeMathData):
        * platform/graphics/opentype/OpenTypeMathData.h: Added.
        (WebCore::OpenTypeMathData::create):
        (WebCore::OpenTypeMathData::hasMathData):

2014-03-27  Brent Fulgham  <bfulgham@apple.com>

        Fix a crash caused by track insertion after load()
        https://bugs.webkit.org/show_bug.cgi?id=130777

        Reviewed by Eric Carlson.

        Test: media/track/track-insert-after-load-crash.html

        Based on the Blink change (patch by acolwell@chromium.org):
        https://codereview.chromium.org/211373009/

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute): Remove stale LoadMediaResource flag after explicit load.

2014-03-27  Alexey Proskuryakov  <ap@apple.com>

        Connection::dispatchOneMessage() can be re-entered while handling Cmd-key menu
        equivalents, ASSERT(!_data->_keyDownEventBeingResent)
        https://bugs.webkit.org/show_bug.cgi?id=130767
        <rdar://problem/16307487>

        Added a wrapper for RunLoop::initializeMainThread that also adds modal run loop
        mode to it on Mac.

        * CMakeLists.txt:
        * WebCore.exp.in:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/MainRunLoop.cpp: Added.
        (WebCore::initializeMainRunLoop):
        * platform/MainRunLoop.h: Added.
        * platform/mac/MainRunLoop.mm: Added.
        (WebCore::initializeMainRunLoop):

2014-03-27  Krzysztof Czech  <k.czech@samsung.com>

        AX: Returns const reference to static string.
        https://bugs.webkit.org/show_bug.cgi?id=130835

        Reviewed by Mario Sanchez Prada.

        Avoiding some unnecessary copies by returning const reference to static string.

        No new tests. No behaviour change.

        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaControl::controlTypeName):
        (WebCore::AccessibilityMediaControlsContainer::elementTypeName):
        * accessibility/AccessibilityMediaControls.h:

2014-03-27  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Rename inNamedFlow flag to isNamedFlowContentNode flag
        https://bugs.webkit.org/show_bug.cgi?id=130731

        Reviewed by Andrei Bucur.

        Currently, the inNamedFlow flag in Node class tells if a node is a content node, one that has a style with flow-into.
        Since it is used only for those nodes and not propagated through hierarchy, i want to renamed it to a more meaningful name.
        No new functionality, no new tests.

        * dom/ContainerNode.cpp:
        (WebCore::destroyRenderTreeIfNeeded):
        * dom/Element.cpp:
        (WebCore::Element::~Element):
        (WebCore::Element::unregisterNamedFlowContentElement):
        * dom/Node.h:
        (WebCore::Node::isNamedFlowContentNode):
        (WebCore::Node::setIsNamedFlowContentNode):
        (WebCore::Node::clearIsNamedFlowContentNode):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::clearContentElements):
        (WebCore::RenderNamedFlowThread::registerNamedFlowContentElement):
        (WebCore::RenderNamedFlowThread::unregisterNamedFlowContentElement):
        (WebCore::nextNodeInsideContentElement):
        * style/StyleResolveTree.cpp:
        (WebCore::Style::attachChildren):
        (WebCore::Style::resolveLocal):

2014-03-27  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Crash when cloning a region child with a content node child
        https://bugs.webkit.org/show_bug.cgi?id=129811

        Reviewed by David Hyatt.

        Collecting the children of a region in another named flow will be supported
        again in the future and it will be revisited when we will implement the content
        keyword: http://dev.w3.org/csswg/css-regions-1/#the-flow-into-property.
        Remove the support for now as it introduces unnecessary complexity in the code
        and potential wrong behavior.

        Test: fast/regions/region-content-node-child-clone-crash.html

        * dom/Element.cpp:
        (WebCore::Element::shouldMoveToFlowThread):
        (WebCore::Element::clearStyleDerivedDataBeforeDetachingRenderer):
        * dom/Element.h:
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::ElementRareData):
        * rendering/FlowThreadController.cpp:
        * rendering/FlowThreadController.h:
        * style/StyleResolveTree.cpp:
        (WebCore::Style::moveToFlowThreadIfNeeded):
        (WebCore::Style::createRendererIfNeeded):

2014-03-27  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Remove unneeded mutable keyword in some member variables 
        https://bugs.webkit.org/show_bug.cgi?id=130813

        Reviewed by Andreas Kling.

        Some member variables have mutable keyword though they don't used by const function.
        This patch removes them. 

        No new tests, no behavior changes. Just clean up.

        * storage/StorageAreaSync.h:
        * svg/animation/SVGSMILElement.h:

2014-03-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166296 and r166331.
        https://bugs.webkit.org/show_bug.cgi?id=130822

        caused some crashes and frequent assertion failures, and the
        fix is going to take a little while (Requested by thorton on
        #webkit).

        Reverted changesets:

        "[iOS WebKit2] Flush all surfaces after painting into all of
        them, instead of after painting into each one"
        https://bugs.webkit.org/show_bug.cgi?id=130768
        http://trac.webkit.org/changeset/166296

        "Assertion failure in RemoteLayerBackingStore::flush"
        https://bugs.webkit.org/show_bug.cgi?id=130810
        http://trac.webkit.org/changeset/166331

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        Fix failing scrolling tests by reverting to previous behavior where
        the scrolling geometry for the main frame scrolling node was only
        updated from frameViewLayoutUpdated() and no-where else.

        * WebCore.exp.in:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
        * page/scrolling/AsyncScrollingCoordinator.h:
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::updateScrollingNode):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): Deleted.

2014-03-26  Ryosuke Niwa  <rniwa@webkit.org>

        HTMLConverter::_processText is slow because it walks up ancestor elements
        https://bugs.webkit.org/show_bug.cgi?id=130820

        Reviewed by Sam Weinig.

        Avoid walking up the tree from each text node by caching the aggregated attributed strings for each element.
        Also compute the attributed strings top-down to avoid calling mutableCopy in every iteration. 

        This reduces the runtime of Interactive/CopyAll.html from 15s to 13s (15%).

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_attributesForElement):
        (HTMLConverter::attributesForElement):
        (HTMLConverter::aggregatedAttributesForAncestors):
        (HTMLConverter::_processText):

2014-03-26  Sam Weinig  <sam@webkit.org>

        Fix iOS build.

        * editing/cocoa/HTMLConverter.mm:
        (_font):

2014-03-26  Ryosuke Niwa  <rniwa@webkit.org>

        Make _processText and _traverseNode in HTMLConverter more efficient
        https://bugs.webkit.org/show_bug.cgi?id=130769

        Reviewed by Sam Weinig.

        Rewrote a bunch of code in C++ and avoided creating wrappers.
        This reduces the runtime of Interactive/CopyAll.html from ~16.5s to 15s.

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverterCaches::isAncestorsOfStartToBeConverted):
        (HTMLConverter::HTMLConverter):
        (HTMLConverter::~HTMLConverter):
        (HTMLConverter::_processElement):
        (HTMLConverter::_processText):
        (HTMLConverter::_traverseNode):
        (HTMLConverter::_traverseFooterNode):
        (HTMLConverterCaches::cacheAncestorsOfStartToBeConverted):
        (HTMLConverter::_loadFromDOMRange):

2014-03-26  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        FEGaussianBlur: unify and const-ify calculateKernelSize
        https://bugs.webkit.org/show_bug.cgi?id=130779

        Some methods can benefit of using const refs as also make sense to
        unify the interface (i.e. parameters) in calculateKernelSize/Unscaled.

        FilterEffect::filter() will now return a reference, which helps since
        its descendants were accessing methods into the pointer without testing
        for it.

        Reviewed by Simon Fraser.

        No new tests, no changes on behavior.

        * platform/graphics/filters/FEDisplacementMap.cpp:
        (WebCore::FEDisplacementMap::platformApplySoftware):
        * platform/graphics/filters/FEDropShadow.cpp:
        (WebCore::FEDropShadow::determineAbsolutePaintRect):
        (WebCore::FEDropShadow::platformApplySoftware):
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::calculateUnscaledKernelSize):
        (WebCore::FEGaussianBlur::calculateKernelSize):
        (WebCore::FEGaussianBlur::determineAbsolutePaintRect):
        (WebCore::FEGaussianBlur::platformApplySoftware):
        * platform/graphics/filters/FEGaussianBlur.h:
        * platform/graphics/filters/FEMorphology.cpp:
        (WebCore::FEMorphology::determineAbsolutePaintRect):
        (WebCore::FEMorphology::platformApplySoftware):
        * platform/graphics/filters/FEOffset.cpp:
        (WebCore::FEOffset::determineAbsolutePaintRect):
        (WebCore::FEOffset::platformApplySoftware):
        * platform/graphics/filters/FETile.cpp:
        (WebCore::FETile::platformApplySoftware):
        * platform/graphics/filters/FETurbulence.cpp:
        (WebCore::FETurbulence::fillRegion):
        * platform/graphics/filters/Filter.h:
        (WebCore::Filter::applyHorizontalScale):
        (WebCore::Filter::applyVerticalScale):
        * platform/graphics/filters/FilterEffect.h:
        (WebCore::FilterEffect::filter):
        * platform/graphics/filters/SourceAlpha.cpp:
        (WebCore::SourceAlpha::determineAbsolutePaintRect):
        (WebCore::SourceAlpha::platformApplySoftware):
        * platform/graphics/filters/SourceGraphic.cpp:
        (WebCore::SourceGraphic::determineAbsolutePaintRect):
        (WebCore::SourceGraphic::platformApplySoftware):
        * rendering/svg/RenderSVGResourceFilterPrimitive.cpp:
        (WebCore::RenderSVGResourceFilterPrimitive::determineFilterPrimitiveSubregion):
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::determineAbsolutePaintRect):
        (WebCore::FEImage::platformApplySoftware):

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        Make sure childContainmentLayer is parented
        https://bugs.webkit.org/show_bug.cgi?id=130808

        Reviewed by Tim Horton.

        m_childContainmentLayer was never parented if the page
        created no other compositing layers, which left a dangling
        GraphicsLayer which in turn confused UI-side compositing a little.
        Fix by always parenting this layer.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::createPrimaryGraphicsLayer):

2014-03-26  Brian Burg  <bburg@apple.com>

        Web Replay: disable page cache during capture/replay
        https://bugs.webkit.org/show_bug.cgi?id=130672

        Reviewed by Timothy Hatcher.

        Save, set, and restore page cache settings at the correct times.

        No new tests. If this code fails, then the tests for network replay will fail.

        * replay/ReplayController.cpp:
        (WebCore::ReplayController::setForceDeterministicSettings): Added.
        (WebCore::ReplayController::startCapturing):
        (WebCore::ReplayController::stopCapturing):
        (WebCore::ReplayController::cancelPlayback):
        (WebCore::ReplayController::replayToPosition):
        * replay/ReplayController.h:

2014-03-26  Sam Weinig  <sam@webkit.org>

        Convert more of HTMLConverter to C++
        https://bugs.webkit.org/show_bug.cgi?id=130811

        Reviewed by Anders Carlsson.

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::HTMLConverter):
        (HTMLConverter::~HTMLConverter):
        (HTMLConverter::_blockLevelElementForNode):
        (HTMLConverter::_colorForElement):
        (HTMLConverter::_computedAttributesForElement):
        (HTMLConverter::_attributesForElement):
        (HTMLConverter::_fillInBlock):
        (HTMLConverter::_enterElement):
        (HTMLConverter::_addTableForElement):
        (HTMLConverter::_addTableCellForElement):
        (HTMLConverter::_processElement):
        (HTMLConverter::_exitElement):
        (HTMLConverter::_getFloat): Deleted.
        (HTMLConverter::_elementIsBlockLevel): Deleted.
        (HTMLConverter::_elementHasOwnBackgroundColor): Deleted.
        (HTMLConverter::_colorForNode): Deleted.

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        Hook up -webkit-overflow-scrolling:touch for iOS WK2
        https://bugs.webkit.org/show_bug.cgi?id=130809

        Reviewed by Tim Horton.

        Get -webkit-overflow-scrolling: touch working for iOS WK2.
        
        * WebCore.exp.in:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::updateScrollingNode):
        Send in ScrollingGeometry when we update scrolling nodes.
        * page/scrolling/AsyncScrollingCoordinator.h:
        * page/scrolling/ScrollingCoordinator.h:
        (WebCore::ScrollingCoordinator::updateScrollingNode):
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
        Need to get to the scrolling layer in a subclass.
        (WebCore::ScrollingTreeScrollingNodeIOS::scrollLayer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hasAcceleratedTouchScrolling): Remove code
        that temporarily disabled touch-scrolling.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer): When we
        update scrolling nodes, send in the right scrolling geometry.

2014-03-26  Timothy Hatcher  <timothy@apple.com>

        Modernize the loops in InspectorPageAgent.cpp.

        Also moves the check for hiddenFromInspector to a lower level.
        This hides hidden resources from more places.

        https://bugs.webkit.org/show_bug.cgi?id=130803

        Reviewed by Joseph Pecoraro.

        * inspector/InspectorPageAgent.cpp:
        (WebCore::buildArrayForCookies):
        (WebCore::cachedResourcesForFrame):
        (WebCore::allResourcesURLsForFrame):
        (WebCore::InspectorPageAgent::getCookies):
        (WebCore::InspectorPageAgent::searchInResources):
        (WebCore::InspectorPageAgent::didClearWindowObjectInWorld):
        (WebCore::InspectorPageAgent::loaderDetachedFromFrame):
        (WebCore::InspectorPageAgent::buildObjectForFrameTree):

2014-03-26  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        Add platform implementation for RTCOfferAnswerOptions and RTCOfferOptions
        https://bugs.webkit.org/show_bug.cgi?id=130689

        Reviewed by Eric Carlson.

        RTCOfferAnswerOptions and RTCOfferOptions objects were being passed to platform class, causing a layer
        violation.

        * Modules/mediastream/RTCOfferAnswerOptions.cpp:
        (WebCore::RTCOfferAnswerOptions::initialize):
        (WebCore::RTCOfferOptions::initialize):
        * Modules/mediastream/RTCOfferAnswerOptions.h:
        (WebCore::RTCOfferAnswerOptions::requestIdentity):
        (WebCore::RTCOfferAnswerOptions::privateOfferAnswerOptions):
        (WebCore::RTCOfferAnswerOptions::RTCOfferAnswerOptions):
        (WebCore::RTCOfferOptions::offerToReceiveVideo):
        (WebCore::RTCOfferOptions::offerToReceiveAudio):
        (WebCore::RTCOfferOptions::voiceActivityDetection):
        (WebCore::RTCOfferOptions::iceRestart):
        (WebCore::RTCOfferOptions::privateOfferOptions):
        (WebCore::RTCOfferOptions::RTCOfferOptions):
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::createOffer):
        (WebCore::RTCPeerConnection::createAnswer):
        * platform/mediastream/RTCOfferAnswerOptionsPrivate.h: Added.
        * platform/mediastream/RTCPeerConnectionHandler.h:
        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
        (WebCore::RTCPeerConnectionHandlerMock::createOffer):
        (WebCore::RTCPeerConnectionHandlerMock::createAnswer):
        * platform/mock/RTCPeerConnectionHandlerMock.h:

2014-03-26  Zalan Bujtas  <zalan@apple.com>

        Device scale factor should always be greater than 0.
        https://bugs.webkit.org/show_bug.cgi?id=130798

        Reviewed by David Kilzer.

        Rendering context requires a device scale factor > 0 so that we can map CSS pixels
        to device pixels properly. Neither 0 nor a negative device pixel ratio are considered to be valid.

        * page/Page.cpp:
        (WebCore::Page::setDeviceScaleFactor):

2014-03-26  Myles C. Maxfield  <mmaxfield@apple.com>

        Skipping underlines disregard points completely inside the underline rect
        https://bugs.webkit.org/show_bug.cgi?id=130800

        Reviewed by Dean Jackson.

        When determining bounds for underline skipping, endpoints of glyph contours
        that lie entirely within the rect of the underline are ignored. This patch
        makes these points affect the skipping regions the same way that intersections
        do.

        Test: fast/css3-text/css3-text-decoration/text-decoration-skip/glyph-inside-underline.html

        * platform/graphics/mac/FontMac.mm:
        (WebCore::updateX): Refactored common code into a function
        (WebCore::findPathIntersections): Test for endpoints which lie entirely within
        the underline bounds

2014-03-26  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. iOS build fix after r166312. Soft link CMTimeRangeGetEnd.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:

2014-03-26  Timothy Hatcher  <timothy@apple.com>

        Propagate the hiddenFromInspector flag on ResourceRequest in
        places when a new request a made or passed between processes.

        https://bugs.webkit.org/show_bug.cgi?id=130741

        Reviewed by Joseph Pecoraro.

        * WebCore.exp.in: Updated symbols for updateFromDelegatePreservingOldProperties.
        * platform/network/cf/ResourceRequest.h:
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
        * platform/network/curl/ResourceRequest.h:
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.
        * platform/network/soup/ResourceRequest.h:
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldProperties): Added.
        (WebCore::ResourceRequest::updateFromDelegatePreservingOldHTTPBody): Deleted.

2014-03-26  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Remove no-longer-used shape-inside geometry code
        https://bugs.webkit.org/show_bug.cgi?id=130740

        Reviewed by David Hyatt.

        This patch removes shape-padding support, since it can be used only with shape-inside.
        Shape-inside support has been removed in r166301.

        No new tests needed, existing tests have been removed by r166301.

        * rendering/shapes/BoxShape.cpp:
        (WebCore::BoxShape::shapePaddingLogicalBoundingBox): Deleted.
        (WebCore::BoxShape::shapePaddingBounds): Deleted.
        (WebCore::BoxShape::getIncludedIntervals): Deleted.
        (WebCore::BoxShape::firstIncludedIntervalLogicalTop): Deleted.
        * rendering/shapes/BoxShape.h:
        * rendering/shapes/PolygonShape.cpp:
        (WebCore::leftSide): Deleted.
        (WebCore::isReflexVertex): Deleted.
        (WebCore::computeShapePaddingBounds): Deleted.
        (WebCore::PolygonShape::shapePaddingBounds): Deleted.
        (WebCore::PolygonShape::getIncludedIntervals): Deleted.
        (WebCore::firstFitRectInPolygon): Deleted.
        (WebCore::aboveOrToTheLeft): Deleted.
        (WebCore::PolygonShape::firstIncludedIntervalLogicalTop): Deleted.
        * rendering/shapes/PolygonShape.h:
        (WebCore::PolygonShape::PolygonShape):
        * rendering/shapes/RasterShape.cpp:
        (WebCore::RasterShapeIntervals::firstIncludedIntervalY): Deleted.
        (WebCore::RasterShapeIntervals::getIncludedIntervals): Deleted.
        (WebCore::RasterShape::paddingIntervals): Deleted.
        (WebCore::RasterShape::getIncludedIntervals): Deleted.
        (WebCore::RasterShape::firstIncludedIntervalLogicalTop): Deleted.
        * rendering/shapes/RasterShape.h:
        * rendering/shapes/RectangleShape.cpp:
        (WebCore::ellipseYIntercept): Deleted.
        (WebCore::RectangleShape::shapePaddingBounds): Deleted.
        (WebCore::RectangleShape::getIncludedIntervals): Deleted.
        (WebCore::cornerInterceptForWidth): Deleted.
        (WebCore::RectangleShape::firstIncludedIntervalLogicalTop): Deleted.
        * rendering/shapes/RectangleShape.h:
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createShape):
        (WebCore::Shape::createRasterShape):
        (WebCore::Shape::createBoxShape):
        * rendering/shapes/Shape.h:
        (WebCore::Shape::lineOverlapsShapePaddingBounds): Deleted.
        (WebCore::Shape::shapePadding): Deleted.
        * rendering/shapes/ShapeInfo.cpp:
        (WebCore::ShapeInfo<RenderType>::computedShape):
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayout):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2014-03-26  Jeremy Jones  <jeremyj@apple.com>

        Implement hasLiveStreamingContent property in WebAVPlayerController
        https://bugs.webkit.org/show_bug.cgi?id=128684

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        Add export for WebVideoFullscreenInterfaceAVKit::setSeekableRanges().

        * platform/ios/WebVideoFullscreenInterface.h:
        Add setSeekableRanges()

        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        Add setSeekableRanges()

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        Remove vestigial playerLayer property. Add seekableTimeRanges property.

        (-[WebAVPlayerController dealloc]):
        Release _seekableTimeRanges.
        Remove references to _playerLayer.

        (-[WebAVPlayerController hasLiveStreamingContent]):
        Implement based on duration. Live stream has an infinite duration.

        (+[WebAVPlayerController keyPathsForValuesAffectingHasLiveStreamingContent]):
        Describe dependent keys for computed property hasLiveStreamingContent.

        (-[WebAVPlayerController skipBackwardThirtySeconds:]):
        Seek back 30 seconds if that time is in the seekable ranges.

        (-[WebAVPlayerController gotoEndOfSeekableRanges:]):
        Jump to live by going to the of the seekable ranges.

        (WebVideoFullscreenInterfaceAVKit::setSeekableRanges):
        Convert TimeRange to CMTimeRange.

        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::setMediaElement):
        Set initial seekable ranges.

        (WebVideoFullscreenModelMediaElement::handleEvent):
        Update seekable ranges when time changes.

2014-03-26  Brent Fulgham  <bfulgham@apple.com>

        Fix OS X build.

        * WebCore.exp.in: Add missing export symbol.

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        Fix the Windows build. Add a no-op impl for Mac non-UI-side.

        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
        (PlatformCALayerWin::PlatformCALayerWin):
        * platform/graphics/ca/win/PlatformCALayerWin.h:

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        REGRESSION (r155977): matrix animations no longer animate
        https://bugs.webkit.org/show_bug.cgi?id=130789
        <rdar://problem/15650946>

        Reviewed by Dean Jackson.
        
        r155977 erroneously removed two lines that set the end points for
        matrix animations (used when transform lists don't match), so
        put them back.
        
        Also don't repaint when updateContentsScale()
        is called and doesn't change the contents scale.

        Test: compositing/animation/matrix-animation.html

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateRootRelativeScale):
        (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
        (WebCore::GraphicsLayerCA::updateContentsScale):

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        Add a custom behavior flag to GraphicsLayer, piped down to PlatformCALayer, for scrolling layers
        https://bugs.webkit.org/show_bug.cgi?id=130778

        Reviewed by Tim Horton.

        Make it possible to put a "custom behavior" flag on a layer so that,
        with UI-side compositing, we know to create a specific type of
        layer or view for that GraphicsLayer.

        * WebCore.exp.in:
        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::GraphicsLayer):
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::setCustomBehavior):
        (WebCore::GraphicsLayer::customBehavior):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::commitLayerChangesBeforeSublayers):
        (WebCore::GraphicsLayerCA::updateCustomBehavior):
        (WebCore::GraphicsLayerCA::setCustomBehavior):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        (PlatformCALayerMac::PlatformCALayerMac):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateScrollingLayers):

2014-03-26  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed test correction.

        Because of the way DRT on Windows links to WebCore, having the implementaion of the update
        method in the header caused a runtime failure due to duplicate symbols being bound to the
        compilation unit.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility): Moved from header.
        * accessibility/AXObjectCache.h:
        (WebCore::AXObjectCache::setEnhancedUserInterfaceAccessibility): Deleted.

2014-03-26  Jer Noble  <jer.noble@apple.com>

        REGRESSION(r162679): Poster image visible under the video
        https://bugs.webkit.org/show_bug.cgi?id=130783

        Reviewed by Simon Fraser.

        In the listed revision, we started checking for isRenderImage()
        instead of isImage(). RenderMedias return 'true' for the first
        but 'false' for the second. Change the if() statement to check
        for isRenderMedia() in addition to !isRenderImage().

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::isDirectlyCompositedImage):

2014-03-26  Antti Koivisto  <antti@apple.com>

        Render tree construction is O(N^2) in number of siblings
        https://bugs.webkit.org/show_bug.cgi?id=129065

        Reviewed by Darin Adler.
        
        When adding a new renderer to the tree we would search for the correct render tree
        position by traversing DOM children forward to find something that already has a renderer.
        In common case there is no such renderer. This would be repeated for each inserted renderer
        leading to O(n^2) in respect to child node count.
        
        This patch caches the computed render tree insertion position and passes it to siblings.
        Until the cached position is reached it can be used for all new renderers.

        Test: perf/sibling-renderer-On2.html

        * style/StyleResolveTree.cpp:
        (WebCore::Style::RenderTreePosition::parent):
        (WebCore::Style::RenderTreePosition::RenderTreePosition):
        (WebCore::Style::RenderTreePosition::canInsert):
        (WebCore::Style::RenderTreePosition::insert):
        (WebCore::Style::RenderTreePosition::computeNextSibling):
        (WebCore::Style::RenderTreePosition::invalidateNextSibling):
        (WebCore::Style::styleForElement):
        (WebCore::Style::elementInsideRegionNeedsRenderer):
        (WebCore::Style::createRendererIfNeeded):
        (WebCore::Style::createTextRendererIfNeeded):
        (WebCore::Style::attachTextRenderer):
        (WebCore::Style::updateTextRendererAfterContentChange):
        (WebCore::Style::attachChildren):
        (WebCore::Style::attachDistributedChildren):
        (WebCore::Style::attachShadowRoot):
        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
        (WebCore::Style::attachRenderTree):
        (WebCore::Style::resolveLocal):
        (WebCore::Style::resolveTextNode):
        (WebCore::Style::resolveShadowTree):
        (WebCore::Style::updateBeforeOrAfterPseudoElement):
        (WebCore::Style::resolveTree):

2014-03-26  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166264.
        https://bugs.webkit.org/show_bug.cgi?id=130785

        Broke some window.opener tests for WK2 Mavericks (Requested by
        brrian__ on #webkit).

        Reverted changeset:

        "Web Replay: resource unique identifiers should be unique-per-
        frame, not globally"
        https://bugs.webkit.org/show_bug.cgi?id=130632
        http://trac.webkit.org/changeset/166264

2014-03-26  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Remove shape-inside support
        https://bugs.webkit.org/show_bug.cgi?id=130698

        Reviewed by David Hyatt.

        CSS Shapes Level 1 (CR) only contains shape-outside. We are focusing our efforts on finalizing
        the implementation of shape-outside, it's worth to remove shape-inside code at this point for now.

        A list of reasons for the removal:
          - Shape-inside is only part of Shapes Level 2, which needs to be improved on some topics.
          - Shape-inside is lack of new shapes support (e.g. inset).
          - Deprecated shapes (r165472) are removed from the code (e.g. rectangle), which affects shape-inside. 
          - The current shape-inside code spreads across the layout code.
          - The current shape-inside implementation is experimental in some areas,
            and the partially implemented code can have security implications.
          - Removal of shape-inside opens possibilities for code complexity and performance
            optimizations for shape-outside. (e.g. simpler geometry code)

        No new tests are needed.

        * CMakeLists.txt:
        * Configurations/FeatureDefines.xcconfig:
        * GNUmakefile.list.am:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isSimpleLengthPropertyID):
        (WebCore::CSSParser::parseValue):
        (WebCore::CSSParser::parseShapeProperty):
        * css/CSSPropertyNames.in:
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::applyProperty):
        (WebCore::StyleResolver::loadPendingImages):
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::CSSPropertyAnimationWrapperMap::CSSPropertyAnimationWrapperMap):
        * rendering/LayoutState.cpp:
        (WebCore::LayoutState::LayoutState):
        * rendering/LayoutState.h:
        (WebCore::LayoutState::LayoutState):
        (WebCore::LayoutState::shapeInsideInfo): Deleted.
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::styleDidChange):
        (WebCore::RenderBlock::imageChanged):
        (WebCore::RenderBlock::preparePaginationBeforeBlockLayout):
        (WebCore::RenderBlock::relayoutShapeDescendantIfMoved): Deleted.
        (WebCore::RenderBlock::logicalOffsetFromShapeAncestorContainer): Deleted.
        (WebCore::RenderBlock::updateShapeInsideInfoAfterStyleChange): Deleted.
        (WebCore::RenderBlock::ensureShapeInsideInfo): Deleted.
        (WebCore::RenderBlock::shapeInsideInfo): Deleted.
        (WebCore::RenderBlock::setShapeInsideInfo): Deleted.
        (WebCore::RenderBlock::markShapeInsideDescendantsForLayout): Deleted.
        (WebCore::RenderBlock::layoutShapeInsideInfo): Deleted.
        (WebCore::shapeInfoRequiresRelayout): Deleted.
        (WebCore::RenderBlock::computeShapeSize): Deleted.
        (WebCore::RenderBlock::updateShapesBeforeBlockLayout): Deleted.
        (WebCore::RenderBlock::updateShapesAfterBlockLayout): Deleted.
        (WebCore::RenderBlock::prepareShapesAndPaginationBeforeBlockLayout): Deleted.
        * rendering/RenderBlock.h:
        (WebCore::RenderBlock::allowsShapeInsideInfoSharing): Deleted.
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::layoutBlock):
        (WebCore::RenderBlockFlow::layoutBlockChild):
        (WebCore::RenderBlockFlow::computeLogicalLocationForFloat):
        * rendering/RenderBlockFlow.h:
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForLine):
        (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
        (WebCore::constructBidiRunsForLine): Deleted.
        (WebCore::pushShapeContentOverflowBelowTheContentBox): Deleted.
        (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLine): Deleted.
        (WebCore::RenderBlockFlow::updateShapeAndSegmentsForCurrentLineInFlowThread): Deleted.
        (WebCore::adjustLogicalLineTop): Deleted.
        (WebCore::RenderBlockFlow::adjustLogicalLineTopAndLogicalHeightIfNeeded): Deleted.
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::~RenderElement):
        (WebCore::RenderElement::initializeStyle):
        (WebCore::RenderElement::setStyle):
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutBlock):
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::layoutBlock):
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::createStyle):
        * rendering/RenderView.h:
        * rendering/SimpleLineLayout.cpp:
        (WebCore::SimpleLineLayout::canUseFor):
        * rendering/line/BreakingContextInlineHeaders.h:
        (WebCore::BreakingContext::handleText):
        (WebCore::BreakingContext::handleEndOfLine):
        (WebCore::updateSegmentsForShapes): Deleted.
        * rendering/line/LineBreaker.cpp:
        (WebCore::LineBreaker::nextLineBreak):
        * rendering/line/LineWidth.cpp:
        (WebCore::LineWidth::LineWidth):
        (WebCore::LineWidth::updateAvailableWidth):
        (WebCore::LineWidth::wrapNextToShapeOutside):
        (WebCore::LineWidth::fitBelowFloats):
        (WebCore::LineWidth::updateLineSegment): Deleted.
        (WebCore::LineWidth::updateCurrentShapeSegment): Deleted.
        * rendering/line/LineWidth.h:
        * rendering/shapes/ShapeInsideInfo.cpp: Removed.
        * rendering/shapes/ShapeInsideInfo.h: Removed.
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayout):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2014-03-25  Brent Fulgham  <bfulgham@apple.com>

        Avoid duplicate size checks when creating empty image
        https://bugs.webkit.org/show_bug.cgi?id=130730

        Reviewed by Dean Jackson.

        Merged from Blink (patch by ch.dumez@samsung.com):
        https://chromium.googlesource.com/chromium/blink/+/4861a71bc1f284fc97417f405ab7d08dc6947b88
        http://crbug.com/190633011

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::createEmptyImageData): Don't perform overflow calculation twice.

2014-03-26  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] getComputedStyle() must return the specified value for positioning properties
        https://bugs.webkit.org/show_bug.cgi?id=130010

        Reviewed by Darin Adler.

        According to the specs
        http://dev.w3.org/csswg/css-grid/#property-index and also to
        http://lists.w3.org/Archives/Public/www-style/2014Mar/0162.html
        the function getComputedStyle() must return the specified values
        for positioning properties, i.e, grid-{columns|rows}-{start|end}.

        We were in some cases, adjusting the style in the StyleResolver
        (for example with two opposing spans) something that is now done
        in the RenderGrid because we cannot alter the original style.

        The code moved to the renderer became more self explanatory and it
        now supports named grid areas with names ending in "-start" and
        "-end".

        Test: fast/css-grid-layout/named-grid-lines-with-named-grid-areas-get-set.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        (WebCore::gridLineDefinedBeforeGridArea): Deleted.
        (WebCore::StyleResolver::adjustNamedGridItemPosition): Deleted.
        (WebCore::StyleResolver::adjustGridItemPosition): Deleted.
        * css/StyleResolver.h:
        * rendering/RenderGrid.cpp:
        (WebCore::isColumnSide):
        (WebCore::RenderGrid::explicitGridSizeForSide):
        (WebCore::gridLineDefinedBeforeGridArea):
        (WebCore::setNamedLinePositionIfDefinedBeforeArea):
        (WebCore::RenderGrid::adjustNamedGridItemPosition):
        (WebCore::RenderGrid::adjustGridPositionsFromStyle):
        (WebCore::RenderGrid::resolveGridPositionsFromStyle):
        (WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle):
        (WebCore::RenderGrid::resolveNamedGridLinePositionAgainstOppositePosition):
        * rendering/RenderGrid.h:
        * rendering/style/GridPosition.h:
        (WebCore::GridPosition::setAutoPosition): New helper function.

2014-03-26  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build.

        * WebCore.exp.in:

2014-03-26  Tim Horton  <timothy_horton@apple.com>

        [iOS WebKit2] Flush all surfaces after painting into all of them, instead of after painting into each one
        https://bugs.webkit.org/show_bug.cgi?id=130768
        <rdar://problem/16421471>

        Reviewed by Simon Fraser.

        * platform/graphics/cocoa/IOSurface.h:
        Add a non-ensuring platformContext() getter.

2014-03-26  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: crash when inspecting "bar" text node in getAccessibilityPropertiesForNode layout test
        https://bugs.webkit.org/show_bug.cgi?id=130290

        Reviewed by Timothy Hatcher.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        Fixing regression from r165590. http://webkit.org/b/129779
        Verify isElementNode to avoid calling toElement on document or text nodes.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):

2014-03-25  Sergio Villar Senin  <svillar@igalia.com>

        Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in editing/
        https://bugs.webkit.org/show_bug.cgi?id=130722

        Reviewed by Antti Koivisto.

        * editing/AlternativeTextController.cpp:
        (WebCore::markerTypesForAutocorrection):
        (WebCore::markerTypesForReplacement):
        (WebCore::markerTypesForAppliedDictationAlternative):
        * editing/EditingStyle.cpp:
        (WebCore::htmlElementEquivalents):
        (WebCore::htmlAttributeEquivalents):
        * editing/FormatBlockCommand.cpp:
        (WebCore::isElementForFormatBlock):
        * editing/RemoveFormatCommand.cpp:
        (WebCore::isElementForRemoveFormatCommand):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::isProhibitedParagraphChild):
        * editing/atk/FrameSelectionAtk.cpp:
        (WebCore::maybeEmitTextFocusChange):

2014-03-25  Simon Fraser  <simon.fraser@apple.com>

        Add a new type of scrolling tree node for overflow scrolling
        https://bugs.webkit.org/show_bug.cgi?id=130763

        Reviewed by Tim Horton.

        Prepare for overflow scrolling via the scrolling tree by adding
        a new scrolling node type for overflow:scroll nodes. Mostly
        this is a new ScrollingNodeType that gets mapped to the same
        scrolling state nodes and scrolling nodes, but iOS creates
        state and scrolling nodes specific to overflow:scroll.
        
        Change the type checking on nodes to use virtual functions instead
        of just checking the node type, to allow the macros to work with
        the new scrolling node type.

        * WebCore.exp.in:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::ensureRootStateNodeForFrameView):
        * page/scrolling/ScrollingCoordinator.h:
        * page/scrolling/ScrollingStateFixedNode.h:
        * page/scrolling/ScrollingStateNode.h:
        (WebCore::ScrollingStateNode::isFixedNode):
        (WebCore::ScrollingStateNode::isStickyNode):
        (WebCore::ScrollingStateNode::isScrollingNode):
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::create):
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        * page/scrolling/ScrollingStateScrollingNode.h:
        * page/scrolling/ScrollingStateStickyNode.h:
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::attachNode):
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling):
        (WebCore::ScrollingTree::updateTreeFromStateNode):
        * page/scrolling/ScrollingTreeNode.h:
        (WebCore::ScrollingTreeNode::isFixedNode):
        (WebCore::ScrollingTreeNode::isStickyNode):
        (WebCore::ScrollingTreeNode::isScrollingNode):
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::ScrollingTreeScrollingNode):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/ios/ScrollingCoordinatorIOS.mm:
        (WebCore::ScrollingCoordinatorIOS::createScrollingTreeNode):
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeScrollingNodeIOS::create):
        (WebCore::ScrollingTreeScrollingNodeIOS::ScrollingTreeScrollingNodeIOS):
        * page/scrolling/mac/ScrollingCoordinatorMac.mm:
        (WebCore::ScrollingCoordinatorMac::createScrollingTreeNode):
        * page/scrolling/mac/ScrollingTreeFixedNode.h:
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::create):
        (WebCore::ScrollingTreeScrollingNodeMac::ScrollingTreeScrollingNodeMac):
        * page/scrolling/mac/ScrollingTreeStickyNode.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):

2014-03-26  Krzysztof Czech  <k.czech@samsung.com>

        [ATK] Utilize new AtkValue interface coming in ATK 2.11.92
        https://bugs.webkit.org/show_bug.cgi?id=130575

        Reviewed by Mario Sanchez Prada.

        ATK 2.11.92 introduces some new API and deprecates an old one.
        Adjust current implementation to meet requirements of the new API.

        No new tests. Covered by existing ones.

        * accessibility/atk/AXObjectCacheAtk.cpp:
        (WebCore::AXObjectCache::postPlatformNotification):
        * accessibility/atk/WebKitAccessibleInterfaceValue.cpp:
        (webkitAccessibleSetNewValue):
        (webkitAccessibleGetIncrementValue):
        (webkitAccessibleGetValueAndText):
        (webkitAccessibleGetIncrement):
        (webkitAccessibleSetValue):
        (webkitAccessibleGetRange):
        (webkitAccessibleValueSetCurrentValue):
        (webkitAccessibleValueGetMinimumIncrement):
        (webkitAccessibleValueInterfaceInit):

2014-03-26  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Removing the remaining Automake cruft.

        * GNUmakefile.list.am: Removed.

2014-03-25  Pratik Solanki  <psolanki@apple.com>

        iOS build fix. Add missing semicolon.

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_addAttachmentForElement):

2014-03-25  Sam Weinig  <sam@webkit.org>

        Speculative iOS build fix.

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_addAttachmentForElement):

2014-03-25  Jer Noble  <jer.noble@apple.com>

        [MSE] Duplicate 'seeked' events.
        https://bugs.webkit.org/show_bug.cgi?id=130754

        Reviewed by Eric Carlson.

        Test: media/media-source/media-source-duplicate-seeked.html

        During certain seek operations, HTMLMediaElement::finishSeek() can be called re-entrantly due to
        the ready state changing as a result of MediaSource::monitorSourceBuffers(). Move this call to the
        end of finishSeek() after m_seeking has been cleared.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):

2014-03-25  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: add support for aria-activedescendant and reconcile UI/testing with parentNode
        https://bugs.webkit.org/show_bug.cgi?id=130712

        Reviewed by Timothy Hatcher.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        Support for @aria-activedescendant; code reuse changes w/ parentNode and activeDescendantNode.

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/protocol/DOM.json:

2014-03-25  Sanghyup Lee  <sh53.lee@samsung.com>

        When the mouse is upped after dragged out of shadowDOM, it should lose :active.
        https://bugs.webkit.org/show_bug.cgi?id=130660

        Reviewed by Darin Adler.

        This caused a regression after r165037.
        When we have to clear :active style of shadow DOM, we should clear host's style.
        This patch replaces parentElement() by parentOrShadowHostElement().

        * dom/Document.cpp:
        (WebCore::Document::updateHoverActiveState):

2014-03-25  Eric Carlson  <eric.carlson@apple.com>

        [Mac] Always retry a failed MediaDocument as a PluginDocument
        https://bugs.webkit.org/show_bug.cgi?id=130742

        Reviewed by Jer Noble.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaLoadingFailedFatally): If the element is in a media document,
            tell it that loading failed so it can retry as a plug-in.

2014-03-25  Ryosuke Niwa  <rniwa@webkit.org>

        Replace HTMLConverter::_stringForNode by propertyValueForNode
        https://bugs.webkit.org/show_bug.cgi?id=130711

        Reviewed by Sam Weinig.

        Replaced all calls to HTMLConverter::_stringForNode by that to propertyValueForNode.

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::_computedAttributesForElement):
        (HTMLConverter::_addAttachmentForElement):
        (HTMLConverter::_enterElement):
        (HTMLConverter::_addTableForElement):
        (HTMLConverter::_addTableCellForElement):
        (HTMLConverter::_processElement):
        (HTMLConverter::_exitElement):
        (HTMLConverter::_processText):
        (HTMLConverter::_traverseNode):
        (HTMLConverter::_traverseFooterNode):
        (HTMLConverter::_stringForNode): Deleted.

2014-03-25  Pratik Solanki  <psolanki@apple.com>

        Attempt to fix iOS build after r166261.

        * WebCore.xcodeproj/project.pbxproj: Make SystemSleepListener.h a private header.

2014-03-21  Jer Noble  <jer.noble@apple.com>

        [iOS] Enable caption support in full screen.
        https://bugs.webkit.org/show_bug.cgi?id=130603

        Reviewed by Eric Carlson.

        Add TextTrackRepresentation support to MediaPlayerPrivateAVFoundationObjC.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer): Add the m_textTrackRepresenationLayer if present.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::requiresTextTrackRepresentation): True, if a m_videoFullscreenLayer is present.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setTextTrackRepresentation): Remove the old, and add the new m_textTrackRepresenationLayer.

        Make the text track container a stacking context for painting purposes.
        * Modules/mediacontrols/mediaControlsiOS.css:
        (video::-webkit-media-text-track-container):

2014-03-25  Brian Burg  <bburg@apple.com>

        Web Replay: resource unique identifiers should be unique-per-frame, not globally
        https://bugs.webkit.org/show_bug.cgi?id=130632

        Reviewed by Timothy Hatcher.

        For replay purposes, we want to deterministically assign resource load identifiers
        to resource loaders, provided that the resource loaders are created in the same
        order.

        To do this, we convert unique identifiers from being globally-unique to being
        frame-unique. When a new frame is being loaded, unique identifiers for
        subresources of that frame begin counting from 1.

        No new tests. Identifier invariants are exercised by existing assertions and tests.

        * loader/ProgressTracker.cpp:
        (WebCore::ProgressTracker::ProgressTracker):
        (WebCore::ProgressTracker::reset):
        (WebCore::ProgressTracker::createUniqueIdentifier):
        * loader/ProgressTracker.h:

2014-03-25  Jer Noble  <jer.noble@apple.com>

        [Mac] Pause the media element during system sleep.
        https://bugs.webkit.org/show_bug.cgi?id=130718

        Reviewed by Eric Carlson.

        Test: media/video-system-sleep.html

        Relying on the platform media system to pause and restart playback during
        system sleep can cause problems on some platforms, especially where hardware
        decoders are concerned. Rather than implicitly pausing the media during
        system sleep, explicitly pause the media before sleeping and resume (if
        appropriate) upon waking.

        Add a new class to be used for system sleep notifications:
        * platform/SystemSleepListener.cpp: Added.
        (WebCore::SystemSleepListener::create):
        (WebCore::SystemSleepListener::SystemSleepListener):
        * platform/SystemSleepListener.h: Added.
        (WebCore::SystemSleepListener::Client::~Client):
        (WebCore::SystemSleepListener::~SystemSleepListener):
        (WebCore::SystemSleepListener::client):

        Add a Mac-specific implementation:
        * platform/mac/SystemSleepListenerMac.h: Added.
        * platform/mac/SystemSleepListenerMac.mm: Added.
        (WebCore::SystemSleepListener::create):
        (WebCore::SystemSleepListenerMac::SystemSleepListenerMac):
        (WebCore::SystemSleepListenerMac::~SystemSleepListenerMac):

        Listen for system sleep notifications in MediaSessionManager:
        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::MediaSessionManager):
        (WebCore::MediaSessionManager::systemWillSleep):
        (WebCore::MediaSessionManager::systemDidWake):
        * platform/audio/MediaSessionManager.h:

        Drive-by fix; notify the MediaSession that playback will begin
        due to autoplay, but do not begin autoplaying if the session
        is already interrupted:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):

        Add new files to project:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.xcodeproj/project.pbxproj:
        * CMakeLists.txt:
        * GNUmakefile.list.am:

2014-03-25  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] The background of children of scrollable elements flowed into regions is not properly scrolled
        https://bugs.webkit.org/show_bug.cgi?id=130574

        Reviewed by David Hyatt.

        When computing the clip rect for painting the box decorations, the scrolled content offset
        must be computed by going up the containing block tree, up to the region.

        Tests: fast/regions/scrollable-region-scrollable-absolute-content-background.html
               fast/regions/scrollable-region-scrollable-content-background.html

        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):

2014-03-25  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] Inspector View Indication Support
        https://bugs.webkit.org/show_bug.cgi?id=130709

        Reviewed by Simon Fraser.

        * inspector/InspectorClient.h:
        (WebCore::InspectorClient::showInspectorIndication):
        (WebCore::InspectorClient::hideInspectorIndication):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::setIndicating):
        Rename indicate/hideIndication to show/hide names.

2014-03-25  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed build fix. Typo on checkin.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Left an unmatched open bracket.

2014-03-25  Jer Noble  <jer.noble@apple.com>

        Even further unreviewed build fix after r166247. Unprotect the implementation of HTMLMediaElement::shouldDisableSleep().

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):

2014-03-25  Jer Noble  <jer.noble@apple.com>

        Further unreviewed build fix after r166247. Add DisplaySleepDisabler to the windows project file and
        move the definition of DisplaySleepDisabler's constructor and destructor into the cpp file.

        * WebCore.vcxproj/WebCore.vcxproj:
        * platform/DisplaySleepDisabler.cpp:
        (WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
        (WebCore::DisplaySleepDisabler::~DisplaySleepDisabler):
        * platform/DisplaySleepDisabler.h:

2014-03-25  Jer Noble  <jer.noble@apple.com>

        Unreviewed build fix after r166247. Un-platform-protect the declaration of HTMLMediaElement::shouldDisableSleep()
        and make WebVideoFullscreenController's _displaySleepDisabler a std::unique_ptr.

        * html/HTMLMediaElement.h:
        * platform/mac/WebVideoFullscreenController.h:

2014-03-25  Brent Fulgham  <bfulgham@apple.com>

        [iOS] Pass additional options to AVFoundation during playback.
        https://bugs.webkit.org/show_bug.cgi?id=130624

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::doesHaveAttribute): Return attribute value if the user
        passes a pointer to fill in.
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::doesHaveAttribute):
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::doesHaveAttribute):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayerItem): Pass additional
        option if supplied by user.

2014-03-25  Michael Saboff  <msaboff@apple.com>

        Unreviewed, rolling out r166070.

        Rollout r166070 due to 2% performance loss in page load times

        Reverted changeset:

        "Change CodeGeneratorJS.pm special cases for "DOMWindow" to be
        general purpose"
        https://bugs.webkit.org/show_bug.cgi?id=130553
        http://trac.webkit.org/changeset/166070

2014-03-25  Michael Saboff  <msaboff@apple.com>

        Unreviewed, rolling out r166126.

        Rollout r166126 in prepartion to roll out prerequisite r166070

        Reverted changeset:

        "toThis() on a JSWorkerGlobalScope should return a JSProxy and
        not undefined"
        https://bugs.webkit.org/show_bug.cgi?id=130554
        http://trac.webkit.org/changeset/166126

2014-03-25  Jer Noble  <jer.noble@apple.com>

        [iOS] Playing video does not disable display sleep.
        https://bugs.webkit.org/show_bug.cgi?id=130729

        Reviewed by Eric Carlson.

        DisplaySleepDisabler was broken by r161589, which replaced the iOS implementation with
        an empty one. Make a platform independent version with a Cocoa-platform subclass. Update
        the APIs to non-deprecated ones.

        * platform/DisplaySleepDisabler.cpp: Added.
        (WebCore::DisplaySleepDisabler::create):
        * platform/DisplaySleepDisabler.h: Added.
        (WebCore::DisplaySleepDisabler::~DisplaySleepDisabler):
        (WebCore::DisplaySleepDisabler::DisplaySleepDisabler):
        * platform/cocoa/DisplaySleepDisablerCocoa.cpp: Renamed from Source/WebCore/platform/mac/DisplaySleepDisabler.cpp.
        (WebCore::DisplaySleepDisabler::create):
        (WebCore::DisplaySleepDisablerCocoa::DisplaySleepDisablerCocoa):
        (WebCore::DisplaySleepDisablerCocoa::~DisplaySleepDisablerCocoa):
        * platform/cocoa/DisplaySleepDisablerCocoa.h: Renamed from Source/WebCore/platform/mac/DisplaySleepDisabler.h.

        Update m_sleepDisabler to be a std::unique_ptr, and unprotect the definition of methods which use it.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::updateSleepDisabling):
        (WebCore::HTMLMediaElement::shouldDisableSleep):
        * html/HTMLMediaElement.h:

        Add the new and renamed files to the project:
        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.xcodeproj/project.pbxproj:

2014-03-25  Dirk Schulze  <krit@webkit.org>

        Implement ImageData constructors and WebWorkers exposure
        https://bugs.webkit.org/show_bug.cgi?id=130668

        Reviewed by Dean Jackson.

        Add new constructors for ImageData.

        http://www.whatwg.org/specs/web-apps/current-work/multipage/the-canvas-element.html#pixel-manipulation

        Test: fast/canvas/canvas-imageData.html

        * html/ImageData.cpp: 
        (WebCore::ImageData::create):
        * html/ImageData.h:
        * html/ImageData.idl:

2014-03-25  Myles C. Maxfield  <mmaxfield@apple.com>

        InlineIterator position (unsigned int) variable can wrap around
        https://bugs.webkit.org/show_bug.cgi?id=130540

        Reviewed by Simon Fraser.

        We trigger an ASSERT that occurs when we are ignoring spaces (to collapse them
        into a single whitespace mark) but then encounter a line break. Because we don't ignore
        the first space (but do ignore subsequent spaces), when we hit a newline in an RTL context
        we want to ignore that first space as well (so as not to push the text away from the right
        edge). We do this by decrementing the InlineIterator pointing to this first space, so all
        the spaces get ignored. However, if that space is the first character in a Text node, the
        decrement will try to go past the beginning of the node, and trigger an ASSERT.

        This design is not great. At some point we should rework it to more elegantly handle
        collapsing whitespace in both RTL and LTR writing modes.

        This patch adds an ASSERT earlier in this codepath to catch potential problems earlier.
        It also pulls our sentinel value out into a separate boolean to make it more clear what is
        going on.

        Test: fast/text/whitespace-only-text-in-rtl.html

        * rendering/InlineIterator.h:
        (WebCore::InlineIterator::moveTo): Use the set***() calls
        (WebCore::InlineIterator::setOffset): ASSERT early that our math hasn't wrapped
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::appendRunsForObject): Use new boolean value
        * rendering/line/BreakingContextInlineHeaders.h:
        (WebCore::BreakingContext::handleText): Guard against wraps
        (WebCore::checkMidpoints): Use new boolean value
        * rendering/line/TrailingObjects.cpp:
        (WebCore::TrailingObjects::updateMidpointsForTrailingBoxes): Use new boolean value

2014-03-25  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Remove the autotools build
        https://bugs.webkit.org/show_bug.cgi?id=130717

        Reviewed by Anders Carlsson.

        * GNUmakefile.am: Removed.
        * bindings/gobject/GNUmakefile.am: Removed.
        * config.h: Removed references to autotools configure file.

2014-03-24  Brent Fulgham  <bfulgham@apple.com>

        Prevent 'removetrack' events from firing when all inband text tracks are removed.
        https://bugs.webkit.org/show_bug.cgi?id=130704

        Reviewed by Eric Carlson.

        Test: media/track/track-remove-track.html

        Based on the Blink change (patch by acolwell@chromium.org):
        https://codereview.chromium.org/177243018/

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::prepareForLoad): Reorder steps to match W3C specification.
        (WebCore::HTMLMediaElement::noneSupported): Forget tracks as required by specification.
        (WebCore::HTMLMediaElement::mediaLoadingFailed): Forget tracks as required by specification.
        (WebCore::HTMLMediaElement::removeTextTrack): Only request the 'removetracks' event if
        requested by caller.
        (WebCore::HTMLMediaElement::removeAllInbandTracks): Renamed to 'forgetResourceSpecificTracks'
        (WebCore::HTMLMediaElement::noneSupported): Specify that we want the 'removetracks' event
        fired for this use case.
        (WebCore::HTMLMediaElement::prepareForLoad): Switch to new 'forgetResourceSpecificTracks' name.
        * html/HTMLMediaElement.h:
        * html/track/TextTrackList.cpp:
        (TextTrackList::remove): Only fire the 'removetrack' event if the caller requests it.
        * html/track/TextTrackList.h: Add default argument to fire the 'removetrack' event
        when removing a track.
        * html/track/TrackListBase.cpp:
        (TrackListBase::remove): Only fire the 'removetrack' event if the caller requests it.
        * html/track/TrackListBase.h: Add default argument to fire the 'removetrack' event.

2014-03-25  David Kilzer  <ddkilzer@apple.com>

        Hold a reference to firstSuccessfulSubmitButton in HTMLFormElement::submit
        <http://webkit.org/b/130713>
        <rdar://problem/15661876>

        Reviewed by Darin Adler.

        Merged from Blink (patch by Ian Beer):
        http://crbug.com/303657
        https://src.chromium.org/viewvc/blink?view=rev&revision=158938

        Test: fast/forms/form-submission-crash-successful-submit-button.html

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::submit):

2014-03-25  Gabor Rapcsanyi  <rgabor@webkit.org>

        [ARM64] GNU assembler fails in TransformationMatrix::multiply
        https://bugs.webkit.org/show_bug.cgi?id=130454

        Reviewed by Zoltan Herczeg.

        Change the NEON intstructions to the proper style.

        * platform/graphics/transforms/TransformationMatrix.cpp:
        (WebCore::TransformationMatrix::multiply):

2014-03-20  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Vertical rectangles not considered as valid grid areas
        https://bugs.webkit.org/show_bug.cgi?id=130513

        Reviewed by Andreas Kling.

        Grid areas sized as vertical rectangles were incorrectly
        considered as invalid by the parser. That's because the condition
        checking that each new row was adjacent to the previous one was
        using the first row of the currently parsed grid area instead of
        the last one.

        Test: fast/css-grid-layout/grid-template-areas-get-set.html

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridTemplateAreas):

2014-03-25  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GTK] Volume slider shows below the panel with videos in certain cases
        https://bugs.webkit.org/show_bug.cgi?id=130608

        Reviewed by Jer Noble.

        We need to delay the moment we check if the volume slider shows up
        or down. If the video was not visible, the offsets were 0 and it
        was forced to be shown below the panel.

        Test: media/video-initially-hidden-volume-slider-up.html

        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.createControls): Moved volumebox pseudo from
        the subclass. The test checks for it and it would fail in Mac.
        * Modules/mediacontrols/mediaControlsGtk.js:
        (ControllerGtk.prototype.createControls): Moved volumebox pseudo
        to the superclass.
        (ControllerGtk.prototype.handleMuteButtonMouseOver): Check if
        volume slider should show up or down.
        (ControllerGtk.prototype.updateReadyState): Removed check for
        volume slider direction.

2014-03-24  Brent Fulgham  <bfulgham@apple.com>

        [Win] Enable WebVTT Regions on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=130680

        Reviewed by Eric Carlson.

        * DerivedSources.cpp: Add new build components.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.

2014-03-24  Simon Fraser  <simon.fraser@apple.com>

        Remove some unnecessary includes from PlatformCALayerClient.h
        https://bugs.webkit.org/show_bug.cgi?id=130703

        Reviewed by Andreas Kling.
        
        No need for all these #includes.

        * platform/graphics/ca/PlatformCALayerClient.h:

2014-03-24  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        [core] FEGaussianBlur: use IntSize to simplify member function interface
        https://bugs.webkit.org/show_bug.cgi?id=130695

        Reviewed by Dean Jackson.

        By returning an IntSize to store the calculated kernel size values
        it is possible to have less function parameters. This patch also
        streamlines a bit the code in calculateUnscaledKernelSize.

        No new tests, no change in behavior.

        * platform/graphics/filters/FEDropShadow.cpp:
        (WebCore::FEDropShadow::determineAbsolutePaintRect):
        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::calculateUnscaledKernelSize):
        (WebCore::FEGaussianBlur::calculateKernelSize):
        (WebCore::FEGaussianBlur::determineAbsolutePaintRect):
        (WebCore::FEGaussianBlur::platformApplySoftware):
        * platform/graphics/filters/FEGaussianBlur.h:
        (if): Deleted.
        * platform/graphics/filters/FilterOperations.cpp:
        (WebCore::outsetSizeForBlur):

2014-03-24  Brian Burg  <bburg@apple.com>

        Web Replay: capture and replay keyboard events
        https://bugs.webkit.org/show_bug.cgi?id=130314

        Reviewed by Joseph Pecoraro.

        Upstream support for capturing and replaying non-IME keyboard input.
        This works similarly to mouse events. It introduces optional fields and
        macros to encode/decode them.

        Test: ManualTests/inspector/replay-keyboard-events.html

        * replay/ReplayInputDispatchMethods.cpp:
        (WebCore::HandleKeyPress::dispatch):
        * replay/SerializationMethods.cpp:
        (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
        (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue): Switch existing
        encode/decode calls to use the shortening macros.
        (JSC::EncodingTraits<KeypressCommand>::encodeValue): Added.
        (JSC::EncodingTraits<KeypressCommand>::decodeValue): Added.
        (JSC::PlatformKeyboardEventAppKit::PlatformKeyboardEventAppKit): Subclass
        PlatformKeyboardEvent so that we can set AppKit-specific members not
        initialized through the main constructors.
        (JSC::EncodingTraits<PlatformKeyboardEvent>::encodeValue): Added.
        (JSC::EncodingTraits<PlatformKeyboardEvent>::decodeValue): Added.
        * replay/SerializationMethods.h:
        * replay/UserInputBridge.cpp:
        (WebCore::UserInputBridge::UserInputBridge): initialize m_state inside a guard.
        (WebCore::UserInputBridge::handleKeyEvent): fill in the implementation.
        * replay/WebInputs.json:

2014-03-24  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        Optimizing string construction for type error in JSNavigatorCustom.cpp
        https://bugs.webkit.org/show_bug.cgi?id=130683

        Reviewed by Eric Carlson.

        * bindings/js/JSNavigatorCustom.cpp:
        (WebCore::JSNavigator::webkitGetUserMedia):

2014-03-24  Beth Dakin  <bdakin@apple.com>

        Legacy-style scrollbars constantly redraw after scrolling
        https://bugs.webkit.org/show_bug.cgi?id=130699

        Reviewed by Simon Fraser.

        The constant re-draw was happening because we were never calling [ScrollbarPainter 
        setUsePresentationValue:NO]. This is a silly bug where were should have been 
        looking at PlatformWheelEvent::momentumPhase() instead of 
        PlatformWheelEvent::phase()

        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):

2014-03-24  Daniel Bates  <dabates@apple.com>

        XSS Auditor doesn't block <script> injected before an existing <script>
        https://bugs.webkit.org/show_bug.cgi?id=130475

        Merged from Blink (patch by Tom Sepez):
        https://src.chromium.org/viewvc/blink?view=rev&revision=169697

        Tests: http/tests/security/xssAuditor/script-tag-expression-follows.html
               http/tests/security/xssAuditor/script-tag-near-start.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::startsHTMLCommentAt):
        (WebCore::startsSingleLineCommentAt):
        (WebCore::startsMultiLineCommentAt):
        (WebCore::startsOpeningScriptTagAt):
        (WebCore::XSSAuditor::decodedSnippetForJavaScript):

2014-03-24  Brent Fulgham  <bfulgham@apple.com>

        Activate WebVTT Tests Once Merging is Complete
        https://bugs.webkit.org/show_bug.cgi?id=130420

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig: Turn on ENABLE(WEBVTT_REGIONS)

2014-03-24  Anders Carlsson  <andersca@apple.com>

        Re-fix the build.

        * WebCore.exp.in:

2014-03-24  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * WebCore.exp.in:
        Move a CFNetwork only symbol inside the USE(CFNETWORK) section.

2014-03-24  Chris Fleizach  <cfleizach@apple.com>

        Regression: AX: Don't expose role or notifications for invalid menus
        https://bugs.webkit.org/show_bug.cgi?id=129814

        Reviewed by Mario Sanchez Prada.

        If a role=menu has no menuitem children, it should not be a menu.
        This was a bit tricky to implement since we need to update the role after the children are created,
        but it means we have to be a bit more aggressive about when to updateChildren, so that the role
        is known to be valid.

        Test: platform/mac/accessibility/invalid-menu-role-does-not-send-notification.html

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::notificationPostTimerFired):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::updateRoleAfterChildrenCreation):
        (WebCore::AccessibilityRenderObject::addChildren):
        * accessibility/AccessibilityRenderObject.h:
        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
        (-[WebAccessibilityObjectWrapperBase updateObjectBackingStore]):

2014-03-24  Andy Estes  <aestes@apple.com>

        [iOS] Download support by CFURLDownloadRef under USE(CFNETWORK).
        https://bugs.webkit.org/show_bug.cgi?id=129322

        Reviewed by Anders Carlsson.

        * platform/network/ResourceHandle.h:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::releaseConnectionForDownload): Changed to
        return a RetainPtr that adopts the connection's retain count.

2014-03-24  Enrica Casucci  <enrica@apple.com>

        Update Hindi fallback font.
        https://bugs.webkit.org/show_bug.cgi?id=130690
        <rdar://problem/16391601>

        Reviewed by Sam Weinig.

        Using the new available font for Hindi in the fallback list.

        * platform/graphics/ios/FontCacheIOS.mm:
        (WebCore::FontCache::systemFallbackForCharacters):

2014-03-24  Brent Fulgham  <bfulgham@apple.com>

        Merge Minor WebVTT Cleanups from Blink
        https://bugs.webkit.org/show_bug.cgi?id=130681

        Reviewed by Eric Carlson.

        Merged from Blink (patch by philipj@opera.com):
        https://chromium.googlesource.com/chromium/blink/+/693eb5e2933dca0eab5bbd604e9f3406fe9fd1ab
        http://crbug.com/52593009
        https://chromium.googlesource.com/chromium/blink/+/40b3602feab34e9be829fd742b6ad6ded322a09f
        http://crbug.com/104243003

        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::setMode):
        * html/track/TextTrack.idl:
        * html/track/TextTrackCue.h:
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::VTTCue):
        * html/track/VTTCue.h:

2014-03-24  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166169.
        https://bugs.webkit.org/show_bug.cgi?id=130682

        This patch broke tests on Apple Mavericks (Requested by fredw
        on #webkit).

        Reverted changeset:

        "Operator stretching: expose a math data API"
        https://bugs.webkit.org/show_bug.cgi?id=130572
        http://trac.webkit.org/changeset/166169

2014-03-24  Martin Hodovan  <mhodovan@inf.u-szeged.hu>

        ENABLE(CSS_GRID_LAYOUT) guard for CSSGridLineNamesValue
        https://bugs.webkit.org/show_bug.cgi?id=130669

        Reviewed by Sergio Villar Senin.

        No new tests. No new functionality.

        * css/CSSGridLineNamesValue.cpp:
        * css/CSSGridLineNamesValue.h:

2014-03-24  Chris Fleizach  <cfleizach@apple.com>

        <hr> should expose AXRole/AXSubrole, etc
        https://bugs.webkit.org/show_bug.cgi?id=109015

        Reviewed by Mario Sanchez Prada.

        Expose the <hr> element to Mac and iOS through the accessibility interface.

        Test: platform/mac/accessibility/hr-element.html

        * English.lproj/Localizable.strings:
        * accessibility/AccessibilityNodeObject.cpp:
        (WebCore::AccessibilityNodeObject::isEnabled):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::computedRoleString):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::computeAccessibilityIsIgnored):
        * accessibility/atk/AccessibilityObjectAtk.cpp:
        (WebCore::AccessibilityObject::accessibilityPlatformIncludesObject):
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper determineIsAccessibilityElement]):
        (-[WebAccessibilityObjectWrapper accessibilityLabel]):
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (createAccessibilityRoleMap):
        (-[WebAccessibilityObjectWrapper subrole]):
        (-[WebAccessibilityObjectWrapper roleDescription]):
        * platform/LocalizedStrings.cpp:
        (WebCore::AXHorizontalRuleDescriptionText):
        * platform/LocalizedStrings.h:

2014-03-24  Antti Koivisto  <antti@apple.com>

        Invalidate sibling text node style when needed instead of attaching synchronously
        https://bugs.webkit.org/show_bug.cgi?id=130590

        Reviewed by Andreas Kling.
        
        Make things simpler.

        * style/StyleResolveTree.cpp:
        (WebCore::Style::invalidateWhitespaceOnlyTextSiblingsAfterAttachIfNeeded):
        
            Just invalidate instead of calling attach directly.
            Rename to match.

        (WebCore::Style::textRendererIsNeeded):
        (WebCore::Style::createTextRendererIfNeeded):
        
            Move all testing to textRendererIsNeeded.

        (WebCore::Style::updateTextRendererAfterContentChange):
        
            Call resolveTextNode instead of re-implementing the same thing.

        (WebCore::Style::resolveLocal):
        (WebCore::Style::resolveTextNode):
        
            Avoid unnecessary reattaching.
            Rename for consistency.

        (WebCore::Style::resolveShadowTree):
        (WebCore::Style::resolveTree):
        
2014-03-24  Zsolt Borbely  <zsborbely.u-szeged@partner.samsung.com>

        Fix !ENABLE(VIDEO) build
        https://bugs.webkit.org/show_bug.cgi?id=130671

        Reviewed by Eric Carlson.

        Add missing ENABLE(VIDEO) guards because many functions use
        the newly guarded functions.

        * testing/Internals.cpp:
        * testing/Internals.h:
        * testing/Internals.idl:

2014-03-24  Antti Koivisto  <antti@apple.com>

        Text autosizing does not determine line count correctly for simple line layout
        https://bugs.webkit.org/show_bug.cgi?id=130673

        Reviewed by Daniel Bates.
        
        We don't count lines correctly in simple line layout case.

        * page/Frame.cpp:
        (WebCore::Frame::textAutosizingWidth):
        (WebCore::Frame::setTextAutosizingWidth):
        * page/ios/FrameIOS.mm:
        (WebCore::Frame::textAutosizingWidth): Deleted.
        (WebCore::Frame::setTextAutosizingWidth): Deleted.
        
            Move to Frame.cpp to make enabling on non-iOS build easier.

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::lineCount):
        
            Handle simple line layout case.

        (WebCore::RenderBlockFlow::lineCountForTextAutosizing):
            
            Call lineCount() if children are inline.
            Rename for clarity.

        (WebCore::RenderBlockFlow::adjustComputedFontSizes):
        (WebCore::RenderBlockFlow::immediateLineCount): Deleted.
        * rendering/RenderBlockFlow.h:

2014-03-24  Frédéric Wang  <fred.wang@free.fr>

        [regression] background colors do not apply to <mo> elements.
        https://bugs.webkit.org/show_bug.cgi?id=130470.

        Test: mathml/presentation/tokenElements-background-color.html

        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::paint): always call the parent painting to draw the background.
        (WebCore::RenderMathMLOperator::paintChildren): move the special case for invisible operator here.

2014-03-24  Frédéric Wang  <fred.wang@free.fr>

        Operator stretching: expose a math data API
        https://bugs.webkit.org/show_bug.cgi?id=130572

        Reviewed by Chris Fleizach.

        We expose a new SimpleFontData API to give access to the data from the
        OpenType MATH table using a font cache. The class OpenTypeMathData will
        be implemented in bug 130324. On Darwin platform, we also implement the
        missing FontPlatformData::openTypeTable function which will be necessary
        to load the OpenType MATH table. The changes are intended to be used
        for MathML operator stretching (bug 130322) so tests are not added yet.

        * CMakeLists.txt: add new OpenTypeMathData files.
        * GNUmakefile.list.am: ditto.
        * WebCore.vcxproj/WebCore.vcxproj: ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: ditto.
        * WebCore.xcodeproj/project.pbxproj: ditto.
        * platform/graphics/FontCache.cpp: We add a FontCache::getMathData function to implement a cache for the math data.
        We make the math and vertical data share the same key for the cache.
        (WebCore::fontMathDataCacheInstance):
        (WebCore::FontCache::getMathData):
        (WebCore::fontVerticalDataCacheInstance):
        * platform/graphics/FontCache.h: We declare FontCache::getMathData and FontFileKey on all platforms.
        * platform/graphics/FontPlatformData.cpp:
        (WebCore::FontPlatformData::openTypeTable): We implement openTypeTable() on Darwin platform.
        * platform/graphics/FontPlatformData.h: We expose openTypeTable() on Darwin platform.
        * platform/graphics/SimpleFontData.cpp: We initialize m_mathData from the font cache.
        (WebCore::SimpleFontData::SimpleFontData):
        * platform/graphics/SimpleFontData.h: We expose a mathData() function to access the MATH data.
        * platform/graphics/opentype/OpenTypeMathData.cpp: Added. This is a new class that will be used to parse the data from the OpenType MATH table.
        (WebCore::OpenTypeMathData::OpenTypeMathData):
        * platform/graphics/opentype/OpenTypeMathData.h: Added.
        (WebCore::OpenTypeMathData::create):
        (WebCore::OpenTypeMathData::hasMathData):

2014-03-24  Jon Lee  <jonlee@apple.com>

        Build fixes.

        Unreviewed.

        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::writeSelectionToPasteboard): Convert to reference.

2014-03-24  Martin Hodovan  <mhodovan@inf.u-szeged.hu>

        ENABLE(VIDEO_TRACK) guard for CSSParserSelector::parsePseudoCueFunctionSelector
        https://bugs.webkit.org/show_bug.cgi?id=130666

        Reviewed by Andreas Kling.

        No new tests. No new functionality.

        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::parsePseudoCueFunctionSelector): Deleted.

2014-03-24  Javier Fernandez  <jfernandez@igalia.com>

        [CSS Grid Layout] Update named <grid-line> syntax to the last version of the specs
        https://bugs.webkit.org/show_bug.cgi?id=129041

        Reviewed by Sergio Villar Senin.

        From Blink r162555 by <svillar@igalia.com>

        Names for grid lines are now specified as a list of whitespace separated
        idents enclosed in parentheses instead of as a list of strings.

        Updated tests to match the new <grid-line> syntax.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.xcodeproj/project.pbxproj: Added info of the new file for the CSSGridLineNamesValue class.
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::addValuesForNamedGridLinesAtIndex): The named <grid-line> value is now a list.
        * css/CSSGrammar.y.in: New syntax for named <grid-line>.
        * css/CSSGridLineNamesValue.cpp: Added.
        (WebCore::CSSGridLineNamesValue::customCSSText): String representation of the named <grid-line> as a list of Strings.
        (WebCore::CSSGridLineNamesValue::CSSGridLineNamesValue): Constructor.
        (WebCore::CSSGridLineNamesValue::cloneForCSSOM): Ref counted cloning function.
        * css/CSSGridLineNamesValue.h: Added.
        (WebCore::CSSGridLineNamesValue::create): Ref counted constructor.
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseGridLineNames): It replaces the old parseGrdTrackNames.
        (WebCore::CSSParser::parseGridTrackList): Using the new named <grid-line> syntax.
        (WebCore::CSSParser::parseGridTrackRepeatFunction): Using the new named <grid-line> syntax.
        * css/CSSParser.h:
        * css/CSSParserValues.cpp:
        (WebCore::destroy): Handling the case of CSSValue being CSSValueList intances.
        (WebCore::CSSParserValue::createCSSValue): Handling the case of CSSValue being CSSValueList intances.
        * css/CSSParserValues.h:
        (WebCore::CSSParserValue::setFromValueList): Adds the named <grid-line> list to the CSSParserValueList instance.
        * css/CSSValue.cpp:
        (WebCore::CSSValue::equals): Handling the case of the new CSSGridLineNamesValue class.
        (WebCore::CSSValue::cssText): Handling the case of the new CSSGridLineNamesValue class.
        (WebCore::CSSValue::destroy): Handling the case of the new CSSGridLineNamesValue class.
        * css/CSSValue.h:
        (WebCore::CSSValue::isGridLineNamesValue): Type cast check for the new CSSGridLineNamesValue class.
        * css/StyleResolver.cpp:
        (WebCore::createGridTrackList): Using the new named <grid-line> syntax.

2014-03-23  Sam Weinig  <sam@webkit.org>

        Convert WebHTMLConverter to C++
        https://bugs.webkit.org/show_bug.cgi?id=130655

        Reviewed by Andreas Kling.

        - Mechanically converts the Objective-C class WebHTMLConverter, to the C++ HTMLConverter (lots of cleanup to follow).
        - Removes unused members
            - _standardFontFamily (never assigned to)
            - _textSizeMultiplier (always exactly 1)
            - _webViewTextSizeMultiplier (always exactly 0)
            - _defaultFontSize (always exactly 12, changed to be constant)
            - _minimumFontSize (always exactly 1, changed to be constant)
            - _colorsForNodes (never assigned to)
            - _indexingLimit (always exactly 0)
            - _thumbnailLimit (always exactly 0)
            - _flags.isIndexing (always false)
            - _flags.isTesting (always false)

        * editing/cocoa/HTMLConverter.mm:
        (HTMLConverter::convert):
        (HTMLConverter::HTMLConverter):
        (HTMLConverter::~HTMLConverter):
        (defaultParagraphStyle):
        (_childrenForNode):
        (HTMLConverter::_stringForNode):
        (HTMLConverter::_getFloat):
        (_webKitBundle):
        (HTMLConverter::_elementIsBlockLevel):
        (HTMLConverter::_elementHasOwnBackgroundColor):
        (HTMLConverter::_blockLevelElementForNode):
        (HTMLConverter::_colorForNode):
        (HTMLConverter::_computedAttributesForElement):
        (HTMLConverter::_attributesForElement):
        (HTMLConverter::_newParagraphForElement):
        (HTMLConverter::_newLineForElement):
        (HTMLConverter::_newTabForElement):
        (_WebMessageDocumentClass):
        (HTMLConverter::_addAttachmentForElement):
        (HTMLConverter::_addQuoteForElement):
        (HTMLConverter::_addValue):
        (HTMLConverter::_fillInBlock):
        (HTMLConverter::_processMetaElementWithName):
        (HTMLConverter::_processHeadElement):
        (HTMLConverter::_enterElement):
        (HTMLConverter::_addTableForElement):
        (HTMLConverter::_addTableCellForElement):
        (HTMLConverter::_processElement):
        (HTMLConverter::_addMarkersToList):
        (HTMLConverter::_exitElement):
        (HTMLConverter::_processText):
        (HTMLConverter::_traverseNode):
        (HTMLConverter::_traverseFooterNode):
        (HTMLConverter::_adjustTrailingNewline):
        (HTMLConverter::_loadFromDOMRange):
        (fileWrapperForURL):
        (fileWrapperForElement):
        (WebCore::attributedStringFromRange):
        (WebCore::editingAttributedStringFromRange):

2014-03-23  Jinwoo Song  <jinwoo7.song@samsung.com>

        Remove Dead Stores from editing directory
        https://bugs.webkit.org/show_bug.cgi?id=130634

        Reviewed by Darin Adler.

        Remove Dead Stores from editing directory which assigning a value to a variable
        and never reading that value.

        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
        * editing/markup.cpp:
        (WebCore::createMarkupInternal):

2014-03-23  Hyowon Kim  <hw1008.kim@samsung.com>

        Move all EFL typedefs into EflTypedefs.h.
        https://bugs.webkit.org/show_bug.cgi?id=130511

        Reviewed by Gyuyoung Kim.

        * platform/FileSystem.h: Remove EFL typedefs.
        * platform/Widget.h: Ditto.
        * platform/efl/EflScreenUtilities.h: Ditto.
        * platform/graphics/Icon.h: Ditto.
        * platform/graphics/Image.h: Ditto.
        * platform/graphics/IntPoint.h: Ditto.
        * platform/graphics/IntRect.h: Ditto.
        * platform/network/NetworkStateNotifier.h: Ditto.

2014-03-23  Sam Weinig  <sam@webkit.org>

        Move HTMLConverter from platform/mac to editing/cocoa.

        Rubber-stamped by Darin Adler.

        * WebCore.xcodeproj/project.pbxproj:
        * editing/cocoa: Added.
        * editing/cocoa/HTMLConverter.h: Copied from platform/mac/HTMLConverter.h.
        * editing/cocoa/HTMLConverter.mm: Copied from platform/mac/HTMLConverter.mm.
        * platform/mac/HTMLConverter.h: Removed.
        * platform/mac/HTMLConverter.mm: Removed.

2014-03-23  Sam Weinig  <sam@webkit.org>

        Simplify the HTMLConverter interface (Part 2)
        https://bugs.webkit.org/show_bug.cgi?id=130654

        Reviewed by Darin Adler.

        Switch HTMLConverter from using an Objective-C interface to C functions.

        * WebCore.exp.in:
        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::writeSelectionToPasteboard):
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::dataSelectionForPasteboard):
        (WebCore::Editor::writeSelectionToPasteboard):
        * platform/ios/PasteboardIOS.mm:
        * platform/mac/HTMLConverter.h:
        * platform/mac/HTMLConverter.mm:
        (WebCore::attributedStringFromRange):
        (WebCore::editingAttributedStringFromRange):
        * platform/mac/PasteboardMac.mm:

2014-03-23  Darin Adler  <darin@apple.com>

        Remove code in HTMLObjectElement attribute parsing that forces style resolution and layout
        https://bugs.webkit.org/show_bug.cgi?id=130653

        Reviewed by Antti Koivisto.

        * dom/ContainerNode.cpp: Moved the post-attach callback code from here to
        StyleResolveTree.h/cpp.
        * dom/ContainerNode.h: Ditto.

        * dom/Document.cpp:
        (WebCore::Document::recalcStyle): Use Style::PostResolutionCallbackDisabler instead of
        PostAttachCallbackDisabler.

        * dom/Element.h: Moved the post-attach callback code from here to StyleResolveTree.h/cpp.

        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::parseAttribute): Simplified the code for typeAttr, turning
        it into a 1-liner. Added a FIXME in codeAttr about the fact that it does not have the
        code to trigger image loads. Changed srcAttr to call updateImageLoaderWithNewURLSoon to
        do the image loading logic.

        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::didAttachRenderers): Updated to use
        Style::queuePostResolutionCallback and use a lambda instead of a function.
        (WebCore::HTMLFormControlElement::didRecalcStyle): Ditto. Also added RefPtr instead
        of just using wishful thinking to keep the object alive.
        * html/HTMLFrameOwnerElement.cpp:
        (WebCore::HTMLFrameOwnerElement::scheduleSetNeedsStyleRecalc): Ditto.

        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseAttribute):: Simplified the code for typeAttr, turning
        it into a 1-liner. Changed dataAttr to use updateImageLoaderWithNewURLSoon(). Also made
        it call setNeedsWidgetUpdate(true) unconditionally after checking carefully to see that's
        harmless if there is no renderer. Changed classidAttr to call setNeedsWidgetUpdate(true)
        unconditionally and not set m_classId.
        (WebCore::HTMLObjectElement::shouldAllowQuickTimeClassIdQuirk): Use fastGetAttribute
        instead of classId and descendantsOfType instead of getElementsByTagName.
        (WebCore::HTMLObjectElement::hasValidClassId): Use fastGetAttribute instead of classId.
        (WebCore::HTMLObjectElement::renderFallbackContent): Use imageLoader instead of m_imageLoader.

        * html/HTMLObjectElement.h: Removed classId, since there is no reason to cache that
        attribute in a data member. Rearranged header, making more private, and fixing some typos,
        and doing a "using" instead of a function to disambiguate the inherited form functions.

        * html/HTMLPlugInImageElement.cpp:
        (WebCore::HTMLPlugInImageElement::HTMLPlugInImageElement): Initialize m_needsImageReload.
        (WebCore::HTMLPlugInImageElement::createElementRenderer): Fixed some code that assumed the
        first child of the shadow root is guaranteed to be an element.
        (WebCore::HTMLPlugInImageElement::didRecalcStyle): Added. Calls the new
        scheduleUpdateForAfterStyleResolution function.
        (WebCore::HTMLPlugInImageElement::didAttachRenderers): Moved all the logic from this
        function into scheduleUpdateForAfterStyleResolution. Also added a call through to the base
        class; cleaner even though it's just an assertion.
        (WebCore::HTMLPlugInImageElement::scheduleUpdateForAfterStyleResolution): Added.
        Schedules a call to updateAfterStyleResolution when needed.
        (WebCore::HTMLPlugInImageElement::updateAfterStyleResolution): Added.
        Combines updateWidgetIfNecessary and startLoadingImage, and also deals with the new
        m_needsImageReload boolean in cases where no actual loading is done.
        (WebCore::HTMLPlugInImageElement::removedFrom): Added. Do not delay the load event of
        document once this element is removed, clears m_needsImageReload.
        (WebCore::HTMLPlugInImageElement::didMoveToNewDocument): Removed null check on oldDocument,
        since m_needsDocumentActivationCallbacks can't be true if the old document was null.
        (WebCore::is100Percent): Added helper to make function below more readable.
        (WebCore::HTMLPlugInImageElement::subframeLoaderWillCreatePlugIn): Restructured the code a
        bit. The part that attracted my attention was the local variable of type RenderBox, which
        was named renderEmbeddedObject. Turns out the caller guarantees to only call this if there
        is a renderer of type RenderEmbeddedObject, so depend on that.
        (WebCore::HTMLPlugInImageElement::setNeedsImageReload): Added. When called with true, sets
        the flag and triggers a style recalculation, and lets updateAfterStyleResolution do the rest.
        When called with false, reverses the effects and stops delaying the load event.

        * html/HTMLPlugInImageElement.h: Trimmed includes a bit. Made more members private.
        Marked more function members final. Made a protected imageLoader function so that
        m_imageLoader can be private. Added new protected function updateImageLoaderWithNewURLSoon,
        as well as other new private functions. Made m_imageLoader be std::unique_ptr instead of
        OwnPtr, and added m_needsImageReload.

        * style/StyleResolveTree.cpp:
        (WebCore::Style::needsPseudoElement): Fixed spelling error in the name of this function.
        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded): Updated for name change.
        (WebCore::Style::attachRenderTree): Update for new name of PostResolutionCallbackDisabler.
        (WebCore::Style::updateBeforeOrAfterPseudoElement): Updated for name change.
        (WebCore::Style::postResolutionCallbackQueue): Added.
        (WebCore::Style::queuePostResolutionCallback): Added.
        (WebCore::Style::suspendMemoryCacheClientCalls): Added. This is a side effect of the original
        PostAttachCallbackDisabler that is now done in a cleaner way, using the callback queue, instead
        of as a special case. It should not work for multiple documents across multiple pages instead of
        only the outermost one.
        (WebCore::Style::PostResolutionCallbackDisabler::PostResolutionCallbackDisabler): Added.
        Calls suspendMemoryCacheClientCalls, but a FIXME tries to point out why that isn't so great.
        (WebCore::Style::PostResolutionCallbackDisabler::~PostResolutionCallbackDisabler): Added.
        (WebCore::Style::postResolutionCallbacksAreSuspended): Added.

        * style/StyleResolveTree.h: Added queuePostResolutionCallback and
        postResolutionCallbacksAreSuspended. Also added PostResolutionCallbackDisabler, which should
        eventually become a private implementation detail.

2014-03-23  Sam Weinig  <sam@webkit.org>

        Simplify the HTMLConverter interface (Part 1)
        https://bugs.webkit.org/show_bug.cgi?id=130654

        Reviewed by Dan Bernstein.

        Convert WebHTMLConverter's interface to only use class methods as the first
        step of simplifying the interface. 

        * editing/ios/EditorIOS.mm:
        (WebCore::attributedStringForRange):
        * editing/mac/EditorMac.mm:
        (WebCore::attributedStringForRange):
        * platform/mac/HTMLConverter.h:
        * platform/mac/HTMLConverter.mm:
        (+[WebHTMLConverter attributedStringFromRange:]):

2014-03-23  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: add other ARIA one-to-many relationships: owns, flowto, controls.
        https://bugs.webkit.org/show_bug.cgi?id=130635

        Reviewed by Timothy Hatcher.

        Support for @aria-owns, @aria-controls, and @aria-flowto.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/protocol/DOM.json:

2014-03-23  Simon Fraser  <simon.fraser@apple.com>

        Clean up #includes by geometry classes
        https://bugs.webkit.org/show_bug.cgi?id=130645

        Reviewed by Andreas Kling.

        Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
        classes brings in a lot of additional headers. Fix by adding a new
        GeometryUtilities file so that the basic files don't need Vector,
        and including GeometryUtilities.h where necessary.
        
        Also forward declare PrintStream.h and only bring in the header
        in implementation files.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSToStyleMap.h:
        * html/HTMLCanvasElement.cpp:
        * platform/cairo/WidgetBackingStoreCairo.h:
        * platform/graphics/FloatPoint.cpp:
        * platform/graphics/FloatPoint.h:
        * platform/graphics/FloatRect.cpp:
        * platform/graphics/FloatRect.h:
        * platform/graphics/FloatSize.cpp:
        * platform/graphics/FloatSize.h:
        * platform/graphics/GeometryUtilities.cpp: Added.
        (WebCore::findSlope):
        (WebCore::findIntersection):
        (WebCore::unionRect):
        (WebCore::mapRect):
        * platform/graphics/GeometryUtilities.h: Copied from Source/WebCore/platform/graphics/TextTrackRepresentation.h.
        * platform/graphics/IntPoint.h:
        * platform/graphics/IntRect.cpp:
        * platform/graphics/IntRect.h:
        * platform/graphics/IntSize.h:
        * platform/graphics/TextTrackRepresentation.h:
        * platform/graphics/Tile.h:
        * platform/graphics/texmap/coordinated/UpdateAtlas.h:
        * platform/gtk/WidgetBackingStoreGtkX11.h:
        * rendering/RenderBoxModelObject.cpp:
        * rendering/RenderImage.cpp:
        * rendering/RenderObject.cpp:

2014-03-23  Simon Fraser  <simon.fraser@apple.com>

        Clean up #includes by geometry classes
        https://bugs.webkit.org/show_bug.cgi?id=130645

        Reviewed by Andreas Kling.

        Pulling in <wtf/Vector.h> and <wtf/PrintStream.h> in the simple geometry
        classes brings in a lot of additional headers. Fix by adding a new
        GeometryUtilities file so that the basic files don't need Vector,
        and including GeometryUtilities.h where necessary.
        
        Also forward declare PrintStream.h and only bring in the header
        in implementation files.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSToStyleMap.h:
        * html/HTMLCanvasElement.cpp:
        * platform/cairo/WidgetBackingStoreCairo.h:
        * platform/graphics/FloatPoint.cpp:
        * platform/graphics/FloatPoint.h:
        * platform/graphics/FloatRect.cpp:
        * platform/graphics/FloatRect.h:
        * platform/graphics/FloatSize.cpp:
        * platform/graphics/FloatSize.h:
        * platform/graphics/GeometryUtilities.cpp: Added.
        (WebCore::findSlope):
        (WebCore::findIntersection):
        (WebCore::unionRect):
        (WebCore::mapRect):
        * platform/graphics/GeometryUtilities.h: Copied from Source/WebCore/platform/graphics/TextTrackRepresentation.h.
        * platform/graphics/IntPoint.h:
        * platform/graphics/IntRect.cpp:
        * platform/graphics/IntRect.h:
        * platform/graphics/IntSize.h:
        * platform/graphics/TextTrackRepresentation.h:
        * platform/graphics/Tile.h:
        * platform/gtk/WidgetBackingStoreGtkX11.h:
        * rendering/RenderBoxModelObject.cpp:
        * rendering/RenderImage.cpp:
        * rendering/RenderObject.cpp:

2014-03-22  Chang Shu  <cshu@webkit.org>

        Replace deprecatedIsCollapsibleWhitespace with RenderStyle::isCollapsibleWhiteSpace in TextIterator.
        https://bugs.webkit.org/show_bug.cgi?id=130612.

        Reviewed by Darin Adler.

        Some layout tests are affected by this change but the new behavior should be correct.

        * editing/TextIterator.cpp:
        (WebCore::TextIterator::handleTextNode):
        (WebCore::TextIterator::handleTextBox):

2014-03-22  Sam Weinig  <sam@webkit.org>

        Switch HTMLConverter to use CSSPropertyIDs to refer to CSS properties
        https://bugs.webkit.org/show_bug.cgi?id=130639

        Reviewed by Darin Adler.

        This is a ~15% speedup on PerformanceTests/Interactive/CopyAll.html.

        - Removes gratuitous lookup of CSS properties that are known at compile time.
        - Removes attempted use of non-supported CSS properties (font-effect and horizontal-align) 
          that will alway yield the same results.
        - Fix some obvious typos where the author thought they were testing for fontKerning or fontLigatures
          but instead used the non-existent font-effect.

        * platform/mac/HTMLConverter.mm:
        (HTMLConverterCaches::computedStylePropertyForElement):
        (HTMLConverterCaches::inlineStylePropertyForElement):
        (HTMLConverterCaches::propertyValueForNode):
        (-[WebHTMLConverter _stringForNode:property:]):
        (HTMLConverterCaches::floatPropertyValueForNode):
        (-[WebHTMLConverter _getFloat:forNode:property:]):
        (HTMLConverterCaches::isBlockElement):
        (HTMLConverterCaches::elementHasOwnBackgroundColor):
        (HTMLConverterCaches::colorPropertyValueForNode):
        (-[WebHTMLConverter _colorForNode:property:]):
        (-[WebHTMLConverter _computedAttributesForElement:]):
        (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
        (-[WebHTMLConverter _fillInBlock:forElement:backgroundColor:extraMargin:extraPadding:isTable:]):
        (-[WebHTMLConverter _addTableForElement:]):
        (-[WebHTMLConverter _addTableCellForElement:]):
        (-[WebHTMLConverter _processElement:tag:display:depth:]):
        (-[WebHTMLConverter _exitElement:tag:display:depth:startIndex:]):
        (-[WebHTMLConverter _processText:]):
        (-[WebHTMLConverter _traverseNode:depth:embedded:]):

2014-03-22  Andreas Kling  <akling@apple.com>

        Fix debug build.

        * bindings/js/JSDOMBinding.h:
        (WebCore::createWrapper):

2014-03-22  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Add *final* keyword to NavigatorContentUtils class
        https://bugs.webkit.org/show_bug.cgi?id=130636

        Reviewed by Darin Adler.

        NavigatorContentUtils won't be used as a base class. So, added final keyword.

        No new tests, no behavior changes.

        * Modules/navigatorcontentutils/NavigatorContentUtils.h:

2014-03-22  Andreas Kling  <akling@apple.com>

        CREATE_DOM_WRAPPER doesn't need the ExecState.
        <https://webkit.org/b/130648>

        Remove the ExecState parameter from CREATE_DOM_WRAPPER and get all
        that we need from the global object instead.

        toJS() and toJSNewlyCreated() still take an ExecState, that needs
        to be dealt with separately since some of them have scary looking
        currentWorld() checks.

        Reviewed by Darin Adler.

        * bindings/js/JSAudioContextCustom.cpp:
        (WebCore::JSAudioContextConstructor::constructJSAudioContext):
        * bindings/js/JSBlobCustom.cpp:
        (WebCore::toJS):
        (WebCore::JSBlobConstructor::constructJSBlob):
        * bindings/js/JSCDATASectionCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSCanvasRenderingContextCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSDOMBinding.h:
        (WebCore::createWrapper):
        (WebCore::wrap):
        (WebCore::createNewWrapper):
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSElementCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSEventCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSHTMLTemplateElementCustom.cpp:
        (WebCore::JSHTMLTemplateElement::content):
        * bindings/js/JSIDBAnyCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSImageDataCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::createWrapperInline):
        * bindings/js/JSPerformanceEntryCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSRTCIceCandidateCustom.cpp:
        (WebCore::JSRTCIceCandidateConstructor::constructJSRTCIceCandidate):
        * bindings/js/JSRTCPeerConnectionCustom.cpp:
        (WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):
        * bindings/js/JSRTCSessionDescriptionCustom.cpp:
        (WebCore::JSRTCSessionDescriptionConstructor::constructJSRTCSessionDescription):
        * bindings/js/JSSVGPathSegCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSStyleSheetCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSTextCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSTextTrackCueCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSTouchCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSTouchListCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSTrackCustom.cpp:
        (WebCore::toJS):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * dom/make_names.pl:
        (printWrapperFunctions):
        (printWrapperFactoryCppFile):
        (printWrapperFactoryHeaderFile):

2014-03-22  Michael Saboff  <msaboff@apple.com>

        toThis() on a JSWorkerGlobalScope should return a JSProxy and not undefined
        https://bugs.webkit.org/show_bug.cgi?id=130554

        Reviewed by Geoffrey Garen.

        Fixed toThis() on WorkerGlobalScope to return a JSProxy instead of the JSGlobalObject.
        Added cast from JSProxy->target() if the jsCast<>() to the native object fails
        in toJSDedicatedWorkerGlobalScope() and toJSSharedWorkerGlobalScope().
        The original cast is needed for access to the local side of the worker, while the JSProxy
        cast is used on the remote side of a worker.

        Test: fast/workers/worker-strict.html

        * bindings/js/JSWorkerGlobalScopeBase.cpp:
        (WebCore::toJSDedicatedWorkerGlobalScope):
        (WebCore::toJSSharedWorkerGlobalScope):

        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate): Changed to pass in the JSProxy and not
        the WorkerGlobalScope object as the this object to script evaluation.

        * workers/DedicatedWorkerGlobalScope.idl:
        * workers/SharedWorkerGlobalScope.idl:
        * workers/WorkerGlobalScope.idl:
        Added the new CustomProxyToJSObject attribute so we'll call to<{nativeClass}>() for
        getting the object to use for global evaluation.

2014-03-22  Simon Fraser  <simon.fraser@apple.com>

        Some #include hygiene in Node/Element etc
        https://bugs.webkit.org/show_bug.cgi?id=130642

        Reviewed by Geoffrey Garen.

        Clean up various #includes.

        * accessibility/AccessibilityObject.h:
        * bindings/js/WebCoreTypedArrayController.h:
        * dom/Element.h:
        * dom/EventListenerMap.h:
        * dom/EventTarget.h:
        * dom/Node.h:
        * rendering/RenderObject.h:
        * rendering/svg/RenderSVGRoot.h:

2014-03-22  Simon Fraser  <simon.fraser@apple.com>

        FloatRect.h on iOS should not suck in a system header
        https://bugs.webkit.org/show_bug.cgi?id=130641

        Reviewed by Geoff Garen.

        Don't pull in <CoreGraphics/CGGeometry.h> from FloatRect.h.

        * platform/graphics/FloatRect.h:

2014-03-22  Dan Bernstein  <mitz@apple.com>

        Fixed the iOS build.

        Reviewed by Darin Adler.

        * page/ios/FrameIOS.mm:
        (WebCore::Frame::interpretationsForCurrentRoot):

2014-03-22  Darin Adler  <darin@apple.com>

        Remove String::deprecatedCharacters
        https://bugs.webkit.org/show_bug.cgi?id=126854

        Reviewed by Sam Weinig.

        * bindings/scripts/StaticString.pm:
        (GenerateStrings): Remove the code to generate the null m_copyData16 pointer.

        * editing/TextIterator.cpp:
        (WebCore::SearchBuffer::prependContext): Changed to use the new append function in
        StringView.h and removed the one defined locally here.

        * editing/VisibleUnits.cpp:
        (WebCore::wordBreakIteratorForMinOffsetBoundary): Use the new append function
        in StringView.h instead of using deprecatedCharacters.
        (WebCore::wordBreakIteratorForMaxOffsetBoundary): Ditto.
        Removed an append function defined locally here and use the one in StringView.h.

        * editing/htmlediting.cpp:
        (WebCore::stringWithRebalancedWhitespace): Use StringView::getCharactersWithUpconvert.

        * html/parser/HTMLToken.h:
        (WebCore::HTMLToken::appendToAttributeValue): Changed to take a StringView instead
        of a const String&.

        * loader/appcache/ManifestParser.cpp:
        (WebCore::parseManifest): Use StringView and StringView::upconvertedCharacters.

        * page/EventSource.cpp:
        (WebCore::EventSource::didReceiveData): Use the new append overload from StringView.h.
        Also added a comment about incorrect use of the decode function.

        * page/ios/FrameIOS.mm:
        (WebCore::Frame::interpretationsForCurrentRoot): Use the new StringView append function.
        Also use simpler new-style for loops.

        * platform/LinkHash.cpp:
        (WebCore::visitedURLInline): Use the new append function and StringView::substring.
        (WebCore::visitedLinkHash): Use upconvertedCharacters for the non-8-bit case.

        * platform/URL.cpp:
        (WebCore::findFirstOf): Chagned to take a StringView.
        (WebCore::containsOnlyASCII): Added. Works on StringView. Could move to a WTF header in
        the future if it's needed elsewhere.
        (WebCore::protocolIs): Added. Works on StringView. Could put in URL.h if needed elsewhere,
        or consider replacing the one that takes const String& with just this one.
        (WebCore::appendEncodedHostname): Changed to take a StringView and use
        StringView::upconvertedCharacters.
        (WebCore::findHostnamesInMailToURL): Changed to take a StringView.
        (WebCore::findHostnameInHierarchicalURL): Ditto.
        (WebCore::encodeHostnames): Ditto.
        (WebCore::encodeRelativeString): Ditto.

        * platform/graphics/StringTruncator.cpp:
        (WebCore::StringTruncator::width): Use StringView::upconvertedCharacters.

        * platform/graphics/harfbuzz/HarfBuzzShaper.cpp:
        (WebCore::HarfBuzzShaper::setFontFeatures): Use indexing directly on the string instead
        of on a UChar*.
        (WebCore::HarfBuzzShaper::shapeHarfBuzzRuns): Use StringView::upconvertedCharacters.

        * platform/text/TextCodecICU.cpp:
        (WebCore::TextCodecICU::encode): Use a Vector<UChar> rather than a String to copy and
        replace the backslashes with yen signs. Also optimize case where there are no backslashes.

        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::paint): Use TextRun::setText(StringView).

        * rendering/RenderText.cpp:
        (WebCore::maxWordFragmentWidth): Pass a String to RenderBlock::constructTextRun instead of
        calling StringBuilder::deprecatedCharacters.

        * rendering/RenderText.h: Removed deprecatedCharacters function.

        * rendering/line/BreakingContextInlineHeaders.h: Added now-needed header include.

        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::constructTextRun): Use StringView version of TextRun constructor.

        * rendering/svg/SVGTextMetrics.cpp:
        (WebCore::SVGTextMetrics::SVGTextMetrics): Take references instead of pointers.
        (WebCore::SVGTextMetrics::constructTextRun): Take references instead of pointers, and don't
        take a character pointer any more. Instead, extract the text and use the StringView version of
        the TextRun constructor.
        (WebCore::SVGTextMetrics::measureCharacterRange): Take references instead of pointers and
        update for above changes.
        * rendering/svg/SVGTextMetrics.h: Updated for changes above. Also tweaked style a bit.

        * rendering/svg/SVGTextMetricsBuilder.cpp:
        (WebCore::SVGTextMetricsBuilder::advanceSimpleText): Updated for SVGTextMetrics changes.
        (WebCore::SVGTextMetricsBuilder::advanceComplexText): Ditto.
        (WebCore::SVGTextMetricsBuilder::initializeMeasurementWithTextRenderer): Ditto.
        (WebCore::SVGTextMetricsBuilder::measureTextRenderer): Change code to store a character
        for lastCharacter rather than storing a pointer to a character. Stop using TextRun::data16.

        * rendering/svg/SVGTextQuery.cpp:
        (WebCore::SVGTextQuery::subStringLengthCallback): Updated for SVGTextMetrics changes.
        (WebCore::SVGTextQuery::startPositionOfCharacterCallback): Ditto.
        (WebCore::SVGTextQuery::endPositionOfCharacterCallback): Ditto.
        (WebCore::calculateGlyphBoundaries): Ditto.

        * xml/XPathFunctions.cpp:
        (WebCore::XPath::atomicSubstring): Added.
        (WebCore::XPath::FunId::evaluate): Tweaked a bit to use a new style for loop.
        Use the atomicSubstring function to avoid making a temporary String just to make an AtomicString.
        That function also uses characters8/16 rather than depreccatedCharacters.

        * xml/XPathNodeSet.h: Added begin and end so this collection can be iterated with new style for loop.

        * xml/parser/XMLDocumentParserLibxml2.cpp:
        (WebCore::XMLDocumentParser::doWrite): Use StringView::upconvertedCharacters.
        (WebCore::parseAttributes): Ditto.

2014-03-22  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166118.
        https://bugs.webkit.org/show_bug.cgi?id=130640

        Crashing things (Requested by weinig on #webkit).

        Reverted changeset:

        "Switch HTMLConverter to use CSSPropertyIDs to refer to CSS
        properties"
        https://bugs.webkit.org/show_bug.cgi?id=130639
        http://trac.webkit.org/changeset/166118

2014-03-22  Sam Weinig  <sam@webkit.org>

        Switch HTMLConverter to use CSSPropertyIDs to refer to CSS properties
        https://bugs.webkit.org/show_bug.cgi?id=130639

        Reviewed by Simon Fraser.

        This is a ~15% speedup on PerformanceTests/Interactive/CopyAll.html.

        - Removes gratuitous lookup of CSS properties that are known at compile time.
        - Removes attempted use of non-supported CSS properties (font-effect and horizontal-align) 
          that will alway yield the same results.
        - Fix some obvious typos where the author thought they were testing for fontKerning or fontLigatures
          but instead used the non-existent font-effect.

        * platform/mac/HTMLConverter.mm:
        (HTMLConverterCaches::computedStylePropertyForElement):
        (HTMLConverterCaches::inlineStylePropertyForElement):
        (HTMLConverterCaches::propertyValueForNode):
        (-[WebHTMLConverter _stringForNode:property:]):
        (HTMLConverterCaches::floatPropertyValueForNode):
        (-[WebHTMLConverter _getFloat:forNode:property:]):
        (HTMLConverterCaches::isBlockElement):
        (HTMLConverterCaches::elementHasOwnBackgroundColor):
        (HTMLConverterCaches::colorPropertyValueForNode):
        (-[WebHTMLConverter _colorForNode:property:]):
        (-[WebHTMLConverter _computedAttributesForElement:]):
        (-[WebHTMLConverter _addAttachmentForElement:URL:needsParagraph:usePlaceholder:]):
        (-[WebHTMLConverter _fillInBlock:forElement:backgroundColor:extraMargin:extraPadding:isTable:]):
        (-[WebHTMLConverter _addTableForElement:]):
        (-[WebHTMLConverter _addTableCellForElement:]):
        (-[WebHTMLConverter _processElement:tag:display:depth:]):
        (-[WebHTMLConverter _exitElement:tag:display:depth:startIndex:]):
        (-[WebHTMLConverter _processText:]):
        (-[WebHTMLConverter _traverseNode:depth:embedded:]):

2014-03-21  Simon Fraser  <simon.fraser@apple.com>

        Don't flush compositing layers within FrameView::willPaintContents()
        https://bugs.webkit.org/show_bug.cgi?id=130627
        <rdar://problem/16368869>

        Reviewed by Sam Weinig.

        Remove the call to flushCompositingStateForThisFrame() here. We should
        have always flushed before painting via other mechanisms in WebKit2 and WebKit2.
        Flushing during painting is actually harmful, since we could be inside
        a CA commit already, and creating or destroying layers via flushing is bad.

        * page/FrameView.cpp:
        (WebCore::FrameView::willPaintContents):

2014-03-22  Martin Hodovan  <mhodovan@inf.u-szeged.hu>

        ASSERTION FAILED: std::isfinite(num) in WebCore::CSSPrimitiveValue::CSSPrimitiveValue
        https://bugs.webkit.org/show_bug.cgi?id=127361

        Huge numbers represented by the 'INF' value can not be used
        in CSS rules, so they make the assert fail. We have to make
        sure that the parsed property value is finite, otherwise
        the property will be dropped.

        Test: fast/css/infinite-floating-value.html

        * css/CSSValuePool.cpp:
        (WebCore::CSSValuePool::createValue):

2014-03-21  Zalan Bujtas  <zalan@apple.com>

        Remove redundant friending from class Image.
        https://bugs.webkit.org/show_bug.cgi?id=130628

        Reviewed by Simon Fraser.

        Those friend classes are subclasses. No need to make them friend of their parent class.

        No change in functionality.

        * platform/graphics/Image.h:

2014-03-21  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Reduce the tiling coverage to the current rect and 1 tile size ahead
        https://bugs.webkit.org/show_bug.cgi?id=130555

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * platform/ScrollView.h:
        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::computeTileCoverageRect):
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::setScrollVelocityInformation):
        (WebCore::ScrollView::computeCoverageRect):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):

2014-03-21  Eric Carlson  <eric.carlson@apple.com>

        [iOS] clean up fullscreen player controller when exiting fullscreen
        https://bugs.webkit.org/show_bug.cgi?id=130621

        Reviewed by Jer Noble.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (-[WebAVVideoLayer setBounds:]): Do nothing if _avPlayerController is nil.
        (-[WebAVVideoLayer setVideoLayerGravity:]): Ditto.
        (WebVideoFullscreenInterfaceAVKit::exitFullscreen): Set m_playerViewController delegate
            and player controller to nil.

2014-03-21  Eric Carlson  <eric.carlson@apple.com>

        [iOS] remote command callbacks must happen on the WebThread
        https://bugs.webkit.org/show_bug.cgi?id=130618

        Reviewed by Jer Noble.

        * platform/ios/RemoteCommandListenerIOS.h:
        (WebCore::RemoteCommandListenerIOS::createWeakPtr):
        * platform/ios/RemoteCommandListenerIOS.mm:
        (WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS): Dispatch commands to the
            main thread before making listener callbacks.

2014-03-21  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make <img> positioning subpixel aware.
        https://bugs.webkit.org/show_bug.cgi?id=130596

        Reviewed by Simon Fraser.

        Change <img> positioning from integral to device pixel. It enables us
        to paint hairline borders around <img> properly.
        This patch changes the behavior of broken image representation from constant 1 CSS px border
        to a dynamic 1 device px.

        Test: fast/images/hidpi-image-position-on-device-pixels.html

        * WebCore.exp.in:
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawImage):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::drawRect):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawRect):
        * platform/graphics/wince/GraphicsContextWinCE.cpp:
        (WebCore::GraphicsContext::drawRect):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::paintReplaced):
        (WebCore::RenderImage::paintIntoRect):
        * rendering/RenderImage.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::drawPlatformResizerImage):

2014-03-21  Brent Fulgham  <bfulgham@apple.com>

        Merge VTTScanner Code from Blink
        https://bugs.webkit.org/show_bug.cgi?id=130616

        Reviewed by Eric Carlson.

        Merged from Blink (patch by fs@opera.com):
        https://chromium.googlesource.com/chromium/blink/+/f1ceb058d574a1174b524c57f67350510a942071
        http://crbug.com/75273002
        https://chromium.googlesource.com/chromium/blink/+/3e2c67969486e86347b328c72c67cacabfe6f4a1
        http://crbug.com/134173002
        https://chromium.googlesource.com/chromium/blink/+/5962b7bbb001838f3fc7f24817637528b86bfd9b
        http://crbug.com/134153002
        https://chromium.googlesource.com/chromium/blink/+/6c81f51438013edca920a19fc6a31026fc562af2
        http://crbug.com/137033002
        https://chromium.googlesource.com/chromium/blink/+/fa286dca17a291da3ae8be80111e2264de6d5cfd
        http://crbug.com/140503004
        https://chromium.googlesource.com/chromium/blink/+/8f33b63aabcce7dd21dd15288d45c4eb37c02001
        http://crbug.com/139343006
        https://chromium.googlesource.com/chromium/blink/+/1872b54b908fac525f1ad9d6f15174b11e27c8af
        http://crbug.com/143983002
        https://chromium.googlesource.com/chromium/blink/+/e6494b3359e2077bd8772d86ab1fb709acf4c398
        http://crbug.com/144893002
 
        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * html/track/ParsingUtilities.h: Added.
        (skipExactly):
        (skipUntil):
        (skipWhile):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::markFutureAndPastNodes):
        (WebCore::VTTCue::settingName):
        (WebCore::scanPercentage):
        (WebCore::VTTCue::setCueSettings):
        * html/track/VTTCue.h:
        * html/track/VTTRegion.cpp:
        (WebCore::VTTRegion::setRegionSettings):
        (WebCore::VTTRegion::scanSettingName):
        (WebCore::parsedEntireRun):
        (WebCore::VTTRegion::parseSettingValue):
        * html/track/VTTRegion.h:
        * html/track/VTTScanner.cpp: Added.
        (WebCore::VTTScanner::VTTScanner):
        (WebCore::VTTScanner::scan):
        (WebCore::VTTScanner::scanRun):
        (WebCore::VTTScanner::skipRun):
        (WebCore::VTTScanner::extractString):
        (WebCore::VTTScanner::restOfInputAsString):
        (WebCore::VTTScanner::scanDigits):
        (WebCore::VTTScanner::scanFloat):
        * html/track/VTTScanner.h: Added.
        (WebCore::VTTScanner::Run::Run):
        (WebCore::VTTScanner::Run::start):
        (WebCore::VTTScanner::Run::end):
        (WebCore::VTTScanner::Run::isEmpty):
        (WebCore::VTTScanner::isAt):
        (WebCore::VTTScanner::isAtEnd):
        (WebCore::VTTScanner::match):
        (WebCore::VTTScanner::position):
        (WebCore::VTTScanner::end):
        (WebCore::VTTScanner::LCharPredicateAdapter):
        (WebCore::VTTScanner::Run::length):
        (WebCore::VTTScanner::scan):
        (WebCore::VTTScanner::skipWhile):
        (WebCore::VTTScanner::skipUntil):
        (WebCore::VTTScanner::collectWhile):
        (WebCore::VTTScanner::collectUntil):
        (WebCore::VTTScanner::seekTo):
        (WebCore::VTTScanner::currentChar):
        (WebCore::VTTScanner::advance):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::parseFloatPercentageValue):
        (WebCore::WebVTTParser::parseFloatPercentageValuePair):
        (WebCore::WebVTTParser::collectTimingsAndSettings):
        (WebCore::WebVTTParser::collectTimeStamp):
        (WebCore::WebVTTTreeBuilder::constructTreeFromToken):
        * html/track/WebVTTParser.h:

2014-03-21  Benjamin Poulain  <bpoulain@apple.com>

        Pseudo type cleanup part 2: split pseudo elements parsing
        https://bugs.webkit.org/show_bug.cgi?id=130370

        Reviewed by Andreas Kling.

        With this patch, pseudo elements are handled separately. The only thing left in
        the old path is compatibility pseudo elements and pseudo classes.

        The list of special pseudo elements is now separated and is stored in SelectorPseudoElementTypeMap.in.
        The script makeSelectorPseudoElementsMap.py takes that list to make the pseudo elements hash table.

        The other pseudo elements are the prefixed ones, they are filtered in CSSSelector::parsePseudoElementType().

        All the non-compatibility selectors are removed from SelectorPseudoTypeMap.in. CSSParserSelector::setPseudoTypeValue()
        is updated accordingly. The next step will be to clean that part.

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::CSSComputedStyleDeclaration):
        * css/CSSGrammar.y.in:
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::parsePseudoElementSelector):
        (WebCore::CSSParserSelector::parsePseudoCueFunctionSelector):
        (WebCore::CSSParserSelector::setPseudoTypeValue):
        * css/CSSParserValues.h:
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::parsePseudoElementType):
        * css/CSSSelector.h:
        * css/SelectorPseudoElementTypeMap.in: Added.
        * css/SelectorPseudoTypeMap.h:
        * css/SelectorPseudoTypeMap.in:
        * css/html.css:
        (q::before):
        (q::after):
        * css/makeSelectorPseudoElementsMap.py: Added.
        (enumerablePseudoType):
        (expand_ifdef_condition):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::getMatchedCSSRules):

2014-03-20  Andreas Kling  <akling@apple.com>

        Less inclusion of JSCInlines.h.
        <https://webkit.org/b/130545>

        Stop including JSCInlines.h from JSDOMGlobalObject.h!

        Reviewed by Simon Fraser.

        * ForwardingHeaders/runtime/IdentifierInlines.h: Added.
        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        * bindings/js/JSCommandLineAPIHostCustom.cpp:
        * bindings/js/JSDOMGlobalObject.h:
        * bindings/js/JSDOMStringMapCustom.cpp:
        * bindings/js/JSHTMLAllCollectionCustom.cpp:
        * bindings/js/JSHTMLFormControlsCollectionCustom.cpp:
        * bindings/js/JSLazyEventListener.cpp:
        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        * bindings/js/JSStorageCustom.cpp:
        * bindings/js/ScriptGlobalObject.cpp:
        * dom/NodeIterator.cpp:
        * dom/TreeWalker.cpp:
        * testing/Internals.cpp:
        * testing/js/WebCoreTestSupport.cpp:

2014-03-21  Oliver Hunt  <oliver@apple.com>

        Fix a crash when assigning an object to document.location
        https://bugs.webkit.org/show_bug.cgi?id=130213

        Reviewed by Geoffrey Garen.

        Convert location to string before we make use the document.
        This prevents us from attempting to navigate a frame that
        has already been removed.

        Test: fast/dom/navigation-with-sideeffects-crash.html

        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::JSDocument::location):
        (WebCore::JSDocument::setLocation):

2014-03-21  Brian Burg  <bburg@apple.com>

        Web Replay: replay controller is improperly setting user input bridge state
        https://bugs.webkit.org/show_bug.cgi?id=130606

        Reviewed by Timothy Hatcher.

        The user input bridge was being set based on the old session state,
        rather than the new session state.

        * replay/ReplayController.cpp:
        (WebCore::ReplayController::setSessionState):

2014-03-21  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: Expose Accessibility Tree children of the selected node
        https://bugs.webkit.org/show_bug.cgi?id=130264

        Reviewed by Timothy Hatcher.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        Expose the accessibility tree children (different from DOM children) of the
        current node in the accessibility node inspector.

        * inspector/InspectorDOMAgent.cpp: 
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/InspectorDOMAgent.h:
        * inspector/protocol/DOM.json:

2014-03-21  Alex Christensen  <achristensen@webkit.org>

        [Win] Compile fixes with video not enabled.
        https://bugs.webkit.org/show_bug.cgi?id=130597

        Reviewed by Darin Adler.

        * DerivedSources.make:
        Only generate UserAgentScripts.h if needed.
        * platform/audio/MediaSession.cpp:
        * platform/audio/MediaSessionManager.cpp:
        Only compile if video is enabled.

2014-03-21  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Optimize FEGaussian blur
        https://bugs.webkit.org/show_bug.cgi?id=50881

        Reviewed by Dirk Schulze.

        Currently boxBlur() will calculate the filter for each channel in
        a loop and also uses Uint8ClampedArray::set() to write the
        resulting pixels into destination array.

        Using Uint8ClampedArray::set() requires lots of unnecessary type
        conversions, not to mention other function calls. This patch
        updates the original written by Simon Fraser to apply cleanly to current
        trunk.

        It also implements code to handle EdgeModes and finally avoids use
        of ::set() in the newly added boxBlurAlphaOnly()
        function. Assignment of calculated pixel values rely on pointers.

        No new tests, no change on behavior.

        * platform/graphics/filters/FEGaussianBlur.cpp:
        (WebCore::boxBlurAlphaOnly): Specialized version for alpha only cases.
        (WebCore::boxBlur):

2014-03-21  Simon Fraser  <simon.fraser@apple.com>

        unobscuredContentRect() should have the same signature on iOS and other platforms,
        and should not recurse on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=130604
        <rdar://problem/16392587>

        Reviewed by Tim Horton and Beth Dakin.

        Having different signatures on different platforms is a recipe for
        build breakage. Give the iOS unobscuredContentRect() an unused 
        VisibleContentRectIncludesScrollbars parameter.
        
        Also avoid recursion via unobscuredContentRect() calling visibleContentRectInternal().

        * WebCore.exp.in:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::unobscuredContentRect):
        (WebCore::ScrollView::unobscuredContentRectInternal):
        (WebCore::ScrollView::visibleContentRectInternal):
        * platform/ScrollView.h:
        (WebCore::ScrollView::unobscuredContentRectIncludingScrollbars):
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::unobscuredContentRect):

2014-03-21  Brent Fulgham  <bfulgham@apple.com>

        Handle recovery on "timestamp-looking" lines in the WebVTT parser
        https://bugs.webkit.org/show_bug.cgi?id=130610

        Reviewed by Eric Carlson.

        Merged from Blink (patch by fs@opera.com):
        https://chromium.googlesource.com/chromium/blink/+/b669a380efbffe25f3b154b026b57b9822ce08e2
        http://crbug.com/75273002

        Tests: media/track/track-webvtt-tc031-cue-recovery.html
               media/track/track-webvtt-tc032-degenerate-cues.html

        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::parse):
        (WebCore::WebVTTParser::collectCueText):
        (WebCore::WebVTTParser::recoverCue):
        (WebCore::WebVTTParser::ignoreBadCue):
        * html/track/WebVTTParser.h:

2014-03-21  Andreas Kling  <akling@apple.com>

        Remove unused RenderView::repaintRectangleInViewAndCompositedLayers().
        <https://webkit.org/b/130605>

        Reviewed by Antti Koivisto.

        * rendering/RenderView.cpp:
        * rendering/RenderView.h:

2014-03-21  David Hyatt  <hyatt@apple.com>

        Crash in RenderBlock::addChildIgnoringAnonymousColumnBlocks.
        https://bugs.webkit.org/show_bug.cgi?id=129948
        <rdar://problem/16074072>
        
        Reviewed by Simon Fraser.

        When the marker was placed for multi-column list items, it was being inserted
        into the list item itself. Even though the add code in RenderBlock did the right
        thing and put the marker inside the multi-column flow thread, the list item code
        passed in a beforeChild that was computed using the incorrect parent. This resulted
        in the flow thread being used both as the parent of the marker and the sibling of
        the marker.
        
        The fix is to add some code to RenderListItem to make sure it uses the multi-column
        flow thread if it exists both as the parent of the marker and as the basis for the
        computation of the sibling that the marker should be placed in front of.

        Added fast/multicol/multicol-li-crash.html

        * rendering/RenderListItem.cpp:
        (WebCore::RenderListItem::insertOrMoveMarkerRendererIfNeeded):

2014-03-20  Andreas Kling  <akling@apple.com>

        Stop pulling in JSCInlines.h all over the place.
        <https://webkit.org/b/130105>

        JSDOMBinding.h is included by everyone and their uncle, so try to
        cut down on the amount of JSC *Inlines.h it includes.

        Reviewed by Geoff Garen.

        * ForwardingHeaders/heap/SlotVisitorInlines.h: Added.
        * ForwardingHeaders/runtime/JSCJSValueInlines.h: Added.
        * ForwardingHeaders/runtime/JSCellInlines.h: Added.
        * ForwardingHeaders/runtime/StructureInlines.h: Added.
        * bindings/js/JSDOMBinding.h:

2014-03-21  David Kilzer  <ddkilzer@apple.com>

        WindowFeatures.{x|y|width|height} are not initialized
        <http://webkit.org/b/130547>
        <rdar://problem/16383151>

        Reviewed by Darin Adler.

        Based on a Blink patch in CRBug 342591 by zhaoqin.

        * page/WindowFeatures.cpp:
        (WebCore::WindowFeatures::WindowFeatures):
        - Initialize x, y, width, height in String constructor.
        - Move 'resizeable' variable to short-hand initialization since
          it is true in both cases.
        - Use String::isEmpty() instead of checking its length.
        * page/WindowFeatures.h:
        (WebCore::WindowFeatures::WindowFeatures): Initialize x, y,
        width, height in no-argument constructor.

2014-03-21  Sergio Villar Senin  <svillar@igalia.com>

        Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T> in bridge/
        https://bugs.webkit.org/show_bug.cgi?id=130601

        Reviewed by Darin Adler.

        * bridge/IdentifierRep.cpp:
        (WebCore::identifierSet):
        (WebCore::intIdentifierMap):
        (WebCore::stringIdentifierMap):
        * bridge/NP_jsobject.cpp:
        (objectMap):
        * bridge/runtime_root.cpp:
        (JSC::Bindings::rootObjectSet): Return a reference instead of
        a pointer.
        (JSC::Bindings::findProtectingRootObject):
        (JSC::Bindings::findRootObject):
        (JSC::Bindings::RootObject::RootObject):
        (JSC::Bindings::RootObject::invalidate):

2014-03-21  Michael Saboff  <msaboff@apple.com>

        Change CodeGeneratorJS.pm special cases for "DOMWindow" to be general purpose
        https://bugs.webkit.org/show_bug.cgi?id=130553

        Reviewed by Geoffrey Garen.

        Eliminated 'if ($interfaceName eq "DOMWindow") {' sections in CodeGeneratorJS where
        it was used to do DOMWindow specific casting to a JSObject, either a JSDOMWindow* or
        a JSDOMWindowShell*.  Instead the code generator will use the existing 
        JSDOMWindow* toJSDOMWindow(JSValue value) function based on a newly added attribute
        "CustomProxyToJSObject".  That attribute will emit a call to the function
        ${className}* to${className}(JSValue).

        This is being done to clean up the code generator and for a subsequent patch that
        will use a similar custom to{className} function for workers,
        JSDedicatedWorkerGlobalScope* toJSDedicatedWorkerGlobalScope(JSValue).

        Changes covered by existing tests.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bindings/scripts/IDLAttributes.txt:
        * page/DOMWindow.idl:

2014-03-21  Krzysztof Czech  <k.czech@samsung.com>

        AX: Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed
        https://bugs.webkit.org/show_bug.cgi?id=130594

        Reviewed by Chris Fleizach.

        Use static NeverDestroyed<T> in new code.

        * accessibility/AccessibilityMediaControls.cpp:
        (WebCore::AccessibilityMediaControl::controlTypeName):
        (WebCore::AccessibilityMediaControl::title):
        (WebCore::AccessibilityMediaControlsContainer::elementTypeName):
        (WebCore::AccessibilityMediaTimeline::helpText):
        (WebCore::AccessibilityMediaTimeDisplay::accessibilityDescription):
        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::actionVerb):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::inheritsPresentationalRole):
        (WebCore::AccessibilityRenderObject::ariaLiveRegionStatus):
        (WebCore::AccessibilityRenderObject::ariaLiveRegionRelevant):
        (WebCore::AccessibilityRenderObject::actionVerb):
        * accessibility/atk/AXObjectCacheAtk.cpp:
        (WebCore::notifyChildrenSelectionChange):

2014-03-20  Brent Fulgham  <bfulgham@apple.com>

        Merge WebVTT Tokenizer Updates
        https://bugs.webkit.org/show_bug.cgi?id=130565

        Reviewed by Eric Carlson.

        Merged from Blink (patch by fs@opera.com):
        https://chromium.googlesource.com/chromium/blink/+/923db263aa65d6efd71c5b55708ad7eea6b23f53
        http://crbug.com/73813002
        https://chromium.googlesource.com/chromium/blink/+/48375b1d56b2d8850ae93a6c6fb01c69fae82c75
        http://crbug.com/77553004
        https://chromium.googlesource.com/chromium/blink/+/98d4fc4f5cb716a31d11907120b10538d4ba0f09
        http://crbug.com/78833002
        https://chromium.googlesource.com/chromium/blink/+/0e53d4f9f140e979b7f32de495551684bc7f4cd2
        http://crbug.com/81113003
        https://chromium.googlesource.com/chromium/blink/+/730ef1e7f9a1919964f7e74e7ccb2f343e10a148
        http://crbug.com/97103002
        https://chromium.googlesource.com/chromium/blink/+/c373ee914ffabeaf833939129538251d8f2f4eca
        http://crbug.com/98763004
        https://chromium.googlesource.com/chromium/blink/+/4ddb4d57948228fa05e49e06bd58a1179c09f212
        http://crbug.com/118263002
 
        * html/track/VTTCue.cpp:
        (WebCore::scanPercentage):
        (WebCore::VTTCue::setCueSettings):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTTreeBuilder::buildFromString):
        (WebCore::WebVTTTreeBuilder::constructTreeFromToken):
        * html/track/WebVTTToken.h:
        (WebCore::WebVTTToken::WebVTTToken):
        (WebCore::WebVTTToken::StringToken):
        (WebCore::WebVTTToken::StartTag):
        (WebCore::WebVTTToken::EndTag):
        (WebCore::WebVTTToken::TimestampTag):
        (WebCore::WebVTTToken::type):
        (WebCore::WebVTTToken::name):
        (WebCore::WebVTTToken::characters):
        (WebCore::WebVTTToken::classes):
        (WebCore::WebVTTToken::annotation):
        * html/track/WebVTTTokenizer.cpp:
        (WebCore::addNewClass):
        (WebCore::emitToken):
        (WebCore::advanceAndEmitToken):
        (WebCore::WebVTTTokenizer::WebVTTTokenizer):
        (WebCore::WebVTTTokenizer::nextToken):
        * html/track/WebVTTTokenizer.h:
        (WebCore::WebVTTTokenizer::shouldSkipNullCharacters):

2014-03-21  Frédéric Wang  <fred.wang@free.fr>

        Bug 130345 - Refine childShouldCreateRenderer for MathML elements
        https://bugs.webkit.org/show_bug.cgi?id=130345

        Reviewed by Chris Fleizach.

        This is a follow-up of bug 124128. We add more restrictions on foreign
        content of MathML elements.

        Tests: mathml/presentation/annotation-children.html
               mathml/presentation/foreign-element-in-token.html

        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::isPresentationMathML): fix line wrapping
        (WebCore::MathMLElement::isPhrasingContent):
        - move the function from MathMLSelectElement.cpp
        - add the constraint "is descendant of a map element" for area.
        (WebCore::MathMLElement::isFlowContent): new function to test flow content.
        (WebCore::MathMLElement::childShouldCreateRenderer):
        - remove annotation since it is now tested in MathMLTextElement
        - refine testing of annotation-xml
        - do not create renderer for text content in MathML. Such content is only allowed inside token elements.
        * mathml/MathMLElement.h: Declare isPhrasingContent and isFlowContent.
        * mathml/MathMLSelectElement.cpp: Add new function to test MathML/SVG/HTML encodings.
        (WebCore::MathMLSelectElement::isMathMLEncoding):
        (WebCore::MathMLSelectElement::isSVGEncoding):
        (WebCore::MathMLSelectElement::isHTMLEncoding):
        (WebCore::MathMLSelectElement::getSelectedSemanticsChild): use the new functions.
        * mathml/MathMLSelectElement.h: Declare the new public functions.
        * mathml/MathMLTextElement.cpp: remove the isPhrasingContent function.
        (WebCore::MathMLTextElement::childShouldCreateRenderer): Just in case, use the generic StyledElement::childShouldCreateRenderer.

2014-03-21  Darin Adler  <darin@apple.com>

        Stop using deprecatedCharacters in WebCore/platform/win
        https://bugs.webkit.org/show_bug.cgi?id=130515

        Reviewed by Brent Fulgham.

        * platform/graphics/TextRun.h:
        (WebCore::TextRun::TextRun): Add a constructor that takes a StringView.
        Later, we might want to exclusively use the StringView version and remove
        some of the others.
        (WebCore::TextRun::setText): Add a version of this function that takes a StringView.

        * platform/graphics/win/FontCacheWin.cpp:
        (WebCore::FontCache::systemFallbackForCharacters): Use StringView::getCharactersWithUpconvert.
        (WebCore::createGDIFont): Ditto.
        (WebCore::FontCache::getTraitsInFamily): Ditto.
        * platform/win/BString.cpp:
        (WebCore::BString::BString): Use StringView::upconvertedCharacters.
        * platform/win/ClipboardUtilitiesWin.cpp:
        (WebCore::createGlobalData): Use StringView::getCharactersWithUpconvert.
        * platform/win/FileSystemWin.cpp:
        (WebCore::pathByAppendingComponent): Use StringBuilder and StringView::getCharactersWithUpconvert.
        (WebCore::fileSystemRepresentation): Use StringView::upconvertedCharacters.
        * platform/win/PasteboardWin.cpp:
        (WebCore::filesystemPathFromUrlOrTitle): Use StringView::getCharactersWithUpconvert.
        (WebCore::Pasteboard::writeURLToDataObject): Ditto.
        (WebCore::createGlobalImageFileDescriptor): Ditto.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenuWin::calculatePositionAndSize): Use the new TextRun constructor.
        * platform/win/WebCoreTextRenderer.cpp:
        (WebCore::doDrawTextAtPoint): Ditto.

2014-03-21  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: RenderBox is positioned off by one when non-compositing transform is present.
        https://bugs.webkit.org/show_bug.cgi?id=130430

        Reviewed by Simon Fraser.

        div {
            position: absolute;
             top: 10.25px;
             left: 10.25px;
         }

         The <div> with (10.25px, 10.25px) is painted to (10.5px, 10.5px) after device pixel snapping on 2x display.
         Moving <div> to its own RenderLayer should not change the painting position.

         div {
             position: absolute;
             top: 10.25px;
             left: 10.25px;
             -webkit-transform: rotate(0deg);
         }

        When we paint the RenderLayer's content, the graphics context is translated by the rounded value of
        renderer's offset from parent.

            (10.25px,10.25px) -> rounded to (10.5px,10.5px).

        When the translate moves the graphics context's origin over the renderer's top-left position,
        the renderer's relative top-left coordinates end up being negative.

            Graphics context translated by (10.5px,10.5px) -> pushes renderer's relative top-left coords to (-0.25px,-0.25px)

        When we round (pixel snap) these negative coordinates, half-way values get translated to the wrong direction.

        (relative coords (-0.25px,-0.25px) -> pixel snapped to (-0.5px,-0.5px) -> final absolute(painting) coords (10px,10px))

        This patch changes the rounding to flooring to ensure that the relative top-left position never gets negative as the result
        of subpixel shifting.

        Tests: compositing/hidpi-box-positioned-off-by-one-when-non-compositing-transform-is-present.html
               fast/layers/hidpi-box-positioned-off-by-one-when-transform-is-present.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::computedTransform):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::updateTransform):
        (WebCore::RenderLayer::currentTransform):
        (WebCore::RenderLayer::paintLayerByApplyingTransform):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateTransform):
        * rendering/style/RenderStyle.cpp:
        * rendering/style/RenderStyle.h:
        * svg/SVGTextElement.cpp:
        (WebCore::SVGTextElement::animatedLocalTransform):

2014-03-21  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. iOS build fix after r166046.

        * WebCore.exp.in:

2014-03-21  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>

        Fix the !ENABLE(FILTERS) build
        https://bugs.webkit.org/show_bug.cgi?id=130394

        Reviewed by Gyuyoung Kim.

        Add missing includes in rendering to fix compile errors, and include JSC headers to ImageBuffer.h to fix linker errors.

        * platform/graphics/ImageBuffer.h:
        * rendering/svg/RenderSVGImage.cpp:
        * rendering/svg/RenderSVGRoot.cpp:

2014-03-21  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r166052.
        https://bugs.webkit.org/show_bug.cgi?id=130571

        It broke EFL build (Requested by KaL on #webkit).

        Reverted changeset:

        "[GTK] Use GMainLoopSource for idle and timeout sources in
        WebCore"
        https://bugs.webkit.org/show_bug.cgi?id=130078
        http://trac.webkit.org/changeset/166052

2014-03-21  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Add *explicit* keyword to avoid implicit type conversion
        https://bugs.webkit.org/show_bug.cgi?id=130568

        Reviewed by Antti Koivisto.

        Constructors of RemoteFontFaceSource, SVGDocumentExtensions, XMLDocumentParserScope,
        and WorkerScriptDebugServer need to use *explicit* keyword because they have an argument.
        Besides removed a meaningless argument name.

        * svg/SVGDocumentExtensions.h:
        * xml/parser/XMLDocumentParserScope.h:

2014-03-20  Sergio Villar Senin  <svillar@igalia.com>

        Modules: replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T>
        https://bugs.webkit.org/show_bug.cgi?id=130407

        Reviewed by Darin Adler.

        * Modules/encryptedmedia/CDM.cpp:
        (WebCore::installedCDMFactories):
        * Modules/mediasource/MediaSourceRegistry.cpp:
        (WebCore::MediaSourceRegistry::registry):
        * Modules/mediasource/MediaSourceRegistry.h:
        * Modules/mediastream/MediaStreamRegistry.cpp:
        (WebCore::MediaStreamRegistry::registry):

2014-03-20  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Use GMainLoopSource for idle and timeout sources in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=130078

        Reviewed by Philippe Normand.

        * platform/audio/gstreamer/AudioFileReaderGStreamer.cpp:
        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.cpp:
        * platform/graphics/gstreamer/InbandTextTrackPrivateGStreamer.h:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.h:
        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.h:
        * platform/graphics/gstreamer/VideoSinkGStreamer.cpp:
        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        * platform/gtk/GtkDragAndDropHelper.cpp:
        * platform/gtk/SharedTimerGtk.cpp:

2014-03-21  Andreas Kling  <akling@apple.com>

        HTMLFrameOwnerElement should obey the SubframeLoadingDisabler when creating subframes
        <rdar://problem/15675780>

        Merge Blink r156744 by Adam Klein.

        Test: fast/frames/set-iframe-src-in-pagehide-crash.html

        * loader/SubframeLoader.cpp:
        (WebCore::SubframeLoader::loadSubframe):

2014-03-21  Darin Adler  <darin@apple.com>

        Improve idiom used for string building in a few places
        https://bugs.webkit.org/show_bug.cgi?id=130561

        Reviewed by Andreas Kling.

        * Modules/indexeddb/IDBKeyData.cpp:
        (WebCore::IDBKeyData::loggingString): Use a StringBuilder, and get rid of
        an an unnecessary additional string allocation.

        * Modules/websockets/ThreadableWebSocketChannel.cpp:
        (WebCore::ThreadableWebSocketChannel::create): Use StringBuilder.

        * html/FTPDirectoryDocument.cpp:
        (WebCore::FTPDirectoryDocumentParser::createTDForFilename): Do a more efficient
        string concatenation.
        * html/ValidationMessage.cpp:
        (WebCore::ValidationMessage::updateValidationMessage): Ditto.

        * inspector/InspectorApplicationCacheAgent.cpp:
        (WebCore::InspectorApplicationCacheAgent::buildObjectForApplicationCacheResource):
        Use a StringBuilder.

        * inspector/InspectorStyleSheet.cpp: 
        (WebCore::InspectorStyle::shorthandValue): Use a StringBuilder.

        * inspector/InspectorStyleTextEditor.cpp:
        (WebCore::InspectorStyleTextEditor::insertProperty): Use a more efficient idiom
        for string concatenation.
        (WebCore::InspectorStyleTextEditor::internalReplaceProperty): Ditto.
        * loader/FormSubmission.cpp:
        (WebCore::appendMailtoPostFormDataToURL): Ditto.

        * page/Frame.cpp:
        (WebCore::createRegExpForLabels): Use a StringBuilder.

        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        (WebCore::InbandTextTrackPrivateAVF::processCueAttributes): Use a more efficient
        idiom for string concatenation.

        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::getUnmangledInfoLog): Use a StringBuilder.

        * platform/network/MIMEHeader.cpp:
        (WebCore::MIMEHeader::parseHeader): Use a more efficient idiom for string
        concatenation.
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::addHTTPHeaderField): Ditto.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::layerTreeAsText): Ditto.

        * rendering/RenderText.cpp:
        (WebCore::RenderText::secureText): Create a new string with the substring
        function rather than with the append function.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::setRequestHeaderInternal): Use a more efficient idiom
        for string concatenation.

2014-03-21  Darin Adler  <darin@apple.com>

        Add a combined decodeAndFlush to TextResourceDecoder
        https://bugs.webkit.org/show_bug.cgi?id=130560

        Reviewed by Andreas Kling.

        * WebCore.exp.in: Added new symbol for decodeAndFlush. Also re-did
        the geometry types #if so it would sort more logically.

        * fileapi/FileReaderLoader.cpp:
        (WebCore::FileReaderLoader::convertToText): Use decodeAndFlush.
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::cachedResourceContent): Ditto.
        * inspector/NetworkResourcesData.cpp:
        (WebCore::NetworkResourcesData::ResourceData::decodeDataToContent): Ditto.

        * loader/TextResourceDecoder.cpp:
        (WebCore::TextResourceDecoder::decodeAndFlush): Added.
        * loader/TextResourceDecoder.h: Ditto.

        * loader/appcache/ManifestParser.cpp:
        (WebCore::parseManifest): Use decodeAndFlush.
        * loader/cache/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::sheetText): Ditto.
        (WebCore::CachedCSSStyleSheet::finishLoading): Ditto.

        * loader/cache/CachedFont.cpp:
        (WebCore::CachedFont::ensureSVGFontData): Use decodeAndFlush. Also use nullptr.
        (WebCore::CachedFont::getSVGFontById): Use descendantsOfType<SVGFontElement>
        instead of using a NodeList. Much more efficient!

        * loader/cache/CachedSVGDocument.cpp:
        (WebCore::CachedSVGDocument::finishLoading): Use decodeAndFlush.
        * loader/cache/CachedScript.cpp:
        (WebCore::CachedScript::script): Ditto.
        * loader/cache/CachedXSLStyleSheet.cpp:
        (WebCore::CachedXSLStyleSheet::finishLoading): Ditto.
        * page/Page.cpp:
        (WebCore::Page::userStyleSheet): Ditto.

2014-03-20  Darin Adler  <darin@apple.com>

        Remove a couple of unused functions from CSSOMUtils
        https://bugs.webkit.org/show_bug.cgi?id=130558

        Reviewed by Andreas Kling.

        * css/CSSOMUtils.cpp: Remove String overloads. Callers all use the StringBuilder
        ones, which is good since that is a more efficient idiom.
        * css/CSSOMUtils.h: Ditto.

2014-03-20  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. iOS build fix after r166017, r166032.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::visibleContentRectInternal):

2014-03-20  Hyowon Kim  <hw1008.kim@samsung.com>

        Move to using std::unique_ptr for EFL objects.
        https://bugs.webkit.org/show_bug.cgi?id=129853

        Reviewed by Gyuyoung Kim.

        EflUniquePtr is a template alias of std::unique_ptr
        with a custom deleter for each Efl Objects, which is motivated by GUniquePtr.
        This patch replaces uses of OwnPtr and PassOwnPtr for Efl objects with EflUniquePtr.

        No new tests. No new functionality.

        * platform/efl/EflScreenUtilities.h:
        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::ThemePartCacheEntry::create):
        (WebCore::RenderThemeEfl::loadTheme):
        * platform/efl/RenderThemeEfl.h:
        * platform/graphics/Icon.h:
        * platform/graphics/efl/EvasGLContext.h:
        (WebCore::EvasGLContext::create):
        * platform/graphics/efl/EvasGLSurface.h:
        (WebCore::EvasGLSurface::create):

2014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [EFL][GTK] Get CMake to find Freetype2 properly
        https://bugs.webkit.org/show_bug.cgi?id=130150

        Reviewed by Martin Robinson.

        Newer versions of CMake are not able to find Freetype2 correctly.
        FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
        freetype2 repo, because a completely different version number is found in freetype2.pc.

        * PlatformEfl.cmake:
        * PlatformGTK.cmake:

2014-03-20  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Suppress errors about using gdk_threads_enter gdk_threads_leave
        https://bugs.webkit.org/show_bug.cgi?id=130517

        Reviewed by Sergio Villar Senin.

        * plugins/gtk/gtk2xtbin.c: Use GCC suppression to suppress errors about deprecations.

2014-03-20  Simon Fraser  <simon.fraser@apple.com>

        Cleanup in aisle r166017.
        
        visibleContentRectInternal() was dropping the scrollbar
        inclusiveness on the floor, and we need to reset the top inset
        between tests.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::visibleContentRectInternal):
        * testing/Internals.cpp:
        (WebCore::Internals::resetToConsistentState):

2014-03-20  Enrica Casucci  <enrica@apple.com>

        Build fix.

        Removing unused variable.
        
        * page/FrameView.cpp:
        (WebCore::FrameView::didPaintContents):

2014-03-20  Brent Fulgham  <bfulgham@apple.com>

        Rename TextTrackRegion/TextTrackRegionList to VTTRegion/VTTRegionList
        https://bugs.webkit.org/show_bug.cgi?id=130543

        Reviewed by Dean Jackson.

        Merged from Blink (patch by philipj@opera.com):
        https://chromium.googlesource.com/chromium/blink/+/69ee6d3399d64163e4936ac1bde222036c54c4b8
        http://crbug.com/55653003

        Tests: media/track/regions-webvtt/vtt-region-constructor.html
               media/track/regions-webvtt/vtt-region-display.html
               media/track/regions-webvtt/vtt-region-dom-layout.html
               media/track/regions-webvtt/vtt-region-list.html
               media/track/regions-webvtt/vtt-region-parser.html

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
        * html/track/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::newRegionsAvailable):
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::ensureVTTRegionList):
        (WebCore::TextTrack::regions):
        (WebCore::TextTrack::addRegion):
        (WebCore::TextTrack::removeRegion):
        * html/track/TextTrack.h:
        * html/track/TextTrack.idl:
        * html/track/TextTrackCue.cpp:
        * html/track/TextTrackRegion.cpp: Removed.
        * html/track/TextTrackRegion.h: Removed.
        * html/track/TextTrackRegion.idl: Removed.
        * html/track/TextTrackRegionList.cpp: Removed.
        * html/track/TextTrackRegionList.h: Removed.
        * html/track/TextTrackRegionList.idl: Removed.
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::removeDisplayTree):
        * html/track/VTTRegion.cpp: Copied from Source/WebCore/html/track/TextTrackRegion.cpp.
        (WebCore::VTTRegion::VTTRegion):
        (WebCore::VTTRegion::~VTTRegion):
        (WebCore::VTTRegion::setTrack):
        (WebCore::VTTRegion::setId):
        (WebCore::VTTRegion::setWidth):
        (WebCore::VTTRegion::setHeight):
        (WebCore::VTTRegion::setRegionAnchorX):
        (WebCore::VTTRegion::setRegionAnchorY):
        (WebCore::VTTRegion::setViewportAnchorX):
        (WebCore::VTTRegion::setViewportAnchorY):
        (WebCore::VTTRegion::scroll):
        (WebCore::VTTRegion::setScroll):
        (WebCore::VTTRegion::updateParametersFromRegion):
        (WebCore::VTTRegion::setRegionSettings):
        (WebCore::VTTRegion::getSettingFromString):
        (WebCore::VTTRegion::parseSettingValue):
        (WebCore::VTTRegion::parseSetting):
        (WebCore::VTTRegion::textTrackCueContainerScrollingClass):
        (WebCore::VTTRegion::textTrackCueContainerShadowPseudoId):
        (WebCore::VTTRegion::textTrackRegionShadowPseudoId):
        (WebCore::VTTRegion::appendTextTrackCueBox):
        (WebCore::VTTRegion::displayLastTextTrackCueBox):
        (WebCore::VTTRegion::willRemoveTextTrackCueBox):
        (WebCore::VTTRegion::getDisplayTree):
        (WebCore::VTTRegion::prepareRegionDisplayTree):
        (WebCore::VTTRegion::startTimer):
        (WebCore::VTTRegion::stopTimer):
        (WebCore::VTTRegion::scrollTimerFired):
        * html/track/VTTRegion.h: Copied from Source/WebCore/html/track/TextTrackRegion.h.
        (WebCore::VTTRegion::create):
        * html/track/VTTRegion.idl: Copied from Source/WebCore/html/track/TextTrackRegion.idl.
        * html/track/VTTRegionList.cpp: Copied from Source/WebCore/html/track/TextTrackRegionList.cpp.
        (WebCore::VTTRegionList::VTTRegionList):
        (WebCore::VTTRegionList::length):
        (WebCore::VTTRegionList::item):
        (WebCore::VTTRegionList::getRegionById):
        (WebCore::VTTRegionList::add):
        (WebCore::VTTRegionList::remove):
        (WebCore::VTTRegionList::clear):
        * html/track/VTTRegionList.h: Copied from Source/WebCore/html/track/TextTrackRegionList.h.
        (WebCore::VTTRegionList::create):
        (WebCore::VTTRegionList::~VTTRegionList):
        * html/track/VTTRegionList.idl: Copied from Source/WebCore/html/track/TextTrackRegionList.idl.
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::parseFloatPercentageValue):
        (WebCore::WebVTTParser::getNewRegions):
        (WebCore::WebVTTParser::createNewRegion):
        * html/track/WebVTTParser.h:
        * loader/TextTrackLoader.cpp:
        (WebCore::TextTrackLoader::getNewRegions):
        * loader/TextTrackLoader.h:

2014-03-20  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build.

        * page/FrameView.cpp:
        (WebCore::FrameView::willPaintContents):
        (WebCore::FrameView::didPaintContents):

2014-03-20  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] clamp RasterShape shapeMargin to reference box size
        https://bugs.webkit.org/show_bug.cgi?id=130350

        Reviewed by Dean Jackson.

        Corrected the way the maximum shape-margin value was computed for image valued
        shapes. The limiting case is an image with just one above threshold pixel. The
        largest possible value for shapeMargin is the radius of a circle that encloses
        the size of the shape-outside element's margin-box, since the shape-outside's
        boundary is clipped to the margin-box. The radius is just sqrt(2) * the margin-box's
        largest dimension.

        Also cleaned up up a few poorly named parameters.

        Test: fast/shapes/shape-outside-floats/shape-outside-one-pixel.html

        * rendering/shapes/RasterShape.cpp:
        (WebCore::RasterShape::marginIntervals):
        * rendering/shapes/RasterShape.h:
        (WebCore::RasterShape::RasterShape):
        * rendering/shapes/Shape.h:

2014-03-20  Beth Dakin  <bdakin@apple.com>

        Build fix.

        * page/FrameView.cpp:
        (WebCore::FrameView::paintContents):

2014-03-20  Beth Dakin  <bdakin@apple.com>

        Implement contentInset for Mac WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=130273

        Reviewed by Simon Fraser.

        This patch adds support for topContentInset(). If a page has a topContentInset(), 
        the root layer’s position is adjusted to account for the inset. It is assumed that 
        the area accounted for by the inset is visible but obscured, so scrollbars need to 
        be moved so that they only cover the non-obscured area, and most parts of WebCore 
        that wonder about visibleContentSize only care about the unobscured area, so this 
        patch makes that visibleContentRect return the unobscuredRect. Finally since this 
        is achieved by moving a layer’s position, the topContentInset() also needs to be 
        factored into various functions that are used to convert between coordinate 
        spaces. 

        Return Page::topContentInset() if this is the main frame.
        * page/FrameView.cpp:
        (WebCore::FrameView::topContentInset):
        * page/FrameView.h:

        Cache the inset on Page.
        * page/Page.cpp:
        (WebCore::Page::Page):
        * page/Page.h:
        (WebCore::Page::topContentInset):
        (WebCore::Page::setTopContentInset):

        unobscuredContentRect() used to unconditionally return visibleContentRect() on 
        non-iOS platforms. Now that it is possible for some technically visible content to 
        be obscured, this code needed to be re-worked a bit to make some more sense. 
        visibleContentRect() now represents that visible content that is completely 
        unobscured, so it should call into unobscuredContentRect() rather than the other 
        way around.
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::unobscuredContentRect):

        unscaledTotalVisibleContentSize() includes the size of all content that might be 
        visible. Some of this content might be obscured.
        (WebCore::ScrollView::unscaledTotalVisibleContentSize):

        Most of the time, we only care about the content that is FULLY visible. That is 
        what you get from unscaledUnobscuredVisibleContentSize().
        (WebCore::ScrollView::unscaledUnobscuredVisibleContentSize):

        Use the unobscured size for these computations.
        (WebCore::ScrollView::visibleContentRectInternal):
        (WebCore::ScrollView::layoutSize):

        Factor in the topContentInset().
        (WebCore::ScrollView::scrollOffsetRelativeToDocument):
        (WebCore::ScrollView::scrollPositionRelativeToDocument):

        The scrollbars should be positioned to cover the non-obscured content only. 
        (WebCore::ScrollView::updateScrollbars):

        Again, factor the topContentInset() into these conversions since the root layer’s 
        position has been adjusted to account for it.
        (WebCore::ScrollView::contentsToRootView):
        (WebCore::ScrollView::contentsToWindow):

         Just like the scrollbars, the scroll corner must be moved the account for the 
        inset.
        (WebCore::ScrollView::scrollCornerRect):
        * platform/ScrollView.h:
        (WebCore::ScrollView::topContentInset):

        RenderLayerCompositor cares about unscaledTotalVisibleContentSize(). It does not 
        care if some of that content is obscured.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::frameViewDidChangeSize):

        Move the root layer’s position based on the contentInset.
        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
        (WebCore::RenderLayerCompositor::ensureRootLayer):

        Allow setting contentInset via Internals for testing purposes.
        * testing/Internals.cpp:
        (WebCore::Internals::setTopContentInset):
        * testing/Internals.h:
        * testing/Internals.idl:

2014-03-20  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>

        Optimize RenderTable::colToEffCol() for tables without colspans
        https://bugs.webkit.org/show_bug.cgi?id=129298

        Reviewed by Simon Fraser.

        Create an alternative fast path to RenderTable colToEffCol() and effColToCol()
        when there is no colspan or colspan does not exceed the width of table.
        Blink merge https://codereview.chromium.org/154243002 by rhogan

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable):
        (WebCore::RenderTable::appendColumn):
        (WebCore::RenderTable::recalcSections):
        * rendering/RenderTable.h:
        (WebCore::RenderTable::colToEffCol):
        (WebCore::RenderTable::effColToCol):
        (WebCore::RenderTable::hasCellColspanThatDeterminesTableWidth):

2014-03-20  Simon Fraser  <simon.fraser@apple.com>

        FrameView::paintContents() is not called for composited content
        https://bugs.webkit.org/show_bug.cgi?id=130541

        Reviewed by Beth Dakin.

        FrameView::paintContents() is not called for frames that have
        composited contents, yet it contains code that is expected
        to run for all Frames.
        
        Fix by factoring into will/didPaintContents(), and calling
        the will/did functions from RenderLayerBacking::paintIntoLayer().
        
        Also add a SetLayoutNeededForbiddenScope check for composited-layer
        painting.

        * page/FrameView.cpp:
        (WebCore::FrameView::updateControlTints):
        (WebCore::FrameView::willPaintContents):
        (WebCore::FrameView::didPaintContents):
        (WebCore::FrameView::paintContents):
        * page/FrameView.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintIntoLayer):

2014-03-20  Tim Horton  <timothy_horton@apple.com>

        Fix the Mountain Lion build.

        * platform/graphics/cocoa/IOSurface.mm:
        (IOSurface::setIsPurgeable):

2014-03-20  Brian Burg  <bburg@apple.com>

        Web Replay: capture and replay mouse events
        https://bugs.webkit.org/show_bug.cgi?id=129395

        Reviewed by Joseph Pecoraro.

        Add support for capturing and replaying mouse inputs that come from WebKit2.
        Hook up the UserInputBridge to session state changes in the ReplayController so
        that the bridge knows when to capture or deny mouse inputs.

        Test: ManualTests/inspector/replay-mouse-events.html

        * platform/PlatformEvent.h: Give explicit storage types to Modifiers and Type enums
        so they can be forward-declared.
        * platform/PlatformMouseEvent.h: Give an explicit storage type to enum MouseButton.
        Add operator== and operator!= for MouseButton to work around an MSVC bug.

        * replay/ReplayController.cpp: Perform session state changes in a helper function, and
        at the same time change the state of the page's user input bridge.
        (WebCore::ReplayController::setSessionState):
        (WebCore::ReplayController::startCapturing):
        (WebCore::ReplayController::stopCapturing):
        (WebCore::ReplayController::startPlayback):
        (WebCore::ReplayController::cancelPlayback):

        * replay/ReplayInputDispatchMethods.cpp: Add dispatch methods for new inputs.
        (WebCore::HandleMouseMove::dispatch):
        (WebCore::HandleMousePress::dispatch):
        (WebCore::HandleMouseRelease::dispatch):

        * replay/SerializationMethods.cpp: Add helper macros so that encode/decode methods look
        symmetric with one data member per line. This helps reduce unintentional inconsistencies.
        (JSC::EncodingTraits<PlatformMouseEvent>::encodeValue): Added.
        (JSC::EncodingTraits<PlatformMouseEvent>::decodeValue): Added.
        * replay/SerializationMethods.h:

        * replay/UserInputBridge.cpp: Fill in the bridge method implementations for mouse
        events, adding helpers and macros as necessary to reduce boilerplate.
        (WebCore::UserInputBridge::activeCursor): Added.
        (WebCore::UserInputBridge::handleMousePressEvent):
        (WebCore::UserInputBridge::handleMouseReleaseEvent):
        (WebCore::UserInputBridge::handleMouseMoveEvent):
        (WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):

        * replay/UserInputBridge.h: Add a bridge state enum along with getters and setters.
        The enum value controls whether the bridge should capture commands, deny non-synthetic
        commands (from the user), or allow anything to pass (the default).
        (WebCore::UserInputBridge::setState): Added.
        (WebCore::UserInputBridge::state): Added.

        * replay/WebInputs.json: Add inputs HandleMouseMove, HandleMousePress, HandleMouseRelease.
        Add enum definitions for PlatformEvent::Type, PlatformEvent::Modifiers, and PlatformMouseEvent::MouseButton.
        Alphabetize the existing data type definitions.

2014-03-20  Tim Horton  <timothy_horton@apple.com>

        Add WebCore::IOSurface wrapper
        https://bugs.webkit.org/show_bug.cgi?id=130529

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/cg/ColorCG.cpp:
        * platform/graphics/cg/GraphicsContextCG.h:
        (WebCore::cachedCGColorSpace):
        Move cachedCGColorSpace out so that other clients of GraphicsContextCG
        can use its mapping from WebCore::ColorSpace -> CGColorSpaceRef.

        * platform/graphics/cg/ImageBufferBackingStoreCache.cpp:
        * platform/graphics/cg/ImageBufferCG.cpp:
        Add FIXMEs for ImageBuffer to adopt WebCore::IOSurface.

        * platform/graphics/cocoa/IOSurface.h: Added.
        * platform/graphics/cocoa/IOSurface.mm: Added.
        (IOSurface::create):
        (IOSurface::createFromMachPort):
        (IOSurface::createFromSurface):
        (IOSurface::IOSurface):
        (IOSurface::maximumSize):
        (IOSurface::createMachPort):
        (IOSurface::createImage):
        (IOSurface::ensurePlatformContext):
        (IOSurface::ensureGraphicsContext):
        (IOSurface::state):
        (IOSurface::isPurgeable):
        (IOSurface::setIsPurgeable):
        (IOSurface::inUse):
        Add WebCore::IOSurface.

2014-03-20  Pratik Solanki  <psolanki@apple.com>

        iOS build fix after r165992.

        * generate-export-file:
        (preprocessorMacros):

2014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WebRTC] Moving RTCConfiguration and RTCIceServer to Modules/mediastream
        https://bugs.webkit.org/show_bug.cgi?id=130434

        Reviewed by Eric Carlson.

        Those classes are defined in WebRTC spec, so they should not be in platform layer.
        Adding a platform implementation to be passed to handler classes.

        * Modules/mediastream/RTCConfiguration.h: Copied from Source/WebCore/platform/mediastream/RTCConfiguration.h.
        * Modules/mediastream/RTCIceServer.h: Copied from Source/WebCore/platform/mediastream/RTCIceServer.h.
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        (WebCore::RTCPeerConnection::updateIce):
        * WebCore.xcodeproj/project.pbxproj:
        * platform/mediastream/RTCConfigurationPrivate.h: Added.
        * platform/mediastream/RTCIceServerPrivate.h: Added.
        * platform/mediastream/RTCPeerConnectionHandler.h:
        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
        (WebCore::RTCPeerConnectionHandlerMock::initialize):
        (WebCore::RTCPeerConnectionHandlerMock::updateIce):
        * platform/mock/RTCPeerConnectionHandlerMock.h:

2014-03-20  Alex Christensen  <achristensen@webkit.org>

        [WinCairo] Unreviewed speculative build after my r165996.

        * platform/network/soup/AuthenticationChallengeSoup.cpp:
        * platform/network/soup/CertificateInfo.cpp:
        * platform/network/soup/CookieJarSoup.cpp:
        * platform/network/soup/ResourceRequestSoup.cpp:
        * platform/network/soup/ResourceResponseSoup.cpp:
        * platform/network/soup/SynchronousLoaderClientSoup.cpp:

2014-03-20  Brent Fulgham  <bfulgham@apple.com>

        Add a flushing mechanism for the WebVTTParser
        https://bugs.webkit.org/show_bug.cgi?id=130532

        Reviewed by Eric Carlson.

        Merged from Blink (patch by vcarbune@chromium.org):
        https://chromium.googlesource.com/chromium/blink/+/1ac2b3081492ab8661429230004013a9a3623f0f
        http://crbug.com/54203003
        https://chromium.googlesource.com/chromium/blink/+/24343d32bc36d20d59ef3e10040faddde65929e6
        http://crbug.com/59453002
        https://chromium.googlesource.com/chromium/blink/+/ef2793f1d9d207389589ecf9a136ea5c7170b4af
        http://crbug.com/75233002
        https://chromium.googlesource.com/chromium/blink/+/a29f2f8324abcd4826b41e7dc34373dee2ec57a9
        http://crbug.com/52713005
        https://chromium.googlesource.com/chromium/blink/+/7ce003c8d47b39f116f1f2a592a5dfb4a9e77228
        http://crbug.com/64303004
        https://chromium.googlesource.com/chromium/blink/+/18f896b3498478311e880f782813d5dfc8c0c7d1
        http://crbug.com/96933004
        https://chromium.googlesource.com/chromium/blink/+/8670e8ecb13254a651f5493ec83f4484d18c154e
        http://crbug.com/98783005
        https://chromium.googlesource.com/chromium/blink/+/4ac55780a6af3d76e0159c1d145330964ad56647
        http://crbug.com/104713002

        Tests: http/tests/media/track/track-webvtt-slow-loading-2.html
               http/tests/media/track/track-webvtt-slow-loading.html

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * html/track/BufferedLineReader.cpp: Added.
        * html/track/BufferedLineReader.h: Added.
        * html/track/TextTrackRegion.cpp:
        * html/track/VTTCue.cpp:
        * html/track/WebVTTParser.cpp:
        * html/track/WebVTTParser.h:
        * loader/TextTrackLoader.cpp:

2014-03-20  Alex Christensen  <achristensen@webkit.org>

        Preparation for using Soup on Windows.
        https://bugs.webkit.org/show_bug.cgi?id=130472

        Reviewed by Brent Fulgham.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        Added Soup source to build on WinCairo.
        * platform/network/curl/CookieJarCurl.cpp:
        * platform/network/curl/CredentialStorageCurl.cpp:
        * platform/network/curl/CurlCacheEntry.cpp:
        * platform/network/curl/CurlCacheManager.cpp:
        * platform/network/curl/CurlDownload.cpp:
        * platform/network/curl/DNSCurl.cpp:
        * platform/network/curl/FormDataStreamCurl.cpp:
        * platform/network/curl/MultipartHandle.cpp:
        * platform/network/curl/ProxyServerCurl.cpp:
        * platform/network/curl/ResourceHandleCurl.cpp:
        * platform/network/curl/ResourceHandleManager.cpp:
        * platform/network/curl/SSLHandle.cpp:
        * platform/network/curl/SocketStreamHandleCurl.cpp:
        Protected with USE(CURL) to avoid duplicate symbols when linking.
        * platform/network/soup/AuthenticationChallengeSoup.cpp:
        * platform/network/soup/CertificateInfo.cpp:
        * platform/network/soup/CookieJarSoup.cpp:
        * platform/network/soup/CookieStorageSoup.cpp:
        * platform/network/soup/CredentialStorageSoup.cpp:
        * platform/network/soup/DNSSoup.cpp:
        * platform/network/soup/NetworkStorageSessionSoup.cpp:
        * platform/network/soup/ProxyResolverSoup.cpp:
        * platform/network/soup/ProxyServerSoup.cpp:
        * platform/network/soup/ResourceErrorSoup.cpp:
        * platform/network/soup/ResourceHandleSoup.cpp:
        * platform/network/soup/ResourceRequestSoup.cpp:
        * platform/network/soup/ResourceResponseSoup.cpp:
        * platform/network/soup/SocketStreamHandleSoup.cpp:
        * platform/network/soup/SoupNetworkSession.cpp:
        * platform/network/soup/SynchronousLoaderClientSoup.cpp:
        Protected with USE(CURL) to avoid duplicate symbols when linking.

2014-03-20  Pratik Solanki  <psolanki@apple.com>

        iOS build fix after r165979.

        * generate-export-file:
        (preprocessorMacros):

2014-03-20  David Hyatt  <hyatt@apple.com>

        [New Multicolumn] getClientRects returns wrong rectangle
        https://bugs.webkit.org/show_bug.cgi?id=128614

        Reviewed by Sam Weinig.

        Added fast/multicol/newmulticol/client-rects.html and beefed up existing
        fast/multicol/client-rects.html to use more writing modes.

        * rendering/LayoutState.h:
        Removed unused function.

        * rendering/RenderFlowThread.h:
        Make mapFlowToRegion virtual so that RenderMultiColumnFlowThread can
        override it.

        * rendering/RenderMultiColumnFlowThread.cpp:
        (WebCore::RenderMultiColumnFlowThread::mapFromFlowToRegion):
        * rendering/RenderMultiColumnFlowThread.h:
        Implement mapFlowToRegion to correctly translate a flow thread position
        into a column offset within a region.

        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::columnTranslationForOffset):
        (WebCore::RenderMultiColumnSet::adjustRegionBoundsFromFlowThreadPortionRect):
        * rendering/RenderMultiColumnSet.h:
        Refactored some code to make a columnTranslationForOffset helper that
        can be used by RenderMultiColumnFlowThread.

2014-03-20  Daniel Bates  <dabates@apple.com>

        Preserve original document URL for XSSAuditor reports

        Merged from Blink (patch by Tom Sepez):
        https://src.chromium.org/viewvc/blink?view=rev&revision=158406

        Test: http/tests/security/xssAuditor/report-script-tag-replace-state.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::filterToken):
        * html/parser/XSSAuditorDelegate.cpp:
        (WebCore::buildConsoleError):
        (WebCore::XSSAuditorDelegate::generateViolationReport):
        (WebCore::XSSAuditorDelegate::didBlockScript):
        * html/parser/XSSAuditorDelegate.h:
        (WebCore::XSSInfo::XSSInfo):

2014-03-20  Daniel Bates  <dabates@apple.com>

        XSSAuditor bypass with frameset tags

        Merged from Blink (patch by Tom Sepez):
        https://src.chromium.org/viewvc/blink?view=rev&revision=157794

        Test: http/tests/security/xssAuditor/frameset-injection.html

        * html/parser/XSSAuditor.cpp:
        (WebCore::XSSAuditor::filterStartToken):
        (WebCore::XSSAuditor::filterFrameToken):
        * html/parser/XSSAuditor.h:

2014-03-20  Brian Burg  <bburg@apple.com>

        Web Replay: fix some oversights in the replay backend
        https://bugs.webkit.org/show_bug.cgi?id=130435

        Reviewed by Andreas Kling.

        This functionality will be covered by tests in https://webkit.org/b/130145.

        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::playbackFinishedImpl):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::playbackFinished):
        * inspector/InspectorReplayAgent.cpp:
        (WebCore::buildInspectorObjectForSegment):
        (WebCore::InspectorReplayAgent::playbackFinished):
        * inspector/InspectorReplayAgent.h: Add a playbackFinished event to Inspector
        instrumentation. This is fired by ReplayController when playback is cancelled or 
        playback of the final segment has completed.

        * replay/EventLoopInputDispatcher.cpp:
        (WebCore::EventLoopInputDispatcher::dispatchInputSoon): Fix wrong cast.
        (WebCore::EventLoopInputDispatcher::dispatchInput): Ensure that m_dispatching is
        false when m_running is false.
        * replay/EventLoopInputDispatcher.h: Distinguish 'dispaching' and 'running' in comments.
        (WebCore::EventLoopInputDispatcher::isRunning): Added.

        * replay/FunctorInputCursor.h: Since the base class InputCursor is RefCounted, the
        Functor subclass cannot be put into a unique_ptr. Add create() method instead.

        * replay/ReplayController.cpp:
        (WebCore::ReplayController::loadSegmentAtIndex): Renamed from loadSegment(). Callers
        now pass in the desired segment index rather than the segment itself. The index is
        necessary to properly reset m_position after the segment is loaded.

        (WebCore::ReplayController::startPlayback): Set the dispatcher's speed before run().
        (WebCore::ReplayController::pausePlayback): Only pause the dispatcher if it's running.
        (WebCore::ReplayController::cancelPlayback): Add playbackFinished instrumentation.
        (WebCore::ReplayController::replayToPosition):
        (WebCore::ReplayController::didDispatchFinalInput): If there are no more segments to load,
        manually adjust the final m_position and defer to cancelPlayback to unload the segment.
        * replay/ReplayController.h:
        * replay/ReplaySessionSegment.cpp:
        (WebCore::ReplaySessionSegment::createFunctorCursor):
        * replay/ReplaySessionSegment.h:

2014-03-20  Pratik Solanki  <psolanki@apple.com>

        [iOS] Get code to compile on older iOS versions
        https://bugs.webkit.org/show_bug.cgi?id=130142
        <rdar://problem/16302908>

        Reviewed by Darin Adler.

        * WebCore.exp.in:
        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        (-[WebVideoFullscreenController WebCore::]):
        (-[WebVideoFullscreenController enterFullscreen:]):
        (-[WebVideoFullscreenController exitFullscreen]):
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        * platform/mac/HTMLConverter.mm:
        (_dateForString):
        * platform/network/cf/CookieJarCFNet.cpp:
        (WebCore::copyCookiesForURLWithFirstPartyURL):
        * platform/text/ios/LocalizedDateCache.mm:
        (WebCore::LocalizedDateCache::calculateMaximumWidth):
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::LocaleMac):

2014-03-20  Simon Fraser  <simon.fraser@apple.com>

        Followup build fix: AnimationBase.h needs to be private because
        it's included by AnimationController.h.

        * WebCore.xcodeproj/project.pbxproj:

2014-03-20  Simon Fraser  <simon.fraser@apple.com>

        A completed fill-forwards animation should not disable overlap testing
        https://bugs.webkit.org/show_bug.cgi?id=130522
        <rdar://problem/15862395>

        Reviewed by Dean Jackson.
        
        Previously, if -webkit-transform was being keyframe-animated, and the
        animation had fill-forwards, then we would continue to think that the
        animation is running and turn off compositing overlap testing. This
        caused some sites to keep too much backing store around.
        
        Fix by having isRunning{Accelerated}AnimationOnRenderer take some flags
        so that more specific questions about the running state can be asked.
        For layer creation, keep using the same criteria as before (for now)
        which includes paused and fill-forwards animations. For overlap testing,
        don't include the fill-forwards test.

        Tests: compositing/animation/filling-animation-overlap-at-end.html
               compositing/animation/filling-animation-overlap.html
               compositing/animation/layer-for-filling-animation.html

        * page/animation/AnimationBase.h:
        (WebCore::AnimationBase::fillingForwards):
        (WebCore::AnimationBase::inPausedState):
        (WebCore::AnimationBase::isAnimatingProperty):
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::isRunningAnimationOnRenderer):
        (WebCore::AnimationControllerPrivate::isRunningAcceleratedAnimationOnRenderer):
        (WebCore::AnimationController::isRunningAnimationOnRenderer):
        (WebCore::AnimationController::isRunningAcceleratedAnimationOnRenderer):
        * page/animation/AnimationController.h:
        * page/animation/AnimationControllerPrivate.h:
        * page/animation/CompositeAnimation.cpp:
        (WebCore::CompositeAnimation::isAnimatingProperty):
        * page/animation/CompositeAnimation.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::requiresCompositingForAnimation):
        (WebCore::RenderLayerCompositor::isRunningAcceleratedTransformAnimation):

2014-03-20  Dirk Schulze  <krit@webkit.org>

        Canvas methods clip/fill/stroke should not except 0 argument
        https://bugs.webkit.org/show_bug.cgi?id=130497

        Reviewed by Dean Jackson.

        Do not allow nullable argument for fill/stroke/clip.

        No new tests. Updated existing tests.

        * html/canvas/CanvasRenderingContext2D.idl:

2014-03-20  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Support MediaDocument when building with PLUGIN_PROXY_FOR_VIDEO
        https://bugs.webkit.org/show_bug.cgi?id=130520

        Reviewed by Jer Noble.

        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createDocument): Check the isVideoPluginProxyEnabled setting 
            when building with ENABLE_PLUGIN_PROXY_FOR_VIDEO.

2014-03-20  Mihai Tica  <mitica@adobe.com>

        [CSS Blending] Blending operation is not isolated when setting z-index on parent from javascript
        https://bugs.webkit.org/show_bug.cgi?id=129307

        Reviewed by Dean Jackson.

        Reimplement the logic behind isolating blend modes. The blending operation should be limited to the
        contents of the parent stacking context. The proposed solution implies adding logic in updateDescendantDependentFlags,
        to track child elements that have blending and create a transparency layer that triggers isolation.

        Tests: css3/compositing/blend-mode-background.html
               fast/repaint/blend-mode-isolate-stacking-context.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer): Remove old members, add new members to constructor.
        (WebCore::RenderLayer::updateBlendMode): Update parent stacking context isolation on blend mode change.
        (WebCore::RenderLayer::updateNonCompositedParentStackingContextHasBlendedChild):
        - Set m_hasBlendedElementInChildStackingContext for the non composited parent stacking context.
        (WebCore::RenderLayer::dirtyAncestorParentStackingContextHasBlendedElement):
        - Set flag so isolation should be considered in updateDescendantDependentFlags.
        (WebCore::RenderLayer::nonCompositedParentStackingContextHasBlendedChild):
        - Return whether the non composited parent stacking context isolates blending.
        (WebCore::RenderLayer::updateDescendantDependentFlags): Add logic for isolating blending.
        (WebCore::RenderLayer::addChild): Call to updateNonCompositedParentStackingContextHasBlendedChild if needed.
        (WebCore::RenderLayer::removeChild): Call to dirtyAncestorParentStackingContextHasBlendedElement if needed.
        (WebCore::RenderLayer::updateStackingContextsAfterStyleChange): Update isolation when a stacking context was set or unset.
        (WebCore::RenderLayer::styleChanged): Removed oldStyle parameter from updateBlendMode call.
         Update parent stacking context isolation on blend mode change.
        * rendering/RenderLayer.h:
        - Add members, getters and setters for tracking whether the element has a blended child:
            - m_hasBlendedElementInChildStackingContext
            - m_hasBlendedElementInChildStackingContextStatusDirty
        - Removed m_updateParentStackingContextShouldIsolateBlendingDirty (replaced with m_hasBlendedElementInChildStackingContextStatusDirty)
        - Removed m_isolatesBlending (replaced with m_hasBlendedElementInChildStackingContext)
        - Updated the isolatesBlending method to return true only when the element is a stacking context and has a blended child.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeCompositingRequirements): Removed layer.updateParentStackingContextShouldIsolateBlending call.

2014-03-20  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Do not compile ProxyResolverSoup.cpp
        https://bugs.webkit.org/show_bug.cgi?id=130516

        Reviewed by Sergio Villar Senin.

        * PlatformGTK.cmake: Remove the file from the source list.

2014-03-20  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165962.
        https://bugs.webkit.org/show_bug.cgi?id=130512

        It broke the build (Requested by Ossy on #webkit).

        Reverted changeset:

        "[EFL][GTK] Get CMake to find Freetype2 properly"
        https://bugs.webkit.org/show_bug.cgi?id=130150
        http://trac.webkit.org/changeset/165962

2014-03-20  Lorenzo Tilve  <ltilve@igalia.com>

        "input" event is not fired when changing a select element's value
        https://bugs.webkit.org/show_bug.cgi?id=117526

        Reviewed by Antti Koivisto.

        Add a call to dispatch input event when listbox or menulist
        values are modified.

        According to the spec: "When the user agent is to send select update
        notifications, queue a task to first fire a simple even that bubbles
        named input at the select element, and then fire a simple event that
        bubbles named change at the select element, using the user interaction
        task source as the task source."

        Tests: fast/forms/select/listbox-oninput-fired.html
               fast/forms/select/menulist-oninput-fired.html

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::listBoxOnChange):
        (WebCore::HTMLSelectElement::dispatchChangeEventForMenuList):

2014-03-20  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] The height of a scrollable element flowed inside a scrollable region is not computed correctly
        https://bugs.webkit.org/show_bug.cgi?id=129487

        Reviewed by Andrei Bucur.

        When propagating the layout overflow from the flowed element up to the flow thread itself,
        the region's logical bottom padding and the element's logical bottom margin must be taken into consideration.
        However, if the flowed element has overflow, the overflow will be painted over the region's padding
        and the element's margin, in order to be compatible with the non-regions case.
        More info can be found here: http://lists.w3.org/Archives/Public/www-style/2014Jan/0089.html

        Tests: fast/regions/scrollable-region-content-size-horiz-bt.html
               fast/regions/scrollable-region-content-size-no-overflow-horiz-bt.html
               fast/regions/scrollable-region-content-size-no-overflow-vert-rl.html
               fast/regions/scrollable-region-content-size-no-overflow.html
               fast/regions/scrollable-region-content-size-relative.html
               fast/regions/scrollable-region-content-size-vert-rl.html
               fast/regions/scrollable-region-content-size-vertical-lr.html
               fast/regions/scrollable-region-content-size.html
               fast/regions/scrollable-region-scrollable-content.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::rectFlowPortionForBox):

2014-03-20  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Nested layers with subpixel accumulation paint to wrong position.
        https://bugs.webkit.org/show_bug.cgi?id=130153

        Reviewed by Simon Fraser.

        Subpixels (fractional device pixels here) can accumulate through nested layers. Subpixels
        need to be propagated through the layer tree so that painting coordinates match layout coordinates.

        Subpixel accumulation through nesting (absolute positioning, 2x display):
        non-compositing case:
        (nested boxes)  (layout pos) (norm.paint pos) (translate accumulation, subpixel accumulation, final paint pos)
        div -> top: 1.3px   1.3px     1.5px      1.5px 0.2px -> snapped 0.0px -> 1.5px
         div -> top: 1.3px   2.6px     2.5px      3.0px 0.4px -> snapped 0.5px -> 2.5px
          div -> top: 1.3px   3.9px     4.0px      4.5px 0.6px -> snapped 0.5px -> 4.0px
           div -> top: 1.3px   5.2px     5.0px      6.0px 0.8px -> snapped 1.0px -> 5.0px

        compositing case:
        (nested boxes)  (layout pos) (norm.paint pos) (device pixel offset + fractional offset, final pos)
        div -> top: 1.3px   1.3px      1.5px      1.0px + 0.3px -> snapped -> 1.5px
         div -> top: 1.3px   2.6px      2.5px      2.5px + 0.1px -> snapped -> 2.5px
          div -> top: 1.3px   3.9px      4.0px      3.5px + 0.4px -> snapped -> 4.0px
           div -> top: 1.3px   5.2px      5.0px      5.0px + 0.2px -> snapped -> 5.0px

        Tests: compositing/hidpi-nested-compositing-layers-with-subpixel-accumulation.html
               fast/layers/hidpi-nested-layers-with-subpixel-accumulation.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerByApplyingTransform):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        * rendering/RenderLayerBacking.h:
        (WebCore::RenderLayerBacking::devicePixelFractionFromRenderer):

2014-03-20  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [EFL][GTK] Get CMake to find Freetype2 properly
        https://bugs.webkit.org/show_bug.cgi?id=130150

        Reviewed by Csaba Osztrogonác.

        Newer versions of CMake are not able to find Freetype2 correctly.
        FindFreetype2.cmake checks for the version number in freetype.h header, since it seems that bug exists in
        freetype2 repo, because a completely different version number is found in freetype2.pc.

        * PlatformEfl.cmake:
        * PlatformGTK.cmake:

2014-03-20  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        Refactor checking log channel state in MediaPlayerPrivateGStreamerBase.
        https://bugs.webkit.org/show_bug.cgi?id=130241

        Reviewed by Philippe Normand.

        The channel was passed around only to check its state. Cleaned this up
        by adding a method to check whether a log channel is enabled.

        * platform/Logging.cpp:
        (WebCore::isLogChannelEnabled):
        * platform/Logging.h:
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::createVideoSink):

2014-03-20  Lorenzo Tilve  <ltilve@igalia.com>

        Dispatch input event for Range element keyboard event
        https://bugs.webkit.org/show_bug.cgi?id=129929

        Reviewed by Kent Tamura.

        For any value update, dispatch both input and change event.
        Also removes extra dispatch change event, as event is dispatched
        from TextFieldInputType:setValue.

        Merged from Blink (patch by Habib Virji):
        https://src.chromium.org/viewvc/blink?revision=168558&view=revision

        Test: fast/forms/range/range-keyboard-oninput-event.html

        * html/RangeInputType.cpp:
        (WebCore::RangeInputType::handleKeydownEvent):

2014-03-20  Jinwoo Song  <jinwoo7.song@samsung.com>

        Refine BatteryStatus module
        https://bugs.webkit.org/show_bug.cgi?id=130495

        Reviewed by Andreas Kling.

        Small refinements:
         - Return PassRef instead of PassRefPtr in create method
         - Switched to nullptr instead of 0 where appropriate.
         - Removed unused function and header file.
         - Removed unnecessary empty lines.

        * Modules/battery/BatteryController.h:
        * Modules/battery/BatteryManager.cpp:
        (WebCore::BatteryManager::create): Make return passRef.
        * Modules/battery/BatteryManager.h:
        (WebCore::BatteryManager::batteryControllerDestroyed): Use nullptr.
        * Modules/battery/BatteryStatus.cpp:
        (WebCore::BatteryStatus::create): Make return passRef.
        * Modules/battery/BatteryStatus.h:
        * Modules/battery/NavigatorBattery.cpp:
        (WebCore::NavigatorBattery::webkitBattery): Remove batteryManager().
        * Modules/battery/NavigatorBattery.h:

2014-03-19  Pratik Solanki  <psolanki@apple.com>

        [iOS] Get code to compile on older iOS versions
        https://bugs.webkit.org/show_bug.cgi?id=130142
        <rdar://problem/16302908>

        Reviewed by Darin Adler.

        * WebCore.exp.in:
        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        (-[WebVideoFullscreenController WebCore::]):
        (-[WebVideoFullscreenController enterFullscreen:]):
        (-[WebVideoFullscreenController exitFullscreen]):
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        * platform/mac/HTMLConverter.mm:
        (_dateForString):
        * platform/network/cf/CookieJarCFNet.cpp:
        (WebCore::copyCookiesForURLWithFirstPartyURL):
        * platform/text/ios/LocalizedDateCache.mm:
        (WebCore::LocalizedDateCache::calculateMaximumWidth):
        * platform/text/mac/LocaleMac.mm:
        (WebCore::LocaleMac::LocaleMac):

2014-03-19  Byungseon Shin  <sun.shin@lge.com>

        Fix "WEBKIT_WEBGL_compressed_texture_pvrtc" extension support
        https://bugs.webkit.org/show_bug.cgi?id=130292

        Reviewed by Dean Jackson.

        WebGLRenderingContext::getExtension was not returning WEBGL_compressed_texture_pvrtc extension.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getExtension):

2014-03-19  Brent Fulgham  <bfulgham@apple.com>

        Merge Misc. WebVTT Updates from Blink.
        https://bugs.webkit.org/show_bug.cgi?id=130491

        Reviewed by Eric Carlson.

        Test: media/track/track-webvtt-tc030-interspersed-non-cue.html

        Merged from Blink (patch by vcarbune@chromium.org):
        https://chromium.googlesource.com/chromium/blink/+/fb62b2b54944bd19026192c049a1db250756fc12
        http://crbug.com/40323003
        https://chromium.googlesource.com/chromium/blink/+/29176fb0b394a97e85f4dabc07e18329f3ceae41
        http://crbug.com/54463002
        https://chromium.googlesource.com/chromium/blink/+/29476f839a08cb17c5a3fc713f7e454e7cea9c60
        http://crbug.com/55853002
        https://chromium.googlesource.com/chromium/blink/+/ba2378ef873e786cf2937034e012669cdd37dfe8
        http://crbug.com/65343003
        https://chromium.googlesource.com/chromium/blink/+/1915b9aa1bba45aebf28531b40ae627ecf9a3d59
        http://crbug.com/62833005
        https://chromium.googlesource.com/chromium/blink/+/ea46dbd0f1f29779a1cd4f59b19361b803f09a9b
        http://crbug.com/64273013
        https://chromium.googlesource.com/chromium/blink/+/9eb4bb6b627357bb94d66386a4123ec004cccfc4
        http://crbug.com/101513002
        https://chromium.googlesource.com/chromium/blink/+/192a843b32eafb77bf92c50ec50d334ba935028a
        http://crbug.com/102403002
        https://chromium.googlesource.com/chromium/blink/+/15f9efcc952fcf73184e28fb9db79633c1fa6653
        http://crbug.com/104443002
        https://chromium.googlesource.com/chromium/blink/+/74fd66b451a464683f7cb748855b1740a54b2c16
        http://crbug.com/75243004

        * html/track/TextTrackRegion.cpp:
        (WebCore::TextTrackRegion::parseSettingValue):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::markFutureAndPastNodes):
        (WebCore::VTTCue::setCueSettings):
        * html/track/WebVTTParser.cpp:
        (WebCore::scanDigits):
        (WebCore::WebVTTParser::collectDigitsToInt):
        (WebCore::WebVTTParser::parseFloatPercentageValue):
        (WebCore::WebVTTParser::parseBytes):
        (WebCore::WebVTTParser::collectMetadataHeader):
        (WebCore::WebVTTParser::collectTimingsAndSettings):
        (WebCore::WebVTTParser::createDocumentFragmentFromCueText):
        (WebCore::WebVTTParser::createNewCue):
        (WebCore::WebVTTParser::createNewRegion):
        (WebCore::WebVTTParser::collectTimeStamp):
        (WebCore::tokenToNodeType):
        (WebCore::WebVTTParser::constructTreeFromToken):
        * html/track/WebVTTParser.h:
        * html/track/WebVTTToken.h:
        (WebCore::WebVTTToken::name):
        (WebCore::WebVTTToken::characters):
        (WebCore::WebVTTToken::appendToCharacter):
        (WebCore::WebVTTToken::addNewClass):
        (WebCore::WebVTTToken::classes):
        (WebCore::WebVTTToken::addNewAnnotation):
        (WebCore::WebVTTToken::annotation):
        * html/track/WebVTTTokenizer.cpp:
        (WebCore::equalLiteral):
        (WebCore::WebVTTTokenizer::WebVTTTokenizer):
        (WebCore::WebVTTTokenizer::nextToken):
        * html/track/WebVTTTokenizer.h:

2014-03-19  Mark Hahnenberg  <mhahnenberg@apple.com>

        GC timer should intelligently choose between EdenCollections and FullCollections
        https://bugs.webkit.org/show_bug.cgi?id=128261

        Reviewed by Geoffrey Garen.

        No new tests.

        Updated WebSafeGCActivityCallbacks for both Eden and Full timers.

        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::commonVM):
        * platform/ios/WebSafeGCActivityCallbackIOS.h:

2014-03-19  Andy Estes  <aestes@apple.com>

        Fix the iOS build after r165917.

        * platform/ios/WebCoreSystemInterfaceIOS.mm:

2014-03-19  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165926.
        https://bugs.webkit.org/show_bug.cgi?id=130488

        broke the iOS build (Requested by estes on #webkit).

        Reverted changeset:

        "GC timer should intelligently choose between EdenCollections
        and FullCollections"
        https://bugs.webkit.org/show_bug.cgi?id=128261
        http://trac.webkit.org/changeset/165926

2014-03-19  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165929.
        https://bugs.webkit.org/show_bug.cgi?id=130487

        in order to roll out r165926 (Requested by estes on #webkit).

        Reverted changeset:

        http://trac.webkit.org/changeset/165929

2014-03-19  Mark Hahnenberg  <mhahnenberg@apple.com>

        Build fix for iOS after r165926

        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::commonVM):
        * platform/ios/WebSafeGCActivityCallbackIOS.h:

2014-03-19  Eric Carlson  <eric.carlson@apple.com>

        Allow media engine to update HTMLMediaElement state when playing to external device
        https://bugs.webkit.org/show_bug.cgi?id=130480

        Reviewed by Jer Noble.

        * html/HTMLMediaElement.h: Add mediaPlayerHandlePlaybackCommand.

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::handlePlaybackCommand): New.
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::mediaPlayerHandlePlaybackCommand):

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::rateChanged): Send Play and Pause commands when
            playing to an external device.

2014-03-19  Dirk Schulze  <krit@webkit.org>

        Implement isPointInPath and isPointInStroke with Path2D argument
        https://bugs.webkit.org/show_bug.cgi?id=130473

        Reviewed by Dean Jackson.

        Implement isPointInPath and isPointInStroke for 2D Canvas contxts
        with Path2D argument.


        Tests: fast/canvas/canvas-path-isPointInPath.html
               fast/canvas/canvas-path-isPointInStroke.html

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::isPointInPath):
        (WebCore::CanvasRenderingContext2D::isPointInStroke):
        (WebCore::CanvasRenderingContext2D::isPointInPathInternal):
        (WebCore::CanvasRenderingContext2D::isPointInStrokeInternal):
        * html/canvas/CanvasRenderingContext2D.h:
        * html/canvas/CanvasRenderingContext2D.idl:

2014-03-13  Mark Hahnenberg  <mhahnenberg@apple.com>

        GC timer should intelligently choose between EdenCollections and FullCollections
        https://bugs.webkit.org/show_bug.cgi?id=128261

        Reviewed by Geoffrey Garen.

        No new tests.

        * platform/ios/WebSafeGCActivityCallbackIOS.h: Update WebSafeGCActivityCallback
        appropriately for the introduction of another type of GCActivityCallback.

2014-03-18  Mark Hahnenberg  <mhahnenberg@apple.com>

        GC timer should intelligently choose between EdenCollections and FullCollections
        https://bugs.webkit.org/show_bug.cgi?id=128261

        Reviewed by Geoffrey Garen.

        No new tests.

        Updated WebSafeGCActivityCallbacks for both Eden and Full timers.

        * platform/ios/WebSafeGCActivityCallbackIOS.h:

2014-03-19  Antti Koivisto  <antti@apple.com>

        Crash with long selector list
        https://bugs.webkit.org/show_bug.cgi?id=123006

        Reviewed by Andreas Kling.

        Test: fast/css/long-selector-list-crash.html

        * css/CSSSelectorList.cpp:
        (WebCore::CSSSelectorList::CSSSelectorList):
        (WebCore::CSSSelectorList::adoptSelectorVector):
        (WebCore::CSSSelectorList::operator=):
        * css/StyleRule.cpp:
        (WebCore::StyleRule::create):

            Add a bunch of asserts.

        (WebCore::StyleRule::splitIntoMultipleRulesWithMaximumSelectorComponentCount):
        
            This could produce a zero-length selector list.

2014-03-19  Andreas Kling  <akling@apple.com>

        Rebaseline bindings tests.

        * bindings/scripts/test/JS/*:

2014-03-04  Jer Noble  <jer.noble@apple.com>

        [iOS][MediaControls] Reverse-pinching using the built-in controls should enter full screen
        https://bugs.webkit.org/show_bug.cgi?id=129707

        Reviewed by Eric Carlson.

        The default controls on iOS should respond to a pinch gesture by entering fullscreen. Add a gesture
        event listener, and enter full screen if the user does a quick (>2 velocity) reverse (>1.25 scale) pinch.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.createBase):
        (ControllerIOS.prototype.handlePlayButtonTouchEnd):
        (ControllerIOS.prototype.handleBaseGestureStart):
        (ControllerIOS.prototype.handleBaseGestureChange):
        (ControllerIOS.prototype.handleBaseGestureEnd):

2014-03-19  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r156316): Scrollbar on a large document is broken
        https://bugs.webkit.org/show_bug.cgi?id=130474
        <rdar://problem/16371523>

        Reviewed by Anders Carlsson.

        The bug was caused by updateArrowPlacement() doing the work even though Scrollbar Overlay API is available.
        Prior to r156316, this function exited early:
        http://trac.webkit.org/browser/trunk/Source/WebCore/platform/mac/ScrollbarThemeMac.mm?rev=156315#L147

        Fixed the bug by deleting updateArrowPlacement() entirely.

        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::preferencesChanged):

2014-03-19  Jer Noble  <jer.noble@apple.com>

        [Mac][EME] Query whether decoder support exists before creating a new MediaKeys object.
        https://bugs.webkit.org/show_bug.cgi?id=130459

        Reviewed by Eric Carlson.

        * WebCore.exp.in: Export the new WCSI method.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsKeySystem): Bail early if we have no decoder support.
        * platform/mac/WebCoreSystemInterface.h: Provide a WCSI wrapper for WKSI.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2014-03-19  Eric Carlson  <eric.carlson@apple.com>

        Make Remote Control commands testable
        https://bugs.webkit.org/show_bug.cgi?id=130358

        Reviewed by Jer Noble.

        Test: media/video-remote-control-playpause.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::mediaPlayerTimeChanged): Call session->clientWillPausePlayback.
        (WebCore::HTMLMediaElement::didReceiveRemoteControlCommand): Log the command.

        * platform/audio/MediaSession.cpp:
        (WebCore::MediaSessionClient::mediaSessionTitle): Move from header file.
        (WebCore::MediaSessionClient::mediaSessionDuration): Ditto.
        (WebCore::MediaSessionClient::mediaSessionCurrentTime): Ditto.
        * platform/audio/MediaSession.h:

        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::MediaSessionManager): Get rid of m_activeSession.
        (WebCore::MediaSessionManager::removeSession): No need to clear m_activeSession because 
            we use the m_sessions vector.
        (WebCore::MediaSessionManager::sessionWillBeginPlayback): setCurrentSession takes a 
            MediaSession&.
        (WebCore::MediaSessionManager::sessionWillEndPlayback): Keep m_sessions sorted so playing
            sessions are before paused sessions.
        (WebCore::MediaSessionManager::setCurrentSession): Move the session that is beginning to
            play to the head of m_sessions.
        (WebCore::MediaSessionManager::currentSession): Return m_sessions[0] or nullptr.
        (WebCore::MediaSessionManager::didReceiveRemoteControlCommand):
        * platform/audio/MediaSessionManager.h:

        * platform/audio/ios/MediaSessionManagerIOS.mm: Include MediaPlayer.h.

        * testing/Internals.cpp:
        (WebCore::Internals::postRemoteControlCommand): New.
        * testing/Internals.h:
        * testing/Internals.idl:

2014-03-19  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        Improving webkitGetUserMedia error handling and error messages
        https://bugs.webkit.org/show_bug.cgi?id=130452

        Reviewed by Eric Carlson.

        Checking if first argument of webkitGetUserMedia is a valid Dictionary. If not, throw an exception with a
        clearer message of the error.

        Test updated.

        * Modules/mediastream/NavigatorMediaStream.idl:
        * UseJSC.cmake:
        * bindings/js/JSNavigatorCustom.cpp: Added.

2014-03-19  Andreas Kling  <akling@apple.com>

        JSC bindings should use the passed-in global object for wrapper caching.
        <https://webkit.org/b/130458>

        Take a shorter path to the DOMWrapperWorld by using the passed-in
        global object instead of getting the lexical global from ExecState.
        Removed an old FIXME that no longer applies since JSObjects can
        always find the right global object these days.

        Reviewed by Geoff Garen.

        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::JSCSSStyleDeclaration::getPropertyCSSValue):
        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSDOMBinding.h:
        (WebCore::createWrapper):
        (WebCore::wrap):
        (WebCore::getExistingWrapper):
        (WebCore::createNewWrapper):
        (WebCore::toJS):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::setTimeout):
        (WebCore::JSDOMWindow::setInterval):
        (WebCore::JSDOMWindow::addEventListener):
        (WebCore::JSDOMWindow::removeEventListener):
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::JSDocument::location):
        (WebCore::toJS):
        * bindings/js/JSElementCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSEventCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSHTMLTemplateElementCustom.cpp:
        (WebCore::JSHTMLTemplateElement::content):
        * bindings/js/JSImageDataCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::createWrapperInline):
        * bindings/js/JSNodeCustom.h:
        (WebCore::toJS):
        * bindings/js/JSSVGPathSegCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSStyleSheetCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSTextTrackCueCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSTrackCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSWorkerGlobalScopeCustom.cpp:
        (WebCore::JSWorkerGlobalScope::setTimeout):
        (WebCore::JSWorkerGlobalScope::setInterval):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):

2014-03-19  Benjamin Poulain  <bpoulain@apple.com>

        Page::setPageScaleFactor should not force the scroll view position when using delegatesScrolling()
        https://bugs.webkit.org/show_bug.cgi?id=130429

        Reviewed by Simon Fraser.

        When setting the same scale mutliple time (for example on load), Page was asking the top scrollview
        to scroll to the origin. This is bogus since the scroll view is driving Page::setDeviceScaleFactor,
        not the other way around.

        Simon fixed the general case in http://trac.webkit.org/changeset/165652/trunk/Source/WebCore/page/Page.cpp
        but this branch was still scrolling content.

        * page/Page.cpp:
        (WebCore::Page::setPageScaleFactor):

2014-03-19  Brady Eidson  <beidson@apple.com>

        Filter out editable services from image menu for non-contenteditable images
        <rdar://problem/16319645> and https://bugs.webkit.org/show_bug.cgi?id=130437

        Reviewed by Tim Horton.

        * WebCore.exp.in:

2014-03-19  Dirk Schulze  <krit@webkit.org>

        Implement method addPath for Path2D
        https://bugs.webkit.org/show_bug.cgi?id=130461

        Reviewed by Dean Jackson.

        Add support for the Path2D method addPath. The method allows
        to append and existing Path2D object to another one. It can be
        combined with a transformation matrix SVGMatrix.

        Test: fast/canvas/canvas-path-addPath.html

        * html/canvas/DOMPath.h: Add new method addPath().
        (WebCore::DOMPath::addPath):
        * html/canvas/DOMPath.idl:
        * platform/graphics/Path.h: Add support for appending paths.
        * platform/graphics/cairo/PathCairo.cpp:
        (WebCore::Path::addPath):
        * platform/graphics/cg/PathCG.cpp:
        (WebCore::Path::addPath):
        * platform/graphics/wince/PathWinCE.cpp:
        (WebCore::Path::addPath):

2014-03-19  Yongjun Zhang  <yongjun_zhang@apple.com>

        [iOS] WebKit2 Quicklook.
        https://bugs.webkit.org/show_bug.cgi?id=130360

        Reviewed by Tim Horton.

        Since ResourceLoaders using WebKit2 network process don't have ResourceHandle any more, we
        need to make it possible to create QuickLookHandle from ResourceLoader.

        * WebCore.exp.in: Make some QuickLookHandle methods visible from WebKit2.
        * loader/ResourceLoader.h: Add m_quickLookHandle data member to ResourceLoader.
        (WebCore::ResourceLoader::quickLookHandle):
        (WebCore::ResourceLoader::setQuickLookHandle):
        * platform/network/ios/QuickLook.h: Add a new method to create QuickLookHandle from ResourceLoader.
        * platform/network/ios/QuickLook.mm:
        (WebCore::QuickLookHandle::create):

2014-03-19  Brent Fulgham  <bfulgham@apple.com>

        Fix cue rendering test and include support for left/right alignment
        https://bugs.webkit.org/show_bug.cgi?id=130406

        Reviewed by Eric Carlson.

        Merged from Blink (patch by vcarbune@chromium.org):
        https://chromium.googlesource.com/chromium/blink/+/e695703cb603421c741e59a557a7989113c13b94
        http://crbug.com/25155003

        No new tests. Covered by media/track/track-cue-rendering-snap-to-lines-not-set.html.

        * html/track/VTTCue.cpp:
        (WebCore::leftKeyword): Added.
        (WebCore::rightKeyword): Added.
        (WebCore::VTTCueBox::applyCSSProperties): Added.
        (WebCore::VTTCue::VTTCue):
        (WebCore::VTTCue::align): Handle left/right alignment.
        (WebCore::VTTCue::setAlign): Ditto.
        (WebCore::VTTCue::calculateDisplayParameters): Refactored and revised for left/right tokens.
        (WebCore::VTTCue::setCueSettings): Ditto.
        (WebCore::VTTCue::getCSSAlignment): Added.
        (WebCore::VTTCue::getCSSWritingMode): Added.
        * html/track/VTTCue.h:

2014-03-18  Anders Carlsson  <andersca@apple.com>

        Add new functionality that will be required by the history item decoding
        https://bugs.webkit.org/show_bug.cgi?id=130433

        Reviewed by Sam Weinig.

        * platform/KeyedCoding.h:
        (WebCore::KeyedDecoder::decodeConditionalObject):

2014-03-19  Tim Horton  <timothy_horton@apple.com>

        Fix the iOS build.

        * html/BaseDateAndTimeInputType.cpp:
        (WebCore::BaseDateAndTimeInputType::parseToDateComponents):
        Missing a StringView().

2014-03-19  Antti Koivisto  <antti@apple.com>

        Tighten ElementRuleCollector::m_matchedRuleList typing
        https://bugs.webkit.org/show_bug.cgi?id=130446

        Reviewed by Anders Carlsson.

        StyleRuleBase -> StyleRule.

        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::matchedRuleList):
        * css/ElementRuleCollector.h:
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::styleRulesForElement):
        (WebCore::StyleResolver::pseudoStyleRulesForElement):
        * css/StyleResolver.h:
        * editing/EditingStyle.cpp:
        (WebCore::styleFromMatchedRulesForElement):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::getMatchedStylesForNode):
        (WebCore::InspectorCSSAgent::buildArrayForMatchedRuleList):
        * inspector/InspectorCSSAgent.h:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::getMatchedCSSRules):

2014-03-19  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] An unsplittable box is always displayed in a single region
        https://bugs.webkit.org/show_bug.cgi?id=130451

        Reviewed by Andrei Bucur.

        Add an ASSERT stating that an unsplittable box region range always contains 1 region.
        No new functionality, no new tests.

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::getRegionRangeForBox):

2014-03-19  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Transform origin is miscalculated when RenderLayer's
        offsetfromRenderer has device pixel fraction value.
        https://bugs.webkit.org/show_bug.cgi?id=129859

        Reviewed by Simon Fraser.

        We need to calculate the transformed origin using the painting coordinates to produce
        pixel precise result.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::computeTransformOriginForPainting):
        * rendering/RenderLayerBacking.h:

2014-03-19  Claudio Saavedra  <csaavedra@igalia.com>

        [GStreamer] Clean timeout source ids
        https://bugs.webkit.org/show_bug.cgi?id=130450

        Reviewed by Philippe Normand.

        Sources IDs need to be cleaned up if the callback removes the
        source, otherwise we'll be attempting to remove an empty source at
        some point.

        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp:
        (webKitMediaVideoSrcStart): Clean the source id.
        (webKitMediaAudioSrcStart): Ditto.
        (webKitMediaVideoSrcSeekMainCb): Ditto.
        (webKitMediaAudioSrcSeekMainCb): Ditto.

2014-03-19  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Compute region ranges for children of inline blocks
        https://bugs.webkit.org/show_bug.cgi?id=130392

        Reviewed by Andrei Bucur.

        Extend the region ranges computation for children of inline blocks.
        When we cannot retrieve the region range for a box using cached information,
        either from region range map or from the region cached on the RootInlineBox,
        try to find the top most unsplittable box up to the flow thread boundary.
        If we find such unsplittable box and the box has a region range, then return
        this range.

        Before this patch, method getRegionRangeForBox did not return true/false
        if it was able to retrieve the range and the caller checked the returned
        region values. I modified the method to return true if we were able to compute
        the range.

        Tests: fast/regions/inline-block-inline-children-flowed-in-regions.html
               fast/regions/inline-blocks-dyn-enlarged-regions.html
               fast/regions/inline-blocks-dyn-shrunk-regions.html
               fast/regions/inline-blocks-in-two-regions.html

        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForRendererFragments):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::updateRegionRangeForBoxChild):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::hasNextPage):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::clampToStartAndEndRegions):
        (WebCore::RenderBox::borderBoxRectInRegion):
        (WebCore::RenderBox::computeRectForRepaint):
        (WebCore::RenderBox::layoutOverflowRectForPropagation):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::regionForCompositedLayer):
        (WebCore::RenderFlowThread::adjustedPositionRelativeToOffsetParent):
        (WebCore::RenderFlowThread::removeRenderBoxRegionInfo):
        (WebCore::RenderFlowThread::logicalWidthChangedInRegionsForBlock):
        (WebCore::RenderFlowThread::getRegionRangeForBoxFromCachedInfo):
        (WebCore::RenderFlowThread::getRegionRangeForBox):
        (WebCore::RenderFlowThread::objectShouldPaintInFlowRegion):
        (WebCore::RenderFlowThread::objectInFlowRegion):
        (WebCore::RenderFlowThread::addRegionsVisualEffectOverflow):
        (WebCore::RenderFlowThread::addRegionsVisualOverflowFromTheme):
        (WebCore::RenderFlowThread::addRegionsOverflowFromChild):
        (WebCore::RenderFlowThread::addRegionsLayoutOverflow):
        (WebCore::RenderFlowThread::addRegionsVisualOverflow):
        (WebCore::RenderFlowThread::clearRegionsOverflow):
        * rendering/RenderFlowThread.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::fragmentFromAbsolutePointAndBox):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::locateFlowThreadContainingBlock):
        Make sure we return the right render flow thread in the case of
        region-based multicolumn inside named flows.
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::rectFlowPortionForBox):

2014-03-19  Krzysztof Wolanski  <k.wolanski@samsung.com>

        [EFL] vibration/cancelVibration-during-pattern-vibrating.html is failing after r165598
        https://bugs.webkit.org/show_bug.cgi?id=130333

        Reviewed by Gyuyoung Kim.

        Added setting m_state when calling Vibration::vibrate. It was missing after
        refactoring Vibration (r165598).

        * Modules/vibration/Vibration.cpp:
        (WebCore::Vibration::vibrate):

2014-03-19  Sam Weinig  <sam@webkit.org>

        Rewrite WebHTMLConverter::_colorForNode in C++
        https://bugs.webkit.org/show_bug.cgi?id=130443

        Reviewed by Andreas Kling.

        * platform/mac/HTMLConverter.mm:
        (_platformColor):
        Rename from _colorForRGBColor and simplify to just do the platform conversion.

        (normalizedColor):
        Extract normalization out of _colorForRGBColor and remove cases that are impossible to hit
        due to us only ever using the device color space.

        (HTMLConverterCaches::colorPropertyValueForNode):
        (-[WebHTMLConverter _colorForNode:property:]):
        Convert to C++.

        (-[WebHTMLConverter dealloc]):
        (-[WebHTMLConverter init]):
        Remove caches, we already cache in ColorMac.

2014-03-18  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Strange layout for content with region breaks
        https://bugs.webkit.org/show_bug.cgi?id=121318

        Reviewed by Mihnea Ovidenie.

        When break-inside: avoid is used on an element, the implementation tries to
        force it inside a single fragmentation container even though the descendants
        of the element specify forced breaks. This leads to unexpected results and
        unstable layout.

        The change extends the definition of unsplittable elements for flow threads
        using the same conditions found inside RenderBlockFlow::adjustForUnsplittableChild.
        This change forces elements that require break avoidance to have a single region
        in the region range. As a result, forced breaks have no effect inside them.

        It should be noted this may not the behavior defined by the CSS3 Fragmentation spec.
        From my understanding of the text, forced breaks override any avoidance specified
        by ancestor elements. However, implementing this is a larger change that will require
        a fundamental new approach in handling break avoidance. This patch just brings
        consistency to the API.

        Test: fast/regions/forced-break-inside-avoid-break.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::childBoxIsUnsplittableForFragmentation):
        (WebCore::RenderBlock::computeRegionRangeForBoxChild):
        (WebCore::RenderBlock::estimateRegionRangeForBoxChild):
        * rendering/RenderBlock.h:
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::adjustForUnsplittableChild): Move the avoidance conditions inside
        a helper method RenderBlock::childBoxIsUnsplittableForFragmentation.

2014-03-18  Samuel White  <samuel_white@apple.com>

        AX: Not able to use arrow keys to read text with VoiceOver before selection is set someplace (anyplace).
        https://bugs.webkit.org/show_bug.cgi?id=130250

        Reviewed by Chris Fleizach.

        If initial selection isn't set when we handle selection movement for accessibility, we need to set it. If we don't, using arrow
        keys to read text with VoiceOver doesn't work as expected. Things will only start working after the user holds shift and arrows
        around to select any arbitrary thing to force selection to get set. This logic handles that special case more gracefully.

        Test: platform/mac/accessibility/selection-initial.html

        * page/EventHandler.cpp:
        (WebCore::handleKeyboardSelectionMovement):
        (WebCore::EventHandler::handleKeyboardSelectionMovementForAccessibility):
        * testing/Internals.cpp:
        (WebCore::Internals::resetToConsistentState):

2014-03-18  Brent Fulgham  <bfulgham@apple.com>

        TextTrackRegion Not Implemented
        https://bugs.webkit.org/show_bug.cgi?id=116546

        Reviewed by Eric Carlson.

        Merged from Blink (patch by vcarbune@chromium.org):
        https://chromium.googlesource.com/chromium/blink/+/4940f89a087fea5b5ea628e98d0b355d398a9eea
        http://crbug.com/25798003

        Tests: media/track/regions-webvtt/text-track-region-display.html
               media/track/regions-webvtt/text-track-region-dom-layout.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/track/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::newRegionsAvailable):
        * html/track/TextTrack.cpp:
        * html/track/TextTrack.h:
        * html/track/TextTrackRegion.cpp:
        (WebCore::TextTrackRegion::TextTrackRegion):
        (WebCore::TextTrackRegion::appendTextTrackCueBox):
        * html/track/TextTrackRegion.h:
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::VTTCue):
        (WebCore::VTTCue::notifyRegionWhenRemovingDisplayTree):
        (WebCore::VTTCue::removeDisplayTree):
        * html/track/VTTCue.h:
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::parseBytes):
        (WebCore::WebVTTParser::collectMetadataHeader):
        * html/track/WebVTTParser.h:

2014-03-18  Andreas Kling  <akling@apple.com>

        Share MemoryPressureHandler::releaseMemory() between platforms.
        <https://webkit.org/b/130416>

        Move the code that scours WebKit for things we can free up right now
        to the common part of MemoryPressureHandler. This will enable other
        platforms to do the same thing under pressure.

        There's now also a platformReleaseMemory() where platform-specific
        pressure relief stuff can go.

        Reviewed by Antti Koivisto.

        * platform/MemoryPressureHandler.cpp:
        (WebCore::MemoryPressureHandler::releaseMemory):
        (WebCore::MemoryPressureHandler::platformReleaseMemory):
        * platform/MemoryPressureHandler.h:
        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::respondToMemoryPressure):
        (WebCore::MemoryPressureHandler::platformReleaseMemory):

2014-03-18  Dean Jackson  <dino@apple.com>

        [WebGL] Destroy EAGLContext's backing store
        https://bugs.webkit.org/show_bug.cgi?id=130439
        <rdar://problem/16295217>

        Reviewed by Tim Horton.

        When a GraphicsContext3D is being destroyed, we should
        also remove any EAGLContext backing store.

        * platform/graphics/mac/GraphicsContext3DMac.mm:
        (WebCore::GraphicsContext3D::~GraphicsContext3D):

2014-03-18  Tim Horton  <timothy_horton@apple.com>

        [iOS][WebKit2] Mark layer contents as being opaque if they are
        https://bugs.webkit.org/show_bug.cgi?id=130427
        <rdar://problem/15540434>

        Reviewed by Simon Fraser.

        * platform/graphics/GraphicsLayerClient.h:
        (WebCore::GraphicsLayerClient::paintsOpaquelyAtNonIntegralScales):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::updateContentsOpaque):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintsOpaquelyAtNonIntegralScales):
        * rendering/RenderLayerBacking.h:
        r159463 stopped us from setting layers opaque if they were being painted
        at non-integral scale. This makes sense for compositing layers, which
        are painted by arbitrary elements, but the main frame's RenderView
        will always paint its entire contents. To restore the opaque contents
        optimization to the main frame's tiles, don't de-opaquify layers
        belonging to the main frame's RenderView.

2014-03-18  Jeffrey Pfau  <jpfau@apple.com>

        Unify <media> element callback registration and unregistration
        https://bugs.webkit.org/show_bug.cgi?id=130417

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        (WebCore::HTMLMediaElement::~HTMLMediaElement):
        (WebCore::HTMLMediaElement::registerWithDocument):
        (WebCore::HTMLMediaElement::unregisterWithDocument):
        (WebCore::HTMLMediaElement::didMoveToNewDocument):
        * html/HTMLMediaElement.h:

2014-03-18  Jer Noble  <jer.noble@apple.com>

        MediaDocument should set a max-width on its <video> element.
        https://bugs.webkit.org/show_bug.cgi?id=114691

        Reviewed by Eric Carlson.

        Set a style attribute containing max-width:100% and max-height:100% so that large videos
        are entirely visible within the browser window bounds.

        * html/MediaDocument.cpp:
        (WebCore::MediaDocumentParser::createDocumentStructure):

2014-03-18  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WebRTC] Fix layering violation in RTCStatsRequest
        https://bugs.webkit.org/show_bug.cgi?id=130426

        Reviewed by Eric Carlson.

        RTCStatsRequest::track() should return a MediaStreamTrackPrivate*.

        No new tests needed.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::getStats):
        * Modules/mediastream/RTCStatsRequestImpl.cpp:
        (WebCore::RTCStatsRequestImpl::create):
        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
        (WebCore::RTCStatsRequestImpl::track):
        * Modules/mediastream/RTCStatsRequestImpl.h:
        * platform/mediastream/RTCStatsRequest.h:

2014-03-18  Anders Carlsson  <andersca@apple.com>

        Fix a trivial FIXME
        https://bugs.webkit.org/show_bug.cgi?id=130432

        Reviewed by Tim Horton.

        * history/HistoryItem.cpp:
        (WebCore::HistoryItem::encodeBackForwardTreeNode):

2014-03-18  Anders Carlsson  <andersca@apple.com>

        Begin cleaning up KeyedDecoder and KeyedEncoder
        https://bugs.webkit.org/show_bug.cgi?id=130431

        Reviewed by Tim Horton.

        Rename KeyedDecoder::decodeVerifiedEnum to decodeEnum to match the encode function,
        and sort the decode functions to be in the same logical order as the encode functions.

        * Modules/indexeddb/IDBKeyData.cpp:
        (WebCore::IDBKeyData::decode):
        * Modules/indexeddb/IDBKeyPath.cpp:
        (WebCore::IDBKeyPath::decode):
        * platform/KeyedCoding.h:
        (WebCore::KeyedDecoder::decodeEnum):

2014-03-18  Darin Adler  <darin@apple.com>

        Reduce use of deprecatedCharacters in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=130318

        Reviewed by Andreas Kling.

        * Modules/indexeddb/IDBKeyPath.cpp:
        (WebCore::IDBKeyPathLexer::IDBKeyPathLexer): Use StringView for parsing.
        (WebCore::IDBKeyPathLexer::lex): Ditto.
        (WebCore::IDBKeyPathLexer::lexIdentifier): Ditto.

        * Modules/indexeddb/leveldb/IDBLevelDBCoding.cpp:
        (WebCore::IDBLevelDBCoding::encodeString): Index directly into string instead of
        using deprecatedCharacters.

        * Modules/websockets/ThreadableWebSocketChannelClientWrapper.cpp:
        (WebCore::ThreadableWebSocketChannelClientWrapper::setSubprotocol): Use
        StringView::getCharactersWithUpconvert.
        (WebCore::ThreadableWebSocketChannelClientWrapper::setExtensions): Ditto.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):
        Use operator NSString * instead of explicitly creating an NSString.

        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::writeLittleEndianUInt16): Added.
        (WebCore::CloneSerializer::serialize): Added a separate code path for 8-bit strings.
        (WebCore::CloneSerializer::write): Ditto.

        * bindings/objc/WebScriptObject.mm:
        (+[WebScriptObject _convertValueToObjcValue:JSC::originRootObject:rootObject:]):
        Use operator NSString * instead of explicitly creating an NSString.

        * dom/Document.cpp:
        (WebCore::Document::parseQualifiedName): Index directly into string instead of
        using deprecatedCharacters.
        * editing/CompositeEditCommand.cpp:
        (WebCore::containsOnlyWhitespace): Ditto.
        * editing/SmartReplace.cpp:
        (WebCore::addAllCodePoints): Ditto.
        (WebCore::getSmartSet): Use StringView::upconvertedCharacters.

        * editing/TextIterator.cpp:
        (WebCore::foldQuoteMarksAndSoftHyphens): Changed to return a value so it can be
        used in initialization rather than assignment.
        (WebCore::SearchBuffer::SearchBuffer): Use StringView::upconvertedCharacters.

        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::insertText): Index directly into string instead of using
        deprecatedCharacters.
        * editing/VisiblePosition.cpp:
        (WebCore::VisiblePosition::characterAfter): Ditto.
        * editing/VisibleUnits.cpp:
        (WebCore::startOfParagraph): Ditto.
        (WebCore::endOfParagraph): Ditto.

        * fileapi/WebKitBlobBuilder.cpp:
        (WebCore::BlobBuilder::append): Pass a StringView to TextEncoding::encode.

        * html/BaseDateAndTimeInputType.cpp:
        (WebCore::BaseDateAndTimeInputType::parseToDateComponents): Use
        StringView::upconvertedCharacters.

        * html/FormDataList.cpp:
        (WebCore::FormDataList::appendString): Pass a StringView to TextEncoding::encode.

        * html/canvas/CanvasRenderingContext2D.cpp:
        (WebCore::normalizeSpaces): Use StringView::getCharactersWithUpconvert.

        * html/parser/HTMLParserIdioms.cpp:
        (WebCore::stripLeadingAndTrailingHTMLSpaces): Use characters16 for a code path
        that already handled 8-bit characters separately.
        (WebCore::parseHTMLNonNegativeInteger): Ditto.
        (WebCore::parseDescriptors): Added an 8-bit code path.

        * inspector/InspectorStyleSheet.cpp:
        (WebCore::InspectorStyle::newLineAndWhitespaceDelimiters): Index directly into
        string instead of using deprecatedCharacters.
        * inspector/InspectorStyleTextEditor.cpp:
        (WebCore::InspectorStyleTextEditor::insertProperty): Ditto.
        (WebCore::InspectorStyleTextEditor::internalReplaceProperty): Ditto.

        * page/ContentSecurityPolicy.cpp:
        (WebCore::isSourceListNone): Use StringView::upconvertedCharacters.
        (WebCore::CSPSourceList::parse): Ditto.
        (WebCore::NonceDirective::parse): Ditto.
        (WebCore::MediaListDirective::parse): Ditto.
        (WebCore::CSPDirectiveList::parse): Ditto.
        (WebCore::CSPDirectiveList::parseReportURI): Ditto.
        (WebCore::CSPDirectiveList::parseReflectedXSS): Ditto.
        (WebCore::ContentSecurityPolicy::didReceiveHeader): Ditto.

        * page/PageSerializer.cpp:
        (WebCore::PageSerializer::serializeFrame): Pass a StringView into
        TextEncoding::encode.
        (WebCore::PageSerializer::serializeCSSStyleSheet): Ditto.

        * platform/Length.cpp:
        (WebCore::countCharacter): Index directly into string instead of using
        deprecatedCharacters. Also changed to take a StringImpl&.
        (WebCore::newCoordsArray): Ditto. Call countCharacter the new way, and
        use StringView::upconvertedCharacters.
        (WebCore::newLengthArray): Ditto.

        * platform/LinkHash.cpp:
        (WebCore::visitedLinkHash): Use characters16 for the 16-bit path.
        Also removed unused visitedURL function.
        * platform/LinkHash.h: Removed unused visitedURL function.

        * platform/SharedBuffer.cpp:
        (WebCore::utf8Buffer): Added an 8-bit code path.
        * platform/URL.cpp:
        (WebCore::URL::port): Ditto.
        (WebCore::encodeRelativeString): Use StringView to call TextEncoding::encode.

        * platform/graphics/Color.cpp:
        (WebCore::Color::parseHexColor): Use characters16 in the 16-bit path.
        (WebCore::Color::Color): Ditto.

        * platform/graphics/harfbuzz/HarfBuzzFaceCairo.cpp:
        (WebCore::harfBuzzGetGlyph): Use StringView to call TextEncoding::encode.

        * platform/graphics/StringTruncator.cpp:
        (WebCore::centerTruncateToBuffer): Use StringView::getCharactersWithUpconvert.
        (WebCore::rightTruncateToBuffer): Ditto.
        (WebCore::rightClipToCharacterBuffer): Ditto.
        (WebCore::rightClipToWordBuffer): Ditto.
        (WebCore::leftTruncateToBuffer): Ditto.
        (WebCore::truncateString): Ditto.

        * platform/graphics/TextRun.h:
        (WebCore::TextRun::TextRun): Use characters16 in the 16-bit code path.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):
        Use StringView::upconvertedCharacters.

        * platform/network/DataURL.cpp:
        (WebCore::handleDataURL): Use StringView to call TextEncoding::encode.
        * platform/network/FormDataBuilder.cpp:
        (WebCore::FormDataBuilder::addFilenameToMultiPartHeader): Ditto.

        * platform/sql/SQLiteStatement.cpp:
        (WebCore::SQLiteStatement::bindBlob): Use StringView::upconvertedCharacters.
        (WebCore::SQLiteStatement::bindText): Ditto.

        * platform/text/DecodeEscapeSequences.h:
        (WebCore::Unicode16BitEscapeSequence::decodeRun): Changed to take a StringView.
        (WebCore::URLEscapeSequence::decodeRun): Ditto.
        (WebCore::decodeEscapeSequences): Pass StringView to decodeRun.

        * platform/text/Hyphenation.cpp:
        (WebCore::lastHyphenLocation): Take a StringView.
        * platform/text/Hyphenation.h: Make lastHyphenLocation take a StringView.

        * platform/text/TextBreakIterator.cpp:
        (WebCore::initializeIteratorWithRules): Use StringView::upconvertedCharacters.

        * platform/text/TextEncoding.cpp:
        (WebCore::TextEncoding::encode): Use StringView::upconvertedCharacters.
        Change argument type to StringView.
        * platform/text/TextEncoding.h: Ditto.

        * platform/text/TextEncodingRegistry.cpp:
        (WebCore::atomicCanonicalTextEncodingName): Use characters16 for the 16-bit path.

        * platform/text/cf/HyphenationCF.cpp:
        (WebCore::lastHyphenLocation): Use StringView::text.createCFStringWithoutCopying.
        Change argument type to StringView.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::constructTextRun): Use characters16 for the 16-bit path.

        * rendering/RenderCombineText.cpp:
        (WebCore::RenderCombineText::width): Removed check for null characters pointer,
        since the pointer will never be null, and even if it was there would be no need
        for an early exit.

        * rendering/RenderText.cpp:
        (WebCore::maxWordFragmentWidth): Take a StringView.
        (WebCore::RenderText::computePreferredLogicalWidths): Pass in a StringView.
        * rendering/line/BreakingContextInlineHeaders.h:
        (WebCore::tryHyphenating): Ditto.

        * rendering/svg/SVGTextLayoutEngine.cpp:
        (WebCore::SVGTextLayoutEngine::layoutTextOnLineOrPath): Use
        StringView::upconvertedCharacters.

        * rendering/svg/SVGTextMetrics.cpp:
        (WebCore::SVGTextMetrics::SVGTextMetrics): Use String::substring.

        * svg/SVGAngle.cpp:
        (WebCore::SVGAngle::setValueAsString): Use StringView::upconvertedCharacters.
        * svg/SVGAnimateMotionElement.cpp:
        (WebCore::parsePoint): Ditto.
        * svg/SVGAnimationElement.cpp:
        (WebCore::parseKeySplines): Ditto.
        * svg/SVGFitToViewBox.cpp:
        (WebCore::SVGFitToViewBox::parseViewBox): Ditto.

        * svg/SVGFontData.cpp:
        (WebCore::SVGFontData::applySVGGlyphSelection): Pass StringView to
        createStringWIthMirroredCharacters.
        (WebCore::createStringWithMirroredCharacters): Changed to use StringView and
        use indexing into that instead of a characters pointer.

        * svg/SVGFontData.h: Removed createStringWithMirroredCharacters member function,
        since it has nothing to do with the SVGFontData object. Now it's just a private
        helper function in the SVGFontData.cpp source file.

        * svg/SVGFontElement.cpp:
        (WebCore::SVGFontElement::registerLigaturesInGlyphCache): Index into the string
        instead of using deprecatedCharacters.

        * svg/SVGGlyphMap.h:
        (WebCore::SVGGlyphMap::addGlyph): Use StringView::upconvertedCharacters.
        (WebCore::SVGGlyphMap::collectGlyphsForString): Ditto.
        * svg/SVGGlyphRefElement.cpp:
        (WebCore::SVGGlyphRefElement::parseAttribute): Ditto.
        * svg/SVGLength.cpp:
        (WebCore::SVGLength::setValueAsString): Ditto.
        * svg/SVGLengthList.cpp:
        (WebCore::SVGLengthList::parse): Ditto.
        * svg/SVGNumberList.cpp:
        (WebCore::SVGNumberList::parse): Ditto.
        * svg/SVGParserUtilities.cpp:
        (WebCore::parseNumberFromString): Ditto.
        (WebCore::parseNumberOptionalNumber): Ditto.
        (WebCore::parseRect): Ditto.
        (WebCore::pointsListFromSVGData): Ditto.
        (WebCore::parseGlyphName): Ditto.
        (WebCore::parseKerningUnicodeString): Ditto.
        (WebCore::parseDelimitedString): Ditto.
        * svg/SVGPreserveAspectRatio.cpp:
        (WebCore::SVGPreserveAspectRatio::parse): Ditto.
        * svg/SVGStringList.cpp:
        (WebCore::SVGStringList::parse): Ditto.
        * svg/SVGTransformList.cpp:
        (WebCore::SVGTransformList::parse): Ditto.
        * svg/SVGTransformable.cpp:
        (WebCore::SVGTransformable::parseTransformType): Ditto.
        * svg/SVGViewSpec.cpp:
        (WebCore::SVGViewSpec::parseViewSpec): Ditto.
        * svg/SVGZoomAndPan.h:
        (WebCore::SVGZoomAndPan::parseAttribute): Ditto.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::send): Pass a StringView to TextEncoding::encode.

        * xml/XSLStyleSheetLibxslt.cpp:
        (WebCore::XSLStyleSheet::parseString): Use StringView::upconvertedCharacters.

2014-03-18  Bem Jones-Bey  <bjonesbe@adobe.com>

        LayoutBox is a terrible name
        https://bugs.webkit.org/show_bug.cgi?id=130351

        Reviewed by Simon Fraser.

        Rename LayoutBox to CSSBoxType. Also rename the functions and methods
        that mention "LayoutBox" to something that makes sense for each
        specific situation.

        No new tests, no behavior change.

        * css/BasicShapeFunctions.cpp:
        (WebCore::valueForBasicShape):
        (WebCore::basicShapeForValue):
        * css/CSSBasicShapes.cpp:
        (WebCore::CSSBasicShapeCircle::cssText):
        (WebCore::CSSBasicShapeCircle::equals):
        (WebCore::CSSBasicShapeEllipse::cssText):
        (WebCore::CSSBasicShapeEllipse::equals):
        (WebCore::CSSBasicShapePolygon::cssText):
        (WebCore::CSSBasicShapePolygon::equals):
        (WebCore::CSSBasicShapeInset::cssText):
        * css/CSSBasicShapes.h:
        (WebCore::CSSBasicShape::referenceBox):
        (WebCore::CSSBasicShape::setReferenceBox):
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::shapePropertyValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator CSSBoxType):
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::ApplyPropertyClipPath::applyValue):
        (WebCore::ApplyPropertyShape::applyValue):
        * page/animation/CSSPropertyAnimation.cpp:
        (WebCore::blendFunc):
        * rendering/ClipPathOperation.h:
        (WebCore::ShapeClipPathOperation::setReferenceBox):
        (WebCore::ShapeClipPathOperation::referenceBox):
        (WebCore::BoxClipPathOperation::create):
        (WebCore::BoxClipPathOperation::referenceBox):
        (WebCore::BoxClipPathOperation::BoxClipPathOperation):
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createBoxShape):
        * rendering/shapes/Shape.h:
        * rendering/shapes/ShapeInfo.cpp:
        (WebCore::ShapeInfo<RenderType>::computedShape):
        * rendering/shapes/ShapeInfo.h:
        * rendering/shapes/ShapeInsideInfo.h:
        * rendering/shapes/ShapeOutsideInfo.h:
        * rendering/style/BasicShapes.cpp:
        (WebCore::BasicShape::canBlend):
        * rendering/style/BasicShapes.h:
        (WebCore::BasicShape::referenceBox):
        (WebCore::BasicShape::setReferenceBox):
        (WebCore::BasicShape::BasicShape):
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/ShapeValue.h:
        (WebCore::ShapeValue::createShapeValue):
        (WebCore::ShapeValue::createBoxShapeValue):
        (WebCore::ShapeValue::cssBox):
        (WebCore::ShapeValue::ShapeValue):

2014-03-18  Daniel Bates  <dabates@apple.com>

        REGRESSION (r162334): RenderTableCol::styleDidChange uses out-of-date table information
        https://bugs.webkit.org/show_bug.cgi?id=129561

        Reviewed by Antti Koivisto.

        Test: fast/table/update-col-width-and-remove-table-cell-crash.html

        Fixes an issue where a table column or table column group may query an out-
        of-date model of its associated table as part of its process to propagate
        style changes to affected table cells.

        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::styleDidChange): Ensure that all sections in the table
        are up-to-date before querying for a table cell.
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::recalcCells): Update comment to read well. In
        particular, remove the reference to RenderTableSection::fillRowsWithDefaultStartingAtPosition()
        as this function was removed in <http://trac.webkit.org/changeset/99919>.
        (WebCore::RenderTableSection::setNeedsCellRecalc): Clear the grid preemptively to
        to ensure that accessors cannot access stale data. We'll build the grid again
        in RenderTableSection::recalcCells().
        (WebCore::RenderTableSection::numColumns): Add ASSERT(!m_needsCellRecalc) to assert
        that the grid cells are up-to-date. That is, we don't need to calculate them again.
        * rendering/RenderTableSection.h: Add ASSERT(!m_needsCellRecalc) or call recalcCellsIfNeeded()
        before accessing the grid to ensure that it's up-to-date.

2014-03-18  Daniel Bates  <dabates@apple.com>

        REGRESSION (r163560): ASSERTION FAILED: childrenInline() in WebCore::RenderSVGText::layout
        https://bugs.webkit.org/show_bug.cgi?id=130346

        Reviewed by Andreas Kling.

        Following <http://trac.webkit.org/changeset/163560>, SVG inline elements may be treated as block-
        level elements depending on their CSS styles (e.g. display: block). But such elements should always
        be treated as inline-level elements.

        Partially revert <http://trac.webkit.org/changeset/164368> as it addressed a similar issue for
        <tspan> and <tref>. Instead we should implement RenderSVGInline::updateFromStyle() to ensure that
        RenderSVGInline and any derived classes (e.g. RenderSVGTSpan) are always treated as inline elements
        regardless of their CSS style because the SVG text layout code depends on this assumption as part
        of a performance optimization. We may want to revaluate the benefits of this optimization with respect
        to code clarity and ensuring the code is less error prone.

        Test: svg/text/a-display-block.html
              svg/text/tref-display-inherit.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle): Revert changes from <http://trac.webkit.org/changeset/164368>.
        * rendering/RenderInline.h:
        * rendering/svg/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::updateFromStyle): Added; ensure that RenderSVGInline and any derived
        classes are treated as inline elements because the SVG text layout code depends on this assumption.
        * rendering/svg/RenderSVGInline.h:

2014-03-18  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] shape-outside: ellipse(50% 50% at) causes crash
        https://bugs.webkit.org/show_bug.cgi?id=130366

        Reviewed by Andreas Kling.

        The BasicShape ellipse and circle functions now report a syntax error
        if the "at" keyword is not followed by a position.

        The existing parsing tests have been updated to include this case.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseBasicShapeCircle):
        (WebCore::CSSParser::parseBasicShapeEllipse):

2014-03-18  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        Removing MediaStreamVector typedef
        https://bugs.webkit.org/show_bug.cgi?id=130402

        Reviewed by Eric Carlson.

        * Modules/mediastream/MediaStream.h:
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::getLocalStreams):
        (WebCore::RTCPeerConnection::getRemoteStreams):
        (WebCore::RTCPeerConnection::getStreamById):
        (WebCore::RTCPeerConnection::hasLocalStreamWithTrackId):
        * Modules/mediastream/RTCPeerConnection.h:

2014-03-18  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165815.
        https://bugs.webkit.org/show_bug.cgi?id=130410

        Broke many VTT tests (Requested by bfulgham on #webkit).

        Reverted changeset:

        "TextTrackRegion Not Implemented"
        https://bugs.webkit.org/show_bug.cgi?id=116546
        http://trac.webkit.org/changeset/165815

2014-03-18  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>

        Bad cast with toRenderBox in WebCore::RenderView::repaintViewRectangle
        https://bugs.webkit.org/show_bug.cgi?id=129104

        Reviewed by Simon Fraser.

        We should not cast the renderer of a RenderView's owner to RenderBox
        unless we are sure it is one.

        Test: plugins/crash-invalid-data-reference.html

        * rendering/RenderView.cpp:
        (WebCore::RenderView::repaintViewRectangle):

2014-03-18  Andreas Kling  <akling@apple.com>

        Micro-optimize element descendant iterator.
        <https://webkit.org/b/130384>

        Add a slightly more efficient ElementDescendantIterator that keeps a stack
        of relevant ancestor siblings instead of walking up the parent chain every
        time we run out of children.

        Reviewed by Antti Koivisto.

        * WebCore.xcodeproj/project.pbxproj:
        * dom/ElementDescendantIterator.h: Added.
        (WebCore::ElementDescendantIterator::ElementDescendantIterator):
        (WebCore::ElementDescendantIterator::operator++):
        (WebCore::ElementDescendantConstIterator::ElementDescendantConstIterator):
        (WebCore::ElementDescendantConstIterator::operator++):
        (WebCore::ElementDescendantIteratorAdapter::ElementDescendantIteratorAdapter):
        (WebCore::ElementDescendantIteratorAdapter::begin):
        (WebCore::ElementDescendantIteratorAdapter::end):
        (WebCore::ElementDescendantConstIteratorAdapter::ElementDescendantConstIteratorAdapter):
        (WebCore::ElementDescendantConstIteratorAdapter::begin):
        (WebCore::ElementDescendantConstIteratorAdapter::end):
        (WebCore::elementDescendants):
        * dom/ElementIterator.h:
        * dom/SelectorQuery.cpp:
        (WebCore::elementsForLocalName):
        (WebCore::anyElement):
        (WebCore::SelectorDataList::executeSingleTagNameSelectorData):
        (WebCore::SelectorDataList::executeSingleClassNameSelectorData):
        (WebCore::SelectorDataList::executeSingleSelectorData):
        (WebCore::SelectorDataList::executeSingleMultiSelectorData):
        (WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):

2014-03-18  Antti Koivisto  <antti@apple.com>

        Mutating rules returned by getMatchedCSSRules can result in crash
        https://bugs.webkit.org/show_bug.cgi?id=130209

        Reviewed by Andreas Kling.
        
        The non-standard getMatchedCSSRules API returns CSSStyleRule objects that don't
        have parent stylesheet pointer (as we don't know which sheet the rule originated from).
        Mutating the rule via such wrapper can lead to crashes later as we fail to invalidate
        the underlying stylesheet.
        
        Fix by disallowing mutation of style rules that don't have parent sheet pointer. CSSStyleRule
        has two mutable properties selectorText and style. The latter gives back CSSStyleDeclaration.
        This patch disallows mutations in both cases for CSSStyleRules that don't have parent stylesheet
        pointer.
        
        While it is technically possible to have CSSRules that are legitimately disconnected
        from stylesheet (by removing rule from sheet while holding a reference to it) it never
        makes sense to mutate such rule as there is no way to do anything with it afterwards.

        Tests: fast/css/getMatchedCSSProperties-rule-mutation.html
               fast/css/getMatchedCSSRules-crash.html

        * css/CSSStyleRule.cpp:
        (WebCore::CSSStyleRule::setSelectorText):

            Bail out if parent stylesheet is null.

        * css/PropertySetCSSStyleDeclaration.cpp:
        (WebCore::PropertySetCSSStyleDeclaration::setCssText):
        (WebCore::PropertySetCSSStyleDeclaration::setProperty):
        (WebCore::PropertySetCSSStyleDeclaration::removeProperty):
        (WebCore::PropertySetCSSStyleDeclaration::setPropertyInternal):
        
            Allow StyleRuleCSSStyleDeclaration subclass cancel the mutation via
            boolean return value from willMutate.

        (WebCore::StyleRuleCSSStyleDeclaration::willMutate):
        
            Disallow mutation if the owning CSSStyleRule is null or has null stylesheet.

        (WebCore::StyleRuleCSSStyleDeclaration::didMutate):
        
            We never get here with null rule or stylesheet anymore.

        * css/PropertySetCSSStyleDeclaration.h:
        (WebCore::PropertySetCSSStyleDeclaration::willMutate):

2014-03-17  Jeffrey Pfau  <jpfau@apple.com>

        <media> elements are not properly moved to new documents' visibility callback lists
        https://bugs.webkit.org/show_bug.cgi?id=127711

        Reviewed by David Kilzer.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::didMoveToNewDocument):

2014-03-18  Filip Pizlo  <fpizlo@apple.com>

        More FTL enabling.

        Rubber stamped by Dan Bernstein and Mark Hahnenberg.

        No new tests.

        * Configurations/FeatureDefines.xcconfig:

2014-03-18  Brent Fulgham  <bfulgham@apple.com>

        TextTrackRegion Not Implemented
        https://bugs.webkit.org/show_bug.cgi?id=116546

        Reviewed by Eric Carlson.

        Merged from Blink (patch by vcarbune@chromium.org):
        https://chromium.googlesource.com/chromium/blink/+/4940f89a087fea5b5ea628e98d0b355d398a9eea
        http://crbug.com/25798003

        Tests: media/track/regions-webvtt/text-track-region-display.html
               media/track/regions-webvtt/text-track-region-dom-layout.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/track/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::newRegionsAvailable):
        * html/track/TextTrack.cpp:
        * html/track/TextTrack.h:
        * html/track/TextTrackRegion.cpp:
        (WebCore::TextTrackRegion::TextTrackRegion):
        (WebCore::TextTrackRegion::appendTextTrackCueBox):
        * html/track/TextTrackRegion.h:
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::VTTCue):
        (WebCore::VTTCue::notifyRegionWhenRemovingDisplayTree):
        (WebCore::VTTCue::removeDisplayTree):
        * html/track/VTTCue.h:
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::parseBytes):
        (WebCore::WebVTTParser::collectMetadataHeader):
        * html/track/WebVTTParser.h:

2014-03-18  Philippe Normand  <pnormand@igalia.com>

        [GTK] ResourceLoaderSoup.cpp was added by mistake
        https://bugs.webkit.org/show_bug.cgi?id=130396

        Reviewed by Carlos Garcia Campos.

        This file was committed by mistake in r152778 and is not built by
        any port.

        * loader/soup/ResourceLoaderSoup.cpp: Removed.

2014-03-18  Andreas Kling  <akling@apple.com>

        Rename ElementDescendantIterator to TypedElementDescendantIterator.
        Romper-stubbed by Antti "Latte Lung" Koivisto.

        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/ElementDescendantIterator.h: Removed.
        * dom/ElementIterator.h:
        * dom/TypedElementDescendantIterator.h: Added.
        (WebCore::TypedElementDescendantIterator<ElementType>::TypedElementDescendantIterator):
        (WebCore::TypedElementDescendantIterator<ElementType>::operator):
        (WebCore::TypedElementDescendantConstIterator<ElementType>::TypedElementDescendantConstIterator):
        (WebCore::TypedElementDescendantConstIterator<ElementType>::operator):
        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::TypedElementDescendantIteratorAdapter):
        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::begin):
        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::end):
        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::beginAt):
        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::from):
        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::first):
        (WebCore::TypedElementDescendantIteratorAdapter<ElementType>::last):
        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::TypedElementDescendantConstIteratorAdapter):
        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::begin):
        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::end):
        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::beginAt):
        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::from):
        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::first):
        (WebCore::TypedElementDescendantConstIteratorAdapter<ElementType>::last):
        (WebCore::descendantsOfType):

2014-03-18  Ion Rosca  <rosca@adobe.com>

        Add blend mode property to dumped information in GraphicsLayer.
        https://bugs.webkit.org/show_bug.cgi?id=130331

        Reviewed by Simon Fraser.

        Functionality is not changed, therefore no new tests added.
        I adjusted the affected test results generated with layerTreeAsText.

        * platform/graphics/GraphicsLayer.cpp:
        (WebCore::GraphicsLayer::dumpProperties):

2014-03-17  Sergio Villar Senin  <svillar@igalia.com>

        webdatabase: Replace DEPRECATED_DEFINE_STATIC_LOCAL by static NeverDestroyed<T>
        https://bugs.webkit.org/show_bug.cgi?id=130347

        Reviewed by Darin Adler.

        * Modules/webdatabase/DatabaseTracker.cpp:
        (WebCore::DatabaseTracker::openDatabaseMutex):
        (WebCore::notificationMutex):
        (WebCore::notificationQueue):

2014-03-17  Jer Noble  <jer.noble@apple.com>

        Add RemoteCommandListener support to MediaSessionManager.
        https://bugs.webkit.org/show_bug.cgi?id=130354

        Reviewed by Eric Carlson.

        Listen for remote commands in MediaSessionManager.

        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::addSession):
        (WebCore::MediaSessionManager::removeSession):
        * platform/audio/MediaSessionManager.h:

        Add RemoteCommandListener to the project files:
        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:

2014-03-17  Ryosuke Niwa  <rniwa@webkit.org>

        Rewrite WebHTMLConverter::_elementHasOwnBackgroundColor in C++
        https://bugs.webkit.org/show_bug.cgi?id=130291

        Reviewed by Andreas Kling.

        Extracted HTMLConverterCaches::elementHasOwnBackgroundColor.

        * platform/mac/HTMLConverter.mm:
        (HTMLConverterCaches::elementHasOwnBackgroundColor):
        (-[WebHTMLConverter _elementHasOwnBackgroundColor:]):

2014-03-17  Ryosuke Niwa  <rniwa@webkit.org>

        Rewrite WebHTMLConverter::_elementIsBlockLevel in C++
        https://bugs.webkit.org/show_bug.cgi?id=130287

        Reviewed by Andreas Kling.

        Rewrote _elementIsBlockLevel as HTMLConverterCaches::isBlockElement. Also removed the code to update
        _elementIsBlockLevel in _traverseNode as computing the value of _elementIsBlockLevel is now fast.

        * platform/mac/HTMLConverter.h:
        * platform/mac/HTMLConverter.mm:
        (HTMLConverterCaches::isBlockElement):
        (-[WebHTMLConverter _elementIsBlockLevel:]):
        (-[WebHTMLConverter _traverseNode:depth:embedded:]):
        (-[WebHTMLConverter dealloc]):
        (-[WebHTMLConverter init]):

2014-03-17  Ryosuke Niwa  <rniwa@webkit.org>

        Rewrite WebHTMLConverter::_getComputedFloat in C++
        https://bugs.webkit.org/show_bug.cgi?id=130284

        Reviewed by Andreas Kling.

        Rewrote _getComputedFloat as HTMLConverterCaches::floatPropertyValueForNode.

        * platform/mac/HTMLConverter.h:
        * platform/mac/HTMLConverter.mm:
        (HTMLConverterCaches::floatPropertyValueForNode):
        (-[WebHTMLConverter _getFloat:forNode:property:]): Now that computing the float value is fast, we don't need to
        store it in the cache.
        (-[WebHTMLConverter dealloc]):
        (-[WebHTMLConverter init]):

2014-03-16  Andreas Kling  <akling@apple.com>

        HTMLInputElement::defaultEventHandler() shouldn't force style updates.
        <https://webkit.org/b/130303>

        Move the updateStyleIfNeeded() call down to TextFieldInputType instead
        of doing it for every HTMLInputEvent.

        There might be a better way to do this; we only want to know about this
        specific element's renderer, and don't need the rest of the tree.
        This is still an easy hack to avoid a lot of unnecessary work.

        Reviewed by Anders Carlsson.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::defaultEventHandler):
        * html/TextFieldInputType.cpp:
        (WebCore::TextFieldInputType::forwardEvent):

2014-03-17  Brent Fulgham  <bfulgham@apple.com>

        [WebVTT] Extending WebVTT Rendering with Regions
        https://bugs.webkit.org/show_bug.cgi?id=109822

        Reviewed by Eric Carlson.

        Merged from Blink (patch by Victor Carbune vcarbune@chromium.org):
        https://chromium.googlesource.com/chromium/blink/+/0cdebc1d76d41bfcb9c4b022e54a4fbff132225d

        No new tests, as this feature is not active in default builds. New tests will be added
        in an upcoming bug.

        * css/mediaControls.css:
        (video::-webkit-media-text-track-region):
        (video::-webkit-media-text-track-region-container):
        (video::-webkit-media-text-track-region-container.scrolling):
        (video::-webkit-media-text-track-display):
        * html/shadow/MediaControlElements.cpp:
        (WebCore::MediaControlTextTrackContainerElement::updateDisplay):
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::~TextTrack):
        * html/track/TextTrackCue.cpp:
        * html/track/TextTrackRegion.cpp:
        (WebCore::TextTrackRegion::TextTrackRegion):
        (WebCore::TextTrackRegion::textTrackCueContainerScrollingClass):
        (WebCore::TextTrackRegion::textTrackCueContainerShadowPseudoId):
        (WebCore::TextTrackRegion::textTrackRegionShadowPseudoId):
        (WebCore::TextTrackRegion::appendTextTrackCueBox):
        (WebCore::TextTrackRegion::displayLastTextTrackCueBox):
        (WebCore::TextTrackRegion::willRemoveTextTrackCueBox):
        (WebCore::TextTrackRegion::getDisplayTree):
        (WebCore::TextTrackRegion::prepareRegionDisplayTree):
        (WebCore::TextTrackRegion::startTimer):
        (WebCore::TextTrackRegion::stopTimer):
        (WebCore::TextTrackRegion::scrollTimerFired):
        * html/track/TextTrackRegion.h:
        (WebCore::TextTrackRegion::create):
        (WebCore::TextTrackRegion::isScrollingRegion):
        (WebCore::TextTrackRegion::ownerDocument):
        * html/track/TextTrackRegion.idl:
        * html/track/TextTrackRegionList.cpp:
        (WebCore::TextTrackRegionList::getRegionById):
        * html/track/VTTCue.cpp:
        (WebCore::VTTCueBox::applyCSSProperties):
        (WebCore::VTTCue::~VTTCue):
        (WebCore::VTTCue::setIsActive):
        (WebCore::VTTCue::removeDisplayTree):
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::createNewRegion):
        * rendering/RenderVTTCue.cpp:
        (WebCore::RenderVTTCue::layout):

2014-03-17  Brendan Long  <b.long@cablelabs.com>

        [GStreamer] human readable language code for tracks
        https://bugs.webkit.org/show_bug.cgi?id=124514

        Reviewed by Martin Robinson.

        * PlatformEfl.cmake: Add GSTREAMER_TAG_INCLUDE_DIRS and GSTREAMER_TAG_LIBRARIES.
        * PlatformGTK.cmake: Same.
        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
        (WebCore::TrackPrivateBaseGStreamer::getLanguageCode): Run language codes though gst_tag_get_language_code_iso_639_1() to make sure they're valid.
        (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Use getLanguageCode() for languages instead of just getTag().

2014-03-17  Ryosuke Niwa  <rniwa@webkit.org>

        [Mac] Rewrite WebHTMLConverter::_computedStringForNode in C++
        https://bugs.webkit.org/show_bug.cgi?id=130274

        Reviewed by Andreas Kling.

        Rewrote WebHTMLConverter::_computedStringForNode as HTMLConverterCaches::propertyValueForNode.

        * platform/mac/HTMLConverter.h: Removed unused caches.
        * platform/mac/HTMLConverter.mm:
        (HTMLConverterCaches::computedStylePropertyForElement): Added use const String& instead of String& on property name.
        (HTMLConverterCaches::inlineStylePropertyForElement): Ditto.
        (HTMLConverterCaches::propertyValueForNode): Renamed and rewritten from _computedStringForNode.
        (-[WebHTMLConverter _stringForNode:property:]): Simply return the computed value instead of storing it in the cache
        now that the computing the value is fast.
        (-[WebHTMLConverter dealloc]):
        (-[WebHTMLConverter init]):

2014-03-17  Andreas Kling  <akling@apple.com>

        Remove unnecessary JSC::Handle null checks in bindings code.
        <https://webkit.org/b/130356>

        Use Handle::slot() directly instead of going through Handle::get().
        This avoids null checking the HandleSlot, which isn't necessary here
        anyway, and the code already assumes it'll never be null.

        Reviewed by Gavin Barraclough.

        * bindings/js/JSCSSRuleListCustom.cpp:
        (WebCore::JSCSSRuleListOwner::isReachableFromOpaqueRoots):
        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::JSCSSValueOwner::isReachableFromOpaqueRoots):
        (WebCore::JSCSSValueOwner::finalize):
        * bindings/js/JSMutationObserverCustom.cpp:
        (WebCore::JSMutationObserverOwner::isReachableFromOpaqueRoots):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::JSNodeOwner::isReachableFromOpaqueRoots):
        * bindings/js/JSNodeListCustom.cpp:
        (WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):
        * bindings/js/JSTextTrackCueCustom.cpp:
        (WebCore::JSTextTrackCueOwner::isReachableFromOpaqueRoots):
        * bindings/js/WebCoreTypedArrayController.cpp:
        (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::isReachableFromOpaqueRoots):
        (WebCore::WebCoreTypedArrayController::JSArrayBufferOwner::finalize):
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * bridge/runtime_root.cpp:
        (JSC::Bindings::RootObject::finalize):

2014-03-17  Krzysztof Czech  <k.czech@samsung.com>

        AX: Reducing some code by using helper function ariaElementsFromAttribute
        https://bugs.webkit.org/show_bug.cgi?id=130344

        Reviewed by Chris Fleizach.

        Change visibility of ariaElementsFromAttribute function from private to protected
        so that other classes that derives from AccessibilityRenderObject can use it.

        No new tests. No behaviour change.

        * accessibility/AccessibilityRenderObject.h:
        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::columnHeaders):

2014-03-16  Brent Fulgham  <bfulgham@apple.com>

        Provide preference to enable additional AVFoundation options
        https://bugs.webkit.org/show_bug.cgi?id=130275

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::doesHaveAttribute): Added.
        * html/HTMLMediaElement.h:
        * page/Settings.in: Add new attribute.
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::doesHaveAttribute): Added stub to call private player object's
        implementation of doesHaveAttribute.
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::doesHaveAttribute):
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::MediaPlayerPrivateAVFoundationCF::AVFWrapper::createAssetForURL): Check the <media> object,
        and notify AVFoundationCF to use URI option if relevant.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Check the <media> object,
        and notify AVFoundation to use URI option if relevant.

2014-03-17  Jer Noble  <jer.noble@apple.com>

        [EME] Add NULL protections in SourceBuffer and MediaSource.
        https://bugs.webkit.org/show_bug.cgi?id=130266

        Reviewed by Eric Carlson.

        Add NULL checks in places which may be called after a SourceBuffer has been removed:

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::monitorSourceBuffers): Protect against a SourceBuffer being removed
            (and thus activeSourceBuffers being empty) when monitoring source buffer state.
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::appendBufferTimerFired): Protect against SourceBuffer being removed.
        (WebCore::SourceBuffer::videoTracks): Ditto.
        (WebCore::SourceBuffer::audioTracks): Ditto.
        (WebCore::SourceBuffer::textTracks): Ditto.
        (WebCore::SourceBuffer::setActive): Ditto.
        (WebCore::SourceBuffer::sourceBufferPrivateDidEndStream): Ditto.
        (WebCore::SourceBuffer::hasCurrentTime): Ditto.
        (WebCore::SourceBuffer::canPlayThrough): Ditto.
        (WebCore::SourceBuffer::hasFutureTime): Ditto, and check for an empty buffered ranges.

2014-03-17  Tim Horton  <timothy_horton@apple.com>

        WKThumbnailView should support snapshots
        https://bugs.webkit.org/show_bug.cgi?id=130335
        <rdar://problem/16255139>

        Reviewed by Simon Fraser.

        * WebCore.exp.in:

2014-01-29  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] getComputedStyle() not using author's order when showing named grid lines
        https://bugs.webkit.org/show_bug.cgi?id=127837

        Reviewed by David Hyatt.

        Added a couple of new Vectors to store the names of the grid lines
        respecting their order. They will be used to get the right outcome
        for getComputedStyle().

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::addValuesForNamedGridLinesAtIndex):
        (WebCore::valueForGridTrackList):
        * css/StyleResolver.cpp:
        (WebCore::createGridTrackList):
        (WebCore::StyleResolver::applyProperty):
        * rendering/style/RenderStyle.h:
        * rendering/style/StyleGridData.cpp:
        (WebCore::StyleGridData::StyleGridData):
        * rendering/style/StyleGridData.h:
        (WebCore::StyleGridData::operator==):

2014-03-17  Zsolt Borbely  <borbezs@inf.u-szeged.hu>

        Fix the !ENABLE(PROMISES) build
        https://bugs.webkit.org/show_bug.cgi?id=130328

        Reviewed by Darin Adler.

        Add missing ENABLE(PROMISES) guards.

        * bindings/js/JSDOMPromise.cpp:
        * bindings/js/JSDOMPromise.h:

2014-03-17  Gurpreet Kaur  <k.gurpreet@samsung.com>

        Safari should not render a cell if the <td> is empty
        https://bugs.webkit.org/show_bug.cgi?id=15273

        Reviewed by Darin Adler.

        When table cell has no children and the doctype is not present or not
        correct the border for that cell should not be drawn. Firefox also
        follows the same behaviour hence making the changes to make it similiar
        to Firefox behaviour.

        Tests: fast/table/table-cell-border-doctype.html
               fast/table/table-cell-border-no-doctype.html

        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::paintBoxDecorations):
        Added condition for not drawing the border when table cell has no child
        and doctype.


2014-03-17  Frédéric Wang  <fred.wang@free.fr>

        Fix handling of <annotation> in MathMLTextElement.
        https://bugs.webkit.org/show_bug.cgi?id=124128.

        Reviewed by Darin Adler.

        No new tests.

        * mathml/MathMLTextElement.cpp:
        (WebCore::MathMLTextElement::createElementRenderer): do not create the special RenderMathMLToken for the <annotation> tag.
        (WebCore::MathMLTextElement::childShouldCreateRenderer): only allow text inside <annotation>.

2014-03-17  Martin Robinson  <mrobinson@igalia.com>

        [GTK][CMake] Credential storage is not enabled
        https://bugs.webkit.org/show_bug.cgi?id=130149

        Reviewed by Philippe Normand.

        * PlatformGTK.cmake: Add the libsecret include directories and link line to the build.

2014-03-17  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed.

        Addressing reviewing comments by Darin in bug #130310 that I forgot
        to address before landing the changes in r165732.
        https://bugs.webkit.org/show_bug.cgi?id=130310

        * rendering/InlineTextBox.cpp:
        * rendering/RenderLayer.cpp:
        * rendering/RenderObject.cpp:

2014-03-17  Jessie Berlin  <jberlin@apple.com>

        Speculative build fix for ENABLE(TELEPHONE_NUMBER_DETECTION) after r165724.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::linkifyPhoneNumbers):

2014-03-17  Zan Dobersek  <zdobersek@igalia.com>

        Only supplement Page with UserMediaController once
        https://bugs.webkit.org/show_bug.cgi?id=130311

        Reviewed by Darin Adler.

        Don't supplement the Page with an UserMediaController object if that Page was
        already supplemented with one. This avoids triggering an assertion in
        Supplementable::provideSupplement() that ensures no supplement with the same key
        exists yet. The cause of this is calling provideUserMediaTo() in the Internals
        constructor that's using the same Page for two subsequent tests.

        * Modules/mediastream/UserMediaController.cpp:
        (WebCore::provideUserMediaTo):

2014-03-17  Zan Dobersek  <zdobersek@igalia.com>

        Explicitly include cstdio header for debug builds in InlineTextBox, RenderLayer, RenderObject
        https://bugs.webkit.org/show_bug.cgi?id=130310

        Reviewed by Darin Adler.

        Building the GTK port with Clang through CMake falls into a configuration where
        the cstdio header is not indirectly included in InlineTextBox, RenderLayer and
        RenderObject source files. fprintf() is required for helper functions that print
        out helpful debugging information in debug builds, so the cstdio header should
        be included explicitly in that case.

        * rendering/InlineTextBox.cpp:
        * rendering/RenderLayer.cpp:
        * rendering/RenderObject.cpp:

2014-03-17  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Cleanup WebKitDOMObject
        https://bugs.webkit.org/show_bug.cgi?id=130246

        Reviewed by Martin Robinson.

        Remove unneeded getter and fix coding style.

        * bindings/gobject/WebKitDOMObject.cpp:
        (webkitDOMObjectSetProperty):
        (webkit_dom_object_class_init):

2014-03-17  Darin Adler  <darin@apple.com>

        Stop using deprecatedCharacters in HTMLTreeBuilder
        https://bugs.webkit.org/show_bug.cgi?id=130323

        Reviewed by Andreas Kling.

        Keeping this separate from other patches because of concern that this could affect
        page load performance.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::ExternalCharacterTokenBuffer):
        Use a StringView instead of a character pointer.
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::isEmpty): Ditto.
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipAtMostOneLeadingNewline):
        Ditto.
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemaining): Ditto.
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::giveRemainingTo): Ditto.
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeRemainingWhitespace): Ditto.
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::skipLeading): Ditto.
        (WebCore::HTMLTreeBuilder::ExternalCharacterTokenBuffer::takeLeading): Ditto.
        (WebCore::HTMLTreeBuilder::linkifyPhoneNumbers): Use StringView::upconvertedCharacters.

2014-03-17  Jinwoo Song  <jinwoo7.song@samsung.com>

        Make some Module class constructors return PassRef.
        https://bugs.webkit.org/show_bug.cgi?id=130282

        Reviewed by Andreas Kling.

        Make the constructor helpers for the following classes return PassRef
        instead of PassRefPtr since they will never return null.
         - GamepadList
         - Geolocation
         - NavigatorContentUtils
         - NetworkInfoConnection
         - Notification
         - NotificationCenter
         - DeviceProximityEvent

        * Modules/gamepad/GamepadList.h:
        (WebCore::GamepadList::create):
        * Modules/geolocation/Geolocation.cpp:
        (WebCore::Geolocation::create):
        * Modules/geolocation/Geolocation.h:
        (WebCore::Geolocation::GeoNotifier::create):
        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::NavigatorContentUtils::create):
        * Modules/navigatorcontentutils/NavigatorContentUtils.h:
        * Modules/networkinfo/NetworkInfoConnection.cpp:
        (WebCore::NetworkInfoConnection::create):
        * Modules/networkinfo/NetworkInfoConnection.h:
        * Modules/notifications/Notification.cpp:
        (WebCore::Notification::create):
        * Modules/notifications/Notification.h:
        * Modules/notifications/NotificationCenter.cpp:
        (WebCore::NotificationCenter::create):
        * Modules/notifications/NotificationCenter.h:
        * Modules/proximity/DeviceProximityEvent.h:
        (WebCore::DeviceProximityEvent::create):

2014-03-16  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions]Do not compute region range for a box unless the parent has one
        https://bugs.webkit.org/show_bug.cgi?id=130249

        Reviewed by Andrei Bucur.

        If the containing block does not have a region range computed, do not attempt to compute
        a region range for a child. In such cases, the range computation for a child can lead to
        a result that is wrong, possibly leading to an incorrect clipping.

        Test: fast/regions/inline-block-flowed-in-regions.html

        * rendering/RenderBlock.cpp:
        (WebCore::canComputeRegionRangeForBox):
        (WebCore::RenderBlock::computeRegionRangeForBoxChild):
        (WebCore::RenderBlock::estimateRegionRangeForBoxChild):
        (WebCore::RenderBlock::updateRegionRangeForBoxChild):
        * rendering/RenderFlowThread.h:

2014-03-16  Andreas Kling  <akling@apple.com>

        CSSValueList should assert that no null values are added to it.
        <https://webkit.org/b/130315>

        Add assertions in CSSValueList's append() and prepend() that we are
        not adding a null value. This caught a single place in CSSParser
        that was appending an alread-released RefPtr to a CSSValueList.
        That list was eventually discarded anyway (due to "foundClip" now
        being true), so the fix is simply to remove the adding.

        Eventually we should use Ref and PassRef all over for CSSValueList,
        this is just a first step on the way.

        Reviewed by Darin Adler.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseFillShorthand):
        * css/CSSValueList.h:
        (WebCore::CSSValueList::append):
        (WebCore::CSSValueList::prepend):

2014-03-16  Praveen R Jadhav  <praveen.j@samsung.com>

        AudioBufferSourceNode stop attribute shouldn't throw exception in finished state.
        https://bugs.webkit.org/show_bug.cgi?id=130000.

        Reviewed by Jer Noble.

        AudioBufferSourceNode may go to FINISHED_STATE even before "stop" method is called 
        as silence rendered after audio data is played out when its not looping.
        A call to "stop" method after this shouldn't throw exception.

        * Modules/webaudio/AudioScheduledSourceNode.cpp:
        (WebCore::AudioScheduledSourceNode::stop):

2014-03-16  Brian Burg  <bburg@apple.com>

        Web Inspector: generated backend commands should reflect build system ENABLE settings
        https://bugs.webkit.org/show_bug.cgi?id=130111

        Reviewed by Timothy Hatcher.

        Add guards for conditional inspector domains.

        For Makefile-based build systems, force regeneration of the
        combined file if the list of domains has changed.

        Combine only the Inspector domains listed in INSPECTOR_DOMAINS,
        instead of globbing any .json file.

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.am:

2014-03-16  David Kilzer  <ddkilzer@apple.com>

        Follow-up: Double values passed to fabsf() in maxScaleFromTransform()
        <http://webkit.org/b/130297>

        Reviewed by Darin Adler.

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::maxScaleFromTransform): Use narrowPrecisionToFloat()
        instead of static_cast<float>().

2014-03-16  Andreas Kling  <akling@apple.com>

        ScriptExecutionContext::vm() should return a reference.
        <https://webkit.org/b/129611>

        Every ScriptExecutionContext has a VM, so this can never return null.
        Made WorkerScriptController::vm() return a reference as well, since
        that was needed for this change.

        Reviewed by Geoffrey Garen.

        * bindings/js/WorkerScriptController.h:
        (WebCore::WorkerScriptController::vm):
        * bindings/js/WorkerScriptDebugServer.cpp:
        (WebCore::WorkerScriptDebugServer::recompileAllJSFunctions):
        * css/ElementRuleCollector.cpp:
        (WebCore::ElementRuleCollector::ruleMatches):
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::vm):
        * dom/ScriptExecutionContext.h:
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::execute):
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::createImageBuffer):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::dropProtection):
        * testing/Internals.cpp:
        (WebCore::Internals::parserMetaData):

2014-03-16  Zan Dobersek  <zdobersek@igalia.com>

        Remove OwnPtr.h, PassOwnPtr.h header inclusions in Source/WebCore/html/parser/ code
        https://bugs.webkit.org/show_bug.cgi?id=129667

        Reviewed by Anders Carlsson.

        Remove unnecessary inclusions of the OwnPtr.h and PassOwnPtr.h headers
        in the code under Source/WebCore/html/parser/.

        * html/parser/HTMLParserScheduler.h:
        * html/parser/HTMLToken.h:
        * html/parser/HTMLTreeBuilder.h:
        * html/parser/XSSAuditor.h:
        * html/parser/XSSAuditorDelegate.h:

2014-03-16  Darin Adler  <darin@apple.com>

        Remove uses of "cat" in DerivedSources.make outside platform-specific rules
        https://bugs.webkit.org/show_bug.cgi?id=130307

        Reviewed by Anders Carlsson.

        * DerivedSources.make: Use "perl -pe ''" instead of "cat".

2014-03-16  Brian Burg  <bburg@apple.com>

        Web Inspector: vended backend commands file should be generated as part of the build
        https://bugs.webkit.org/show_bug.cgi?id=130110

        Reviewed by Timothy Hatcher.

        * WebCore.xcodeproj/project.pbxproj: Copy InspectorWebBackendCommands.js to the
        private headers directory.

2014-03-16  Frédéric Wang  <fred.wang@free.fr>

        [regression] foreign content not displayed in MathML
        <https://webkit.org/b/124128>

        Reviewed by Chris Fleizach.

        This restores foreign content in <mtext>, <mn> and <mi> elements, but only when it is "phrasing content" as defined per the HTML5 specification. Other token elements are not handled here. This change makes mspace-units.html work again on Linux.

        Tests: mathml/presentation/foreign-mi-dynamic.html
               mathml/presentation/foreign-mi.html
               mathml/presentation/foreign-mn.html
               mathml/presentation/foreign-mtext-rejected.html
               mathml/presentation/foreign-mtext.html

        * mathml/MathMLTextElement.cpp:
        (WebCore::MathMLTextElement::createElementRenderer): create a RenderMathMLToken for mn, ms and mtext.
        (WebCore::isPhrasingContent): helper function to check phrasing content, as defined by the HTML spec.
        (WebCore::MathMLTextElement::childShouldCreateRenderer): <mi>, <mn>, <mtext> and, <ms> now accepts phrasing content.
        * rendering/mathml/RenderMathMLToken.cpp:
        (WebCore::RenderMathMLToken::RenderMathMLToken):
        (WebCore::RenderMathMLToken::updateTokenContent): initialize the m_containsElement boolean when updating the token content.
        (WebCore::RenderMathMLToken::updateStyle): move <mi> specific handling in its own section and only apply the single-char rule when it does not contain elements.
        * rendering/mathml/RenderMathMLToken.h: add an m_containsElement boolean to handle token element specifically.

2014-03-16  David Kilzer  <ddkilzer@apple.com>

        PlatformTimeRanges::nearest() truncates closestDelta values from double to float
        <http://webkit.org/b/130298>

        Reviewed by Darin Adler.

        Fixes the following build failures using trunk clang:

            WebCore/platform/graphics/PlatformTimeRanges.cpp:210:28: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
                        closestDelta = fabsf(startTime - time);
                                       ^
            WebCore/platform/graphics/PlatformTimeRanges.cpp:210:28: note: use function 'fabs' instead
                        closestDelta = fabsf(startTime - time);
                                       ^~~~~
                                       fabs
            WebCore/platform/graphics/PlatformTimeRanges.cpp:214:28: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
                        closestDelta = fabsf(endTime - time);
                                       ^
            WebCore/platform/graphics/PlatformTimeRanges.cpp:214:28: note: use function 'fabs' instead
                        closestDelta = fabsf(endTime - time);
                                       ^~~~~
                                       fabs

        * platform/graphics/PlatformTimeRanges.cpp:
        (WebCore::PlatformTimeRanges::nearest): Extract start and end
        time deltas into local variables so they don't have to be
        computed twice, using fabs() instead of fabsf().

2014-03-16  Darin Adler  <darin@apple.com>

        Optimize hasTagName when called on an HTMLElement
        https://bugs.webkit.org/show_bug.cgi?id=130090

        Reviewed by Antti Koivisto.

        Added new hasTagName functions that have the efficiency of hasLocalName.
        but are safe.

        Now we can always use hasTagName, and we'll get a compile time error if
        we try to use an SVG tag name with an HTML element. All call sites that
        use the more specific tag name types are more efficient, and call sites
        that have a specific pointer type will get even more efficient checking
        that is exactly what we used to get by calling hasLocalName.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::hasTagName): Cast explicitly to Element
        since Node::hasTagName no longer works on a general QualifiedName.
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isDescendantOfElementType): Use
        more specific type, RenderElement, so we can call hasTagName on Element
        instead of Node; eliminates an unnecessary branch.

        * accessibility/AccessibilityTableColumn.cpp: Added now-needed include.
        * accessibility/atk/AccessibilityObjectAtk.cpp: Ditto.

        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets): Use
        new for loop and full words for variable names. Also use nullptr instead
        of 0. Call toHTMLElement and toSVGElement in code that checks hasTagName
        since it's already checking isHTMLElement and isSVGElement.

        * dom/Element.cpp:
        (WebCore::attrNodeListMap): Use NeverDestroyed and put the vectors into
        the map rather than putting pointers to a vector into the map.
        (WebCore::attrNodeListForElement): Take a reference rather than a pointer,
        and update for the change above.
        (WebCore::ensureAttrNodeListForElement): Ditto.
        (WebCore::removeAttrNodeListForElement): Ditto.
        (WebCore::findAttrNodeInList): Ditto.
        (WebCore::Element::isFocusable): Use lineageOfType<HTMLCanvasElement>
        to fine the canvas rather than a hand-written loop.
        (WebCore::Element::attrNodeList): Update for above changes.
        (WebCore::Element::setAttributeNode): Ditto.
        (WebCore::Element::attrIfExists): Ditto.
        (WebCore::Element::ensureAttr): Ditto.
        (WebCore::Element::detachAttrNodeFromElementWithValue): Ditto.
        (WebCore::Element::detachAllAttrNodesFromElement): Ditto.

        * dom/Element.h: Removed the overload of hasLocalName that takes a
        QualifiedName and ignores the non-local-name parts of it. Callers should
        use hasTagName instead, now that it's optimized appropriately. Added
        overloads of hasTagName for all the specific qualified name types. It's
        more efficient to use the Node versions of these functions rather than
        using QualifiedName::matches to do the check. Removed the hasTagName and
        hasLocalName functions from the Node class; the only convenience functions
        needed in Node are the specific checks for tags from HTML, MathML, and SVG,
        not the general purpose ones.

        * dom/Node.h: Removed hasLocalName and replaced the single hasTagName
        that takes a QualifiedName with three faster ones that take HTML, MathML,
        and SVG qualified names instead. Also updated to use nullptr instead of 0.

        * dom/PositionIterator.cpp: Added now-needed include.
        * dom/Text.cpp: Ditto.

        * dom/make_names.pl:
        (printHeaderHead): Renamed an argument for clarity and added a definitions
        argument, which is where we insert the classes derived from QualifiedName.
        (printCppHead): Renamed an argument for clarity.
        (printTypeHelpers): Use hasTagName rather than hasLocalName, since the
        former is now optimized to be the same as what the latter was.
        (printNamesHeaderFile): Define a class derived from QualifiedName that can
        be used at compile time to avoid having to check the namespace.
        (printNamesCppFile): Use the new more-specific type as needed.

        * editing/ApplyStyleCommand.cpp:
        (WebCore::isLegacyAppleStyleSpan): Use hasTagName instead of hasLocalName,
        and references instead of pointers.
        (WebCore::ApplyStyleCommand::ApplyStyleCommand): Removed uneeded explicit
        construction of a smart pointer.
        (WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun): Updated to use
        the enclosingElementWithTag function by its new name.

        * editing/Editor.cpp:
        (WebCore::Editor::selectionUnorderedListState): Updated to use the
        enclosingElementWithTag function by its new name.
        (WebCore::Editor::selectionOrderedListState): Ditto.

        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::doApply): Use a more-specific type for the list tag.
        (WebCore::InsertListCommand::doApplyForSingleParagraph): Ditto.
        * editing/InsertListCommand.h: Ditto.

        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): Added an explicit
        cast to Element in the loop that is already guarded by an isElementNode check.
        Also use a modern C++ for loop.

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
        Updated to use the enclosingElementWithTag function by its new name.
        (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Ditto.
        (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Ditto.

        * editing/TypingCommand.cpp: Added now-needed includes.
        * editing/VisibleUnits.cpp: Ditto.

        * editing/htmlediting.cpp:
        (WebCore::enclosingElementWithTag): Changed to return an Element instead of a Node,
        since nodes other than elements do not have tags.
        * editing/htmlediting.h: Ditto.

        * editing/mac/EditorMac.mm:
        (WebCore::Editor::adjustedSelectionRange): Updated to use the enclosingElementWithTag
        function by its new name.
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::appendText): Ditto.
        (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Ditto.
        (WebCore::highestAncestorToWrapMarkup): Ditto.
        (WebCore::createMarkupInternal): Ditto.
        (WebCore::createContextualFragment): Ditto. Use hasTagName instead of hasLocalName,
        since the former is now optimized to be the same as the latter was before.

        * html/HTMLCollection.cpp:
        (WebCore::isMatchingElement): Use hasTagName instead of hasLocalName,
        since the former is now optimized to be the same as the latter was before.
        (WebCore::nameShouldBeVisibleInDocumentAll): Ditto.
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::ieForbidsInsertHTML): Ditto.
        (WebCore::unicodeBidiAttributeForDirAuto): Ditto.
        (WebCore::HTMLElement::parseBorderWidthAttribute): Ditto.
        (WebCore::HTMLElement::setInnerHTML): Ditto.
        (WebCore::shouldProhibitSetInnerOuterText): Ditto. Added this to share code between
        setInnerText and setOuterText.
        (WebCore::HTMLElement::setInnerText): Ditto.
        (WebCore::HTMLElement::setOuterText): Ditto.
        (WebCore::HTMLElement::rendererIsNeeded): Ditto.
        (WebCore::HTMLElement::createElementRenderer): Ditto.

        * html/HTMLElement.h: Added hasTagName, which hides the one inherited from Element
        and takes the more-specific HTMLQualifiedName type. This means we don't need to check
        the namespace at runtime because it's known at compile time. Also put the
        implementation of Node::hasTagName for HTMLQualifiedName into this header.

        * html/HTMLObjectElement.cpp:
        (WebCore::isRecognizedTagName): Updated for change in return type of
        HTMLNames::getHTMLTags.

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::add): Use hasTagName inastead of hasLocalName.
        (WebCore::HTMLSelectElement::value): Use isHTMLOptionElement instead of hasTagName.
        Also use a new style for loop and emptyString() instead of "".
        (WebCore::HTMLSelectElement::setValue): Ditto.
        (WebCore::HTMLSelectElement::setLength): Ditto.
        (WebCore::HTMLSelectElement::searchOptionsForValue): Ditto.
        (WebCore::HTMLSelectElement::restoreFormControlState): Ditto.

        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle): Use hasTagName
        instead of hasLocalName.

        * html/HTMLTableRowsCollection.cpp:
        (WebCore::isInSection): Updated to use hasTagName and take a reference.
        (WebCore::HTMLTableRowsCollection::rowAfter): Pass a reference.

        * html/parser/HTMLConstructionSite.cpp: Added now-needed include.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::createCaseMap): Updated to return a map rather than filling one in, and to
        be flxible about the type of the table being used.
        (WebCore::adjustSVGTagNameCase): Updated to use NeverDestroyed.
        (WebCore::adjustAttributes): Added new helper so we can share more code. Updated
        template argument names for clarity.
        (WebCore::adjustSVGAttributes): Marked this inline, since it just turns around and
        calls a single non-inline function.
        (WebCore::adjustMathMLAttributes): Ditto.
        (WebCore::addNamesWithPrefix): Changed to take argument by reference instead of pointer.
        (WebCore::createForeignAttributesMap): Added. Factors out the map creation from the
        function below.
        (WebCore::adjustForeignAttributes): Updated for above changes.
        (WebCore::HTMLTreeBuilder::processStartTagForInBody): Updated to pass reference.
        (WebCore::HTMLTreeBuilder::processTokenInForeignContent): Ditto.

        * inspector/InspectorStyleSheet.cpp: Added now-needed include.

        * mathml/MathMLElement.h: Added hasTagName, which hides the one inherited from Element
        and takes the more-specific MathMLQualifiedName type. This means we don't need to check
        the namespace at runtime because it's known at compile time. Also put the
        implementation of Node::hasTagName for MathMLQualifiedName into this header.

        * mathml/MathMLInlineContainerElement.cpp:
        (WebCore::MathMLInlineContainerElement::createElementRenderer): Use hasTagName.

        * mathml/MathMLSelectElement.cpp:
        (WebCore::MathMLSelectElement::attributeChanged): Use hasTagName.
        (WebCore::MathMLSelectElement::getSelectedActionChildAndIndex): Ditto.
        (WebCore::MathMLSelectElement::getSelectedActionChild): Ditto.
        (WebCore::MathMLSelectElement::getSelectedSemanticsChild): Ditto.
        (WebCore::MathMLSelectElement::updateSelectedChild): Ditto.
        * mathml/MathMLTextElement.cpp:
        (WebCore::MathMLTextElement::createElementRenderer): Ditto.
        (WebCore::MathMLTextElement::childShouldCreateRenderer): Ditto.

        * platform/gtk/PasteboardGtk.cpp: Added now-needed include.
        * platform/mac/HTMLConverter.mm: Ditto.
        * rendering/RenderBlockFlow.cpp: Ditto.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Use hasTagName.
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::rendererForRootBackground): Ditto.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Ditto.

        * rendering/RenderReplaced.cpp: Added now-needed include.

        * rendering/mathml/RenderMathMLScripts.cpp:
        (WebCore::RenderMathMLScripts::RenderMathMLScripts): Use hasTagName.
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        (WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): Ditto.

        * svg/SVGElement.h: Added hasTagName, which hides the one inherited from Element
        and takes the more-specific SVGQualifiedName type. This means we don't need to check
        the namespace at runtime because it's known at compile time. Also put the
        implementation of Node::hasTagName for SVGQualifiedName into this header.

        * svg/SVGFontFaceSrcElement.cpp:
        (WebCore::SVGFontFaceSrcElement::childrenChanged): Use isSVGFontFaceElement instead
        of calling hasTagName.

        * svg/SVGUseElement.cpp:
        (WebCore::isDirectReference): Changed to take a reference and a more specific type.
        (WebCore::SVGUseElement::toClipPath): Added a type cast.
        (WebCore::SVGUseElement::rendererClipChild): Use more specific types so we don't
        need a type cast.

        * xml/parser/XMLDocumentParser.cpp:
        (WebCore::XMLDocumentParser::parseDocumentFragment): Added explicit calls to this
        unusual call site that has a good reason to use hasLocalName instead of hasTagName.

2014-03-16  Andreas Kling  <akling@apple.com>

        Stop pulling in JSDOMBinding.h via JSEventListener.h
        <https://webkit.org/b/130299>

        Just chippin' away at the compile time monster.

        Reviewed by Darin Adler.

        * bindings/js/IDBBindingUtilities.cpp:
        * bindings/js/JSEventListener.h:

2014-03-16  David Kilzer  <ddkilzer@apple.com>

        Double values passed to fabsf() in maxScaleFromTransform()
        <http://webkit.org/b/130297>

        Reviewed by Darin Adler.

        Fixes the following build failures using trunk clang:

            WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:21: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
                return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
                                ^
            WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:21: note: use function 'fabs' instead
                return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
                                ^~~~~
                                fabs
            WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:50: error: absolute value function 'fabsf' given an argument of type 'double' but has parameter of type 'float' which may cause truncation of value [-Werror,-Wabsolute-value]
                return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
                                                             ^
            WebCore/platform/graphics/ca/GraphicsLayerCA.cpp:287:50: note: use function 'fabs' instead
                return std::max(fabsf(decomposeData.scaleX), fabsf(decomposeData.scaleY));
                                                             ^~~~~
                                                             fabs

        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::maxScaleFromTransform): Use static_cast<float>() to
        convert float values to double values.

2014-03-15  Zalan Bujtas  <zalan@apple.com>

        Move BorderEdge class to its own file.
        https://bugs.webkit.org/show_bug.cgi?id=130294

        Reviewed by Sam Weinig.

        This is in preparation to have better encapsulation for border box decoration painting.

        No change in functionality.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * rendering/BorderEdge.cpp: Added.
        (WebCore::BorderEdge::BorderEdge):
        (WebCore::BorderEdge::getBorderEdgeInfo):
        (WebCore::BorderEdge::includesAdjacentEdges):
        (WebCore::BorderEdge::obscuresBackgroundEdge):
        (WebCore::BorderEdge::obscuresBackground):
        (WebCore::BorderEdge::getDoubleBorderStripeWidths):
        * rendering/BorderEdge.h: Added.
        (WebCore::BorderEdge::edgeFlagForSide):
        (WebCore::BorderEdge::includesEdge):
        (WebCore::BorderEdge::edgesShareColor):
        (WebCore::BorderEdge::hasVisibleColorAndStyle):
        (WebCore::BorderEdge::shouldRender):
        (WebCore::BorderEdge::presentButInvisible):
        (WebCore::BorderEdge::widthForPainting):
        (WebCore::BorderEdge::borderWidthInDevicePixel):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::borderStyleHasUnmatchedColorsAtCorner):
        (WebCore::colorsMatchAtCorner):
        (WebCore::colorNeedsAntiAliasAtCorner):
        (WebCore::willBeOverdrawn):
        (WebCore::joinRequiresMitre):
        (WebCore::RenderBoxModelObject::paintBorderSides):
        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
        (WebCore::RenderBoxModelObject::paintBorder):
        (WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge):
        (WebCore::RenderBoxModelObject::borderObscuresBackground):
        * rendering/RenderBoxModelObject.h:

2014-03-15  Martin Robinson  <mrobinson@igalia.com>

        Fix WebCore unused parameter warnings for WebKitGTK+ CMake build
        https://bugs.webkit.org/show_bug.cgi?id=130252

        Reviewed by Carlos Garcia Campos.

        * Modules/mediastream/HTMLMediaElementMediaStream.cpp: Fix unused parameters.
        * html/RangeInputType.cpp: Ditto.
        * page/gtk/EventHandlerGtk.cpp: Ditto.
        * platform/graphics/cairo/GraphicsContextCairo.cpp: Ditto.
        * platform/graphics/gstreamer/WebKitMediaSourceGStreamer.cpp: Ditto.
        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp: Ditto.
        * platform/graphics/opengl/Extensions3DOpenGLES.cpp: Ditto.
        * platform/gtk/GamepadsGtk.cpp: Ditto.
        * platform/gtk/GtkClickCounter.cpp: Ditto.
        * platform/gtk/GtkPopupMenu.cpp: Ditto.
        * platform/gtk/GtkTouchContextHelper.cpp: Ditto.
        * platform/gtk/GtkVersioning.c: Ditto.
        * platform/gtk/MainFrameScrollbarGtk.cpp: Ditto.
        * platform/gtk/PasteboardGtk.cpp: Ditto.
        * platform/gtk/PasteboardHelper.cpp: Ditto.
        * platform/gtk/RedirectedXCompositeWindow.cpp: Ditto.
        * platform/gtk/RenderThemeGtk.cpp: Ditto.
        * platform/gtk/RenderThemeGtk.h: Ditto.
        * platform/gtk/RenderThemeGtk2.cpp: Ditto.
        * platform/gtk/ScrollbarThemeGtk.cpp: Ditto.
        * platform/gtk/ScrollbarThemeGtk2.cpp: Ditto.
        * platform/gtk/WidgetGtk.cpp: Ditto.
        * platform/network/gtk/CredentialBackingStore.cpp: Ditto.
        * platform/soup/SharedBufferSoup.cpp: Ditto.
        * plugins/gtk/PluginViewGtk.cpp: Ditto.
        * plugins/gtk/gtk2xtbin.c: Ditto.
        * rendering/InlineTextBox.cpp: Ditto.

2014-03-14  Myles C. Maxfield  <mmaxfield@apple.com>

        RenderTextControl::hasValidAvgCharWidth doesn't detect System Font
        https://bugs.webkit.org/show_bug.cgi?id=130168

        Reviewed by Dean Jackson.

        No new tests.

        * platform/graphics/Font.cpp: Moved functions from RenderTextControl
        (WebCore::Font::hasValidAverageCharWidth):
        (WebCore::Font::fastAverageCharWidthIfAvailable):
        * platform/graphics/Font.h:
        * rendering/RenderTextControl.cpp: Moved functions to Font.cpp
        (WebCore::RenderTextControl::getAverageCharWidth): Removed redundant function argument
        (WebCore::RenderTextControl::computeIntrinsicLogicalWidths):
        * rendering/RenderTextControl.h:
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::getAverageCharWidth): Removed redundant function argument
        * rendering/RenderTextControlMultiLine.h:
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::getAverageCharWidth): Removed redundant function argument
        (WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
        * rendering/RenderTextControlSingleLine.h:

2014-03-15  David Kilzer  <ddkilzer@apple.com>

        [iOS] Define SYSTEM_VERSION_PREFIX consistently
        <http://webkit.org/b/130293>
        <rdar://problem/15926359>

        Reviewed by Dan Bernstein.

        * Configurations/Version.xcconfig:
        (SYSTEM_VERSION_PREFIX_iphoneos): Sync with
        Source/WebKit/mac/Version.xcconfig.

2014-03-14  Mark Rowe  <mrowe@apple.com>

        Fix the production build.

        Don't rely on USE_INTERNAL_SDK being set for the Production configuration since UseInternalSDK.xcconfig won't
        be at the expected relative path when working from installed source.

        * Configurations/Base.xcconfig:

2014-03-14  Maciej Stachowiak  <mjs@apple.com>

        Replace "Apple Computer, Inc." with "Apple Inc." in copyright headers
        https://bugs.webkit.org/show_bug.cgi?id=130276
        <rdar://problem/16266927>

        Reviewed by Simon Fraser.

        No new tests because no behavior changes.

        * DerivedSources.make:
        * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.cpp:
        * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.h:
        * Modules/airplay/WebKitPlaybackTargetAvailabilityEvent.idl:
        * Modules/encryptedmedia/MediaKeyMessageEvent.cpp:
        * Modules/encryptedmedia/MediaKeyMessageEvent.h:
        * Modules/encryptedmedia/MediaKeyMessageEvent.idl:
        * Modules/encryptedmedia/MediaKeyNeededEvent.cpp:
        * Modules/encryptedmedia/MediaKeyNeededEvent.h:
        * Modules/encryptedmedia/MediaKeyNeededEvent.idl:
        * Modules/encryptedmedia/MediaKeySession.idl:
        * Modules/encryptedmedia/MediaKeys.idl:
        * Modules/geolocation/NavigatorGeolocation.cpp:
        * Modules/indexeddb/DOMWindowIndexedDatabase.idl:
        * Modules/indexeddb/IDBCallbacks.h:
        * Modules/indexeddb/IDBDatabaseException.cpp:
        * Modules/indexeddb/IDBDatabaseMetadata.h:
        * Modules/indexeddb/IDBEventDispatcher.cpp:
        * Modules/indexeddb/IDBEventDispatcher.h:
        * Modules/indexeddb/IDBFactory.cpp:
        * Modules/indexeddb/IDBFactory.h:
        * Modules/indexeddb/IDBFactoryBackendInterface.cpp:
        * Modules/indexeddb/IDBFactoryBackendInterface.h:
        * Modules/indexeddb/IDBHistograms.h:
        * Modules/indexeddb/IDBIndexMetadata.h:
        * Modules/indexeddb/IDBObjectStoreMetadata.h:
        * Modules/indexeddb/IDBRecordIdentifier.h:
        * Modules/indexeddb/IDBRequest.cpp:
        * Modules/indexeddb/IDBRequest.h:
        * Modules/indexeddb/IDBRequest.idl:
        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.cpp:
        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.h:
        * Modules/indexeddb/WorkerGlobalScopeIndexedDatabase.idl:
        * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.cpp:
        * Modules/indexeddb/leveldb/IDBFactoryBackendLevelDB.h:
        * Modules/mediacontrols/MediaControlsHost.cpp:
        * Modules/mediacontrols/MediaControlsHost.h:
        * Modules/mediacontrols/MediaControlsHost.idl:
        * Modules/mediacontrols/mediaControlsApple.css:
        * Modules/mediacontrols/mediaControlsiOS.css:
        * Modules/mediasource/AudioTrackMediaSource.h:
        * Modules/mediasource/AudioTrackMediaSource.idl:
        * Modules/mediasource/TextTrackMediaSource.h:
        * Modules/mediasource/TextTrackMediaSource.idl:
        * Modules/mediasource/VideoTrackMediaSource.h:
        * Modules/mediasource/VideoTrackMediaSource.idl:
        * Modules/mediastream/AllAudioCapabilities.h:
        * Modules/mediastream/AllAudioCapabilities.idl:
        * Modules/mediastream/AllVideoCapabilities.h:
        * Modules/mediastream/AllVideoCapabilities.idl:
        * Modules/mediastream/AudioStreamTrack.cpp:
        * Modules/mediastream/AudioStreamTrack.h:
        * Modules/mediastream/AudioStreamTrack.idl:
        * Modules/mediastream/CapabilityRange.cpp:
        * Modules/mediastream/CapabilityRange.h:
        * Modules/mediastream/CapabilityRange.idl:
        * Modules/mediastream/MediaSourceStates.cpp:
        * Modules/mediastream/MediaSourceStates.h:
        * Modules/mediastream/MediaSourceStates.idl:
        * Modules/mediastream/MediaStreamCapabilities.cpp:
        * Modules/mediastream/MediaStreamCapabilities.h:
        * Modules/mediastream/MediaStreamCapabilities.idl:
        * Modules/mediastream/MediaTrackConstraint.cpp:
        * Modules/mediastream/MediaTrackConstraint.h:
        * Modules/mediastream/MediaTrackConstraint.idl:
        * Modules/mediastream/MediaTrackConstraintSet.cpp:
        * Modules/mediastream/MediaTrackConstraintSet.h:
        * Modules/mediastream/MediaTrackConstraints.cpp:
        * Modules/mediastream/MediaTrackConstraints.h:
        * Modules/mediastream/MediaTrackConstraints.idl:
        * Modules/mediastream/NavigatorMediaStream.cpp:
        * Modules/mediastream/NavigatorUserMediaError.cpp:
        * Modules/mediastream/RTCConfiguration.idl:
        * Modules/mediastream/RTCIceServer.idl:
        * Modules/mediastream/RTCOfferAnswerOptions.cpp:
        * Modules/mediastream/RTCOfferAnswerOptions.h:
        * Modules/mediastream/VideoStreamTrack.cpp:
        * Modules/mediastream/VideoStreamTrack.h:
        * Modules/mediastream/VideoStreamTrack.idl:
        * Modules/networkinfo/NetworkInfo.cpp:
        * Modules/networkinfo/NetworkInfo.h:
        * Modules/networkinfo/NetworkInfoConnection.cpp:
        * Modules/networkinfo/NetworkInfoConnection.h:
        * Modules/networkinfo/NetworkInfoController.cpp:
        * Modules/notifications/DOMWindowNotifications.cpp:
        * Modules/notifications/DOMWindowNotifications.h:
        * Modules/notifications/DOMWindowNotifications.idl:
        * Modules/notifications/NotificationController.cpp:
        * Modules/notifications/NotificationController.h:
        * Modules/notifications/NotificationPermissionCallback.h:
        * Modules/notifications/NotificationPermissionCallback.idl:
        * Modules/notifications/WorkerGlobalScopeNotifications.cpp:
        * Modules/notifications/WorkerGlobalScopeNotifications.h:
        * Modules/notifications/WorkerGlobalScopeNotifications.idl:
        * Modules/plugins/PluginReplacement.h:
        * Modules/plugins/QuickTimePluginReplacement.cpp:
        * Modules/plugins/QuickTimePluginReplacement.css:
        * Modules/plugins/QuickTimePluginReplacement.h:
        * Modules/plugins/QuickTimePluginReplacement.idl:
        * Modules/quota/DOMWindowQuota.idl:
        * Modules/speech/DOMWindowSpeechSynthesis.h:
        * Modules/speech/DOMWindowSpeechSynthesis.idl:
        * Modules/speech/SpeechSynthesis.cpp:
        * Modules/speech/SpeechSynthesis.h:
        * Modules/speech/SpeechSynthesis.idl:
        * Modules/speech/SpeechSynthesisEvent.cpp:
        * Modules/speech/SpeechSynthesisEvent.h:
        * Modules/speech/SpeechSynthesisEvent.idl:
        * Modules/speech/SpeechSynthesisUtterance.cpp:
        * Modules/speech/SpeechSynthesisUtterance.h:
        * Modules/speech/SpeechSynthesisUtterance.idl:
        * Modules/speech/SpeechSynthesisVoice.cpp:
        * Modules/speech/SpeechSynthesisVoice.h:
        * Modules/speech/SpeechSynthesisVoice.idl:
        * Modules/webaudio/AudioBuffer.cpp:
        * Modules/webaudio/AudioBuffer.h:
        * Modules/webaudio/AudioBuffer.idl:
        * Modules/webaudio/AudioListener.cpp:
        * Modules/webaudio/AudioListener.h:
        * Modules/webaudio/AudioListener.idl:
        * Modules/webaudio/AudioParam.h:
        * Modules/webaudio/AudioParam.idl:
        * Modules/webaudio/AudioParamTimeline.h:
        * Modules/webaudio/AudioScheduledSourceNode.h:
        * Modules/webaudio/ChannelMergerNode.cpp:
        * Modules/webaudio/ChannelMergerNode.h:
        * Modules/webaudio/ChannelMergerNode.idl:
        * Modules/webaudio/MediaStreamAudioSource.cpp:
        * Modules/webaudio/MediaStreamAudioSource.h:
        * Modules/webaudio/PeriodicWave.cpp:
        * Modules/webaudio/PeriodicWave.h:
        * Modules/webdatabase/ChangeVersionWrapper.cpp:
        * Modules/webdatabase/ChangeVersionWrapper.h:
        * Modules/webdatabase/DOMWindowWebDatabase.cpp:
        * Modules/webdatabase/DOMWindowWebDatabase.h:
        * Modules/webdatabase/DOMWindowWebDatabase.idl:
        * Modules/webdatabase/Database.cpp:
        * Modules/webdatabase/Database.h:
        * Modules/webdatabase/Database.idl:
        * Modules/webdatabase/DatabaseAuthorizer.cpp:
        * Modules/webdatabase/DatabaseAuthorizer.h:
        * Modules/webdatabase/DatabaseBackendBase.cpp:
        * Modules/webdatabase/DatabaseBackendBase.h:
        * Modules/webdatabase/DatabaseCallback.idl:
        * Modules/webdatabase/DatabaseContext.cpp:
        * Modules/webdatabase/DatabaseContext.h:
        * Modules/webdatabase/DatabaseDetails.h:
        * Modules/webdatabase/DatabaseTask.cpp:
        * Modules/webdatabase/DatabaseTask.h:
        * Modules/webdatabase/DatabaseThread.cpp:
        * Modules/webdatabase/DatabaseThread.h:
        * Modules/webdatabase/DatabaseTracker.cpp:
        * Modules/webdatabase/DatabaseTracker.h:
        * Modules/webdatabase/SQLCallbackWrapper.h:
        * Modules/webdatabase/SQLError.h:
        * Modules/webdatabase/SQLError.idl:
        * Modules/webdatabase/SQLException.cpp:
        * Modules/webdatabase/SQLResultSet.cpp:
        * Modules/webdatabase/SQLResultSet.h:
        * Modules/webdatabase/SQLResultSet.idl:
        * Modules/webdatabase/SQLResultSetRowList.cpp:
        * Modules/webdatabase/SQLResultSetRowList.h:
        * Modules/webdatabase/SQLResultSetRowList.idl:
        * Modules/webdatabase/SQLStatement.cpp:
        * Modules/webdatabase/SQLStatement.h:
        * Modules/webdatabase/SQLStatementBackend.cpp:
        * Modules/webdatabase/SQLStatementBackend.h:
        * Modules/webdatabase/SQLStatementCallback.h:
        * Modules/webdatabase/SQLStatementCallback.idl:
        * Modules/webdatabase/SQLStatementErrorCallback.h:
        * Modules/webdatabase/SQLStatementErrorCallback.idl:
        * Modules/webdatabase/SQLStatementSync.cpp:
        * Modules/webdatabase/SQLTransaction.cpp:
        * Modules/webdatabase/SQLTransaction.h:
        * Modules/webdatabase/SQLTransaction.idl:
        * Modules/webdatabase/SQLTransactionBackend.cpp:
        * Modules/webdatabase/SQLTransactionBackend.h:
        * Modules/webdatabase/SQLTransactionCallback.h:
        * Modules/webdatabase/SQLTransactionCallback.idl:
        * Modules/webdatabase/SQLTransactionErrorCallback.h:
        * Modules/webdatabase/SQLTransactionErrorCallback.idl:
        * Modules/webdatabase/WorkerGlobalScopeWebDatabase.cpp:
        * Modules/webdatabase/WorkerGlobalScopeWebDatabase.h:
        * Modules/webdatabase/WorkerGlobalScopeWebDatabase.idl:
        * Resources/deleteButton.tiff:
        * Resources/deleteButtonPressed.tiff:
        * WebCore.vcxproj/MigrateScripts:
        * WebCorePrefix.cpp:
        * accessibility/AXObjectCache.cpp:
        * accessibility/AXObjectCache.h:
        * accessibility/AccessibilityARIAGrid.cpp:
        * accessibility/AccessibilityARIAGrid.h:
        * accessibility/AccessibilityARIAGridCell.cpp:
        * accessibility/AccessibilityARIAGridCell.h:
        * accessibility/AccessibilityARIAGridRow.cpp:
        * accessibility/AccessibilityARIAGridRow.h:
        * accessibility/AccessibilityImageMapLink.cpp:
        * accessibility/AccessibilityImageMapLink.h:
        * accessibility/AccessibilityList.cpp:
        * accessibility/AccessibilityList.h:
        * accessibility/AccessibilityListBox.cpp:
        * accessibility/AccessibilityListBox.h:
        * accessibility/AccessibilityListBoxOption.cpp:
        * accessibility/AccessibilityListBoxOption.h:
        * accessibility/AccessibilityMediaControls.cpp:
        * accessibility/AccessibilityMediaControls.h:
        * accessibility/AccessibilityNodeObject.cpp:
        * accessibility/AccessibilityNodeObject.h:
        * accessibility/AccessibilityObject.cpp:
        * accessibility/AccessibilityObject.h:
        * accessibility/AccessibilityRenderObject.cpp:
        * accessibility/AccessibilityRenderObject.h:
        * accessibility/AccessibilitySVGRoot.cpp:
        * accessibility/AccessibilitySVGRoot.h:
        * accessibility/AccessibilityScrollbar.cpp:
        * accessibility/AccessibilityScrollbar.h:
        * accessibility/AccessibilitySlider.cpp:
        * accessibility/AccessibilitySlider.h:
        * accessibility/AccessibilityTable.cpp:
        * accessibility/AccessibilityTable.h:
        * accessibility/AccessibilityTableCell.cpp:
        * accessibility/AccessibilityTableCell.h:
        * accessibility/AccessibilityTableColumn.cpp:
        * accessibility/AccessibilityTableColumn.h:
        * accessibility/AccessibilityTableHeaderContainer.cpp:
        * accessibility/AccessibilityTableHeaderContainer.h:
        * accessibility/AccessibilityTableRow.cpp:
        * accessibility/AccessibilityTableRow.h:
        * accessibility/ios/AXObjectCacheIOS.mm:
        * accessibility/ios/AccessibilityObjectIOS.mm:
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.h:
        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        * accessibility/mac/AXObjectCacheMac.mm:
        * accessibility/mac/AccessibilityObjectMac.mm:
        * accessibility/mac/WebAccessibilityObjectWrapperBase.h:
        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm:
        * accessibility/mac/WebAccessibilityObjectWrapperMac.h:
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        * bindings/gobject/WebKitDOMEventTarget.cpp:
        * bindings/gobject/WebKitDOMHTMLPrivate.cpp:
        * bindings/gobject/WebKitDOMHTMLPrivate.h:
        * bindings/js/Dictionary.cpp:
        * bindings/js/GCController.cpp:
        * bindings/js/GCController.h:
        * bindings/js/JSAttrCustom.cpp:
        * bindings/js/JSAudioTrackCustom.cpp:
        * bindings/js/JSAudioTrackListCustom.cpp:
        * bindings/js/JSCSSRuleCustom.cpp:
        * bindings/js/JSCSSRuleCustom.h:
        * bindings/js/JSCSSRuleListCustom.cpp:
        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        * bindings/js/JSCSSValueCustom.cpp:
        * bindings/js/JSCallbackData.cpp:
        * bindings/js/JSCallbackData.h:
        * bindings/js/JSCanvasRenderingContextCustom.cpp:
        * bindings/js/JSClipboardCustom.cpp:
        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
        * bindings/js/JSCustomXPathNSResolver.cpp:
        * bindings/js/JSCustomXPathNSResolver.h:
        * bindings/js/JSDOMGlobalObject.cpp:
        * bindings/js/JSDOMGlobalObject.h:
        * bindings/js/JSDOMWindowShell.cpp:
        * bindings/js/JSDOMWindowShell.h:
        * bindings/js/JSElementCustom.cpp:
        * bindings/js/JSEventCustom.cpp:
        * bindings/js/JSHTMLAppletElementCustom.cpp:
        * bindings/js/JSHTMLCanvasElementCustom.cpp:
        * bindings/js/JSHTMLDocumentCustom.cpp:
        * bindings/js/JSHTMLElementCustom.cpp:
        * bindings/js/JSHTMLEmbedElementCustom.cpp:
        * bindings/js/JSHTMLFormElementCustom.cpp:
        * bindings/js/JSHTMLFrameElementCustom.cpp:
        * bindings/js/JSHTMLFrameSetElementCustom.cpp:
        * bindings/js/JSHTMLObjectElementCustom.cpp:
        * bindings/js/JSHTMLSelectElementCustom.h:
        * bindings/js/JSHistoryCustom.cpp:
        * bindings/js/JSMediaListCustom.h:
        * bindings/js/JSMediaSourceStatesCustom.cpp:
        * bindings/js/JSMediaStreamCapabilitiesCustom.cpp:
        * bindings/js/JSNamedNodeMapCustom.cpp:
        * bindings/js/JSNodeCustom.cpp:
        * bindings/js/JSNodeCustom.h:
        * bindings/js/JSNodeFilterCustom.cpp:
        * bindings/js/JSNodeListCustom.cpp:
        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        * bindings/js/JSSQLTransactionCustom.cpp:
        * bindings/js/JSSQLTransactionSyncCustom.cpp:
        * bindings/js/JSSVGElementInstanceCustom.cpp:
        * bindings/js/JSStyleSheetCustom.cpp:
        * bindings/js/JSStyleSheetCustom.h:
        * bindings/js/JSStyleSheetListCustom.cpp:
        * bindings/js/JSTextTrackCueCustom.cpp:
        * bindings/js/JSTextTrackCustom.cpp:
        * bindings/js/JSTextTrackListCustom.cpp:
        * bindings/js/JSTouchCustom.cpp:
        * bindings/js/JSTouchListCustom.cpp:
        * bindings/js/JSTrackCustom.cpp:
        * bindings/js/JSTrackCustom.h:
        * bindings/js/JSTrackEventCustom.cpp:
        * bindings/js/JSVideoTrackCustom.cpp:
        * bindings/js/JSVideoTrackListCustom.cpp:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        * bindings/js/JSWebKitPointCustom.cpp:
        * bindings/js/JSWorkerGlobalScopeBase.cpp:
        * bindings/js/JSWorkerGlobalScopeBase.h:
        * bindings/js/JSXMLHttpRequestCustom.cpp:
        * bindings/js/JSXSLTProcessorCustom.cpp:
        * bindings/js/ScriptControllerMac.mm:
        * bindings/js/ScriptProfile.cpp:
        * bindings/js/ScriptProfile.h:
        * bindings/js/ScriptProfileNode.h:
        * bindings/js/ScriptProfiler.cpp:
        * bindings/js/ScriptProfiler.h:
        * bindings/js/SerializedScriptValue.cpp:
        * bindings/js/SerializedScriptValue.h:
        * bindings/js/WorkerScriptController.cpp:
        * bindings/js/WorkerScriptController.h:
        * bindings/objc/DOM.h:
        * bindings/objc/DOM.mm:
        * bindings/objc/DOMAbstractView.mm:
        * bindings/objc/DOMAbstractViewFrame.h:
        * bindings/objc/DOMCSS.h:
        * bindings/objc/DOMCSS.mm:
        * bindings/objc/DOMCore.h:
        * bindings/objc/DOMCustomXPathNSResolver.h:
        * bindings/objc/DOMCustomXPathNSResolver.mm:
        * bindings/objc/DOMEventException.h:
        * bindings/objc/DOMEvents.h:
        * bindings/objc/DOMEvents.mm:
        * bindings/objc/DOMException.h:
        * bindings/objc/DOMExtensions.h:
        * bindings/objc/DOMHTML.h:
        * bindings/objc/DOMHTML.mm:
        * bindings/objc/DOMInternal.h:
        * bindings/objc/DOMInternal.mm:
        * bindings/objc/DOMObject.h:
        * bindings/objc/DOMObject.mm:
        * bindings/objc/DOMPrivate.h:
        * bindings/objc/DOMRangeException.h:
        * bindings/objc/DOMRanges.h:
        * bindings/objc/DOMStylesheets.h:
        * bindings/objc/DOMTraversal.h:
        * bindings/objc/DOMUIKitExtensions.h:
        * bindings/objc/DOMUIKitExtensions.mm:
        * bindings/objc/DOMUtility.mm:
        * bindings/objc/DOMViews.h:
        * bindings/objc/DOMXPath.h:
        * bindings/objc/DOMXPath.mm:
        * bindings/objc/DOMXPathException.h:
        * bindings/objc/ExceptionHandlers.h:
        * bindings/objc/ExceptionHandlers.mm:
        * bindings/objc/ObjCEventListener.h:
        * bindings/objc/ObjCEventListener.mm:
        * bindings/objc/ObjCNodeFilterCondition.h:
        * bindings/objc/ObjCNodeFilterCondition.mm:
        * bindings/objc/PublicDOMInterfaces.h:
        * bindings/objc/WebScriptObject.mm:
        * bindings/scripts/CodeGeneratorObjC.pm:
        * bindings/scripts/InFilesCompiler.pm:
        (license):
        * bindings/scripts/InFilesParser.pm:
        * bindings/scripts/generate-bindings.pl:
        * bindings/scripts/test/ObjC/DOMFloat64Array.h:
        * bindings/scripts/test/ObjC/DOMFloat64Array.mm:
        * bindings/scripts/test/ObjC/DOMFloat64ArrayInternal.h:
        * bindings/scripts/test/ObjC/DOMTestActiveDOMObject.h:
        * bindings/scripts/test/ObjC/DOMTestActiveDOMObject.mm:
        * bindings/scripts/test/ObjC/DOMTestActiveDOMObjectInternal.h:
        * bindings/scripts/test/ObjC/DOMTestCallback.h:
        * bindings/scripts/test/ObjC/DOMTestCallback.mm:
        * bindings/scripts/test/ObjC/DOMTestCallbackInternal.h:
        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.h:
        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetter.mm:
        * bindings/scripts/test/ObjC/DOMTestCustomNamedGetterInternal.h:
        * bindings/scripts/test/ObjC/DOMTestEventConstructor.h:
        * bindings/scripts/test/ObjC/DOMTestEventConstructor.mm:
        * bindings/scripts/test/ObjC/DOMTestEventConstructorInternal.h:
        * bindings/scripts/test/ObjC/DOMTestEventTarget.h:
        * bindings/scripts/test/ObjC/DOMTestEventTarget.mm:
        * bindings/scripts/test/ObjC/DOMTestEventTargetInternal.h:
        * bindings/scripts/test/ObjC/DOMTestException.h:
        * bindings/scripts/test/ObjC/DOMTestException.mm:
        * bindings/scripts/test/ObjC/DOMTestExceptionInternal.h:
        * bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.h:
        * bindings/scripts/test/ObjC/DOMTestGenerateIsReachable.mm:
        * bindings/scripts/test/ObjC/DOMTestGenerateIsReachableInternal.h:
        * bindings/scripts/test/ObjC/DOMTestInterface.h:
        * bindings/scripts/test/ObjC/DOMTestInterface.mm:
        * bindings/scripts/test/ObjC/DOMTestInterfaceInternal.h:
        * bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.h:
        * bindings/scripts/test/ObjC/DOMTestMediaQueryListListener.mm:
        * bindings/scripts/test/ObjC/DOMTestMediaQueryListListenerInternal.h:
        * bindings/scripts/test/ObjC/DOMTestNamedConstructor.h:
        * bindings/scripts/test/ObjC/DOMTestNamedConstructor.mm:
        * bindings/scripts/test/ObjC/DOMTestNamedConstructorInternal.h:
        * bindings/scripts/test/ObjC/DOMTestNode.h:
        * bindings/scripts/test/ObjC/DOMTestNode.mm:
        * bindings/scripts/test/ObjC/DOMTestNodeInternal.h:
        * bindings/scripts/test/ObjC/DOMTestObj.h:
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        * bindings/scripts/test/ObjC/DOMTestObjInternal.h:
        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.h:
        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructors.mm:
        * bindings/scripts/test/ObjC/DOMTestOverloadedConstructorsInternal.h:
        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.h:
        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterface.mm:
        * bindings/scripts/test/ObjC/DOMTestSerializedScriptValueInterfaceInternal.h:
        * bindings/scripts/test/ObjC/DOMTestTypedefs.h:
        * bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
        * bindings/scripts/test/ObjC/DOMTestTypedefsInternal.h:
        * bindings/scripts/test/ObjC/DOMattribute.h:
        * bindings/scripts/test/ObjC/DOMattribute.mm:
        * bindings/scripts/test/ObjC/DOMattributeInternal.h:
        * bindings/scripts/test/ObjC/DOMreadonly.h:
        * bindings/scripts/test/ObjC/DOMreadonly.mm:
        * bindings/scripts/test/ObjC/DOMreadonlyInternal.h:
        * bindings/scripts/test/TestCallback.idl:
        * bindings/scripts/test/TestCustomNamedGetter.idl:
        * bindings/scripts/test/TestDomainSecurity.idl:
        * bindings/scripts/test/TestEventConstructor.idl:
        * bindings/scripts/test/TestEventTarget.idl:
        * bindings/scripts/test/TestException.idl:
        * bindings/scripts/test/TestImplements.idl:
        * bindings/scripts/test/TestInterface.idl:
        * bindings/scripts/test/TestMediaQueryListListener.idl:
        * bindings/scripts/test/TestNamedConstructor.idl:
        * bindings/scripts/test/TestObj.idl:
        * bindings/scripts/test/TestOverloadedConstructors.idl:
        * bindings/scripts/test/TestSupplemental.idl:
        * bridge/Bridge.h:
        * bridge/IdentifierRep.cpp:
        * bridge/IdentifierRep.h:
        * bridge/NP_jsobject.cpp:
        * bridge/NP_jsobject.h:
        * bridge/c/CRuntimeObject.cpp:
        * bridge/c/CRuntimeObject.h:
        * bridge/c/c_class.cpp:
        * bridge/c/c_class.h:
        * bridge/c/c_instance.cpp:
        * bridge/c/c_instance.h:
        * bridge/c/c_runtime.cpp:
        * bridge/c/c_runtime.h:
        * bridge/c/c_utility.cpp:
        * bridge/c/c_utility.h:
        * bridge/jsc/BridgeJSC.cpp:
        * bridge/jsc/BridgeJSC.h:
        * bridge/npruntime.cpp:
        * bridge/npruntime_impl.h:
        * bridge/npruntime_priv.h:
        * bridge/objc/ObjCRuntimeObject.h:
        * bridge/objc/ObjCRuntimeObject.mm:
        * bridge/objc/WebScriptObject.h:
        * bridge/objc/objc_class.h:
        * bridge/objc/objc_class.mm:
        * bridge/objc/objc_header.h:
        * bridge/objc/objc_instance.h:
        * bridge/objc/objc_instance.mm:
        * bridge/objc/objc_runtime.h:
        * bridge/objc/objc_runtime.mm:
        * bridge/objc/objc_utility.h:
        * bridge/objc/objc_utility.mm:
        * bridge/runtime_array.cpp:
        * bridge/runtime_array.h:
        * bridge/runtime_method.cpp:
        * bridge/runtime_method.h:
        * bridge/runtime_object.cpp:
        * bridge/runtime_object.h:
        * bridge/runtime_root.cpp:
        * bridge/runtime_root.h:
        * bridge/testbindings.mm:
        * css/CSSAllInOne.cpp:
        * css/CSSAspectRatioValue.cpp:
        * css/CSSAspectRatioValue.h:
        * css/CSSBorderImageSliceValue.cpp:
        * css/CSSBorderImageSliceValue.h:
        * css/CSSCanvasValue.cpp:
        * css/CSSCanvasValue.h:
        * css/CSSCrossfadeValue.cpp:
        * css/CSSCrossfadeValue.h:
        * css/CSSFontFace.cpp:
        * css/CSSFontFace.h:
        * css/CSSFontFaceSource.cpp:
        * css/CSSFontFaceSource.h:
        * css/CSSFontFaceSrcValue.cpp:
        * css/CSSFontFaceSrcValue.h:
        * css/CSSFontFeatureValue.cpp:
        * css/CSSFontFeatureValue.h:
        * css/CSSFontSelector.cpp:
        * css/CSSFontSelector.h:
        * css/CSSFontValue.cpp:
        * css/CSSGradientValue.cpp:
        * css/CSSGradientValue.h:
        * css/CSSImageGeneratorValue.cpp:
        * css/CSSImageGeneratorValue.h:
        * css/CSSMediaRule.cpp:
        * css/CSSProperty.cpp:
        * css/CSSProperty.h:
        * css/CSSReflectValue.cpp:
        * css/CSSReflectValue.h:
        * css/CSSReflectionDirection.h:
        * css/CSSRuleList.cpp:
        * css/CSSRuleList.h:
        * css/CSSRuleList.idl:
        * css/CSSSegmentedFontFace.cpp:
        * css/CSSSegmentedFontFace.h:
        * css/CSSShadowValue.cpp:
        * css/CSSTimingFunctionValue.cpp:
        * css/CSSTimingFunctionValue.h:
        * css/CSSUnicodeRangeValue.cpp:
        * css/CSSUnicodeRangeValue.h:
        * css/CSSUnknownRule.idl:
        * css/CSSValue.cpp:
        * css/CSSValueList.idl:
        * css/MediaAllInOne.cpp:
        * css/MediaFeatureNames.cpp:
        * css/MediaList.idl:
        * css/MediaQuery.cpp:
        * css/MediaQuery.h:
        * css/MediaQueryEvaluator.cpp:
        * css/MediaQueryEvaluator.h:
        * css/MediaQueryExp.cpp:
        * css/MediaQueryExp.h:
        * css/Pair.h:
        * css/PropertySetCSSStyleDeclaration.h:
        * css/RGBColor.cpp:
        * css/RGBColor.h:
        * css/SVGCSSParser.cpp:
        * css/SVGCSSStyleSelector.cpp:
        * css/StyleInvalidationAnalysis.cpp:
        * css/StyleInvalidationAnalysis.h:
        * css/StyleMedia.cpp:
        * css/StyleMedia.h:
        * css/StyleMedia.idl:
        * css/StyleSheet.cpp:
        * css/WebKitCSSFilterValue.cpp:
        * css/WebKitCSSFilterValue.h:
        * css/WebKitCSSFilterValue.idl:
        * css/WebKitCSSKeyframeRule.cpp:
        * css/WebKitCSSKeyframeRule.h:
        * css/WebKitCSSKeyframeRule.idl:
        * css/WebKitCSSKeyframesRule.cpp:
        * css/WebKitCSSKeyframesRule.h:
        * css/WebKitCSSKeyframesRule.idl:
        * css/WebKitCSSTransformValue.cpp:
        * css/WebKitCSSTransformValue.h:
        * css/WebKitCSSTransformValue.idl:
        * css/make-css-file-arrays.pl:
        * css/mediaControls.css:
        * css/mediaControlsEfl.css:
        * css/mediaControlsEflFullscreen.css:
        * css/mediaControlsGtk.css:
        * css/mediaControlsiOS.css:
        * css/svg.css:
        * dom/ActiveDOMObject.cpp:
        * dom/ActiveDOMObject.h:
        * dom/BeforeLoadEvent.h:
        * dom/BeforeLoadEvent.idl:
        * dom/BeforeTextInsertedEvent.cpp:
        * dom/BeforeTextInsertedEvent.h:
        * dom/BeforeUnloadEvent.cpp:
        * dom/BeforeUnloadEvent.h:
        * dom/BeforeUnloadEvent.idl:
        * dom/ClassNodeList.cpp:
        * dom/ClassNodeList.h:
        * dom/ClientRect.cpp:
        * dom/ClientRect.h:
        * dom/ClientRect.idl:
        * dom/ClientRectList.cpp:
        * dom/ClientRectList.h:
        * dom/ClientRectList.idl:
        * dom/Clipboard.cpp:
        * dom/Clipboard.idl:
        * dom/ClipboardAccessPolicy.h:
        * dom/ClipboardMac.mm:
        * dom/CompositionEvent.cpp:
        * dom/CompositionEvent.h:
        * dom/CompositionEvent.idl:
        * dom/ContextDestructionObserver.cpp:
        * dom/ContextDestructionObserver.h:
        * dom/CurrentScriptIncrementer.h:
        * dom/CustomEvent.cpp:
        * dom/CustomEvent.h:
        * dom/CustomEvent.idl:
        * dom/DOMCoreException.cpp:
        * dom/DOMCoreException.h:
        * dom/DOMCoreException.idl:
        * dom/DOMError.idl:
        * dom/DeviceMotionEvent.cpp:
        * dom/DeviceMotionEvent.h:
        * dom/DeviceMotionEvent.idl:
        * dom/DocumentEventQueue.cpp:
        * dom/DocumentEventQueue.h:
        * dom/DocumentMarker.h:
        * dom/DocumentParser.h:
        * dom/DocumentSharedObjectPool.cpp:
        * dom/DocumentSharedObjectPool.h:
        * dom/Entity.idl:
        * dom/EventContext.cpp:
        * dom/EventContext.h:
        * dom/EventException.cpp:
        * dom/EventException.h:
        * dom/EventException.idl:
        * dom/EventListener.idl:
        * dom/EventListenerMap.cpp:
        * dom/EventListenerMap.h:
        * dom/EventNames.cpp:
        * dom/EventQueue.h:
        * dom/EventTarget.cpp:
        * dom/EventTarget.h:
        * dom/ExceptionBase.cpp:
        * dom/ExceptionBase.h:
        * dom/GenericEventQueue.cpp:
        * dom/GenericEventQueue.h:
        * dom/KeyboardEvent.idl:
        * dom/MessageChannel.cpp:
        * dom/MessageChannel.h:
        * dom/MessageChannel.idl:
        * dom/MessageEvent.cpp:
        * dom/MessageEvent.h:
        * dom/MessageEvent.idl:
        * dom/MessagePort.cpp:
        * dom/MessagePort.h:
        * dom/MessagePort.idl:
        * dom/MouseRelatedEvent.h:
        * dom/MutationEvent.idl:
        * dom/Notation.idl:
        * dom/OverflowEvent.cpp:
        * dom/OverflowEvent.h:
        * dom/OverflowEvent.idl:
        * dom/PopStateEvent.cpp:
        * dom/PopStateEvent.h:
        * dom/PopStateEvent.idl:
        * dom/Position.cpp:
        * dom/Position.h:
        * dom/ProcessingInstruction.idl:
        * dom/ProgressEvent.cpp:
        * dom/ProgressEvent.h:
        * dom/ProgressEvent.idl:
        * dom/Range.idl:
        * dom/RangeException.cpp:
        * dom/RangeException.h:
        * dom/ScriptExecutionContext.cpp:
        * dom/ScriptExecutionContext.h:
        * dom/SecurityContext.cpp:
        * dom/SecurityContext.h:
        * dom/StaticNodeList.cpp:
        * dom/StaticNodeList.h:
        * dom/Text.idl:
        * dom/TextEvent.cpp:
        * dom/TextEvent.h:
        * dom/TextEvent.idl:
        * dom/Touch.cpp:
        * dom/Touch.h:
        * dom/Touch.idl:
        * dom/TouchEvent.cpp:
        * dom/TouchEvent.h:
        * dom/TouchEvent.idl:
        * dom/TouchList.cpp:
        * dom/TouchList.h:
        * dom/TouchList.idl:
        * dom/TransitionEvent.cpp:
        * dom/TransitionEvent.h:
        * dom/TransitionEvent.idl:
        * dom/TreeWalker.idl:
        * dom/UIEvent.idl:
        * dom/UIEventWithKeyState.cpp:
        * dom/WebKitAnimationEvent.cpp:
        * dom/WebKitAnimationEvent.h:
        * dom/WebKitAnimationEvent.idl:
        * dom/WebKitTransitionEvent.cpp:
        * dom/WebKitTransitionEvent.h:
        * dom/WebKitTransitionEvent.idl:
        * dom/make_dom_exceptions.pl:
        * dom/make_event_factory.pl:
        * dom/make_names.pl:
        (printLicenseHeader):
        * editing/AlternativeTextController.cpp:
        * editing/AlternativeTextController.h:
        * editing/AppendNodeCommand.cpp:
        * editing/AppendNodeCommand.h:
        * editing/ApplyStyleCommand.cpp:
        * editing/ApplyStyleCommand.h:
        * editing/BreakBlockquoteCommand.cpp:
        * editing/BreakBlockquoteCommand.h:
        * editing/CompositeEditCommand.cpp:
        * editing/CompositeEditCommand.h:
        * editing/CreateLinkCommand.cpp:
        * editing/CreateLinkCommand.h:
        * editing/DeleteButton.cpp:
        * editing/DeleteButton.h:
        * editing/DeleteButtonController.cpp:
        * editing/DeleteButtonController.h:
        * editing/DeleteFromTextNodeCommand.cpp:
        * editing/DeleteFromTextNodeCommand.h:
        * editing/DeleteSelectionCommand.cpp:
        * editing/DeleteSelectionCommand.h:
        * editing/EditAction.h:
        * editing/EditCommand.cpp:
        * editing/EditCommand.h:
        * editing/EditingBoundary.h:
        * editing/EditingStyle.cpp:
        * editing/Editor.cpp:
        * editing/Editor.h:
        * editing/EditorCommand.cpp:
        * editing/EditorDeleteAction.h:
        * editing/EditorInsertAction.h:
        * editing/FormatBlockCommand.cpp:
        * editing/FormatBlockCommand.h:
        * editing/FrameSelection.cpp:
        * editing/FrameSelection.h:
        * editing/HTMLInterchange.cpp:
        * editing/HTMLInterchange.h:
        * editing/IndentOutdentCommand.cpp:
        * editing/IndentOutdentCommand.h:
        * editing/InsertIntoTextNodeCommand.cpp:
        * editing/InsertIntoTextNodeCommand.h:
        * editing/InsertLineBreakCommand.cpp:
        * editing/InsertLineBreakCommand.h:
        * editing/InsertListCommand.cpp:
        * editing/InsertListCommand.h:
        * editing/InsertNodeBeforeCommand.cpp:
        * editing/InsertNodeBeforeCommand.h:
        * editing/InsertParagraphSeparatorCommand.cpp:
        * editing/InsertParagraphSeparatorCommand.h:
        * editing/InsertTextCommand.cpp:
        * editing/InsertTextCommand.h:
        * editing/MarkupAccumulator.h:
        * editing/MergeIdenticalElementsCommand.cpp:
        * editing/MergeIdenticalElementsCommand.h:
        * editing/ModifySelectionListLevel.cpp:
        * editing/ModifySelectionListLevel.h:
        * editing/MoveSelectionCommand.cpp:
        * editing/MoveSelectionCommand.h:
        * editing/RemoveCSSPropertyCommand.cpp:
        * editing/RemoveCSSPropertyCommand.h:
        * editing/RemoveFormatCommand.cpp:
        * editing/RemoveFormatCommand.h:
        * editing/RemoveNodeCommand.cpp:
        * editing/RemoveNodeCommand.h:
        * editing/RemoveNodePreservingChildrenCommand.cpp:
        * editing/RemoveNodePreservingChildrenCommand.h:
        * editing/ReplaceSelectionCommand.cpp:
        * editing/ReplaceSelectionCommand.h:
        * editing/SetNodeAttributeCommand.cpp:
        * editing/SetNodeAttributeCommand.h:
        * editing/SetSelectionCommand.cpp:
        * editing/SetSelectionCommand.h:
        * editing/SimplifyMarkupCommand.cpp:
        * editing/SimplifyMarkupCommand.h:
        * editing/SmartReplace.cpp:
        * editing/SmartReplace.h:
        * editing/SmartReplaceCF.cpp:
        * editing/SpellChecker.cpp:
        * editing/SpellChecker.h:
        * editing/SpellingCorrectionCommand.cpp:
        * editing/SpellingCorrectionCommand.h:
        * editing/SplitElementCommand.cpp:
        * editing/SplitElementCommand.h:
        * editing/SplitTextNodeCommand.cpp:
        * editing/SplitTextNodeCommand.h:
        * editing/SplitTextNodeContainingElementCommand.cpp:
        * editing/SplitTextNodeContainingElementCommand.h:
        * editing/TextAffinity.h:
        * editing/TextCheckingHelper.cpp:
        * editing/TextGranularity.h:
        * editing/TextIterator.cpp:
        * editing/TextIterator.h:
        * editing/TextIteratorBehavior.h:
        * editing/TypingCommand.cpp:
        * editing/TypingCommand.h:
        * editing/UnlinkCommand.cpp:
        * editing/UnlinkCommand.h:
        * editing/VisiblePosition.cpp:
        * editing/VisiblePosition.h:
        * editing/VisibleSelection.cpp:
        * editing/VisibleSelection.h:
        * editing/VisibleUnits.cpp:
        * editing/VisibleUnits.h:
        * editing/WrapContentsInDummySpanCommand.cpp:
        * editing/WrapContentsInDummySpanCommand.h:
        * editing/WritingDirection.h:
        * editing/efl/EditorEfl.cpp:
        * editing/htmlediting.cpp:
        * editing/htmlediting.h:
        * editing/mac/EditorMac.mm:
        * editing/mac/FrameSelectionMac.mm:
        * editing/markup.cpp:
        * editing/markup.h:
        * extract-localizable-strings.pl:
        * fileapi/FileException.cpp:
        * history/BackForwardClient.h:
        * history/BackForwardList.cpp:
        * history/BackForwardList.h:
        * history/CachedFrame.cpp:
        * history/CachedFrame.h:
        * history/CachedFramePlatformData.h:
        * history/CachedPage.cpp:
        * history/CachedPage.h:
        * history/HistoryItem.cpp:
        * history/HistoryItem.h:
        * history/PageCache.cpp:
        * history/PageCache.h:
        * history/mac/HistoryItemMac.mm:
        * html/FTPDirectoryDocument.cpp:
        * html/FTPDirectoryDocument.h:
        * html/HTMLAudioElement.cpp:
        * html/HTMLAudioElement.h:
        * html/HTMLAudioElement.idl:
        * html/HTMLCanvasElement.cpp:
        * html/HTMLCanvasElement.h:
        * html/HTMLCanvasElement.idl:
        * html/HTMLFieldSetElement.idl:
        * html/HTMLImageLoader.h:
        * html/HTMLMediaElement.cpp:
        * html/HTMLMediaElement.h:
        * html/HTMLMediaElement.idl:
        * html/HTMLOptionsCollection.cpp:
        * html/HTMLPlugInElement.cpp:
        * html/HTMLSourceElement.cpp:
        * html/HTMLSourceElement.h:
        * html/HTMLSourceElement.idl:
        * html/HTMLTablePartElement.cpp:
        * html/HTMLTableRowsCollection.cpp:
        * html/HTMLTableRowsCollection.h:
        * html/HTMLTitleElement.idl:
        * html/HTMLTrackElement.cpp:
        * html/HTMLTrackElement.h:
        * html/HTMLTrackElement.idl:
        * html/HTMLVideoElement.cpp:
        * html/HTMLVideoElement.h:
        * html/HTMLVideoElement.idl:
        * html/ImageData.cpp:
        * html/ImageData.h:
        * html/ImageData.idl:
        * html/ImageDocument.cpp:
        * html/ImageDocument.h:
        * html/MediaController.cpp:
        * html/MediaController.h:
        * html/MediaController.idl:
        * html/MediaControllerInterface.h:
        * html/MediaError.h:
        * html/MediaError.idl:
        * html/MediaFragmentURIParser.cpp:
        * html/MediaFragmentURIParser.h:
        * html/MediaKeyError.h:
        * html/MediaKeyError.idl:
        * html/MediaKeyEvent.cpp:
        * html/MediaKeyEvent.h:
        * html/MediaKeyEvent.idl:
        * html/PluginDocument.cpp:
        * html/PluginDocument.h:
        * html/TextDocument.cpp:
        * html/TextDocument.h:
        * html/TimeRanges.cpp:
        * html/TimeRanges.h:
        * html/TimeRanges.idl:
        * html/VoidCallback.h:
        * html/VoidCallback.idl:
        * html/canvas/CanvasGradient.cpp:
        * html/canvas/CanvasGradient.h:
        * html/canvas/CanvasGradient.idl:
        * html/canvas/CanvasPattern.cpp:
        * html/canvas/CanvasPattern.h:
        * html/canvas/CanvasPattern.idl:
        * html/canvas/CanvasRenderingContext.cpp:
        * html/canvas/CanvasRenderingContext.h:
        * html/canvas/CanvasRenderingContext.idl:
        * html/canvas/CanvasRenderingContext2D.cpp:
        * html/canvas/CanvasRenderingContext2D.h:
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/CanvasStyle.cpp:
        * html/canvas/CanvasStyle.h:
        * html/canvas/DOMPath.idl:
        * html/canvas/OESVertexArrayObject.cpp:
        * html/canvas/OESVertexArrayObject.h:
        * html/canvas/OESVertexArrayObject.idl:
        * html/canvas/WebGLBuffer.cpp:
        * html/canvas/WebGLBuffer.h:
        * html/canvas/WebGLBuffer.idl:
        * html/canvas/WebGLContextGroup.cpp:
        * html/canvas/WebGLContextGroup.h:
        * html/canvas/WebGLContextObject.cpp:
        * html/canvas/WebGLContextObject.h:
        * html/canvas/WebGLFramebuffer.cpp:
        * html/canvas/WebGLFramebuffer.h:
        * html/canvas/WebGLFramebuffer.idl:
        * html/canvas/WebGLObject.cpp:
        * html/canvas/WebGLObject.h:
        * html/canvas/WebGLProgram.cpp:
        * html/canvas/WebGLProgram.h:
        * html/canvas/WebGLProgram.idl:
        * html/canvas/WebGLRenderbuffer.cpp:
        * html/canvas/WebGLRenderbuffer.h:
        * html/canvas/WebGLRenderbuffer.idl:
        * html/canvas/WebGLRenderingContext.cpp:
        * html/canvas/WebGLRenderingContext.h:
        * html/canvas/WebGLRenderingContext.idl:
        * html/canvas/WebGLShader.cpp:
        * html/canvas/WebGLShader.h:
        * html/canvas/WebGLShader.idl:
        * html/canvas/WebGLSharedObject.cpp:
        * html/canvas/WebGLSharedObject.h:
        * html/canvas/WebGLTexture.cpp:
        * html/canvas/WebGLTexture.h:
        * html/canvas/WebGLTexture.idl:
        * html/canvas/WebGLUniformLocation.cpp:
        * html/canvas/WebGLUniformLocation.h:
        * html/canvas/WebGLUniformLocation.idl:
        * html/canvas/WebGLVertexArrayObjectOES.cpp:
        * html/canvas/WebGLVertexArrayObjectOES.h:
        * html/canvas/WebGLVertexArrayObjectOES.idl:
        * html/forms/FileIconLoader.cpp:
        * html/forms/FileIconLoader.h:
        * html/parser/TextDocumentParser.cpp:
        * html/parser/TextDocumentParser.h:
        * html/shadow/MediaControlElementTypes.cpp:
        * html/shadow/MediaControlElementTypes.h:
        * html/shadow/MediaControlElements.cpp:
        * html/shadow/MediaControlElements.h:
        * html/shadow/MediaControls.cpp:
        * html/shadow/MediaControls.h:
        * html/shadow/MediaControlsApple.cpp:
        * html/shadow/MediaControlsApple.h:
        * html/shadow/MediaControlsGtk.cpp:
        * html/shadow/MediaControlsGtk.h:
        * html/shadow/SpinButtonElement.cpp:
        * html/shadow/SpinButtonElement.h:
        * html/shadow/TextControlInnerElements.cpp:
        * html/shadow/TextControlInnerElements.h:
        * html/track/AudioTrack.h:
        * html/track/AudioTrack.idl:
        * html/track/AudioTrackList.cpp:
        * html/track/AudioTrackList.h:
        * html/track/AudioTrackList.idl:
        * html/track/DataCue.cpp:
        * html/track/DataCue.h:
        * html/track/DataCue.idl:
        * html/track/InbandGenericTextTrack.cpp:
        * html/track/InbandGenericTextTrack.h:
        * html/track/InbandTextTrack.cpp:
        * html/track/InbandTextTrack.h:
        * html/track/InbandWebVTTTextTrack.cpp:
        * html/track/InbandWebVTTTextTrack.h:
        * html/track/LoadableTextTrack.cpp:
        * html/track/LoadableTextTrack.h:
        * html/track/TextTrack.h:
        * html/track/TextTrack.idl:
        * html/track/TextTrackCue.idl:
        * html/track/TextTrackCueGeneric.cpp:
        * html/track/TextTrackCueGeneric.h:
        * html/track/TextTrackCueList.cpp:
        * html/track/TextTrackCueList.h:
        * html/track/TextTrackCueList.idl:
        * html/track/TextTrackList.cpp:
        * html/track/TextTrackList.h:
        * html/track/TextTrackList.idl:
        * html/track/TextTrackRegion.idl:
        * html/track/TextTrackRegionList.cpp:
        * html/track/TextTrackRegionList.h:
        * html/track/TextTrackRegionList.idl:
        * html/track/TrackBase.cpp:
        * html/track/TrackBase.h:
        * html/track/TrackEvent.cpp:
        * html/track/TrackEvent.h:
        * html/track/TrackEvent.idl:
        * html/track/TrackListBase.cpp:
        * html/track/TrackListBase.h:
        * html/track/VTTCue.idl:
        * html/track/VideoTrack.h:
        * html/track/VideoTrack.idl:
        * html/track/VideoTrackList.cpp:
        * html/track/VideoTrackList.h:
        * html/track/VideoTrackList.idl:
        * html/track/WebVTTElement.cpp:
        * html/track/WebVTTElement.h:
        * inspector/CommandLineAPIHost.cpp:
        * inspector/CommandLineAPIHost.h:
        * inspector/CommandLineAPIModuleSource.js:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorClient.h:
        * inspector/InspectorDOMAgent.cpp:
        * inspector/InspectorDOMAgent.h:
        * inspector/InspectorDOMStorageAgent.cpp:
        * inspector/InspectorDOMStorageAgent.h:
        * inspector/InspectorDatabaseAgent.cpp:
        * inspector/InspectorDatabaseAgent.h:
        * inspector/InspectorDatabaseResource.cpp:
        * inspector/InspectorDatabaseResource.h:
        * inspector/InspectorForwarding.h:
        * inspector/InspectorFrontendHost.cpp:
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorLayerTreeAgent.h:
        * inspector/InspectorNodeFinder.cpp:
        * inspector/InspectorNodeFinder.h:
        * inspector/InspectorOverlay.cpp:
        * inspector/InspectorOverlay.h:
        * inspector/InspectorOverlayPage.html:
        * inspector/InspectorProfilerAgent.cpp:
        * inspector/InspectorProfilerAgent.h:
        * inspector/ScriptProfile.idl:
        * inspector/ScriptProfileNode.idl:
        * loader/CookieJar.h:
        * loader/CrossOriginAccessControl.cpp:
        * loader/CrossOriginAccessControl.h:
        * loader/CrossOriginPreflightResultCache.cpp:
        * loader/CrossOriginPreflightResultCache.h:
        * loader/DocumentLoader.cpp:
        * loader/DocumentLoader.h:
        * loader/DocumentWriter.cpp:
        * loader/EmptyClients.h:
        * loader/FormState.cpp:
        * loader/FormState.h:
        * loader/FrameLoadRequest.h:
        * loader/FrameLoader.cpp:
        * loader/FrameLoader.h:
        * loader/FrameLoaderClient.h:
        * loader/FrameLoaderTypes.h:
        * loader/HistoryController.cpp:
        * loader/HistoryController.h:
        * loader/MixedContentChecker.cpp:
        * loader/NavigationAction.cpp:
        * loader/NavigationAction.h:
        * loader/NavigationScheduler.cpp:
        * loader/NavigationScheduler.h:
        * loader/NetscapePlugInStreamLoader.cpp:
        * loader/NetscapePlugInStreamLoader.h:
        * loader/PolicyCallback.cpp:
        * loader/PolicyCallback.h:
        * loader/PolicyChecker.cpp:
        * loader/PolicyChecker.h:
        * loader/ProgressTracker.cpp:
        * loader/ProgressTracker.h:
        * loader/ResourceBuffer.cpp:
        * loader/ResourceBuffer.h:
        * loader/ResourceLoadNotifier.cpp:
        * loader/ResourceLoadNotifier.h:
        * loader/ResourceLoader.cpp:
        * loader/ResourceLoader.h:
        * loader/SinkDocument.cpp:
        * loader/SinkDocument.h:
        * loader/SubframeLoader.cpp:
        * loader/SubframeLoader.h:
        * loader/SubresourceLoader.cpp:
        * loader/SubresourceLoader.h:
        * loader/SubstituteData.h:
        * loader/TextTrackLoader.cpp:
        * loader/appcache/ApplicationCacheAllInOne.cpp:
        * loader/archive/Archive.cpp:
        * loader/archive/Archive.h:
        * loader/archive/ArchiveFactory.cpp:
        * loader/archive/ArchiveFactory.h:
        * loader/archive/ArchiveResource.cpp:
        * loader/archive/ArchiveResource.h:
        * loader/archive/ArchiveResourceCollection.cpp:
        * loader/archive/ArchiveResourceCollection.h:
        * loader/archive/cf/LegacyWebArchive.cpp:
        * loader/archive/cf/LegacyWebArchive.h:
        * loader/archive/cf/LegacyWebArchiveMac.mm:
        * loader/cache/CachePolicy.h:
        * loader/cache/CachedCSSStyleSheet.cpp:
        * loader/cache/CachedFont.cpp:
        * loader/cache/CachedFont.h:
        * loader/cache/CachedResourceRequest.cpp:
        * loader/cache/CachedResourceRequest.h:
        * loader/cache/CachedResourceRequestInitiators.cpp:
        * loader/cache/CachedResourceRequestInitiators.h:
        * loader/cf/ResourceLoaderCFNet.cpp:
        * loader/icon/IconController.cpp:
        * loader/icon/IconController.h:
        * loader/icon/IconDatabase.cpp:
        * loader/icon/IconDatabase.h:
        * loader/icon/IconDatabaseBase.cpp:
        * loader/icon/IconDatabaseBase.h:
        * loader/icon/IconDatabaseClient.h:
        * loader/icon/IconLoader.cpp:
        * loader/icon/IconLoader.h:
        * loader/icon/IconRecord.cpp:
        * loader/icon/IconRecord.h:
        * loader/icon/PageURLRecord.cpp:
        * loader/icon/PageURLRecord.h:
        * loader/mac/DocumentLoaderMac.cpp:
        * loader/mac/LoaderNSURLExtras.h:
        * loader/mac/LoaderNSURLExtras.mm:
        * loader/mac/ResourceBuffer.mm:
        * loader/mac/ResourceLoaderMac.mm:
        * loader/win/DocumentLoaderWin.cpp:
        * loader/win/FrameLoaderWin.cpp:
        * mathml/MathMLAllInOne.cpp:
        * page/AbstractView.idl:
        * page/AlternativeTextClient.h:
        * page/AutoscrollController.cpp:
        * page/AutoscrollController.h:
        * page/BarProp.cpp:
        * page/BarProp.h:
        * page/BarProp.idl:
        * page/ContentSecurityPolicy.cpp:
        * page/ContentSecurityPolicy.h:
        * page/ContextMenuClient.h:
        * page/ContextMenuContext.cpp:
        * page/ContextMenuContext.h:
        * page/ContextMenuController.cpp:
        * page/ContextMenuController.h:
        * page/DOMSecurityPolicy.cpp:
        * page/DOMSecurityPolicy.h:
        * page/DOMSelection.cpp:
        * page/DOMSelection.h:
        * page/DOMSelection.idl:
        * page/DOMTimer.cpp:
        * page/DOMTimer.h:
        * page/DOMWindow.cpp:
        * page/DOMWindow.h:
        * page/DOMWindow.idl:
        * page/DragActions.h:
        * page/DragClient.h:
        * page/DragController.cpp:
        * page/DragController.h:
        * page/DragSession.h:
        * page/DragState.h:
        * page/EditorClient.h:
        * page/EventHandler.cpp:
        * page/EventHandler.h:
        * page/FocusController.cpp:
        * page/FocusController.h:
        * page/FocusDirection.h:
        * page/FrameTree.h:
        * page/GestureTapHighlighter.cpp:
        * page/GestureTapHighlighter.h:
        * page/History.cpp:
        * page/History.h:
        * page/History.idl:
        * page/Location.cpp:
        * page/Location.h:
        * page/Location.idl:
        * page/MouseEventWithHitTestResults.cpp:
        * page/MouseEventWithHitTestResults.h:
        * page/Navigator.cpp:
        * page/NavigatorBase.cpp:
        * page/NavigatorBase.h:
        * page/PageConsole.cpp:
        * page/PageConsole.h:
        * page/Screen.cpp:
        * page/Screen.h:
        * page/Screen.idl:
        * page/SecurityOrigin.cpp:
        * page/SecurityOrigin.h:
        * page/SecurityOriginHash.h:
        * page/Settings.cpp:
        * page/Settings.h:
        * page/SpatialNavigation.cpp:
        * page/SuspendableTimer.cpp:
        * page/SuspendableTimer.h:
        * page/UserContentTypes.h:
        * page/UserContentURLPattern.cpp:
        * page/UserContentURLPattern.h:
        * page/UserScript.h:
        * page/UserScriptTypes.h:
        * page/UserStyleSheet.h:
        * page/UserStyleSheetTypes.h:
        * page/WebCoreKeyboardUIMode.h:
        * page/WebKitPoint.h:
        * page/WebKitPoint.idl:
        * page/WindowBase64.idl:
        * page/WindowFeatures.h:
        * page/WindowFocusAllowedIndicator.cpp:
        * page/WindowFocusAllowedIndicator.h:
        * page/WindowTimers.idl:
        * page/WorkerNavigator.cpp:
        * page/WorkerNavigator.h:
        * page/WorkerNavigator.idl:
        * page/animation/AnimationBase.cpp:
        * page/animation/AnimationBase.h:
        * page/animation/AnimationController.cpp:
        * page/animation/AnimationController.h:
        * page/animation/AnimationControllerPrivate.h:
        * page/animation/CSSPropertyAnimation.cpp:
        * page/animation/CSSPropertyAnimation.h:
        * page/animation/CompositeAnimation.cpp:
        * page/animation/CompositeAnimation.h:
        * page/animation/ImplicitAnimation.cpp:
        * page/animation/ImplicitAnimation.h:
        * page/animation/KeyframeAnimation.cpp:
        * page/animation/KeyframeAnimation.h:
        * page/efl/DragControllerEfl.cpp:
        * page/efl/EventHandlerEfl.cpp:
        * page/gtk/DragControllerGtk.cpp:
        * page/gtk/EventHandlerGtk.cpp:
        * page/ios/EventHandlerIOS.mm:
        * page/mac/DragControllerMac.mm:
        * page/mac/EventHandlerMac.mm:
        * page/mac/PageMac.cpp:
        * page/mac/WebCoreFrameView.h:
        * page/make_settings.pl:
        * page/win/DragControllerWin.cpp:
        * page/win/EventHandlerWin.cpp:
        * page/win/FrameCGWin.cpp:
        * page/win/FrameCairoWin.cpp:
        * page/win/FrameGdiWin.cpp:
        * page/win/FrameWin.cpp:
        * page/win/FrameWin.h:
        * pdf/ios/PDFDocument.h:
        * platform/Clock.cpp:
        * platform/Clock.h:
        * platform/ClockGeneric.cpp:
        * platform/ClockGeneric.h:
        * platform/ColorChooser.h:
        * platform/ColorChooserClient.h:
        * platform/ContentType.cpp:
        * platform/ContentType.h:
        * platform/ContextMenu.h:
        * platform/ContextMenuItem.h:
        * platform/Cookie.h:
        * platform/Cursor.h:
        * platform/DragData.cpp:
        * platform/DragData.h:
        * platform/DragImage.cpp:
        * platform/DragImage.h:
        * platform/FileChooser.cpp:
        * platform/FileChooser.h:
        * platform/FileSystem.h:
        * platform/FloatConversion.h:
        * platform/KillRing.h:
        * platform/LinkHash.h:
        * platform/LocalizedStrings.cpp:
        * platform/LocalizedStrings.h:
        * platform/Logging.cpp:
        * platform/Logging.h:
        * platform/MIMETypeRegistry.cpp:
        * platform/MIMETypeRegistry.h:
        * platform/MediaDescription.h:
        * platform/MediaSample.h:
        * platform/NotImplemented.h:
        * platform/PODFreeListArena.h:
        * platform/Pasteboard.h:
        * platform/PasteboardStrategy.h:
        * platform/PlatformExportMacros.h:
        * platform/PlatformKeyboardEvent.h:
        * platform/PlatformMenuDescription.h:
        * platform/PlatformMouseEvent.h:
        * platform/PlatformPasteboard.h:
        * platform/PlatformScreen.h:
        * platform/PlatformSpeechSynthesis.h:
        * platform/PlatformSpeechSynthesisUtterance.cpp:
        * platform/PlatformSpeechSynthesisUtterance.h:
        * platform/PlatformSpeechSynthesisVoice.cpp:
        * platform/PlatformSpeechSynthesisVoice.h:
        * platform/PlatformSpeechSynthesizer.cpp:
        * platform/PlatformSpeechSynthesizer.h:
        * platform/PlatformWheelEvent.h:
        * platform/PopupMenuClient.h:
        * platform/RemoteCommandListener.cpp:
        * platform/RemoteCommandListener.h:
        * platform/SSLKeyGenerator.h:
        * platform/SchemeRegistry.cpp:
        * platform/SchemeRegistry.h:
        * platform/ScrollTypes.h:
        * platform/ScrollView.cpp:
        * platform/ScrollView.h:
        * platform/Scrollbar.cpp:
        * platform/Scrollbar.h:
        * platform/SharedBuffer.cpp:
        * platform/SharedBuffer.h:
        * platform/SharedTimer.h:
        * platform/Sound.h:
        * platform/ThreadCheck.h:
        * platform/ThreadGlobalData.cpp:
        * platform/ThreadGlobalData.h:
        * platform/ThreadTimers.cpp:
        * platform/ThreadTimers.h:
        * platform/Timer.cpp:
        * platform/Timer.h:
        * platform/URL.cpp:
        * platform/URL.h:
        * platform/Widget.cpp:
        * platform/Widget.h:
        * platform/animation/AnimationUtilities.h:
        * platform/audio/AudioArray.h:
        * platform/audio/AudioBus.cpp:
        * platform/audio/AudioBus.h:
        * platform/audio/AudioChannel.cpp:
        * platform/audio/AudioChannel.h:
        * platform/audio/AudioDestination.h:
        * platform/audio/AudioFIFO.cpp:
        * platform/audio/AudioFIFO.h:
        * platform/audio/AudioFileReader.h:
        * platform/audio/AudioIOCallback.h:
        * platform/audio/AudioPullFIFO.cpp:
        * platform/audio/AudioPullFIFO.h:
        * platform/audio/AudioSourceProvider.h:
        * platform/audio/Biquad.cpp:
        * platform/audio/Biquad.h:
        * platform/audio/Cone.cpp:
        * platform/audio/Cone.h:
        * platform/audio/DirectConvolver.cpp:
        * platform/audio/DirectConvolver.h:
        * platform/audio/Distance.cpp:
        * platform/audio/Distance.h:
        * platform/audio/DownSampler.cpp:
        * platform/audio/DownSampler.h:
        * platform/audio/DynamicsCompressor.cpp:
        * platform/audio/DynamicsCompressor.h:
        * platform/audio/DynamicsCompressorKernel.cpp:
        * platform/audio/DynamicsCompressorKernel.h:
        * platform/audio/FFTConvolver.cpp:
        * platform/audio/FFTConvolver.h:
        * platform/audio/FFTFrame.cpp:
        * platform/audio/FFTFrame.h:
        * platform/audio/HRTFDatabase.cpp:
        * platform/audio/HRTFDatabase.h:
        * platform/audio/HRTFDatabaseLoader.cpp:
        * platform/audio/HRTFDatabaseLoader.h:
        * platform/audio/HRTFElevation.cpp:
        * platform/audio/HRTFElevation.h:
        * platform/audio/HRTFKernel.cpp:
        * platform/audio/HRTFKernel.h:
        * platform/audio/MultiChannelResampler.cpp:
        * platform/audio/MultiChannelResampler.h:
        * platform/audio/Panner.cpp:
        * platform/audio/Panner.h:
        * platform/audio/Reverb.cpp:
        * platform/audio/Reverb.h:
        * platform/audio/ReverbAccumulationBuffer.cpp:
        * platform/audio/ReverbAccumulationBuffer.h:
        * platform/audio/ReverbConvolver.cpp:
        * platform/audio/ReverbConvolver.h:
        * platform/audio/ReverbConvolverStage.cpp:
        * platform/audio/ReverbConvolverStage.h:
        * platform/audio/ReverbInputBuffer.cpp:
        * platform/audio/ReverbInputBuffer.h:
        * platform/audio/SincResampler.cpp:
        * platform/audio/SincResampler.h:
        * platform/audio/UpSampler.cpp:
        * platform/audio/UpSampler.h:
        * platform/audio/ZeroPole.cpp:
        * platform/audio/ZeroPole.h:
        * platform/audio/ios/AudioDestinationIOS.cpp:
        * platform/audio/ios/AudioDestinationIOS.h:
        * platform/audio/ios/AudioFileReaderIOS.cpp:
        * platform/audio/ios/AudioFileReaderIOS.h:
        * platform/audio/mac/AudioDestinationMac.cpp:
        * platform/audio/mac/AudioDestinationMac.h:
        * platform/audio/mac/AudioFileReaderMac.cpp:
        * platform/audio/mac/AudioFileReaderMac.h:
        * platform/audio/mac/FFTFrameMac.cpp:
        * platform/cf/FileSystemCF.cpp:
        * platform/cf/SharedBufferCF.cpp:
        * platform/cf/URLCF.cpp:
        * platform/cocoa/KeyEventCocoa.h:
        * platform/cocoa/KeyEventCocoa.mm:
        * platform/efl/CursorEfl.cpp:
        * platform/efl/EflKeyboardUtilities.cpp:
        * platform/efl/EflKeyboardUtilities.h:
        * platform/efl/FileSystemEfl.cpp:
        * platform/efl/LanguageEfl.cpp:
        * platform/efl/LocalizedStringsEfl.cpp:
        * platform/efl/MIMETypeRegistryEfl.cpp:
        * platform/efl/PlatformKeyboardEventEfl.cpp:
        * platform/efl/PlatformMouseEventEfl.cpp:
        * platform/efl/PlatformScreenEfl.cpp:
        * platform/efl/PlatformWheelEventEfl.cpp:
        * platform/efl/RenderThemeEfl.h:
        * platform/efl/ScrollbarEfl.h:
        * platform/efl/SharedTimerEfl.cpp:
        * platform/efl/SoundEfl.cpp:
        * platform/efl/TemporaryLinkStubs.cpp:
        * platform/efl/WidgetEfl.cpp:
        * platform/graphics/ANGLEWebKitBridge.cpp:
        * platform/graphics/ANGLEWebKitBridge.h:
        * platform/graphics/AudioTrackPrivate.h:
        * platform/graphics/BitmapImage.cpp:
        * platform/graphics/BitmapImage.h:
        * platform/graphics/Color.cpp:
        * platform/graphics/Color.h:
        * platform/graphics/CrossfadeGeneratedImage.cpp:
        * platform/graphics/CrossfadeGeneratedImage.h:
        * platform/graphics/DashArray.h:
        * platform/graphics/DisplayRefreshMonitor.cpp:
        * platform/graphics/DisplayRefreshMonitor.h:
        * platform/graphics/FloatPoint.cpp:
        * platform/graphics/FloatPoint.h:
        * platform/graphics/FloatQuad.cpp:
        * platform/graphics/FloatQuad.h:
        * platform/graphics/FloatRect.cpp:
        * platform/graphics/FloatRect.h:
        * platform/graphics/FloatSize.cpp:
        * platform/graphics/FloatSize.h:
        * platform/graphics/FontBaseline.h:
        * platform/graphics/FontCache.cpp:
        * platform/graphics/FontCache.h:
        * platform/graphics/FontData.cpp:
        * platform/graphics/FontData.h:
        * platform/graphics/FontDescription.cpp:
        * platform/graphics/FontFeatureSettings.cpp:
        * platform/graphics/FontFeatureSettings.h:
        * platform/graphics/FontGlyphs.cpp:
        * platform/graphics/FontOrientation.h:
        * platform/graphics/FontRenderingMode.h:
        * platform/graphics/FontSelector.h:
        * platform/graphics/FontWidthVariant.h:
        * platform/graphics/FormatConverter.cpp:
        * platform/graphics/FormatConverter.h:
        * platform/graphics/GeneratedImage.h:
        * platform/graphics/Glyph.h:
        * platform/graphics/GlyphBuffer.h:
        * platform/graphics/GlyphMetricsMap.h:
        * platform/graphics/GlyphPage.h:
        * platform/graphics/GlyphPageTreeNode.cpp:
        * platform/graphics/GlyphPageTreeNode.h:
        * platform/graphics/Gradient.cpp:
        * platform/graphics/Gradient.h:
        * platform/graphics/GradientImage.h:
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/GraphicsContext3D.cpp:
        * platform/graphics/GraphicsContext3D.h:
        * platform/graphics/GraphicsLayer.cpp:
        * platform/graphics/GraphicsLayer.h:
        * platform/graphics/GraphicsLayerClient.h:
        * platform/graphics/GraphicsTypes.cpp:
        * platform/graphics/GraphicsTypes.h:
        * platform/graphics/GraphicsTypes3D.h:
        * platform/graphics/Image.cpp:
        * platform/graphics/Image.h:
        * platform/graphics/ImageBuffer.cpp:
        * platform/graphics/ImageBuffer.h:
        * platform/graphics/ImageBufferData.h:
        * platform/graphics/ImageObserver.h:
        * platform/graphics/ImageSource.cpp:
        * platform/graphics/ImageSource.h:
        * platform/graphics/InbandTextTrackPrivate.h:
        * platform/graphics/InbandTextTrackPrivateClient.h:
        * platform/graphics/IntPoint.cpp:
        * platform/graphics/IntPoint.h:
        * platform/graphics/IntSize.cpp:
        * platform/graphics/IntSize.h:
        * platform/graphics/MediaPlayer.cpp:
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        * platform/graphics/MediaSourcePrivateClient.h:
        * platform/graphics/NativeImagePtr.h:
        * platform/graphics/OpenGLESShims.h:
        * platform/graphics/Path.cpp:
        * platform/graphics/Path.h:
        * platform/graphics/PathTraversalState.h:
        * platform/graphics/Pattern.cpp:
        * platform/graphics/Pattern.h:
        * platform/graphics/PlatformLayer.h:
        * platform/graphics/PlatformTimeRanges.cpp:
        * platform/graphics/PlatformTimeRanges.h:
        * platform/graphics/SegmentedFontData.cpp:
        * platform/graphics/SegmentedFontData.h:
        * platform/graphics/ShadowBlur.cpp:
        * platform/graphics/ShadowBlur.h:
        * platform/graphics/SimpleFontData.cpp:
        * platform/graphics/SourceBufferPrivateClient.h:
        * platform/graphics/StringTruncator.cpp:
        * platform/graphics/StringTruncator.h:
        * platform/graphics/TrackPrivateBase.h:
        * platform/graphics/VideoTrackPrivate.h:
        * platform/graphics/WindRule.h:
        * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.h:
        * platform/graphics/avfoundation/AVTrackPrivateAVFObjCImpl.mm:
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.cpp:
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h:
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h:
        * platform/graphics/avfoundation/cf/CoreMediaSoftLinking.h:
        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.cpp:
        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h:
        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.cpp:
        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateLegacyAVCF.h:
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
        * platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.cpp:
        * platform/graphics/avfoundation/objc/AudioTrackPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.mm:
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h:
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.mm:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/VideoTrackPrivateMediaSourceAVFObjC.mm:
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        * platform/graphics/ca/GraphicsLayerCA.h:
        * platform/graphics/ca/LayerFlushScheduler.cpp:
        * platform/graphics/ca/LayerFlushScheduler.h:
        * platform/graphics/ca/LayerFlushSchedulerClient.h:
        * platform/graphics/ca/PlatformCAAnimation.h:
        * platform/graphics/ca/PlatformCAFilters.h:
        * platform/graphics/ca/PlatformCALayer.cpp:
        * platform/graphics/ca/PlatformCALayer.h:
        * platform/graphics/ca/PlatformCALayerClient.h:
        * platform/graphics/ca/TransformationMatrixCA.cpp:
        * platform/graphics/ca/mac/LayerFlushSchedulerMac.cpp:
        * platform/graphics/ca/mac/LayerPool.mm:
        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
        * platform/graphics/ca/mac/PlatformCAFiltersMac.h:
        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm:
        * platform/graphics/ca/mac/PlatformCALayerMac.h:
        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
        * platform/graphics/ca/mac/WebTiledBackingLayer.h:
        * platform/graphics/ca/mac/WebTiledBackingLayer.mm:
        * platform/graphics/ca/win/AbstractCACFLayerTreeHost.h:
        * platform/graphics/ca/win/CACFLayerTreeHost.cpp:
        * platform/graphics/ca/win/CACFLayerTreeHost.h:
        * platform/graphics/ca/win/CACFLayerTreeHostClient.h:
        * platform/graphics/ca/win/LayerChangesFlusher.cpp:
        * platform/graphics/ca/win/LayerChangesFlusher.h:
        * platform/graphics/ca/win/LegacyCACFLayerTreeHost.cpp:
        * platform/graphics/ca/win/LegacyCACFLayerTreeHost.h:
        * platform/graphics/ca/win/PlatformCAAnimationWin.cpp:
        * platform/graphics/ca/win/PlatformCAFiltersWin.cpp:
        * platform/graphics/ca/win/PlatformCALayerWin.cpp:
        * platform/graphics/ca/win/PlatformCALayerWin.h:
        * platform/graphics/ca/win/PlatformCALayerWinInternal.cpp:
        * platform/graphics/ca/win/PlatformCALayerWinInternal.h:
        * platform/graphics/ca/win/WKCACFViewLayerTreeHost.cpp:
        * platform/graphics/ca/win/WKCACFViewLayerTreeHost.h:
        * platform/graphics/cairo/BitmapImageCairo.cpp:
        * platform/graphics/cairo/CairoUtilities.cpp:
        * platform/graphics/cairo/CairoUtilities.h:
        * platform/graphics/cairo/DrawingBufferCairo.cpp:
        * platform/graphics/cairo/FloatRectCairo.cpp:
        * platform/graphics/cairo/FontCairo.cpp:
        * platform/graphics/cairo/FontCairoHarfbuzzNG.cpp:
        * platform/graphics/cairo/GradientCairo.cpp:
        * platform/graphics/cairo/GraphicsContext3DCairo.cpp:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        * platform/graphics/cairo/ImageBufferDataCairo.h:
        * platform/graphics/cairo/ImageCairo.cpp:
        * platform/graphics/cairo/PatternCairo.cpp:
        * platform/graphics/cairo/PlatformContextCairo.cpp:
        * platform/graphics/cairo/PlatformContextCairo.h:
        * platform/graphics/cairo/TransformationMatrixCairo.cpp:
        * platform/graphics/cg/BitmapImageCG.cpp:
        * platform/graphics/cg/ColorCG.cpp:
        * platform/graphics/cg/FloatPointCG.cpp:
        * platform/graphics/cg/FloatRectCG.cpp:
        * platform/graphics/cg/FloatSizeCG.cpp:
        * platform/graphics/cg/GradientCG.cpp:
        * platform/graphics/cg/GraphicsContext3DCG.cpp:
        * platform/graphics/cg/GraphicsContextCG.cpp:
        * platform/graphics/cg/GraphicsContextCG.h:
        * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h:
        * platform/graphics/cg/ImageBufferCG.cpp:
        * platform/graphics/cg/ImageBufferDataCG.cpp:
        * platform/graphics/cg/ImageBufferDataCG.h:
        * platform/graphics/cg/ImageCG.cpp:
        * platform/graphics/cg/ImageSourceCG.cpp:
        * platform/graphics/cg/IntPointCG.cpp:
        * platform/graphics/cg/IntRectCG.cpp:
        * platform/graphics/cg/IntSizeCG.cpp:
        * platform/graphics/cg/PDFDocumentImage.cpp:
        * platform/graphics/cg/PDFDocumentImage.h:
        * platform/graphics/cg/PathCG.cpp:
        * platform/graphics/cg/PatternCG.cpp:
        * platform/graphics/cg/TransformationMatrixCG.cpp:
        * platform/graphics/efl/IconEfl.cpp:
        * platform/graphics/efl/ImageEfl.cpp:
        * platform/graphics/filters/FilterOperation.cpp:
        * platform/graphics/filters/FilterOperation.h:
        * platform/graphics/filters/FilterOperations.cpp:
        * platform/graphics/filters/FilterOperations.h:
        * platform/graphics/freetype/FontPlatformDataFreeType.cpp:
        * platform/graphics/freetype/GlyphPageTreeNodeFreeType.cpp:
        * platform/graphics/freetype/SimpleFontDataFreeType.cpp:
        * platform/graphics/gpu/mac/DrawingBufferMac.mm:
        * platform/graphics/gtk/GdkCairoUtilities.cpp:
        * platform/graphics/gtk/GdkCairoUtilities.h:
        * platform/graphics/gtk/IconGtk.cpp:
        * platform/graphics/gtk/ImageGtk.cpp:
        * platform/graphics/ios/DisplayRefreshMonitorIOS.mm:
        * platform/graphics/ios/FontCacheIOS.mm:
        * platform/graphics/ios/GraphicsContext3DIOS.h:
        * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h:
        * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.mm:
        * platform/graphics/ios/MediaPlayerPrivateIOS.h:
        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
        * platform/graphics/mac/ColorMac.h:
        * platform/graphics/mac/ColorMac.mm:
        * platform/graphics/mac/DisplayRefreshMonitorMac.cpp:
        * platform/graphics/mac/FloatPointMac.mm:
        * platform/graphics/mac/FloatRectMac.mm:
        * platform/graphics/mac/FloatSizeMac.mm:
        * platform/graphics/mac/FontCacheMac.mm:
        * platform/graphics/mac/FontCustomPlatformData.h:
        * platform/graphics/mac/GlyphPageTreeNodeMac.cpp:
        * platform/graphics/mac/GraphicsContext3DMac.mm:
        * platform/graphics/mac/GraphicsContextMac.mm:
        * platform/graphics/mac/ImageMac.mm:
        * platform/graphics/mac/IntPointMac.mm:
        * platform/graphics/mac/IntRectMac.mm:
        * platform/graphics/mac/IntSizeMac.mm:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        * platform/graphics/mac/MediaPlayerProxy.h:
        * platform/graphics/mac/WebCoreCALayerExtras.h:
        * platform/graphics/mac/WebCoreCALayerExtras.mm:
        * platform/graphics/mac/WebGLLayer.h:
        * platform/graphics/mac/WebGLLayer.mm:
        * platform/graphics/mac/WebLayer.h:
        * platform/graphics/mac/WebLayer.mm:
        * platform/graphics/mac/WebTiledLayer.h:
        * platform/graphics/mac/WebTiledLayer.mm:
        * platform/graphics/opengl/GraphicsContext3DOpenGL.cpp:
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        * platform/graphics/opengl/GraphicsContext3DOpenGLES.cpp:
        * platform/graphics/opentype/OpenTypeUtilities.cpp:
        * platform/graphics/opentype/OpenTypeUtilities.h:
        * platform/graphics/transforms/AffineTransform.cpp:
        * platform/graphics/transforms/AffineTransform.h:
        * platform/graphics/transforms/Matrix3DTransformOperation.cpp:
        * platform/graphics/transforms/Matrix3DTransformOperation.h:
        * platform/graphics/transforms/PerspectiveTransformOperation.cpp:
        * platform/graphics/transforms/PerspectiveTransformOperation.h:
        * platform/graphics/transforms/TransformState.cpp:
        * platform/graphics/transforms/TransformState.h:
        * platform/graphics/transforms/TransformationMatrix.cpp:
        * platform/graphics/transforms/TransformationMatrix.h:
        * platform/graphics/win/FontCGWin.cpp:
        * platform/graphics/win/FontCacheWin.cpp:
        * platform/graphics/win/FontCustomPlatformDataCairo.cpp:
        * platform/graphics/win/FontWin.cpp:
        * platform/graphics/win/FullScreenController.cpp:
        * platform/graphics/win/FullScreenController.h:
        * platform/graphics/win/FullScreenControllerClient.h:
        * platform/graphics/win/GlyphPageTreeNodeCGWin.cpp:
        * platform/graphics/win/GlyphPageTreeNodeCairoWin.cpp:
        * platform/graphics/win/GraphicsContextCGWin.cpp:
        * platform/graphics/win/GraphicsContextCairoWin.cpp:
        * platform/graphics/win/GraphicsContextWin.cpp:
        * platform/graphics/win/ImageCGWin.cpp:
        * platform/graphics/win/ImageCairoWin.cpp:
        * platform/graphics/win/ImageWin.cpp:
        * platform/graphics/win/IntPointWin.cpp:
        * platform/graphics/win/IntRectWin.cpp:
        * platform/graphics/win/IntSizeWin.cpp:
        * platform/graphics/win/LocalWindowsContext.h:
        * platform/graphics/win/MediaPlayerPrivateTaskTimer.cpp:
        * platform/graphics/win/MediaPlayerPrivateTaskTimer.h:
        * platform/graphics/win/SimpleFontDataCGWin.cpp:
        * platform/graphics/win/SimpleFontDataCairoWin.cpp:
        * platform/graphics/win/SimpleFontDataWin.cpp:
        * platform/graphics/win/TransformationMatrixWin.cpp:
        * platform/graphics/wince/FontCacheWinCE.cpp:
        * platform/graphics/wince/FontWinCE.cpp:
        * platform/graphics/wince/MediaPlayerPrivateWinCE.h:
        * platform/graphics/wince/SimpleFontDataWinCE.cpp:
        * platform/gtk/CompositionResults.h:
        * platform/gtk/CursorGtk.cpp:
        * platform/gtk/GtkPluginWidget.cpp:
        * platform/gtk/GtkPluginWidget.h:
        * platform/gtk/LocalizedStringsGtk.cpp:
        * platform/gtk/MIMETypeRegistryGtk.cpp:
        * platform/gtk/PlatformKeyboardEventGtk.cpp:
        * platform/gtk/PlatformMouseEventGtk.cpp:
        * platform/gtk/PlatformScreenGtk.cpp:
        * platform/gtk/PlatformWheelEventGtk.cpp:
        * platform/gtk/RedirectedXCompositeWindow.cpp:
        * platform/gtk/RedirectedXCompositeWindow.h:
        * platform/gtk/RenderThemeGtk.h:
        * platform/gtk/ScrollViewGtk.cpp:
        * platform/gtk/SharedTimerGtk.cpp:
        * platform/gtk/TemporaryLinkStubs.cpp:
        * platform/gtk/UserAgentGtk.cpp:
        * platform/gtk/UserAgentGtk.h:
        * platform/gtk/WidgetGtk.cpp:
        * platform/gtk/WidgetRenderingContext.cpp:
        * platform/image-decoders/ImageDecoder.h:
        * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        * platform/image-decoders/gif/GIFImageDecoder.h:
        * platform/image-decoders/gif/GIFImageReader.cpp:
        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
        * platform/image-decoders/png/PNGImageDecoder.cpp:
        * platform/image-decoders/png/PNGImageDecoder.h:
        * platform/image-decoders/webp/WEBPImageDecoder.cpp:
        * platform/image-decoders/webp/WEBPImageDecoder.h:
        * platform/ios/CursorIOS.cpp:
        * platform/ios/DragImageIOS.mm:
        * platform/ios/KeyEventCodesIOS.h:
        * platform/ios/KeyEventIOS.mm:
        * platform/ios/PlatformPasteboardIOS.mm:
        * platform/ios/PlatformScreenIOS.mm:
        * platform/ios/PlatformSpeechSynthesizerIOS.mm:
        * platform/ios/RemoteCommandListenerIOS.h:
        * platform/ios/RemoteCommandListenerIOS.mm:
        * platform/ios/ScrollViewIOS.mm:
        * platform/ios/SoundIOS.mm:
        * platform/ios/SystemMemory.h:
        * platform/ios/SystemMemoryIOS.cpp:
        * platform/ios/WebCoreSystemInterfaceIOS.h:
        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/ios/WidgetIOS.mm:
        * platform/mac/BlockExceptions.h:
        * platform/mac/BlockExceptions.mm:
        * platform/mac/ContextMenuItemMac.mm:
        * platform/mac/ContextMenuMac.mm:
        * platform/mac/CursorMac.mm:
        * platform/mac/DragDataMac.mm:
        * platform/mac/DragImageMac.mm:
        * platform/mac/FileSystemMac.mm:
        * platform/mac/KeyEventMac.mm:
        * platform/mac/LocalCurrentGraphicsContext.h:
        * platform/mac/LocalCurrentGraphicsContext.mm:
        * platform/mac/LoggingMac.mm:
        * platform/mac/MIMETypeRegistryMac.mm:
        * platform/mac/MediaTimeMac.cpp:
        * platform/mac/MediaTimeMac.h:
        * platform/mac/PasteboardMac.mm:
        * platform/mac/PlatformClockCA.cpp:
        * platform/mac/PlatformClockCA.h:
        * platform/mac/PlatformClockCM.h:
        * platform/mac/PlatformClockCM.mm:
        * platform/mac/PlatformPasteboardMac.mm:
        * platform/mac/PlatformScreenMac.mm:
        * platform/mac/PlatformSpeechSynthesisMac.mm:
        * platform/mac/PlatformSpeechSynthesizerMac.mm:
        * platform/mac/ScrollViewMac.mm:
        * platform/mac/SharedBufferMac.mm:
        * platform/mac/SharedTimerMac.mm:
        * platform/mac/SoftLinking.h:
        * platform/mac/SoundMac.mm:
        * platform/mac/ThreadCheck.mm:
        * platform/mac/URLMac.mm:
        * platform/mac/WebCoreNSStringExtras.h:
        * platform/mac/WebCoreNSStringExtras.mm:
        * platform/mac/WebCoreNSURLExtras.h:
        * platform/mac/WebCoreNSURLExtras.mm:
        * platform/mac/WebCoreObjCExtras.h:
        * platform/mac/WebCoreObjCExtras.mm:
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        * platform/mac/WebCoreView.h:
        * platform/mac/WebCoreView.m:
        * platform/mac/WebFontCache.h:
        * platform/mac/WebFontCache.mm:
        * platform/mac/WebWindowAnimation.h:
        * platform/mac/WebWindowAnimation.mm:
        * platform/mac/WidgetMac.mm:
        * platform/mediastream/MediaStreamConstraintsValidationClient.h:
        * platform/mediastream/MediaStreamCreationClient.h:
        * platform/mediastream/MediaStreamSourceCapabilities.h:
        * platform/mediastream/MediaStreamSourceStates.h:
        * platform/mediastream/MediaStreamTrackSourcesRequestClient.h:
        * platform/mediastream/RTCIceServer.h:
        * platform/mediastream/mac/AVAudioCaptureSource.h:
        * platform/mediastream/mac/AVAudioCaptureSource.mm:
        * platform/mediastream/mac/AVCaptureDeviceManager.h:
        * platform/mediastream/mac/AVCaptureDeviceManager.mm:
        * platform/mediastream/mac/AVMediaCaptureSource.h:
        * platform/mediastream/mac/AVMediaCaptureSource.mm:
        * platform/mediastream/mac/AVVideoCaptureSource.h:
        * platform/mediastream/mac/AVVideoCaptureSource.mm:
        * platform/mock/MockMediaStreamCenter.cpp:
        * platform/mock/MockMediaStreamCenter.h:
        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
        * platform/mock/PlatformSpeechSynthesizerMock.h:
        * platform/mock/mediasource/MockBox.cpp:
        * platform/mock/mediasource/MockBox.h:
        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
        * platform/mock/mediasource/MockMediaPlayerMediaSource.h:
        * platform/mock/mediasource/MockMediaSourcePrivate.cpp:
        * platform/mock/mediasource/MockMediaSourcePrivate.h:
        * platform/mock/mediasource/MockSourceBufferPrivate.cpp:
        * platform/mock/mediasource/MockSourceBufferPrivate.h:
        * platform/mock/mediasource/MockTracks.cpp:
        * platform/mock/mediasource/MockTracks.h:
        * platform/network/AuthenticationChallengeBase.cpp:
        * platform/network/AuthenticationChallengeBase.h:
        * platform/network/Credential.cpp:
        * platform/network/Credential.h:
        * platform/network/DNS.h:
        * platform/network/DNSResolveQueue.cpp:
        * platform/network/DNSResolveQueue.h:
        * platform/network/DataURL.cpp:
        * platform/network/DataURL.h:
        * platform/network/HTTPHeaderMap.h:
        * platform/network/HTTPParsers.cpp:
        * platform/network/HTTPParsers.h:
        * platform/network/PlatformCookieJar.h:
        * platform/network/ProtectionSpace.cpp:
        * platform/network/ProtectionSpace.h:
        * platform/network/ResourceErrorBase.cpp:
        * platform/network/ResourceErrorBase.h:
        * platform/network/ResourceHandle.cpp:
        * platform/network/ResourceHandle.h:
        * platform/network/ResourceHandleClient.h:
        * platform/network/ResourceHandleInternal.h:
        * platform/network/ResourceRequestBase.cpp:
        * platform/network/ResourceRequestBase.h:
        * platform/network/ResourceResponseBase.cpp:
        * platform/network/ResourceResponseBase.h:
        * platform/network/cf/AuthenticationCF.cpp:
        * platform/network/cf/AuthenticationCF.h:
        * platform/network/cf/AuthenticationChallenge.h:
        * platform/network/cf/CookieJarCFNet.cpp:
        * platform/network/cf/CookieStorageCFNet.cpp:
        * platform/network/cf/DNSCFNet.cpp:
        * platform/network/cf/DownloadBundle.h:
        * platform/network/cf/FormDataStreamCFNet.cpp:
        * platform/network/cf/FormDataStreamCFNet.h:
        * platform/network/cf/ResourceError.h:
        * platform/network/cf/ResourceErrorCF.cpp:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.cpp:
        * platform/network/cf/ResourceHandleCFURLConnectionDelegate.h:
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.cpp:
        * platform/network/cf/ResourceHandleCFURLConnectionDelegateWithOperationQueue.h:
        * platform/network/cf/ResourceRequest.h:
        * platform/network/cf/ResourceRequestCFNet.cpp:
        * platform/network/cf/ResourceRequestCFNet.h:
        * platform/network/cf/ResourceResponse.h:
        * platform/network/cf/ResourceResponseCFNet.cpp:
        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.cpp:
        * platform/network/cf/SynchronousResourceHandleCFURLConnectionDelegate.h:
        * platform/network/curl/AuthenticationChallenge.h:
        * platform/network/curl/CurlDownload.cpp:
        * platform/network/curl/CurlDownload.h:
        * platform/network/curl/DNSCurl.cpp:
        * platform/network/curl/DownloadBundle.h:
        * platform/network/curl/FormDataStreamCurl.cpp:
        * platform/network/curl/FormDataStreamCurl.h:
        * platform/network/curl/ResourceError.h:
        * platform/network/curl/ResourceHandleCurl.cpp:
        * platform/network/curl/ResourceHandleManager.cpp:
        * platform/network/curl/ResourceHandleManager.h:
        * platform/network/curl/ResourceRequest.h:
        * platform/network/curl/ResourceResponse.h:
        * platform/network/curl/SSLHandle.cpp:
        * platform/network/curl/SSLHandle.h:
        * platform/network/gtk/CredentialBackingStore.cpp:
        * platform/network/gtk/CredentialBackingStore.h:
        * platform/network/ios/WebCoreURLResponseIOS.h:
        * platform/network/ios/WebCoreURLResponseIOS.mm:
        * platform/network/mac/AuthenticationMac.h:
        * platform/network/mac/AuthenticationMac.mm:
        * platform/network/mac/CookieJarMac.mm:
        * platform/network/mac/CookieStorageMac.mm:
        * platform/network/mac/FormDataStreamMac.h:
        * platform/network/mac/FormDataStreamMac.mm:
        * platform/network/mac/ResourceErrorMac.mm:
        * platform/network/mac/ResourceHandleMac.mm:
        * platform/network/mac/ResourceRequestMac.mm:
        * platform/network/mac/ResourceResponseMac.mm:
        * platform/network/mac/WebCoreURLResponse.h:
        * platform/network/mac/WebCoreURLResponse.mm:
        * platform/network/soup/AuthenticationChallenge.h:
        * platform/network/soup/AuthenticationChallengeSoup.cpp:
        * platform/network/soup/CookieJarSoup.h:
        * platform/network/soup/DNSSoup.cpp:
        * platform/network/soup/ResourceError.h:
        * platform/network/soup/ResourceErrorSoup.cpp:
        * platform/network/soup/ResourceRequest.h:
        * platform/network/soup/ResourceResponse.h:
        * platform/network/soup/SoupNetworkSession.cpp:
        * platform/network/soup/SoupNetworkSession.h:
        * platform/network/win/CookieJarWin.cpp:
        * platform/network/win/DownloadBundleWin.cpp:
        * platform/network/win/ResourceError.h:
        * platform/network/win/ResourceHandleWin.cpp:
        * platform/network/win/ResourceRequest.h:
        * platform/network/win/ResourceResponse.h:
        * platform/posix/FileSystemPOSIX.cpp:
        * platform/posix/SharedBufferPOSIX.cpp:
        * platform/soup/URLSoup.cpp:
        * platform/sql/SQLValue.cpp:
        * platform/sql/SQLValue.h:
        * platform/sql/SQLiteAuthorizer.cpp:
        * platform/sql/SQLiteDatabase.cpp:
        * platform/sql/SQLiteDatabase.h:
        * platform/sql/SQLiteStatement.cpp:
        * platform/sql/SQLiteStatement.h:
        * platform/sql/SQLiteTransaction.cpp:
        * platform/sql/SQLiteTransaction.h:
        * platform/text/SuffixTree.h:
        * platform/text/TextAllInOne.cpp:
        * platform/text/TextBoundaries.cpp:
        * platform/text/TextBoundaries.h:
        * platform/text/TextCodec.cpp:
        * platform/text/TextCodec.h:
        * platform/text/TextCodecASCIIFastPath.h:
        * platform/text/TextCodecICU.cpp:
        * platform/text/TextCodecICU.h:
        * platform/text/TextCodecLatin1.cpp:
        * platform/text/TextCodecLatin1.h:
        * platform/text/TextCodecUTF16.cpp:
        * platform/text/TextCodecUTF16.h:
        * platform/text/TextCodecUTF8.cpp:
        * platform/text/TextCodecUTF8.h:
        * platform/text/TextCodecUserDefined.cpp:
        * platform/text/TextCodecUserDefined.h:
        * platform/text/TextDirection.h:
        * platform/text/TextEncoding.cpp:
        * platform/text/TextEncoding.h:
        * platform/text/TextEncodingRegistry.cpp:
        * platform/text/TextEncodingRegistry.h:
        * platform/text/TextStream.cpp:
        * platform/text/TextStream.h:
        * platform/text/UnicodeBidi.h:
        * platform/text/mac/CharsetData.h:
        * platform/text/mac/TextBoundaries.mm:
        * platform/text/mac/TextCodecMac.cpp:
        * platform/text/mac/TextCodecMac.h:
        * platform/text/mac/character-sets.txt:
        * platform/text/mac/make-charset-table.pl:
        * platform/text/win/TextCodecWin.h:
        * platform/win/BString.cpp:
        * platform/win/BString.h:
        * platform/win/COMPtr.h:
        * platform/win/ClipboardUtilitiesWin.cpp:
        * platform/win/ClipboardUtilitiesWin.h:
        * platform/win/ContextMenuItemWin.cpp:
        * platform/win/ContextMenuWin.cpp:
        * platform/win/CursorWin.cpp:
        * platform/win/DragDataWin.cpp:
        * platform/win/DragImageCGWin.cpp:
        * platform/win/DragImageCairoWin.cpp:
        * platform/win/DragImageWin.cpp:
        * platform/win/FileSystemWin.cpp:
        * platform/win/GDIObjectCounter.cpp:
        * platform/win/GDIObjectCounter.h:
        * platform/win/HWndDC.h:
        * platform/win/KeyEventWin.cpp:
        * platform/win/LanguageWin.cpp:
        * platform/win/MIMETypeRegistryWin.cpp:
        * platform/win/PasteboardWin.cpp:
        * platform/win/PlatformMouseEventWin.cpp:
        * platform/win/PlatformScreenWin.cpp:
        * platform/win/SharedBufferWin.cpp:
        * platform/win/SharedTimerWin.cpp:
        * platform/win/SoftLinking.h:
        * platform/win/SoundWin.cpp:
        * platform/win/StructuredExceptionHandlerSuppressor.cpp:
        * platform/win/TemporaryLinkStubs.cpp:
        * platform/win/WCDataObject.cpp:
        * platform/win/WCDataObject.h:
        * platform/win/WebCoreTextRenderer.cpp:
        * platform/win/WebCoreTextRenderer.h:
        * platform/win/WheelEventWin.cpp:
        * platform/win/WidgetWin.cpp:
        * platform/win/WindowMessageBroadcaster.cpp:
        * platform/win/WindowMessageBroadcaster.h:
        * platform/win/WindowMessageListener.h:
        * platform/win/WindowsTouch.h:
        * platform/win/makesafeseh.asm:
        * plugins/PluginDatabase.cpp:
        * plugins/PluginDatabase.h:
        * plugins/PluginDebug.cpp:
        * plugins/PluginDebug.h:
        * plugins/PluginPackage.cpp:
        * plugins/PluginPackage.h:
        * plugins/PluginQuirkSet.h:
        * plugins/PluginStream.cpp:
        * plugins/PluginStream.h:
        * plugins/PluginView.cpp:
        * plugins/PluginView.h:
        * plugins/efl/PluginPackageEfl.cpp:
        * plugins/efl/PluginViewEfl.cpp:
        * plugins/gtk/PluginPackageGtk.cpp:
        * plugins/gtk/PluginViewGtk.cpp:
        * plugins/mac/PluginPackageMac.cpp:
        * plugins/mac/PluginViewMac.mm:
        * plugins/npapi.cpp:
        * plugins/npfunctions.h:
        * plugins/npruntime.h:
        * plugins/win/PluginDatabaseWin.cpp:
        * plugins/win/PluginPackageWin.cpp:
        * plugins/win/PluginViewWin.cpp:
        * plugins/x11/PluginViewX11.cpp:
        * rendering/EllipsisBox.cpp:
        * rendering/EllipsisBox.h:
        * rendering/FilterEffectRenderer.cpp:
        * rendering/FilterEffectRenderer.h:
        * rendering/HitTestLocation.h:
        * rendering/HitTestRequest.h:
        * rendering/HitTestResult.h:
        * rendering/HitTestingTransformState.cpp:
        * rendering/HitTestingTransformState.h:
        * rendering/RenderBoxRegionInfo.h:
        * rendering/RenderButton.cpp:
        * rendering/RenderButton.h:
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        * rendering/RenderDeprecatedFlexibleBox.h:
        * rendering/RenderFieldset.cpp:
        * rendering/RenderFrameBase.cpp:
        * rendering/RenderFrameBase.h:
        * rendering/RenderFrameSet.cpp:
        * rendering/RenderGeometryMap.cpp:
        * rendering/RenderGeometryMap.h:
        * rendering/RenderGrid.cpp:
        * rendering/RenderGrid.h:
        * rendering/RenderHTMLCanvas.cpp:
        * rendering/RenderHTMLCanvas.h:
        * rendering/RenderIFrame.cpp:
        * rendering/RenderIFrame.h:
        * rendering/RenderLayerBacking.cpp:
        * rendering/RenderLayerBacking.h:
        * rendering/RenderLayerCompositor.cpp:
        * rendering/RenderLayerCompositor.h:
        * rendering/RenderLineBoxList.cpp:
        * rendering/RenderLineBoxList.h:
        * rendering/RenderListBox.cpp:
        * rendering/RenderListBox.h:
        * rendering/RenderMarquee.h:
        * rendering/RenderMedia.cpp:
        * rendering/RenderMedia.h:
        * rendering/RenderMultiColumnFlowThread.cpp:
        * rendering/RenderMultiColumnFlowThread.h:
        * rendering/RenderMultiColumnSet.cpp:
        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderNamedFlowThread.cpp:
        * rendering/RenderNamedFlowThread.h:
        * rendering/RenderRegionSet.cpp:
        * rendering/RenderRegionSet.h:
        * rendering/RenderReplica.cpp:
        * rendering/RenderReplica.h:
        * rendering/RenderTheme.cpp:
        * rendering/RenderTheme.h:
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeWin.h:
        * rendering/RenderThemeWinCE.cpp:
        * rendering/RenderThemeWinCE.h:
        * rendering/RenderTreeAsText.cpp:
        * rendering/RenderTreeAsText.h:
        * rendering/RenderVTTCue.cpp:
        * rendering/RenderVTTCue.h:
        * rendering/RenderVideo.cpp:
        * rendering/RenderVideo.h:
        * rendering/RenderView.h:
        * rendering/style/SVGRenderStyle.cpp:
        * rendering/style/SVGRenderStyle.h:
        * rendering/style/SVGRenderStyleDefs.cpp:
        * rendering/style/SVGRenderStyleDefs.h:
        * rendering/style/StyleFilterData.cpp:
        * rendering/style/StyleFilterData.h:
        * rendering/style/StylePendingImage.h:
        * rendering/svg/RenderSVGBlock.cpp:
        * rendering/svg/RenderSVGBlock.h:
        * rendering/svg/RenderSVGForeignObject.cpp:
        * rendering/svg/RenderSVGForeignObject.h:
        * rendering/svg/RenderSVGImage.cpp:
        * rendering/svg/RenderSVGInline.h:
        * rendering/svg/RenderSVGInlineText.cpp:
        * rendering/svg/RenderSVGPath.h:
        * rendering/svg/RenderSVGShape.h:
        * rendering/svg/RenderSVGTSpan.h:
        * rendering/svg/RenderSVGText.cpp:
        * rendering/svg/RenderSVGText.h:
        * rendering/svg/SVGInlineFlowBox.cpp:
        * rendering/svg/SVGInlineFlowBox.h:
        * rendering/svg/SVGRenderTreeAsText.cpp:
        * rendering/svg/SVGRenderTreeAsText.h:
        * rendering/svg/SVGRootInlineBox.cpp:
        * rendering/svg/SVGRootInlineBox.h:
        * storage/StorageEventDispatcher.h:
        * svg/SVGException.cpp:
        * svg/graphics/SVGImageChromeClient.h:
        * workers/Worker.cpp:
        * workers/Worker.h:
        * workers/Worker.idl:
        * workers/WorkerEventQueue.cpp:
        * workers/WorkerEventQueue.h:
        * workers/WorkerGlobalScope.cpp:
        * workers/WorkerGlobalScope.h:
        * workers/WorkerGlobalScope.idl:
        * workers/WorkerLocation.cpp:
        * workers/WorkerLocation.h:
        * workers/WorkerLocation.idl:
        * workers/WorkerMessagingProxy.cpp:
        * workers/WorkerMessagingProxy.h:
        * workers/WorkerScriptLoader.cpp:
        * workers/WorkerScriptLoader.h:
        * workers/WorkerScriptLoaderClient.h:
        * workers/WorkerThread.cpp:
        * workers/WorkerThread.h:
        * xml/DOMParser.h:
        * xml/DOMParser.idl:
        * xml/NativeXPathNSResolver.cpp:
        * xml/NativeXPathNSResolver.h:
        * xml/XMLHttpRequest.idl:
        * xml/XMLHttpRequestException.cpp:
        * xml/XMLHttpRequestException.h:
        * xml/XMLHttpRequestException.idl:
        * xml/XMLHttpRequestProgressEvent.h:
        * xml/XMLHttpRequestProgressEvent.idl:
        * xml/XMLHttpRequestUpload.idl:
        * xml/XMLSerializer.h:
        * xml/XMLSerializer.idl:
        * xml/XPathEvaluator.cpp:
        * xml/XPathEvaluator.h:
        * xml/XPathEvaluator.idl:
        * xml/XPathException.cpp:
        * xml/XPathException.h:
        * xml/XPathException.idl:
        * xml/XPathExpression.idl:
        * xml/XPathExpressionNode.cpp:
        * xml/XPathNSResolver.cpp:
        * xml/XPathNSResolver.h:
        * xml/XPathNSResolver.idl:
        * xml/XPathNodeSet.h:
        * xml/XPathResult.idl:
        * xml/XPathUtil.h:
        * xml/XPathVariableReference.cpp:
        * xml/XSLTProcessor.idl:
        * xml/XSLTUnicodeSort.cpp:
        * xml/XSLTUnicodeSort.h:

2014-03-14  Simon Fraser  <simon.fraser@apple.com>

        Fix scrollperf logging
        https://bugs.webkit.org/show_bug.cgi?id=130278
        <rdar://problem/16320003>

        Reviewed by Anders Carlsson.
        
        r165493 broke scrollperf logging by adding in the scroll position
        to the viewport rect, which used to be 0,0 based. Restore
        the previous behavior.

        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):

2014-03-14  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: border-radius painting falls back to rectangle at subpixel positions.
        https://bugs.webkit.org/show_bug.cgi?id=130272

        Unreviewed. Missing piece from http://trac.webkit.org/changeset/165670

        * platform/graphics/RoundedRect.cpp:
        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):

2014-03-14  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: border-radius painting falls back to rectangle at subpixel positions.
        https://bugs.webkit.org/show_bug.cgi?id=130272

        Reviewed by Simon Fraser.

        Rounded rectangle's radius needs adjustment after its containing rect gets pixel snapped.
        Keeping the old radius value could make rounded rectangle non-renderable, because the
        originally calculated radius length does not fit the snapped rectangle anymore.

        Test: fast/borders/hidpi-border-radius-outer-border-goes-rectangle.html

        * platform/graphics/RoundedRect.cpp:
        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintBorder):

2014-03-14  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] background-attachment: fixed renders oddly, moves around
        https://bugs.webkit.org/show_bug.cgi?id=130277
        <rdar://problem/16332883>

        Reviewed by Tim Horton.

        If we have a counter-scrolling layer (for a fixed background), move
        it around when changing the viewport.

        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeScrollingNodeIOS::updateForViewport):

2014-03-14  Jae Hyun Park  <jaepark@webkit.org>

        [Texmap] Remove duplicated code in TextureMapperLayer
        https://bugs.webkit.org/show_bug.cgi?id=130173

        Reviewed by Martin Robinson.

        This patch is a simple refactoring to remove duplicated code in
        TextureMapperLayer.

        * platform/graphics/texmap/TextureMapperLayer.cpp:
        (WebCore::TextureMapperLayer::~TextureMapperLayer):
        (WebCore::TextureMapperLayer::removeFromParent):

2014-03-14  Simon Fraser  <simon.fraser@apple.com>

        Release-assert if someone starts the WebThread in the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=130270
        <rdar://problem/16332380>

        Reviewed by Sam Weinig.

        If someone tries to start the WebThread in the WebProcess, assert,
        even in release builds, because this should never happen.

        * platform/ios/wak/WebCoreThread.mm:
        (WebThreadEnable):

2014-03-14  Peter Molnar  <pmolnar.u-szeged@partner.samsung.com>

        Clean up unused externs from WebCore logging.
        https://bugs.webkit.org/show_bug.cgi?id=130240

        Reviewed by Andreas Kling.

        * platform/Logging.h:

2014-03-14  James Craig  <jcraig@apple.com>

        AX: AccessibilityObject::invalidStatus() is incorrect when aria-invalid="undefined" or whitespace
        https://bugs.webkit.org/show_bug.cgi?id=130071

        Reviewed by Chris Fleizach.

        Accounted for whitespace values and the explicit string, "undefined".

        Test: accessibility/aria-invalid.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::invalidStatus):
        * accessibility/AccessibilityObject.h:
        * accessibility/atk/WebKitAccessibleInterfaceText.cpp:
        (getAttributeSetForAccessibilityObject):

2014-03-14  Bear Travis  <betravis@adobe.com>

        [CSS Shapes] CSS parser accepts trailing position arguments
        https://bugs.webkit.org/show_bug.cgi?id=129514

        Reviewed by Andreas Kling.

        Add a check to make sure there are no remaining function args
        following a position in the circle() and ellipse() css shape
        functions.

        Updated existing parsing tests.

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseBasicShapeCircle):
        (WebCore::CSSParser::parseBasicShapeEllipse):

2014-03-14  Simon Fraser  <simon.fraser@apple.com>

        Fix the iOS build and sort the exports file.

        * WebCore.exp.in:

2014-03-14  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Improve behavior of fixed elments on zooming
        https://bugs.webkit.org/show_bug.cgi?id=130253

        Reviewed by Beth Dakin.

        Correctly reposition right- and bottom-relative position:fixed
        elements on zooming in WK2 iOS by telling the scrolling tree
        about zoom-related viewport changes.

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::rectForViewportConstrainedObjects):
        (WebCore::FrameView::viewportConstrainedObjectsRect): We need to be able to
        recompute the fixed position rect from the scrolling tree on iOS, so we need
        a static function, similar to scrollOffsetForFixedPosition(), that computes
        the constrained viewport.
        * page/FrameView.h:
        * page/Page.cpp:
        (WebCore::Page::setPageScaleFactor): When scrolling (and, by implication, zooming)
        is delegated, then setPageScaleFactor() should not affect the scroll position.
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated): Go back to just
        passing the visibleContentRect() for iOS.
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::viewportChangedViaDelegatedScrolling): Entrypoint to
        the scrolling tree, called when the viewport is changed by zooming.
        * page/scrolling/ScrollingTree.h:
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition): Use the
        new FrameView::rectForViewportConstrainedObjects() to compute the correct viewport
        for fixed/sticky child nodes.
        (WebCore::ScrollingTreeScrollingNodeIOS::updateForViewport):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::updateForViewport):

2014-03-14  Dirk Schulze  <krit@webkit.org>

        Refactor Path to Path2D and remove currentPath
        https://bugs.webkit.org/show_bug.cgi?id=130236

        Reviewed by Dean Jackson.

        Other implementations prefer Path2D over Path. Furthermore, currentPath is not the right
        way to apply a Path2D object to a context. Main argument is that currentPath creates a copy
        of the Path2D object. Instead we pass Path2D as argument to fill, stroke and clip now.

        Tests: fast/canvas/canvas-clip-path.html
               fast/canvas/canvas-fill-path.html
               fast/canvas/canvas-stroke-path.html

        * bindings/scripts/CodeGeneratorJS.pm: WebIDL parser didn't handle enumerations
            for overloaded methods at all.
        (GenerateParametersCheckExpression):
        * html/canvas/CanvasRenderingContext2D.cpp: New functions with DOMPath argument.
        (WebCore::CanvasRenderingContext2D::fill):
        (WebCore::CanvasRenderingContext2D::stroke):
        (WebCore::CanvasRenderingContext2D::clip):
        (WebCore::CanvasRenderingContext2D::fillInternal): Internal method to avoid code duplication
            and copy operation.
        (WebCore::CanvasRenderingContext2D::strokeInternal): Ditto.
        (WebCore::CanvasRenderingContext2D::clipInternal): Ditto.
        * html/canvas/CanvasRenderingContext2D.h:
        * html/canvas/CanvasRenderingContext2D.idl:
        * html/canvas/DOMPath.idl: Rename Path to Path2D.

2014-03-14  Grzegorz Czajkowski  <g.czajkowski@samsung.com>

        ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder should take a const reference to InsertedNodes
        https://bugs.webkit.org/show_bug.cgi?id=130232

        Reviewed by Andreas Kling.

        This method doesn't modify InsertedNodes object.

        No new tests, no behavior change.

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
        * editing/ReplaceSelectionCommand.h:

2014-03-14  Jer Noble  <jer.noble@apple.com>

        [EME] Extend the lifetime of MediaKeySession.
        https://bugs.webkit.org/show_bug.cgi?id=129841

        Reviewed by Eric Carlson.

        Test: media/encrypted-media/encrypted-media-session-lifetime.html

        In anticipation of guidance to be added to the EME Spec <https://www.w3.org/Bugs/Public/show_bug.cgi?id=24771>,
        extend the lifetime of MediaKeySession by making the session an ActiveDOMObject, and returning true to
        hasPendingActivity when the session is both not closed and is associated with a live MediaKeys object.

        Additionally, keep the object from being destroyed while events are pending.

        * Modules/encryptedmedia/MediaKeySession.cpp:
        (WebCore::MediaKeySession::MediaKeySession):
        * Modules/encryptedmedia/MediaKeySession.h:
        * Modules/encryptedmedia/MediaKeySession.idl:

2014-03-14  Ryosuke Niwa  <rniwa@webkit.org>

        Remove an unused function fix builds.

        * platform/mac/HTMLConverter.mm:

2014-03-14  Frédéric Wang  <fred.wang@free.fr>

        FontCache: Replace DEPRECATED_DEFINE_STATIC_LOCAL with static NeverDestroyed<T>.
        https://bugs.webkit.org/show_bug.cgi?id=130233

        Reviewed by Andreas Kling.

        No new tests.

        * platform/graphics/FontCache.cpp:
        (WebCore::fontCache):
        (WebCore::FontVerticalDataCacheKeyTraits::emptyValue):
        (WebCore::fontVerticalDataCacheInstance):
        (WebCore::FontDataCacheKeyTraits::emptyValue):
        * platform/graphics/FontCache.h:

2014-03-11  Oliver Hunt  <oliver@apple.com>

        Improve dom error messages
        https://bugs.webkit.org/show_bug.cgi?id=130103

        Reviewed by Andreas Kling.

        Make the DOM error messages more descriptive, and update bindings tests.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (GenerateParametersCheck):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::jsTestActiveDOMObjectExcitingAttr):
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
        (WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::jsTestEventConstructorAttr1):
        (WebCore::jsTestEventConstructorAttr2):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::jsTestEventTargetPrototypeFunctionItem):
        (WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
        (WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
        * bindings/scripts/test/JS/JSTestException.cpp:
        (WebCore::jsTestExceptionName):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::jsTestInterfaceImplementsStr1):
        (WebCore::jsTestInterfaceImplementsStr2):
        (WebCore::jsTestInterfaceImplementsStr3):
        (WebCore::jsTestInterfaceImplementsNode):
        (WebCore::jsTestInterfaceSupplementalStr1):
        (WebCore::jsTestInterfaceSupplementalStr2):
        (WebCore::jsTestInterfaceSupplementalStr3):
        (WebCore::jsTestInterfaceSupplementalNode):
        (WebCore::setJSTestInterfaceImplementsStr2):
        (WebCore::setJSTestInterfaceImplementsStr3):
        (WebCore::setJSTestInterfaceImplementsNode):
        (WebCore::setJSTestInterfaceSupplementalStr2):
        (WebCore::setJSTestInterfaceSupplementalStr3):
        (WebCore::setJSTestInterfaceSupplementalNode):
        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod1):
        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod3):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod1):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod3):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::JSTestObjConstructor::constructJSTestObj):
        (WebCore::jsTestObjReadOnlyLongAttr):
        (WebCore::jsTestObjReadOnlyStringAttr):
        (WebCore::jsTestObjReadOnlyTestObjAttr):
        (WebCore::jsTestObjConstructorTestSubObj):
        (WebCore::jsTestObjTestSubObjEnabledBySettingConstructor):
        (WebCore::jsTestObjEnumAttr):
        (WebCore::jsTestObjByteAttr):
        (WebCore::jsTestObjOctetAttr):
        (WebCore::jsTestObjShortAttr):
        (WebCore::jsTestObjUnsignedShortAttr):
        (WebCore::jsTestObjLongAttr):
        (WebCore::jsTestObjLongLongAttr):
        (WebCore::jsTestObjUnsignedLongLongAttr):
        (WebCore::jsTestObjStringAttr):
        (WebCore::jsTestObjTestObjAttr):
        (WebCore::jsTestObjXMLObjAttr):
        (WebCore::jsTestObjCreate):
        (WebCore::jsTestObjReflectedStringAttr):
        (WebCore::jsTestObjReflectedIntegralAttr):
        (WebCore::jsTestObjReflectedUnsignedIntegralAttr):
        (WebCore::jsTestObjReflectedBooleanAttr):
        (WebCore::jsTestObjReflectedURLAttr):
        (WebCore::jsTestObjReflectedCustomIntegralAttr):
        (WebCore::jsTestObjReflectedCustomBooleanAttr):
        (WebCore::jsTestObjReflectedCustomURLAttr):
        (WebCore::jsTestObjTypedArrayAttr):
        (WebCore::jsTestObjAttrWithGetterException):
        (WebCore::jsTestObjAttrWithSetterException):
        (WebCore::jsTestObjStringAttrWithGetterException):
        (WebCore::jsTestObjStringAttrWithSetterException):
        (WebCore::jsTestObjCustomAttr):
        (WebCore::jsTestObjWithScriptStateAttribute):
        (WebCore::jsTestObjWithScriptExecutionContextAttribute):
        (WebCore::jsTestObjWithScriptStateAttributeRaises):
        (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttribute):
        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
        (WebCore::jsTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::jsTestObjConditionalAttr1):
        (WebCore::jsTestObjConditionalAttr2):
        (WebCore::jsTestObjConditionalAttr3):
        (WebCore::jsTestObjConditionalAttr4Constructor):
        (WebCore::jsTestObjConditionalAttr5Constructor):
        (WebCore::jsTestObjConditionalAttr6Constructor):
        (WebCore::jsTestObjCachedAttribute1):
        (WebCore::jsTestObjCachedAttribute2):
        (WebCore::jsTestObjAnyAttribute):
        (WebCore::jsTestObjContentDocument):
        (WebCore::jsTestObjMutablePoint):
        (WebCore::jsTestObjImmutablePoint):
        (WebCore::jsTestObjStrawberry):
        (WebCore::jsTestObjStrictFloat):
        (WebCore::jsTestObjDescription):
        (WebCore::jsTestObjId):
        (WebCore::jsTestObjHash):
        (WebCore::jsTestObjReplaceableAttribute):
        (WebCore::jsTestObjNullableDoubleAttribute):
        (WebCore::jsTestObjNullableLongAttribute):
        (WebCore::jsTestObjNullableBooleanAttribute):
        (WebCore::jsTestObjNullableStringAttribute):
        (WebCore::jsTestObjNullableLongSettableAttribute):
        (WebCore::jsTestObjNullableStringValue):
        (WebCore::jsTestObjAttribute):
        (WebCore::jsTestObjAttributeWithReservedEnumType):
        (WebCore::setJSTestObjTestSubObjEnabledBySettingConstructor):
        (WebCore::setJSTestObjEnumAttr):
        (WebCore::setJSTestObjByteAttr):
        (WebCore::setJSTestObjOctetAttr):
        (WebCore::setJSTestObjShortAttr):
        (WebCore::setJSTestObjUnsignedShortAttr):
        (WebCore::setJSTestObjLongAttr):
        (WebCore::setJSTestObjLongLongAttr):
        (WebCore::setJSTestObjUnsignedLongLongAttr):
        (WebCore::setJSTestObjStringAttr):
        (WebCore::setJSTestObjTestObjAttr):
        (WebCore::setJSTestObjXMLObjAttr):
        (WebCore::setJSTestObjCreate):
        (WebCore::setJSTestObjReflectedStringAttr):
        (WebCore::setJSTestObjReflectedIntegralAttr):
        (WebCore::setJSTestObjReflectedUnsignedIntegralAttr):
        (WebCore::setJSTestObjReflectedBooleanAttr):
        (WebCore::setJSTestObjReflectedURLAttr):
        (WebCore::setJSTestObjReflectedCustomIntegralAttr):
        (WebCore::setJSTestObjReflectedCustomBooleanAttr):
        (WebCore::setJSTestObjReflectedCustomURLAttr):
        (WebCore::setJSTestObjTypedArrayAttr):
        (WebCore::setJSTestObjAttrWithGetterException):
        (WebCore::setJSTestObjAttrWithSetterException):
        (WebCore::setJSTestObjStringAttrWithGetterException):
        (WebCore::setJSTestObjStringAttrWithSetterException):
        (WebCore::setJSTestObjCustomAttr):
        (WebCore::setJSTestObjWithScriptStateAttribute):
        (WebCore::setJSTestObjWithScriptExecutionContextAttribute):
        (WebCore::setJSTestObjWithScriptStateAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttribute):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
        (WebCore::setJSTestObjWithScriptExecutionContextAndScriptStateWithSpacesAttribute):
        (WebCore::setJSTestObjWithScriptArgumentsAndCallStackAttribute):
        (WebCore::setJSTestObjConditionalAttr1):
        (WebCore::setJSTestObjConditionalAttr2):
        (WebCore::setJSTestObjConditionalAttr3):
        (WebCore::setJSTestObjConditionalAttr4Constructor):
        (WebCore::setJSTestObjConditionalAttr5Constructor):
        (WebCore::setJSTestObjConditionalAttr6Constructor):
        (WebCore::setJSTestObjAnyAttribute):
        (WebCore::setJSTestObjMutablePoint):
        (WebCore::setJSTestObjImmutablePoint):
        (WebCore::setJSTestObjStrawberry):
        (WebCore::setJSTestObjStrictFloat):
        (WebCore::setJSTestObjId):
        (WebCore::setJSTestObjReplaceableAttribute):
        (WebCore::setJSTestObjNullableLongSettableAttribute):
        (WebCore::setJSTestObjNullableStringValue):
        (WebCore::setJSTestObjAttributeWithReservedEnumType):
        (WebCore::jsTestObjPrototypeFunctionVoidMethod):
        (WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionByteMethod):
        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionOctetMethod):
        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionLongMethod):
        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethod):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
        (WebCore::jsTestObjPrototypeFunctionMethodWithEnumArg):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionSerializedValue):
        (WebCore::jsTestObjPrototypeFunctionOptionsObject):
        (WebCore::jsTestObjPrototypeFunctionMethodWithException):
        (WebCore::jsTestObjPrototypeFunctionCustomMethod):
        (WebCore::jsTestObjPrototypeFunctionCustomMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionAddEventListener):
        (WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoid):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateVoidException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContext):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptState):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
        (WebCore::jsTestObjPrototypeFunctionWithScriptArgumentsAndCallStack):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsUndefined):
        (WebCore::jsTestObjPrototypeFunctionMethodWithOptionalStringIsNullString):
        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionMethodWithCallbackAndOptionalArg):
        (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackAndOptionalArg):
        (WebCore::jsTestObjConstructorFunctionStaticMethodWithCallbackArg):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod2):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod3):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod8):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod9):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod10):
        (WebCore::jsTestObjPrototypeFunctionOverloadedMethod11):
        (WebCore::jsTestObjPrototypeFunctionClassMethodWithClamp):
        (WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongSequence):
        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
        (WebCore::jsTestObjPrototypeFunctionConvert1):
        (WebCore::jsTestObjPrototypeFunctionConvert2):
        (WebCore::jsTestObjPrototypeFunctionConvert4):
        (WebCore::jsTestObjPrototypeFunctionConvert5):
        (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
        (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
        (WebCore::jsTestObjPrototypeFunctionOrange):
        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
        (WebCore::jsTestObjPrototypeFunctionVariadicStringMethod):
        (WebCore::jsTestObjPrototypeFunctionVariadicDoubleMethod):
        (WebCore::jsTestObjPrototypeFunctionVariadicNodeMethod):
        (WebCore::jsTestObjPrototypeFunctionAny):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::jsTestSerializedScriptValueInterfaceValue):
        (WebCore::jsTestSerializedScriptValueInterfaceReadonlyValue):
        (WebCore::jsTestSerializedScriptValueInterfaceCachedValue):
        (WebCore::jsTestSerializedScriptValueInterfacePorts):
        (WebCore::jsTestSerializedScriptValueInterfaceCachedReadonlyValue):
        (WebCore::setJSTestSerializedScriptValueInterfaceValue):
        (WebCore::setJSTestSerializedScriptValueInterfaceCachedValue):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::JSTestTypedefsConstructor::constructJSTestTypedefs):
        (WebCore::jsTestTypedefsUnsignedLongLongAttr):
        (WebCore::jsTestTypedefsImmutableSerializedScriptValue):
        (WebCore::jsTestTypedefsConstructorTestSubObj):
        (WebCore::jsTestTypedefsAttrWithGetterException):
        (WebCore::jsTestTypedefsAttrWithSetterException):
        (WebCore::jsTestTypedefsStringAttrWithGetterException):
        (WebCore::jsTestTypedefsStringAttrWithSetterException):
        (WebCore::setJSTestTypedefsUnsignedLongLongAttr):
        (WebCore::setJSTestTypedefsImmutableSerializedScriptValue):
        (WebCore::setJSTestTypedefsAttrWithGetterException):
        (WebCore::setJSTestTypedefsAttrWithSetterException):
        (WebCore::setJSTestTypedefsStringAttrWithGetterException):
        (WebCore::setJSTestTypedefsStringAttrWithSetterException):
        (WebCore::jsTestTypedefsPrototypeFunctionFunc):
        (WebCore::jsTestTypedefsPrototypeFunctionSetShadow):
        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestTypedefsPrototypeFunctionNullableArrayArg):
        (WebCore::jsTestTypedefsPrototypeFunctionFuncWithClamp):
        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithException):
        * bindings/scripts/test/JS/JSattribute.cpp:
        (WebCore::jsattributeReadonly):

2014-03-14  Bear Travis  <betravis@adobe.com>

        [CSS Shapes] polygon default fill-rule should be omitted from the serialization
        https://bugs.webkit.org/show_bug.cgi?id=129840

        Reviewed by Dirk Schulze.

        Modifying the default polygon string opening to be "polygon(" rather than
        "polygon(nonzero".

        Updated existing parsing tests.

        * css/CSSBasicShapes.cpp:
        (WebCore::buildPolygonString):

2014-03-14  Brent Fulgham  <bfulgham@apple.com>

        Crash when using a mixture of In-Band and Out-of-Band Tracks
        https://bugs.webkit.org/show_bug.cgi?id=130247

        Reviewed by Eric Carlson.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::processNewAndRemovedTextTracks): Do not include
        the new Out-of-Band placeholder tracks in our counts of in-band tracks.

2014-03-13  Ryosuke Niwa  <rniwa@webkit.org>

        [Mac] Avoid creating DOMCSSStyleDeclaration in WebHTMLConverter
        https://bugs.webkit.org/show_bug.cgi?id=130226

        Reviewed by Andreas Kling.

        Extracted HTMLConverterCaches in C++ that directly calls getPropertyCSSValue on computed style
        and inline style to avoid creating Objective-C wrappers for CSSComputedStyleDeclaration.

        This improves the runtime of PerformanceTests/Interactive/CopyAll.html from 31-32s to 25-26s (20%).

        * platform/mac/HTMLConverter.h:
        * platform/mac/HTMLConverter.mm:
        (HTMLConverterCaches::computedStylePropertyForElement):
        (HTMLConverterCaches::inlineStylePropertyForElement):
        (stringFromCSSValue):
        (-[WebHTMLConverter _computedStringForNode:property:]):
        (floatValueFromPrimitiveValue):
        (_getFloat):
        (-[WebHTMLConverter _getComputedFloat:forNode:property:]):
        (-[WebHTMLConverter _computedColorForNode:property:]):
        (-[WebHTMLConverter dealloc]):
        (-[WebHTMLConverter init]):

2014-03-14  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: Include Role as an extra attribute in the page overlay.
        https://bugs.webkit.org/show_bug.cgi?id=130214

        Reviewed by Timothy Hatcher.

        Adding Role to the Web Inspector element overlay.

        * inspector/InspectorOverlay.cpp:
        (WebCore::buildObjectForElementInfo):
        * inspector/InspectorOverlayPage.js:
        (_createElementTitle):

2014-03-14  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: Expose Accessibility Tree parent of the selected node
        https://bugs.webkit.org/show_bug.cgi?id=129943

        Reviewed by Timothy Hatcher.

        Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        Web Accessibility Node Inspector now displays a link to the AX parent node,
        because it's not a 1:1 match with the DOMNode parent.

        * inspector/InspectorDOMAgent.cpp: Support for DOMNode.role and AccessibilityProperties.axParentNodeId.
        (WebCore::InspectorDOMAgent::buildObjectForNode): Support for role.
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties): Support for axParentNodeId.
        * inspector/protocol/DOM.json: Added axParentNodeId on AccessibilityProperties, and role on DOMNode.

2014-03-14  Andreas Kling  <akling@apple.com>

        [Mac] Remove NSURLCache logic from WebCore pressure relief code.
        <https://webkit.org/b/130248>

        The NSURLCache lives in the networking process and should be cleared
        on that end. Furthermore, this code doesn't really do what we thought
        it was doing; it merely sets and and resets the limits. No truncation
        ever occurred. The intended functionality was implemented in r165342.

        Reviewed by Anders Carlsson.

        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::releaseMemory):

2014-03-14  Andreas Kling  <akling@apple.com>

        Simplify jettisoning of style resolvers on memory pressure.
        <https://webkit.org/b/129644>

        Now that we have Document::allDocuments(), we can jettison all the
        style resolvers by walking the set of live documents and calling
        clearStyleResolver() on each one, instead of having a function on
        Page that walks the frame tree of every living page, etc.

        Reviewed by Antti Koivisto.

        * page/Page.cpp:
        * page/Page.h:
        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::releaseMemory):

2014-03-07  Jer Noble  <jer.noble@apple.com>

        Add Remote Control command support to HTLMediaElement
        https://bugs.webkit.org/show_bug.cgi?id=129926

        Reviewed by Eric Carlson.

        Support the new MediaSession remote control commands by pulling in code from
        MediaControlElementTypes to control scanning.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement):
        * html/HTMLMediaElement.h:
        * html/MediaController.cpp:
        (MediaController::beginScanning): Moved from MediaControlElementTypes.
        (MediaController::endScanning): Ditto.
        * html/MediaController.h:
        * html/MediaControllerInterface.h:

        Remove all the scanning code from MediaControlSeekButtonElement.
        * html/shadow/MediaControlElementTypes.cpp:
        (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
        (WebCore::MediaControlSeekButtonElement::setActive):
        * html/shadow/MediaControlElementTypes.h:

2014-03-14  Krzysztof Czech  <k.czech@samsung.com>

        Move WebSpeech code to use std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=130231

        Reviewed by Anders Carlsson.

        Replace uses of OwnPtr and PassOwnPtr in WebSpeech code with std::unique_ptr.

        No new tests. Covered by existing ones.

        * Modules/speech/SpeechRecognitionController.cpp:
        * Modules/speech/SpeechRecognitionController.h:
        * Modules/speech/SpeechSynthesis.cpp:
        (WebCore::SpeechSynthesis::setPlatformSynthesizer):
        (WebCore::SpeechSynthesis::getVoices):
        (WebCore::SpeechSynthesis::startSpeakingImmediately):
        * Modules/speech/SpeechSynthesis.h:
        * WebCore.exp.in:
        * platform/PlatformSpeechSynthesizer.cpp:
        * platform/PlatformSpeechSynthesizer.h:
        * platform/mock/PlatformSpeechSynthesizerMock.cpp:
        * platform/mock/PlatformSpeechSynthesizerMock.h:
        * testing/Internals.cpp:
        (WebCore::Internals::enableMockSpeechSynthesizer):

2014-03-13  Anders Carlsson  <andersca@apple.com>

        Move visited link handling to VisitedLinkTableController and VisitedLinkProvider
        https://bugs.webkit.org/show_bug.cgi?id=130223
        <rdar://problem/16315792>

        Reviewed by Dan Bernstein.

        Export symbols needed by WebKit2.

        * WebCore.exp.in:

2014-03-12  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Fix unused parameter warnings in the GObject WebKitDOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=130174

        Reviewed by Daniel Bates.

        * bindings/gobject/DOMObjectCache.cpp:
        (WebKit::weakRefNotify): Fix unused parameters.
        * bindings/gobject/WebKitDOMDeprecated.cpp: Ditto.
        * bindings/gobject/WebKitDOMObject.cpp: Ditto.
        * bindings/scripts/CodeGeneratorGObject.pm: Generate UNUSED_PARAM when appropriate and clean
        up the getter and setter code generation a little to make it easier to read.

2014-03-14  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        Build fix with SUBPIXEL_LAYOUT disabled
        https://bugs.webkit.org/show_bug.cgi?id=130210

        Reviewed by Daniel Bates.

        Use pre-incremeent operator for LayoutUnit instead of post-increment operator as LayoutUnit doesn't support the
        latter and we don't make use of the return value.

        * dom/Element.cpp:
        (WebCore::adjustForLocalZoom):

2014-03-14  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Inline-block child of content node incorrectly clipped
        https://bugs.webkit.org/show_bug.cgi?id=130229

        Reviewed by Andrei Bucur.

        Constrain the target box rect to the region box rect only if we are able
        to determine the region range for box. If we cannot do that, getRegionRangeForBox
        returns null values for start and end region and we should not perform the clamping.

        Test: fast/regions/inlineblock-child-inlineblock-contentnode-in-region.html

        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::rectFlowPortionForBox):

2014-03-14  Zan Dobersek  <zdobersek@igalia.com>

        Unnecessary ImplementationLacksVTable IDL attribute used for RTCConfiguration, RTCIceServer
        https://bugs.webkit.org/show_bug.cgi?id=130230

        Reviewed by Philippe Normand.

        The RTCConfiguration and RTCIceServer classes do not own virtual tables, so using the
        ImplementationLacksVTable attribute in the IDL interface leads to a compile-time assertion
        failure in the generates JSC wrappers because none of the classes is polymorphic.

        * Modules/mediastream/RTCConfiguration.idl:
        * Modules/mediastream/RTCIceServer.idl:

2014-03-14  Javier Fernandez  <jfernandez@igalia.com>

        [CSS Grid Layout] the "grid-template-areas" is not identified as computable property.
        https://bugs.webkit.org/show_bug.cgi?id=130073

        Reviewed by Sergio Villar Senin.

        The "grid-template-areas" property is a computable CSS property, so it should be
        handled accordingly by the Web Inspector.

        No new tests.

        * css/CSSComputedStyleDeclaration.cpp:
        CSSPropertyWebkitGridTemplateAreas added to the computedProperties array.

2014-03-14  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid layout] Initial position in span not correctly computed sometimes
        https://bugs.webkit.org/show_bug.cgi?id=130124

        Reviewed by Darin Adler.

        The code uses std::lower_bound() to get the first grid line
        position before a given resolved position in a Vector. That
        function returns an iterator pointing to the first value not
        "strictly less" than the given one. Consequently, the returned
        position might be actually located after the resolved final
        position. In those cases we need to select the previous position
        in the Vector (which is guaranted to be "< resolved position" due
        to how std::lower_bound() works).

        For example, if we have vector=[2,5,8] as grid positions, and we
        need the first position before 7, std::lower_bound(vector, 7) will
        point to 8 (first value not < 7). It's obvious that we should
        select 5 instead. Should the pointed value be equal, then we
        should do nothing, because the indexes mean tracks, so the item
        will be placed in just one cell of the grid.

        * rendering/RenderGrid.cpp:
        (WebCore::firstNamedGridLineBeforePosition):
        (WebCore::RenderGrid::resolveRowStartColumnStartNamedGridLinePositionAgainstOppositePosition):

2014-03-14  Zsolt Borbely  <borbezs@inf.u-szeged.hu>

        Fix the !ENABLE(SVG_FONTS) build
        https://bugs.webkit.org/show_bug.cgi?id=130193

        Reviewed by Dirk Schulze.

        Add missing ENABLE(SVG_FONTS) guards for createGlyphToPathTranslator() function
        in SVGTextRunRenderingContext.h and TextRun.h, because when the SVG_FONTS are
        disabled the function is not implemented.

        * platform/graphics/TextRun.h:
        * rendering/svg/SVGTextRunRenderingContext.h:

2014-03-14  Sergio Villar Senin  <svillar@igalia.com>

        Unreviewed build fix after r165607. There were two missing replaces.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        * dom/Element.cpp:
        (WebCore::attrNodeListMap):

2014-03-14  Frédéric Wang  <fred.wang@free.fr>

        Migrate the MathML stretchy code from UChar to Glyph.
        https://bugs.webkit.org/show_bug.cgi?id=128907

        Reviewed by Chris Fleizach.

        This prepares the MathML stretchy code for future support for the MATH
        table. In particular, this uses the glyph index for measuring and
        drawing instead of Unicode code point since the MATH table uses glyph
        indices. Also, this merges the preferred width and stretchy character
        selection into one common path since they will also have to share the
        size variants measuring/selection. Finally, we expose a drawGlyphs()
        method so that we can draw a glyph by index.

        No new tests. This should not change the behavior of the stretchy code.

        * platform/graphics/Font.h:
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawGlyphs):
        * platform/graphics/GraphicsContext.h:
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::boundsForGlyph):
        (WebCore::RenderMathMLOperator::heightForGlyph):
        (WebCore::RenderMathMLOperator::advanceForGlyph):
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
        (WebCore::RenderMathMLOperator::findStretchyData):
        (WebCore::RenderMathMLOperator::updateStyle):
        (WebCore::RenderMathMLOperator::firstLineBaseline):
        (WebCore::RenderMathMLOperator::computeLogicalHeight):
        (WebCore::RenderMathMLOperator::paintGlyph):
        (WebCore::RenderMathMLOperator::fillWithExtensionGlyph):
        (WebCore::RenderMathMLOperator::paint):
        (WebCore::RenderMathMLOperator::paintChildren):
        * rendering/mathml/RenderMathMLOperator.h:

2014-03-12  Sergio Villar Senin  <svillar@igalia.com>

        Rename DEFINE_STATIC_LOCAL to DEPRECATED_DEFINE_STATIC_LOCAL
        https://bugs.webkit.org/show_bug.cgi?id=129612

        Reviewed by Darin Adler.

        For new code use static NeverDestroyed<T> instead.

        Removed the list of changed files as it was huge.

2014-03-14  Gavin Barraclough  <barraclough@apple.com>

        Reduce memory use for static property maps
        https://bugs.webkit.org/show_bug.cgi?id=129986

        Unreviewed Windows build fix / update bindings test results following r165603.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateHashTable):
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::jsTestEventTargetPrototypeFunctionItem):
        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
        * bindings/scripts/test/JS/JSTestException.cpp:
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        * bindings/scripts/test/JS/JSTestNode.cpp:
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjAttrWithGetterException):
        (WebCore::jsTestObjStringAttrWithGetterException):
        (WebCore::jsTestObjWithScriptStateAttributeRaises):
        (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
        (WebCore::jsTestObjNullableStringValue):
        (WebCore::jsTestObjPrototypeFunctionByteMethod):
        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionOctetMethod):
        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionLongMethod):
        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethod):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
        (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
        (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::jsTestTypedefsAttrWithGetterException):
        (WebCore::jsTestTypedefsStringAttrWithGetterException):
        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):
        * bindings/scripts/test/JS/JSattribute.cpp:
        * bindings/scripts/test/JS/JSreadonly.cpp:

2014-03-14  Jinwoo Song  <jinwoo7.song@samsung.com>

        Use override keyword in BatteryManager
        https://bugs.webkit.org/show_bug.cgi?id=130225

        Reviewed by Daniel Bates.

        * Modules/battery/BatteryManager.h:

2014-03-12  Gavin Barraclough  <barraclough@apple.com>

        Reduce memory use for static property maps
        https://bugs.webkit.org/show_bug.cgi?id=129986

        Reviewed by Andreas Kling.

        Static property tables are currently duplicated on first use from read-only memory into dirty memory
        in every process, and since the entries are large (48 bytes) and the tables can be unusually sparse
        (we use a custom hash table without a rehash) a lot of memory may be wasted.

        * bindings/js/JSDOMBinding.h:
        (WebCore::getStaticValueSlotEntryWithoutCaching):
        (WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMWrapper>):
            - HashEntry -> HashTableValue.
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::getOwnPropertySlot):
            - HashEntry -> HashTableValue.
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::getOwnPropertySlotDelegate):
            - HashEntry -> HashTableValue.
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getOwnPropertySlotDelegate):
        (WebCore::JSLocation::putDelegate):
            - HashEntry -> HashTableValue.
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
            - HashEntry -> HashTableValue.
        (GenerateHashTable):
            - emit the hash table index into the derived source (we were calculating this already to ensure chaining does not get too deep).

2014-03-13  Manish R Gurnaney  <m.gurnaney@samsung.com>

        Scroll size is not recalculated when absolute left of child is updated
        https://bugs.webkit.org/show_bug.cgi?id=123958

        Reviewed by Simon Fraser.

        Test: fast/css/display-inline-block-scrollbar.html
        Actual issue was that whenever there is the content change in the
        RenderBlock having inline-block children, The InlineFlowBox while
        computing overflow never resets previous value.
        
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::computeOverflow):
        Added code to clear overflow when we start computing overflow for
        InlineFlowBox. So as to ScrollSize can be recalculated properly.

2014-03-13  Zalan Bujtas  <zalan@apple.com>

        Pass const RenderStyle& to box decoration functions.
        https://bugs.webkit.org/show_bug.cgi?id=130201

        Reviewed by Andreas Goran Kling.

        No change in functionality.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::paintBoxShadow):
        (WebCore::InlineFlowBox::paintBoxDecorations):
        (WebCore::InlineFlowBox::paintMask):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations):
        (WebCore::RenderBox::paintMaskImages):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintNinePieceImage):
        (WebCore::RenderBoxModelObject::paintOneBorderSide):
        (WebCore::RenderBoxModelObject::paintBorderSides):
        (WebCore::RenderBoxModelObject::paintTranslucentBorderSides):
        (WebCore::RenderBoxModelObject::paintBorder):
        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
        (WebCore::RenderBoxModelObject::getBorderEdgeInfo):
        (WebCore::RenderBoxModelObject::borderObscuresBackgroundEdge):
        (WebCore::RenderBoxModelObject::borderObscuresBackground):
        (WebCore::RenderBoxModelObject::paintBoxShadow):
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::paintBoxDecorations):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::paintBoxDecorations):
        * rendering/RenderTableCell.cpp:
        (WebCore::RenderTableCell::paintBoxDecorations):

2014-03-13  Jinwoo Jeong  <jw00.jeong@samsung.com>

        Refactor Vibration algorithm to use only one timer.
        https://bugs.webkit.org/show_bug.cgi?id=130059

        Reviewed by Darin Adler.

        Currently Vibration is using two timers,
        one is to start a vibration and another is to check termination of a vibration.
        But they do not work in same time, if one of them is fired, then anothor will start.
        Thus this patch removes one of them, and manages vibration states by enumeration.

        Also, this patch implement the missing part of the algorithm,
        which check the maximum length of the vibration pattern and the maximum duration of the vibration.

        Lastly, this patch removes unused methods from Vibration.

        * Modules/vibration/Vibration.cpp:
        (WebCore::Vibration::Vibration):
        (WebCore::Vibration::vibrate):
        (WebCore::Vibration::cancelVibration):
        Removed stopVibration() and its contents moved to cancelVibration().
        (WebCore::Vibration::timerFired): Combined timerStartFired() and timerStopFired().
        Removed suspendVibration() and resumeVibration(), which is never called since r.
        * Modules/vibration/Vibration.h: Added new enumertaion to specify states of Vibration.
        (WebCore::Vibration::isVibrating):

2014-03-13  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: Use loc strings for known aria-invalid types
        https://bugs.webkit.org/show_bug.cgi?id=129952

        Reviewed by Joseph Pecoraro.

        Updating inspector-protocol enum and UI display values for @aria-invalid.

        Test: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        * inspector/InspectorDOMAgent.cpp: Enum for DOM.AccessibilityPropertiesInvalid
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/protocol/DOM.json: Enum for DOM.AccessibilityPropertiesInvalid

2014-03-13  Dirk Schulze  <krit@webkit.org>

        [SVG2] support paint-order presentation attribute
        https://bugs.webkit.org/show_bug.cgi?id=129373

        Reviewed by Dean Jackson.

        Add support for the paint-order property from SVG2. The presentation
        attribute/CSS property allows to paint fill, stroke and markers in any order
        the author desires.

        Firefox supports this but behind a runtime flag. It is just activated in
        nightly builds by default.

        Chromium supports it behind a runtime flag as well but is going to ship it
        pretty soon.

        Tests: svg/paint-order/paint-order-fill-expected.svg
               svg/paint-order/paint-order-fill-markers-expected.svg
               svg/paint-order/paint-order-fill-markers.svg
               svg/paint-order/paint-order-fill.svg
               svg/paint-order/paint-order-markers-expected.svg
               svg/paint-order/paint-order-markers-stroke-expected.svg
               svg/paint-order/paint-order-markers-stroke.svg
               svg/paint-order/paint-order-markers.svg
               svg/paint-order/paint-order-normal-expected.svg
               svg/paint-order/paint-order-normal.svg
               svg/paint-order/paint-order-stroke-expected.svg
               svg/paint-order/paint-order-stroke-marker-expected.svg
               svg/paint-order/paint-order-stroke-marker.svg
               svg/paint-order/paint-order-stroke.svg
               svg/paint-order/paint-order-text-markers-expected.svg
               svg/paint-order/paint-order-text-markers.svg
               svg/paint-order/paint-order-text-normal-expected.svg
               svg/paint-order/paint-order-text-normal.svg
               svg/paint-order/paint-order-text-stroke-expected.svg
               svg/paint-order/paint-order-text-stroke.svg
               svg/paint-order/paint-order-text-tspan-001-expected.svg
               svg/paint-order/paint-order-text-tspan-001.svg
               svg/paint-order/paint-order-text-tspan-002-expected.svg
               svg/paint-order/paint-order-text-tspan-002.svg
               svg/paint-order/parsing-paint-order.html

        * css/CSSComputedStyleDeclaration.cpp: Computed style for paint-order.
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.h:
        * css/CSSPropertyNames.in:
        * css/CSSValueKeywords.in:
        * css/SVGCSSComputedStyleDeclaration.cpp:
        (WebCore::paintOrder):
        (WebCore::ComputedStyleExtractor::svgPropertyValue):
        * css/SVGCSSParser.cpp: Parse paint-order. Take care of serialization
            at this point already to get element style correct.
        (WebCore::CSSParser::parseSVGValue):
        (WebCore::CSSParser::parsePaintOrder):
        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):
        * rendering/style/SVGRenderStyle.cpp:
        (WebCore::SVGRenderStyle::paintTypesForPaintOrder):
        (WebCore::SVGRenderStyle::diff): Repaint on change.
        * rendering/style/SVGRenderStyle.h:
        (WebCore::SVGRenderStyle::initialPaintOrder):
        (WebCore::SVGRenderStyle::setPaintOrder):
        (WebCore::SVGRenderStyle::paintOrder):
        (WebCore::SVGRenderStyle::InheritedFlags::operator==):
        (WebCore::SVGRenderStyle::setBitDefaults):
        * rendering/style/SVGRenderStyleDefs.h:
        * rendering/svg/RenderSVGShape.cpp: Change order of painting based on paint-order.
        (WebCore::RenderSVGShape::strokeShape):
        (WebCore::RenderSVGShape::fillStrokeMarkers):
        (WebCore::RenderSVGShape::paint):
        (WebCore::RenderSVGShape::addFocusRingRects):
        * rendering/svg/RenderSVGShape.h:
        * rendering/svg/SVGInlineTextBox.cpp:
        (WebCore::SVGInlineTextBox::paint): Ditto.
        * svg/SVGElement.cpp: Make property a presentation attribute.
        (WebCore::populateAttributeNameToCSSPropertyIDMap):
        (WebCore::populateAttributeNameToAnimatedPropertyTypeMap):
        * svg/svgattrs.in: Add paint-order attribute.

2014-03-13  Andreas Kling  <akling@apple.com>

        Network process instantiates JSC::VM under fake memory pressure.
        <https://webkit.org/b/130143>

        Stop calling GCController::garbageCollectSoon() in the fake memory
        pressure callback. The pressure relief code already schedules GC
        by way of discardAllCode() which does reportAbandonedObjectGraph().
        This way we don't accidentally instantiate a VM in the networking
        process for no reason.

        Reviewed by Geoffrey Garen.

        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::install):

2014-03-13  Diego Pino Garcia  <dpino@igalia.com>

        Web Inspector: AXI: Expose focused/focusable state in the Accessibility Node Inspector
        https://bugs.webkit.org/show_bug.cgi?id=129779

        Reviewed by Timothy Hatcher.

        * inspector/InspectorDOMAgent.cpp: Set property "focused".
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/protocol/DOM.json: Add property "focused" to
        AccessibilityProperties.

2014-03-12  Jae Hyun Park  <jaepark@webkit.org>

        Remove remaining Nix port related files
        https://bugs.webkit.org/show_bug.cgi?id=130179

        Reviewed by Csaba Osztrogonác.

        GLContextFromCurrentEGL was added in r155360 as a part of nix
        upstreaming. As Nix port is removed from the source tree, these files
        are in no use.

        * platform/graphics/egl/GLContextFromCurrentEGL.cpp: Removed.
        * platform/graphics/egl/GLContextFromCurrentEGL.h: Removed.

2014-03-13  Daniel Bates  <dabates@apple.com>

        REGRESSION (r160806): Incorrect cascade order of prefixed and non-prefixed variants of
        CSS properties box-shadow and background-{clip, origin, size}
        https://bugs.webkit.org/show_bug.cgi?id=130102
        <rdar://problem/16187037>

        Reviewed by Andreas Kling.

        Fixes an issues in the computation of the final value for the CSS properties
        box-shadow and background-{clip, origin, size} when the definition of a selector
        uses both the prefixed and non-prefixed variants (in order) of these properties.

        Tests: fast/css/cascade/background-clip-and-webkit-background-clip-cascade-order.html
               fast/css/cascade/background-origin-and-webkit-background-origin-cascade-order.html
               fast/css/cascade/background-size-and-webkit-background-size-cascade-order.html
               fast/css/cascade/box-shadow-and-webkit-box-shadow-cascade-order.html

        * css/CSSPropertyNames.in: Add a comment to explain the difference between property
        -webkit-box-shadow and property box-shadow.
        * css/StyleResolver.cpp:
        (WebCore::shouldApplyPropertyInParseOrder): Add prefixed and non-prefixed variants
        of box-shadow and background-{clip, origin, size} to the list of properties that need
        to be applied in the same order as they were parsed from the stylesheet.

2014-03-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remove InspectorFrontendHost.loadResourceSynchronously
        https://bugs.webkit.org/show_bug.cgi?id=130217

        Reviewed by Timothy Hatcher.

        This has been replaced by NetworkAgent.loadResource,
        which loads asynchronously through the backend.

        * inspector/InspectorFrontendHost.cpp:
        * inspector/InspectorFrontendHost.h:
        * inspector/InspectorFrontendHost.idl:

2014-03-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Network.loadResource should include the response status code
        https://bugs.webkit.org/show_bug.cgi?id=130216

        Reviewed by Timothy Hatcher.

        * inspector/InspectorResourceAgent.cpp:
        Record and send the http status code.

        * inspector/protocol/Network.json:
        Include status code property in the success callback.

2014-03-13  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Network.loadResource XHR crash if page reloaded while request is ongoing
        https://bugs.webkit.org/show_bug.cgi?id=130211

        Reviewed by Timothy Hatcher.

        Merged from Blink with changes, (patch by vsevik@chromium.org):
        http://src.chromium.org/viewvc/blink?view=revision&revision=152712

        Using an XMLHttpRequest to download resources had a few issues. Being an
        Active DOM Object the load could be paused. Without an extra retain,
        when the load was cancelled (e.g. a page reload) the XHR would get
        destructed and could cause a crash if the list of active DOM objects
        was actively being iterated.

        Switch to a DocumentThreadableLoader to manage the load ourselves.
        This still uses the Memory cache, but we have a little more control.

        * inspector/InspectorResourceAgent.h:
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::InspectorResourceAgent):
        (WebCore::InspectorResourceAgent::loadResource):
        Switch from XHR to DocumentThreadableLoader.

        * xml/XMLHttpRequest.h:
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::XMLHttpRequest):
        (WebCore::XMLHttpRequest::createRequest):
        (WebCore::XMLHttpRequest::sendForInspector):
        Remove the now unnecessary XHR sendForInspector path.

2014-03-13  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165540.
        https://bugs.webkit.org/show_bug.cgi?id=130199

        caused 1 hidpi test fail (Requested by zalan on #webkit).

        Reverted changeset:

        "Subpixel rendering: Nested layers with subpixel accumulation
        paint to wrong position."
        https://bugs.webkit.org/show_bug.cgi?id=130153
        http://trac.webkit.org/changeset/165540

2014-03-13  Benjamin Poulain  <bpoulain@apple.com>

        Fix a bunch of mistakes in the parsing of ::cue( and ::cue
        https://bugs.webkit.org/show_bug.cgi?id=130113

        Reviewed by Andreas Kling.

        * css/CSSGrammar.y.in:
        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::setPseudoTypeValue):
        The ::cue() pseudo element "function" was passed as a PseudoClass.
        The type was then parsed and considered as a compatibility type to flip
        the match type back to PseudoElement.

        Instead of all that jazz, just pass the right type from the grammar.

        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::parsePseudoType):
        The non-function ::cue pseudo element use shadow pseudo ID for matching the element.
        Since it is unprefixed, it needs to map to one of the Custom types. The previous code
        was using String::startsWith() for some reason, change that to a simple equality.

2014-03-13  Benjamin Poulain  <benjamin@webkit.org>

        Clean up RenderStyle creation
        https://bugs.webkit.org/show_bug.cgi?id=130180

        Reviewed by Andreas Kling.

        Use the copy constructor with the default style instead of having a special
        constructor for that.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::create):
        (WebCore::RenderStyle::RenderStyle):
        * rendering/style/RenderStyle.h:

2014-03-13  Benjamin Poulain  <bpoulain@apple.com>

        The viewport code should not depend on WebKitSystemInterface
        https://bugs.webkit.org/show_bug.cgi?id=130218

        Reviewed by Tim Horton.

        The viewport code cannot be generalized to other ports because it relies
        on WebKit system interface to get the device screen size.
        This patch fixes that by going through ChromeClient to get the data.

        * dom/Document.cpp:
        (WebCore::Document::processViewport):
        Get the screensize from chrome client.

        * dom/ViewportArguments.cpp:
        (WebCore::computeViewportAttributes):
        This is dead code. Nothing should ever use computeViewportAttributes().

        (WebCore::finalizeViewportArguments):
        * dom/ViewportArguments.h:
        * page/ChromeClient.h:
        (WebCore::ChromeClient::viewportScreenSize):

2014-03-07  Jer Noble  <jer.noble@apple.com>

        Add remote control command support to MediaSession.
        https://bugs.webkit.org/show_bug.cgi?id=129903

        Reviewed by Eric Carlson.

        Add the capability to receive remote control commands (currently iOS only) and to
        pass those commands through the MediaSessionManager.

        Add a new platform class which can listen for remote control commands:
        * platform/RemoteCommandListener.cpp: Added.
        (WebCore::RemoteCommandListener::create):
        * platform/RemoteCommandListener.h: Added.
        (WebCore::RemoteCommandListenerClient::~RemoteCommandListenerClient):
        (WebCore::RemoteCommandListener::~RemoteCommandListener):
        (WebCore::RemoteCommandListener::RemoteCommandListener):
        * platform/ios/RemoteCommandListenerIOS.h: Added.
        * platform/ios/RemoteCommandListenerIOS.mm: Added.
        (WebCore::RemoteCommandListener::create):
        (WebCore::RemoteCommandListenerIOS::RemoteCommandListenerIOS):
        (WebCore::RemoteCommandListenerIOS::~RemoteCommandListenerIOS):

        Handle remote control command events in HTMLMediaElement and AudioDestinationMac:
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * html/HTMLMediaElement.h:
        * platform/audio/mac/AudioDestinationMac.h:
        (WebCore::AudioDestinationMac::canReceiveRemoteControlCommands):
        (WebCore::AudioDestinationMac::didReceiveRemoteControlCommand):

        Pipe command events through MediaSessionManager:
        * platform/audio/MediaSession.cpp:
        (WebCore::MediaSession::canReceiveRemoteControlCommands):
        (WebCore::MediaSession::didReceivRemoteControlCommand):
        * platform/audio/MediaSession.h:
        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::addSession):
        (WebCore::MediaSessionManager::removeSession):
        (WebCore::MediaSessionManager::sessionWillBeginPlayback):
        (WebCore::MediaSessionManager::didReceiveRemoteControlCommand):
        (WebCore::MediaSessionManager::addClient):
        (WebCore::MediaSessionManager::removeClient):
        * platform/audio/MediaSessionManager.h:
        (WebCore::MediaSessionManagerClient::~MediaSessionManagerClient):
        (WebCore::MediaSessionManagerClient::MediaSessionManagerClient):

        Make sessionWillBegin/EndPlayback() methods take non-const parameters:
        * platform/audio/MediaSessionManager.h:
        (WebCore::MediaSessionManager::sessionWillEndPlayback):
        * platform/audio/ios/MediaSessionManagerIOS.h:
        * platform/audio/ios/MediaSessionManagerIOS.mm:
        (WebCore::MediaSessionManagerIOS::sessionWillBeginPlayaback):
        (WebCore::MediaSessionManagerIOS::sessionWillEndPlayaback):

        Add new files and export new symbols:
        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:

2014-03-13  Csaba Osztrogonác  <ossy@webkit.org>

        Unreviewed, rolling out r165544 and r165560.

        It broke EFL/GTK/Windows build

        Reverted changesets:

        "Optimize hasTagName when called on an HTMLElement"
        https://bugs.webkit.org/show_bug.cgi?id=130090
        http://trac.webkit.org/changeset/165544

        http://trac.webkit.org/changeset/165560

2014-03-13  Antti Koivisto  <antti@apple.com>

        Try to stop asserts in debug build.

        * dom/Node.cpp:
        (WebCore::Document::invalidateNodeListAndCollectionCaches):

2014-03-13  Benjamin Poulain  <bpoulain@apple.com>

        Update the build fix for r165544

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        Fix typo :(

2014-03-13  Benjamin Poulain  <bpoulain@apple.com>

        Update the build fix for r165544

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper isSVGGroupElement]):
        Use the SVG version since the name being tested is a SVG name.

2014-03-13  Benjamin Poulain  <bpoulain@apple.com>

        Attempt to fix the build after r165542

        * dom/NodeRenderStyle.h:

2014-03-13  Benjamin Poulain  <bpoulain@apple.com>

        Update WebAccessibilityObjectWrapperIOS after r165544

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper isSVGGroupElement]):

2014-03-13  Antti Koivisto  <antti@apple.com>

        REGRESSION(r165542): printing/page-rule-selection.html failing
        https://bugs.webkit.org/show_bug.cgi?id=130205

        Reviewed by Andreas Kling.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::keyframeStylesForAnimation):
        (WebCore::StyleResolver::styleForPage):
        
            Use Document style as parent when resolving page style.

        (WebCore::StyleResolver::applyPropertyToStyle):
        * css/StyleResolver.h:
        
            Get rid of the default null parameter.

2014-03-13  Benjamin Poulain  <bpoulain@apple.com>

        Remove INPUT_LIST_BUTTON from the PseudoIds
        https://bugs.webkit.org/show_bug.cgi?id=130108

        Reviewed by Andreas Kling.

        * rendering/style/RenderStyleConstants.h:
        It is unused.

2014-03-12  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Sync media playback with now playing
        https://bugs.webkit.org/show_bug.cgi?id=130172

        Reviewed by Jer Noble.
        
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::play): Move clientWillBeginPlayback to
            playInternal so it is called every time playback begins.
        (WebCore::HTMLMediaElement::playInternal): Call clientWillBeginPlayback.
        (WebCore::HTMLMediaElement::pause): Move clientWillPausePlayback to
            playInternal so it is called every time playback begins.
        (WebCore::HTMLMediaElement::playInternal): Call clientWillPausePlayback.
        (WebCore::HTMLMediaElement::mediaSessionTitle): New. Return the 'title' attribute,
            or currenSrc if that is empty.
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::mediaSessionDuration): Return duration.
        (WebCore::HTMLMediaElement::mediaSessionCurrentTime): Return current time.

        * platform/audio/MediaSession.cpp:
        (WebCore::MediaSession::clientWillPausePlayback): New, passthrough to the
            media element.
        (WebCore::MediaSession::title): Ditto.
        (WebCore::MediaSession::duration): Ditto.
        (WebCore::MediaSession::currentTime): Ditto.
        * platform/audio/MediaSession.h:
        (WebCore::MediaSessionClient::mediaSessionTitle):
        (WebCore::MediaSessionClient::mediaSessionDuration):
        (WebCore::MediaSessionClient::mediaSessionCurrentTime):

        * platform/audio/MediaSessionManager.cpp:
        (WebCore::MediaSessionManager::MediaSessionManager): Initialize m_activeSession.
        (WebCore::MediaSessionManager::removeSession): Set m_activeSession if the session
            being removed is currently active.
        (WebCore::MediaSessionManager::sessionWillBeginPlayback): Set m_activeSession.
        * platform/audio/MediaSessionManager.h:
        (WebCore::MediaSessionManager::sessionWillEndPlayback):
        (WebCore::MediaSessionManager::setCurrentSession):
        (WebCore::MediaSessionManager::currentSession):

        * platform/audio/ios/MediaSessionManagerIOS.h:
        * platform/audio/ios/MediaSessionManagerIOS.mm:
        (WebCore::MediaSessionManageriOS::sessionWillBeginPlayback): Call updateNowPlayingInfo. 
        (WebCore::MediaSessionManageriOS::sessionWillEndPlayback): Ditto.
        (WebCore::MediaSessionManageriOS::updateNowPlayingInfo): Update MPNowPlayingInfoCenter
            with the current media item's title, duration, and current time.
        (-[WebMediaSessionHelper initWithCallback:]): Turn on deliver of remote control
            events, even though we don't respond to them yet, or Now Playing won't work.

2014-03-13  Radu Stavila  <stavila@adobe.com>

        Webkit not building on XCode 5.1 due to garbage collection no longer being supported
        https://bugs.webkit.org/show_bug.cgi?id=130087

        Reviewed by Mark Rowe.

        Disable garbage collection on macosx when not using internal SDK.

        No new tests required.

        * Configurations/Base.xcconfig:

2014-03-13  Andreas Kling  <akling@apple.com>

        Don't send synchronous resize events when FrameView has auto-sizing enabled.
        <https://webkit.org/b/130198>
        <rdar://problem/15991333>

        Reviewed by Dan Bernstein.

        * page/FrameView.cpp:
        (WebCore::FrameView::sendResizeEventIfNeeded):

2014-03-13  Antti Koivisto  <antti@apple.com>

        Try to fix release build.

        * css/MediaQueryMatcher.cpp:
        * css/StyleMedia.cpp:
        * html/HTMLTitleElement.cpp:

2014-03-11  Darin Adler  <darin@apple.com>

        Avoid copy-prone idiom "for (auto item : collection)"
        https://bugs.webkit.org/show_bug.cgi?id=129990

        Reviewed by Geoffrey Garen.

        Most of these changes have no effect. A few of them get rid of unwanted
        copying of the items as we iterate them. Found these with the command
        'git grep "for (auto .*:"' or the equivalent.

        * Modules/indexeddb/IDBKeyData.cpp:
        (WebCore::IDBKeyData::IDBKeyData): Use auto& to avoid copying the keys.
        (WebCore::IDBKeyData::maybeCreateIDBKey): Ditto.
        (WebCore::IDBKeyData::isolatedCopy): Ditto.

        * dom/Node.cpp:
        (WebCore::Document::invalidateNodeListAndCollectionCaches): Use auto*
        to make explicit the fact that these are pointers. Stop using "it" for
        a variable that is not an iterator. Get rid of unneeded local variables
        for the collections themselves.

        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::adoptDocument): Use auto& to make sure we
        don't do any unnecessary copying. Stop using "it" for a variable that
        is not an iterator.

        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::lastRow): Use auto* to be explicit
        that these are pointers.
        * inspector/InspectorNodeFinder.cpp:
        (WebCore::InspectorNodeFinder::searchUsingDOMTreeTraversal): Ditto.
        * page/ios/FrameIOS.mm:
        (WebCore::Frame::interpretationsForCurrentRoot): Ditto. Also got rid of
        an unnecessary local variable.

        * platform/FileChooser.cpp:
        (WebCore::FileChooser::chooseFiles): Use auto&. Also fix a FIXME.
        (WebCore::FileChooser::chooseMediaFiles): Ditto.

        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (WebCore::SourceBufferPrivateAVFObjC::naturalSize): Use auto&.

        * rendering/RenderIterator.h: Changed include from RenderObject.h to
        RenderElement.h; iterators are based on RenderElement now.

        * rendering/svg/RenderSVGResource.cpp:
        (WebCore::removeFromCacheAndInvalidateDependencies): Use auto*.

        * rendering/svg/RenderSVGResourceContainer.cpp:
        (WebCore::RenderSVGResourceContainer::markAllClientsForInvalidation): Use auto*.
        (WebCore::RenderSVGResourceContainer::markAllClientLayersForInvalidation): Ditto.
        (WebCore::RenderSVGResourceContainer::registerResource): Ditto.

        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::layoutChildren): Updated to use a more specific
        type, to use auto* instead of of auto, and to eliminate the slightly sloppily
        capitalized and not-so-slightly ungrammatical notlayoutedObjects.
        (WebCore::SVGRenderSupport::applyStrokeStyleToContext): Use auto&.
        (WebCore::SVGRenderSupport::updateMaskedAncestorShouldIsolateBlending): Use auto*.

        * rendering/svg/SVGResourcesCycleSolver.cpp:
        (WebCore::SVGResourcesCycleSolver::resourceContainsCycles): Use auto*.
        (WebCore::SVGResourcesCycleSolver::resolveCycles): Ditto. Also lineageOfType.

        * svg/SVGAnimateMotionElement.cpp:
        (WebCore::SVGAnimateMotionElement::applyResultsToTarget): Use auto*.
        * svg/SVGPathElement.cpp:
        (WebCore::SVGPathElement::invalidateMPathDependencies): Ditto.

2014-03-13  Brian Burg  <bburg@apple.com>

        Web Inspector: Remove unused callId parameter from evaluateInWebInspector
        https://bugs.webkit.org/show_bug.cgi?id=129744

        Reviewed by Timothy Hatcher.

        * WebCore.exp.in:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::evaluateForTestInFrontend):
        * inspector/InspectorController.h:

2014-03-13  Darin Adler  <darin@apple.com>

        Optimize hasTagName when called on an HTMLElement
        https://bugs.webkit.org/show_bug.cgi?id=130090

        Reviewed by Antti Koivisto.

        Added new hasTagName functions that have the efficiency of hasLocalName.
        but are safe.

        Now we can always use hasTagName, and we'll get a compile time error if
        we try to use an SVG tag name with an HTML element. All call sites that
        use the more specific tag name types are more efficient, and call sites
        that have a specific pointer type will get even more efficient checking
        that is exactly what we used to get by calling hasLocalName.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::hasTagName): Cast explicitly to Element
        since Node::hasTagName no longer works on a general QualifiedName.
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isDescendantOfElementType): Use
        more specific type, RenderElement, so we can call hasTagName on Element
        instead of Node; eliminates an unnecessary branch.

        * dom/DocumentStyleSheetCollection.cpp:
        (WebCore::DocumentStyleSheetCollection::collectActiveStyleSheets): Use
        new for loop and full words for variable names. Also use nullptr instead
        of 0. Call toHTMLElement and toSVGElement in code that checks hasTagName
        since it's already checking isHTMLElement and isSVGElement.

        * dom/Element.cpp:
        (WebCore::attrNodeListMap): Use NeverDestroyed and put the vectors into
        the map rather than putting pointers to a vector into the map.
        (WebCore::attrNodeListForElement): Take a reference rather than a pointer,
        and update for the change above.
        (WebCore::ensureAttrNodeListForElement): Ditto.
        (WebCore::removeAttrNodeListForElement): Ditto.
        (WebCore::findAttrNodeInList): Ditto.
        (WebCore::Element::isFocusable): Use ancestorsOfType<HTMLCanvasElement>
        to fine the canvas rather than a hand-written loop.
        (WebCore::Element::attrNodeList): Update for above changes.
        (WebCore::Element::setAttributeNode): Ditto.
        (WebCore::Element::attrIfExists): Ditto.
        (WebCore::Element::ensureAttr): Ditto.
        (WebCore::Element::detachAttrNodeFromElementWithValue): Ditto.
        (WebCore::Element::detachAllAttrNodesFromElement): Ditto.

        * dom/Element.h: Removed the overload of hasLocalName that takes a
        QualifiedName and ignores the non-local-name parts of it. Callers should
        use hasTagName instead, now that it's optimized appropriately. Added
        overloads of hasTagName for all the specific qualified name types. It's
        more efficient to use the Node versions of these functions rather than
        using QualifiedName::matches to do the check. Removed the hasTagName and
        hasLocalName functions from the Node class; the only convenience functions
        needed in Node are the specific checks for tags from HTML, MathML, and SVG,
        not the general purpose ones.

        * dom/Node.h: Removed hasLocalName and replaced the single hasTagName
        that takes a QualifiedName with three faster ones that take HTML, MathML,
        and SVG qualified names instead. Also updated to use nullptr instead of 0.

        * dom/PositionIterator.cpp: Added now-needed include.
        * dom/Text.cpp: Ditto.

        * dom/make_names.pl:
        (printHeaderHead): Renamed an argument for clarity and added a definitions
        argument, which is where we insert the classes derived from QualifiedName.
        (printCppHead): Renamed an argument for clarity.
        (printTypeHelpers): Use hasTagName rather than hasLocalName, since the
        former is now optimized to be the same as what the latter was.
        (printNamesHeaderFile): Define a class derived from QualifiedName that can
        be used at compile time to avoid having to check the namespace.
        (printNamesCppFile): Use the new more-specific type as needed.

        * editing/ApplyStyleCommand.cpp:
        (WebCore::isLegacyAppleStyleSpan): Use hasTagName instead of hasLocalName,
        and references instead of pointers.
        (WebCore::ApplyStyleCommand::ApplyStyleCommand): Removed uneeded explicit
        construction of a smart pointer.
        (WebCore::ApplyStyleCommand::shouldApplyInlineStyleToRun): Updated to use
        the enclosingElementWithTag function by its new name.

        * editing/Editor.cpp:
        (WebCore::Editor::selectionUnorderedListState): Updated to use the
        enclosingElementWithTag function by its new name.
        (WebCore::Editor::selectionOrderedListState): Ditto.

        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::doApply): Use a more-specific type for the list tag.
        (WebCore::InsertListCommand::doApplyForSingleParagraph): Ditto.
        * editing/InsertListCommand.h: Ditto.

        * editing/MarkupAccumulator.cpp:
        (WebCore::MarkupAccumulator::serializeNodesWithNamespaces): Added an explicit
        cast to Element in the loop that is already guarded by an isElementNode check.
        Also use a modern C++ for loop.

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::makeInsertedContentRoundTrippableWithHTMLTreeBuilder):
        Updated to use the enclosingElementWithTag function by its new name.
        (WebCore::ReplaceSelectionCommand::removeUnrenderedTextNodesAtEnds): Ditto.
        (WebCore::ReplaceSelectionCommand::positionAtEndOfInsertedContent): Ditto.

        * editing/TypingCommand.cpp: Added now-needed includes.
        * editing/VisibleUnits.cpp: Ditto.

        * editing/htmlediting.cpp:
        (WebCore::enclosingElementWithTag): Changed to return an Element instead of a Node,
        since nodes other than elements do not have tags.
        * editing/htmlediting.h: Ditto.

        * editing/mac/EditorMac.mm:
        (WebCore::Editor::adjustedSelectionRange): Updated to use the enclosingElementWithTag
        function by its new name.
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::appendText): Ditto.
        (WebCore::StyledMarkupAccumulator::traverseNodesForSerialization): Ditto.
        (WebCore::highestAncestorToWrapMarkup): Ditto.
        (WebCore::createMarkupInternal): Ditto.
        (WebCore::createContextualFragment): Ditto. Use hasTagName instead of hasLocalName,
        since the former is now optimized to be the same as the latter was before.

        * html/HTMLCollection.cpp:
        (WebCore::isMatchingElement): Use hasTagName instead of hasLocalName,
        since the former is now optimized to be the same as the latter was before.
        (WebCore::nameShouldBeVisibleInDocumentAll): Ditto.
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::ieForbidsInsertHTML): Ditto.
        (WebCore::unicodeBidiAttributeForDirAuto): Ditto.
        (WebCore::HTMLElement::parseBorderWidthAttribute): Ditto.
        (WebCore::HTMLElement::setInnerHTML): Ditto.
        (WebCore::shouldProhibitSetInnerOuterText): Ditto. Added this to share code between
        setInnerText and setOuterText.
        (WebCore::HTMLElement::setInnerText): Ditto.
        (WebCore::HTMLElement::setOuterText): Ditto.
        (WebCore::HTMLElement::rendererIsNeeded): Ditto.
        (WebCore::HTMLElement::createElementRenderer): Ditto.

        * html/HTMLElement.h: Added hasTagName, which hides the one inherited from Element
        and takes the more-specific HTMLQualifiedName type. This means we don't need to check
        the namespace at runtime because it's known at compile time. Also put the
        implementation of Node::hasTagName for HTMLQualifiedName into this header.

        * html/HTMLObjectElement.cpp:
        (WebCore::isRecognizedTagName): Updated for change in return type of
        HTMLNames::getHTMLTags.

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::add): Use hasTagName inastead of hasLocalName.
        (WebCore::HTMLSelectElement::value): Use isHTMLOptionElement instead of hasTagName.
        Also use a new style for loop and emptyString() instead of "".
        (WebCore::HTMLSelectElement::setValue): Ditto.
        (WebCore::HTMLSelectElement::setLength): Ditto.
        (WebCore::HTMLSelectElement::searchOptionsForValue): Ditto.
        (WebCore::HTMLSelectElement::restoreFormControlState): Ditto.

        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::additionalPresentationAttributeStyle): Use hasTagName
        instead of hasLocalName.

        * html/HTMLTableRowsCollection.cpp:
        (WebCore::isInSection): Updated to use hasTagName and take a reference.
        (WebCore::HTMLTableRowsCollection::rowAfter): Pass a reference.

        * html/parser/HTMLConstructionSite.cpp: Added now-needed include.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::createCaseMap): Updated to return a map rather than filling one in, and to
        be flxible about the type of the table being used.
        (WebCore::adjustSVGTagNameCase): Updated to use NeverDestroyed.
        (WebCore::adjustAttributes): Added new helper so we can share more code. Updated
        template argument names for clarity.
        (WebCore::adjustSVGAttributes): Marked this inline, since it just turns around and
        calls a single non-inline function.
        (WebCore::adjustMathMLAttributes): Ditto.
        (WebCore::addNamesWithPrefix): Changed to take argument by reference instead of pointer.
        (WebCore::createForeignAttributesMap): Added. Factors out the map creation from the
        function below.
        (WebCore::adjustForeignAttributes): Updated for above changes.
        (WebCore::HTMLTreeBuilder::processStartTagForInBody): Updated to pass reference.
        (WebCore::HTMLTreeBuilder::processTokenInForeignContent): Ditto.

        * inspector/InspectorStyleSheet.cpp: Added now-needed include.

        * mathml/MathMLElement.h: Added hasTagName, which hides the one inherited from Element
        and takes the more-specific MathMLQualifiedName type. This means we don't need to check
        the namespace at runtime because it's known at compile time. Also put the
        implementation of Node::hasTagName for MathMLQualifiedName into this header.

        * mathml/MathMLInlineContainerElement.cpp:
        (WebCore::MathMLInlineContainerElement::createElementRenderer): Use hasTagName.

        * mathml/MathMLSelectElement.cpp:
        (WebCore::MathMLSelectElement::attributeChanged): Use hasTagName.
        (WebCore::MathMLSelectElement::getSelectedActionChildAndIndex): Ditto.
        (WebCore::MathMLSelectElement::getSelectedActionChild): Ditto.
        (WebCore::MathMLSelectElement::getSelectedSemanticsChild): Ditto.
        (WebCore::MathMLSelectElement::updateSelectedChild): Ditto.
        * mathml/MathMLTextElement.cpp:
        (WebCore::MathMLTextElement::createElementRenderer): Ditto.
        (WebCore::MathMLTextElement::childShouldCreateRenderer): Ditto.

        * platform/mac/HTMLConverter.mm: Added now-needed include.
        * rendering/RenderBlockFlow.cpp: Ditto.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Use hasTagName.
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::rendererForRootBackground): Ditto.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer): Ditto.

        * rendering/RenderReplaced.cpp: Added now-needed include.

        * rendering/mathml/RenderMathMLScripts.cpp:
        (WebCore::RenderMathMLScripts::RenderMathMLScripts): Use hasTagName.
        * rendering/mathml/RenderMathMLUnderOver.cpp:
        (WebCore::RenderMathMLUnderOver::RenderMathMLUnderOver): Ditto.

        * svg/SVGElement.h: Added hasTagName, which hides the one inherited from Element
        and takes the more-specific SVGQualifiedName type. This means we don't need to check
        the namespace at runtime because it's known at compile time. Also put the
        implementation of Node::hasTagName for SVGQualifiedName into this header.

        * svg/SVGFontFaceSrcElement.cpp:
        (WebCore::SVGFontFaceSrcElement::childrenChanged): Use isSVGFontFaceElement instead
        of calling hasTagName.

        * svg/SVGUseElement.cpp:
        (WebCore::isDirectReference): Changed to take a reference and a more specific type.
        (WebCore::SVGUseElement::toClipPath): Added a type cast.
        (WebCore::SVGUseElement::rendererClipChild): Use more specific types so we don't
        need a type cast.

        * xml/parser/XMLDocumentParser.cpp:
        (WebCore::XMLDocumentParser::parseDocumentFragment): Added explicit calls to this
        unusual call site that has a good reason to use hasLocalName instead of hasTagName.

2014-03-13  Antti Koivisto  <antti@apple.com>

        Try to fix iOS build.

        * page/FrameView.cpp:
        (WebCore::FrameView::performPostLayoutTasks):

2014-03-13  Antti Koivisto  <antti@apple.com>

        Remove StyleResolver::State::m_parentNode
        https://bugs.webkit.org/show_bug.cgi?id=130194

        Reviewed by Andreas Kling.

        This variable was the "parent" node where the style was being inherited from, not the actual parent.
        The code would also recompute it even though the call sites generally know the rendering parent already.

        If we consistently pass parent style to StyleResolver::styleForElement we won't need the variable and
        the associated code. We also get rid of one more client of NodeRenderingTraversal.

        * css/MediaQueryMatcher.cpp:
        (WebCore::MediaQueryMatcher::prepareEvaluator):
        * css/SVGCSSStyleSelector.cpp:
        (WebCore::StyleResolver::applySVGProperty):
        * css/StyleMedia.cpp:
        (WebCore::StyleMedia::matchMedium):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::State::clear):
        (WebCore::StyleResolver::StyleResolver):
        (WebCore::StyleResolver::State::initForStyleResolve):
        (WebCore::StyleResolver::applyProperty):
        * css/StyleResolver.h:
        (WebCore::StyleResolver::document):
        (WebCore::StyleResolver::State::State):
        * dom/Element.cpp:
        (WebCore::Element::customStyleForRenderer):
        
            Add parentStyle parameter.

        * dom/Element.h:
        * dom/PseudoElement.cpp:
        (WebCore::PseudoElement::customStyleForRenderer):
        * dom/PseudoElement.h:
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::didAttachRenderers):
        (WebCore::HTMLOptGroupElement::updateNonRenderStyle):
        (WebCore::HTMLOptGroupElement::customStyleForRenderer):
        * html/HTMLOptGroupElement.h:
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::didAttachRenderers):
        (WebCore::HTMLOptionElement::updateNonRenderStyle):
        (WebCore::HTMLOptionElement::customStyleForRenderer):
        * html/HTMLOptionElement.h:
        * html/HTMLTitleElement.cpp:
        (WebCore::HTMLTitleElement::textWithDirection):
        * html/shadow/TextControlInnerElements.cpp:
        (WebCore::TextControlInnerElement::customStyleForRenderer):
        (WebCore::TextControlInnerTextElement::customStyleForRenderer):
        * html/shadow/TextControlInnerElements.h:
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::computeStyleInRegion):
        (WebCore::RenderNamedFlowFragment::computeChildrenStyleInRegion):
        (WebCore::RenderNamedFlowFragment::setRegionObjectsRegionStyle):
        * rendering/RenderNamedFlowFragment.h:
        * style/StyleResolveTree.cpp:
        (WebCore::Style::styleForElement):
        
            This used to be Element::styleForRenderer. It is now a standalone static.

        (WebCore::Style::elementInsideRegionNeedsRenderer):
        (WebCore::Style::createRendererIfNeeded):
        (WebCore::Style::resolveLocal):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::customStyleForRenderer):
        * svg/SVGElement.h:

2014-03-13  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Nested layers with subpixel accumulation paint to wrong position.
        https://bugs.webkit.org/show_bug.cgi?id=130153

        Reviewed by Simon Fraser.

        Subpixels (fractional device pixels here) can accumulate through nested layers. Subpixels
        need to be propagated through the layer tree so that painting coordinates match layout coordinates.
        
        Compositing case: (absolute positioning, 2x display)
        parent layer pos(0.3, 0.3) -> floored painting position (0, 0)
        child layer pos(10.2, 10.2) -> layout offset from parent (10.2, 10.2), 
        but the actual painting offset is (10.5, 10.5) as the result of parent flooring.
        
        Non-compositing case: (absolute positioning, 2x display)
        parent layer pos(0.3, 0.3) -> GraphicsContext is translated to (0, 0).
        child layer pos(10.2, 10.2) -> layout offset from parent (10.2, 10.2)
        but the GraphicsContext's offset is (10.5, 10.5) as the result of the parent's translate.   

        In both cases, without the subpixel adjustment, we'd paint the current layer at (10.0, 10.0)
        after flooring, while its painting position is actually (10.5, 10.5).
        Subpixels do accumulate through nested layers.

        Tests: compositing/hidpi-nested-compositing-layers-with-subpixel-accumulation.html
               fast/layers/hidpi-nested-layers-with-subpixel-accumulation.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerByApplyingTransform):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        * rendering/RenderLayerBacking.h:
        (WebCore::RenderLayerBacking::devicePixelFractionFromRenderer):

2014-03-13  Radu Stavila  <stavila@adobe.com>

        The scrolledContentOffset method should handle the hasOverflowClip check
        https://bugs.webkit.org/show_bug.cgi?id=130028

        Reviewed by Antti Koivisto.

        Before this patch, every call to RenderBox::scrolledContentOffset was guarded by the
        hasOverflowClip check, because the scrolledContentOffset method would ASSERT(hasOverflowClip()).
        This was simplified by moving the hasOverflowClip check inside the scrolledContentOffset method
        and returning (0, 0) for elements that do not clip the overflow.

        No new tests needed, just a refactor.

        * editing/VisibleUnits.cpp:
        (WebCore::absoluteLineDirectionPointToLocalPointInBlock):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintObject):
        (WebCore::RenderBlock::selectionGapRectsForRepaint):
        (WebCore::RenderBlock::paintSelection):
        (WebCore::RenderBlock::nodeAtPoint):
        (WebCore::RenderBlock::offsetForContents):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::scrolledContentOffset):
        (WebCore::RenderBox::offsetFromContainer):
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::offsetFromContainer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::mapLocalToContainer):
        (WebCore::RenderObject::pushMappingToContainer):
        (WebCore::RenderObject::mapAbsoluteToLocalPoint):
        (WebCore::RenderObject::offsetFromContainer):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::hitInnerTextElement):

2014-03-13  Chris Fleizach  <cfleizach@apple.com>

        AX: accessibility data table heuristics fail on this jQuery table
        https://bugs.webkit.org/show_bug.cgi?id=129369

        Reviewed by Mario Sanchez Prada.

        Updated accessibility/table-detection.html

        If a table uses display style of table-row-group, the RenderTable gets disassociated from the HTMLTableElement.
        We can find that element in a different way by asking for the parent of the first table section.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::activeDescendant):
            This method was accessing an object's element unsafely and this table change exposed the issue.
        * accessibility/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::tableElement):
        (WebCore::AccessibilityTable::isDataTable):
        * accessibility/AccessibilityTable.h:

2014-03-13  Antti Koivisto  <antti@apple.com>

        Ensure that layout milestones complete in all cases
        https://bugs.webkit.org/show_bug.cgi?id=130101
        
        Reviewed by Darin Adler.
        
        Milestones fail to complete in some testing scenarios.

        * dom/Document.cpp:
        (WebCore::Document::setParsing):
        
            Check if we need to fire layout milestones if parsing finishes without pending layout.
            Parsing status affects whether the document is considered non-empty and that affects
            layout milestones.

            Remove explicit layout scheduling here, layout timer will be active already if there
            is a layout pending

        * page/FrameView.cpp:
        (WebCore::FrameView::performPostLayoutTasks):
        (WebCore::FrameView::firePaintRelatedMilestonesIfNeeded):
        
            Renamed for consistency

        (WebCore::FrameView::fireLayoutRelatedMilestonesIfNeeded):
        
            Factor layout milestone firing into a function.

        * page/FrameView.h:

2014-03-12  Brian Burg  <bburg@apple.com>

        Web Replay: add infrastructure for memoizing nondeterministic DOM APIs
        https://bugs.webkit.org/show_bug.cgi?id=129445

        Reviewed by Timothy Hatcher.

        Add two pieces of infrastructure to support memoization of selected DOM APIs.

        The first piece is MemoizedDOMResult, a templated replay input class that knows
        how to serialize a DOM API's return value, ctype, and exception code.

        The second piece is the addition of a new IDL attribute called `Nondeterministic`.
        When placed on a DOM function or attribute, the code generator will emit code
        to save the DOM API's return value or use a memoized return value instead,
        depending on the current replay state. This new emitted code path is behind
        a feature flag.

        No new tests, as no new inputs are addressed by this change. Per-DOM API replay
        regression tests will be added when those APIs are marked as nondeterministic.

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/scripts/CodeGeneratorJS.pm: Add support of the `Nondeterministic` attribute.
        (GenerateImplementation): Handle cases for attributes and getters with exceptions.
        (GenerateImplementationFunctionCall): Handle function calls with and without exceptions.
        (GetNativeTypeForMemoization): Added. Converts DOMString to WTF::String.
        * bindings/scripts/IDLAttributes.txt: Add new `Nondeterministic` attribute.
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::jsTestEventTargetPrototypeFunctionItem):
        (WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::jsTestInterfacePrototypeFunctionImplementsMethod2):
        (WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjAttrWithGetterException):
        (WebCore::jsTestObjStringAttrWithGetterException):
        (WebCore::jsTestObjWithScriptStateAttributeRaises):
        (WebCore::jsTestObjWithScriptExecutionContextAttributeRaises):
        (WebCore::jsTestObjWithScriptExecutionContextAndScriptStateAttributeRaises):
        (WebCore::jsTestObjNullableStringValue):
        (WebCore::jsTestObjPrototypeFunctionByteMethod):
        (WebCore::jsTestObjPrototypeFunctionByteMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionOctetMethod):
        (WebCore::jsTestObjPrototypeFunctionOctetMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionLongMethod):
        (WebCore::jsTestObjPrototypeFunctionLongMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionObjMethod):
        (WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
        (WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
        (WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObj):
        (WebCore::jsTestObjPrototypeFunctionWithScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateObjException):
        (WebCore::jsTestObjPrototypeFunctionWithScriptExecutionContextAndScriptStateWithSpaces):
        (WebCore::jsTestObjPrototypeFunctionConditionalMethod1):
        (WebCore::jsTestObjConstructorFunctionClassMethodWithOptional):
        (WebCore::jsTestObjPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestObjPrototypeFunctionDomStringListFunction):
        (WebCore::jsTestObjPrototypeFunctionGetSVGDocument):
        (WebCore::jsTestObjPrototypeFunctionMutablePointFunction):
        (WebCore::jsTestObjPrototypeFunctionImmutablePointFunction):
        (WebCore::jsTestObjPrototypeFunctionStrictFunction):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithSequence):
        (WebCore::jsTestObjPrototypeFunctionStrictFunctionWithArray):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::jsTestTypedefsAttrWithGetterException):
        (WebCore::jsTestTypedefsStringAttrWithGetterException):
        (WebCore::jsTestTypedefsPrototypeFunctionMethodWithSequenceArg):
        (WebCore::jsTestTypedefsPrototypeFunctionImmutablePointFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction):
        (WebCore::jsTestTypedefsPrototypeFunctionStringArrayFunction2):
        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):

        * replay/AllReplayInputs.h:
        * replay/MemoizedDOMResult.cpp: Added.
        (WebCore::MemoizedDOMResultBase::type):
        (WebCore::MemoizedDOMResultBase::createFromEncodedResult):
        (InputTraits<MemoizedDOMResultBase>::type):
        (InputTraits<MemoizedDOMResultBase>::encode):
        (InputTraits<MemoizedDOMResultBase>::decode):

        * replay/MemoizedDOMResult.h: Added. Every specialization of MemoizedDOMResult<T>
        stores a binding name, ctype, result value of type T, and optional exception code.
        The ctype-specific code uses the CTypeTraits struct to abstract over enum names and
        compiler types. The actual encode/decode methods just use methods from EncodingTraits<T>.

        (WebCore::MemoizedDOMResultBase::MemoizedDOMResultBase):
        (WebCore::MemoizedDOMResultBase::~MemoizedDOMResultBase):
        (WebCore::MemoizedDOMResultBase::attribute):
        (WebCore::MemoizedDOMResultBase::ctype):
        (WebCore::MemoizedDOMResultBase::exceptionCode):
        (WebCore::CTypeTraits::decode):
        (WebCore::MemoizedDOMResultBase::convertTo):
        (JSC::InputTraits<MemoizedDOMResultBase>::queue):
        * replay/ReplayInputTypes.cpp: See below.
        (WebCore::ReplayInputTypes::ReplayInputTypes):
        * replay/ReplayInputTypes.h: See below.
        * replay/SerializationMethods.cpp: We need to special-case the encoding
        and decoding of MemoizedDOMResult inputs because the input is not part of
        the generated per-framework replay inputs enum.
        (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
        (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):

        * replay/WebInputs.json: Add the EncodedCType enum as an external enum type,
        so that we can use a generated EncodingTraits specialization to encode the enum.

2014-03-11  Jae Hyun Park  <jaepark@webkit.org>

        Make HTMLCanvasElement::is3D private
        https://bugs.webkit.org/show_bug.cgi?id=130117

        Reviewed by Anders Carlsson.

        HTMLCanvasElement::is3D is not used anywhere except HTMLCanvasElement.
        So, make HTMLCanvasElement::is3D a private method. Also, make more use
        of is3D method.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::reset):
        (WebCore::HTMLCanvasElement::getImageData):
        * html/HTMLCanvasElement.h:

2014-03-12  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: OS X View Indication
        https://bugs.webkit.org/show_bug.cgi?id=130119

        Reviewed by Timothy Hatcher.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::setIndicating):
        OS X will handles this in the InspectorOverlay. iOS does not use the
        overlay, so it handles this in the client (already implemented).

        * inspector/InspectorOverlay.h:
        Remove unused m_size, and add a boolean for the indicating state.

        * inspector/InspectorOverlay.cpp:
        (WebCore::InspectorOverlay::InspectorOverlay):
        (WebCore::InspectorOverlay::shouldShowOverlay):
        Helper for determining if we should show the overlay or not.

        (WebCore::InspectorOverlay::setIndicating):
        Set the state and trigger an overlay update.

        (WebCore::InspectorOverlay::paint):
        (WebCore::InspectorOverlay::update):
        (WebCore::InspectorOverlay::drawGutter):
        (WebCore::InspectorOverlay::evaluateInOverlay):
        Simplification of existing methods.

        * inspector/InspectorOverlayPage.css:
        (.indicate):
        Give the page a blue tint, matching the node highlight color.

        * inspector/InspectorOverlayPage.js:
        (showPageIndication):
        (hidePageIndication):
        Add / remove a body style class.

        (drawNodeHighlight):
        Remove unused parameters.

2014-03-12  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Disable REMOTE_INSPECTOR in earlier OS X releases
        https://bugs.webkit.org/show_bug.cgi?id=130118

        Reviewed by Timothy Hatcher.

        * Configurations/FeatureDefines.xcconfig:

2014-03-12  Tim Horton  <timothy_horton@apple.com>

        Build fix for ENABLE(IMAGE_CONTROLS) after 165479

        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::servicesRolloverButtonCell):
        (WebCore::RenderThemeMac::paintImageControlsButton):
        (WebCore::RenderThemeMac::imageControlsButtonSize):
        Don't try to use the AppKit methods that are only available on 64-bit.

2014-03-12  Brent Fulgham  <bfulgham@apple.com>

        [WebVTT] HTML5 "space" cahracters around "-->" are not required
        https://bugs.webkit.org/show_bug.cgi?id=117421

        Reviewed by Eric Carlson.

        Merged from Blink (patch by caitpotter88@gmail.com):
        https://chromium.googlesource.com/chromium/blink/+/4ef469cd627a13696b88e285ae28a60e38f9c286
        http://crbug.com/242158

        New tests: media/track/track-webvtt-tc029-timings-whitespace.html

        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::collectTimingsAndSettings): Make whitespace around cue-timings optional.

2014-03-12  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165482.
        https://bugs.webkit.org/show_bug.cgi?id=130157

        Broke the windows build; "error C2466: cannot allocate an
        array of constant size 0" (Requested by jernoble on #webkit).

        Reverted changeset:

        "Reduce memory use for static property maps"
        https://bugs.webkit.org/show_bug.cgi?id=129986
        http://trac.webkit.org/changeset/165482

2014-03-12  Brian Burg  <bburg@apple.com>

        Web Inspector receives spurious setScriptEnabled instrumentation calls
        https://bugs.webkit.org/show_bug.cgi?id=130147

        Reviewed by Timothy Hatcher.

        When page settings change, inspector instrumentation should only fire if
        the scriptsEnabled setting actually changes from the previous setting. But
        due to an unnecessary PLATFORM(IOS) guard, the inspector was being notified
        on every settings update even if nothing changed.

        This manifested as lots of Page.scriptsEnabled messages being sent to
        the inspector frontend as the Inspector window is dragged.

        * page/Settings.cpp:
        (WebCore::Settings::setScriptEnabled): Remove PLATFORM(IOS) from early return.

2014-03-12  Simon Fraser  <simon.fraser@apple.com>

        Have the scrolling tree track the viewport size, not the viewport rect
        https://bugs.webkit.org/show_bug.cgi?id=130141

        Reviewed by Beth Dakin.

        The scrolling tree only needs to know the size of the viewport, not its
        origin, since the origin is deduced from the updated scroll position.

        * WebCore.exp.in:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):
        * page/scrolling/ScrollingStateScrollingNode.cpp:
        (WebCore::ScrollingStateScrollingNode::ScrollingStateScrollingNode):
        (WebCore::ScrollingStateScrollingNode::setViewportSize):
        (WebCore::ScrollingStateScrollingNode::dumpProperties):
        * page/scrolling/ScrollingStateScrollingNode.h:
        * page/scrolling/ScrollingTreeScrollingNode.cpp:
        (WebCore::ScrollingTreeScrollingNode::updateBeforeChildren):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        (WebCore::ScrollingTreeScrollingNode::viewportSize):
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):
        (WebCore::ScrollingTreeScrollingNodeIOS::maximumScrollPosition):
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::updateAfterChildren):
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):
        (WebCore::ScrollingTreeScrollingNodeMac::maximumScrollPosition):
        (WebCore::ScrollingTreeScrollingNodeMac::logExposedUnfilledArea):

2014-03-12  Simon Fraser  <simon.fraser@apple.com>

        Spelling is hard
        https://bugs.webkit.org/show_bug.cgi?id=130146

        Reviewed by Beth Dakin.

        Fix spelling (constained -> constrained).

        * rendering/RenderLayerModelObject.cpp:
        (WebCore::RenderLayerModelObject::styleDidChange):

2014-03-12  Simon Fraser  <simon.fraser@apple.com>

        Change scrollOffsetForFixedPosition() to do LayoutUnit math
        https://bugs.webkit.org/show_bug.cgi?id=129981

        Reviewed by Beth Dakin.

        FrameView::scrollOffsetForFixedPosition() returned an IntSize,
        but to allow subpixel scroll offsets, we need it to return a LayoutSize.
        
        Fix code that calls this to use more LayoutUnit math.
        
        This progresses fixed background images on zoom, which cam now be subpixel
        positioned.

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::viewportConstrainedVisibleContentRect):
        (WebCore::FrameView::scrollOffsetForFixedPosition):
        * page/FrameView.h:
        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::updateScrollPositionAfterAsyncScroll):
        * platform/ScrollableArea.cpp:
        (WebCore::ScrollableArea::constrainScrollPositionForOverhang):
        * platform/ScrollableArea.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateScrollLayerPosition):

2014-03-12  Gavin Barraclough  <barraclough@apple.com>

        Reduce memory use for static property maps
        https://bugs.webkit.org/show_bug.cgi?id=129986

        Reviewed by Andreas Kling.

        Static property tables are currently duplicated on first use from read-only memory into dirty memory
        in every process, and since the entries are large (48 bytes) and the tables can be unusually sparse
        (we use a custom hash table without a rehash) a lot of memory may be wasted.

        * bindings/js/JSDOMBinding.h:
        (WebCore::getStaticValueSlotEntryWithoutCaching):
        (WebCore::getStaticValueSlotEntryWithoutCaching<JSDOMWrapper>):
            - HashEntry -> HashTableValue.
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::getOwnPropertySlot):
            - HashEntry -> HashTableValue.
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::getOwnPropertySlotDelegate):
            - HashEntry -> HashTableValue.
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getOwnPropertySlotDelegate):
        (WebCore::JSLocation::putDelegate):
            - HashEntry -> HashTableValue.
        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateGetOwnPropertySlotBody):
            - HashEntry -> HashTableValue.
        (GenerateHashTable):
            - emit the hash table index into the derived source (we were calculating this already to ensure chaining does not get too deep).

2014-03-12  Tim Horton  <timothy_horton@apple.com>

        Hook up image controls for WebKit1
        https://bugs.webkit.org/show_bug.cgi?id=130062
        <rdar://problem/15964809>

        Reviewed by Brady Eidson.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSPrimitiveValueMappings.h:
        Fix some header ordering.

        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        Handle mapping ImageControlsButtonPart to the -webkit-appearance value CSSValueImageControlsButton.

        * css/CSSValueKeywords.in:
        * platform/ThemeTypes.h:
        Add a -webkit-appearance value image-controls-button, and an associated control part.

        * dom/Node.h:
        (WebCore::Node::isImageControlsButtonElement): Added.

        * html/shadow/mac/ImageControlsButtonElementMac.cpp: Added.
        (WebCore::RenderImageControlsButton::RenderImageControlsButton):
        (WebCore::RenderImageControlsButton::~RenderImageControlsButton):
        (WebCore::RenderImageControlsButton::updateLogicalWidth):
        (WebCore::RenderImageControlsButton::computeLogicalHeight):
        (WebCore::ImageControlsButtonElementMac::ImageControlsButtonElementMac):
        (WebCore::ImageControlsButtonElementMac::~ImageControlsButtonElementMac):
        (WebCore::ImageControlsButtonElementMac::maybeCreate):
        (WebCore::ImageControlsButtonElementMac::defaultEventHandler):
        (WebCore::ImageControlsButtonElementMac::createElementRenderer):
        * html/shadow/mac/ImageControlsButtonElementMac.h: Added.
        Add a new element/renderer pair for the single button that comprises image controls on Mac.
        RenderImageControlsButton gets its size from the theme's imageControlsButtonSize.

        * html/shadow/mac/ImageControlsRootElementMac.cpp:
        (WebCore::RenderImageControls::RenderImageControls):
        (WebCore::RenderImageControls::~RenderImageControls):
        (WebCore::RenderImageControls::updateLogicalWidth):
        (WebCore::RenderImageControls::computeLogicalHeight):
        (WebCore::ImageControlsRootElement::maybeCreate):
        (WebCore::ImageControlsRootElementMac::ImageControlsRootElementMac):
        (WebCore::ImageControlsRootElementMac::~ImageControlsRootElementMac):
        (WebCore::ImageControlsRootElementMac::createElementRenderer):
        * html/shadow/mac/ImageControlsRootElementMac.h:
        Add a custom renderer for the root image controls element on Mac, which inherits
        its size from the <img> that it is shadowing.
        Add a ImageControlsButtonElementMac as the sole child of the root element.

        * html/shadow/mac/imageControlsMac.css:
        (.x-webkit-image-controls):
        (.x-webkit-image-controls-button):
        (.x-webkit-image-controls:hover .x-webkit-image-controls-button):
        The button should become opaque whenever *any* part of the image is hovered,
        not just the button itself. Also, use the new image-controls-button -webkit-appearance
        value to get the appropriate appearance from the theme.

        * page/ContextMenuContext.cpp:
        (WebCore::ContextMenuContext::ContextMenuContext):
        * page/ContextMenuContext.h:
        (WebCore::ContextMenuContext::setControlledImage):
        (WebCore::ContextMenuContext::controlledImage):
        Store an image on the ContextMenuContext instead of just whether we hit an image.

        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::handleContextMenuEvent):
        (WebCore::ContextMenuController::showContextMenu):
        (WebCore::imageFromImageElementNode):
        (WebCore::ContextMenuController::maybeCreateContextMenu):
        (WebCore::ContextMenuController::populate):
        Keep track of the hit image in the ContextMenuContext.

        (WebCore::ContextMenuController::replaceControlledImage):
        Replace the hit image with a new one.

        * page/ContextMenuController.h:

        * rendering/RenderReplaced.h:
        Fix a double-space typo.

        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::adjustStyle):
        (WebCore::RenderTheme::paint):
        (WebCore::RenderTheme::paintBorderOnly):
        (WebCore::RenderTheme::paintDecorations):
        Handle ImageControlsButtonPart in RenderTheme's switches.

        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::imageControlsButtonSize):
        (WebCore::RenderTheme::paintImageControlsButton):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::servicesRolloverButtonCell):
        (WebCore::RenderThemeMac::paintImageControlsButton):
        (WebCore::RenderThemeMac::imageControlsButtonSize):
        Paint the image controls button.

        * editing/ios/EditorIOS.mm:
        (WebCore::Editor::WebContentReader::readImage):
        (WebCore::Editor::WebContentReader::readURL):
        * editing/mac/EditorMac.mm:
        (WebCore::Editor::WebContentReader::readImage):
        * platform/URL.cpp:
        (WebCore::URL::fakeURLWithRelativePart):
        * platform/URL.h:
        Factor out code to create a "fake" URL (with a UUID "hostname" and the
        webkit-fake-url protocol), and make use of it where we construct such URLs.

2014-03-12  Jer Noble  <jer.noble@apple.com>

        [Mac] Crash when running media/fallback.html test in MediaPlayerPrivateAVFoundation::scheduleMainThreadNotification()
        https://bugs.webkit.org/show_bug.cgi?id=130136

        Reviewed by Eric Carlson.

        MediaPlayerPrivateAVFoundation is trying to lock its m_queueMutex from an async thread after
        while being destroyed in the main thread. To resolve this race condition, redispatch from
        the async thread to the main thread, and use a WeakPtr to determine whether the object has
        been destroyed or not.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::checkPlayability):

2014-03-12  Brent Fulgham  <bfulgham@apple.com>

        [Win] Remove use of QTSDK
        https://bugs.webkit.org/show_bug.cgi?id=130049

        Reviewed by Darin Adler.

        Media testing already covers this functionality.

        * WebCore.vcxproj/WebCore.vcxproj: Remove QuickTime files.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * platform/graphics/MediaPlayer.h: Remove QuickTime and Chromium
        media references.
        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp: Removed.
        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h: Removed.
        * platform/graphics/win/QTCFDictionary.cpp: Removed.
        * platform/graphics/win/QTCFDictionary.h: Removed.
        * platform/graphics/win/QTDecompressionSession.cpp: Removed.
        * platform/graphics/win/QTDecompressionSession.h: Removed.
        * platform/graphics/win/QTMovie.cpp: Removed.
        * platform/graphics/win/QTMovie.h: Removed.
        * platform/graphics/win/QTMovieGWorld.cpp: Removed.
        * platform/graphics/win/QTMovieGWorld.h: Removed.
        * platform/graphics/win/QTMovieTask.cpp: Removed.
        * platform/graphics/win/QTMovieTask.h: Removed.
        * platform/graphics/win/QTMovieVisualContext.cpp: Removed.
        * platform/graphics/win/QTMovieVisualContext.h: Removed.
        * platform/graphics/win/QTMovieWinTimer.cpp: Removed.
        * platform/graphics/win/QTMovieWinTimer.h: Removed.
        * platform/graphics/win/QTPixelBuffer.cpp: Removed.
        * platform/graphics/win/QTPixelBuffer.h: Removed.
        * platform/graphics/win/QTTrack.cpp: Removed.
        * platform/graphics/win/QTTrack.h: Removed.
        * plugins/win/PluginDatabaseWin.cpp:
        (WebCore::PluginDatabase::defaultPluginDirectories): Don't look
        for the QuickTime plugin anymore.

2014-03-12  David Kilzer  <ddkilzer@apple.com>

        Fix build after r165472

        Fixes the following build failure:

            WebCore/rendering/shapes/Shape.cpp:97:20: error: unused function 'ensureRadiiDoNotOverlap' [-Werror,-Wunused-function]
            static inline void ensureRadiiDoNotOverlap(FloatRect& bounds, FloatSize& radii)
                               ^
            1 error generated.

        * rendering/shapes/Shape.cpp:
        (ensureRadiiDoNotOverlap): Remove unused function.

2014-03-12  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] Remove deprecated shapes
        https://bugs.webkit.org/show_bug.cgi?id=125235

        Reviewed by Dirk Schulze.

        Remove support for deprecated shape types and syntax. These have
        already been removed from the CSS Shapes specification, so this aligns
        the implementation with the specification.

        The "new" tests below were simply moved from the old csswg directory,
        as they were the only tests there that applied to the current syntax.

        Tests: fast/shapes/shape-outside-floats/shape-outside-floats-polygon-000.html
               fast/shapes/shape-outside-floats/shape-outside-floats-polygon-001.html
               fast/shapes/shape-outside-floats/shape-outside-floats-polygon-002.html

        * css/BasicShapeFunctions.cpp:
        (WebCore::valueForBasicShape):
        (WebCore::basicShapeForValue):
        * css/BasicShapeFunctions.h:
        * css/CSSBasicShapes.cpp:
        * css/CSSBasicShapes.h:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseBasicShape):
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createShape):
        * rendering/shapes/ShapeInsideInfo.cpp:
        (WebCore::ShapeInsideInfo::isEnabledFor):
        * rendering/style/BasicShapes.cpp:
        * rendering/style/BasicShapes.h:

2014-03-12  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] [Stable] deadlock in gobject introspection
        https://bugs.webkit.org/show_bug.cgi?id=125651

        Reviewed by Sergio Villar Senin.

        Make the default SoupNetworkSession a destroyable object to ensure
        the wrapped SoupSession is finalized when the process finishes. This
        is important because soup cancels any ongoing connection when finalized.

        * platform/network/soup/SoupNetworkSession.cpp:
        (WebCore::SoupNetworkSession::defaultSession): Do not use NeverDestroyed.
        * platform/network/soup/SoupNetworkSession.h:

2014-03-12  Antti Koivisto  <antti@apple.com>

        Don't use NodeRenderingTraversal for pseudo elements
        https://bugs.webkit.org/show_bug.cgi?id=130091

        Reviewed by Andreas Kling.

        Make traversing during style resolve more comprehensible by handling before/after pseudo elements explicitly.

        With this patch NodeRenderingTraversal is only needed for InsertionPoints (which are nothing but an implementation
        detail of the <details> element at this point).

        * dom/Element.cpp:
        (WebCore::shouldUseNodeRenderingTraversalSlowPath):
        
            PseudoElements don't need the slow path anymore.

        (WebCore::Element::setBeforePseudoElement):
        (WebCore::Element::setAfterPseudoElement):
        (WebCore::Element::clearBeforePseudoElement):
        (WebCore::Element::clearAfterPseudoElement):
        * dom/NodeRenderingTraversal.cpp:
        (WebCore::NodeRenderingTraversal::traverseParent):
        (WebCore::NodeRenderingTraversal::firstChildSlow):
        (WebCore::NodeRenderingTraversal::nextSiblingSlow):
        (WebCore::NodeRenderingTraversal::previousSiblingSlow):
        * dom/NodeRenderingTraversal.h:
        (WebCore::NodeRenderingTraversal::firstChild):
        * style/StyleResolveTree.cpp:
        (WebCore::Style::nextSiblingRenderer):
        
            Add ::before/::after pseudo element handling here.

        (WebCore::Style::shouldCreateRenderer):
        (WebCore::Style::elementInsideRegionNeedsRenderer):
        (WebCore::Style::createRendererIfNeeded):
        (WebCore::Style::previousSiblingRenderer):
        
            Add ::before pseudo element handling here (text node can't be ::after).

        (WebCore::Style::reattachTextRenderersForWhitespaceOnlySiblingsAfterAttachIfNeeded):
        (WebCore::Style::textRendererIsNeeded):
        (WebCore::Style::createTextRendererIfNeeded):
        (WebCore::Style::attachTextRenderer):
        (WebCore::Style::updateTextRendererAfterContentChange):
        (WebCore::Style::attachChildren):
        (WebCore::Style::attachDistributedChildren):
        
            Handle InsertionPoints in one place.

        (WebCore::Style::attachShadowRoot):
        (WebCore::Style::attachBeforeOrAfterPseudoElementIfNeeded):
        (WebCore::Style::attachRenderTree):
        (WebCore::Style::resolveLocal):
        (WebCore::Style::updateTextStyle):
        (WebCore::Style::resolveShadowTree):
        (WebCore::Style::updateBeforeOrAfterPseudoElement):
        (WebCore::Style::resolveTree):
        
            Pass the rendering parent around to various functions instead of determining it repeatedly by calling 
            NodeRenderingTraversal::parent. It is always the same for all direct children being resolved and generally just
            the parent element.

2014-03-12  Frédéric Wang  <fred.wang@free.fr>

        Invisible Operators should not add space.
        https://bugs.webkit.org/show_bug.cgi?id=115786

        Reviewed by Chris Fleizach.

        This change adds special handling for invisible operator to ensure they really behave as empty box. We now ignore their glyph widths and do not paint them.

        Test: mathml/presentation/mo-invisible.html

        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
        (WebCore::RenderMathMLOperator::paint):
        * rendering/mathml/RenderMathMLOperator.h:

2014-03-11  Frédéric Wang  <fred.wang@free.fr>

        Implement MathML spacing around operators .
        https://bugs.webkit.org/show_bug.cgi?id=115787

        Reviewed by Chris Fleizach.

        This makes the <mo> operators use the lspace/rspace properties to
        determine their spacing. The spacing is now consistent with the one
        of <mfenced> and as a consequence bug 118843 is fixed. This also ensures
        that the rendering of <mo> elements is updated when the form or
        attributes are changed.

        Tests: mathml/presentation/dir-mo.html
               mathml/presentation/mo-form-dynamic.html
               mathml/presentation/mo-form-minus-plus.html
               mathml/presentation/mo-form.html
               mathml/presentation/mo-lspace-rspace-dynamic.html
               mathml/presentation/mo-lspace-rspace.html
               mathml/presentation/mo-whitespaces.html

        * css/mathml.css:
        * mathml/MathMLInlineContainerElement.cpp:
        (WebCore::MathMLInlineContainerElement::childrenChanged):
        * mathml/MathMLInlineContainerElement.h:
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
        (WebCore::RenderMathMLOperator::SetOperatorProperties):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::updateOperatorProperties):
        (WebCore::RenderMathMLOperator::updateStyle):
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::updateOperatorProperties):
        * rendering/mathml/RenderMathMLRow.h:
        * rendering/mathml/RenderMathMLToken.h:

2014-03-11  Brent Fulgham  <bfulgham@apple.com>

        Get the incomplete WebVTT Regions code to build again.
        https://bugs.webkit.org/show_bug.cgi?id=130094

        Reviewed by Eric Carlson.

        The feature is not being turned on here, so there are no new tests.

        * DerivedSources.make: Add missing IDL files for Regions.
        * WebCore.xcodeproj/project.pbxproj: Add Regions-related files.
        * html/track/InbandWebVTTTextTrack.cpp:
        (WebCore::InbandWebVTTTextTrack::newRegionsParsed): Add stub implementation.
        * html/track/LoadableTextTrack.cpp: Add missing include file.
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::TextTrack): Correct ordering of construction
        to avoid compiler warning.

2014-03-11  Ryuan Choi  <ryuan.choi@samsung.com>

        Remove unused method from BatteryController
        https://bugs.webkit.org/show_bug.cgi?id=130063

        Reviewed by Darin Adler.

        * Modules/battery/BatteryController.h: Removed client() which is not used.

2014-03-11  Krzysztof Czech  <k.czech@samsung.com>

        [ATK] Expose aria-posinset and aria-setsize through object attributes
        https://bugs.webkit.org/show_bug.cgi?id=130011

        Reviewed by Chris Fleizach.

        Based on http://www.w3.org/TR/2014/PR-wai-aria-implementation-20140206/
        aria-poinset and aria-setsize can be exposed as object attributes.

        Test: accessibility/aria-setsize-posinset.html

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (webkitAccessibleGetAttributes):

2014-03-10  Frédéric Wang  <fred.wang@free.fr>

        Improve renderer classes for MathML Token elements.
        https://bugs.webkit.org/show_bug.cgi?id=124838

        Reviewed by Chris Fleizach.

        This patch continues the refactoring of token elements that has been
        started in bug 44208. The <mo> element now derives from the
        RenderMathMLToken class, which was already used for the <mi> element.
        The behavior of anonymous <mo> elements created by the <mfenced> element
        is now more consistent with the one of "standard" <mo> elements and the
        spacing around them is now handled in RenderMathMLOperator. This is a
        first step towards fixing bugs 115787 and 118843. The only visible
        rendering change is how <mfenced> open/close attributes handle
        whitespace and multiple characters and some tests are added for that.
        Other features are already covered by other tests. Finally, this also
        removes some code from AccessibilityRenderObject that was used to
        workaround issues with <mo> elements.

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::startOfContinuations):
        (WebCore::AccessibilityRenderObject::textUnderElement):
        (WebCore::AccessibilityRenderObject::isMathOperator):
        (WebCore::AccessibilityRenderObject::isIgnoredElementWithinMathTree):
        * mathml/MathMLTextElement.cpp:
        (WebCore::MathMLTextElement::didAttachRenderers):
        (WebCore::MathMLTextElement::childrenChanged):
        * rendering/mathml/RenderMathMLBlock.cpp:
        (WebCore::RenderMathMLBlock::RenderMathMLBlock):
        * rendering/mathml/RenderMathMLBlock.h:
        * rendering/mathml/RenderMathMLFenced.cpp:
        (WebCore::RenderMathMLFenced::RenderMathMLFenced):
        (WebCore::RenderMathMLFenced::updateFromElement):
        (WebCore::RenderMathMLFenced::createMathMLOperator):
        (WebCore::RenderMathMLFenced::makeFences):
        (WebCore::RenderMathMLFenced::addChild):
        * rendering/mathml/RenderMathMLFenced.h:
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::setOperatorFlagFromAttribute):
        (WebCore::RenderMathMLOperator::setOperatorPropertiesFromOpDictEntry):
        (WebCore::RenderMathMLOperator::SetOperatorProperties):
        (WebCore::RenderMathMLOperator::computePreferredLogicalWidths):
        (WebCore::RenderMathMLOperator::rebuildTokenContent):
        (WebCore::RenderMathMLOperator::updateTokenContent):
        (WebCore::RenderMathMLOperator::updateStyle):
        (WebCore::RenderMathMLOperator::firstLineBaseline):
        (WebCore::RenderMathMLOperator::paint):
        (WebCore::RenderMathMLOperator::paintChildren):
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLToken.cpp:
        (WebCore::RenderMathMLToken::createWrapperIfNeeded):

2014-03-10  James Craig  <jcraig@apple.com>

        Web Inspector: AXI: Expose checked/disabled/expanded/pressed/readonly/selected
        https://bugs.webkit.org/show_bug.cgi?id=129781

        Reviewed by Joseph Pecoraro.

        Enabling several more properties to be exposed in the Accessibility Node Inspector.

        Updated Tests: inspector-protocol/dom/getAccessibilityPropertiesForNode.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::supportsChecked):
        * accessibility/AccessibilityObject.h:
        * inspector/InspectorDOMAgent.cpp:
        (WebCore::InspectorDOMAgent::buildObjectForAccessibilityProperties):
        * inspector/protocol/DOM.json:

2014-03-10  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] inset corner radii are not flipped for vertical writing modes
        https://bugs.webkit.org/show_bug.cgi?id=129918

        Reviewed by Dean Jackson.

        When creating an inset shape, convert the radii to logical coordinates
        as well as the box.

        Tests: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-left.html
               fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-different-writing-modes-right.html

        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createShape): Convert the radii to logical
            coordinates.

2014-03-10  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Frontend loaded resources from cache are not hidden as expected
        https://bugs.webkit.org/show_bug.cgi?id=130044

        Reviewed by Timothy Hatcher.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadedResourceFromMemoryCache):
        Use the new request that was passed in. Assume it is filled in appropriately.

        * loader/cache/CachedResourceLoader.h:
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::CachedResourceLoader::shouldContinueAfterNotifyingLoadedFromMemoryCache):
        Carry over the hidden from inspector state if the passed in request had it,
        and create the request that loadedResourceFromMemoryCache will use.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::createRequest):
        Add missing ifdefs for INSPECTOR only function.

2014-03-10  Jinwoo Song  <jinwoo7.song@samsung.com>

        Remove 'visibilitychange' attribute event listener from document
        https://bugs.webkit.org/show_bug.cgi?id=129794

        Reviewed by Simon Fraser.

        Remove the unused attribute event listener which is not defined in Page Visibility API spec.
        http://www.w3.org/TR/page-visibility/#sec-document-interface

        * dom/Document.h:

2014-03-10  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WebKit 2] Wire the unobscured rect in the WebProcess
        https://bugs.webkit.org/show_bug.cgi?id=130058

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        * platform/ScrollView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::unobscuredContentRect):
        (WebCore::ScrollView::setUnobscuredContentRect):

2014-03-10  Benjamin Poulain  <bpoulain@apple.com>

        makeSelectorPseudoTypeMap.py should not be copied in the WebCore bundle

        * WebCore.xcodeproj/project.pbxproj:

2014-03-10  Mario Sanchez Prada  <mario.prada@samsung.com>

        [GTK] Add support for Geoclue2
        https://bugs.webkit.org/show_bug.cgi?id=120185

        Reviewed by Carlos Garcia Campos.

        Patch by Anton Obzhirov <a.obzhirov@samsung.com> and Mario Sanchez Prada <mario.prada@samsung.com>

        Implement a new geolocation provider based on Geoclue2, which will only
        be used if a good enough version of Geoclue2 is found  at configure time.

        * GNUmakefile.am: Generate C-API for accessing the D-Bus API
        provided by Geoclue2, and place it in DerivedSources.
        * GNUmakefile.list.am: Add GeolocationProviderGeoclue2.cpp, and
        include the generated proxy files when using Geoclue2.
        * PlatformGTK.cmake: Likewise, for CMake based builds.
        * platform/geoclue/GeolocationProviderGeoclue.h: Modified to
        accomodate the needs both for Geoclue and Geoclue2 providers.
        * platform/geoclue/GeolocationProviderGeoclue1.cpp: Renamed from Source/WebCore/platform/geoclue/GeolocationProviderGeoclue.cpp.
        (GeolocationProviderGeoclue::getPositionCallback):
        (GeolocationProviderGeoclue::positionChangedCallback):
        (GeolocationProviderGeoclue::createGeocluePositionCallback):
        (GeolocationProviderGeoclue::geoclueClientSetRequirementsCallback):
        (GeolocationProviderGeoclue::createGeoclueClientCallback):
        (GeolocationProviderGeoclue::GeolocationProviderGeoclue):
        (GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
        (GeolocationProviderGeoclue::startUpdating):
        (GeolocationProviderGeoclue::stopUpdating):
        (GeolocationProviderGeoclue::setEnableHighAccuracy):
        (GeolocationProviderGeoclue::initializeGeoclueClient):
        (GeolocationProviderGeoclue::initializeGeocluePosition):
        (GeolocationProviderGeoclue::updateClientRequirements):
        (GeolocationProviderGeoclue::positionChanged):
        (GeolocationProviderGeoclue::errorOccurred):
        * platform/geoclue/GeolocationProviderGeoclue2.cpp: Added.
        (GeolocationProviderGeoclue::GeolocationProviderGeoclue):
        (GeolocationProviderGeoclue::~GeolocationProviderGeoclue):
        (GeolocationProviderGeoclue::startUpdating):
        (GeolocationProviderGeoclue::stopUpdating):
        (GeolocationProviderGeoclue::setEnableHighAccuracy):
        (GeolocationProviderGeoclue::createGeoclueManagerProxyCallback):
        (GeolocationProviderGeoclue::getGeoclueClientCallback):
        (GeolocationProviderGeoclue::createGeoclueClientProxyCallback):
        (GeolocationProviderGeoclue::startClientCallback):
        (GeolocationProviderGeoclue::locationUpdatedCallback):
        (GeolocationProviderGeoclue::createLocationProxyCallback):
        (GeolocationProviderGeoclue::startGeoclueClient):
        (GeolocationProviderGeoclue::updateLocation):
        (GeolocationProviderGeoclue::errorOccurred):
        (GeolocationProviderGeoclue::updateClientRequirements):

2014-03-10  Brent Fulgham  <bfulgham@apple.com>

        Unreviewed Windows Build Fix.

        * WebCore.vcxproj/WebCore.vcxproj: Don't build cURL files for Apple Windows port.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::LayerClient::platformCALayerPaintContents): Correct
        method signature to match base class.
        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::loadInternal): Use proper character encoding.

2014-03-10  Simon Fraser  <simon.fraser@apple.com>

        Fix three leaks
        https://bugs.webkit.org/show_bug.cgi?id=130048

        Reviewed by Anders Carlsson.

        The NSDictionary was leaked.

        * page/ios/UserAgentIOS.mm:
        (WebCore::osMarketingVersion):

2014-03-10  Beth Dakin  <bdakin@apple.com>

        Set background color of WK2's UIScrollView to the pageExtendedBackgroundColor
        https://bugs.webkit.org/show_bug.cgi?id=129919

        Reviewed by Benjamin Poulain.

        WK2 needs to be able to ask for the pageExtendedBackgroundColor, so this patch 
        adds a function to Page that will return it

        * WebCore.exp.in:
        * page/Page.cpp:
        (WebCore::Page::pageExtendedBackgroundColor):
        * page/Page.h:
        * rendering/RenderLayerCompositor.h:
        (WebCore::RenderLayerCompositor::rootExtendedBackgroundColor):

2014-03-10  Benjamin Poulain  <bpoulain@apple.com>

        Generalize unobscured rect to all ports
        https://bugs.webkit.org/show_bug.cgi?id=130036

        Reviewed by Simon Fraser.

        iOS differentiates visible content and unobscured content. This patch moves the concept to all
        ports to remove the #ifdefs from the call sites.

        On everything but iOS, unobscuredRect and visibleRect are the same.

        * WebCore.exp.in:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::innerHeight):
        (WebCore::DOMWindow::innerWidth):
        * page/SpatialNavigation.cpp:
        (WebCore::canScrollInDirection):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars):
        (WebCore::ScrollView::paint):
        * platform/ScrollView.h:
        (WebCore::ScrollView::unobscuredContentRectIncludingScrollbars):
        (WebCore::ScrollView::unobscuredContentRect):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::viewportSize):

2014-03-10  Benjamin Poulain  <benjamin@webkit.org>

        Start splitting CSS Selectors's pseudo types
        https://bugs.webkit.org/show_bug.cgi?id=130003

        Reviewed by Andreas Kling.

        CSS Selectors pseudo types come in 3 flavors: page, pseudo class, pseudo elements.

        The three types are mixed together in a single enum list named PseudoType. Only some combinations
        of match type + pseudo type are valid, but this is implicitly defined from the code.

        This patch is the beginning of a refactoring to add more clear boundaries between
        valid and invalid combinations.

        First, the handling of page pseudo types is completely split from the other values.
        The parser use a different method for handling the value CSSParserSelector::parsePagePseudoSelector().

        PagePseudo types no longer store their string in the CSSSelector either to reduce the redundancy
        with m_pseudoType.
        When we need to generate the string for those CSSSelector, we recreate the string as needed in
        CSSSelector::selectorText().

        The remaining two types are not yet split in this patch but this introduce the preliminary clean up
        toward that goal.
        The list of parsed pseudo types is now generated at compile time from the source in SelectorPseudoTypeMap.in.

        * DerivedSources.make:
        The mapping of strings to pseudo types is generated from SelectorPseudoTypeMap.in
        by the new script makeSelectorPseudoTypeMap.py.

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSGrammar.y.in:
        Split the parsing of Pseudo Types. Pseudo page get its own method. The others will need some work.

        * css/CSSParserValues.cpp:
        (WebCore::CSSParserSelector::parsePagePseudoSelector):
        (WebCore::CSSParserSelector::setPseudoTypeValue):
        * css/CSSParserValues.h:
        * css/CSSSelector.cpp:
        (WebCore::CSSSelector::specificityForPage):
        This is an example of invalid combination that is hidden by the current code.
        First, Left and Right could never appear in a pseudo class match.
        (WebCore::CSSSelector::pseudoId):
        (WebCore::CSSSelector::parsePseudoType):
        (WebCore::appendPseudoTypeTailIfNecessary):
        (WebCore::CSSSelector::selectorText):
        * css/CSSSelector.h:
        (WebCore::CSSSelector::pseudoType):
        (WebCore::CSSSelector::matchesPseudoElement):
        (WebCore::CSSSelector::setValue):
        (WebCore::CSSSelector::CSSSelector):
        * css/PageRuleCollector.cpp:
        (WebCore::checkPageSelectorComponents):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * css/SelectorPseudoTypeMap.h: Added.
        * css/SelectorPseudoTypeMap.in: Added.
        * css/makeSelectorPseudoTypeMap.py: Added.
        (enumerablePseudoType):
        (expand_ifdef_condition):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::addPseudoType):

2014-03-10  Enrica Casucci  <enrica@apple.com>

        iOS build fix after http://trac.webkit.org/changeset/165385

        Unreviewed.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper arrayOfTextForTextMarkers:attributed:]):

2014-03-10  Daniel Bates  <dabates@apple.com>

        REGRESSION (r159218): FrameView::layout() should destroy TemporaryChange<LayoutPhase>
        before destroying Ref<FrameView>
        https://bugs.webkit.org/show_bug.cgi?id=130034
        <rdar://problem/15664288>

        Reviewed by Alexey Proskuryakov.

        We should always destroy TemporaryChange<LayoutPhase> before destroying Ref<FrameView>
        in FrameView::layout() so as to ensure that the FrameView exists when we restore the
        original layout phase value.

        The existing test fast/frames/crash-remove-iframe-during-object-beforeload.html covers
        this change. Although you must run the test with Guard Malloc enabled (i.e. run-webkit-tests -r).

        * page/FrameView.cpp:
        (WebCore::FrameView::layout): Move construction of variable protect before the construction of
        variable layoutPhaseRestorer. Additionally, add a period to the end of the comment associated
        with variable protect.

2014-03-10  Zsolt Borbely  <borbezs@inf.u-szeged.hu>

        ASSERTION FAILED: span >= 1
        https://bugs.webkit.org/show_bug.cgi?id=129148

        Reviewed by Andreas Kling.

        Set the value of span to 1 if the given number is too big or zero.

        Test: fast/table/incorrect-colgroup-span-values.html

        * html/HTMLTableColElement.cpp:
        (WebCore::HTMLTableColElement::parseAttribute):

2014-03-10  Brent Fulgham  <bfulgham@apple.com>

        [Win] Pass environment to Pre-Build, Pre-Link, and Post-Build Stages.
        https://bugs.webkit.org/show_bug.cgi?id=130023.

        Reviewed by Dean Jackson.

        * WebCore.vcxproj/WebCore.proj: Avoid trailing slashes in path values to
        prevent escaping during later string substitution.

2014-03-10  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Hit-testing is not working properly inside scrollable regions
        https://bugs.webkit.org/show_bug.cgi?id=130015

        Reviewed by Antti Koivisto.

        When hit-testing inside the flow thread's layer, the scrolled offset
        of the current region must be taken into consideration.

        Test: fast/regions/scrollable-regions-hit-testing-inside.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):

2014-03-10  Hans Muller  <hmuller@adobe.com>

        [CSS Shapes] SVG Image valued shape fails if root element's size is relative
        https://bugs.webkit.org/show_bug.cgi?id=128983

        Reviewed by Simon Fraser.

        When creating a shape based on an Image, compute its dimensions using
        RenderBoxModelObject::calculateImageIntrinsicDimensions(), then set the
        ImageResource's containerSize, and then use imageForRenderer() to get the
        image to be drawn. The first step resolves SVG Image relative sizes, the
        second step creates and caches an SVGImageForContainer with the correct
        containerSize, and the last step retrieves the SVGImageForContainer.

        Test: fast/shapes/shape-outside-floats/shape-outside-relative-size-svg.html

        * rendering/RenderBoxModelObject.h: Publicized calculateImageIntrinsicDimensions() and its enum.
        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createRasterShape):
        * rendering/shapes/Shape.h:
        * rendering/shapes/ShapeInfo.cpp:
        (WebCore::getShapeImageAndRect):
        (WebCore::ShapeInfo<RenderType>::computedShape):

2014-03-10  Darin Adler  <darin@apple.com>

        TextIterator: Use StringView and references rather than pointers
        https://bugs.webkit.org/show_bug.cgi?id=129975

        Reviewed by Anders Carlsson.

        TextIterator refinements:
        - Use StringView instead of deprecatedCharacters to point to characters within strings.
        - Added TextIteratorCopyableText, a safe way to copy the current text of a TextIterator,
          for use by WordAwareIterator.
        - Removed m_shouldStop; iterators stop by setting m_positionNode to null, and there is no
          need for a separate boolean to do the same thing.
        - Got rid of all the boolean data members set based on the text iterator behavior; instead
          store the behavior in a data member and check it directly.
        - Changed most functions to use references rather than pointers.
        - Small micro-optimizations, such as using fastGetAttribute rather than getAttribute.
        - Switched to nullptr instead of 0 where appropriate.
        - Removed unused functions.
        - Cut down on use of abbreviations instead of words.
        - Renamed data members and argument names for clarity.
        - Split up assertions that needlessly asserted more than one thing in a single expression.
        - Treat CDATASection just like other Text, since its text will be visible.

        * editing/Editor.cpp:
        (WebCore::Editor::advanceToNextMisspelling): Pass reference rather than pointer.
        (WebCore::Editor::rangeOfString): Ditto.
        (WebCore::Editor::countMatchesForText): Ditto.
        * editing/TextCheckingHelper.cpp:
        (WebCore::TextCheckingHelper::findFirstMisspelling): Ditto.

        * editing/TextIterator.cpp:
        (WebCore::depthCrossingShadowBoundaries): Take a reference rather than a pointer.
        (WebCore::nextInPreOrderCrossingShadowBoundaries): Ditto.
        (WebCore::fullyClipsContents): Ditto.
        (WebCore::ignoresContainerClip): Ditto.
        (WebCore::pushFullyClippedState): Ditto.
        (WebCore::setUpFullyClippedStack): Ditto.
        (WebCore::isRendererReplacedElement): Use references rather than pointers in the
        implementation. Also use fastGetAttribute instead of getAttribute.
        (WebCore::TextIteratorCopyableText::reset): Added.
        (WebCore::TextIteratorCopyableText::set): Added.
        (WebCore::TextIteratorCopyableText::appendToStringBuilder): Added.
        (WebCore::TextIterator::TextIterator): Use more initialization rather than assignment.
        Got rid of some local variables.
        (WebCore::TextIterator::advance): Removed the m_shouldStop boolean, uneeded.
        Many other improvements. Use isTextNode instead of nodeType.
        (WebCore::hasVisibleTextNode): Changed this into a file-private helper function
        instead of a member function.
        (WebCore::TextIterator::handleTextNode): Used references and cut down on type casts.
        Gave local variables clearer names.
        (WebCore::TextIterator::handleTextBox): More of the same.
        (WebCore::TextIterator::handleTextNodeFirstLetter): Ditto.
        (WebCore::TextIterator::handleReplacedElement): Ditto.
        (WebCore::shouldEmitTabBeforeNode): Ditto.
        (WebCore::hasHeaderTag): Added.
        (WebCore::shouldEmitNewlinesBeforeAndAfterNode): More of the same.
        (WebCore::shouldEmitNewlineAfterNode): Ditto.
        (WebCore::shouldEmitNewlineBeforeNode): Ditto.
        (WebCore::shouldEmitExtraNewlineForNode): Ditto.
        (WebCore::collapsedSpaceLength): Use StringImpl directly instead of using the
        deprecatedCharacters function.
        (WebCore::TextIterator::shouldRepresentNodeOffsetZero): More like above.
        (WebCore::TextIterator::shouldEmitSpaceBeforeAndAfterNode): Ditto.
        (WebCore::TextIterator::representNodeOffsetZero): Ditto.
        (WebCore::TextIterator::handleNonTextNode): Ditto.
        (WebCore::TextIterator::exitNode): Ditto.
        (WebCore::TextIterator::emitCharacter): Changed to use the new copyable text class
        instead of managing the single character buffer directly here.
        (WebCore::TextIterator::emitText): Changed to take a Text& and use the copyable text
        class. Added a FIXME about a mistake I noticed.
        (WebCore::TextIterator::range): Streamlined and simplified a bit. Updated data
        member names to be a bit clearer. This function never returned null before, but there
        was a code path that looked like it would; I removed that.
        (WebCore::TextIterator::node): Removed unneeded null checks; the range function will
        never return a range of null or one with null for a start container.
        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator): More
        like above.
        (WebCore::SimplifiedBackwardsTextIterator::advance): Reorganized a bit and removed
        m_shouldStop.
        (WebCore::SimplifiedBackwardsTextIterator::handleTextNode): More of the same.
        (WebCore::SimplifiedBackwardsTextIterator::handleFirstLetter): Ditto.
        (WebCore::SimplifiedBackwardsTextIterator::handleReplacedElement): Ditto.
        (WebCore::SimplifiedBackwardsTextIterator::handleNonTextNode): Ditto.
        (WebCore::SimplifiedBackwardsTextIterator::exitNode): Ditto.
        (WebCore::SimplifiedBackwardsTextIterator::emitCharacter): Ditto.
        (WebCore::SimplifiedBackwardsTextIterator::advanceRespectingRange): Ditto.
        (WebCore::SimplifiedBackwardsTextIterator::range): Ditto.
        (WebCore::CharacterIterator::CharacterIterator): Ditto.
        (WebCore::CharacterIterator::range): Ditto. No need for ASSERT_NO_EXCEPTION.
        (WebCore::CharacterIterator::advance): Ditto.
        (WebCore::BackwardsCharacterIterator::BackwardsCharacterIterator): Ditto.
        (WebCore::BackwardsCharacterIterator::range): Ditto.
        (WebCore::BackwardsCharacterIterator::advance): Ditto.
        (WebCore::WordAwareIterator::WordAwareIterator): Ditto.
        (WebCore::WordAwareIterator::advance): Use copyableText for m_previousText, fixing
        the FIXME that I wrote in here before.
        (WebCore::WordAwareIterator::text): Ditto.
        (WebCore::containsKanaLetters): Changed to quickly return false when the pattern
        is all Latin-1 rather than expanding to 16-bit just to check.
        (WebCore::SearchBuffer::SearchBuffer): Iterate the target using the string operator[]
        instead of using deprecatedCharacters.
        (WebCore::SearchBuffer::append): Do the folding of quote marks and hyphens one character
        at a time as we move characters into the buffer instead of in a separate loop.
        (WebCore::TextIterator::rangeLength): Updated for changes eslwehere.
        (WebCore::TextIterator::subrange): Ditto.
        (WebCore::isInsideReplacedElement): Ditto. Also streamlined and removed unneeded null check.
        (WebCore::TextIterator::rangeFromLocationAndLength): Updated for changes elsewhere and
        removed unneeded ASSERT_NO_EXCEPTION.
        (WebCore::plainText): Ditto.
        (WebCore::collapsedToBoundary): Ditto.
        (WebCore::findPlainText): Ditto.

        * editing/TextIterator.h: Changed many functions to take references instead of pointers.
        Added TextIteratorCopyableText, to represent the current text in a TextIterator in a form
        that can be safely copied and used after further iteration. Reorganized member functions so
        they are in the same order in all the classes. Changed TextIterator to use
        TextIteratorCopyableText. Removed many unused functions, including:
        - TextIterator::length
        - TextIterator::deprecatedTextIteratorCharacters
        - TextIterator::characterAt
        - SimplifiedBackwardsTextIterator::length
        - CharacterIterator::length
        - CharacterIterator::string
        - WordAwareIterator::length
        - WordAwareIterator::range

        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::appendTrailingWhitespace): Pass reference rather than pointer.
        Use text().length() instead of length(). Check atEnd() before using CharacterIterator, since
        iterator member functions don't work when at the end.
        * editing/VisibleUnits.cpp:
        (WebCore::previousBoundary): Ditto.
        (WebCore::nextBoundary): Ditto.
        * editing/htmlediting.cpp:
        (WebCore::visiblePositionForIndexUsingCharacterIterator): Ditto.
        * page/ios/FrameIOS.mm:
        (WebCore::Frame::indexCountOfWordPrecedingSelection): Ditto.
        (WebCore::Frame::wordsInCurrentParagraph): Ditto.

2014-03-10  Martin Robinson  <mrobinson@igalia.com>

        [GTK] [CMake] Clean up library linking
        https://bugs.webkit.org/show_bug.cgi?id=129782

        Reviewed by Philippe Normand.

        * PlatformGTK.cmake: Some files are duplicated on the source list of two convenience
        libraries. Ensure that they are all compiled into WebCore instead of WebCorePlatformGTK.
        Some simply need to be moved to WebCore from WebCorePlatformGTK. Don't try to link
        WebCorePlatformGTK against WebCore -- convenience libraries should be able to save
        their symbol resolution for the final linking step.

2014-03-10  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Scrolling regions with the mouse wheel only works properly if hovering over the region's padding
        https://bugs.webkit.org/show_bug.cgi?id=129485

        Reviewed by Andrei Bucur.

        When searching for the region under the mouse pointer (to identify which region to scroll), 
        the localToAbsolute method must be called on the region container, not the region itself.
        Also, when calling the offsetFromContainer method on a named flow fragment,
        it must only take into consideration the border and padding of the fragment container,
        not its scrolled offset.

        Test: fast/regions/wheel-scrollable-single-region.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::scroll):
        * rendering/RenderFlowThread.cpp:
        * rendering/RenderFlowThread.h:
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::offsetFromContainer):
        * rendering/RenderNamedFlowFragment.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::fragmentFromAbsolutePointAndBox):
        * rendering/RenderNamedFlowThread.h:

2014-03-10  Jinwoo Song  <jinwoo7.song@samsung.com>

        Remove unused dispatchStorageEvent() from StorageAreaSync
        https://bugs.webkit.org/show_bug.cgi?id=129999

        Reviewed by Andreas Kling.

        dispatchStorageEvent() is not used anywhere.

        * storage/StorageAreaSync.h: Remove dispatchStorageEvent().

2014-03-09  Alexey Proskuryakov  <ap@apple.com>

        iOS build fix.

        * dom/KeyboardEvent.cpp: (WebCore::KeyboardEvent::KeyboardEvent):

2014-03-06  Alexey Proskuryakov  <ap@apple.com>

        [Mac] Don't perform a round-trip through WebProcess before interpreting key events
        https://bugs.webkit.org/show_bug.cgi?id=129812

        Reviewed by Darin Adler.

        No significant behavior changes expected, except for Esc key processing, which now
        dispatches a keypress before executing its default action.

        * platform/KeypressCommand.h: Added.
        (WebCore::KeypressCommand::KeypressCommand):
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        Moved KeypressCommand from dom/KeyboardEvent.h to its own header, as it needed
        in platform/ directory now.

        * dom/KeyboardEvent.cpp:
        (WebCore::KeyboardEvent::KeyboardEvent):
        * dom/KeyboardEvent.h:
        (WebCore::KeyboardEvent::handledByInputMethod):
        (WebCore::KeyboardEvent::keypressCommands):
        * platform/PlatformKeyboardEvent.h:
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        (WebCore::PlatformKeyboardEvent::handledByInputMethod):
        (WebCore::PlatformKeyboardEvent::commands):
        PlatformKeyboardEvent now carries results of interpreting the event by AppKit. This
        is logically not much different from carrying charcode, and is similar to what Gtk
        does for input methods.
        KeyboardEvent already had keypress commands, which were added to it after construction.
        It's still possible for WebKit1, while with WebKit2, they are provided at construction
        time. The event now also has a boolean for whether IM handled it already.

2014-03-09  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Pass FloatSize boxsize to transform animations to support device pixel sizing.
        https://bugs.webkit.org/show_bug.cgi?id=129985

        Reviewed by Simon Fraser.

        This is in preparation to stop passing integral positioned boxes to transform animations.

        No change in behavior.

        * WebCore.exp.in:
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::addAnimation):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::getTransformFunctionValue):
        (WebCore::GraphicsLayerCA::addAnimation):
        (WebCore::GraphicsLayerCA::appendToUncommittedAnimations):
        (WebCore::GraphicsLayerCA::createTransformAnimationsFromKeyframes):
        (WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
        (WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::startTransition):

2014-03-08  Simon Fraser  <simon.fraser@apple.com>

        [iOS Wk2] Can't scroll after going back to page in page cache
        https://bugs.webkit.org/show_bug.cgi?id=129989
        <rdar://problem/16217588>

        Reviewed by Dan Bernstein.

        iOS has a special FrameLoader::forceLayoutWithoutRecalculatingStyle()
        function that is called instead of FrameView::forceLayout(). This was unimplemented
        for the WK2 FrameLoaderClient, so no layout was forced, with the result
        that the contentSize was never updated and scrolling was broken.
        
        Fix by renaming the client function to forceLayoutOnRestoreFromPageCache()
        and having it return a bool to say whether the default forceLayout()
        should be done. WK1 can then continue to have its custom behavior,
        and Wk2 will simply do a forceLayout().
        
        Also remove FrameLaoderClient::forceLayout(), which was never called.

        * loader/EmptyClients.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::commitProvisionalLoad):
        * loader/FrameLoaderClient.h:

2014-03-08  Simon Fraser  <simon.fraser@apple.com>

        [iOS WK2] Get position:fixed working slighlty better
        https://bugs.webkit.org/show_bug.cgi?id=129988

        Reviewed by Dan Bernstein.

        On iOS we want to use the viewport-constrained visible rect, not
        just the visible rect.

        * page/scrolling/AsyncScrollingCoordinator.cpp:
        (WebCore::AsyncScrollingCoordinator::frameViewLayoutUpdated):

2014-03-07  Simon Fraser  <simon.fraser@apple.com>

        [iOS] Don't call scrollOffsetForFixedPosition a second time if we have no header and footer layers
        https://bugs.webkit.org/show_bug.cgi?id=129912

        Reviewed by Tim Horton.

        Avoid extra work if we have no header or footer layers.

        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.mm:
        (WebCore::ScrollingTreeScrollingNodeIOS::setScrollLayerPosition):

2014-03-08  Zalan Bujtas  <zalan@apple.com>

        RenderElement::valueForLength() callers misuse bool parameter.
        https://bugs.webkit.org/show_bug.cgi?id=129982

        Reviewed by Andreas Kling.

        Remove bogus RenderView* parameter.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computePercentageLogicalHeight):
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::repaintAfterLayoutIfNeeded):

2014-03-08  Jeremy Jones  <jeremyj@apple.com>

        Allow media element to supply the video layer after fullscreen transition has already begun.
        https://bugs.webkit.org/show_bug.cgi?id=129870

        Reviewed by Eric Carlson.

        Instead of borrowing the videolayer from the HTMLMediaElement, WebVideoFullscreen now supplies a layer to HTMLMediaElement to fill in as needed and at the appropriate time.

        This allows fullscreen even if the video layer hasn't yet been created. And in the future it allows MediaPlayer to supply other layers such as closed captions. 

        * WebCore.exp.in:
        Remove exports related to borrowing and lend the video layer.
        Add exports for supplying a layer to fullscreen and keepying the frame and gravity properties in sync.

        * html/HTMLMediaElement.cpp:
        Remove the concept of borrowing the platform layer.
        Add the concept of a supplied m_videoFullscreenLayer, into which the media player can add layers.
        When the m_videoFullscreenFrame is supplied, don't show the video layer inline any more.
        Stash video layer properties in case the media player is not yet created.

        (WebCore::HTMLMediaElement::HTMLMediaElement):
        Initialize gravity to the default. Remove m_platformLayerBorrowed.

        (WebCore::HTMLMediaElement::platformLayer):
        When we have a m_videoFullscreenLayer, don't show video inline.

        (WebCore::HTMLMediaElement::setVideoFullscreenLayer):
        Pass along the m_videoFullscreenLayer to the MediaPlayer if available or just stash it for later.

        (WebCore::HTMLMediaElement::createMediaPlayer):
        Pass along video fullscreen properties that we may have accumulated before the MediaPlayer was created.

        (WebCore::HTMLMediaElement::setVideoFullscreenGravity):
        Stash the gravity property, pass it along to the media player if possible.

        * html/HTMLMediaElement.h:
        Remove concept of borrowing the video layer. Add properties for a supplied videoFullscreenLayer.

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::setVideoFullscreenLayer):
        Forward on to internal implementation.

        (WebCore::MediaPlayer::setVideoFullscreenFrame):
        Forward on to internal implementation.

        (WebCore::MediaPlayer::setVideoFullscreenGravity):
        Forward on to internal implementation.

        * platform/graphics/MediaPlayer.h:
        Add methods for video fullscreen Layer, Frame and Gravity.

        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenLayer):
        Add default implementation.

        (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenFrame):
        Add default implementation.
        
        (WebCore::MediaPlayerPrivateInterface::setVideoFullscreenGravity):
        Add default implementation.
        
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        Add support for fullscreen video layer, frame and gravity.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC):
        Init m_videoFullscreenGravity. 

        (WebCore::MediaPlayerPrivateAVFoundationObjC::createVideoLayer):
        Apply cached properties once video layer is created and add to the fullscreen layer.

        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenLayer):
        Cache the property value. Add video layer right away available.

        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenFrame):
        Cache the property value. Apply to video layer right away if available.

        (WebCore::MediaPlayerPrivateAVFoundationObjC::setVideoFullscreenGravity):
        Cache the property value. Apply to video layer right away if available.

        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.

        (-[WebVideoFullscreenController enterFullscreen:]):
        Supply a fullscreen video layer to the WebVideoFullscreenModel and to the WebVideoFullscreenInterface.

        (-[WebVideoFullscreenController didExitFullscreen]):
        Clean up the videoFullscreenLayer.

        * platform/ios/WebVideoFullscreenInterface.h:
        Remove methods related to lending the video layer.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.
        Remove functions related to lending the video layer.
        Supply a layer directly to enterFullscreen.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (+[WebAVVideoLayer videoLayer]):
        Rename WebAVPlayer layer to WebAVVideoLayer to match the AVKit name.

        (-[WebAVVideoLayer setPlayerController:]):
        Store the AVPlayerController to prevent AVKit's default behavior.

        (-[WebAVVideoLayer setBounds:]):
        Forward this onto the WebVideoFullscreenModel

        (-[WebAVVideoLayer setVideoLayerGravity:]):
        Forward this onto the WebVideoFullscreenModel

        (-[WebAVVideoLayer videoLayerGravity]):
        Forward this onto the WebVideoFullscreenModel

        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
        Supply a video layer directly instead of relying on one being previously loaned.

        (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
        Clean-up now assumes there is a video layer.

        * platform/ios/WebVideoFullscreenModel.h:
        Remove methods for borrowing and returning video layers.
        Add methods for keeping video layer state in sync.

        * platform/ios/WebVideoFullscreenModelMediaElement.h:
        Remove methods for borrowing and returning video layers.
        Add method for supplying a video fullscreen layer.
        Add methods for keeping video layer state in sync.

        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::setMediaElement):
        Handle audio element case by setting hasVideo to false.

        (WebVideoFullscreenModelMediaElement::setVideoFullscreenLayer):
        Pass along the video fullscreen layer to the media element.

        (WebVideoFullscreenModelMediaElement::setVideoLayerFrame):
        Pass along the video layer frame to the media element.

        (WebVideoFullscreenModelMediaElement::setVideoLayerGravity):
        Pass along the video layer gravity to the media element.

2014-03-08  Jae Hyun Park  <jaepark@webkit.org>

        Clean up PlatformLayer.h
        https://bugs.webkit.org/show_bug.cgi?id=129967

        Reviewed by Martin Robinson.

        * platform/graphics/PlatformLayer.h:
        Remove duplicated declaration of PlatformLayer when using TextureMapper.

2014-03-08  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Simple compositing container layer (isSimpleContainerCompositingLayer) paints to wrong position.
        https://bugs.webkit.org/show_bug.cgi?id=129861

        Reviewed by Simon Fraser.

        This patch ensures that both the simple and non-simple cases paint to the same position.
        Simple compositing container layer codepath needs to take the fractional device pixel offset
        into account when painting. Without the fractional value, the final paint rounding could push the
        paint offset to a different position.
        retina example:
        compositing top-left: 0px 0px.
        fractional offset: 0.3px 0.3px
        painting coords without offseting: 0px 0px
                           with offseting: 0.5px 0.5px

        Tests: compositing/hidpi-simple-container-layer-on-device-pixel.html

        * WebCore.exp.in:
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::contentsRect):
        (WebCore::GraphicsLayer::setContentsRect):
        (WebCore::GraphicsLayer::contentsClippingRect):
        (WebCore::GraphicsLayer::setContentsClippingRect):
        * platform/graphics/ca/GraphicsLayerCA.cpp:
        (WebCore::GraphicsLayerCA::setContentsRect):
        (WebCore::GraphicsLayerCA::setContentsClippingRect):
        (WebCore::GraphicsLayerCA::updateContentsRects):
        * platform/graphics/ca/GraphicsLayerCA.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundColor):
        (WebCore::RenderLayerBacking::updateDirectlyCompositedBackgroundImage):
        (WebCore::RenderLayerBacking::contentOffsetInCompostingLayer):
        (WebCore::RenderLayerBacking::backgroundBoxForPainting):
        * rendering/RenderLayerBacking.h:

2014-03-08  Oliver Hunt  <oliver@apple.com>

        SerializedScriptValue may move Identifiers between worlds
        https://bugs.webkit.org/show_bug.cgi?id=129979

        Reviewed by Andreas Kling.

        Test: fast/workers/worker-copy-shared-blob-url.html

        Don't use Strings to store blob URLs as String's may be Identifiers
        and they can only exist in one world/thread at a time.

        * Modules/indexeddb/IDBObjectStore.cpp:
        (WebCore::IDBObjectStore::put):
        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::CloneDeserializer::deserializeString):
        (WebCore::SerializedScriptValue::addBlobURL):
        (WebCore::SerializedScriptValue::SerializedScriptValue):
        * bindings/js/SerializedScriptValue.h:

2014-03-07  Timothy Hatcher  <timothy@apple.com>

        Load source maps and their resources asynchronously.

        https://bugs.webkit.org/show_bug.cgi?id=112071

        Reviewed by Joseph Pecoraro.

        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::buildObjectForFrameTree):
        Honor the hiddenFromInspector flag.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::willSendRequest):
        (WebCore::InspectorResourceAgent::markResourceAsCached):
        (WebCore::InspectorResourceAgent::didReceiveResponse):
        (WebCore::InspectorResourceAgent::didReceiveData):
        (WebCore::InspectorResourceAgent::didFinishLoading):
        (WebCore::InspectorResourceAgent::didFailLoading):
        (WebCore::InspectorResourceAgent::replayXHR):
        (WebCore::InspectorResourceAgent::loadResource):
        * inspector/InspectorResourceAgent.h:
        Honor the hiddenFromInspector flag by keeping track of
        hidden identifiers in a HashSet.

        * inspector/protocol/Network.json:
        (Network.loadResource): Added.

        * platform/network/ResourceRequestBase.h:
        (WebCore::ResourceRequestBase::hiddenFromInspector): Added.
        (WebCore::ResourceRequestBase::setHiddenFromInspector): Added.
        (WebCore::ResourceRequestBase::ResourceRequestBase):
        Add a flag to hide the request from the Inspector.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::XMLHttpRequest):
        (WebCore::XMLHttpRequest::sendForInspector): Added.
        (WebCore::XMLHttpRequest::sendForInspectorXHRReplay): Renamed.
        (WebCore::XMLHttpRequest::createRequest):
        * xml/XMLHttpRequest.h:
        Make Inspector loads allow cross-origins and hide their request
        from the Inspector itself.

2014-03-07  Tim Horton  <timothy_horton@apple.com>

        [WebKit2][iOS] PDF
        https://bugs.webkit.org/show_bug.cgi?id=129600
        <rdar://problem/15260216>

        Reviewed by Anders Carlsson.

        * WebCore.exp.in:
        * platform/MIMETypeRegistry.cpp:
        (WebCore::initializeSupportedImageMIMETypes):
        (WebCore::initializePDFMIMETypes):
        (WebCore::initializePostScriptMIMETypes):
        (WebCore::initializeMIMETypeRegistry):
        (WebCore::MIMETypeRegistry::getPDFMIMETypes):
        * platform/MIMETypeRegistry.h:
        Split PDF and PostScript MIME types, so WebKit2 can retrieve just the PDF ones
        without PostScript included.

2014-03-07  Myles C. Maxfield  <mmaxfield@apple.com>

        Comment in RenderStyle is no longer accurate
        https://bugs.webkit.org/show_bug.cgi?id=129956

        Reviewed by Simon Fraser.

        RenderStyle::createStyleInheritingFromPseudoStyle was moved from RenderImage. Before it
        was moved, there was an image-specific comment in the function. However, that comment
        is both irrelevant to RenderStyle, and incorrect as the function is necessary for
        RenderQuotes as well.

        No new tests are necessary because there is no behavior change.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::createStyleInheritingFromPseudoStyle):

2014-03-07  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WebRTC] Throw SYNTAX_ERROR when maxRetransmits and maxRetransmitTime are both set in RTCDataChannelInit
        https://bugs.webkit.org/show_bug.cgi?id=129894

        Reviewed by Eric Carlson.

        Existing test was updated.

        * Modules/mediastream/RTCDataChannel.cpp:
        (WebCore::RTCDataChannel::create):

2014-03-07  Benjamin Poulain  <bpoulain@apple.com>

        Fix the regression introduced by r165288
        https://bugs.webkit.org/show_bug.cgi?id=129934

        Reviewed by Ryosuke Niwa.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::scrollX):
        (WebCore::DOMWindow::scrollY):
        We need to return the new value after layout, not the value from the dirty tree.

2014-03-07  Benjamin Poulain  <benjamin@webkit.org>

        Traversal failure in a direct adjacent chain with tail backtracking lacks the path to clear the tail
        https://bugs.webkit.org/show_bug.cgi?id=129863

        Reviewed by Gavin Barraclough.

        Direct adjacent backtracking use the stack to push the backtracking entry point and recover from there.
        In case of traversal failure, their is no point in recovering from the indirect adjancent entry point and
        we should clear entry point from the stack (which is the purpose of the tail).

        The adjancent tail was missing the part for clearing the stack in one case.

        The case with adjancent backtracking inside descendant backtracing was doing everything right. This patch
        generalize this code and the correct tail is fully generated by generateAdjacentBacktrackingTail().

        JumpToClearAdjacentDescendantTail becomes JumpToClearAdjacentTail, and this new backtracking state is added
        to the missing traversal action.

        Test: fast/selectors/long-adjacent-backtracking.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::solveBacktrackingAction):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::linkFailures):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateAdjacentBacktrackingTail):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateBacktrackingTailsIfNeeded):

2014-03-07  Andreas Kling  <akling@apple.com>

        [Mac] Notify system malloc of fake memory pressure.
        <https://webkit.org/b/129908>

        After fixing the leak in r165252, I was surprised to find that it didn't
        show up on memory test bots. It turns out that while the memory is now
        getting freed, the system malloc implementation doesn't actually release
        pages back to the OS until there is memory pressure.

        Since we are just faking the memory pressure on bots, we have to let
        system malloc in on the fun, so we can get representative numbers.
        With this change, we should finally see the effect of not leaking the
        URLRequest object tree.

        Reviewed by Anders Carlsson.

        * platform/mac/MemoryPressureHandlerMac.mm:
        (WebCore::MemoryPressureHandler::install):

            Tell system malloc that we are under fake memory pressure.

2014-03-07  Benjamin Poulain  <bpoulain@apple.com>

        [iOS] WebKit1 scroll position is incorrect
        https://bugs.webkit.org/show_bug.cgi?id=129905

        Reviewed by Simon Fraser.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::scrollX):
        (WebCore::DOMWindow::scrollY):
        A new optimization was avoiding layout if the position is zero. This was using the scrollX/Y instead
        of actualScrollX/Y which caused us to always bail out instead of returning the value to JavaScript.

        * platform/ScrollView.h:
        (WebCore::ScrollView::actualScrollX):
        (WebCore::ScrollView::actualScrollY):
        (WebCore::ScrollView::actualScrollPosition):
        This was accidentally changed to the iOS compat document visible rect at some point.

2014-03-07  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Remove unused StdDeviation from Drop shadow effect
        https://bugs.webkit.org/show_bug.cgi?id=129891

        Reviewed by Dirk Schulze.

        No new tests, no change on behavior.

        * platform/graphics/filters/FEDropShadow.h:

2014-03-07  Brent Fulgham  <bfulgham@apple.com>

        Correct out-of-band track selection logic.
        https://bugs.webkit.org/show_bug.cgi?id=129900

        Reviewed by Jer Noble.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState): Correct test to
        use inequality.

2014-03-07  Bear Travis  <betravis@adobe.com>

        [CSS Shapes] Correctly serialize ellipse positions
        https://bugs.webkit.org/show_bug.cgi?id=129700

        Reviewed by Dirk Schulze.

        Updating ellipse serialization to be in line with
        the CSS Shapes spec. Positions should serialize as
        2 or 4-value positions, converting keywords to
        percentages where possible. This uses the same method
        as circle position serialization (bug 129404).

        Updated existing parsing tests.

        * css/CSSBasicShapes.cpp:
        (WebCore::CSSBasicShapeEllipse::cssText): Use the
        normalization / serialization helpers for shape position.

2014-03-07  Brian Burg  <bburg@apple.com>

        Unreviewed, rebaseline run-binding-tests results after r165242.

        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::jsTestTypedefsPrototypeFunctionCallWithSequenceThatRequiresInclude):

2014-03-07  Darin Adler  <darin@apple.com>

        Remove non-working optimization that was attempted on iOS only
        https://bugs.webkit.org/show_bug.cgi?id=129595
        <rdar://problem/15798825>

        Reviewed by Sam Weinig.

        Code in GCController tried to optimize cases where the controller
        was used, but no JavaScript had been run in the current process.
        The code was never effective, and was iOS-only. Another way to fix
        the problem would be to change the code so it works, and if we do
        that we should do it for all platforms, not just iOS.

        * bindings/js/GCController.cpp:
        (WebCore::GCController::garbageCollectNow): Remove check of
        JSDOMWindow::commonVMExists, since it's called just after a call
        to JSDOMWindow::commonVM, which will create it as a side effect.
        (WebCore::GCController::releaseExecutableMemory): Ditto.

        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::commonVM): Removed iOS-specific code
        that pulled the commonVM global out into another function so we
        can check for its existence without creating it as a side effect.

        * bindings/js/JSDOMWindowBase.h: Ditto.

2014-03-07  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] inset does not properly clamp large corner radii
        https://bugs.webkit.org/show_bug.cgi?id=129726

        Reviewed by Dirk Schulze.

        Make sure that radii that are larger than 50% of the associated shape
        dimension (height or width) are properly reduced the same way as
        border-radius radii are.

        Test: fast/shapes/shape-outside-floats/shape-outside-floats-inset-rounded-large-radius.html

        * rendering/shapes/Shape.cpp:
        (WebCore::ensureRadiiDoNotOverlap): Drive by style fix.
        (WebCore::Shape::createShape): Scale radii the same way as border
            radii are scaled.
        * platform/graphics/FloatRoundedRect.h:
        (WebCore::calcBorderRadiiConstraintScaleFor): Move border radii
            constraint calculation function out so that it can be shared by
            the shape code.
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::getRoundedBorderFor): Call renamed scale function.

2014-03-07  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GST] Set name to several timeout sources
        https://bugs.webkit.org/show_bug.cgi?id=129878

        Reviewed by Philippe Normand.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::videoChanged):
        (WebCore::MediaPlayerPrivateGStreamer::videoCapsChanged):
        (WebCore::MediaPlayerPrivateGStreamer::audioChanged):
        (WebCore::MediaPlayerPrivateGStreamer::textChanged):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamerBase.cpp:
        (WebCore::MediaPlayerPrivateGStreamerBase::volumeChanged):
        (WebCore::MediaPlayerPrivateGStreamerBase::muteChanged):

2014-03-07  Carlos Garcia Campos  <cgarcia@igalia.com>

        [GTK] Timeout sources not correctly removed
        https://bugs.webkit.org/show_bug.cgi?id=129877

        Reviewed by Philippe Normand.

        Set source ID variables to 0 after removing the sources from the
        context. Also give a name to the sources.

        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
        (WebCore::TrackPrivateBaseGStreamer::disconnect):
        (WebCore::TrackPrivateBaseGStreamer::activeChanged):
        (WebCore::TrackPrivateBaseGStreamer::tagsChanged):
        (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfActiveChanged):

2014-03-07  Gergo Balogh  <gbalogh.u-szeged@partner.samsung.com>

        Remove FFTFrameMKL.
        https://bugs.webkit.org/show_bug.cgi?id=129866

        Reviewed by Csaba Osztrogonác.

        * platform/audio/FFTFrame.h:
        * platform/audio/FFTFrameStub.cpp:
        * platform/audio/mkl/FFTFrameMKL.cpp: Removed, it is never used.

2014-03-07  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WebRTC] Adding getConfiguration method to RTCPeerConnection
        https://bugs.webkit.org/show_bug.cgi?id=129845

        Reviewed by Eric Carlson.

        Test: fast/mediastream/RTCPeerConnection-getConfiguration.html

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.list.am:
        * Modules/mediastream/RTCConfiguration.idl: Added.
        * Modules/mediastream/RTCIceServer.idl: Added.
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        (WebCore::RTCPeerConnection::updateIce):
        (WebCore::RTCPeerConnection::getConfiguration):
        * Modules/mediastream/RTCPeerConnection.h:
        * Modules/mediastream/RTCPeerConnection.idl:

2014-03-07  Jinwoo Song  <jinwoo7.song@samsung.com>

        Optimize collectionLast() and collectionTraverseBackward() in LiveNodeList
        https://bugs.webkit.org/show_bug.cgi?id=129775

        Reviewed by Ryosuke Niwa.

        Check the LiveNodeList type if it is HTMLTagNodeListType and ClassNodeListType then
        apply inlined matching methods for each type.

        * dom/LiveNodeList.cpp:
        (WebCore::lastMatchingElement): Added.
        (WebCore::previousMatchingElement): Added.
        (WebCore::traverseMatchingElementsBackward): Added.
        (WebCore::LiveNodeList::collectionLast): Apply lastMatchingElement() with LiveNodeList type.
        (WebCore::LiveNodeList::collectionTraverseBackward): Apply traverseMatchingElementsBackward()
        with LiveNodeList type.

2014-03-06  Andreas Kling  <akling@apple.com>

        WebCoreResourceHandleAsOperationQueueDelegate over-retains NSURLRequest.
        <https://webkit.org/b/129862>

        Don't retain the pointer before assigning it to a RetainPtr, since that
        will cause the object to leak.

        Reviewed by Alexey Proskuryakov.

        * platform/network/mac/WebCoreResourceHandleAsOperationQueueDelegate.mm:
        (-[WebCoreResourceHandleAsOperationQueueDelegate continueWillSendRequest:]):

2014-03-06  Dan Bernstein  <mitz@apple.com>

        Don’t copy WebInputs.json into the framework.

        * WebCore.xcodeproj/project.pbxproj: Removed WebInputs.json from the Copy Bundle Resources
        build phase of the WebCore target.

2014-03-06  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WebRTC] Updating RTCPeerConnection.idl
        https://bugs.webkit.org/show_bug.cgi?id=129804

        Reviewed by Eric Carlson.

        Some methods signatures were wrong, marking some arguments as optional when they are mandatory.

        Existing tests were updated.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::getStats):
        * Modules/mediastream/RTCPeerConnection.h:
        * Modules/mediastream/RTCPeerConnection.idl:
        * Modules/mediastream/RTCStatsRequestImpl.cpp:
        (WebCore::RTCStatsRequestImpl::create):
        (WebCore::RTCStatsRequestImpl::RTCStatsRequestImpl):
        (WebCore::RTCStatsRequestImpl::requestFailed):
        * Modules/mediastream/RTCStatsRequestImpl.h:
        * platform/mediastream/RTCStatsRequest.h:

2014-03-06  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WebRTC] Updating RTCIceServer to match spec
        https://bugs.webkit.org/show_bug.cgi?id=129844

        Reviewed by Eric Carlson.

        Move RTCIceServer from RTCConfiguration to its own file.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::validateIceServerURL):
        (WebCore::processIceServer):
        * platform/mediastream/RTCConfiguration.h:
        (WebCore::RTCConfiguration::iceServers):
        * platform/mediastream/RTCIceServer.h: Added.

2014-03-06  Hyowon Kim  <hw1008.kim@samsung.com>

        [EFL] Move EvasGL classes from WebKit to WebCore namespace.
        https://bugs.webkit.org/show_bug.cgi?id=129797

        Reviewed by Gyuyoung Kim.

        Though EvasGLContext and EvasGLSurface files were moved from WebKit2/UIProcess/API/efl/ 
        to WebCore/platform/graphics/efl/, they are still in WebKit namespace.
        Patch for namespace changes.

        * platform/graphics/efl/EvasGLContext.cpp:
        * platform/graphics/efl/EvasGLContext.h:
        * platform/graphics/efl/EvasGLSurface.cpp:
        * platform/graphics/efl/EvasGLSurface.h:

2014-03-06  Brian Burg  <bburg@apple.com>

        CodeGeneratorJS.pm doesn't need to add spaces between consecutive closing template brackets
        https://bugs.webkit.org/show_bug.cgi?id=129836

        Reviewed by Andreas Kling.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateParametersCheck):
        (GetNativeVectorInnerType):
        (GetSVGPropertyTypes):

2014-03-06  Jinwoo Song  <jinwoo7.song@samsung.com>

        Remove unused method from BatteryController
        https://bugs.webkit.org/show_bug.cgi?id=129850

        Reviewed by Gyuyoung Kim.

        isActive() method is never called anywhere.

        * Modules/battery/BatteryController.cpp:
        * Modules/battery/BatteryController.h:

2014-03-06  Pratik Solanki  <psolanki@apple.com>

        [iOS] Crash on launch with website restrictions enabled
        https://bugs.webkit.org/show_bug.cgi?id=129854
        <rdar://problem/16207016>

        Reviewed by Simon Fraser.

        * platform/mac/ContentFilterMac.mm:
        (WebCore::ContentFilter::ContentFilter): Initialize m_neFilterSourceQueue so that we don't
        crash in the dtor due to garbage value in the field.

2014-03-06  Simon Fraser  <simon.fraser@apple.com>

        Minor optimization in ScrollingTreeScrollingNodeMac
        https://bugs.webkit.org/show_bug.cgi?id=129848

        Reviewed by Dean Jackson.

        No need to call scrollOffsetForFixedPosition() again if we don't have header
        and footer layers.

        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::setScrollLayerPosition):

2014-03-06  Mark Lam  <mark.lam@apple.com>

        XMLHttpRequest: status and statusText throw DOM Exception 11 when the state is UNSENT or OPENED.
        https://bugs.webkit.org/show_bug.cgi?id=45994

        Not reviewed.

        Re-landing r161051 (originally by Ryosuke Niwa, reviewed by Alexey Proskuryakov)
        since https://bugs.webkit.org/show_bug.cgi?id=126219 is no longer an issue.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::status):
        (WebCore::XMLHttpRequest::statusText):
        * xml/XMLHttpRequest.h:
        * xml/XMLHttpRequest.idl:

2014-03-06  Brent Fulgham  <bfulgham@apple.com>

        Revise Out-of-band VTT support for better integration with AVFoundation engine
        https://bugs.webkit.org/show_bug.cgi?id=129749
        <rdar://problem/16215701>

        Reviewed by Eric Carlson.

        Revise the platform handling of out-of-band text tracks so that we can keep AVFoundation
        informed of track selections we make. Use a dummy out-of-band child of the existing text
        track classes to avoid code duplication.

        * WebCore.xcodeproj/project.pbxproj: Add new OutOfBandTextTrackPrivateAVF.h file.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute): Notify player when OOB tracks change.
        (WebCore::HTMLMediaElement::outOfBandTrackSources): Also pass track mode to platform backend.
        * html/track/TextTrack.cpp:
        (WebCore::TextTrack::platformTextTrack): Also pass track mode to constructor.
        * html/track/TrackBase.cpp:
        (WebCore::TrackBase::TrackBase): Move ownership of track unique identifier to this base class.
        * html/track/TrackBase.h:
        (WebCore::TrackBase::uniqueId): Ditto.
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::notifyTrackModeChanged): Added stub to pass message to platform player.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::notifyTrackModeChanged): Stub for most platforms.
        * platform/graphics/PlatformTextTrack.h:
        (WebCore::PlatformTextTrack::create): Update for revised constructor (with 'mode' argument).
        (WebCore::PlatformTextTrack::createOutOfBand): Ditto.
        (WebCore::PlatformTextTrack::mode): Added.
        (WebCore::PlatformTextTrack::captionMenuOffItem): Use revised constructor arguments.
        (WebCore::PlatformTextTrack::captionMenuAutomaticItem): Ditto.
        (WebCore::PlatformTextTrack::PlatformTextTrack): Ditto.
        * platform/graphics/avfoundation/InbandTextTrackPrivateAVF.h: Change predicate to return enum indicating the category
        of track (out-of-band, legacy closed caption, or in band).
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        (WebCore::MediaPlayerPrivateAVFoundation::notifyTrackModeChanged): Added.
        * platform/graphics/avfoundation/cf/InbandTextTrackPrivateAVCF.h: Override predicate to return category enum.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp: Revise to use new category enum.
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateAVFObjC.h: Override predicate to return category enum.
        that this is NOT an out-of-band track.
        * platform/graphics/avfoundation/objc/InbandTextTrackPrivateLegacyAVFObjC.h: Ditto.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::notifyTrackModeChanged): Added implementation.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): Revise to handle out-of-band
        track placeholders.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setCurrentTrack): Modify to inform AVFoundation about any
        out-of-band tracks we've selected.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::synchronizeTextTrackState): Added.
        * platform/graphics/avfoundation/objc/OutOfBandTextTrackPrivateAVF.h: Added.
        (WebCore::OutOfBandTextTrackPrivateAVF::create):
        (WebCore::OutOfBandTextTrackPrivateAVF::processCue):
        (WebCore::OutOfBandTextTrackPrivateAVF::resetCueValues):
        (WebCore::OutOfBandTextTrackPrivateAVF::mediaSelectionOption):
        (WebCore::OutOfBandTextTrackPrivateAVF::OutOfBandTextTrackPrivateAVF):
        (WebCore::OutOfBandTextTrackPrivateAVF::processCueAttributes):
        * platform/graphics/ios/InbandTextTrackPrivateAVFIOS.h: Override predicate to indicate
        that this is NOT an out-of-band track.
        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
        (WebCore::MediaPlayerPrivateIOS::setSelectedTextTrack): Correct typo in logging text.

2014-03-06  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WebRTC] Updating createOffer and createAnswer methods to match WebRTC editor's draft of 01/27/2014
        https://bugs.webkit.org/show_bug.cgi?id=129484

        Reviewed by Eric Carlson.

        According to the spec, createOffer and createAnswer will no longer have MediaConstraints as an argument,
        instead they will have RTCOfferOptions and RTCOfferAnswerOptions, respectively.

        Existing tests were updated.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/mediastream/RTCOfferAnswerOptions.cpp: Added.
        * Modules/mediastream/RTCOfferAnswerOptions.h: Added.
        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::createOffer):
        (WebCore::RTCPeerConnection::createAnswer):
        * Modules/mediastream/RTCPeerConnection.h:
        * Modules/mediastream/RTCPeerConnection.idl:
        * platform/mediastream/RTCPeerConnectionHandler.h:
        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
        (WebCore::RTCPeerConnectionHandlerMock::createOffer):
        (WebCore::RTCPeerConnectionHandlerMock::createAnswer):
        * platform/mock/RTCPeerConnectionHandlerMock.h:

2014-03-06  Brian Burg  <bburg@apple.com>

        Web Replay: premature release() of PassRefPtr in InspectorReplayAgent
        https://bugs.webkit.org/show_bug.cgi?id=129827

        Reviewed by Timothy Hatcher.

        * inspector/InspectorReplayAgent.cpp:
        (WebCore::InspectorReplayAgent::didCreateFrontendAndBackend):

2014-03-06  Benjamin Poulain  <bpoulain@apple.com>

        [iOS] Do not compile fake mouse event handling when iOS Touch Events are enabled
        https://bugs.webkit.org/show_bug.cgi?id=129725

        Reviewed by Dan Bernstein.

        Bug <rdar://problem/16218636>. The code is #ifdef'ed out to avoid setting up useless objects
        and to avoid future mistake.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler):
        (WebCore::EventHandler::~EventHandler):
        (WebCore::EventHandler::clear):
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::startAutoHideCursorTimer):
        (WebCore::EventHandler::handleMouseMoveEvent):
        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoon):
        (WebCore::EventHandler::dispatchFakeMouseMoveEventSoonInQuad):
        * page/EventHandler.h:

2014-03-06  Pratik Solanki  <psolanki@apple.com>

        Unreviewed. iOS build fix after r165199.

        * rendering/RootInlineBox.cpp:

2014-03-06  Benjamin Poulain  <bpoulain@apple.com>

        [iOS] Rename the actualVisibleXXXRect to unobscuredContentRect for consistency
        https://bugs.webkit.org/show_bug.cgi?id=129773

        Reviewed by Simon Fraser.

        * dom/TreeScope.cpp:
        (WebCore::nodeFromPoint):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::visibleContentRectInternal):
        * platform/ScrollView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::unoscuredContentRect):
        * platform/ios/wak/WAKScrollView.h:
        * platform/ios/wak/WAKScrollView.mm:
        (-[WAKScrollView unoscuredContentRect]):
        (-[WAKScrollView description]):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::scrollRectToVisible):

2014-03-05  Oliver Hunt  <oliver@apple.com>

        Support caching of custom setters
        https://bugs.webkit.org/show_bug.cgi?id=129519

        Reviewed by Filip Pizlo.

        Add forwarding header

        Tests: js/regress/assign-custom-setter-polymorphic.html
               js/regress/assign-custom-setter.html

        * ForwardingHeaders/jit/SpillRegistersMode.h: Added.

2014-03-05  Jon Honeycutt  <jhoneycutt@apple.com>

        Invalid cast in WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients()

        <https://bugs.webkit.org/show_bug.cgi?id=121887>
        <rdar://problem/15073043>

        Clang appears to be optimizing out a branch in RenderObject::node()
        when compiling RenderLayer::FilterInfo::updateReferenceFilterClients().
        We'll work around this by factoring out the code in question into a
        separate member function marked NEVER_INLINE.

        No test possible due to <https://bugs.webkit.org/show_bug.cgi?id=129757>.

        Reviewed by David Kilzer.

        * rendering/RenderLayerFilterInfo.cpp:
        (WebCore::RenderLayer::FilterInfo::layerElement):
        Code moved from updateReferenceFilterClients(). Returns the Element*
        for m_layer.
        (WebCore::RenderLayer::FilterInfo::updateReferenceFilterClients):
        Use layerElement().

        * rendering/RenderLayerFilterInfo.h:
        Declared layerElement().

2014-03-06  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Expose the console object in JSContexts to interact with Web Inspector
        https://bugs.webkit.org/show_bug.cgi?id=127944

        Reviewed by Geoffrey Garen.

        Covered by existing tests.

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * ForwardingHeaders/runtime/ConsoleClient.h: Added.
        * ForwardingHeaders/runtime/ConsoleTypes.h: Renamed from Source/WebCore/ForwardingHeaders/inspector/ConsoleTypes.h.
        * GNUmakefile.list.am:
        * PlatformGTK.cmake:
        * WebCore.exp.in:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/gobject/GNUmakefile.am:
        Update build systems.

        * page/Console.cpp: Removed.
        * page/Console.h: Removed.
        * page/Console.idl: Removed.
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::~DOMWindow):
        (WebCore::DOMWindow::resetDOMWindowProperties):
        * page/DOMWindow.h:
        (WebCore::DOMWindow::defaultStatus):
        * page/DOMWindow.idl:
        Removed the old IDL generated Console object on window.

        * page/PageConsole.cpp:
        (WebCore::PageConsole::shouldPrintExceptions):
        (WebCore::PageConsole::setShouldPrintExceptions):
        (WebCore::PageConsole::mute):
        (WebCore::PageConsole::unmute):
        (WebCore::PageConsole::messageWithTypeAndLevel):
        (WebCore::PageConsole::count):
        (WebCore::PageConsole::profile):
        (WebCore::PageConsole::profileEnd):
        (WebCore::PageConsole::time):
        (WebCore::PageConsole::timeEnd):
        (WebCore::PageConsole::timeStamp):
        (WebCore::PageConsole::group):
        (WebCore::PageConsole::groupCollapsed):
        (WebCore::PageConsole::groupEnd):
        (WebCore::PageConsole::clearProfiles):
        * page/PageConsole.h:
        Move the handling of Console object into PageConsole.

        * bindings/js/ScriptCachedFrameData.cpp:
        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
        (WebCore::ScriptCachedFrameData::restore):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::clearWindowShell):
        (WebCore::ScriptController::initScript):
        Set the PageConsole as the ConsoleClient of the JSGlobalObject
        so that WebCore may handle console messages directly. For instance
        it may pass messages on to the ChromeClient.

        * testing/Internals.cpp:
        (WebCore::Internals::consoleProfiles):
        To access profiles, go through PageConsole now instead of Console.

        * bindings/js/JSDOMWindowBase.cpp:
        * bindings/objc/WebScriptObject.mm:
        * css/MediaList.cpp:
        * dom/ScriptExecutionContext.h:
        * dom/UIEvent.cpp:
        * dom/ViewportArguments.cpp:
        * html/parser/XSSAuditorDelegate.cpp:
        * inspector/CommandLineAPIHost.h:
        * inspector/InspectorInstrumentation.cpp:
        * inspector/InspectorInstrumentation.h:
        * inspector/InspectorProfilerAgent.cpp:
        * inspector/WebConsoleAgent.cpp:
        * loader/FrameLoader.cpp:
        * loader/MixedContentChecker.cpp:
        * loader/appcache/ApplicationCacheGroup.cpp:
        * loader/cache/CachedResourceLoader.cpp:
        * page/ChromeClient.h:
        * page/ContentSecurityPolicy.cpp:
        * page/Page.cpp:
        * page/Page.h:
        * svg/SVGDocumentExtensions.cpp:
        * workers/WorkerMessagingProxy.cpp:
        * workers/WorkerReportingProxy.h:
        Update includes.

2014-03-06  Zsolt Borbely  <borbezs@inf.u-szeged.hu>

        Fix the !ENABLE(CSS_STICKY_POSITION) build
        https://bugs.webkit.org/show_bug.cgi?id=129793

        Reviewed by Simon Fraser.

        Add missing ENABLE(CSS_STICKY_POSITION) guard to EditingStyle::convertPositionStyle().

        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::convertPositionStyle):

2014-03-06  Joseph Pecoraro  <pecoraro@apple.com>

        [Mac] Leak: dispatch_semaphore leak allocated in MediaPlayerPrivateAVFoundationObjC::waitForVideoOutputMediaDataWillChange
        https://bugs.webkit.org/show_bug.cgi?id=129792

        Reviewed by Anders Carlsson.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::~MediaPlayerPrivateAVFoundationObjC):

2014-03-06  Brendan Long  <b.long@cablelabs.com>

        Implement VideoTrackList.selectedIndex
        https://bugs.webkit.org/show_bug.cgi?id=129770

        Reviewed by Eric Carlson.

        Tests: media/track/video/video-track-mkv-theora-selected.html

        * html/track/VideoTrackList.idl:

2014-03-06  Lorenzo Tilve  <ltilve@igalia.com>

        [GTK][CMake] Fix the GTK+ CMake build
        https://bugs.webkit.org/show_bug.cgi?id=129801

        Reviewed by Martin Robinson.

        Include missing files for CMake build

        * CMakeLists.txt: Add a missing references to DOMURLMediaStream

2014-03-06  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Setting content to opaque on m_graphicsLayer depends on subpixel accumulation.
        https://bugs.webkit.org/show_bug.cgi?id=129776

        Reviewed by Simon Fraser.

        isEmpty() returns true when any of the dimensions is <= 0. Subpixel accumulation could happen
        in one direction only. Use isZero() instead().

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):

2014-03-06  Gurpreet Kaur  <k.gurpreet@samsung.com>

        REGRESSION (r158254): Rubber-banding at Bing image search causes the toolbar to move up and away
        https://bugs.webkit.org/show_bug.cgi?id=128873

        Reviewed by Antonio Gomes.

        This regression is caused by  http://trac.webkit.org/changeset/154614 
        and http://trac.webkit.org/changeset/156605. So reverting the changes
        to make it Web compatible as earlier.

        * dom/Element.cpp:
        (WebCore::Element::scrollLeft):
        (WebCore::Element::scrollTop):
        (WebCore::Element::setScrollLeft):
        (WebCore::Element::setScrollTop):
        Reverting changes as it caused regression.

2014-03-06  Zan Dobersek  <zdobersek@igalia.com>

        Move Source/WebCore/html/canvas/ code to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=129668

        Reviewed by Anders Carlsson.

        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/html/canvas/ to std::unique_ptr.

        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
        (WebCore::HTMLCanvasElement::getContext):
        * html/HTMLCanvasElement.h:
        * html/canvas/ANGLEInstancedArrays.cpp:
        * html/canvas/ANGLEInstancedArrays.h:
        * html/canvas/CanvasRenderingContext2D.h:
        * html/canvas/EXTTextureFilterAnisotropic.cpp:
        * html/canvas/EXTTextureFilterAnisotropic.h:
        * html/canvas/OESElementIndexUint.cpp:
        * html/canvas/OESElementIndexUint.h:
        * html/canvas/OESStandardDerivatives.cpp:
        * html/canvas/OESStandardDerivatives.h:
        * html/canvas/OESTextureFloat.cpp:
        * html/canvas/OESTextureFloat.h:
        * html/canvas/OESTextureFloatLinear.cpp:
        * html/canvas/OESTextureFloatLinear.h:
        * html/canvas/OESTextureHalfFloat.cpp:
        * html/canvas/OESTextureHalfFloat.h:
        * html/canvas/OESTextureHalfFloatLinear.cpp:
        * html/canvas/OESTextureHalfFloatLinear.h:
        * html/canvas/OESVertexArrayObject.cpp:
        * html/canvas/OESVertexArrayObject.h:
        * html/canvas/WebGLCompressedTextureATC.cpp:
        * html/canvas/WebGLCompressedTextureATC.h:
        * html/canvas/WebGLCompressedTexturePVRTC.cpp:
        * html/canvas/WebGLCompressedTexturePVRTC.h:
        * html/canvas/WebGLCompressedTextureS3TC.cpp:
        * html/canvas/WebGLCompressedTextureS3TC.h:
        * html/canvas/WebGLDebugRendererInfo.cpp:
        * html/canvas/WebGLDebugRendererInfo.h:
        * html/canvas/WebGLDebugShaders.cpp:
        * html/canvas/WebGLDebugShaders.h:
        * html/canvas/WebGLDepthTexture.cpp:
        * html/canvas/WebGLDepthTexture.h:
        * html/canvas/WebGLDrawBuffers.cpp:
        * html/canvas/WebGLDrawBuffers.h:
        * html/canvas/WebGLLoseContext.cpp:
        * html/canvas/WebGLLoseContext.h:
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::create):
        (WebCore::WebGLRenderingContext::getExtension):
        * html/canvas/WebGLRenderingContext.h:

2014-03-06  Zan Dobersek  <zdobersek@igalia.com>

        Move Source/WebCore/editing/ code to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=129665

        Reviewed by Anders Carlsson.

        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/editing/ with std::unique_ptr.

        * editing/EditingStyle.cpp:
        (WebCore::htmlElementEquivalents):
        (WebCore::EditingStyle::conflictsWithImplicitStyleOfElement):
        (WebCore::htmlAttributeEquivalents):
        (WebCore::EditingStyle::conflictsWithImplicitStyleOfAttributes):
        (WebCore::EditingStyle::extractConflictingImplicitStyleOfAttributes):
        (WebCore::EditingStyle::elementIsStyledSpanOrHTMLEquivalent):
        (WebCore::EditingStyle::mergeInlineAndImplicitStyleOfElement):
        * editing/Editor.cpp:
        (WebCore::Editor::Editor):
        (WebCore::Editor::clear):
        * editing/Editor.h:
        * page/Frame.cpp:
        (WebCore::Frame::Frame):
        * page/Frame.h:

2014-03-06  Zan Dobersek  <zdobersek@igalia.com>

        Move to using std::unique_ptr for KeyboardEvent, ScriptExecutionContext::PendingException
        https://bugs.webkit.org/show_bug.cgi?id=129061

        Reviewed by Eric Carlson.

        Replace uses of OwnPtr and PassOwnPtr for KeyboardEvent and ScriptExecutionContext::PendingException
        classes with std::unique_ptr. ScriptExecutionContext::Task objects are still handled through OwnPtr,
        but this will be addressed later.

        * dom/KeyboardEvent.cpp:
        (WebCore::KeyboardEvent::KeyboardEvent):
        * dom/KeyboardEvent.h:
        * dom/ScriptExecutionContext.cpp:
        (WebCore::ScriptExecutionContext::reportException):
        * dom/ScriptExecutionContext.h:
        * dom/ScriptRunner.h: Remove an unnecessary PassOwnPtr header inclusion.

2014-03-06  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165175.
        http://trac.webkit.org/changeset/165175
        https://bugs.webkit.org/show_bug.cgi?id=129788

        Linking failures on GTK, EFL due to missing gstreamer-tag-1.0
        dependency (Requested by zdobersek on #webkit).

        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
        (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged):

2014-03-05  Brendan Long  <b.long@cablelabs.com>

        [GStreamer] human readable language code for tracks
        https://bugs.webkit.org/show_bug.cgi?id=124514

        Reviewed by Philippe Normand.

        * platform/graphics/gstreamer/TrackPrivateBaseGStreamer.cpp:
        (WebCore::TrackPrivateBaseGStreamer::notifyTrackOfTagsChanged): Run language codes though gst_tag_get_language_code_iso_639_1() to make sure they're valid.

2014-03-05  Ryuan Choi  <ryuan.choi@samsung.com>

        Remove unused method from Vibration
        https://bugs.webkit.org/show_bug.cgi?id=129732

        Reviewed by Gyuyoung Kim.

        * Modules/vibration/Vibration.cpp:
        Removed isActive(), which is never called since r152441.
        * Modules/vibration/Vibration.h: Ditto.

2014-03-05  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165141, r165157, and r165158.
        http://trac.webkit.org/changeset/165141
        http://trac.webkit.org/changeset/165157
        http://trac.webkit.org/changeset/165158
        https://bugs.webkit.org/show_bug.cgi?id=129772

        "broke ftl" (Requested by olliej_ on #webkit).

        * ForwardingHeaders/jit/SpillRegistersMode.h: Removed.

2014-03-05  Martin Robinson  <mrobinson@igalia.com>

        [GTK][CMake] The GObject DOM bindings should always be built
        https://bugs.webkit.org/show_bug.cgi?id=127963

        Reviewed by Ryosuke Niwa.

        * PlatformGTK.cmake: Make compilation of the WebKitGTK+ GObject DOM bindings
        unconditional, instead of conditional on the WebKit2 build.

2014-03-05  Jer Noble  <jer.noble@apple.com>

        [MSE] Crash in SourceBuffer::sourceBufferPrivateDidReceiveSample() - received samples after SourceBuffer was removed.
        https://bugs.webkit.org/show_bug.cgi?id=129761

        Reviewed by Eric Carlson.

        Guard against the possibility that SourceBufferPrivates will continue to generate samples even after
        a parse error. Bail out early from sourceBufferPrivateDidReceiveInitializationSegment and
        sourceBufferPrivateDidReceiveSample if the SourceBuffer has been removed.

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveInitializationSegment):
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample):

2014-03-05  Enrica Casucci  <enrica@apple.com>

        Build fix, take 2.

        * platform/mac/HTMLConverter.mm:

2014-03-05  Enrica Casucci  <enrica@apple.com>

        Build fix.

        * platform/mac/HTMLConverter.mm:

2014-03-05  Enrica Casucci  <enrica@apple.com>

        Crash when copying content that contains <sup>.
        https://bugs.webkit.org/show_bug.cgi?id=129765
        <rdar://problem/16139498>
        
        Reviewed by Benjamin Poulain.

        Adding static definition of NSAttributeSuperscriptName.

        * platform/mac/HTMLConverter.mm:

2014-03-05  Gavin Barraclough  <barraclough@apple.com>

        https://bugs.webkit.org/show_bug.cgi?id=128625
        Add fast mapping from StringImpl to JSString

        Unreviewed roll-out.

        Reverting r164347, r165054, r165066 - not clear the performance tradeoff was right.

        * bindings/js/DOMWrapperWorld.cpp:
        (WebCore::DOMWrapperWorld::clearWrappers):
        * bindings/js/DOMWrapperWorld.h:
        * bindings/js/JSDOMBinding.h:
        (WebCore::jsStringWithCache):
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::commonVM):
        * bindings/scripts/StaticString.pm:
        (GenerateStrings):

2014-03-05  Daniel Bates  <dabates@apple.com>
            And Alexey Proskuryakov  <ap@apple.com>

        ASSERT(newestManifest) fails in WebCore::ApplicationCacheGroup::didFinishLoadingManifest()
        https://bugs.webkit.org/show_bug.cgi?id=129753
        <rdar://problem/12069835>

        Reviewed by Alexey Proskuryakov.

        Fixes an issue where an assertion failure would occur when visiting a web site whose on-disk
        app cache doesn't contain a manifest resource.

        For some reason an app cache for a web site may be partially written to disk. In particular, the
        app cache may only contain a CacheGroups entry. That is, the manifest resource and origin records
        may not be persisted to disk. From looking over the code, we're unclear how such a situation can occur
        and hence have been unable to create such an app cache. We were able to reproduce this issue using
        an app cache database file that was provided by a person that was affected by this issue.

        No test included because it's not straightforward to write a test for this change.

        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): Assert that m_cacheBeingUpdated->manifestResource()
        is non-null. Currently we only document this assumption in a code comment. Also separated a single assertion
        expression into two assertion expressions to make it straightforward to identify the failing sub-expression
        on failure.
        * loader/appcache/ApplicationCacheStorage.cpp:
        (WebCore::ApplicationCacheStorage::store): Modified to call ApplicationCacheStorage::deleteCacheGroupRecord()
        to remove a cache group and associated cache records (if applicable) before inserting a cache group entry.
        This replacement approach will ultimately repair incomplete app cache data for people affected by this bug.
        (WebCore::ApplicationCacheStorage::loadCache): Log an error and return nullptr if the cache we loaded doesn't
        have a manifest resource.
        (WebCore::ApplicationCacheStorage::deleteCacheGroupRecord): Added.
        (WebCore::ApplicationCacheStorage::deleteCacheGroup): Extracted deletion logic for cache group record into
        ApplicationCacheStorage::deleteCacheGroupRecord().
        * loader/appcache/ApplicationCacheStorage.h:

2014-03-05  Oliver Hunt  <oliver@apple.com>

        Support caching of custom setters
        https://bugs.webkit.org/show_bug.cgi?id=129519

        Reviewed by Filip Pizlo.

        Add forwarding header

        Tests: js/regress/assign-custom-setter-polymorphic.html
               js/regress/assign-custom-setter.html

        * ForwardingHeaders/jit/SpillRegistersMode.h: Added.

2014-03-05  David Kilzer  <ddkilzer@apple.com>

        Fix crash in CompositeEditCommand::cloneParagraphUnderNewElement()
        <http://webkit.org/b/129751>
        <rdar://problem/16237965>

        Reviewed by Jon Honeycutt.

        Merged from Blink (patch by Yuta Kitamura):
        https://src.chromium.org/viewvc/blink?revision=168160&view=revision
        http://crbug.com/345005

            The root cause is CompositeEditCommand::moveParagraphWithClones() passing
            two positions |start| and |end| which do not follow the document order,
            i.e. in some situations |start| is located after |end| because of
            the difference in affinity.

            This patch fixes this crash by normalizing |end| to |start| in such situations.
            It also adds an ASSERT that checks the relationship between |start| and |end|.

        Test: editing/execCommand/format-block-crash.html

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::cloneParagraphUnderNewElement):
        (WebCore::CompositeEditCommand::moveParagraphWithClones):
        * editing/CompositeEditCommand.h:

2014-03-05  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Scrollable regions
        https://bugs.webkit.org/show_bug.cgi?id=129301

        Reviewed by David Hyatt.

        Named flow fragments do not inherit the overflow property from the fragment container.
        When asked if the flow thread content should be clipped, the named flow fragments
        will respond using the overflow property of the named flow fragment container.

        When painting the flow thread layer inside the region, the scrolled content offset of
        the region must be used to offset the flow thread's layer.

        Tests: fast/regions/scrollable-last-region.html
               fast/regions/scrollable-single-region-bt.html
               fast/regions/scrollable-single-region-lr.html
               fast/regions/scrollable-single-region-relative-element.html
               fast/regions/scrollable-single-region-rl.html
               fast/regions/scrollable-single-region.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::createStyle):
        (WebCore::RenderNamedFlowFragment::shouldClipFlowThreadContent):
        * rendering/RenderNamedFlowFragment.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::shouldClipFlowThreadContent):
        * rendering/RenderRegion.h:

2014-03-05  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Device pixel round accumulated subpixel value when the RenderLayer with transform paints its content.
        https://bugs.webkit.org/show_bug.cgi?id=129079

        Reviewed by Simon Fraser.

        Snap the content to the device pixel position (as opposed to integral position) before
        applying the transform. Recalculate the remaining subpixels that need offsetting at painting time.

        Test: compositing/hidpi-absolute-subpixel-positioned-transformed-elements.html

        * platform/graphics/LayoutPoint.h:
        (WebCore::roundedForPainting):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerByApplyingTransform):

2014-03-05  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Show external device name/type in placeholder
        https://bugs.webkit.org/show_bug.cgi?id=129723

        Reviewed by Jer Noble.

        Make the name and type of the external device available to the JS based controls.
        * Modules/mediacontrols/MediaControlsHost.cpp:
        (WebCore::MediaControlsHost::externalDeviceDisplayName):
        (WebCore::MediaControlsHost::externalDeviceType):
        * Modules/mediacontrols/MediaControlsHost.h:
        * Modules/mediacontrols/MediaControlsHost.idl:

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.updateWirelessPlaybackStatus): Display device type-specific infomation
            in the placeholder image.

        * WebCore.exp.in: Export new WebKitSystemInterface functions.

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::wirelessPlaybackTargetName): Added.
        (WebCore::MediaPlayer::wirelessPlaybackTargetType): Ditto.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetType): Added.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessPlaybackTargetName): Ditto.

        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:

2014-03-05  Benjamin Poulain  <bpoulain@apple.com>

        [iOS] Rename the various VisibleExtent variations to exposedContentRect
        https://bugs.webkit.org/show_bug.cgi?id=129728

        Reviewed by Simon Fraser.

        Rename DocumentVisibleExtent and VisibleExtentContentRect to ExposedContentRect in a desperate
        attempt to make things a tiny little bit less confusing.

        The name is ExposedContentRect and not ExposedRect as that rect is exposed on ScrollView, while the
        rect is in document coordinates (which does not make any difference on WebKit1...).

        * WebCore.exp.in:
        * platform/ScrollView.h:
        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::exposedContentRect):
        (WebCore::ScrollView::setExposedContentRect):
        * platform/ios/wak/WAKScrollView.h:
        * platform/ios/wak/WAKScrollView.mm:
        (-[WAKScrollView exposedContentRect]):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
        (WebCore::RenderLayerCompositor::didChangeVisibleRect):

2014-03-05  Simon Fraser  <simon.fraser@apple.com>

        ObjC exception when dropping files into a WKView: drag and drop uses code from WebKit.framework
        https://bugs.webkit.org/show_bug.cgi?id=129752

        Reviewed by Enrica Casucci.

        Add C functions for NSURL-related functionality required by WebKit2

        * WebCore.exp.in:
        * platform/mac/WebCoreNSURLExtras.h:
        * platform/mac/WebCoreNSURLExtras.mm:
        (WebCore::URLByCanonicalizingURL):
        (WebCore::rangeOfURLScheme):
        (WebCore::looksLikeAbsoluteURL):

2014-03-05  Martin Hock  <mhock@apple.com>

        Add support for sessions to MemoryCache.
        https://bugs.webkit.org/show_bug.cgi?id=127794

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI): Initialize CachedImage with sessionID.
        * html/DOMURL.cpp:
        (WebCore::DOMURL::revokeObjectURL): Remove URL from MemoryCache for all sessions.
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::cachedResource): Pass sessionID to MemoryCache.
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::replayXHR): Ditto.
        * loader/DocumentLoader.cpp:
        (WebCore::areAllLoadersPageCacheAcceptable): Ditto.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Ditto.
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::updateFromElement): Initialize CachedImage with sessionID.
        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::create): Pass sessionID to MemoryCache.
        * loader/cache/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Constructor takes sessionID.
        * loader/cache/CachedCSSStyleSheet.h:
        * loader/cache/CachedFont.cpp: Ditto.
        (WebCore::CachedFont::CachedFont):
        * loader/cache/CachedFont.h:
        * loader/cache/CachedImage.cpp: Ditto.
        (WebCore::CachedImage::CachedImage):
        * loader/cache/CachedImage.h:
        * loader/cache/CachedRawResource.cpp: Ditto.
        (WebCore::CachedRawResource::CachedRawResource):
        * loader/cache/CachedRawResource.h:
        * loader/cache/CachedResource.cpp: Ditto.
        (WebCore::CachedResource::CachedResource):
        (WebCore::CachedResource::~CachedResource): Pass sessionID to MemoryCache.
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::sessionID):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::createResource): Constructors take sessionID.
        (WebCore::CachedResourceLoader::sessionID): Retrieve sessionID from page.
        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Pass sessionID to MemoryCache.
        (WebCore::CachedResourceLoader::requestResource): Initialize CachedCSSStyleSheet with sessionID.
        (WebCore::CachedResourceLoader::revalidateResource): Initialize cached resource with sessionID.
        (WebCore::CachedResourceLoader::loadResource): Pass sessionID to MemoryCache and initialize cached resource with sessionID.
        * loader/cache/CachedResourceLoader.h:
        * loader/cache/CachedSVGDocument.cpp: Constructor takes sessionID.
        (WebCore::CachedSVGDocument::CachedSVGDocument):
        * loader/cache/CachedSVGDocument.h:
        * loader/cache/CachedScript.cpp: Ditto.
        (WebCore::CachedScript::CachedScript):
        * loader/cache/CachedScript.h:
        * loader/cache/CachedTextTrack.cpp: Ditto.
        (WebCore::CachedTextTrack::CachedTextTrack):
        * loader/cache/CachedTextTrack.h:
        * loader/cache/CachedXSLStyleSheet.cpp: Ditto.
        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
        * loader/cache/CachedXSLStyleSheet.h:
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::getSessionMap): Retrieve CachedResourceMap based on sessionID.
        (WebCore::MemoryCache::add): Use sessionID from CachedResource parameter.
        (WebCore::MemoryCache::revalidationSucceeded): Add sessionID parameter.
        (WebCore::MemoryCache::resourceForURL): Ditto.
        (WebCore::MemoryCache::resourceForRequest): Ditto, also move impl into impl method.
        (WebCore::MemoryCache::resourceForRequestImpl): Add CachedResourceMap parameter.
        (WebCore::MemoryCache::addImageToCache): Use default sessionID.
        (WebCore::MemoryCache::removeImageFromCache): Ditto.
        (WebCore::MemoryCache::evict): Use sessionID from CachedResource parameter.
        (WebCore::MemoryCache::removeResourcesWithOrigin): Iterate through all CachedResourceMaps.
        (WebCore::MemoryCache::getOriginsWithCache): Ditto.
        (WebCore::MemoryCache::removeUrlFromCache): Add sessionID parameter.
        (WebCore::MemoryCache::removeRequestFromCache): Ditto.
        (WebCore::MemoryCache::removeRequestFromSessionCaches): Remove request from all CachedResourceMaps, with multithread support.
        (WebCore::MemoryCache::removeRequestFromCacheImpl): Add sessionID parameter.
        (WebCore::MemoryCache::removeRequestFromSessionCachesImpl): Iterate through all CachedResourceMaps.
        (WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add sessionID parameter.
        (WebCore::MemoryCache::crossThreadRemoveRequestFromSessionCaches): Pass on request to removeRequestFromSessionCachesImpl.
        (WebCore::MemoryCache::getStatistics): Iterate through all CachedResourceMaps.
        (WebCore::MemoryCache::setDisabled): Ditto.
        * loader/cache/MemoryCache.h: Create another level for cache.
        * platform/CrossThreadCopier.cpp: Allow copying SessionIDs across threads.
        (WebCore::SessionID>::copy):
        * platform/CrossThreadCopier.h:
        * platform/network/cf/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest): Remove trailing whitespace.
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Initialize CachedImage with sessionID.
        * testing/Internals.cpp:
        (WebCore::Internals::isLoadingFromMemoryCache): Pass sessionID to MemoryCache.

2014-03-03  Martin Robinson  <mrobinson@igalia.com>

        [GTK][CMake] Generate documentation for the DOM bindings
        https://bugs.webkit.org/show_bug.cgi?id=126211

        Reviewed by Carlos Garcia Campos.

        * PlatformGTK.cmake: Add some files to the GObjectDOMBindings build, so that the
        doc generation succeeds. Have the GObjectDOMBindings_INSTALLED_HEADERS variable contain
        all installed headers and use another variable for GIR generation. Create the configuration
        file for the gtkdoc generation.

2014-03-05  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Wrong cliprect on absolute positioned elements.
        https://bugs.webkit.org/show_bug.cgi?id=129656

        Reviewed by Simon Fraser.

        outlineBoundsForRepaint() is expected to return the outline repaint rect. Using enclosingIntRect()
        to calculate the outline boundaries breaks repaint logic in RenderElement::repaintAfterLayoutIfNeeded().
        Since enclosingIntRect() can return bigger rect than repaint rect, the old/new bounds' dimensions could end up
        being different which triggers the size change repaint code path.

        Test: fast/repaint/hidpi-absolute-positioned-element-wrong-cliprect-after-move.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::outlineBoundsForRepaint):
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::repaintAfterLayoutIfNeeded):
        * rendering/svg/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):

2014-03-05  Krzysztof Czech  <k.czech@samsung.com>

        [ATK] Expose missing functionalities of AtkTableCell to AT.
        https://bugs.webkit.org/show_bug.cgi?id=129492

        Reviewed by Mario Sanchez Prada.

        Implemented missing API of AtkTableCell.

        No new tests. Covered by existing ones.

        * accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp:
        (webkitAccessibleTableCellGetColumnSpan):
        (webkitAccessibleTableCellGetRowSpan):
        (webkitAccessibleTableCellGetPosition):
        (webkitAccessibleTableCellGetTable):
        (webkitAccessibleTableCellInterfaceInit):

2014-03-05  Andres Gomez  <agomez@igalia.com>

        [GStreamer] WebSource doesn't need the "iradio-mode" property
        https://bugs.webkit.org/show_bug.cgi?id=129685

        Reviewed by Philippe Normand.

        Removed the "iradio-mode" property from the WK source element
        since this was only available for its modification from
        playbin/uridecodebin and, as discussed in GStreamer bug #725383,
        it was not being set and now is going to be removed.

        It is safe just to send always the "icy-metadata" header set and
        deal with returning "icy" headers as we were already doing.

        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
        (webKitWebSrcSetProperty):
        (webKitWebSrcGetProperty):
        (webKitWebSrcStart):

2014-03-05  Chang Shu  <cshu@webkit.org>

        Copying wrapping text results in multiple spaces between wrapped lines stripped.
        https://bugs.webkit.org/show_bug.cgi?id=129609.

        Reviewed by Ryosuke Niwa.

        While checking the condition of restoring the missing space, the collapsed spaces
        may not be exactly one.

        editing/pasteboard/copy-text-with-wrapped-tag.html is enhanced to test this case.

        * editing/TextIterator.cpp:
        (WebCore::TextIterator::handleTextBox):

2014-03-05  Ryosuke Niwa  <rniwa@webkit.org>

        appendChild shouldn't invalidate LiveNodeLists and HTMLCollections if they don't have valid caches
        https://bugs.webkit.org/show_bug.cgi?id=129727

        Reviewed by Andreas Kling.

        Before this patch, invalidateNodeListAndCollectionCachesInAncestors invalidated node lists and HTML
        collections on ancestors of a node whenever we're inserting or removing a child node. This patch
        makes HTMLCollections and LiveNodeLists register themselves with Document only when they have valid
        caches.

        Each user of CollectionIndexCache now implements willValidateIndexCache member function that gets
        called when CollectionIndexCache caches any state and necessitates the registration with document.

        * dom/ChildNodeList.h: Added an empty willValidateIndexCache since child node lists are never
        registered with document.

        * dom/CollectionIndexCache.h:
        (WebCore::CollectionIndexCache::hasValidCache): Added.
        (WebCore::CollectionIndexCache::nodeCount): Calls willValidateIndexCache when caching node count.
        (WebCore::CollectionIndexCache::nodeAfterCached): Ditto. Also assert that hasValidCache() true in
        the cases where we're simply updating our caches or adding more caches.
        (WebCore::CollectionIndexCache::nodeAt): Ditto. Also added a code to set the length cache when
        we've reached the end of the list. This should be a slight speed up on some cases.

        * dom/Document.cpp:
        (WebCore::Document::Document): Initializes a variable used by assertions.
        (WebCore::Document::unregisterNodeList): Added an early exit for when m_listsInvalidatedAtDocument
        is empty since invalidateNodeListAndCollectionCaches swaps out the list.
        (WebCore::Document::registerCollection): Removed the boolean hasIdNameMap since we now explicitly
        call collectionCachedIdNameMap in HTMLCollection.
        (WebCore::Document::unregisterCollection): Ditto. Exit early if m_collectionsInvalidatedAtDocument
        is empty since invalidateNodeListAndCollectionCaches swaps out the list.
        * dom/Document.h:

        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::invalidateCache): Unregister the node list with document if we had caches.
        * dom/LiveNodeList.h:
        (WebCore::LiveNodeList::LiveNodeList):
        (WebCore::LiveNodeList::~LiveNodeList): Ditto.
        (WebCore::LiveNodeList::invalidateCache): Pass around document. This is necessary since document()
        had already moved to the new document inside NodeListsNodeData::invalidateCaches.
        (WebCore::LiveNodeList::willValidateIndexCache): Added. Registers itself with document.

        * dom/Node.cpp:
        (WebCore::Document::invalidateNodeListAndCollectionCaches): Swap the lists since invalidateCache
        tries to unregister node lists and HTML collections with document. Since this is the only case in
        which node lists and HTML collections being removed may not be in the lists in unregisterNodeList
        and unregisterCollection, assert this condition via m_inInvalidateNodeListAndCollectionCaches.
        (WebCore::NodeListsNodeData::invalidateCaches):

        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::adoptDocument): Unregister node lists and HTML collections from old
        document via invalidateCache. We need to explicitly pass in oldDocument here since owner node's
        document had already been changed to newDocument at this point. Since we're invalidating caches,
        there is no need to register node lists and HTML collections with newDocument.

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::~HTMLCollection): Unregister the node list with document if we had caches.
        (WebCore::HTMLCollection::invalidateCache): Ditto.
        (WebCore::HTMLCollection::invalidateNamedElementCache):
        * html/HTMLCollection.h:
        (WebCore::HTMLCollection::invalidateCache): Pass around document as done in LiveNodeList.
        (WebCore::HTMLCollection::willValidateIndexCache): Ditto.

        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::invalidateCache): Ditto.
        * html/HTMLFormControlsCollection.h:

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::invalidateSelectedItems): Ditto.
        (WebCore::HTMLSelectElement::setRecalcListItems): Ditto.

2014-03-05  Jon Lee  <jonlee@apple.com>

        Fix linker error after r165087
        https://bugs.webkit.org/show_bug.cgi?id=129730

        Reviewed by Csaba Osztrogonác.

        * WebCore.exp.in: Remove undefined symbol __ZN7WebCore32WebVideoFullscreenChangeObserverD2Ev.

2014-03-04  Zalan Bujtas  <zalan@apple.com>

        Enable device pixel repaint rect tracking.
        https://bugs.webkit.org/show_bug.cgi?id=129712

        Reviewed by Simon Fraser.

        Tracked repaint rects are device pixel snapped now to support hiDPI test cases.

        Test: fast/repaint/hidpi-device-pixel-based-repaint-rect-tracking.html

        * WebCore.exp.in:
        * page/FrameView.cpp:
        (WebCore::FrameView::addTrackedRepaintRect):
        (WebCore::FrameView::trackedRepaintRectsAsText): Print them as LayoutUnits to get
        trailing zeros cut off.
        * page/FrameView.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::setContentsNeedDisplay):
        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):
        * rendering/RenderView.cpp:
        (WebCore::RenderView::repaintViewRectangle):

2014-03-04  Simon Fraser  <simon.fraser@apple.com>

        Don't clamp scrolling node offsets when the offset is changed by delegated scrolling
        https://bugs.webkit.org/show_bug.cgi?id=129724

        Reviewed by Sam Weinig.
        
        Call setScrollPositionWithoutContentEdgeConstraints() from
        ScrollingTree::scrollPositionChangedViaDelegatedScrolling() so that
        layers are not clamped during rubber-banding.
        
        This requires making setScrollPositionWithoutContentEdgeConstraints()
        a pure virtual function on the base class.

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
        * page/scrolling/ScrollingTreeScrollingNode.h:
        * page/scrolling/ios/ScrollingTreeScrollingNodeIOS.h:
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.h:

2014-03-04  Jeremy Jones  <jeremyj@apple.com>

        WebVideoFullscreen, should make the hand off of the video layer explicit.
        https://bugs.webkit.org/show_bug.cgi?id=128844

        Reviewed by Simon Fraser.

        This change introduces a more explicit hand-off of the video layer.
        This describes the interactions between WebVideoFullscreenInterface and WebVideoFullscreenModel
        WebVideoFullscreenModel <-> WebVideoFullscreenInterface
              enterFullScreen(*) ->
                                <- borrowVideoLayer
              willLendVideoLayer ->
               didLendVideoLayer ->
                                <- didEnterFullscreen
                                ...
                                <- requestExitFullscreen
                  exitFullscreen ->
                                <- returnVideoLayer
                                <- didExitFullscreen
        (*) enterFullScreen actually comes from WebVideoFullscreenControllerAVKit.

        * WebCore.exp.in:
        Export new functions in WebVideoFullscreenInterfaceAVKit, WebVideoFullscreenModelMediaElement, etc.

        * platform/ios/WebVideoFullscreenControllerAVKit.mm:
        Add WebVideoFullscreenControllerChangeObserver to forward fullscreen callbacks to WebVideoFullscreenController

        (WebVideoFullscreenControllerChangeObserver::setTarget):
        Sets obj-c target of fullscreen change callbacks.

        (-[WebVideoFullscreenController init]):
        Point _changeObserver's target at self.

        (-[WebVideoFullscreenController dealloc]):
        Clear _changeObserver's target.

        (-[WebVideoFullscreenController enterFullscreen:]):
        Retain self to prevent dealloc during animation or while fullscreen.
        Connect _interface to _changeObserver.

        (-[WebVideoFullscreenController exitFullscreen]):
        Remove use of completion move cleanup to -didExitFullscreen.

        (-[WebVideoFullscreenController didEnterFullscreen]):
        Nothing to see here.

        (-[WebVideoFullscreenController didExitFullscreen]):
        Move clean up code that was in a completion to here.

        * platform/ios/WebVideoFullscreenInterface.h:
        Add delarations for more explicit hand-off of video layer.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        Add WebVideoFullscreenChangeObserver to notify when fullscreen animations complete.
        Add declarations for more explicit hand-off of video layer.
        Add WebAVPlayerLayer now always wraps the m_videoLayer to prevent default behavior
        of AVPlayerLayer.

        (WebCore::WebVideoFullscreenChangeObserver::~WebVideoFullscreenChangeObserver):
        Add empty virtual destructor.

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        Include AVKit headers instead of declaring everything locally.
        AVPlayerLayer protocol renamed to AVVideoLayer per AVKit.

        (-[WebAVPlayerController dealloc]):
        Don't refer to self.

        (-[WebAVPlayerController playerViewController:shouldDismissWithReason:]):
        Pause before requesting exit fullscreen.

        (-[WebAVPlayerLayer setPlayerController:]):
        This is required by AVVideoLayer, but we don't need it.

        (WebVideoFullscreenInterfaceAVKit::playerController):
        White space.

        (WebVideoFullscreenInterfaceAVKit::setWebVideoFullscreenChangeObserver):
        Set observer to forward fullscreen changes to.

        (WebVideoFullscreenInterfaceAVKit::enterFullscreen):
        Use more explicit video layer hand-off.

        (WebVideoFullscreenInterfaceAVKit::doEnterFullscreen):
        Move enterFullscreen logic here.
        AVPlayerViewController now takes the video layer at init time.
        Always provide a video layer wrapped in a WebAVPlayerLayer.

        (WebVideoFullscreenInterfaceAVKit::willLendVideoLayer):
        Use more explicit video layer hand-off.

        (WebVideoFullscreenInterfaceAVKit::didLendVideoLayer):
        Use more explicit video layer hand-off.

        (WebVideoFullscreenInterfaceAVKit::exitFullscreen):
        Use more explicit video layer hand-off.

        * platform/ios/WebVideoFullscreenModel.h:
        Add functions for more explicit video layer hand-off.

        * platform/ios/WebVideoFullscreenModelMediaElement.h:
        Mark virtual functions as virtual.
        Add changes for WebVideoFullscreenModel.

        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        Use more explicit video layer hand-off.

        (WebVideoFullscreenModelMediaElement::setMediaElement):
        Don't push the video layer. Wait for a request for it.

        (WebVideoFullscreenModelMediaElement::handleEvent):
        Make sure m_videoFullscreenInterface is valid.

        (WebVideoFullscreenModelMediaElement::borrowVideoLayer):
        Use more explicit video layer hand-off.
        Lend videoLayer in request to a request to borrow the videoLayer.
        Make sure to retain the video layer before it is removed from the layer tree.

        (WebVideoFullscreenModelMediaElement::returnVideoLayer):
        Use more explicit video layer hand-off.

        (WebVideoFullscreenModelMediaElement::requestExitFullscreen):
        Don't clear the mediaElement reference until completely exited from fullscreen.

2014-03-04  Simon Fraser  <simon.fraser@apple.com>

        Get position:fixed working slightly better on iOS
        https://bugs.webkit.org/show_bug.cgi?id=129714

        Reviewed by Benjamin Poulain.

        Send the scroll position as a FloatPoint, rather than an IntPoint.

        * WebCore.exp.in:
        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::scrollPositionChangedViaDelegatedScrolling):
        * page/scrolling/ScrollingTree.h:

2014-03-04  Alex Christensen  <achristensen@webkit.org>

        Fixed Windows build without MEDIA_CONTROLS_SCRIPT enabled.
        https://bugs.webkit.org/show_bug.cgi?id=129701

        Reviewed by Jer Noble.

        * WebCore.vcxproj/WebCore.vcxproj:
        * DerivedSources.cpp:
        Moved UserAgentScriptsData.cpp to DerivedSources.cpp to only be built if MEDIA_CONTROLS_SCRIPT is enabled.
        * DerivedSources.make:
        Only generate UserAgentScripts.cpp/h when USER_AGENT_SCRIPTS is non-empty.
        * rendering/RenderThemeWin.cpp:
        Only include UserAgentScripts.h when MEDIA_CONTROLS_SCRIPT is enabled.

2014-03-04  Simon Fraser  <simon.fraser@apple.com>

        Allow iOS DumpRenderTree crashes to show application-specific information
        https://bugs.webkit.org/show_bug.cgi?id=129705

        Reviewed by David Kilzer.

        Make the WKSI function SetCrashReportApplicationSpecificInformation available
        in iOS simulator builds.

        * WebCore.exp.in:
        * platform/ios/WebCoreSystemInterfaceIOS.mm:
        * platform/mac/WebCoreSystemInterface.h:

2014-03-04  Andreas Kling  <akling@apple.com>

        Spam static branch prediction hints on JS bindings.
        <https://webkit.org/b/129703>

        Add UNLIKELY hints to all !castedThis and exec->hadException() paths
        in the JS bindings since they are almost always going to get skipped.

        Reviewed by Geoff Garen.

        * bindings/scripts/CodeGeneratorJS.pm:
        (GenerateImplementation):
        (GenerateParametersCheck):
        (GenerateImplementationFunctionCall):
        (GenerateConstructorDefinition):

2014-03-04  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Remove unused StdDeviation from Gaussian Blur effect
        https://bugs.webkit.org/show_bug.cgi?id=129693

        Reviewed by Simon Fraser.

        No new tests, no change on behavior.

        * platform/graphics/filters/FEGaussianBlur.cpp:
        * platform/graphics/filters/FEGaussianBlur.h:

2014-03-04  Andreas Kling  <akling@apple.com>

        Add a Document::updateStyleIfNeededForNode(Node&).
        <https://webkit.org/b/129689>

        Generalize the mechanism that computed style uses to avoid doing full
        style updates when the node we're interested in isn't actually dirty.

        Reviewed by Antti Koivisto.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * dom/Document.cpp:
        (WebCore::nodeOrItsAncestorNeedsStyleRecalc):
        (WebCore::Document::updateStyleIfNeededForNode):
        * dom/Document.h:
        * editing/htmlediting.cpp:
        (WebCore::isEditablePosition):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::defaultEventHandler):

2014-03-04  Mark Hahnenberg  <mhahnenberg@apple.com>

        Merge API shims and JSLock
        https://bugs.webkit.org/show_bug.cgi?id=129650

        Reviewed by Mark Lam.

        No new tests.

        JSLock is now taking on all of APIEntryShim's responsibilities since there is never a reason 
        to take just the JSLock. Ditto for DropAllLocks and APICallbackShim.

        * bindings/js/DOMRequestState.h:
        (WebCore::DOMRequestState::Scope::Scope):
        * bindings/js/JSDOMPromise.h:
        (WebCore::DeferredWrapper::resolve):
        (WebCore::DeferredWrapper::reject):
        (WebCore::DeferredWrapper::resolve<String>):
        (WebCore::DeferredWrapper::resolve<bool>):
        (WebCore::char>>):
        (WebCore::DeferredWrapper::reject<String>):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::evaluateInWorld):
        * bindings/js/SerializedScriptValue.cpp:
        (WebCore::SerializedScriptValue::create):
        (WebCore::SerializedScriptValue::deserialize):

2014-03-04  Beth Dakin  <bdakin@apple.com>

        REGRESSION: Overlay scrollbars that have grown are sometimes askew in the track
        https://bugs.webkit.org/show_bug.cgi?id=129691
        -and corresponding-
        <rdar://problem/15666846>

        Reviewed by Simon Fraser.

        This regression started happening after we adopted the setPresentationValue 
        ScrollbarPainter API which allows us to update the position of the scrollbar knob 
        from our secondary scrolling thread. The bug occurs when the scrollbar grows while 
        it still thinks it is in presentation-value mode. Whenever the scrollbar grows, it 
        should be in non-presentation value mode.

        If the wheel event has ended or been cancelled, we can switch out of presentation 
        value mode.
        * page/scrolling/mac/ScrollingTreeScrollingNodeMac.mm:
        (WebCore::ScrollingTreeScrollingNodeMac::handleWheelEvent):

        Sometimes we will grow the scrollbar before we have received a wheel event with 
        the end or cancelled phase, and so automatically switch out of presentation-value 
        mode whenever we start one of these animations.
        * platform/mac/ScrollAnimatorMac.mm:
        (-[WebScrollbarPainterDelegate scrollerImp:animateUIStateTransitionWithDuration:]):

2014-03-04  Zan Dobersek  <zdobersek@igalia.com>

        Move Source/WebCore/html/track/ code to std::unique_ptr
        https://bugs.webkit.org/show_bug.cgi?id=129666

        Reviewed by Eric Carlson.

        Replace uses of OwnPtr and PassOwnPtr in code under Source/WebCore/html/track/ with std::unique_ptr.

        * html/track/AudioTrack.h:
        * html/track/InbandWebVTTTextTrack.cpp:
        (WebCore::InbandWebVTTTextTrack::parseWebVTTCueData):
        * html/track/InbandWebVTTTextTrack.h:
        * html/track/LoadableTextTrack.cpp:
        (WebCore::LoadableTextTrack::loadTimerFired):
        (WebCore::LoadableTextTrack::newCuesAvailable):
        (WebCore::LoadableTextTrack::cueLoadingCompleted):
        (WebCore::LoadableTextTrack::newRegionsAvailable):
        * html/track/LoadableTextTrack.h:
        * html/track/TextTrack.h:
        * html/track/TextTrackCue.h:
        * html/track/TextTrackRegion.h:
        * html/track/VTTCue.cpp:
        (WebCore::VTTCue::createWebVTTNodeTree):
        (WebCore::VTTCue::markFutureAndPastNodes):
        * html/track/VTTCue.h:
        * html/track/VideoTrack.h:
        * html/track/WebVTTParser.cpp:
        (WebCore::WebVTTParser::WebVTTParser):
        * html/track/WebVTTParser.h:
        * html/track/WebVTTTokenizer.h:
        * loader/TextTrackLoader.cpp:
        (WebCore::TextTrackLoader::processNewCueData):
        * loader/TextTrackLoader.h:

2014-03-04  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make border-radius painting device pixel aware.
        https://bugs.webkit.org/show_bug.cgi?id=129558

        Reviewed by Simon Fraser.

        Snap rounded rects to device pixels right before passing them to GraphicsContext.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        (WebCore::RenderBoxModelObject::paintBorder):
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::paint):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::paint):

2014-03-04  Simon Fraser  <simon.fraser@apple.com>

        Crashes and assertions running iOS compositing tests
        https://bugs.webkit.org/show_bug.cgi?id=129688

        Reviewed by Dean Jackson.
        
        When a layer is no longer composited, we need to unregister it
        from the scrolling coordinator, and remove it from m_scrollCoordinatedLayers.

        Tested by compositing tests on iOS.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateBacking):

2014-03-04  Antti Koivisto  <antti@apple.com>

        Update bindings test results after r165046.

        * bindings/scripts/test/GObject/WebKitDOMTestObj.cpp:
        (webkit_dom_test_obj_set_property):
        (webkit_dom_test_obj_set_reflected_string_attr):
        (webkit_dom_test_obj_set_reflected_url_attr):
        (webkit_dom_test_obj_set_reflected_custom_url_attr):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::setJSTestObjReflectedStringAttr):
        (WebCore::setJSTestObjReflectedURLAttr):
        (WebCore::setJSTestObjReflectedCustomURLAttr):
        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        (-[DOMTestObj setReflectedStringAttr:]):
        (-[DOMTestObj setReflectedURLAttr:]):
        (-[DOMTestObj setReflectedCustomURLAttr:]):

2014-03-04  Martin Robinson  <mrobinson@igalia.com>

        [GTK] Simplify the GObject DOM bindings API break check into one step
        https://bugs.webkit.org/show_bug.cgi?id=129571

        Reviewed by Carlos Garcia Campos.

        * bindings/gobject/GNUmakefile.am: We no longer generate the webkitdom.symbols file in the
        DerivedSources directory. All the logic is handled internally in the script now.
        * bindings/scripts/gobject-run-api-break-test: Removed.

2014-03-04  Zalan Bujtas  <zalan@apple.com>

        Build fix for iOS.

        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::addRoundedBorderClip):
        (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):

2014-03-04  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Make GraphicsLayer::fillRect FloatRoundedRect based and cleanup dependencies.
        https://bugs.webkit.org/show_bug.cgi?id=129557

        Reviewed by Simon Fraser.

        This is the preparation for snapping rounded rects to device pixel position. It enables
        device pixel aware border-radius painting.

        No change in functionality.

        * platform/efl/RenderThemeEfl.cpp:
        (WebCore::RenderThemeEfl::paintMediaSliderThumb):
        * platform/graphics/FloatRoundedRect.cpp:
        (WebCore::FloatRoundedRect::FloatRoundedRect):
        (WebCore::FloatRoundedRect::isRenderable):
        * platform/graphics/FloatRoundedRect.h:
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::clipRoundedRect):
        (WebCore::GraphicsContext::clipOutRoundedRect):
        (WebCore::GraphicsContext::fillRoundedRect):
        (WebCore::GraphicsContext::fillRectWithRoundedHole):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/Path.cpp:
        (WebCore::Path::addRoundedRect):
        * platform/graphics/Path.h:
        * platform/graphics/RoundedRect.cpp:
        (WebCore::RoundedRect::pixelSnappedRoundedRectForPainting):
        * platform/graphics/RoundedRect.h:
        * platform/graphics/ShadowBlur.cpp:
        (WebCore::ShadowBlur::drawRectShadow):
        (WebCore::ShadowBlur::drawInsetShadow):
        (WebCore::ShadowBlur::drawRectShadowWithoutTiling):
        (WebCore::ShadowBlur::drawInsetShadowWithoutTiling):
        (WebCore::ShadowBlur::drawInsetShadowWithTiling):
        (WebCore::ShadowBlur::drawRectShadowWithTiling):
        * platform/graphics/ShadowBlur.h:
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::fillRect):
        (WebCore::GraphicsContext::platformFillRoundedRect):
        (WebCore::GraphicsContext::fillRectWithRoundedHole):
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::fillRect):
        (WebCore::GraphicsContext::platformFillRoundedRect):
        (WebCore::GraphicsContext::fillRectWithRoundedHole):
        * platform/graphics/wince/GraphicsContextWinCE.cpp:
        (WebCore::GraphicsContext::fillRoundedRect):
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::borderRadiiFromStyle):
        (WebCore::RenderThemeGtk::paintMediaSliderTrack):
        (WebCore::RenderThemeGtk::paintMediaSliderThumb):
        (WebCore::RenderThemeGtk::paintMediaVolumeSliderTrack):
        * platform/win/DragImageWin.cpp:
        (WebCore::createDragImageForLink):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations):
        (WebCore::RenderBox::pushContentsClip):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::clipRoundedInnerRect):
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        (WebCore::RenderBoxModelObject::paintBorder):
        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
        (WebCore::RenderBoxModelObject::clipBorderSideForComplexInnerPath):
        (WebCore::RenderBoxModelObject::paintBoxShadow):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::clipToRect):
        * rendering/RenderThemeIOS.mm:
        (WebCore::RenderThemeIOS::paintRadioDecorations):
        (WebCore::RenderThemeIOS::paintTextFieldDecorations):
        (WebCore::RenderThemeIOS::paintMenuListButtonDecorations):
        (WebCore::RenderThemeIOS::paintSliderTrack):
        (WebCore::RenderThemeIOS::paintProgressBar):
        (WebCore::RenderThemeIOS::paintFileUploadIconDecorations):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintMenuListButtonGradients):
        (WebCore::RenderThemeMac::paintSliderTrack):
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::paintMenuListButtonGradients):
        (WebCore::RenderThemeSafari::paintSliderTrack):
        * rendering/shapes/BoxShape.cpp:
        (WebCore::BoxShape::buildDisplayPaths):
        * rendering/style/BasicShapes.cpp:
        (WebCore::BasicShapeInset::path):

2014-03-04  Andreas Kling  <akling@apple.com>

        Micro-optimize Strings in JS bindings.
        <https://webkit.org/b/129673>

        Tweaked for new jsStringWithWeakOwner signature. This patch removes
        36 bytes of code from every wrapper getter that returns a DOMString.

        Reviewed by Ryosuke Niwa.

        * bindings/js/JSDOMBinding.h:
        (WebCore::jsStringWithCache):

2014-03-03  David Kilzer  <ddkilzer@apple.com>

        SVGPropertyTearOffs should detachChildren before deleting its value.
        <http://webkit.org/b/129618>
        <rdar://problem/15661617>

        Reviewed by Maciej Stachowiak.

        Merged from Blink (patch by kouhei@chromium.org):
        https://src.chromium.org/viewvc/blink?revision=158563&view=revision
        http://crbug.com/296276

        Test: svg/transforms/svg-matrix-tearoff-crash.html

        NOTE: The test does not reproduce a crash on WebKit using
        JavaScriptCore.

        * svg/properties/SVGPropertyTearOff.h:
        (WebCore::SVGPropertyTearOff::setValue):
        (WebCore::SVGPropertyTearOff::~SVGPropertyTearOff):
        - Call detachChildren() if m_value is a copy.  The original
          Blink patch did not modify the destructor code path, although
          that seems obvious via code inspection.

2014-03-04  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Incorrect repaint rect cuts off content's right edge after move.
        https://bugs.webkit.org/show_bug.cgi?id=129652

        Reviewed by Simon Fraser.

        When repaint rect is adjusted in order to take the distance from renderer into account,
        the accumulated fraction value need to be added too. This is always a positive value.

        Test: fast/borders/hidpi-border-clipping-right-after-move.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::setContentsNeedDisplayInRect):

2014-03-04  Ryuan Choi  <ryuan.choi@samsung.com>

        Remove unused member variable of NetworkInfoController
        https://bugs.webkit.org/show_bug.cgi?id=129674

        Reviewed by Gyuyoung Kim.

        * Modules/networkinfo/NetworkInfoController.cpp:
        (WebCore::NetworkInfoController::NetworkInfoController):
        (WebCore::NetworkInfoController::create):
        (WebCore::provideNetworkInfoTo):
        * Modules/networkinfo/NetworkInfoController.h: Removed m_page which is not really used.

2014-02-07  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Percentages of indefinite sizes should compute to auto
        https://bugs.webkit.org/show_bug.cgi?id=128173

        Reviewed by Darin Adler.

        We should treat percentages of indefinite sizes as auto as
        mandated by the spec. Otherwise we would end up calculating a
        percentage of -1, the value we use to represent infinite.

        Added some test cases to the current tests.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::gridTrackSize):
        * rendering/style/GridTrackSize.h:
        (WebCore::GridTrackSize::isPercentage):

2014-03-04  Ryosuke Niwa  <rniwa@webkit.org>

        Don't synchronize attributes in reflect setters when we don't need to
        https://bugs.webkit.org/show_bug.cgi?id=129662

        Reviewed by Andreas Kling.

        The vast majority of attributes don't need synchronization. Avoid calling synchronizeAttribute in setters
        for those content attributes generated by "Reflect" keyword in IDL.

        * bindings/scripts/CodeGenerator.pm:
        (SetterExpression):
        * dom/Element.cpp:
        (WebCore::Element::setAttributeWithoutSynchronization): Added.
        * dom/Element.h:

2014-03-04  Andreas Kling  <akling@apple.com>

        Remove Document::idAttributeName().
        <https://webkit.org/b/129663>

        Reviewed by Ryosuke "DYEB" Niwa.

        This abstraction is not actually used and causes unnecessary indirection
        in some pretty hot code paths.

        Replace it with hard-coded HTMLNames::idAttr instead which is a compile
        time constant pointer. We can revisit this in the future if we wish to
        implement support for custom id attributes.

        * dom/Attr.cpp:
        (WebCore::Attr::isId):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/Document.h:
        * dom/Element.cpp:
        (WebCore::Element::attributeChanged):
        (WebCore::Element::willModifyAttribute):
        * dom/Element.h:
        (WebCore::Element::getIdAttribute):
        (WebCore::Element::getNameAttribute):
        (WebCore::Element::setIdAttribute):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseAttribute):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::parseAttribute):
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::parseAttribute):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::attributeChanged):
        (WebCore::SVGElement::isKnownAttribute):
        (WebCore::SVGElement::svgAttributeChanged):

2014-03-04  Ryosuke Niwa  <rniwa@webkit.org>

        REGRESSION(r164856): Use after free in WebCore::QualifiedName::operator== / WebCore::StyledElement::attributeChanged
        https://bugs.webkit.org/show_bug.cgi?id=129550

        Reviewed by Andreas Kling.

        We can't store a reference to QualifiedName here because ensureUniqueElementData could delete QualifiedName inside Attribute.

        Test: fast/dom/uniquing-attributes-via-setAttribute.html

        * dom/Element.cpp:
        (WebCore::Element::setAttributeInternal):

2014-03-04  Hyowon Kim  <hw1008.kim@samsung.com>

        Move EvasGLContext and EvasGLSurface files into the efl common directory.
        https://bugs.webkit.org/show_bug.cgi?id=129603

        Reviewed by Gyuyoung Kim.

        EFL port will use EvasGLContext and EvasGLSurface files in both WK1 and WK2.

        No new tests, just refactorings.

        * PlatformEfl.cmake:
        * platform/graphics/efl/EvasGLContext.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLContext.cpp.
        (WebKit::EvasGLContext::EvasGLContext):
        (WebKit::EvasGLContext::~EvasGLContext):
        * platform/graphics/efl/EvasGLContext.h: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLContext.h.
        (WebKit::EvasGLContext::create):
        (WebKit::EvasGLContext::context):
        * platform/graphics/efl/EvasGLSurface.cpp: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLSurface.cpp.
        (WebKit::EvasGLSurface::EvasGLSurface):
        (WebKit::EvasGLSurface::~EvasGLSurface):
        * platform/graphics/efl/EvasGLSurface.h: Renamed from Source/WebKit2/UIProcess/API/efl/EvasGLSurface.h.
        (WebKit::EvasGLSurface::create):
        (WebKit::EvasGLSurface::surface):

2014-03-03  Martin Robinson  <mrobinson@igalia.com>

        Fix the GTK+ CMake build

        * PlatformGTK.cmake: Add a missing file to the source list.

2014-03-03  Sanghyup Lee  <sh53.lee@samsung.com>

        :active style is not cleared when its display property is set to none before mouse released.
        https://bugs.webkit.org/show_bug.cgi?id=129465

        Reviewed by Antonio Gomes.

        Source/WebCore:

        We currently clearing the :active style when element has a renderer.
        This patch makes elements clear its active style regardless of renderer. 

        * dom/Document.cpp:
        (WebCore::Document::updateHoverActiveState):

        LayoutTests:

        * fast/css/active-display-none-expected.txt: Added.
        * fast/css/active-display-none.html: Added.


2014-03-03  Andreas Kling  <akling@apple.com>

        Remove 2 unnecessary includes from JSDOMBinding.h
        <https://webkit.org/b/129619>

        Reviewed by Antti Koivisto.

        * bindings/js/JSDOMBinding.h:

2014-03-03  Myles C. Maxfield  <mmaxfield@apple.com>

        GraphicsContext::drawLineForText needs to be exported from WebCore.dylib for iOS builds
        https://bugs.webkit.org/show_bug.cgi?id=129647

        Reviewed by NOBODY (This is a build fix).

        Fixing after r165025 and r165016.

        No new tests as this is a build fix.

        * WebCore.exp.in:

2014-03-03  Jer Noble  <jer.noble@apple.com>

        [iOS] Start playback button misplaced
        https://bugs.webkit.org/show_bug.cgi?id=129628

        Reviewed by Simon Fraser.

        On YouTube embeds, while the video is loading it is placed into the DOM with a 0x0 size.
        This causes the start playback button to be visible in the upper-left corner of the embed
        area. The button wasn't visible previously (in plugin mode) because the plugin clipped its
        drawing to its bounds, and so the <video> shadow should do the same.

        * Modules/mediacontrols/mediaControlsiOS.css:
        (::-webkit-media-controls):

2014-03-03  Enrica Casucci  <enrica@apple.com>

        Build fix for iOS simulator.

        * WebCore.exp.in:

2014-03-03  Jeremy Jones  <jeremyj@apple.com>

        Forward application suspend resume notifications to the web process.
        https://bugs.webkit.org/show_bug.cgi?id=129356

        Reviewed by Eric Carlson.

        * platform/audio/ios/MediaSessionManagerIOS.mm:
        (-[WebMediaSessionHelper initWithCallback:]):
        Observe UIApplicationDidBecomeActiveNotification,
        WebUIApplicationDidBecomeActiveNotification,
        WebUIApplicationWillEnterForegroundNotification, and
        WebUIApplicationWillResignActiveNotification
        
        (-[WebMediaSessionHelper applicationDidBecomeActive:]):
        Resume session.

2014-03-03  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r165013.
        http://trac.webkit.org/changeset/165013
        https://bugs.webkit.org/show_bug.cgi?id=129646

        New code is not thread safe, asserting on a worker test
        (Requested by ap on #webkit).

        * WebCore.exp.in:
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI):
        * html/DOMURL.cpp:
        (WebCore::DOMURL::revokeObjectURL):
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::cachedResource):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::replayXHR):
        * loader/DocumentLoader.cpp:
        (WebCore::areAllLoadersPageCacheAcceptable):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads):
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::updateFromElement):
        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::create):
        * loader/cache/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet):
        * loader/cache/CachedCSSStyleSheet.h:
        * loader/cache/CachedFont.cpp:
        (WebCore::CachedFont::CachedFont):
        * loader/cache/CachedFont.h:
        * loader/cache/CachedImage.cpp:
        (WebCore::CachedImage::CachedImage):
        * loader/cache/CachedImage.h:
        * loader/cache/CachedRawResource.cpp:
        (WebCore::CachedRawResource::CachedRawResource):
        * loader/cache/CachedRawResource.h:
        * loader/cache/CachedResource.cpp:
        (WebCore::CachedResource::CachedResource):
        (WebCore::CachedResource::~CachedResource):
        * loader/cache/CachedResource.h:
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::createResource):
        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet):
        (WebCore::CachedResourceLoader::requestResource):
        (WebCore::CachedResourceLoader::revalidateResource):
        (WebCore::CachedResourceLoader::loadResource):
        * loader/cache/CachedResourceLoader.h:
        * loader/cache/CachedSVGDocument.cpp:
        (WebCore::CachedSVGDocument::CachedSVGDocument):
        * loader/cache/CachedSVGDocument.h:
        * loader/cache/CachedScript.cpp:
        (WebCore::CachedScript::CachedScript):
        * loader/cache/CachedScript.h:
        * loader/cache/CachedTextTrack.cpp:
        (WebCore::CachedTextTrack::CachedTextTrack):
        * loader/cache/CachedTextTrack.h:
        * loader/cache/CachedXSLStyleSheet.cpp:
        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
        * loader/cache/CachedXSLStyleSheet.h:
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::add):
        (WebCore::MemoryCache::revalidationSucceeded):
        (WebCore::MemoryCache::resourceForURL):
        (WebCore::MemoryCache::resourceForRequest):
        (WebCore::MemoryCache::addImageToCache):
        (WebCore::MemoryCache::removeImageFromCache):
        (WebCore::MemoryCache::evict):
        (WebCore::MemoryCache::removeResourcesWithOrigin):
        (WebCore::MemoryCache::getOriginsWithCache):
        (WebCore::MemoryCache::removeUrlFromCache):
        (WebCore::MemoryCache::removeRequestFromCache):
        (WebCore::MemoryCache::removeRequestFromCacheImpl):
        (WebCore::MemoryCache::crossThreadRemoveRequestFromCache):
        (WebCore::MemoryCache::getStatistics):
        (WebCore::MemoryCache::setDisabled):
        * loader/cache/MemoryCache.h:
        * platform/CrossThreadCopier.cpp:
        * platform/CrossThreadCopier.h:
        * platform/network/cf/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest):
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::updateSnapshot):
        * testing/Internals.cpp:
        (WebCore::Internals::isLoadingFromMemoryCache):

2014-03-03  Sam Weinig  <sam@webkit.org>

        Fix the iOS Simulator build.

        * WebCore.exp.in:

2014-03-03  Myles C. Maxfield  <mmaxfield@apple.com>

        Space between double underlines does not scale with font size
        https://bugs.webkit.org/show_bug.cgi?id=129521

        Reviewed by Simon Fraser.

        This patch moves the logic about how far to draw the second underline (when text-decoration-style: double
        is specified) from InlineTextBox to GraphicsContext, because GraphicsContext is the authoritative source
        about how thick underlines should be. The space between the two underlines is set to the thickness of
        each of the underlines.

        This patch also deletes some unused code in InlineTextBox that was never getting triggered, in addition
        to unifying drawLineForText with drawLinesForText. This didn't have any performance impact in my testing.

        Test: fast/css3-text/css3-text-decoration/text-decoration-style-double-space-scales.html

        * platform/graphics/GraphicsContext.h: drawLineForText takes a boolean for if we should draw double
        underlines.
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawLineForText):
        (WebCore::GraphicsContext::drawLinesForText):
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::drawLineForText):
        * platform/graphics/wince/GraphicsContextWinCE.cpp:
        (WebCore::GraphicsContext::drawLineForText):
        * rendering/InlineTextBox.cpp: Use new boolean argument
        (WebCore::drawSkipInkUnderline):
        (WebCore::InlineTextBox::paintDecoration):

2014-02-28  Chris Fleizach  <cfleizach@apple.com>

        AX: Support IOS Accessibility in WK2
        https://bugs.webkit.org/show_bug.cgi?id=129527

        Reviewed by Sam Weinig.

        Update the iOS wrapper so that it can convert points to screen space in WebKit2.

        * accessibility/ios/WebAccessibilityObjectWrapperIOS.mm:
        (-[WebAccessibilityObjectWrapper convertPointToScreenSpace:]):
        (-[WebAccessibilityObjectWrapper convertRectToScreenSpace:]):

2014-03-03  Martin Hock  <mhock@apple.com>

        Add support for sessions to MemoryCache.
        https://bugs.webkit.org/show_bug.cgi?id=127794

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI): Initialize CachedImage with sessionID.
        * html/DOMURL.cpp:
        (WebCore::DOMURL::revokeObjectURL): Remove URL from MemoryCache for all sessions.
        * inspector/InspectorPageAgent.cpp:
        (WebCore::InspectorPageAgent::cachedResource): Pass sessionID to MemoryCache.
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::replayXHR): Ditto.
        * loader/DocumentLoader.cpp:
        (WebCore::areAllLoadersPageCacheAcceptable): Ditto.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::tellClientAboutPastMemoryCacheLoads): Ditto.
        * loader/ImageLoader.cpp:
        (WebCore::ImageLoader::updateFromElement): Initialize CachedImage with sessionID.
        * loader/archive/cf/LegacyWebArchive.cpp:
        (WebCore::LegacyWebArchive::create): Pass sessionID to MemoryCache.
        * loader/cache/CachedCSSStyleSheet.cpp:
        (WebCore::CachedCSSStyleSheet::CachedCSSStyleSheet): Constructor takes sessionID.
        * loader/cache/CachedCSSStyleSheet.h:
        * loader/cache/CachedFont.cpp: Ditto.
        (WebCore::CachedFont::CachedFont):
        * loader/cache/CachedFont.h:
        * loader/cache/CachedImage.cpp: Ditto.
        (WebCore::CachedImage::CachedImage):
        * loader/cache/CachedImage.h:
        * loader/cache/CachedRawResource.cpp: Ditto.
        (WebCore::CachedRawResource::CachedRawResource):
        * loader/cache/CachedRawResource.h:
        * loader/cache/CachedResource.cpp: Ditto.
        (WebCore::CachedResource::CachedResource):
        (WebCore::CachedResource::~CachedResource): Pass sessionID to MemoryCache.
        * loader/cache/CachedResource.h:
        (WebCore::CachedResource::sessionID):
        * loader/cache/CachedResourceLoader.cpp:
        (WebCore::createResource): Constructors take sessionID.
        (WebCore::CachedResourceLoader::sessionID): Retrieve sessionID from page.
        (WebCore::CachedResourceLoader::requestUserCSSStyleSheet): Pass sessionID to MemoryCache.
        (WebCore::CachedResourceLoader::requestResource): Initialize CachedCSSStyleSheet with sessionID.
        (WebCore::CachedResourceLoader::revalidateResource): Initialize cached resource with sessionID.
        (WebCore::CachedResourceLoader::loadResource): Pass sessionID to MemoryCache and initialize cached resource with sessionID.
        * loader/cache/CachedResourceLoader.h:
        * loader/cache/CachedSVGDocument.cpp: Constructor takes sessionID.
        (WebCore::CachedSVGDocument::CachedSVGDocument):
        * loader/cache/CachedSVGDocument.h:
        * loader/cache/CachedScript.cpp: Ditto.
        (WebCore::CachedScript::CachedScript):
        * loader/cache/CachedScript.h:
        * loader/cache/CachedTextTrack.cpp: Ditto.
        (WebCore::CachedTextTrack::CachedTextTrack):
        * loader/cache/CachedTextTrack.h:
        * loader/cache/CachedXSLStyleSheet.cpp: Ditto.
        (WebCore::CachedXSLStyleSheet::CachedXSLStyleSheet):
        * loader/cache/CachedXSLStyleSheet.h:
        * loader/cache/MemoryCache.cpp:
        (WebCore::MemoryCache::getSessionMap): Retrieve CachedResourceMap based on sessionID.
        (WebCore::MemoryCache::add): Use sessionID from CachedResource parameter.
        (WebCore::MemoryCache::revalidationSucceeded): Add sessionID parameter.
        (WebCore::MemoryCache::resourceForURL): Ditto.
        (WebCore::MemoryCache::resourceForRequest): Ditto, also move impl into impl method.
        (WebCore::MemoryCache::resourceForRequestImpl): Add CachedResourceMap parameter.
        (WebCore::MemoryCache::addImageToCache): Use default sessionID.
        (WebCore::MemoryCache::removeImageFromCache): Ditto.
        (WebCore::MemoryCache::evict): Use sessionID from CachedResource parameter.
        (WebCore::MemoryCache::removeResourcesWithOrigin): Iterate through all CachedResourceMaps.
        (WebCore::MemoryCache::getOriginsWithCache): Ditto.
        (WebCore::MemoryCache::removeUrlFromCache): Add sessionID parameter.
        (WebCore::MemoryCache::removeRequestFromCache): Ditto.
        (WebCore::MemoryCache::removeRequestFromCacheImpl): Ditto.
        (WebCore::MemoryCache::removeRequestFromSessionCaches): Iterate through all CachedResourceMaps.
        (WebCore::MemoryCache::crossThreadRemoveRequestFromCache): Add sessionID parameter.
        (WebCore::MemoryCache::getStatistics): Iterate through all CachedResourceMaps.
        (WebCore::MemoryCache::setDisabled): Ditto.
        * loader/cache/MemoryCache.h: Create another level for cache.
        * platform/CrossThreadCopier.cpp: Allow copying SessionIDs across threads.
        (WebCore::SessionID>::copy):
        * platform/CrossThreadCopier.h:
        * platform/network/cf/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest): Remove trailing whitespace.
        * rendering/RenderSnapshottedPlugIn.cpp:
        (WebCore::RenderSnapshottedPlugIn::updateSnapshot): Initialize CachedImage with sessionID.
        * testing/Internals.cpp:
        (WebCore::Internals::isLoadingFromMemoryCache): Pass sessionID to MemoryCache.

2014-03-03  Andreas Kling  <akling@apple.com>

        Remove unused DataView code from JSDOMBinding.h
        <https://webkit.org/b/129616>

        Reviewed by Antti Koivisto.

        * bindings/js/JSDOMBinding.h:

2014-03-03  Simon Fraser  <simon.fraser@apple.com>

        Allow overflow-scroll to be one-finger scrolled until we hook up UIScrollViews
        https://bugs.webkit.org/show_bug.cgi?id=129621

        Reviewed by Benjamin Poulain.

        Temporary change to allow overflow:scroll to be scrolled in iOS WK2.

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::hasAcceleratedTouchScrolling):

2014-03-03  Antti Koivisto  <antti@apple.com>

        Find results on simple lines are not marked correctly
        https://bugs.webkit.org/show_bug.cgi?id=129586

        Reviewed by Andreas Kling.

        Tests: editing/text-iterator/count-mark-lineboxes.html
               editing/text-iterator/count-mark-simple-lines.html
               
        TextIterator operating on simple lines failed to take the end of the range into account.
        This also causes performance issues on long documents as range traversals would miss the end
        node and end up going through the entire document.

        * editing/TextIterator.cpp:
        (WebCore::TextIterator::handleTextNode):
        
            Stop when hitting the range end on simple text nodes.

        (WebCore::SimplifiedBackwardsTextIterator::handleTextNode):
        
            Use hasRenderedText test instead of linebox-only firstTextBox.

        * testing/Internals.cpp:
        (WebCore::Internals::countMatchesForText):
        * testing/Internals.h:
        * testing/Internals.idl:
        
            Add testing interface for counting and marking matches.

2014-03-03  Benjamin Poulain  <benjamin@webkit.org>

        SelectorQuery failing RightMostWithIdMatch are compiling their selectors for each execution
        https://bugs.webkit.org/show_bug.cgi?id=129601

        Reviewed by Andreas Kling.

        This caused a regression after r164924 for documents in quirks mode. Since those always fail
        selectorForIdLookup(), they ended up compiling the selector every time they were called.

        * dom/SelectorQuery.cpp:
        (WebCore::SelectorDataList::execute):

2014-03-01  Jer Noble  <jer.noble@apple.com>

        [Mac] Crash in MediaPlayer::rateChanged()
        https://bugs.webkit.org/show_bug.cgi?id=129548

        Reviewed by Darin Adler.

        WTF::bind will automatically ref the parameters added to it. But MediaPlayerPrivate-
        AVFoundation and -MediaSOurceAVFObjC are not RefCounted, so by the time the bound
        function is called, the underlying objects may have been freed.

        Replace or augment callOnMainThread arguments with lambdas and weakPtrs so that
        if the argument has been destroyed, its methods will not be called.

        Make the MediaPlayerPrivateAVFoundation::Notification function type a std::function:
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        (WebCore::MediaPlayerPrivateAVFoundation::Notification::Notification):
        (WebCore::MediaPlayerPrivateAVFoundation::Notification::function):

        Make createWeakPtr() public so that it can be called from non-class methods:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createWeakPtr): 
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createWeakPtr): 

        Use a weakPtr to abort callOnMainThread() if the object has been destroyed:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::CMTimebaseEffectiveRateChangedCallback):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::play):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::pause):
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekWithTolerance):

2014-02-28  Jer Noble  <jer.noble@apple.com>

        [MSE] YouTube videos fail to play
        https://bugs.webkit.org/show_bug.cgi?id=129525

        Reviewed by Darin Adler.

        Test: media/media-source/media-source-fudge-factor.html

        Add a very simple playability metric to SourceBuffer. Track the number of seconds buffered
        and use that metric to determine whether the MediaSource has buffered enough data to play
        through.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::currentTime): Added simple accessor.
        (WebCore::MediaSource::monitorSourceBuffers): Replace the functor-based iterators with lambdas.
        (WebCore::MediaSource::addSourceBuffer): Drive-by fix; only add new source buffers to the
            activeSourceBuffers list if those buffers are actually active.
        * Modules/mediasource/MediaSource.h:
        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::SourceBuffer): Initialize new ivars.
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): Measure the number of seconds buffered.
        (WebCore::SourceBuffer::monitorBufferingRate): Use a simple Exponential moving average to
            track the buffering rate.
        (WebCore::SourceBuffer::hasCurrentTime): Return true if the current time is within 1/24 s
            of a buffered range.
        (WebCore::SourceBuffer::hasFutureTime): Moved from MediaSource.
        (WebCore::SourceBuffer::canPlayThrough): Return true if the buffering rate is > 1s per
            second, or if the rate is sufficient to keep up over the remaining time.
        * Modules/mediasource/SourceBuffer.h:

2014-03-03  Bear Travis  <betravis@adobe.com>

        [CSS Shapes] Serialize circle positions
        https://bugs.webkit.org/show_bug.cgi?id=129404

        Reviewed by Dirk Schulze.

        Circle positions should always be present when serialized, and should
        only have the 2 or 4-valued form. Keywords are converted to percentages
        and simplified where possible. This patch adds some additional processing
        that converts the parsed position into the serialized format, before
        converting it to text. See http://dev.w3.org/csswg/css-shapes/#basic-shape-serialization.

        Updated existing parsing tests.

        * css/CSSBasicShapes.cpp:
        (WebCore::serializePositionOffset): Convert a position offset to a serialized string.
        The offset must be a pair, as generated by buildSerializablePositionOffset.
        (WebCore::buildSerializablePositionOffset): Generates a keyword + offset pair for each
        position offset. The keywords may later be dropped during serialization.
        (WebCore::CSSBasicShapeCircle::cssText): Use the new serialization methods.

2014-03-03  Lorenzo Tilve  <ltilve@igalia.com>

        Optimize StylePropertiesSet::findPropertyIndex() to improve CSS properties performance
        https://bugs.webkit.org/show_bug.cgi?id=129605

        Reviewed by Andreas Kling.

        Merged from Blink (patch by Mikhail Pozdnyakov):
        https://src.chromium.org/viewvc/blink?view=revision&revision=167325

        Avoid checking whether 'StylePropertiesSet' is mutable and accesing directly to its
        data members to achieve performance improvements

        Before the optimization applied:
            mean: 3064.8337171934063 runs/s
            median: 3097.5899379343855 runs/s
            stdev: 66.89274074044187 runs/s
            min: 2891.7479324362585 runs/s
            max: 3113.288683440125 runs/s

        After the optimization applied:
            mean: 3343.8356114138105 runs/s
            median: 3356.25682957446 runs/s
            stdev: 36.297533087489036 runs/s
            min: 3238.5468032264243 runs/s
            max: 3368.664837531425 runs/s

        Performance gain for the average value is approx. 9.1%, in the
        range of the 10% - 8.2% for the min and max measured
        values (Linux desktop x64).

        * css/StyleProperties.cpp:
        (WebCore::ImmutableStyleProperties::findPropertyIndex):
        (WebCore::MutableStyleProperties::findPropertyIndex):
        * css/StyleProperties.h:
        (WebCore::toMutableStyleProperties):
        (WebCore::toImmutableStyleProperties):
        (WebCore::StyleProperties::findPropertyIndex):

2014-03-03  Brian Burg  <bburg@apple.com>

        Unreviewed build fix for Windows after r164986.

        * WebCore.vcxproj/build-generated-files.sh: Export WebReplayScripts
        so that the build system knows how to find CodeGeneratorReplayInputs.py.

2014-03-03  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Overset computation is incorrect in some cases
        https://bugs.webkit.org/show_bug.cgi?id=129032

        Reviewed by Mihnea Ovidenie.

        This patch reworks the way overset is computed for regions and named flows.

        1. Regions overflow no longer trigger an overset changed event. This is because
        the overflow of a box is contained within the region range of the box. The content
        edge should be considered the logical bottom position of the content inside the
        flow thread.

        2. The regions events logic was moved from RenderFlowThread to RenderNamedFlowThread
        and from RenderRegion to RenderNamedFlowFragment (including the regionOverset property).

        3. The overset value of the named flow is no longer stored in the named flow. It is
        extracted from the overset of the last region in the chain.

        4. The regions overset is not computed every time the flow thread is laid out which
        should improve performance for flows with many regions. With the patch, each region
        computes the overset value during its layout when the flow thread is in the overflow
        or the final layout phase.

        5. The overset changed event is dispatched only at the end of the layout of the named flows,
        after all the region overset changes have been considered. This means that the overset
        event can't be dispatched in the middle of the auto-height processing algorithm that
        requires multiple layout passes for the flow threads.

        However, the region layout update event dispatch timing was not changed, it is dispatched
        every time the flow thread has a layout. This preserves the current behavior of the event.

        Tests: The old tests were modified to take into account the change.

        * dom/Element.cpp:
        (WebCore::Element::webkitRegionOverset):
        * dom/WebKitNamedFlow.cpp:
        (WebCore::WebKitNamedFlow::overset):
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForRegions):
        * rendering/FlowThreadController.cpp:
        (WebCore::FlowThreadController::updateFlowThreadsIntoMeasureContentPhase):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeOverflow):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::RenderFlowThread):
        (WebCore::RenderFlowThread::layout):
        * rendering/RenderFlowThread.h:
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::layoutBlock):
        (WebCore::RenderNamedFlowFragment::setRegionOversetState):
        (WebCore::RenderNamedFlowFragment::regionOversetState):
        (WebCore::RenderNamedFlowFragment::updateOversetState):
        * rendering/RenderNamedFlowFragment.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::RenderNamedFlowThread):
        (WebCore::RenderNamedFlowThread::computeOverflow):
        (WebCore::RenderNamedFlowThread::layout):
        (WebCore::RenderNamedFlowThread::dispatchNamedFlowEvents):
        (WebCore::RenderNamedFlowThread::dispatchRegionLayoutUpdateEventIfNeeded):
        (WebCore::RenderNamedFlowThread::dispatchRegionOversetChangeEventIfNeeded):
        * rendering/RenderNamedFlowThread.h:
        There's a new field called m_flowContentBottom that tracks the content bottom of the flow thread
        after layout. This value is used to compute the overset value of the regions because it's not
        affected by relative positioning or visual overflow such as shadows.
        * rendering/RenderRegion.cpp:
        * rendering/RenderRegion.h:

2014-03-03  Tomas Popela  <tpopela@redhat.com>

        [GTK] CodeGeneratorGObject.pm remove usage of undefined variable
        https://bugs.webkit.org/show_bug.cgi?id=129602

        Reviewed by Martin Robinson.

        Remove usage of undefined variable hdrPropIncludes in CodeGeneratorGObject.pm

        * bindings/scripts/CodeGeneratorGObject.pm:
        (WriteData):

2014-03-03  Brian Burg  <bburg@apple.com>

        Web Replay: upstream input storage, capture/replay machinery, and inspector domain
        https://bugs.webkit.org/show_bug.cgi?id=128782

        Reviewed by Timothy Hatcher, Joseph Pecoraro, and Andreas Kling.

        No new tests yet, as they rely on infrastructure tracked in https://webkit.org/b/129190.

        Replayable executions are organized into ReplaySessions, which can
        contain several ReplaySessionSegments that divide overall execution
        at main frame navigation boundaries. NondeterministicInput subclasses
        are stored in SegmentedInputStorage according to the input's InputQueue.

        Capture and playback are controlled at the page granularity by the Page's
        ReplayController. The controller knows how to create new segments, replay to
        arbitrary positions in the ReplaySession, and track the active InputCursor.

        The capturing and replaying input cursor subclasses encapsulate state for
        storing new inputs and loading/dispatching saved inputs, respectively.

        The ReplayAgent and associated inspector protocol domain is the friendly
        public API for programmatically capturing and replaying sessions.

        * DerivedSources.make: Add replay inputs code generation target. Add the
        replay domain specification to the list of inspector domains.

        * ForwardingHeaders/replay/EncodedValue.h: Added.
        * WebCore.xcodeproj/project.pbxproj: Add many files, and export
        `WebReplayScripts` environment variable to DerivedSources.make.

        * inspector/InspectorController.cpp: Add the replay agent.
        (WebCore::InspectorController::InspectorController):

        * inspector/InspectorInstrumentation.cpp:
        Add events for segment lifecycle events, and loading/unloading of sessions
        and segments, and capture/replay progress events. The replay controller
        also needs to know about detached and committed frames.

        (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        (WebCore::InspectorInstrumentation::sessionCreatedImpl):
        (WebCore::InspectorInstrumentation::sessionLoadedImpl):
        (WebCore::InspectorInstrumentation::sessionModifiedImpl):
        (WebCore::InspectorInstrumentation::segmentCreatedImpl):
        (WebCore::InspectorInstrumentation::segmentCompletedImpl):
        (WebCore::InspectorInstrumentation::segmentLoadedImpl):
        (WebCore::InspectorInstrumentation::segmentUnloadedImpl):
        (WebCore::InspectorInstrumentation::captureStartedImpl):
        (WebCore::InspectorInstrumentation::captureStoppedImpl):
        (WebCore::InspectorInstrumentation::playbackStartedImpl):
        (WebCore::InspectorInstrumentation::playbackPausedImpl):
        (WebCore::InspectorInstrumentation::playbackHitPositionImpl):
        (WebCore::InspectorInstrumentation::replayAgentEnabled):
        * inspector/InspectorInstrumentation.h:
        (WebCore::InspectorInstrumentation::replayAgentEnabled):
        (WebCore::InspectorInstrumentation::sessionCreated):
        (WebCore::InspectorInstrumentation::sessionLoaded):
        (WebCore::InspectorInstrumentation::sessionModified):
        (WebCore::InspectorInstrumentation::segmentCreated):
        (WebCore::InspectorInstrumentation::segmentCompleted):
        (WebCore::InspectorInstrumentation::segmentLoaded):
        (WebCore::InspectorInstrumentation::segmentUnloaded):
        (WebCore::InspectorInstrumentation::captureStarted):
        (WebCore::InspectorInstrumentation::captureStopped):
        (WebCore::InspectorInstrumentation::playbackStarted):
        (WebCore::InspectorInstrumentation::playbackPaused):
        (WebCore::InspectorInstrumentation::playbackHitPosition):

        * inspector/InspectorReplayAgent.cpp: Added.
        (WebCore::buildInspectorObjectForPosition):
        (WebCore::buildInspectorObjectForInput):
        (WebCore::buildInspectorObjectForSession):
        (WebCore::SerializeInputToJSONFunctor::SerializeInputToJSONFunctor):
        (WebCore::SerializeInputToJSONFunctor::~SerializeInputToJSONFunctor):
        (WebCore::SerializeInputToJSONFunctor::operator()):
        (WebCore::SerializeInputToJSONFunctor::returnValue):
        (WebCore::buildInspectorObjectForSegment):
        (WebCore::InspectorReplayAgent::InspectorReplayAgent):
        (WebCore::InspectorReplayAgent::~InspectorReplayAgent):
        (WebCore::InspectorReplayAgent::sessionState):
        (WebCore::InspectorReplayAgent::didCreateFrontendAndBackend):
        (WebCore::InspectorReplayAgent::willDestroyFrontendAndBackend):
        (WebCore::InspectorReplayAgent::frameNavigated):
        (WebCore::InspectorReplayAgent::frameDetached):
        (WebCore::InspectorReplayAgent::sessionCreated):
        (WebCore::InspectorReplayAgent::sessionModified):
        (WebCore::InspectorReplayAgent::sessionLoaded):
        (WebCore::InspectorReplayAgent::segmentCreated):
        (WebCore::InspectorReplayAgent::segmentCompleted):
        (WebCore::InspectorReplayAgent::segmentLoaded):
        (WebCore::InspectorReplayAgent::segmentUnloaded):
        (WebCore::InspectorReplayAgent::captureStarted):
        (WebCore::InspectorReplayAgent::captureStopped):
        (WebCore::InspectorReplayAgent::playbackStarted):
        (WebCore::InspectorReplayAgent::playbackPaused):
        (WebCore::InspectorReplayAgent::playbackHitPosition):
        (WebCore::InspectorReplayAgent::startCapturing):
        (WebCore::InspectorReplayAgent::stopCapturing):
        (WebCore::InspectorReplayAgent::replayToPosition):
        (WebCore::InspectorReplayAgent::replayToCompletion):
        (WebCore::InspectorReplayAgent::pausePlayback):
        (WebCore::InspectorReplayAgent::cancelPlayback):
        (WebCore::InspectorReplayAgent::switchSession):
        (WebCore::InspectorReplayAgent::insertSessionSegment):
        (WebCore::InspectorReplayAgent::removeSessionSegment):
        Provide a public API for modifying sessions. This is the backend support
        for user editing of replay sessions to add/remove specific segments.

        (WebCore::InspectorReplayAgent::findSession):
        (WebCore::InspectorReplayAgent::findSegment):
        (WebCore::InspectorReplayAgent::getAvailableSessions):
        (WebCore::InspectorReplayAgent::getSerializedSession):
        (WebCore::InspectorReplayAgent::getSerializedSegment):
        Most of the replay protocol domain speaks in terms of sesssion and
        segment identifiers. These functions return the actual data associated
        with these identifiers.

        * inspector/InspectorReplayAgent.h: Added.
        * inspector/InstrumentingAgents.cpp:
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (WebCore::InstrumentingAgents::reset):
        * inspector/InstrumentingAgents.h:
        (WebCore::InstrumentingAgents::inspectorReplayAgent): Added.
        (WebCore::InstrumentingAgents::setInspectorReplayAgent): Added.
        * inspector/protocol/Replay.json: Added.

        * page/Page.cpp:
        (WebCore::Page::Page):
        * page/Page.h:
        (WebCore::Page::replayController): Added.
        * platform/Logging.h: Add WebReplay logging channel.
        * replay/AllReplayInputs.h: Added. Simplifies importing all input definitions.

        * replay/CapturingInputCursor.cpp: Added.
        (WebCore::CapturingInputCursor::CapturingInputCursor):
        (WebCore::CapturingInputCursor::~CapturingInputCursor):
        (WebCore::CapturingInputCursor::create):
        (WebCore::CapturingInputCursor::storeInput):
        (WebCore::CapturingInputCursor::loadInput):
        (WebCore::CapturingInputCursor::uncheckedLoadInput):
        * replay/CapturingInputCursor.h: Added.

        * replay/EventLoopInput.h:
        (WebCore::EventLoopInputBase::EventLoopInputBase):
        (WebCore::EventLoopInputBase::timestamp):
        (WebCore::EventLoopInputBase::setTimestamp): Support deserialization.

        * replay/EventLoopInputDispatcher.cpp: Added. This class encapsulates the timers
        and measurements used to dispatch event loop inputs during replay.

        (WebCore::EventLoopInputDispatcher::EventLoopInputDispatcher):
        (WebCore::EventLoopInputDispatcher::run):
        (WebCore::EventLoopInputDispatcher::pause):
        (WebCore::EventLoopInputDispatcher::timerFired):
        (WebCore::EventLoopInputDispatcher::dispatchInputSoon):
        (WebCore::EventLoopInputDispatcher::dispatchInput):
        * replay/EventLoopInputDispatcher.h: Added.
        (WebCore::EventLoopInputDispatcherClient::EventLoopInputDispatcherClient):
        (WebCore::EventLoopInputDispatcherClient::~EventLoopInputDispatcherClient):

        * replay/FunctorInputCursor.h: Added.
        (WebCore::FunctorInputCursor::~FunctorInputCursor):
        (WebCore::FunctorInputCursor::forEachInputInQueue):
        (WebCore::FunctorInputCursor::FunctorInputCursor):
        (WebCore::FunctorInputCursor::storeInput):
        (WebCore::FunctorInputCursor::loadInput):
        (WebCore::FunctorInputCursor::uncheckedLoadInput):

        * replay/ReplayController.cpp: Added.
        (WebCore::ReplayController::ReplayController):
        (WebCore::ReplayController::switchSession):
        (WebCore::ReplayController::createSegment):
        (WebCore::ReplayController::completeSegment):
        (WebCore::ReplayController::loadSegment):
        (WebCore::ReplayController::unloadSegment):
        (WebCore::ReplayController::startCapturing):
        (WebCore::ReplayController::stopCapturing):
        (WebCore::ReplayController::startPlayback):
        (WebCore::ReplayController::pausePlayback):
        (WebCore::ReplayController::cancelPlayback):
        (WebCore::ReplayController::replayToPosition):
        (WebCore::ReplayController::frameDetached):
        (WebCore::ReplayController::frameNavigated):
        (WebCore::ReplayController::loadedSession):
        (WebCore::ReplayController::loadedSegment):
        (WebCore::ReplayController::activeInputCursor):
        (WebCore::ReplayController::dispatcher):
        (WebCore::ReplayController::willDispatchInput):
        (WebCore::ReplayController::didDispatchInput):
        (WebCore::ReplayController::didDispatchFinalInput):
        * replay/ReplayController.h: Added.
        (WebCore::ReplayPosition::ReplayPosition):
        (WebCore::ReplayPosition::operator<):
        (WebCore::ReplayPosition::operator==):

        * replay/ReplayInputCreationMethods.cpp: Added.
        Static factory implementations for inputs belong here.
        (WebCore::InitialNavigation::createFromPage):

        * replay/ReplayInputDispatchMethods.cpp: Added.
        All dispatch() implementations for generated replay inputs belong here.
        (WebCore::BeginSegmentSentinel::dispatch):
        (WebCore::EndSegmentSentinel::dispatch):
        (WebCore::InitialNavigation::dispatch):

        * replay/ReplayInputTypes.cpp:
        (WebCore::ReplayInputTypes::ReplayInputTypes):
        * replay/ReplayInputTypes.h: Define strings for WebCore inputs.

        * replay/ReplaySession.cpp: Added.
        (WebCore::ReplaySession::create):
        (WebCore::ReplaySession::ReplaySession):
        (WebCore::ReplaySession::~ReplaySession):
        (WebCore::ReplaySession::appendSegment):
        (WebCore::ReplaySession::insertSegment):
        (WebCore::ReplaySession::removeSegment):
        * replay/ReplaySession.h: Added.
        (WebCore::ReplaySession::identifier):
        (WebCore::ReplaySession::timestamp):
        (WebCore::ReplaySession::size):
        (WebCore::ReplaySession::at):
        (WebCore::ReplaySession::begin):
        (WebCore::ReplaySession::end):

        * replay/ReplaySessionSegment.cpp: Added.
        (WebCore::ReplaySessionSegment::create):
        (WebCore::ReplaySessionSegment::ReplaySessionSegment):
        (WebCore::ReplaySessionSegment::~ReplaySessionSegment):
        (WebCore::ReplaySessionSegment::createCapturingCursor):
        (WebCore::ReplaySessionSegment::createReplayingCursor):
        (WebCore::ReplaySessionSegment::createFunctorCursor):
        * replay/ReplaySessionSegment.h: Added.
        (WebCore::ReplaySessionSegment::identifier):
        (WebCore::ReplaySessionSegment::timestamp):

        * replay/ReplayingInputCursor.cpp: Added.
        (WebCore::ReplayingInputCursor::ReplayingInputCursor):
        (WebCore::ReplayingInputCursor::~ReplayingInputCursor):
        (WebCore::ReplayingInputCursor::create):
        (WebCore::ReplayingInputCursor::storeInput):
        (WebCore::ReplayingInputCursor::loadInput):
        (WebCore::ReplayingInputCursor::uncheckedLoadInput):
        * replay/ReplayingInputCursor.h: Added.

        * replay/SegmentedInputStorage.cpp: Added.
        (WebCore::queueTypeToLogPrefix):
        (WebCore::jsonStringForInput):
        (WebCore::offsetForInputQueue):
        (WebCore::SegmentedInputStorage::SegmentedInputStorage):
        (WebCore::SegmentedInputStorage::~SegmentedInputStorage):
        (WebCore::SegmentedInputStorage::load):
        (WebCore::SegmentedInputStorage::store):
        (WebCore::SegmentedInputStorage::queueSize):
        * replay/SegmentedInputStorage.h: Added.

        * replay/SerializationMethods.cpp: Added.
        Specializations of EncodingTraits for WebCore types belong here.

        (JSC::EncodingTraits<NondeterministicInputBase>::encodeValue):
        (JSC::EncodingTraits<NondeterministicInputBase>::decodeValue):
        (JSC::EncodingTraits<SecurityOrigin>::encodeValue):
        (JSC::EncodingTraits<SecurityOrigin>::decodeValue):
        (JSC::EncodingTraits<URL>::encodeValue):
        (JSC::EncodingTraits<URL>::decodeValue):
        * replay/SerializationMethods.h: Added.
        * replay/WebInputs.json: Added.
        In this inital patch, we define BeginSegmentSentinel,
        EndSegmentSentinel, and InitialNavigation inputs.

2014-03-03  Antoine Quint  <graouts@webkit.org>

        Respect SVG fragment identifiers in <img> src attribute
        https://bugs.webkit.org/show_bug.cgi?id=129387

        Reviewed by Dirk Schulze.

        Following Dirk Schulze's suggestion, we set the URL on the SVGImage itself and handle the URL's
        fragment identifier at draw time in the SVGImage itself, which will provide a sounder base for
        handling of fragment identifier in SVG resource URLs in CSS properties, and should also deal
        with the crasher reported in http://webkit.org/b/129498 since there is a guaranteed Frame at the
        time we call SVGImage::draw().

        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::draw):
        * svg/graphics/SVGImage.h:
        * svg/graphics/SVGImageForContainer.cpp:
        * svg/graphics/SVGImageForContainer.h:

2014-03-03  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>

        Move function calls outside loop in dom
        https://bugs.webkit.org/show_bug.cgi?id=126525

        Reviewed by Csaba Osztrogonác.

        Store the result of length() in a local variable and use it in each iteration.

        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::isXMLMIMEType):
        * dom/ElementData.cpp:
        (WebCore::UniqueElementData::UniqueElementData):
        * dom/EventContext.cpp:
        (WebCore::TouchEventContext::checkReachability):

2014-03-03  Tomas Popela  <tpopela@redhat.com>

        [GTK] webkit_dom_range_compare_boundary_points fails when 0 is passed as how parameter
        https://bugs.webkit.org/show_bug.cgi?id=129145

        Reviewed by Carlos Garcia Campos.

        While generating GObject DOM API the generator should skip non pointer
        types while generating the g_return_val_if_fail macro.
        This will avoid the situation when Range.START_TO_START is defined as 0,
        thus the webkit_dom_range_compare_boundary_points function will fail
        everytime it is called with 0 as how value.

        * bindings/scripts/CodeGeneratorGObject.pm:
        (GenerateFunction):

2014-03-03  Jozsef Berta  <jberta.u-szeged@partner.samsung.com>

        [cmake] *Names.cpp file should be regenerated after touching StaticString.pm
        https://bugs.webkit.org/show_bug.cgi?id=129031

        Reviewed by Csaba Osztrogonác.

        * CMakeLists.txt: Added make_names.pl dependencies: bindings/scripts/Hasher.pm and bindings/scripts/StaticString.pm

2014-03-03  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GTK] Multimedia controls captions icon needs its own metaphor
        https://bugs.webkit.org/show_bug.cgi?id=129091

        Reviewed by Martin Robinson.

        As we got the new icon created, we used it with a fallback to the
        old icon to keep run-time compatibility.

        No new tests, current ones suffice.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::paintMediaToggleClosedCaptionsButton):
        Replicated RenderThemeGtk::paintMediaButton to check for the
        necessary icon first and do the fallback to the old and stock
        icons.
        * platform/gtk/RenderThemeGtk2.cpp:
        (WebCore::getStockIconForWidgetType): Added ASSERT for non-empty
        icon name.
        (WebCore::getStockSymbolicIconForWidgetType): Check for non empty
        icon name before calling getStockIconForWidgetType. Fixed coding
        style.
        * platform/gtk/RenderThemeGtk3.cpp:
        (WebCore::getStockIconForWidgetType): Added ASSERT for non-empty
        icon name.
        (WebCore::getStockSymbolicIconForWidgetType): Check for non empty
        icon name before calling getStockIconForWidgetType. Fixed coding
        style.

2014-03-02  Benjamin Poulain  <benjamin@webkit.org>

        Add a fallback path for compiling the remaining attribute checkers
        https://bugs.webkit.org/show_bug.cgi?id=129580

        Reviewed by Darin Adler.

        The remaining attribute checkers appear to be less common than the simple value match.
        This patch adds them to SelectorCompiler for completeness but no attempt is made at optimizing them,
        they all default to function calls.

        If the assumption that those selectors are not common turn out to be incorrect, we should see
        the function calls in profiles and optimize them as needed.

        * css/SelectorChecker.cpp:
        (WebCore::attributeValueMatches):
        If we get anything but attribute match here, something has gone horribly wrong. Update the code
        to fail if that were to happen.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        Add the missing match type to the selector fragment.

        Begin, End, Contain cannot match an empty value per specification. We can test that at compile time
        and fail immediately. See http://www.w3.org/TR/css3-selectors/#attribute-substrings

        List has the extra requirement that a value containing a space does not match anything. It also cannot
        match with an empty string. See http://www.w3.org/TR/css3-selectors/#attribute-representation

        (WebCore::SelectorCompiler::attributeValueBeginsWith):
        (WebCore::SelectorCompiler::attributeValueContains):
        (WebCore::SelectorCompiler::attributeValueEndsWith):
        (WebCore::SelectorCompiler::attributeValueMatchHyphenRule):
        (WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
        The slow fallbacks.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
        A generic code generator making function call to match an attribute value.

2014-02-25  Andreas Kling  <akling@apple.com>

        JSDOMWindow::commonVM() should return a reference.
        <https://webkit.org/b/129293>

        Since this function always returns a VM and never null, make it
        return a reference instead. There are more VM getters that never
        return null, but I tried to keep the patch from snowballing.

        Reviewed by Geoff Garen.

2014-03-02  Timothy Hatcher  <timothy@apple.com>

        Remove ASSERT in ~IDBRequest since it is firing during legitimate uses in Web Inspector.

        Adding the ASSERT back is tracked by https://webkit.org/b/129593.

        https://bugs.webkit.org/show_bug.cgi?id=129328

        Reviewed by Sam Weinig.

        * Modules/indexeddb/IDBRequest.cpp:
        (WebCore::IDBRequest::~IDBRequest):

2014-03-02  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r164961.
        http://trac.webkit.org/changeset/164961
        https://bugs.webkit.org/show_bug.cgi?id=129596

        Caused many assertion failures (Requested by ap on #webkit).

        * css/SelectorChecker.cpp:
        (WebCore::attributeValueMatches):
        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):

2014-03-02  Darin Adler  <darin@apple.com>

        Streamline use of TextIterator, cutting down includes and use of soon-to-be-deleted functions
        https://bugs.webkit.org/show_bug.cgi?id=129592

        Reviewed by Sam Weinig.

        * WebCore.exp.in: Re-sorted this file. Not sure how it got unsorted.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::stringForVisiblePositionRange): Call TextIterator::text
        instead of TextIterator::length. Also removed unneeded special case for empty string
        and exception code.
        (WebCore::AccessibilityObject::lengthForVisiblePositionRange): Ditto.

        * accessibility/AccessibilityObject.h: Include TextIteratorBehavior.h instead of
        TextIterator.h.

        * accessibility/AccessibilityRenderObject.cpp: Include TextIterator.h.

        * accessibility/mac/WebAccessibilityObjectWrapperBase.mm: Removed unneeded
        TextIterator.h include.

        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (-[WebAccessibilityObjectWrapper doAXAttributedStringForTextMarkerRange:]): Call
        TextIterator::text instead of TextIterator::length.

        * dom/Element.cpp: Include TextIterator.h.

        * dom/Node.cpp: Include Range.h.

        * dom/Position.cpp:
        (WebCore::Position::isCandidate): Cast to RenderBlockFlow since that's what the
        type check above does. Use a return statement instead of an else for better flow.
        (WebCore::Position::leadingWhitespacePosition): Call
        deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).
        (WebCore::Position::trailingWhitespacePosition): Ditto.

        * dom/Range.cpp:
        (WebCore::Range::firstNode): Added a FIXME about code that clearly does not
        belong. This is something we really need to fix.

        * editing/AlternativeTextController.cpp: Include TextIterator.h.
        * editing/ApplyStyleCommand.cpp: Ditto.

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit): Call
        deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).

        * editing/Editor.h: Include TextIteratorBehavior.h instead of TextIterator.h.

        * editing/HTMLInterchange.cpp:
        (WebCore::convertHTMLTextToInterchangeFormat): Call
        deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).

        * editing/SpellingCorrectionCommand.cpp: Include TextIterator.h.

        * editing/TextIterator.h: Moved isCollapsibleWhitespace from here into
        htmlediting.h and renamed it deprecatedIsCollapsibleWhitespace.

        * editing/TextIterator.cpp: Call
        deprecatedIsCollapsibleWhitespace by its new name (newly deprecated).

        * editing/TypingCommand.cpp: Include TextIterator.h.

        * editing/VisibleUnits.cpp:
        (WebCore::previousBoundary): Call TextIterator::text instead of
        TextIterator::length.
        (WebCore::nextBoundary): Ditto.

        * editing/htmlediting.cpp: Include TextIterator.h.

        * editing/htmlediting.h: Removed non-helpful section comments.
        Added FIXME about isWhitespace. Added deprecatedIsCollapsibleWhitespace,
        formerly not deprecated and in TextIterator.h.

        * editing/markup.cpp: Include TextIterator.h.

        * html/HTMLTextAreaElement.cpp: Include TextIterator.h.

        * page/ContextMenuController.cpp:
        (WebCore::selectionContainsPossibleWord): Call TextIterator::text
        instead of TextIterator::length and TextIterator::characterAt.

        * page/EventHandler.cpp: Sorted conditional includes alphabetically by condition.

        * platform/mac/HTMLConverter.mm:
        (+[WebHTMLConverter editingAttributedStringFromRange:]): Call TextIterator::text
        instead of TextIterator::length.

2014-03-02  Benjamin Poulain  <benjamin@webkit.org>

        Add a fallback path for compiling the remaining attribute checkers
        https://bugs.webkit.org/show_bug.cgi?id=129580

        Reviewed by Darin Adler.

        The remaining attribute checkers appear to be less common than the simple value match.
        This patch adds them to SelectorCompiler for completeness but no attempt is made at optimizing them,
        they all default to function calls.

        If the assumption that those selectors are not common turn out to be incorrect, we should see
        the function calls in profiles and optimize them as needed.

        * css/SelectorChecker.cpp:
        (WebCore::attributeValueMatches):
        If we get anything but attribute match here, something has gone horribly wrong. Update the code
        to fail if that were to happen.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        Add the missing match type to the selector fragment.

        Begin, End, Contain cannot match an empty value per specification. We can test that at compile time
        and fail immediately. See http://www.w3.org/TR/css3-selectors/#attribute-substrings

        List has the extra requirement that a value containing a space does not match anything. It also cannot
        match with an empty string. See http://www.w3.org/TR/css3-selectors/#attribute-representation

        (WebCore::SelectorCompiler::attributeValueBeginsWith):
        (WebCore::SelectorCompiler::attributeValueContains):
        (WebCore::SelectorCompiler::attributeValueEndsWith):
        (WebCore::SelectorCompiler::attributeValueMatchHyphenRule):
        (WebCore::SelectorCompiler::attributeValueSpaceSeparetedListContains):
        The slow fallbacks.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeFunctionCallValueMatching):
        A generic code generator making function call to match an attribute value.

2014-03-02  Darin Adler  <darin@apple.com>

        Fix build for case-sensitive file systems.

        * platform/UserActivity.h: Runloop -> RunLoop.

2014-03-02  Gavin Barraclough  <barraclough@apple.com>

        HysteresisTimer should use WebCore::Timer
        https://bugs.webkit.org/show_bug.cgi?id=129587

        Reviewed by Sam Weinig.

        * platform/HysteresisActivity.h:
        (WebCore::HysteresisActivity::HysteresisActivity):
        (WebCore::HysteresisActivity::hysteresisTimerFired):
            - RunLoop::Timer -> WebCore::Timer.
        * platform/UserActivity.h:

2014-03-02  Darin Adler  <darin@apple.com>

        Split TextIteratorBehavior into a separate header
        https://bugs.webkit.org/show_bug.cgi?id=129578

        Reviewed by Sam Weinig.

        This is in preparation to greatly cut down on includes of TextIterator.h.

        * GNUmakefile.list.am: Added new header.
        * WebCore.vcxproj/WebCore.vcxproj: Ditto.
        * WebCore.vcxproj/WebCore.vcxproj.filters: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.

         * editing/FindOptions.h: Changed typedef to unsigned char;
        there is no reason to store these in a 32-bit integer.

         * editing/TextIterator.h: Added include of TextIteratorBehavior.h
        and moved comments about the meanings of flag bits to their definition.

        * editing/TextIteratorBehavior.h: Added.

        * WebCore.exp.in: Updated for type changes.

2014-03-02  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Form controls handling
        https://bugs.webkit.org/show_bug.cgi?id=129344
        <rdar://problem/16053643>

        Reviewed by Simon Fraser.

        Updates localizable strings and adds some exports.

        * English.lproj/Localizable.strings:
        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:

2014-03-02  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] Pages using tiled compositing layers allocate too many tiles on zoom
        https://bugs.webkit.org/show_bug.cgi?id=129471

        Reviewed by Simon Fraser.

        A few issues with TileController were causing sublayers of the root layers
        to tile incorrect surfaces on zoom.

        First, the exposedRect API was not updating the sublayers. The layers go correctly
        into tiling mode, but the tiles cover the full document instead of the visible area.

        The other major issue was the margins being applied to the coverage size in document
        coordinates. Since each margin is 512px, the total coverage size after zoom was
        gigantic.

        To solve this, this patch switch from the exposedRect API to the generic concept
        of VisibleExtentContentRect introduced for iOS WebKit1.

        * WebCore.exp.in:
        * platform/ScrollView.h:
        Define a VisibleExtentContentRect on the scrollview itself when there is no
        platformWidget().
        The case with inside frame is untested due to stability issues :(.
        (see <rdar://problem/16199219>)

        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::computeTileCoverageRect):
        Remove the margin from the tile coverage.

        On iOS, m_tileCoverage is always zero at the moment. Previously, the tile coverage
        was artificially extended by the margins. With the margins removed, I temporarily added
        a factor of 1.5.
        ViewUpdateDispatcher has all the information to compute a great tile coverage, I will need
        a follow up patch to fix that.

        * platform/ios/ScrollViewIOS.mm:
        (WebCore::ScrollView::visibleExtentContentRect):
        (WebCore::ScrollView::setVisibleExtentContentRect):

2014-03-02  Darin Adler  <darin@apple.com>

        Sort Mac platform export files so they merge better
        https://bugs.webkit.org/show_bug.cgi?id=129581

        Reviewed by Sam Weinig.

        * WebCore.exp.in: Ran the new sort-export-file on this.

2014-03-02  Dean Jackson  <dino@apple.com>

        Add protected casting to FilterOperation classes.
        https://bugs.webkit.org/show_bug.cgi?id=124062

        Reviewed by Sam Weinig.

        Use the type cast macro generators to produce some toFilterOperation-style
        functions, and then use them in our PlatformCA filter code.

        Test: css3/filters/animation-from-initial-values-with-color-matrix.html

        * platform/graphics/ca/mac/PlatformCAFiltersMac.mm: Use the toFilterOperation methods, in
        some cases removing the unnecessary double cast.
        (PlatformCAFilters::filterValueForOperation):
        (PlatformCAFilters::colorMatrixValueForFilter):
        * platform/graphics/filters/FilterOperation.cpp:
        (WebCore::BasicColorMatrixFilterOperation::blend):
        (WebCore::BasicColorMatrixFilterOperation::operator==): Move this to the .cpp file so it can use the casting methods.
        (WebCore::BasicComponentTransferFilterOperation::blend):
        (WebCore::BasicComponentTransferFilterOperation::operator==): Ditto.
        * platform/graphics/filters/FilterOperation.h: Add the casting macros.

2014-03-02  Yoav Weiss  <yoav@yoav.ws>

        Fix srcset related bugs
        https://bugs.webkit.org/show_bug.cgi?id=129539

        Fixed a bug reported against Blink's srcset implementation at https://code.google.com/p/chromium/issues/detail?id=347998
        When both src and srcset had only 1x descriptors and the DPR was higher than 1, the src's resource was picked.

        Also fixed the invalid descriptor handling, which wasn't aligned with the spec, and therefore was not as forward compatible as it should be.
        Invalid descriptors caused the entire resource to be ignored, rather than just the descriptors themselves.

        Reviewed by Andreas Kling.

        Tests: fast/hidpi/image-srcset-invalid-descriptor.html
               fast/hidpi/image-srcset-src-selection-1x-both.html

        * html/parser/HTMLParserIdioms.cpp:
        (WebCore::parseDescriptors):
        (WebCore::parseImagesWithScaleFromSrcsetAttribute):
        (WebCore::bestFitSourceForImageAttributes):

2014-03-01  Gavin Barraclough  <barraclough@apple.com>

        Split UserActivity, simplify PageThrottler
        https://bugs.webkit.org/show_bug.cgi?id=129551

        Reviewed by Darin Adler.

        The class UserActivity currently implements two things – a hysteresis mechanism, and
        an abstraction of NSActivity controlled by that mechanism. PageThrottler implements
        its own hysteresis mechanism, which directly controls DOM timer throttling and also
        controls a couple of UserActivities, giving a total of 3 separate hysteresis mechanisms,
        layered two deep.

        Split UserActivity into three, with HysteresisActivity implementing an abstract hysteresis
        mechanism, UserActivity::Impl controlling the NSActivity, and then UserActivity combining
        these two back together. The interface to UserActivity is unchanged.

        Remove PageThrottler's bespoke hysteresis, replacing it with a use of HysteresisActivity.
        Replace the two UserActivities with a single UserActivity::Impl, so there are no longer
        layered hysteresis mechanisms.

        * WebCore.exp.in:
            - exports changed.
        * WebCore.xcodeproj/project.pbxproj:
            - added HysteresisActivity.h.
        * page/PageThrottler.cpp:
        (WebCore::PageThrottler::PageThrottler):
            - if the page starts visible, begin activity. If it starts hidden throttle DOM timers.
        (WebCore::PageThrottler::hiddenPageDOMTimerThrottlingStateChanged):
            - when the DOM timer throttling setting changes, make sure we update.
        (WebCore::PageThrottler::incrementActivityCount):
        (WebCore::PageThrottler::decrementActivityCount):
            - when m_activityCount changes update the hysteresis state.
        (WebCore::PageThrottler::updateHysteresis):
        (WebCore::PageThrottler::setViewState):
            - when IsVisuallyIdle changes update the hysteresis state.
        (WebCore::PageThrottler::started):
        (WebCore::PageThrottler::stopped):
            - callbacks from HysteresisActivity, these control m_activity and DOM timer throttling.
        * page/PageThrottler.h:
        (WebCore::PageThrottler::didReceiveUserInput):
        (WebCore::PageThrottler::pluginDidEvaluate):
            - call impulse to temporarily enable the activity.
        * platform/HysteresisActivity.h: Copied from Source/WebCore/platform/UserActivity.h.
        (WebCore::HysteresisActivity::HysteresisActivity):
            - constructor takes a delegate optionally a timeout.
        (WebCore::HysteresisActivity::start):
            - start activity immediately. If stopped, call started method on delegate. If in timeout period, cancel the timer.
        (WebCore::HysteresisActivity::stop):
            - stop activity after hysteresis. If started, initiate timeout period.
        (WebCore::HysteresisActivity::impulse):
            - ensure activity for at least the timeout period.
        (WebCore::HysteresisActivity::hysteresisTimerFired):
            - delayed stop - when the timer fires call stopped on the delegate.
        * platform/UserActivity.cpp:
        (WebCore::UserActivity::Impl::Impl):
        (WebCore::UserActivity::Impl::beginActivity):
        (WebCore::UserActivity::Impl::endActivity):
            - nop implementation.
        (WebCore::UserActivity::UserActivity):
            - UserActivity maintains existing interface with hysteresis.
        (WebCore::UserActivity::started):
        (WebCore::UserActivity::stopped):
            - callbacks from HysteresisTimer; forward to Impl.
        * platform/UserActivity.h:
        * platform/mac/UserActivityMac.mm:
        (WebCore::UserActivity::Impl::Impl):
            - UserActivity::Impl, abstraction for NSActivity without added hysteresis.
        (WebCore::UserActivity::Impl::beginActivity):
            - allocate NSActivity.
        (WebCore::UserActivity::Impl::endActivity):
            - release NSActivity.

2014-03-02  Brian Burg  <bburg@apple.com>

        DocumentLoader should keep maps of ResourceLoaders instead of sets
        https://bugs.webkit.org/show_bug.cgi?id=129388

        Reviewed by Darin Adler.

        For web replay, we need to be able to pull a ResourceLoader instance by
        identifier from the DocumentLoader. This is easy to do if we convert
        ResourceLoaderSet to ResourceLoaderMap, keyed by the loader's identifier.

        Added assertions whenever adding or removing from the map to ensure
        that we don't try to add duplicates or resources with zero identifiers.

        No new tests required. No functionality was added.

        * loader/DocumentLoader.cpp:
        (WebCore::cancelAll):
        (WebCore::setAllDefersLoading):
        (WebCore::areAllLoadersPageCacheAcceptable):
        (WebCore::DocumentLoader::addSubresourceLoader):
        (WebCore::DocumentLoader::removeSubresourceLoader):
        (WebCore::DocumentLoader::addPlugInStreamLoader):
        (WebCore::DocumentLoader::removePlugInStreamLoader):
        (WebCore::DocumentLoader::subresourceLoaderFinishedLoadingOnePart):
        * loader/DocumentLoader.h:
        * loader/NetscapePlugInStreamLoader.cpp:
        (WebCore::NetscapePlugInStreamLoader::create): Only add the loader
        to the document loader's map if it initialized successfully.
        The old code was probably leaking resource loaders that failed to
        initialize.

        * loader/mac/DocumentLoaderMac.cpp:
        (WebCore::scheduleAll):
        (WebCore::unscheduleAll):

2014-03-02  Dirkjan Ochtman  <d.ochtman@activevideo.com>

        Support ENABLE_ENCRYPTED_MEDIA in cmake builds
        https://bugs.webkit.org/show_bug.cgi?id=129575

        Reviewed by Philippe Normand.

        No new tests, only fixes the build.

        * CMakeLists.txt:
        Add support for ENABLE_ENCRYPTED_MEDIA.
        * Modules/encryptedmedia/MediaKeySession.cpp:
        (WebCore::MediaKeySession::close):
        Assign nullptr instead of 0 to OwnPtr to appease gcc-4.7.

2014-03-01  Tim Horton  <timothy_horton@apple.com>

        WebKit2 View Gestures (Smart Magnification): Support for iOS
        https://bugs.webkit.org/show_bug.cgi?id=129146
        <rdar://problem/16032668>

        Reviewed by Benjamin Poulain.

        * WebCore.exp.in:
        Add an export.

2014-03-01  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r164929 and r164934.
        http://trac.webkit.org/changeset/164929
        http://trac.webkit.org/changeset/164934
        https://bugs.webkit.org/show_bug.cgi?id=129570

        Caused assertions on two srcset tests (Requested by ap on
        #webkit).

        * html/parser/HTMLParserIdioms.cpp:
        (WebCore::isHTMLSpaceOrComma):
        (WebCore::parseImagesWithScaleFromSrcsetAttribute):
        (WebCore::bestFitSourceForImageAttributes):

2014-03-01  Dan Bernstein  <mitz@apple.com>

        Build fix.

        * html/parser/HTMLParserIdioms.cpp: Removed an unused function.

2014-03-01  David Kilzer  <ddkilzer@apple.com>

        Ensure keySplines is valid in SMIL animations
        <http://webkit.org/b/129547>
        <rdar://problem/15676128>

        Reviewed by Darin Adler.

        Merged from Blink (patch by Philip Rogers):
        https://src.chromium.org/viewvc/blink?revision=156452&view=revision
        http://crbug.com/276111

            This patch fixes a crash in SMIL animations when keySplines are not
            specified. The SMIL spec is clear on this:
            http://www.w3.org/TR/2001/REC-smil-animation-20010904/#AnimFuncCalcMode
            "If there are any errors in the keyTimes specification (bad values,
            too many or too few values), the animation will have no effect."

            This patch simply checks that keyTimes is not empty. Previously,
            splinesCount was set to be m_keySplines.size() + 1 in
            SVGAnimationElement.cpp; this patch changes splinesCount to be equal
            to m_keySplines.size() to make the logic easier to follow and to
            match other checks in SVGAnimationElement::startedActiveInterval.

        Test: svg/animations/animate-keysplines-crash.html

        * svg/SVGAnimationElement.cpp:
        (WebCore::SVGAnimationElement::startedActiveInterval):

2014-03-01  Benjamin Poulain  <benjamin@webkit.org>

        Tighten minimumRegisterRequirements()
        https://bugs.webkit.org/show_bug.cgi?id=129538

        Reviewed by Andreas Kling.

        Fix small things that made minimumRegisterRequirements() a little optimistic
        when dealing with attributes.

        Test: fast/selectors/adjacent-descendant-tail-register-requirement.html

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        Attribute Set does not do value matching, the case sensitive value matching is irrelevant
        The problem is that flag is also used by minimumRegisterRequirements()
        to find if one more register is needed.

        Set the flag to case sensitive to avoid reserving one extra register.

        (WebCore::SelectorCompiler::minimumRegisterRequirements):
        Use a new backtrackingFlag to know if there is a descendant tail, thus a backtracking register
        reserved.
        This is better than using the backtracking action because the backtracking chain could be
        an adjacent chain inside a descendant chain.

        The flags are designed for that, just set one for minimumRegisterRequirements().

        The 2 extra registers for the attribute count and address become limited to all attributes
        except the last one. We don't keep a copy for the last matching, those registers were not needed.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::computeBacktrackingInformation):

2014-03-01  Pratik Solanki  <psolanki@apple.com>

        [iOS] selectionImageForcingBlackText should return autoreleased object
        https://bugs.webkit.org/show_bug.cgi?id=129437
        <rdar://problem/15810384>

        Reviewed by Darin Adler.

        * bindings/objc/DOM.mm:
        (-[DOMRange renderedImageForcingBlackText:renderedImageForcingBlackText:]):

2014-03-01  Yoav Weiss  <yoav@yoav.ws>

        Fix srcset related bugs
        https://bugs.webkit.org/show_bug.cgi?id=129539

        Fixed a bug reported against Blink's srcset implementation at https://code.google.com/p/chromium/issues/detail?id=347998
        When both src and srcset had only 1x descriptors and the DPR was higher than 1, the src's resource was picked.

        Also fixed the invalid descriptor handling, which wasn't aligned with the spec, and therefore was not as forward compatible as it should be.
        Invalid descriptors caused the entire resource to be ignored, rather than just the descriptors themselves.

        Reviewed by Andreas Kling.

        Tests: fast/hidpi/image-srcset-invalid-descriptor.html
               fast/hidpi/image-srcset-src-selection-1x-both.html

        * html/parser/HTMLParserIdioms.cpp:
        (WebCore::parseDescriptors):
        (WebCore::parseImagesWithScaleFromSrcsetAttribute):
        (WebCore::bestFitSourceForImageAttributes):

2014-03-01  Darin Adler  <darin@apple.com>

        Improve "bad parent" and "bad child list" assertions in line boxes
        https://bugs.webkit.org/show_bug.cgi?id=125656

        Reviewed by Sam Weinig.

        My previous fix for this problem was incomplete. This continuation of that fix addresses
        the flaw in the original and adds additional lifetime checking so problems can be seen in
        debug builds without a memory debugger.

        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::assertNotDeleted): Added. Poor man's memory debugging helper.
        (WebCore::InlineBox::~InlineBox): Refactored body into a new function named
        invalidateParentChildList. Added code to update the deletion sentinel to record
        that this object is deleted.
        (WebCore::InlineBox::setHasBadParent): Moved here from header since this debug-only
        feature does not need to be inlined. Added a call to assertNotDeleted.
        (WebCore::InlineBox::invalidateParentChildList): Added. Refactored from the destructor,
        this is used by RenderTextLineBoxes.

        * rendering/InlineBox.h: Added the deletion sentinel, and called it in the parent
        function. Also changed the expansion/setExpansion functions to use the type name "int",
        since we don't use the type name "signed" in the WebKit coding style.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::~InlineFlowBox): Call setHasBadChildList rather than doing the
        setHasBadParent work on children directly, to avoid code duplication.
        (WebCore::InlineFlowBox::setHasBadChildList): Moved here from header. Added code to set
        "has bad parent" on all children, something we previously did only on destruction. Also
        added assertNotDeleted.
        (WebCore::InlineFlowBox::checkConsistency): Added call to assertNotDeleted. Also tweaked
        code style and variable names a little bit.

        * rendering/InlineFlowBox.h: Moved setHasBadChildList out of the header when it's on.
        The empty version for ASSERT_WITH_SECURITY_IMPLICATION_DISABLED is still in the header.

        * rendering/RenderTextLineBoxes.cpp:
        (WebCore::RenderTextLineBoxes::invalidateParentChildLists): Call the new
        InlineBox::invalidateParentChildList function instead of calling setHasBadChildList directly.
        The new function checks m_hasBadParent, something we couldn't do here.

2014-03-01  Benjamin Poulain  <benjamin@webkit.org>

        Optimized querySelector(All) when selector contains #id
        https://bugs.webkit.org/show_bug.cgi?id=116502

        Reviewed by Andreas Kling.

        Test: fast/selectors/querySelector-id-filtering.html

        The idea of this patch is to perform querySelector on a subtree
        rooted at the last element with #id matching. For example, if we have the selector
        "#foobar div a", we start by looking for the element with ID foobar in the TreeScope
        cache, and start matching the children from there.

        The idea comes from Rune for
        https://chromium.googlesource.com/chromium/blink/+/1cd83d3588973a02ab15d94b1b05a28620853624
        but the code as diverged too much so it had to be reimplemented specifically for WebKit.

        * css/CSSSelectorList.cpp:
        (WebCore::CSSSelectorList::CSSSelectorList):
        (WebCore::CSSSelectorList::operator=):
        * css/CSSSelectorList.h:
        (WebCore::CSSSelectorList::~CSSSelectorList):
        * css/StyleRule.h:
        (WebCore::StyleRule::wrapperAdoptSelectorList):
        (WebCore::StyleRulePage::wrapperAdoptSelectorList):
        * dom/SelectorQuery.cpp:
        (WebCore::isSingleTagNameSelector):
        (WebCore::isSingleClassNameSelector):
        (WebCore::findIdMatchingType):
        (WebCore::SelectorDataList::SelectorDataList):
        (WebCore::filterRootById):
        (WebCore::SelectorDataList::executeCompiledSimpleSelectorChecker):
        (WebCore::SelectorDataList::execute):
        (WebCore::SelectorQuery::SelectorQuery):
        (WebCore::SelectorQueryCache::add):
        * dom/SelectorQuery.h:
        (WebCore::SelectorDataList::SelectorData::SelectorData):

2014-02-28  Alexey Proskuryakov  <ap@apple.com>

        Node::compareDocumentPosition leaks memory structure
        https://bugs.webkit.org/show_bug.cgi?id=120244

        Reviewed by Ryosuke Niwa.

        * dom/Node.cpp: (WebCore::Node::compareDocumentPosition): Don't do it.

2014-03-01  David Kilzer  <ddkilzer@apple.com>

        Fix lifetime handling of SVGPropertyTearOffs
        <http://webkit.org/b/129211>
        <rdar://problem/15696025>

        Reviewed by Maciej Stachowiak.

        Merged from Blink (patch by Ojan Vafai):
        https://src.chromium.org/viewvc/blink?revision=157801&view=revision
        http://crbug.com/288771

            -Replace SVGStaticPropertyWithParentTearOff with SVGMatrixTearOff
            since it's only used in that one place. This means we can get rid
            of the templatizing and the method pointer.
            -Change SVGPropertyTearOff to keep track of it's child tearoffs
            and call detachWrapper on its child tearoffs when it's destroyed
            or when it's wrapper is detached.
            -Have SVGPropertyTearOff hold WeakPtrs to the child tearoffs
            to avoid having a cycle.

        Test: svg/transforms/svg-matrix-tearoff-crash.html

        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/scripts/CodeGeneratorJS.pm:
        (NativeToJSValue):
        * svg/properties/SVGMatrixTearOff.h: Renamed from Source/WebCore/svg/properties/SVGStaticPropertyWithParentTearOff.h.
        (WebCore::SVGMatrixTearOff::create):
        (WebCore::SVGMatrixTearOff::commitChange):
        (WebCore::SVGMatrixTearOff::SVGMatrixTearOff):
        * svg/properties/SVGPropertyTearOff.h:
        (WebCore::SVGPropertyTearOff::addChild):
        (WebCore::SVGPropertyTearOff::detachChildren):

2014-03-01  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed build fix after r164913.

        * platform/CountedUserActivity.h: Some ports don't (yet) support forwarding headers for WebCore,
        so UserActivity.h should be included as non-forwarding.

2014-03-01  Gavin Barraclough  <barraclough@apple.com>

        Change PageActivityAssertionToken to use a WeakPtr
        https://bugs.webkit.org/show_bug.cgi?id=129526

        Reviewed by Sam Weinig.

        PageThrottler effectively implements a bespoke weak pointer mechanism; remove this & just use WeakPtr.

        * page/PageActivityAssertionToken.cpp:
        (WebCore::PageActivityAssertionToken::PageActivityAssertionToken):
        (WebCore::PageActivityAssertionToken::~PageActivityAssertionToken):
            - addActivityToken->incrementActivityCount, removeActivityToken->decrementActivityCount
        * page/PageActivityAssertionToken.h:
            - removed invalidate, made m_throttler a WeakPtr
        * page/PageThrottler.cpp:
        (WebCore::PageThrottler::PageThrottler):
            - initialize m_weakPtrFactory, m_activityCount.
        (WebCore::PageThrottler::~PageThrottler):
            - removed called to invalidate.
        (WebCore::PageThrottler::startThrottleHysteresisTimer):
            - m_activityTokens.size()->m_activityCount
        (WebCore::PageThrottler::throttleHysteresisTimerFired):
            - m_activityTokens.size()->m_activityCount
        (WebCore::PageThrottler::incrementActivityCount):
            - m_activityTokens.add->++
        (WebCore::PageThrottler::decrementActivityCount):
            - m_activityTokens.remove->--
        * page/PageThrottler.h:
        (WebCore::PageThrottler::weakPtr):
            - replaced HashSet with WeakPtrFactory & count.

2014-03-01  Gavin Barraclough  <barraclough@apple.com>

        Split UserActivity/CountedUserActivity
        https://bugs.webkit.org/show_bug.cgi?id=129520

        Reviewed by Sam Weinig.

        UserActivity currently provides an interface allowing counted, nested calls to enable/disable.
        In some cases it would be easier to use if it were a simpler boolean enabled/disabled interface.

        * WebCore.exp.in:
            - beginActivity->start, endActivity->stop.
        * WebCore.xcodeproj/project.pbxproj:
        * page/PageThrottler.cpp:
        (WebCore::PageThrottler::PageThrottler):
        (WebCore::PageThrottler::~PageThrottler):
        (WebCore::PageThrottler::throttlePage):
        (WebCore::PageThrottler::unthrottlePage):
        (WebCore::PageThrottler::setIsVisuallyIdle):
            - beginActivity->increment, endActivity->decrement.
        * page/PageThrottler.h:
            - UserActivity->CountedUserActivity for m_pageActivity
        * platform/CountedUserActivity.h: Copied from Source/WebCore/platform/UserActivity.h.
        (WebCore::CountedUserActivity::CountedUserActivity):
        (WebCore::CountedUserActivity::increment):
        (WebCore::CountedUserActivity::decrement):
            - Added, provides counted interface to UserActivity.
        * platform/UserActivity.cpp:
        (WebCore::UserActivity::UserActivity):
            - m_count removed
        (WebCore::UserActivity::start):
        (WebCore::UserActivity::stop):
            - beginActivity->start, endActivity->stop, implentation now empty.
        * platform/UserActivity.h:
            - beginActivity->start, endActivity->stop, m_count moved to HAVE(NS_ACTIVITY)
        * platform/mac/UserActivityMac.mm:
        (WebCore::UserActivity::UserActivity):
            - m_count->m_started
        (WebCore::UserActivity::isValid):
            - m_count->m_started
        (WebCore::UserActivity::start):
        (WebCore::UserActivity::stop):
            - beginActivity->start, endActivity->stop, no longer nest


2014-02-28  Benjamin Poulain  <benjamin@webkit.org>

        Caller saved registers can be accidentally discarded when clearing the local stack
        https://bugs.webkit.org/show_bug.cgi?id=129532

        Reviewed by Andreas Kling.

        Tests: fast/selectors/tree-modifying-case-insensitive-selectors.html
               fast/selectors/tree-modifying-selectors.html

        StackAllocator::discard() no longer make sense now that we can use caller saved regsiter.
        We should instead discard everything up to the beginning of the local stack.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSelectorChecker):
        * cssjit/StackAllocator.h:
        (WebCore::StackAllocator::popAndDiscardUpTo):

2014-02-28  Andy Estes  <aestes@apple.com>

        [iOS] FrameLoader has a NULL m_progressTracker when initialized with initForSynthesizedDocument()
        https://bugs.webkit.org/show_bug.cgi?id=129534

        Reviewed by Simon Fraser.

        No new tests because TestWebKitAPI does not yet support iOS. See <http://webkit.org/b/129535>.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::initForSynthesizedDocument): Create a FrameProgressTracker.

2014-02-28  Sam Weinig  <sam@webkit.org>

        ASSERT(isMainThread()) hit under platformUserPreferredLanguages() with WebKit1 and WebKit2 in the same process
        https://bugs.webkit.org/show_bug.cgi?id=129528

        Reviewed by Andreas Kling.

        * platform/mac/Language.mm:
        (WebCore::preferredLanguagesMutex):
        (WebCore::preferredLanguages):
        (+[WebLanguageChangeObserver languagePreferencesDidChange:]):
        (WebCore::httpStyleLanguageCode):
        (WebCore::platformUserPreferredLanguages):
        Add a mutex and do an isolated copy of the strings to allow this function to be called from multiple threads.

2014-02-28  Dean Jackson  <dino@apple.com>

        Crash at ebay.com when viewing auction items at com.apple.WebCore: WebCore::GraphicsContext3D::getExtensions + 10
        https://bugs.webkit.org/show_bug.cgi?id=129523

        Reviewed by Simon Fraser.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getSupportedExtensions): Early return if the
        context is pending policy resolution.

2014-02-28  Andreas Kling  <akling@apple.com>

        Micro-optimize JSNodeOwner::isReachableFromOpaqueRoots().
        <https://webkit.org/b/129518>

        Only do image and audio element specific checks for element nodes.
        Time spent in here goes from 0.8% to 0.5% on DYEB.

        Reviewed by Benjamin Poulain.

        * bindings/js/JSNodeCustom.cpp:
        (WebCore::isReachableFromDOM):

2014-02-28  Geoffrey Garen  <ggaren@apple.com>

        JSC Assertion failure every time I start Safari (r164846)
        https://bugs.webkit.org/show_bug.cgi?id=129510

        Reviewed by Mark Hahnenberg.

        Take the lock before allocating objects because afterward is too late.

        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::evaluateInWorld):
        (WebCore::ScriptController::windowScriptNPObject):
        (WebCore::ScriptController::jsObjectForPluginElement):

2014-02-28  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: ASSERT in WebCore::JSDOMWindowBase::supportsRichSourceInfo inspecting iOS
        https://bugs.webkit.org/show_bug.cgi?id=129512

        Reviewed by Simon Fraser.

        * page/PageDebuggable.cpp:
        (WebCore::PageDebuggable::connect):
        (WebCore::PageDebuggable::disconnect):

2014-02-28  Anders Carlsson  <andersca@apple.com>

        VisitedLinkStore should be able to invalidate link styles for associated pages
        https://bugs.webkit.org/show_bug.cgi?id=129515

        Reviewed by Dan Bernstein.

        * page/Page.cpp:
        (WebCore::Page::Page):
        Add the VisitedLinkStore if we have one.

        (WebCore::Page::~Page):
        Remove the VisitedLinkStore if we have one.

        * page/VisitedLinkStore.cpp:
        (WebCore::VisitedLinkStore::~VisitedLinkStore):
        Assert that we don't have any pages.

        (WebCore::VisitedLinkStore::addPage):
        Add the page to the set.

        (WebCore::VisitedLinkStore::removePage):
        Remove the page from the set.

        (WebCore::VisitedLinkStore::invalidateStylesForAllLinks):
        Traverse all the pages and invalidate the style for all links.

        (WebCore::VisitedLinkStore::invalidateStylesForLink):
        Traverse all the pages and invalidate the style for a given link.

        * page/VisitedLinkStore.h:
        Add new members.

2014-02-28  Benjamin Poulain  <bpoulain@apple.com>

        [iOS][WK2] highlight rects should never big bigger than the view
        https://bugs.webkit.org/show_bug.cgi?id=129472

        Reviewed by Enrica Casucci.

        * WebCore.exp.in:

2014-02-28  Beth Dakin  <bdakin@apple.com>

        Turn off margin tiles on iOS
        https://bugs.webkit.org/show_bug.cgi?id=129509
        -and corresponding-
        <rdar://problem/16200383>

        Reviewed by Simon Fraser.

        * page/FrameView.cpp:
        (WebCore::FrameView::needsExtendedBackgroundRectForPainting):

2014-02-28  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Add subpixel support to border type of double, groove, ridge, inset and outset.
        https://bugs.webkit.org/show_bug.cgi?id=129226

        Reviewed by Simon Fraser.

        This is the conversion of double, inset, outset, groove and ridge border type
        painting to support device pixel precision width/height.

        Regression is covered by existing tests.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::drawLineForBoxSide):
        * rendering/RenderObject.h:

2014-02-28  Adenilson Cavalcanti  <cavalcantii@gmail.com>

        Filters should test for area instead of single dimension
        https://bugs.webkit.org/show_bug.cgi?id=123716

        Reviewed by Dirk Schulze.

        A filtered SVG element with a sigle dimension bigger than 5000
        (counting the margin/border) will fail to render. So an element
        with 4000x4000 will render fine, while another with 5000x10
        won't. This patch instead tests against the total element area,
        which fixes such cases.

        It also fixes some layer violations where FilterEffectRenderer and
        RenderSVGResourceFilter were directly accessing the maximum filter
        size in FilterEffect. Since before a somewhat bigger filter would
        be aborted, it required to change the maximum kernel size
        for blur filter (some filters are slower to run than others for
        bigger SVGs).

        Tests: svg/filters/big-height-filter-expected.svg
               svg/filters/big-height-filter.svg
               svg/filters/big-width-filter-expected.svg
               svg/filters/big-width-filter.svg

        * platform/graphics/filters/FEGaussianBlur.cpp:
        * platform/graphics/filters/FilterEffect.cpp:
        (WebCore::FilterEffect::maxFilterArea): New function, returns the
        maximum allowed element area (currently is 4096 x 4096).
        (WebCore::FilterEffect::isFilterSizeValid): Now it tests for
        element area instead of a single dimension. This code is reused by
        FilterEffectRenderer.
        * platform/graphics/filters/FilterEffect.h:
        * rendering/FilterEffectRenderer.cpp:
        (WebCore::FilterEffectRenderer::updateBackingStoreRect): Uses the
        new function in FilterEffect to test for valid sizes.
        (WebCore::FilterEffectRendererHelper::beginFilterEffect): Same case.
        * rendering/svg/RenderSVGResourceFilter.cpp:
        (WebCore::RenderSVGResourceFilter::fitsInMaximumImageSize): Test
        for maximum area and properly changes the scale of transformed
        element to fit.

2014-02-28  Brent Fulgham  <bfulgham@apple.com>

        [Mac, iOS] Incorrect ordering of construction arguments for out-of-band text elements
        https://bugs.webkit.org/show_bug.cgi?id=129501
        <rdar://problem/16198587>

        Reviewed by Eric Carlson.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute): Correct order of arguments
        to PlatformTextTrack.

2014-02-28  Bem Jones-Bey  <bjonesbe@adobe.com>

        Properly clear m_logicallyLastRun to remove use-after-free possibility
        https://bugs.webkit.org/show_bug.cgi?id=129489

        Reviewed by David Hyatt.

        A use-after-free issue was caught in Blink because m_logicallyLastRun
        is not cleared when the item it points to is deleted. Clearing it
        turns the use-after-free into a segfault, and prevents any future
        use-after-frees from happening.

        * platform/text/BidiRunList.h:
        (WebCore::BidiRunList<Run>::deleteRuns):

2014-02-28  Jer Noble  <jer.noble@apple.com>

        [Mac] Disambiguate calls to [[window contentView] layer] and [... setLayer:]
        https://bugs.webkit.org/show_bug.cgi?id=129491

        Reviewed by Alexey Proskuryakov.

        -[NSWindow contentView] returns a bare id, leading to ambiguity when calling
        certain methods, including -layer and -setLayer:. Resolve the ambiguity by
        explicitly casting the -contentView call to a NSView*.

        * platform/mac/WebVideoFullscreenController.mm:
        (-[WebVideoFullscreenController setupVideoOverlay:]):
        (-[WebVideoFullscreenController windowDidLoad]):
        (-[WebVideoFullscreenController windowDidExitFullscreen]):

2014-02-28  Andreas Kling  <akling@apple.com>

        MouseEvent.offsetX/Y should just return 0,0 for simulated clicks.
        <https://webkit.org/b/129477>

        There's no need to compute the exact target-relative coordinates for
        simulated mouse events, e.g those fired by HTMLElement.click().

        The offsetX/Y properties are not supported by Firefox.

        Test: fast/events/relative-offset-of-simulated-click.html

        Reviewed by Alexey Proskuryakov.

        * dom/MouseRelatedEvent.cpp:
        (WebCore::MouseRelatedEvent::offsetX):
        (WebCore::MouseRelatedEvent::offsetY):

2014-02-27  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Fix positioning grid items using named grid lines/areas
        https://bugs.webkit.org/show_bug.cgi?id=129372

        Reviewed by Darin Adler.

        Our code was assuming that a <custom-ident> in
        -webkit-grid-{column|row}-{start|end} and
        -webkit-grid-{column|row} was always a grid area name. That's
        wrong because the <custom-ident> could be also a explicitly named
        grid line or the an implicitly named grid line created by a grid
        area definition.

        The style resolution code was not correct either. This patch fixes
        it so it now matches the spec, which means that:
        - first we try to match any existing grid area.
        - then if there is a named grid line with the name
        <custom-ident>-{start|end} for -webkit-grid-{column|row}-{start|end}
        defined before the grid area then we use it instead of the grid
        area.
        - otherwise if there is a named grid line we resolve to the first such line.
        - otherwise we treat it as 'auto'.

        Fixing this uncovered a bug in GridPosition, we were not using the
        name of the stored grid area to check if two GridPositions were
        the same.

        Tests: fast/css-grid-layout/grid-item-position-changed-dynamic.html
               fast/css-grid-layout/named-grid-lines-with-named-grid-areas-resolution.html

        * css/StyleResolver.cpp:
        (WebCore::gridLineDefinedBeforeGridArea): New function to check if
        a given named grid line was defined before an implicit named grid
        line created by a grid area definition.
        (WebCore::StyleResolver::adjustNamedGridItemPosition): New
        function that adjusts the position of a GridPosition parsed as a
        grid area.
        (WebCore::StyleResolver::adjustGridItemPosition): Use the new
        function adjustNamedGridItemPosition to adjust the positions of
        named grid lines.
        * css/StyleResolver.h:
        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::resolveNamedGridLinePositionFromStyle): Use GridPosition:: namespace.
        (WebCore::RenderGrid::resolveGridPositionFromStyle): Ditto.
        (WebCore::RenderGrid::resolveRowEndColumnEndNamedGridLinePositionAgainstOppositePosition): Ditto.
        * rendering/RenderGrid.h:
        * rendering/style/GridPosition.h:
        (WebCore::GridPosition::adjustGridPositionForRowEndColumnEndSide): Moved from RenderGrid.cpp.
        (WebCore::GridPosition::adjustGridPositionForSide): Ditto.
        (WebCore::GridPosition::operator==): Use the named grid line to check equality.

2014-02-28  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Update line segments for ShapeInside only if the new line is wide enough
        https://bugs.webkit.org/show_bug.cgi?id=129461

        Reviewed by David Hyatt.

        Shape-inside can make a line only narrower than the original line width, thus we don't need
        to update the line/shape segments in fitBelowFloats for every single line inside shape-inside.
        This patch adds a helper function, which updates the line segments, furthermore it updates the
        line segments only when the content would fit without the shape.

        No new tests, no behavior change.

        * rendering/line/BreakingContextInlineHeaders.h: Use new helper.
        (WebCore::updateSegmentsForShapes):
        * rendering/line/LineWidth.cpp: Use new helper.
        (WebCore::LineWidth::updateLineSegment): Add new helper.
        (WebCore::LineWidth::fitBelowFloats):

2014-02-28  Mario Sanchez Prada  <mario.prada@samsung.com>

        paragraphs with different directionality in textarea with unicode-bidi: plaintext are aligned the same
        https://bugs.webkit.org/show_bug.cgi?id=71194

        Reviewed by David Hyatt.

        Merged from Blink r157263 by <igor.o@sisa.samsung.com>
        <https://src.chromium.org/viewvc/blink?revision=157263&view=revision>

        In the css3-text spec (http://www.w3.org/TR/css3-text/#bidi-linebox):

        The start and end edges of a line box are determined by the inline
        base direction of the line box. In most cases, this is given by
        its containing block's computed ‘direction’. However if its
        containing block has ‘unicode-bidi: plaintext’, the inline base
        direction the line box must be determined by the base direction of
        the bidi paragraph to which it belongs: that is, the bidi
        paragraph for which the line box holds content.

        This patch just implements the behavior described above modifying
        updateLogicalWidthForAlignment and setting the bidi level of the
        RootInlineBox.

        * rendering/RenderBlockFlow.h:
        * rendering/RenderBlockLineLayout.cpp:
        (WebCore::RenderBlockFlow::updateLogicalWidthForAlignment):
        (WebCore::RenderBlockFlow::computeInlineDirectionPositionsForSegment):
        (WebCore::RenderBlockFlow::createLineBoxesFromBidiRuns):
        (WebCore::RenderBlockFlow::layoutRunsAndFloatsInRange):
        (WebCore::RenderBlockFlow::deleteEllipsisLineBoxes):
        (WebCore::RenderBlockFlow::checkLinesForTextOverflow):
        (WebCore::RenderBlockFlow::startAlignedOffsetForLine):

2014-02-28  Jochen Eisinger  <jochen@chromium.org>

        Update meta-referrer behavior for invalid policies
        https://bugs.webkit.org/show_bug.cgi?id=129475

        This patch aligns the behavior with the CSP 1.1 referrer directive,
        where the fallback for an invalid value is the "never" policy.

        Original patch from Mike West: https://src.chromium.org/viewvc/blink?view=rev&revision=165627

        Reviewed by Alexey Proskuryakov.

        Test: http/tests/security/referrer-policy-invalid.html

        * dom/Document.cpp:
        (WebCore::Document::processReferrerPolicy):

2014-02-28  Daniel Bates  <dabates@apple.com>

        SubresourceLoader::didFinishLoading() should not assert when a decode error occurs
        https://bugs.webkit.org/show_bug.cgi?id=127029

        Reviewed by Darin Adler.

        SubresourceLoader::didFinishLoading() can be called for a resource (e.g. an image) that
        failed to be decoded or, in the case of an image, whose estimated decoded size exceeds
        the maximum decoded size (Settings::maximumDecodedImageSize()).

        Test: fast/images/decoded-size-exceeds-max-decoded-size.html

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didFinishLoading):

2014-02-28  Martin Hodovan  <mhodovan@inf.u-szeged.hu>

        ASSERTION FAILED: roundedIntPoint(rendererMappedResult) == roundedIntPoint(result) in WebCore::RenderGeometryMap::mapToContainer
        https://bugs.webkit.org/show_bug.cgi?id=119626

        SVGRenderSupport::mapLocalToContainer() was trying to apply transforms
        in the incorrect order. Specifically, it would attempt to apply its
        localToParentTransform before its localToBorderBoxTransform. This
        was causing an ASSERT to fail when the computed transforms didn't
        match up to those computed by RenderGeometryMap.

        Backported from Blink: https://codereview.chromium.org/143363004

        Reviewed by Simon Fraser.

        Test: svg/transforms/svg-geometry-crash.html

        * rendering/svg/SVGRenderSupport.cpp:
        (WebCore::SVGRenderSupport::mapLocalToContainer):

2014-02-28  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] ASSERTION FAILED: !m_regionsInvalidated in RenderFlowThread::regionAtBlockOffset
        https://bugs.webkit.org/show_bug.cgi?id=129371

        Reviewed by Andrei Bucur.

        regionAtBlockOffset method is meant to be used after the flow thread validated
        its region chain, otherwise we cannot rely on regionAtBlockOffset to determine correctly
        the target region based on the offset in flow thread coordinates.

        When the video element is collected in a named flow and displayed in a region, we ensure
        that the region's decorations are taken into account to properly position the video.
        However, we have to do that only if the named flow regions are validated.

        I changed the method cachedRegionForCompositedLayer to check only the "cached" region
        for a layer and not update the layer to region mappings before returning the region.
        Because method cachedRegionForCompositedLayer does not update the region - layer mappings,
        the code does not call regionAtBlockOffset in situations where the region chain is not validated yet.

        Test: compositing/regions/video-in-overflow-region.html

        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::getLayerListForRegion): Make it a getter that relies on
        cached information and refrain from updating the mappings. Make it const too.
        (WebCore::RenderFlowThread::cachedRegionForCompositedLayer):
        * rendering/RenderFlowThread.h:

2014-02-28  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GTK] Finetune captions menu as per design team
        https://bugs.webkit.org/show_bug.cgi?id=129432

        Reviewed by Eric Carlson.

        Some design fine tuning of the captions dialog was required.
        
        No new tests, current suffice.

        * Modules/mediacontrols/mediaControlsApple.js:
        Added out class.
        * Modules/mediacontrols/mediaControlsGtk.js:
        (ControllerGtk.prototype.buildCaptionMenu): Setting out class when
        menu is going to show overlap the panel right border.
        * css/mediaControlsGtk.css:
        (video::-webkit-media-controls-closed-captions-container.out):
        Setting all borders to 5px;
        (video::-webkit-media-controls-closed-captions-container h3):
        Reduced font size and increasing top padding.
        (video::-webkit-media-controls-closed-captions-container ul):
        Increased top padding.

2014-02-27  Ryosuke Niwa  <rniwa@webkit.org>

        Element::attributeChanged shouldn't do any work when attribute value didn't change
        https://bugs.webkit.org/show_bug.cgi?id=129467

        Reviewed by Geoffrey Garen.

        Exit early in childrenChanged when the attribute value didn't change.

        * dom/Attr.cpp:
        (WebCore::Attr::setValue):
        (WebCore::Attr::childrenChanged):
        * dom/Element.cpp:
        (WebCore::Element::setAttributeInternal):
        (WebCore::Element::attributeChanged):
        (WebCore::Element::parserSetAttributes):
        (WebCore::Element::removeAttributeInternal):
        (WebCore::Element::didAddAttribute):
        (WebCore::Element::didModifyAttribute):
        (WebCore::Element::didRemoveAttribute):
        (WebCore::Element::cloneAttributesFromElement):
        * dom/Element.h:
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        * dom/StyledElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::updateType):
        * mathml/MathMLElement.cpp:
        (WebCore::MathMLElement::attributeChanged):
        * mathml/MathMLElement.h:
        * mathml/MathMLSelectElement.cpp:
        (WebCore::MathMLSelectElement::attributeChanged):
        * mathml/MathMLSelectElement.h:
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::attributeChanged):
        * svg/SVGElement.h:

2014-02-27  Jinwoo Song  <jinwoo7.song@samsung.com>

        [EFL] Remove duplicated keyboard string key from keyMap
        https://bugs.webkit.org/show_bug.cgi?id=129469

        Reviewed by Gyuyoung Kim.

        "Down" key is duplicated in keyMap().

        * platform/efl/EflKeyboardUtilities.cpp:
        (WebCore::createKeyMap):

2014-02-27  Benjamin Poulain  <benjamin@webkit.org>

        Unify the three call sites of SelectorQueryCache
        https://bugs.webkit.org/show_bug.cgi?id=129249

        Reviewed by Andreas Kling.

        The three call sites of SelectorQueryCache were doing the exact same thing.
        That code is mvoed to a new function Document::selectorQueryForString().

        Also use String instead of AtomicString for querySelector() and querySelectorAll().
        This prevent the call sites from creating AtomicString just for the time of the call.
        This causes a tiny slow down on microbenchmarks that continuously query the same string
        but has no negative impact on realistic/good test cases (and the bindings are simplified).

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::querySelector):
        (WebCore::ContainerNode::querySelectorAll):
        * dom/ContainerNode.h:
        * dom/Document.cpp:
        (WebCore::Document::selectorQueryForString):
        * dom/Document.h:
        * dom/Element.cpp:
        (WebCore::Element::webkitMatchesSelector):
        * dom/SelectorQuery.cpp:
        (WebCore::SelectorQueryCache::add):
        * dom/SelectorQuery.h:

2014-02-27  Ryosuke Niwa  <rniwa@webkit.org>

        JSC ignores the extra memory cost of HTMLCollection after a major GC
        https://bugs.webkit.org/show_bug.cgi?id=129450

        Reviewed by Andreas Kling.

        Report the extra memory cost of HTMLCollection to JSC.

        Unfortunately, the existing mechanism to report the extra memory cost in toJS is insufficient for
        HTMLCollection since collection caches are populated later when HTMLCollection is accessed. Also,
        the extra memory cost reported by Heap::reportExtraMemoryCost will be thrown away after a major GC.

        To work around this limitation, added a visitor.reportExtraMemoryUsage call inside visitChildren
        for interfaces with a newly added ReportExtraMemoryCost IDL extension flag to report the extra cost.

        Since we may need to generate visitChildren when this flag is set, we can't automatically detect
        and generate calls using C++ template as done in r148648.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * Modules/webaudio/AudioBuffer.idl:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSDOMBinding.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        (InstanceNeedsVisitChildren):
        (GenerateHeader):
        (GenerateImplementation):
        * bindings/scripts/IDLAttributes.txt:
        * bindings/scripts/test/JS/JSTestActiveDOMObject.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestCustomNamedGetter.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestEventConstructor.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestEventTarget.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestException.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestGenerateIsReachable.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestInterface.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestMediaQueryListListener.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestNamedConstructor.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestObj.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestOverloadedConstructors.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestSerializedScriptValueInterface.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSTestTypedefs.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSattribute.cpp:
        (WebCore::toJS):
        * bindings/scripts/test/JS/JSreadonly.cpp:
        (WebCore::toJS):
        * dom/ChildNodeList.h:
        * dom/CollectionIndexCache.cpp: Added.
        (WebCore::reportExtraMemoryCostForCollectionIndexCache):
        * dom/CollectionIndexCache.h:
        (WebCore::CollectionIndexCache::memoryCost):
        (WebCore::NodeType>::CollectionIndexCache):
        (WebCore::NodeType>::nodeCount):
        (WebCore::NodeType>::computeNodeCountUpdatingListCache):
        (WebCore::NodeType>::nodeAt):
        (WebCore::NodeType>::invalidate):
        * dom/DOMAllInOne.cpp:
        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::memoryCost):
        * dom/LiveNodeList.h:
        * dom/NodeList.h:
        (WebCore::NodeList::memoryCost):
        * dom/NodeList.idl:
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::updateNamedElementCache):
        * html/HTMLCollection.h:
        (WebCore::CollectionNamedElementCache::didPopulate):
        (WebCore::CollectionNamedElementCache::memoryCost):
        (WebCore::CollectionNamedElementCache::find):
        (WebCore::HTMLCollection::memoryCost):
        * html/HTMLCollection.idl:
        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::updateNamedElementCache):

2014-02-27  Benjamin Poulain  <benjamin@webkit.org>

        Compile attribute value matching
        https://bugs.webkit.org/show_bug.cgi?id=129228

        Reviewed by Geoffrey Garen.

        Add support for compiling value matching when matching attributes in Selector.
        This patch only adds exact matching, the other cases will follow.

        There is a little infrastructure changes since FunctionCall now needs to support
        calls taking 2 arguments. The fun begins when the arguments are not in the right
        registers and need to be moved to the right place. Otherwise the code is straightforward.

        In SelectorCompiler, it is necessary to handle two different cases of matching: case sensitive
        and case insensitive. The choice is done in part at compilation time by asking HTMLDocument
        if the name filter can include case insensitive attribute. The other part is done at runtime
        by querying the element for its type and document.

        Test: fast/selectors/case-insensitive-value-matching.html

        * css/SelectorChecker.cpp:
        (WebCore::attributeValueMatches): Null values matching should never happen, when an attribute
        has no value, its value is empty.

        * cssjit/FunctionCall.h:
        (WebCore::FunctionCall::FunctionCall):
        Add support for calls with two arguments.
        (WebCore::FunctionCall::setOneArgument):
        (WebCore::FunctionCall::setTwoArguments):
        (WebCore::FunctionCall::swapArguments):
        Here we need to swap two registers, but we cannot allocate a new register (because the context
        of the function call may have taken all the available registers already).

        On x86, the solution is simple, we can swap the two registers without side effects.

        On other platforms, it is a little more complex. If there is any available register, we can just
        use it as a temporary to make the swap.
        If there are no available registers, we know that all the registers are taken. Since swapArguments()
        was called after pushing all the arguments on the stack, we can safely trash the value of any of those.
        We take the first available register that is not a function argument and use it as a temporary.

        (WebCore::FunctionCall::prepareAndCall):
        This is the fun part, we have two registers where the values must go before the function call. The values
        can be in any combination of the allocated registers. The code here needs to move the two values to
        their target register while avoiding conflicts.

        * cssjit/SelectorCompiler.cpp:
        (WebCore::SelectorCompiler::AttributeMatchingInfo::AttributeMatchingInfo):
        (WebCore::SelectorCompiler::AttributeMatchingInfo::canDefaultToCaseSensitiveValueMatch):
        (WebCore::SelectorCompiler::AttributeMatchingInfo::selector):
        The value of HTMLDocument::isCaseSensitiveAttribute is needed at compilation time to compute the number
        of required registers. As a result, we need to keep it along in the selector fragment.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::SelectorCodeGenerator):
        (WebCore::SelectorCompiler::attributeNameTestingRequiresNamespaceRegister):
        (WebCore::SelectorCompiler::attributeValueTestingRequiresExtraRegister):
        (WebCore::SelectorCompiler::minimumRegisterRequirements):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::markParentElementIfResolvingStyle):
        (WebCore::SelectorCompiler::canMatchStyleAttribute):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeStyleAttribute):
        (WebCore::SelectorCompiler::canMatchAnimatableSVGAttribute):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateSynchronizeAllAnimatedSVGAttribute):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeMatching):
        The matching code is moved in a local scope. This is done to recover the register of qualifiedNameImpl
        before doing any value matching. That register can then be used to store the expected value when matching
        an attribute value.
        It is unfortunate there is so much register pressure in this part.

        Value matching is done outside the loop. The idea is to keep the loop really small since in the vast majority
        of cases, name matching fails.
        If the value matching fails, we jump back into the tight loop.

        This is not ideal in all situation. For example trivial name matching with trivial value matching should
        be done in loop. There is a FIXME to improve those cases later.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueMatching):
        (WebCore::SelectorCompiler::testIsHTMLClassOnDocument):
        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementAttributeValueExactMatching):
        In the case sensitive branch, things are really simple. We have to AtomicStringImpl pointers, if they
        don't match, it is a failure.

        The case sensitive branch start by comparing the pointers in case the values are equal. This is a common
        case and it simplifies the cases for SVG, XHTML, etc.
        If the two values are not equal, we must first find if the context requires case insensitive comparison
        (HTMLElement in HTMLDocument). If the conditions require case insensitive matching, we then fall back
        to a function call.

        (WebCore::SelectorCompiler::SelectorCodeGenerator::generateElementFunctionCallTest):
        * dom/Attribute.h:
        (WebCore::Attribute::valueMemoryOffset):
        * dom/Document.h:
        (WebCore::Document::documentClassesMemoryOffset):
        (WebCore::Document::isHTMLDocumentClassFlag):
        * dom/Node.h:
        (WebCore::Node::treeScopeMemoryOffset):
        * dom/TreeScope.h:
        (WebCore::TreeScope::documentScopeMemoryOffset):

2014-02-27  Ryuan Choi  <ryuan.choi@samsung.com>

        Build break when disabled CSS_GRID_LAYOUT
        https://bugs.webkit.org/show_bug.cgi?id=129459

        Reviewed by Gyuyoung Kim.

        * css/CSSValue.h: Added guards of CSS_GRID_LAYOUT for GridTemplateAreasClass.

2014-02-17  Myles C. Maxfield  <mmaxfield@apple.com>

        text-decoration-skip: ink does not skip over SVG fonts
        https://bugs.webkit.org/show_bug.cgi?id=128936

        Reviewed by Darin Adler.

        When drawing glyphs in an SVG font, the glyphs are converted to paths and then filled. This patch moves
        the glyph -> path conversion into a helper class, GlyphToPathTranslator, and creates an implementation
        for the SVG drawing code. Once this helper class is created, it can be used to trace paths in order
        to make underlines skip over SVG glyphs. This helper class also has an implementation for non-SVG glyphs,
        which allows for the glyph tracing code to be paramaterized over the implementation of the helper class
        rather than if the FontData itself is SVG or not.

        Tests: fast/css3-text/css3-text-decoration/text-decoration-skip/text-decoration-skip-ink-svg.html

        * platform/graphics/Font.h:
        (WebCore::GlyphToPathTranslator::~GlyphToPathTranslator): Virtual implementation of helper class
        * platform/graphics/cg/PathCG.cpp:
        (WebCore::Path::Path): Created constructor that takes a RefPtr<CGMutablePathRef>
        * platform/graphics/Path.h:
        * platform/graphics/TextRun.h: Give RenderingContext a factory function to create the helper class
        instance
        * platform/graphics/mac/FontMac.mm: Implementation of helper class used for skipping underlines on
        regular (CoreText) glyphs
        (WebCore::MacGlyphToPathTranslator::MacGlyphToPathTranslator):
        (WebCore::MacGlyphToPathTranslator::moveToNextValidGlyph):
        (WebCore::MacGlyphToPathTranslator::incrementIndex):
        (WebCore::Font::dashesForIntersectionsWithRect): Call the relevant factory function, and use it
        to successively generate Paths
        * rendering/svg/SVGTextRunRenderingContext.cpp: Implementation of helper class used for SVG fonts
        (WebCore::SVGGlyphToPathTranslator::SVGGlyphToPathTranslator):
        (WebCore::SVGGlyphToPathTranslator::moveToNextValidGlyph):
        (WebCore::SVGGlyphToPathTranslator::incrementIndex):
        (WebCore::SVGTextRunRenderingContext::createGlyphToPathTranslator):
        (WebCore::SVGTextRunRenderingContext::drawSVGGlyphs): Use the above implementation
        * rendering/svg/SVGTextRunRenderingContext.h: Factory function declaration

2014-02-27  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WebRTC] Removing MediaConstraints argument from RTCPeerConnection addStream, updateIce methods and constructor
        https://bugs.webkit.org/show_bug.cgi?id=129449

        Reviewed by Eric Carlson.

        According to WebRTC editor's draft, MediaConstraints will no longer be an argument of those methods and
        constructor.

        Existing tests were updated.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::RTCPeerConnection::create):
        (WebCore::RTCPeerConnection::RTCPeerConnection):
        (WebCore::RTCPeerConnection::updateIce):
        (WebCore::RTCPeerConnection::addStream):
        * Modules/mediastream/RTCPeerConnection.h:
        * Modules/mediastream/RTCPeerConnection.idl:
        * bindings/js/JSRTCPeerConnectionCustom.cpp:
        (WebCore::JSRTCPeerConnectionConstructor::constructJSRTCPeerConnection):
        * platform/mediastream/RTCPeerConnectionHandler.h:
        * platform/mock/RTCPeerConnectionHandlerMock.cpp:
        (WebCore::RTCPeerConnectionHandlerMock::initialize):
        (WebCore::RTCPeerConnectionHandlerMock::updateIce):
        (WebCore::RTCPeerConnectionHandlerMock::addStream):
        * platform/mock/RTCPeerConnectionHandlerMock.h:

2014-02-27  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Move named-flow specific method decorationsClipRectForBoxInRegion to RenderNamedFlowThread
        https://bugs.webkit.org/show_bug.cgi?id=129428

        Reviewed by Andreas Kling.

        Since the decorationsClipRectForBoxInRegion method is a named flow specific method, it makes
        sense to be in the named flow specific class, RenderNamedFlowThread, instead of the more
        generic RenderFlowThread.

        No new tests required. No new functionality.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintObject):
        * rendering/RenderFlowThread.cpp:
        * rendering/RenderFlowThread.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::decorationsClipRectForBoxInNamedFlowFragment):
        * rendering/RenderNamedFlowThread.h:

2014-02-27  Zoltan Horvath  <zoltan@webkit.org>

        Avoid calling logicalLeftOffsetForLine 2 times in LineWidth::fitBelowFloats
        https://bugs.webkit.org/show_bug.cgi?id=129433

        Reviewed by Darin Adler.

        This change updates fitBelowFloats and its helpers to call RenderBlock::logicalLeftOffsetForLine only once.

        No new tests, no behavior change.

        * rendering/line/LineWidth.cpp:
        (WebCore::availableWidthAtOffset):
        (WebCore::LineWidth::updateLineDimension):
        (WebCore::LineWidth::wrapNextToShapeOutside):
        (WebCore::LineWidth::fitBelowFloats):
        * rendering/line/LineWidth.h:

2014-02-27  Andreas Kling  <akling@apple.com>

        Micro-optimize elementAffectsDirectionality().
        <https://webkit.org/b/129444>

        Tweak this function to skip an unnecessary bit check and use
        fastHasAttribute() instead of hasAttribute() for looking up dirAttr.

        ~1% speedup on DYEB/AngularJS.

        Reviewed by Ryosuke Niwa.

        * html/HTMLElement.cpp:
        (WebCore::elementAffectsDirectionality):

2014-02-27  Brian Burg  <bburg@apple.com>

        Web Inspector: model tests should use a special Test.html inspector page
        https://bugs.webkit.org/show_bug.cgi?id=129190

        Reviewed by Timothy Hatcher.

        Convert InspectorController::isUnderTest() into a flag, and expose an
        Internals method so it can be set by the test before opening the inspector.

        Test: inspector/test-harness-trivially-works.html

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::evaluateForTestInFrontend):
        * inspector/InspectorController.h:
        * testing/Internals.cpp:
        (WebCore::Internals::setInspectorIsUnderTest): Added.
        * testing/Internals.h:
        * testing/Internals.idl:

2014-02-27  Joseph Pecoraro  <pecoraro@apple.com>

        Unreviewed build fix after r164824.

        Accidentally re-added some code that was removed.

        * page/ContentSecurityPolicy.cpp:

2014-02-26  Alex Christensen  <achristensen@webkit.org>

        Compile fix when not using TEXTURE_MAPPER_GL.
        https://bugs.webkit.org/show_bug.cgi?id=129417

        Reviewed by Darin Adler.

        * platform/graphics/texmap/TextureMapperGL.cpp:
        Protect platformCreateAccelerated with USE(TEXTURE_MAPPER_GL).

2014-02-27  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: JSContext inspection should report exceptions in the console
        https://bugs.webkit.org/show_bug.cgi?id=128776

        Reviewed by Timothy Hatcher.

        Include some clean up of ConsoleMessage and ScriptCallStack construction.

        Covered by existing tests.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException):
        Simplify code now that createStackTraceFromException handles it.

        * page/ContentSecurityPolicy.cpp:
        (WebCore::gatherSecurityPolicyViolationEventData):
        (WebCore::ContentSecurityPolicy::reportViolation):
        ScriptCallStack can give us the first non-native callframe.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::buildInitiatorObject):
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::breakpointActionLog):
        * inspector/TimelineRecordFactory.cpp:
        (WebCore::TimelineRecordFactory::createGenericRecord):
        * page/Console.cpp:
        (WebCore::internalAddMessage):
        (WebCore::Console::profile):
        (WebCore::Console::profileEnd):
        (WebCore::Console::timeEnd):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::gatherSecurityPolicyViolationEventData):
        (WebCore::ContentSecurityPolicy::reportViolation):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessage):

2014-02-27  Andreas Kling  <akling@apple.com>

        Remove FeatureObserver.
        <https://webkit.org/b/129439>

        This code was only used by the Chromium port and nobody else is
        making use of it.

        Reviewed by Anders Carlsson.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/EventTarget.cpp:
        (WebCore::EventTarget::fireEventListeners):
        * dom/EventTarget.h:
        * html/ColorInputType.cpp:
        * html/ColorInputType.h:
        * html/DateInputType.cpp:
        * html/DateInputType.h:
        * html/DateTimeInputType.cpp:
        * html/DateTimeInputType.h:
        * html/DateTimeLocalInputType.cpp:
        * html/DateTimeLocalInputType.h:
        * html/EmailInputType.cpp:
        * html/EmailInputType.h:
        * html/HTMLDataListElement.cpp:
        (WebCore::HTMLDataListElement::create):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::parseAttribute):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseAttribute):
        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::parseAttribute):
        * html/InputType.cpp:
        * html/InputType.h:
        * html/MonthInputType.cpp:
        * html/MonthInputType.h:
        * html/NumberInputType.cpp:
        * html/NumberInputType.h:
        * html/RangeInputType.cpp:
        * html/RangeInputType.h:
        * html/SearchInputType.cpp:
        * html/SearchInputType.h:
        * html/TelephoneInputType.cpp:
        * html/TelephoneInputType.h:
        * html/TextInputType.cpp:
        * html/TextInputType.h:
        * html/TimeInputType.cpp:
        * html/TimeInputType.h:
        * html/URLInputType.cpp:
        * html/URLInputType.h:
        * html/WeekInputType.cpp:
        * html/WeekInputType.h:
        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::responseReceived):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::shouldInterruptLoadForXFrameOptions):
        (WebCore::FrameLoader::dispatchDidCommitLoad):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::ContentSecurityPolicy::didReceiveHeader):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::selectCursor):
        * page/FeatureObserver.cpp: Removed.
        * page/FeatureObserver.h: Removed.
        * page/Page.h:
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::RenderDeprecatedFlexibleBox):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::calculateClipRects):
        * workers/SharedWorker.cpp:
        (WebCore::SharedWorker::create):
        * workers/Worker.cpp:
        (WebCore::Worker::create):

2014-02-27  Chris Fleizach  <cfleizach@apple.com>

        speechSynthesis.speak of a zero length utterance kills future speech
        https://bugs.webkit.org/show_bug.cgi?id=129403

        Reviewed by Mario Sanchez Prada.

        Empty length strings may choke a synthesizer and result in didFinishSpeaking not being called. 
        The WebKit code should be proactive about screening out empty length strings.

        Test: platform/mac/fast/speechsynthesis/speech-synthesis-speak-empty-string.html

        * Modules/speech/SpeechSynthesis.cpp:
        (WebCore::SpeechSynthesis::startSpeakingImmediately):

2014-02-27  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r164783.
        http://trac.webkit.org/changeset/164783
        https://bugs.webkit.org/show_bug.cgi?id=129425

        Broke number of multicol tests (Requested by anttik on
        #webkit).

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::containingColumnsBlock):

2014-02-27  Antoine Quint  <graouts@webkit.org>

        Respect SVG fragment identifiers in <img> src attribute
        https://bugs.webkit.org/show_bug.cgi?id=129387

        Reviewed by Antti Koivisto.

        Test: svg/css/svg-resource-fragment-identifier-img-src.html

        When providing an SVG image for a given renderer, check that the URL used to load
        that image is taken into account in case it featured a fragment identifier, ensuring
        that the CSS :target pseudo-class is correctly handled for SVG resources. This patch
        is specific to <img> elements, specific support will also need to be added for various
        CSS properties that support SVG images.

        * svg/graphics/SVGImageCache.cpp:
        (WebCore::SVGImageCache::imageForRenderer):
        Check if the provided renderer is attached to an <img> element and, if so, pass the
        resolved <img> source URL, taking into account srcset, to the SVGImageForContainer.

        * svg/graphics/SVGImageForContainer.cpp:
        (WebCore::SVGImageForContainer::setURL):
        Trigger the FrameView machinery to ensure that the :target pseudo-class is respected
        should the provided URL feature a fragment identifier.

        * svg/graphics/SVGImageForContainer.h:
        Declare the new setURL() method.

2014-02-27  Krzysztof Czech  <k.czech@samsung.com>

        [ATK] Fix style errors in enum members
        https://bugs.webkit.org/show_bug.cgi?id=129421

        Reviewed by Mario Sanchez Prada.

        No new tests. No new functionality.

        Enum members should use InterCaps with an initial capital letter.

        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (getInterfaceMaskFromObject):

2014-02-27  Mihai Tica  <mitica@adobe.com>

        [CSS Blending] Parse and implement the -webkit-isolation CSS property.

        https://bugs.webkit.org/show_bug.cgi?id=128958

        Reviewed by Dirk Schulze.

        Parse and implement -webkit-isolation, part of the CSS Blending and Compositing spec.
        This patch adds functionality for HTML and SVG.
        -webkit-isolation: isolate restricts any child elements from blending with any of the content outside the isolated parent element.

        Tests: css3/compositing/isolation-isolate-blended-child.html
               css3/compositing/isolation-parsing.html
               css3/compositing/svg-isolation-default.html
               css3/compositing/svg-isolation-isolated-group.html
               css3/compositing/svg-isolation-simple.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::isKeywordPropertyID):
        (WebCore::CSSParser::parseValue):
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        (WebCore::CSSPrimitiveValue::operator Isolation):
        * css/CSSPropertyNames.in: Add -webkit-isolation.
        * css/CSSValueKeywords.in: Add the isolate value.
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle): Explicitly set isolation:isolate to create a stacking context.
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayerRepaint): Changing isolation should trigger a repaint.
        * rendering/style/RenderStyle.h: Setters and getters for isolation.
        * rendering/style/RenderStyleConstants.h: Add Isolation enum.
        * rendering/style/StyleRareNonInheritedData.cpp: Add m_isolation.
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::prepareToRenderSVGContent): If isolated, paint in a transparency layer.

2014-02-27  Krzysztof Czech  <k.czech@samsung.com>

        [ATK] Utilize AtkTableCell to expose directly AccessibilityTableCell to AT
        https://bugs.webkit.org/show_bug.cgi?id=129250

        Reviewed by Mario Sanchez Prada.

        Test: accessibility/table-scope.html

        Exposing AtkTableCell to AT. Implementing possibility to get column headers and row headers
        as an array of cells.

        * GNUmakefile.list.am:
        * PlatformEfl.cmake:
        * accessibility/atk/WebKitAccessibleInterfaceTableCell.cpp: Added.
        (convertToGPtrArray):
        (core):
        (webkitAccessibleTableCellGetColumnHeaderCells):
        (webkitAccessibleTableCellGetRowHeaderCells):
        (webkitAccessibleTableCellInterfaceInit):
        * accessibility/atk/WebKitAccessibleInterfaceTableCell.h: Added.
        * accessibility/atk/WebKitAccessibleWrapperAtk.cpp:
        (getInterfaceMaskFromObject):

2014-02-27  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>

        Improving containing column block determination
        https://bugs.webkit.org/show_bug.cgi?id=125449

        Reviewed by Darin Adler.

        Making sure that the containing column block of any elements
        can not be oneself.

        Test: fast/css/crash-on-column-splitting.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::containingColumnsBlock):
        (WebCore::RenderBlock::splitFlow):

2014-02-27  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GTK] Improve JavaScript multimedia controls
        https://bugs.webkit.org/show_bug.cgi?id=129044

        Reviewed by Jer Noble.

        After webkit.org/b/123097 a follow up was needed to improve
        accessibily and some other cosmetic problems, like cleaner CSS and
        new missing baselines.

        No new tests because of no new functionality.

        * Modules/mediacontrols/mediaControlsApple.js:
        Added hiding class name.
        * Modules/mediacontrols/mediaControlsGtk.js:
        (ControllerGtk.prototype.createControls): Set remaining time as
        hidden by default and turned volumebox hidden into hiding.
        (ControllerGtk.prototype.updateTime): Simplified the hiding and
        showing by removing the show class and using hidden only.
        (ControllerGtk.prototype.handleMuteButtonMouseOver):
        (ControllerGtk.prototype.handleVolumeBoxMouseOut): Turned hidden
        into hiding.
        (ControllerGtk.prototype.updateReadyState): Changed coding style
        and added down class for the panel too.
        (ControllerGtk.prototype.updatePlaying): Change for coding style
        coherence.
        (ControllerGtk.prototype.handleCaptionButtonClicked): Call
        handleCaptionButtonShowMenu.
        (ControllerGtk.prototype.handleCaptionButtonMouseOver): Call
        handleCaptionButtonShowMenu.
        (ControllerGtk.prototype.handleCaptionButtonShowMenu): Created
        with the former behavior of handleCaptionButtonMouseOver.
        * css/mediaControlsGtk.css:
        (.hidden): Set display none for all objects with hidden class.
        (audio::-webkit-media-controls-panel *:focus):
        (audio::-webkit-media-controls-panel.down *:focus): Added gradient
        for the active and focus status.
        (audio::-webkit-media-controls-time-remaining-display)
        (video::-webkit-media-controls-time-remaining-display): Set
        display block.
        (audio::-webkit-media-controls-volume-slider-container)
        (video::-webkit-media-controls-volume-slider-container): Set
        display flex.
        (video::-webkit-media-controls-volume-slider-container.hiding):
        Changed from hidden.
        (video::-webkit-media-controls-panel .hiding.down): Changed from
        hidden.
        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::paintMediaButton): Returning true to
        allow CSS painting the gradient.

2014-02-27  Zan Dobersek  <zdobersek@igalia.com>

        Unreviewed. Fixing the GTK build fix after r164757.

        * platform/network/NetworkStateNotifier.cpp: r164757 introduced a layering violation by including
        the Settings.h header. The use of that class is guarded by PLATFORM(IOS), so the header inclusion
        should be guarded as well.

2014-02-26  Ryosuke Niwa  <rniwa@webkit.org>

        Extract named items caches in HTMLCollection as a class
        https://bugs.webkit.org/show_bug.cgi?id=129365

        Reviewed by Antti Koivisto.

        Extracted CollectionNamedElementCache, like CollectionIndexCache, out of HTMLCollection.
        We can move more named item related functions into this class in the future.

        HTMLCollection's member variables m_isNameCacheValid, m_idCache, and m_nameCache were replaced by
        a single unique_ptr that holds an instance of CollectionNamedElementCache since this object rarely
        exists in most HTMLCollections.

        Also removed m_isItemRefElementsCacheValid since it was only used by Microdata API removed in r153772
        and renamed a whole bunch of member functions and variables for consistency.

        * dom/Document.cpp:
        (WebCore::Document::collectionCachedIdNameMap):
        (WebCore::Document::collectionWillClearIdNameMap):
        * dom/Document.h:
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::adoptDocument):
        * html/HTMLAllCollection.cpp:
        (WebCore::HTMLAllCollection::namedItemWithIndex):
        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::~HTMLCollection):
        (WebCore::HTMLCollection::invalidateCache):
        (WebCore::HTMLCollection::invalidateNamedElementCache): Renamed from invalidateIdNameCacheMaps.
        (WebCore::HTMLCollection::namedItem):
        (WebCore::HTMLCollection::updateNamedElementCache): Renamed from updateNameCache.
        (WebCore::HTMLCollection::namedItems):

        * html/HTMLCollection.h:
        (WebCore::CollectionNamedElementCache::findElementsWithId): Renamed from HTMLCollection::idCache.
        (WebCore::CollectionNamedElementCache::findElementsWithName): Renamed from HTMLCollection::nameCache.
        (WebCore::CollectionNamedElementCache::appendIdCache): Moved from HTMLCollection.
        (WebCore::CollectionNamedElementCache::appendNameCache): Ditto.
        (WebCore::CollectionNamedElementCache::find): Ditto.
        (WebCore::CollectionNamedElementCache::append): Ditto.

        (WebCore::HTMLCollection::invalidateCache):
        (WebCore::HTMLCollection::hasNamedElementCache): Renamed from hasIdNameCache.
        (WebCore::HTMLCollection::createNameItemCache): Added.
        (WebCore::HTMLCollection::namedItemCaches): Added.

        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::updateNamedElementCache):
        * html/HTMLFormControlsCollection.h:

2014-02-26  Ryosuke Niwa  <rniwa@webkit.org>

        Indenting an indented image element resulted in an extra indentation
        https://bugs.webkit.org/show_bug.cgi?id=129201

        Reviewed by Enrica Casucci.

        The bug was caused by endOfParagraph returning a position at the beginning of a block when the position
        passed into the function was at the beginning of the block. Consider the following DOM:
        <blockquote><img></blockquote>

        When endOfParagraph is called on (blockquote, 0), the condition r->isBR() || isBlock(n) in endOfParagraph
        matches immediately on startNode and it returns (blockquote, 0) again.

        This resulted in moveParagraphWithClones invoked by indentIntoBlockquote to erroneously clone the inner
        blockquote. Worked around this bug in ApplyBlockElementCommand::formatSelection by checking this specific
        condition and moving the position to the end of the block. Unfortunately, a lot of existing code depends
        on the current behavior of endOfParagraph so fixing the function itself was not possible.

        There was another bug in indentIntoBlockquote to incorrectly insert a new blockquote into the existing
        blockquote due to the code introduced in r99594 to avoid inserting before the root editable element.
        Since this happens only if outerBlock is the root editable element, which is nodeToSplitTo or an ancestor
        of nodeToSplitTo, explicitly look for this condition.

        Test: editing/execCommand/indent-img-twice.html

        * editing/ApplyBlockElementCommand.cpp:
        (WebCore::ApplyBlockElementCommand::formatSelection):
        (WebCore::isNewLineAtPosition):
        * editing/IndentOutdentCommand.cpp:
        (WebCore::IndentOutdentCommand::indentIntoBlockquote):
        * editing/VisibleUnits.cpp:
        (WebCore::endOfParagraph): Added a FIXME.

2014-02-26  Simon Fraser  <simon.fraser@apple.com>

        Fix two assertions/crashes in compositing code
        https://bugs.webkit.org/show_bug.cgi?id=129414

        Reviewed by Dean Jackson.

        Fix two issues introduced in r164759.

        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers): Don't call
        ourselves recursively!
        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer): We call this
        function unconditionally on layer teardown, so this assertion is bogus.

2014-02-26  Simon Fraser  <simon.fraser@apple.com>

        Fix the build with some compiler configurations.

        * platform/mac/ScrollAnimatorMac.mm:
        (WebCore::ScrollAnimatorMac::ScrollAnimatorMac):
        (WebCore::ScrollAnimatorMac::didAddVerticalScrollbar):
        (WebCore::ScrollAnimatorMac::didAddHorizontalScrollbar):

2014-02-26  Myles C. Maxfield  <mmaxfield@apple.com>

        Ranges given to createMarkupInternal might not be canonicalized
        https://bugs.webkit.org/show_bug.cgi?id=129408

        Reviewed by Ryosuke Niwa.

        When WebKit clients (such as Mail) call WKWebArchiveCreateFromRange() with a range,
        that range is not necessarily canonicalized. Therefore, comparing it for equality
        with a canonicalized range might return a false negative. Instead, we should compare
        canonicalized ranges.

        No new tests because this codepath will only be reached via SPI.

        * editing/markup.cpp:
        (WebCore::createMarkupInternal):

2014-02-26  Enrica Casucci  <enrica@apple.com>

        [iOS WebKit2] Form controls handling: implement date and time controls.
        https://bugs.webkit.org/show_bug.cgi?id=129344

        Reviewed by Simon Fraser and Joseph Pecoraro.

        Adding one localizable string.

        * English.lproj/Localizable.strings:

2014-02-26  Simon Fraser  <simon.fraser@apple.com>

        Prepare for overflow scrolling nodes in the scrolling tree
        https://bugs.webkit.org/show_bug.cgi?id=129398

        Reviewed by Tim Horton.

        Lay some groundwork for overflow:scrolling nodes in the scrolling tree.
        Change terminology to refer to "scroll-coordinatored" layers now, not just viewport-constrained
        layers.
        
        A given layer can be both viewport-constrained and overflow-scrolling (e.g. position:fixed,
        overflow:scroll), so handle that in RenderLayerBacking, and use some "reason" flags
        in RenderLayerCompositor.

        * page/FrameView.cpp:
        (WebCore::FrameView::scrollLayerID): Rename
        * page/scrolling/ScrollingStateTree.cpp:
        (WebCore::ScrollingStateTree::attachNode): Remove invalid assertion.
        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::RenderLayerBacking):
        (WebCore::RenderLayerBacking::updateGraphicsLayerGeometry):
        (WebCore::RenderLayerBacking::updateScrollingLayers): Simplify the logic with
        an early return.
        (WebCore::RenderLayerBacking::detachFromScrollingCoordinator):
        Allow a layer to play both viewport-constrained and scrolling roles
        in the scrolling tree.
        * rendering/RenderLayerBacking.h:
        (WebCore::RenderLayerBacking::viewportConstrainedNodeID):
        (WebCore::RenderLayerBacking::setViewportConstrainedNodeID):
        (WebCore::RenderLayerBacking::scrollingNodeID):
        (WebCore::RenderLayerBacking::setScrollingNodeID):
        (WebCore::RenderLayerBacking::scrollingNodeIDForChildren):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::flushPendingLayerChanges):
        (WebCore::RenderLayerCompositor::didFlushChangesForLayer):
        (WebCore::RenderLayerCompositor::updateBacking):
        (WebCore::RenderLayerCompositor::layerWillBeRemoved):
        (WebCore::RenderLayerCompositor::fixedRootBackgroundLayerChanged):
        (WebCore::RenderLayerCompositor::clearBackingForLayerIncludingDescendants):
        (WebCore::RenderLayerCompositor::requiresCompositingLayer):
        (WebCore::RenderLayerCompositor::requiresOwnBackingStore):
        (WebCore::RenderLayerCompositor::reasonsForCompositing):
        (WebCore::RenderLayerCompositor::requiresCompositingForScrolling):
        (WebCore::isViewportConstrainedFixedOrStickyLayer):
        (WebCore::isMainFrameScrollingOrOverflowScrolling):
        (WebCore::RenderLayerCompositor::rootLayerAttachmentChanged):
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedStatus):
        (WebCore::RenderLayerCompositor::removeFromScrollCoordinatedLayers):
        (WebCore::nearestScrollCoordinatedAncestor):
        (WebCore::RenderLayerCompositor::updateScrollCoordinatedLayer):
        (WebCore::RenderLayerCompositor::detachScrollCoordinatedLayer):
        (WebCore::RenderLayerCompositor::registerAllViewportConstrainedLayers):
        (WebCore::RenderLayerCompositor::willRemoveScrollingLayer):
        (WebCore::RenderLayerCompositor::didAddScrollingLayer):
        * rendering/RenderLayerCompositor.h:

2014-02-26  Andy Estes  <aestes@apple.com>

        [iOS] Support network state notification using CPNetworkObserver
        https://bugs.webkit.org/show_bug.cgi?id=129358

        Reviewed by Dan Bernstein.

        Add iOS support for navigator.onLine and online/offline events. Since
        it can be expensive to query CPNetworkObserver, wait to do so until
        someone calls NetworkStateObserver::onLine() or
        NetworkStateObserver::addNetworkStateChangeListener(). For clients that
        don't wish to observe network reachability at all, add a global opt-out.
        These clients will only pay the cost of CPNetworkObserver if they load
        a page that explicitly accesses navigator.onLine.

        No new tests. Covered by existing tests.

        * WebCore.exp.in: Stopped exporting NetworkStateNotifier::setIsOnLine()
        and started exporting Settings::gShouldOptOutOfNetworkStateObservation.
        * WebCore.xcodeproj/project.pbxproj: Renamed NetworkStateNotifierIOS.cpp
        to NetworkStateNotifierIOS.mm.
        * page/Settings.cpp: Defaulted gShouldOptOutOfNetworkStateObservation
        to false.
        * page/Settings.h:
        (WebCore::Settings::setShouldOptOutOfNetworkStateObservation):
        (WebCore::Settings::shouldOptOutOfNetworkStateObservation):
        * platform/network/NetworkStateNotifier.cpp:
        (WebCore::NetworkStateNotifier::addNetworkStateChangeListener): Ignored
        the listener if Settings::shouldOptOutOfNetworkStateObservation().
        Called registerObserverIfNecessary() and added the listener otherwise.
        (WebCore::NetworkStateNotifier::notifyNetworkStateChange): Const qualified.
        * platform/network/NetworkStateNotifier.h
        (NetworkStateNotifier::onLine):
        * platform/network/ios/NetworkStateNotifierIOS.cpp: Removed.
        * platform/network/ios/NetworkStateNotifierIOS.mm: Added.
        (-[NetworkStateObserver initWithNotifier:WebCore::]): Registered self
        as a network reachable observer on CPNetworkObserver.
        (-[NetworkStateObserver dealloc]): Removed self as a network reachable
        observer.
        (-[NetworkStateObserver networkStateChanged:]): Called setOnLine() on
        the web thread, passing the reachability value from the notification.
        (WebCore::NetworkStateNotifier::NetworkStateNotifier):
        (WebCore::NetworkStateNotifier::~NetworkStateNotifier): Cleared
        m_observer's pointer back to us.
        (WebCore::NetworkStateNotifier::registerObserverIfNecessary): Initialized
        m_observer if necessary.
        (WebCore::NetworkStateNotifier::onLine): Called
        registerObserverIfNecessary() and set an initial value for m_isOnLine
        if m_isOnLineInitialized is false. Returned m_isOnLine.
        (WebCore::setOnLine): Set m_isOnLine and called
        notifyNetworkStateChange() if needed. Unconditionally set
        m_isOnLineInitialized to true.

2014-02-26  Brian Burg  <bburg@apple.com>

        Unreviewed build fix for !ENABLE(CONTEXT_MENUS).

        I forgot to add guards to handleContextMenuEvent().

        * replay/UserInputBridge.cpp:
        * replay/UserInputBridge.h:

2014-02-26  Dean Jackson  <dino@apple.com>

        [WebGL] Only skip context error retrieval if a pending context
        https://bugs.webkit.org/show_bug.cgi?id=129397

        Reviewed by Tim Horton.

        A lost context should still ask the GC3D what the error is. Only
        a pending context should return early.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getError):

2014-02-26  Brian Burg  <bburg@apple.com>

        Web Replay: route through UserInputBridge when delivering user inputs to WebCore
        https://bugs.webkit.org/show_bug.cgi?id=128150

        Reviewed by Timothy Hatcher.

        Add an UserInputBridge instance to each Page. WebKit2 routes a page's user inputs through
        the WebCore page's user input bridge so that the inputs can be selectively captured, filtered,
        and replayed using instrumentation inside the UserInputBridge.

        For now, the routing methods of UserInputBridge have no replay-specific code paths, and just
        put the input delivery code inside WebCore rather than its external clients. Replay-specific
        code paths will be added once https://bugs.webkit.org/show_bug.cgi?id=128782 is fixed. However,
        once complete the code will work as follows:

        - When neither capturing or replaying, behavior is unchanged.

        - When capturing user inputs, each external input is saved into a replay log as it crosses
        the bridge from outside WebCore.

        - When replaying, the bridge closes and user inputs from WebKit2 are not accepted. Instead,
        the saved inputs from the replay log are re-dispatched as if they had crossed the bridge.

        * CMakeLists.txt:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * WebCore.exp.in: Add symbols for input routing methods.
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * page/Page.cpp:
        (WebCore::Page::Page): Initialize the owned UserInputBridge in the Page constructor.
        * page/Page.h:
        (WebCore::Page::inputBridge): Added a by-reference getter.
        * replay/UserInputBridge.cpp: Added.
        (WebCore::UserInputBridge::UserInputBridge):
        (WebCore::UserInputBridge::~UserInputBridge):
        (WebCore::UserInputBridge::handleContextMenuEvent):
        (WebCore::UserInputBridge::handleMousePressEvent):
        (WebCore::UserInputBridge::handleMouseReleaseEvent):
        (WebCore::UserInputBridge::handleMouseMoveEvent):
        (WebCore::UserInputBridge::handleMouseMoveOnScrollbarEvent):
        (WebCore::UserInputBridge::handleKeyEvent):
        (WebCore::UserInputBridge::handleAccessKeyEvent):
        (WebCore::UserInputBridge::handleWheelEvent):
        (WebCore::UserInputBridge::focusSetActive):
        (WebCore::UserInputBridge::focusSetFocused):
        (WebCore::UserInputBridge::scrollRecursively):
        (WebCore::UserInputBridge::logicalScrollRecursively):
        (WebCore::UserInputBridge::loadRequest):
        (WebCore::UserInputBridge::reloadFrame):
        (WebCore::UserInputBridge::stopLoadingFrame):
        (WebCore::UserInputBridge::tryClosePage):
        * replay/UserInputBridge.h: Added.

2014-02-26  Dean Jackson  <dino@apple.com>

        [WebGL] Protect more WebGL entry points for pending contexts
        https://bugs.webkit.org/show_bug.cgi?id=129386

        Reviewed by Tim Horton.

        There are entry points into a WebGLRenderingContext that don't
        come from the web-exposed API directly, such as drawImage with
        the WebGL canvas. Protect these by returning early if we're
        a pending context.

        Also a bunch of drive-by 0 -> nullptr changes.

        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::markLayerComposited):
        (WebCore::WebGLRenderingContext::paintRenderingResultsToCanvas):
        (WebCore::WebGLRenderingContext::paintRenderingResultsToImageData):
        (WebCore::WebGLRenderingContext::reshape):
        (WebCore::WebGLRenderingContext::createBuffer):
        (WebCore::WebGLRenderingContext::createFramebuffer):
        (WebCore::WebGLRenderingContext::createTexture):
        (WebCore::WebGLRenderingContext::createProgram):
        (WebCore::WebGLRenderingContext::createRenderbuffer):
        (WebCore::WebGLRenderingContext::createShader):
        (WebCore::WebGLRenderingContext::getActiveAttrib):
        (WebCore::WebGLRenderingContext::getActiveUniform):
        (WebCore::WebGLRenderingContext::getContextAttributes):
        (WebCore::WebGLRenderingContext::getError):
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getShaderPrecisionFormat):
        (WebCore::WebGLRenderingContext::getUniformLocation):
        (WebCore::WebGLRenderingContext::drawImageIntoBuffer):
        (WebCore::WebGLRenderingContext::videoFrameToImage):
        (WebCore::WebGLRenderingContext::validateBufferDataParameters):
        (WebCore::WebGLRenderingContext::LRUImageBufferCache::imageBuffer):

2014-02-26  Bem Jones-Bey  <bjonesbe@adobe.com>

        [CSS Shapes] inset and inset-rectangle trigger assert with replaced element and large percentage dimension
        https://bugs.webkit.org/show_bug.cgi?id=129060

        Reviewed by Simon Fraser.

        A bounds check was omitted when computing the width and height for inset
        rectangles, making it possible for the width or height to end up being
        negative. This patch adds in that check for both. It seems that only
        replaced elements like iframe and img trigger this problem.

        Tests: fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-negative-width-crash.html
               fast/shapes/shape-outside-floats/shape-outside-floats-img-inset-rectangle-negative-width-crash.html

        * rendering/shapes/Shape.cpp:
        (WebCore::Shape::createShape):

2014-02-26  Myles C. Maxfield  <mmaxfield@apple.com>

        Underlines are too thick when zoomed in
        https://bugs.webkit.org/show_bug.cgi?id=129352

        Reviewed by Dean Jackson.

        The input to the underline drawing code is in user-space, not device-space.
        The underlines were getting scaled twice, once in InlineTextBox and the other
        in GraphicsContext.

        Test: fast/css3-text/css3-text-decoration/text-decoration-scaled.html

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintDecoration):

2014-02-26  Andreas Kling  <akling@apple.com>

        Remove unused InspectorCounters.
        <https://webkit.org/b/129367>

        The InspectorCounters code was only used to implement two layout test
        APIs (window.internals.numberOfLive{Nodes,Documents}) yet it had hooks
        in crazy places like Node construction and destruction.

        Rewrote the internals APIs to iterate over all live Documents instead,
        totaling up their referencing Node count. Added a process-global
        Document::allDocuments() HashSet to make this whole thing possible.

        Reviewed by Sam Weinig.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.exp.in:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSEventListener.cpp:
        * dom/Document.cpp:
        (WebCore::Document::allDocuments):
        (WebCore::Document::Document):
        (WebCore::Document::~Document):
        * dom/Document.h:
        (WebCore::Node::Node):
        * dom/Node.cpp:
        (WebCore::Node::~Node):
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorCounters.cpp: Removed.
        * inspector/InspectorCounters.h: Removed.
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::start):
        (WebCore::InspectorTimelineAgent::innerAddRecordToTimeline):
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        * inspector/InspectorTimelineAgent.h:
        * inspector/protocol/Timeline.json:
        * platform/ThreadGlobalData.cpp:
        * testing/Internals.cpp:
        (WebCore::Internals::numberOfLiveNodes):
        (WebCore::Internals::numberOfLiveDocuments):
        * testing/Internals.h:
        * testing/Internals.idl:

2014-02-26  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: Remove console.profiles from window.console API
        https://bugs.webkit.org/show_bug.cgi?id=116883

        Reviewed by Timothy Hatcher.

        console.profiles has been removed or never implemented by other
        browsers. We should remove it as well. However, since tests
        rely on it, keep it as window.internals.consoleProfiles.

        * WebCore.exp.in:
        * page/Console.idl:
        * testing/Internals.cpp:
        (WebCore::Internals::consoleProfiles):
        * testing/Internals.h:
        * testing/Internals.idl:

2014-02-26  Martin Hock  <mhock@apple.com>

        Create SessionID value-style class for session IDs.
        https://bugs.webkit.org/show_bug.cgi?id=129141

        Reviewed by Sam Weinig.

        * GNUmakefile.list.am:
        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * page/Page.cpp: Add SessionID member.
        (WebCore::Page::Page):
        (WebCore::Page::sessionID): Retrieve sessionID or use settings if not set.
        * page/Page.h:
        (WebCore::Page::isSessionIDSet):
        (WebCore::Page::setSessionID):
        * page/SessionID.h: Session ID class consisting solely of its uint64_t session ID.
        (WebCore::SessionID::SessionID):
        (WebCore::SessionID::isValid): Not empty.
        (WebCore::SessionID::isEphemeral):
        (WebCore::SessionID::sessionID):
        (WebCore::SessionID::operator==): Value-based equality.
        (WebCore::SessionID::operator!=):
        (WebCore::SessionID::emptySessionID): Zero value also used for HashTraits emptyValue.
        (WebCore::SessionID::defaultSessionID):
        (WebCore::SessionID::legacyPrivateSessionID):
        * page/SessionIDHash.h:
        (WTF::SessionIDHash::hash): Just the casted session ID (low order bytes)
        (WTF::SessionIDHash::equal):
        (WTF::HashTraits<WebCore::SessionID>::emptyValue): Equal to emptySessionID.
        (WTF::HashTraits<WebCore::SessionID>::constructDeletedValue): -1 value.
        (WTF::HashTraits<WebCore::SessionID>::isDeletedValue):

2014-02-26  Eric Carlson  <eric.carlson@apple.com>

        Fix builds that don't define IMAGE_CONTROLS.

        * page/ContextMenuContext.cpp:
        (WebCore::ContextMenuContext::ContextMenuContext):

2014-02-26  Eric Carlson  <eric.carlson@apple.com>

        Build fix for OS X after r164720.

        * page/ContextMenuContext.cpp:

2014-02-26  Brady Eidson  <beidson@apple.com>

        Pipe experimental image controls menu up to WebKit2
        https://bugs.webkit.org/show_bug.cgi?id=129339

        Reviewed by Simon Fraser.

        Handle events for the image control, starting down the context menu code path if appropriate:
        * html/shadow/mac/ImageControlsRootElementMac.cpp:
        (WebCore::ImageControlsRootElementMac::defaultEventHandler):
        * html/shadow/mac/ImageControlsRootElementMac.h:

        Add a class to hold a HitTestResult and addition info about the current ContextMenu invocation:
        * page/ContextMenuContext.cpp: Added.
        (WebCore::ContextMenuContext::ContextMenuContext):
        * page/ContextMenuContext.h: Added.
        (WebCore::ContextMenuContext::hitTestResult):
        (WebCore::ContextMenuContext::isImageControl):

        Update ContextMenuController to work with ContextMenuContext instead of HitTestResult directly:
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::showContextMenu):
        (WebCore::ContextMenuController::createContextMenu):
        (WebCore::ContextMenuController::contextMenuItemSelected):
        (WebCore::ContextMenuController::populate):
        (WebCore::ContextMenuController::addInspectElementItem):
        (WebCore::ContextMenuController::checkOrEnableIfNeeded):
        (WebCore::ContextMenuController::showImageControlsMenu):
        * page/ContextMenuController.h:
        (WebCore::ContextMenuController::contextMenu):
        (WebCore::ContextMenuController::setContextMenuContext):
        (WebCore::ContextMenuController::context):
        (WebCore::ContextMenuController::hitTestResult):

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.xcodeproj/project.pbxproj:

2014-02-26  Zan Dobersek  <zdobersek@igalia.com>

        REGRESSION(r162947): Document::topDocument() returns an incorrect reference for cached Documents
        https://bugs.webkit.org/show_bug.cgi?id=128175

        Reviewed by Antti Koivisto.

        * dom/Document.cpp:
        (WebCore::Document::topDocument): Fall back to pre-r162947 way of determining the top document
        when the Document is in page cache or is in the middle of having its render tree destroyed.
        In the first case, the determined top document is actually the document currently loaded in the
        Frame to which the cached document is still connected, which is obviously not desired. In the
        second case the top document is similarly incorrectly deduced, leading to non-deletion of the
        proper top document's AXObjectCache. Because of this AccessibilityRenderObjects are not detached
        which results in assertions in RenderObject destructor where the objects are found to be still
        flagged as in use by the AX cache.

2014-02-26  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Remove unused method RenderFlowThread::updateLayerToRegionMappings()
        https://bugs.webkit.org/show_bug.cgi?id=129368

        Reviewed by Andrei Bucur.

        Remove unused code, no new tests.

        * rendering/RenderFlowThread.h:

2014-02-26  Xabier Rodriguez Calvar  <calvaris@igalia.com>

        [GTK] Regression when showing the captions menu
        https://bugs.webkit.org/show_bug.cgi?id=129106

        Reviewed by Martin Robinson.

        In some cases, when clicking the captions button the menu was not
        shown.

        Updated test: media/video-controls-captions-trackmenu.html

        * Modules/mediacontrols/mediaControlsGtk.js:
        (ControllerGtk.prototype.buildCaptionMenu):
        (ControllerGtk.prototype.showCaptionMenu): Specify sizes in
        pixels.

2014-02-26  Ryosuke Niwa  <rniwa@webkit.org>

        Avoid unnecessary HTML Collection invalidations for id and name attribute changes
        https://bugs.webkit.org/show_bug.cgi?id=129361

        Reviewed by Benjamin Poulain.

        Before this patch, setting id and name attributes resulted in traversing all the ancestors to invalidate
        HTML collections on those nodes whenever we had more than one HTMLCollection alive.

        Avoid the traversal when HTMLCollections don't have any valid id and name map caches by making each
        HTMLCollection explicitly call collectionCachedIdNameMap and collectionWillClearIdNameMap when it caches
        or clears the id and name map.

        Inspired by https://chromium.googlesource.com/chromium/blink/+/5b06b91b79098f7d42e480f85be32198315d2440

        * dom/Document.cpp:
        (WebCore::Document::registerCollection): Takes a boolean to indicate whether collection has a valid cache
        for the id and name map.
        (WebCore::Document::unregisterCollection): Ditto.
        (WebCore::Document::collectionCachedIdNameMap): Added.
        (WebCore::Document::collectionWillClearIdNameMap): Added.
        * dom/Document.h:

        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::adoptDocument): Call invalidateCache on HTML collections after, not before,
        calling unregisterCollection and registerCollection since collections' owner nodes have already been
        moved to the new document here and invalidateCache uses owner node's document to call
        collectionWillClearIdNameMap. So calling invalidateCache before calling unregister/registerCollection
        would result in collectionWillClearIdNameMap getting called on a wrong document.

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection):
        (WebCore::HTMLCollection::~HTMLCollection):
        (WebCore::HTMLCollection::invalidateCache):
        (WebCore::HTMLCollection::invalidateIdNameCacheMaps): Added the code to uncount itself from the number
        of live node lists and HTML collections that need to be invalidated upon id and name attribute changes.
        (WebCore::HTMLCollection::updateNameCache):

        * html/HTMLCollection.h:
        (WebCore::HTMLCollection::invalidateCache):
        (WebCore::HTMLCollection::hasIdNameCache): Renamed from hasNameCache.
        (WebCore::HTMLCollection::setHasIdNameCache): Renamed from setHasIdNameCache.

        * html/HTMLFormControlsCollection.cpp:
        (WebCore::HTMLFormControlsCollection::updateNameCache):

2014-02-25  Frédéric Wang  <fred.wang@free.fr>

        Add support for minsize/maxsize attributes.
        https://bugs.webkit.org/show_bug.cgi?id=122567

        Reviewed by Chris Fleizach.

        This change implements the minsize/maxsize attributes of the mo element.
        We also switch stretch sizes from int to LayoutUnit to improve accuracy.

        Tests: mathml/presentation/stretchy-minsize-maxsize-dynamic.html
               mathml/presentation/stretchy-minsize-maxsize.html

        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::SetOperatorProperties):
        (WebCore::RenderMathMLOperator::stretchTo):
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::layout):

2014-02-25  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Small clean-up of flow threads accelerated compositing code
        https://bugs.webkit.org/show_bug.cgi?id=129312

        Reviewed by Andrei Bucur.

        Some clean-up for the code used for regions in accelerated compositing functionality:
        1. Rename updateRenderFlowThreadLayersIfNeeded -> updateFlowThreadsLayerToRegionMappingsIfNeeded
        as the function updates the mapping between the flow threads layers and their corresponding regions
        2. Remove RenderLayerCompositor::updateRenderFlowThreadLayersIfNeeded and move the code in place
        at call site since the function body does not require a dedicated function.

        No new functionality, no new tests.

        * rendering/FlowThreadController.cpp:
        (WebCore::FlowThreadController::updateFlowThreadsLayerToRegionMappingsIfNeeded):
        Now that the regions are always layers, we do not need to iterate backwards.
        * rendering/FlowThreadController.h:
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateCompositingLayers):
        * rendering/RenderLayerCompositor.h:

2014-02-25  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Ensure consistent border painting width.
        https://bugs.webkit.org/show_bug.cgi?id=129259

        Reviewed by Simon Fraser.

        Border edges are painted as (semi)independent rectangles. When snapping an edge rectangle
        to device pixels, its painted dimensions depend on its size and its fractional position.
        Specific combination of position and border width can result in painting edges sized differently.
        Using device snapped border width to calculate inner/outer rectangles helps to maintain
        uniform border width.

        Currently not testable.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::BorderEdge::BorderEdge):
        (WebCore::BorderEdge::shouldRender):
        (WebCore::BorderEdge::presentButInvisible):
        (WebCore::BorderEdge::widthForPainting):
        (WebCore::BorderEdge::getDoubleBorderStripeWidths):
        (WebCore::RenderBoxModelObject::paintOneBorderSide):
        (WebCore::calculateSideRect):
        (WebCore::RenderBoxModelObject::paintBorderSides):
        (WebCore::RenderBoxModelObject::paintBorder):
        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
        (WebCore::calculateSideRectIncludingInner):

2014-02-25  Zalan Bujtas  <zalan@apple.com>

        Subpixel layout: Remove explicit static_cast<LayoutUnit> conversions.
        https://bugs.webkit.org/show_bug.cgi?id=129359

        Reviewed by Simon Fraser.

        No testable change in behavior.

        * css/LengthFunctions.cpp:
        (WebCore::minimumValueForLength):
        * page/FrameView.cpp:
        (WebCore::FrameView::forceLayoutForPagination):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::paintFillLayer):
        * rendering/InlineFlowBox.h:
        (WebCore::InlineFlowBox::logicalLeftVisualOverflow):
        (WebCore::InlineFlowBox::logicalRightVisualOverflow):
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::isSelected):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::computeColumnCountAndWidth):
        (WebCore::getBPMWidth):
        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::adjustForBorderFit):
        * rendering/RenderDeprecatedFlexibleBox.cpp:
        (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
        * rendering/RenderFieldset.cpp:
        (WebCore::RenderFieldset::paintBoxDecorations):
        * rendering/RenderTable.h:
        (WebCore::RenderTable::borderSpacingInRowDirection):
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::preferredContentLogicalWidth):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::preferredContentLogicalWidth):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::beforeAnnotationsAdjustment):
        (WebCore::RootInlineBox::ascentAndDescentForBox):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::resolveLengthAttributeForSVG):

2014-02-25  Anders Carlsson  <andersca@apple.com>

        Build fixes.

        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:

2014-02-25  Benjamin Poulain  <bpoulain@apple.com>

        Build fix for OS X after r164690

        * WebCore.exp.in:

2014-02-25  Anders Carlsson  <andersca@apple.com>

        Rename WebCore::VisitedLinkProvider to WebCore::VisitedLinkStore
        https://bugs.webkit.org/show_bug.cgi?id=129357

        Reviewed by Sam Weinig.

        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/VisitedLinkState.cpp:
        (WebCore::VisitedLinkState::determineLinkStateSlowCase):
        * loader/HistoryController.cpp:
        (WebCore::addVisitedLink):
        * page/DefaultVisitedLinkStore.cpp: Renamed from Source/WebCore/page/DefaultVisitedLinkProvider.cpp.
        (WebCore::DefaultVisitedLinkStore::create):
        (WebCore::DefaultVisitedLinkStore::DefaultVisitedLinkStore):
        (WebCore::DefaultVisitedLinkStore::~DefaultVisitedLinkStore):
        (WebCore::DefaultVisitedLinkStore::isLinkVisited):
        (WebCore::DefaultVisitedLinkStore::addVisitedLink):
        * page/DefaultVisitedLinkStore.h: Renamed from Source/WebCore/page/DefaultVisitedLinkProvider.h.
        * page/Page.cpp:
        (WebCore::Page::Page):
        (WebCore::Page::visitedLinkStore):
        * page/Page.h:
        * page/PageGroup.cpp:
        (WebCore::PageGroup::visitedLinkStore):
        * page/PageGroup.h:
        * page/VisitedLinkStore.cpp: Renamed from Source/WebCore/page/VisitedLinkProvider.cpp.
        (WebCore::VisitedLinkStore::VisitedLinkStore):
        (WebCore::VisitedLinkStore::~VisitedLinkStore):
        * page/VisitedLinkStore.h: Renamed from Source/WebCore/page/VisitedLinkProvider.h.

2014-02-25  Enrica Casucci  <enrica@apple.com>

        [WebKit2] Form controls handling.
        https://bugs.webkit.org/show_bug.cgi?id=129344
        <rdar://problem/16053643>

        Reviewed by Simon Fraser and Joseph Pecoraro.

        Adding some exports.
        
        * WebCore.exp.in:

2014-02-25  Samuel White  <samuel_white@apple.com>

        Add accessibility search predicate support for AXOutlines
        https://bugs.webkit.org/show_bug.cgi?id=123748

        Reviewed by Chris Fleizach.

        Added new AXOutlineSearchKey to support finding elements with aria role=tree.

        No new tests, updated existing search-predicate.html test to cover AXOutlineSearchKey.

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::isAccessibilityObjectSearchMatchAtIndex):
        * accessibility/AccessibilityObject.h:
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (createAccessibilitySearchKeyMap):

2014-02-25  Mark Lam  <mark.lam@apple.com>

        Need to initialize VM stack data even when the VM is on an exclusive thread.
        <https://webkit.org/b/129265>

        Not reviewed.

        No new tests.

        Relanding r164627 now that <https://webkit.org/b/129341> is fixed.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException):
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::commonVM):

2014-02-25  Mark Lam  <mark.lam@apple.com>

        JSDOMPromise methods should acquire VM lock before calling into JS.
        <https://webkit.org/b/129341>

        Reviewed by Geoffrey Garen.

        No new tests.

        * bindings/js/JSDOMPromise.h:
        (WebCore::DeferredWrapper::resolve):
        (WebCore::DeferredWrapper::reject):
        (WebCore::DeferredWrapper::resolve<String>):
        (WebCore::DeferredWrapper::resolve<bool>):
        (WebCore::char>>):
        (WebCore::DeferredWrapper::reject<String>):

2014-02-25  Anders Carlsson  <andersca@apple.com>

        Simplify visited link style invalidation
        https://bugs.webkit.org/show_bug.cgi?id=129340

        Reviewed by Dan Bernstein.

        Get rid of the static Page::allVisitedStateChanged and Page::visitedStateChanged
        member functions and add functions to invalidate all styles on a single page or the style
        for a single link hash on a single page.

        * WebCore.exp.in:
        * page/Page.cpp:
        (WebCore::Page::invalidateStylesForAllLinks):
        (WebCore::Page::invalidateStylesForLink):
        * page/Page.h:
        * page/PageGroup.cpp:
        (WebCore::PageGroup::addVisitedLink):
        (WebCore::PageGroup::removeVisitedLink):
        (WebCore::PageGroup::removeVisitedLinks):

2014-02-25  Andreas Kling  <akling@apple.com>

        Remove unused ThreadSpecificInspectorCounters.
        <https://webkit.org/b/129337>

        We were keeping count of all the JS event listeners in every thread
        to support an old Chromium feature that's no longer relevant.

        Removing this gets rid of expensive thread-local storage lookups.

        Reviewed by Anders Carlsson.

        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::JSEventListener):
        (WebCore::JSEventListener::~JSEventListener):
        * inspector/InspectorCounters.cpp:
        * inspector/InspectorCounters.h:
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::setDOMCounters):
        * inspector/protocol/Timeline.json:
        * platform/ThreadGlobalData.cpp:
        (WebCore::ThreadGlobalData::ThreadGlobalData):
        (WebCore::ThreadGlobalData::destroy):
        * platform/ThreadGlobalData.h:

2014-02-25  Laszlo Vidacs  <lvidacs.u-szeged@partner.samsung.com>

        display:table with padding and/or borders in border-box calculates height incorrectly
        https://bugs.webkit.org/show_bug.cgi?id=126576

        Reviewed by David Hyatt.

        Based on blink issue https://codereview.chromium.org/25206002/

        Tests: fast/box-sizing/css-table-collapse.html
               fast/box-sizing/css-table-no-collapse.html
               fast/box-sizing/table-collapse.html
               fast/box-sizing/table-no-collapse.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::computePositionedLogicalHeightUsing):

2014-02-25  Anders Carlsson  <andersca@apple.com>

        Get rid of VisitedLinkStrategy
        https://bugs.webkit.org/show_bug.cgi?id=129324

        Reviewed by Dan Bernstein.

        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/PlatformStrategies.h:
        (WebCore::PlatformStrategies::PlatformStrategies):
        * platform/VisitedLinkStrategy.h: Removed.

2014-02-25  Alexey Proskuryakov  <ap@apple.com>

        Rolling out http://trac.webkit.org/changeset/164611, because it broke
        WebKit2.PrivateBrowsingPushStateNoHistoryCallback API test

        The change was for:

        https://bugs.webkit.org/show_bug.cgi?id=129141
        Create SessionID class

2014-02-25  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r164627.
        http://trac.webkit.org/changeset/164627
        https://bugs.webkit.org/show_bug.cgi?id=129325

        Broke SubtleCrypto tests (Requested by ap on #webkit).

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException):
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::commonVM):

2014-02-25  Anders Carlsson  <andersca@apple.com>

        DefaultVisitedLinkProvider can just call into the page group directly
        https://bugs.webkit.org/show_bug.cgi?id=129320

        Reviewed by Andreas Kling.

        * page/DefaultVisitedLinkProvider.cpp:
        (WebCore::DefaultVisitedLinkProvider::isLinkVisited):
        (WebCore::DefaultVisitedLinkProvider::addVisitedLink):

2014-02-25  Commit Queue  <commit-queue@webkit.org>

        Unreviewed, rolling out r164638.
        http://trac.webkit.org/changeset/164638
        https://bugs.webkit.org/show_bug.cgi?id=129321

        Broke Windows build. (Requested by bfulgham on #webkit).

        * dom/ContainerNode.h:
        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
        (WebCore::ChildNodesLazySnapshot::hasSnapshot):
        * dom/Element.cpp:
        (WebCore::ensureAttrNodeListForElement):
        (WebCore::Element::attributes):
        * dom/ElementIteratorAssertions.h:
        (WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::create):
        (WebCore::ElementRareData::setAttributeMap):
        * dom/MutationObserverRegistration.cpp:
        (WebCore::MutationObserverRegistration::create):
        (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
        (WebCore::MutationObserverRegistration::clearTransientRegistrations):
        (WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
        * dom/MutationObserverRegistration.h:
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::create):
        (WebCore::NamedNodeMap::NamedNodeMap):
        * dom/Node.cpp:
        (WebCore::Node::ensureRareData):
        (WebCore::Node::didMoveToNewDocument):
        (WebCore::Node::ensureEventTargetData):
        (WebCore::Node::mutationObserverRegistry):
        (WebCore::Node::registerMutationObserver):
        (WebCore::Node::unregisterMutationObserver):
        (WebCore::Node::notifyMutationObserversNodeWillDetach):
        * dom/Node.h:
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::create):
        (WebCore::NodeListsNodeData::NodeListsNodeData):
        (WebCore::NodeMutationObserverData::create):
        (WebCore::NodeMutationObserverData::NodeMutationObserverData):
        (WebCore::NodeRareData::create):
        (WebCore::NodeRareData::clearNodeLists):
        (WebCore::NodeRareData::ensureNodeLists):
        (WebCore::NodeRareData::ensureMutationObserverData):
        (WebCore::NodeRareData::NodeRareData):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::rebuildPresentationAttributeStyle):

2014-02-25  Eric Carlson  <eric.carlson@apple.com>

        [iOS] Show status image when playing video to external device
        https://bugs.webkit.org/show_bug.cgi?id=129277

        Reviewed by Jer Noble.

        * Modules/mediacontrols/mediaControlsApple.js:
        (Controller.prototype.handleEvent): Restructure the code so it is possible to handle events
            that target the video element which aren't in the HandledVideoEvents array.

        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS.prototype.currentPlaybackTargetIsWireless): webkitCurrentPlaybackTargetIsWireless
            is an attribute, not a function.
        (ControllerIOS.prototype.updateWirelessPlaybackStatus): Fix style.
        (ControllerIOS.prototype.updateWirelessTargetAvailable): Ditto.
        (ControllerIOS.prototype.updateProgress): Ditto.
        (ControllerIOS.prototype.handleWrapperTouchStart): Show the controls if the wireless status
            display is touched.
        (ControllerIOS.prototype.handleFullscreenButtonClicked): Fix style
        (ControllerIOS.prototype.handleWirelessPlaybackChange): Ditto.
        (ControllerIOS.prototype.handleWirelessTargetAvailableChange):
        (ControllerIOS.prototype.handleWirelessPickerButtonClicked): Ditto. Stop even propagation.

        Move "playback target" logic into HTMLMediaSession.
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::~HTMLMediaElement): Call media session.
        (WebCore::HTMLMediaElement::loadResource): Tell media session to apply media player
            restrictions now that it has a url.
        (WebCore::HTMLMediaElement::invalidateCachedTime): Only log when cached time is not 
            already invalie.
        (WebCore::HTMLMediaElement::webkitShowPlaybackTargetPicker): Call media session.
        (WebCore::HTMLMediaElement::webkitCurrentPlaybackTargetIsWireless): Ditto.
        (WebCore::HTMLMediaElement::mediaPlayerCurrentPlaybackTargetIsWirelessChanged): Ditto.
        (WebCore::HTMLMediaElement::addEventListener): Ditto.
        (WebCore::HTMLMediaElement::removeEventListen): Ditto.
        (WebCore::HTMLMediaElement::enqueuePlaybackTargetAvailabilityChangedEvent): Ditto.
        (WebCore::HTMLMediaElement::createMediaPlayer): Ditto.

        * html/HTMLMediaSession.cpp:
        (WebCore::restrictionName): Log new WirelessVideoPlaybackDisabled restriction.
        (WebCore::HTMLMediaSession::showingPlaybackTargetPickerPermitted): Return false if there
            is no page, or if wireless playback is disabled.
        (WebCore::HTMLMediaSession::currentPlaybackTargetIsWireless): New, logic from HTMLMediaElement.
        (WebCore::HTMLMediaSession::showPlaybackTargetPicker): Ditto.
        (WebCore::HTMLMediaSession::hasWirelessPlaybackTargets): Ditto.
        (WebCore::HTMLMediaSession::wirelessVideoPlaybackDisabled): Ditto.
        (WebCore::HTMLMediaSession::setWirelessVideoPlaybackDisabled): Ditto.
        (WebCore::HTMLMediaSession::setHasPlaybackTargetAvailabilityListeners): Ditto.
        (WebCore::HTMLMediaSession::applyMediaPlayerRestrictions): New, apply media player specific
            restriction.
        * html/HTMLMediaSession.h:

        Move "playback target" logic into HTMLMediaSession.
        * html/HTMLVideoElement.cpp:
        (WebCore::HTMLVideoElement::parseAttribute): Call media session.
        (WebCore::HTMLVideoElement::webkitWirelessVideoPlaybackDisabled): Call media session.

        * platform/audio/MediaSessionManager.h:
        (WebCore::MediaSessionManager::showPlaybackTargetPicker): New method, does nothing in base class.

        * platform/audio/ios/MediaSessionManagerIOS.h:
        * platform/audio/ios/MediaSessionManagerIOS.mm:
        (WebCore::MediaSessionManageriOS::showPlaybackTargetPicker): Add non-functional stub.

        Implement wireless playback control and status API.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::dispatchNotification): Dispatch TargetIsWirelessChanged.
        (WebCore::MediaPlayerPrivateAVFoundation::playbackTargetIsWirelessChanged): Pass through to
            media element.
        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::MediaPlayerPrivateAVFoundationObjC): Initialize
            m_allowsWirelessVideoPlayback.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::cancelLoad): Remove "externalPlaybackActive" observer.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::destroyVideoLayer): Fix broken logging.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVPlayer): Add "externalPlaybackActive" observer,
            set initial wireless playback.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createPixelBuffer):  Fix broken logging.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::languageOfPrimaryAudioTrack): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::isCurrentPlaybackTargetWireless): New.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::wirelessVideoPlaybackDisabled): New.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::setWirelessVideoPlaybackDisabled): New.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::playbackTargetIsWirelessDidChange): New.
        (-[WebCoreAVFMovieObserver observeValueForKeyPath:ofObject:change:context:]): Deal with 
            externalPlaybackActive.

2014-02-24  Brent Fulgham  <bfulgham@apple.com>

        [Win] Gracefully recover from missing 'naturalSize' parameter for media
        https://bugs.webkit.org/show_bug.cgi?id=129278

        Reviewed by Eric Carlson.

        * platform/graphics/avfoundation/cf/AVFoundationCFSoftLinking.h: Add declaration for
        missing function call.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::MediaPlayerPrivateAVFoundationCF::assetStatus): Don't treat missing 'naturalSize'
        as a fatal error.
        (WebCore::MediaPlayerPrivateAVFoundationCF::tracksChanged): Handle case of asset track
        not being available yet. 
        (WebCore::MediaPlayerPrivateAVFoundationCF::sizeChanged): If the 'naturalSize' is empty,
        use the Player Item's 'presentationSize' instead.
        (WebCore::AVFWrapper::processNotification): Add missing handler for duration changed.

2014-02-25  Sergio Villar Senin  <svillar@igalia.com>

        [CSS Grid Layout] Add ENABLE flag
        https://bugs.webkit.org/show_bug.cgi?id=129153

        Reviewed by Simon Fraser.

        Added ENABLE_CSS_GRID_LAYOUT feature flag.

        * Configurations/FeatureDefines.xcconfig:
        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::isLayoutDependent):
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSGridTemplateAreasValue.cpp:
        * css/CSSGridTemplateAreasValue.h:
        * css/CSSParser.cpp:
        (WebCore::CSSParserContext::CSSParserContext):
        (WebCore::operator==):
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::isKeywordPropertyID):
        (WebCore::CSSParser::parseValue):
        * css/CSSParser.h:
        * css/CSSParserMode.h:
        * css/CSSPrimitiveValueMappings.h:
        (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
        * css/CSSPropertyNames.in:
        * css/CSSValue.cpp:
        (WebCore::CSSValue::equals):
        (WebCore::CSSValue::cssText):
        (WebCore::CSSValue::destroy):
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):
        * css/StyleProperties.cpp:
        (WebCore::StyleProperties::getPropertyValue):
        * css/StylePropertyShorthand.cpp:
        (WebCore::shorthandForProperty):
        (WebCore::matchingShorthandsForLonghand):
        * css/StyleResolver.cpp:
        (WebCore::equivalentBlockDisplay):
        (WebCore::StyleResolver::adjustRenderStyle):
        (WebCore::StyleResolver::applyProperty):
        * css/StyleResolver.h:
        * dom/Document.cpp:
        * dom/Document.h:
        * rendering/RenderElement.cpp:
        (WebCore::RenderElement::createFor):
        * rendering/RenderGrid.cpp:
        * rendering/RenderGrid.h:
        * rendering/style/GridCoordinate.h:
        * rendering/style/GridLength.h:
        * rendering/style/GridPosition.h:
        * rendering/style/GridTrackSize.h:
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::changeRequiresLayout):
        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyleConstants.h:
        * rendering/style/StyleAllInOne.cpp:
        * rendering/style/StyleGridData.cpp:
        * rendering/style/StyleGridData.h:
        * rendering/style/StyleGridItemData.cpp:
        * rendering/style/StyleGridItemData.h:
        * rendering/style/StyleRareNonInheritedData.cpp:
        (WebCore::StyleRareNonInheritedData::StyleRareNonInheritedData):
        (WebCore::StyleRareNonInheritedData::operator==):
        * rendering/style/StyleRareNonInheritedData.h:

2014-02-25  Jer Noble  <jer.noble@apple.com>

        [EME][Mac] Fix a few issues in CDMSessionMediaSourceAVFObjC.
        https://bugs.webkit.org/show_bug.cgi?id=129310

        Reviewed by Eric Carlson.

        Only send a 'keyerror' event if an actual error code was returned, not just
        when no key was added:
        * Modules/encryptedmedia/MediaKeySession.cpp:
        (WebCore::MediaKeySession::addKeyTimerFired):

        The 'length' parameter to a typed ArrayBufferView is the number of entries
        in the array, not the byte length:
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest):

        The return value of streamingContentKeyRequestDataForApp:contentIdentifier:trackId:options:error
        is autoreleased; do not wrap it in an adoptNS:
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::update):

2014-02-25  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [MediaStream] Adding mock implementation of UserMediaClient
        https://bugs.webkit.org/show_bug.cgi?id=129274

        Reviewed by Eric Carlson.

        * platform/mock/UserMediaClientMock.h: Added.
        (WebCore::UserMediaClientRequestNotifier::UserMediaClientRequestNotifier):
        * testing/Internals.cpp:
        (WebCore::Internals::Internals):

2014-02-25  Ryosuke Niwa  <rniwa@webkit.org>

        Tighten bitfields in live NodeLists and HTMLCollections
        https://bugs.webkit.org/show_bug.cgi?id=129300

        Reviewed by Geoffrey Garen.

        Reduce the number of bits used for m_rootType and m_type in LiveNodeList.
        Also use enum class for LiveNodeList types. We keep "Type" suffix not to
        confuse old-ish compilers.

        * dom/ClassNodeList.cpp:
        (WebCore::ClassNodeList::ClassNodeList):
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::getElementsByTagName):
        (WebCore::ContainerNode::getElementsByName):
        (WebCore::ContainerNode::getElementsByClassName):
        (WebCore::ContainerNode::radioNodeList):
        * dom/LiveNodeList.cpp:
        (WebCore::LiveNodeList::collectionFirst):
        (WebCore::LiveNodeList::collectionTraverseForward):
        * dom/LiveNodeList.h:
        (WebCore::LiveNodeList::LiveNodeList):
        * dom/NameNodeList.cpp:
        (WebCore::NameNodeList::NameNodeList):
        * dom/NameNodeList.h:
        (WebCore::NameNodeList::create):
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::namedNodeListKey):
        * dom/TagNodeList.cpp:
        (WebCore::HTMLTagNodeList::HTMLTagNodeList):
        * dom/TagNodeList.h:
        (WebCore::TagNodeList::create):
        (WebCore::HTMLTagNodeList::create):
        * html/HTMLCollection.h:
        * html/LabelableElement.cpp:
        (WebCore::LabelableElement::labels):
        * html/LabelsNodeList.cpp:
        (WebCore::LabelsNodeList::LabelsNodeList):
        * html/LabelsNodeList.h:
        * html/RadioNodeList.cpp:
        (WebCore::RadioNodeList::RadioNodeList):
        * html/RadioNodeList.h:
        (WebCore::RadioNodeList::create):

2014-02-24  Anders Carlsson  <andersca@apple.com>

        Make it possible to set the visited link provider on a per page basis
        https://bugs.webkit.org/show_bug.cgi?id=129288

        Reviewed by Andreas Kling.

        * WebCore.exp.in:
        Export symbols needed by WebKit2.

        * WebCore.xcodeproj/project.pbxproj:
        Make VisitedLinkProvider a private header.

        * page/Page.cpp:
        (WebCore::Page::Page):
        Take the visited link provider from the PageClients object.

        (WebCore::Page::visitedLinkProvider):
        If the page has a visited link provider set, return it.

        * page/Page.h:
        Add VisitedLinkProvider to Page and PageClients.

2014-02-25  Morten Stenshorne  <mstensho@opera.com>

        [New Multicolumn] -webkit-column-break-inside:avoid doesn't work
        https://bugs.webkit.org/show_bug.cgi?id=129299

        Reviewed by Andrei Bucur.

        adjustForUnsplittableChild() simply forgot to check whether we
        were inside flow thread based multicol.

        Test: fast/multicol/newmulticol/avoid-column-break-inside.html

        * rendering/RenderBlockFlow.cpp:
        (WebCore::RenderBlockFlow::adjustForUnsplittableChild):

2014-02-25  Mihnea Ovidenie  <mihnea@adobe.com>

        [CSSRegions] Remove unused function RenderFlowThread::regionForCompositedLayer
        https://bugs.webkit.org/show_bug.cgi?id=129303

        Reviewed by Andrei Bucur.

        Cleanup, no funtionality change, no new tests.

        * rendering/RenderFlowThread.h:

2014-02-25  Mihai Tica  <mitica@adobe.com>

        [CSS Blending] -webkit-mix-blend-mode should force transform-style: flat.
        https://bugs.webkit.org/show_bug.cgi?id=126158

        Reviewed by Mihnea Ovidenie.

        As stated in the http://www.w3.org/TR/css3-transforms/#propdef-transform-style, an element with blending
        should force transform-style: flat.

        Test: css3/compositing/blend-mode-transform-style.html

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle): If blending is detected, set transform-style to flat.

2014-02-25  Zan Dobersek  <zdobersek@igalia.com>

        Move to using std::unique_ptr for Element, Node and related classes
        https://bugs.webkit.org/show_bug.cgi?id=129058

        Reviewed by Anders Carlsson.

        Replace uses of OwnPtr and PassOwnPtr in Element, Node and the related
        classes with std::unique_ptr and move semantics.

        * dom/ContainerNode.h:
        (WebCore::ChildNodesLazySnapshot::takeSnapshot):
        (WebCore::ChildNodesLazySnapshot::hasSnapshot):
        * dom/Element.cpp:
        (WebCore::ensureAttrNodeListForElement):
        (WebCore::Element::attributes):
        * dom/ElementIteratorAssertions.h:
        (WebCore::ElementIteratorAssertions::ElementIteratorAssertions):
        * dom/ElementRareData.h:
        (WebCore::ElementRareData::setAttributeMap):
        * dom/MutationObserverRegistration.cpp:
        (WebCore::MutationObserverRegistration::observedSubtreeNodeWillDetach):
        (WebCore::MutationObserverRegistration::clearTransientRegistrations):
        (WebCore::MutationObserverRegistration::addRegistrationNodesToSet):
        * dom/MutationObserverRegistration.h:
        * dom/NamedNodeMap.h:
        (WebCore::NamedNodeMap::NamedNodeMap):
        * dom/Node.cpp:
        (WebCore::Node::ensureRareData):
        (WebCore::Node::didMoveToNewDocument):
        (WebCore::Node::ensureEventTargetData):
        (WebCore::Node::mutationObserverRegistry):
        (WebCore::Node::registerMutationObserver):
        (WebCore::Node::unregisterMutationObserver):
        (WebCore::Node::notifyMutationObserversNodeWillDetach):
        * dom/Node.h:
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::NodeListsNodeData):
        (WebCore::NodeRareData::NodeRareData):
        (WebCore::NodeRareData::clearNodeLists):
        (WebCore::NodeRareData::ensureNodeLists):
        (WebCore::NodeRareData::ensureMutationObserverData):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::rebuildPresentationAttributeStyle):

2014-02-25  Andreas Kling  <akling@apple.com>

        Prune dead code for Web Inspector memory instrumentation.
        <https://webkit.org/b/129286>

        This was leftover code from Chromium's inspector. It's not used by
        today's WebKit inspector.

        Reviewed by Sam Weinig.

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        * inspector/InspectorController.h:
        * inspector/InspectorMemoryAgent.cpp: Removed.
        * inspector/InspectorMemoryAgent.h: Removed.
        * inspector/InspectorTimelineAgent.cpp:
        (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
        * inspector/InspectorTimelineAgent.h:
        * inspector/WorkerInspectorController.cpp:
        (WebCore::WorkerInspectorController::WorkerInspectorController):
        * inspector/protocol/Memory.json: Removed.

2014-02-24  Chris Fleizach  <cfleizach@apple.com>

        AX: Support abbr, acronym
        https://bugs.webkit.org/show_bug.cgi?id=128860

        Reviewed by Mario Sanchez Prada.

        Expose the data in <abbr>, <acronym> and <th abbr=""> as an 
        alternateTextValue() parameter.

        Test: platform/mac/accessibility/abbr-acronym-tags.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::hasTagName):
        * accessibility/AccessibilityObject.h:
        (WebCore::AccessibilityObject::alternateTextValue):
        (WebCore::AccessibilityObject::supportsAlternateTextValue):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::alternateTextValue):
        (WebCore::AccessibilityRenderObject::supportsAlternateTextValue):
        * accessibility/AccessibilityRenderObject.h:
        * accessibility/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::alternateTextValue):
        (WebCore::AccessibilityTableCell::supportsAlternateTextValue):
        * accessibility/AccessibilityTableCell.h:
        * accessibility/mac/WebAccessibilityObjectWrapperMac.mm:
        (AXAttributeStringSetAlternateTextValue):
        (AXAttributedStringAppendText):
        (-[WebAccessibilityObjectWrapper additionalAccessibilityAttributeNames]):
        (-[WebAccessibilityObjectWrapper accessibilityAttributeValue:]):

2014-02-24  Martin Robinson  <mrobinson@igalia.com>

        [GTK] generate-gtkdoc should not generate documentation for source files for unbuilt source files
        https://bugs.webkit.org/show_bug.cgi?id=128417

        Reviewed by Carlos Garcia Campos.

        * bindings/gobject/GNUmakefile.am: Generate a config file for webkitdom documentation generation.

2014-02-24  Mark Lam  <mark.lam@apple.com>

        Need to initialize VM stack data even when the VM is on an exclusive thread.
        <https://webkit.org/b/129265>

        Reviewed by Geoffrey Garen.

        No new tests.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException):
        - Added an assertion to ensure that we are holding the JSLock.
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::commonVM):
        - Updated to use the new VM::setExclusiveThread().

2014-02-24  Anders Carlsson  <andersca@apple.com>

        Add a DefaultVisitedLinkProvider and route visited link actions through it
        https://bugs.webkit.org/show_bug.cgi?id=129285

        Reviewed by Dan Bernstein.

        DefaultVisitedLinkProvider currently just forwards everything to the visited link strategy,
        but will soon take over the responsibilities of visited link handling from PageGroup.
        
        * CMakeLists.txt:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/VisitedLinkState.cpp:
        (WebCore::VisitedLinkState::determineLinkStateSlowCase):
        * loader/HistoryController.cpp:
        (WebCore::addVisitedLink):
        (WebCore::HistoryController::updateForStandardLoad):
        (WebCore::HistoryController::updateForRedirectWithLockedBackForwardList):
        (WebCore::HistoryController::updateForClientRedirect):
        (WebCore::HistoryController::updateForSameDocumentNavigation):
        (WebCore::HistoryController::pushState):
        (WebCore::HistoryController::replaceState):
        * page/DefaultVisitedLinkProvider.cpp: Copied from Source/WebCore/page/VisitedLinkProvider.h.
        (WebCore::DefaultVisitedLinkProvider::create):
        (WebCore::DefaultVisitedLinkProvider::DefaultVisitedLinkProvider):
        (WebCore::DefaultVisitedLinkProvider::~DefaultVisitedLinkProvider):
        (WebCore::DefaultVisitedLinkProvider::isLinkVisited):
        (WebCore::DefaultVisitedLinkProvider::addVisitedLink):
        * page/DefaultVisitedLinkProvider.h: Copied from Source/WebCore/page/VisitedLinkProvider.h.
        * page/Page.cpp:
        (WebCore::Page::visitedLinkProvider):
        * page/Page.h:
        * page/PageGroup.cpp:
        (WebCore::PageGroup::PageGroup):
        (WebCore::PageGroup::visitedLinkProvider):
        * page/PageGroup.h:
        * page/VisitedLinkProvider.h:

2014-02-24  Jeremy Jones  <jeremyj@apple.com>

        WK2 AVKit fullscreen doesn't display video.
        https://bugs.webkit.org/show_bug.cgi?id=128564

        Reviewed by Simon Fraser.

        * WebCore.exp.in:
        Export WebCore::PlatformCALayer::platformCALayer()

        * platform/ios/WebVideoFullscreenInterface.h:
        * platform/ios/WebVideoFullscreenInterfaceAVKit.h:
        Remove SetVideoLayerID(). 

        * platform/ios/WebVideoFullscreenInterfaceAVKit.mm:
        (WebVideoFullscreenInterfaceAVKit::setVideoLayer):
        Wrap make video layer look like an AVAVPlayerLayer with WebAVPlayerLayer

        * platform/ios/WebVideoFullscreenModelMediaElement.mm:
        (WebVideoFullscreenModelMediaElement::setMediaElement):
        Pass along the videoLayer before borrowing it so the interface will be ready to
        catch the transaction that removes it.

2014-02-24  Samuel White  <samuel_white@apple.com>

        AX: AccessibilityObject::findMatchingObjects should never include 'this' in results.
        https://bugs.webkit.org/show_bug.cgi?id=129243

        Reviewed by Chris Fleizach.

        Fix removes the container object from the search results when searching backwards. This
        makes backwards & forwards search results consistent with each other.

        Test: platform/mac/accessibility/search-predicate-container-not-included.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::findMatchingObjects):

2014-02-24  Samuel White  <samuel_white@apple.com>

        AX: findMatchingObjects backwards start position inconsistent with forwards start position when startObject == nullptr.
        https://bugs.webkit.org/show_bug.cgi?id=129266

        Reviewed by Chris Fleizach.

        When searching forward with no start object, the first thing considered is the first child of
        the container. However, when searching backwards with no start object nothing in the container
        is considered; this basically negates the search. This patch makes backwards searching without
        a start object start from the last child of the container to match forward search expectations.

        Test: platform/mac/accessibility/search-predicate-start-not-specified.html

        * accessibility/AccessibilityObject.cpp:
        (WebCore::AccessibilityObject::findMatchingObjects):

2014-02-24  Andreas Kling  <akling@apple.com>

        Prune dead code for Web Inspector canvas instrumentation.
        <https://webkit.org/b/129269>

        This was leftover code from Chromium's inspector. It's not used by
        today's WebKit inspector.

        Reviewed by Timothy Hatcher.

        * CMakeLists.txt:
        * DerivedSources.make:
        * GNUmakefile.am:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSHTMLCanvasElementCustom.cpp:
        (WebCore::JSHTMLCanvasElement::getContext):
        * inspector/InjectedScriptCanvasModule.cpp: Removed.
        * inspector/InjectedScriptCanvasModule.h: Removed.
        * inspector/InspectorAllInOne.cpp:
        * inspector/InspectorCanvasAgent.cpp: Removed.
        * inspector/InspectorCanvasAgent.h: Removed.
        * inspector/InspectorCanvasInstrumentation.h: Removed.
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::didBeginFrame):
        * inspector/InspectorInstrumentation.cpp:
        (WebCore::InspectorInstrumentation::frameDetachedFromParentImpl):
        (WebCore::InspectorInstrumentation::didCommitLoadImpl):
        * inspector/InspectorInstrumentation.h:
        * inspector/InstrumentingAgents.cpp:
        (WebCore::InstrumentingAgents::InstrumentingAgents):
        (WebCore::InstrumentingAgents::reset):
        * inspector/InstrumentingAgents.h:

2014-02-24  Zoltan Horvath  <zoltan@webkit.org>

        [CSS Shapes] Adjust lineTop position to the next available wrapping location at shape-outsides
        https://bugs.webkit.org/show_bug.cgi?id=128693

        Reviewed by David Hyatt.

        When we don't have space next to the floating container, but we have space inside the floating-container next
        to the defined shape-outside, we should wrap around the shape-outside. This patch fixes the behavior both for
        cases when there is no space to fit at the first line, and for the additional lines cases.

        Test: fast/shapes/shape-outside-floats/shape-outside-floats-linetop-adjustment.html

        * rendering/line/BreakingContextInlineHeaders.h:
        (WebCore::BreakingContext::handleText):
        (WebCore::BreakingContext::commitAndUpdateLineBreakIfNeeded):
        * rendering/line/LineWidth.cpp:
        (WebCore::availableWidthAtOffset):
        (WebCore::LineWidth::updateLineDimension): Added new helper.
        (WebCore::isWholeLineFit): Added new helper.
        (WebCore::LineWidth::wrapNextToShapeOutside): Added new helper.
        (WebCore::LineWidth::fitBelowFloats): Add optional parameter for the function.
        * rendering/line/LineWidth.h:

2014-02-24  Martin Hock  <mhock@apple.com>

        Create SessionID value-style class for session IDs.
        https://bugs.webkit.org/show_bug.cgi?id=129141

        Reviewed by Brady Eidson.

        * GNUmakefile.list.am:
        * WebCore.exp.in:
        * WebCore.xcodeproj/project.pbxproj:
        * page/Page.cpp: Add SessionID member.
        (WebCore::Page::Page):
        (WebCore::Page::sessionID): Retrieve sessionID or use settings if not set.
        * page/Page.h:
        (WebCore::Page::setSessionID):
        * page/SessionID.h: Session ID class consisting solely of its uint64_t session ID.
        (WebCore::SessionID::SessionID):
        (WebCore::SessionID::isValid): Not empty.
        (WebCore::SessionID::isEphemeral):
        (WebCore::SessionID::sessionID):
        (WebCore::SessionID::operator==): Value-based equality.
        (WebCore::SessionID::operator!=):
        (WebCore::SessionID::emptySessionID): Zero value also used for HashTraits emptyValue.
        (WebCore::SessionID::defaultSessionID):
        (WebCore::SessionID::legacyPrivateSessionID):
        * page/SessionIDHash.h:
        (WTF::SessionIDHash::hash): Just the casted session ID (low order bytes)
        (WTF::SessionIDHash::equal):
        (WTF::HashTraits<WebCore::SessionID>::emptyValue): Equal to emptySessionID.
        (WTF::HashTraits<WebCore::SessionID>::constructDeletedValue): -1 value.
        (WTF::HashTraits<WebCore::SessionID>::isDeletedValue):

2014-02-24  Javier Fernandez  <jfernandez@igalia.com>

        [CSS Grid Layout] handle undefined RemainingSpace in computeUsedBreadthOfGridTracks algorithm
        https://bugs.webkit.org/show_bug.cgi?id=128372

        Reviewed by David Hyatt.

        From Blink r165692 by <svillar@igalia.com>

        The spec defines a different code path for the computeUsedBreadthOfGridTracks algorithm
        http://dev.w3.org/csswg/css-grid/#function-ComputeUsedBreadthOfGridTracks.

        Basically the track breadth is different when the available size is undefined and thus,
        cannot be taken into account during the computations.
        The available size is undefined whenever the height is auto or the grid element has a
        shrink-to-fit behavior.

        It was also renamed the function to match the specs so the function name starts with
        'compute' instead of 'computed'.

        No new tests, but added new cases to some of them.

        * rendering/RenderGrid.cpp:
        (WebCore::RenderGrid::computeIntrinsicLogicalWidths):
        (WebCore::RenderGrid::computeUsedBreadthOfGridTracks):
        (WebCore::gridElementIsShrinkToFit):
        (WebCore::RenderGrid::computeNormalizedFractionBreadth):
        (WebCore::RenderGrid::layoutGridItems):
        * rendering/RenderGrid.h:

2014-02-24  Roger Fong  <roger_fong@apple.com>

        [Windows] Unreviewed pre-emptive build fix.

        * WebCore.vcxproj/WebCoreCommon.props: Add replay directory to include path.

2014-02-24  Brady Eidson  <beidson@apple.com>

        Break out ImageControls style into an external stylesheet
        https://bugs.webkit.org/show_bug.cgi?id=129273

        Reviewed by Jer Noble.

        * DerivedSources.make:
        * WebCore.xcodeproj/project.pbxproj:

        * css/CSSDefaultStyleSheets.cpp:
        (WebCore::CSSDefaultStyleSheets::ensureDefaultStyleSheetsForElement):
        * css/CSSDefaultStyleSheets.h:

        * html/shadow/mac/ImageControlsRootElementMac.cpp:
        (WebCore::ImageControlsRootElementMac::maybeCreate):

        * html/shadow/mac/imageControlsMac.css:
        (.x-webkit-imagemenu):
        (.x-webkit-imagemenu:hover):

        * rendering/RenderTheme.h:
        (WebCore::RenderTheme::mediaControlsScript):
        (WebCore::RenderTheme::imageControlsStyleSheet):
        * rendering/RenderThemeMac.h:
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::imageControlsStyleSheet):

2014-02-24  Thiago de Barros Lacerda  <thiago.lacerda@openbossa.org>

        [WebRTC] Validating RTCConfiguration according to the spec
        https://bugs.webkit.org/show_bug.cgi?id=129182

        Reviewed by Eric Carlson.

        Spec states that:
            - iceServers should not be an empty list
            - the entry in the configuration dictionary is "urls", instead of "url"
            - urls can be either a list or a string
        Fixing all that in RTCConfiguration validation when creating a RTCPeerConnection

        Existing tests were updated.

        * Modules/mediastream/RTCPeerConnection.cpp:
        (WebCore::appendIceServer): Added.
        (WebCore::processIceServer): Added.
        (WebCore::RTCPeerConnection::parseConfiguration):

2014-02-24  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Relative positioned elements overflowing the region do not get painted into the next tile
        https://bugs.webkit.org/show_bug.cgi?id=129254

        Reviewed by Antti Koivisto.

        The painting of the region's layer should not be aborted so early if the region's fragment shouldn't be painted
        because that would prevent all the layer's children from being painted.

        Another problem this patch addresses is that clipping should also be performed when the clip rect is empty,
        which is what happens when painting in a tile in which the flowed element would normally be painted
        if it wasn't clipped by the region.

        Test: fast/regions/content-relative-next-tile.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintFlowThreadIfRegionForFragments):

2014-02-24  Renata Hodovan  <rhodovan.u-szeged@partner.samsung.com>
        
        Get rid of the unused 'immediate' parameters from repaint related functions
        https://bugs.webkit.org/show_bug.cgi?id=129111

        Reviewed by Simon Fraser.

        Removing the 'immediate' parameters from repaint related functions - accoring
        to the FIXME in RenderView::repaintViewRectangle() - since they have no effect.

        No new tests are necessary because there is no behavior change

        * dom/Element.cpp:
        (WebCore::Element::setActive):
        * loader/EmptyClients.h:
        * page/Chrome.cpp:
        (WebCore::Chrome::invalidateRootView):
        (WebCore::Chrome::invalidateContentsAndRootView):
        (WebCore::Chrome::invalidateContentsForSlowScroll):
        * page/Chrome.h:
        * page/ChromeClient.h:
        * page/Frame.cpp:
        (WebCore::Frame::tiledBackingStorePaintEnd):
        * page/FrameView.cpp:
        (WebCore::FrameView::invalidateRect):
        (WebCore::FrameView::scrollContentsFastPath):
        (WebCore::FrameView::repaintContentRectangle):
        (WebCore::FrameView::shouldUpdate):
        * page/FrameView.h:
        * platform/HostWindow.h:
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::scrollContents):
        (WebCore::ScrollView::scrollContentsSlowPath):
        (WebCore::ScrollView::repaintContentRectangle):
        (WebCore::ScrollView::updateOverhangAreas):
        (WebCore::ScrollView::addPanScrollIcon):
        (WebCore::ScrollView::removePanScrollIcon):
        (WebCore::ScrollView::platformRepaintContentRectangle):
        * platform/ScrollView.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::repaintLayerRectsForImage):
        * rendering/RenderFlowThread.cpp:
        (WebCore::RenderFlowThread::repaintRectangleInRegions):
        * rendering/RenderFlowThread.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::setFilterBackendNeedsRepaintingInRect):
        * rendering/RenderLayer.h:
        * rendering/RenderMultiColumnSet.cpp:
        (WebCore::RenderMultiColumnSet::repaintFlowThreadContent):
        * rendering/RenderMultiColumnSet.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::repaintUsingContainer):
        (WebCore::RenderObject::repaint):
        (WebCore::RenderObject::repaintRectangle):
        (WebCore::RenderObject::repaintSlowRepaintObject):
        * rendering/RenderObject.h:
        * rendering/RenderRegion.cpp:
        (WebCore::RenderRegion::repaintFlowThreadContent):
        (WebCore::RenderRegion::repaintFlowThreadContentRectangle):
        * rendering/RenderRegion.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::repaintViewRectangle):
        (WebCore::RenderView::flushAccumulatedRepaintRegion):
        (WebCore::RenderView::repaintRectangleInViewAndCompositedLayers):
        * rendering/RenderView.h:
        * svg/graphics/SVGImageChromeClient.h:

2014-02-24  Tamas Gergely  <tgergely.u-szeged@partner.samsung.com>

        Code cleanup: remove leftover ENABLE(WORKERS) macros and support.
        https://bugs.webkit.org/show_bug.cgi?id=129255

        Reviewed by Csaba Osztrogonác.

        ENABLE_WORKERS macro was removed in r159679, but r161589 added back some occurrences.
        Support is now also removed from xcconfig files.

        No new tests needed.

        * Configurations/FeatureDefines.xcconfig:
        * platform/ThreadGlobalData.cpp:
        * platform/ThreadGlobalData.h:
        * platform/Timer.h:
        (WebCore::TimerBase::isActive):
        * platform/ios/wak/WebCoreThread.mm:
        (RunWebThread):
        (StartWebThread):

2014-02-24  Tibor Meszaros  <tmeszaros.u-szeged@partner.samsung.com>

        [CMake] Get rid of "FIXME: The Blackberry port ..." from WebCore/CmakeLists.txt
        https://bugs.webkit.org/show_bug.cgi?id=129152

        Reviewed by Gyuyoung Kim.

        * CMakeLists.txt:

2014-02-24  David Kilzer  <ddkilzer@apple.com>

        Remove redundant setting in FeatureDefines.xcconfig

        * Configurations/FeatureDefines.xcconfig:

2014-02-24  Mihai Tica  <mitica@adobe.com>

        [CSS Blending] An element having -webkit-mix-blend-mode should only blend with the contents of the parent stacking context
        https://bugs.webkit.org/show_bug.cgi?id=129154

        Reviewed by Dean Jackson.

        The blending operation of an element having -webkit-mix-blend-mode should be restricted to the parent stacking context.
        This change isolates blending, preventing it from blending with other underlying elements besides the parent stacking context.

        Tests: css3/compositing/blend-mode-isolated-group-1.html
               css3/compositing/blend-mode-isolated-group-2.html
               css3/compositing/blend-mode-isolated-group-3.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::RenderLayer): Initialize added members to false.
        (WebCore::RenderLayer::updateBlendMode): Check if a blend mode was set or unset. If so, set the m_updateParentStackingContextShouldIsolateBlendingDirty to true.
        (WebCore::RenderLayer::updateParentStackingContextShouldIsolateBlending): Traverse to the parent stacking context and update the
        m_isolatesBlending member accordingly.
        * rendering/RenderLayer.h:
        - Add isolatesBlending() as a condition for creating a transparency layer in the paintsWithTransparency method.
        - Add m_updateParentStackingContextShouldIsolateBlendingDirty member.
        - Add m_isolatesBlending member and getter.
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::computeCompositingRequirements): Call updateParentStackingContextShouldIsolateBlending. 

2014-02-24  Krzysztof Czech  <k.czech@samsung.com>

        [ATK] Wrong selected element at a given index in a list box.
        https://bugs.webkit.org/show_bug.cgi?id=129039

        Reviewed by Chris Fleizach.

        Test: accessibility/select-element-at-index.html

        The selected element at a given index was wrong. One should be considered among the
        all children of a list box, not only selected ones.

        * accessibility/atk/WebKitAccessibleInterfaceSelection.cpp:
        (core):
        (listObjectForSelection):
        (optionFromList):
        (optionFromSelection):
        (webkitAccessibleSelectionRefSelection):

2014-02-23  Dean Jackson  <dino@apple.com>

        [WebGL] Allow ANGLE to initialize unused varyings
        https://bugs.webkit.org/show_bug.cgi?id=129240
        <rdar://problem/15203342>

        Reviewed by Sam Weinig.

        Covered by: conformance/glsl/misc/shaders-with-varyings.html

        * platform/graphics/opengl/Extensions3DOpenGLCommon.cpp:
        (WebCore::Extensions3DOpenGLCommon::getTranslatedShaderSourceANGLE):
        Add SH_INIT_VARYINGS_WITHOUT_STATIC_USE to compiler flags.

2014-02-23  Sam Weinig  <sam@webkit.org>

        Update FeatureDefines.xcconfig

        Rubber-stamped by Anders Carlsson.

        * Configurations/FeatureDefines.xcconfig:

2014-02-23  Dean Jackson  <dino@apple.com>

        Sort the project file with sort-Xcode-project-file.

        Rubber-stamped by Sam Weinig.

        * WebCore.xcodeproj/project.pbxproj:

2014-02-23  Sam Weinig  <sam@webkit.org>

        Fix incorrectly commented out code.

        * platform/TelephoneNumberDetector.h:

2014-02-23  Sam Weinig  <sam@webkit.org>

        Extract platform specific parts of telephone number detection 
        https://bugs.webkit.org/show_bug.cgi?id=129238

        Reviewed by Dean Jackson.

        * WebCore.xcodeproj/project.pbxproj:
        Add new files.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::linkifyPhoneNumbers):
        (WebCore::HTMLTreeBuilder::processCharacterBufferForInBody):
        * platform/TelephoneNumberDetector.h: Added.
        * platform/cocoa/TelephoneNumberDetectorCocoa.cpp: Added.
        (WebCore::TelephoneNumberDetector::phoneNumbersScanner):
        (WebCore::TelephoneNumberDetector::isSupported):
        (WebCore::TelephoneNumberDetector::find):
        Move code to TelephoneNumberDetector.

2014-02-23  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Change a url parameter type with URL in NavigatorContentUtils
        https://bugs.webkit.org/show_bug.cgi?id=129202

        Reviewed by Sam Weinig.

        It would be good if we use *URL* for url parameters instead of using String.

        Merge from blink. https://src.chromium.org/viewvc/blink?view=rev&revision=165458.

        * Modules/navigatorcontentutils/NavigatorContentUtils.cpp:
        (WebCore::verifyCustomHandlerURL):
        (WebCore::NavigatorContentUtils::registerProtocolHandler):
        (WebCore::NavigatorContentUtils::isProtocolHandlerRegistered):
        (WebCore::NavigatorContentUtils::unregisterProtocolHandler):
        * Modules/navigatorcontentutils/NavigatorContentUtilsClient.h:

2014-02-23  Dean Jackson  <dino@apple.com>

        Update ANGLE to 836bd2176e5607b14846cf1fbc5932dbc91318f4
        https://bugs.webkit.org/show_bug.cgi?id=129232

        Reviewed by Brent Fulgham.

        New files added, derived sources compiled directly, and generated
        steps removed for both EFL and GTK, with much-needed help from
        Sergio Correia.

        * CMakeLists.txt:
        * GNUMakefile.am:

2014-02-23  Sam Weinig  <sam@webkit.org>

        Move RenderMathMLMenclose.h/cpp to the right place in the Xcode project and sort.

        Rubber-stamped by Anders Carlsson.

        * WebCore.xcodeproj/project.pbxproj:

2014-02-23  Sam Weinig  <sam@webkit.org>

        Move telephone number detection behind its own ENABLE macro
        https://bugs.webkit.org/show_bug.cgi?id=129236

        Reviewed by Dean Jackson.

        * Configurations/FeatureDefines.xcconfig:
        Add ENABLE_TELEPHONE_NUMBER_DETECTION.

        * dom/Document.cpp:
        (WebCore::Document::Document):
        * dom/Document.h:
        * html/parser/HTMLConstructionSite.h:
        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processCharacterBufferForInBody):
        * html/parser/HTMLTreeBuilder.h:
        Use ENABLE(TELEPHONE_NUMBER_DETECTION).

        * platform/mac/SoftLinking.h:
        Remove PLATOFORM(IOS) from SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL, it is not iOS specific.

2014-02-23  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Fix bleed avoidance subpixel calculation.
        https://bugs.webkit.org/show_bug.cgi?id=129225

        Reviewed by Simon Fraser.
        
        static_cast<LayoutUnit>(int value) only produces the desired result when subpixel is off.

        Currently not testable.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
        (WebCore::shrinkRectByOneDevicePixel):
        (WebCore::RenderBoxModelObject::borderInnerRectAdjustedForBleedAvoidance):
        (WebCore::RenderBoxModelObject::backgroundRoundedRectAdjustedForBleedAvoidance):
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * rendering/RenderBoxModelObject.h:

2014-02-23  Zalan Bujtas  <zalan@apple.com>

        Subpixel rendering: Add devicepixel based computation to BorderEdge class.
        https://bugs.webkit.org/show_bug.cgi?id=129224

        Reviewed by Simon Fraser.

        To produce correct width (and type) results, BorderEdge class needs to take device pixel ratio into account.

        Currently not testable.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::BorderEdge::BorderEdge):
        (WebCore::BorderEdge::obscuresBackgroundEdge):
        (WebCore::BorderEdge::getDoubleBorderStripeWidths): this does not always produce the same
        result as before, but the sum of inner and outer is not different.
        (WebCore::BorderEdge::borderWidthInDevicePixel):
        (WebCore::RenderBoxModelObject::getBorderEdgeInfo):

2014-02-22  Dan Bernstein  <mitz@apple.com>

        REGRESSION (r164507): Crash beneath JSGlobalObjectInspectorController::reportAPIException at facebook.com, twitter.com, youtube.com
        https://bugs.webkit.org/show_bug.cgi?id=129227

        Reviewed by Eric Carlson.

        Reverted r164507.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException):
        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::buildInitiatorObject):
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::breakpointActionLog):
        * inspector/TimelineRecordFactory.cpp:
        (WebCore::TimelineRecordFactory::createGenericRecord):
        * page/Console.cpp:
        (WebCore::internalAddMessage):
        (WebCore::Console::profile):
        (WebCore::Console::profileEnd):
        (WebCore::Console::timeEnd):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::gatherSecurityPolicyViolationEventData):
        (WebCore::ContentSecurityPolicy::reportViolation):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessage):

2014-02-22  Joseph Pecoraro  <pecoraro@apple.com>

        Remove some unreachable code (-Wunreachable-code)
        https://bugs.webkit.org/show_bug.cgi?id=129220

        Reviewed by Eric Carlson.

        * html/parser/HTMLTreeBuilder.cpp:
        (WebCore::HTMLTreeBuilder::processCharacterBuffer):
        (WebCore::HTMLTreeBuilder::processEndTag):
        The only tricky case. Here there was a break inside the
        #if, but not the #else, and a break after the #endif.
        Remove the break inside the #if, and always use the
        break after the #endif.

        * Modules/indexeddb/IDBTransaction.cpp:
        (WebCore::IDBTransaction::modeToString):
        * bindings/js/JSTrackCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::functionForUniform):
        * css/SelectorChecker.cpp:
        (WebCore::SelectorChecker::checkOne):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::parseAttribute):
        * page/CaptionUserPreferencesMediaAF.cpp:
        (WebCore::CaptionUserPreferencesMediaAF::captionDisplayMode):

2014-02-22  Dean Jackson  <dino@apple.com>

        Letterpress effect disabled for synthetic italic
        https://bugs.webkit.org/show_bug.cgi?id=129218
        <rdar://problem/15997846>

        Reviewed by Dan Bernstein.

        There was no need to guard against synthetic italics and letterpress.

        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs): Remove !useLetterpressEffect from conditional.

2014-02-21  Sam Weinig  <sam@webkit.org>

        Expose phase and momentum phase as SPI on DOMWheelEvent
        <rdar://problem/16110871>
        https://bugs.webkit.org/show_bug.cgi?id=129184

        Reviewed by Anders Carlsson.

        * WebCore.exp.in:
        Export core(DOMWheelEvent).

        * WebCore.xcodeproj/project.pbxproj:
        Make DOMWheelEventInternal.h available in WebKit.

        * dom/Element.cpp:
        (WebCore::Element::dispatchWheelEvent):
        * dom/WheelEvent.cpp:
        (WebCore::determineDeltaMode):
        (WebCore::WheelEvent::WheelEvent):
        (WebCore::WheelEvent::initWheelEvent):
        (WebCore::WheelEvent::initWebKitWheelEvent):
        Move PlatformWheelEvent -> DOMWheelEvent conversion to DOMWheelEvent.

        * dom/WheelEvent.h:
        (WebCore::WheelEvent::create):
        (WebCore::WheelEvent::phase):
        (WebCore::WheelEvent::momentumPhase):
        Store phase and momentumPhase on the WheelEvent.

2014-02-22  Alexey Proskuryakov  <ap@apple.com>

        Rename JWK key_ops values from wrap/unwrap to wrapKey/unwrapKey
        https://bugs.webkit.org/show_bug.cgi?id=129121

        Reviewed by Sam Weinig.

        * bindings/js/JSCryptoKeySerializationJWK.cpp:
        (WebCore::JSCryptoKeySerializationJWK::reconcileUsages): Updated to newer names.
        (WebCore::addUsagesToJSON): Ditto.
        (WebCore::JSCryptoKeySerializationJWK::serialize): rsa-oaep-key-manipulation test
        started ot fail, because RSA-OAEP with 2048 bit key and sha-1 can only encrypt
        214 bytes, and the new longer names made JSON serialization slightly longer.
        Compensate by not doing any indentation in JSON.

2014-02-22  Frédéric Wang  <fred.wang@free.fr>

        Only skip stretchy operators when determining the stretch height.
        https://bugs.webkit.org/show_bug.cgi?id=126842

        Reviewed by Chris Fleizach.

        The MathML code only takes into account non-mo children for the computation of the stretch size. This change includes non-stretchy mo in that computation. A new test is added into mathml/presentation/stretchy-depth-height.html.

        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::layout):

2014-02-22  Frédéric Wang  <fred.wang@free.fr>

        Implement asymmetric/symmetric stretching of vertical operators.
        https://bugs.webkit.org/show_bug.cgi?id=124827.

        Reviewed by Chris Fleizach.

        The MathML code stretches vertical operators asymmetrically by default. This patch takes into account the symmetric attribute or the symmetric property of the operator dictionary to stretch operators symmetrically.

        Test: mathml/presentation/stretchy-depth-height-symmetric.html

        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::stretchTo):
        (WebCore::RenderMathMLOperator::updateFromElement):
        (WebCore::RenderMathMLOperator::updateStyle):

2014-02-22  Frédéric Wang  <fred.wang@free.fr>

        Bug 119043 - Large stretch size error for MathML operators.
        https://bugs.webkit.org/show_bug.cgi?id=119043

        Reviewed by Chris Fleizach.

        The MathML code used some arbitrary gOperatorExpansion factor for the
        stretch size and 2/3 1/2 constants for the baseline. This change tries
        to consider height/depth of siblings of the stretchy operator so that
        the stretchy operator now matches its target.

        Test: mathml/presentation/stretchy-depth-height.html

        * rendering/RenderObject.h:
        (WebCore::RenderObject::isRenderMathMLTable):
        * rendering/mathml/RenderMathMLBlock.h:
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::stretchTo):
        (WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter):
        (WebCore::RenderMathMLOperator::updateStyle):
        (WebCore::RenderMathMLOperator::firstLineBaseline):
        (WebCore::RenderMathMLOperator::computeLogicalHeight):
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::layout):

2014-02-22  Frédéric Wang  <fred.wang@free.fr>

        Unreviewed, rolling out r164534.
        http://trac.webkit.org/changeset/164534
        https://bugs.webkit.org/show_bug.cgi?id=119043

        missing tests

        * rendering/RenderObject.h:
        * rendering/mathml/RenderMathMLBlock.h:
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::expandedStretchHeight):
        (WebCore::RenderMathMLOperator::stretchToHeight):
        (WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter):
        (WebCore::RenderMathMLOperator::updateStyle):
        (WebCore::RenderMathMLOperator::firstLineBaseline):
        (WebCore::RenderMathMLOperator::computeLogicalHeight):
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::layout):

2014-02-22  Frédéric Wang  <fred.wang@free.fr>

        Bug 119043 - Large stretch size error for MathML operators.
        https://bugs.webkit.org/show_bug.cgi?id=119043

        Reviewed by Chris Fleizach.

        The MathML code used some arbitrary gOperatorExpansion factor for the
        stretch size and 2/3 1/2 constants for the baseline. This change tries
        to consider height/depth of siblings of the stretchy operator so that
        the stretchy operator now matches its target.

        Test: mathml/presentation/stretchy-depth-height.html

        * rendering/RenderObject.h:
        (WebCore::RenderObject::isRenderMathMLTable):
        * rendering/mathml/RenderMathMLBlock.h:
        * rendering/mathml/RenderMathMLOperator.cpp:
        (WebCore::RenderMathMLOperator::RenderMathMLOperator):
        (WebCore::RenderMathMLOperator::stretchTo):
        (WebCore::RenderMathMLOperator::findAcceptableStretchyCharacter):
        (WebCore::RenderMathMLOperator::updateStyle):
        (WebCore::RenderMathMLOperator::firstLineBaseline):
        (WebCore::RenderMathMLOperator::computeLogicalHeight):
        * rendering/mathml/RenderMathMLOperator.h:
        * rendering/mathml/RenderMathMLRow.cpp:
        (WebCore::RenderMathMLRow::layout):

2014-02-21  Zalan Bujtas  <zalan@apple.com>

        REGRESSION(r164412): Pixel cracks when zooming in to any web content.
        https://bugs.webkit.org/show_bug.cgi?id=129195

        Reviewed by Simon Fraser.

        Integral clipping of the repaint rect was prematurely removed in RenderLayerBacking::paintContents().
        Repaint rects needs a uniform, device pixel precise clipping across the painting flow including RenderLayer,
        RenderView and TileController.

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::paintContents):
        (WebCore::RenderLayerBacking::compositedBoundsIncludingMargin):

2014-02-21  Jer Noble  <jer.noble@apple.com>

        Unreviewed Mac build fix after r164529.

        Replace the string-to-array algorithm with a archictecture-independant
        one.

        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm:
        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest):

2014-02-21  Jer Noble  <jer.noble@apple.com>

        [EME] Add a CDMSession for MediaPlayerPrivateMediaSourceAVFObjC
        https://bugs.webkit.org/show_bug.cgi?id=129166

        Reviewed by Eric Carlson.

        Add a new CDMSession, cerated by MediaPlayerPrivateMediaSourceAVFObjC allowing
        media-source-backed media elements to play protected content.

        Add a new CDMSessionMediaSourceAVFObjC class:
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.h: Added.
        (WebCore::CDMSessionMediaSourceAVFObjC::~CDMSessionMediaSourceAVFObjC):
        * platform/graphics/avfoundation/objc/CDMSessionMediaSourceAVFObjC.mm: Added.
        (WebCore::CDMSessionMediaSourceAVFObjC::CDMSessionMediaSourceAVFObjC):
        (WebCore::CDMSessionMediaSourceAVFObjC::generateKeyRequest): Do not actually generate a
            key request until the certificate data has been added via update();
        (WebCore::CDMSessionMediaSourceAVFObjC::releaseKeys): No-op.
        (WebCore::CDMSessionMediaSourceAVFObjC::update): If no certificate data has yet been
            added, assume the incoming message contains it.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine): Add supportsKeySystem.
        (WebCore::keySystemIsSupported): Use "com.apple.fps.2_0" to distinguish from the not-media-source scheme.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsType): Check the keySystem type.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::supportsKeySystem): Added.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::createSession): Added, pass through to MediaSourcePrivate.
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaSourcePrivateAVFObjC.mm:
        (WebCore::MediaSourcePrivateAVFObjC::createSession): Added.
        (WebCore::MediaSourcePrivateAVFObjC::sourceBufferKeyNeeded): Pass through to MediaPlayer.
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.h:
        * platform/graphics/avfoundation/objc/SourceBufferPrivateAVFObjC.mm:
        (-[WebAVStreamDataParserListener streamDataParser:didProvideContentKeyRequestInitializationData:forTrackID:]):
            Added, pass through to SourceBufferPrivate.
        (WebCore::SourceBufferPrivateAVFObjC::SourceBufferPrivateAVFObjC):
        (WebCore::SourceBufferPrivateAVFObjC::didProvideContentKeyRequestInitializationDataForTrackID): Remember
            which track is requesting the key, and pass the request to MediaSourcePrivate.

        Add new files to the project.
        * WebCore.xcodeproj/project.pbxproj:

2014-02-21  Alexey Proskuryakov  <ap@apple.com>

        CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify contains seemingly accidental unreachable code
        https://bugs.webkit.org/show_bug.cgi?id=129193

        Reviewed by Joseph Pecoraro.

        * crypto/mac/CryptoAlgorithmRSASSA_PKCS1_v1_5Mac.cpp:
        (WebCore::CryptoAlgorithmRSASSA_PKCS1_v1_5::platformVerify): Fix the accidental code.

2014-02-21  Brent Fulgham  <bfulgham@apple.com>

        Extend media support for WebVTT sources
        https://bugs.webkit.org/show_bug.cgi?id=129156

        Reviewed by Eric Carlson.

        * Configurations/FeatureDefines.xcconfig: Add new feature define for AVF_CAPTIONS
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::outOfBandTrackSources): Added.
        * html/HTMLMediaElement.h:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::outOfBandTrackSources): Added.
        * platform/graphics/MediaPlayer.h:
        (WebCore::MediaPlayerClient::outOfBandTrackSources): Added.
        * platform/graphics/PlatformTextTrack.h:
        (WebCore::PlatformTextTrack::create): Update for new constructor signature.
        (WebCore::PlatformTextTrack::createOutOfBand): Added.
        (WebCore::PlatformTextTrack::url): Added.
        (WebCore::PlatformTextTrack::isDefault): Added.
        (WebCore::PlatformTextTrack::PlatformTextTrack): Revised to take new URL and
        'isDefault' arguments.
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::mediaDescriptionForKind): Added.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createAVAssetForURL): Tell AVFoundation about any
        WebVTT tracks supplied by the web page.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::processMediaSelectionOptions): Filter out any out-of-band
        WebVTT tracks returned by the media engine to avoid double-counting tracks.

2014-02-21  Ryosuke Niwa  <rniwa@webkit.org>

        Inner text element should not use -webkit-user-modify
        https://bugs.webkit.org/show_bug.cgi?id=129035

        Reviewed by Andreas Kling.

        To eliminate the internal use of -webkit-user-modify, use contenteditable attribute in the inner text elements
        instead of manually inspecting disabled-ness and readonly-ness in RenderTextControl.

        Unfortunately, we still have to manually set UserModify value in RenderTextControl::adjustInnerTextStyle since
        RenderTextControl::styleDidChange creates RenderStyle for its inner text from scratch via createInnerTextStyle.    

        * html/HTMLFieldSetElement.cpp:
        (WebCore::HTMLFieldSetElement::disabledStateChanged): Don't use childrenOfType iterator which asserts that DOM
        isn't mutated during the traversal since we now set contenteditable attribute inside disabledStateChanged via
        updateFromControlElementsAncestorDisabledStateUnder.

        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::parseAttribute): Extracted readOnlyAttributeChanged out of this function so
        that HTMLTextFormControl could override it to call updateInnerTextElementEditability.
        (WebCore::HTMLFormControlElement::readOnlyAttributeChanged): Ditto.
        * html/HTMLFormControlElement.h:

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::didAddUserAgentShadowRoot): Call updateInnerTextElementEditability after creating
        shadow DOM for the current input type.
        (WebCore::HTMLInputElement::updateType): Ditto.
        (WebCore::HTMLInputElement::parseAttribute): Ditto.

        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::didAddUserAgentShadowRoot): Call updateInnerTextElementEditability.

        * html/HTMLTextFormControlElement.cpp:
        (WebCore::HTMLTextFormControlElement::disabledStateChanged): Added to update contenteditable attribute since
        the editability of the inner text element depends on disabled-ness of the element.
        (WebCore::HTMLTextFormControlElement::readOnlyAttributeChanged): Ditto for the readonly-ness of the element.
        (WebCore::HTMLTextFormControlElement::updateInnerTextElementEditability): Added.
        * html/HTMLTextFormControlElement.h:

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::adjustInnerTextStyle): Use the inner text element's presentationAttributeStyle() to
        compute the appropriate EUserModify value instead of hard-coding it here.
        * rendering/RenderTextControl.h:

2014-02-21  ChangSeok Oh  <changseok.oh@collabora.com>

        [GTK] Support WEBGL_draw_buffers extension.
        https://bugs.webkit.org/show_bug.cgi?id=129143

        Reviewed by Dean Jackson.

        Support the WEBGL_draw_buffers WebGL extension for gtk port. Relevant opengl APIs
        are exposed for WebGLRenderingContext to access them properly.

        Covered by fast/canvas/webgl/webgl-draw-buffers.html

        * platform/graphics/OpenGLShims.cpp:
        (WebCore::initializeOpenGLShims):
        * platform/graphics/OpenGLShims.h:
        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        (WebCore::Extensions3DOpenGL::supportsExtension):
        (WebCore::Extensions3DOpenGL::drawBuffersEXT):

2014-02-21  ChangSeok Oh  <changseok.oh@collabora.com>

        Mac port uses ANGLE_instanced_arrays related apis through those in GraphicsContext3DCommon.cpp
        https://bugs.webkit.org/show_bug.cgi?id=128803

        Reviewed by Dean Jackson.

        Merge mac port implementation of ANGLE_instanced_arrays into common code.

        No new tests, no functionality changed.

        * platform/graphics/mac/GraphicsContext3DMac.mm:
        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        (WebCore::Extensions3DOpenGL::drawArraysInstanced):
        (WebCore::Extensions3DOpenGL::drawElementsInstanced):
        (WebCore::Extensions3DOpenGL::vertexAttribDivisor):
        * platform/graphics/opengl/GraphicsContext3DOpenGLCommon.cpp:
        (WebCore::GraphicsContext3D::vertexAttribDivisor):

2014-02-21  Myles C. Maxfield  <mmaxfield@apple.com>

        After copy and paste, cursor may appear to be above the bottom of content
        https://bugs.webkit.org/show_bug.cgi?id=129167

        Reviewed by Ryosuke Niwa.

        Adding a clear:both to the end of content.

        I can't handle the case of the cursor appearing above the bottom of
        absolutely positioned divs (of the case of floats inside absolutely
        positioned divs) because you can't know where the bottom of a div
        will end up being rendered (it is affected by things like browser
        window width and text size settings). Therefore, the only case I
        can handle is the case where there is a floating div in the same
        level as the document itself.

        Test: editing/pasteboard/copy-paste-inserts-clearing-div.html

        * editing/EditingStyle.cpp:
        (WebCore::EditingStyle::isFloating):
        * editing/EditingStyle.h:
        * editing/markup.cpp:
        (WebCore::StyledMarkupAccumulator::StyledMarkupAccumulator):
        (WebCore::StyledMarkupAccumulator::appendElement):
        (WebCore::createMarkupInternal):

2014-02-21  Dean Jackson  <dino@apple.com>

        [iOS Media] Wireless target UI
        https://bugs.webkit.org/show_bug.cgi?id=129189
        <rdar://problem/15349928>
        <rdar://problem/16100060>

        Reviewed by Eric Carlson.

        Implement a prototype UI for wireless playback targets. The UI
        doesn't currently work, but can be simulated via a class variable
        in ControllerIOS.

        * Modules/mediacontrols/mediaControlsiOS.css:
        (audio::-webkit-media-controls-panel button): Reset the default style of
        button elements, to avoid getting a border.
        (audio::-webkit-media-controls-wireless-playback-status): Holds the UI showing
        the user that the media is playing on another target.
        (audio::-webkit-media-controls-wireless-playback-status.hidden):
        (audio::-webkit-media-controls-wireless-playback-picker-button): The button to
        trigger selection of targets.
        (audio::-webkit-media-controls-wireless-playback-picker-button.active):
        (audio::-webkit-media-controls-panel): This needs to be position absolute for
        the wireless playback status to fill the viewport.
        * Modules/mediacontrols/mediaControlsiOS.js:
        (ControllerIOS): Check for targets.
        (ControllerIOS.prototype.addVideoListeners):
        (ControllerIOS.prototype.removeVideoListeners):
        (ControllerIOS.prototype.UIString): New method to return localized strings (with
        a FIXME).
        (ControllerIOS.prototype.shouldHaveAnyUI): Needs to display if there is a wireless
        target.
        (ControllerIOS.prototype.currentPlaybackTargetIsWireless):
        (ControllerIOS.prototype.updateWirelessPlaybackStatus): Create the status content,
        replacing the device name if it is available.
        (ControllerIOS.prototype.updateWirelessTargetAvailable):
        (ControllerIOS.prototype.createControls):
        (ControllerIOS.prototype.configureInlineControls):
        (ControllerIOS.prototype.handleWirelessPlaybackChange):
        (ControllerIOS.prototype.handleWirelessTargetAvailableChange):
        (ControllerIOS.prototype.handleWirelessPickerButtonClicked):

2014-02-21  Jer Noble  <jer.noble@apple.com>

        Make a generic CDMPrivateMediaPlayer and move its CDMSession into platform/.
        https://bugs.webkit.org/show_bug.cgi?id=129164

        Reviewed by Eric Carlson.

        Move the session created by CDMPrivateAVFoundation into platform, and rename
        CDMPrivateAVFoundation to CDMPrivateMediaPlayer. Future media engines who want
        to support a keysystem from within the media engine can create their own
        CDMSession as part of the MediaPlayerPrivate interface.

        * Modules/encryptedmedia/CDM.cpp:
        (WebCore::installedCDMFactories):
        (WebCore::CDM::createSession):
        * Modules/encryptedmedia/CDM.h:
        * Modules/encryptedmedia/CDMPrivate.h:
        * Modules/encryptedmedia/MediaKeySession.cpp:
        * Modules/encryptedmedia/MediaKeySession.h:
        * Modules/encryptedmedia/CDMPrivateAVFoundation.mm: Removed.
        * Modules/encryptedmedia/CDMPrivateMediaPlayer.cpp: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.cpp.
        (WebCore::CDMPrivateMediaPlayer::supportsKeySystem):
        (WebCore::CDMPrivateMediaPlayer::supportsKeySystemAndMimeType):
        (WebCore::CDMPrivateMediaPlayer::supportsMIMEType):
        (WebCore::CDMPrivateMediaPlayer::createSession):
        * Modules/encryptedmedia/CDMPrivateMediaPlayer.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.h.
        (WebCore::CDMPrivateMediaPlayer::create):
        (WebCore::CDMPrivateMediaPlayer::~CDMPrivateMediaPlayer):
        (WebCore::CDMPrivateMediaPlayer::cdm):
        (WebCore::CDMPrivateMediaPlayer::CDMPrivateMediaPlayer):
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/CDMSession.h: Extracted from CDMPrivateAVFoundation.h.
        (WebCore::CDMSessionClient::~CDMSessionClient):
        (WebCore::CDMSession::CDMSession):
        (WebCore::CDMSession::~CDMSession):
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::createSession):
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::createSession):
        * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.h: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.h.
        (WebCore::CDMSessionAVFoundationObjC::~CDMSessionAVFoundationObjC):
        * platform/graphics/avfoundation/objc/CDMSessionAVFoundationObjC.mm: Renamed from Source/WebCore/Modules/encryptedmedia/CDMPrivateAVFoundation.mm.
        (WebCore::CDMSessionAVFoundationObjC::CDMSessionAVFoundationObjC):
        (WebCore::CDMSessionAVFoundationObjC::generateKeyRequest):
        (WebCore::CDMSessionAVFoundationObjC::releaseKeys):
        (WebCore::CDMSessionAVFoundationObjC::update):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::createSession):
        * testing/MockCDM.cpp:
        (WebCore::MockCDMSession::setClient):
        (WebCore::MockCDM::createSession):
        * testing/MockCDM.h:

2014-02-21  Jer Noble  <jer.noble@apple.com>

        Add a supportsKeySystem media engine factory parameter.
        https://bugs.webkit.org/show_bug.cgi?id=129161

        Reviewed by Eric Carlson.

        Add a new parameter to the MediaPlayerFactory to allow registered media
        engines to be queried for keySystem support:
        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayerFactory::MediaPlayerFactory):
        (WebCore::MediaPlayer::supportsKeySystem):
        * platform/graphics/MediaPlayer.h:

        Support this new field in MediaPlayerPrivateAVFoundationObjC:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::registerMediaEngine):
        (WebCore::keySystemIsSupported):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::supportsKeySystem):
        (WebCore::MediaPlayerPrivateAVFoundationObjC::shouldWaitForLoadingOfResource):

        Add an empty field for SupportsKeySystem to the remaining media engines:
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::MediaPlayerPrivateAVFoundationCF::registerMediaEngine):
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::registerMediaEngine):
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::registerMediaEngine):
        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
        (WebCore::MediaPlayerPrivateIOS::registerMediaEngine):
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivateQTKit::registerMediaEngine):
        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::registerMediaEngine):
        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
        (WebCore::MockMediaPlayerMediaSource::registerMediaEngine):

2014-02-21  Benjamin Poulain  <bpoulain@apple.com>

        Fix WebCore's internals after r164505

        * testing/Internals.cpp:
        (WebCore::Internals::findEditingDeleteButton): The call became ambiguous after r164505.

2014-02-21  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: JSContext inspection should report exceptions in the console
        https://bugs.webkit.org/show_bug.cgi?id=128776

        Reviewed by Timothy Hatcher.

        Include some clean up of ConsoleMessage and ScriptCallStack construction.

        Covered by existing tests.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException):
        Simplify code now that createStackTraceFromException handles it.

        * page/ContentSecurityPolicy.cpp:
        (WebCore::gatherSecurityPolicyViolationEventData):
        (WebCore::ContentSecurityPolicy::reportViolation):
        ScriptCallStack can give us the first non-native callframe.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::buildInitiatorObject):
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::breakpointActionLog):
        * inspector/TimelineRecordFactory.cpp:
        (WebCore::TimelineRecordFactory::createGenericRecord):
        * page/Console.cpp:
        (WebCore::internalAddMessage):
        (WebCore::Console::profile):
        (WebCore::Console::profileEnd):
        (WebCore::Console::timeEnd):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::gatherSecurityPolicyViolationEventData):
        (WebCore::ContentSecurityPolicy::reportViolation):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessage):

2014-02-21  Benjamin Poulain  <benjamin@webkit.org>

        jsDocumentPrototypeFunctionGetElementById should not create an AtomicString for the function argument
        https://bugs.webkit.org/show_bug.cgi?id=128893

        Reviewed by Darin Adler.

        The declaration of TreeScope::getElementById() was taking an AtomicString as the parameter.
        Because of this, all the call sites manipulating String were creating and keeping alive an AtomicString
        to make the call.

        This had two negative consequences:
        -The call sites were ref-ing the ID's atomic string for no reason.
        -When there is no ID associated with the input string, an atomic string was created for the sole
         purpose of failing the query. Since IDs are stored as AtomicString, if there is not an existing
         AtomicString for the input, there is no reason to query anything.

        * WebCore.exp.in:
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::findAtomicString): Update this after the rename.

        * bindings/scripts/CodeGeneratorObjC.pm:
        (GenerateImplementation):
        * bindings/scripts/IDLAttributes.txt:
        Now that there are two overloads for TreeScope::getElementById(), the conversion from NSString*
        is ambiguous. I add the keyword ObjCExplicitAtomicString to force an explicit conversion to AtomicString.

        * dom/Document.idl:
        * dom/TreeScope.cpp:
        (WebCore::TreeScope::getElementById):
        When getting an AtomicString, the case of a empty string is not important, use isNull() instead.
        When getting a String, get the corresponding AtomicString if any and use that for getting the element.

        * dom/TreeScope.h:
        * html/FTPDirectoryDocument.cpp:
        (WebCore::FTPDirectoryDocumentParser::loadDocumentTemplate):
        Solve the ambiguous call.

        * svg/SVGAElement.cpp:
        (WebCore::SVGAElement::defaultEventHandler):
        This is a wonderful candidate for substringSharingImpl. The substring does not survive the call since
        the new getElementById never create any AtomicString.

        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::getElementById):
        It looks like there are opportunities to get faster here, Ryosuke should have a look.

        * svg/SVGSVGElement.h:
        * xml/XMLTreeViewer.cpp:
        (WebCore::XMLTreeViewer::transformDocumentToTreeView):
        Unrelated cleanup: noStyleMessage was useless.

2014-02-21  Daniel Bates  <dabates@apple.com>

        COL element in table has 0 for offsetWidth
        https://bugs.webkit.org/show_bug.cgi?id=15277

        Reviewed by David Hyatt.

        Implements offset{Left, Top, Width, Height} for table columns and column groups
        per section Extensions to the HTMLElement Interface of the CSSOM View spec,
        <http://www.w3.org/TR/cssom-view/#extensions-to-the-htmlelement-interface> (Draft 17 December 2013).

        For now, we fail almost all of the offset{Height, Top} sub-tests in the included test
        for the separate border model as we need to fix <https://bugs.webkit.org/show_bug.cgi?id=128988>.

        Test: fast/table/col-and-colgroup-offsets.html

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::RenderTable): Initialize cached column offset top and offset height.
        We cache these offsets since they are the same for all columns in the table.
        (WebCore::RenderTable::invalidateCachedColumns): Clear cached effective column index map.
        (WebCore::RenderTable::invalidateCachedColumnOffsets): Added.
        (WebCore::RenderTable::layout): Invalidate cached column offsets as the location or height
        of one or more sections may have changed.
        (WebCore::RenderTable::updateColumnCache): Modified to build effective column index map.
        (WebCore::RenderTable::effectiveIndexOfColumn): Added.
        (WebCore::RenderTable::offsetTopForColumn): Added.
        (WebCore::RenderTable::offsetLeftForColumn): Added.
        (WebCore::RenderTable::offsetWidthForColumn): Added.
        (WebCore::RenderTable::offsetHeightForColumn): Added.
        * rendering/RenderTable.h: Make isTableColumnGroupWithColumnChildren() const.
        * rendering/RenderTableCol.cpp:
        (WebCore::RenderTableCol::offsetLeft): Added; turns around and calls RenderTable::offsetLeftForColumn().
        (WebCore::RenderTableCol::offsetTop): Added; turns around and calls RenderTable::offsetTopForColumn().
        (WebCore::RenderTableCol::offsetWidth): Added; turns around and calls RenderTable::offsetWidthForColumn().
        (WebCore::RenderTableCol::offsetHeight): Added; turns around and calls RenderTable::offsetHeightForColumn().
        * rendering/RenderTableCol.h:

2014-02-21  Enrica Casucci  <enrica@apple.com>

        Build fix for iOS after r164498.

        Unreviewed.

        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
        (WebCore::MediaPlayerPrivateIOS::buffered):

2014-02-21  Ryosuke Niwa  <rniwa@webkit.org>

        Disallow the use of -webkit-user-modify on shadow pseudo elements
        https://bugs.webkit.org/show_bug.cgi?id=129144

        Reviewed by Geoffrey Garen.

        Completely disallow -webkit-user-modify on user agent (builtin) pseudo elements.

        We've already had rules to do this in html.css but just hard code it into the engine
        in order to eliminate the all uses of -webkit-user-modify in html.css.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::adjustRenderStyle):
        * css/html.css:
        (input::-webkit-textfield-decoration-container):
        (input::-webkit-clear-button):
        (input[type="search"]::-webkit-search-cancel-button):
        (input[type="search"]::-webkit-search-decoration):
        (input[type="search"]::-webkit-search-results-decoration):
        (input[type="search"]::-webkit-search-results-button):
        (input::-webkit-inner-spin-button):
        (input::-webkit-input-speech-button):
        (input::-webkit-input-placeholder, isindex::-webkit-input-placeholder):
        (input[type="file"]::-webkit-file-upload-button):
        (input[type="range"]::-webkit-slider-container, input[type="range"]::-webkit-media-slider-container):
        (input[type="range"]::-webkit-slider-runnable-track):
        (input[type="range"]::-webkit-slider-thumb, input[type="range"]::-webkit-media-slider-thumb):
        (input[type="color"]::-webkit-color-swatch-wrapper):
        (input[type="color"]::-webkit-color-swatch):
        (::-webkit-validation-bubble):
        (::-webkit-validation-bubble-message):
        (::-webkit-validation-bubble-text-block):
        (::-webkit-validation-bubble-heading):
        (::-webkit-validation-bubble-arrow):
        (::-webkit-validation-bubble-arrow-clipper):
        (meter::-webkit-meter-inner-element):
        (meter::-webkit-meter-bar):
        (meter::-webkit-meter-optimum-value):
        (meter::-webkit-meter-suboptimum-value):
        (meter::-webkit-meter-even-less-good-value):
        (progress::-webkit-progress-inner-element):
        (progress::-webkit-progress-bar):
        (progress::-webkit-progress-value):

2014-02-21  Eric Carlson  <eric.carlson@apple.com>

        Fix TimeRanges layering violations
        https://bugs.webkit.org/show_bug.cgi?id=128717

        Reviewed by Jer Noble.

        No new tests, no functionality changed.

        * CMakeLists.txt:
        * GNUmakefile.list.am: Add PlatformTimeRanges.

        * Modules/mediasource/MediaSource.cpp:
        (WebCore::MediaSource::buffered): TimeRanges -> PlatformTimeRanges.
        * Modules/mediasource/MediaSource.h:

        * Modules/mediasource/SourceBuffer.cpp:
        (WebCore::SourceBuffer::sourceBufferPrivateDidReceiveSample): TimeRanges* -> TimeRanges&.

        * WebCore.exp.in: Update for signature changes.

        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj: Add PlatformTimeRanges.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::percentLoaded): Create TimeRanges from PlatformTimeRanges.
        (WebCore::HTMLMediaElement::buffered): Ditto.
        (WebCore::HTMLMediaElement::seekable): Ditto.

        * html/MediaController.cpp:
        (MediaController::buffered): TimeRanges* -> TimeRanges&.
        (MediaController::seekable): Ditto.
        (MediaController::played): Ditto.

        Move all of the logic into PlatformTimeRanges. Change API to take TimeRanges& instead of TimeRanges*.
        * html/TimeRanges.cpp:
        (WebCore::TimeRanges::create): Move to .cpp from .h.
        (WebCore::TimeRanges::TimeRanges): Initialize the PlatformTimeRanges member variable.
        (WebCore::TimeRanges::start): Passthrough to PlatformTimeRanges.
        (WebCore::TimeRanges::end): Ditto.
        (WebCore::TimeRanges::invert): Ditto.
        (WebCore::TimeRanges::copy): Ditto.
        (WebCore::TimeRanges::intersectWith): Ditto.
        (WebCore::TimeRanges::unionWith): Ditto.
        (WebCore::TimeRanges::length): Ditto.
        (WebCore::TimeRanges::add): Ditto.
        (WebCore::TimeRanges::contain): Ditto.
        (WebCore::TimeRanges::find): Ditto.
        (WebCore::TimeRanges::nearest): Ditto.
        (WebCore::TimeRanges::totalDuration): Ditto.
        * html/TimeRanges.h:

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::NullMediaPlayerPrivate::buffered): TimeRanges -> PlatformTimeRanges.
        (WebCore::MediaPlayer::buffered): Ditto.
        (WebCore::MediaPlayer::seekable): Ditto.
        * platform/graphics/MediaPlayer.h:
        * platform/graphics/MediaPlayerPrivate.h:

        * platform/graphics/MediaSourcePrivateClient.h:

        * platform/graphics/PlatformTimeRanges.cpp: Added.
        * platform/graphics/PlatformTimeRanges.h: Added.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.cpp:
        (WebCore::MediaPlayerPrivateAVFoundation::buffered): TimeRanges -> PlatformTimeRanges.
        (WebCore::MediaPlayerPrivateAVFoundation::loadedTimeRangesChanged): Drive-by fix to log
            FunctionType notifications. ASSERT when passed an unknown notification.

        * platform/graphics/avfoundation/MediaPlayerPrivateAVFoundation.h:
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:
        (WebCore::MediaPlayerPrivateAVFoundationCF::platformBufferedTimeRanges):  TimeRanges -> PlatformTimeRanges.
        * platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:
        (WebCore::MediaPlayerPrivateAVFoundationObjC::currentTime): Ditto.
        (WebCore::MediaPlayerPrivateAVFoundationObjC::platformBufferedTimeRanges): Ditto.

        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.h:
        * platform/graphics/avfoundation/objc/MediaPlayerPrivateMediaSourceAVFObjC.mm:
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::seekable): Ditto.
        (WebCore::MediaPlayerPrivateMediaSourceAVFObjC::buffered): Ditto.

        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
        (WebCore::MediaPlayerPrivateGStreamer::buffered): Ditto.
        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

        * platform/graphics/ios/MediaPlayerPrivateIOS.h:
        * platform/graphics/ios/MediaPlayerPrivateIOS.mm:
        (WebCore::MediaPlayerPrivateIOS::buffered): Ditto.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivateQTKit::buffered): Ditto.

        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:
        (WebCore::MediaPlayerPrivateQuickTimeVisualContext::buffered): Ditto.
        * platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:

        * platform/graphics/wince/MediaPlayerPrivateWinCE.h:

        * platform/mock/mediasource/MockMediaPlayerMediaSource.cpp:
        (WebCore::MockMediaPlayerMediaSource::buffered): Ditto.
        (WebCore::MockMediaPlayerMediaSource::advanceCurrentTime): Ditto.
        * platform/mock/mediasource/MockMediaPlayerMediaSource.h:

2014-02-21  Enrica Casucci  <enrica@apple.com>

        Support WebSelections in WK2 on iOS.
        https://bugs.webkit.org/show_bug.cgi?id=127015
        <rdar://problem/15211964>

        Reviewed by Benjamin Poulain.

        Adding some exports.

        * WebCore.exp.in:

2014-02-21  Benjamin Poulain  <bpoulain@apple.com>

        'mouseenter' mouse compat event not fired when listeners for touch events
        https://bugs.webkit.org/show_bug.cgi?id=128534

        Reviewed by Andreas Kling.

        The code dispatching mouseenter and mouseleave events was making the assumption that
        only mouse move would cause Document::updateHoverActiveState.

        This is not true in some cases. In the case of this bug, the first touch handler sets
        the hover state. From there, the code handling enter/leave is in an inconsistent state.

        This patch changes the delivery of mouse enter/leave events to be done through the regular
        processing of mouse events. The update is done with the mouseover and mouseout events.

        * dom/Document.cpp:
        (WebCore::Document::prepareMouseEvent):
        (WebCore::Document::updateHoverActiveState):
        * dom/Document.h:
        * page/EventHandler.cpp:
        (WebCore::nearestCommonHoverAncestor):
        (WebCore::hierarchyHasCapturingEventListeners):
        (WebCore::EventHandler::updateMouseEventTargetNode):

2014-02-21  Jon Honeycutt  <jhoneycutt@apple.com>

        Crash reloading page with position: fixed content
        https://bugs.webkit.org/show_bug.cgi?id=129119
        <rdar://problem/16127090>

        Reviewed by Brent Fulgham.

        Test: platform/mac-wk2/tiled-drawing/crash-reloading-with-position-fixed-content.html

        * page/scrolling/ScrollingTree.cpp:
        (WebCore::ScrollingTree::removeDestroyedNodes):
        Check the node's ID against the latched node's ID before the node is
        removed from the tree.

2014-02-21  Joseph Pecoraro  <pecoraro@apple.com>

        Revert r164486, causing a number of test failures.

        Unreviewed rollout.

2014-02-21  David Kilzer  <ddkilzer@apple.com>

        StyleResolver::loadPendingImage() should take a reference to StylePendingImage
        <http://webkit.org/b/129021>

        Reviewed by Brent Fulgham.

        * css/StyleResolver.cpp:
        (WebCore::StyleResolver::loadPendingImage): Change pendingImage
        parameter to a reference.
        (WebCore::StyleResolver::loadPendingShapeImage): Update to use
        references.
        (WebCore::StyleResolver::loadPendingImages): Ditto.
        * css/StyleResolver.h:
        (WebCore::StyleResolver::loadPendingImage): Change pendingImage
        parameter to a reference.

2014-02-21  Joseph Pecoraro  <pecoraro@apple.com>

        Web Inspector: JSContext inspection should report exceptions in the console
        https://bugs.webkit.org/show_bug.cgi?id=128776

        Reviewed by Timothy Hatcher.

        Include some clean up of ConsoleMessage and ScriptCallStack construction.

        Covered by existing tests.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException):
        Simplify code now that createStackTraceFromException handles it.

        * page/ContentSecurityPolicy.cpp:
        (WebCore::gatherSecurityPolicyViolationEventData):
        (WebCore::ContentSecurityPolicy::reportViolation):
        ScriptCallStack can give us the first non-native callframe.

        * inspector/InspectorResourceAgent.cpp:
        (WebCore::InspectorResourceAgent::buildInitiatorObject):
        * inspector/PageDebuggerAgent.cpp:
        (WebCore::PageDebuggerAgent::breakpointActionLog):
        * inspector/TimelineRecordFactory.cpp:
        (WebCore::TimelineRecordFactory::createGenericRecord):
        * page/Console.cpp:
        (WebCore::internalAddMessage):
        (WebCore::Console::profile):
        (WebCore::Console::profileEnd):
        (WebCore::Console::timeEnd):
        * page/ContentSecurityPolicy.cpp:
        (WebCore::gatherSecurityPolicyViolationEventData):
        (WebCore::ContentSecurityPolicy::reportViolation):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::postMessage):

2014-02-21  Martin Hodovan  <mhodovan@inf.u-szeged.hu>

        Fixing the !ENABLE(SVG_FONTS) build
        https://bugs.webkit.org/show_bug.cgi?id=129150

        Reviewed by Anders Carlsson.

        No new tests required.

        * svg/SVGAltGlyphElement.cpp:
        * svg/SVGAltGlyphElement.h:
        * svg/svgtags.in:

2014-02-21  Radu Stavila  <stavila@adobe.com>

        [CSS Regions] Use the named-flow-specific object RenderNamedFlowFragment instead of the generic RenderRegion whenever possible
        https://bugs.webkit.org/show_bug.cgi?id=128599

        Reviewed by Andrei Bucur.

        Use the named flow specific RenderNamedFlowFragment instead of the generic RenderRegion, whenever possible.
        Move named flow specific methods from RenderRegion to RenderNamedFlowFragment.

        No new tests required.

        * dom/Element.cpp:
        (WebCore::Element::renderNamedFlowFragment):
        (WebCore::Element::webkitRegionOverset):
        (WebCore::Element::webkitGetRegionFlowRanges):
        * dom/Element.h:
        * inspector/InspectorCSSAgent.cpp:
        (WebCore::InspectorCSSAgent::buildArrayForRegions):
        * rendering/PaintInfo.h:
        (WebCore::PaintInfo::PaintInfo):
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paint):
        (WebCore::RenderBlock::paintObject):
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintBoxDecorations):
        (WebCore::RenderBox::pushContentsClip):
        (WebCore::RenderBox::layoutOverflowRectForPropagation):
        * rendering/RenderBox.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintMaskForTextFillBox):
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        * rendering/RenderBoxModelObject.h:
        * rendering/RenderInline.h:
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paint):
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::paintLayerByApplyingTransform):
        (WebCore::RenderLayer::updatePaintingInfoForFragments):
        (WebCore::RenderLayer::paintTransformedLayerIntoFragments):
        (WebCore::RenderLayer::paintBackgroundForFragments):
        (WebCore::RenderLayer::paintForegroundForFragmentsWithPhase):
        (WebCore::RenderLayer::paintOutlineForFragments):
        (WebCore::RenderLayer::paintMaskForFragments):
        (WebCore::RenderLayer::mapLayerClipRectsToFragmentationLayer):
        (WebCore::RenderLayer::calculateClipRects):
        * rendering/RenderLayer.h:
        * rendering/RenderNamedFlowFragment.cpp:
        (WebCore::RenderNamedFlowFragment::getRanges):
        * rendering/RenderNamedFlowFragment.h:
        * rendering/RenderNamedFlowThread.cpp:
        (WebCore::RenderNamedFlowThread::updateWritingMode):
        (WebCore::compareRenderNamedFlowFragments):
        (WebCore::addFragmentToList):
        (WebCore::RenderNamedFlowThread::addFragmentToNamedFlowThread):
        (WebCore::RenderNamedFlowThread::addRegionToThread):
        (WebCore::RenderNamedFlowThread::removeRegionFromThread):
        (WebCore::RenderNamedFlowThread::computeOversetStateForRegions):
        (WebCore::RenderNamedFlowThread::checkInvalidRegions):
        (WebCore::RenderNamedFlowThread::getRanges):
        (WebCore::RenderNamedFlowThread::checkRegionsWithStyling):
        (WebCore::RenderNamedFlowThread::clearRenderObjectCustomStyle):
        * rendering/RenderNamedFlowThread.h:
        * rendering/RenderRegion.cpp:
        * rendering/RenderRegion.h:
        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::shouldPaint):
        * rendering/RenderReplica.cpp:
        (WebCore::RenderReplica::paint):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::paint):
        * rendering/svg/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::paintReplaced):

2014-02-21  Andrei Bucur  <abucur@adobe.com>

        [CSS Regions] Regions don't paint correctly in new-multicol elements
        https://bugs.webkit.org/show_bug.cgi?id=120711

        Reviewed by David Hyatt.

        This patch implements basic support for regions inside multi-column elements.
        Currently, the painting and hit-testing logic of CSS Regions is not aware of
        enclosing multi-column elements. The change is integrated at a layer level by
        making use of the pre-computed layer fragments during the painting and hit-testing
        phases for regions.

        There are limitations such that self painting layers found inside the named flow
        thread layer will not be correctly processed because they don't go through the
        layer fragment collection step. This is not trivial to implement because the enclosing
        pagination layer provided by the multi-column element is not visibile from inside
        the named flow thread layer and they reside in different coordinate systems.

        A side effect of this patch is the fix of regions incorrect clipping in certain
        cases (when both a region and its container clip their overflow, the region's
        content is visible outside the container).

        Tests: fast/regions/region-clipping.html
               fast/regions/regions-in-multicol-bt.html
               fast/regions/regions-in-multicol-hover-overflow.html
               fast/regions/regions-in-multicol-hover.html
               fast/regions/regions-in-multicol-lr.html
               fast/regions/regions-in-multicol-rl.html
               fast/regions/regions-in-multicol.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayerContents):
        (WebCore::RenderLayer::hitTestLayer):
        (WebCore::RenderLayer::paintFlowThreadIfRegionForFragments):
        (WebCore::RenderLayer::hitTestFlowThreadIfRegionForFragments):
        * rendering/RenderLayer.h:

2014-02-21  Mihai Tica  <mitica@adobe.com>

        [CSS Blending] Refactor -webkit-blend-mode to -webkit-mix-blend-mode
        https://bugs.webkit.org/show_bug.cgi?id=128805

        Reviewed by Dean Jackson.

        The spec defines the mix-blend-mode property. This means that the
        prefixed version should be -webkit-mix-blend-mode, instead of
        -webkit-blend-mode.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::ComputedStyleExtractor::propertyValue):
        * css/CSSParser.cpp:
        (WebCore::isValidKeywordPropertyAndValue):
        (WebCore::isKeywordPropertyID):
        (WebCore::CSSParser::parseValue):
        * css/CSSPropertyNames.in:
        * css/DeprecatedStyleBuilder.cpp:
        (WebCore::DeprecatedStyleBuilder::DeprecatedStyleBuilder):

2014-02-21  Ryosuke Niwa  <rniwa@webkit.org>

        Bindings tests rebaseline after r164473.

        * bindings/scripts/test/ObjC/DOMTestObj.mm:
        (-[DOMTestObj mutablePoint]):
        (-[DOMTestObj immutablePoint]):
        (-[DOMTestObj mutablePointFunction]):
        (-[DOMTestObj immutablePointFunction]):
        * bindings/scripts/test/ObjC/DOMTestTypedefs.mm:
        (-[DOMTestTypedefs immutablePointFunction]):

2014-02-21  Tim Horton  <timothy_horton@apple.com>

        Remove removed symbol from exports list.

        * WebCore.exp.in:

2014-02-20  ChangSeok Oh  <changseok.oh@collabora.com>

        Rename EXT_draw_buffers to WEBGL_draw_buffers
        https://bugs.webkit.org/show_bug.cgi?id=128894

        Reviewed by Dean Jackson.

        I noticed the related spec has changed. Accordingly chromium also changed its implementation
        to meet the spec. So here I'd like to apply it to webkit as well.

        Merged from Blink (patch by bajones):
        https://src.chromium.org/viewvc/blink?revision=152065&view=revision

        Test: fast/canvas/webgl/webgl-draw-buffers.html

        * CMakeLists.txt:
        * DerivedSources.cpp:
        * DerivedSources.make:
        * GNUmakefile.list.am:
        * WebCore.vcxproj/WebCore.vcxproj:
        * WebCore.vcxproj/WebCore.vcxproj.filters:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSWebGLRenderingContextCustom.cpp:
        (WebCore::toJS):
        * html/canvas/EXTDrawBuffers.idl: Removed.
        * html/canvas/WebGLDrawBuffers.cpp: Renamed from Source/WebCore/html/canvas/EXTDrawBuffers.cpp.
        (WebCore::WebGLDrawBuffers::WebGLDrawBuffers):
        (WebCore::WebGLDrawBuffers::~WebGLDrawBuffers):
        (WebCore::WebGLDrawBuffers::getName):
        (WebCore::WebGLDrawBuffers::create):
        (WebCore::WebGLDrawBuffers::supported):
        (WebCore::WebGLDrawBuffers::drawBuffersWEBGL):
        (WebCore::WebGLDrawBuffers::satisfiesWebGLRequirements):
        * html/canvas/WebGLDrawBuffers.h: Renamed from Source/WebCore/html/canvas/EXTDrawBuffers.h.
        * html/canvas/WebGLDrawBuffers.idl: Added.
        * html/canvas/WebGLExtension.h:
        * html/canvas/WebGLFramebuffer.cpp:
        (WebCore::WebGLFramebuffer::drawBuffersIfNecessary):
        * html/canvas/WebGLRenderingContext.cpp:
        (WebCore::WebGLRenderingContext::getExtension):
        (WebCore::WebGLRenderingContext::getParameter):
        (WebCore::WebGLRenderingContext::getSupportedExtensions):
        (WebCore::WebGLRenderingContext::validateFramebufferFuncParameters):
        (WebCore::WebGLRenderingContext::supportsDrawBuffers):
        * html/canvas/WebGLRenderingContext.h:

2014-02-20  Ryosuke Niwa  <rniwa@webkit.org>

        m_ancestorDisabledState should never be unknown
        https://bugs.webkit.org/show_bug.cgi?id=129084

        Reviewed by Benjamin Poulain.

        In order to resolve the bug 129035, a text form control elements needs to synchronously change
        its inner text element's editability by setting or unsetting contenteditable content attribute.
        Before this patch, we could not do this because editability of a text form control dependent on
        its disabled-ness which was only computed lazily via updateAncestorDisabledState().

        This patch makes HTMLFieldSetElement and HTMLFormControlElement update this state synchronously.
        To avoid O(k) DOM traversal, where k is the depth of the tree, in insertedInto and removedFrom of
        HTMLFormControlElement on most pages, a new document-level flag, m_disabledFieldsetElementsCount,
        has been added to indicate whether the document contains any disabled fieldset or not.

        Also renamed the misleadingly named disabledAttributeChanged to disabledStateChanged, and added
        new function of the same name (disabledAttributeChanged) to be used by HTMLFieldSetElement
        for keeping the document-level flag up-to-date upon disabled attribute changes.

        Tests: fast/forms/fieldset/fieldset-disabled-2.html

        * dom/Document.cpp:
        (WebCore::Document::Document): Initializes newly added m_disabledFieldsetElementsCount.
        (WebCore::Document::~Document): Assert that we've done house keeping right.
        * dom/Document.h:
        (WebCore::Document::hasDisabledFieldsetElement): Added.
        (WebCore::Document::addDisabledFieldsetElement): Added.
        (WebCore::Document::removeDisabledFieldsetElement): Added.

        * html/HTMLFieldSetElement.cpp:
        (WebCore::HTMLFieldSetElement::~HTMLFieldSetElement): Removes itself from the owner document.

        (WebCore::updateFromControlElementsAncestorDisabledStateUnder): Added. Updates startNode and
        its descendants' ancestor disabled flag. We don't update controls under another disabled
        fieldset element since disabled-ness of those controls aren't affected by startNode.

        (WebCore::HTMLFieldSetElement::disabledAttributeChanged): Call addDisabledFieldsetElement and
        removeDisabledFieldsetElement to update the owner document's flag.

        (WebCore::HTMLFieldSetElement::disabledStateChanged): Renamed from disabledAttributeChanged. 
        Enable form control elements under the first legend element and disable or enable other
        descendent form controls in accordance with the presence of disabled content attribute.

        (WebCore::HTMLFieldSetElement::childrenChanged): Update disabled-ness of form controls under
        child legend elements because controls aren't disabled in the first legend element, and adding
        or removing child elements may have changed the first legend element.

        (WebCore::HTMLFieldSetElement::didMoveToNewDocument): Update the flag on the owner document.
        * html/HTMLFieldSetElement.h:

        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::HTMLFormControlElement):
        (WebCore::HTMLFormControlElement::computeIsDisabledByFieldsetAncestor): Returns boolean instead of
        updating m_ancestorDisabledState internally. Also renamed from updateAncestorDisabledState.

        (WebCore::HTMLFormControlElement::setAncestorDisabled): Replaced ancestorDisabledStateWasChanged.
        This function updates m_disabledByAncestorFieldset and calls disabledAttributeChanged as needed.

        (WebCore::HTMLFormControlElement::disabledAttributeChanged): Added. Calls disabledStateChanged.
        (WebCore::HTMLFormControlElement::disabledStateChanged): Renamed from disabledAttributeChanged.

        (WebCore::HTMLFormControlElement::insertedInto): Update m_disabledByAncestorFieldset if there is
        a possibility (i.e. the document contains any disabled fieldset element) that this form control
        is inserted under a disabled fieldset element.

        (WebCore::HTMLFormControlElement::removedFrom): If this form control element is not disabled by
        a fieldset ancestor, then there is nothing to do. If it is, then check to see if the element is
        still disabled now that we've lost some ancestors.

        (WebCore::HTMLFormControlElement::isDisabledFormControl): No longer updates m_ancestorDisabledState
        lazily since m_disabledByAncestorFieldset is never ambiguous now.

        * html/HTMLFormControlElement.h:
        (WebCore::HTMLFormControlElement::disabledByAncestorFieldset): Added.

2014-02-20  Zalan Bujtas  <zalan@apple.com>

        Remove redundant deviceScaleFactor() functions and make callers use Document::deviceScaleFactor() when accessible.
        https://bugs.webkit.org/show_bug.cgi?id=129137

        Reviewed by Simon Fraser.

        No change in behavior.

        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::createDeletionUI):
        * page/Page.cpp:
        * page/Page.h:
        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::GraphicsContext):
        * platform/graphics/GraphicsContext.h:
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::platformInit):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        (WebCore::RenderBoxModelObject::drawBoxSideFromPath):
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::imageSizeForError):
        (WebCore::RenderImage::paintReplaced):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::drawPlatformResizerImage):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::drawLineForBoxSide):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::paintProgressBar):
        * rendering/svg/SVGRenderingContext.cpp:
        (WebCore::SVGRenderingContext::calculateTransformationToOutermostCoordinateSystem):

2014-02-20  David Kilzer  <ddkilzer@apple.com>

        Stop generating Objective-C bindings for the SVG DOM
        <http://webkit.org/b/129107>

        Reviewed by Timothy Hatcher.

        Bug 114076 stopped compiling the Objective-C bindings for the
        SVG DOM, but we continued to generate the header and source
        files after that landed in r147822.  This patch also stops
        generating the unused header and source files.

        * DerivedSources.make:
        - Split BINDING_IDLS into NON_SVG_BINDING_IDLS and
          SVG_BINDING_IDLS so that they may operated on separately.
        - Define BINDING_IDLS again as the full list of IDL files.
        - Rename DOM_CLASSES to JS_DOM_CLASSES so that JavaScript
          bindings are still generated for all IDL files.
        - Add OBJC_DOM_CLASSES so that Objective-C bindings are only
          generated for non-SVG IDL files.

        * bindings/scripts/CodeGeneratorObjC.pm:
        (GetBaseClass):
        (GetPropertyAttributes):
        (AddIncludesForType):
        (GenerateHeader):
        (GenerateImplementation):
        - Remove support for SVG classes.

2014-02-20  Simon Fraser  <simon.fraser@apple.com>

        RenderBox::updateShapeOutsideInfoAfterStyleChange shows up on profiles
        https://bugs.webkit.org/show_bug.cgi?id=129075

        Reviewed by Dean Jackson.

        updateShapeOutsideInfoAfterStyleChange() showed up on profiles in content
        with no shapes. Avoid calling this if no style has shapeOutside().

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleDidChange):

2014-02-20  ChangSeok Oh  <changseok.oh@collabora.com>

        Remove unused chromium stuff in Extensions3D
        https://bugs.webkit.org/show_bug.cgi?id=129086

        Reviewed by Anders Carlsson.

        Remove GL_CHROMIUM_copy_texture and GL_CHROMIUM_flipy interfaces since they are used nowhere.

        No new tests since no functionality changed.

        * platform/graphics/Extensions3D.h:
        * platform/graphics/opengl/Extensions3DOpenGL.cpp:
        * platform/graphics/opengl/Extensions3DOpenGL.h:
        * platform/graphics/opengl/Extensions3DOpenGLES.cpp:
        * platform/graphics/opengl/Extensions3DOpenGLES.h:

2014-02-20  Joseph Pecoraro  <pecoraro@apple.com>

        [iOS] Assert / crash trying to draw empty checked input
        https://bugs.webkit.org/show_bug.cgi?id=129138

        Reviewed by Simon Fraser.

        Test: fast/forms/checkbox-empty-size.html

        * rendering/RenderThemeIOS.mm:
        (WebCore::shortened):
        Avoid a divide by 0, but checking for the condition upfront.

2014-02-20  Benjamin Poulain  <bpoulain@apple.com>

        Start fixing the view states driven by the WKScrollView
        https://bugs.webkit.org/show_bug.cgi?id=129140

        Reviewed by Tim Horton and Simon Fraser.

        * platform/graphics/ca/mac/TileController.mm:
        (WebCore::TileController::scaledExposedRect):
        That comment was more confusing than helping. FrameView-relative coordinates should not need
        scaling.

2014-02-20  Gyuyoung Kim  <gyuyoung.kim@samsung.com>

        Start to use std::unique_ptr for DragImageLoader
        https://bugs.webkit.org/show_bug.cgi?id=129078

        Reviewed by Ryosuke Niwa.

        As a step to use std::unique_ptr, this patch replace uses of OwnPtr and PassOwnPtr
        in the DragImageLoader class with std::unique_ptr. Besides DragImageLoader is set to
        non-copyable class.

        * dom/Clipboard.cpp:
        (WebCore::Clipboard::setDragImage):
        * dom/Clipboard.h:

2014-02-20  Brady Eidson  <beidson@apple.com>

        Move the image controls setting to Settings.in
        https://bugs.webkit.org/show_bug.cgi?id=129126

        Reviewed by Tim Horton.

        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        * page/Settings.in:

2014-02-20  Brady Eidson  <beidson@apple.com>

        Add very basic image control rendering
        https://bugs.webkit.org/show_bug.cgi?id=129080

        Reviewed by Tim Horton.

        Test: fast/images/image-controls-basic.html

        This patch is groundwork that adds a very basic image control that can render on top of images.

        * dom/Node.h:
        (WebCore::Node:: isImageControlsRootElement): Returns false, unless you are an ImageControls object.
        * html/HTMLAttributeNames.in:

        Teach HTMLImageElement how to understand an experimental attribute to install controls,
        how to actually build the DOM to attach to the shadow root, how to tear that DOM down,
        and how to make sure that Renderers are created for that DOM:
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::HTMLImageElement):
        (WebCore::HTMLImageElement::parseAttribute):
        (WebCore::HTMLImageElement::didAttachRenderers):
        (WebCore::HTMLImageElement::updateImageControls):
        (WebCore::HTMLImageElement::createImageControls):
        (WebCore::HTMLImageElement::destroyImageControls):
        (WebCore::HTMLImageElement::hasImageControls):
        (WebCore::HTMLImageElement::childShouldCreateRenderer):
        * html/HTMLImageElement.h:
        (WebCore::HTMLImageElement::hasShadowControls): For RenderImage to query when it is constructed. 

        Add a generic, platform independent ImageControls root element that does nothing:
        * html/shadow/ImageControlsRootElement.cpp: Added.
        (WebCore::ImageControlsRootElement::maybeCreate):
        (WebCore::ImageControlsRootElement::ImageControlsRootElement):
        (WebCore::ImageControlsRootElement::~ImageControlsRootElement):
        * html/shadow/ImageControlsRootElement.h: Added.

        Add a Mac-specific ImageControls root element that renders a 20x20 red box (for now):
        * html/shadow/mac/ImageControlsRootElementMac.cpp: Added.
        (WebCore::ImageControlsRootElementMac::ImageControlsRootElementMac):
        (WebCore::ImageControlsRootElementMac::~ImageControlsRootElementMac):
        (WebCore::ImageControlsRootElement::maybeCreate):
        (WebCore::ImageControlsRootElementMac::maybeCreate):
        * html/shadow/mac/ImageControlsRootElementMac.h: Added.

        Since much of the RenderMedia::layout() method is now required for RenderImage as well,
        move the logic to RenderImage. The extra work is controlled by a bool flag that will always
        be set for RenderMedias but will only be set for certain RenderImages:
        * rendering/RenderImage.cpp:
        (WebCore::RenderImage::RenderImage):
        (WebCore::RenderImage::canHaveChildren):
        (WebCore::RenderImage::layout):
        (WebCore::RenderImage::layoutShadowControls):
        * rendering/RenderImage.h:
        (WebCore::RenderImage::setHasShadowControls):
        (WebCore::RenderImage::shadowControlsNeedCustomLayoutMetrics):

        * rendering/RenderMedia.cpp:
        (WebCore::RenderMedia::RenderMedia):
        * rendering/RenderMedia.h:
        (WebCore::RenderMedia::shadowControlsNeedCustomLayoutMetrics):

        * WebCore.xcodeproj/project.pbxproj:

== Rolled over to ChangeLog-2014-02-20 ==