Timeline



May 27, 2014:

11:08 PM Changeset in webkit [169415] by bshafiei@apple.com
  • 5 edits in branches/safari-537.77-branch/Source

Versioning.

11:05 PM Changeset in webkit [169414] by bshafiei@apple.com
  • 1 copy in tags/Safari-537.77.1

New tag.

10:08 PM Changeset in webkit [169413] by commit-queue@webkit.org
  • 5 edits
    2 deletes in trunk

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

9:46 PM Changeset in webkit [169412] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebCore

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.

9:44 PM Changeset in webkit [169411] by Simon Fraser
  • 15 edits in trunk/Source

[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.

Source/WebCore:

  • 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):

Source/WebKit2:

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/Scrolling/RemoteScrollingTree.cpp:

(WebKit::RemoteScrollingTree::fixedPositionRect):

  • UIProcess/Scrolling/RemoteScrollingTree.h:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.mm:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterDelegatedScroll):
(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateChildNodesAfterScroll):

  • UIProcess/ios/RemoteScrollingCoordinatorProxyIOS.mm:

(WebKit::RemoteScrollingCoordinatorProxy::customFixedPositionRect):

9:44 PM Changeset in webkit [169410] by Simon Fraser
  • 18 edits in trunk/Source

Do some renaming in the scrolling tree
https://bugs.webkit.org/show_bug.cgi?id=133333

Reviewed by Tim Horton.

Source/WebCore:

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.

Source/WebKit2:

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.

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.cpp:

(WebKit::RemoteScrollingCoordinatorProxy::viewportChangedViaDelegatedScrolling):

  • UIProcess/Scrolling/RemoteScrollingCoordinatorProxy.h:
  • UIProcess/Scrolling/ios/ScrollingTreeOverflowScrollingNodeIOS.h:

(WebKit::ScrollingTreeOverflowScrollingNodeIOS::updateLayersAfterViewportChange):

9:44 PM Changeset in webkit [169409] by Simon Fraser
  • 7 edits
    2 copies in trunk/Source/WebCore

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.
9:44 PM Changeset in webkit [169408] by Simon Fraser
  • 4 edits in trunk/Source/WebCore

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):

6:33 PM Changeset in webkit [169407] by Bem Jones-Bey
  • 60 edits
    11 adds
    2 deletes in trunk

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.

Source/WebCore:
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.

LayoutTests:
Update existing tests to work with the proper behavior of viewport
units.

Add tests for some of the things fixed by this patch: handling of
viewport units in font sizes, with calc, and when the viewport is
resized without a reload.

The anonymous block and percent size child tests make sure that the
viewport unit updates still work properly when there is another
relative unit the depends on the size specified in viewport units.

  • css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-getStyle-expected.txt:
  • css3/viewport-percentage-lengths/css3-viewport-percentage-lengths-getStyle.html:
  • css3/viewport-percentage-lengths/resources/resize-test.js: Added.

(resizeTest):
(standardResizeTest):

  • css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block-expected.txt: Added.
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-anonymous-block.html: Added.
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-calc-expected.txt: Added.
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-calc.html: Added.
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child-expected.txt: Added.
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-percent-size-child.html: Added.
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size-expected.txt: Added.
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-relative-font-size.html: Added.
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-resize-expected.txt: Added.
  • css3/viewport-percentage-lengths/viewport-percentage-lengths-resize.html: Added.
  • fast/canvas/draw-focus-if-needed-expected.txt: Removed.
  • fast/canvas/draw-focus-if-needed.html: Removed.
  • fast/masking/parsing-clip-path-shape-expected.txt:
  • fast/masking/parsing-clip-path-shape.html:
  • fast/shapes/parsing/parsing-shape-lengths-expected.txt:
  • fast/shapes/parsing/parsing-shape-lengths.html:
5:28 PM Changeset in webkit [169406] by zoltan@webkit.org
  • 5 edits in trunk

[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.

Source/WebCore:
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):

LayoutTests:

  • fast/shapes/parsing/parsing-shape-outside-expected.txt:
  • fast/shapes/parsing/parsing-test-utils.js:
5:16 PM Changeset in webkit [169405] by ggaren@apple.com
  • 15 edits in trunk/Source/WebKit2

Some proof-reading of the WebKit2 API headerdoc
https://bugs.webkit.org/show_bug.cgi?id=133328

Reviewed by Anders Carlsson.

Consistently say "item" to reference back-forward list items.

Consistently say "webpage" instead of "page" or "web page".

Consistently say "navigation" instead of "load".

Plus a few fix-ups for run-on sentences, mismatched verb tense, and
mismatched singular vs plural.

  • UIProcess/API/Cocoa/WKBackForwardList.h:
  • UIProcess/API/Cocoa/WKBackForwardListItem.h:
  • UIProcess/API/Cocoa/WKBrowsingContextController.h:
  • UIProcess/API/Cocoa/WKBrowsingContextGroup.h:
  • UIProcess/API/Cocoa/WKFrameInfo.h:
  • UIProcess/API/Cocoa/WKNavigation.h:
  • UIProcess/API/Cocoa/WKNavigationAction.h:
  • UIProcess/API/Cocoa/WKNavigationDelegate.h:
  • UIProcess/API/Cocoa/WKProcessPool.h:
  • UIProcess/API/Cocoa/WKUIDelegate.h:
  • UIProcess/API/Cocoa/WKWebView.h:
5:02 PM Changeset in webkit [169404] by achristensen@apple.com
  • 2 edits in trunk/LayoutTests

Unreviewed Mac Gardening.

  • platform/mac/TestExpectations:

Skip webtiming-two-redirects.php which I forgot to re-skip in r169403.

4:32 PM Changeset in webkit [169403] by achristensen@apple.com
  • 5 edits in trunk/LayoutTests

Run web timing tests if web timing is enabled.
https://bugs.webkit.org/show_bug.cgi?id=133327

Reviewed by Ryosuke Niwa.

  • fast/dom/script-tests/webtiming-document-open.js:

(finishTest):

  • fast/dom/script-tests/webtiming-navigate-within-document.js:

(checkTimingNotChanged):
Use for in loop instead of Object.keys because properties are in prototype chain.

  • fast/dom/script-tests/webtiming.js:

Use performance.now instead of 0.

  • platform/mac/TestExpectations:

Made web timing tests skipped on Mountain Lion and Mavericks.

3:56 PM Changeset in webkit [169402] by commit-queue@webkit.org
  • 4 edits
    2 deletes in trunk

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

2:38 PM Changeset in webkit [169401] by mmaxfield@apple.com
  • 2 edits in trunk

Unreviewed post-commit ChangeLog fixup

2:34 PM Changeset in webkit [169400] by mmaxfield@apple.com
  • 5 edits
    2 adds in trunk

SVG TextRuns do not always get RenderingContexts
https://bugs.webkit.org/show_bug.cgi?id=133198

Reviewed by Simon Fraser.

Source/WebCore:
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.

LayoutTests:
See per-file comments.

  • svg/custom/list-items-with-svg-font-family-expected.txt: Added.
  • svg/custom/list-items-with-svg-font-family.html: Added. Make sure there is

no crash when styling list elements with SVG fonts.

2:14 PM Changeset in webkit [169399] by mmaxfield@apple.com
  • 4 edits
    2 adds in trunk

Caret's screen position does not update during an overflow scroll
https://bugs.webkit.org/show_bug.cgi?id=133256

Reviewed by Simon Fraser.

Source/WebCore:
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):

LayoutTests:
This test places the caret, inspects its position, scrolls, and then immediately inspects its
position again. The two positions should be different.

  • editing/input/caret-position-during-scroll-expected.txt: Added.
  • editing/input/caret-position-during-scroll.html: Added.
1:45 PM Changeset in webkit [169398] by timothy_horton@apple.com
  • 2 edits in trunk/Source/WebKit2

