Timeline


and

06/24/12:

23:34 Changeset [121140] by abarth@webkit.org
  • 2 edits in trunk/Source/WTF

Remove USE(CHROMIUM_NET) because it is unused
https://bugs.webkit.org/show_bug.cgi?id=89850

Reviewed by Eric Seidel.

I didn't see any mentions of CHROMIUM_NET when I grepped the Source
directory. Also, this USE macro isn't defined on OS(DARWIN) or
OS(ANDROID), which seems a bit odd given that Chromium uses the same
network stack on all platforms.

  • wtf/Platform.h:
23:21 Changeset [121139] by kkristof@inf.u-szeged.hu
  • 2 edits in trunk/LayoutTests

[Qt] Unreviewed gardening, skip new failing tests.

  • platform/qt/Skipped:
22:08 Changeset [121138] by kling@webkit.org
  • 2 edits in trunk/Source/WebKit2

REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages.
<rdar://problem/11686974>
<http://webkit.org/b/89659>

Unreviewed tests assertion fix, handleKeyboardEvent() should call didReceiveKeyEvent()
rather than didReceiveEvent().

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::handleKeyboardEvent):
(WebKit::WebPageProxy::didReceiveKeyEvent):

21:33 Changeset [121137] by ukai@chromium.org
  • 8 edits in trunk/Source/WebCore

Unreviewed compile error fix of Chromium Win Release.
Touch header files for ENABLE(CSS_VARIABLES) so that
it forces to rebuild files by changing ENABLE(CSS_VARIABLES)
in Sources/WebKit/chromium/features.gypi at r121129

  • css/CSSParserMode.h:
  • css/CSSValue.h:

(WebCore):

  • css/CSSVariableValue.h:
  • page/Settings.h:
  • rendering/style/RenderStyle.h:
  • rendering/style/StyleRareInheritedData.h:
  • rendering/style/StyleVariableData.h:
20:40 Changeset [121136] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

[Texmap] Minor cleanup for TextureMapper::accelerationMode()
https://bugs.webkit.org/show_bug.cgi?id=89825

Patch by Simon Hausmann <simon.hausmann@nokia.com> on 2012-06-24
Reviewed by Kenneth Rohde Christiansen.

Replace the virtual method with a simple member variable.

  • platform/graphics/texmap/TextureMapper.h:

(WebCore::TextureMapper::accelerationMode):
(WebCore::TextureMapper::TextureMapper):
(TextureMapper):

  • platform/graphics/texmap/TextureMapperGL.cpp:

(WebCore::TextureMapperGL::TextureMapperGL):

  • platform/graphics/texmap/TextureMapperGL.h:
  • platform/graphics/texmap/TextureMapperImageBuffer.h:

(WebCore::TextureMapperImageBuffer::TextureMapperImageBuffer):

20:32 Changeset [121135] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

[Qt] Enable <input type="color"> support by default
https://bugs.webkit.org/show_bug.cgi?id=89653

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-06-24
Reviewed by Kenneth Rohde Christiansen.

This feature is complete for Qt WebKit2. Enabling by default
will help to mature the implementation.

  • Scripts/webkitperl/FeatureList.pm:
  • qmake/mkspecs/features/features.pri:
20:28 Changeset [121134] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[WK2][Qt][EFL] Modify Qt specific code to common code
https://bugs.webkit.org/show_bug.cgi?id=89839

Patch by YoungTaeck Song <youngtaeck.song@samsung.com> on 2012-06-24
Reviewed by Noam Rosenthal.

Modify paintToGraphicsContext’s first argument QPainter to PlatformGraphicsContext to be used by both Qt and Efl.

  • UIProcess/WebLayerTreeRenderer.cpp:

(WebKit::WebLayerTreeRenderer::paintToGraphicsContext):

20:25 Changeset [121133] by joone@webkit.org
  • 3 edits in trunk/LayoutTests

Unreviewed GTK/EFL gardening after r121121.
Marked fast/forms/input-set-composition-scroll.html as known failure
tracked by the bug 89845.

  • platform/efl/TestExpectations:
  • platform/gtk/TestExpectations:
20:16 Changeset [121132] by mikelawther@chromium.org
  • 3 edits
    2 adds in trunk

CSS3 calc: transitions starting and ending with a calc expression move to end state
https://bugs.webkit.org/show_bug.cgi?id=89738

Reviewed by Tony Chang.

Source/WebCore:

The equality operator for CalculationValue was not working as expected. The
equality operator for OwnPtr is private, as OwnPtrs should always be different.
The OwnPtrs ended up getting cast to bool before being compared, and the
comparison was always returning true.

The comparison between OwnPtrs has been removed. It doesn't add value to compare
the raw pointers either, since OwnPtrs should always be unique. We cannot
ASSERT the uniqueness though, as it is legitimate to compare a CalculationValue
to itself.

Test: css3/calc/transition-start-end-with-calc.html

  • platform/CalculationValue.h:

(WebCore::CalculationValue::operator==):

LayoutTests:

  • css3/calc/transition-start-end-with-calc-expected.txt: Added.
  • css3/calc/transition-start-end-with-calc.html: Added.
19:25 Changeset [121131] by morrita@google.com
  • 4 edits in trunk/Source/WebCore

NodeRenderingContext::AttachingPhase is redundant.
https://bugs.webkit.org/show_bug.cgi?id=79220

Reviewed by Dimitri Glazkov.

This change removes NodeRenderingContext::AttachingPhase and
NodeRenderingContext::m_phase respectively. The state originally
represented as m_phase is naturally encoded into other member variables.

NodeRenderingContext::m_visualParentShadow is also replaced, with
a local variable parentScope.

Basically, what NodeRenderingContext wants to know is the parent of
the composed shadow tree and an optional insertion point where the
node is distributed. Once these becomes clear, m_phase is no longer required.
It was rather a historical artifact.

No new tests. No behavioral change.

  • dom/NodeRenderingContext.cpp: Replaced m_phase with implicit states.

(WebCore::NodeRenderingContext::NodeRenderingContext):
(WebCore::NodeRenderingContext::nextRenderer):
(WebCore::NodeRenderingContext::previousRenderer):
(WebCore::NodeRenderingContext::parentRenderer):
(WebCore::NodeRenderingContext::shouldCreateRenderer):
(WebCore::NodeRenderingContext::isOnEncapsulationBoundary):
(WebCore::NodeRenderingContext::isOnUpperEncapsulationBoundary):

  • dom/NodeRenderingContext.h:

(NodeRenderingContext):
(WebCore::NodeRenderingContext::parentNodeForRenderingAndStyle): Removed an assert which checks m_phase.
(WebCore::NodeRenderingContext::resetStyleInheritance): Removed an assert which checks m_phase.

  • html/shadow/InsertionPoint.h:

(WebCore::isInsertionPoint): Fix null case check.
(WebCore::isLowerEncapsulationBoundary): Renamed from isShadowBoundary()

19:14 Changeset [121130] by antti@apple.com
  • 2 edits in trunk/Source/WebCore

REGRESSION(r121124): LayoutTests/fast/block/inline-children-root-linebox-crash.html asserts
https://bugs.webkit.org/show_bug.cgi?id=89844

Reviewed by Dan Bernstein.

We need to check for the flipped writing mode and take the slow path if it is used.

  • rendering/RenderGeometryMap.cpp:

(WebCore::RenderGeometryMap::pushMappingsToAncestor):

19:03 Changeset [121129] by macpherson@chromium.org
  • 31 edits
    2 adds in trunk

Add runtime flag to enable/disable CSS variables (in addition to existing compile-time flag).
https://bugs.webkit.org/show_bug.cgi?id=89542

Reviewed by Dimitri Glazkov.

Source/WebCore:

Added fast/css/variables/build-supports-variables.html to test runtime flag in test environment.
Updated all other css variables tests to enable the runtime flag from JS.

  • css/CSSParser.cpp:

(WebCore::CSSParserContext::CSSParserContext):
(WebCore::operator==):
(WebCore::CSSParser::cssVariablesEnabled):
(WebCore):
(WebCore::CSSParser::detectDashToken):
(WebCore::CSSParser::lex):

  • css/CSSParser.h:

(CSSParser):

  • css/CSSParserMode.h:

(CSSParserContext):

  • page/Settings.h:

(Settings):
(WebCore::Settings::setCSSVariablesEnabled):
(WebCore::Settings::cssVariablesEnabled):

Source/WebKit/chromium:

  • features.gypi:
  • public/WebSettings.h:
  • src/WebSettingsImpl.cpp:

(WebKit::WebSettingsImpl::setExperimentalCSSVariablesEnabled):
(WebKit):

  • src/WebSettingsImpl.h:

(WebSettingsImpl):

18:47 Changeset [121128] by tkent@chromium.org
  • 5 edits
    2 adds in trunk

Selected option is not restored correctly
https://bugs.webkit.org/show_bug.cgi?id=89623

Reviewed by Hajime Morita.

Source/WebCore:

Details of the bug:
We saved a state of a <select> element as a string of which length was
the size of <select>'s children. e.g. If a <select> had five children
and the second and the fifth items were selected, the state string was:

".X..X"

This didn't work well if the structure of the children was updated after
parsing. For example,

  1. A page has the following <select> initially: <select multiple>

<option>Banana
<option>Lemon
<option>Orange
<option>Strawberry

<select>

  1. For some reasons, <option>Apple</option> is prepended to the children.
  2. Some items are selected.
  3. The page is unloaded. Selection state is saved.
  4. A user go back to the page again. A browser parses the page again.
  5. Try to restore the <select> state with the saved data at 4. But "Apple" is missing. The <select> has wrong selections.

Solution:
We save the state as a set of selected values. If "Banana" and
"Strawberry" are selected in the above <select>, we save two strings;
"Banana" and "Strawberry", not ".X..X".

Test: fast/forms/select/select-state-restore.html

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::saveFormControlState):
Store selected value strings to a FormControlState object.
(WebCore::HTMLSelectElement::searchOptionsForValue):
A helper function to find an <option> with the specified value.
(WebCore::HTMLSelectElement::restoreFormControlState):
Clear all of selections, then select options with saved values.
In order to avoid O(M x N) loop, we start searching at position we found
the previous value.

  • html/HTMLSelectElement.h: Declare searchOptionsForValue.
  • html/FormController.cpp:

(formStateSignature): Bump up the version because this is a incompatible
change.

LayoutTests:

  • fast/forms/select/select-state-restore-expected.txt: Added.
  • fast/forms/select/select-state-restore.html: Added.
18:46 Changeset [121127] by commit-queue@webkit.org
  • 13 edits in trunk

Add snap to css3-images image-resolution
https://bugs.webkit.org/show_bug.cgi?id=89745

Patch by David Barr <davidbarr@chromium.org> on 2012-06-24
Reviewed by Tony Chang.

Source/WebCore:

Due to floating point imprecision, it is difficult to be precise in dpcm.
So use PrimitiveValue::roundForImpreciseConversion rather than just floor.

No new tests; extended fast/css/image-resolution/image-resolution.html

  • css/CSSParser.cpp: Accept snap identifier in image-resolution property.

(WebCore::CSSParser::parseImageResolution): Map CSSValueSnap to identifier value from cssValuePool.

  • css/CSSValueKeywords.in: Add snap.
  • css/StyleBuilder.cpp: Extend ApplyPropertyImageResolution to apply RenderStyle::imageResolutionSnap.

(WebCore::ApplyPropertyImageResolution::applyInheritValue): Apply RenderStyle::imageResolutionSnap.
(WebCore::ApplyPropertyImageResolution::applyInitialValue): Apply RenderStyle::imageResolutionSnap.
(WebCore::ApplyPropertyImageResolution::applyValue): Map CSSValueSnap to ImageResolutionSnapPixels.

  • rendering/RenderImage.cpp: Extend conditions for recalculation of intrinsic size.

(WebCore::RenderImage::styleDidChange): Update intrinsic size if RenderStyle::imageResolutionSnap() has changed.
(WebCore::RenderImage::imageDimensionsChanged): Floor scale factor to int, round up if less than 0.01 away from ceiling.

  • rendering/style/RenderStyle.cpp: Include StyleRareInheritedData::m_imageResolutionSnap in style diff.

(WebCore::RenderStyle::diff): Map change in StyleRareInheritedData::m_imageResolutionSnap to StyleDifferenceLayout.

  • rendering/style/RenderStyle.h: Add RenderStyle::imageResolutionSnap, RenderStyle::setImageResolutionSnap, RenderStyle::initialImageResolutionSnap.
  • rendering/style/RenderStyleConstants.h: Add enum ImageResolutionSnap.
  • rendering/style/StyleRareInheritedData.cpp: Add StyleRareInheritedData::m_imageResolutionSnap.

(WebCore::StyleRareInheritedData::StyleRareInheritedData): Add m_imageResolutionSnap to default and copy constructor.
(WebCore::StyleRareInheritedData::operator==): Include m_imageResolutionSnap in comparison.

  • rendering/style/StyleRareInheritedData.h: Add StyleRareInheritedData::m_imageResolutionSnap.

(StyleRareInheritedData): Add 1-bit field StyleRareInheritedData::m_imageResolutionSnap.

LayoutTests:

  • fast/css/image-resolution/image-resolution-expected.txt:
  • fast/css/image-resolution/image-resolution.html:
17:41 Changeset [121126] by commit-queue@webkit.org
  • 13 edits in trunk/Source/WebCore

Unreviewed, rolling out r121106.
http://trac.webkit.org/changeset/121106
https://bugs.webkit.org/show_bug.cgi?id=89841

Caused 85% performance regressions on Dromaeo/jslib-modify-
jquery.html (Requested by rniwa on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-24

  • dom/Document.cpp:

(WebCore::Document::clearNodeListCaches):

  • dom/Document.h:

(Document):

  • dom/DynamicNodeList.cpp:

(WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList):

  • dom/DynamicNodeList.h:

(WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):

  • dom/Node.cpp:

(WebCore::Node::clearRareData):
(WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
(WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByTagNameNS):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
(WebCore::Node::radioNodeList):
(WebCore::NodeListsNodeData::invalidateCaches):
(WebCore):
(WebCore::NodeRareData::createNodeLists):

  • dom/NodeRareData.h:

(NodeListsNodeData):
(WebCore::NodeListsNodeData::adoptTreeScope):
(WebCore::NodeRareData::ensureNodeLists):
(NodeRareData):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::TreeScope):

  • dom/TreeScope.h:

(WebCore::TreeScope::addNodeListCache):
(WebCore::TreeScope::removeNodeListCache):
(WebCore::TreeScope::hasNodeListCaches):
(TreeScope):

  • dom/TreeScopeAdopter.cpp:

(WebCore::TreeScopeAdopter::moveTreeToNewScope):

  • html/LabelableElement.cpp:

(WebCore::LabelableElement::labels):

  • html/LabelsNodeList.cpp:

(WebCore::LabelsNodeList::LabelsNodeList):
(WebCore::LabelsNodeList::~LabelsNodeList):

  • html/RadioNodeList.cpp:

(WebCore::RadioNodeList::RadioNodeList):
(WebCore::RadioNodeList::~RadioNodeList):

17:29 Changeset [121125] by abarth@webkit.org
  • 6 edits in trunk/Source/WebCore

Change the type of the second argument of FrameSelection::revealSelection to use RevealExtentOption
https://bugs.webkit.org/show_bug.cgi?id=89833

Reviewed by Ryosuke Niwa.

As requested by Ryosuke Niwa. Rare boolean parameters are hard to read.

  • WebCore.exp.in:
  • editing/Editor.cpp:

(WebCore::Editor::revealSelectionAfterEditingOperation):

  • editing/Editor.h:

(Editor):

  • editing/FrameSelection.cpp:

(WebCore::FrameSelection::setSelection):
(WebCore::FrameSelection::revealSelection):

  • editing/FrameSelection.h:
17:14 Changeset [121124] by antti@apple.com
  • 5 edits in trunk/Source/WebCore

Optimize RenderGeometryMap mappings gathering
https://bugs.webkit.org/show_bug.cgi?id=89828

Reviewed by Simon Fraser.

RenderGeometryMap currently gathers mappings by climbing the rendering tree. This is slow and can produce
large number of mapping steps. In the common case we already have the child layer coordinates available in
the layer tree and we can just use that.

The combination of faster mappings gathering and fewer number of applying steps reduces time spent under
RenderLayerCompositor::computeCompositingRequirements to less than half when scrolling the mobile version
of twitter.com.

  • rendering/RenderGeometryMap.cpp:

(WebCore):
(WebCore::RenderGeometryMap::pushMappingsToAncestor):

Use pre-computed mapping from the layer tree when possible.

(WebCore::RenderGeometryMap::popMappingsToAncestor):

  • rendering/RenderGeometryMap.h:


Add some inline capacity.

(WebCore):
(RenderGeometryMap):

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::canUseConvertToLayerCoords):
(RenderLayer):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::addToOverlapMapRecursive):
(WebCore::RenderLayerCompositor::computeCompositingRequirements):

17:11 Changeset [121123] by simon.fraser@apple.com
  • 39 edits in trunk/Source

Rename isPositioned to isOutOfFlowPositioned for clarity
https://bugs.webkit.org/show_bug.cgi?id=89836

Reviewed by Antti Koivisto.

RenderObject and RenderStyle had an isPositioned() method that was
confusing, because it excluded relative positioning. Rename to
isOutOfFlowPositioned(), which makes it clearer that it only applies
to absolute and fixed positioning.

Simple rename; no behavior change.

Source/WebCore:

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::getPositionOffsetValue):

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::collectMatchingRulesForList):

  • dom/Text.cpp:

(WebCore::Text::rendererIsNeeded):

  • editing/DeleteButtonController.cpp:

(WebCore::isDeletableElement):

  • editing/TextIterator.cpp:

(WebCore::shouldEmitNewlinesBeforeAndAfterNode):

  • rendering/AutoTableLayout.cpp:

(WebCore::shouldScaleColumns):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::addToLine):
(WebCore::InlineFlowBox::placeBoxesInInlineDirection):
(WebCore::InlineFlowBox::requiresIdeographicBaseline):
(WebCore::InlineFlowBox::adjustMaxAscentAndDescent):
(WebCore::InlineFlowBox::computeLogicalBoxHeights):
(WebCore::InlineFlowBox::placeBoxesInBlockDirection):
(WebCore::InlineFlowBox::flipLinesInBlockDirection):
(WebCore::InlineFlowBox::computeOverflow):
(WebCore::InlineFlowBox::computeOverAnnotationAdjustment):
(WebCore::InlineFlowBox::computeUnderAnnotationAdjustment):

  • rendering/InlineIterator.h:

(WebCore::isIteratorTarget):

  • rendering/LayoutState.cpp:

(WebCore::LayoutState::LayoutState):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::MarginInfo::MarginInfo):
(WebCore::RenderBlock::styleWillChange):
(WebCore::RenderBlock::styleDidChange):
(WebCore::RenderBlock::addChildToContinuation):
(WebCore::RenderBlock::addChildToAnonymousColumnBlocks):
(WebCore::RenderBlock::containingColumnsBlock):
(WebCore::RenderBlock::columnsBlockForSpanningElement):
(WebCore::RenderBlock::addChildIgnoringAnonymousColumnBlocks):
(WebCore::getInlineRun):
(WebCore::RenderBlock::isSelfCollapsingBlock):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::addOverflowFromBlockChildren):
(WebCore::RenderBlock::expandsToEncloseOverhangingFloats):
(WebCore::RenderBlock::handlePositionedChild):
(WebCore::RenderBlock::moveRunInUnderSiblingBlockIfNeeded):
(WebCore::RenderBlock::collapseMargins):
(WebCore::RenderBlock::clearFloatsIfNeeded):
(WebCore::RenderBlock::simplifiedNormalFlowLayout):
(WebCore::RenderBlock::isSelectionRoot):
(WebCore::RenderBlock::blockSelectionGaps):
(WebCore::RenderBlock::clearFloats):
(WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
(WebCore::RenderBlock::markSiblingsWithFloatsForLayout):
(WebCore::isChildHitTestCandidate):
(WebCore::InlineMinMaxIterator::next):
(WebCore::RenderBlock::computeBlockPreferredLogicalWidths):
(WebCore::RenderBlock::firstLineBoxBaseline):
(WebCore::RenderBlock::lastLineBoxBaseline):
(WebCore::RenderBlock::updateFirstLetter):
(WebCore::shouldCheckLines):
(WebCore::getHeightForLineCount):
(WebCore::RenderBlock::adjustForBorderFit):
(WebCore::inNormalFlow):
(WebCore::RenderBlock::adjustLinePositionForPagination):
(WebCore::RenderBlock::adjustBlockChildForPagination):
(WebCore::RenderBlock::renderName):

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::shouldSkipCreatingRunsForObject):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlock::setMarginsForRubyRun):
(WebCore::RenderBlock::computeInlineDirectionPositionsForLine):
(WebCore::RenderBlock::computeBlockDirectionPositionsForLine):
(WebCore::RenderBlock::layoutInlineChildren):
(WebCore::requiresLineBox):
(WebCore::RenderBlock::LineBreaker::skipTrailingWhitespace):
(WebCore::RenderBlock::LineBreaker::skipLeadingWhitespace):
(WebCore::RenderBlock::LineBreaker::nextLineBreak):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::removeFloatingOrPositionedChildFromBlockLists):
(WebCore::RenderBox::styleWillChange):
(WebCore::RenderBox::styleDidChange):
(WebCore::RenderBox::updateBoxModelInfoFromStyle):
(WebCore::RenderBox::offsetFromContainer):
(WebCore::RenderBox::positionLineBox):
(WebCore::RenderBox::computeRectForRepaint):
(WebCore::RenderBox::computeLogicalWidthInRegion):
(WebCore::RenderBox::renderBoxRegionInfo):
(WebCore::RenderBox::computeLogicalHeight):
(WebCore::RenderBox::computePercentageLogicalHeight):
(WebCore::RenderBox::computeReplacedLogicalWidthUsing):
(WebCore::RenderBox::computeReplacedLogicalHeightUsing):
(WebCore::RenderBox::availableLogicalHeightUsing):
(WebCore::percentageLogicalHeightIsResolvable):

  • rendering/RenderBox.h:

(WebCore::RenderBox::stretchesToViewport):
(WebCore::RenderBox::isDeprecatedFlexItem):

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
(WebCore::RenderBoxModelObject::mapAbsoluteToLocalPoint):

  • rendering/RenderBoxModelObject.h:

(WebCore::RenderBoxModelObject::requiresLayer):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::childDoesNotAffectWidthOrFlexing):
(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
(WebCore::RenderDeprecatedFlexibleBox::renderName):

  • rendering/RenderFieldset.cpp:

(WebCore::RenderFieldset::findLegend):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::computePreferredLogicalWidths):
(WebCore::RenderFlexibleBox::autoMarginOffsetInMainAxis):
(WebCore::RenderFlexibleBox::availableAlignmentSpaceForChild):
(WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
(WebCore::RenderFlexibleBox::computeNextFlexLine):
(WebCore::RenderFlexibleBox::resolveFlexibleLengths):
(WebCore::RenderFlexibleBox::prepareChildForPositionedLayout):
(WebCore::RenderFlexibleBox::layoutAndPlaceChildren):
(WebCore::RenderFlexibleBox::layoutColumnReverse):
(WebCore::RenderFlexibleBox::adjustAlignmentForChild):
(WebCore::RenderFlexibleBox::flipForRightToLeftColumn):

  • rendering/RenderGrid.cpp:

(WebCore::RenderGrid::renderName):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::computeIntrinsicRatioInformation):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::addChildIgnoringContinuation):
(WebCore::RenderInline::addChildToContinuation):
(WebCore::RenderInline::generateCulledLineBoxRects):
(WebCore):
(WebCore::RenderInline::culledInlineFirstLineBox):
(WebCore::RenderInline::culledInlineLastLineBox):
(WebCore::RenderInline::culledInlineVisualOverflowBoundingBox):
(WebCore::RenderInline::computeRectForRepaint):
(WebCore::RenderInline::dirtyLineBoxes):

  • rendering/RenderLayer.cpp:

(WebCore::checkContainingBlockChainForPagination):
(WebCore::RenderLayer::updateLayerPosition):
(WebCore::isPositionedContainer):
(WebCore::RenderLayer::calculateClipRects):
(WebCore::RenderLayer::shouldBeNormalFlowOnly):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::requiresCompositingForPosition):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild):

  • rendering/RenderListItem.cpp:

(WebCore::getParentOfFirstLineBox):

  • rendering/RenderMultiColumnBlock.cpp:

(WebCore::RenderMultiColumnBlock::renderName):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::markContainingBlocksForLayout):
(WebCore::RenderObject::setPreferredLogicalWidthsDirty):
(WebCore::RenderObject::invalidateContainerPreferredLogicalWidths):
(WebCore::RenderObject::styleWillChange):
(WebCore::RenderObject::offsetParent):

  • rendering/RenderObject.h:

(WebCore::RenderObject::isOutOfFlowPositioned):
(WebCore::RenderObject::isInFlowPositioned):
(WebCore::RenderObject::hasClip):
(WebCore::RenderObject::isFloatingOrOutOfFlowPositioned):

  • rendering/RenderObjectChildList.cpp:

(WebCore::RenderObjectChildList::removeChildNode):

  • rendering/RenderReplaced.cpp:

(WebCore::hasAutoHeightOrContainingBlockWithAutoHeight):

  • rendering/RenderRubyRun.cpp:

(WebCore::RenderRubyRun::rubyText):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::addChild):
(WebCore::RenderTable::computeLogicalWidth):
(WebCore::RenderTable::layout):

  • rendering/style/RenderStyle.h:

Source/WebKit/blackberry:

  • Api/WebPage.cpp:

(BlackBerry::WebKit::isPositionedContainer):
(BlackBerry::WebKit::isNonRenderViewFixedPositionedContainer):
(BlackBerry::WebKit::isFixedPositionedContainer):

Source/WebKit2:

  • WebProcess/WebPage/qt/LayerTreeHostQt.cpp:

(WebKit::updateOffsetFromViewportForSelf):

16:07 Changeset [121122] by mitz@apple.com
  • 5 edits in trunk/Tools

Made debug-{minibrowser,safari,test-runner} work with LLDB.

Reviewed by Sam Weinig.

  • Scripts/debug-minibrowser: Pass INCLUDE_OPTIONS_FOR_DEBUGGING to

printHelpAndExitForRunAndDebugWebKitAppIfNeeded().

  • Scripts/debug-safari: Ditto.
  • Scripts/debug-test-runner: Ditto.
  • Scripts/webkitdirs.pm:

(debugger): Added. Calls determineDebugger() if needed and returns the chosen debugger.
(determineDebugger): Added. Sets the debugger to "lldb" if the --use-lldb switch is present,
and to "gdb" otherwise.
(printHelpAndExitForRunAndDebugWebKitAppIfNeeded): Changed to print help for the
--target-web-process and --use-lldb switches if passed INCLUDE_OPTIONS_FOR_DEBUGGING.
(execMacWebKitAppForDebugging): Changed to use the chosen debugger.

14:44 Changeset [121121] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

After Editor::setComposition is called, input should scroll to the end of the composition.
https://bugs.webkit.org/show_bug.cgi?id=88999

Patch by Oli Lan <olilan@chromium.org> on 2012-06-24
Reviewed by Ryosuke Niwa.

Source/WebCore:

This fixes an issue where after a call to setComposition, the start of the composition is revealed
(scrolled to) instead of the end (where the caret/editing point should be).

The change is to allow revealSelectionAfterEditingOperation to take a revealExtent parameter,
and to pass that parameter as true when calling from setIgnoreCompositionSelectionChange, which is
called at the end of setComposition.

Test: fast/forms/input-set-composition-scroll.html

  • editing/Editor.cpp:

(WebCore::Editor::revealSelectionAfterEditingOperation):
(WebCore::Editor::setIgnoreCompositionSelectionChange):

  • editing/Editor.h:

(Editor):

LayoutTests:

This tests that after setComposition is called, the input scrolls to the end of the composition
(i.e. that the end of the selection/composition is revealed).

  • fast/forms/input-set-composition-scroll-expected.txt: Added.
  • fast/forms/input-set-composition-scroll.html: Added.
11:44 Changeset [121120] by abarth@webkit.org
  • 2 edits in trunk/LayoutTests

The comment in test_expectations_android.txt is unclear as to the purpose of this file.
https://bugs.webkit.org/show_bug.cgi?id=89832

Reviewed by Ojan Vafai.

This patch attempts to clarify the purpose of this file and what will
happen to it in the future.

  • platform/chromium/test_expectations_android.txt:
10:25 Changeset [121119] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[EFL] Skip fast/text/hyphen-min-preferred-width.html
https://bugs.webkit.org/show_bug.cgi?id=89831

Unreviewed EFL gardening. Skip the auto-hyphenation added
in r121102 as the EFL port does not support the feature.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-06-24

  • platform/efl/TestExpectations:
09:29 Changeset [121118] by abarth@webkit.org
  • 2 edits in trunk/Tools

[Chromium] Release media resources after each LayoutTest on Android
https://bugs.webkit.org/show_bug.cgi?id=89720

Reviewed by Eric Carlson.

The LayoutTests can hang when run on Android because we sometimes run
out of media resources. This patch causes us to release our media
resources after each test in order to avoid running out of this
resource. In production, there are other mechanisms that manage this
resource.

  • DumpRenderTree/chromium/TestShell.cpp:

(TestShell::resetTestController):

08:26 WebKitGTK/WebKit2Roadmap edited by carlosgc@webkit.org
(diff)
08:06 Changeset [121117] by jsbell@chromium.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Simplify InspectorIndexedDBAgent to use IDB metadata API
https://bugs.webkit.org/show_bug.cgi?id=89495

Reviewed by Vsevolod Vlasov.

No new tests - no functional changes.

  • inspector/InspectorIndexedDBAgent.cpp:

(WebCore):

08:02 Changeset [121116] by joone@webkit.org
  • 1 edit
    8 adds in trunk/LayoutTests

Unreviewed EFL gardening, generating baselines required after r121085.

  • platform/efl/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
  • platform/efl/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
  • platform/efl/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
  • platform/efl/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt: Added.
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt: Added.
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt: Added.
  • platform/efl/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt: Added.
04:30 Changeset [121115] by zandobersek@gmail.com
  • 1 edit
    8 adds in trunk/LayoutTests

Unreviewed GTK gardening, generating baselines required after r121085.

  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
  • platform/gtk/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-center-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-justify-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-left-expected.txt: Added.
  • platform/gtk/fast/css/vertical-text-overflow-ellipsis-text-align-right-expected.txt: Added.
04:26 Changeset [121114] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening, move some flaky tests under the
proper section in the TestExpectations file and narrow down
test expectations for failures that were shown not to be flaky.

  • platform/gtk/TestExpectations:
01:15 Changeset [121113] by kling@webkit.org
  • 5 edits in trunk/Source/WebKit2

REGRESSION(r120329): Intermittent WebProcess shutdowns due to out-of-line DidReceiveEvent messages.
<rdar://problem/11686974>
<http://webkit.org/b/89659>

Reviewed by Sam Weinig.

Instead of sending DidReceiveEvent for key events as DispatchMessageEvenWhenWaitingForSyncReply,
use proper synchronous messages. This makes the WebProcess block while the UIProcess handles
the event but prevents a weird race condition where DidReceiveEvent gets dispatched just before
a synchronous DecidePolicyForNavigationAction and something happens below DidReceiveEvent that
invalidates the frame ID passed to DecidePolicyForNavigationAction.

This is a speculative fire-fighting fix.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::didReceiveKeyEvent):
(WebKit::WebPageProxy::didReceiveEvent):

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

(WebKit::WebPage::keyEvent):

00:27 Changeset [121112] by pfeldman@chromium.org
  • 4 edits in trunk/Source/WebCore

Web Inspector: speed up Timeline and Elements panel rendering
https://bugs.webkit.org/show_bug.cgi?id=89771

Reviewed by Yury Semikhatsky.

I used timeline panel to find unnecessary style operations.

  • inspector/front-end/ElementsTreeOutline.js:

(WebInspector.ElementsTreeElement.prototype.updateTitle):

  • inspector/front-end/TimelinePanel.js:

(WebInspector.TimelinePanel.prototype._updateEventDividers):
(WebInspector.TimelinePanel.prototype._updateFrames):
(WebInspector.TimelinePanel.prototype.sidebarResized):
(WebInspector.TimelinePanel.prototype.onResize):
(WebInspector.TimelinePanel.prototype._onScroll):
(WebInspector.TimelinePanel.prototype._refresh):
(WebInspector.TimelinePanel.prototype._refreshRecords):
(WebInspector.TimelinePanel.prototype._adjustScrollPosition):

06/23/12:

23:49 Changeset [121111] by vangelis@chromium.org
  • 4 edits in branches/chromium/1132/Source/WebCore

Revert 121000 - [chromium] LayerRendererChromium is not getting visibility messages in single threaded compositing mode.

This is an emergency fix for the 1132 chromium branch. A more correct fix is in bug 89045.

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

Reviewed by James Robinson.

  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:

(WebCore::CCLayerTreeHost::compositeAndReadback):
(WebCore::CCLayerTreeHost::setVisible):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::commitComplete):

  • platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:

(WebCore::CCSingleThreadProxy::setNeedsForcedCommit):

TBR=vangelis@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10658010

22:51 Changeset [121110] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening, skip the auto-hyphenation test
added in r121102 as the GTK port does not support the feature.

  • platform/gtk/TestExpectations:
22:32 Changeset [121109] by zandobersek@gmail.com
  • 4 edits in trunk

[Gtk] REGRESSION(r120918): Causes flaky DND tests
https://bugs.webkit.org/show_bug.cgi?id=89770

Reviewed by Martin Robinson.

Tools:

Connect to the run-file-chooser signal of the WebKitWebView and
return TRUE so no file chooser dialog is run. This prevents certain
test failures.

  • DumpRenderTree/gtk/DumpRenderTree.cpp:

(webViewRunFileChooser):
(createWebView):

LayoutTests:

Remove test expectations for fast/events/domactivate-sets-underlying-click-event-as-handled.html
as the test now passes since the file chooser dialog is no longer run.

  • platform/gtk/TestExpectations:
22:29 Changeset [121108] by kseo@webkit.org
  • 5 edits in trunk/Source/WebKit/chromium

[chromium] Return has value, in function returning void
https://bugs.webkit.org/show_bug.cgi?id=89822

Reviewed by Adam Barth.

A followup for r121091.

  • src/WebHistoryItem.cpp:

(WebKit::WebHistoryItem::setPageScaleFactor):

  • src/WebImageLayer.cpp:

(WebKit::WebImageLayer::setBitmap):

  • src/WebLayer.cpp:

(WebKit::WebLayer::setMaskLayer):

  • src/WebOptionElement.cpp:

(WebKit::WebOptionElement::setValue):
(WebKit::WebOptionElement::setDefaultSelected):

20:47 Changeset [121107] by kbr@google.com
  • 2 edits in trunk/LayoutTests

[chromium] Layout Test fast/text/hyphen-min-preferred-width.html is failing
https://bugs.webkit.org/show_bug.cgi?id=89820

Unreviewed gardening; marked test as known failure.

  • platform/chromium/TestExpectations:
20:13 Changeset [121106] by rniwa@webkit.org
  • 13 edits in trunk/Source/WebCore

Inserting nodes is slow due to Node::notifyNodeListsAttributeChanged (20%+)
https://bugs.webkit.org/show_bug.cgi?id=73853

Reviewed by Anders Carlsson and Ojan Vafai.

Invalidate all node lists at document level to avoid having to walk up the DOM tree in the invalidation.
In particular, this makes appending node O(1) with respect to the depth of the tree in common cases when
we have node lists somewhere in the tree scope.

We now invalidate more node lists than we used to but it shouldn't matter much in practice because
most websites don't add or remove nodes or modify relevant attributes while iterating through node lists.
The change would also register each node list to document thereby consuming one extra pointer, however,
this should not have a significant memory impact given we used to do it unintentionally until I fixed it in
r110797 three months ago.

Also, RadioNodeList and LabelsNodeList had always been invalidated at document level so this refactoring
also allows us to move calls to registerDynamicSubtreeNodeList and unregisterDynamicSubtreeNodeList in
those node lists to DynamicSubtreeNodeList, and even delete NodeListsNodeData::invalidateCaches().

In addition, removed m_numNodeListCaches from TreeScope since it was only used to avoid walking up
the ancestors in invalidateNodeListsCacheAfterAttributeChanged and invalidateNodeListsCacheAfterChildrenChanged
but we don't walk up the ancestors any more. Also note that m_listsInvalidatedAtDocument tells us exactly
how many node lists are present for each document.

  • dom/Document.cpp:

(WebCore::Document::clearNodeListCaches): Optionally takes a qualified attribute name so that we don't
have to invalidate tag node lists when only attributes are modified.

  • dom/Document.h:

(Document):

  • dom/DynamicNodeList.cpp:

(WebCore::DynamicSubtreeNodeList::~DynamicSubtreeNodeList): Calls unregisterDynamicSubtreeNodeList.

  • dom/DynamicNodeList.h:

(WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList): Calls registerDynamicSubtreeNodeList.

  • dom/Node.cpp:

(WebCore::Node::clearRareData):
(WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged): No longer walks up the tree to invalidate
node list caches. All invalidations are done in Document::clearNodeListCaches.
(WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged): Ditto.
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByTagNameNS):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
(WebCore::Node::radioNodeList):
(WebCore):
(WebCore::NodeRareData::createNodeLists):

  • dom/NodeRareData.h:

(NodeListsNodeData):
(WebCore::NodeListsNodeData::adoptTreeScope): Invalidate node list caches while registering and
unregistering node lists from old and new documents respectively now that invalidateCaches() has been
(WebCore::NodeRareData::ensureNodeLists):
(NodeRareData):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::TreeScope):

  • dom/TreeScope.h:

(TreeScope):

  • dom/TreeScopeAdopter.cpp:

(WebCore::TreeScopeAdopter::moveTreeToNewScope):

  • html/LabelableElement.cpp:

(WebCore::LabelableElement::labels):

  • html/LabelsNodeList.cpp:

(WebCore::LabelsNodeList::LabelsNodeList):
(WebCore::LabelsNodeList::~LabelsNodeList):

  • html/RadioNodeList.cpp:

(WebCore::RadioNodeList::RadioNodeList):
(WebCore::RadioNodeList::~RadioNodeList):

16:00 Changeset [121105] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Clang and cl.exe build fix after r121103. Don't inherit from WTF::PairHash<unsigned char, StringType>.

  • dom/NodeRareData.h:
14:34 Changeset [121104] by mitz@apple.com
  • 2 edits in trunk/Tools

debug-{minibrowser,safari,test-runner} fail when gdb is not installed in /usr/bin.

Reviewed by Sam Weinig.

  • Scripts/webkitdirs.pm:

(execMacWebKitAppForDebugging): Use xcrun to locate gdb.

14:30 Changeset [121103] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

REGRESSION(r120979): getElementsByTagName is 12% slower
https://bugs.webkit.org/show_bug.cgi?id=89783

Reviewed by Darin Adler.

The problem is that hashing std::pair<unsigned short, AtomicString> is very slow compared to just hashing AtomicString,
which internally holds a hash already. Fixed the regression by replacing the default hash function by the one that
computes AtomicString's hash + list type. This is okay because we only have 7 node list types at the moment.

  • dom/NodeRareData.h:

(NodeListsNodeData):
(WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::hash):
(NodeListCacheMapEntryHash):
(WebCore::NodeListsNodeData::NodeListCacheMapEntryHash::equal):
(WebCore::NodeListsNodeData::namedNodeListKey):

14:23 Changeset [121102] by mitz@apple.com
  • 3 edits
    2 adds in trunk

RenderText’s minimum preferred width is incorrect automatic hyphenation is used
https://bugs.webkit.org/show_bug.cgi?id=89814

Reviewed by Sam Weinig.

Source/WebCore:

Test: fast/text/hyphen-min-preferred-width.html

  • rendering/RenderText.cpp:

(WebCore::maxWordFragmentWidth): Added this helper function. It returns the width of the
widest hyphenated fragment of the word (except for the suffix after the last hyphen) and
the offset of the last hyphenation opportunity.
(WebCore::RenderText::computePreferredLogicalWidths): Changed this function to consider the
widths of hyphenated word fragments rather than entire words when computing the minimum
width. Because hyphenating and measuring all fragments is expensive, hyphenation is only
attempted if the unhyphenated word is wider than the current minimum width.

LayoutTests:

  • fast/text/hyphen-min-preferred-width-expected.html: Added.
  • fast/text/hyphen-min-preferred-width.html: Added.
12:28 Changeset [121101] by kbr@google.com
  • 2 edits in trunk/LayoutTests

Unreviewed Chromium gardening. Marked tests flaky per bugs 89812
and 89813.

  • platform/chromium/TestExpectations:
08:36 Changeset [121100] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening, adding test expectations for two
flaky media tests.

  • platform/gtk/TestExpectations:
06:43 Changeset [121099] by carlosgc@webkit.org
  • 2 edits in trunk/Tools

Unreviewed. Skip GTK+ unit test /webkit2/WebKitFindController/hide.

It fails always when running it in Xvfb.

  • gtk/run-api-tests:

(TestRunner):

06:41 Changeset [121098] by zandobersek@gmail.com
  • 121 edits in trunk/Source

Unreviewed, rolling out r121058.
http://trac.webkit.org/changeset/121058
https://bugs.webkit.org/show_bug.cgi?id=89809

Patch causes plugins tests to crash in GTK debug builds
(Requested by zdobersek on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-23

Source/JavaScriptCore:

  • API/APIShims.h:

(JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock):
(JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock):
(APIEntryShimWithoutLock):
(JSC::APIEntryShim::APIEntryShim):
(APIEntryShim):
(JSC::APICallbackShim::~APICallbackShim):

  • API/JSContextRef.cpp:

(JSGlobalContextCreate):
(JSGlobalContextCreateInGroup):
(JSGlobalContextRelease):
(JSContextCreateBacktrace):

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  • heap/CopiedSpace.cpp:

(JSC::CopiedSpace::tryAllocateSlowCase):

  • heap/Heap.cpp:

(JSC::Heap::protect):
(JSC::Heap::unprotect):
(JSC::Heap::collect):
(JSC::Heap::setActivityCallback):
(JSC::Heap::activityCallback):
(JSC::Heap::sweeper):

  • heap/Heap.h:

(Heap):

  • heap/HeapTimer.cpp:

(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::invalidate):
(JSC::HeapTimer::timerDidFire):
(JSC):

  • heap/HeapTimer.h:

(HeapTimer):

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::doWork):
(JSC::IncrementalSweeper::create):

  • heap/IncrementalSweeper.h:

(IncrementalSweeper):

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::allocateSlowCase):

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::reap):

  • jsc.cpp:

(functionGC):
(functionReleaseExecutableMemory):
(jscmain):

  • runtime/Completion.cpp:

(JSC::checkSyntax):
(JSC::evaluate):

  • runtime/GCActivityCallback.h:

(DefaultGCActivityCallback):
(JSC::DefaultGCActivityCallback::create):

  • runtime/JSGlobalData.cpp:

(JSC::JSGlobalData::JSGlobalData):
(JSC::JSGlobalData::~JSGlobalData):
(JSC::JSGlobalData::sharedInstance):
(JSC::JSGlobalData::sharedInstanceInternal):

  • runtime/JSGlobalData.h:

(JSGlobalData):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::~JSGlobalObject):
(JSC::JSGlobalObject::init):

  • runtime/JSLock.cpp:

(JSC):
(JSC::createJSLockCount):
(JSC::JSLock::lockCount):
(JSC::setLockCount):
(JSC::JSLock::JSLock):
(JSC::JSLock::lock):
(JSC::JSLock::unlock):
(JSC::JSLock::currentThreadIsHoldingLock):
(JSC::JSLock::DropAllLocks::DropAllLocks):
(JSC::JSLock::DropAllLocks::~DropAllLocks):

  • runtime/JSLock.h:

(JSC):
(JSLock):
(JSC::JSLock::JSLock):
(JSC::JSLock::~JSLock):
(DropAllLocks):

  • runtime/WeakGCMap.h:

(JSC::WeakGCMap::set):

  • testRegExp.cpp:

(realMain):

Source/WebCore:

  • bindings/js/GCController.cpp:

(WebCore::collect):
(WebCore::GCController::garbageCollectSoon):
(WebCore::GCController::garbageCollectNow):
(WebCore::GCController::discardAllCompiledCode):

  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:

(WebCore::JSSQLStatementErrorCallback::handleEvent):

  • bindings/js/JSCustomVoidCallback.cpp:

(WebCore::JSCustomVoidCallback::handleEvent):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSInjectedScriptHostCustom.cpp:

(WebCore::InjectedScriptHost::nodeAsScriptValue):
(WebCore::JSInjectedScriptHost::inspectedObject):

  • bindings/js/JSInjectedScriptManager.cpp:

(WebCore::InjectedScriptManager::createInjectedScript):
(WebCore::InjectedScriptManager::canAccessInspectedWindow):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::JSLazyEventListener::initializeJSFunction):

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState::evaluate):

  • bindings/js/JSMutationCallbackCustom.cpp:

(WebCore::JSMutationCallback::handleEvent):

  • bindings/js/JSNodeFilterCondition.cpp:

(WebCore::JSNodeFilterCondition::acceptNode):

  • bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:

(WebCore::JSRequestAnimationFrameCallback::handleEvent):

  • bindings/js/JavaScriptCallFrame.cpp:

(WebCore::JavaScriptCallFrame::evaluate):

  • bindings/js/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::recompileAllJSFunctions):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/js/ScriptCachedFrameData.cpp:

(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):
(WebCore::ScriptCachedFrameData::clear):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::initScript):
(WebCore::ScriptController::updateDocument):
(WebCore::ScriptController::cacheableBindingRootObject):
(WebCore::ScriptController::bindingRootObject):
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::jsObjectForPluginElement):
(WebCore::ScriptController::clearScriptObjects):

  • bindings/js/ScriptControllerMac.mm:

(WebCore::ScriptController::windowScriptObject):

  • bindings/js/ScriptDebugServer.cpp:

(WebCore::ScriptDebugServer::dispatchDidPause):

  • bindings/js/ScriptEventListener.cpp:

(WebCore::eventListenerHandlerBody):
(WebCore::eventListenerHandlerLocation):

  • bindings/js/ScriptFunctionCall.cpp:

(WebCore::ScriptCallArgumentHandler::appendArgument):
(WebCore::ScriptFunctionCall::call):
(WebCore::ScriptFunctionCall::construct):
(WebCore::ScriptCallback::call):

  • bindings/js/ScriptObject.cpp:

(WebCore::ScriptGlobalObject::set):
(WebCore::ScriptGlobalObject::get):
(WebCore::ScriptGlobalObject::remove):

  • bindings/js/ScriptValue.cpp:

(WebCore::ScriptValue::getString):
(WebCore::ScriptValue::toInspectorValue):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::initScript):
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::disableEval):

  • bindings/objc/WebScriptObject.mm:

(_didExecute):
(-[WebScriptObject _setImp:originRootObject:rootObject:]):
(-[WebScriptObject _setOriginRootObject:andRootObject:]):
(-[WebScriptObject dealloc]):
(-[WebScriptObject finalize]):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):
(-[WebScriptObject setValue:forKey:]):
(-[WebScriptObject valueForKey:]):
(-[WebScriptObject removeWebScriptKey:]):
(-[WebScriptObject hasWebScriptKey:]):
(-[WebScriptObject stringRepresentation]):
(-[WebScriptObject webScriptValueAtIndex:]):
(-[WebScriptObject setWebScriptValueAtIndex:value:]):
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackImplementation):

  • bindings/scripts/test/JS/JSTestCallback.cpp:

(WebCore::JSTestCallback::callbackWithNoParam):
(WebCore::JSTestCallback::callbackWithClass1Param):
(WebCore::JSTestCallback::callbackWithClass2Param):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackWithBoolean):
(WebCore::JSTestCallback::callbackRequiresThisToPass):

  • bridge/NP_jsobject.cpp:

(_NPN_InvokeDefault):
(_NPN_Invoke):
(_NPN_Evaluate):
(_NPN_GetProperty):
(_NPN_SetProperty):
(_NPN_RemoveProperty):
(_NPN_HasProperty):
(_NPN_HasMethod):
(_NPN_Enumerate):
(_NPN_Construct):

  • bridge/c/c_class.cpp:

(JSC::Bindings::CClass::~CClass):
(JSC::Bindings::CClass::methodsNamed):
(JSC::Bindings::CClass::fieldNamed):

  • bridge/c/c_instance.cpp:

(JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
(JSC::Bindings::CInstance::invokeMethod):
(JSC::Bindings::CInstance::invokeDefaultMethod):
(JSC::Bindings::CInstance::invokeConstruct):
(JSC::Bindings::CInstance::getPropertyNames):

  • bridge/c/c_runtime.cpp:

(JSC::Bindings::CField::valueFromInstance):
(JSC::Bindings::CField::setValueToInstance):

  • bridge/c/c_utility.cpp:

(JSC::Bindings::convertValueToNPVariant):
(JSC::Bindings::convertNPVariantToValue):

  • bridge/jni/jni_jsobject.mm:

(JavaJSObject::call):
(JavaJSObject::eval):
(JavaJSObject::getMember):
(JavaJSObject::setMember):
(JavaJSObject::removeMember):
(JavaJSObject::getSlot):
(JavaJSObject::setSlot):
(JavaJSObject::toString):
(JavaJSObject::convertValueToJObject):
(JavaJSObject::convertJObjectToValue):

  • bridge/jni/jni_objc.mm:

(JSC::Bindings::dispatchJNICall):

  • bridge/jni/jsc/JNIUtilityPrivate.cpp:

(JSC::Bindings::convertValueToJValue):

  • bridge/jni/jsc/JavaClassJSC.cpp:

(JavaClass::JavaClass):
(JavaClass::~JavaClass):

  • bridge/jni/jsc/JavaInstanceJSC.cpp:

(JavaInstance::stringValue):

  • bridge/jni/jsc/JavaMethodJSC.cpp:

(appendClassName):
(JavaMethod::signature):

  • bridge/jni/jsc/JavaStringJSC.h:

(JSC::Bindings::JavaString::JavaString):
(JSC::Bindings::JavaString::~JavaString):
(JSC::Bindings::JavaString::utf8):
(JSC::Bindings::JavaString::init):

  • bridge/jsc/BridgeJSC.cpp:

(JSC::Bindings::Instance::createRuntimeObject):
(JSC::Bindings::Instance::newRuntimeObject):

  • bridge/objc/objc_instance.mm:

(ObjcInstance::moveGlobalExceptionToExecState):
(ObjcInstance::invokeObjcMethod):
(ObjcInstance::invokeDefaultMethod):
(ObjcInstance::setValueOfUndefinedField):
(ObjcInstance::getValueOfUndefinedField):

  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcField::valueFromInstance):
(JSC::Bindings::ObjcField::setValueToInstance):

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::convertValueToObjcValue):
(JSC::Bindings::convertNSStringToString):
(JSC::Bindings::convertObjcValueToValue):

  • bridge/qt/qt_instance.cpp:

(JSC::Bindings::QtInstance::~QtInstance):
(JSC::Bindings::QtInstance::getQtInstance):
(JSC::Bindings::QtInstance::newRuntimeObject):

  • bridge/qt/qt_pixmapruntime.cpp:

(JSC::Bindings::QtPixmapInstance::createPixmapRuntimeObject):

  • bridge/qt/qt_runtime.cpp:

(JSC::Bindings::convertValueToQVariant):
(JSC::Bindings::convertQVariantToValue):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):

  • bridge/qt/qt_runtime_qt4.cpp:

(JSC::Bindings::convertValueToQVariant):
(JSC::Bindings::convertQVariantToValue):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer):

  • html/HTMLImageLoader.cpp:

(WebCore::HTMLImageLoader::notifyFinished):

  • plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::stop):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::npObject):
(WebCore::PluginView::privateBrowsingStateChanged):

  • plugins/blackberry/PluginViewBlackBerry.cpp:

(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::getWindowInfo):

  • plugins/efl/PluginViewEfl.cpp:

(WebCore::PluginView::dispatchNPEvent):

  • plugins/gtk/PluginViewGtk.cpp:

(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):

  • plugins/mac/PluginViewMac.mm:

(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::dispatchNPEvent):

  • plugins/qt/PluginViewQt.cpp:

(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):

  • plugins/win/PluginViewWin.cpp:

(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowRect):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::injectInternalsObject):
(WebCoreTestSupport::resetInternalsObject):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::dropProtection):

Source/WebKit/blackberry:

  • Api/BlackBerryGlobal.cpp:

(BlackBerry::WebKit::clearMemoryCaches):

  • WebCoreSupport/ClientExtension.cpp:
  • WebCoreSupport/PagePopupBlackBerry.cpp:

(WebCore::PagePopupBlackBerry::installDomFunction):

  • WebKitSupport/DumpRenderTreeSupport.cpp:

(DumpRenderTreeSupport::computedStyleIncludingVisitedInfo):

Source/WebKit/efl:

  • ewk/ewk_frame.cpp:

(ewk_frame_script_execute):

  • ewk/ewk_view.cpp:

(ewk_view_js_object_add):

Source/WebKit/gtk:

  • WebCoreSupport/DumpRenderTreeSupportGtk.cpp:

(DumpRenderTreeSupportGtk::gcCountJavascriptObjects):

Source/WebKit/mac:

  • DOM/WebDOMOperations.mm:

(JSC):

  • Misc/WebCoreStatistics.mm:

(+[WebCoreStatistics javaScriptObjectsCount]):
(+[WebCoreStatistics javaScriptGlobalObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedGlobalObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]):
(+[WebCoreStatistics javaScriptObjectTypeCounts]):
(+[WebCoreStatistics shouldPrintExceptions]):
(+[WebCoreStatistics setShouldPrintExceptions:]):
(+[WebCoreStatistics memoryStatistics]):
(+[WebCoreStatistics javaScriptReferencedObjectsCount]):

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::evaluate):
(WebKit::NetscapePluginInstanceProxy::invoke):
(WebKit::NetscapePluginInstanceProxy::invokeDefault):
(WebKit::NetscapePluginInstanceProxy::construct):
(WebKit::NetscapePluginInstanceProxy::getProperty):
(WebKit::NetscapePluginInstanceProxy::setProperty):
(WebKit::NetscapePluginInstanceProxy::removeProperty):
(WebKit::NetscapePluginInstanceProxy::hasMethod):
(WebKit::NetscapePluginInstanceProxy::enumerate):
(WebKit::NetscapePluginInstanceProxy::addValueToArray):
(WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::wantsAllStreams):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView sendEvent:isDrawRect:]):
(-[WebNetscapePluginView privateBrowsingModeDidChange]):
(-[WebNetscapePluginView setWindowIfNecessary]):
(-[WebNetscapePluginView createPluginScriptableObject]):
(-[WebNetscapePluginView getFormValue:]):
(-[WebNetscapePluginView evaluateJavaScriptPluginRequest:]):
(-[WebNetscapePluginView webFrame:didFinishLoadWithReason:]):
(-[WebNetscapePluginView loadPluginRequest:]):
(-[WebNetscapePluginView _printedPluginBitmap]):

  • Plugins/WebPluginController.mm:

(+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
(-[WebPluginController stopOnePlugin:]):
(-[WebPluginController destroyOnePlugin:]):
(-[WebPluginController startAllPlugins]):
(-[WebPluginController addPlugin:]):

  • WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):

  • WebView/WebScriptDebugDelegate.mm:

(-[WebScriptCallFrame scopeChain]):
(-[WebScriptCallFrame evaluateWebScript:]):

  • WebView/WebView.mm:

(+[WebView _reportException:inContext:]):
(-[WebView aeDescByEvaluatingJavaScriptFromString:]):
(-[WebView _computedStyleIncludingVisitedInfo:forElement:]):

Source/WebKit/qt:

  • Api/qwebframe.cpp:

(QWebFramePrivate::addQtSenderToGlobalObject):
(QWebFrame::addToJavaScriptWindowObject):

  • WebCoreSupport/DumpRenderTreeSupportQt.cpp:

(DumpRenderTreeSupportQt::injectInternalsObject):
(DumpRenderTreeSupportQt::resetInternalsObject):

Source/WebKit/win:

  • WebCoreStatistics.cpp:

(WebCoreStatistics::javaScriptObjectsCount):
(WebCoreStatistics::javaScriptGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectsCount):
(WebCoreStatistics::javaScriptProtectedGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectTypeCounts):

  • WebFrame.cpp:

(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):

  • WebJavaScriptCollector.cpp:

(WebJavaScriptCollector::objectCount):

  • WebView.cpp:

(WebView::stringByEvaluatingJavaScriptFromString):
(WebView::reportException):
(WebView::elementFromJS):

Source/WebKit2:

  • Shared/mac/WebMemorySampler.mac.mm:

(WebKit::WebMemorySampler::sampleWebKit):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::javaScriptObjectsCount):
(WebKit::InjectedBundle::reportException):

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::callObject):
(WebKit::JSNPObject::callConstructor):
(WebKit::JSNPObject::put):
(WebKit::JSNPObject::deleteProperty):
(WebKit::JSNPObject::getOwnPropertyNames):
(WebKit::JSNPObject::propertyGetter):

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::hasMethod):
(WebKit::NPJSObject::invoke):
(WebKit::NPJSObject::invokeDefault):
(WebKit::NPJSObject::hasProperty):
(WebKit::NPJSObject::getProperty):
(WebKit::NPJSObject::setProperty):
(WebKit::NPJSObject::removeProperty):
(WebKit::NPJSObject::enumerate):
(WebKit::NPJSObject::construct):

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:

(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
(WebKit::NPRuntimeObjectMap::evaluate):
(WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::jsWrapperForWorld):
(WebKit::WebFrame::computedStyleIncludingVisitedInfo):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInMainFrame):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::getWebCoreStatistics):

05:31 Changeset [121097] by zandobersek@gmail.com
  • 2 edits in trunk/Source/WebKit2

Unreviewed build fix for GTK's WebKit2 build after r121093.

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewPopulateContextMenu):

05:21 Changeset [121096] by commit-queue@webkit.org
  • 6 edits in trunk/Source/WebCore

Store hit-test rect in HitTestPoint as Rect.
https://bugs.webkit.org/show_bug.cgi?id=89454

Patch by Allan Sandfeld Jensen <allan.jensen@nokia.com> on 2012-06-23
Reviewed by Darin Adler.

Calculate the rectangle early and store that instead of padding
to avoid recalculating the rectangle for every single element
hit tested.

No change in functionality. No new tests.

  • page/EventHandler.cpp:

(WebCore::EventHandler::bestClickableNodeForTouchPoint):
(WebCore::EventHandler::bestZoomableAreaForTouchPoint):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestPoint::HitTestPoint):
(WebCore::HitTestPoint::operator=):
(WebCore::HitTestPoint::setPoint):
(WebCore::hitTestPointIntersects):
(WebCore::HitTestPoint::intersects):
(WebCore::HitTestResult::addNodeToRectBasedTestResult):

  • rendering/HitTestResult.h:

(HitTestPoint):
(WebCore::HitTestPoint::boundingBox):
(WebCore::HitTestPoint::topPadding):
(WebCore::HitTestPoint::rightPadding):
(WebCore::HitTestPoint::bottomPadding):
(WebCore::HitTestPoint::leftPadding):
(HitTestResult):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::hitTestColumns):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::nodeAtPoint):

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

[GTK][WK2]Mis-spelt defaultWindowTitle
https://bugs.webkit.org/show_bug.cgi?id=89808

Patch by Wajahat Siddiqui <mdwajahatali.siddiqui@motorola.com> on 2012-06-23
Reviewed by Carlos Garcia Campos.

  • MiniBrowser/gtk/BrowserWindow.c:
04:29 Changeset [121094] by carlosgc@webkit.org
  • 2 edits in trunk/Source/WebKit2

Unreviewed. Fix several GTK+ unit tests.

GTK+ unit tests using WebViewTest::wait() started to fail due to a
bug introduced in r121093.

  • UIProcess/API/gtk/tests/WebViewTest.cpp:

(WebViewTest::wait): Use this instead of m_mainLoop as user data
for the idle callback.

03:55 Changeset [121093] by carlosgc@webkit.org
  • 17 edits
    10 adds in trunk/Source/WebKit2

[GTK] Add ContextMenu API to WebKit2 GTK+ API
https://bugs.webkit.org/show_bug.cgi?id=81011

Reviewed by Martin Robinson.

Add WebKitWebView::context-menu signal and WebKitContextMenu and
WebKitContextMenuItem objects to customize the default menu or
buils new menus.

  • GNUmakefile.list.am: Add new files to destination.
  • UIProcess/API/gtk/WebKitContextMenu.cpp: Added.

(webkitContextMenuFinalize):
(webkit_context_menu_init):
(webkit_context_menu_class_init):
(webkitContextMenuPopulate): Populate the given vector of
ContextMenuItems with the WebKitContextMenu items releasing the
items added to the vector.
(webkitContextMenuCreate): Create a new WebKitContextMenu for the
given WKArrayRef of WKContextMenuItemRef.
(webkitContextMenuSetParentItem): Set the parent menu item of the
menu. Used when a menu is added as a submenu of a menu item.
(webkitContextMenuGetParentItem): Return the parent menu item of
the menu.
(webkit_context_menu_new): Create a new WebKitContextMenu.
(webkit_context_menu_new_with_items): Create a new
WebKitContextMenu using the given list of WebKitContextMenuItem.
(webkit_context_menu_prepend): Add item at the beginning.
(webkit_context_menu_append): Add item at the end.
(webkit_context_menu_insert): Insert item at a random position.
(webkit_context_menu_move_item): Move an existing item to a new
position.
(webkit_context_menu_get_items): Get the list of items.
(webkit_context_menu_get_n_items): Get the number of items.
(webkit_context_menu_first): Get the first item.
(webkit_context_menu_last): Get the last item.
(webkit_context_menu_get_item_at_position): Get the item at the
given position.
(webkit_context_menu_remove): Remove the given item.
(webkit_context_menu_remove_all): Remove all items.

  • UIProcess/API/gtk/WebKitContextMenu.h: Added.
  • UIProcess/API/gtk/WebKitContextMenuActions.cpp: Added.

(webkitContextMenuActionIsCheckable): Check if the given stock
action is a toggle action.
(webkitContextMenuActionGetActionTag): Get the WebCore
ContextMenuAction corresponding to the given stock action.
(webkitContextMenuActionGetForContextMenuItem): Get the stock
action corresponding to the given WebCore ContextMenuAction.
(webkitContextMenuActionGetLabel): Get the label string of the
given stock action.

  • UIProcess/API/gtk/WebKitContextMenuActions.h: Added.
  • UIProcess/API/gtk/WebKitContextMenuActionsPrivate.h: Added.
  • UIProcess/API/gtk/WebKitContextMenuItem.cpp: Added.

(webkitContextMenuItemFinalize):
(webkit_context_menu_item_init):
(webkit_context_menu_item_class_init):
(checkAndWarnIfMenuHasParentItem): Check whether the given menu
is already inside another menu showing a warning in such case.
(webkitContextMenuItemSetSubMenu): Set the submenu of a menu item,
checking that the menu is not part of another menu and setting the
item as the parent of the submenu.
(webkitContextMenuItemCreate): Create a new WebKitContextMenuItem
for the given WKContextMenuItemRef.
(webkitContextMenuItemCreateForGtkItem): Create a new
WebKitContextMenuItem using the given GtkMenuItem.
(webkitContextMenuItemSetSubMenuFromGtkMenu): Set the given
GtkMenu as submenu of the item. This is used only to add Input
Methods submenu that is created by GTK.
(webkitContextMenuItemRelease): Release the WebCore
ContextMenuItem associated to the item.
(webkit_context_menu_item_new): Create a new WebKitContextMenuItem
for the given GtkAction.
(webkit_context_menu_item_new_from_stock_action): Create a new
WebKitContextMenuItem for a stock action.
(webkit_context_menu_item_new_from_stock_action_with_label):
Create a new WebKitContextMenuItem for a stock action using a
custom label.
(webkit_context_menu_item_new_with_submenu): Create a new
WebKitContextMenuItem with a submenu.
(webkit_context_menu_item_new_separator): Create a new separator
menu item.
(webkit_context_menu_item_get_action): Get the GtkAction of the item.
(webkit_context_menu_item_get_stock_action): Get the stock action
of the item.
(webkit_context_menu_item_is_separator): Whether item is a separator.
(webkit_context_menu_item_set_submenu): Set or replace the
submenu of the item.
(webkit_context_menu_item_get_submenu): Get the submenu of the item.

  • UIProcess/API/gtk/WebKitContextMenuItem.h: Added.
  • UIProcess/API/gtk/WebKitContextMenuItemPrivate.h: Added.
  • UIProcess/API/gtk/WebKitContextMenuPrivate.h: Added.
  • UIProcess/API/gtk/WebKitDefines.h:
  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkit_web_view_class_init): Add WebKitWebView::context-menu signal.
(getUnicodeMenuItemPosition): Helper function that returns the
position of the unicode menu item in the proposed context menu.
(webkitWebViewCreateAndAppendInputMethodsMenuItem): Use
WebKitContextMenu API to add the input methods submenu to the
default context menu.
(webkitWebViewPopulateContextMenu): Create a WebKitContextMenu for
the default context menu and emit WebKitWebView::context-menu
signal. Then populate the context menu proxy with the resulting
WebKitContextMenu.

  • UIProcess/API/gtk/WebKitWebView.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseButtonPressEvent): In case of right click save
the event to be used by context menu signal.
(webkitWebViewBaseTakeContextMenuEvent): Return and release the
saved button event.

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h:
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Add sections for

WebKitContextMenu and WebKitContextMenuItem.

  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Add new symbols.
  • UIProcess/API/gtk/docs/webkit2gtk.types: Add

webkit_context_menu_get_type and webkit_context_menu_item_get_type.

  • UIProcess/API/gtk/tests/GNUmakefile.am: Add new test for context menu.
  • UIProcess/API/gtk/tests/TestContextMenu.cpp: Added.

(testContextMenuDefaultMenu):
(testContextMenuPopulateMenu):
(testContextMenuCustomMenu):
(testContextMenuDisableMenu):
(testContextMenuSubMenu):
(beforeAll):
(afterAll):

  • UIProcess/API/gtk/tests/TestMain.h:

(Test::addLogFatalFlag): Add a log level flag to the mask of flags
causing the program to abort.
(Test::removeLogFatalFlag): Remove a log level flag to the mask of
flags causing the program to abort.

  • UIProcess/API/gtk/tests/WebViewTest.cpp:

(WebViewTest::quitMainLoop): Finish the main loop.
(WebViewTest::quitMainLoopAfterProcessingPendingEvents): Finish
the main loop when all pending events have been processed.
(quitMainLoopIdleCallback):
(WebViewTest::wait):

  • UIProcess/API/gtk/tests/WebViewTest.h:
  • UIProcess/API/gtk/webkit2.h: Include WebKitContextMenu.h,

WebKitContextMenuItem.h and WebKitContextMenuActions.h.

  • UIProcess/API/gtk/webkit2marshal.list:
  • UIProcess/gtk/WebContextMenuProxyGtk.cpp:

(WebKit::WebContextMenuProxyGtk::showContextMenu): Attach the
popup menu to the view widget before showing it.

03:50 Changeset [121092] by ukai@chromium.org
  • 2 edits in trunk/LayoutTests

Unreviewed. Fix chromium test expectations

  • platform/chromium/TestExpectations:
02:50 Changeset [121091] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/chromium

[chromium] Return has value, in function returning void
https://bugs.webkit.org/show_bug.cgi?id=89805

Patch by Kwang Yul Seo <skyul@company100.net> on 2012-06-23
Reviewed by Adam Barth.

Make WebFrameImpl::replaceSelection not return a value because it is a function returning void.

  • src/WebFrameImpl.cpp:

(WebKit::WebFrameImpl::replaceSelection):

01:26 Changeset [121090] by zandobersek@gmail.com
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening after 121063, adding IMAGE test expectation
for tests in fast/css-grid-layout now that some reftests are working
properly and causing failures for platforms that don't support the
feature yet.

  • platform/gtk/TestExpectations:
00:49 Changeset [121089] by sergio@webkit.org
  • 3 edits in trunk/Tools

[GTK] Add a new webkit2 tests slave bot
https://bugs.webkit.org/show_bug.cgi?id=89336

Reviewed by Csaba Osztrogonác.

Slave configuration for a new GTK 64 bit release bot that will run
WebKit2 tests.

Also BuildAndTest now accepts the "triggers" parametter,
this means that apart from building and testing it can trigger
some other build/test sequences in other slaves.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
  • BuildSlaveSupport/build.webkit.org-config/master.cfg:

(BuildAndTestFactory.init):

00:18 Changeset [121088] by kseo@webkit.org
  • 2 edits in trunk/Tools

Unreviewed. Update my email.

  • Scripts/webkitpy/common/config/committers.py:

06/22/12:

22:55 Changeset [121087] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/chromium

Unreviewed. Rolled DEPS.

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-22

  • DEPS:
19:32 Changeset [121086] by abarth@webkit.org
  • 4 edits
    2 adds in trunk/Tools

[Chromium] DumpRenderTree on Android needs to configure fonts for testing
https://bugs.webkit.org/show_bug.cgi?id=89721

Reviewed by Nate Chapin.

This patch teaches DumpRenderTree to configure Skia to use the fallback
fonts that the LayoutTests assume. This patch reduces the number result
differences between chromium-android and chromium-linux.

  • DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:
  • DumpRenderTree/chromium/TestShellAndroid.cpp:

(platformInit):

  • DumpRenderTree/chromium/android_fallback_fonts.xml: Added.
  • DumpRenderTree/chromium/android_main_fonts.xml: Added.
  • Scripts/webkitpy/layout_tests/port/chromium_android.py:
19:02 Changeset [121085] by benjamin@webkit.org
  • 13 edits
    16 adds in trunk

Text with text-overflow:ellipsis and text-align:right is left aligned
https://bugs.webkit.org/show_bug.cgi?id=88705

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-06-22
Reviewed by Dan Bernstein.

Source/WebCore:

When building the line of a text with overflow, we do not know if we can place
an ellipsis and where it should be. Because of that, text is laid out as if it does
not have text-overflow: ellipsis.

This causes problems with text-alignement right in LTR and left in RTL. The shortened text
did not follow the allignment.

This patch changes the position of lines with ellipsis after layout to follow the allignment.
In RenderBlock::checkLinesForTextOverflow(), the call to RootInlineBox::placeEllipsis() now
also gives the width of the truncated text. We use this width to re-compute the alignement and
shift the box if necessary.

In RenderBlock::deleteEllipsisLineBoxes() we revert the text to the position computed with the
total width. This way all layout computation is done as usual.

Tests: fast/css/text-overflow-ellipsis-text-align-left.html

fast/css/text-overflow-ellipsis-text-align-right.html

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::canAccommodateEllipsis): Make the method const for readability, truncating is
done later in placeEllipsisBox().
(WebCore::InlineBox::placeEllipsisBox): Add an output argument, truncatedWidth, giving the width
of the text + ellipsis after truncation (if any truncation can be done).

  • rendering/InlineBox.h:

(InlineBox):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineBox::adjustLogicalPosition): adjustPosition() logical coordinates.
(WebCore::InlineFlowBox::canAccommodateEllipsis):
(WebCore::InlineFlowBox::placeEllipsisBox):

  • rendering/InlineFlowBox.h:

(InlineFlowBox):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::placeEllipsisBox):

  • rendering/InlineTextBox.h:

(InlineTextBox):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlock::deleteEllipsisLineBoxes): In addition to removing the truncation, we
need to revert the shift introduced by checkLinesForTextOverflow(). This restore the lines
to its original, untruncated position in order to layout the block correctly in RenderBlock::layoutInlineChildren().
(WebCore::RenderBlock::checkLinesForTextOverflow): After we truncate the text, we now recompute the shift we need
for alignment, and move the line accordingly.

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::placeEllipsis): Return the width of the truncated text + the width of the ellipsis.
(WebCore::RootInlineBox::placeEllipsisBox):
(WebCore::RootInlineBox::adjustPosition):

  • rendering/RootInlineBox.h:

(RootInlineBox):

LayoutTests:

  • fast/css/text-overflow-ellipsis-text-align-center.html: Added.
  • fast/css/text-overflow-ellipsis-text-align-justify.html: Added.
  • fast/css/text-overflow-ellipsis-text-align-left.html: Added.
  • fast/css/text-overflow-ellipsis-text-align-right.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-center.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-justify.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-left.html: Added.
  • fast/css/vertical-text-overflow-ellipsis-text-align-right.html: Added.

The vertical-text tests are incorrect due to other bugs. Add they to track regressions/progressions
going forward.

  • platform/chromium/TestExpectations: The tests need platform specific results.
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-center-expected.txt: Added.
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-justify-expected.txt: Added.
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-left-expected.txt: Added.
  • platform/mac/fast/css/text-overflow-ellipsis-text-align-right-expected.txt: Added.
18:35 Changeset [121084] by caseq@chromium.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Fix negative time interval on zoom-in
https://bugs.webkit.org/show_bug.cgi?id=89798

Patch by Eugene Klyuchnikov <eustas.big@gmail.com> on 2012-06-22
Reviewed by Pavel Feldman.

Steps to reproduce:
1) Record timeline
2) Select small range with left tick close to zero
3) Move pointer to the right end of the ruler
4) Zoom-in with mouse-wheel

Result: right tick goes below the zero.

  • inspector/front-end/TimelineOverviewPane.js:

(WebInspector.TimelineOverviewWindow.prototype._zoom):

18:23 Changeset [121083] by achicu@adobe.com
  • 13 edits in trunk

[CSS Shaders] Re-enable the CSS Shaders compile time flag on Safari Mac
https://bugs.webkit.org/show_bug.cgi?id=89781

Reviewed by Dean Jackson.

Source/JavaScriptCore:

Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.

No new tests, just re-enabled existing tests.

  • css/CSSValueKeywords.in: Added empty line to force a rebuild of the file on the EWS.
  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/mac:

Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit2:

Added ENABLE_CSS_SHADERS flag as enabled by default on Safari for Mac.

  • Configurations/FeatureDefines.xcconfig:

Tools:

Added CSS Shaders as enabled by default on Safari for Mac.

  • Scripts/webkitperl/FeatureList.pm:

LayoutTests:

Renabled CSS Shaders tests on Safari for Mac.

  • platform/mac/Skipped:
18:16 Changeset [121082] by dgrogan@chromium.org
  • 5 edits in trunk/Source

IndexedDB: Avoid infinite loop if we try to encode -1 for leveldb
https://bugs.webkit.org/show_bug.cgi?id=89625

Source/WebCore:

It gets worse, memory is allocated inside the loop so the process is
eventually killed by the OS.

Reviewed by Tony Chang.

Added tests to Source/WebKit/chromium/tests/IDBLevelDBCodingTest.cpp

  • Modules/indexeddb/IDBLevelDBCoding.cpp:

(WebCore::IDBLevelDBCoding::encodeInt):
(WebCore::IDBLevelDBCoding::encodeVarInt):

Source/WebKit/chromium:

Reviewed by Tony Chang.

  • tests/IDBLevelDBCodingTest.cpp:

(IDBLevelDBCoding::TEST):

17:56 Changeset [121081] by jchaffraix@webkit.org
  • 1 edit
    2 copies in branches/chromium/1180

Merge 121072 - REGRESSION(r116446): Crash in RenderBoxModelObject::adjustedPositionRelativeToOffsetParent
https://bugs.webkit.org/show_bug.cgi?id=89785

Reviewed by Abhishek Arya.

Source/WebCore:

Test: fullscreen/full-screen-crash-offsetLeft.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
Added a NULL-check for parent() as it can be NULL in fullscreen mode. Also updated a stale
comment while touching the code.

LayoutTests:

  • fullscreen/full-screen-crash-offsetLeft-expected.html: Added.
  • fullscreen/full-screen-crash-offsetLeft.html: Added.

TBR=jchaffraix@webkit.org
Review URL: https://chromiumcodereview.appspot.com/10659009

17:36 Changeset [121080] by kbr@google.com
  • 2 edits in trunk/LayoutTests

Unreviewed Chromium gardening. Marked test as needing rebaseline
after http://trac.webkit.org/changeset/121076 per jamesr.

  • platform/chromium/TestExpectations:
17:31 Changeset [121079] by hayato@chromium.org
  • 7 edits in trunk

[Shadow] ShadowRoot.activeElement should use the result of re-targeting algorithm.
https://bugs.webkit.org/show_bug.cgi?id=89763

Reviewed by Dimitri Glazkov.

Source/WebCore:

Use the result of the re-targeting algorithm in calculating
shadow root's activeElement so that ShadowRoot.activeElement returns
a focused distributed node correctly as the algorithm says.

The spec is:
https://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#active-element

Tests: fast/dom/shadow/shadow-root-activeElement.html

  • dom/EventDispatcher.cpp:

(WebCore):
(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventDispatcher::ensureEventAncestors):

  • dom/TreeScope.cpp:

(WebCore::TreeScope::focusedNode):

  • html/shadow/InsertionPoint.h:

(WebCore::InsertionPoint::contains):

LayoutTests:

  • fast/dom/shadow/shadow-root-activeElement-expected.txt:
  • fast/dom/shadow/shadow-root-activeElement.html:
17:23 Changeset [121078] by michaeln@google.com
  • 3 edits in trunk/Source/WebKit/chromium

[chromium] WebKit API plumbing for applicationCache.abort()
https://bugs.webkit.org/show_bug.cgi?id=89792

Reviewed by Darin Fisher.

  • public/WebApplicationCacheHost.h:

(WebKit::WebApplicationCacheHost::abort):

  • src/ApplicationCacheHost.cpp:

(WebCore::ApplicationCacheHost::abort):

17:03 Changeset [121077] by kbr@google.com
  • 2 edits in trunk/LayoutTests

Unreviewed Chromium gardening. Suppressed additional test failures
tracked in bugs 73692 and 89789.

  • platform/chromium/TestExpectations:
16:57 Changeset [121076] by jamesr@google.com
  • 31 edits in trunk/Source

[chromium] LayerRendererChromium is not getting visibility messages in single threaded compositing mode.
https://bugs.webkit.org/show_bug.cgi?id=89045

Reviewed by Adrienne Walker.

Based on patch by Michal Mocny <mmocny@google.com>.

Source/WebCore:

Invariants:

1.) We never commit (paint, animate, any of it) when not visible on the main thread -except- for
compositeAndReadback, regardless of threaded vs non-threaded mode
2.) CCLayerTreeHost::m_contentsTextureManager's memory budget is only set by updateLayers() when we are going to
make a frame and is always set to a non-zero value
3.) Zero-sized allocations from the GPU process are always serviced immediately on the impl thread. Non-zero
allocations are met in the next frame, whenever we would produce that frame according to our usual frame
scheduling logic.
4.) The impl thread always knows the set of currently-allocated managed texture IDs and can delete them all
whenever it likes without needing the main thread to be responsive.

Details:

There are two main changes - tweaking how the contents texture manager's budget is handled and tweaking frame
scheduling for the !visible case.

The scheduling change is a bit more subtle but it unifies the single and multi threaded paths and is really
important. Except for compositeAndReadback (which I'll talk about below), we simply won't produce frames when
not visible. This already happens in the single threaded path thanks to render_widget so the only change is to
the threaded path. The difficulty here is we might post a beginFrame task from the impl thread and then get a
setVisible(false) call on the main thread before the beginFrame task runs. Since I'm making the setVisible()
call a blocking call from main thread -> impl thread, when the beginFrame task eventually does run on the main
thread we can know that the impl thread's notion of visibility is in sync with the main threads. Thus I'm
planning to simply abort the frame before doing any processing on the main thread. The scheduler will know if
it gets a beginFrameAborted and COMMIT_STATE_IDLE.

compositeAndReadback is special - this call currently does come in when we aren't visible (in single and
threaded mode) and we need to service it. In particular, we need to send a beginFrame over and have it
not be ignored on the main thread. For this I'm thinking of having the proxy keep track of whether it's
servicing a compositeAndReadback() and use that bit on the main thread to know to process the beginFrame
normally. On the impl side, we need a few changes. First, we have to allocate a default framebuffer
(ensureFramebufferCHROMIUM) even if we've dropped it previously and remember to discard it after the
readPixels(). Second, we have to provide a non-zero contents texture allocation on the beginFrame message, and
again remember to delete the textures after the readPixels(). Third, we have to know that the beginFrame is a
forced frame so when we get the beginFrameComplete we go ahead with the rest of the frame. For this, I think
I'll have to add ACTION_BEGIN_FORCED_FRAME and a corresponding COMMIT_STATE_FORCED_FRAME_IN_PROGRESS so the
scheduler can keep track of the magicness of this frame, and then add some logic after the readpixels call to
drop resources after the readback. It's probably a good time to stop swapping on readbacks too....

The contents texture manager's budget is only relevant when we want to make a frame, so it's now passed in on
the updateLayers(). Since we only make frames when we are visible and we never have a zero allocation when
visible (thanks to the frame scheduling changes above), this value is always non-zero. The other thing the
texture manager needs to know about is if we've killed all of the underlying textures from the impl thread -
this bit is passed in by the proxy before the updateLayers() call. This means if we're running while visible
and the manager wants to decrease our budget to something other than zero, we'll get a new (non-zero) allocation
on the impl thread, schedule a frame, then when it's time to make the frame pass the new lower limit in to
updateLayers(), then have the contents texture manager evict down to our new limit and make a frame with the new
budget. When the commit completes we'll get notified on the impl thread of which textures the contents texture
manager decided to evict and issue the deleteTexture() calls on them.

The texture budget we pass in will be based on the most recent non-zero memory allocation we received from the
GPU memory manager, or some default value I'll pull out my ass if we haven't heard anything yet. On compositor
initialization, we can't afford to wait for a round-trip through the GPU process to get a budget for the first
frame. I don't think handling a decrease to a non-zero budget on a visible tab needs to be terribly urgent - we
can get to it when we get to making the next frame. If we wanted to satisfy reduced texture budgets directly
from the impl thread, we could keep a priority-list ordered set of textures once we have priorities and delete
based on that. Let's worry about that later.

  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChangedOnImpl):
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::initialize):
(WebCore::LayerRendererChromium::setVisible):
(WebCore::LayerRendererChromium::setGpuMemoryAllocation):
(WebCore):
(WebCore::LayerRendererChromium::swapBuffers):
(WebCore::LayerRendererChromium::getFramebufferPixels):

  • platform/graphics/chromium/LayerRendererChromium.h:

(WebCore):
(LayerRendererChromium):

  • platform/graphics/chromium/TextureManager.cpp:

(WebCore::TextureManager::evictAndRemoveAllDeletedTextures):
(WebCore):

  • platform/graphics/chromium/TextureManager.h:

(TextureAllocator):
(TextureManager):

  • platform/graphics/chromium/TrackingTextureAllocator.cpp:

(WebCore::TrackingTextureAllocator::createTexture):
(WebCore::TrackingTextureAllocator::deleteTexture):
(WebCore):
(WebCore::TrackingTextureAllocator::deleteAllTextures):

  • platform/graphics/chromium/TrackingTextureAllocator.h:

(TrackingTextureAllocator):

  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:

(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::initializeLayerRenderer):
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):
(WebCore::CCLayerTreeHost::setVisible):
(WebCore::CCLayerTreeHost::evictAllContentTextures):
(WebCore::CCLayerTreeHost::updateLayers):

  • platform/graphics/chromium/cc/CCLayerTreeHost.h:

(CCLayerTreeHost):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::commitComplete):
(WebCore::CCLayerTreeHostImpl::canDraw):
(WebCore::CCLayerTreeHostImpl::context):
(WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
(WebCore):
(WebCore::CCLayerTreeHostImpl::setMemoryAllocationLimitBytes):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

(CCLayerTreeHostImplClient):
(WebCore::CCLayerTreeHostImpl::contentsTexturesWerePurgedSinceLastCommit):
(WebCore::CCLayerTreeHostImpl::memoryAllocationLimitBytes):
(CCLayerTreeHostImpl):

  • platform/graphics/chromium/cc/CCProxy.h:

(CCProxy):

  • platform/graphics/chromium/cc/CCRenderer.h:

(CCRendererClient):

  • platform/graphics/chromium/cc/CCScheduler.cpp:

(WebCore::CCScheduler::beginFrameComplete):
(WebCore::CCScheduler::beginFrameAborted):
(WebCore):
(WebCore::CCScheduler::didSwapBuffersComplete):
(WebCore::CCScheduler::didLoseContext):
(WebCore::CCScheduler::didRecreateContext):
(WebCore::CCScheduler::vsyncTick):

  • platform/graphics/chromium/cc/CCScheduler.h:

(CCScheduler):

  • platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:

(WebCore::CCSchedulerStateMachine::beginFrameAborted):
(WebCore):

  • platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
  • platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:

(WebCore::CCSingleThreadProxy::setVisible):
(WebCore):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::commitAndComposite):

  • platform/graphics/chromium/cc/CCSingleThreadProxy.h:

(CCSingleThreadProxy):

  • platform/graphics/chromium/cc/CCThreadProxy.cpp:

(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::setVisible):
(WebCore):
(WebCore::CCThreadProxy::setVisibleOnImplThread):
(WebCore::CCThreadProxy::scheduledActionBeginFrame):
(WebCore::CCThreadProxy::beginFrame):
(WebCore::CCThreadProxy::beginFrameAbortedOnImplThread):
(WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
(WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):

  • platform/graphics/chromium/cc/CCThreadProxy.h:

(CCThreadProxy):
(BeginFrameAndCommitState):

  • platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:

(WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
(WebCore::CCVideoLayerImpl::willDraw):
(WebCore::CCVideoLayerImpl::willDrawInternal):
(WebCore::CCVideoLayerImpl::FramePlane::allocateData):
(WebCore::CCVideoLayerImpl::FramePlane::freeData):
(WebCore::CCVideoLayerImpl::allocatePlaneData):
(WebCore::CCVideoLayerImpl::freePlaneData):
(WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
(WebCore::CCVideoLayerImpl::didLoseContext):

  • platform/graphics/chromium/cc/CCVideoLayerImpl.h:

(FramePlane):

Source/WebKit/chromium:

Update various test fixtures and tests to cover scheduling, visibility, and resource allocation changes.

  • tests/CCLayerTreeHostImplTest.cpp:
  • tests/CCLayerTreeHostTest.cpp:

(CCLayerTreeHostTestAbortFrameWhenInvisible):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::CCLayerTreeHostTestAbortFrameWhenInvisible):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::beginTest):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::afterTest):
(WTF):
(WTF::TEST_F):
(WTF::CCLayerTreeHostTestLayerOcclusion::beginTest):
(WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::beginTest):
(WTF::CCLayerTreeHostTestManySurfaces::beginTest):

  • tests/CCSchedulerStateMachineTest.cpp:

(WebCore::TEST):

  • tests/CCTiledLayerTestCommon.h:
  • tests/FakeWebGraphicsContext3D.h:

(WebKit::FakeWebGraphicsContext3D::FakeWebGraphicsContext3D):
(FakeWebGraphicsContext3D):
(WebKit::FakeWebGraphicsContext3D::createTexture):

  • tests/LayerRendererChromiumTest.cpp:

(TEST_F):

  • tests/TiledLayerChromiumTest.cpp:
16:41 Changeset [121075] by kbr@google.com
  • 2 edits in trunk/LayoutTests

Layout test fast/regions/get-regions-by-content-node2.html crashing intermittently
https://bugs.webkit.org/show_bug.cgi?id=89794

Unreviewed; suppressed test failure.

  • platform/chromium/TestExpectations:
16:40 Changeset [121074] by abarth@webkit.org
  • 2 edits
    1 add in trunk

Add support for test_expectations_android.txt for overriding test expecations on the chromium-android branch
https://bugs.webkit.org/show_bug.cgi?id=89791

Reviewed by Dirk Pranke.

Downstream, the chromium-android port maintains a test expectations
file to keep track of which tests pass or fail. That causes them to
keep a patch in chromium_android.py in their branch.

This patch teaches chromium_android.py to use test_expectations_android.txt.
We don't intend to use this file upstream, but having this code patch
upstream lets us unfork webkitpy.

  • Scripts/webkitpy/layout_tests/port/chromium_android.py:

(ChromiumAndroidPort.expectations_files):

16:32 Changeset [121073] by fpizlo@apple.com
  • 16 edits in trunk/Source/JavaScriptCore

DFG tier-up should happen in prologues, not epilogues
https://bugs.webkit.org/show_bug.cgi?id=89752

Reviewed by Geoffrey Garen.

This change has two outcomes:

1) Slightly reduces the likelihood that a function will be optimized both
standalone and via inlining. Previously, if you had a call sequence like foo()
calls bar() exactly once, and nobody else calls bar(), then bar() would get
optimized first (because it returns first) and then foo() gets optimized. If foo()
can inline bar() then that means that bar() gets optimized twice. But now, if we
optimize in prologues, then foo() will be optimized first. If it inlines bar(),
that means that there will no longer be any calls to bar().

2) It lets us kill some code in JITStubs. Epilogue tier-up was very different from
loop tier-up, since epilogue tier-up should not attempt OSR. But prologue tier-up
requires OSR (albeit really easy OSR since it's the top of the compilation unit),
so it becomes just like loop tier-up. As a result, we now have one optimization
hook (cti_optimize) instead of two (cti_optimize_from_loop and
cti_optimize_from_ret).

As a consequence of not having an optimization check in epilogues, the OSR exit
code must now trigger reoptimization itself instead of just signaling the epilogue
check to fire.

This also adds the ability to count the number of DFG compilations, which was
useful for debugging this patch and might be useful for other things in the future.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::reoptimize):
(JSC):

  • bytecode/CodeBlock.h:

(CodeBlock):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::parseCodeBlock):

  • dfg/DFGDriver.cpp:

(DFG):
(JSC::DFG::getNumCompilations):
(JSC::DFG::compile):

  • dfg/DFGDriver.h:

(DFG):

  • dfg/DFGOSRExitCompiler.cpp:

(JSC::DFG::OSRExitCompiler::handleExitCounts):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • jit/JIT.cpp:

(JSC::JIT::emitOptimizationCheck):

  • jit/JIT.h:
  • jit/JITCall32_64.cpp:

(JSC::JIT::emit_op_ret):
(JSC::JIT::emit_op_ret_object_or_this):

  • jit/JITOpcodes.cpp:

(JSC::JIT::emit_op_ret):
(JSC::JIT::emit_op_ret_object_or_this):
(JSC::JIT::emit_op_enter):

  • jit/JITOpcodes32_64.cpp:

(JSC::JIT::emit_op_enter):

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):

  • jit/JITStubs.h:
16:29 Changeset [121072] by jchaffraix@webkit.org
  • 3 edits
    2 adds in trunk

REGRESSION(r116446): Crash in RenderBoxModelObject::adjustedPositionRelativeToOffsetParent
https://bugs.webkit.org/show_bug.cgi?id=89785

Reviewed by Abhishek Arya.

Source/WebCore:

Test: fullscreen/full-screen-crash-offsetLeft.html

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::adjustedPositionRelativeToOffsetParent):
Added a NULL-check for parent() as it can be NULL in fullscreen mode. Also updated a stale
comment while touching the code.

LayoutTests:

  • fullscreen/full-screen-crash-offsetLeft-expected.html: Added.
  • fullscreen/full-screen-crash-offsetLeft.html: Added.
16:26 Changeset [121071] by pdr@google.com
  • 2 edits in trunk/PerformanceTests

Make SvgCubics performance test more consistent
https://bugs.webkit.org/show_bug.cgi?id=89778

Reviewed by Ryosuke Niwa.

Previously this test ran twice for each iteration, but this led to inconsistent repaints.
This change updates the test to only run once per iteration, and adds even more cubics
so that the test runs consistently in the 80ms range on my Linux desktop.

Performance results on my desktop:

RESULT SVG: SvgCubics= 80.5 ms
median= 82.0 ms, stdev= 3.04138126515 ms, min= 75.0 ms, max= 85.0 ms

RESULT SVG: SvgCubics= 80.1 ms
median= 81.0 ms, stdev= 4.27668095607 ms, min= 74.0 ms, max= 88.0 ms

RESULT SVG: SvgCubics= 81.45 ms
median= 83.0 ms, stdev= 4.01839520207 ms, min= 75.0 ms, max= 89.0 ms

RESULT SVG: SvgCubics= 78.9 ms
median= 80.0 ms, stdev= 4.75289385533 ms, min= 72.0 ms, max= 87.0 ms

  • SVG/SvgCubics.html:
16:24 Changeset [121070] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit/chromium

[chromium] Notify the document if a plugin accepts touch input events
https://bugs.webkit.org/show_bug.cgi?id=89769

Patch by Sadrul Habib Chowdhury <sadrul@chromium.org> on 2012-06-22
Reviewed by Adam Barth.

The browser sends touch events to webkit only if webkit has any touch-event handlers. So it is
necessary to notify the document when a plugin starts accepting touch-events so that it can in
turn tell the browser to send it touch events.

  • public/WebPluginContainer.h:

(WebPluginContainer):

  • src/WebPluginContainerImpl.cpp:

(WebKit::WebPluginContainerImpl::setIsAcceptingTouchEvents):
(WebKit):
(WebKit::WebPluginContainerImpl::WebPluginContainerImpl):
(WebKit::WebPluginContainerImpl::~WebPluginContainerImpl):

  • src/WebPluginContainerImpl.h:

(WebPluginContainerImpl):

16:16 Changeset [121069] by kbr@google.com
  • 20 edits
    2 deletes in trunk/Source

Unreviewed, rolling out r121064.
http://trac.webkit.org/changeset/121064
https://bugs.webkit.org/show_bug.cgi?id=88268

Broke Chromium Mac build.

Source/Platform:

  • Platform.gypi:
  • chromium/public/WebLayerTreeView.h:

(WebKit):
(WebLayerTreeView):

  • chromium/public/WebRenderingStats.h: Removed.

Source/WebCore:

  • WebCore.gypi:
  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:

(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::updateAnimations):
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):

  • platform/graphics/chromium/cc/CCLayerTreeHost.h:

(WebCore):
(WebCore::CCLayerTreeHost::frameNumber):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::drawLayers):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

(WebCore::CCLayerTreeHostImpl::frameNumber):
(CCLayerTreeHostImpl):

  • platform/graphics/chromium/cc/CCProxy.h:

(WebCore):
(CCProxy):

  • platform/graphics/chromium/cc/CCRenderingStats.h: Removed.
  • platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
  • platform/graphics/chromium/cc/CCSingleThreadProxy.h:
  • platform/graphics/chromium/cc/CCThreadProxy.cpp:
  • platform/graphics/chromium/cc/CCThreadProxy.h:

(CCThreadProxy):

Source/WebKit/chromium:

  • public/WebView.h:

(WebKit):
(WebView):

  • src/WebLayerTreeView.cpp:
  • src/WebViewImpl.cpp:
  • src/WebViewImpl.h:

(WebViewImpl):

  • tests/CCLayerTreeHostTest.cpp:

(WTF::CCLayerTreeHostTestScrollSimple::layout):
(WTF::CCLayerTreeHostTestScrollMultipleRedraw::drawLayersOnCCThread):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommitAndDrawFrame):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommit):

16:13 Changeset [121068] by ryuan.choi@samsung.com
  • 8 edits in trunk/Source

[EFL][WK2] Support keyboard event
https://bugs.webkit.org/show_bug.cgi?id=89268

Reviewed by Chang Shu.

Source/WebCore:

Extract keyDownCommandsMap and keyPressCommandsMap to share WebKit1/Efl and WebKit2/Efl.

  • platform/efl/EflKeyboardUtilities.cpp:

(WebCore):
(WebCore::keyDownCommandsMap):
(WebCore::keyPressCommandsMap):
(KeyDownEntry):
(KeyPressEntry):
(WebCore::createKeyDownCommandMap):
(WebCore::createKeyPressCommandMap):
(WebCore::getKeyDownCommandName):
(WebCore::getKeyPressCommandName):

  • platform/efl/EflKeyboardUtilities.h:

(WebCore):

Source/WebKit/efl:

Extract keyDownCommandsMap and keyPressCommandsMap to share WebKit1/Efl and WebKit2/Efl.

  • WebCoreSupport/EditorClientEfl.cpp:

(WebCore::EditorClientEfl::interpretKeyEvent):

Source/WebKit2:

  • WebProcess/WebCoreSupport/efl/WebEditorClientEfl.cpp:

(WebKit::WebEditorClient::handleKeyboardEvent): Implemented default behavior.

  • WebProcess/WebPage/efl/WebPageEfl.cpp:

(WebKit::WebPage::interpretKeyEvent): Implemented like WebKit1/Efl did.

16:09 Changeset [121067] by bdakin@apple.com
  • 2 edits in trunk/LayoutTests

Skipping this test because it's failing most of the time since
recent modifications.
https://bugs.webkit.org/show_bug.cgi?id=89790 will be used to
track fixing the real issue.

  • platform/mac/Skipped:
16:06 Changeset [121066] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

IndexedDB: refactor index-writing to be more self-contained
https://bugs.webkit.org/show_bug.cgi?id=89607

Patch by Alec Flett <alecflett@chromium.org> on 2012-06-22
Reviewed by Tony Chang.

Refactor index-writing into the IndexWriter class. Does not change
existing behavior but begins migrating index-writing logic into a
self-contained class that can eventually be used in the
frontend (renderer) side of IndexedDB.

No new tests, behavior is unchanged.

  • Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:

(WebCore):
(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore::IDBObjectStoreBackendImpl::populateIndex):

15:58 Changeset [121065] by kbr@google.com
  • 2 edits in trunk/LayoutTests

[Chromium] Layout test plugins/embed-attributes-style.html failing on Mac
https://bugs.webkit.org/show_bug.cgi?id=89789

Unreviewed; disabled now-failing test.

  • platform/chromium/TestExpectations:
15:44 Changeset [121064] by commit-queue@webkit.org
  • 20 edits
    2 adds in trunk/Source

[chromium] Expose rendering statistics to WebWidget.
https://bugs.webkit.org/show_bug.cgi?id=88268

Patch by Dave Tu <dtu@chromium.org> on 2012-06-22
Reviewed by James Robinson.

The WebKit side of a basic framework for exposing rendering statistics
to Chromium's --enable-benchmarking extension.

Source/Platform:

  • chromium/public/WebLayerTreeView.h:

(WebRenderingStatistics):
(WebKit):
(WebLayerTreeView):

Source/WebCore:

  • platform/graphics/chromium/cc/CCLayerTreeHost.h:

(WebCore::CCLayerTreeHost::implFrameNumber):

  • platform/graphics/chromium/cc/CCProxy.h:

(CCProxy):

  • platform/graphics/chromium/cc/CCSingleThreadProxy.h:
  • platform/graphics/chromium/cc/CCThreadProxy.cpp:

(WebCore::CCThreadProxy::implFrameNumber):
(WebCore):
(WebCore::CCThreadProxy::implFrameNumberOnImplThread):

  • platform/graphics/chromium/cc/CCThreadProxy.h:

(CCThreadProxy):

Source/WebKit/chromium:

  • src/WebLayerTreeView.cpp:

(WebKit::WebLayerTreeView::renderingStatistics):
(WebKit):

15:37 Changeset [121063] by tony@chromium.org
  • 5 edits in trunk/LayoutTests

Fix the CSS grid layout tests added in r120984
https://bugs.webkit.org/show_bug.cgi?id=89782

Reviewed by Julien Chaffraix.

We need to call testRunner.overridePreference("WebKitCSSGridLayoutEnabled", true)
to enable grid layout in tests. These tests were passing due to other bugs in the tests.

  • fast/css-grid-layout/containing-block-grids-expected.html: Simplify expected results.
  • fast/css-grid-layout/containing-block-grids.html: Set the display to none and override it with grid/inline-grid to make sure it's applying.

The default display of block would also produce the correct results.

  • fast/css-grid-layout/floating-empty-grids-expected.html: Fix a missing close } which was causing the

other styles to be ignored. Also, one of the boxes wasn't showing up because it was a div instead of a span.

  • fast/css-grid-layout/floating-empty-grids.html: Same fixes as for expected.
15:30 Changeset [121062] by michaeln@google.com
  • 2 edits in trunk/LayoutTests

ApplicationCache - verify that an open network whitelist doesn't break online vs fallback layering.
https://bugs.webkit.org/show_bug.cgi?id=89714

An explicit online network namespace should trump a fallback namespace, the fallback should not be used.
Chrome had a bug where if a '*' was in the NETWORK section, explicit entries got ignored, and that
expected behavior was botched. See http://code.google.com/p/chromium/issues/detail?id=133816 for more
details about the chrome bug and code change this LayoutTest aims to verify.

Reviewed by Tony Chang.

  • http/tests/appcache/resources/online-fallback-layering.manifest:
15:25 Changeset [121061] by dpranke@chromium.org
  • 3 edits in trunk/Tools

run_webkit_tests.py failed with AttributeError(NoneType' object has no attribute 'pid)
https://bugs.webkit.org/show_bug.cgi?id=89734

Reviewed by Ryosuke Niwa.

Fix a crash in ServerProcess if you called .pid() after it
crashed during a write(). We had a test for this case but the
test wasn't calling pid(), just has_crashed(). Fixed the problem
and the test.

  • Scripts/webkitpy/layout_tests/port/server_process.py:

(ServerProcess.init):
(ServerProcess.pid):
(ServerProcess._start):
(ServerProcess.stop):

  • Scripts/webkitpy/layout_tests/port/server_process_unittest.py:

(FakeServerProcess._start):
(TestServerProcess.test_broken_pipe):

15:24 Changeset [121060] by shawnsingh@chromium.org
  • 4 edits in trunk/Source

[chromium] Do not accumulate occlusion from 3d layers on the main thread
https://bugs.webkit.org/show_bug.cgi?id=89704

Reviewed by James Robinson.

Source/WebCore:

Layer iterators on the main thread may not iterate over 3d layers
in correct front-to-back or back-to-front order, because layer
sorting is not performed on the main thread. As a result,
occlusion tracking can accidentally think something is occluded if
a 3d layer is processed out of order. This patch choses to solve
this by avoiding accumulating occlusion for 3d layers. It may be
appropriate later to consider adding layer sorting on the main
thread, but for now that seemed like an unnecessary heavy-handed
approach.

In addition to a new unit test that covers this, other unit tests
were changed to work on the impl thread, so that the 3d layers
still accumulate occlusion as required.

Unit test added to CCOcclusionTrackerTest:

CCOcclusionTrackerTestUnsorted3dLayers

  • platform/graphics/chromium/cc/CCOcclusionTracker.cpp:

(WebCore::layerIsInUnsorted3dRenderingContext):
(WebCore):
(WebCore::::markOccludedBehindLayer):

Source/WebKit/chromium:

  • tests/CCOcclusionTrackerTest.cpp:

(WebKitTests::CCOcclusionTrackerTest::calcDrawEtc):
(WebKitTests):
(CCOcclusionTrackerTestUnsorted3dLayers):
(WebKitTests::CCOcclusionTrackerTestUnsorted3dLayers::runMyTest):
(WebKitTests::CCOcclusionTrackerTestLargePixelsOccludeInsideClipRect::runMyTest):

15:09 Changeset [121059] by jsbell@chromium.org
  • 26 edits
    5 adds in trunk

IndexedDB: Snapshot metadata in front end to avoid IPC round-trips
https://bugs.webkit.org/show_bug.cgi?id=88467

Reviewed by Tony Chang.

Source/WebCore:

Define a new type (IDBDatabaseMetadata) that captures the "schema" of an
IDB database (name, version, properties of stores, properties of indexes).
Add a method for the front end to request this from the back end once up
front to avoid later calls (which may be slow IPC calls in ports). Implement
IDB spec logic that the metadata should be frozen for a particular IDBDatabase
connection, and only change within a version change transaction, and the spec's
funky requirement for aborted version change transactions.

Test: storage/indexeddb/metadata.html

  • Modules/indexeddb/IDBDatabase.cpp:

(WebCore::IDBDatabase::IDBDatabase): Fetch metadata from back end when connection is created.
(WebCore::IDBDatabase::transactionCreated):
(WebCore::IDBDatabase::transactionFinished): Update metadata at the end of a transaction in
case it was rolled back.
(WebCore::IDBDatabase::objectStoreNames): Move implementation to front-end.
(WebCore):
(WebCore::IDBDatabase::createObjectStore): Update local copy of metadata.
(WebCore::IDBDatabase::deleteObjectStore): Update local copy of metadata.

  • Modules/indexeddb/IDBDatabase.h:

(WebCore::IDBDatabase::name): Move implementation to front-end.
(WebCore::IDBDatabase::version): Move implementation to front-end.
(IDBDatabase):
(WebCore::IDBDatabase::metadata):

  • Modules/indexeddb/IDBDatabaseBackendImpl.cpp:

(WebCore::IDBDatabaseBackendImpl::metadata): Construct a metadata snapshot.
(WebCore):

  • Modules/indexeddb/IDBDatabaseBackendImpl.h:

(IDBDatabaseBackendImpl):

  • Modules/indexeddb/IDBDatabaseBackendInterface.h:

(WebCore):
(IDBDatabaseBackendInterface):

  • Modules/indexeddb/IDBIndex.cpp: Store a copy of the metadata, which will never

change during the lifetime of the index.
(WebCore::IDBIndex::IDBIndex):

  • Modules/indexeddb/IDBIndex.h:

(WebCore::IDBIndex::create):
(WebCore::IDBIndex::name): Move implementation to front-end.
(WebCore::IDBIndex::objectStore): Return RefPtr (unrelated tidying).
(WebCore::IDBIndex::keyPath): Move implementation to front-end.
(WebCore::IDBIndex::unique): Move implementation to front-end.
(WebCore::IDBIndex::multiEntry): Move implementation to front-end.
(IDBIndex):

  • Modules/indexeddb/IDBIndexBackendImpl.cpp:

(WebCore::IDBIndexBackendImpl::metadata): Construct a metadata snapshot.
(WebCore):

  • Modules/indexeddb/IDBIndexBackendImpl.h:

(IDBIndexBackendImpl):

  • Modules/indexeddb/IDBMetadata.h: Added new structs.

(WebCore):
(WebCore::IDBDatabaseMetadata::IDBDatabaseMetadata):
(IDBDatabaseMetadata):
(WebCore::IDBObjectStoreMetadata::IDBObjectStoreMetadata):
(IDBObjectStoreMetadata):
(WebCore::IDBIndexMetadata::IDBIndexMetadata):
(IDBIndexMetadata):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::IDBObjectStore): Store a "live" copy of the metadata, and
and copy in case of an aborted version change transaction.
(WebCore::IDBObjectStore::indexNames): Move implementation to front-end.
(WebCore::IDBObjectStore::createIndex): Update metadata to include new index.
(WebCore::IDBObjectStore::index): Pass along metadata to instance constructor.
(WebCore::IDBObjectStore::deleteIndex): Delete index from metadata.

  • Modules/indexeddb/IDBObjectStore.h:

(WebCore::IDBObjectStore::create):
(WebCore::IDBObjectStore::name): Move implementation to front-end.
(WebCore::IDBObjectStore::keyPath): Move implementation to front-end.
(WebCore::IDBObjectStore::transaction): Return RefPtr (unrelated tidying).
(WebCore::IDBObjectStore::autoIncrement): Move implementation to front-end.
(WebCore::IDBObjectStore::metadata): Allow copying the metadata, in case of abort.
(WebCore::IDBObjectStore::resetMetadata): Allow setting the metadata, in case of abort.
(IDBObjectStore):

  • Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:

(WebCore::IDBObjectStoreBackendImpl::metadata): Construct a metadata snapshot.
(WebCore):

  • Modules/indexeddb/IDBObjectStoreBackendImpl.h:

(WebCore):
(IDBObjectStoreBackendImpl):

  • Modules/indexeddb/IDBTransaction.cpp:

(WebCore::IDBTransaction::objectStore): Pass along metadata to instance constructor.
(WebCore::IDBTransaction::objectStoreCreated): Track stores changed during transaction.
(WebCore::IDBTransaction::objectStoreDeleted):Track stores changed during transaction.
(WebCore::IDBTransaction::onAbort): Revert stores metadata potentially changed during transaction.

  • Modules/indexeddb/IDBTransaction.h:

(IDBTransaction):

  • WebCore.gypi:

Source/WebKit/chromium:

Add conversions to/from WebCore IDB metadata type and plumbing for routing the
IDBDatabaseBackendInterface::metadata() call through the public API..

  • WebKit.gyp: New file added.
  • public/WebIDBMetadata.h: Conversion functions.

(WebCore):
(WebIDBMetadata):

  • src/IDBDatabaseBackendProxy.cpp: Plumbing.

(WebKit::IDBDatabaseBackendProxy::metadata):
(WebKit):

  • src/IDBDatabaseBackendProxy.h: Plumbing.

(IDBDatabaseBackendProxy):

  • src/WebIDBDatabaseImpl.cpp: Plumbing.

(WebKit::WebIDBDatabaseImpl::metadata):
(WebKit):

  • src/WebIDBDatabaseImpl.h: Plumbing.

(WebKit):
(WebIDBDatabaseImpl):

  • src/WebIDBMetadata.cpp: Added - conversion functions.

(WebKit):
(WebKit::WebIDBMetadata::WebIDBMetadata):
(WebKit::WebIDBMetadata::operator IDBDatabaseMetadata):

LayoutTests:

  • storage/indexeddb/metadata-expected.txt: Added.
  • storage/indexeddb/metadata.html: Added.
  • storage/indexeddb/resources/metadata.js: Added.

(test):
(firstOpen.request.onsuccess.request.onsuccess.trans.oncomplete):
(firstOpen.request.onsuccess.request.onsuccess):
(firstOpen.request.onsuccess):
(firstOpen):
(secondOpen.request.onsuccess.request.onsuccess.trans.oncomplete):
(secondOpen.request.onsuccess.request.onsuccess):
(secondOpen.request.onsuccess):
(secondOpen):
(thirdOpen.request.onsuccess.request.onsuccess.trans.onabort):
(thirdOpen.request.onsuccess.request.onsuccess):
(thirdOpen.request.onsuccess):
(thirdOpen):
(fourthOpen.request.onsuccess.request.onsuccess.trans.oncomplete):
(fourthOpen.request.onsuccess.request.onsuccess):
(fourthOpen.request.onsuccess):
(fourthOpen):
(checkState):

14:42 Changeset [121058] by mhahnenberg@apple.com
  • 121 edits in trunk/Source

JSLock should be per-JSGlobalData
https://bugs.webkit.org/show_bug.cgi?id=89123

Reviewed by Gavin Barraclough.

Source/JavaScriptCore:

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  • API/APIShims.h:

(APIEntryShimWithoutLock):
(JSC::APIEntryShimWithoutLock::APIEntryShimWithoutLock): Added an extra parameter to the constructor to
determine whether we should ref the JSGlobalData or not. We want to ref all the time except for in the
HeapTimer class because timerDidFire could run after somebody has started to tear down that particular
JSGlobalData, so we wouldn't want to resurrect the ref count of that JSGlobalData from 0 back to 1 after
its destruction has begun.
(JSC::APIEntryShimWithoutLock::~APIEntryShimWithoutLock): Now derefs if it also refed.
(JSC::APIEntryShim::APIEntryShim):
(APIEntryShim):
(JSC::APIEntryShim::~APIEntryShim):
(JSC::APIEntryShim::init): Factored out common initialization code for the various APIEntryShim constructors.
Also moved the timeoutChecker stop and start here because we need to start after we've grabbed the API lock
and before we've released it, which can only done in APIEntryShim.
(JSC::APICallbackShim::~APICallbackShim): We no longer need to synchronize here.

  • API/JSContextRef.cpp:

(JSGlobalContextCreate):
(JSGlobalContextCreateInGroup):
(JSGlobalContextRelease):
(JSContextCreateBacktrace):

  • heap/CopiedSpace.cpp:

(JSC::CopiedSpace::tryAllocateSlowCase):

  • heap/Heap.cpp:

(JSC::Heap::protect):
(JSC::Heap::unprotect):
(JSC::Heap::collect):
(JSC::Heap::setActivityCallback):
(JSC::Heap::activityCallback):
(JSC::Heap::sweeper):

  • heap/Heap.h: Changed m_activityCallback and m_sweeper to be raw pointers rather than OwnPtrs because they

are now responsible for their own lifetime. Also changed the order of declaration of the GCActivityCallback
and the IncrementalSweeper to make sure they're the last things that get initialized during construction to
prevent any issues with uninitialized memory in the JSGlobalData/Heap they might care about.
(Heap):

  • heap/HeapTimer.cpp: Refactored to allow for thread-safe operation and shutdown.

(JSC::HeapTimer::~HeapTimer):
(JSC::HeapTimer::invalidate):
(JSC):
(JSC::HeapTimer::didStartVMShutdown): Called at the beginning of ~JSGlobalData. If we're on the same thread
that the HeapTimer is running on, we kill the HeapTimer ourselves. If not, then we set some state in the
HeapTimer and schedule it to fire immediately so that it can notice and kill itself.
(JSC::HeapTimer::timerDidFire): We grab our mutex and check our JSGlobalData pointer. If it has been zero-ed
out, then we know the VM has started to shutdown and we should kill ourselves. Otherwise, grab the APIEntryShim,
but without ref-ing the JSGlobalData (we don't want to bring the JSGlobalData's ref-count from 0 to 1) in case
we were interrupted between releasing our mutex and trying to grab the APILock.

  • heap/HeapTimer.h:

(HeapTimer):

  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::doWork): We no longer need the API shim here since HeapTimer::timerDidFire handles
all of that for us.
(JSC::IncrementalSweeper::create):

  • heap/IncrementalSweeper.h:

(IncrementalSweeper):

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::allocateSlowCase):

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::reap):

  • jsc.cpp:

(functionGC):
(functionReleaseExecutableMemory):
(jscmain):

  • runtime/Completion.cpp:

(JSC::checkSyntax):
(JSC::evaluate):

  • runtime/GCActivityCallback.h:

(DefaultGCActivityCallback):
(JSC::DefaultGCActivityCallback::create):

  • runtime/JSGlobalData.cpp:

(JSC::JSGlobalData::JSGlobalData):
(JSC::JSGlobalData::~JSGlobalData): Signals to the two HeapTimers (GCActivityCallback and IncrementalSweeper)
that the VM has started shutting down. It then waits until the HeapTimer is done with whatever activity
it needs to do before continuing with any further destruction. Also asserts that we do not currently hold the
APILock because this could potentially cause deadlock when we try to signal to the HeapTimers using their mutexes.
(JSC::JSGlobalData::sharedInstance): Protect the initialization for the shared instance with the GlobalJSLock.
(JSC::JSGlobalData::sharedInstanceInternal):

  • runtime/JSGlobalData.h: Change to be ThreadSafeRefCounted so that we don't have to worry about refing and

de-refing JSGlobalDatas on separate threads since we don't do it that often anyways.
(JSGlobalData):
(JSC::JSGlobalData::apiLock):

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::~JSGlobalObject):
(JSC::JSGlobalObject::init):

  • runtime/JSLock.cpp:

(JSC):
(JSC::GlobalJSLock::GlobalJSLock): For accessing the shared instance.
(JSC::GlobalJSLock::~GlobalJSLock):
(JSC::JSLockHolder::JSLockHolder): MutexLocker for JSLock. Also refs the JSGlobalData to keep it alive so that
it can successfully unlock it later without it disappearing from underneath it.
(JSC::JSLockHolder::~JSLockHolder):
(JSC::JSLock::JSLock):
(JSC::JSLock::~JSLock):
(JSC::JSLock::lock): Uses the spin lock for guarding the lock count and owner thread fields. Uses the mutex for
actually waiting for long periods.
(JSC::JSLock::unlock):
(JSC::JSLock::currentThreadIsHoldingLock):
(JSC::JSLock::dropAllLocks):
(JSC::JSLock::dropAllLocksUnconditionally):
(JSC::JSLock::grabAllLocks):
(JSC::JSLock::DropAllLocks::DropAllLocks):
(JSC::JSLock::DropAllLocks::~DropAllLocks):

  • runtime/JSLock.h:

(JSC):
(GlobalJSLock):
(JSLockHolder):
(JSLock):
(DropAllLocks):

  • runtime/WeakGCMap.h:

(JSC::WeakGCMap::set):

  • testRegExp.cpp:

(realMain):

Source/WebCore:

No new tests. Current regression tests are sufficient.

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection. Also added a couple JSLocks to places that didn't already
have it that needed it.

  • bindings/js/GCController.cpp:

(WebCore::collect):
(WebCore::GCController::garbageCollectSoon):
(WebCore::GCController::garbageCollectNow):
(WebCore::GCController::discardAllCompiledCode):

  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:

(WebCore::JSSQLStatementErrorCallback::handleEvent):

  • bindings/js/JSCustomVoidCallback.cpp:

(WebCore::JSCustomVoidCallback::handleEvent):

  • bindings/js/JSCustomXPathNSResolver.cpp:

(WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):

  • bindings/js/JSErrorHandler.cpp:

(WebCore::JSErrorHandler::handleEvent):

  • bindings/js/JSEventCustom.cpp:

(WebCore::toJS):

  • bindings/js/JSEventListener.cpp:

(WebCore::JSEventListener::handleEvent):

  • bindings/js/JSInjectedScriptHostCustom.cpp:

(WebCore::InjectedScriptHost::nodeAsScriptValue):
(WebCore::JSInjectedScriptHost::inspectedObject):

  • bindings/js/JSInjectedScriptManager.cpp:

(WebCore::InjectedScriptManager::createInjectedScript):
(WebCore::InjectedScriptManager::canAccessInspectedWindow):

  • bindings/js/JSLazyEventListener.cpp:

(WebCore::JSLazyEventListener::initializeJSFunction):

  • bindings/js/JSMainThreadExecState.h:

(WebCore::JSMainThreadExecState::evaluate):

  • bindings/js/JSMutationCallbackCustom.cpp:

(WebCore::JSMutationCallback::handleEvent):

  • bindings/js/JSNodeFilterCondition.cpp:

(WebCore::JSNodeFilterCondition::acceptNode):

  • bindings/js/JSRequestAnimationFrameCallbackCustom.cpp:

(WebCore::JSRequestAnimationFrameCallback::handleEvent):

  • bindings/js/JavaScriptCallFrame.cpp:

(WebCore::JavaScriptCallFrame::evaluate):

  • bindings/js/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::recompileAllJSFunctions):

  • bindings/js/ScheduledAction.cpp:

(WebCore::ScheduledAction::executeFunctionInContext):

  • bindings/js/ScriptCachedFrameData.cpp:

(WebCore::ScriptCachedFrameData::ScriptCachedFrameData):
(WebCore::ScriptCachedFrameData::restore):
(WebCore::ScriptCachedFrameData::clear):

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::evaluateInWorld):
(WebCore::ScriptController::clearWindowShell):
(WebCore::ScriptController::initScript):
(WebCore::ScriptController::updateDocument):
(WebCore::ScriptController::cacheableBindingRootObject):
(WebCore::ScriptController::bindingRootObject):
(WebCore::ScriptController::windowScriptNPObject):
(WebCore::ScriptController::jsObjectForPluginElement):
(WebCore::ScriptController::clearScriptObjects):

  • bindings/js/ScriptControllerMac.mm:

(WebCore::ScriptController::windowScriptObject):

  • bindings/js/ScriptDebugServer.cpp:

(WebCore::ScriptDebugServer::dispatchDidPause):

  • bindings/js/ScriptEventListener.cpp:

(WebCore::eventListenerHandlerBody):
(WebCore::eventListenerHandlerLocation):

  • bindings/js/ScriptFunctionCall.cpp:

(WebCore::ScriptCallArgumentHandler::appendArgument):
(WebCore::ScriptFunctionCall::call):
(WebCore::ScriptFunctionCall::construct):
(WebCore::ScriptCallback::call):

  • bindings/js/ScriptObject.cpp:

(WebCore::ScriptGlobalObject::set):
(WebCore::ScriptGlobalObject::get):
(WebCore::ScriptGlobalObject::remove):

  • bindings/js/ScriptValue.cpp:

(WebCore::ScriptValue::getString):
(WebCore::ScriptValue::toInspectorValue):

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::~WorkerScriptController):
(WebCore::WorkerScriptController::initScript):
(WebCore::WorkerScriptController::evaluate):
(WebCore::WorkerScriptController::disableEval):

  • bindings/objc/WebScriptObject.mm:

(_didExecute):
(-[WebScriptObject _setImp:originRootObject:rootObject:]):
(-[WebScriptObject _setOriginRootObject:andRootObject:]):
(-[WebScriptObject dealloc]):
(-[WebScriptObject finalize]):
(-[WebScriptObject callWebScriptMethod:withArguments:]):
(-[WebScriptObject evaluateWebScript:]):
(-[WebScriptObject setValue:forKey:]):
(-[WebScriptObject valueForKey:]):
(-[WebScriptObject removeWebScriptKey:]):
(-[WebScriptObject hasWebScriptKey:]):
(-[WebScriptObject stringRepresentation]):
(-[WebScriptObject webScriptValueAtIndex:]):
(-[WebScriptObject setWebScriptValueAtIndex:value:]):
(+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateCallbackImplementation):

  • bindings/scripts/test/JS/JSTestCallback.cpp:

(WebCore::JSTestCallback::callbackWithNoParam):
(WebCore::JSTestCallback::callbackWithClass1Param):
(WebCore::JSTestCallback::callbackWithClass2Param):
(WebCore::JSTestCallback::callbackWithStringList):
(WebCore::JSTestCallback::callbackWithBoolean):
(WebCore::JSTestCallback::callbackRequiresThisToPass):

  • bridge/NP_jsobject.cpp:

(_NPN_InvokeDefault):
(_NPN_Invoke):
(_NPN_Evaluate):
(_NPN_GetProperty):
(_NPN_SetProperty):
(_NPN_RemoveProperty):
(_NPN_HasProperty):
(_NPN_HasMethod):
(_NPN_Enumerate):
(_NPN_Construct):

  • bridge/c/c_class.cpp:

(JSC::Bindings::CClass::~CClass):
(JSC::Bindings::CClass::methodsNamed):
(JSC::Bindings::CClass::fieldNamed):

  • bridge/c/c_instance.cpp:

(JSC::Bindings::CInstance::moveGlobalExceptionToExecState):
(JSC::Bindings::CInstance::invokeMethod):
(JSC::Bindings::CInstance::invokeDefaultMethod):
(JSC::Bindings::CInstance::invokeConstruct):
(JSC::Bindings::CInstance::getPropertyNames):

  • bridge/c/c_runtime.cpp:

(JSC::Bindings::CField::valueFromInstance):
(JSC::Bindings::CField::setValueToInstance):

  • bridge/c/c_utility.cpp:

(JSC::Bindings::convertValueToNPVariant):
(JSC::Bindings::convertNPVariantToValue):

  • bridge/jni/jni_jsobject.mm:

(JavaJSObject::call):
(JavaJSObject::eval):
(JavaJSObject::getMember):
(JavaJSObject::setMember):
(JavaJSObject::removeMember):
(JavaJSObject::getSlot):
(JavaJSObject::setSlot):
(JavaJSObject::toString):
(JavaJSObject::convertValueToJObject):
(JavaJSObject::convertJObjectToValue):

  • bridge/jni/jni_objc.mm:

(JSC::Bindings::dispatchJNICall):

  • bridge/jni/jsc/JNIUtilityPrivate.cpp:

(JSC::Bindings::convertValueToJValue):

  • bridge/jni/jsc/JavaClassJSC.cpp:

(JavaClass::JavaClass):
(JavaClass::~JavaClass):

  • bridge/jni/jsc/JavaInstanceJSC.cpp:

(JavaInstance::stringValue):

  • bridge/jni/jsc/JavaMethodJSC.cpp:

(appendClassName):
(JavaMethod::signature):

  • bridge/jni/jsc/JavaStringJSC.h:

(JSC::Bindings::JavaString::JavaString):
(JSC::Bindings::JavaString::~JavaString):
(JSC::Bindings::JavaString::utf8):
(JSC::Bindings::JavaString::init):

  • bridge/jsc/BridgeJSC.cpp:

(JSC::Bindings::Instance::createRuntimeObject):
(JSC::Bindings::Instance::newRuntimeObject):

  • bridge/objc/objc_instance.mm:

(ObjcInstance::moveGlobalExceptionToExecState):
(ObjcInstance::invokeObjcMethod):
(ObjcInstance::invokeDefaultMethod):
(ObjcInstance::setValueOfUndefinedField):
(ObjcInstance::getValueOfUndefinedField):

  • bridge/objc/objc_runtime.mm:

(JSC::Bindings::ObjcField::valueFromInstance):
(JSC::Bindings::ObjcField::setValueToInstance):

  • bridge/objc/objc_utility.mm:

(JSC::Bindings::convertValueToObjcValue):
(JSC::Bindings::convertNSStringToString):
(JSC::Bindings::convertObjcValueToValue):

  • bridge/qt/qt_instance.cpp:

(JSC::Bindings::QtInstance::~QtInstance):
(JSC::Bindings::QtInstance::getQtInstance):
(JSC::Bindings::QtInstance::newRuntimeObject):

  • bridge/qt/qt_pixmapruntime.cpp:

(JSC::Bindings::QtPixmapInstance::createPixmapRuntimeObject):

  • bridge/qt/qt_runtime.cpp:

(JSC::Bindings::convertValueToQVariant):
(JSC::Bindings::convertQVariantToValue):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):

  • bridge/qt/qt_runtime_qt4.cpp:

(JSC::Bindings::convertValueToQVariant):
(JSC::Bindings::convertQVariantToValue):
(JSC::Bindings::QtRuntimeMetaMethod::call):
(JSC::Bindings::QtRuntimeConnectionMethod::call):

  • html/HTMLCanvasElement.cpp:

(WebCore::HTMLCanvasElement::createImageBuffer):

  • html/HTMLImageLoader.cpp:

(WebCore::HTMLImageLoader::notifyFinished):

  • plugins/PluginView.cpp:

(WebCore::PluginView::start):
(WebCore::PluginView::stop):
(WebCore::PluginView::performRequest):
(WebCore::PluginView::npObject):
(WebCore::PluginView::privateBrowsingStateChanged):

  • plugins/blackberry/PluginViewBlackBerry.cpp:

(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::getWindowInfo):

  • plugins/efl/PluginViewEfl.cpp:

(WebCore::PluginView::dispatchNPEvent):

  • plugins/gtk/PluginViewGtk.cpp:

(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):

  • plugins/mac/PluginViewMac.mm:

(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::dispatchNPEvent):

  • plugins/qt/PluginViewQt.cpp:

(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::setNPWindowIfNeeded):
(WebCore::PluginView::platformStart):

  • plugins/win/PluginViewWin.cpp:

(WebCore::PluginView::dispatchNPEvent):
(WebCore::PluginView::handleKeyboardEvent):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::setNPWindowRect):

  • testing/js/WebCoreTestSupport.cpp:

(WebCoreTestSupport::injectInternalsObject):
(WebCoreTestSupport::resetInternalsObject):

  • xml/XMLHttpRequest.cpp:

(WebCore::XMLHttpRequest::dropProtection):

Source/WebKit/blackberry:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

  • Api/BlackBerryGlobal.cpp:

(BlackBerry::WebKit::clearMemoryCaches):

  • WebCoreSupport/ClientExtension.cpp:
  • WebCoreSupport/PagePopupBlackBerry.cpp:

(WebCore::PagePopupBlackBerry::installDomFunction):

  • WebKitSupport/DumpRenderTreeSupport.cpp:

(DumpRenderTreeSupport::computedStyleIncludingVisitedInfo):

Source/WebKit/efl:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

  • ewk/ewk_frame.cpp:

(ewk_frame_script_execute):

  • ewk/ewk_view.cpp:

(ewk_view_js_object_add):

Source/WebKit/gtk:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

  • WebCoreSupport/DumpRenderTreeSupportGtk.cpp:

(DumpRenderTreeSupportGtk::gcCountJavascriptObjects):

Source/WebKit/mac:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

  • DOM/WebDOMOperations.mm:

(JSC):

  • Misc/WebCoreStatistics.mm:

(+[WebCoreStatistics javaScriptObjectsCount]):
(+[WebCoreStatistics javaScriptGlobalObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedGlobalObjectsCount]):
(+[WebCoreStatistics javaScriptProtectedObjectTypeCounts]):
(+[WebCoreStatistics javaScriptObjectTypeCounts]):
(+[WebCoreStatistics shouldPrintExceptions]):
(+[WebCoreStatistics setShouldPrintExceptions:]):
(+[WebCoreStatistics memoryStatistics]):
(+[WebCoreStatistics javaScriptReferencedObjectsCount]):

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::evaluate):
(WebKit::NetscapePluginInstanceProxy::invoke):
(WebKit::NetscapePluginInstanceProxy::invokeDefault):
(WebKit::NetscapePluginInstanceProxy::construct):
(WebKit::NetscapePluginInstanceProxy::getProperty):
(WebKit::NetscapePluginInstanceProxy::setProperty):
(WebKit::NetscapePluginInstanceProxy::removeProperty):
(WebKit::NetscapePluginInstanceProxy::hasMethod):
(WebKit::NetscapePluginInstanceProxy::enumerate):
(WebKit::NetscapePluginInstanceProxy::addValueToArray):
(WebKit::NetscapePluginInstanceProxy::moveGlobalExceptionToExecState):

  • Plugins/WebNetscapePluginStream.mm:

(WebNetscapePluginStream::wantsAllStreams):

  • Plugins/WebNetscapePluginView.mm:

(-[WebNetscapePluginView sendEvent:isDrawRect:]):
(-[WebNetscapePluginView privateBrowsingModeDidChange]):
(-[WebNetscapePluginView setWindowIfNecessary]):
(-[WebNetscapePluginView createPluginScriptableObject]):
(-[WebNetscapePluginView getFormValue:]):
(-[WebNetscapePluginView evaluateJavaScriptPluginRequest:]):
(-[WebNetscapePluginView webFrame:didFinishLoadWithReason:]):
(-[WebNetscapePluginView loadPluginRequest:]):
(-[WebNetscapePluginView _printedPluginBitmap]):

  • Plugins/WebPluginController.mm:

(+[WebPluginController plugInViewWithArguments:fromPluginPackage:]):
(-[WebPluginController stopOnePlugin:]):
(-[WebPluginController destroyOnePlugin:]):
(-[WebPluginController startAllPlugins]):
(-[WebPluginController addPlugin:]):

  • WebView/WebFrame.mm:

(-[WebFrame _stringByEvaluatingJavaScriptFromString:forceUserGesture:]):
(-[WebFrame _stringByEvaluatingJavaScriptFromString:withGlobalObject:inScriptWorld:]):

  • WebView/WebScriptDebugDelegate.mm:

(-[WebScriptCallFrame scopeChain]):
(-[WebScriptCallFrame evaluateWebScript:]):

  • WebView/WebView.mm:

(+[WebView _reportException:inContext:]):
(-[WebView aeDescByEvaluatingJavaScriptFromString:]):
(-[WebView _computedStyleIncludingVisitedInfo:forElement:]):

Source/WebKit/qt:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

  • Api/qwebframe.cpp:

(QWebFramePrivate::addQtSenderToGlobalObject):
(QWebFrame::addToJavaScriptWindowObject):

  • WebCoreSupport/DumpRenderTreeSupportQt.cpp:

(DumpRenderTreeSupportQt::injectInternalsObject):
(DumpRenderTreeSupportQt::resetInternalsObject):

Source/WebKit/win:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

  • WebCoreStatistics.cpp:

(WebCoreStatistics::javaScriptObjectsCount):
(WebCoreStatistics::javaScriptGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectsCount):
(WebCoreStatistics::javaScriptProtectedGlobalObjectsCount):
(WebCoreStatistics::javaScriptProtectedObjectTypeCounts):

  • WebFrame.cpp:

(WebFrame::stringByEvaluatingJavaScriptInScriptWorld):

  • WebJavaScriptCollector.cpp:

(WebJavaScriptCollector::objectCount):

  • WebView.cpp:

(WebView::stringByEvaluatingJavaScriptFromString):
(WebView::reportException):
(WebView::elementFromJS):

Source/WebKit2:

Changed all sites that used JSLock to instead use the new JSLockHolder
and pass in the correct JS context that the code is about to interact with that
needs protection.

  • Shared/mac/WebMemorySampler.mac.mm:

(WebKit::WebMemorySampler::sampleWebKit):

  • WebProcess/InjectedBundle/InjectedBundle.cpp:

(WebKit::InjectedBundle::javaScriptObjectsCount):
(WebKit::InjectedBundle::reportException):

  • WebProcess/Plugins/Netscape/JSNPObject.cpp:

(WebKit::JSNPObject::callMethod):
(WebKit::JSNPObject::callObject):
(WebKit::JSNPObject::callConstructor):
(WebKit::JSNPObject::put):
(WebKit::JSNPObject::deleteProperty):
(WebKit::JSNPObject::getOwnPropertyNames):
(WebKit::JSNPObject::propertyGetter):

  • WebProcess/Plugins/Netscape/NPJSObject.cpp:

(WebKit::NPJSObject::hasMethod):
(WebKit::NPJSObject::invoke):
(WebKit::NPJSObject::invokeDefault):
(WebKit::NPJSObject::hasProperty):
(WebKit::NPJSObject::getProperty):
(WebKit::NPJSObject::setProperty):
(WebKit::NPJSObject::removeProperty):
(WebKit::NPJSObject::enumerate):
(WebKit::NPJSObject::construct):

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:

(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):
(WebKit::NPRuntimeObjectMap::evaluate):
(WebKit::NPRuntimeObjectMap::moveGlobalExceptionToExecState):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit::WebFrame::jsWrapperForWorld):
(WebKit::WebFrame::computedStyleIncludingVisitedInfo):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::runJavaScriptInMainFrame):

  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::getWebCoreStatistics):

14:28 Changeset [121057] by fsamuel@chromium.org
  • 4 edits in trunk/Source/WebKit/chromium

[Chromium] Browser Plugin: Expose advanceFocus to WebKit API so that guests can advance focus of theirs embedders
https://bugs.webkit.org/show_bug.cgi?id=88827

Reviewed by Darin Fisher.

A browser plugin needs to be able to tells its embedder when the guest
is done tabbing through controls and wants its embedder to advance its
tab position.

  • public/WebView.h:

(WebView):
(WebKit::WebView::advanceFocus):

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::advanceFocus):
(WebKit):

  • src/WebViewImpl.h:

(WebViewImpl):

13:59 Changeset [121056] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

editing/spelling/grammar-edit-word.html fails on WK2 bots
https://bugs.webkit.org/show_bug.cgi?id=89199

  • platform/mac-wk2/Skipped:
13:45 Changeset [121055] by commit-queue@webkit.org
  • 20 edits in trunk

[Chromium] Change implementing a fast-path for copying GPU-accelerated Canvas2D instances to WebGL textures.
https://bugs.webkit.org/show_bug.cgi?id=86275

This change adds the necessary plumbing to the various rendering contexts to copy the backing store texture of
a Canvas2D instance to be copied to a WebGL texture. The GL_CHROMIUM_copy_texture extension is necessary
because the backing-store for a GPU-accelerated skia Canvas2D is normally in BGRA format, which is not supported
by glCopyTexImage.

Patch by Jeff Timanus <twiz@chromium.org> on 2012-06-22
Reviewed by Kenneth Russell.

Source/Platform:

  • chromium/public/WebGraphicsContext3D.h:

(WebGraphicsContext3D):
(WebKit::WebGraphicsContext3D::copyTextureCHROMIUM):

Source/WebCore:

Test: fast/canvas/webgl/*

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore):
(WebCore::WebGLRenderingContext::texImage2D):

  • platform/chromium/support/Extensions3DChromium.cpp:

(WebCore::Extensions3DChromium::copyTextureCHROMIUM):
(WebCore):

  • platform/graphics/Extensions3D.h:

(Extensions3D):

  • platform/graphics/ImageBuffer.cpp:

(WebCore):
(WebCore::ImageBuffer::copyToPlatformTexture):

  • platform/graphics/ImageBuffer.h:

(WebCore):
(ImageBuffer):

  • platform/graphics/chromium/Canvas2DLayerBridge.cpp:

(WebCore::Canvas2DLayerBridge::backBufferTexture):
(WebCore):

  • platform/graphics/chromium/Canvas2DLayerBridge.h:

(Canvas2DLayerBridge):

  • platform/graphics/chromium/Extensions3DChromium.h:

(Extensions3DChromium):

  • platform/graphics/opengl/Extensions3DOpenGL.cpp:

(WebCore::Extensions3DOpenGL::copyTextureCHROMIUM):
(WebCore):

  • platform/graphics/opengl/Extensions3DOpenGL.h:

(Extensions3DOpenGL):

  • platform/graphics/qt/Extensions3DQt.cpp:

(WebCore::Extensions3DQt::copyTextureCHROMIUM):
(WebCore):

  • platform/graphics/qt/Extensions3DQt.h:

(Extensions3DQt):

  • platform/graphics/skia/ImageBufferSkia.cpp:

(WebCore::ImageBuffer::copyToPlatformTexture):
(WebCore):

Source/WebKit/chromium:

  • DEPS: Rolled chromium to 143630 to fix chromium-linux ews failures.

LayoutTests:

  • platform/chromium/TestExpectations: Temporarily suppressed layout test, fast/canvas/webgl/gl-teximage.html until a rebaseline can be submitted.
13:37 Changeset [121054] by kbr@google.com
  • 2 edits in trunk/LayoutTests

Layout Test media/event-attributes.html is failing
https://bugs.webkit.org/show_bug.cgi?id=73692

Unreviewed test expectations update; mark test as occasionally
crashing as well.

  • platform/chromium/TestExpectations:
13:28 Changeset [121053] by commit-queue@webkit.org
  • 23 edits in trunk/Source

Add url to supportsType
https://bugs.webkit.org/show_bug.cgi?id=89514

Patch by Danilo Cesar Lemes de Paula <danilo.cesar@collabora.co.uk> on 2012-06-22
Reviewed by Eric Carlson.

No new tests since there's no change on code behavior.

When a blob is created as the address for a Media Stream, the MediaEngine
will ask it's players if they support that media. However, a player built
for MediaStream needs to know to URL to decide if it's supported or not.

  • dom/DOMImplementation.cpp:

(WebCore::DOMImplementation::createDocument):

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::canPlayType):
(WebCore::HTMLMediaElement::selectNextSourceChild):

  • html/HTMLMediaElement.h:
  • platform/graphics/MediaPlayer.cpp:

(MediaPlayerFactory):
(WebCore::MediaPlayerFactory::MediaPlayerFactory):
(WebCore):
(WebCore::textPlain):
(WebCore::bestMediaEngineForTypeAndCodecs):
(WebCore::MediaPlayer::load):
(WebCore::MediaPlayer::loadWithNextMediaEngine):
(WebCore::MediaPlayer::paint):
(WebCore::MediaPlayer::supportsType):

  • platform/graphics/MediaPlayer.h:

(WebCore):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.cpp:

(WebCore::MediaPlayerPrivateAVFoundationCF::supportsType):

  • platform/graphics/avfoundation/cf/MediaPlayerPrivateAVFoundationCF.h:

(MediaPlayerPrivateAVFoundationCF):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.h:

(MediaPlayerPrivateAVFoundationObjC):

  • platform/graphics/avfoundation/objc/MediaPlayerPrivateAVFoundationObjC.mm:

(WebCore::MediaPlayerPrivateAVFoundationObjC::supportsType):

  • platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.cpp:

(WebCore::MediaPlayerPrivate::supportsType):

  • platform/graphics/blackberry/MediaPlayerPrivateBlackBerry.h:

(MediaPlayerPrivate):

  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
  • platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.h:

(MediaPlayerPrivateGStreamer):

  • platform/graphics/mac/MediaPlayerPrivateQTKit.h:

(MediaPlayerPrivateQTKit):

  • platform/graphics/mac/MediaPlayerPrivateQTKit.mm:

(WebCore::MediaPlayerPrivateQTKit::supportsType):

  • platform/graphics/qt/MediaPlayerPrivateQt.cpp:

(WebCore::MediaPlayerPrivateQt::supportsType):

  • platform/graphics/qt/MediaPlayerPrivateQt.h:

(MediaPlayerPrivateQt):

  • platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:

(WebCore::MediaPlayerPrivateQuickTimeVisualContext::supportsType):

  • platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.h:

(MediaPlayerPrivateQuickTimeVisualContext):

  • platform/graphics/wince/MediaPlayerPrivateWinCE.h:

(MediaPlayerPrivate):

13:26 Changeset [121052] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

fast/canvas/canvas-createImageData.html crashes on Lion WK2 Debug bot
https://bugs.webkit.org/show_bug.cgi?id=89780

  • platform/mac-wk2/Skipped: Add to skipped list for wk2.
13:10 Changeset [121051] by commit-queue@webkit.org
  • 10 edits in trunk

[BlackBerry] Sanitize GLSL code using ANGLE.

BlackBerry port does not sanitize GLSL code with ANGLE
https://bugs.webkit.org/show_bug.cgi?id=89583

Patch by Joshua Netterfield <jnetterfield@rim.com> on 2012-06-22
Reviewed by Rob Buis.

.:

  • Source/cmake/OptionsBlackBerry.cmake: Include ANGLE openGL headers as system headers in BlackBerry port.

Source/ThirdParty/ANGLE:

  • src/compiler/osinclude.h: Recognises QNX as POSIX

Source/WebCore:

No new tests are required.

  • CMakeLists.txt: Added ANGLE requirment for CMake builds with WEBGL
  • platform/graphics/ANGLEWebKitBridge.h: Added include for ANGLE/ShaderLang.h in BlackBerry platform.
  • platform/graphics/GraphicsContext3D.h: Added include for ANGLEWebKitBridge.h in BlackBerry platform.

Source/WebKit:

  • PlatformBlackBerry.cmake: Add ANGLE sources to BlackBerry builds.
13:06 Changeset [121050] by mitz@apple.com
  • 3 edits
    2 adds in trunk

RenderText’s minimum preferred width is incorrect when soft hyphens are used
https://bugs.webkit.org/show_bug.cgi?id=89775

Reviewed by Simon Fraser.

Source/WebCore:

Test: fast/text/soft-hyphen-min-preferred-width.html

  • rendering/RenderText.cpp:

(WebCore::hyphenWidth): Added this helper function.
(WebCore::RenderText::computePreferredLogicalWidths): In places where this function tests
for the soft hyphen character, added a check that the 'hyphens' style property is not set
to 'none', because in that case soft hyphens are not break opportunities. Also added an
explicit check to suppress break opportunities from isBreakable() if the occur after a
soft hyphen and 'hyphens' is set to 'none'. Finally, when measuring text up to a potential
line break, added the width of the hyphen string when needed.

LayoutTests:

  • fast/text/soft-hyphen-min-preferred-width-expected.html: Added.
  • fast/text/soft-hyphen-min-preferred-width.html: Added.
12:16 Changeset [121049] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Tap highlight fade animations are added to overlay continuously during pinch zoom.
https://bugs.webkit.org/show_bug.cgi?id=89772

Patch by Andrew Lo <anlo@rim.com> on 2012-06-22
Reviewed by Antonio Gomes.

When pinch zooming, DefaultTapHighlight::hide is continuously
called from the UI thread. This resulted in fade animations being
created and added to the override overlay continuously.

This patch moves the m_visible check so that it applies for both
threads.

Internal PR164183

  • WebKitSupport/DefaultTapHighlight.cpp:

(BlackBerry::WebKit::DefaultTapHighlight::draw):
(BlackBerry::WebKit::DefaultTapHighlight::hide):

  • WebKitSupport/DefaultTapHighlight.h:

(DefaultTapHighlight):

12:10 Changeset [121048] by dino@apple.com
  • 3 edits in trunk/Source/WebCore

BitmapImage duplicates code to calculate size
https://bugs.webkit.org/show_bug.cgi?id=89728
<rdar://problem/11724321>

Reviewed by Darin Adler.

Add a new updateSize method to BitmapImage that
avoids duplication in the size and
sizeRespectingOrientation methods.

No new tests needed.

  • platform/graphics/BitmapImage.cpp:

(WebCore::BitmapImage::updateSize): new method that will set
m_size and m_sizeRespectingOrientation if necessary.
(WebCore):
(WebCore::BitmapImage::size):
(WebCore::BitmapImage::sizeRespectingOrientation): these each
now call updateSize rather than duplicate the update code.

  • platform/graphics/BitmapImage.h:

(BitmapImage):

11:55 Changeset [121047] by arv@chromium.org
  • 3 edits in trunk/Source/WebCore

[V8] Clean up visitDOMWrapper code
https://bugs.webkit.org/show_bug.cgi?id=89774

Reviewed by Tony Chang.

This moves the check if domWrapperVisitorFunction is null into a function of the WrapperTypeInfo struct.
This is so that users of WrapperTypeInfo does not need to know about the inner details of the struct.
It also makes things more consistent since the other fields in the struct have these kind of functions.

This is a follow up change to http://trac.webkit.org/changeset/120854.

No new tests. Covered by existing tests.

  • bindings/v8/V8GCController.cpp:

(WebCore::GrouperVisitor::visitDOMWrapper): Call WrapperTypeInfo::visitDOMWrapper instead.

  • bindings/v8/WrapperTypeInfo.h:

(WrapperTypeInfo):
(WebCore::WrapperTypeInfo::visitDOMWrapper): If domWrapperVisitorFunction is non null call it.

11:47 Changeset [121046] by caseq@chromium.org
  • 5 edits in trunk

Web Inspector: ExtensionPanel.onSearch listener doesn't work
https://bugs.webkit.org/show_bug.cgi?id=89517

Patch by Jan Keromnes <janx@linux.com> on 2012-06-22
Reviewed by Yury Semikhatsky.

Source/WebCore:

Added a test to see if listener fires on search:
LayoutTests/inspector/extensions/extensions-panel.html

  • inspector/front-end/ExtensionPanel.js:

(WebInspector.ExtensionPanel.prototype.searchCanceled):
(WebInspector.ExtensionPanel.prototype.performSearch):
(WebInspector.ExtensionPanel.prototype.jumpToNextSearchResult):
(WebInspector.ExtensionPanel.prototype.jumpToPreviousSearchResult):

LayoutTests:

  • inspector/extensions/extensions-panel-expected.txt:
  • inspector/extensions/extensions-panel.html:
11:40 Changeset [121045] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Set WebSecurityEnabled flag accordingly.
https://bugs.webkit.org/show_bug.cgi?id=89602

Patch by Yong Li <yoli@rim.com> on 2012-06-22
Reviewed by Rob Buis.

Disable web security checks if needed.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::init):
(BlackBerry::WebKit::WebPagePrivate::didChangeSettings):

11:32 Changeset [121044] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Increase the GrContext texture cache count cap to 2K
https://bugs.webkit.org/show_bug.cgi?id=89761

Patch by Brian Salomon <bsalomon@google.com> on 2012-06-22
Reviewed by Stephen White.

Tests: The change is for performance. The code is exercised by all the canvas 2d layout tests.

  • platform/chromium/support/GraphicsContext3DPrivate.cpp:
11:25 Changeset [121043] by commit-queue@webkit.org
  • 18 edits in trunk

[Chromium] Adjust the displayed elements of the new Chrome media controls.
https://bugs.webkit.org/show_bug.cgi?id=89416

Patch by Silvia Pfeiffer <silviapf@chromium.org> on 2012-06-22
Reviewed by Eric Carlson.

Source/WebCore:

No new tests - existing media tests cover these cases.

Remove the volume slider for videos without audio or media resource.
Display the transport bar for videos without a media resource.
Don't show the fullscreen button for

  • html/shadow/MediaControlRootElementChromium.cpp:

(WebCore::MediaControlRootElementChromium::reset):
Don't display volume slider if media controller has no audio.
Don't display fullscreen button if media controller supportsFullscreen().
(WebCore::MediaControlRootElementChromium::reportedError):
Don't hide the timeline for failed videos, e.g. where the resource doesn't load.

LayoutTests:

  • platform/chromium/TestExpectations:

Skipping a test temporarily for win and mac until rebaseline.

11:22 Changeset [121042] by apavlov@chromium.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: [Elements] Right-clicking on whitespace should show the same context menu as right-clicking on the tag text
https://bugs.webkit.org/show_bug.cgi?id=89766

Reviewed by Vsevolod Vlasov.

Explicitly check for the TreeElement.representedObject's nodeType()
rather than for the event target's enclosing element class.
Drive-by: do not consider the "collapsed node has children" ellipsis as a text node.

  • inspector/front-end/ElementsTreeOutline.js:

(WebInspector.ElementsTreeOutline.prototype.populateContextMenu):

11:19 Changeset [121041] by fmalita@chromium.org
  • 3 edits
    2 adds in trunk

REGRESSION (Safari 5.1.5 - ToT): Crash in RenderSVGRoot::computeReplacedLogicalWidth
https://bugs.webkit.org/show_bug.cgi?id=85797

Reviewed by Darin Adler.

Source/WebCore:

Test: svg/custom/svg-width-intrinsic-crash.html

RenderSVGRoot::computeReplacedLogicalWidth assumes that if
SVGSVGElement::widthAttributeEstablishesViewport returns false, the
SVG must be embedded via <object>. This is not always the case, though:
widthAttributeEstablishesViewport can also return false for inline
SVG if it doesn't have a replaced logical width.

Updated computeReplacedLogical{Width,Height} to handle the
!widthAttributeEstablishesViewport && !isEmbeddedThroughFrameContainingSVGDocument
case gracefully.

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
(WebCore::RenderSVGRoot::computeReplacedLogicalHeight):

LayoutTests:

  • svg/custom/svg-width-intrinsic-crash-expected.txt: Added.
  • svg/custom/svg-width-intrinsic-crash.html: Added.
11:10 Changeset [121040] by hayato@chromium.org
  • 4 edits in trunk

Modify event re-targeting algorithm so that we can tell which distributed node is clicked.
https://bugs.webkit.org/show_bug.cgi?id=89073

Reviewed by Dimitri Glazkov.

Source/WebCore:

Re-landing r120945 since bug 89172 was resolved.

Adopt a new event re-targeting algorithm in the latest Shadow DOM spec.
The corresponding bug in the shadow DOM spec is:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=17090

This change is introduced to handle the following use case:

  1. There is an insertion point, with zero or more nodes distributed into it.
  2. User clicks on one of the items.
  3. The event handler in shadow DOM subtree wants to know which item was clicked on.

The new re-targeting algorithm sets an event's target to a
distributed node where an event was originally fired, instead of
an insertion point to where the node is distributed.

The similar re-targeting algorithm also applies to an event's
relatedTarget.

Test: fast/dom/shadow/shadow-dom-event-dispatching.html

  • dom/EventDispatcher.cpp:

(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventDispatcher::ensureEventAncestors):

LayoutTests:

  • fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:
11:07 Changeset [121039] by caseq@chromium.org
  • 2 edits in trunk/Source/WebCore

Unreviewed follow-up to r121030, fix display of "Duration" in timeline event details popup.

  • inspector/front-end/TimelinePresentationModel.js:

(WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):

10:50 Changeset [121038] by lforschler@apple.com
  • 4 edits in branches/safari-536-branch/Source

Versioning.

10:47 Changeset [121037] by lforschler@apple.com
  • 1 copy in tags/Safari-536.23

New Tag.

10:42 Changeset [121036] by kbr@google.com
  • 7 edits
    1 delete in trunk/Source

Unreviewed, rolling out r121025.
http://trac.webkit.org/changeset/121025
https://bugs.webkit.org/show_bug.cgi?id=89580

Caused crash in
EventHandler.shouldTurnVerticalTicksIntoHorizontal webkit unit
test on 10.7

Source/WebCore:

  • page/EventHandler.cpp:

(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
(WebCore::EventHandler::handleWheelEvent):

  • page/EventHandler.h:

(EventHandler):

  • page/chromium/EventHandlerChromium.cpp:

(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):

  • page/gtk/EventHandlerGtk.cpp:

(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):

Source/WebKit/chromium:

  • WebKit.gypi:
  • tests/EventHandlerTest.cpp: Removed.
10:40 Changeset [121035] by apavlov@chromium.org
  • 2 edits in branches/chromium/1180/Source/WebCore/platform

Merge 120850 - Regression(r116408): Ctrl-A (select all) on large text file hangs the tab with high CPU usage
https://bugs.webkit.org/show_bug.cgi?id=89562

Reviewed by Ryosuke Niwa.

Rather than replace the newlines in-place (in O(n2)), build a new string using StringBuilder, which takes O(n).

No new tests, this is a perf improvement.

  • platform/chromium/ClipboardUtilitiesChromium.cpp:

(WebCore::replaceNewlinesWithWindowsStyleNewlines):

  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::replaceNewlinesWithWindowsStyleNewlines):

TBR=tony@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10626020

10:11 Changeset [121034] by lforschler@apple.com
  • 2 edits in branches/safari-536-branch/Source/WebCore

Merged r120954 <rdar://problem/11718988>

09:55 Changeset [121033] by caseq@chromium.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: only increase length for timeline bars below minimal width
https://bugs.webkit.org/show_bug.cgi?id=89727

Reviewed by Pavel Feldman.

  • inspector/front-end/TimelinePanel.js:

(WebInspector.TimelineCalculator.prototype.computeBarGraphWindowPosition):
(WebInspector.TimelineCalculator.prototype.setDisplayWindow):
(WebInspector.TimelineRecordGraphRow.prototype.update):

09:49 Changeset [121032] by ddkilzer@apple.com
  • 2 edits in trunk/Source/WebCore

BUILD FIX: FormController.cpp fails to build on 32-bit architectures

This fixes the following build failure introduced in r121004 for
Bug 89628:

FormController.cpp:62:36: error: implicit conversion loses integer precision: 'uint64_t' (aka 'unsigned long long') to 'size_t' (aka 'unsigned long') [-Werror,-Wshorten-64-to-32]

state.m_values.reserveCapacity(valueSize);
~

  • html/FormController.cpp:

(WebCore::FormControlState::deserialize): Change type of
valueSize from uint64_t to size_t.

09:48 Changeset [121031] by inferno@chromium.org
  • 3 edits
    2 adds in trunk

Crash in DragController::concludeEditDrag.
https://bugs.webkit.org/show_bug.cgi?id=89762

Reviewed by Ryosuke Niwa.

Source/WebCore:

RefPtr the innerFrame since it can get destroyed due to mutation
event fired in DragController::dispatchTextInputEventFor().

Test: editing/pasteboard/drop-text-events-sideeffect-crash.html

  • page/DragController.cpp:

(WebCore::DragController::concludeEditDrag):

LayoutTests:

  • editing/pasteboard/drop-text-events-sideeffect-crash-expected.txt: Added.
  • editing/pasteboard/drop-text-events-sideeffect-crash.html: Added.
09:46 Changeset [121030] by caseq@chromium.org
  • 3 edits in trunk/Source/WebCore

Web Inspector: timeline event details popup misses CPU time
https://bugs.webkit.org/show_bug.cgi?id=89765

Reviewed by Pavel Feldman.

  • inspector/front-end/TimelinePresentationModel.js:

(WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):

09:23 Changeset [121029] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/blackberry

[Blackberry] BlackBerry::Platform::Settings::get() rename to BlackBerry::Platform::Settings::instance() to make it consistent with our other singletons
https://bugs.webkit.org/show_bug.cgi?id=89684

Patch by Parth Patel <parpatel@rim.com> on 2012-06-22
Reviewed by Yong Li.

Build Fix-Typo Update setting instance access to use instance() instead of get().

  • WebKitSupport/InputHandler.cpp:

(BlackBerry::WebKit::InputHandler::isInputModeEnabled):

09:20 Changeset [121028] by peter@chromium.org
  • 11 edits in trunk

[Chromium] Disable c++0x compatibility warnings in JavaScriptCore.gyp when building for Android
https://bugs.webkit.org/show_bug.cgi?id=88853

Reviewed by Steve Block.

The Android exclusions were necessary to fix a gyp generation error, as
the gcc_version variable wasn't being defined for Android. Remove these
exceptions when Chromium is able to define the gcc_version variable.

Source/JavaScriptCore:

Source/WebCore:

  • WebCore.gyp/WebCore.gyp:

Source/WebKit/chromium:

  • WebKit.gyp:
  • WebKitUnitTests.gyp:

Source/WTF:

  • WTF.gyp/WTF.gyp:

Tools:

  • DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:
09:00 Changeset [121027] by commit-queue@webkit.org
  • 6 edits
    2 adds in trunk

[Shadow] parentTreeScope() of nested shadow DOM subtree returns document().
https://bugs.webkit.org/show_bug.cgi?id=89172

Patch by Takashi Sakamoto <tasak@google.com> on 2012-06-22
Reviewed by Hajime Morita.

Source/WebCore:

Added setParentTreeScope to set parent treescope of shadow root to be
host's treescope in ElementShadow::addShadowRoot.

Test: fast/dom/shadow/parent-tree-scope-in-shadow.html

  • dom/ElementShadow.cpp:

(WebCore::ElementShadow::addShadowRoot):
Added setParentTreeScope.

  • testing/Internals.cpp:

(WebCore::Internals::parentTreeScope):
Newly added. This method returns a parent tree scope's root node of
a given node, because a tree scope's root node is either document node
or shadow root node and both nodes derive from TreeScope. So root nodes
are treated as TreeScope.

  • testing/Internals.h:

(Internals):

  • testing/Internals.idl:

Added parentTreeScope.

LayoutTests:

  • fast/dom/shadow/parent-tree-scope-in-shadow-expected.txt: Added.
  • fast/dom/shadow/parent-tree-scope-in-shadow.html: Added.
08:20 Changeset [121026] by tony@chromium.org
  • 9 edits in trunk

-webkit-flex-flow shouldn't be an enumerable property of the computed style
https://bugs.webkit.org/show_bug.cgi?id=89698

Reviewed by Ojan Vafai.

Source/WebCore:

flex-flow is a shorthand for flex-direction and flex-wrap:
http://dev.w3.org/csswg/css3-flexbox/#flex-flow-property
Shorthand properties should not be enumerable in the computed style, although you can still
get the value from the computed style.

Tests: css3/flexbox/css-properties.html: New test case added.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore):

LayoutTests:

  • css3/flexbox/css-properties-expected.txt:
  • css3/flexbox/css-properties.html:
  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css/getComputedStyle/resources/property-names.js:
  • svg/css/getComputedStyle-basic-expected.txt:
08:18 Changeset [121025] by rjkroege@chromium.org
  • 7 edits
    1 add in trunk/Source

Suppress horizontal conversion of PlatformWheelEvents when hasPreciseScrollingDeltas is true
https://bugs.webkit.org/show_bug.cgi?id=89580

Source/WebCore:

WebKit GTK and Chromium Linux force vertical wheel events to
scroll horizontally when over horizontal scroll bars. This is
undesirable for touchpad scrolling with
hasPreciseScrollingDeltas() == true. Modified shouldTurnVerticalTicksIntoHorizontal
to not perform this conversion for PlatformWheelEvents with preciseScrollingDeltas.

Reviewed by Adam Barth.

Unit tests in EventHandlerTest.cpp

  • page/EventHandler.cpp:

(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):
(WebCore::EventHandler::handleWheelEvent):

  • page/EventHandler.h:

(EventHandler):

  • page/chromium/EventHandlerChromium.cpp:

(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):

  • page/gtk/EventHandlerGtk.cpp:

(WebCore::EventHandler::shouldTurnVerticalTicksIntoHorizontal):

Source/WebKit/chromium:

WebKit GTK and Chromium Linux force vertical wheel events to
scroll horizontally when over horizontal scroll bars. This is
undesirable for touchpad scrolling with hasPreciseScrollingDeltas() == true.

Added unit tests to show that
EventHandler::shouldTurnVerticalTicksIntoHorizontal() is true
only for PlatformWheelEvents when !hasPreciseScrollingDeltas().

Reviewed by Adam Barth.

  • WebKit.gypi:
  • tests/EventHandlerTest.cpp: Added.

(MockScrollbar):
(MockScrollbar::MockScrollbar):
(MockScrollbar::~MockScrollbar):
(MockHitTestResult):
(MockHitTestResult::MockHitTestResult):
(MockHitTestResult::scrollbar):
(MockPlatformWheelEvent):
(MockPlatformWheelEvent::MockPlatformWheelEvent):
(EventHandlerTest):
(EventHandlerTest::EventHandlerTest):
(EventHandlerTest::externalShouldTurnVerticalTicksIntoHorizontal):
(TEST):

07:47 Changeset [121024] by kkristof@inf.u-szeged.hu
  • 2 edits in trunk/LayoutTests

[Qt] Unreviewed gardening. Skip failing test after r121019.
https://bugs.webkit.org/show_bug.cgi?id=89760

Patch by Ádám Kallai <kadam@inf.u-szeged.hu> on 2012-06-22

  • platform/qt/Skipped:
07:21 Changeset [121023] by ossy@webkit.org
  • 1 edit
    6 adds in trunk/LayoutTests

[Qt] Unreviewed gardening after r120924.

  • platform/qt-5.0-wk1/editing/inserting/4960120-1-expected.png: Added.
  • platform/qt-5.0-wk1/editing/inserting/4960120-1-expected.txt: Added.
  • platform/qt-5.0-wk1/editing/inserting/before-after-input-element-expected.png: Added.
  • platform/qt-5.0-wk1/editing/inserting/before-after-input-element-expected.txt: Added.
07:08 Changeset [121022] by loislo@chromium.org
  • 19 edits
    1 add in trunk

Web Inspector: partially instrument DOM Tree native memory.
https://bugs.webkit.org/show_bug.cgi?id=89568

PerformanceTests:

This patch adds MemoryInstrumentation class that counts all visited
objects and calls reportMemoryUsage.

Reviewed by Yury Semikhatsky.

  • inspector/native-memory-snapshot.html:

Source/WebCore:

This patch adds MemoryInstrumentation class that counts all visited
objects and calls reportMemoryUsage for the instrumented classes.

Reviewed by Yury Semikhatsky.

  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ScriptWrappable.h:

(WebCore::ScriptWrappable::reportMemoryUsage):
(ScriptWrappable):

  • bindings/v8/ScriptWrappable.h:

(WebCore::ScriptWrappable::reportMemoryUsage):
(ScriptWrappable):

  • css/StylePropertySet.h:

(WebCore::StylePropertySet::reportMemoryUsage):
(StylePropertySet):

  • dom/ContainerNode.h:

(WebCore::ContainerNode::reportMemoryUsage):
(ContainerNode):

  • dom/Element.h:

(WebCore::Element::reportMemoryUsage):
(Element):

  • dom/ElementAttributeData.h:

(WebCore::ElementAttributeData::reportMemoryUsage):
(ElementAttributeData):

  • dom/MemoryInstrumentation.h: Added.

(WebCore):
(MemoryInstrumentation):
(WebCore::MemoryInstrumentation::~MemoryInstrumentation):
(WebCore::MemoryInstrumentation::reportObject):
(WebCore::MemoryInstrumentation::reportPointer):
(MemoryObjectInfo):
(WebCore::MemoryObjectInfo::MemoryObjectInfo):
(WebCore::MemoryObjectInfo::reportInstrumentedPointer):
(WebCore::MemoryObjectInfo::reportPointer):
(WebCore::MemoryObjectInfo::reportInstrumentedObject):
(WebCore::MemoryObjectInfo::reportObject):
(WebCore::MemoryObjectInfo::reportObjectInfo):
(WebCore::MemoryObjectInfo::objectType):
(WebCore::MemoryObjectInfo::objectSize):
(WebCore::MemoryInstrumentation::reportInstrumentedPointer):
(WebCore::MemoryInstrumentation::reportInstrumentedObject):

  • dom/Node.cpp:

(WebCore::Node::reportMemoryUsage):
(WebCore):

  • dom/Node.h:

(Node):

  • dom/QualifiedName.h:

(WebCore::QualifiedName::QualifiedNameImpl::reportMemoryUsage):
(WebCore::QualifiedName::reportMemoryUsage):

  • inspector/InspectorMemoryAgent.cpp:

(MemoryBlockName):
(WebCore):
(WebCore::addMemoryBlockFor):
(WebCore::domTreeInfo):
(WebCore::memoryCacheInfo):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):

  • platform/TreeShared.h:

(WebCore::TreeShared::reportMemoryUsage):
(TreeShared):

06:56 Changeset [121021] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Web Inspector: Support 'Restart frame' in inspector frontend
https://bugs.webkit.org/show_bug.cgi?id=89678

Patch by Peter Rybin <peter.rybin@gmail.com> on 2012-06-22
Reviewed by Pavel Feldman.

Action is added to call frame placard's context menu. Context menu is now built
on a call frame level rather than on callback sidebar level.

  • English.lproj/localizedStrings.js:
  • inspector/front-end/CallStackSidebarPane.js:

(WebInspector.CallStackSidebarPane):
(WebInspector.CallStackSidebarPane.prototype.update):
(WebInspector.CallStackSidebarPane.Placard):
(WebInspector.CallStackSidebarPane.Placard.prototype._update):
(WebInspector.CallStackSidebarPane.Placard.prototype._placardContextMenu):
(_restartFrame):

  • inspector/front-end/DebuggerModel.js:

(WebInspector.DebuggerModel.prototype.rawLocationToUILocation):
(WebInspector.DebuggerModel.prototype.callStackModified):
(WebInspector.DebuggerModel.CallFrame.prototype.restart):

  • inspector/front-end/Script.js:

(WebInspector.Script.prototype.editSource):

06:24 Changeset [121020] by commit-queue@webkit.org
  • 8 edits in trunk/Source

[Qt] Fix the remote inspector loading problems on Mac
https://bugs.webkit.org/show_bug.cgi?id=89747

Patch by Jocelyn Turcotte <turcotte.j@gmail.com> on 2012-06-22
Reviewed by Simon Hausmann.

Source/WebCore:

Make sure that the state of a SocketStreamHandle is set properly
when created from an existing QTcpSocket.

This fixes the inspectorserver Qt api auto test on Mac.

  • platform/network/qt/SocketStreamHandleQt.cpp:

(WebCore::SocketStreamHandle::SocketStreamHandle):

Source/WebKit2:

Reverse the creation order of the inter-dependent WebSocketServerConnection
and SocketStreamHandle to make sure that the later has a client properly
set on construction.

This is to work around the assert on m_state in SocketStreamHandle::setClient.

  • UIProcess/InspectorServer/WebSocketServer.cpp:

(WebKit::WebSocketServer::didAcceptConnection):

  • UIProcess/InspectorServer/WebSocketServer.h:

(WebKit::WebSocketServer::client):
(WebSocketServer):

  • UIProcess/InspectorServer/WebSocketServerConnection.cpp:

(WebKit::WebSocketServerConnection::WebSocketServerConnection):
(WebKit::WebSocketServerConnection::setSocketHandle):
(WebKit):

  • UIProcess/InspectorServer/WebSocketServerConnection.h:

(WebSocketServerConnection):

  • UIProcess/InspectorServer/qt/WebSocketServerQt.cpp:

(WebKit::QtTcpServerHandler::handleNewConnection):

05:54 Changeset [121019] by yosin@chromium.org
  • 3 edits
    6 adds in trunk

REGRESSION(r117738):[Forms] validationMessage IDL attribute should not have range overflow message if value isn't range overflow
https://bugs.webkit.org/show_bug.cgi?id=89736

Reviewed by Kent Tamura.

Source/WebCore:

Tests: fast/forms/date/input-date-validation-message.html

fast/forms/number/input-number-validation-message.html
fast/forms/range/input-range-validation-message.html

This patch changes comparison operator for range overflow message in
InputType::validationMessage().

  • html/InputType.cpp:

(WebCore::InputType::validationMessage):

LayoutTests:

Tests for HTMLInputElement.validationMessage attribute.

  • fast/forms/date/input-date-validation-message-expected.txt: Added.
  • fast/forms/date/input-date-validation-message.html: Added.
  • fast/forms/number/input-number-validation-message-expected.txt: Added.
  • fast/forms/number/input-number-validation-message.html: Added.
  • fast/forms/range/input-range-validation-message-expected.txt: Added.
  • fast/forms/range/input-range-validation-message.html: Added.
05:46 WebKitGTK/1.8.x edited by kov@webkit.org
(diff)
05:41 Changeset [121018] by kov@webkit.org
  • 2 edits in trunk/Source/WTF

Causes crashes in LLVMPipe
https://bugs.webkit.org/show_bug.cgi?id=89358

Patch by Gustavo Noronha Silva <gustavo.noronha@collabora.com> on 2012-06-18
Reviewed by Martin Robinson.

Change suggested by Dave Airlie and Xan Lopez.

  • wtf/Platform.h: disable global fastMalloc for GTK+
05:35 Changeset [121017] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Add frontend-side Entry object to FileSystemModel
https://bugs.webkit.org/show_bug.cgi?id=89739

Patch by Taiju Tsuiki <tzik@chromium.org> on 2012-06-22
Reviewed by Vsevolod Vlasov.

  • inspector/front-end/FileSystemModel.js:

(WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
(WebInspector.FileSystemModel.prototype.requestDirectoryContent):
(WebInspector.FileSystemModel.prototype._directoryContentReceived):
(WebInspector.FileSystemModel.FileSystem):
(WebInspector.FileSystemModel.Entry):
(WebInspector.FileSystemModel.Entry.prototype.get fileSystemModel):
(WebInspector.FileSystemModel.Entry.prototype.get fileSystem):
(WebInspector.FileSystemModel.Entry.prototype.get url):
(WebInspector.FileSystemModel.Entry.prototype.get name):
(WebInspector.FileSystemModel.Entry.prototype.get isDirectory):
(WebInspector.FileSystemModel.Directory):
(WebInspector.FileSystemModel.Directory.prototype.requestDirectoryContent):
(WebInspector.FileSystemModel.File):
(WebInspector.FileSystemModel.File.prototype.get mimeType):
(WebInspector.FileSystemModel.File.prototype.get resourceType):

04:32 Changeset [121016] by commit-queue@webkit.org
  • 42 edits
    2 moves in trunk/Source

Renamed DeviceOrientation to DeviceOrientationData
https://bugs.webkit.org/show_bug.cgi?id=88663

Patch by Amy Ousterhout <aousterh@chromium.org> on 2012-06-22
Reviewed by Steve Block.

Source/WebCore:

No new tests because this is simply a name change.

Renamed DeviceOrientation to DeviceOrientationData in order to be consistent with DeviceMotionData.
Updated all files that use DeviceOrientation.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.exp.in:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/JSDeviceOrientationEventCustom.cpp:

(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):

  • bindings/v8/custom/V8DeviceOrientationEventCustom.cpp:

(WebCore::V8DeviceOrientationEvent::initDeviceOrientationEventCallback):

  • dom/DOMAllInOne.cpp:
  • dom/DeviceOrientationClient.h:

(WebCore):
(DeviceOrientationClient):

  • dom/DeviceOrientationController.cpp:

(WebCore::DeviceOrientationController::timerFired):
(WebCore::DeviceOrientationController::didChangeDeviceOrientation):

  • dom/DeviceOrientationController.h:

(WebCore):
(DeviceOrientationController):

  • dom/DeviceOrientationData.cpp: Renamed from Source/WebCore/dom/DeviceOrientation.cpp.

(WebCore):
(WebCore::DeviceOrientationData::create):
(WebCore::DeviceOrientationData::DeviceOrientationData):
(WebCore::DeviceOrientationData::alpha):
(WebCore::DeviceOrientationData::beta):
(WebCore::DeviceOrientationData::gamma):
(WebCore::DeviceOrientationData::absolute):
(WebCore::DeviceOrientationData::canProvideAlpha):
(WebCore::DeviceOrientationData::canProvideBeta):
(WebCore::DeviceOrientationData::canProvideGamma):
(WebCore::DeviceOrientationData::canProvideAbsolute):

  • dom/DeviceOrientationData.h: Renamed from Source/WebCore/dom/DeviceOrientation.h.

(WebCore):
(DeviceOrientationData):

  • dom/DeviceOrientationEvent.cpp:

(WebCore::DeviceOrientationEvent::DeviceOrientationEvent):
(WebCore::DeviceOrientationEvent::initDeviceOrientationEvent):

  • dom/DeviceOrientationEvent.h:

(WebCore):
(WebCore::DeviceOrientationEvent::create):
(DeviceOrientationEvent):
(WebCore::DeviceOrientationEvent::orientation):

  • loader/EmptyClients.h:

(WebCore::EmptyDeviceOrientationClient::lastOrientation):

  • platform/mock/DeviceOrientationClientMock.cpp:

(WebCore::DeviceOrientationClientMock::setOrientation):

  • platform/mock/DeviceOrientationClientMock.h:

(WebCore::DeviceOrientationClientMock::lastOrientation):
(DeviceOrientationClientMock):

  • platform/qt/DeviceOrientationClientQt.cpp:

(DeviceOrientationClientQt):

  • platform/qt/DeviceOrientationClientQt.h:

(DeviceOrientationClientQt):

  • platform/qt/DeviceOrientationProviderQt.h:

(DeviceOrientationProviderQt):

Source/WebKit/blackberry:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

  • WebCoreSupport/DeviceOrientationClientBlackBerry.h:

(DeviceOrientationClientBlackBerry):

Source/WebKit/chromium:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

  • public/WebDeviceOrientation.h:

(WebDeviceOrientation):

  • src/DeviceOrientationClientProxy.cpp:

(WebKit::DeviceOrientationClientProxy::lastOrientation):

  • src/DeviceOrientationClientProxy.h:

(DeviceOrientationClientProxy):

  • src/WebDeviceOrientation.cpp:

(WebKit::WebDeviceOrientation::WebDeviceOrientation):
(WebKit::WebDeviceOrientation::operator=):
(WebKit::WebDeviceOrientation::operator PassRefPtr<WebCore::DeviceOrientationData>):

  • src/WebDeviceOrientationController.cpp:

(WebKit::WebDeviceOrientationController::didChangeDeviceOrientation):

Source/WebKit/efl:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

  • WebCoreSupport/DeviceOrientationClientEfl.h:

(DeviceOrientationClientEfl):

Source/WebKit/gtk:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

  • WebCoreSupport/DeviceOrientationClientGtk.h:

(DeviceOrientationClientGtk):

Source/WebKit/mac:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

  • WebCoreSupport/WebDeviceOrientationClient.h:

(WebDeviceOrientationClient):

  • WebCoreSupport/WebDeviceOrientationClient.mm:

(WebDeviceOrientationClient::lastOrientation):

  • WebView/WebDeviceOrientation.mm:
  • WebView/WebDeviceOrientationInternal.h:

Source/WebKit/qt:

Updated files to use the renamed DeviceOrientationData instead of DeviceOrientation.
This change makes DeviceOrientationData consistent with DeviceMotionData.

  • WebCoreSupport/DumpRenderTreeSupportQt.cpp:

(DumpRenderTreeSupportQt::setMockDeviceOrientation):

02:54 Changeset [121015] by sergio@webkit.org
  • 3 edits in trunk/Source/WebKit2

[WK2] FindController::hideFindUI should unmark highlighted text matches
https://bugs.webkit.org/show_bug.cgi?id=77747

Reviewed by Carlos Garcia Campos.

Unmark all text matches whenever FindController::hideFindUI is
called to allow callers using the ShowHighlight find option to
remove highlighting.

This patch enables a unit test for the WebKitFindController
previously guarded by a #if(0) after r109222.

  • UIProcess/API/gtk/tests/TestWebKitFindController.cpp:

(testFindControllerHide):

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::hideFindUI):

02:39 Changeset [121014] by vsevik@chromium.org
  • 22 edits
    2 adds in trunk

Web Inspector: Support separate script compilation and execution.
https://bugs.webkit.org/show_bug.cgi?id=89646

Reviewed by Pavel Feldman.

Source/WebCore:

Separate script compilation and run commands added to protocol and DebuggerAgent.
Separate script compilation and run implemented in v8 ScriptDebugServer, stubs added for js implementation.

Test: inspector/debugger/debugger-compile-and-run.html

  • bindings/js/ScriptDebugServer.cpp:

(WebCore::ScriptDebugServer::compileScript):
(WebCore):
(WebCore::ScriptDebugServer::clearCompiledScripts):
(WebCore::ScriptDebugServer::runScript):

  • bindings/js/ScriptDebugServer.h:

(WebCore::ScriptDebugServer::supportsSeparateScriptCompilationAndExecution):
(ScriptDebugServer):

  • bindings/v8/PageScriptDebugServer.cpp:

(WebCore::PageScriptDebugServer::compileScript):
(WebCore):
(WebCore::PageScriptDebugServer::clearCompiledScripts):
(WebCore::PageScriptDebugServer::runScript):

  • bindings/v8/PageScriptDebugServer.h:

(PageScriptDebugServer):

  • bindings/v8/ScriptDebugServer.cpp:

(WebCore::ScriptDebugServer::compileScript):
(WebCore):
(WebCore::ScriptDebugServer::clearCompiledScripts):
(WebCore::ScriptDebugServer::runScript):

  • bindings/v8/ScriptDebugServer.h:

(WebCore):
(WebCore::ScriptDebugServer::supportsSeparateScriptCompilationAndExecution):
(ScriptDebugServer):

  • inspector/Inspector.json:
  • inspector/InspectorDebuggerAgent.cpp:

(WebCore::InspectorDebuggerAgent::disable):
(WebCore::InspectorDebuggerAgent::supportsSeparateScriptCompilationAndExecution):
(WebCore):
(WebCore::InspectorDebuggerAgent::compileScript):
(WebCore::InspectorDebuggerAgent::runScript):

  • inspector/InspectorDebuggerAgent.h:

(InspectorDebuggerAgent):
(WebCore::InspectorDebuggerAgent::injectedScriptManager):

  • inspector/PageDebuggerAgent.cpp:

(WebCore::PageDebuggerAgent::injectedScriptForEval):
(WebCore):

  • inspector/PageDebuggerAgent.h:

(PageDebuggerAgent):

  • inspector/WorkerDebuggerAgent.cpp:

(WebCore::WorkerDebuggerAgent::injectedScriptForEval):
(WebCore):

  • inspector/WorkerDebuggerAgent.h:

(WorkerDebuggerAgent):

  • inspector/front-end/Settings.js:
  • inspector/front-end/inspector.js:

(WebInspector.doLoadedDone):

LayoutTests:

  • inspector/debugger/debugger-compile-and-run-expected.txt: Added.
  • inspector/debugger/debugger-compile-and-run.html: Added.
  • platform/gtk/TestExpectations:
  • platform/mac/Skipped:
  • platform/qt/Skipped:
  • platform/win/Skipped:
  • platform/wincairo/Skipped:
02:14 Changeset [121013] by commit-queue@webkit.org
  • 9 edits in trunk/Source

Web Inspector: InspectorState::updateCookie should not do JSON serialization if unsupported
https://bugs.webkit.org/show_bug.cgi?id=89743

Source/WebCore:

Since all InspectorClient's are InspectorStateClient's provide a
virtual accessor that determines whether or not InspectorClient updates
are supported or not.

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2012-06-22
Reviewed by Yury Semikhatsky.

  • inspector/InspectorState.cpp:

(WebCore::InspectorState::updateCookie):
Don't serialize and message the client if the client doesn't do anything with it.

  • inspector/InspectorStateClient.h:
  • inspector/WorkerInspectorController.cpp:

(WebCore::InspectorStateClient::supportsInspectorStateUpdates):
Let the client say whether or not supports updates or not.

Source/WebKit/blackberry:

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2012-06-22
Reviewed by Yury Semikhatsky.

  • WebCoreSupport/InspectorClientBlackBerry.cpp:

(WebCore::InspectorClientBlackBerry::updateInspectorStateCookie):

Source/WebKit/chromium:

The Chromium port does want InspectorState updates.

Patch by Joseph Pecoraro <pecoraro@apple.com> on 2012-06-22
Reviewed by Yury Semikhatsky.

  • src/InspectorClientImpl.h:

(WebKit::InspectorClientImpl::supportsInspectorStateUpdates):

  • src/WebDevToolsAgentImpl.h:

(WebKit::WebDevToolsAgentImpl::supportsInspectorStateUpdates):

01:52 Changeset [121012] by rniwa@webkit.org
  • 182 edits in trunk/LayoutTests

Use testRunner instead of layoutTestController in fast/hidpi, history, html, images, inline, inline-block, innerHTML, inspector-support, invalid tests
https://bugs.webkit.org/show_bug.cgi?id=89744

Reviewed by Kent Tamura.

  • fast/hidpi/broken-image-icon-hidpi.html:
  • fast/hidpi/broken-image-with-size-hidpi.html:
  • fast/hidpi/clip-text-in-hidpi.html:
  • fast/hidpi/device-scale-factor-paint.html:
  • fast/hidpi/focus-rings.html:
  • fast/hidpi/image-set-as-background.html:
  • fast/hidpi/image-set-background-dynamic.html:
  • fast/hidpi/image-set-background-repeat-without-size.html:
  • fast/hidpi/image-set-background-repeat.html:
  • fast/hidpi/image-set-border-image-comparison.html:
  • fast/hidpi/image-set-border-image-dynamic.html:
  • fast/hidpi/image-set-border-image-simple.html:
  • fast/hidpi/image-set-in-content-dynamic.html:
  • fast/hidpi/image-set-out-of-order.html:
  • fast/hidpi/image-set-simple.html:
  • fast/hidpi/image-set-without-specified-width.html:
  • fast/hidpi/resize-corner-hidpi.html:
  • fast/hidpi/video-controls-in-hidpi.html:
  • fast/history/back-forward-reset-after-error-handling.html:
  • fast/history/form-submit-in-frame-via-onclick.html:
  • fast/history/form-submit-in-frame.html:
  • fast/history/forward-during-load.html:
  • fast/history/gesture-before-onload-form-submit.html:
  • fast/history/gesture-before-onload-location-href.html:
  • fast/history/go-back-to-changed-name.html:
  • fast/history/history-back-initial-vs-final-url.html:
  • fast/history/history-back-twice-with-subframes-assert.html:
  • fast/history/history-back-within-subframe-hash.html:
  • fast/history/history-back-within-subframe-url.html:
  • fast/history/history-length.html:
  • fast/history/history-replace-updates-current-item.html:
  • fast/history/history-subframe-with-name.html:
  • fast/history/history_reload.html:
  • fast/history/location-replace-hash.html:
  • fast/history/multiple-classes-visited.html:
  • fast/history/nested-visited-test.html:
  • fast/history/redirect-via-iframe.html:
  • fast/history/resources/clicked-link-is-visited-2.html:
  • fast/history/resources/history-back-within-subframe-hash-2.html:
  • fast/history/resources/history-replace-updates-current-item-done.html:
  • fast/history/resources/history_reload_window.html:
  • fast/history/resources/redirect-target.html:
  • fast/history/same-document-iframes-changing-fragment.html:
  • fast/history/same-document-iframes-changing-pushstate.html:
  • fast/history/saves-state-after-fragment-nav.html:
  • fast/history/saves-state-after-frame-nav.html:
  • fast/history/self-is-visited.html:
  • fast/history/sibling-visited-test.html:
  • fast/history/timed-refresh-in-cached-frame.html:
  • fast/history/visited-generated-content-test.html:
  • fast/history/visited-link-background-color.html:
  • fast/history/window-open.html:
  • fast/html/adopt-parent-frame.html:
  • fast/html/body-offset-properties.html:
  • fast/html/crash-style-first-letter.html:
  • fast/html/details-add-summary-1-and-click.html:
  • fast/html/details-add-summary-10-and-click.html:
  • fast/html/details-add-summary-2-and-click.html:
  • fast/html/details-add-summary-3-and-click.html:
  • fast/html/details-add-summary-4-and-click.html:
  • fast/html/details-add-summary-5-and-click.html:
  • fast/html/details-add-summary-6-and-click.html:
  • fast/html/details-add-summary-7-and-click.html:
  • fast/html/details-add-summary-8-and-click.html:
  • fast/html/details-add-summary-9-and-click.html:
  • fast/html/details-children-merge-crash.html:
  • fast/html/details-element-render-inline-crash.html:
  • fast/html/details-mouse-click.html:
  • fast/html/details-remove-summary-1-and-click.html:
  • fast/html/details-remove-summary-2-and-click.html:
  • fast/html/details-remove-summary-3-and-click.html:
  • fast/html/details-remove-summary-4-and-click.html:
  • fast/html/details-remove-summary-5-and-click.html:
  • fast/html/details-remove-summary-6-and-click.html:
  • fast/html/details-replace-summary-child.html:
  • fast/html/details-replace-text.html:
  • fast/html/details-summary-document-child.html:
  • fast/html/draggable.html:
  • fast/html/empty-fragment-id-goto-top.html:
  • fast/html/font-face-empty-should-not-crash.html:
  • fast/html/marquee-scrollamount.html:
  • fast/html/nav-element.html:
  • fast/html/object-image-nested-fallback.html:
  • fast/html/pending-stylesheet-crash.html:
  • fast/html/process-end-tag-for-inbody-crash.html:
  • fast/html/script-allowed-types-languages.html:
  • fast/html/select-dropdown-consistent-background-color.html:
  • fast/html/set-text-direction.html:
  • fast/html/tab-order.html:
  • fast/html/tabindex-removal.html:
  • fast/html/text-field-input-types.html:
  • fast/html/xhtml-serialize.html:
  • fast/images/animated-background-image-crash.html:
  • fast/images/animated-gif-restored-from-bfcache.html:
  • fast/images/bad-png.html:
  • fast/images/busted-oval-does-not-render.html:
  • fast/images/destroyed-image-load-event.html:
  • fast/images/dont-crash-with-null-gif-frames.html:
  • fast/images/drag-pdf-as-image.html:
  • fast/images/embed-does-not-propagate-dimensions-to-object-ancestor.html:
  • fast/images/embed-image.html:
  • fast/images/exif-orientation-css.html:
  • fast/images/exif-orientation.html:
  • fast/images/extra-image-in-image-document.html:
  • fast/images/gif-loop-count.html:
  • fast/images/image-empty-data.html:
  • fast/images/image-invalid-data.html:
  • fast/images/image-load-event-in-fragment.html:
  • fast/images/image-map-multiple-xhtml.xhtml:
  • fast/images/image-map-multiple.html:
  • fast/images/image-map-zoom.html:
  • fast/images/imagemap-scroll.html:
  • fast/images/jpeg-with-color-profile.html:
  • fast/images/large-size-image-crash.html:
  • fast/images/link-body-content-imageDimensionChanged-crash.html:
  • fast/images/load-img-with-empty-src.html:
  • fast/images/paletted-png-with-color-profile.html:
  • fast/images/percent-height-image.html:
  • fast/images/png-extra-row-crash.html:
  • fast/images/png-suite/test.html:
  • fast/images/png-with-color-profile.html:
  • fast/images/read-past-end-of-buffer.html:
  • fast/images/rgb-jpeg-endian-pixels.html:
  • fast/images/rgb-jpeg-with-adobe-marker-only.html:
  • fast/images/rgb-png-with-cmyk-color-profile.html:
  • fast/images/script-counter-imageDimensionChanged-crash.html:
  • fast/images/script-tests/move-image-to-new-document.js:
  • fast/images/size-failure.html:
  • fast/images/style-access-during-imageChanged-crash.html:
  • fast/images/style-access-during-imageChanged-style-freeze.html:
  • fast/images/support-broken-image-delegate.html:
  • fast/images/text-content-crash-2.html:
  • fast/images/text-content-crash.html:
  • fast/images/webp-image-decoding.html:
  • fast/images/ycbcr-with-cmyk-color-profile.html:
  • fast/images/zoomed-img-size.html:
  • fast/inline-block/anonymous-block-crash.html:
  • fast/inline-block/inline-block-vertical-align-2.html:
  • fast/inline-block/relative-positioned-rtl-crash.html:
  • fast/inline/boundingBox-with-continuation.html:
  • fast/inline/clean-after-removing-temp-boxes.html:
  • fast/inline/continuation-positioned-reparenting.html:
  • fast/inline/crash-new-continuation-with-outline.html:
  • fast/inline/dirtyLinesForInline.html:
  • fast/inline/inline-body-crash.html:
  • fast/inline/inline-body-with-scrollbar-crash.html:
  • fast/inline/inline-box-adjust-position-crash.html:
  • fast/inline/inline-box-adjust-position-crash2.html:
  • fast/inline/inline-child-height-width-calc-crash.html:
  • fast/inline/inline-destroy-dirty-lines-crash.html:
  • fast/inline/inline-marquee-crash.html:
  • fast/inline/relative-positioned-overflow.html:
  • fast/inline/skipped-whitespace-boundingBox.html:
  • fast/inline/skipped-whitespace-client-rect.html:
  • fast/inline/update-always-create-line-boxes-full-layout-crash.html:
  • fast/innerHTML/004-expected.txt:
  • fast/innerHTML/004.xhtml:
  • fast/innerHTML/005-expected.txt:
  • fast/innerHTML/005.html:
  • fast/innerHTML/additional-inline-style.html:
  • fast/innerHTML/innerHTML-case.html:
  • fast/innerHTML/innerHTML-changing-document-properties.xhtml:
  • fast/innerHTML/innerHTML-custom-tag.html:
  • fast/innerHTML/innerHTML-iframe.html:
  • fast/innerHTML/innerHTML-nbsp.xhtml:
  • fast/innerHTML/innerHTML-script-tag-crash.xhtml:
  • fast/innerHTML/javascript-url.html:
  • fast/inspector-support/cssURLQuotes.html:
  • fast/inspector-support/style.html:
  • fast/inspector-support/uncaught-dom1-exception.html:
  • fast/inspector-support/uncaught-dom3-exception.html:
  • fast/inspector-support/uncaught-dom8-exception.html:
  • fast/invalid/invalidSVGFont.html:
  • fast/invalid/nestedh3s-rapidweaver.html:
  • fast/invalid/test-case-tr-th-td-should-not-close-dl-list.html:
  • platform/gtk/fast/images/exif-orientation-css-expected.txt:
  • platform/gtk/fast/images/exif-orientation-expected.txt:
  • platform/mac/fast/images/exif-orientation-css-expected.txt:
  • platform/mac/fast/images/exif-orientation-expected.txt:
  • platform/qt/fast/history/back-to-unreachable-url-then-forward.html:
  • platform/qt/fast/history/resources/check-scroll-position.html:
01:09 Changeset [121011] by mario@webkit.org
  • 2 edits in trunk/Tools

Unreviewed gardening. Unskipping test passing after fixing bug 88419.

  • gtk/run-api-tests:

(TestRunner): Unskip WTF.HashMap.

01:06 Changeset [121010] by mario@webkit.org
  • 2 edits in trunk/Source/WTF

Memory corruption on HashTable.h
https://bugs.webkit.org/show_bug.cgi?id=88419

Reviewed by Martin Robinson.

Simplify definition of WTF_USE_PTHREADS and HAVE_PTHREAD_RWLOCK
for the GTK platform using OS(LINUX) instead of HAVE(PTHREAD_H).

  • wtf/Platform.h:
00:16 Changeset [121009] by zoltan@webkit.org
  • 2 edits in trunk/Tools

[Qt] Allow DumpRenderTree to dump about:blank
https://bugs.webkit.org/show_bug.cgi?id=89685

Reviewed by Ryosuke Niwa.

We need to allow DumpRenderTree to dump about:blank page, then it will be consistent with other ports,
additionaly this behavior is required for running WTR performance tests.

  • DumpRenderTree/qt/DumpRenderTreeQt.cpp:

(WebCore::DumpRenderTree::processLine):

06/21/12:

23:52 Changeset [121008] by rniwa@webkit.org
  • 554 edits in trunk/LayoutTests

Use testRunner instead of layoutTestController in fast/fast-mobile-scrolling, flexbox, forms, frames, gradients tests
https://bugs.webkit.org/show_bug.cgi?id=89741

Reviewed by Kent Tamura.

  • fast/flexbox/box-ordinal-group.html:
  • fast/flexbox/box-size-integer-overflow.html:
  • fast/flexbox/crash-button-input-autofocus.html:
  • fast/flexbox/crash-button-keygen.html:
  • fast/flexbox/crash-button-relayout.html:
  • fast/flexbox/crash-flexbox-no-layout-child.html:
  • fast/flexbox/horizontal-box-float-crash.html:
  • fast/flexbox/inline-children-crash.html:
  • fast/flexbox/layoutHorizontalBox-crash.html:
  • fast/flexbox/line-clamp-crash.html:
  • fast/flexbox/overhanging-floats-not-removed-crash.html:
  • fast/flexbox/resources/box-orient-button.js:
  • fast/forms/:
  • fast/frames/:
  • fast/gradients/crash-on-1px-border.html:
  • fast/gradients/crash-on-degenerate-gradient.html:
  • fast/gradients/crash-on-remove.html:
  • fast/gradients/crash-on-tr.html:
  • fast/gradients/css3-color-stop-units.html:
  • fast/gradients/css3-color-stops.html:
  • fast/gradients/css3-linear-angle-gradients.html:
  • fast/gradients/css3-linear-right-angle-gradients.html:
  • fast/gradients/css3-radial-gradient-crash.html:
  • fast/gradients/css3-radial-gradients.html:
  • fast/gradients/css3-radial-gradients2.html:
  • fast/gradients/css3-radial-gradients3.html:
  • fast/gradients/css3-repeating-end-fill.html:
  • fast/gradients/css3-repeating-linear-gradients.html:
  • fast/gradients/css3-repeating-linear-gradients2.html:
  • fast/gradients/css3-repeating-radial-gradients.html:
  • fast/gradients/gradient-after-transparent-border.html:
  • fast/gradients/gradient-on-pseudoelement-crash.html:
  • platform/chromium/fast/forms/search-popup-crasher.html:
  • platform/gtk/fast/forms/menulist-typeahead-find.html:
  • platform/gtk/fast/frames/scrolling-iframe-out-of-viewport.html:
  • platform/mac/fast/forms/attributed-strings.html:
  • platform/mac/fast/forms/listbox-scrollbar-hit-test.html:
  • platform/mac/fast/forms/script-tests/focus-option-control-on-page.js:

(startTest):
(runKeyPresses):
(notifyDone):

23:44 Changeset [121007] by joone@webkit.org
  • 2 edits
    7 adds in trunk/LayoutTests

[EFL] Unreviewed gardening, unskip now passing tests.

  • platform/efl/Skipped:
  • platform/efl/fast/viewport/viewport-126-expected.txt: Added.
  • platform/efl/fast/viewport/viewport-127-expected.txt: Added.
  • platform/efl/fast/viewport/viewport-65-expected.txt: Added.
  • platform/efl/fast/viewport/viewport-82-expected.txt: Added.
  • platform/efl/fast/viewport/viewport-84-expected.txt: Added.
  • platform/efl/fast/viewport/viewport-87-expected.txt: Added.
23:31 Changeset [121006] by hans@chromium.org
  • 14 edits in trunk/LayoutTests

s/layoutTestController/testRunner/ in speech tests
https://bugs.webkit.org/show_bug.cgi?id=89654

Reviewed by Ryosuke Niwa.

  • fast/speech/bubble-position.html:
  • fast/speech/change-focus.html:
  • fast/speech/input-onspeechchange-event.html:
  • fast/speech/input-ontextinput-event.html:
  • fast/speech/input-readonly-and-disabled.html:
  • fast/speech/input-text-language-tag.html:
  • fast/speech/input-text-speechbutton.html:
  • fast/speech/input-text-speechstart.html:
  • fast/speech/scripted/speechrecognition-basics.html:
  • fast/speech/scripted/speechrecognition-errors.html:
  • fast/speech/speech-button-ignore-generated-events.html:
  • fast/speech/speech-input-result-list-not-enough-arguments.html:
  • fast/speech/speech-input-scripting.html:
23:11 Changeset [121005] by commit-queue@webkit.org
  • 33 edits in trunk

Unreviewed, rolling out r120982.
http://trac.webkit.org/changeset/120982
https://bugs.webkit.org/show_bug.cgi?id=89740

[chromium] ASSERTION FAILED:
m_allocatedTextureIds.contains(textureId) (Requested by ukai
on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-21

Source/WebCore:

  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChangedOnImpl):
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::initialize):
(WebCore::LayerRendererChromium::setVisible):
(WebCore::LayerRendererChromium::swapBuffers):
(WebCore::LayerRendererChromium::getFramebufferPixels):

  • platform/graphics/chromium/LayerRendererChromium.h:

(WebCore):
(LayerRendererChromium):

  • platform/graphics/chromium/TextureManager.cpp:
  • platform/graphics/chromium/TextureManager.h:

(TextureAllocator):
(TextureManager):

  • platform/graphics/chromium/TrackingTextureAllocator.cpp:

(WebCore::TrackingTextureAllocator::createTexture):
(WebCore::TrackingTextureAllocator::deleteTexture):

  • platform/graphics/chromium/TrackingTextureAllocator.h:

(TrackingTextureAllocator):

  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:

(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::initializeLayerRenderer):
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):
(WebCore::CCLayerTreeHost::setNeedsForcedCommit):
(WebCore):
(WebCore::CCLayerTreeHost::setVisible):
(WebCore::CCLayerTreeHost::setContentsMemoryAllocationLimitBytes):
(WebCore::CCLayerTreeHost::updateLayers):

  • platform/graphics/chromium/cc/CCLayerTreeHost.h:

(CCLayerTreeHost):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::commitComplete):
(WebCore::CCLayerTreeHostImpl::canDraw):
(WebCore::CCLayerTreeHostImpl::context):
(WebCore::CCLayerTreeHostImpl::setContentsMemoryAllocationLimitBytes):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

(CCLayerTreeHostImplClient):
(WebCore::CCLayerTreeHostImpl::sourceFrameCanBeDrawn):
(WebCore::CCLayerTreeHostImpl::setSourceFrameCanBeDrawn):
(CCLayerTreeHostImpl):

  • platform/graphics/chromium/cc/CCProxy.h:

(CCProxy):

  • platform/graphics/chromium/cc/CCRenderer.h:

(CCRendererClient):

  • platform/graphics/chromium/cc/CCScheduler.cpp:

(WebCore::CCScheduler::beginFrameComplete):
(WebCore::CCScheduler::didSwapBuffersComplete):
(WebCore::CCScheduler::didLoseContext):
(WebCore::CCScheduler::didRecreateContext):
(WebCore::CCScheduler::vsyncTick):

  • platform/graphics/chromium/cc/CCScheduler.h:

(CCScheduler):

  • platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:
  • platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
  • platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:

(WebCore::CCSingleThreadProxy::setNeedsForcedCommit):
(WebCore):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
(WebCore::CCSingleThreadProxy::commitAndComposite):

  • platform/graphics/chromium/cc/CCSingleThreadProxy.h:

(CCSingleThreadProxy):

  • platform/graphics/chromium/cc/CCThreadProxy.cpp:

(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::setNeedsForcedCommit):
(WebCore):
(WebCore::CCThreadProxy::postSetContentsMemoryAllocationLimitBytesToMainThreadOnImplThread):
(WebCore::CCThreadProxy::scheduledActionBeginFrame):
(WebCore::CCThreadProxy::beginFrame):
(WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
(WebCore::CCThreadProxy::setContentsMemoryAllocationLimitBytes):
(WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):

  • platform/graphics/chromium/cc/CCThreadProxy.h:

(CCThreadProxy):
(BeginFrameAndCommitState):

  • platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:

(WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
(WebCore::CCVideoLayerImpl::willDraw):
(WebCore::CCVideoLayerImpl::willDrawInternal):
(WebCore::CCVideoLayerImpl::FramePlane::allocateData):
(WebCore::CCVideoLayerImpl::FramePlane::freeData):
(WebCore::CCVideoLayerImpl::allocatePlaneData):
(WebCore::CCVideoLayerImpl::freePlaneData):
(WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
(WebCore::CCVideoLayerImpl::didLoseContext):

  • platform/graphics/chromium/cc/CCVideoLayerImpl.h:

(FramePlane):

Source/WebKit/chromium:

  • tests/CCLayerTreeHostImplTest.cpp:
  • tests/CCLayerTreeHostTest.cpp:

(CCLayerTreeHostTestVisibilityAndAllocationControlDrawing):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::beginTest):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommitAndDrawFrame):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::didCommit):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::commitCompleteOnCCThread):
(WTF::CCLayerTreeHostTestVisibilityAndAllocationControlDrawing::afterTest):
(WTF):
(WTF::CCLayerTreeHostTestLayerOcclusion::beginTest):
(WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::beginTest):
(WTF::CCLayerTreeHostTestManySurfaces::beginTest):

  • tests/CCSchedulerStateMachineTest.cpp:

(WebCore::TEST):

  • tests/CCTiledLayerTestCommon.h:

(WebKitTests::FakeTextureAllocator::createTexture):
(WebKitTests::FakeTextureAllocator::deleteTexture):

  • tests/FakeWebGraphicsContext3D.h:

(WebKit::FakeWebGraphicsContext3D::createTexture):
(FakeWebGraphicsContext3D):

  • tests/LayerRendererChromiumTest.cpp:

(TEST_F):

  • tests/TiledLayerChromiumTest.cpp:

LayoutTests:

  • platform/chromium/TestExpectations:
22:36 Changeset [121004] by tkent@chromium.org
  • 11 edits in trunk/Source/WebCore

Make FormControlState capable to store multiple values
https://bugs.webkit.org/show_bug.cgi?id=89628

Reviewed by Hajime Morita.

Make FormControlState capable to store multiple values in order to
clean FileInputType.cpp up and prepare to fix Bug 89623.

No new tests. This doesn't change web-exposed behavior, and
fast/forms/file/recover-file-input-in-unposted-form.html covers
major part of this change.

  • html/FormController.cpp:

(WebCore::FormControlState::serializeTo): Support for two or more values.
(WebCore::FormControlState::deserialize): ditto.
(WebCore::formStateSignature):
Bump up the version because the state format for <input type=file> is changed.

  • html/FormController.h:
    • String m_value -> Vector<String> m_values
    • Add some functions.
    • Remove hasValue() and value().

(WebCore::FormControlState::FormControlState): m_value -> m_values.
(WebCore::FormControlState::valueSize): Added.
(WebCore::FormControlState::operator[]): Added.
(FormControlState): Add append() declaration, etc.
(WebCore::FormControlState::operator=): m_value -> m_values
(WebCore::FormControlState::append): Added.

  • html/HTMLFormControlElementWithState.cpp:

(WebCore::HTMLFormControlElementWithState::finishParsingChildren):
Use valueSize() instead of hasValue().

  • html/HTMLFormControlElementWithState.h:

(HTMLFormControlElementWithState): Update the comment.

  • html/FileInputType.cpp:

(WebCore::FileInputType::saveFormControlState):
Use multiple value capability of FormControlState
(WebCore::FileInputType::restoreFormControlState): ditto.

  • html/BaseCheckableInputType.cpp:

(WebCore::BaseCheckableInputType::restoreFormControlState): Use [0] instead of value().

  • html/HTMLSelectElement.cpp:

(WebCore::HTMLSelectElement::restoreFormControlState): ditto.

  • html/HTMLTextAreaElement.cpp:

(WebCore::HTMLTextAreaElement::restoreFormControlState): ditto.

  • html/HiddenInputType.cpp:

(WebCore::HiddenInputType::restoreFormControlState): ditto.

  • html/InputType.cpp:

(WebCore::InputType::restoreFormControlState): ditto.

22:33 Changeset [121003] by rniwa@webkit.org
  • 13 edits
    2 adds in trunk

Source/WebCore: LabelsNodeList isn't updated properly after its owner node is adopted into a new document
https://bugs.webkit.org/show_bug.cgi?id=89730

Reviewed by Darin Adler.

When a node is adopted, node lists that are invalidated at document level need to be unregistered
from old document and registered to new document so that DOM mutations in new document will invalidate
caches in the node lists. Done that in NodeListsNodeData::adoptTreeScope, which was extracted from
TreeScopeAdopter::moveTreeToNewScope.

Also renamed DynamicNodeList::node() and m_node to rootNode() and m_ownerNode to better express
their semantics and added ownerNode() to make m_ownerNode private to DynamicNodeList.

Test: fast/forms/label/labels-owner-node-adopted.html

  • bindings/js/JSNodeListCustom.cpp:

(WebCore::JSNodeListOwner::isReachableFromOpaqueRoots):

  • dom/ChildNodeList.cpp:

(WebCore::ChildNodeList::~ChildNodeList):
(WebCore::ChildNodeList::length):
(WebCore::ChildNodeList::item):
(WebCore::ChildNodeList::nodeMatches):

  • dom/ClassNodeList.cpp:

(WebCore::ClassNodeList::ClassNodeList):
(WebCore::ClassNodeList::~ClassNodeList):

  • dom/DynamicNodeList.cpp:

(WebCore::DynamicSubtreeNodeList::length):
(WebCore::DynamicSubtreeNodeList::itemForwardsFromCurrent):
(WebCore::DynamicSubtreeNodeList::itemBackwardsFromCurrent):
(WebCore::DynamicSubtreeNodeList::item):
(WebCore::DynamicNodeList::itemWithName):

  • dom/DynamicNodeList.h:

(WebCore::DynamicNodeList::DynamicNodeList):
(WebCore::DynamicNodeList::ownerNode):
(WebCore::DynamicNodeList::rootedAtDocument):
(WebCore::DynamicNodeList::shouldInvalidateOnAttributeChange):
(WebCore::DynamicNodeList::rootNode):
(WebCore::DynamicNodeList::document):
(DynamicNodeList):

  • dom/NameNodeList.cpp:

(WebCore::NameNodeList::~NameNodeList):

  • dom/NodeRareData.h:

(WebCore::NodeListsNodeData::adoptTreeScope):
(NodeListsNodeData):

  • dom/TagNodeList.cpp:

(WebCore::TagNodeList::~TagNodeList):

  • dom/TreeScopeAdopter.cpp:

(WebCore::TreeScopeAdopter::moveTreeToNewScope):

  • html/LabelsNodeList.cpp:

(WebCore::LabelsNodeList::~LabelsNodeList):
(WebCore::LabelsNodeList::nodeMatches):

  • html/RadioNodeList.cpp:

(WebCore::RadioNodeList::~RadioNodeList):
(WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):

LayoutTests: LabelsNostList isn't updated properly after its owner node is adopted into a new document
https://bugs.webkit.org/show_bug.cgi?id=89730

Reviewed by Darin Adler.

  • fast/forms/label/labels-owner-node-adopted-expected.txt: Added.
  • fast/forms/label/labels-owner-node-adopted.html: Added.
21:07 Changeset [121002] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Web Inspector: Properly display native memory sizes bigger than 2GB
https://bugs.webkit.org/show_bug.cgi?id=89661

Patch by Alexei Filippov <alexeif@chromium.org> on 2012-06-21
Reviewed by Pavel Feldman.

  • inspector/Inspector.json:
  • inspector/InspectorMemoryAgent.cpp:

(WebCore::jsHeapInfo):
(WebCore::inspectorData):
(WebCore::renderTreeInfo):
(WebCore::InspectorMemoryAgent::getProcessMemoryDistribution):

21:01 Changeset [121001] by inferno@chromium.org
  • 6 edits
    2 adds in trunk

Crash in RenderBlock::layoutPositionedObjects.
https://bugs.webkit.org/show_bug.cgi?id=89599

Reviewed by Julien Chaffraix.

Source/WebCore:

Test: fast/table/table-split-positioned-object-crash.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::splitBlocks): no longer need to explicitly call
removePositionedObjects, since it is part of moveChildrenTo.

  • rendering/RenderBlock.h:

(WebCore::RenderBlock::hasPositionedObjects): helper to tell if we have
positioned objects in our list.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::splitAnonymousBoxesAroundChild): Like r102263, this
condition was wrong and while moving children across completely different
trees, we need fullRemoveInsert as true.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::moveChildTo): see code comment.
(WebCore::RenderBoxModelObject::moveChildrenTo): see code comment.

LayoutTests:

  • fast/table/table-split-positioned-object-crash-expected.txt: Added.
  • fast/table/table-split-positioned-object-crash.html: Added.
20:51 Changeset [121000] by vangelis@chromium.org
  • 4 edits in branches/chromium/1132/Source/WebCore

[chromium] LayerRendererChromium is not getting visibility messages in single threaded compositing mode.

This is an emergency fix for the 1132 chromium branch. A more correct fix is in bug 89045.

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

Reviewed by James Robinson.

  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:

(WebCore::CCLayerTreeHost::compositeAndReadback):
(WebCore::CCLayerTreeHost::setVisible):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::commitComplete):

  • platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:

(WebCore::CCSingleThreadProxy::setNeedsForcedCommit):

19:55 Changeset [120999] by tonyg@chromium.org
  • 4 edits in trunk/LayoutTests

[Chromium][Win] Missing trailing newlines in one text test expectation, debug only
https://bugs.webkit.org/show_bug.cgi?id=89534

Reviewed by Tony Gentilcore.

  • fast/canvas/resize-while-save-active-expected.txt:
  • fast/canvas/resize-while-save-active.html: Make test deterministic by running script after load and fix line endings.
19:50 Changeset [120998] by haraken@chromium.org
  • 1 edit
    1 add in trunk/PerformanceTests

Add a perf-test for innerHTML setter for a large DOM tree
https://bugs.webkit.org/show_bug.cgi?id=89723

Reviewed by Ryosuke Niwa.

We want a benchmark for innerHTML setter for the following reason:

  • innerHTML setter is widely used in the real world.
  • I am planning to optimize innerHTML setter in the near future.
  • I want to use the innerHTML setter benchmark for the patch of bug 88834.

Performance results in my Linux desktop:

RESULT Parser: innerHTML-setter= 289.782649995 runs/s
median= 290.046269741 runs/s, stdev= 1.06575112224 runs/s, min= 286.831812256 runs/s, max= 291.005291005 runs/s

RESULT Parser: innerHTML-setter= 289.020706132 runs/s
median= 289.093298292 runs/s, stdev= 0.985203313093 runs/s, min= 286.831812256 runs/s, max= 290.620871863 runs/s

RESULT Parser: innerHTML-setter= 288.912051701 runs/s
median= 291.005291005 runs/s, stdev= 3.65241325588 runs/s, min= 283.505154639 runs/s, max= 292.553191489 runs/s

RESULT Parser: innerHTML-setter= 288.644186666 runs/s
median= 288.713910761 runs/s, stdev= 1.31889053717 runs/s, min= 286.085825748 runs/s, max= 290.620871863 runs/s

RESULT Parser: innerHTML-setter= 288.698714577 runs/s
median= 288.713910761 runs/s, stdev= 1.03938198202 runs/s, min= 286.458333333 runs/s, max= 290.237467018 runs/s

  • Parser/innerHTML-setter.html: Added.
19:47 Changeset [120997] by kseo@webkit.org
  • 2 edits in trunk/Source/WebCore

Make HTMLDocumentParser::create(DocumentFragment*,Element*, FragmentScriptingPermission) private.
https://bugs.webkit.org/show_bug.cgi?id=89724

Reviewed by Darin Adler.

It is used only by HTMLDocumentParser::parseDocumentFragment. No behavioral changes.

  • html/parser/HTMLDocumentParser.h:

(WebCore::HTMLDocumentParser::create):
(HTMLDocumentParser):

19:40 Changeset [120996] by thakis@chromium.org
  • 6 edits in branches/chromium/1180

Merge 120629 - [chromium/mac] Unbreak smooth scrolling.
https://bugs.webkit.org/show_bug.cgi?id=89327

Reviewed by Dimitri Glazkov.

Broken by Sam in r115589 / r115591.

Source/WebCore:

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::scrollAnimationEnabledForSystem):

Tools:

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetDefaultsToConsistentValues):

  • TestWebKitAPI/mac/InjectedBundleControllerMac.mm:

(TestWebKitAPI::InjectedBundleController::platformInitialize):

  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:

(WTR::InjectedBundle::platformInitialize):

TBR=thakis@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10633026

19:39 Changeset [120995] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/chromium

[chromium] Initialize compositor's visibility state upon initialization
https://bugs.webkit.org/show_bug.cgi?id=89712

Patch by James Robinson <jamesr@chromium.org> on 2012-06-21
Reviewed by Adrienne Walker.

A given WebViewImpl's visibility state might change any number of times before compositing is enabled. If the
visibility state is not the default (visible) when the compositor is initialized, we need to let it know the
correct visibility state or it will start ticking uselessly in threaded mode.

Tested manually, there's no way to create a new WebViewImpl in a non-visible state in a WebKit test that I know
of.

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::setIsAcceleratedCompositingActive):

19:37 Changeset [120994] by abarth@webkit.org
  • 3 edits in trunk/Tools

[Chromium] Reset mediaPlaybackRequiresUserGesture WebSettings after each test
https://bugs.webkit.org/show_bug.cgi?id=89718

Reviewed by Kent Tamura.

We should reset this WebSetting to its default value so that it behaves
consistently across tests.

  • DumpRenderTree/chromium/WebPreferences.cpp:

(WebPreferences::reset):
(WebPreferences::applyTo):

  • DumpRenderTree/chromium/WebPreferences.h:

(WebPreferences):

19:05 Changeset [120993] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Use the empty plugin support on non-X11 and non-Windows platforms
https://bugs.webkit.org/show_bug.cgi?id=89501

Patch by Kalev Lember <kalevlember@gmail.com> on 2012-06-21
Reviewed by Martin Robinson.

The GTK+ port doesn't currently support NPAPI plugins on platforms other
than X11 or Windows. Using PluginPackageNone and PluginViewNone makes it
easier to build it on other platforms and also allows us to drop some
ifdefs from PluginPackageGtk and PluginViewGtk.

  • GNUmakefile.list.am:
19:05 Changeset [120992] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebKit/chromium

[chromium] Add touch-event support for WebPluginContainerImpl
https://bugs.webkit.org/show_bug.cgi?id=89089

Patch by Sadrul Habib Chowdhury <sadrul@chromium.org> on 2012-06-21
Reviewed by Adam Barth.

  • src/WebPluginContainerImpl.cpp:

(WebKit::WebPluginContainerImpl::handleEvent):

  • src/WebPluginContainerImpl.h:

(WebCore):
(WebPluginContainerImpl):

19:02 Changeset [120991] by shinyak@chromium.org
  • 3 edits
    2 adds in trunk

[Shadow][Editing] Assertion in VisibleSelection::adjuseSelectionToAvoidCrossingBoundaries() is triggered.
https://bugs.webkit.org/show_bug.cgi?id=89081

Reviewed by Ryosuke Niwa.

Source/WebCore:

firstEditablePositionAfterPositionInRoot and lastEditablePositionBeforePositionInRoot did not
consider a case that an argument hiehestRoot can be in Shadow DOM. So when adjusting selection to
avoid crossing editing boundaries, VisiblePosition can break shadow boundaries, and it causes
an assertion trigger.

By this patch, firstEditablePositionAfterPositionInRoot and lastEditablePositionBeforePositionInRoot will
adjust position to the tree scope of highestRoot instead of its parent tree scope.

Test: editing/shadow/adjusting-editing-boundary-with-table-in-shadow.html

  • editing/htmlediting.cpp:

(WebCore::firstEditablePositionAfterPositionInRoot):
(WebCore::lastEditablePositionBeforePositionInRoot):

LayoutTests:

  • editing/shadow/adjusting-editing-boundary-with-table-in-shadow-expected.txt: Added.
  • editing/shadow/adjusting-editing-boundary-with-table-in-shadow.html: Added.
18:46 Changeset [120990] by commit-queue@webkit.org
  • 3 edits in trunk/LayoutTests

Make GL error messages consistent in LayoutTests
https://bugs.webkit.org/show_bug.cgi?id=89689

Patch by Gregg Tavares <gman@google.com> on 2012-06-21
Reviewed by Kenneth Russell.

  • fast/canvas/webgl/resources/webgl-test.js:

(shouldGenerateGLError):
(glErrorShouldBe):

  • fast/canvas/webgl/webgl-depth-texture-expected.txt:
18:33 Changeset [120989] by fpizlo@apple.com
  • 10 edits in trunk/Source/JavaScriptCore

op_resolve_global should not prevent DFG inlining
https://bugs.webkit.org/show_bug.cgi?id=89726

Reviewed by Gavin Barraclough.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::CodeBlock):
(JSC::CodeBlock::shrinkToFit):

  • bytecode/GlobalResolveInfo.h:

(JSC::GlobalResolveInfo::GlobalResolveInfo):
(GlobalResolveInfo):

  • dfg/DFGByteCodeParser.cpp:

(JSC::DFG::ByteCodeParser::InlineStackEntry::InlineStackEntry):

  • dfg/DFGCapabilities.h:

(JSC::DFG::canInlineOpcode):

  • dfg/DFGOperations.cpp:
  • dfg/DFGOperations.h:
  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::callOperation):

  • dfg/DFGSpeculativeJIT32_64.cpp:

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

  • dfg/DFGSpeculativeJIT64.cpp:

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

18:30 Changeset [120988] by caseq@chromium.org
  • 3 edits in trunk/Source/WebCore

Web Inspector: exception in TimelinePresentationModel when recording timeline
https://bugs.webkit.org/show_bug.cgi?id=89716

Reviewed by Pavel Feldman.

  • inspector/front-end/TimelinePanel.js:

(WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline.processRecord):
(WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):

  • inspector/front-end/TimelinePresentationModel.js:

(WebInspector.TimelinePresentationModel.prototype.filteredRecords):
(WebInspector.TimelinePresentationModel.prototype.isVisible):

18:18 Changeset [120987] by commit-queue@webkit.org
  • 10 edits in trunk/Source

[Blackberry] BlackBerry::Platform::Settings::get() rename to BlackBerry::Platform::Settings::instance() to make it consistent with our other singletons
https://bugs.webkit.org/show_bug.cgi?id=89684

Source/WebKit/blackberry:

Patch by Parth Patel <parpatel@rim.com> on 2012-06-21
Reviewed by Yong Li.

Update setting instance access to use instance() instead of get().

  • Api/BlackBerryGlobal.cpp:

(BlackBerry::WebKit::globalInitialize):

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::init):
(BlackBerry::WebKit::WebPagePrivate::shouldSendResizeEvent):

  • WebCoreSupport/AboutData.cpp:

(WebCore::configPage):

  • WebCoreSupport/CacheClientBlackBerry.cpp:

(WebCore::CacheClientBlackBerry::updateCacheCapacity):

  • WebKitSupport/FatFingers.cpp:

(BlackBerry::WebKit::FatFingers::getPaddings):

  • WebKitSupport/InputHandler.cpp:

(BlackBerry::WebKit::InputHandler::isInputModeEnabled):
(BlackBerry::WebKit::InputHandler::setInputModeEnabled):
(BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):

  • WebKitSupport/SurfacePool.cpp:

(BlackBerry::WebKit::SurfacePool::initialize):

Source/WTF:

Patch by Parth Patel <parpatel@rim.com> on 2012-06-21
Reviewed by Yong Li.

Update setting instance access to use instance() instead of get().

  • wtf/ThreadingPthreads.cpp:

(WTF::createThreadInternal):

17:53 Changeset [120986] by kbr@google.com
  • 2 edits in trunk/LayoutTests

[chromium] Layout Test fast/speech/scripted/speechgrammar-basics.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=89717

Unreviewed. Added suppression for flaky crash.

  • platform/chromium/TestExpectations:
17:49 Changeset [120985] by commit-queue@webkit.org
  • 8 edits
    2 adds in trunk/Source

Add methods to select between offsets in an editable field.
https://bugs.webkit.org/show_bug.cgi?id=89098

Patch by Oli Lan <olilan@chromium.org> on 2012-06-21
Reviewed by Ryosuke Niwa.

Reviewed by Ryosuke Niwa.

Source/WebCore:

Adds a new method setSelectionOffsets to Editor. This selects between
the two integer offsets provided in the node currently being edited,
assuming the offsets are given relative to the rootEditableElement.
If no node or field is currently being edited, the method returns false.

Test: a new test has been added to the chromium port's WebViewTest that
calls this via WebViewImpl::setSelectionEditableOffsets.

  • editing/Editor.cpp:

(WebCore::Editor::setSelectionOffsets):
(WebCore):

  • editing/Editor.h:

(Editor):

Source/WebKit/chromium:

This adds a new method WebViewImpl::setEditableSelectionOffsets, which
can be used to select between two character positions in the node
currently beign edited.

The offsets are assumed to be relative to the rootEditableElement.

This can be used for IME features that require the ability to manipulate
the selection, for example on Android where the method InputConnection#setSelection
is used.

This method calls a new method Editor::setSelectionOffsets.

The method works for inputs/textareas (i.e. text form controls) and
contenteditable nodes, and the new test in WebViewTest tests both these cases.

  • public/WebView.h:

(WebView):

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::setEditableSelectionOffsets):
(WebKit):

  • src/WebViewImpl.h:

(WebViewImpl):

  • tests/WebViewTest.cpp:

(WebKit::TEST_F):
(WebKit):

  • tests/data/content_editable_populated.html: Added.
  • tests/data/input_field_populated.html: Added.
17:36 Changeset [120984] by jchaffraix@webkit.org
  • 10 edits
    6 adds in trunk

Add support for the grid and inline-grid display types.
https://bugs.webkit.org/show_bug.cgi?id=60732

Reviewed by Tony Chang.

Source/WebCore:

Tests: fast/css-grid-layout/containing-block-grids-expected.html

fast/css-grid-layout/containing-block-grids.html
fast/css-grid-layout/floating-empty-grids-expected.html
fast/css-grid-layout/floating-empty-grids.html

Based on an earlier patch by David Hyatt <hyatt@apple.com>.

Added the first renderer for grid elements.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:

Added RenderGrid files to the build systems.

  • rendering/RenderGrid.cpp: Added.

(WebCore::RenderGrid::RenderGrid):
(WebCore::RenderGrid::~RenderGrid):
(WebCore::RenderGrid::layoutBlock):
(WebCore::RenderGrid::renderName):

  • rendering/RenderGrid.h: Added.

(RenderGrid):
Skeleton renderer for now.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::createObject):
Return our new RenderGrid for our 2 new |display| values.

  • rendering/style/RenderStyle.h:

Added INLINE_GRID to the inline and replaced types.

LayoutTests:

Based on an earlier patch by David Hyatt <hyatt@apple.com>.

  • fast/css-grid-layout/containing-block-grids-expected.html: Added.
  • fast/css-grid-layout/containing-block-grids.html: Added.
  • fast/css-grid-layout/floating-empty-grids-expected.html: Added.
  • fast/css-grid-layout/floating-empty-grids.html: Added.
16:55 Changeset [120983] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Clang build fix.

  • dom/NodeRareData.h:
16:52 Changeset [120982] by jamesr@google.com
  • 32 edits in trunk

[chromium] LayerRendererChromium is not getting visibility messages in single threaded compositing mode.
https://bugs.webkit.org/show_bug.cgi?id=89045

Reviewed by Adrienne Walker.

Based on patch by Michal Mocny <mmocny@google.com>.

Source/WebCore:

Invariants:

1.) We never commit (paint, animate, any of it) when not visible on the main thread -except- for
compositeAndReadback, regardless of threaded vs non-threaded mode
2.) CCLayerTreeHost::m_contentsTextureManager's memory budget is only set by updateLayers() when we are going to
make a frame and is always set to a non-zero value
3.) Zero-sized allocations from the GPU process are always serviced immediately on the impl thread. Non-zero
allocations are met in the next frame, whenever we would produce that frame according to our usual frame
scheduling logic.
4.) The impl thread always knows the set of currently-allocated managed texture IDs and can delete them all
whenever it likes without needing the main thread to be responsive.

Details:

There are two main changes - tweaking how the contents texture manager's budget is handled and tweaking frame
scheduling for the !visible case.

The scheduling change is a bit more subtle but it unifies the single and multi threaded paths and is really
important. Except for compositeAndReadback (which I'll talk about below), we simply won't produce frames when
not visible. This already happens in the single threaded path thanks to render_widget so the only change is to
the threaded path. The difficulty here is we might post a beginFrame task from the impl thread and then get a
setVisible(false) call on the main thread before the beginFrame task runs. Since I'm making the setVisible()
call a blocking call from main thread -> impl thread, when the beginFrame task eventually does run on the main
thread we can know that the impl thread's notion of visibility is in sync with the main threads. Thus I'm
planning to simply abort the frame before doing any processing on the main thread. The scheduler will know if
it gets a beginFrameAborted and COMMIT_STATE_IDLE.

compositeAndReadback is special - this call currently does come in when we aren't visible (in single and
threaded mode) and we need to service it. In particular, we need to send a beginFrame over and have it
not be ignored on the main thread. For this I'm thinking of having the proxy keep track of whether it's
servicing a compositeAndReadback() and use that bit on the main thread to know to process the beginFrame
normally. On the impl side, we need a few changes. First, we have to allocate a default framebuffer
(ensureFramebufferCHROMIUM) even if we've dropped it previously and remember to discard it after the
readPixels(). Second, we have to provide a non-zero contents texture allocation on the beginFrame message, and
again remember to delete the textures after the readPixels(). Third, we have to know that the beginFrame is a
forced frame so when we get the beginFrameComplete we go ahead with the rest of the frame. For this, I think
I'll have to add ACTION_BEGIN_FORCED_FRAME and a corresponding COMMIT_STATE_FORCED_FRAME_IN_PROGRESS so the
scheduler can keep track of the magicness of this frame, and then add some logic after the readpixels call to
drop resources after the readback. It's probably a good time to stop swapping on readbacks too....

The contents texture manager's budget is only relevant when we want to make a frame, so it's now passed in on
the updateLayers(). Since we only make frames when we are visible and we never have a zero allocation when
visible (thanks to the frame scheduling changes above), this value is always non-zero. The other thing the
texture manager needs to know about is if we've killed all of the underlying textures from the impl thread -
this bit is passed in by the proxy before the updateLayers() call. This means if we're running while visible
and the manager wants to decrease our budget to something other than zero, we'll get a new (non-zero) allocation
on the impl thread, schedule a frame, then when it's time to make the frame pass the new lower limit in to
updateLayers(), then have the contents texture manager evict down to our new limit and make a frame with the new
budget. When the commit completes we'll get notified on the impl thread of which textures the contents texture
manager decided to evict and issue the deleteTexture() calls on them.

The texture budget we pass in will be based on the most recent non-zero memory allocation we received from the
GPU memory manager, or some default value I'll pull out my ass if we haven't heard anything yet. On compositor
initialization, we can't afford to wait for a round-trip through the GPU process to get a budget for the first
frame. I don't think handling a decrease to a non-zero budget on a visible tab needs to be terribly urgent - we
can get to it when we get to making the next frame. If we wanted to satisfy reduced texture budgets directly
from the impl thread, we could keep a priority-list ordered set of textures once we have priorities and delete
based on that. Let's worry about that later.

  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererGpuMemoryAllocationChangedCallbackAdapter::onGpuMemoryAllocationChangedOnImpl):
(WebCore::LayerRendererChromium::LayerRendererChromium):
(WebCore::LayerRendererChromium::initialize):
(WebCore::LayerRendererChromium::setVisible):
(WebCore::LayerRendererChromium::setGpuMemoryAllocation):
(WebCore):
(WebCore::LayerRendererChromium::swapBuffers):
(WebCore::LayerRendererChromium::getFramebufferPixels):

  • platform/graphics/chromium/LayerRendererChromium.h:

(WebCore):
(LayerRendererChromium):

  • platform/graphics/chromium/TextureManager.cpp:

(WebCore::TextureManager::evictAndRemoveAllDeletedTextures):
(WebCore):

  • platform/graphics/chromium/TextureManager.h:

(TextureAllocator):
(TextureManager):

  • platform/graphics/chromium/TrackingTextureAllocator.cpp:

(WebCore::TrackingTextureAllocator::createTexture):
(WebCore::TrackingTextureAllocator::deleteTexture):
(WebCore):
(WebCore::TrackingTextureAllocator::deleteAllTextures):

  • platform/graphics/chromium/TrackingTextureAllocator.h:

(TrackingTextureAllocator):

  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:

(WebCore::CCLayerTreeHost::CCLayerTreeHost):
(WebCore::CCLayerTreeHost::initializeLayerRenderer):
(WebCore::CCLayerTreeHost::finishCommitOnImplThread):
(WebCore::CCLayerTreeHost::setVisible):
(WebCore::CCLayerTreeHost::evictAllContentTextures):
(WebCore::CCLayerTreeHost::updateLayers):

  • platform/graphics/chromium/cc/CCLayerTreeHost.h:

(CCLayerTreeHost):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
(WebCore::CCLayerTreeHostImpl::commitComplete):
(WebCore::CCLayerTreeHostImpl::canDraw):
(WebCore::CCLayerTreeHostImpl::context):
(WebCore::CCLayerTreeHostImpl::releaseContentsTextures):
(WebCore):
(WebCore::CCLayerTreeHostImpl::setMemoryAllocationLimitBytes):

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:

(CCLayerTreeHostImplClient):
(WebCore::CCLayerTreeHostImpl::contentsTexturesWerePurgedSinceLastCommit):
(WebCore::CCLayerTreeHostImpl::memoryAllocationLimitBytes):
(CCLayerTreeHostImpl):

  • platform/graphics/chromium/cc/CCProxy.h:

(CCProxy):

  • platform/graphics/chromium/cc/CCRenderer.h:

(CCRendererClient):

  • platform/graphics/chromium/cc/CCScheduler.cpp:

(WebCore::CCScheduler::beginFrameComplete):
(WebCore::CCScheduler::beginFrameAborted):
(WebCore):
(WebCore::CCScheduler::didSwapBuffersComplete):
(WebCore::CCScheduler::didLoseContext):
(WebCore::CCScheduler::didRecreateContext):
(WebCore::CCScheduler::vsyncTick):

  • platform/graphics/chromium/cc/CCScheduler.h:

(CCScheduler):

  • platform/graphics/chromium/cc/CCSchedulerStateMachine.cpp:

(WebCore::CCSchedulerStateMachine::beginFrameAborted):
(WebCore):

  • platform/graphics/chromium/cc/CCSchedulerStateMachine.h:
  • platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:

(WebCore::CCSingleThreadProxy::setVisible):
(WebCore):
(WebCore::CCSingleThreadProxy::stop):
(WebCore::CCSingleThreadProxy::commitAndComposite):

  • platform/graphics/chromium/cc/CCSingleThreadProxy.h:

(CCSingleThreadProxy):

  • platform/graphics/chromium/cc/CCThreadProxy.cpp:

(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::setVisible):
(WebCore):
(WebCore::CCThreadProxy::setVisibleOnImplThread):
(WebCore::CCThreadProxy::scheduledActionBeginFrame):
(WebCore::CCThreadProxy::beginFrame):
(WebCore::CCThreadProxy::beginFrameAbortedOnImplThread):
(WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
(WebCore::CCThreadProxy::layerTreeHostClosedOnImplThread):

  • platform/graphics/chromium/cc/CCThreadProxy.h:

(CCThreadProxy):
(BeginFrameAndCommitState):

  • platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:

(WebCore::CCVideoLayerImpl::~CCVideoLayerImpl):
(WebCore::CCVideoLayerImpl::willDraw):
(WebCore::CCVideoLayerImpl::willDrawInternal):
(WebCore::CCVideoLayerImpl::FramePlane::allocateData):
(WebCore::CCVideoLayerImpl::FramePlane::freeData):
(WebCore::CCVideoLayerImpl::allocatePlaneData):
(WebCore::CCVideoLayerImpl::freePlaneData):
(WebCore::CCVideoLayerImpl::freeUnusedPlaneData):
(WebCore::CCVideoLayerImpl::didLoseContext):

  • platform/graphics/chromium/cc/CCVideoLayerImpl.h:

(FramePlane):

Source/WebKit/chromium:

Update various test fixtures and tests to cover scheduling, visibility, and resource allocation changes.

  • tests/CCLayerTreeHostImplTest.cpp:
  • tests/CCLayerTreeHostTest.cpp:

(CCLayerTreeHostTestAbortFrameWhenInvisible):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::CCLayerTreeHostTestAbortFrameWhenInvisible):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::beginTest):
(WTF::CCLayerTreeHostTestAbortFrameWhenInvisible::afterTest):
(WTF):
(WTF::TEST_F):
(WTF::CCLayerTreeHostTestLayerOcclusion::beginTest):
(WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::beginTest):
(WTF::CCLayerTreeHostTestManySurfaces::beginTest):

  • tests/CCSchedulerStateMachineTest.cpp:

(WebCore::TEST):

  • tests/CCTiledLayerTestCommon.h:
  • tests/FakeWebGraphicsContext3D.h:

(WebKit::FakeWebGraphicsContext3D::FakeWebGraphicsContext3D):
(FakeWebGraphicsContext3D):
(WebKit::FakeWebGraphicsContext3D::createTexture):

  • tests/LayerRendererChromiumTest.cpp:

(TEST_F):

  • tests/TiledLayerChromiumTest.cpp:
16:40 Changeset [120981] by kbr@google.com
  • 2 edits in trunk/LayoutTests

[chromium] Layout test failures after fixing GraphicsLayerChromium scale factors
https://bugs.webkit.org/show_bug.cgi?id=89702

Unreviewed TestExpectations update to suppress failures.

  • platform/chromium/TestExpectations:
16:39 Changeset [120980] by jsbell@chromium.org
  • 1 edit in branches/chromium/1180/Source/WebKit/chromium/tests/IDBDatabaseBackendTest.cpp

Merge 120833 - Unreviewed build fix.

  • tests/IDBDatabaseBackendTest.cpp:

(WebCore::MockIDBCallbacks::~MockIDBCallbacks):
(WebCore::FakeIDBDatabaseCallbacks::~FakeIDBDatabaseCallbacks):

TBR=jsbell@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10645009

16:37 Changeset [120979] by rniwa@webkit.org
  • 20 edits in trunk/Source/WebCore

Shrink NodeListsNodeData
https://bugs.webkit.org/show_bug.cgi?id=89036

Reviewed by Andreas Kling.

Replaced 6 hash maps of AtomicString, String, and RefPtr<QualifiedName::QualifiedNameImpl> and a raw pointer
by 3 hash maps of std::pair<unsigned short, AtomicString>, std::pair<unsigned short, String>, and QualifiedName,
to halve the NodeListsNodeData's size (Reduced from 7 pointers to 3 pointers). Made those hash maps private and
added addCacheWith* and removeCacheWith* member functions to reduce the code duplication.

Also got rid of removeCached*NodeList member functions from Node and Document now that DynamicSubtreeNodeList can
simply call nodeLists()->removeCacheWith* on m_node.

  • dom/ChildNodeList.cpp:

(WebCore::ChildNodeList::ChildNodeList):

  • dom/ClassNodeList.cpp:

(WebCore::ClassNodeList::~ClassNodeList):

  • dom/Document.cpp:

(WebCore::Document::getItems): Use addCacheWithName.

  • dom/Document.h: Got rid of removeCachedMicroDataItemList.

(Document):

  • dom/DynamicNodeList.cpp:

(WebCore): Moved the constructor to the header file.

  • dom/DynamicNodeList.h: Added NodeListType and InvalidationType to be used in NodeListsNodeData.

(WebCore::DynamicNodeList::DynamicNodeList): Takes the invalidation type.
(WebCore::DynamicNodeList::document): Added.
(WebCore::DynamicNodeList::shouldInvalidateOnAttributeChange): Added.
(WebCore::DynamicNodeList::Caches::Caches): Added shouldInvalidateOnAttributeChange to retain the invalidation type.
(Caches):
(WebCore::DynamicSubtreeNodeList::DynamicSubtreeNodeList):

  • dom/MicroDataItemList.cpp:

(WebCore::MicroDataItemList::~MicroDataItemList):

  • dom/NameNodeList.cpp:

(WebCore::NameNodeList::NameNodeList):
(WebCore::NameNodeList::~NameNodeList):
(WebCore::NameNodeList::nodeMatches):

  • dom/NameNodeList.h:

(WebCore):
(NameNodeList):
(WebCore::NameNodeList::create):

  • dom/Node.cpp:

(WebCore::Node::nodeLists): Added so that node lists can directly call removeCacheWith*.
(WebCore::Node::getElementsByTagName):
(WebCore::Node::getElementsByTagNameNS):
(WebCore::Node::getElementsByName):
(WebCore::Node::getElementsByClassName):
(WebCore::Node::radioNodeList):
(WebCore::NodeListsNodeData::invalidateCaches): Merged invalidateCachesThatDependOnAttributes. The function takes
the attribute name to avoid invalidating tag node lists when only attributes are modified. Also, now we have exactly
three hash maps to invalidate: m_atomicNameCaches, m_nameCaches, and m_tagNodeListCacheNS.
(WebCore): NodeListsNodeData::isEmpty is moved to NodeRareData.h.

  • dom/Node.h:

(WebCore):
(Node):

  • dom/NodeRareData.h:

(NodeListsNodeData):
(WebCore::NodeListsNodeData::addCacheWithAtomicName):
(WebCore::NodeListsNodeData::addCacheWithName):
(WebCore::NodeListsNodeData::addCacheWithQualifiedName):
(WebCore::NodeListsNodeData::removeCacheWithAtomicName):
(WebCore::NodeListsNodeData::removeCacheWithName):
(WebCore::NodeListsNodeData::removeCacheWithQualifiedName):
(WebCore::NodeListsNodeData::isEmpty): Moved from Node.cpp now that this function is much shorter.
(WebCore::NodeListsNodeData::NodeListsNodeData):
(WebCore::NodeListsNodeData::namedNodeListKey): Helper member functions to obtain the key for AtomicString and
String hash maps.

  • dom/TagNodeList.cpp:

(WebCore::TagNodeList::TagNodeList):
(WebCore::TagNodeList::~TagNodeList):
(WebCore::HTMLTagNodeList::HTMLTagNodeList): Hard code namespaceURI = starAtom since other values are never used.
(WebCore::HTMLTagNodeList::nodeMatches): Given that, assert m_namespace == starAtom.

  • dom/TagNodeList.h:

(WebCore::TagNodeList::create): Add a new version of create that doesn't take namespace (assume starAtom) so that
addCacheWithAtomicName works with this class.
(WebCore::HTMLTagNodeList::create): Removed namespaceURI from the argument list since it's always starAtom.
(HTMLTagNodeList):

  • html/LabelableElement.cpp:

(WebCore::LabelableElement::labels):

  • html/LabelsNodeList.cpp:

(WebCore::LabelsNodeList::LabelsNodeList): Removed redundant m_forNode (identical to m_node in DynamicNodeList).
(WebCore::LabelsNodeList::~LabelsNodeList):
(WebCore::LabelsNodeList::nodeMatches):

  • html/LabelsNodeList.h:

(WebCore::LabelsNodeList::create):
(LabelsNodeList):

  • html/RadioNodeList.cpp:

(WebCore::RadioNodeList::RadioNodeList): Removed redundant m_baseElement (identical to m_node in DynamicNodeList).
Also changed the first argument's type from Element* to Node* so that it works better with new template member
functions of NodeListsNodeData.
(WebCore::RadioNodeList::~RadioNodeList):
(WebCore::RadioNodeList::checkElementMatchesRadioNodeListFilter):

  • html/RadioNodeList.h:

(WebCore::RadioNodeList::create):
(RadioNodeList):

16:32 Changeset [120978] by commit-queue@webkit.org
  • 4 edits in trunk

Unreviewed, rolling out r120945.
http://trac.webkit.org/changeset/120945
https://bugs.webkit.org/show_bug.cgi?id=89703

editing/shadow/breaking-editing-boundaries.html started to
crash (Requested by hayato on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-21

Source/WebCore:

  • dom/EventDispatcher.cpp:

(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventDispatcher::ensureEventAncestors):

LayoutTests:

  • fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:
16:32 Changeset [120977] by zoltan@webkit.org
  • 2 edits in trunk/Tools

DRT/WTR python interface handles about:blank incorrectly
https://bugs.webkit.org/show_bug.cgi?id=89563

Reviewed by Dirk Pranke.

Currently DRT/WTR python interface's _command_from_driver_input function
puts the test directory path before about:blank. Remove this incorrect behavior.

  • Scripts/webkitpy/layout_tests/port/webkit.py:

(WebKitDriver._command_from_driver_input):

16:28 Changeset [120976] by jsbell@chromium.org
  • 11 edits in trunk/LayoutTests

IndexedDB: Fix layout tests to clear previous database structures
https://bugs.webkit.org/show_bug.cgi?id=89609

Reviewed by Tony Chang.

A handful of tests weren't deleting previously created stores (or the whole
database), which made them fail if trivially re-run in Chromium or under
NRWT with --iterations=2.

  • storage/indexeddb/cursor-key-order-expected.txt:
  • storage/indexeddb/cursor-primary-key-order-expected.txt:
  • storage/indexeddb/open-during-transaction-expected.txt:
  • storage/indexeddb/resources/cursor-key-order.js:

(prepareDatabase.deleteRequest.onsuccess.openreq.onsuccess.verreq.onsuccess):
(prepareDatabase.deleteRequest.onsuccess.openreq.onsuccess):
(prepareDatabase.deleteRequest.onsuccess):
(prepareDatabase):

  • storage/indexeddb/resources/cursor-primary-key-order.js:

(prepareDatabase.deleteRequest.onsuccess.openRequest.onsuccess.versionChangeRequest.onsuccess):
(prepareDatabase.deleteRequest.onsuccess.openRequest.onsuccess):
(prepareDatabase.deleteRequest.onsuccess):
(prepareDatabase):

  • storage/indexeddb/resources/factory-deletedatabase-interactions.js:
  • storage/indexeddb/resources/open-close-version.js:

(test6):
(test6.halfDone):

  • storage/indexeddb/resources/open-during-transaction.js:

(prepareDatabase.deleteRequest.onsuccess.openreq1.onsuccess.setverreq.onsuccess.setverreq.result.oncomplete):
(prepareDatabase.deleteRequest.onsuccess.openreq1.onsuccess.setverreq.onsuccess):
(prepareDatabase.deleteRequest.onsuccess.openreq1.onsuccess):
(prepareDatabase.deleteRequest.onsuccess):
(prepareDatabase):

  • storage/indexeddb/transaction-abort-with-js-recursion-cross-frame-expected.txt:
  • storage/indexeddb/transaction-abort-with-js-recursion-cross-frame.html:
15:56 Changeset [120975] by philn@webkit.org
  • 3 edits in trunk/Source/WebCore

[GStreamer] Use setGstElementClassMetadata.

Rubber/stamped by Martin Robinson.

This function was introduced in r120790 but I forgot to actually
use it in that patch.

  • platform/graphics/gstreamer/VideoSinkGStreamer.cpp:

(webkit_video_sink_class_init):

  • platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
15:55 Changeset [120974] by fpizlo@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

DFG should inline 'new Array()'
https://bugs.webkit.org/show_bug.cgi?id=89632

Reviewed by Geoffrey Garen.

This adds support for treating InternalFunction like intrinsics. The code
to do so is actually quite clean, so I don't feel bad about perpetuating
the InternalFunction vs. JSFunction-with-NativeExecutable dichotomy.

Currently this newfound power is only used to inline 'new Array()'.

  • dfg/DFGByteCodeParser.cpp:

(ByteCodeParser):
(JSC::DFG::ByteCodeParser::handleCall):
(JSC::DFG::ByteCodeParser::handleConstantInternalFunction):
(DFG):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::isInternalFunctionConstant):
(JSC::DFG::Graph::valueOfInternalFunctionConstant):

15:47 Changeset [120973] by enne@google.com
  • 13 edits in branches/chromium/1180/Source

Revert 120539 - [Chromium] Compositor should avoid drawing quads when cached textures are available and contents unchanged
https://bugs.webkit.org/show_bug.cgi?id=88482

Reviewed by Adrienne Walker.

Reverted by hand due to merge conflicts.

Added tests to verify quad removal algorithm. Added infrastructure
code to generate custom render passes out of a script
encoded as C string.

  • tests/CCDamageTrackerTest.cpp:

(WebKitTests::TEST_F):

  • tests/CCLayerImplTest.cpp:

(WebCore):
(WebCore::TEST):

  • tests/CCLayerTreeHostImplTest.cpp:
15:40 Changeset [120972] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/chromium

[Chromium] Enable CSP_NEXT on the Chromium port.
https://bugs.webkit.org/show_bug.cgi?id=89683

Patch by Mike West <mkwst@chromium.org> on 2012-06-21
Reviewed by Adam Barth.

Enable CSP 1.1 on the Chromium port. This has zero practical effect,
as no CSP 1.1 patches have landed yet. But it will. Oh it will.

  • features.gypi: ENABLE_CSP_NEXT=1
15:39 Changeset [120971] by kbr@google.com
  • 2 edits in trunk/LayoutTests

[Chromium] Rebaseline video tests after r120939
https://bugs.webkit.org/show_bug.cgi?id=89696

Unreviewed test expectations update to adjust bug number and
silence failures on Windows platform. Rebaselines are still needed.

  • platform/chromium/TestExpectations:
15:38 Changeset [120970] by mhahnenberg@apple.com
  • 5 edits in trunk/Source/JavaScriptCore

Adding copyrights to new files.

  • heap/HeapTimer.cpp:
  • heap/HeapTimer.h:
  • heap/IncrementalSweeper.cpp:
  • heap/IncrementalSweeper.h:
15:38 Changeset [120969] by jamesr@google.com
  • 4 edits
    2 deletes in branches/chromium/1132/Source/WebCore

Merge r120507 to chromium 1132 branch.

[chromium] Use SkBitmap in ImageLayerChromium
https://bugs.webkit.org/show_bug.cgi?id=89134
Reviewed by Adrienne Walker.
GraphicsLayer::setContentsToImage(Image*) is called whenever an image layer's image is or might have changed.
In Chromium, this used to hang on to a RefPtr<WebCore::Image> until the compositor was ready to upload texture contents.
This is potentially a bit fishy since the Image itself might not be in exactly the same state when we get around
to uploading textures and it also creates a bad dependency from ImageLayerChromium on WebCore::Image.
This patch grabs the underlying SkBitmap in the setContentsTo call and passes that into ImageLayerChromium
instead. I've also removed the venerable but redundant PlatformImage concept since all of chromium's images are
skia bitmaps these days.
Covered by existing tests, particularly compositing/images/ and compositing/color-matching/.

  • WebCore.gypi:
  • platform/graphics/chromium/GraphicsLayerChromium.cpp:

(WebCore::GraphicsLayerChromium::setContentsToImage):

  • platform/graphics/chromium/ImageLayerChromium.cpp:

(WebCore::ImageLayerTextureUpdater::updateTextureRect):
(WebCore::ImageLayerTextureUpdater::setBitmap):
(ImageLayerTextureUpdater):
(WebCore::ImageLayerChromium::ImageLayerChromium):
(WebCore::ImageLayerChromium::setBitmap):
(WebCore::ImageLayerChromium::update):
(WebCore::ImageLayerChromium::contentBounds):
(WebCore::ImageLayerChromium::drawsContent):

  • platform/graphics/chromium/ImageLayerChromium.h:

(ImageLayerChromium):

  • platform/graphics/chromium/PlatformImage.cpp: Removed.
  • platform/graphics/chromium/PlatformImage.h: Removed.

TBR=jamesr@chromium.org
BUG=124321

15:34 Changeset [120968] by arv@chromium.org
  • 44 edits
    3 deletes in trunk/Source/WebCore

[V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
https://bugs.webkit.org/show_bug.cgi?id=80880

Reviewed by Adam Barth.

We used to add a hidden property in the getter to the returned wrapper.
With this patch we instead handle the liveness of the wrapper in the GC phase by
calling v8::V8::AddHiddenReference.

To reduce the amount of custom code we need, the V8 code generator now supports
GenerateIsReachable (as well as CustomIsReachable) which, even though different
from the JSC attribute, is used in the same cases and takes the same values (even though
at the moment not all JSC values are supported by V8). Interfaces that have *IsReachable
also have a dependent life time (just like if V8DependentLifetime was present).

No new tests. Covered by existing tests.

  • Target.pri:
  • UseV8.cmake:
  • WebCore.gypi:
  • bindings/scripts/CodeGeneratorJS.pm:

(GetGenerateIsReachable): Abstracted GenerateIsReachable and JSGenerateIsReachable.
(GetCustomIsReachable): Ditto.
(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/CodeGeneratorV8.pm:

(NeedsToVisitDOMWrapper):
(GetGenerateIsReachable):
(GetCustomIsReachable):
(GenerateVisitDOMWrapper):
(GenerateHeader):
(GenerateNamedConstructorCallback):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/V8/V8Float64Array.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8Float64Array.h:

(V8Float64Array):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.h:

(V8TestActiveDOMObject):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.h:

(V8TestCustomNamedGetter):

  • bindings/scripts/test/V8/V8TestEventConstructor.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestEventConstructor.h:

(V8TestEventConstructor):

  • bindings/scripts/test/V8/V8TestEventTarget.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestEventTarget.h:

(V8TestEventTarget):

  • bindings/scripts/test/V8/V8TestException.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestException.h:

(V8TestException):

  • bindings/scripts/test/V8/V8TestInterface.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestInterface.h:

(V8TestInterface):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.h:

(V8TestMediaQueryListListener):

  • bindings/scripts/test/V8/V8TestNamedConstructor.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestNamedConstructor.h:

(V8TestNamedConstructor):

  • bindings/scripts/test/V8/V8TestNode.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestNode.h:

(V8TestNode):

  • bindings/scripts/test/V8/V8TestObj.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestObj.h:

(V8TestObj):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:

(V8TestSerializedScriptValueInterface):

  • bindings/v8/NPV8Object.cpp:

(WebCore::npObjectTypeInfo):

  • bindings/v8/V8GCController.cpp:

(WebCore::GrouperVisitor::visitDOMWrapper):

  • bindings/v8/WrapperTypeInfo.h:

(WebCore):
(WrapperTypeInfo):

  • bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
  • bindings/v8/custom/V8DOMStringMapCustom.cpp:
  • bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
  • bindings/v8/custom/V8HTMLImageElementConstructor.cpp:

(WebCore):

  • bindings/v8/custom/V8NamedNodeMapCustom.cpp:
  • bindings/v8/custom/V8StyleSheetCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8TextTrackListCustom.cpp: Removed.
  • css/CSSStyleSheet.idl:
  • css/StyleSheet.idl:
  • dom/DOMStringMap.idl:
  • dom/NamedNodeMap.idl:
  • html/DOMTokenList.idl:
  • html/track/TextTrackList.idl:
15:28 Changeset [120967] by commit-queue@webkit.org
  • 17 edits in trunk

IndexedDB: Implement spec behavior for multiEntry indexes with invalid/duplicate subkeys
https://bugs.webkit.org/show_bug.cgi?id=86123

Patch by Alec Flett <alecflett@chromium.org> on 2012-06-21
Reviewed by Darin Fisher.

Source/WebCore:

Distinguish between an actual invalid IDBKey, and an array of
possibly-invalid subkeys by making IDBKey::isValid() check subkeys
if the type is an array.

Introduce a new way to transform an IDBKey into a
multiEntry-specific IDBKey, (IDBKey::createMultiEntryArray)
throwing out duplicates and invalid keys. Use it when storing
index entries for multiEntry indexes.

No new tests: existing tests have been altered to include new behavior.

  • Modules/indexeddb/IDBCursor.cpp:

(WebCore::IDBCursor::continueFunction):

  • Modules/indexeddb/IDBFactory.cpp:

(WebCore::IDBFactory::cmp):

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::get):
(WebCore::IDBIndex::getKey):

  • Modules/indexeddb/IDBKey.cpp:

(WebCore::IDBKey::isValid):
(WebCore):

  • Modules/indexeddb/IDBKey.h:

(WebCore::IDBKey::createMultiEntryArray):
(IDBKey):

  • Modules/indexeddb/IDBKeyRange.cpp:

(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):

  • Modules/indexeddb/IDBLevelDBBackingStore.cpp:

(WebCore::IDBLevelDBBackingStore::putObjectStoreRecord):
(WebCore::IDBLevelDBBackingStore::putIndexDataForRecord):

  • Modules/indexeddb/IDBLevelDBCoding.cpp:

(WebCore::IDBLevelDBCoding::encodeIDBKey):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::get):
(WebCore::IDBObjectStore::add):
(WebCore::IDBObjectStore::put):

  • Modules/indexeddb/IDBObjectStoreBackendImpl.cpp:

(WebCore::IDBObjectStoreBackendImpl::putInternal):
(WebCore):

  • bindings/v8/IDBBindingUtilities.cpp:

(WebCore::createIDBKeyFromValue):

Source/WebKit/chromium:

Add matching isValid() to WebIDBKey to match the one in IDBKey.

  • public/WebIDBKey.h:
  • src/WebIDBKey.cpp:

(WebKit::WebIDBKey::isValid):
(WebKit):

  • src/WebIDBKeyRange.cpp:

(WebKit::WebIDBKeyRange::assign):

LayoutTests:

  • storage/indexeddb/index-multientry-expected.txt:
  • storage/indexeddb/resources/index-multientry.js:

(addData):
(verifyIndexes.request.onsuccess):
(verifyIndexes):
(verifyUniqueConstraint.request.onsuccess.request.onsuccess.request.onerror):
(verifyUniqueConstraint.request.onsuccess.request.onsuccess):
(verifyUniqueConstraint.request.onsuccess):
(verifyUniqueConstraint):

15:02 Changeset [120966] by commit-queue@webkit.org
  • 4 edits in trunk/Source

[chromium] Overlays when using the web inspector are blurry with device scale factor > 1
https://bugs.webkit.org/show_bug.cgi?id=89676

Patch by Ian Vollick <vollick@chromium.org> on 2012-06-21
Reviewed by James Robinson.

Whenever we construct a GraphicsLayerChromium, make initialize the
device and page scale factors, if possible.

Source/WebCore:

Unit test: GraphicsLayerChromiumTest.shouldStartWithCorrectContentsScale

  • platform/graphics/chromium/GraphicsLayerChromium.cpp:

(WebCore::GraphicsLayerChromium::GraphicsLayerChromium):

Source/WebKit/chromium:

  • tests/GraphicsLayerChromiumTest.cpp:

(WebKitTests::TEST_F):
(WebKitTests):

14:48 Changeset [120965] by dpranke@chromium.org
  • 2 edits in trunk/Tools

reenable perf tests on win
https://bugs.webkit.org/show_bug.cgi?id=89690

Reviewed by Ryosuke Niwa.

Only the replay tests don't work, and those are disabled by
default. This change also fixes the undefined _log reference
that was causing a crash.

  • Scripts/run-perf-tests:
14:24 WebKit Team edited by yong.li.webkit@gmail.com
(diff)
14:23 Changeset [120964] by philn@webkit.org
  • 2 edits in trunk/Source/WebCore

[Qt] REGRESSION(r120790): broke video rendering
https://bugs.webkit.org/show_bug.cgi?id=89619

Reviewed by Alexis Menard.

Invert the pixel components of the Image on little endian architectures.

  • platform/graphics/gstreamer/ImageGStreamerQt.cpp:

(ImageGStreamer::ImageGStreamer):

14:23 Changeset [120963] by commit-queue@webkit.org
  • 6 edits
    2 copies in trunk/Source/WebKit2

[WK2] Add C API to inspect a Web Intent
https://bugs.webkit.org/show_bug.cgi?id=89275

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-06-21
Reviewed by Anders Carlsson.

Add C API for Web Intent so that it can be queried
on client side.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • UIProcess/API/C/WKIntentData.cpp: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.

(WKIntentDataGetTypeID):
(WKIntentDataCopyAction):
(WKIntentDataCopyType):
(WKIntentDataCopyService):
(WKIntentDataCopySuggestions):
(WKIntentDataCopyExtra):
(WKIntentDataCopyExtras):

  • UIProcess/API/C/WKIntentData.h: Copied from Source/WebKit2/UIProcess/WebIntentData.cpp.
  • UIProcess/WebIntentData.cpp:

(WebKit::WebIntentData::suggestions):
(WebKit):
(WebKit::WebIntentData::extra):
(WebKit::WebIntentData::extras):

  • UIProcess/WebIntentData.h:

(WebIntentData):

14:15 Changeset [120962] by simonjam@chromium.org
  • 19 edits
    3 copies
    1 add in trunk/Source/WebCore

[Resource Timing] Implement Resource Timing interface
https://bugs.webkit.org/show_bug.cgi?id=61152

This patch implements the Resource Timing interface. It doesn't do anything
useful, because nothing populates the timeline yet. There are also some gaps
in the implementation, which have been filed as bugs.

http://dvcs.w3.org/hg/webperf/raw-file/tip/specs/ResourceTiming/Overview.html

Reviewed by Tony Gentilcore.

No new tests. Feature is disabled on all platforms.

  • CMakeLists.txt:
  • DerivedSources.pri:
  • GNUmakefile.list.am:
  • Target.pri:
  • UseV8.cmake:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/v8/custom/V8PerformanceEntryCustom.cpp:

(WebCore):
(WebCore::toV8): Support PerformanceEntry polymorphism.

  • dom/EventNames.h:

(WebCore):

  • dom/EventTargetFactory.in:
  • page/Performance.cpp:

(WebCore::Performance::~Performance):
(WebCore):
(WebCore::Performance::interfaceName): Reqired for EventTarget.
(WebCore::Performance::scriptExecutionContext): Ditto.
(WebCore::Performance::webkitGetEntries): Return "resource" entries.
(WebCore::Performance::webkitGetEntriesByType): Ditto.
(WebCore::Performance::webkitGetEntriesByName): Ditto.
(WebCore::Performance::webkitClearResourceTimings): New.
(WebCore::Performance::webkitSetResourceTimingBufferSize): New. Unimplemented.
(WebCore::Performance::addResourceTiming): This is how resources in WebCore will report to the timeline.
(WebCore::Performance::eventTargetData): Required for EventTarget.
(WebCore::Performance::ensureEventTargetData): Ditto.

  • page/Performance.h:

(Performance):
(WebCore::Performance::refEventTarget):
(WebCore::Performance::derefEventTarget):

  • page/Performance.idl:
  • page/PerformanceEntry.cpp:

(WebCore::PerformanceEntry::~PerformanceEntry):
(WebCore):

  • page/PerformanceEntry.h:

(PerformanceEntry):
(WebCore::PerformanceEntry::isResource):

  • page/PerformanceEntry.idl:
  • page/PerformanceResourceTiming.cpp: Added.

(WebCore):
(WebCore::PerformanceResourceTiming::PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::initiatorType):
(WebCore::PerformanceResourceTiming::redirectStart):
(WebCore::PerformanceResourceTiming::redirectEnd):
(WebCore::PerformanceResourceTiming::fetchStart):
(WebCore::PerformanceResourceTiming::domainLookupStart):
(WebCore::PerformanceResourceTiming::domainLookupEnd):
(WebCore::PerformanceResourceTiming::connectStart):
(WebCore::PerformanceResourceTiming::connectEnd):
(WebCore::PerformanceResourceTiming::secureConnectionStart):
(WebCore::PerformanceResourceTiming::requestStart):
(WebCore::PerformanceResourceTiming::responseStart):
(WebCore::PerformanceResourceTiming::responseEnd):
(WebCore::PerformanceResourceTiming::monotonicTimeToDocumentMilliseconds):
(WebCore::PerformanceResourceTiming::resourceTimeToMilliseconds):

  • page/PerformanceResourceTiming.h: Added.

(WebCore):
(PerformanceResourceTiming):
(WebCore::PerformanceResourceTiming::create):
(WebCore::PerformanceResourceTiming::isResource):

  • page/PerformanceResourceTiming.idl: Added.
13:32 Changeset [120961] by jchaffraix@webkit.org
  • 1 edit
    4 copies in branches/chromium/1132

Merge 120934 - Non-fixed length margins don't work with align=center
https://bugs.webkit.org/show_bug.cgi?id=89626

Reviewed by Levi Weintraub.

Source/WebCore:

Tests: fast/block/negative-start-margin-align-center-percent.html

fast/block/positive-margin-block-child-align-center-calc.html

Calling Length::value() is a bad idea as it returns the *raw* value of
the length. For percent and calculated length this is a bad idea as they
bear not relation to the actual computed length.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeInlineDirectionMargins):
Fixed the code to use minimumValueForLength as this nicely takes care of the 'auto' case.

LayoutTests:

  • fast/block/negative-start-margin-align-center-percent-expected.html: Added.
  • fast/block/negative-start-margin-align-center-percent.html: Added.
  • fast/block/positive-margin-block-child-align-center-calc-expected.html: Added.
  • fast/block/positive-margin-block-child-align-center-calc.html: Added.

TBR=jchaffraix@webkit.org

13:20 Changeset [120960] by hans@chromium.org
  • 3 edits in trunk/Source/WebCore

Speech JavaScript API: Remove FIXMEs about whether events bubble and are cancelable
https://bugs.webkit.org/show_bug.cgi?id=89657

Reviewed by Adam Barth.

The spec has been updated to clarify that the events do not bubble and
are not cancelable.

No new tests, just removing comments.

  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::didStartAudio):

  • Modules/speech/SpeechRecognitionError.cpp:

(WebCore::SpeechRecognitionError::SpeechRecognitionError):

13:13 Changeset [120959] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebKit/blackberry

Add a parameter to handletTouchPoint to bypass FatFingers
on touch up. There are some cases where the user may drag
their finger off the element and we want to use the actual
touch point instead of the FatFingers adjusted point.
https://bugs.webkit.org/show_bug.cgi?id=89677

Patch by Genevieve Mak <gmak@rim.com> on 2012-06-21
Reviewed by Antonio Gomes.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPage::touchPointAsMouseEvent):

  • Api/WebPage.h:
  • WebKitSupport/TouchEventHandler.cpp:

(BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):

  • WebKitSupport/TouchEventHandler.h:

(TouchEventHandler):

12:29 Changeset [120958] by jsbell@chromium.org
  • 5 edits in branches/chromium/1180/Source

Merge 120828 - [Chromium] IndexedDB: Don't close database if pending connections are in flight
https://bugs.webkit.org/show_bug.cgi?id=89512

Source/WebCore:

Add a counter tracking connections between the two phases, which is used along with
the completed connection count to determine the total number of connections.

Reviewed by Tony Chang.

Test: webkit_unit_tests --gtest_filter='IDBDatabaseBackendTest.ConnectionLifecycle'

  • Modules/indexeddb/IDBDatabaseBackendImpl.cpp:

(WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::connectionCount):
(WebCore):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::close):

  • Modules/indexeddb/IDBDatabaseBackendImpl.h:

(IDBDatabaseBackendImpl):

  • Modules/indexeddb/IDBFactoryBackendImpl.cpp:

(WebCore::IDBFactoryBackendImpl::openInternal):

  • inspector/InspectorIndexedDBAgent.cpp:

(WebCore):

Source/WebKit/chromium:

Reviewed by Tony Chang.

  • tests/IDBDatabaseBackendTest.cpp:

(MockIDBCallbacks):
(WebCore::MockIDBCallbacks::create):
(WebCore::MockIDBCallbacks::MockIDBCallbacks):
(WebCore):
(FakeIDBDatabaseCallbacks):
(WebCore::FakeIDBDatabaseCallbacks::create):
(WebCore::FakeIDBDatabaseCallbacks::FakeIDBDatabaseCallbacks):
(WebCore::TEST):

TBR=jsbell@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10630009

12:26 Changeset [120957] by commit-queue@webkit.org
  • 11 edits
    1 move in trunk/Source/WebCore

Web Inspector: [WebGL] Rename InjectedWebGLScriptSource.js -> InjectedScriptWebGLModuleSource.js
https://bugs.webkit.org/show_bug.cgi?id=89675

Patch by Andrey Adaikin <aandrey@chromium.org> on 2012-06-21
Reviewed by Pavel Feldman.

  • CMakeLists.txt:
  • DerivedSources.make:
  • DerivedSources.pri:
  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • WebCore.gyp/WebCore.gyp:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InjectedScriptWebGLModule.cpp:

(WebCore::InjectedScriptWebGLModule::source):

  • inspector/InjectedScriptWebGLModuleSource.js: Renamed from Source/WebCore/inspector/InjectedWebGLScriptSource.js.

(.):

12:20 Changeset [120956] by commit-queue@webkit.org
  • 18 edits in trunk

[GTK] Fix NPAPI plugins on Windows
https://bugs.webkit.org/show_bug.cgi?id=54531

Patch by Kalev Lember <kalevlember@gmail.com> on 2012-06-21
Reviewed by Martin Robinson.

.:

Define XP_WIN on Windows for plugin support.

  • GNUmakefile.am:

Source/WebCore:

Switch to using PluginPackageWin.cpp and PluginViewWin.cpp on Windows
platform, and leave plugins/gtk/ only for XP_UNIX platforms. With this
we can share a lot of code with other ports and don't have to
reimplement all the Windows-specific code in plugins/gtk/.

  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • platform/FileSystem.h:

(WebCore):

  • platform/graphics/GraphicsContext.h:

(GraphicsContext):

  • platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:

(WebCore::GraphicsContextPlatformPrivate::GraphicsContextPlatformPrivate):
(GraphicsContextPlatformPrivate):

  • platform/graphics/transforms/TransformationMatrix.h:

(TransformationMatrix):

  • platform/graphics/win/GraphicsContextCairoWin.cpp:

(WebCore):

  • platform/graphics/win/GraphicsContextWin.cpp:

(WebCore):

  • platform/gtk/FileSystemGtk.cpp:

(WebCore::unloadModule):

  • plugins/PluginView.h:

(PluginView):

  • plugins/win/PluginViewWin.cpp:

(windowHandleForPageClient):
(WebCore::registerPluginView):
(WebCore::PluginView::paint):
(WebCore::PluginView::handleMouseEvent):
(WebCore::PluginView::platformStart):
(WebCore::PluginView::snapshot):

Source/WTF:

Define ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH for the GTK+ port, and
include OwnPtrWin.cpp in the list of files built on Windows.

  • GNUmakefile.am:
  • GNUmakefile.list.am:
  • wtf/Platform.h:
11:57 Changeset [120955] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Unreviewed, rolling out r120937.
http://trac.webkit.org/changeset/120937
https://bugs.webkit.org/show_bug.cgi?id=89679

This patch brought buildbot master down (Requested by svillar
on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-21

  • BuildSlaveSupport/build.webkit.org-config/config.json:
11:54 Changeset [120954] by beidson@apple.com
  • 2 edits in trunk/Source/WebCore

<rdar://problem/11718988> and https://bugs.webkit.org/show_bug.cgi?id=89673
showModalDialog fix creates risk of never returning from RunLoop::performWork, potentially blocking other event sources

In case handling a function on the queue places additional functions on the queue, we should
limit the number of functions each invocation of performWork() performs so it can return and
other event sources have a chance to spin.

The showModalDialog fix in question is http://trac.webkit.org/changeset/120879

Reviewed by Darin Adler and Anders Carlson.

  • platform/RunLoop.cpp:

(WebCore::RunLoop::performWork): If there are only N functions in the queue when performWork is called,

only handle up to N functions before returning. Any additional functions will be handled the next time
the runloop spins.

11:37 Changeset [120953] by timothy_horton@apple.com
  • 5 edits
    3 adds in trunk

SVGImageCache isn't invalidated for <img> on dynamic page scale changes
https://bugs.webkit.org/show_bug.cgi?id=89621
<rdar://problem/11714677>

Reviewed by Simon Fraser.

Previously, device and page scale factors were being cached as a part of the SVGImageCache's
size request. However, an <img> never has a reason to update its size request when the page
scale is changed via gesture zooming, as no layout occurs.

Instead, look up the relevant scales when the image is requested (which will occur during every
repaint), allowing page scale changes to take effect without requiring an updated size request.

Test: svg/as-image/image-respects-pageScaleFactor-change.html

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::lookupOrCreateImageForRenderer):
(WebCore::CachedImage::setContainerSizeForRenderer):

  • svg/graphics/SVGImageCache.cpp:

(WebCore::SVGImageCache::lookupOrCreateBitmapImageForRenderer):

  • svg/graphics/SVGImageCache.h:

(WebCore::SVGImageCache::SizeAndScales::SizeAndScales):
(SizeAndScales):

Add a test that ensures that dynamic changes to pageScaleFactor are propagated through
to the SVGImageCache.

  • platform/mac/svg/as-image/image-respects-pageScaleFactor-change-expected.png: Added.
  • platform/mac/svg/as-image/image-respects-pageScaleFactor-change-expected.txt: Added.
  • svg/as-image/image-respects-pageScaleFactor-change.html: Added.
11:35 Changeset [120952] by bdakin@apple.com
  • 2 edits in trunk/LayoutTests

Skipping this failing test. Filed
https://bugs.webkit.org/show_bug.cgi?id=89680 to track fixing the
real issue.

  • platform/mac/Skipped:
11:24 Changeset [120951] by pdr@google.com
  • 5 edits
    2 adds in trunk

Add pending resource even if others are pending
https://bugs.webkit.org/show_bug.cgi?id=89633

Reviewed by Dirk Schulze.

Source/WebCore:

An element can have multiple simultaneous pending resources but some of
this code was legacy, before the hasPendingResource()->hasPendingResources()
change (r105573). This patch continues adding a pending resource even if
there are other pending resources. In some cases, this can lead to marking
a resource as pending twice but the performance impact of that is negligible.

Other than SVGUseElement, SVGTrefElement and SVGFEImageElement are also
changed. These elements are unaffected because they can only have
a single resource at the moment (href), with other Style url() references
being handled by their parent containers.

Tests: svg/custom/use-multiple-pending-resources-expected.svg

svg/custom/use-multiple-pending-resources.svg

  • svg/SVGFEImageElement.cpp:

(WebCore::SVGFEImageElement::buildPendingResource):

  • svg/SVGTRefElement.cpp:

(WebCore::SVGTRefElement::detachTarget):
(WebCore::SVGTRefElement::buildPendingResource):

  • svg/SVGUseElement.cpp:

(WebCore::SVGUseElement::buildPendingResource):

LayoutTests:

  • svg/custom/use-multiple-pending-resources-expected.svg: Added.
  • svg/custom/use-multiple-pending-resources.svg: Added.
11:21 Changeset [120950] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[GTK] Replace the use of "struct stat" with GStatBuf
https://bugs.webkit.org/show_bug.cgi?id=89488

Patch by Kalev Lember <kalevlember@gmail.com> on 2012-06-21
Reviewed by Martin Robinson.

Make sure we pass GStatBuf to g_stat(); depending on the platform, it
isn't always the same as "struct stat", e.g. on Windows.

  • platform/gtk/FileSystemGtk.cpp:

(WebCore::getFileSize):
(WebCore::getFileModificationTime):

11:17 Changeset [120949] by commit-queue@webkit.org
  • 5 edits in trunk/Source

remove ENABLE_FULLSCREEN_MEDIA_CONTROL flag
https://bugs.webkit.org/show_bug.cgi?id=89614

Patch by Min Qin <qinmin@chromium.org> on 2012-06-21
Reviewed by Eric Carlson.

Source/WebCore:

Desktop chromium also starts to use fullscreen button after https://bugs.webkit.org/show_bug.cgi?id=88818
we don't need this flag any more
No test needed as this change just removes a flag.

  • html/shadow/MediaControlRootElementChromium.cpp:

(WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
(WebCore::MediaControlRootElementChromium::create):
(WebCore::MediaControlRootElementChromium::setMediaController):
(WebCore::MediaControlRootElementChromium::reset):
(WebCore::MediaControlRootElementChromium::reportedError):

  • html/shadow/MediaControlRootElementChromium.h:

(MediaControlRootElementChromium):

Source/WebKit/chromium:

Since desktop chrome now has fullscreen button, we don't need this flag anymore

  • features.gypi:
11:14 Changeset [120948] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit2

[WK2] Properly encode/decode service in IntentData
https://bugs.webkit.org/show_bug.cgi?id=89460

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-06-21
Reviewed by Gustavo Noronha Silva.

Update IntentData::encode() and IntentData::decode()
so that the "service" member is properly encoded
and decoded.

  • Shared/IntentData.cpp:

(WebKit::IntentData::encode):
(WebKit::IntentData::decode):

11:09 Changeset [120947] by tony@chromium.org
  • 1 edit
    2 deletes in trunk/LayoutTests

Unreviewed gardening. Removing pixel results for CSS computed style tests which are text only tests.

  • platform/qt/fast/css/getComputedStyle/computed-style-expected.png: Removed.
  • platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.png: Removed.
11:07 Changeset [120946] by tony@chromium.org
  • 2 edits in trunk/LayoutTests

Unreviewed gardening. The computed style tests should now pass on EFL after r120870.

  • platform/efl/TestExpectations:
11:05 Changeset [120945] by hayato@chromium.org
  • 4 edits in trunk

Modify event re-targeting algorithm so that we can tell which distributed node is clicked.
https://bugs.webkit.org/show_bug.cgi?id=89073

Reviewed by Dimitri Glazkov.

Source/WebCore:

Adopt a new event re-targeting algorithm in the latest Shadow DOM spec.
The corresponding bug in the shadow DOM spec is:
https://www.w3.org/Bugs/Public/show_bug.cgi?id=17090

This change is introduced to handle the following use case:

  1. There is an insertion point, with zero or more nodes distributed into it.
  2. User clicks on one of the items.
  3. The event handler in shadow DOM subtree wants to know which item was clicked on.

The new re-targeting algorithm sets an event's target to a
distributed node where an event was originally fired, instead of
an insertion point to where the node is distributed.

The similar re-targeting algorithm also applies to an event's
relatedTarget.

Test: fast/dom/shadow/shadow-dom-event-dispatching.html

  • dom/EventDispatcher.cpp:

(WebCore::EventRelatedTargetAdjuster::adjust):
(WebCore::EventDispatcher::ensureEventAncestors):

LayoutTests:

  • fast/dom/shadow/shadow-dom-event-dispatching-expected.txt:
11:01 Changeset [120944] by mrobinson@webkit.org
  • 3 edits in trunk/Tools

[GTK] Combine WebKit API tests into fewer binaries
https://bugs.webkit.org/show_bug.cgi?id=88458

Reviewed by Carlos Garcia Campos.

Instead of creating one binary per-test file, create binaries for each
category of tests. Right now this includes WTF and the WebKit2 C API,
but later tests can be added for the GTK+ platform layer and the WebKit1
and WebKit2 API layers.

  • TestWebKitAPI/GNUmakefile.am: Compile only two test binaries, one for the WebKit2 C API and one for WTF. Refresh the source list to ensure that new test are active.
  • gtk/run-api-tests: Change the way that tests are skipped by splitting out the

concept of skipping a test and skipping a suite (program) of tests. Test cases are
skipped because of legitimate failures, but entire programs are skipped because of
problems in the harness. As of right now a test program is only skipped if the
accessibility bus cannot be started.
(SkippedTest.init): Make the test case a required argument and have one skipped
test case per SkippedTest instance.
(SkippedTest.str): Ditto.
(TestRunner): Update the directory list. We only have two gtest binaries now and they are
in one directory. Reformat the test list to make it slightly easier to read.
(TestRunner.init): Add the _skipped_test_program member, which handles entire
test programs that are skipped.
(TestRunner._setup_testing_environment): Use the new member.
(TestRunner._test_cases_to_skip): Collect all skipped test cases now instead of just
the first SkippedTest that matches.
(TestRunner._should_run_test_program): Take a look at the new member to make this
decision.
(TestRunner._run_test_command): Use the name test_program instead of test
to disambiguate between test cases and test suites.
(TestRunner._run_test_glib): ditto.
(TestRunner._run_test_google): Ditto.
(TestRunner._run_test): Ditto.
(TestRunner.run_tests): Ditto.

10:53 Changeset [120943] by commit-queue@webkit.org
  • 9 edits in trunk

[CSSRegions]Change WEBKIT_REGION_RULE value to 16
https://bugs.webkit.org/show_bug.cgi?id=89421

Patch by Andrei Onea <onea@adobe.com> on 2012-06-21
Reviewed by Tony Chang.

Source/WebCore:

Modified WEBKIT_REGION_RULE where applicable to match CSS Regions spec.
The new value for WEBKIT_REGION_RULE is 16 (was 10).

  • css/CSSRule.cpp:

(WebCore):
Added COMPILE_ASSERT to ensure StyleRule::Region and CSSRule::WEBKIT_REGION_RULE will

  • css/CSSRule.h:

(CSSRule):
Modified m_type bitfield length to 5

  • css/CSSRule.idl:
  • css/StyleRule.cpp:

(SameSizeAsStyleRuleBase):
(WebCore):
Added COMPILE_ASSERT to ensure that StyleRuleBase will always have exactly 32bits.

  • css/StyleRule.h:

(StyleRuleBase):
Modified m_type bitfield to 5 to accommodate the new value, and modified
m_sourceLine bitfield to 27 bits in order to keep StyleRule 32
bits long. Consequently, any css rule longer than 67,108,863 lines will
cause overflow - however, the value is large enough not to cause
problems.

LayoutTests:

Added check for exact value of WEBKIT_REGION_RULE which should be 16,
according to CSS Regions spec.

  • fast/regions/webkit-region-rule-expected.txt:
  • fast/regions/webkit-region-rule.html:
10:50 Changeset [120942] by yong.li@torchmobile.com
  • 2 edits in trunk/Tools

Unreviewed. Moving myself from committer list to reviewer.

  • Scripts/webkitpy/common/config/committers.py:
10:34 Changeset [120941] by commit-queue@webkit.org
  • 4 edits in trunk/Source/JavaScriptCore

make sure headers are included only once per file
https://bugs.webkit.org/show_bug.cgi?id=88922

Patch by Arnaud Renevier <arno@renevier.net> on 2012-06-21
Reviewed by Alexey Proskuryakov.

  • bytecode/CodeBlock.h:
  • heap/MachineStackMarker.cpp:
  • runtime/JSVariableObject.h:
10:34 Changeset [120940] by jonlee@apple.com
  • 2 edits in trunk/LayoutTests

r120835: fast/box-decoration-break/box-decoration-break-rendering.html failing on mac bots
https://bugs.webkit.org/show_bug.cgi?id=89620

  • platform/mac/Skipped:
10:32 Changeset [120939] by commit-queue@webkit.org
  • 36 edits in trunk

Paint played and buffered ranges differently in Chrome video controls.
https://bugs.webkit.org/show_bug.cgi?id=89284

Patch by Silvia Pfeiffer <silviapf@chromium.org> on 2012-06-21
Reviewed by Eric Carlson.

Source/WebCore:

No new tests; existing video control tests cover this case.

The Chrome video controls are receiving a visual update. This patch changes
the format in which the playback position slider displays the buffered range.
It is painted in a lighter color left of the position thumb and darker right
of the position thumb

  • css/mediaControlsChromium.css:

(input[type="range"]::-webkit-media-slider-container):
Adjust the border color of the playback position slider.

  • rendering/RenderMediaControlsChromium.cpp:

(WebCore::paintRoundedSliderBackground):
Adjust the background color of the position slider.
(WebCore::paintSliderRangeHighlight):
Make the color of the range region a function parameter,
provide start and end position as pixel width instead of percentage,
and make sure the rounded corners at beginning and end don't turn into rectangles.
(WebCore):
Move the mediaSliderThumbWidth variable up to be used in paintMediaSlider().
(WebCore::paintMediaSlider):
Calculate start, current and end position instead of fractions,
adjust the current position by half the thumb's width for improved rendering,
and draw two highlight areas: one bright one before current position and
one grey one after current position.
(WebCore::paintMediaVolumeSlider):
Adjust the paintSliderRangeHighlight function call and add the colors.

LayoutTests:

Rebaseline tests for linux build; mark others in TestExpectations.

  • platform/chromium/TestExpectations:
  • platform/chromium-linux/fast/layers/video-layer-expected.png:
  • platform/chromium-linux/fullscreen/full-screen-stacking-context-expected.png:
  • platform/chromium-linux/http/tests/media/video-buffered-range-contains-currentTime-expected.png:
  • platform/chromium-linux/media/audio-controls-rendering-expected.png:
  • platform/chromium-linux/media/controls-after-reload-expected.png:
  • platform/chromium-linux/media/controls-strict-expected.png:
  • platform/chromium-linux/media/controls-styling-expected.png:
  • platform/chromium-linux/media/controls-without-preload-expected.png:
  • platform/chromium-linux/media/video-controls-rendering-expected.png:
  • platform/chromium-linux/media/video-display-toggle-expected.png:
  • platform/chromium-linux/media/video-playing-and-pause-expected.png:
  • platform/chromium-linux/media/video-zoom-controls-expected.png:
  • platform/chromium-linux/media/audio-repaint-expected.png:
  • platform/chromium-linux/media/controls-layout-direction-expected.png:
  • platform/chromium-linux/media/media-controls-clone-expected.png:
  • platform/chromium-linux/media/media-document-audio-repaint-expected.png:
  • platform/chromium-linux/media/video-no-audio-expected.png:
  • platform/chromium-win/fast/layers/video-layer-expected.txt:
  • platform/chromium-win/media/audio-controls-rendering-expected.txt:
  • platform/chromium-win/media/audio-repaint-expected.txt:
  • platform/chromium-win/media/controls-after-reload-expected.txt:
  • platform/chromium-win/media/controls-strict-expected.txt:
  • platform/chromium-win/media/controls-styling-expected.txt:
  • platform/chromium-win/media/controls-without-preload-expected.txt:
  • platform/chromium-win/media/media-controls-clone-expected.txt:
  • platform/chromium-win/media/media-document-audio-repaint-expected.txt:
  • platform/chromium-win/media/video-controls-rendering-expected.txt:
  • platform/chromium-win/media/video-display-toggle-expected.txt:
  • platform/chromium-win/media/video-no-audio-expected.txt:
  • platform/chromium-win/media/video-playing-and-pause-expected.txt:
  • platform/chromium-win/media/video-zoom-controls-expected.txt:
10:28 Changeset [120938] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove unused static variable uninitializedLineNumberValue.
https://bugs.webkit.org/show_bug.cgi?id=89643

Patch by Kwang Yul Seo <skyul@company100.net> on 2012-06-21
Reviewed by Alexey Proskuryakov.

No behavioral changes.

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore):

10:25 Changeset [120937] by sergio@webkit.org
  • 2 edits in trunk/Tools

[GTK] Add a new webkit2 tests slave bot
https://bugs.webkit.org/show_bug.cgi?id=89336

Reviewed by Philippe Normand.

Slave configuration for a new GTK bot that will run WebKit2 tests.

  • BuildSlaveSupport/build.webkit.org-config/config.json:
10:21 Changeset [120936] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Remove unused static function skipComment.
https://bugs.webkit.org/show_bug.cgi?id=89641

Patch by Kwang Yul Seo <skyul@company100.net> on 2012-06-21
Reviewed by Alexey Proskuryakov.

No behavioral changes.

  • loader/TextResourceDecoder.cpp:
10:19 Changeset [120935] by thakis@chromium.org
  • 4 edits in trunk/Source/WebCore

Remove two more member variables found by clang's Wunused-private-field
https://bugs.webkit.org/show_bug.cgi?id=89672

Reviewed by Anders Carlsson.

  • html/shadow/MediaControlRootElementChromium.h:

(MediaControlRootElementChromium):

  • platform/graphics/filters/FECustomFilter.cpp:

(WebCore::FECustomFilter::FECustomFilter):

  • platform/graphics/filters/FECustomFilter.h:

(FECustomFilter):

10:15 Changeset [120934] by jchaffraix@webkit.org
  • 3 edits
    4 adds in trunk

Non-fixed length margins don't work with align=center
https://bugs.webkit.org/show_bug.cgi?id=89626

Reviewed by Levi Weintraub.

Source/WebCore:

Tests: fast/block/negative-start-margin-align-center-percent.html

fast/block/positive-margin-block-child-align-center-calc.html

Calling Length::value() is a bad idea as it returns the *raw* value of
the length. For percent and calculated length this is a bad idea as they
bear not relation to the actual computed length.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeInlineDirectionMargins):
Fixed the code to use minimumValueForLength as this nicely takes care of the 'auto' case.

LayoutTests:

  • fast/block/negative-start-margin-align-center-percent-expected.html: Added.
  • fast/block/negative-start-margin-align-center-percent.html: Added.
  • fast/block/positive-margin-block-child-align-center-calc-expected.html: Added.
  • fast/block/positive-margin-block-child-align-center-calc.html: Added.
10:13 Changeset [120933] by rjkroege@chromium.org
  • 2 edits in trunk/Source/WebCore

[chromium] style improvement for setDeviceScaleFactor code
https://bugs.webkit.org/show_bug.cgi?id=89665

Correct a coding style error committed in https://bugs.webkit.org/show_bug.cgi?id=88916

Reviewed by Adrienne Walker.

Purely code hygiene: existing tests suffice.

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::setDeviceScaleFactor):

10:07 Changeset [120932] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[GTK] Update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=89664

Unreviewed gardening. Mark editing/deleting/delete-3800834-fix.html
as flaky.

Patch by Simon Pena <spena@igalia.com> on 2012-06-21

  • platform/gtk/TestExpectations:
10:05 Changeset [120931] by shinyak@chromium.org
  • 3 edits
    2 adds in trunk

[Crash][Editing] Pressing enter on LI element triggers assertion in Shadow DOM.
https://bugs.webkit.org/show_bug.cgi?id=89171

Reviewed by Ryosuke Niwa.

Source/WebCore:

Since modidying Shadow DOM removes renderer of elements in Shadow DOM and shadow host,
assertion to check the existence of renderer was triggered.

We should update layout here to create renderer again.

Test: editing/shadow/pressing-enter-on-list.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::appendBlockPlaceholder):

LayoutTests:

  • editing/shadow/pressing-enter-on-list-expected.txt: Added.
  • editing/shadow/pressing-enter-on-list.html: Added.
10:03 Changeset [120930] by commit-queue@webkit.org
  • 10 edits in trunk/LayoutTests

DeviceOrientation and DeviceMotion Test Cleanup
https://bugs.webkit.org/show_bug.cgi?id=89662

Patch by Amy Ousterhout <aousterh@chromium.org> on 2012-06-21
Reviewed by Ryosuke Niwa.

Replaces 'LayoutTestController' with 'TestRunner' in debug messages.
This makes it consistent with testRunner, which replaced layoutTestController.

  • fast/dom/DeviceMotion/script-tests/no-page-cache.js:
  • fast/dom/DeviceOrientation/script-tests/add-listener-from-callback.js:
  • fast/dom/DeviceOrientation/script-tests/basic-operation.js:
  • fast/dom/DeviceOrientation/script-tests/event-after-navigation.js:
  • fast/dom/DeviceOrientation/script-tests/multiple-frames.js:
  • fast/dom/DeviceOrientation/script-tests/no-page-cache.js:
  • fast/dom/DeviceOrientation/script-tests/no-synchronous-events.js:
  • fast/dom/DeviceOrientation/script-tests/null-values.js:

(setMockOrientation):

  • fast/dom/DeviceOrientation/script-tests/updates.js:

(setMockOrientation):

09:53 Changeset [120929] by commit-queue@webkit.org
  • 12 edits
    2 copies in trunk/Source/WebCore

Web Inspector: [WebGL] Add injected WebGL module class
https://bugs.webkit.org/show_bug.cgi?id=89592

Patch by Andrey Adaikin <aandrey@chromium.org> on 2012-06-21
Reviewed by Pavel Feldman.

Adding a new InjectedScriptWebGLModule class and moving WebGL-related
stuff out of InjectedScriptManager class.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • inspector/InjectedScriptManager.cpp:
  • inspector/InjectedScriptManager.h:

(InjectedScriptManager):

  • inspector/InjectedScriptModule.cpp:

(WebCore::InjectedScriptModule::ensureInjected):

  • inspector/InjectedScriptModule.h:

(InjectedScriptModule):

  • inspector/InjectedScriptWebGLModule.cpp: Copied from Source/WebCore/inspector/InjectedScriptModule.cpp.

(WebCore):
(WebCore::InjectedScriptWebGLModule::InjectedScriptWebGLModule):
(WebCore::InjectedScriptWebGLModule::moduleForState):
(WebCore::InjectedScriptWebGLModule::source):
(WebCore::InjectedScriptWebGLModule::wrapWebGLContext):
(WebCore::InjectedScriptWebGLModule::captureFrame):

  • inspector/InjectedScriptWebGLModule.h: Copied from Source/WebCore/inspector/InjectedScriptModule.h.

(WebCore):
(InjectedScriptWebGLModule):

  • inspector/InspectorWebGLAgent.cpp:

(WebCore::InspectorWebGLAgent::wrapWebGLRenderingContextForInstrumentation):

09:34 Changeset [120928] by pfeldman@chromium.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: do not add separator to the end of the context menu.
https://bugs.webkit.org/show_bug.cgi?id=89634

Reviewed by Vsevolod Vlasov.

Attaching separators only before menu items now.

  • inspector/front-end/ContextMenu.js:

(WebInspector.ContextSubMenuItem.prototype.appendItem):
(WebInspector.ContextSubMenuItem.prototype.appendSubMenuItem):
(WebInspector.ContextSubMenuItem.prototype.appendCheckboxItem):
(WebInspector.ContextSubMenuItem.prototype.appendSeparator):
(WebInspector.ContextSubMenuItem.prototype._pushItem):

08:46 Changeset [120927] by commit-queue@webkit.org
  • 7 edits
    1 add in trunk

[EFL][WK2] Make WebKit2/Efl headers and resources installable.
https://bugs.webkit.org/show_bug.cgi?id=88207

Patch by Ryuan Choi <ryuan.choi@gmail.com> on 2012-06-21
Reviewed by Chang Shu.

.:

  • Source/cmake/OptionsCommon.cmake:

Provide new variable, EXEC_INSTALL_DIR to determine where to install
executables.

Source/JavaScriptCore:

  • shell/CMakeLists.txt: Use ${EXEC_INSTALL_DIR} instead of hardcoding "bin"

Source/WebKit2:

  • CMakeLists.txt: Install WebProcess.
  • PlatformEfl.cmake: Generate ewebkit2.pc and install it.
  • efl/ewebkit2.pc.in: Added.
08:28 Changeset [120926] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: Unify FileSystem callbacks
https://bugs.webkit.org/show_bug.cgi?id=89420

Patch by Taiju Tsuiki <tzik@chromium.org> on 2012-06-21
Reviewed by Vsevolod Vlasov.

  • inspector/InspectorFileSystemAgent.cpp:

(WebCore):

08:11 Changeset [120925] by ryuan.choi@samsung.com
  • 8 edits
    4 copies
    1 add in trunk

[EFL[WK2] Add WKViewEfl and WebKit2 API Object to represent Evas_Object.
https://bugs.webkit.org/show_bug.cgi?id=88935

Reviewed by Chang Shu.

.:

  • Source/cmake/OptionsEfl.cmake: Defines BUILDING_EFL.

Source/WebKit2:

Add WKViewEfl to support WTR/Efl.

  • PlatformEfl.cmake:
  • Shared/API/c/WKBase.h:
  • Shared/API/c/efl/WKBaseEfl.h: Added.
  • UIProcess/API/C/WKAPICast.h:
  • UIProcess/API/C/efl/WKAPICastEfl.h: Added.

(WebKit):

  • UIProcess/API/C/efl/WKView.cpp: Added.

(WKViewCreate):
(WKViewGetPage):

  • UIProcess/API/C/efl/WKView.h: Added.
  • UIProcess/API/efl/ewk_view.cpp:

(ewk_view_page_get):

  • UIProcess/API/efl/ewk_view_private.h:
07:45 Changeset [120924] by ossy@webkit.org
  • 5 edits
    5 adds in trunk/LayoutTests

[Qt] Unreviewed gardening, unskip now passing tests.

  • platform/qt/Skipped:
  • platform/qt/editing/inserting/4960120-1-expected.png: Added.
  • platform/qt/editing/inserting/4960120-1-expected.txt:
  • platform/qt/editing/inserting/before-after-input-element-expected.png: Added.
  • platform/qt/editing/inserting/before-after-input-element-expected.txt:
  • platform/qt/editing/inserting/insert-text-with-newlines-expected.png: Added.
  • platform/qt/editing/inserting/insert-text-with-newlines-expected.txt:
  • platform/qt/http/tests/misc/favicon-as-image-expected.png: Added.
  • platform/qt/http/tests/misc/favicon-as-image-expected.txt: Added.
06:39 Changeset [120923] by mifenton@rim.com
  • 5 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Input mode should adapt automatically to settings changes
https://bugs.webkit.org/show_bug.cgi?id=89595

Reviewed by Antonio Gomes.

PR 167540.

Add helper function to check if input is enabled so that
the override settings can be applied at any time.

Reviewed Internally by Gen Mak.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::setLoadState):
(BlackBerry::WebKit::WebPagePrivate::handleMouseEvent):

  • WebKitSupport/InputHandler.cpp:

(BlackBerry::WebKit::InputHandler::isInputModeEnabled):
(BlackBerry::WebKit::InputHandler::setInputModeEnabled):
(BlackBerry::WebKit::InputHandler::setElementFocused):
(BlackBerry::WebKit::InputHandler::ensureFocusTextElementVisible):
(BlackBerry::WebKit::InputHandler::notifyClientOfKeyboardVisibilityChange):
(BlackBerry::WebKit::InputHandler::handleKeyboardInput):
(BlackBerry::WebKit::InputHandler::setComposingText):

  • WebKitSupport/InputHandler.h:
  • WebKitSupport/TouchEventHandler.cpp:

(BlackBerry::WebKit::TouchEventHandler::handleTouchPoint):

06:26 Changeset [120922] by kbalazs@webkit.org
  • 2 edits in trunk/Source/WTF

Compile error: 'bool std::isinf(float)' is not 'constexpr' with GCC 4.6 in C++11 mode
https://bugs.webkit.org/show_bug.cgi?id=88721

Reviewed by Csaba Osztrogonác.

Don't define these as consexpr because with gcc 4.6
they call non constexpr functions.

  • wtf/MathExtras.h:

(std::wtf_isinf):
(std::wtf_isnan):

06:12 Changeset [120921] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk/Tools

[Qt] Add a custom Color Chooser widget to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=87988

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-06-21
Reviewed by Alexis Menard.

Added custom color chooser example for the MiniBrowser.

  • MiniBrowser/qt/MiniBrowser.qrc:
  • MiniBrowser/qt/qml/BrowserWindow.qml:
  • MiniBrowser/qt/qml/ColorChooser.qml: Added.
05:27 Changeset [120920] by commit-queue@webkit.org
  • 2 edits in trunk/Tools

Remove the warning "File not found" in MiniBrowser post-build event
https://bugs.webkit.org/show_bug.cgi?id=89601

Patch by Vivek Galatage <vivekgalatage@gmail.com> on 2012-06-21
Reviewed by Adam Roben.

  • MiniBrowser/MiniBrowserPostBuild.cmd:
05:14 Changeset [120919] by commit-queue@webkit.org
  • 2 edits
    2 adds in trunk/LayoutTests

[GTK] Add new baseline and update TestExpectations
https://bugs.webkit.org/show_bug.cgi?id=89651

Unreviewed gardening.

Patch by Simon Pena <spena@igalia.com> on 2012-06-21

  • platform/gtk/TestExpectations: marked

svg/W3C-SVG-1.1/animate-elem-{32,33,40,41,46}-t.svg as flaky, and
fast/canvas/canvas-createImageData.html as crashing on DEBUG

  • platform/gtk/fast/hidpi/device-scale-factor-paint-expected.png: Added.
  • platform/gtk/fast/hidpi/device-scale-factor-paint-expected.txt: Added.
05:08 Changeset [120918] by commit-queue@webkit.org
  • 11 edits
    3 adds in trunk/Source/WebKit/gtk

[GTK] Backport run-file-chooser to WebKit1
https://bugs.webkit.org/show_bug.cgi?id=87283

Patch by Daniel Drake <dsd@laptop.org> on 2012-06-21
Reviewed by Gustavo Noronha Silva.

This is a relatively straightforward backport of Mario Sanchez
Prada's WebKit2 run-file-chooser signal work, intended for use by
OLPC and others who are not quite ready to move to WebKit2.

Add a new public class to the API, WebKitFileChooserRequest, to be
emitted along with a new WebKitWebView::run-file-chooser signal to
let client applications to provide their own file chooser dialog
when the use interacts with HTML Input elements of type 'file'.

  • GNUmakefile.am: Added new source files and headers.
  • webkit/webkitfilechooserrequest.cpp: Added.

(_WebKitFileChooserRequestPrivate):
(webkit_file_chooser_request_init):
(webkit_file_chooser_request_finalize):
(webkit_file_chooser_request_get_property):
(webkit_file_chooser_request_class_init):
(webkit_file_chooser_request_create):
(webkit_file_chooser_request_get_mime_types):
(webkit_file_chooser_request_get_mime_types_filter):
(webkit_file_chooser_request_get_select_multiple):
(webkit_file_chooser_request_select_files):
(webkit_file_chooser_request_get_selected_files):

  • webkit/webkitfilechooserrequest.h: Added.

(_WebKitFileChooserRequest):
(_WebKitFileChooserRequestClass):

  • webkit/webkitfilechooserrequestprivate.h: Added,

containing the prototype of webkit_file_chooser_request_create.

Provide private API to make a file chooser request from the
WebView, and provide a default handler for it.

  • webkit/webkitwebview.cpp:

(fileChooserDialogResponseCallback): Handler for the 'response'
signal for the GtkFileChooserDialog used in the default
handler. It will call to webkit_file_chooser_request_select_files
or webkit_file_chooser_request_cancel as needed.
(webkitWebViewRealRunFileChooser): Default handler for the new
'run-file-chooser' signal. It will create a GtkFileChooserDialog,
connect to the 'response' signal and show it.
(webkit_web_view_class_init): Connect the 'run-file-chooser'
signal to the default handler, webkitWebViewRunFileChooser.
(webkit_web_view_new):
(webkitWebViewRunFileChooserRequest):

  • webkit/webkitwebview.h:

(_WebKitWebViewClass): Added prototype for the handler of the new
'run-file-chooser' signal.

  • webkit/webkitwebviewprivate.h: Added prototype for

private new function webkitWebViewRunFileChooserRequest.

Update runOpenPanel to use the new API, including a default handler
with similar behaviour to before.

  • WebCoreSupport/ChromeClientGtk.cpp:

(WebKit::ChromeClient::runOpenPanel): Now creates an instance of
WebKitFileChooserRequest and asks the WebView to emit the
new 'run-file-chooser' signal with it.

Added the new public header to the main header.

  • webkit/webkit.h: Added webkitfilechooserrequest.h

New unit tests for the new WebKitFileChooserRequest API.

  • tests/testwebview.c: Various WebKitFileChooserRequest tests,

including MIME type filtering and selection handling.

Updated documentation related files with the new API.

  • docs/webkitgtk-docs.sgml: Added new section.
  • docs/webkitgtk-sections.txt: Added new API.
  • docs/webkitgtk.types: Added get_type function.
05:01 Changeset [120917] by kbalazs@webkit.org
  • 2 edits in trunk/Tools

[Qt] DRT in standalone mode hangs after the first test
https://bugs.webkit.org/show_bug.cgi?id=89613

Reviewed by Csaba Osztrogonác.

Break an inline signal slot chain that ends up in setting
LayoutTestController::m_hasDumped too early. In LayoutTestController::maybeDump()
we emit done() which starts the chain that finishes in DumpRenderTree::open().
The next line in maybeDump sets m_hasDumped to true. We could simply reorder
these two lines but it seems to be wrong in general to start the next load
from this call chain. The server mode (when DRT is runned by the test harness)
also uses a queued connection to read the next test from stdin.

  • DumpRenderTree/qt/DumpRenderTreeQt.cpp:

(WebCore::DumpRenderTree::processArgsLine):

04:38 Changeset [120916] by commit-queue@webkit.org
  • 1 edit
    2 adds in trunk/Source/WebKit2

[Qt] API tests for ColorChooser
https://bugs.webkit.org/show_bug.cgi?id=88101

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-06-21
Reviewed by Kenneth Rohde Christiansen.

The test uses the value sanitization to detect if the feature is
enabled or disabled and will just pass when disabled.

  • UIProcess/API/qt/tests/qmltests/WebView/tst_colorChooser.qml: Added.
  • UIProcess/API/qt/tests/qmltests/common/colorChooser.html: Added.
03:58 Changeset [120915] by commit-queue@webkit.org
  • 9 edits
    2 adds in trunk/Source

[WK2][Qt] Color chooser API missing
https://bugs.webkit.org/show_bug.cgi?id=87749

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-06-21
Reviewed by Kenneth Rohde Christiansen.

Source/WebKit/qt:

Added ColorChooser API stub to WebKit. Otherwise
it will break the build for Qt WebKit2 (that now has
complete support for color chooser) when INPUT_TYPE_COLOR is set.

  • WebCoreSupport/ChromeClientQt.cpp:

(WebCore):
(WebCore::ChromeClientQt::createColorChooser):

  • WebCoreSupport/ChromeClientQt.h:

(ChromeClientQt):

Source/WebKit2:

Added public experimental API for ColorChooser. This will
allow the browser to define a custom dialog for selecting
color when a input field of type "color" get focus.

The current implementation gives a model to the QML Component
that has methods for canceling a request, selecting a color
and fetching what is the current value of the HTML input.

  • Target.pri:
  • UIProcess/API/qt/qquickwebview.cpp:

(QQuickWebViewPrivate::QQuickWebViewPrivate):
(QQuickWebViewExperimental::colorChooser):
(QQuickWebViewExperimental::setColorChooser):

  • UIProcess/API/qt/qquickwebview_p.h:
  • UIProcess/API/qt/qquickwebview_p_p.h:

(QQuickWebViewPrivate):

  • UIProcess/qt/QtPageClient.cpp:

(WebKit::QtPageClient::createColorChooserProxy):

  • UIProcess/qt/WebColorChooserProxyQt.cpp: Added.

(WebKit):
(ColorChooserContextObject):
(WebKit::ColorChooserContextObject::ColorChooserContextObject):
(WebKit::ColorChooserContextObject::currentColor):
(WebKit::ColorChooserContextObject::accept):
(WebKit::ColorChooserContextObject::reject):
(WebKit::WebColorChooserProxyQt::WebColorChooserProxyQt):
(WebKit::WebColorChooserProxyQt::~WebColorChooserProxyQt):
(WebKit::WebColorChooserProxyQt::createItem):
(WebKit::WebColorChooserProxyQt::createContext):
(WebKit::WebColorChooserProxyQt::setSelectedColor):
(WebKit::WebColorChooserProxyQt::notifyColorSelected):
(WebKit::WebColorChooserProxyQt::endChooser):

  • UIProcess/qt/WebColorChooserProxyQt.h: Added.

(WebCore):
(WebKit):
(WebColorChooserProxyQt):
(WebKit::WebColorChooserProxyQt::create):

03:24 Changeset [120914] by ossy@webkit.org
  • 2 edits in trunk/LayoutTests

[Qt] Unreviewed gardening, skip a new failing test.

  • platform/qt-5.0-wk2/Skipped:
03:23 Changeset [120913] by hans@chromium.org
  • 9 edits
    4 adds in trunk

Speech JavaScript API: SpeechRecognition should hook up with ActiveDOMObject more
https://bugs.webkit.org/show_bug.cgi?id=89217

Reviewed by Adam Barth.

Source/WebCore:

Previously, the SpeechRecognition was kept alive while waiting for
pending events by making the embedder hold a reference to the object.
We should do this by using ActiveDOMObject's setPendingActivity() instead.

Also, override ActiveDOMObject::stop() to get notified when the user
leaves the page.

Test: fast/speech/scripted/navigate-away.html

  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::start):
(WebCore::SpeechRecognition::didEnd):
(WebCore::SpeechRecognition::stop):
(WebCore):

  • Modules/speech/SpeechRecognition.h:

(SpeechRecognition):

Tools:

Add a method for checking whether the mock speech
recognition was aborted.

Also redo the way the mock posts tasks. Instead of posting them all at once,
maintain an internal queue of task objects, and call postTask() for them
once at the time. This means that for example when the page is navigated
away and abort() is called, that call doesn't end up after a bunch
of previously posted events on the event loop.

  • DumpRenderTree/chromium/LayoutTestController.cpp:

(LayoutTestController::LayoutTestController):
(LayoutTestController::wasMockSpeechRecognitionAborted):

  • DumpRenderTree/chromium/LayoutTestController.h:

(LayoutTestController):

  • DumpRenderTree/chromium/MockWebSpeechRecognizer.cpp:

(WebKit::ClientCallTask::ClientCallTask):
(WebKit::ResultTask::ResultTask):
(WebKit::NoMatchTask::NoMatchTask):
(WebKit::ErrorTask::ErrorTask):
(MockWebSpeechRecognizer::start):
(MockWebSpeechRecognizer::abort):
(MockWebSpeechRecognizer::setError):
(MockWebSpeechRecognizer::MockWebSpeechRecognizer):
(MockWebSpeechRecognizer::startTaskQueue):
(MockWebSpeechRecognizer::StepTask::runIfValid):

  • DumpRenderTree/chromium/MockWebSpeechRecognizer.h:

(MockWebSpeechRecognizer::hasBeenAborted):
(MockWebSpeechRecognizer):
(MockWebSpeechRecognizer::taskList):
(Task):
(MockWebSpeechRecognizer::Task::Task):
(MockWebSpeechRecognizer::Task::~Task):
(StepTask):
(MockWebSpeechRecognizer::StepTask::StepTask):

LayoutTests:

Add a layout test to check that speech recognition gets aborted when
navigating away from the page.

  • fast/speech/scripted/navigate-away-expected.txt: Added.
  • fast/speech/scripted/navigate-away-iframe-expected.txt: Added.
  • fast/speech/scripted/navigate-away-iframe.html: Added.
  • fast/speech/scripted/navigate-away.html: Added.
03:06 Changeset [120912] by commit-queue@webkit.org
  • 2 edits in trunk/LayoutTests

[EFL] Gardening after r120847
https://bugs.webkit.org/show_bug.cgi?id=89640

Unreviewed gardening. Newly added compositing/backface-visibility/backface-visibility-webgl.html
test does not pass on EFL port due to missing WebGL support.

Patch by Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> on 2012-06-21

  • platform/efl/TestExpectations:
02:07 Changeset [120911] by lforschler@apple.com
  • 4 edits in branches/safari-536-branch/Source

Versioning.

02:05 Changeset [120910] by lforschler@apple.com
  • 1 copy in tags/Safari-536.22

New Tag.

01:15 Changeset [120909] by lforschler@apple.com
  • 8 edits in branches/safari-536-branch/Source

Merged r120879 -> <rdar://problem/11653784>

01:13 WebKitGTK/WebKit2Roadmap edited by mario@webkit.org
(diff)
01:07 Changeset [120908] by mario@webkit.org
  • 16 edits in trunk

[GTK] Add support for window.showModalDialog in WebKit2GTK+
https://bugs.webkit.org/show_bug.cgi?id=79500

Reviewed by Carlos Garcia Campos.

Source/WebKit2:

Implement runModal in WebKitUIClient to make the WebKitWebView
emit a 'run-as-modal' signal when requested, creating a new
mainloop there to block user interaction with the original window
while the modal dialog is showing.

  • UIProcess/API/gtk/WebKitUIClient.cpp:

(runModal): Call to the new webkitWebViewRunAsModalPage function.
(attachUIClientToView): Add runModal.

  • UIProcess/API/gtk/WebKitWebView.cpp:

(_WebKitWebViewPrivate): Add an atribute for a new main loop.
(webkitWebViewFinalize): Make sure the main loop for main dialogs,
if any, is stopped if it was still running.
(webkit_web_view_class_init): Declare new signal 'run-as-modal'.
(webkitWebViewRunAsModal): Emit the 'run-as-modal' signal and, if
handled, create and run a new main loop.

  • UIProcess/API/gtk/WebKitWebView.h:

(_WebKitWebViewClass): New handler for the 'run-as-modal' signal.

  • UIProcess/API/gtk/WebKitWebViewPrivate.h: Add webkitWebViewRunAsModalPage.

Allow setting and getting the value of WebPage's canRunModal
attribute in the WebProcess from the UIProcess after the creation
of a WebPage, to allow using it from WebKitWebView to allow the
client application to decide whether to allow create modal
dialogs, which would result in launching an additional nested
event loop in the web process, after creating the dialog.

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::WebPageProxy): Initialize the new
m_canRunModal attribute, to cache the current status of the
WebPage in the WebProcess.
(WebKit::WebPageProxy::initializeUIClient): Call the new function
setCanRunModal, instead of manually sending the SetCanRunModal message.
(WebKit::WebPageProxy::creationParameters): Use m_canRunModal
instead of m_uiClient.canRunModal when preparing the parameters.
(WebKit::WebPageProxy::setCanRunModal): New public function, it
sets the value of m_canRunModal and sends a message to the Web
process for updating the WebPage, whenever possible.
(WebKit::WebPageProxy::canRunModal): New public function, returns
the value of the m_canRunModal attribute.

  • UIProcess/WebPageProxy.h:

(WebPageProxy): Added new public functions and private attribute.

New property in WebKitSettings to be able to decide whether it is
allowed to create and run new child webviews as modal dialogs.

  • UIProcess/API/gtk/WebKitSettings.cpp:

(_WebKitSettingsPrivate): New attribute allowModalDialogs.
(webKitSettingsSetProperty): Handle the new property.
(webKitSettingsGetProperty): Ditto.
(webkit_settings_class_init): Install the new property.
(webkitSettingsAttachSettingsToPage): Make sure the WebPage is
initialized with the value of the new property.
(webkit_settings_set_allow_modal_dialogs): New setter.
(webkit_settings_get_allow_modal_dialogs): New getter.

  • UIProcess/API/gtk/WebKitSettings.h:
  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new accessors.

Connect to the 'notify::allow-modal-dialogs' signal from
WebKitSettings to ensure that canRunModal property of the WebPage
is kept up to date. Ensure that signal handlers for monitoring
settings are disconnected when the webview is finalized.

  • UIProcess/API/gtk/WebKitWebView.cpp:

(webkitWebViewSetSettings): Connect to the new signal
'notify::allow-modal-dialogs', from WebKitSettings.
(allowModalDialogsChanged): Callback to update WebPage's
canRunModal property when updated through WebKitSettings.
(webkitWebViewDisconnectSettingsSignalHandlers): Disconnect signal
handlers for monitoring WebKitSettings properties.
(webkitWebViewFinalize): Ensure signal handlers are disconnected.
(webkit_web_view_set_settings): Ditto.

  • UIProcess/API/gtk/WebKitWebView.h:

Add new unit tests to check the 'run-as-modal' signal is emitted
only when the new property in WebKitSettings is set to TRUE.

  • UIProcess/API/gtk/tests/TestWebKitWebView.cpp:

(testWebViewAllowModalDialogs): New unit test to check that modal
dialogs are properly created from JavaScript when allowed.
(testWebViewDisallowModalDialogs): New unit test to check that
it's not possible to create modal dialogs when not allowed.
(beforeAll): Add the new unit test.

Tools:

Add support for modal dialogs in GTK's MiniBrowser.

  • MiniBrowser/gtk/BrowserWindow.c:

(webViewRunAsModal):
(webViewCreate):
(webViewDecidePolicy):
(browser_window_new):

  • MiniBrowser/gtk/BrowserWindow.h:
  • MiniBrowser/gtk/main.c:

(createBrowserWindow):

00:48 Changeset [120907] by mario@webkit.org
  • 2 edits
    2 moves
    1 delete in trunk/LayoutTests

[GTK] accessibility/textbox-role-reports-line-number.html fails
https://bugs.webkit.org/show_bug.cgi?id=75785

Reviewed by Chris Fleizach.

Move a Mac specific accessibility test to the platform directory.

  • platform/gtk/TestExpectations: Removed test from gtk test expectations.
  • platform/mac/accessibility/textbox-role-reports-line-number-expected.txt: Renamed from LayoutTests/accessibility/textbox-role-reports-line-number-expected.txt.
  • platform/mac/accessibility/textbox-role-reports-line-number.html: Renamed from LayoutTests/accessibility/textbox-role-reports-line-number.html.
  • platform/win/accessibility/textbox-role-reports-line-number-expected.txt: Removed.
00:23 Changeset [120906] by commit-queue@webkit.org
  • 10 edits in trunk

Web Inspector: Move requestId allocation from FileSystem frontend to backend
https://bugs.webkit.org/show_bug.cgi?id=89555

Patch by Taiju Tsuiki <tzik@chromium.org> on 2012-06-21
Reviewed by Vsevolod Vlasov.

Source/WebCore:

Test: http/tests/inspector/filesystem/get-filesystem-root.html:

http/tests/inspector/filesystem/read-directory.html:

  • inspector/Inspector.json:
  • inspector/InspectorFileSystemAgent.cpp:

(WebCore):
(WebCore::InspectorFileSystemAgent::requestFileSystemRoot):
(WebCore::InspectorFileSystemAgent::requestDirectoryContent):
(WebCore::InspectorFileSystemAgent::InspectorFileSystemAgent):

  • inspector/InspectorFileSystemAgent.h:

(InspectorFileSystemAgent):

  • inspector/front-end/FileSystemModel.js:

(WebInspector.FileSystemModel.prototype._originAdded):
(WebInspector.FileSystemModel.prototype._fileSystemRootReceived):
(WebInspector.FileSystemRequestManager):
(WebInspector.FileSystemRequestManager.prototype.requestFileSystemRoot.requestAccepted):
(WebInspector.FileSystemRequestManager.prototype.requestFileSystemRoot):
(WebInspector.FileSystemRequestManager.prototype._fileSystemRootReceived):
(WebInspector.FileSystemRequestManager.prototype.requestDirectoryContent.requestAccepted):
(WebInspector.FileSystemRequestManager.prototype.requestDirectoryContent):
(WebInspector.FileSystemRequestManager.prototype._directoryContentReceived):
(WebInspector.FileSystemDispatcher.prototype.fileSystemRootReceived):
(WebInspector.FileSystemDispatcher.prototype.directoryContentReceived):

LayoutTests:

  • http/tests/inspector/filesystem/filesystem-test.js:

(initialize_FileSystemTest.InspectorTest.dumpReadDirectoryResult):
(initialize_FileSystemTest):

  • http/tests/inspector/filesystem/get-filesystem-root.html:
  • http/tests/inspector/filesystem/read-directory-expected.txt:
  • http/tests/inspector/filesystem/read-directory.html:

06/20/12:

23:08 Changeset [120905] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebCore

[cairo] improve putByteArray speed by avoiding max/min checks at Color construction.
https://bugs.webkit.org/show_bug.cgi?id=89138

Patch by Arnaud Renevier <arno@renevier.net> on 2012-06-20
Reviewed by Adam Barth.

Color constructor accepts integer arguments and checks if they are
between 0 and 255. In some cases, we already known those numbers to be
within those boundaries. For example when using unsigned chars. So
this patch introduces Color::createUnChecked which return a Color
object without checking for boundaries.

No new tests: no behaviour change

  • platform/graphics/Color.cpp:

(WebCore::colorFromPremultipliedARGB):

  • platform/graphics/Color.h:

(WebCore::Color::createUnCheked):
(Color):

  • platform/graphics/cairo/ImageBufferCairo.cpp:

(WebCore::ImageBuffer::putByteArray):

22:39 Changeset [120904] by commit-queue@webkit.org
  • 4 edits in trunk/Source

[Chromium] Damage tracker is not used without partial swap, causing valid render passes to be removed
https://bugs.webkit.org/show_bug.cgi?id=89589

Patch by Zeev Lieber <zlieber@chromium.org> on 2012-06-20
Reviewed by Adrienne Walker.

Source/WebCore:

When not using partial swap, the CCDamageTracker was not used, and
its m_currentDamageRect was always empty. As a result,
CCLayerTreeHostImpl was thinking no content was changed and was
removing more textures than needed. Fixed this by turning on
CCDamageTracker usage even if not using partial swap, but
overwriting the rootScissorRect with viewport rect if required.

Added unit tests to exercise this scenario.

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):

Source/WebKit/chromium:

Added unit tests to check surface texture caching when partial
swap is not used.

  • tests/CCLayerTreeHostImplTest.cpp:
22:11 Changeset [120903] by yosin@chromium.org
  • 7 edits in trunk/Source/WebCore

[Forms] Make step action of SpinButtonElement replaceable
https://bugs.webkit.org/show_bug.cgi?id=89439

Reviewed by Kent Tamura.

This patch introduces SpinButtonElement::Callback to specify step
action by control clients for using SpinButtonElement by
TextFieldInputType and future version of TimeInputField.

In addition to this improving flexibility of SpinButtonElement, we
free HTMLInputElement from SpinButtonElement dependency on
stepUpFromRenderer.

No new tests. This patch doesn't change behavior.

  • html/HTMLInputElement.cpp: Removed stepUpFromRenderer().
  • html/HTMLInputElement.h: Removed stepUpFromRenderer().
  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::~TextFieldInputType): Added to call SpinButtonElement::removeStepActionHandler.
(WebCore::TextFieldInputType::handleKeydownEventForSpinButton): Changed to call spinButtonStep{Down,Up}
(WebCore::TextFieldInputType::handleWheelEventForSpinButton): Changed to call spinButtonStep{Down,Up}
(WebCore::TextFieldInputType::createShadowSubtree): Added SpinButtonElement::StepActionHandler parameter.
(WebCore::TextFieldInputType::destroyShadowSubtree): Added to call SpinButtonElement::removeStepActionHandler.
(WebCore::TextFieldInputType::spinButtonStepDown): Added for implementation of SpinButtonElement::StepActionHandler.
(WebCore::TextFieldInputType::spinButtonStepUp): Added for implementation of SpinButtonElement::StepActionHandler.

  • html/TextFieldInputType.h:

(TextFieldInputType):

  • html/shadow/TextControlInnerElements.cpp:

(WebCore::SpinButtonElement::SpinButtonElement): Added StepActionHandler parameter.
(WebCore::SpinButtonElement::defaultEventHandler): Changed to call doStepAction.
(WebCore::SpinButtonElement::doStepAction): Added to call StepActionHandler if possible.
(WebCore::SpinButtonElement::step): Changed to call doStepAction.

  • html/shadow/TextControlInnerElements.h:

(StepActionHandler): Added.

21:46 Changeset [120902] by enne@google.com
  • 4 edits in trunk/Source/WebCore

[chromium] Modify CCDamageTracker hash to allow for layer id 0
https://bugs.webkit.org/show_bug.cgi?id=89631

Reviewed by James Robinson.

HashMap has the bizarre property that 0 is the empty value for integer
keys. Modify the damage tracking HashMap to use negative values for
both the empty and the deleted key traits. Additionally, make sure we
never generate negative layer IDs in practice.

Test: passes webkit_unit_tests with the patch in bug 89589 applied.

  • platform/graphics/chromium/LayerChromium.cpp:

(WebCore::LayerChromium::LayerChromium):

  • platform/graphics/chromium/cc/CCDamageTracker.h:

(RectMapKeyTraits):
(WebCore::CCDamageTracker::RectMapKeyTraits::emptyValue):
(WebCore::CCDamageTracker::RectMapKeyTraits::constructDeletedValue):
(WebCore::CCDamageTracker::RectMapKeyTraits::isDeletedValue):
(CCDamageTracker):

  • platform/graphics/chromium/cc/CCLayerImpl.cpp:

(WebCore::CCLayerImpl::CCLayerImpl):

21:27 Changeset [120901] by bfulgham@webkit.org
  • 2 edits in trunk/Tools

[WinCairo] Unreviewed build fix.
The wrapper script that launched new- and old-run-webkit-tests
was discarding the --wincairo argument needed to get the proper
test infrastructure to build under WinCairo.

  • Scripts/run-webkit-tests: Emulate the Qt, Wx, Chromium, etc.,

behavior to chain the --wincairo flag through to the new build
and test scripts.

21:18 Changeset [120900] by adamk@chromium.org
  • 6 edits in trunk/Source/WebCore

Use Dictionary in MutationObserver.observe to kill custom code
https://bugs.webkit.org/show_bug.cgi?id=89629

Reviewed by Ryosuke Niwa.

Move code for dictionary parsing in MutationObserver.observe
that used to be duplicated (with different implementations)
in JSC and V8 bindings into WebKitMutationObserver.cpp, using
the new Dictionary interface.

No new tests, no change in behavior.

  • bindings/js/JSWebKitMutationObserverCustom.cpp:
  • bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
  • dom/WebKitMutationObserver.cpp:

(WebCore::WebKitMutationObserver::observe):

  • dom/WebKitMutationObserver.h:

(WebCore):

  • dom/WebKitMutationObserver.idl:
19:03 Changeset [120899] by commit-queue@webkit.org
  • 4 edits in trunk/Source

Unreviewed, rolling out r120889.
http://trac.webkit.org/changeset/120889
https://bugs.webkit.org/show_bug.cgi?id=89630

[Chromium] webkit_unit_tests didDrawNotCalledOnHiddenLayer
start failing (Requested by ukai on #webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-20

Source/WebCore:

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):

Source/WebKit/chromium:

  • tests/CCLayerTreeHostImplTest.cpp:
19:00 Changeset [120898] by ggaren@apple.com
  • 4 edits in trunk/Source/JavaScriptCore

Reduced (but did not eliminate) use of "berzerker GC"
https://bugs.webkit.org/show_bug.cgi?id=89237

Reviewed by Gavin Barraclough.

(PART 1)

This patch turned out to be crashy, so I'm landing the non-crashy bits
first.

This part is pre-requisite refactoring. I didn't actually turn off
"berzerker GC" or turn on incremental shrinking.

  • heap/MarkedAllocator.cpp:

(JSC::MarkedAllocator::removeBlock): Make sure to clear the free list when
we throw away the block we're currently allocating out of. Otherwise, we'll
allocate out of a stale free list.

  • heap/MarkedSpace.cpp:

(JSC::Free::Free):
(JSC::Free::operator()):
(JSC::Free::returnValue): Refactored this functor to use a shared helper
function, so we can share our implementation with the incremental sweeper.

Also changed to freeing individual blocks immediately instead of linking
them into a list for later freeing. This makes the programming interface
simpler, and it's slightly more efficient to boot.

(JSC::MarkedSpace::~MarkedSpace): Updated for rename.

(JSC::MarkedSpace::freeBlock):
(JSC::MarkedSpace::freeOrShrinkBlock): New helper functions to share behavior
with the incremental sweeper.

(JSC::MarkedSpace::shrink): Updated for new functor behavior.

  • heap/MarkedSpace.h: Statically typed languages are awesome.
18:38 Changeset [120897] by fpizlo@apple.com
  • 12 edits
    2 adds in trunk/Source/JavaScriptCore

DFG should optimize ResolveGlobal
https://bugs.webkit.org/show_bug.cgi?id=89617

Reviewed by Oliver Hunt.

This adds inlining of ResolveGlobal accesses that are known monomorphic. It also
adds the specific function optimization to ResolveGlobal, when it is inlined. And,
it makes internal functions act like specific functions, since that will be the
most common use-case of this optimization.

This is only a slighy speed-up (sub 1%), since we don't yet do the obvious thing
with this optimization, which is to completely inline common "globally resolved"
function and constructor calls, like "new Array()".

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::globalResolveInfoForBytecodeOffset):

  • bytecode/CodeBlock.h:

(CodeBlock):
(JSC::CodeBlock::numberOfGlobalResolveInfos):

  • bytecode/GlobalResolveInfo.h:

(JSC::getGlobalResolveInfoBytecodeOffset):
(JSC):

  • bytecode/ResolveGlobalStatus.cpp: Added.

(JSC):
(JSC::computeForStructure):
(JSC::computeForLLInt):
(JSC::ResolveGlobalStatus::computeFor):

  • bytecode/ResolveGlobalStatus.h: Added.

(JSC):
(ResolveGlobalStatus):
(JSC::ResolveGlobalStatus::ResolveGlobalStatus):
(JSC::ResolveGlobalStatus::state):
(JSC::ResolveGlobalStatus::isSet):
(JSC::ResolveGlobalStatus::operator!):
(JSC::ResolveGlobalStatus::isSimple):
(JSC::ResolveGlobalStatus::takesSlowPath):
(JSC::ResolveGlobalStatus::structure):
(JSC::ResolveGlobalStatus::offset):
(JSC::ResolveGlobalStatus::specificValue):

  • dfg/DFGByteCodeParser.cpp:

(ByteCodeParser):
(JSC::DFG::ByteCodeParser::handleGetByOffset):
(DFG):
(JSC::DFG::ByteCodeParser::handleGetById):
(JSC::DFG::ByteCodeParser::parseBlock):

  • runtime/JSObject.cpp:

(JSC::getCallableObjectSlow):
(JSC):
(JSC::JSObject::put):
(JSC::JSObject::putDirectVirtual):
(JSC::JSObject::putDirectAccessor):

  • runtime/JSObject.h:

(JSC):
(JSC::getCallableObject):
(JSC::JSObject::putOwnDataProperty):
(JSC::JSObject::putDirect):
(JSC::JSObject::putDirectWithoutTransition):

18:34 Changeset [120896] by hayato@chromium.org
  • 8 edits
    2 adds in trunk

Source/WebCore: [Shadow][Editing] Deleting character in distributed element caused a crash.
https://bugs.webkit.org/show_bug.cgi?id=88484

Reviewed by Ryosuke Niwa.

If we mutate nodes which are children of a shadow host, it causes
ElementShadow::invalidateDistribution(). As a result, shadow host
is detached (and lazyAttached()) and its renderer is gone. That
causes assertion error since isEditablePosition() assumes
anchorNode's style was correctly calculated.

This patch makes isEditablePosition() call
document->updateLayoutIgnorePendingStylesheets() so that it does
not return a bogus result.

There is an exceptional caller of isEditablePosition,
RenderBlock::paintCaret(), from where we can not call
updateLayout() in isEditablePosition because it hits assertion,
ASSERT(!isPainting). So I've added the third parameter to
isEditablePosition to control updating the style.

Test: edition/shadow/delete-characters-in-distributed-node.html

  • editing/FrameSelection.h:

(WebCore::FrameSelection::rendererIsEditable):

  • editing/VisibleSelection.cpp:

(WebCore::VisibleSelection::rendererIsEditable):
(WebCore):

  • editing/VisibleSelection.h:

(VisibleSelection):

  • editing/htmlediting.cpp:

(WebCore::isEditablePosition):

  • editing/htmlediting.h:

(WebCore):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::paintCaret):

LayoutTests: [Shadow][Editing] Deleting character in distributed element caused a crash
https://bugs.webkit.org/show_bug.cgi?id=88484

Reviewed by Ryosuke Niwa.

  • editing/shadow/delete-characters-in-distributed-node-crash-expected.txt: Added.
  • editing/shadow/delete-characters-in-distributed-node-crash.html: Added.
18:31 Changeset [120895] by tkent@chromium.org
  • 8 edits in trunk

Unmodified form control value are overwritten by another form
control value with the same name after navigating and going back
https://bugs.webkit.org/show_bug.cgi?id=89409

Reviewed by Hajime Morita.

Source/WebCore:

Detail of the bug:
If a page had multiple form controls of which names and types were
identical like the following:

<input type=text name=name1 id=input1>
<input type=text name=name1 id=input2>

and a user updated the value of the second control, then went to
another page and went back to the page again, we restored the updated
value to the first element, and didn't update the second element.

We didn't save unmodified control state, and the form state data
had no ways to represent "this control should be skipped".

How to resovle the bug:
We need to represent "this control should be skipped" in the
seriazlied form state vector.

  • A serialized control state had three items:

name, type, value.

Now we change it to:

name, type, flag, optional value

  • It is definitely incompatible with serizlized state produced by

older WebCore. So, we need to add the signature string to
represent the version of serialized state format.

  • Because the state for a form control is variable-length and we

can't deserialize it in reverse-order, we change the on-memory
representation from Vector<> to Deque<>.

Test: fast/forms/state-restore-to-non-edited-controls.html

  • html/FormController.cpp:

(WebCore::FormControlState::serializeTo):
Added. Serialize a state for a form control to a string vector.
(WebCore::FormControlState::deserialize):
Added. Produce a FormControlState object from the specified string vector.
It can produce a FromControlState of the failure type.
(WebCore::formStateSignature): The signature string of the serialized state.
(WebCore::FormController::formElementsState):

  • Capacity: The size of seirlized data for one form control is typically 4. +1 for the signature.
  • We need to store a FormControlState with no values.

(WebCore::FormController::setStateForNewFormElements):

  • We can't iterate over the stateVector in reverse order any more because serialized control state is variable-length.
  • We put FormControlState objects to HashMap instead of String objects.

(WebCore::FormController::takeStateForFormElement):

Updated for Deque<>.

  • html/FormController.h:

(FormControlState): Declare deserialize() and serializeTo().
(WebCore::FormControlState::isFailure): Added.
(WebCore::FormControlState::FormControlState):
Added to create a FormControlState with failure type.
(FormController):
Change the value type of m_stateForNewFormElements from Vector<String>
to Deque<FormControlState>.

LayoutTests:

  • fast/forms/resources/state-restore-broken-state-2.html:

Take care of the signature string at the beginning of the array.

  • fast/forms/state-restore-broken-state-expected.txt:

Updated for the serialized format change.

  • fast/forms/state-restore-to-non-edited-controls-expected.txt:
  • fast/forms/state-restore-to-non-edited-controls.html:

Add a test for a case of duplicated names.

18:29 Changeset [120894] by abarth@webkit.org
  • 4 edits
    2 adds
    1 delete in trunk/LayoutTests

Unskip fast/hidpi/device-scale-factor-paint.html
https://bugs.webkit.org/show_bug.cgi?id=89618

Reviewed by Beth Dakin.

Now that this test doesn't cause WebKit2 to crash, we can unskip it.

  • fast/hidpi/device-scale-factor-paint-expected.html: Removed.
    • Previously, this test was a reftest, but the reference also tried to set the device scale factor, which seems problematic. This patch converts the test to a normal image test. There aren't any scrollbars or text, so many platforms should be able to use the same expected PNG file.
  • fast/hidpi/device-scale-factor-paint.html:
    • Wrap the call to notifyDone in a thunk because it doesn't work otherwise.
  • platform/mac/Skipped:
  • platform/mac/fast/hidpi/device-scale-factor-paint-expected.png: Added.
  • platform/mac/fast/hidpi/device-scale-factor-paint-expected.txt: Added.
  • platform/wk2/Skipped:
18:13 Changeset [120893] by achicu@adobe.com
  • 11 edits
    2 moves in trunk/Source/WebCore

[CSS Shaders] Rename CustomFilterShader class name to CustomFilterCompiledProgram
https://bugs.webkit.org/show_bug.cgi?id=89578

Reviewed by Dean Jackson.

I've renamed CustomFilterShader to CustomFilterCompiledProgram to make it obvious that it is the result of
calling CustomFilterProgram::compileProgramWithContext.

No new tests, just renamed an existing class.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • platform/graphics/filters/CustomFilterCompiledProgram.cpp: Renamed from Source/WebCore/platform/graphics/filters/CustomFilterShader.cpp.

(WebCore):
(WebCore::CustomFilterCompiledProgram::defaultVertexShaderString):
(WebCore::CustomFilterCompiledProgram::defaultFragmentShaderString):
(WebCore::CustomFilterCompiledProgram::CustomFilterCompiledProgram):
(WebCore::CustomFilterCompiledProgram::compileShader):
(WebCore::CustomFilterCompiledProgram::linkProgram):
(WebCore::CustomFilterCompiledProgram::initializeParameterLocations):
(WebCore::CustomFilterCompiledProgram::uniformLocationByName):
(WebCore::CustomFilterCompiledProgram::~CustomFilterCompiledProgram):

  • platform/graphics/filters/CustomFilterCompiledProgram.h: Renamed from Source/WebCore/platform/graphics/filters/CustomFilterShader.h.

(WebCore):

  • platform/graphics/filters/CustomFilterProgram.cpp:

(WebCore::CustomFilterProgram::compileProgramWithContext): Renamed method from createShaderWithContext to compileProgramWithContext.

  • platform/graphics/filters/CustomFilterProgram.h:

(WebCore):

  • platform/graphics/filters/FECustomFilter.cpp: Renamed m_shader to m_compiledProgram.

(WebCore::FECustomFilter::platformApplySoftware):
(WebCore::FECustomFilter::initializeContext):
(WebCore::FECustomFilter::bindProgramParameters):
(WebCore::FECustomFilter::bindProgramAndBuffers):

  • platform/graphics/filters/FECustomFilter.h:

(WebCore):
(FECustomFilter):

18:03 Changeset [120892] by pdr@google.com
  • 1 edit
    2 adds in trunk/PerformanceTests

Add a performance test for paths in SVG
https://bugs.webkit.org/show_bug.cgi?id=89547

Reviewed by Ryosuke Niwa.

This change adds the first performance test for SVG paths.
In the test we modify complex cubic paths in several ways, testing:
transformations, clipping, d attribute changes, stroke properties,
text on a path, and opacity.

Sample test results on my Linux desktop:

RESULT SVG: SvgCubics= 68.85 ms
median= 69.5 ms, stdev= 4.70398767005 ms, min= 56.0 ms, max= 75.0 ms

RESULT SVG: SvgCubics= 68.4 ms
median= 69.0 ms, stdev= 3.51283361405 ms, min= 59.0 ms, max= 74.0 ms

RESULT SVG: SvgCubics= 66.95 ms
median= 67.0 ms, stdev= 3.4420197559 ms, min= 59.0 ms, max= 74.0 ms

RESULT SVG: SvgCubics= 70.2 ms
median= 71.5 ms, stdev= 3.23419232576 ms, min= 63.0 ms, max= 74.0 ms

  • SVG: Added.
  • SVG/SvgCubics.html: Added.
17:53 Changeset [120891] by caseq@chromium.org
  • 4 edits in trunk/Source/WebCore

Web Inspector: reduce timeline refresh rate
https://bugs.webkit.org/show_bug.cgi?id=89548

Reviewed by Pavel Feldman.

Minimize resource contention with the inspected page during refresh:

  • reduce refresh for both overview and main panes to 300ms
  • automatically limit window size to approximately one pageful of events in the lower pane
  • do not refresh lower pane for events that are outside of the window
  • inspector/front-end/TimelineOverviewPane.js:

(WebInspector.TimelineOverviewPane.prototype._update):
(WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
(WebInspector.TimelineOverviewPane.prototype.setWindowTimes): Set overview window by times.
(WebInspector.TimelineOverviewPane.prototype._updateWindow):
(WebInspector.TimelineOverviewPane.prototype._scheduleRefresh): Refresh once in 300ms (insted of once in 100ms).
(WebInspector.TimelineOverviewWindow.prototype._setWindow):

  • inspector/front-end/TimelinePanel.js:

(WebInspector.TimelinePanel.prototype._onTimelineEventRecorded): Do not refresh if the new record is outside of window.
(WebInspector.TimelinePanel.prototype._innerAddRecordToTimeline):
(WebInspector.TimelinePanel.prototype._resetPanel):
(WebInspector.TimelinePanel.prototype._scheduleRefresh): Refresh rate: 100ms -> 300ms.
(WebInspector.TimelinePanel.prototype._refreshRecords): Automatically set overview window.

  • inspector/front-end/TimelinePresentationModel.js: Expose filterRecords

(WebInspector.TimelinePresentationModel.prototype.filteredRecords):
(WebInspector.TimelinePresentationModel.prototype.filterRecords):
(WebInspector.TimelinePresentationModel.prototype._innerFilterRecords):

17:43 Changeset [120890] by commit-queue@webkit.org
  • 24 edits
    3 adds in trunk/Source/WebKit2

[WK2] Color chooser API missing
https://bugs.webkit.org/show_bug.cgi?id=87495

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-06-20
Reviewed by Andreas Kling.

Added ColorChooser API to WebKit2. This API allows the
embedder to define a custom color picker for <input type="color">.

Only one ColorChooser can be active for a page at a time. Although
the implementation doesn't not assume a modal dialog, no other
color chooser will be created until the active one is closed.

Also added stubs for all platforms, so it wont break the build when
enabling color chooser, even though they don't have the backend
implemented yet.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • UIProcess/API/efl/PageClientImpl.cpp:

(WebKit):
(WebKit::PageClientImpl::createColorChooserProxy):

  • UIProcess/API/efl/PageClientImpl.h:

(PageClientImpl):

  • UIProcess/API/gtk/PageClientImpl.cpp:

(WebKit):
(WebKit::PageClientImpl::createColorChooserProxy):

  • UIProcess/API/gtk/PageClientImpl.h:

(PageClientImpl):

  • UIProcess/API/mac/PageClientImpl.h:

(PageClientImpl):

  • UIProcess/API/mac/PageClientImpl.mm:

(WebKit):
(WebKit::PageClientImpl::createColorChooserProxy):

  • UIProcess/PageClient.h:

(WebKit):
(PageClient):

  • UIProcess/WebColorChooserProxy.h: Added.

(WebCore):
(WebKit):
(WebColorChooserProxy):
(Client):
(WebKit::WebColorChooserProxy::Client::~Client):
(WebKit::WebColorChooserProxy::~WebColorChooserProxy):
(WebKit::WebColorChooserProxy::invalidate):
(WebKit::WebColorChooserProxy::WebColorChooserProxy):

  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::close):
(WebKit):
(WebKit::WebPageProxy::showColorChooser):
(WebKit::WebPageProxy::setColorChooserColor):
(WebKit::WebPageProxy::endColorChooser):
(WebKit::WebPageProxy::didChooseColor):
(WebKit::WebPageProxy::didEndColorChooser):
(WebKit::WebPageProxy::processDidCrash):

  • UIProcess/WebPageProxy.h:

(WebPageProxy):

  • UIProcess/WebPageProxy.messages.in:
  • UIProcess/qt/QtPageClient.cpp:

(WebKit):
(WebKit::QtPageClient::createColorChooserProxy):

  • UIProcess/qt/QtPageClient.h:

(QtPageClient):

  • UIProcess/win/WebView.cpp:

(WebKit):
(WebKit::WebView::createColorChooserProxy):

  • UIProcess/win/WebView.h:

(WebView):

  • WebKit2.xcodeproj/project.pbxproj:
  • WebProcess/WebCoreSupport/WebChromeClient.cpp:

(WebKit::WebChromeClient::createColorChooser):

  • WebProcess/WebCoreSupport/WebColorChooser.cpp: Added.

(WebKit):
(WebKit::WebColorChooser::WebColorChooser):
(WebKit::WebColorChooser::~WebColorChooser):
(WebKit::WebColorChooser::didChooseColor):
(WebKit::WebColorChooser::didEndChooser):
(WebKit::WebColorChooser::disconnectFromPage):
(WebKit::WebColorChooser::setSelectedColor):
(WebKit::WebColorChooser::endChooser):

  • WebProcess/WebCoreSupport/WebColorChooser.h: Added.

(WebCore):
(WebKit):
(WebColorChooser):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit::WebPage::WebPage):
(WebKit::WebPage::close):
(WebKit):
(WebKit::WebPage::setActiveColorChooser):
(WebKit::WebPage::didEndColorChooser):
(WebKit::WebPage::didChooseColor):

  • WebProcess/WebPage/WebPage.h:

(WebKit):
(WebPage):
(WebKit::WebPage::activeColorChooser):

  • WebProcess/WebPage/WebPage.messages.in:
  • win/WebKit2.vcproj:
17:43 Changeset [120889] by commit-queue@webkit.org
  • 4 edits in trunk/Source

[Chromium] Damage tracker is not used without partial swap, causing valid render passes to be removed
https://bugs.webkit.org/show_bug.cgi?id=89589

Patch by Zeev Lieber <zlieber@chromium.org> on 2012-06-20
Reviewed by Adrienne Walker.

Source/WebCore:

When not using partial swap, the CCDamageTracker was not used, and
its m_currentDamageRect was always empty. As a result,
CCLayerTreeHostImpl was thinking no content was changed and was
removing more textures than needed. Fixed this by turning on
CCDamageTracker usage even if not using partial swap, but
overwriting the rootScissorRect with viewport rect if required.

Added unit tests to exercise this scenario.

  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:

(WebCore::CCLayerTreeHostImpl::calculateRenderSurfaceLayerList):

Source/WebKit/chromium:

Added unit tests to check surface texture caching when partial
swap is not used.

  • tests/CCLayerTreeHostImplTest.cpp:
17:31 Changeset [120888] by jsbell@chromium.org
  • 17 edits in trunk

IndexedDB: Remove redundant IDBObjectStore.delete() overloads
https://bugs.webkit.org/show_bug.cgi?id=89587

Reviewed by Darin Fisher.

Source/WebCore:

The IDBObjectStore.delete(IDBKey) overload can delegate to the delete(IDBKeyRange)
overload. Also cleaned up redundant checks in related overloads.

Test: storage/indexeddb/deleted-objects.html

  • Modules/indexeddb/IDBCursorBackendImpl.cpp:

(WebCore::IDBCursorBackendImpl::deleteFunction): Call keyRange variant instead.

  • Modules/indexeddb/IDBIndex.cpp:

(WebCore::IDBIndex::get): Remove redundant deleted/invalid IDBKey checks.
(WebCore::IDBIndex::getKey): Remove redundant deleted/invalid IDBKey checks.

  • Modules/indexeddb/IDBKeyRange.cpp: Null IDBKeys are not acceptable; currently

not passed in by any callers.
(WebCore::IDBKeyRange::only):
(WebCore::IDBKeyRange::lowerBound):
(WebCore::IDBKeyRange::upperBound):
(WebCore::IDBKeyRange::bound):

  • Modules/indexeddb/IDBObjectStore.cpp:

(WebCore::IDBObjectStore::get): Was missing deleted check in IDBKeyRange overload.
Removed redundant checks in IDBKey overload.
(WebCore::IDBObjectStore::deleteFunction): Delegate to IDBKeyRange overload.

  • Modules/indexeddb/IDBObjectStoreBackendImpl.cpp: Remove IDBKey overload.
  • Modules/indexeddb/IDBObjectStoreBackendImpl.h: Remove IDBKey overload.

(IDBObjectStoreBackendImpl):

  • Modules/indexeddb/IDBObjectStoreBackendInterface.h: Remove IDBKey overload.

Source/WebKit/chromium:

  • public/WebIDBObjectStore.h: Add note to remove overload when Chromium is updated.

(WebIDBObjectStore):

  • src/IDBObjectStoreBackendProxy.cpp: Delete IDBKey overload.
  • src/IDBObjectStoreBackendProxy.h: Delete IDBKey overload.

(IDBObjectStoreBackendProxy):

  • src/WebIDBObjectStoreImpl.cpp: Delete IDBKey overload.
  • src/WebIDBObjectStoreImpl.h: Delete IDBKey overload.

(WebIDBObjectStoreImpl):

LayoutTests:

  • storage/indexeddb/deleted-objects-expected.txt:
  • storage/indexeddb/resources/deleted-objects.js: Test IDBKeyRange overloads.

(openDatabase.request.onsuccess.request.onsuccess):
(openDatabase.request.onsuccess):
(openDatabase):

17:10 Changeset [120887] by shinyak@chromium.org
  • 3 edits
    4 adds in trunk

[Shadow][Editing] Selection will break editing boundaries in Shadow DOM.
https://bugs.webkit.org/show_bug.cgi?id=89075

Reviewed by Antti Koivisto.

Source/WebCore:

At the shadow boundary, some styles (e.g. user-modify, text-decoration) cannot be inherited
from the shadow host. However, when style property cache is used, such styles are wrongly
inherited from the cache.

So this patch makes not to use cache for inehrited styles at the shadow boundary.

Tests: editing/shadow/breaking-editing-boundary-with-table.html

editing/shadow/contenteditable-propagation-at-shadow-boundary.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::collectMatchingRulesForList):

LayoutTests:

Test cases to confirm that (1) selection does not break editing boundary,
and (2) content-editable is not propagated from shadow host to shadow DOM.

Actually a patch for Bug 88514 contains a test for (2), but it is not enough.

  • editing/shadow/breaking-editing-boundary-with-table.html: Added.
  • editing/shadow/contenteditable-propagation-at-shadow-boundary.html: Added.
16:55 Changeset [120886] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

Functions on global objects should be specializable
https://bugs.webkit.org/show_bug.cgi?id=89615

Reviewed by Oliver Hunt.

I tested to see if this brought back the bug in https://bugs.webkit.org/show_bug.cgi?id=33343,
and it didn't. Bug 33343 was the reason why we disabled global object function specialization
to begin with. So I'm guessing this is safe.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

16:49 Changeset [120885] by commit-queue@webkit.org
  • 15 edits in trunk/Source

Source/WebCore: Moving cookieEnabled/setCookieEnabled from Page to Settings.
https://bugs.webkit.org/show_bug.cgi?id=89545

Patch by Garret Kelly <gdk@chromium.org> on 2012-06-20
Reviewed by Adam Barth.

  • dom/Document.cpp:

(WebCore::Document::cookie):
(WebCore::Document::setCookie):

  • page/Navigator.cpp:

(WebCore::Navigator::cookieEnabled):

  • page/Page.h:

(Page):

  • page/Settings.cpp:

(WebCore::Settings::Settings):

  • page/Settings.h:

(WebCore::Settings::setCookieEnabled):
(WebCore::Settings::cookieEnabled):
(Settings):

  • platform/graphics/win/MediaPlayerPrivateQuickTimeVisualContext.cpp:

(WebCore::MediaPlayerPrivateQuickTimeVisualContext::setUpCookiesForQuickTime):

Source/WebKit/chromium: Moving cookieEnabled/setCookieEnabled from Page to Settings, and
exposing through WebSettings.
https://bugs.webkit.org/show_bug.cgi?id=89545

Patch by Garret Kelly <gdk@chromium.org> on 2012-06-20
Reviewed by Adam Barth.

  • public/WebSettings.h:
  • src/WebSettingsImpl.cpp:

(WebKit::WebSettingsImpl::setCookieEnabled):

  • src/WebSettingsImpl.h:

(WebSettingsImpl):

Source/WebKit/mac: Moving cookieEnabled/setCookieEnabled from Page to Settings.
https://bugs.webkit.org/show_bug.cgi?id=89545

Patch by Garret Kelly <gdk@chromium.org> on 2012-06-20
Reviewed by Adam Barth.

  • WebView/WebView.mm:

(-[WebView _cookieEnabled]):
(-[WebView _setCookieEnabled:]):

Source/WebKit/win: Moving cookieEnabled/setCookieEnabled from Page to Settings.
https://bugs.webkit.org/show_bug.cgi?id=89545

Patch by Garret Kelly <gdk@chromium.org> on 2012-06-20
Reviewed by Adam Barth.

  • WebView.cpp:

(WebView::setCookieEnabled):
(WebView::cookieEnabled):

16:45 Changeset [120884] by lforschler@apple.com
  • 4 edits in branches/safari-536-branch/Source

Versioning.

16:37 Changeset [120883] by abarth@webkit.org
  • 6 edits in trunk

internals.settings.setDeviceScaleFactor doesn't work for WebKit2 and must be removed
https://bugs.webkit.org/show_bug.cgi?id=89274

Reviewed by James Robinson.

Source/WebCore:

Using this window.internals API causes the apple-mac port to ASSERT in
WebKit2 because WebKit2 keeps a copy of this state in the UI process.
When a test uses this internals API, the WebCore state gets out of sync
with the state in the UI process.

Tests should use setBackingScaleFactor instead.

  • testing/InternalSettings.cpp:

(WebCore):

  • testing/InternalSettings.h:

(InternalSettings):

  • testing/InternalSettings.idl:

LayoutTests:

  • fast/hidpi/device-scale-factor-paint.html:
16:36 Changeset [120882] by caseq@chromium.org
  • 3 edits in trunk/Source/WebCore

Web Inspector: persist timeline panel overview mode
https://bugs.webkit.org/show_bug.cgi?id=88711

Reviewed by Pavel Feldman.

  • replace all internal methods of switching to a new mode of TimelineOverviewPane with setMode();
  • make current mode a persistent setting;
  • inspector/front-end/TimelineOverviewPane.js:

(WebInspector.TimelineOverviewPane):
(WebInspector.TimelineOverviewPane.prototype.setMode):

  • inspector/front-end/TimelinePanel.js:

(WebInspector.TimelinePanel):

16:31 Changeset [120881] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/chromium

Perform hit-test from correct frame in isRectTopmost()
https://bugs.webkit.org/show_bug.cgi?id=89492

Patch by Raymes Khoury <raymes@chromium.org> on 2012-06-20
Reviewed by Levi Weintraub.

Hit-testing was being performed from the main frame, which gave the
incorrect result if the plugin was in a different frame.

  • src/WebPluginContainerImpl.cpp:

(WebKit::WebPluginContainerImpl::isRectTopmost):

16:17 Changeset [120880] by lforschler@apple.com
  • 1 copy in tags/Safari-536.21

New Tag.

16:05 Changeset [120879] by beidson@apple.com
  • 8 edits in trunk/Source

<rdar://problem/11653784> and https://bugs.webkit.org/show_bug.cgi?id=89590
showModalDialog message handling is flaky in WebKit2

Because RunLoop::performWork() swaps the function queue to a temporary Vector before calling
the functions an inner run-loop - such as we see with running a modal dialog - does not have
a change to handle any of the functions that were queued after the WebPageProxy::RunModal message.

By servicing the functions in the queue one at a time we can give the RunLoop a chance to pick up
where it left off if RunLoop::performWork is re-entered.

To guarantee RunLoop::performWork is re-entered to handle those functions we also need to signal
its source before entering the modal run loop so our RunLoop is woken up.

Reviewed by Darin Adler.

Source/WebCore:

  • WebCore.exp.in:
  • platform/RunLoop.cpp:

(WebCore::RunLoop::performWork): Take the first function off the queue one at a time so subsequent

functions remain in the queue and can be handled by an inner modal run loop.

  • platform/RunLoop.h:

(RunLoop): Change the function queue to be a Deque to efficiently support "takeFirst"

Source/WebKit2:

  • Platform/CoreIPC/Connection.cpp:

(CoreIPC::Connection::wakeUpRunLoop): Added so the WebPageProxy can signal the runloop to be woken up

before it enters the modal dialog run loop.

  • Platform/CoreIPC/Connection.h:
  • UIProcess/WebPageProxy.cpp:

(WebKit::WebPageProxy::runModal): Call wakeUpRunLoop() before entering the modal dialog run loop.

16:01 Changeset [120878] by mrowe@apple.com
  • 2 edits in trunk/Tools

<http://webkit.org/b/89606> Teach run-safari and debug-safari to work with a Safari.app that has entitlements

Reviewed by Dan Bernstein.

  • Scripts/webkitdirs.pm:

(executableHasEntitlements):
(safariPathFromSafariBundle):

15:57 Changeset [120877] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/chromium

[chromium] Support mobile device rotation resizing
https://bugs.webkit.org/show_bug.cgi?id=86819

Patch by Alexandre Elias <aelias@google.com> on 2012-06-20
Reviewed by Adam Barth.

Resizes on a mobile device are caused either by rotation or
on-screen-keyboard bringup, and need different treatment to remain
naturally laid out, scaled and scrolled without disorienting the user.

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::resize):

15:49 Changeset [120876] by commit-queue@webkit.org
  • 3 edits
    1 add in trunk

Account for device scale factor when creating image for dragging.
https://bugs.webkit.org/show_bug.cgi?id=89489

Patch by Varun Jain <varunjain@chromium.org> on 2012-06-20
Reviewed by Adam Barth.

.:

  • ManualTests/chromium/drag-image-accounts-for-device-scale.html: Added.

Source/WebCore:

Manual Test: ManualTests/chromium/drag-image-accounts-for-device-scale.html

  • page/Frame.cpp:

(WebCore::Frame::nodeImage):
(WebCore::Frame::dragImageForSelection):

15:36 Changeset [120875] by mitz@apple.com
  • 1 edit in trunk/Source/WebCore/ChangeLog

Fixed typos in the change log.

15:35 Changeset [120874] by zhajiang@rim.com
  • 5 edits in trunk/Source

Add a != operator to ViewportArguments
https://bugs.webkit.org/show_bug.cgi?id=87505

Reviewed by Antonio Gomes.
Patch by Jacky Jiang <zhajiang@rim.com>

Source/WebCore:

Add a != operator to ViewportArguments for convenience.

  • dom/ViewportArguments.h:

(ViewportArguments):
(WebCore::ViewportArguments::operator!=):

Source/WebKit/blackberry:

Use != operator of ViewportArguments.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::setLoadState):
(BlackBerry::WebKit::WebPagePrivate::setViewportSize):

  • Api/WebViewportArguments.cpp:

(BlackBerry::WebKit::WebViewportArguments::operator!=):

15:25 Changeset [120873] by ossy@webkit.org
  • 2 edits in trunk/LayoutTests

[Qt] Unreviewed gardening, skip new failing tests.

  • platform/qt/Skipped:
15:22 Changeset [120872] by jchaffraix@webkit.org
  • 1 edit
    14 copies in branches/chromium/1180

Merge 120859 - REGRESSION(r113885): Margin not properly applied to elements with align=center
https://bugs.webkit.org/show_bug.cgi?id=89515

Reviewed by Levi Weintraub.

Source/WebCore:

Tests: fast/block/negative-margin-start-positive-margin-end.html

fast/block/negative-start-margin-align-center.html
fast/block/positive-margin-block-child-align-center-rtl.html
fast/block/positive-margin-block-child-align-center.html
fast/block/positive-margin-start-align-center.html
fast/block/positive-margin-start-negative-margin-end-align-center.html
fast/table/table-cell-negative-start-margin-align-center.html

r113885 changed the code-path for elements with auto width to call computeInlineDirectionMargins.
However this uncovered an existing bug in the function when dealing with align="center" (text-align: -webkit-center)
where we would ignore the margin. This goes against what other browsers are doing and our previous behavior.

Note that align="left" and "right" are likely impacted too and will be investigated / fixed in follow-up changes.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeInlineDirectionMargins):
To match other browsers' behavior, changed the function to include margin in our computations.

LayoutTests:

  • fast/block/negative-margin-start-positive-margin-end-expected.html: Added.
  • fast/block/negative-margin-start-positive-margin-end.html: Added.
  • fast/block/negative-start-margin-align-center-expected.html: Added.
  • fast/block/negative-start-margin-align-center.html: Added.
  • fast/block/positive-margin-block-child-align-center-expected.html: Added.
  • fast/block/positive-margin-block-child-align-center.html: Added.
  • fast/block/positive-margin-start-align-center-expected.html: Added.
  • fast/block/positive-margin-start-align-center.html: Added.
  • fast/block/positive-margin-start-negative-margin-end-align-center-expected.html: Added.
  • fast/block/positive-margin-start-negative-margin-end-align-center.html: Added.

Those checks the combination of margin start / end both positive and negative.

  • fast/block/positive-margin-block-child-align-center-rtl-expected.html: Added.
  • fast/block/positive-margin-block-child-align-center-rtl.html: Added.

One ltr test as I didn't find any.

  • fast/table/table-cell-negative-start-margin-align-center-expected.html: Added.
  • fast/table/table-cell-negative-start-margin-align-center.html: Added.

This test is very similar to the one above but involves a table.

TBR=jchaffraix@webkit.org
Review URL: https://chromiumcodereview.appspot.com/10578056

15:17 Changeset [120871] by jchaffraix@webkit.org
  • 1 edit
    14 copies in branches/chromium/1132

Merge 120859 - REGRESSION(r113885): Margin not properly applied to elements with align=center
https://bugs.webkit.org/show_bug.cgi?id=89515

Reviewed by Levi Weintraub.

Source/WebCore:

Tests: fast/block/negative-margin-start-positive-margin-end.html

fast/block/negative-start-margin-align-center.html
fast/block/positive-margin-block-child-align-center-rtl.html
fast/block/positive-margin-block-child-align-center.html
fast/block/positive-margin-start-align-center.html
fast/block/positive-margin-start-negative-margin-end-align-center.html
fast/table/table-cell-negative-start-margin-align-center.html

r113885 changed the code-path for elements with auto width to call computeInlineDirectionMargins.
However this uncovered an existing bug in the function when dealing with align="center" (text-align: -webkit-center)
where we would ignore the margin. This goes against what other browsers are doing and our previous behavior.

Note that align="left" and "right" are likely impacted too and will be investigated / fixed in follow-up changes.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeInlineDirectionMargins):
To match other browsers' behavior, changed the function to include margin in our computations.

LayoutTests:

  • fast/block/negative-margin-start-positive-margin-end-expected.html: Added.
  • fast/block/negative-margin-start-positive-margin-end.html: Added.
  • fast/block/negative-start-margin-align-center-expected.html: Added.
  • fast/block/negative-start-margin-align-center.html: Added.
  • fast/block/positive-margin-block-child-align-center-expected.html: Added.
  • fast/block/positive-margin-block-child-align-center.html: Added.
  • fast/block/positive-margin-start-align-center-expected.html: Added.
  • fast/block/positive-margin-start-align-center.html: Added.
  • fast/block/positive-margin-start-negative-margin-end-align-center-expected.html: Added.
  • fast/block/positive-margin-start-negative-margin-end-align-center.html: Added.

Those checks the combination of margin start / end both positive and negative.

  • fast/block/positive-margin-block-child-align-center-rtl-expected.html: Added.
  • fast/block/positive-margin-block-child-align-center-rtl.html: Added.

One ltr test as I didn't find any.

  • fast/table/table-cell-negative-start-margin-align-center-expected.html: Added.
  • fast/table/table-cell-negative-start-margin-align-center.html: Added.

This test is very similar to the one above but involves a table.

TBR=jchaffraix@webkit.org
Review URL: https://chromiumcodereview.appspot.com/10536229

15:15 Changeset [120870] by tony@chromium.org
  • 8 edits
    21 deletes in trunk/LayoutTests

Computed style tests are a maintenance burden on the project
https://bugs.webkit.org/show_bug.cgi?id=87991

Reviewed by Eric Seidel.

Convert computed-style.html, computed-style-without-renderer.html and getComputedStyle-basic.xhtml
to use a whitelist of properties rather than a blacklist. The whitelist includes all properties
that are supported based on the checked in results so all ports can share the same values. Adding
new properties won't cause these tests to be rebaselined.

  • fast/css/getComputedStyle/computed-style-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer-expected.txt:
  • fast/css/getComputedStyle/computed-style-without-renderer.html: Remove indenting and use a fixed

width for the middle div so we don't get fractional pixel values for ports with fractional pixel
values enabled.

  • fast/css/getComputedStyle/computed-style.html:
  • fast/css/getComputedStyle/resources/property-names.js: Whitelist of common CSS properties.
  • platform/chromium-linux-x86/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/chromium-linux/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/chromium-mac-leopard/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
  • platform/chromium-mac-leopard/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/chromium-mac-snowleopard/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/chromium-mac/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
  • platform/chromium-mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
  • platform/chromium-mac/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/chromium-win-vista/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/chromium-win-xp/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/chromium-win/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
  • platform/chromium-win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
  • platform/chromium-win/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/gtk/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
  • platform/gtk/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/mac/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
  • platform/mac/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
  • platform/mac/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/qt/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
  • platform/qt/svg/css/getComputedStyle-basic-expected.png: Removed.
  • platform/qt/svg/css/getComputedStyle-basic-expected.txt: Removed.
  • platform/win/fast/css/getComputedStyle/computed-style-expected.txt: Removed.
  • platform/win/fast/css/getComputedStyle/computed-style-without-renderer-expected.txt: Removed.
  • svg/css/getComputedStyle-basic-expected.txt:
  • svg/css/getComputedStyle-basic.xhtml:
15:08 Changeset [120869] by rniwa@webkit.org
  • 2 edits in trunk/Source/WebCore

Let XCode have its own way.

  • WebCore.xcodeproj/project.pbxproj:
15:05 Changeset [120868] by rniwa@webkit.org
  • 6 edits in trunk/Source/WebCore

Move m_listsInvalidatedAtDocument from NodeListsNodeData to Document
https://bugs.webkit.org/show_bug.cgi?id=89603

Reviewed by Andreas Kling.

Moved the variable. m_listsInvalidatedAtDocument is never used in non-Document nodes
so it was just wasting memory space.

  • dom/Document.cpp:

(WebCore::Document::registerDynamicSubtreeNodeList):
(WebCore::Document::unregisterDynamicSubtreeNodeList):
(WebCore):
(WebCore::Document::clearNodeListCaches):

  • dom/Document.h:

(Document):

  • dom/DynamicNodeList.h:

(DynamicSubtreeNodeList):

  • dom/Node.cpp:

(WebCore::Node::invalidateNodeListsCacheAfterAttributeChanged):
(WebCore::Node::invalidateNodeListsCacheAfterChildrenChanged):
(WebCore):
(WebCore::NodeListsNodeData::invalidateCachesThatDependOnAttributes): RadioNodeList
is invalidated at document level. No need to invalidate it again here.
(WebCore::NodeListsNodeData::isEmpty):

  • dom/NodeRareData.h:

(NodeListsNodeData):

15:02 Changeset [120867] by commit-queue@webkit.org
  • 3 edits in trunk/Tools

Unreviewed, rolling out r120821.
http://trac.webkit.org/changeset/120821
https://bugs.webkit.org/show_bug.cgi?id=89605

It made duplicated reviewer entries (Requested by Ossy on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-20

  • Scripts/webkitpy/common/checkout/changelog.py:

(ChangeLog.set_reviewer):

  • Scripts/webkitpy/common/checkout/changelog_unittest.py:

(test_set_reviewer):
(test_set_short_description_and_bug_url):

14:58 Changeset [120866] by commit-queue@webkit.org
  • 44 edits
    3 copies in trunk/Source/WebCore

Unreviewed, rolling out r120854.
http://trac.webkit.org/changeset/120854
https://bugs.webkit.org/show_bug.cgi?id=89604

Broke Chromium WebKit Linux (dbg) (Requested by arv on
#webkit).

Patch by Sheriff Bot <webkit.review.bot@gmail.com> on 2012-06-20

  • Target.pri:
  • UseV8.cmake:
  • WebCore.gypi:
  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/CodeGeneratorV8.pm:

(GenerateHeader):
(GenerateNamedConstructorCallback):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/V8/V8Float64Array.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8Float64Array.h:

(V8Float64Array):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.h:

(V8TestActiveDOMObject):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.h:

(V8TestCustomNamedGetter):

  • bindings/scripts/test/V8/V8TestEventConstructor.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestEventConstructor.h:

(V8TestEventConstructor):

  • bindings/scripts/test/V8/V8TestEventTarget.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestEventTarget.h:

(V8TestEventTarget):

  • bindings/scripts/test/V8/V8TestException.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestException.h:

(V8TestException):

  • bindings/scripts/test/V8/V8TestInterface.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestInterface.h:

(V8TestInterface):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.h:

(V8TestMediaQueryListListener):

  • bindings/scripts/test/V8/V8TestNamedConstructor.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestNamedConstructor.h:

(V8TestNamedConstructor):

  • bindings/scripts/test/V8/V8TestNode.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestNode.h:

(V8TestNode):

  • bindings/scripts/test/V8/V8TestObj.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestObj.h:

(V8TestObj):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:

(V8TestSerializedScriptValueInterface):

  • bindings/v8/NPV8Object.cpp:

(WebCore::npObjectTypeInfo):

  • bindings/v8/V8GCController.cpp:

(WebCore::GrouperVisitor::visitDOMWrapper):

  • bindings/v8/WrapperTypeInfo.h:

(WebCore):
(WrapperTypeInfo):

  • bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.

(WebCore):
(WebCore::toV8):

  • bindings/v8/custom/V8DOMStringMapCustom.cpp:

(WebCore::toV8):
(WebCore):

  • bindings/v8/custom/V8DOMTokenListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.

(WebCore):
(WebCore::toV8):

  • bindings/v8/custom/V8HTMLImageElementConstructor.cpp:

(WebCore):

  • bindings/v8/custom/V8NamedNodeMapCustom.cpp:

(WebCore::toV8):
(WebCore):

  • bindings/v8/custom/V8StyleSheetCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8TextTrackListCustom.cpp: Copied from Source/WebCore/bindings/v8/custom/V8StyleSheetCustom.cpp.

(WebCore):
(WebCore::toV8):

  • css/CSSStyleSheet.idl:
  • css/StyleSheet.idl:
  • dom/DOMStringMap.idl:
  • dom/NamedNodeMap.idl:
  • html/DOMTokenList.idl:
  • html/track/TextTrackList.idl:
14:30 Changeset [120865] by dpranke@chromium.org
  • 8 edits in trunk/Tools

nrwt outputs empty files for wdiff output if wdiff is not installed
https://bugs.webkit.org/show_bug.cgi?id=88709

Reviewed by Tony Chang.

Reviewed by Tony Chang.

Don't write -wdiff or -pretty.html files if wdiff or prettypatch
aren't available, and clean up the handling for them in the port
code.

  • Scripts/webkitpy/run_webkit_tests_integrationtest.py:

(MainTest.test_output_diffs):

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(TestResultWriter.create_text_diff_and_write_result):

  • Scripts/webkitpy/layout_tests/port/base.py:

(Port.check_pretty_patch):
(Port.check_wdiff):
(Port._wdiff_missing_message):

  • Scripts/webkitpy/layout_tests/port/chromium_linux.py:

(ChromiumLinuxPort.check_build):
(ChromiumLinuxPort._wdiff_missing_message):

  • Scripts/webkitpy/layout_tests/port/chromium_mac.py:

(ChromiumMacPort.check_build):
(ChromiumMacPort):
(ChromiumMacPort._wdiff_missing_message):

  • Scripts/webkitpy/layout_tests/port/chromium_mac_unittest.py:

(ChromiumMacPortTest):

14:25 Changeset [120864] by dpranke@chromium.org
  • 3 edits in trunk/Tools

nrwt: fix unit tests for ensuring svn revision is correct
https://bugs.webkit.org/show_bug.cgi?id=89498

Reviewed by Eric Seidel.

Reviewed by Eric Seidel.

Fix the unit tests for testing that we are embedding the SVN
revision in the results json for NRWT properly; this was broken
in r120646 but because the MockHost worked differently than the
real one (by always initializing the MockSCM object) we didn't
notice. Unfortunately, just changing the default breaks all
sorts of unit tests ...

  • Scripts/webkitpy/common/host_mock.py:

(MockHost.init):
(MockHost._initialize_scm):

  • Scripts/webkitpy/layout_tests/controllers/manager_unittest.py:

(ResultSummaryTest.test_no_svn_revision):
(ResultSummaryTest.test_svn_revision):

14:22 Changeset [120863] by dpranke@chromium.org
  • 5 edits in trunk/Tools

new-run-webkit-tests appends "/Debug" or "/Release" to $WEBKITOUTPUTDIR
https://bugs.webkit.org/show_bug.cgi?id=69360

Reviewed by Eric Seidel.

Reviewed by Eric Seidel.

Propagate the 'port_implementation' part of the platform (i.e.,
gtk,qt,chromium) to webkit-build-directory so that we can pick
up the gtk-specific handling of WEBKITOUTPUTDIR ...

I didn't write any additional tests for this; testing it
properly is an integration test between the python code and the
perl code, which I verified by hand.

  • Scripts/webkitpy/layout_tests/port/base.py:

(Port.init):

  • Scripts/webkitpy/layout_tests/port/config.py:

(Config.init):
(Config.build_directory):

  • Scripts/webkitpy/layout_tests/port/config_mock.py:

(MockConfig.init):

  • Scripts/webkitpy/layout_tests/port/config_unittest.py:

(ConfigTest.test_build_directory_passes_port_implementation):

14:20 Changeset [120862] by inferno@chromium.org
  • 5 edits
    2 adds in trunk

Crash on accessing a removed renderer from percent height descendant map.
https://bugs.webkit.org/show_bug.cgi?id=88017

Reviewed by Eric Seidel.

Source/WebCore:

Test: fast/block/percent-height-descendant-not-removed-crash2.html

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::hasPercentHeightContainerMap): helper to tell
if we have a height container map.
(WebCore):
(WebCore::RenderBlock::hasPercentHeightDescendant): change from a debug
only function to a regular function for use. no need to null check
for a percent height container map in this function.
(WebCore::RenderBlock::clearPercentHeightDescendantsFrom): helper to
clear all percent height descendants under us.
(WebCore::RenderBlock::removePercentHeightDescendantIfNeeded): helper to
clear the box if it exists in the percent height descendant map.

  • rendering/RenderBlock.h:

(RenderBlock):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::willBeDestroyed): remove the assert and change the
percent height detection check to use removePercentHeightDescendantIfNeeded.
We shouldn't rely on logicalHeight().isPercent() as it can change when our
writing mode changes. Instead, just query the map directly to see if we exist.
(WebCore::RenderBox::styleDidChange): when our writing mode changes from
horizontal to vertical or vice versa, we clear all our descendants from
the percent height descendant map. Cache the value of isHorizontalWritingMode()
before it changes in styleDidChange and compare it with the new value
(can't use oldStyle->isHorizontalWritingMode() since it can be inherited
and already updated).

LayoutTests:

  • fast/block/percent-height-descendant-not-removed-crash2-expected.txt: Added.
  • fast/block/percent-height-descendant-not-removed-crash2.html: Added.
14:15 Changeset [120861] by commit-queue@webkit.org
  • 4 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Add an API to immediately enable cross-site XHR
https://bugs.webkit.org/show_bug.cgi?id=89594

Internally Reviewed by Yong Li.
Patch by Christopher Hutten-Czapski <chutten@rim.com> on 2012-06-20
Reviewed by Rob Buis.

There is no API to disable it as clients may rely on legacy behaviour
of not disabling until the next frame load.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::enableCrossSiteXHRRecursively):
(WebKit):
(BlackBerry::WebKit::WebPagePrivate::enableCrossSiteXHR):
(BlackBerry::WebKit::WebPage::enableCrossSiteXHR):

  • Api/WebPage.h:
  • Api/WebPage_p.h:

(WebPagePrivate):

14:07 Changeset [120860] by fpizlo@apple.com
  • 2 edits in trunk/Source/JavaScriptCore

build-webkit failure due to illegal 32-bit integer constants in code
generated by offlineasm
https://bugs.webkit.org/show_bug.cgi?id=89347

Reviewed by Geoffrey Garen.

The offending constants are the magic numbers used by offlineasm to find
offsets in the generated machine code. Added code to turn them into what
the C++ compiler will believe to be valid 32-bit values.

  • offlineasm/offsets.rb:
14:04 Changeset [120859] by jchaffraix@webkit.org
  • 3 edits
    14 adds in trunk

REGRESSION(r113885): Margin not properly applied to elements with align=center
https://bugs.webkit.org/show_bug.cgi?id=89515

Reviewed by Levi Weintraub.

Reviewed by Levi Weintraub.

Source/WebCore:

Tests: fast/block/negative-margin-start-positive-margin-end.html

fast/block/negative-start-margin-align-center.html
fast/block/positive-margin-block-child-align-center-rtl.html
fast/block/positive-margin-block-child-align-center.html
fast/block/positive-margin-start-align-center.html
fast/block/positive-margin-start-negative-margin-end-align-center.html
fast/table/table-cell-negative-start-margin-align-center.html

r113885 changed the code-path for elements with auto width to call computeInlineDirectionMargins.
However this uncovered an existing bug in the function when dealing with align="center" (text-align: -webkit-center)
where we would ignore the margin. This goes against what other browsers are doing and our previous behavior.

Note that align="left" and "right" are likely impacted too and will be investigated / fixed in follow-up changes.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeInlineDirectionMargins):
To match other browsers' behavior, changed the function to include margin in our computations.

LayoutTests:

  • fast/block/negative-margin-start-positive-margin-end-expected.html: Added.
  • fast/block/negative-margin-start-positive-margin-end.html: Added.
  • fast/block/negative-start-margin-align-center-expected.html: Added.
  • fast/block/negative-start-margin-align-center.html: Added.
  • fast/block/positive-margin-block-child-align-center-expected.html: Added.
  • fast/block/positive-margin-block-child-align-center.html: Added.
  • fast/block/positive-margin-start-align-center-expected.html: Added.
  • fast/block/positive-margin-start-align-center.html: Added.
  • fast/block/positive-margin-start-negative-margin-end-align-center-expected.html: Added.
  • fast/block/positive-margin-start-negative-margin-end-align-center.html: Added.

Those checks the combination of margin start / end both positive and negative.

  • fast/block/positive-margin-block-child-align-center-rtl-expected.html: Added.
  • fast/block/positive-margin-block-child-align-center-rtl.html: Added.

One ltr test as I didn't find any.

  • fast/table/table-cell-negative-start-margin-align-center-expected.html: Added.
  • fast/table/table-cell-negative-start-margin-align-center.html: Added.

This test is very similar to the one above but involves a table.

13:48 Changeset [120858] by jamesr@google.com
  • 8 edits in trunk/Source

[chromium] Separate LayerRenderer initialization from updateLayers
https://bugs.webkit.org/show_bug.cgi?id=89525

Reviewed by Adrienne Walker.

Source/WebCore:

This adds an explicit call to initialize the layer renderer of a given CCLayerTreeHost instead of having it be
implicit in updateLayers(). This way the proxies can control the initialization sequence more closely and do
useful work between the two calls.

Refactor, no change in behavior. Covered by existing tests.

  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:

(WebCore::CCLayerTreeHost::compositeAndReadback):
(WebCore::CCLayerTreeHost::initializeLayerRendererIfNeeded):
(WebCore):
(WebCore::CCLayerTreeHost::updateLayers):

  • platform/graphics/chromium/cc/CCLayerTreeHost.h:

(CCLayerTreeHost):

  • platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:

(WebCore::CCSingleThreadProxy::commitAndComposite):

  • platform/graphics/chromium/cc/CCThreadProxy.cpp:

(WebCore::CCThreadProxy::compositeAndReadback):
(WebCore::CCThreadProxy::beginFrame):

Source/WebKit/chromium:

Update tests to call initializeLayerRendererIfNeeded() before calling updateLayers() to reflect what the proxies
do.

  • tests/CCLayerTreeHostTest.cpp:

(WTF::CCLayerTreeHostTestLayerOcclusion::beginTest):
(WTF::CCLayerTreeHostTestLayerOcclusionWithFilters::beginTest):
(WTF::CCLayerTreeHostTestManySurfaces::beginTest):

  • tests/TiledLayerChromiumTest.cpp:
13:33 Changeset [120857] by inferno@chromium.org
  • 1 edit
    2 copies in branches/chromium/1180

Merge 120737 - Crash in RenderInline::willBeDestroyed.
BUG=103423
Review URL: https://chromiumcodereview.appspot.com/10575040

13:25 Changeset [120856] by robert@webkit.org
  • 2 edits in trunk/LayoutTests

r120844: Skip two tests on Qt

The tests fast/block/float/previous-sibling-abspos-001.html and
fast/block/float/previous-sibling-float-001.html have pixel differences
on Qt. Skip them for now - bug 89597 opened.

Unreviewed, gardening.

  • platform/qt/Skipped:
13:23 Changeset [120855] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

SecurityOrigin::canDisplay() should return true when m_universalAccess is true
https://bugs.webkit.org/show_bug.cgi?id=84865

Patch by Yong Li <yoli@rim.com> on 2012-06-20
Reviewed by Adam Barth.

Add an early return (true) in canDisplay() for if (m_universalAccess),
as we did for canAccess() and canRequest().

No new tests. We should be good as long as this change doesn't break existing
tests, which means the contents supposed to be blocked are still blocked when
m_universalAccess is false.

  • page/SecurityOrigin.cpp:

(WebCore::SecurityOrigin::canDisplay):

13:16 Changeset [120854] by arv@chromium.org
  • 44 edits
    3 deletes in trunk/Source/WebCore

[V8] Use v8::V8::AddImplicitReferences instead of SetHiddenValue
https://bugs.webkit.org/show_bug.cgi?id=80880

Reviewed by Adam Barth.

We used to add a hidden property in the getter to the returned wrapper.
With this patch we instead handle the liveness of the wrapper in the GC phase by
calling v8::V8::AddHiddenReference.

To reduce the amount of custom code we need, the V8 code generator now supports
GenerateIsReachable (as well as CustomIsReachable) which, even though different
from the JSC attribute, is used in the same cases and takes the same values (even though
at the moment not all JSC values are supported by V8). Interfaces that have *IsReachable
also have a dependent life time (just like if V8DependentLifetime was present).

Retry. Last time we got ASAN issues on some Cromium Linux bots.

No new tests. Covered by existing tests.

  • Target.pri:
  • UseV8.cmake:
  • WebCore.gypi:
  • bindings/scripts/CodeGeneratorJS.pm:

(GetGenerateIsReachable): Abstracted GenerateIsReachable and JSGenerateIsReachable.
(GetCustomIsReachable): Ditto.
(GenerateHeader):
(GenerateImplementation):

  • bindings/scripts/CodeGeneratorV8.pm:

(NeedsToVisitDOMWrapper):
(GetGenerateIsReachable):
(GetCustomIsReachable):
(GenerateVisitDOMWrapper):
(GenerateHeader):
(GenerateNamedConstructorCallback):
(GenerateImplementation):

  • bindings/scripts/IDLAttributes.txt:
  • bindings/scripts/test/V8/V8Float64Array.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8Float64Array.h:

(V8Float64Array):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.h:

(V8TestActiveDOMObject):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.h:

(V8TestCustomNamedGetter):

  • bindings/scripts/test/V8/V8TestEventConstructor.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestEventConstructor.h:

(V8TestEventConstructor):

  • bindings/scripts/test/V8/V8TestEventTarget.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestEventTarget.h:

(V8TestEventTarget):

  • bindings/scripts/test/V8/V8TestException.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestException.h:

(V8TestException):

  • bindings/scripts/test/V8/V8TestInterface.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestInterface.h:

(V8TestInterface):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.h:

(V8TestMediaQueryListListener):

  • bindings/scripts/test/V8/V8TestNamedConstructor.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestNamedConstructor.h:

(V8TestNamedConstructor):

  • bindings/scripts/test/V8/V8TestNode.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestNode.h:

(V8TestNode):

  • bindings/scripts/test/V8/V8TestObj.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestObj.h:

(V8TestObj):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:

(WebCore):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:

(V8TestSerializedScriptValueInterface):

  • bindings/v8/NPV8Object.cpp:

(WebCore::npObjectTypeInfo):

  • bindings/v8/V8GCController.cpp:

(WebCore::GrouperVisitor::visitDOMWrapper):

  • bindings/v8/WrapperTypeInfo.h:

(WebCore):
(WrapperTypeInfo):

  • bindings/v8/custom/V8CSSStyleSheetCustom.cpp: Removed.
  • bindings/v8/custom/V8DOMStringMapCustom.cpp:
  • bindings/v8/custom/V8DOMTokenListCustom.cpp: Removed.
  • bindings/v8/custom/V8HTMLImageElementConstructor.cpp:

(WebCore):

  • bindings/v8/custom/V8NamedNodeMapCustom.cpp:
  • bindings/v8/custom/V8StyleSheetCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8TextTrackListCustom.cpp: Removed.
  • css/CSSStyleSheet.idl:
  • css/StyleSheet.idl:
  • dom/DOMStringMap.idl:
  • dom/NamedNodeMap.idl:
  • html/DOMTokenList.idl:
  • html/track/TextTrackList.idl:
13:10 FeatureFlags edited by tkent@chromium.org
Add a bug link for CSS_BOX_DECORATION_BREAK (diff)
13:00 Changeset [120853] by dpranke@chromium.org
  • 2 edits in trunk/Tools

Fix import sorting missed in r120846

Reviewed by Tony Chang.

  • Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py:
12:53 Changeset [120852] by dpranke@chromium.org
  • 3 edits in trunk/Tools

Fix chromium win http servers after breakage introduced in r120846.

Unreviewed, build fix.

  • Scripts/webkitpy/layout_tests/port/base.py:

(Port.to.start_http_server):

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd.init):

12:47 Changeset [120851] by dpranke@chromium.org
  • 4 edits in trunk/Tools

tweak output of webkit-patch print-{baselines,expectations}
https://bugs.webkit.org/show_bug.cgi?id=89588

Reviewed by Tony Chang.

Minor tweaks to the output to make it more readable, including
turning off csv by default for print-baselines with multiple ports.

  • Scripts/webkitpy/layout_tests/port/test.py:

(TestPort):

  • Scripts/webkitpy/tool/commands/queries.py:

(PrintExpectations.execute):
(PrintBaselines.execute):

  • Scripts/webkitpy/tool/commands/queries_unittest.py:

(PrintExpectationsTest.run_test):
(PrintExpectationsTest.test_multiple):
(PrintBaselinesTest.setUp):
(PrintBaselinesTest.test_multiple):

12:33 Changeset [120850] by tony@chromium.org
  • 3 edits in trunk/Source/WebCore

Regression(r116408): Ctrl-A (select all) on large text file hangs the tab with high CPU usage
https://bugs.webkit.org/show_bug.cgi?id=89562

Reviewed by Ryosuke Niwa.

Rather than replace the newlines in-place (in O(n2)), build a new string using StringBuilder, which takes O(n).

No new tests, this is a perf improvement.

  • platform/chromium/ClipboardUtilitiesChromium.cpp:

(WebCore::replaceNewlinesWithWindowsStyleNewlines):

  • platform/win/ClipboardUtilitiesWin.cpp:

(WebCore::replaceNewlinesWithWindowsStyleNewlines):

12:28 Changeset [120849] by commit-queue@webkit.org
  • 10 edits
    17 adds in trunk

Add support for fit-content etc
https://bugs.webkit.org/show_bug.cgi?id=38919

Patch by Elliott Sprehn <esprehn@gmail.com> on 2012-06-20
Reviewed by Tony Chang.

Source/WebCore:

Implement the CSS3 intrinsic dimension keywords for width properties and
add most of the plumbing for height properties but don't expose them
yet since this patch doesn't enforce them (matching current Gecko).
http://dev.w3.org/csswg/css3-writing-modes/#intrinsic-sizing

This patch implements -webkit-min-content, -webkit-max-content,
-webkit-fill-available and -webkit-fit-content for all width
properties.

Tests: fast/css-intrinsic-dimensions/height-dynamic-property-value.html

fast/css-intrinsic-dimensions/height-property-value.html
fast/css-intrinsic-dimensions/max-width-constrained.html
fast/css-intrinsic-dimensions/max-width-unconstrained.html
fast/css-intrinsic-dimensions/min-width.html
fast/css-intrinsic-dimensions/width-avoid-floats.html
fast/css-intrinsic-dimensions/width-dynamic-property-value.html
fast/css-intrinsic-dimensions/width-property-value.html
fast/css-intrinsic-dimensions/width.html

  • css/CSSParser.cpp: Add parser support for the new keywords.

(WebCore::CSSParser::parseValue):

  • css/CSSPrimitiveValue.cpp:

(WebCore):
(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):

  • css/CSSValueKeywords.in:
  • css/LengthFunctions.cpp: Implement conversion functions.

(WebCore::minimumValueForLength):
(WebCore::valueForLength):
(WebCore::floatValueForLength):

  • css/StyleBuilder.cpp:

(WebCore::ApplyPropertyLength::applyValue):
(WebCore::StyleBuilder::StyleBuilder): Clean up the template for old

intrinsic values and add new values. Rename old intrinsic to
LegacyIntrinsic and add support for the new dimension keywords as
Intrinsic.

  • platform/Length.h:

(WebCore::Length::isIntrinsicOrAuto):
(WebCore::Length::isLegacyIntrinsic): New method to check for old

min-intrinsic and intrinsic keywords.

(WebCore::Length::isIntrinsic): New method to check for CSS3 intrinsic

dimension keywords like min-content.

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::computeLogicalWidthInRegionUsing): Expose the max

and min logical preferred widths as the new keywords.

(WebCore::RenderBox::sizesLogicalWidthToFitContent): Renamed method to

be more consistent with the new MinContent naming in the spec.

  • rendering/RenderBox.h:

(RenderBox):

LayoutTests:

Tests for CSS3 intrinsic dimension keywords as defined in the
writing modes spec. This tests the implementation for width and
ensures that height properties don't allow the new keywords yet
since they're not implemented by this patch.

  • fast/css-intrinsic-dimensions/height-dynamic-property-value-expected.txt: Added.
  • fast/css-intrinsic-dimensions/height-dynamic-property-value.html: Added.
  • fast/css-intrinsic-dimensions/height-property-value-expected.txt: Added.
  • fast/css-intrinsic-dimensions/height-property-value.html: Added.
  • fast/css-intrinsic-dimensions/max-width-constrained-expected.html: Added.
  • fast/css-intrinsic-dimensions/max-width-constrained.html: Added.
  • fast/css-intrinsic-dimensions/max-width-unconstrained-expected.html: Added.
  • fast/css-intrinsic-dimensions/max-width-unconstrained.html: Added.
  • fast/css-intrinsic-dimensions/min-width-expected.html: Added.
  • fast/css-intrinsic-dimensions/min-width.html: Added.
  • fast/css-intrinsic-dimensions/width-avoid-floats-expected.html: Added.
  • fast/css-intrinsic-dimensions/width-avoid-floats.html: Added.
  • fast/css-intrinsic-dimensions/width-dynamic-property-value-expected.txt: Added.
  • fast/css-intrinsic-dimensions/width-dynamic-property-value.html: Added.
  • fast/css-intrinsic-dimensions/width-expected.html: Added.
  • fast/css-intrinsic-dimensions/width-keyword-classes.css: Added.

(.min-content):
(.max-content):
(.fill-available):
(.fit-content):
(.max-width-min-content):
(.max-width-max-content):
(.max-width-fill-available):
(.max-width-fit-content):
(.min-width-min-content):
(.min-width-max-content):
(.min-width-fill-available):
(.min-width-fit-content):

  • fast/css-intrinsic-dimensions/width-property-value-expected.txt: Added.
  • fast/css-intrinsic-dimensions/width-property-value.html: Added.
  • fast/css-intrinsic-dimensions/width.html: Added.
12:25 Changeset [120848] by rniwa@webkit.org
  • 1 edit
    2 copies in branches/chromium/1180

Merge 120638 - REGRESSION(r118414): some pages on concursolutions.com doesn't show up
https://bugs.webkit.org/show_bug.cgi?id=89399
http://crbug.com/132097

Reviewed by Adam Barth.

Source/WebCore:

The bug was caused by insertAdjacentHTML's not passing context element to createFragmentForInnerOuterHTML.

Test: fast/html/adjacent-html-context-element.html

  • html/HTMLElement.cpp:

(WebCore::HTMLElement::insertAdjacentHTML):

LayoutTests:

Add a regression test.

  • fast/html/adjacent-html-context-element-expected.txt: Added.
  • fast/html/adjacent-html-context-element.html: Added.

Review URL: https://chromiumcodereview.appspot.com/10577039

12:17 Changeset [120847] by commit-queue@webkit.org
  • 12 edits
    6 adds in trunk

[chromium] webkit-backface-visibility doesn't work with video
https://bugs.webkit.org/show_bug.cgi?id=88908

When determining a contents layer's backface culling, use the parent
layer's transform and backface-visibility properties. Track which
layers need this special treatment with useParentBackfaceVisibility
and setUseParentBackfaceVisibility functions in WebCore::LayerChromium,
WebKit::WebLayer, and WebCore::CCLayerImpl.

Patch by Christopher Cameron <ccameron@chromium.org> on 2012-06-20
Reviewed by Adrienne Walker.

Source/Platform:

  • chromium/public/WebLayer.h:

(WebLayer):

Add an accessor to specify that a layer should use its parent's
backface culling behavior.

Source/WebCore:

Tests: compositing/backface-visibility/backface-visibility-image.html

compositing/backface-visibility/backface-visibility-webgl.html

  • platform/graphics/chromium/GraphicsLayerChromium.cpp:

(WebCore::GraphicsLayerChromium::setupContentsLayer):

When a contents layer is added, tag it as inheriting its backface
culling from its parent.

  • platform/graphics/chromium/LayerChromium.cpp:

(WebCore::LayerChromium::LayerChromium):

Initialize new m_useParentBackfaceVisibility member variable.

(WebCore::LayerChromium::pushPropertiesTo):

Propagate m_useParentBackfaceVisibility to CCLayerImpl.

  • platform/graphics/chromium/LayerChromium.h:

(WebCore::LayerChromium::setUseParentBackfaceVisibility):
(WebCore::LayerChromium::useParentBackfaceVisibility):
(LayerChromium):

Add m_useParentBackfaceVisibility member variable and modify
and query accessors.

  • platform/graphics/chromium/cc/CCLayerImpl.cpp:

(WebCore::CCLayerImpl::CCLayerImpl):

Initialize new m_useParentBackfaceVisibility member variable.

  • platform/graphics/chromium/cc/CCLayerImpl.h:

(WebCore::CCLayerImpl::setUseParentBackfaceVisibility):
(WebCore::CCLayerImpl::useParentBackfaceVisibility):
(CCLayerImpl):

Add m_useParentBackfaceVisibility member variable and modify
and query accessors.

  • platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:

(WebCore::layerShouldBeSkipped):

When examining a layer, if the layer has
useParentBackfaceVisibility set then use the layer's parent
layer to determine backface culling.

Source/WebKit/chromium:

  • src/WebLayer.cpp:

(WebKit::WebLayer::setUseParentBackfaceVisibility):

Add an accessor to specify that a layer should use its parent's
backface culling behavior.

LayoutTests:

  • compositing/backface-visibility/backface-visibility-image-expected.png: Added.
  • compositing/backface-visibility/backface-visibility-image-expected.txt: Added.
  • compositing/backface-visibility/backface-visibility-image.html: Added.
  • compositing/backface-visibility/backface-visibility-webgl-expected.png: Added.
  • compositing/backface-visibility/backface-visibility-webgl-expected.txt: Added.
  • compositing/backface-visibility/backface-visibility-webgl.html: Added.
12:00 Changeset [120846] by dpranke@chromium.org
  • 9 edits
    1 add in trunk/Tools

new-run-webkit-tests should spin-up enough httpd processes to avoid timeouts
https://bugs.webkit.org/show_bug.cgi?id=88134

Reviewed by Tony Chang.

Change NRWT to spin up 2*min(child_processes, locked_shards)
http servers by default so that we are less likely to get a
bunch of http timeouts at the beginning of a test run.

Note that I had to tweak executive_mock to support mocked stderr
because the apache_http_server code reads stderr when starting a
process to ensure it started okay.

  • Scripts/webkitpy/common/system/executive_mock.py:

(MockProcess.init):

  • Scripts/webkitpy/common/system/outputcapture.py:
  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._run_tests):
(Manager.start_servers_with_lock):

  • Scripts/webkitpy/layout_tests/port/base.py:

(Port.to.start_http_server):

  • Scripts/webkitpy/layout_tests/port/test.py:

(TestPort.start_http_server):
(TestPort._path_to_apache):
(TestPort):
(TestPort._path_to_apache_config_file):

  • Scripts/webkitpy/layout_tests/servers/apache_http_server.py:

(LayoutTestApacheHttpd.init):

  • Scripts/webkitpy/layout_tests/servers/apache_http_server_unittest.py: Added

(LayoutTestApacheHttpd.init):

  • Scripts/webkitpy/layout_tests/servers/http_server.py:

(Lighttpd.init):

  • Scripts/webkitpy/layout_tests/servers/http_server_base.py:

(HttpServerBase.init):

11:42 Changeset [120845] by japhet@chromium.org
  • 3 edits
    2 adds in trunk

Source/WebCore: Don't re-enter CachedResource::removeClient() if an XHR
is canceled and restarted multiple times.
https://bugs.webkit.org/show_bug.cgi?id=89378

Reviewed by Eric Seidel.

Test: http/tests/xmlhttprequest/reentrant-cancel.html

  • loader/DocumentThreadableLoader.cpp:

(WebCore::DocumentThreadableLoader::cancel):
(WebCore::DocumentThreadableLoader::clearResource): Save off a copy of m_resource

then clear it, so we don't call clearResource() multiple times for the same resource.

LayoutTests: Test for https://bugs.webkit.org/show_bug.cgi?id=89378.
Reviewed by Eric Seidel.

  • http/tests/xmlhttprequest/reentrant-cancel-expected.txt: Added.
  • http/tests/xmlhttprequest/reentrant-cancel.html: Added.
11:40 Changeset [120844] by robert@webkit.org
  • 3 edits
    10 adds in trunk

Negative margin block doesn't properly clear a float enclosed by a previous sibling
https://bugs.webkit.org/show_bug.cgi?id=10900

Reviewed by Eric Seidel.

Source/WebCore:

Tests: fast/block/float/previous-sibling-abspos-001.html

fast/block/float/previous-sibling-abspos-002.html
fast/block/float/previous-sibling-float-001.html
fast/block/float/previous-sibling-float-002.html
fast/css/clear-float-sibling.html

Parent blocks keep a list of child floats that extend out of the parent block and
by implication overhang into the parent's siblings. But this doesn't work if the
sibling has collapsing margins - it will not find the float in the previous block's
list so will ignore the float and fail to clear it.

RenderBlock:collapseMargins() needs to check if a child's collapsing margin has
reduced the height of the parent up past the bottom of its previous sibling's lowest float
and add the now overhanging float to the parent's float list if appropriate. No need to do
this if the previous sibling is a float or is positioned - the child will clear/avoid it anyway
and attempting to avoid floated children of floats causes incorrect layout.

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::collapseMargins):

LayoutTests:

  • fast/block/float/previous-sibling-abspos-001-expected.html: Added.
  • fast/block/float/previous-sibling-abspos-001.html: Added.
  • fast/block/float/previous-sibling-abspos-002-expected.html: Added.
  • fast/block/float/previous-sibling-abspos-002.html: Added.
  • fast/block/float/previous-sibling-float-001-expected.html: Added.
  • fast/block/float/previous-sibling-float-001.html: Added.
  • fast/block/float/previous-sibling-float-002-expected.html: Added.
  • fast/block/float/previous-sibling-float-002.html: Added.
  • fast/css/clear-float-sibling-expected.html: Added.
  • fast/css/clear-float-sibling.html: Added.
11:36 Changeset [120843] by enne@google.com
  • 1 edit
    3 copies in branches/chromium/1180

Merge 120750 - Fix scrollbar layers being misplaced with a clipped owner layer
https://bugs.webkit.org/show_bug.cgi?id=89486

Reviewed by Simon Fraser.

Source/WebCore:

Scrollbar layers are positioned relative to their parent layer. If
that parent gets clipped, then that positioning becomes incorrect and
scrollbars get positioned relative to the clipped bounds instead of
the full bounds. Fix by not clipping in this case.

Test: compositing/overflow/scrollbars-with-clipped-owner.html

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::shouldClipCompositedBounds):

LayoutTests:

  • compositing/overflow/scrollbars-with-clipped-owner-expected.png: Added.
  • compositing/overflow/scrollbars-with-clipped-owner-expected.txt: Added.
  • compositing/overflow/scrollbars-with-clipped-owner.html: Added.

TBR=enne@google.com
Review URL: https://chromiumcodereview.appspot.com/10536221

11:28 Changeset [120842] by commit-queue@webkit.org
  • 17 edits
    2 copies in trunk/Source/WebCore

Web Inspector: Allow module injections into the InjectedScript
https://bugs.webkit.org/show_bug.cgi?id=89530

Add a new InjectedScriptModule abstract class that inherits InjectedScriptBase
to reuse implementation, and which javascript code is injected via
InjectedScript.

Patch by Andrey Adaikin <aandrey@chromium.org> on 2012-06-20
Reviewed by Pavel Feldman.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • bindings/js/ScriptObject.cpp:

(WebCore::ScriptObject::ScriptObject):
(WebCore):

  • bindings/js/ScriptObject.h:

(ScriptObject):
(WebCore::ScriptObject::ScriptObject):

  • bindings/v8/ScriptObject.cpp:

(WebCore::ScriptObject::ScriptObject):
(WebCore):

  • bindings/v8/ScriptObject.h:

(ScriptObject):
(WebCore::ScriptObject::~ScriptObject):

  • inspector/InjectedScript.cpp:
  • inspector/InjectedScript.h:

(WebCore):
(WebCore::InjectedScript::name):
(InjectedScript):

  • inspector/InjectedScriptBase.cpp:

(WebCore::InjectedScriptBase::callFunctionWithEvalEnabled):

  • inspector/InjectedScriptBase.h:

(WebCore):
(InjectedScriptBase):

  • inspector/InjectedScriptManager.h:

(InjectedScriptManager):
(WebCore::InjectedScriptManager::inspectedStateAccessCheck):

  • inspector/InjectedScriptModule.cpp: Copied from Source/WebCore/inspector/InjectedScriptBase.h.

(WebCore):
(WebCore::InjectedScriptModule::InjectedScriptModule):
(WebCore::InjectedScriptModule::ensureInjected):

  • inspector/InjectedScriptModule.h: Copied from Source/WebCore/bindings/js/ScriptObject.h.

(WebCore):
(InjectedScriptModule):

  • inspector/InjectedScriptSource.js:

(.):

11:24 Changeset [120841] by ggaren@apple.com
  • 3 edits in trunk/Source/JavaScriptCore

Made the incremental sweeper more aggressive
https://bugs.webkit.org/show_bug.cgi?id=89527

Reviewed by Oliver Hunt.

This is a pre-requisite to getting rid of "berzerker GC" because we need
the sweeper to reclaim memory in a timely fashion, or we'll see a memory
footprint regression.

  • heap/IncrementalSweeper.h:
  • heap/IncrementalSweeper.cpp:

(JSC::IncrementalSweeper::scheduleTimer): Since the time slice is predictable,
no need to use a data member to record it.

(JSC::IncrementalSweeper::doSweep): Sweep as many blocks as we can in a
small time slice. This is better than sweeping only one block per timer
fire because that strategy has a heavy timer overhead, and artificially
delays memory reclamation.

11:22 Changeset [120840] by zmo@google.com
  • 4 edits in branches/chromium/1180/Source/WebCore/html/canvas

Merge 120636 - Fix framebuffer-object-attachment.html failures
https://bugs.webkit.org/show_bug.cgi?id=89387

Reviewed by Kenneth Russell.

  • html/canvas/WebGLFramebuffer.cpp: fix detachment behavior with depth/stencil/depth_stencil conflicts

(WebCore::WebGLFramebuffer::setAttachmentForBoundFramebuffer):
(WebCore::WebGLFramebuffer::removeAttachmentFromBoundFramebuffer):

  • html/canvas/WebGLFramebuffer.h:

(WebGLFramebuffer):

  • html/canvas/WebGLRenderingContext.cpp:

(WebCore):
(WebCore::WebGLRenderingContext::framebufferRenderbuffer): move logic to WebGLFramebuffer
(WebCore::WebGLRenderingContext::framebufferTexture2D): Ditto.
(WebCore::WebGLRenderingContext::getParameter): Correct the wrong assumption that it's always checking the drawingbuffer's DEPTH_BITS/STENCIL_BITS

  • html/canvas/WebGLRenderingContext.h:

(WebGLRenderingContext):

TBR=zmo@google.com
Review URL: https://chromiumcodereview.appspot.com/10584035

11:18 Changeset [120839] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebKit/blackberry

[BlackBerry] Enable setAcceleratedCompositingForFixedPositionEnabled
https://bugs.webkit.org/show_bug.cgi?id=89575

Patch by Konrad Piascik <kpiascik@rim.com> on 2012-06-20
Reviewed by Antonio Gomes.

Enable the flag so that we get position:fixed elemetns to be rendered
using accelerated compositing.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::init):

11:11 Changeset [120838] by pfeldman@chromium.org
  • 6 edits in trunk/Source/WebCore

Web Inspector: Timeline label bar jiggles when scrolling
https://bugs.webkit.org/show_bug.cgi?id=89579

Reviewed by Vsevolod Vlasov.

Adding timeline header into the timeline panel and settings its position
to absolute. Drive-by fix that updates rulers on sidebar resize.

  • inspector/front-end/TimelineGrid.js:

(WebInspector.TimelineGrid):
(WebInspector.TimelineGrid.prototype.get gridHeaderElement):
(WebInspector.TimelineGrid.prototype.addEventDividers):
(WebInspector.TimelineGrid.prototype.setScrollAndDividerTop):

  • inspector/front-end/TimelineOverviewPane.js:

(WebInspector.TimelineOverviewPane.prototype.sidebarResized):

  • inspector/front-end/TimelinePanel.js:

(WebInspector.TimelinePanel):
(WebInspector.TimelinePanel.prototype.sidebarResized):
(WebInspector.TimelinePanel.prototype.onResize):

  • inspector/front-end/timelinePanel.css:

(#timeline-grid-header):

10:58 Changeset [120837] by commit-queue@webkit.org
  • 9 edits in trunk/Source

[chromium] Make sure that render surfaces are not pixel doubled with a device scale factor of 2
https://bugs.webkit.org/show_bug.cgi?id=86882

Patch by Ian Vollick <vollick@chromium.org> on 2012-06-20
Reviewed by Adrienne Walker.

To ensure that render surfaces are not pixel doubled when device scale factor is
two, the render surface's owning layer's draw transform is scaled by the
contents scale (in the same way that the parent matrix is scaled by the device
scale factor). The transformedLayerRect's dimensions also need to be in pixel
space. The surface origin transform should not scale, but needs to offset the
correct number of pixels, and the replica transforms need to be modified to
account for the scaling.

Source/WebCore:

To accomplish this, CCLayerImpl's needed to be made aware of contentsScale.

Thanks to Adrienne Walker for the computation of the replica draw transform.

Unit test: CCLayerTreeHostCommonTest.verifyRenderSurfaceTranformsInHighDPI

  • platform/graphics/chromium/LayerChromium.cpp:

(WebCore::LayerChromium::pushPropertiesTo):

  • platform/graphics/chromium/LayerChromium.h:

(LayerChromium):

  • platform/graphics/chromium/cc/CCLayerImpl.cpp:

(WebCore::CCLayerImpl::CCLayerImpl):

  • platform/graphics/chromium/cc/CCLayerImpl.h:

(WebCore::CCLayerImpl::setContentsScale):
(WebCore::CCLayerImpl::contentsScale):
(CCLayerImpl):

  • platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:

(WebCore::calculateDrawTransformsInternal):

  • platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:

(WebCore::CCScrollbarLayerImpl::CCScrollbar::totalSize):

Source/WebKit/chromium:

  • tests/CCLayerTreeHostCommonTest.cpp:
10:51 Changeset [120836] by fpizlo@apple.com
  • 1 edit in trunk/Source/JavaScriptCore/ChangeLog

Fix JSC ChangeLog, forgot to add a comment to the ChangeLog before committing.

10:49 Changeset [120835] by alexis.menard@openbossa.org
  • 3 edits
    2 adds in trunk

[CSS3 Backgrounds and Borders] Implement box-decoration-break rendering.
https://bugs.webkit.org/show_bug.cgi?id=88228

Reviewed by Eric Seidel.

Source/WebCore:

Implement the new CSS property box-decoration-break. It modifies
where we decide whether the borders needs to be sliced or not by
checking if the box-decoration-break is set to clone. If it's the case
then we need to explicitely redraw all edges.

Test: fast/box-decoration-break/box-decoration-break-rendering.html

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::determineSpacingForFlowBoxes):
(WebCore::InlineFlowBox::paintFillLayer):

LayoutTests:

Add new tests to cover the feature.

  • fast/box-decoration-break/box-decoration-break-rendering-expected.html: Added.
  • fast/box-decoration-break/box-decoration-break-rendering.html: Added.
10:48 Changeset [120834] by fpizlo@apple.com
  • 20 edits
    2 adds in trunk/Source/JavaScriptCore

DFG should be able to print disassembly interleaved with the IR
https://bugs.webkit.org/show_bug.cgi?id=89551

Reviewed by Geoffrey Garen.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • JavaScriptCore.xcodeproj/project.pbxproj:
  • Target.pri:
  • assembler/ARMv7Assembler.h:

(JSC::ARMv7Assembler::labelIgnoringWatchpoints):
(ARMv7Assembler):

  • assembler/AbstractMacroAssembler.h:

(AbstractMacroAssembler):
(JSC::AbstractMacroAssembler::labelIgnoringWatchpoints):

  • assembler/X86Assembler.h:

(X86Assembler):
(JSC::X86Assembler::labelIgnoringWatchpoints):

  • dfg/DFGCommon.h:

(JSC::DFG::shouldShowDisassembly):
(DFG):

  • dfg/DFGDisassembler.cpp: Added.

(DFG):
(JSC::DFG::Disassembler::Disassembler):
(JSC::DFG::Disassembler::dump):
(JSC::DFG::Disassembler::dumpDisassembly):

  • dfg/DFGDisassembler.h: Added.

(DFG):
(Disassembler):
(JSC::DFG::Disassembler::setStartOfCode):
(JSC::DFG::Disassembler::setForBlock):
(JSC::DFG::Disassembler::setForNode):
(JSC::DFG::Disassembler::setEndOfMainPath):
(JSC::DFG::Disassembler::setEndOfCode):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compile):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dumpCodeOrigin):
(JSC::DFG::Graph::amountOfNodeWhiteSpace):
(DFG):
(JSC::DFG::Graph::printNodeWhiteSpace):
(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::dumpBlockHeader):

  • dfg/DFGGraph.h:
  • dfg/DFGJITCompiler.cpp:

(JSC::DFG::JITCompiler::JITCompiler):
(DFG):
(JSC::DFG::JITCompiler::compile):
(JSC::DFG::JITCompiler::compileFunction):

  • dfg/DFGJITCompiler.h:

(JITCompiler):
(JSC::DFG::JITCompiler::setStartOfCode):
(JSC::DFG::JITCompiler::setForBlock):
(JSC::DFG::JITCompiler::setForNode):
(JSC::DFG::JITCompiler::setEndOfMainPath):
(JSC::DFG::JITCompiler::setEndOfCode):

  • dfg/DFGNode.h:

(Node):
(JSC::DFG::Node::willHaveCodeGen):

  • dfg/DFGNodeFlags.cpp:

(JSC::DFG::nodeFlagsAsString):

  • dfg/DFGSpeculativeJIT.cpp:

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

  • dfg/DFGSpeculativeJIT.h:

(SpeculativeJIT):

  • runtime/Options.cpp:

(Options):
(JSC::Options::initializeOptions):

  • runtime/Options.h:

(Options):

10:27 Changeset [120833] by jsbell@chromium.org
  • 2 edits in trunk/Source/WebKit/chromium

Unreviewed build fix.

  • tests/IDBDatabaseBackendTest.cpp:

(WebCore::MockIDBCallbacks::~MockIDBCallbacks):
(WebCore::FakeIDBDatabaseCallbacks::~FakeIDBDatabaseCallbacks):

10:24 Changeset [120832] by jchaffraix@webkit.org
  • 13 edits in trunk/Source

Use IntSize in RenderLayer to represent scroll offsets
https://bugs.webkit.org/show_bug.cgi?id=89154

Reviewed by Eric Seidel.

Source/WebCore:

Refactoring, covered by existing tests.

  • accessibility/AccessibilityRenderObject.cpp:

(WebCore::AccessibilityRenderObject::scrollTo):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::forwardEvent):

  • page/SpatialNavigation.cpp:

(WebCore::scrollInDirection):

  • rendering/RenderMarquee.cpp:

(WebCore::RenderMarquee::start):
Updated those call-sites to use the IntSize variant of the scrolling function.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::panScrollFromPoint):
Updated the signature to use IntPoint to avoid an extra round-trip to LayoutPoint
(furthermore touch points should be in device pixels).

(WebCore::RenderLayer::clampScrollOffset):
Added this function that clamps a scroll offset to the box's size. This enables more
code sharing between the different functions. Also removed a NULL-check that shouldn't
be needed: scrolling is a RenderBox concept so any callers should ensure that we have
a RenderBox or it makes no sense to try to scroll.

(WebCore::RenderLayer::updateLayerPosition):
(WebCore::adjustedScrollDelta):
(WebCore::RenderLayer::scrollByRecursively):
(WebCore::RenderLayer::scrollToOffset):
(WebCore::RenderLayer::scrollRectToVisible):
(WebCore::RenderLayer::updateScrollInfoAfterLayout):
Updated to do IntSize arithmetic. Reuse clampScrollOffset when applicable.

  • rendering/RenderLayer.h:

(WebCore::RenderLayer::scrollToXOffset):
(WebCore::RenderLayer::scrollToYOffset):
Updated the functions to take IntSize as much as possible.

Source/WebKit/blackberry:

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::scrollRenderer):
Updated to pass an IntSize to scrollToOffset.

Source/WebKit/win:

  • WebView.cpp:

(WebView::gesture):
Updated to pass an IntSize to scrollByRecursively.

Source/WebKit2:

  • WebProcess/WebPage/win/WebPageWin.cpp:

(WebKit::WebPage::gestureDidScroll):
Updated to pass an IntSize to scrollByRecursively.

10:22 Changeset [120831] by commit-queue@webkit.org
  • 9 edits in trunk/Source/WebKit2

[WK2] Implement Web Intent delivery
https://bugs.webkit.org/show_bug.cgi?id=88989

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-06-20
Reviewed by Anders Carlsson.

Add a deliverIntent() method to the WebFrame so that
Web intents can be delivered once matched to a
specific service.

  • UIProcess/WebFrameProxy.cpp:

(WebKit):
(WebKit::WebFrameProxy::deliverIntent):

  • UIProcess/WebFrameProxy.h:

(WebKit):
(WebFrameProxy):

  • UIProcess/WebIntentData.h:

(WebKit::WebIntentData::store):

  • WebProcess/WebPage/WebFrame.cpp:

(WebKit):
(WebKit::WebFrame::deliverIntent):

  • WebProcess/WebPage/WebFrame.h:

(WebKit):
(WebFrame):

  • WebProcess/WebPage/WebPage.cpp:

(WebKit):
(WebKit::WebPage::deliverIntentToFrame):

  • WebProcess/WebPage/WebPage.h:

(WebKit):
(WebPage):

  • WebProcess/WebPage/WebPage.messages.in:
10:14 Changeset [120830] by lforschler@apple.com
  • 7 edits in branches/safari-536-branch/Source/WebKit2

Merged r120376 -> <rdar://problem/11652545>

09:33 Changeset [120829] by commit-queue@webkit.org
  • 3 edits in trunk/Source/WebCore

Web Inspector: mark used/allocated JS heap on the native memory bar chart.
https://bugs.webkit.org/show_bug.cgi?id=89476

Patch by Alexei Filippov <alexeif@chromium.org> on 2012-06-20
Reviewed by Yury Semikhatsky.

  • inspector/front-end/NativeMemorySnapshotView.js:

(WebInspector.NativeMemoryBarChart):
(WebInspector.NativeMemoryBarChart.prototype._updateView):

  • inspector/front-end/nativeMemoryProfiler.css:

(.memory-bar-chart-bar):
(.memory-bar-chart-unused):
(.memory-bar-chart-percent):

09:17 Changeset [120828] by jsbell@chromium.org
  • 7 edits in trunk/Source

[Chromium] IndexedDB: Don't close database if pending connections are in flight
https://bugs.webkit.org/show_bug.cgi?id=89512

Source/WebCore:

Add a counter tracking connections between the two phases, which is used along with
the completed connection count to determine the total number of connections.

Reviewed by Tony Chang.

Test: webkit_unit_tests --gtest_filter='IDBDatabaseBackendTest.ConnectionLifecycle'

  • Modules/indexeddb/IDBDatabaseBackendImpl.cpp:

(WebCore::IDBDatabaseBackendImpl::IDBDatabaseBackendImpl):
(WebCore::IDBDatabaseBackendImpl::setVersion):
(WebCore::IDBDatabaseBackendImpl::connectionCount):
(WebCore):
(WebCore::IDBDatabaseBackendImpl::processPendingCalls):
(WebCore::IDBDatabaseBackendImpl::transaction):
(WebCore::IDBDatabaseBackendImpl::registerFrontendCallbacks):
(WebCore::IDBDatabaseBackendImpl::openConnection):
(WebCore::IDBDatabaseBackendImpl::close):

  • Modules/indexeddb/IDBDatabaseBackendImpl.h:

(IDBDatabaseBackendImpl):

  • Modules/indexeddb/IDBFactoryBackendImpl.cpp:

(WebCore::IDBFactoryBackendImpl::openInternal):

  • inspector/InspectorIndexedDBAgent.cpp:

(WebCore):

Source/WebKit/chromium:

Reviewed by Tony Chang.

  • tests/IDBDatabaseBackendTest.cpp:

(MockIDBCallbacks):
(WebCore::MockIDBCallbacks::create):
(WebCore::MockIDBCallbacks::MockIDBCallbacks):
(WebCore):
(FakeIDBDatabaseCallbacks):
(WebCore::FakeIDBDatabaseCallbacks::create):
(WebCore::FakeIDBDatabaseCallbacks::FakeIDBDatabaseCallbacks):
(WebCore::TEST):

09:15 Changeset [120827] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

Web Inspector: duplicating selected text when Enter key is pressed
https://bugs.webkit.org/show_bug.cgi?id=89559

Patch by Sergey Rogulenko <rogulenko@google.com> on 2012-06-20
Reviewed by Pavel Feldman.

  • inspector/front-end/TextViewer.js:

(WebInspector.TextEditorMainPanel.prototype.handleEnterKey):
The returned result of method normalize() should be used.

09:07 Changeset [120826] by commit-queue@webkit.org
  • 2 edits in trunk/Source/WebCore

[Cairo] Fix memory leak in GraphicsContext3DCairo.cpp
https://bugs.webkit.org/show_bug.cgi?id=89561

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-06-20
Reviewed by Martin Robinson.

Fix a memory leak in GraphicsContext3D::getImageData().

  • platform/graphics/cairo/GraphicsContext3DCairo.cpp:

(WebCore::GraphicsContext3D::getImageData): asNewNativeImage() returns a
caller-owned pointer to the native image data. So, using OwnPtr to manage
memory automatically.

09:06 Changeset [120825] by tomz@codeaurora.org
  • 2 edits in trunk/Tools

Unreviewed: Back out accidentally checked in debug print which broke a test

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest.parse_output):

09:01 WebKitGTK/WebKit2Roadmap edited by mrobinson@webkit.org
(diff)
08:41 Changeset [120824] by commit-queue@webkit.org
  • 60 edits in trunk/Source/WebCore

Use HitTestPoint instead of LayoutPoint for nodeAtPoint.
https://bugs.webkit.org/show_bug.cgi?id=89448

Patch by Allan Sandfeld Jensen <allan.jensen@nokia.com> on 2012-06-20
Reviewed by Eric Seidel.

This patch updates the API of nodeAtPoint without changing any
functionality. This is largest change necessary to support
transforms in area-based hit-testing, but is only boilerplate.

No change in functionality. No new tests.

  • rendering/EllipsisBox.cpp:

(WebCore::EllipsisBox::nodeAtPoint):

  • rendering/EllipsisBox.h:

(EllipsisBox):

  • rendering/HitTestResult.cpp:

(WebCore::HitTestResult::addNodeToRectBasedTestResult):

  • rendering/HitTestResult.h:

(WebCore::HitTestPoint::intersects):
(HitTestPoint):
(HitTestResult):

  • rendering/InlineBox.cpp:

(WebCore::InlineBox::nodeAtPoint):

  • rendering/InlineBox.h:

(InlineBox):

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::nodeAtPoint):

  • rendering/InlineFlowBox.h:

(InlineFlowBox):

  • rendering/InlineTextBox.cpp:

(WebCore::InlineTextBox::nodeAtPoint):

  • rendering/InlineTextBox.h:

(InlineTextBox):

  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::nodeAtPoint):
(WebCore::RenderBlock::hitTestFloats):
(WebCore::RenderBlock::hitTestColumns):
(WebCore::RenderBlock::hitTestContents):

  • rendering/RenderBlock.h:

(RenderBlock):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::nodeAtPoint):

  • rendering/RenderBox.h:

(RenderBox):

  • rendering/RenderEmbeddedObject.cpp:

(WebCore::RenderEmbeddedObject::nodeAtPoint):

  • rendering/RenderEmbeddedObject.h:

(RenderEmbeddedObject):

  • rendering/RenderFlowThread.cpp:

(WebCore::RenderFlowThread::hitTestRegion):

  • rendering/RenderFlowThread.h:
  • rendering/RenderFrameSet.cpp:

(WebCore::RenderFrameSet::nodeAtPoint):

  • rendering/RenderFrameSet.h:

(RenderFrameSet):

  • rendering/RenderImage.cpp:

(WebCore::RenderImage::nodeAtPoint):

  • rendering/RenderImage.h:

(RenderImage):

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::nodeAtPoint):

  • rendering/RenderInline.h:

(RenderInline):

  • rendering/RenderLayer.cpp:

(WebCore::ClipRect::intersects):
(WebCore::RenderLayer::hitTest):
(WebCore::RenderLayer::createLocalTransformState):
(WebCore::RenderLayer::hitTestLayer):
(WebCore::RenderLayer::hitTestContents):
(WebCore::RenderLayer::hitTestList):
(WebCore::RenderLayer::hitTestPaginatedChildLayer):
(WebCore::RenderLayer::hitTestChildLayerColumns):

  • rendering/RenderLayer.h:

(ClipRect):
(RenderLayer):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::hitTest):

  • rendering/RenderLineBoxList.h:

(RenderLineBoxList):

  • rendering/RenderListBox.cpp:

(WebCore::RenderListBox::nodeAtPoint):

  • rendering/RenderListBox.h:

(RenderListBox):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::hitTest):
(WebCore::RenderObject::nodeAtPoint):

  • rendering/RenderObject.h:

(RenderObject):

  • rendering/RenderRegion.cpp:

(WebCore::RenderRegion::nodeAtPoint):

  • rendering/RenderRegion.h:

(RenderRegion):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::nodeAtPoint):

  • rendering/RenderTable.h:

(RenderTable):

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::nodeAtPoint):

  • rendering/RenderTableRow.h:

(RenderTableRow):

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::nodeAtPoint):

  • rendering/RenderTableSection.h:

(RenderTableSection):

  • rendering/RenderText.h:
  • rendering/RenderTextControlMultiLine.cpp:

(WebCore::RenderTextControlMultiLine::nodeAtPoint):

  • rendering/RenderTextControlMultiLine.h:

(RenderTextControlMultiLine):

  • rendering/RenderTextControlSingleLine.cpp:

(WebCore::RenderTextControlSingleLine::nodeAtPoint):

  • rendering/RenderTextControlSingleLine.h:

(RenderTextControlSingleLine):

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::nodeAtPoint):

  • rendering/RenderWidget.h:

(RenderWidget):

  • rendering/RootInlineBox.cpp:

(WebCore::RootInlineBox::nodeAtPoint):

  • rendering/RootInlineBox.h:

(RootInlineBox):

  • rendering/svg/RenderSVGForeignObject.cpp:

(WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
(WebCore::RenderSVGForeignObject::nodeAtPoint):

  • rendering/svg/RenderSVGForeignObject.h:

(RenderSVGForeignObject):

  • rendering/svg/RenderSVGModelObject.cpp:

(WebCore::RenderSVGModelObject::nodeAtPoint):

  • rendering/svg/RenderSVGModelObject.h:

(RenderSVGModelObject):

  • rendering/svg/RenderSVGRoot.cpp:

(WebCore::RenderSVGRoot::nodeAtPoint):

  • rendering/svg/RenderSVGRoot.h:

(RenderSVGRoot):

  • rendering/svg/RenderSVGText.cpp:

(WebCore::RenderSVGText::nodeAtFloatPoint):
(WebCore::RenderSVGText::nodeAtPoint):

  • rendering/svg/RenderSVGText.h:

(RenderSVGText):

  • rendering/svg/SVGInlineTextBox.cpp:

(WebCore::SVGInlineTextBox::nodeAtPoint):

  • rendering/svg/SVGInlineTextBox.h:

(SVGInlineTextBox):

08:09 Changeset [120823] by tomz@codeaurora.org
  • 3 edits
    2 adds in trunk

Import themaninblue.com/experiment/AnimationBenchmark/ as performance tests
https://bugs.webkit.org/show_bug.cgi?id=78789

Reviewed by Ryosuke Niwa.

PerformanceTests:

Added PerfTestRunner fixture around it.

  • Animation/balls.html: Added.

Tools:

Updated parser to include fps as a valid unit.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest):
(PerfTest.parse_output):

08:07 Changeset [120822] by yurys@chromium.org
  • 4 edits in trunk/Source/WebCore

Web Inspector: don't report context ids before DidCommitLoad
https://bugs.webkit.org/show_bug.cgi?id=89567

Reviewed by Pavel Feldman.

When inspector state is restored only report existing context ids
if "did commit load" even has already been dispatched.

  • inspector/InspectorController.cpp:

(WebCore::InspectorController::InspectorController):

  • inspector/PageRuntimeAgent.cpp:

(WebCore::PageRuntimeAgent::PageRuntimeAgent):
(WebCore::PageRuntimeAgent::restore):

  • inspector/PageRuntimeAgent.h:

(WebCore):
(WebCore::PageRuntimeAgent::create):
(PageRuntimeAgent):

08:03 Changeset [120821] by ossy@webkit.org
  • 3 edits in trunk/Tools

webkit-patch should add reviewer if "Reviewed by NOBODY ..." is missing
https://bugs.webkit.org/show_bug.cgi?id=67935

Patch by Balazs Ankes <bank@inf.u-szeged.hu> on 2012-06-20
Reviewed by Ryosuke Niwa.

  • Scripts/webkitpy/common/checkout/changelog.py:

(ChangeLog.set_reviewer):

  • Scripts/webkitpy/common/checkout/changelog_unittest.py:

(test_set_reviewer):
(test_set_short_description_and_bug_url):

06:52 Changeset [120820] by commit-queue@webkit.org
  • 76 edits in trunk/Source

[Chromium] Remove redundant #includes in compositor
https://bugs.webkit.org/show_bug.cgi?id=89503

Patch by Zeev Lieber <zlieber@chromium.org> on 2012-06-20
Reviewed by Adrienne Walker.

Source/WebCore:

Removed some redundant #includes to clarify dependency
picture. Some 90 #includes removed, some 50 less disruptive
#includes added. This brings the number of class dependencies to
902 from 1383.

No new tests are required, as this is only affects compile-time behavior.

  • platform/graphics/chromium/AnimationTranslationUtil.h:

(WebCore):

  • platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.cpp:
  • platform/graphics/chromium/BitmapSkPictureCanvasLayerTextureUpdater.h:
  • platform/graphics/chromium/Canvas2DLayerBridge.cpp:
  • platform/graphics/chromium/Canvas2DLayerBridge.h:
  • platform/graphics/chromium/ContentLayerChromium.cpp:
  • platform/graphics/chromium/ContentLayerChromium.h:
  • platform/graphics/chromium/DrawingBufferChromium.cpp:
  • platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
  • platform/graphics/chromium/GraphicsLayerChromium.h:
  • platform/graphics/chromium/ImageLayerChromium.cpp:
  • platform/graphics/chromium/LayerChromium.h:
  • platform/graphics/chromium/LayerRendererChromium.cpp:
  • platform/graphics/chromium/LayerRendererChromium.h:

(WebCore):

  • platform/graphics/chromium/LayerTextureUpdater.h:
  • platform/graphics/chromium/ManagedTexture.cpp:
  • platform/graphics/chromium/ProgramBinding.h:
  • platform/graphics/chromium/RenderSurfaceChromium.cpp:
  • platform/graphics/chromium/RenderSurfaceChromium.h:
  • platform/graphics/chromium/TextureCopier.cpp:
  • platform/graphics/chromium/TextureLayerChromium.cpp:
  • platform/graphics/chromium/TextureManager.cpp:
  • platform/graphics/chromium/TiledLayerChromium.cpp:
  • platform/graphics/chromium/TiledLayerChromium.h:
  • platform/graphics/chromium/cc/CCActiveAnimation.h:

(WebCore):

  • platform/graphics/chromium/cc/CCDelayBasedTimeSource.cpp:
  • platform/graphics/chromium/cc/CCDrawQuad.cpp:
  • platform/graphics/chromium/cc/CCFontAtlas.cpp:
  • platform/graphics/chromium/cc/CCFrameRateController.cpp:
  • platform/graphics/chromium/cc/CCFrameRateController.h:

(WebCore):

  • platform/graphics/chromium/cc/CCHeadsUpDisplay.cpp:
  • platform/graphics/chromium/cc/CCHeadsUpDisplay.h:

(WebCore):

  • platform/graphics/chromium/cc/CCIOSurfaceLayerImpl.cpp:
  • platform/graphics/chromium/cc/CCLayerAnimationController.h:
  • platform/graphics/chromium/cc/CCLayerImpl.cpp:
  • platform/graphics/chromium/cc/CCLayerImpl.h:

(WebCore):

  • platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
  • platform/graphics/chromium/cc/CCLayerTreeHost.h:

(WebCore):

  • platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
  • platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
  • platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
  • platform/graphics/chromium/cc/CCOcclusionTracker.h:

(WebCore):

  • platform/graphics/chromium/cc/CCProxy.cpp:
  • platform/graphics/chromium/cc/CCQuadCuller.cpp:
  • platform/graphics/chromium/cc/CCRenderPass.h:

(WebCore):

  • platform/graphics/chromium/cc/CCRenderSurface.cpp:
  • platform/graphics/chromium/cc/CCRenderSurface.h:
  • platform/graphics/chromium/cc/CCRenderer.h:
  • platform/graphics/chromium/cc/CCScopedThreadProxy.h:
  • platform/graphics/chromium/cc/CCScrollbarLayerImpl.cpp:
  • platform/graphics/chromium/cc/CCScrollbarLayerImpl.h:
  • platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
  • platform/graphics/chromium/cc/CCSingleThreadProxy.h:
  • platform/graphics/chromium/cc/CCSolidColorLayerImpl.cpp:
  • platform/graphics/chromium/cc/CCTextureLayerImpl.cpp:
  • platform/graphics/chromium/cc/CCThreadProxy.cpp:
  • platform/graphics/chromium/cc/CCThreadProxy.h:
  • platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
  • platform/graphics/chromium/cc/CCTiledLayerImpl.h:

(WebCore):

  • platform/graphics/chromium/cc/CCTimer.cpp:
  • platform/graphics/chromium/cc/CCTimer.h:

(WebCore):

  • platform/graphics/chromium/cc/CCVideoLayerImpl.cpp:

Source/WebKit/chromium:

Minor adjustments to #include statements to remove
dependencies. No new tests.

  • src/WebCompositorImpl.cpp:
  • src/WebLayerTreeView.cpp:
  • tests/CCLayerTestCommon.cpp:
  • tests/CCLayerTreeHostImplTest.cpp:
  • tests/CCLayerTreeHostTest.cpp:
  • tests/CCOcclusionTrackerTest.cpp:
  • tests/CCQuadCullerTest.cpp:
  • tests/CCTiledLayerImplTest.cpp:
  • tests/ImageLayerChromiumTest.cpp:
  • tests/LayerRendererChromiumTest.cpp:
  • tests/TiledLayerChromiumTest.cpp:
06:32 Changeset [120819] by commit-queue@webkit.org
  • 5 edits in trunk/Source/WebCore

Web Inspector: Implement native memory bar diagram
https://bugs.webkit.org/show_bug.cgi?id=89106

Patch by Alexei Filippov <alexeif@chromium.org> on 2012-06-20
Reviewed by Yury Semikhatsky.

  • inspector/front-end/NativeMemorySnapshotView.js:

(WebInspector.NativeMemoryBarChart):
(WebInspector.NativeMemoryBarChart.prototype._updateStats):
(WebInspector.NativeMemoryBarChart.prototype.willHide):
(WebInspector.NativeMemoryBarChart.prototype.wasShown):
(WebInspector.NativeMemoryBarChart.prototype._updateView):

  • inspector/front-end/ProfileLauncherView.js:

(WebInspector.ProfileLauncherView):

  • inspector/front-end/Settings.js:

(WebInspector.ExperimentsSettings):

  • inspector/front-end/nativeMemoryProfiler.css:

(.memory-bar-chart-name):
(.memory-bar-chart-bar):
(.memory-bar-chart-size):
(.memory-bar-chart-total):

06:26 Changeset [120818] by alexis.menard@openbossa.org
  • 4 edits in trunk/Source/WebKit2

REGRESSION (120705) : LayerTreeHostQt asserts in debug.
https://bugs.webkit.org/show_bug.cgi?id=89487

Reviewed by Noam Rosenthal.

We try to call createHandle twice on the same handle when the
first matching atlas is full. This patch solved the problem by
moving the createHandle call inside UpdateAtlas and call createHandle
only when the atlas is not full. We can also remove the surface()
getter as it is not used anymore.

  • WebProcess/WebPage/UpdateAtlas.cpp:

(WebKit::UpdateAtlas::beginPaintingOnAvailableBuffer):

  • WebProcess/WebPage/UpdateAtlas.h:

(UpdateAtlas):

  • WebProcess/WebPage/qt/LayerTreeHostQt.cpp:

(WebKit::LayerTreeHostQt::beginContentUpdate):

05:35 Changeset [120817] by hans@chromium.org
  • 13 edits in trunk

Speech JavaScript API: add SpeechRecognition.maxAlternatives attribute
https://bugs.webkit.org/show_bug.cgi?id=89459

Reviewed by Eric Seidel.

Source/WebCore:

Add the SpeechRecognition.maxAlternatives attribute.

Test: fast/speech/scripted/basics.html:

  • Modules/speech/SpeechRecognition.cpp:

(WebCore::SpeechRecognition::start):
(WebCore::SpeechRecognition::SpeechRecognition):

  • Modules/speech/SpeechRecognition.h:

(WebCore::SpeechRecognition::maxAlternatives):
(WebCore::SpeechRecognition::setMaxAlternatives):
(SpeechRecognition):

  • Modules/speech/SpeechRecognition.idl:
  • Modules/speech/SpeechRecognitionClient.h:

(SpeechRecognitionClient):

  • Modules/speech/SpeechRecognitionController.h:

(WebCore::SpeechRecognitionController::start):
(SpeechRecognitionController):

Source/WebKit/chromium:

Plumbing for the maxAlternatives attribute.

  • public/WebSpeechRecognitionParams.h:

(WebKit::WebSpeechRecognitionParams::WebSpeechRecognitionParams):
(WebKit::WebSpeechRecognitionParams::maxAlternatives):
(WebSpeechRecognitionParams):

  • src/SpeechRecognitionClientProxy.cpp:

(WebKit::SpeechRecognitionClientProxy::start):

  • src/SpeechRecognitionClientProxy.h:

(SpeechRecognitionClientProxy):

LayoutTests:

Update the basic test to check for presence of the maxAlternatives attribute.

  • fast/speech/scripted/basics-expected.txt:
  • fast/speech/scripted/basics.html:
04:48 Changeset [120816] by commit-queue@webkit.org
  • 4 edits
    2 adds in trunk

applyAuthorStyles makes rules declared in all enclosing shadow dom subtrees applicable.
https://bugs.webkit.org/show_bug.cgi?id=89061

Patch by Takashi Sakamoto <tasak@google.com> on 2012-06-20
Reviewed by Dimitri Glazkov.

Source/WebCore:

Fixing apply-author-styles bug. If there exists some shadow subtree A
and A has apply-author-styles flag set, whether some rules declared in
a tree B is applicable in A or not depends on:

  • the tree B encloses the tree A, and
  • all trees which enclose A and are enclosed by B has apply-author-styles set.

c.f.
http://dvcs.w3.org/hg/webcomponents/raw-file/tip/spec/shadow/index.html#styles
However the second rule was not implemented.

Test: fast/css/style-scoped/style-scoped-apply-author-styles.html

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::setupScopeStack):
Modified to add a new member variable, authorStyleBoundsIndex to
ScopeStackFrame used by m_scopeStack. The index means: if shadow dom
subtree A and B has the same value and A encloses B, all shadow dom
subtrees which enclose B and are enclosed by B have
apply-author-styles set. And B also has apply-author-styles set.
This means, if some element X has authorStyleBoundsIndex N, all
rulesets whose scopes have authorStyleBoundsIndex N are applicable in
B's tree scope. If all shadow dom subtrees have apply-author-styles
unset, the index looks almost the same as treeScope(). In this case,
Rules in different tree scopes have different author style bounds
index.
(WebCore::StyleResolver::pushScope):
(WebCore::StyleResolver::popScope):
Added the code for updating m_scopeStackParentBoundsIndex. The member
variable keeps m_scopeStackParent's author style bounds index.
(WebCore::StyleResolver::matchScopedAuthorRules):
Modified to consider author style's bounds index. Firstly applying
scoped styles declared in document if apply-author-styles is set.
Next, applying scoped styles declared in shadow dom subtree with
considering author style bounds index, i.e. considering
apply-author-styles flag.

  • css/StyleResolver.h:

(WebCore::StyleResolver::ScopeStackFrame::ScopeStackFrame):
(ScopeStackFrame):
Added m_authorStyleBoundsIndex to keep apply-author-styles flag
information. m_authorStyleBoundsIndex increments by 1 if shadow root is
given and it has apply-author-styles unset.
Now rules in the same authorStyleBoundsIndex should be applied.
(StyleResolver):
Added m_scopeStackParentBoundsIndex.
As m_scopeStackParentAuthorStyleBoundsIndex is a little long,
used m_scopeStackParentBoundsIndex.

LayoutTests:

  • fast/css/style-scoped/style-scoped-apply-author-styles-expected.txt: Added.
  • fast/css/style-scoped/style-scoped-apply-author-styles.html: Added.
04:07 Changeset [120815] by hausmann@webkit.org
  • 2 edits in trunk/Tools

Unreviewed trivial permissions fix.

  • qmake/mkspecs/features/features.prf: Don't mark this file as executable.
03:36 Changeset [120814] by commit-queue@webkit.org
  • 5 edits
    2 adds in trunk/Source/WebCore

Adds DeviceMotionClientMock
https://bugs.webkit.org/show_bug.cgi?id=89220

Patch by Amy Ousterhout <aousterh@chromium.org> on 2012-06-20
Reviewed by Steve Block.

No new tests because DeviceMotionClientMock is designed to enable future testing and cannot be tested in itself.

Adds DeviceMotionClientMock in WebCore to enable testing of DeviceMotion once it is fully implemented in WebKit.
This addition was originally included in https://bugs.webkit.org/show_bug.cgi?id=89197 but was split into a separate patch for easier review.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • platform/mock/DeviceMotionClientMock.cpp: Added.

(WebCore):
(WebCore::DeviceMotionClientMock::DeviceMotionClientMock):
(WebCore::DeviceMotionClientMock::setController):
(WebCore::DeviceMotionClientMock::startUpdating):
(WebCore::DeviceMotionClientMock::stopUpdating):
(WebCore::DeviceMotionClientMock::setMotion):
(WebCore::DeviceMotionClientMock::timerFired):

  • platform/mock/DeviceMotionClientMock.h: Added.

(WebCore):
(DeviceMotionClientMock):

02:58 Changeset [120813] by hausmann@webkit.org
  • 2 edits in trunk/Source/WebKit/qt

[Qt] Unreviewed build fix

The platform plugin example uses QGridLayout and thus needs QT += widgets

  • examples/platformplugin/platformplugin.pro:
01:47 Changeset [120812] by sergio@webkit.org
  • 2 edits in trunk/LayoutTests

Unreviewed GTK gardening. Removed some tests from TestExpectations
as they were passing in the tree bots.

  • platform/gtk/TestExpectations:
00:54 Changeset [120811] by morrita@google.com
  • 6 edits
    1 add in trunk/LayoutTests

Unreviewed rebaselining.

  • platform/chromium-linux/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png:
  • platform/chromium-mac-leopard/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png: Added.
  • platform/chromium-mac-snowleopard/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png:
  • platform/chromium-mac/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png:
  • platform/chromium-win/platform/chromium/virtual/gpu/fast/canvas/quadraticCurveTo-expected.png:
  • platform/chromium/TestExpectations:
00:50 QtWebKitBuildBots edited by kkristof@inf.u-szeged.hu
(diff)
00:00 Changeset [120810] by hbono@chromium.org
  • 2 edits in trunk/Source/WebKit/chromium

[chromium] Select the marker range when right-clicking on a marker.
https://bugs.webkit.org/show_bug.cgi?id=89331

Reviewed by Hajime Morita.

Chromium always selects only one word when right-clicking on a spelling marker.
This prevents selecting whole region specified by a marker if the marker
consists of two or more words. This change retrieves a range coverted by a
marker and select the range. This emulates the behavior of Mac Chromium and it
does not need any workarounds for Mac.

  • src/ContextMenuClientImpl.cpp:

(WebKit::ContextMenuClientImpl::getCustomMenuFromDefaultItems):

Note: See TracTimeline for information about the timeline view.