[wk2] PDFPlugin snapshots are misplaced
https://bugs.webkit.org/show_bug.cgi?id=133323

Reviewed by Simon Fraser.

  • WebProcess/Plugins/PDF/PDFPlugin.mm:

(WebKit::PDFPlugin::paintControlForLayerInContext):
(WebKit::PDFPlugin::snapshot):
Include the scroll offset in the snapshot translation,
and use the whole document size instead of just the view size.

12:47 PM Changeset in webkit [169397] by Lucas Forschler
  • 1 edit in branches/safari-537.77-branch/Source/JavaScriptCore/dfg/DFGAbstractState.cpp

Merge patch from <rdar://problem/16906035>.

11:53 AM Changeset in webkit [169396] by msaboff@apple.com
  • 2 edits in trunk/Tools

REGRESSION(r169265): sh: line 0: cd: ../.vm
https://bugs.webkit.org/show_bug.cgi?id=133242

Rubber stamped by Oliver Hunt.

Changed runAndMonitorTestRunnerCommand() to pass mysys as a string instead of an
array since the command may contain character escapes that don't work with the
array form of system().

  • Scripts/run-jsc-stress-tests:
11:35 AM Changeset in webkit [169395] by timothy_horton@apple.com
  • 5 edits in trunk/Source/WebCore

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.

11:35 AM Changeset in webkit [169394] by weinig@apple.com
  • 16 edits
    3 copies in trunk/Source/WebKit2

[WebKit2] Move WebPreferences macro definitions and key names into their own files
https://bugs.webkit.org/show_bug.cgi?id=133315

Reviewed by Anders Carlsson.

  • CMakeLists.txt:
  • Shared/WebPreferencesDefinitions.h: Copied from Source/WebKit2/Shared/WebPreferencesStore.h.
  • Shared/WebPreferencesKeys.cpp: Copied from Source/WebKit2/Shared/WebPreferencesStore.cpp.
  • Shared/WebPreferencesKeys.h: Copied from Source/WebKit2/Shared/WebPreferencesStore.h.
  • Shared/WebPreferencesStore.cpp:
  • Shared/WebPreferencesStore.h:
  • UIProcess/WebPreferences.cpp:
  • UIProcess/WebPreferences.h:
  • UIProcess/mac/WebContextMac.mm:
  • UIProcess/mac/WebPreferencesMac.mm:
  • UIProcess/mac/WebProcessProxyMac.mm:
  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/InjectedBundle/InjectedBundle.cpp:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:
  • WebProcess/WebPage/WebPage.cpp:
  • WebProcess/WebProcess.cpp:
11:31 AM Changeset in webkit [169393] by barraclough@apple.com
  • 2 edits in trunk/Source/WebKit2

Add UI process watchdog on iOS to ensure WebProcess connections close
https://bugs.webkit.org/show_bug.cgi?id=133200
<rdar://problem/16997983>

Mountain Lion build fix

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::ConnectionTerminationWatchdog::watchdogTimerFired):

11:30 AM Changeset in webkit [169392] by Lucas Forschler
  • 2 edits in branches/safari-537.77-branch/Source/WebCore

Merge fix for <rdar://problem/17020210>.

11:21 AM Changeset in webkit [169391] by barraclough@apple.com
  • 2 edits in trunk/Source/WebKit2

importance_assertion -> denap_assertion
https://bugs.webkit.org/show_bug.cgi?id=133294

iOS build fix

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::open):

10:59 AM Changeset in webkit [169390] by hyatt@apple.com
  • 3 edits
    3 adds in trunk

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.

Source/WebCore:
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):

LayoutTests:

  • fast/multicol/pagination/nested-transforms.html: Added.
  • platform/mac/fast/multicol/pagination/nested-transforms-expected.png: Added.
  • platform/mac/fast/multicol/pagination/nested-transforms-expected.txt: Added.
10:36 AM Changeset in webkit [169389] by barraclough@apple.com
  • 4 edits in trunk/Source/WebKit2

Add UI process watchdog on iOS to ensure WebProcess connections close
https://bugs.webkit.org/show_bug.cgi?id=133200
<rdar://problem/16997983>

Reviewed by Darin Adler.

When the WebProcessProxy wants to disconnect from a WebContent process it just drops the connection,
and hopes the connection closes. There is a watchdog thread in the ChildProcess to try to ensure this
happens.

On iOS the process may not be runnable at the time, preventing termination. Instead add a watchdog in
the UI process to make the process runnable, and to terminate if it doesn't quit in a timely fashion.

  • Platform/IPC/Connection.h:
    • added terminateSoon.
  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):

  • take an assertion to make the process runnable, and start a watchdog timer.

(IPC::ConnectionTerminationWatchdog::watchdogTimerFired):

  • if the process hasn't quit by the timer the watchdog fires, kill it.

(IPC::Connection::terminateSoon):

  • create a ConnectionTerminationWatchdog.
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::removeWebPage):

  • when disconnecting from a process, first tell it to terminateSoon.
10:36 AM Changeset in webkit [169388] by barraclough@apple.com
  • 3 edits in trunk/Source/WebKit2

importance_assertion -> denap_assertion
https://bugs.webkit.org/show_bug.cgi?id=133294

Patch by Gavin Barraclough <barraclough@apple.com> on 2014-05-26
Reviewed by Sam Weinig.

Update in accordance with API change. The importance assertion is used on
Mavericks & newer to ensure the WebContent process wakes from AppNap.

  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::Connection::open):

  • MACH_PORT_IMPORTANCE_RECEIVER -> MACH_PORT_DENAP_RECEIVER
  • Platform/IPC/mac/ImportanceAssertion.h:

(IPC::ImportanceAssertion::ImportanceAssertion):
(IPC::ImportanceAssertion::~ImportanceAssertion):

  • proc_importance_assertion -> proc_denap_assertion
10:33 AM Changeset in webkit [169387] by eric.carlson@apple.com
  • 4 edits
    2 adds in trunk

[Mac] media controls should prevent 'click' events from reaching the page
https://bugs.webkit.org/show_bug.cgi?id=133268

Source/WebCore:
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.

LayoutTests:
Reviewed by by Jer Noble.

  • media/media-controls-cancel-events-expected.txt: Added.
  • media/media-controls-cancel-events.html: Added.
9:45 AM Changeset in webkit [169386] by jonlee@apple.com
  • 3 edits in trunk/Source/WebCore

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.
9:36 AM Changeset in webkit [169385] by stavila@adobe.com
  • 26 edits in trunk/Source/WebCore

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:
9:30 AM Changeset in webkit [169384] by jberlin@webkit.org
  • 4 edits in trunk/Source/WebKit2

Revert r169362 since it broke the ML build.

  • Platform/IPC/Connection.h:
  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::ConnectionTerminationWatchdog::createConnectionTerminationWatchdog): Deleted.
(IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog): Deleted.
(IPC::ConnectionTerminationWatchdog::watchdogTimerFired): Deleted.
(IPC::Connection::terminateSoon): Deleted.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::removeWebPage):

9:25 AM Changeset in webkit [169383] by jonlee@apple.com
  • 14 edits in trunk

Update ENABLE(MEDIA_SOURCE) on Mac
https://bugs.webkit.org/show_bug.cgi?id=133141

Reviewed by Darin Adler.

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:

Source/WTF:

  • wtf/FeatureDefines.h: #ifdef unneeded for Mac since it's covered in the .xcconfigs.

LayoutTests:

  • platform/mac-mountainlion/js/dom/global-constructors-attributes-expected.txt:
  • platform/mac/TestExpectations:
  • platform/mac/js/dom/global-constructors-attributes-expected.txt:
8:12 AM Changeset in webkit [169382] by Michał Pakuła vel Rutka
  • 3 edits in trunk/LayoutTests

Unreviewed EFL gardening

Add failing tests to TestExpectations.

  • platform/efl-wk2/TestExpectations:
  • platform/efl/TestExpectations:
8:12 AM Changeset in webkit [169381] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Tools

[EFL] Change download url of freetype6
https://bugs.webkit.org/show_bug.cgi?id=133303

Reviewed by Csaba Osztrogonác.

freetype6 tarball isn't downloaded in Korea. So, we need to
change the url for now.

  • efl/jhbuild.modules:
7:27 AM Changeset in webkit [169380] by commit-queue@webkit.org
  • 92 edits in trunk

Remove BLOB guards
https://bugs.webkit.org/show_bug.cgi?id=132863

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-05-27
Reviewed by Csaba Osztrogonác.

.:

  • Source/cmake/OptionsEfl.cmake:
  • Source/cmake/OptionsGTK.cmake:
  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

  • 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):

Source/WebKit/mac:

  • Configurations/FeatureDefines.xcconfig:
  • WebView/WebView.mm:

(+[WebView _canHandleRequest:forMainFrame:]):

Source/WebKit2:

  • Configurations/FeatureDefines.xcconfig:
  • NetworkProcess/FileAPI/NetworkBlobRegistry.cpp:
  • NetworkProcess/FileAPI/NetworkBlobRegistry.h:
  • NetworkProcess/NetworkConnectionToWebProcess.cpp:

(WebKit::NetworkConnectionToWebProcess::didClose):
(WebKit::NetworkConnectionToWebProcess::blobSize):

  • NetworkProcess/NetworkConnectionToWebProcess.h:
  • NetworkProcess/NetworkConnectionToWebProcess.messages.in:
  • NetworkProcess/NetworkProcessPlatformStrategies.cpp:
  • NetworkProcess/NetworkProcessPlatformStrategies.h:
  • NetworkProcess/NetworkResourceLoader.cpp:

(WebKit::NetworkResourceLoader::NetworkResourceLoader):

  • WebProcess/FileAPI/BlobRegistryProxy.cpp:
  • WebProcess/FileAPI/BlobRegistryProxy.h:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.cpp:
  • WebProcess/WebCoreSupport/WebPlatformStrategies.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::canHandleRequest):

Source/WTF:

  • wtf/FeatureDefines.h:

Tools:

  • Scripts/webkitperl/FeatureList.pm:

WebKitLibraries:

  • win/tools/vsprops/FeatureDefines.props:
  • win/tools/vsprops/FeatureDefinesCairo.props:
4:31 AM Changeset in webkit [169379] by commit-queue@webkit.org
  • 7 edits in trunk

Allow building CMake based ports with WEB_REPLAY
https://bugs.webkit.org/show_bug.cgi?id=133154

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-05-27
Reviewed by Csaba Osztrogonác.

.:

  • Source/cmake/WebKitFeatures.cmake:
  • Source/cmakeconfig.h.cmake:

Source/JavaScriptCore:

  • CMakeLists.txt:

Source/WebCore:

  • CMakeLists.txt:
3:56 AM Changeset in webkit [169378] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GStreamer] Add missing <wtf/MathExtras.h> header
https://bugs.webkit.org/show_bug.cgi?id=133236

Patch by Adrian Perez de Castro <Adrian Perez de Castro> on 2014-05-27
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>

3:24 AM Changeset in webkit [169377] by berto@igalia.com
  • 2 edits in trunk/Tools

Remove leftover comment from r165182.

Rubber stamped by Carlos Garcia Campos.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestMultiprocess.cpp:
3:19 AM Changeset in webkit [169376] by Csaba Osztrogonác
  • 2 edits in trunk/Source/WebKit

Speculative Windows buildfix after r169358.

  • WebKit.vcxproj/WebKitExportGenerator/WebKitExports.def.in:
2:43 AM Changeset in webkit [169375] by Carlos Garcia Campos
  • 6 edits in releases/WebKitGTK/webkit-2.4

Merge r169352 - [GTK] WebProcess leaked when closing pages with network process enabled
https://bugs.webkit.org/show_bug.cgi?id=129684

Reviewed by Anders Carlsson.

Source/WebKit2:
The problem is that the web process is not notified when the UI
process closes the connection, because when close() is called on
the socket by the UI process, the socket is shared by another web
process launched later, preventing the connection from being
shut down. We need to set the CLOEXEC flag on the sockets file
descriptor to make sure they are not exposed to other processes.

  • Platform/IPC/Connection.h: Add ConnectionOptions parameter to

createPlatformConnection() with a default value compatible with
existing callers.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::createPlatformConnection): Set the CLOEXEC flag
on the client and server socket file descriptors depending on the
options passed.

  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

(WebKit::ProcessLauncher::launchProcess): Use
IPC::Connection::createPlatformConnection() instead of
socketpair() directly, setting the CLOEXEC flag on the server
before spawning the new process and on the client right after
spawning the new process.

Tools:
Enable the test to check that web processes finish when the web
view is destroyed.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestMultiprocess.cpp:
2:06 AM Changeset in webkit [169374] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4

Rollout r166161 - Unreviewed. Race condition when closing pages with network process enabled

1:08 AM Changeset in webkit [169373] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WTF

[GLIB] RunLoop::dispatch always executes the function on the main thread instead of the target thread.
https://bugs.webkit.org/show_bug.cgi?id=133291

Patch by Gwang Yoon Hwang <yoon@igalia.com> on 2014-05-27
Reviewed by Carlos Garcia Campos.

GMainLoopSource::schedule[AfterDelay] must be used with the appropriate
GMainContext. Because current implementations in RunLoopGtk passes nullptr
instead of its runLoopContext when using GMainLoopSource, all of dispatched
functions are executed on the main thread regardless of which runloops is used.

This patch fixes the issue by passing the m_runLoopContext instead the default
parameter to the GMainLoopSource::schedule[AfterDelay].

  • wtf/gtk/RunLoopGtk.cpp:

(WTF::RunLoop::wakeUp):
(WTF::RunLoop::TimerBase::start):

12:17 AM Changeset in webkit [169372] by Manuel Rego Casasnovas
  • 6 edits in trunk/Source/WebCore

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().

12:05 AM Changeset in webkit [169371] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[EFL] Add LLVM as optional jhbuild module for FTL developers
https://bugs.webkit.org/show_bug.cgi?id=133216

Patch by Tibor Meszaros <tmeszaros.u-szeged@partner.samsung.com> on 2014-05-26
Reviewed by Gyuyoung Kim.

  • efl/jhbuild.modules:

May 26, 2014:

11:14 PM Changeset in webkit [169370] by timothy_horton@apple.com
  • 15 edits in trunk/Source

[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.

  • Shared/mac/RemoteLayerBackingStore.mm:

(WebKit::RemoteLayerBackingStore::display):
Let the context know whenever a RemoteLayerBackingStore is displayed, so that
RemoteLayerBackingStoreCollection can (if needed) note that the backing store
is active once again (because we only display parented backing store).

(WebKit::RemoteLayerBackingStore::setBufferVolatility):
Ensure that we never have live contexts attached to any buffers when
marking them volatile, because checking isInUse() with live contexts is futile.

  • Shared/mac/RemoteLayerBackingStoreCollection.h:
  • Shared/mac/RemoteLayerBackingStoreCollection.mm:

(WebKit::RemoteLayerBackingStoreCollection::RemoteLayerBackingStoreCollection):
(WebKit::RemoteLayerBackingStoreCollection::willFlushLayers):
(WebKit::RemoteLayerBackingStoreCollection::willCommitLayerTree):
(WebKit::RemoteLayerBackingStoreCollection::didFlushLayers):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDestroyed):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreWillBeDisplayed):
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatileImmediately):
(WebKit::RemoteLayerBackingStoreCollection::markBackingStoreVolatile):
(WebKit::RemoteLayerBackingStoreCollection::backingStoreBecameUnreachable):
(WebKit::RemoteLayerBackingStoreCollection::volatilityTimerFired):
(WebKit::RemoteLayerBackingStoreCollection::scheduleVolatilityTimer):
(WebKit::RemoteLayerBackingStoreCollection::purgeabilityTimerFired): Deleted.
(WebKit::RemoteLayerBackingStoreCollection::schedulePurgeabilityTimer): Deleted.
Rename purgeable->volatile for accuracy.
Keep track of two sets of backing store: those which are active/parented, and
those which are not. Backing store is moved to the inactive set after building
the transaction in which its owning layer is unparented.
When backing store is unparented, try to mark it volatile immediately. Also,
mark the backing store property as dirty on the owning layer so that when
said layer is reparented, we encode the backing store in the commit that reparents it,
as the UI process will throw away its reference to the backing store when
the layer is unparented. Mark the front buffers of unparented layers as volatile,
in addition to the others.

  • Shared/mac/RemoteLayerTreeTransaction.h:

(WebKit::RemoteLayerTreeTransaction::layerIDsWithNewlyUnreachableBackingStore):

  • Shared/mac/RemoteLayerTreeTransaction.mm:

(WebKit::RemoteLayerTreeTransaction::encode):
(WebKit::RemoteLayerTreeTransaction::decode):
(WebKit::RemoteLayerTreeTransaction::setLayerIDsWithNewlyUnreachableBackingStore):
Include the list of layers (by ID) with backing store which just became unreachable in the transaction.

  • UIProcess/mac/RemoteLayerTreeHost.mm:

(WebKit::RemoteLayerTreeHost::updateLayerTree):
Clear the contents of layers which now have unreachable backing store.
Otherwise, the UI process would hold a 'use' on the IOSurface, and prevent
the Web process from marking it volatile.

  • WebProcess/WebPage/mac/RemoteLayerTreeContext.h:
  • WebProcess/WebPage/mac/RemoteLayerTreeContext.mm:

(WebKit::RemoteLayerTreeContext::backingStoreWillBeDisplayed):

  • WebProcess/WebPage/mac/RemoteLayerTreeDrawingArea.mm:

(WebKit::RemoteLayerTreeDrawingArea::flushLayers):
Give RemoteLayerBackingStoreCollection a shot at the RemoteLayerTreeTransaction,
so that it can fill in layerIDsWithNewlyUnreachableBackingStore.
Also, let it know when the flush begins and ends, so that it can keep track
of which layers were reached in the flush.

  • 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.

10:38 PM Changeset in webkit [169369] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/Tools

Fix test failures on python test
https://bugs.webkit.org/show_bug.cgi?id=133297

Reviewed by Dirk Schulze.

2 tests are failing because of unbounded local variable reference in test_importer.py.

  • Scripts/webkitpy/w3c/test_importer.py: Move local variable declaration to top.

(TestImporter.import_tests):

10:23 PM Changeset in webkit [169368] by pdr@google.com
  • 4 edits in trunk/Source/WebCore

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.

9:52 PM Changeset in webkit [169367] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[EFL][WK2] Fix EWK2BackForwardListTest test fails.
https://bugs.webkit.org/show_bug.cgi?id=133171

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-05-26
Reviewed by Gyuyoung Kim.

Use local test html pages instead of EWK2UnitTestServer, call ewk_view_url_set() to load test html pages.
Since even after setting no_proxy="localhost,127.0.0.1", still test server was unable to load the test
html pages for ewk2_back_forward_list tests, so changed to use local html pages.

  • UIProcess/API/efl/tests/test_ewk2_back_forward_list.cpp:

(TEST_F):

9:32 PM Changeset in webkit [169366] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit2

[EFL][WK2] Fix code style check errors in EFL API tests.
https://bugs.webkit.org/show_bug.cgi?id=133170

Patch by Shivakumar JM <shiva.jm@samsung.com> on 2014-05-26
Reviewed by Gyuyoung Kim.

Omit int when using unsigned modifier, as per coding style rules.

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestBase.cpp:

(EWK2UnitTest::EWK2UnitTestBase::SetUp):

  • UIProcess/API/efl/tests/UnitTestUtils/EWK2UnitTestEnvironment.h:

(EWK2UnitTest::EWK2UnitTestEnvironment::defaultWidth):
(EWK2UnitTest::EWK2UnitTestEnvironment::defaultHeight):

7:23 PM Changeset in webkit [169365] by gyuyoung.kim@samsung.com
  • 2 edits in trunk/LayoutTests

Fix wrong inclusion depth of js-test-pre.js in is-protocol-handler-registered.html
https://bugs.webkit.org/show_bug.cgi?id=133273

Reviewed by Darin Adler.

Can't use debug() due to wrong inclusion path.

  • fast/dom/NavigatorContentUtils/is-protocol-handler-registered.html:
7:22 PM Changeset in webkit [169364] by gyuyoung.kim@samsung.com
  • 1 edit
    2 moves
    1 add in trunk/LayoutTests

[EFL] Move navigator content utils's to own directory
https://bugs.webkit.org/show_bug.cgi?id=133275

Reviewed by Darin Adler.

Expected results need to be maintained by own directory because navigator content utils have been maintained by
own directory as well.

  • platform/efl/fast/dom/NavigatorContentUtils/register-protocol-handler-expected.txt: Renamed from LayoutTests/platform/efl/fast/dom/register-protocol-handler-expected.txt.
  • platform/efl/fast/dom/NavigatorContentUtils/unregister-protocol-handler-expected.txt: Renamed from LayoutTests/platform/efl/fast/dom/unregister-protocol-handler-expected.txt.
5:19 PM Changeset in webkit [169363] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

CSS JIT: Fix build error raised when CSS_SELECTOR_JIT_DEBUGGING is 1
https://bugs.webkit.org/show_bug.cgi?id=133266

Patch by Yusuke Suzuki <Yusuke Suzuki> on 2014-05-26
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):

5:02 PM Changeset in webkit [169362] by barraclough@apple.com
  • 4 edits in trunk/Source/WebKit2

Add UI process watchdog on iOS to ensure WebProcess connections close
https://bugs.webkit.org/show_bug.cgi?id=133200
<rdar://problem/16997983>

Reviewed by Darin Adler.

When the WebProcessProxy wants to disconnect from a WebContent process it just drops the connection,
and hopes the connection closes. There is a watchdog thread in the ChildProcess to try to ensure this
happens.

On iOS the process may not be runnable at the time, preventing termination. Instead add a watchdog in
the UI process to make the process runnable, and to terminate if it doesn't quit in a timely fashion.

  • Platform/IPC/Connection.h:
    • added terminateSoon.
  • Platform/IPC/mac/ConnectionMac.mm:

(IPC::ConnectionTerminationWatchdog::ConnectionTerminationWatchdog):

  • take an assertion to make the process runnable, and start a watchdog timer.

(IPC::ConnectionTerminationWatchdog::watchdogTimerFired):

  • if the process hasn't quit by the timer the watchdog fires, kill it.

(IPC::Connection::terminateSoon):

  • create a ConnectionTerminationWatchdog.
  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::removeWebPage):

  • when disconnecting from a process, first tell it to terminateSoon.
4:42 PM Changeset in webkit [169361] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

[GTK] GObject DOM bindings API break test fails in the tests bots
https://bugs.webkit.org/show_bug.cgi?id=133211

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-05-26
Reviewed by Martin Robinson.

When generating the built product archive on platform GTK, we need
to copy also the file gtkdoc-webkitdom.cfg and the directory
DerivedSources/webkitdom.

  • BuildSlaveSupport/built-product-archive:

(archiveBuiltProduct):

2:45 PM Changeset in webkit [169360] by benjamin@webkit.org
  • 4 edits
    15 adds in trunk

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.

Source/WebCore:
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):

LayoutTests:
The test coverage of :hover and :active was extremly poor.
Those new tests add coverage for the cases fixed by this patch.

  • fast/selectors/active-hover-quirks-expected.txt: Added.
  • fast/selectors/active-hover-quirks.html: Added.
  • fast/selectors/active-hover-strict-expected.txt: Added.
  • fast/selectors/active-hover-strict.html: Added.
  • fast/selectors/active-quirks-expected.txt: Added.
  • fast/selectors/active-quirks.html: Added.
  • fast/selectors/active-strict-expected.txt: Added.
  • fast/selectors/active-strict.html: Added.
  • fast/selectors/hover-quirks-expected.txt: Added.
  • fast/selectors/hover-quirks.html: Added.
  • fast/selectors/hover-strict-expected.txt: Added.
  • fast/selectors/hover-strict.html: Added.
  • fast/selectors/resources/hover-active-quirks-utility.js: Added.
  • selectors/resources/hover-active-strict-utility.js: Added.
1:18 PM Changeset in webkit [169359] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

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):

12:58 PM Changeset in webkit [169358] by Darin Adler
  • 11 edits
    4 adds in trunk

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.

Source/WebCore:
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.

Source/WTF:

  • wtf/text/AtomicString.cpp:

(WTF::AtomicString::addSlowCase): Change to take references instead of pointers since these
arguments can never be null.
(WTF::AtomicString::lower): Rearranged slightly to use PassRef in a more efficient but
slightly uglier way.
(WTF::AtomicString::convertToASCIILowercase): Added.

  • wtf/text/AtomicString.h: Updated for above changes.
  • wtf/text/StringImpl.cpp:

(WTF::StringImpl::convertToASCIILowercase): Added.

  • wtf/text/StringImpl.h: Updated for above.
  • wtf/text/WTFString.cpp:

(WTF::String::convertToASCIILowercase): Added.

  • wtf/text/WTFString.h: Updated for above.

LayoutTests:

  • fast/dom/getElementsByClassName/ASCII-case-insensitive-expected.txt: Added.
  • fast/dom/getElementsByClassName/ASCII-case-insensitive.html: Added.
  • fast/dom/getElementsByClassName/case-sensitive-expected.txt: Added.
  • fast/dom/getElementsByClassName/case-sensitive.html: Added.
11:01 AM Changeset in webkit [169357] by weinig@apple.com
  • 9 edits in trunk/Source/WebKit2

[WebKit2] Add better default preferences while keeping backward compatibility for the C-SPI
https://bugs.webkit.org/show_bug.cgi?id=133289

Reviewed by Anders Carlsson.

  • Shared/WebPreferencesStore.h:

Change a few defaults:

  • PluginsEnabled -> false
  • JavaEnabled -> false
  • JavaEnabledForLocalFiles -> false
  • StorageBlockingPolicy -> BlockThirdPartyStorage
  • UIProcess/API/C/WKPreferences.cpp:

(WKPreferencesCreate):
(WKPreferencesCreateWithIdentifier):

  • UIProcess/WebPageGroup.cpp:

(WebKit::WebPageGroup::WebPageGroup):
Switch to using WebPreferences::createWithLegacyDefaults().

  • UIProcess/WebPreferences.cpp:

(WebKit::WebPreferences::create):
(WebKit::WebPreferences::createWithLegacyDefaults):

  • UIProcess/WebPreferences.h:

Move create functions to the cpp file and add createWithLegacyDefaults() which keeps
the old defaults;

  • UIProcess/API/C/WKPreferencesRef.h:

Fix the comment.

  • UIProcess/API/Cocoa/WKPreferences.h:

Update the comment to reflect the new defaults.

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::updatePreferences):
Unconditionally set setShouldDispatchJavaScriptWindowOnErrorEvents() to true. This setting only
exists for legacy WebKit.

11:00 AM Changeset in webkit [169356] by mitz@apple.com
  • 6 edits in trunk/Source/WebKit2

[Cocoa] Rewrite WK_DESIGNATED_INITIALIZER in installed headers
https://bugs.webkit.org/show_bug.cgi?id=133290

Reviewed by Anders Carlsson.

  • Shared/API/Cocoa/WKFoundation.h: When WK_API_AVAILABILITY_ENABLED is defined, don’t

provide definitions of WK_DESIGNATED_INITIALIZER and WK_UNAVAILABLE, since those macros will
be rewritten out of the headers. When WK_API_AVAILABILITY_ENABLED isn’t defined, provide
definitions of the other two macros as appropriate for the target OS.

  • UIProcess/API/Cocoa/WKProcessPoolPrivate.h: Removed WK_DESIGNATED_INITIALIZER from a

category method declaration.

  • UIProcess/API/Cocoa/WKWebView.h: Mark the superclass designated initializer

-initWithCoder: as unavailable.

  • UIProcess/API/Cocoa/WKWebView.mm:

(-[WKWebView initWithCoder:]): Override this designated initializer of the superclass by
returning nil.

  • mac/rewrite-availability-macros.sh: Rewrite WK_DESIGNATED_INITIALIZER to

NS_DESIGNATED_INITIALIZER and WK_UNAVAILABLE to NS_UNAVAILABLE. Also make sure to process
all headers if the script has changed since the last time it was run.

10:45 AM Changeset in webkit [169355] by commit-queue@webkit.org
  • 6 edits in trunk

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

Broke CJK font fallback (Requested by ap on #webkit).

Reverted changeset:

"[Mac] WebProcess doesn't follow localization of UI process
when run as a service"
https://bugs.webkit.org/show_bug.cgi?id=133126
http://trac.webkit.org/changeset/169122

10:43 AM Changeset in webkit [169354] by fpizlo@apple.com
  • 25 edits
    53 adds in trunk

Latest emscripten life benchmark is 4x slower because the DFG doesn't realize that arithmetic on booleans is a thing
https://bugs.webkit.org/show_bug.cgi?id=133136

Reviewed by Oliver Hunt.

Source/JavaScriptCore:

Some key concepts:

  • Except for the prediction propagation and type fixup phases, which are super early in the pipeline, nobody has to know about the fact that booleans may flow into numerical operations because there will just be a BooleanToNumber node that will take a value and, if that value is a boolean, will convert it to the equivalent numerical value. It will have a BooleanUse mode where it will also speculate that the input is a boolean but it can also do UntypedUse in which case it will pass through any non-booleans. This operation is very easy to model in all of the compiler tiers.
  • No changes to the baseline JIT. The Baseline JIT will still believe that boolean inputs require taking the slow path and it will still report that it took slow path for any such operations. The DFG will now be smart enough to ignore baseline JIT slow path profiling on operations that were known to have had boolean inputs. That's a little quirky, but it's probably easier than modifying the baseline JIT to track booleans correctly.


4.1x speed-up on the emscripten "life" benchmark. Up to 10x speed-up on microbenchmarks.

  • bytecode/SpeculatedType.h:

(JSC::isInt32OrBooleanSpeculation):
(JSC::isInt32SpeculationForArithmetic):
(JSC::isInt32OrBooleanSpeculationForArithmetic):
(JSC::isInt32OrBooleanSpeculationExpectingDefined):
(JSC::isInt52Speculation):
(JSC::isMachineIntSpeculation):
(JSC::isFullNumberOrBooleanSpeculation):
(JSC::isFullNumberOrBooleanSpeculationExpectingDefined):
(JSC::isInt32SpeculationExpectingDefined): Deleted.
(JSC::isMachineIntSpeculationExpectingDefined): Deleted.
(JSC::isMachineIntSpeculationForArithmetic): Deleted.
(JSC::isBytecodeNumberSpeculationExpectingDefined): Deleted.
(JSC::isFullNumberSpeculationExpectingDefined): Deleted.

  • dfg/DFGAbstractInterpreterInlines.h:

(JSC::DFG::AbstractInterpreter<AbstractStateType>::executeEffects):

  • dfg/DFGAllocator.h:

(JSC::DFG::Allocator<T>::indexOf):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::makeSafe):
(JSC::DFG::ByteCodeParser::makeDivSafe):
(JSC::DFG::ByteCodeParser::handleIntrinsic):

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::performNodeCSE):

  • dfg/DFGClobberize.h:

(JSC::DFG::clobberize):

  • dfg/DFGCommon.h:
  • dfg/DFGConstantFoldingPhase.cpp:

(JSC::DFG::ConstantFoldingPhase::foldConstants):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::fixupNode):
(JSC::DFG::FixupPhase::fixIntConvertingEdge):
(JSC::DFG::FixupPhase::fixIntOrBooleanEdge):
(JSC::DFG::FixupPhase::fixDoubleOrBooleanEdge):
(JSC::DFG::FixupPhase::attemptToMakeIntegerAdd):
(JSC::DFG::FixupPhase::fixIntEdge): Deleted.

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::addSpeculationMode):
(JSC::DFG::Graph::valueAddSpeculationMode):
(JSC::DFG::Graph::arithAddSpeculationMode):
(JSC::DFG::Graph::addShouldSpeculateInt32):
(JSC::DFG::Graph::mulShouldSpeculateInt32):
(JSC::DFG::Graph::mulShouldSpeculateMachineInt):
(JSC::DFG::Graph::negateShouldSpeculateInt32):
(JSC::DFG::Graph::negateShouldSpeculateMachineInt):
(JSC::DFG::Graph::addImmediateShouldSpeculateInt32):
(JSC::DFG::Graph::mulImmediateShouldSpeculateInt32): Deleted.

  • dfg/DFGNode.h:

(JSC::DFG::Node::sawBooleans):
(JSC::DFG::Node::shouldSpeculateInt32OrBoolean):
(JSC::DFG::Node::shouldSpeculateInt32ForArithmetic):
(JSC::DFG::Node::shouldSpeculateInt32OrBooleanForArithmetic):
(JSC::DFG::Node::shouldSpeculateInt32OrBooleanExpectingDefined):
(JSC::DFG::Node::shouldSpeculateMachineInt):
(JSC::DFG::Node::shouldSpeculateDouble):
(JSC::DFG::Node::shouldSpeculateNumberOrBoolean):
(JSC::DFG::Node::shouldSpeculateNumberOrBooleanExpectingDefined):
(JSC::DFG::Node::shouldSpeculateNumber):
(JSC::DFG::Node::canSpeculateInt32):
(JSC::DFG::Node::canSpeculateInt52):
(JSC::DFG::Node::sourceFor):
(JSC::DFG::Node::shouldSpeculateInt32ExpectingDefined): Deleted.
(JSC::DFG::Node::shouldSpeculateMachineIntForArithmetic): Deleted.
(JSC::DFG::Node::shouldSpeculateMachineIntExpectingDefined): Deleted.
(JSC::DFG::Node::shouldSpeculateDoubleForArithmetic): Deleted.
(JSC::DFG::Node::shouldSpeculateNumberExpectingDefined): Deleted.

  • dfg/DFGNodeFlags.cpp:

(JSC::DFG::dumpNodeFlags):

  • dfg/DFGNodeFlags.h:

(JSC::DFG::nodeMayOverflow):
(JSC::DFG::nodeMayNegZero):
(JSC::DFG::nodeCanSpeculateInt32):
(JSC::DFG::nodeCanSpeculateInt52):

  • dfg/DFGNodeType.h:
  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::run):
(JSC::DFG::PredictionPropagationPhase::propagateToFixpoint):
(JSC::DFG::PredictionPropagationPhase::speculatedDoubleTypeForPrediction):
(JSC::DFG::PredictionPropagationPhase::propagate):
(JSC::DFG::PredictionPropagationPhase::doDoubleVoting):

  • dfg/DFGSafeToExecute.h:

(JSC::DFG::safeToExecute):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compileValueToInt32):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::compile):

  • ftl/FTLCapabilities.cpp:

(JSC::FTL::canCompile):

  • ftl/FTLLowerDFGToLLVM.cpp:

(JSC::FTL::LowerDFGToLLVM::compileNode):
(JSC::FTL::LowerDFGToLLVM::compileValueToInt32):
(JSC::FTL::LowerDFGToLLVM::compileBooleanToNumber):

  • runtime/JSCJSValue.h:
  • runtime/JSCJSValueInlines.h:

(JSC::JSValue::asInt32ForArithmetic):

  • tests/stress/max-boolean-exit.js: Added.

(foo):
(test):

  • tests/stress/mul-boolean-exit.js: Added.

(foo):
(test):

  • tests/stress/plus-boolean-exit.js: Added.

(foo):
(test):

  • tests/stress/plus-boolean-or-double.js: Added.

(foo):
(test):

  • tests/stress/plus-boolean-or-int.js: Added.

(foo):
(test):

LayoutTests:

  • js/regress/abs-boolean-expected.txt: Added.
  • js/regress/abs-boolean.html: Added.
  • js/regress/div-boolean-double-expected.txt: Added.
  • js/regress/div-boolean-double.html: Added.
  • js/regress/div-boolean-expected.txt: Added.
  • js/regress/div-boolean.html: Added.
  • js/regress/max-boolean-expected.txt: Added.
  • js/regress/max-boolean.html: Added.
  • js/regress/min-boolean-expected.txt: Added.
  • js/regress/min-boolean.html: Added.
  • js/regress/minus-boolean-double-expected.txt: Added.
  • js/regress/minus-boolean-double.html: Added.
  • js/regress/minus-boolean-expected.txt: Added.
  • js/regress/minus-boolean.html: Added.
  • js/regress/mod-boolean-double-expected.txt: Added.
  • js/regress/mod-boolean-double.html: Added.
  • js/regress/mod-boolean-expected.txt: Added.
  • js/regress/mod-boolean.html: Added.
  • js/regress/mul-boolean-double-expected.txt: Added.
  • js/regress/mul-boolean-double.html: Added.
  • js/regress/mul-boolean-expected.txt: Added.
  • js/regress/mul-boolean.html: Added.
  • js/regress/neg-boolean-expected.txt: Added.
  • js/regress/neg-boolean.html: Added.
  • js/regress/plus-boolean-arith-expected.txt: Added.
  • js/regress/plus-boolean-arith.html: Added.
  • js/regress/plus-boolean-double-expected.txt: Added.
  • js/regress/plus-boolean-double.html: Added.
  • js/regress/plus-boolean-expected.txt: Added.
  • js/regress/plus-boolean.html: Added.
  • js/regress/script-tests/abs-boolean.js: Added.
  • js/regress/script-tests/div-boolean-double.js: Added.
  • js/regress/script-tests/div-boolean.js: Added.
  • js/regress/script-tests/max-boolean.js: Added.
  • js/regress/script-tests/min-boolean.js: Added.
  • js/regress/script-tests/minus-boolean-double.js: Added.
  • js/regress/script-tests/minus-boolean.js: Added.
  • js/regress/script-tests/mod-boolean-double.js: Added.
  • js/regress/script-tests/mod-boolean.js: Added.
  • js/regress/script-tests/mul-boolean-double.js: Added.
  • js/regress/script-tests/mul-boolean.js: Added.
  • js/regress/script-tests/neg-boolean.js: Added.
  • js/regress/script-tests/plus-boolean-arith.js: Added.
  • js/regress/script-tests/plus-boolean-double.js: Added.
  • js/regress/script-tests/plus-boolean.js: Added.
  • js/regress/script-tests/sin-boolean.js: Added.
  • js/regress/sin-boolean-expected.txt: Added.
  • js/regress/sin-boolean.html: Added.
10:30 AM Changeset in webkit [169353] by andersca@apple.com
  • 3 edits in trunk/Source/WebKit2

Convert a couple of loops over to range-based for
https://bugs.webkit.org/show_bug.cgi?id=133287

Reviewed by Simon Fraser.

  • UIProcess/Plugins/PluginInfoStore.cpp:

(WebKit::PluginInfoStore::findPluginForMIMEType):
(WebKit::PluginInfoStore::findPluginForExtension):
(WebKit::PluginInfoStore::infoForPluginWithPath):

  • UIProcess/Plugins/mac/PluginProcessManagerMac.mm:

(WebKit::PluginProcessManager::setProcessSuppressionEnabled):

9:55 AM Changeset in webkit [169352] by Carlos Garcia Campos
  • 6 edits in trunk

[GTK] WebProcess leaked when closing pages with network process enabled
https://bugs.webkit.org/show_bug.cgi?id=129684

Reviewed by Anders Carlsson.

Source/WebKit2:
The problem is that the web process is not notified when the UI
process closes the connection, because when close() is called on
the socket by the UI process, the socket is shared by another web
process launched later, preventing the connection from being
shut down. We need to set the CLOEXEC flag on the sockets file
descriptor to make sure they are not exposed to other processes.

  • Platform/IPC/Connection.h: Add ConnectionOptions parameter to

createPlatformConnection() with a default value compatible with
existing callers.

  • Platform/IPC/unix/ConnectionUnix.cpp:

(IPC::Connection::createPlatformConnection): Set the CLOEXEC flag
on the client and server socket file descriptors depending on the
options passed.

  • UIProcess/Launcher/gtk/ProcessLauncherGtk.cpp:

(WebKit::ProcessLauncher::launchProcess): Use
IPC::Connection::createPlatformConnection() instead of
socketpair() directly, setting the CLOEXEC flag on the server
before spawning the new process and on the client right after
spawning the new process.

Tools:
Enable the test to check that web processes finish when the web
view is destroyed.

  • TestWebKitAPI/Tests/WebKit2Gtk/TestMultiprocess.cpp:
9:40 AM Changeset in webkit [169351] by andersca@apple.com
  • 2 edits in trunk/Source/WebKit2

Initialize WKWebViewConfiguration ivars lazily
https://bugs.webkit.org/show_bug.cgi?id=133270
<rdar://problem/17027606>

Reviewed by Sam Weinig.

Create a LazyInitialized class template and use it to lazily initialize WKWebViewConfiguration properties.

  • UIProcess/API/Cocoa/WKWebViewConfiguration.mm:

(LazyInitialized::get):
Initialize m_value with the given function if it hasn't been initialized already.

(LazyInitialized::set):
Update m_value and set m_isInitialized to true.

(LazyInitialized::peek):
Return m_value without initializing it.

(-[WKWebViewConfiguration description]):
Use getters so we'll initialize variables if needed.

(-[WKWebViewConfiguration copyWithZone:]):
Ditto.

(-[WKWebViewConfiguration processPool]):
(-[WKWebViewConfiguration setProcessPool:]):
(-[WKWebViewConfiguration preferences]):
(-[WKWebViewConfiguration setPreferences:]):
(-[WKWebViewConfiguration userContentController]):
(-[WKWebViewConfiguration setUserContentController:]):
(-[WKWebViewConfiguration _visitedLinkProvider]):
(-[WKWebViewConfiguration _setVisitedLinkProvider:]):
(-[WKWebViewConfiguration _websiteDataStore]):
(-[WKWebViewConfiguration _setWebsiteDataStore:]):
(-[WKWebViewConfiguration _contentProviderRegistry]):
(-[WKWebViewConfiguration _setContentProviderRegistry:]):
Pass initialization code to all getters.

(-[WKWebViewConfiguration _validate]):
Use getters.

(-[WKWebViewConfiguration init]): Deleted.

9:37 AM Changeset in webkit [169350] by Carlos Garcia Campos
  • 2 edits in trunk/Tools

REGRESSION(r164632): [GTK] Crash in generate-gtkdoc when rebasing docs
https://bugs.webkit.org/show_bug.cgi?id=133279

Reviewed by Philippe Normand.

generator.saw_warnings is only set by GTKDoc::generate(), so it
should only be used after generate.

  • gtk/generate-gtkdoc:

(generate_documentation_for_config): Do not check
generator.saw_warnings again, simply return the value returned by
generate_doc() which is generator.saw_warnings. When rebasing,
returns always False since there aren't warnings.

9:25 AM Changeset in webkit [169349] by commit-queue@webkit.org
  • 9 edits
    3 adds in trunk

[CSS Grid Layout] Implementation of the "grid" shorthand.
https://bugs.webkit.org/show_bug.cgi?id=132122

Patch by Javier Fernandez <jfernandez@igalia.com> on 2014-05-26
Reviewed by Darin Adler.

Source/WebCore:
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:

LayoutTests:
Layout Test for the basic functionality of the 'grid' shorthand. It was
also added a new javascript file with some utility functions.

  • fast/css-grid-layout/grid-shorthand-get-set-expected.txt: Added.
  • fast/css-grid-layout/grid-shorthand-get-set.html: Added.
  • fast/css-grid-layout/resources/grid-shorthand-parsing-utils.js: Added.

(testGridDefinitionsValues):
(testGridDefinitionsSetJSValues):
(testNonGridDefinitionsSetJSValues):
(checkGridDefinitionsSetJSValues):
(testGridDefinitionsSetBadJSValues):

9:11 AM Changeset in webkit [169348] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

Remove dead code from VM.cpp
https://bugs.webkit.org/show_bug.cgi?id=133284

Patch by Zsolt Borbely <zsborbely.u-szeged@partner.samsung.com> on 2014-05-26
Reviewed by Darin Adler.

This workaround was added in r127505. Since the clang is the
only used compiler in this case, this workaround is obsolete.

  • runtime/VM.cpp:

(JSC::enableAssembler):

9:11 AM Changeset in webkit [169347] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

W3C test importer should catch exceptions coming from HTML/CSS conversion
https://bugs.webkit.org/show_bug.cgi?id=133176

Patch by Youenn Fablet <youenn.fablet@crf.canon.fr> on 2014-05-26
Reviewed by Darin Adler.

Exceptions raised when converting HTML/CSS are caught.
Files for which conversion failed are still copied to the target directory.
Each individual conversion failure is logged.
Total conversion failure number is logged at the end of the import process.

  • Scripts/webkitpy/w3c/test_importer.py:

(TestImporter.import_tests):

9:08 AM Changeset in webkit [169346] by Alan Bujtas
  • 2 edits in trunk/Source/WebCore

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):

8:04 AM Changeset in webkit [169345] by Michał Pakuła vel Rutka
  • 3 edits in trunk/LayoutTests

Unreviewed EFL gardening

Remove expectations for now passing tests.

  • platform/efl-wk2/TestExpectations:
  • platform/efl/TestExpectations:
7:19 AM Changeset in webkit [169344] by commit-queue@webkit.org
  • 4 edits
    1 add in trunk/Tools

[GTK] Allow to run the tests on the native X display.
https://bugs.webkit.org/show_bug.cgi?id=133157

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-05-26
Reviewed by Benjamin Poulain.

This adds a new driver (xorgdriver) that runs the tests on the
X display referenced by the environment variable DISPLAY.

This new driver will be activated only if the environment variable
USE_NATIVE_XDISPLAY is defined. This can be used both for layout
tests and performance tests.

This patch also makes the script run-perf-tests to check the
system dependencies before starting the tests. Previously this
was not checked, and if the system dependencies were not met,
the script tried to execute the tests anyway, causing massive
failures. For example, if you had Xvfb not installed and you
wanted to use the Xvfb driver (the default on GTK and EFL),
run-perf-tests would not abort.

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner._parse_args): Check the system dependencies of
the driver before starting the tests.

  • Scripts/webkitpy/port/driver.py:

(Driver): Implement generic check_driver method.
(Driver.check_driver):
(Driver.check_driver.implementation):

  • Scripts/webkitpy/port/gtk.py:

(GtkPort._driver_class): Check for environment variable
USE_NATIVE_XDISPLAY to decide if the Xorg driver should be used.

  • Scripts/webkitpy/port/xorgdriver.py: Added.

(XorgDriver): Implement Xorg driver.
(XorgDriver.check_driver):
(XorgDriver._start):

7:16 AM Changeset in webkit [169343] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

REGRESSION(r166798): [GTK] [EFL] kill-old-processes should not kill dbus-daemon
https://bugs.webkit.org/show_bug.cgi?id=133215

Patch by Carlos Alberto Lopez Perez <clopez@igalia.com> on 2014-05-26
Reviewed by Csaba Osztrogonác.

This reverts r166798.

  • BuildSlaveSupport/kill-old-processes:

(main):

7:04 AM Changeset in webkit [169342] by Michał Pakuła vel Rutka
  • 2 edits in trunk/Tools

[EFL] Turn on ENABLE_CSS_FILTERS in build script
https://bugs.webkit.org/show_bug.cgi?id=133278

Reviewed by Gyuyoung Kim.

  • Scripts/webkitperl/FeatureList.pm: Add a build script condition missing in r169172.
6:57 AM Changeset in webkit [169341] by commit-queue@webkit.org
  • 2 edits in trunk/Source/JavaScriptCore

JSC CLoop warning fix
https://bugs.webkit.org/show_bug.cgi?id=133259

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-05-26
Reviewed by Darin Adler.

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

6:55 AM Changeset in webkit [169340] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

run-javascriptcore-tests warning fix on non Mac platforms
https://bugs.webkit.org/show_bug.cgi?id=133260

Patch by Eva Balazsfalvi <evab.u-szeged@partner.samsung.com> on 2014-05-26
Reviewed by Darin Adler.

  • Scripts/webkitdirs.pm:

(argumentsForConfiguration):

5:06 AM Changeset in webkit [169339] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

Remove WebKit2 framework from generate-forwarding-headers.pl
https://bugs.webkit.org/show_bug.cgi?id=133214

Since renaming WebKit2.framework to WebKit.framework is done and all WebKit2/*.h includes
were renamed to WebKit/*.h, generating forwarding headers for WebKit2/*.h framework style
headers is not necessary anymore.

Patch by Martin Hodovan <mhodovan.u-szeged@partner.samsung.com> on 2014-05-26
Reviewed by Darin Adler.

  • Scripts/generate-forwarding-headers.pl:
3:09 AM Changeset in webkit [169338] by Carlos Garcia Campos
  • 1 copy in releases/WebKitGTK/webkit-2.4.3

Tagging the WebKitGTK+ 2.4.3 release

3:01 AM Changeset in webkit [169337] by Carlos Garcia Campos
  • 4 edits in releases/WebKitGTK/webkit-2.4

Unreviewed. Update NEWS and Versions.m4 for 2.4.3 release.

.:

  • Source/autotools/Versions.m4: Bump version numbers.

Source/WebKit/gtk:

  • NEWS: Added release notes for 2.4.3.
3:00 AM Changeset in webkit [169336] by Carlos Garcia Campos
  • 3 edits in releases/WebKitGTK/webkit-2.4/Tools

Unreviewed. Fix make distcheck.

  • gtk/GNUmakefile.am: Remove generate-webkitdom-doc-files from

EXTRA_DIST and add webkitdom.py.

  • gtk/generate-gtkdoc:

(generate_documentation_for_config): Do not try to use
generator.saw_warnings when rebasing, it's only set when
generating the docs.

2:50 AM Changeset in webkit [169335] by Michał Pakuła vel Rutka
  • 5 edits in trunk

[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.

Source/WebCore:
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):

LayoutTests:

  • platform/efl-wk2/TestExpectations: Remove now passing test from test expectations.
2:48 AM Changeset in webkit [169334] by svillar@igalia.com
  • 9 edits
    2 adds in trunk

[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>

Source/WebCore:
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):

LayoutTests:
Added a new test case to verify the computed value for 'display'
in grid items. The test also checks that items are correctly
positioned inside the grid, i.e., they properly became grid
items.

Also removed ietestcenter's grid-items-002.html and
grid-items-003.html from the list of failing tests as they should
be working now.

  • fast/css-grid-layout/grid-item-display-expected.txt: Added.
  • fast/css-grid-layout/grid-item-display.html: Added.
  • ietestcenter/css3/grid/grid-items-002.htm: Fixed a typo and

replaced -webkit-grid-definition-* by -webkit-grid-template-*

  • ietestcenter/css3/grid/grid-items-003.htm: Ditto.
  • platform/efl/TestExpectations: Removed the two tests above.
  • platform/gtk/TestExpectations: Ditto.
  • platform/mac/TestExpectations: Ditto.
  • platform/win/TestExpectations: Ditto.
2:26 AM Changeset in webkit [169333] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebCore

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.

2:22 AM Changeset in webkit [169332] by zandobersek@gmail.com
  • 5 edits in trunk/Source/WebKit2

WebPage::setComposition(), WebPageProxy::didFindStringMatches() should take Vector parameters by const reference
https://bugs.webkit.org/show_bug.cgi?id=133264

Reviewed by Darin Adler.

Taking the Vector parameters in the two methods (invoked through the IPC message handling)
by value causes unnecessary copies. The methods don't modify the objects and don't want
or need fresh copies, hence they should take in const references to Vector objects.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didFindStringMatches):

  • UIProcess/WebPageProxy.h:
  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::setComposition):

  • WebProcess/WebPage/WebPage.h:
12:45 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
12:44 AM Changeset in webkit [169331] by Carlos Garcia Campos
  • 5 edits in releases/WebKitGTK/webkit-2.4/Source

[Stable] [GTK] GdiObject.h missing in WebKitGTK 2.4.1 tarball
https://bugs.webkit.org/show_bug.cgi?id=132814

Patch by Milan Crha <mcrha@redhat.com> on 2014-05-25
Reviewed by Carlos Garcia Campos.

Source/WebCore:

Add missing files and includes to fix the mingw32 build.

  • GNUmakefile.list.am:
  • platform/graphics/win/GraphicsContextCairoWin.cpp:

Source/WTF:

Add missing files to fix the mingw32 build.

  • GNUmakefile.list.am:
12:31 AM WebKitGTK/2.4.x edited by Carlos Garcia Campos
(diff)
12:30 AM Changeset in webkit [169330] by Carlos Garcia Campos
  • 4 edits
    2 adds in releases/WebKitGTK/webkit-2.4

Merge r169200 - Video is resumed with old playback rate.
https://bugs.webkit.org/show_bug.cgi?id=132905

Patch by Piotr Grad <p.grad@samsung.com> on 2014-05-22
Reviewed by Philippe Normand.

Source/WebCore:
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:

LayoutTests:

  • media/video-paused-0-rate-expected.txt: Added.
  • media/video-paused-0-rate.html: Added.
12:15 AM Changeset in webkit [169329] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[EFL] Fix build error in blob.cpp after r168435
https://bugs.webkit.org/show_bug.cgi?id=132678

Patch by Tanay C <tanay.c@samsung.com> on 2014-05-26
Reviewed by Alexey Proskuryakov.

  • fileapi/Blob.cpp:

(WebCore::Blob::size): Using isInBound to check range of local var
actualsize to resolve build error

Note: See TracTimeline for information about the timeline view.