Timeline


and

04/30/12:

23:39 Changeset [115712] by zandobersek@gmail.com

Unreviewed, rebaselining after r115666 and test expectations update
after r115651.

  • platform/gtk/fast/js/constructor-length-expected.txt:
  • platform/gtk/test_expectations.txt:
23:11 FeatureFlags edited by tkent@chromium.org
Add LEGACY_WEBKIT_BLOB_BUILDER (diff)
20:51 Changeset [115711] by tkent@chromium.org

REGRESSION(r115600): parseLocalizedDate() should fail for invalid inputs
https://bugs.webkit.org/show_bug.cgi?id=85176

Reviewed by Kentaro Hara.

Source/WebCore:

Test: fast/forms/date/input-date-commit-valid-only.html

  • platform/text/mac/LocalizedDateMac.mm:

(WebCore::parseLocalizedDate):
We should check nil for the result of NSDateFormtter::dateFromString.

LayoutTests:

  • platform/chromium/test_expectations.txt: Remove an entry for a fixed test.
20:27 Changeset [115710] by mrowe@apple.com

Fix another leak due to misuse of createCFString.

Reviewed by Darin Adler.

  • plugins/mac/PluginPackageMac.cpp:

(WebCore::PluginPackage::fetchInfo): Adopt the result of createCFString.

20:27 Changeset [115709] by mrowe@apple.com

<rdar://problem/11312198> Many leaks during fast/events/dropzone-002.html

Reviewed by Darin Adler.

  • platform/mac/ClipboardMac.mm:

(WebCore::utiTypeFromCocoaType): Adopt the result of createCFString.

20:26 Changeset [115708] by mrowe@apple.com

<rdar://problem/11352575> Many CGImageRefs leaked during media layout tests

Reviewed by Brian Weinstein.

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

(WebCore::MediaPlayerPrivateAVFoundationObjC::createImageForTimeInRect): Adopt the CGImageRef.

20:24 Changeset [115707] by eae@chromium.org

Change RenderBoxModelObject::calculateBackgroundImageGeometry to use roundToInt
https://bugs.webkit.org/show_bug.cgi?id=85249

Reviewed by Eric Seidel.

Prepare RenderBoxModelObject for FractionalLayoutUnits by adding rounding
logic to calculateBackgroundImageGeometry. Background images, as all
images, needs to be layed out on pixel boundaries thus we need to convert
it to a integer value.

No new tests, no change in functionality.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):

20:21 Changeset [115706] by isherman@chromium.org

Unreviewed, rolling out r113511.
http://trac.webkit.org/changeset/113511
https://bugs.webkit.org/show_bug.cgi?id=66032
https://bugs.webkit.org/show_bug.cgi?id=85150

Regression: Many autofilled form fields lack the default
autofill background even when authors don’t override the
autofill colors

Source/WebCore:

  • css/html.css:

(input:-webkit-autofill): Restore !important modifiers

LayoutTests:

  • fast/forms/input-autofilled-expected.txt:
  • fast/forms/input-autofilled.html:
20:13 Changeset [115705] by jchaffraix@webkit.org

Move RenderTableCell's row index to RenderTableRow
https://bugs.webkit.org/show_bug.cgi?id=85229

Reviewed by Ojan Vafai.

Source/WebCore:

Covered by the existing table tests.

Row index is a RenderTableRow concept and as such this change moves
the relevant logic into the class.

While touching the code, renamed row() -> rowIndex() as now RenderTableCell
can return its parent RenderTableRow and we were returning an index, not the row
itself.

  • accessibility/AccessibilityTable.cpp:

(WebCore::AccessibilityTable::cellForColumnAndRow):

  • accessibility/AccessibilityTableCell.cpp:

(WebCore::AccessibilityTableCell::rowIndexRange):
(WebCore::AccessibilityTableCell::titleUIElement):

  • rendering/RenderTable.cpp:

(WebCore::RenderTable::cellAbove):
(WebCore::RenderTable::cellBelow):
(WebCore::RenderTable::cellBefore):
(WebCore::RenderTable::cellAfter):

  • rendering/RenderTreeAsText.cpp:

(WebCore::RenderTreeAsText::writeRenderObject):
Updated after the renaming RenderTableCell::row() -> rowIndex().

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::RenderTableCell):
(WebCore::RenderTableCell::computeCollapsedBeforeBorder):
(WebCore::RenderTableCell::computeCollapsedAfterBorder):
Updated after m_rowIndex removal and row() -> rowIndex() renaming.

(WebCore::RenderTableCell::styleDidChange):
Switched the rowWasSet check to an ASSERT. The new logic guarantees that
row index was set straight when we insert the row. The previous logic was
opened to some race conditions as we could wait for a recalcCells call before
setting the index on the rows which made this check necessary.

  • rendering/RenderTableCell.h:

(WebCore::RenderTableCell::row):
Added this RenderTableRow getter.

(WebCore::RenderTableCell::rowIndex):
Renamed from row().

  • rendering/RenderTableRow.cpp:

(WebCore::RenderTableRow::RenderTableRow):
(WebCore::RenderTableRow::styleDidChange):
Updated after adding m_rowIndex / rowIndex().

  • rendering/RenderTableRow.h:

(WebCore::RenderTableRow::setRowIndex):
(WebCore::RenderTableRow::rowIndex):
Added those getter / setter. Also kept m_rowIndex's smaller size
for future optimization and for symmetry with the column index on
RenderTableCell.

  • rendering/RenderTableSection.cpp:

(WebCore::RenderTableSection::addChild):
(WebCore::RenderTableSection::recalcCells):
Made sure that whenever we insert or update our row index
we do call setRowIndex().

(WebCore::RenderTableSection::addCell):
This logic now doesn't need to query insertionRow as the cell's
should have the index of the row in which it is inserted.

(WebCore::RenderTableSection::calcRowLogicalHeight):
(WebCore::RenderTableSection::layoutRows):
(WebCore::compareCellPositionsWithOverflowingCells):
More updates after row() -> rowIndex() renaming.

  • rendering/RenderTableSection.h:

Removed rowIndexForRenderer now that the row caches this informatin.

Source/WebKit/chromium:

  • tests/RenderTableCellTest.cpp:

Updated after the refactoring.

19:53 Changeset [115704] by keishi@webkit.org

datalist: Inconsistent behavior of HTMLInputElement::list
https://bugs.webkit.org/show_bug.cgi?id=84351

Source/WebCore:

Each platform will have a different set of input types that support the datalist UI.
This patch makes shouldRespectListAttribute ask the RenderTheme if it supports datalist UI for that input type.
Thus making it possible to do feature detection with JS.

Reviewed by Kent Tamura.

  • WebCore.gypi: Added RenderThemeChromiumCommon.{cpp,h}
  • html/ColorInputType.cpp:

(WebCore::ColorInputType::shouldRespectListAttribute):
(WebCore):

  • html/ColorInputType.h:

(ColorInputType):

  • html/InputType.cpp:

(WebCore::InputType::themeSupportsDataListUI): Static method used by TextFieldInputType, RangeInputType, and ColorInputType.
(WebCore):

  • html/InputType.h:

(InputType):

  • html/RangeInputType.cpp:

(WebCore::RangeInputType::shouldRespectListAttribute):

  • html/TextFieldInputType.cpp:

(WebCore::TextFieldInputType::shouldRespectListAttribute):

  • rendering/RenderTheme.h:

(RenderTheme):
(WebCore::RenderTheme::supportsDataListUI): Returns true if the platform can show the datalist suggestions for a given input type.

  • rendering/RenderThemeChromiumCommon.cpp: Added.

(WebCore):
(WebCore::RenderThemeChromiumCommon::supportsDataListUI):

  • rendering/RenderThemeChromiumCommon.h: Added.

(WebCore):
(RenderThemeChromiumCommon):

  • rendering/RenderThemeChromiumMac.h:

(RenderThemeChromiumMac):

  • rendering/RenderThemeChromiumMac.mm:

(WebCore::RenderThemeChromiumMac::supportsDataListUI):
(WebCore):

  • rendering/RenderThemeChromiumSkia.cpp:

(WebCore::RenderThemeChromiumMac::supportsDataListUI):
(WebCore):

  • rendering/RenderThemeChromiumSkia.h:

(RenderThemeChromiumSkia):

LayoutTests:

Reviewed by Kent Tamura.

  • fast/forms/datalist/input-list-expected.txt:
  • fast/forms/datalist/input-list.html: Added tests for all input types.
  • platform/chromium/fast/forms/datalist/input-list-expected.txt: Added.
19:51 Changeset [115703] by gavinp@chromium.org

[Chromium] Add thunk headers for staging Prerendering API.
https://bugs.webkit.org/show_bug.cgi?id=84880

Reviewed by Adam Barth.

These empty headers will be replaced by the actual API when Bug 85005 is commited.

Source/Platform:

  • Platform.gypi:
  • chromium/public/WebPrerender.h: Added.

(WebKit):
(WebPrerender):
(ExtraData):
(WebKit::WebPrerender::ExtraData::~ExtraData):
(WebKit::WebPrerender::url):
(WebKit::WebPrerender::referrer):
(WebKit::WebPrerender::referrerPolicy):
(WebKit::WebPrerender::setExtraData):
(WebKit::WebPrerender::extraData):
(WebKit::WebPrerender::WebPrerender):
(WebKit::WebPrerender::~WebPrerender):

  • chromium/public/WebPrerenderingSupport.h: Added.

(WebKit):
(WebPrerenderingSupport):
(WebKit::WebPrerenderingSupport::initialize):
(WebKit::WebPrerenderingSupport::shutdown):
(WebKit::WebPrerenderingSupport::current):
(WebKit::WebPrerenderingSupport::add):
(WebKit::WebPrerenderingSupport::cancel):
(WebKit::WebPrerenderingSupport::abandon):
(WebKit::WebPrerenderingSupport::WebPrerenderingSupport):
(WebKit::WebPrerenderingSupport::~WebPrerenderingSupport):

Source/WebKit/chromium:

  • WebKit.gyp:
  • public/WebPrerendererClient.h: Added.

(WebKit):
(WebPrerendererClient):

  • public/WebView.h:

(WebKit):
(WebKit::WebView::setPrerendererClient):

19:38 Changeset [115702] by isherman@chromium.org

[Chromium] Fix Autofill popup visibility behavior
Prevent users from interacting with invisible Autofill popups rendered outside the main frame's contents view.
This is a recommit of r115400, restricted to just Autofill popups.
https://bugs.webkit.org/show_bug.cgi?id=84420

Reviewed by Abhishek Arya

  • src/ChromeClientImpl.cpp:

(WebKit::ChromeClientImpl::popupOpened): Hide popups rendered outside the main frame's contents view.

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::applyAutofillSuggestions): Fix up order of operations to support immediately hiding a popup if it would not be visible

19:24 FeatureFlags edited by tkent@chromium.org
Add LINK_PRERENDER, SUBPIXEL_LAYOUT, and NATIVE_FULLSCREEN_VIDEO (diff)
19:15 Changeset [115701] by leviw@chromium.org

RenderObject incorrectly lists maximalOutlineSize as a LayoutUnit
https://bugs.webkit.org/show_bug.cgi?id=85248

Reviewed by Eric Seidel.

Reverting RenderObject::maximalOutlineSize to int. This is a slop value for repaint
rects that doesn't affect layout. It also derives its value from RenderView's function
of the same name, which is already an integer.

No new tests. No change in behavior.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::maximalOutlineSize):

  • rendering/RenderObject.h:

(RenderObject):

19:09 Changeset [115700] by commit-queue@webkit.org

REGRESSION: editing/inserting/insert-bg-font.html fails on Lion
https://bugs.webkit.org/show_bug.cgi?id=82079

Patch by Koji Ishii <kojiishi@gmail.com> on 2012-04-30
Reviewed by Ryosuke Niwa.

The test fails only if "Correct spelling automatically" is turned on.
AutoCorrect kicks in because the test has "backgroundblue" as a word,
so changing it to "background blue" fixes the failure.

  • editing/inserting/insert-bg-font-expected.txt: Change "backgroundblue" to "background blue".
  • editing/inserting/insert-bg-font.html: Ditto.
18:50 Changeset [115699] by commit-queue@webkit.org

Add multichannel support for input of JavaScriptAudioNode
https://bugs.webkit.org/show_bug.cgi?id=84687

Patch by Xingnan Wang <xingnan.wang@intel.com> on 2012-04-30
Reviewed by Chris Rogers.

Source/WebCore:

Tests: webaudio/javascriptaudionode-downmix8-2channel-input.html

webaudio/javascriptaudionode-upmix2-8channel-input.html

  • Modules/webaudio/JavaScriptAudioNode.cpp:

(WebCore::JavaScriptAudioNode::create):
(WebCore::JavaScriptAudioNode::JavaScriptAudioNode):
(WebCore::JavaScriptAudioNode::initialize):
(WebCore::JavaScriptAudioNode::process):

  • Modules/webaudio/JavaScriptAudioNode.h:

(JavaScriptAudioNode):

LayoutTests:

  • webaudio/javascriptaudionode-downmix8-2channel-input-expected.txt: Added.
  • webaudio/javascriptaudionode-downmix8-2channel-input.html: Added.
  • webaudio/javascriptaudionode-upmix2-8channel-input-expected.txt: Added.
  • webaudio/javascriptaudionode-upmix2-8channel-input.html: Added.
  • webaudio/resources/javascriptaudionode-testing.js: Added.

(createBuffer):
(processAudioData):
(fillData):
(checkStereoOnlyData):
(runJSNodeTest):

18:38 Changeset [115698] by andersca@apple.com

Crash when opening plug-ins in background tabs
https://bugs.webkit.org/show_bug.cgi?id=85255
<rdar://problem/11344053>

Reviewed by Dan Bernstein.

  • PluginProcess/mac/PluginControllerProxyMac.mm:

(WebKit::PluginControllerProxy::setLayerHostingMode):
m_layerHostingContext can be null for plug-ins that don't use the Core Animation drawing model, so check for that.

18:20 Changeset [115697] by barraclough@apple.com

Should be able to use YARR JIT without the JS language JIT
https://bugs.webkit.org/show_bug.cgi?id=85252

Reviewed by Geoff Garen.

Need to split canUseRegExpJIT out of canUseJIT.

  • runtime/JSGlobalData.cpp:

(JSC):
(JSC::useJIT):
(JSC::JSGlobalData::JSGlobalData):

  • replace m_canUseJIT with m_canUseAssembler
  • runtime/JSGlobalData.h:

(JSGlobalData):
(JSC::JSGlobalData::canUseRegExpJIT):

  • Added canUseRegExpJIT, distinct from canUseJIT.
  • runtime/RegExp.cpp:

(JSC::RegExp::compile):
(JSC::RegExp::compileMatchOnly):

  • Call canUseRegExpJIT instead of canUseJIT.
18:10 Changeset [115696] by yael.aharon@nokia.com

[Qt][WK2] Fixed layers are shaking when zoom level is not 1.0 due to a rounding error.
https://bugs.webkit.org/show_bug.cgi?id=84306

Reviewed by Noam Rosenthal.

When zooming, we need to be careful about how to convert the visible rect from float to int.
Using toAlignedRect can produce inconsistent width and height when we are scrolling.
This patch carefully modifies each piece of the visible rect, to avoid such rounding errors.
In addition, the TransformationMatrix we use for painting, needs to be adjusted for the same rounding error.

  • UIProcess/API/qt/qquickwebview.cpp:

(QQuickWebViewPrivate::visibleContentsRect):
(QQuickWebViewFlickablePrivate::_q_contentViewportChanged):

  • UIProcess/DrawingAreaProxy.h:

(WebCore):
(WebKit::DrawingAreaProxy::setVisibleContentsRect):

  • UIProcess/DrawingAreaProxyImpl.cpp:

(WebKit::DrawingAreaProxyImpl::setVisibleContentsRect):

  • UIProcess/DrawingAreaProxyImpl.h:

(DrawingAreaProxyImpl):

  • UIProcess/LayerTreeHostProxy.cpp:

(WebKit::LayerTreeHostProxy::setVisibleContentsRect):

  • UIProcess/LayerTreeHostProxy.h:

(LayerTreeHostProxy):

  • UIProcess/WebLayerTreeRenderer.cpp:

(WebKit::WebLayerTreeRenderer::paintToCurrentGLContext):
(WebKit::WebLayerTreeRenderer::setVisibleContentsRect):

  • UIProcess/WebLayerTreeRenderer.h:

(WebLayerTreeRenderer):

17:57 WebKit Team edited by leviw@chromium.org
(diff)
17:52 Changeset [115695] by oliver@apple.com

Source/WebCore: Harden arithmetic in ImageBufferDataCG
https://bugs.webkit.org/show_bug.cgi?id=61373

Reviewed by Gavin Barraclough.

We have a checked type that allows us to automate many of the
bounds checks we want here, so let's replace the floating point
math, and just use Checked<> throughout. We use a non-recording
Checked<> as no overflows should reach this point, so we'll take
a hard early failure, over the cost of many branches when
accessing the raw values in loops.

  • platform/graphics/cg/ImageBufferDataCG.cpp:

(WebCore::ImageBufferData::getData):
(WebCore::ImageBufferData::putData):

Source/WTF: Investigate overflows in Canvas putImageData routine
https://bugs.webkit.org/show_bug.cgi?id=61373

Reviewed by Gavin Barraclough.

Allow floating point multiplies of checked types (complete with
bounds checks).

  • wtf/CheckedArithmetic.h:

(Checked):
(WTF::Checked::operator*=):

17:47 Changeset [115694] by fpizlo@apple.com

Bytecode dumps should contain data about the state of get_by_id caches
https://bugs.webkit.org/show_bug.cgi?id=85246

Reviewed by Gavin Barraclough.

Changed the DFG bytecode parser (and the code that calls it) to be able
to call codeBlock->dump() on the code blocks being parsed.

Changed bytecode dumping to be able to print the state of get_by_id
caches inline with the bytecode.

Removed the old StructureStubInfo dumping code, which no longer worked
right, and was incapable of telling us information about chain and list
accesses.

This change does not add dumping for put_by_id caches. We can add that
at a later time.

  • bytecode/CodeBlock.cpp:

(JSC::CodeBlock::printUnaryOp):
(JSC::CodeBlock::printBinaryOp):
(JSC::CodeBlock::printConditionalJump):
(JSC::CodeBlock::printGetByIdOp):
(JSC::dumpStructure):
(JSC):
(JSC::dumpChain):
(JSC::CodeBlock::printGetByIdCacheStatus):
(JSC::CodeBlock::printCallOp):
(JSC::CodeBlock::printPutByIdOp):
(JSC::printGlobalResolveInfo):
(JSC::CodeBlock::printStructure):
(JSC::CodeBlock::printStructures):
(JSC::CodeBlock::dump):
(JSC::CodeBlock::visitStructures):
(JSC::ProgramCodeBlock::jitCompileImpl):
(JSC::EvalCodeBlock::jitCompileImpl):
(JSC::FunctionCodeBlock::jitCompileImpl):

  • bytecode/CodeBlock.h:

(CodeBlock):
(JSC::CodeBlock::jitCompile):
(ProgramCodeBlock):
(EvalCodeBlock):
(FunctionCodeBlock):

  • dfg/DFGByteCodeParser.cpp:

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

  • dfg/DFGByteCodeParser.h:

(DFG):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compile):
(JSC::DFG::tryCompile):
(JSC::DFG::tryCompileFunction):

  • dfg/DFGDriver.h:

(DFG):
(JSC::DFG::tryCompile):
(JSC::DFG::tryCompileFunction):

  • dfg/DFGOSRExitCompiler.cpp:
  • jit/JITDriver.h:

(JSC::jitCompileIfAppropriate):
(JSC::jitCompileFunctionIfAppropriate):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::jitCompileAndSetHeuristics):

  • runtime/Executable.cpp:

(JSC::EvalExecutable::jitCompile):
(JSC::EvalExecutable::compileInternal):
(JSC::ProgramExecutable::jitCompile):
(JSC::ProgramExecutable::compileInternal):
(JSC::FunctionExecutable::jitCompileForCall):
(JSC::FunctionExecutable::jitCompileForConstruct):
(JSC::FunctionExecutable::compileForCallInternal):
(JSC::FunctionExecutable::compileForConstructInternal):

  • runtime/Executable.h:

(EvalExecutable):
(ProgramExecutable):
(FunctionExecutable):
(JSC::FunctionExecutable::jitCompileFor):

  • runtime/ExecutionHarness.h:

(JSC::prepareForExecution):
(JSC::prepareFunctionForExecution):

17:39 Changeset [115693] by zmo@google.com

Unreviewed, test expectations update.

  • platform/chromium/test_expectations.txt:
17:09 Changeset [115692] by leviw@chromium.org

Change lround to roundToInt as we're dealing with LayoutUnits.

17:06 Changeset [115691] by leviw@chromium.org

Add absoluteValue method for LayoutUnits to allow overloading abs()
https://bugs.webkit.org/show_bug.cgi?id=85214

Reviewed by Eric Seidel.

Adding an absoluteValue free inline function that operates on LayoutUnits, which
allows us to have one function signature for ints or FractionalLayoutUnits. We
can't simply add a FractionalLayoutUnit flavor of abs because it confuses
some compilers due to the implicit FractionalLayoutUnit constructors that take
ints and floats.

No new tests. No change in behavior.

  • page/SpatialNavigation.cpp:

(WebCore::distanceDataForNode):

  • rendering/LayoutTypes.h:

(WebCore::absoluteValue):
(WebCore):

  • rendering/RenderBlockLineLayout.cpp:

(WebCore::RenderBlock::checkPaginationAndFloatsAtEndLine):

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::rangeIntersectsRect):

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::repaintAfterLayoutIfNeeded):

16:58 Changeset [115690] by eae@chromium.org

Merge trunk changes up until 115687 into subpixel branch.

16:42 Changeset [115689] by leviw@chromium.org

Update LayoutUnit usage in InlineFlowBox and RenderWidget
https://bugs.webkit.org/show_bug.cgi?id=85239

Reviewed by Eric Seidel.

Updating LayoutUnit usage in a pair of remaining functions to minimize the remaining work to switching
to FractionalLayoutUnits for layout instead of integers.

No new tests. No change in behavior.

  • rendering/InlineFlowBox.cpp:

(WebCore::InlineFlowBox::placeBoxesInBlockDirection): Though stored as a float, the top is always
set to an integer value. When we move to sub-pixel, we need to preserve this. Not preserving this
behavior affects text decorations, most notably underlines.

  • rendering/RenderWidget.cpp:

(WebCore::RenderWidget::updateWidgetGeometry): Adding pixel snapping for the content box if it's
not transformed (absoluteContentBox includes pixel snapping), and properly treating the boundingBox
as an IntRect.

16:34 Changeset [115688] by barraclough@apple.com

Should be able to build YARR JIT without the JS language JIT
https://bugs.webkit.org/show_bug.cgi?id=85242

Reviewed by Michael Saboff.

Some build macros are wrong.

  • assembler/RepatchBuffer.h:
  • jit/ExecutableAllocator.h:

(JSC):

  • jit/JITExceptions.cpp:
  • runtime/InitializeThreading.cpp:

(JSC::initializeThreadingOnce):

16:16 Companies and Organizations that have contributed to WebKit edited by krit@webkit.org
(diff)
16:03 Changeset [115687] by leviw@chromium.org

Prepare RenderDeprecatedFlexibleBox for sub-pixel layout
https://bugs.webkit.org/show_bug.cgi?id=85217

Reviewed by Eric Seidel.

Bailing from the space distribution loop in layoutHorizontal/VerticalBox when
the remaining space falls below one pixel. This has no effect in whole-pixel
layout, but avoids unnecessary work/infinite loops in the sub-pixel case.

No new tests. No change in behavior.

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
(WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):

15:51 Changeset [115686] by rniwa@webkit.org

NULL ptr in WebCore::Range::getBorderAndTextQuads
https://bugs.webkit.org/show_bug.cgi?id=77218

Reviewed by Eric Seidel.

Source/WebCore:

The crash was caused by a malformed range obtained within an event handler of mutation events
(DOMNodeRemovedFromDocument). Because this range wasn't updated per node removal, range functions
end up not behaving well.

Fixed the bug by changing the order of the notifications in ContainerNode::willRemoveChild.
We now fire mutation events first before updating ranges so that any range created inside those
event handlers can also be updated prior to the actual node removal.

Test: fast/dom/Range/range-created-in-mutation-event-crash.xhtml

  • dom/ContainerNode.cpp:

(WebCore::willRemoveChild):

LayoutTests:

Add a regression test. We use alert here instead of innerHTML, textContent, etc...
because document element is no longer well-formed at the end of the test.

  • fast/dom/Range/range-created-in-mutation-event-crash-expected.txt: Added.
  • fast/dom/Range/range-created-in-mutation-event-crash.xhtml: Added.
15:51 Changeset [115685] by ojan@chromium.org

Fix tests to not depend on the actual list of builders at build.chromium.org.

  • TestResultServer/static-dashboards/flakiness_dashboard_unittests.js:

(testHtmlForIndividualTestOnAllBuildersWithChrome):
(testHtmlForIndividualTestOnAllBuildersWithChromeWebkitMaster):

15:49 Changeset [115684] by mrowe@apple.com

REGRESSION (r115544): platform/mac/fast/events/pointer-events-dashboard.html is failing

Remove the test since r115544 removed the special behavior in Dashboard.

Rubber-stamped by Anders Carlsson.

  • platform/mac/fast/events/pointer-events-dashboard-expected.png: Removed.
  • platform/mac/fast/events/pointer-events-dashboard-expected.txt: Removed.
  • platform/mac/fast/events/pointer-events-dashboard.html: Removed.
15:46 Changeset [115683] by tomz@codeaurora.org

Unreviewed gardening

  • platform/qt/test_expectations.txt:
15:44 Changeset [115682] by commit-queue@webkit.org

Source/WebKit/chromium: [chromium] Disable battery-status API support.

The battery-status API support should not have view-dependency. So disable it until
that is fixed.
https://bugs.webkit.org/show_bug.cgi?id=84499

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

  • features.gypi:

LayoutTests: [chromium] Disable battery-status API support.
https://bugs.webkit.org/show_bug.cgi?id=84499

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

  • platform/chromium/fast/dom/navigator-detached-no-crash-expected.txt:
  • platform/chromium/test_expectations.txt:
15:42 Changeset [115681] by andersca@apple.com

ScrollingCoordinator::requestScrollPositionUpdate should not update the main frame scroll position
https://bugs.webkit.org/show_bug.cgi?id=85240
<rdar://problem/11286609>

Reviewed by Sam Weinig.

Source/WebCore:

The call to updateMainFrameScrollPosition was added to make the WebKit2 find overlay work, since it relies
on scroll position updates being synchronous. Change the find code in WebKit2 to handle asynchronous scroll
position updates and remove the call to updateMainFrameScrollPosition.

  • page/scrolling/ScrollingCoordinator.cpp:

(WebCore::ScrollingCoordinator::requestScrollPositionUpdate):

Source/WebKit2:

The find machinery should cope with asynchronous scroll position updates.

  • WebProcess/WebPage/FindController.cpp:

(WebKit::FindController::updateFindUIAfterPageScroll):
Split the code that handles updating the find indicator and find overlay out into a separate function.

(WebKit::FindController::findString):
Call updateFindUIAfterPageScroll once we know that the scroll position has been updated.

15:41 Changeset [115680] by gavinp@chromium.org

[Chromium] Remove Webkit/chromium/public/WebReferrerPolicy.h thunk.
https://bugs.webkit.org/show_bug.cgi?id=84552

After http://codereview.chromium.org/10139023/ lands, this thunk is no
longer needed.

Reviewed by Adam Barth.

  • WebKit.gyp:
  • public/WebReferrerPolicy.h: Removed.
15:29 Changeset [115679] by barraclough@apple.com

Arguments object resets attributes on redefinition of a parameter
https://bugs.webkit.org/show_bug.cgi?id=84994

Rubber stamped by Oliver Hunt.

Source/JavaScriptCore:

There is a bug that we always re-add the original property before
redefinition, doing so in a way that will reset the attributes
without checking configurability.

  • runtime/Arguments.cpp:

(JSC::Arguments::defineOwnProperty):

  • Only instantiate the property once - do not re-add if it has already been added, or if it has been deleted.

LayoutTests:

  • fast/js/arguments-expected.txt:
  • fast/js/script-tests/arguments.js:
    • Added test cases.
15:21 Changeset [115678] by andersca@apple.com

Add a way to asynchronously call a function once the scroll position of a page has been updated
https://bugs.webkit.org/show_bug.cgi?id=85237

Reviewed by Sam Weinig.

Source/WebCore:

  • WebCore.exp.in:

Export functions needed by WebKit2.

  • page/scrolling/ScrollingCoordinator.h:

Make commitTreeStateIfNeeded public.

Source/WebKit2:

Add DrawingArea::dispatchAfterEnsuringUpdatedScrollPosition, which will call the given function object after
making sure that the scroll position has been updated correctly. This is important for TiledCoreAnimationDrawingArea,
which updates the scrolling position asynchronously.

  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
Since scroll position updates are synchronous by default, just call function directly.

  • WebProcess/WebPage/mac/TiledCoreAnimationDrawingArea.mm:

(WebKit::TiledCoreAnimationDrawingArea::dispatchAfterEnsuringUpdatedScrollPosition):
Commit the layer tree state and then use ScrollingThread::dispatchBarrier to make sure that the function is called when any
scroll position changes have been made. If possible, freeze the layer tree to make sure that the update is atomic.

15:14 Changeset [115677] by andersca@apple.com

Fix ALL the build failures!

  • UIProcess/API/mac/WKView.mm:

(-[WKView WebKit::]):

  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.h:
  • UIProcess/mac/TiledCoreAnimationDrawingAreaProxy.mm:
15:06 Changeset [115676] by andersca@apple.com

Build fix.

  • Shared/DrawingAreaInfo.h:
15:04 Changeset [115675] by leviw@chromium.org

Adding absoluteValue abs clone in LayoutTypes and using it throughout WebCore. Replacing a .round() with roundToInt, and adding needed absoluteValues in DeprecatedFlexibleBox.

14:52 Changeset [115674] by rniwa@webkit.org

Remove an erroneous assertion after r115655.

  • runtime/NumberPrototype.cpp:

(JSC::toUStringWithRadix):

14:48 Changeset [115673] by haraken@chromium.org

WebGLRenderingContext methods should throw TypeError for not enough arguments
https://bugs.webkit.org/show_bug.cgi?id=84787

Reviewed by Kenneth Russell.

Currently, WebGLRenderingcontext methods implement
"Not enough arguments" error as SyntaxError. The Web IDL
spec requires that it should be TypeError:
http://www.w3.org/TR/WebIDL/#dfn-overload-resolution-algorithm

This patch changes SyntaxError to TypeError.

Source/WebCore:

I wanted to confirm the behavior of Firefox and Opera,
but they do not implement WebGL yet.

Test: fast/canvas/webgl/webgl-exceptions.html

  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::getObjectParameter):
(WebCore::JSWebGLRenderingContext::getAttachedShaders):
(WebCore::JSWebGLRenderingContext::getExtension):
(WebCore::JSWebGLRenderingContext::getFramebufferAttachmentParameter):
(WebCore::JSWebGLRenderingContext::getParameter):
(WebCore::JSWebGLRenderingContext::getProgramParameter):
(WebCore::JSWebGLRenderingContext::getShaderParameter):
(WebCore::JSWebGLRenderingContext::getUniform):
(WebCore::dataFunctionf):
(WebCore::dataFunctioni):
(WebCore::dataFunctionMatrix):

  • bindings/v8/custom/V8WebGLRenderingContextCustom.cpp:

(WebCore::getObjectParameter):
(WebCore::V8WebGLRenderingContext::getAttachedShadersCallback):
(WebCore::V8WebGLRenderingContext::getExtensionCallback):
(WebCore::V8WebGLRenderingContext::getFramebufferAttachmentParameterCallback):
(WebCore::V8WebGLRenderingContext::getParameterCallback):
(WebCore::V8WebGLRenderingContext::getProgramParameterCallback):
(WebCore::V8WebGLRenderingContext::getShaderParameterCallback):
(WebCore::V8WebGLRenderingContext::getUniformCallback):
(WebCore::vertexAttribAndUniformHelperf):
(WebCore::uniformHelperi):
(WebCore::uniformMatrixHelper):

LayoutTests:

  • fast/canvas/webgl/webgl-exceptions-expected.txt: Added.
  • fast/canvas/webgl/webgl-exceptions.html: Added.
14:41 Changeset [115672] by eae@chromium.org

[gtk, qt, chromium, win] Fix usage of LayoutUnits and rounding in platform code
https://bugs.webkit.org/show_bug.cgi?id=85222

Reviewed by Eric Seidel.

Update platform code to use the pixel snapped values for painting rects
to line up with device pixels and change platform specific hit testing
code to use roundedPoint as hit testing is still mostly done on integer
bounds.

Source/WebCore:

No new tests, no change in functionality.

  • platform/qt/RenderThemeQt.cpp:

(WebCore::RenderThemeQt::paintMediaVolumeSliderTrack):

  • platform/win/PopupMenuWin.cpp:

(WebCore::PopupMenuWin::paint):

  • rendering/RenderThemeChromiumSkia.cpp:

(WebCore::RenderThemeChromiumSkia::paintSearchFieldCancelButton):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsDecoration):
(WebCore::RenderThemeChromiumSkia::paintSearchFieldResultsButton):

Source/WebKit/gtk:

  • WebCoreSupport/ChromeClientGtk.cpp:

(WebKit::ChromeClient::mouseDidMoveOverElement):

  • webkit/webkithittestresult.cpp:

(WebKit::kit):

  • webkit/webkitwebview.cpp:

(getLocationForKeyboardGeneratedContextMenu):
(webkit_web_view_query_tooltip):

Source/WebKit2:

  • WebProcess/WebCoreSupport/win/WebPopupMenuWin.cpp:

(WebKit::WebPopupMenu::setUpPlatformData):

14:38 Changeset [115671] by andersca@apple.com

Put all of TiledCoreAnimationDrawingArea in #if ENABLE(THREADED_SCROLLING)
https://bugs.webkit.org/show_bug.cgi?id=85232

Reviewed by Sam Weinig.

Stop pretending that TiledCoreAnimationDrawingArea works without threaded scrolling.

  • WebProcess/WebPage/DrawingArea.cpp:

(WebKit::DrawingArea::create):

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

(WebKit::TiledCoreAnimationDrawingArea::TiledCoreAnimationDrawingArea):
(WebKit::TiledCoreAnimationDrawingArea::~TiledCoreAnimationDrawingArea):
(WebKit::dispatchBackToMainThread):
(WebKit::TiledCoreAnimationDrawingArea::forceRepaintAsync):
(WebKit::TiledCoreAnimationDrawingArea::didInstallPageOverlay):
(WebKit::TiledCoreAnimationDrawingArea::didUninstallPageOverlay):
(WebKit::TiledCoreAnimationDrawingArea::updatePreferences):

14:37 Changeset [115670] by haraken@chromium.org

[V8][JSC] Remove hard-coded "Not enough arguments" errors
https://bugs.webkit.org/show_bug.cgi?id=85207

Reviewed by Sam Weinig.

In bug 85022 and bug 85097, we implemented
createNotEnoughArgumentsError() in JSC and
V8Proxy::throwNotEnoughArgumentsError() in V8 and partially
removed hard-coded "Not enough arguments" errors.
This patch removes hard-coded "Not enough arguments"
errors by using the helper methods.

No tests. No change in behavior.

  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::JSAudioContextConstructor::constructJSAudioContext):

  • bindings/js/JSSVGLengthCustom.cpp:

(WebCore::JSSVGLength::convertToSpecifiedUnits):

  • bindings/js/JSWebSocketCustom.cpp:

(WebCore::JSWebSocketConstructor::constructJSWebSocket):
(WebCore::JSWebSocket::send):

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::open):

  • bindings/v8/ScriptController.cpp:

(WebCore::setValueAndClosePopupCallback):

  • bindings/v8/custom/V8AudioContextCustom.cpp:

(WebCore::V8AudioContext::constructorCallback):

  • bindings/v8/custom/V8SVGLengthCustom.cpp:

(WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):

  • bindings/v8/custom/V8WebSocketCustom.cpp:

(WebCore::V8WebSocket::constructorCallback):
(WebCore::V8WebSocket::sendCallback):

  • bindings/v8/custom/V8XMLHttpRequestCustom.cpp:

(WebCore::V8XMLHttpRequest::openCallback):

14:32 Changeset [115669] by benjamin@webkit.org

Add String::startsWith() and endsWith() for string literals
https://bugs.webkit.org/show_bug.cgi?id=85154

Reviewed by Darin Adler.

Source/WebCore:

Update WebCore to use the simpler startsWith() and endsWith() taking
a UChar.

  • css/CSSParser.cpp:

(WebCore::CSSParser::markPropertyEnd):

  • css/WebKitCSSKeyframeRule.cpp:

(WebCore::StyleKeyframe::parseKeyString):

  • editing/markup.cpp:

(WebCore::createFragmentFromText):

  • html/HTMLObjectElement.cpp:

(WebCore::HTMLObjectElement::addSubresourceAttributeURLs):

  • html/HTMLTextFormControlElement.cpp:

(WebCore::HTMLTextFormControlElement::setInnerTextValue):

  • inspector/ContentSearchUtils.cpp:

(WebCore::ContentSearchUtils::getRegularExpressionMatchesByLines):

  • inspector/InspectorCSSAgent.cpp:

(WebCore::InspectorCSSAgent::SetPropertyTextAction::redo):

  • loader/MainResourceLoader.cpp:

(WebCore::MainResourceLoader::substituteMIMETypeFromPluginDatabase):

  • loader/appcache/ManifestParser.cpp:

(WebCore::parseManifest):

  • platform/blackberry/CookieManager.cpp:

(WebCore::CookieManager::shouldRejectForSecurityReason):

  • platform/posix/FileSystemPOSIX.cpp:

(WebCore::pathByAppendingComponent):

  • plugins/PluginDatabase.cpp:

(WebCore::PluginDatabase::findPlugin):

  • svg/SVGStopElement.cpp:

(WebCore::SVGStopElement::parseAttribute):

  • svg/animation/SVGSMILElement.cpp:

(WebCore::SVGSMILElement::parseOffsetValue):
(WebCore::SVGSMILElement::parseCondition):

Source/WebKit/blackberry:

  • WebKitSupport/DOMSupport.cpp:

(BlackBerry::WebKit::DOMSupport::elementPatternMatches):

Source/WebKit2:

Update WebKit2 to use String::endsWith(UChar).

  • UIProcess/Plugins/PluginInfoStore.cpp:

(WebKit::pathExtension):

Source/WTF:

When invoking StringImpl::startsWidth() or StringImpl::endsWith() with
a string literal, a new String was constructed implicitly, allocating
a new StringImpl and copying the characters for the operation.

This patch adds a version of those methods for single characters and
string literals.
This allows us to avoid allocating memory and use the characters in place,
and it permits some extra shortcuts in the implementation.

  • wtf/text/AtomicString.h:

(WTF::AtomicString::startsWith):
(AtomicString):
(WTF::AtomicString::endsWith):

  • wtf/text/StringImpl.cpp:

(WTF::equalInner):
(WTF):
(WTF::StringImpl::startsWith):
(WTF::StringImpl::endsWith):

  • wtf/text/StringImpl.h:

(WTF::StringImpl::startsWith):
(StringImpl):
(WTF::StringImpl::endsWith):

  • wtf/text/WTFString.h:

(WTF::String::startsWith):
(String):
(WTF::String::endsWith):

14:30 Changeset [115668] by inferno@chromium.org

Source/WebCore: Remove positioned float code.
https://bugs.webkit.org/show_bug.cgi?id=84795

Reviewed by Dan Bernstein.

Backout r92004 and some pieces from r91702.

Test: fast/block/float/positioned-float-crash.html

  • css/CSSParser.cpp:

(WebCore::isValidKeywordPropertyAndValue):

  • css/CSSPrimitiveValueMappings.h:

(WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
(WebCore::CSSPrimitiveValue::operator EFloat):

  • css/CSSValueKeywords.in:
  • rendering/RenderBlock.cpp:

(WebCore::RenderBlock::RenderBlock):
(WebCore::RenderBlock::layoutBlock):
(WebCore::RenderBlock::addOverflowFromFloats):
(WebCore::RenderBlock::layoutBlockChild):
(WebCore::RenderBlock::simplifiedLayout):
(WebCore::RenderBlock::layoutPositionedObjects):
(WebCore::RenderBlock::insertFloatingObject):
(WebCore::RenderBlock::positionNewFloats):
(WebCore::RenderBlock::clearFloats):
(WebCore::RenderBlock::FloatingObjects::clear):
(WebCore::RenderBlock::FloatingObjects::increaseObjectsCount):
(WebCore::RenderBlock::FloatingObjects::decreaseObjectsCount):

  • rendering/RenderBlock.h:

(RenderBlock):
(WebCore::RenderBlock::forceLayoutInlineChildren):
(FloatingObject):
(WebCore::RenderBlock::FloatingObject::FloatingObject):
(WebCore::RenderBlock::hasOverhangingFloats):
(WebCore::RenderBlock::FloatingObjects::FloatingObjects):
(FloatingObjects):

  • rendering/RenderBox.cpp:

(WebCore::RenderBox::updateBoxModelInfoFromStyle):

  • rendering/RenderDeprecatedFlexibleBox.cpp:

(WebCore::RenderDeprecatedFlexibleBox::layoutBlock):

  • rendering/RenderDeprecatedFlexibleBox.h:

(RenderDeprecatedFlexibleBox):

  • rendering/RenderFlexibleBox.cpp:

(WebCore::RenderFlexibleBox::layoutBlock):

  • rendering/RenderFlexibleBox.h:

(RenderFlexibleBox):

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateScrollbarsAfterLayout):

  • rendering/style/RenderStyleConstants.h:

LayoutTests: Remove positioned float code.
https://bugs.webkit.org/show_bug.cgi?id=84795

Reviewed by Dan Bernstein.

  • fast/block/float/positioned-float-crash-expected.txt: Added.
  • fast/block/float/positioned-float-crash.html: Added.
14:15 Changeset [115667] by jchaffraix@webkit.org

Merge 114574 - REGRESSION(102040): Auto-table layout with percent width doesn't shrink-to-fit content a cell with colspan
https://bugs.webkit.org/show_bug.cgi?id=84260

Reviewed by Ojan Vafai.

Source/WebCore:

Tests: fast/table/td-width-fifty-percent-regression-expected.html

fast/table/td-width-fifty-percent-regression.html

  • rendering/AutoTableLayout.cpp:

(WebCore::AutoTableLayout::calcEffectiveLogicalWidth):
As we are spreading the cell's min / max logical width, we should be updating them.
This prevents the following logic getting confused and allocating more than needed.

LayoutTests:

  • fast/table/td-width-fifty-percent-regression-expected.html: Added.
  • fast/table/td-width-fifty-percent-regression.html: Added.

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

14:11 Changeset [115666] by weinig@apple.com

Remove BlobBuilder
https://bugs.webkit.org/show_bug.cgi?id=84036

Reviewed by Anders Carlsson.

Source/WebCore:

  • GNUmakefile.am:
  • fileapi/WebKitBlobBuilder.idl:
  • page/DOMWindow.idl:
  • workers/WorkerContext.idl:

Make exposing the WebKitBlobBuilder JS object conditional on a new
ENABLE_LEGACY_WEBKIT_BLOB_BUILDER flag. Don't enable this for the Mac,
but do for everyone else.

Source/WebKit/chromium:

  • features.gypi:

Keep WebKitBlobBuilder enabled for Chromium, since it has shipped it.

Tools:

  • Scripts/build-webkit:
  • qmake/mkspecs/features/features.prf:

Make exposing the WebKitBlobBuilder JS object conditional on a new
ENABLE_LEGACY_WEBKIT_BLOB_BUILDER flag. Don't enable this for the Mac,
but do for everyone else.

LayoutTests:

  • fast/js/constructor-length.html:
  • platform/mac/fast/js/constructor-length-expected.txt:

Remove WebKitBlobBuilder from this test, as it is not exposed on all platforms,
and add Blob, which is.

  • platform/mac/Skipped:

Skip fast/files/blob-builder-crash.html, since we no longer support WebKitBlobBuilder.

14:10 Changeset [115665] by andersca@apple.com

Add a barrier-style dispatch member function to ScrollingThread
https://bugs.webkit.org/show_bug.cgi?id=85228

Reviewed by Sam Weinig.

Add a ScrollingThread::dispatchBarrier function which takes a WTF::Function and dispatches it to the main thread
once all the currently scheduled scrolling thread functions have run. This is to be used for synchronization between the
scrolling thread and the main thread.

  • page/scrolling/ScrollingThread.cpp:

(WebCore::callFunctionOnMainThread):
(WebCore):
(WebCore::ScrollingThread::dispatchBarrier):

  • page/scrolling/ScrollingThread.h:

(ScrollingThread):

14:04 Changeset [115664] by cevans@google.com

Merge 114513
BUG=118374
Review URL: https://chromiumcodereview.appspot.com/10264016

14:02 Changeset [115663] by rakuco@webkit.org

[CMake] Add a proper license to FindSqlite.cmake.
https://bugs.webkit.org/show_bug.cgi?id=84901

Reviewed by Daniel Bates.

FindSqlite.cmake referenced COPYING-CMAKE-SCRIPTS, which was
supposed to contain its license. This file, however, was not
imported with FindSqlite.cmake into the tree.

Add it from kdelibs (where the Find file came from) at git
revision [1]. Also worth mentioning is that Alexander Neundorf
added Gilles Caulier as the script author in revision [2].

[1] https://projects.kde.org/projects/kde/kdelibs/repository/revisions/c27925edf98b9952aeada677dfc74ce9c809c48a
[2] https://projects.kde.org/projects/kde/kdelibs/repository/revisions/14d0a92e04e1a200d6e58397e57a29194a0819cf

  • Source/cmake/FindSqlite.cmake:
14:02 Changeset [115662] by andersca@apple.com

WTF::bind should work with blocks
https://bugs.webkit.org/show_bug.cgi?id=85227

Reviewed by Sam Weinig.

Add a block type FunctionWrapper specialization.

  • wtf/Functional.h:
13:27 Changeset [115661] by commit-queue@webkit.org

Expose a flag so that fullscreen video on android can work with FULLSCREEN_API
https://bugs.webkit.org/show_bug.cgi?id=84414

Patch by Min Qin <qinmin@google.com> on 2012-04-30
Reviewed by Darin Fisher.

Source/WebCore:

No tests, just exposing the flag, and will be used by android later.
Sorry, there is a merge error during the previous commit, resolved now

  • platform/graphics/MediaPlayer.cpp:

(WebCore::MediaPlayer::setControls):
(WebCore):
(WebCore::MediaPlayer::enterFullscreen):
(WebCore::MediaPlayer::exitFullscreen):

  • platform/graphics/MediaPlayer.h:

(MediaPlayer):

  • platform/graphics/MediaPlayerPrivate.h:

(MediaPlayerPrivateInterface):
(WebCore::MediaPlayerPrivateInterface::enterFullscreen):

Source/WebKit/chromium:

On android, the fullscreen video was implemented by passing a java
surfaceView to an android mediaplayer class.
The implementation of that logic should happen in WebKit::WebMediaPlayer.
This change makes it possble for WebViewImpl::enterFullScreenForElement()
to call WebMediaPlayer->enterFullscreen(), thus solving the issue.

Sorry, there is a merge error during the previous commit, resolved now

No new tests. This just exposes the flag so later it can be used by android.

  • features.gypi:
  • public/WebMediaPlayer.h:

(WebMediaPlayer):
(WebKit::WebMediaPlayer::enterFullscreen):
(WebKit::WebMediaPlayer::exitFullscreen):

  • src/WebMediaPlayerClientImpl.cpp:

(WebKit):
(WebKit::WebMediaPlayerClientImpl::enterFullscreen):
(WebKit::WebMediaPlayerClientImpl::exitFullscreen):

  • src/WebMediaPlayerClientImpl.h:

(WebMediaPlayerClientImpl):

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::enterFullScreenForElement):
(WebKit::WebViewImpl::exitFullScreenForElement):

13:20 Changeset [115660] by gavinp@chromium.org

Unreviewed. Rolled DEPS.

  • DEPS:
12:47 Changeset [115659] by amruthraj@motorola.com

[GTK] Add glib as a dependency to build glib-networking
https://bugs.webkit.org/show_bug.cgi?id=85181

Reviewed by Martin Robinson.

  • gtk/jhbuild.modules:
12:23 Changeset [115658] by mhahnenberg@apple.com

fast/js/random-array-gc-stress times out in debug mode
https://bugs.webkit.org/show_bug.cgi?id=84821

Reviewed by Darin Adler.

  • fast/js/script-tests/random-array-gc-stress.js: Lowering the iterations even more.
12:20 Changeset [115657] by commit-queue@webkit.org

End of Interpreter::tryCacheGetByID can trigger the garbage collector
https://bugs.webkit.org/show_bug.cgi?id=84927

Patch by Myles Maxfield <mmaxfield@google.com> on 2012-04-30
Reviewed by Oliver Hunt.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::tryCacheGetByID):

12:12 Changeset [115656] by benjamin@webkit.org

jsSingleCharacterString and jsSingleCharacterSubstring are not inlined
https://bugs.webkit.org/show_bug.cgi?id=85147

Reviewed by Darin Adler.

The functions jsSingleCharacterString() and jsSingleCharacterSubstring() were not inlined
by the compiler. This annihilate the gains of using SmallStrings.

On stringProtoFuncCharAt(), this patch improves the performance by 11%.

  • runtime/JSString.h:

(JSC::jsSingleCharacterString):
(JSC::jsSingleCharacterSubstring):

12:02 Changeset [115655] by benjamin@webkit.org

Source/JavaScriptCore: Add fast patch for radix == 10 on numberProtoFuncToString
https://bugs.webkit.org/show_bug.cgi?id=85120

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-04-30
Reviewed by Darin Adler.

When radix, we use to turn the doubleValue into a JSValue just to convert
it to a String. The problem is that was using the slow path for conversion and
for the toString() operation.

This patch shortcuts the creation of a JSValue and uses NumericStrings directly.
The conversion is split between Integer and Double to ensure the fastest conversion
for the common case of integer arguments.

Converting number with radix 10 becomes 5% faster.

Due to the simpler conversion of number to string for integer, converting
integers that do not fall in the two previous optimizations get 32% faster.

  • runtime/NumberPrototype.cpp:

(JSC::extractRadixFromArgs):
(JSC::integerValueToString):
(JSC::numberProtoFuncToString):

LayoutTests: Add fast path for radix == 10 to numberProtoFuncToString
https://bugs.webkit.org/show_bug.cgi?id=85120

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-04-30
Reviewed by Darin Adler.

Add more test coverage for Number.proto.toString.

  • platform/chromium/test_expectations.txt: Mark the test as failing on Chromium.
  • fast/js/toString-number-expected.txt: Added.
  • fast/js/toString-number.html: Added.
11:51 Changeset [115654] by japhet@chromium.org

Move more of committing and starting to write a Document
to DocumentLoader.
https://bugs.webkit.org/show_bug.cgi?id=83908

Reviewed by Adam Barth.

No new tests, refactor only.

  • loader/DocumentLoader.cpp:

(WebCore::DocumentLoader::commitIfReady): Ignore m_gotFirstByte here, since

it was always true here anyway.

(WebCore::DocumentLoader::finishedLoading): If we are finishing an empty

document, create the document now, so that FrameLoaderClient doesn't
have to do it later (FrameLoaderClient code will be removed in a later
patch).

(WebCore::DocumentLoader::commitData): Call receivedFirstData() directly and

do some work receivedFirstData() used to do, setEncoding() only once per
load.

(WebCore::DocumentLoader::receivedData):
(WebCore::DocumentLoader::maybeCreateArchive):

  • loader/DocumentLoader.h:
  • loader/DocumentWriter.cpp:

(WebCore::DocumentWriter::setEncoding):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::receivedFirstData): Move DocumentLoader calls

to DocumentLoader.

  • loader/FrameLoader.h: Remove m_hasReceivedFirstData and willSetEncoding(),

allow hasReceivedData() to be called directly.

(FrameLoader):

11:30 Changeset [115653] by eae@chromium.org

Merge trunk changes up until 115647 into subpixel branch.

10:53 Changeset [115652] by haraken@chromium.org

Unreviewed. Fix test crashes in Win/Linux debug builds.

  • bindings/v8/V8LazyEventListener.cpp:

(WebCore::V8LazyEventListener::V8LazyEventListener):
(WebCore::V8LazyEventListener::prepareListenerObject):

  • bindings/v8/V8LazyEventListener.h:

(V8LazyEventListener):

10:45 Changeset [115651] by tommyw@google.com

MediaStream API: Adding a test for the experimental PeerConnection00
https://bugs.webkit.org/show_bug.cgi?id=82881

Reviewed by Dimitri Glazkov.

Tests construction of objects.

  • fast/mediastream/constructors-expected.txt: Added.
  • fast/mediastream/constructors.html: Added.
10:44 Changeset [115650] by ap@apple.com

Validate keypress command names
https://bugs.webkit.org/show_bug.cgi?id=85204
<rdar://problem/11249368>

Reviewed by Darin Adler.

  • UIProcess/API/mac/WKView.mm: (-[WKView doCommandBySelector:]): (-[WKView insertText:replacementRange:]):
  • UIProcess/WebPageProxy.h: (WebKit::WebPageProxy::registerKeypressCommandName): (WebKit::WebPageProxy::isValidKeypressCommandName):
  • UIProcess/mac/WebPageProxyMac.mm: (WebKit::WebPageProxy::executeSavedCommandBySelector):
10:44 Changeset [115649] by tommyw@google.com

MediaStream API: Change LocalMediaStream::stop to be synchronous
https://bugs.webkit.org/show_bug.cgi?id=84942

Reviewed by Dimitri Glazkov.

Since I changed LocalMediaStream to be a ActiveDOMObject recently the stop()
behaviour needs to change since it is no longer a good idea to start a timer when called.

Not possible to write a test for this.

  • Modules/mediastream/LocalMediaStream.cpp:

(WebCore::LocalMediaStream::LocalMediaStream):
(WebCore::LocalMediaStream::stop):

  • Modules/mediastream/LocalMediaStream.h:

(LocalMediaStream):

10:13 Changeset [115648] by alexis.menard@openbossa.org

Move myself to reviewers.

Reviewed by Andreas Kling.

  • Scripts/webkitpy/common/config/committers.py:
10:09 WebKit Team edited by alexis.menard@openbossa.org
alphabetical fix (diff)
10:03 Changeset [115647] by eae@chromium.org

Add ENABLE_SUBPIXEL_LAYOUT controlling FractionalLayoutUnit denominator
https://bugs.webkit.org/show_bug.cgi?id=85146

Source/WebCore:

Patch by Emil A Eklund <eae@chromium.org> and Levi Weintraub <leviw@chromium.org> on 2012-04-28
Reviewed by Eric Seidel.

Add a new flag for controlling the fixed point denominator in
FractionalLayoutUnit. Controls whether the denominator is set to 60 or 1.
Until we change the LayoutUnit typedef this change will have no effect.

No new tests, no change in functionality.

  • platform/FractionalLayoutUnit.h:

(WebCore):
(WebCore::FractionalLayoutUnit::operator++):
(WebCore::operator/):
(WebCore::operator+):
Add ++, / double and and + double operators. These are needed when
ENABLE_SUBPIXEL_LAYOUT is not enabled.

  • platform/graphics/FractionalLayoutRect.cpp:

(WebCore::enclosingFractionalLayoutRect):

Source/WTF:

Reviewed by Eric Seidel.

Add a new flag for controlling the fixed point denominator in
FractionalLayoutUnit. Controls whether the denominator is set to 60 or 1.
Until we change the LayoutUnit typedef this change will have no effect.

  • wtf/Platform.h:
09:59 Changeset [115646] by jschuh@chromium.org

loadOrRedirectSubframe should return the owner element's frame
https://bugs.webkit.org/show_bug.cgi?id=84780

Reviewed by Nate Chapin.

Source/WebCore:

Test: fast/loader/javascript-url-iframe-remove-on-navigate.html

  • loader/SubframeLoader.cpp:

(WebCore::SubframeLoader::loadOrRedirectSubframe):

LayoutTests:

  • fast/loader/javascript-url-iframe-remove-on-navigate-expected.txt: Added.
  • fast/loader/javascript-url-iframe-remove-on-navigate.html: Added.
09:58 Changeset [115645] by caio.oliveira@openbossa.org

Use Vector<Attribute> directly instead of encapsulating it in AttributeVector
https://bugs.webkit.org/show_bug.cgi?id=84413

Reviewed by Andreas Kling.

As commented in https://bugs.webkit.org/show_bug.cgi?id=79963#c16 we do not
usually subclass basic types like Vector. This patch changes code to use
Vector<Attribute> directly and move around the functionality of the former
methods to more specific helper functions or inline code at the callers.

  • dom/Element.cpp:

(WebCore::Element::parserSetAttributes):
(WebCore::Element::normalizeAttributes):

  • dom/Element.h:

(Element):

  • dom/ElementAttributeData.cpp:
  • dom/ElementAttributeData.h:

(WebCore::findAttributeInVector):
(WebCore::ElementAttributeData::getAttributeItem):
(ElementAttributeData):
(WebCore::ElementAttributeData::attributeVector):
(WebCore::ElementAttributeData::clonedAttributeVector):
(WebCore::ElementAttributeData::getAttributeItemIndex):
(WebCore):

  • html/parser/HTMLConstructionSite.cpp:

(WebCore::HTMLConstructionSite::createHTMLElementFromSavedElement):

  • html/parser/HTMLToken.h:

(WebCore::AtomicHTMLToken::AtomicHTMLToken):

  • html/parser/HTMLTreeBuilder.cpp:

(WebCore::HTMLTreeBuilder::processFakeStartTag):
(WebCore::HTMLTreeBuilder::attributesForIsindexInput): Loop through the attributes
backwards so we can remove items without affecting the rest of the loop run.

  • html/parser/HTMLTreeBuilder.h:
  • html/parser/TextDocumentParser.cpp:

(WebCore::TextDocumentParser::insertFakePreElement):

  • xml/XMLErrors.cpp:

(WebCore::createXHTMLParserErrorHeader):
(WebCore::XMLErrors::insertErrorMessageBlock):

  • xml/parser/MarkupTokenBase.h:

(WebCore::AtomicMarkupTokenBase::AtomicMarkupTokenBase):
(WebCore::AtomicMarkupTokenBase::getAttributeItem):
(WebCore::AtomicMarkupTokenBase::attributes):
(AtomicMarkupTokenBase):
(WebCore::::initializeAttributes):

  • xml/parser/XMLToken.h:

(WebCore::AtomicXMLToken::AtomicXMLToken):

09:44 WebKit Team edited by alexis.menard@openbossa.org
(diff)
09:34 Changeset [115644] by pilgrim@chromium.org

[Chromium] Remove PlatformSupport::loadPlatformAudioResource, call loadResource directly
https://bugs.webkit.org/show_bug.cgi?id=85193

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

Source/WebCore:

  • platform/audio/chromium/AudioBusChromium.cpp:

(WebCore::AudioBus::loadPlatformResource):

  • platform/chromium/PlatformSupport.h:

(PlatformSupport):

Source/WebKit/chromium:

  • src/PlatformSupport.cpp:

(WebCore):

09:28 Changeset [115643] by pilgrim@chromium.org

[Chromium] Call defaultLocale directly
https://bugs.webkit.org/show_bug.cgi?id=85192

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

Source/WebCore:

  • platform/chromium/LanguageChromium.cpp:

(WebCore::platformLanguage):

  • platform/chromium/PlatformSupport.h:

(PlatformSupport):

Source/WebKit/chromium:

  • src/PlatformSupport.cpp:

(WebCore):

09:12 Changeset [115642] by commit-queue@webkit.org

[EFL] Update expectations for media/audio-delete-while-step-button-clicked.html
https://bugs.webkit.org/show_bug.cgi?id=85180

Unreviewed gardening.

Patch by Thiago Marcos P. Santos <thiago.santos@intel.com> on 2012-04-30

  • platform/efl/test_expectations.txt:
08:42 Changeset [115641] by bdakin@apple.com

https://bugs.webkit.org/show_bug.cgi?id=82922
border-image with image-set does not render correctly when viewed at
2x
-and corresponding-
<rdar://problem/11167820>

Reviewed by Dan Bernstein.

Source/WebCore:

StyleImage::computeIntrinsicDimensions() is only called from one
place: RenderBoxModelObject::calculateIntrinsicDimensions(), and that
is only used for background images and border images. In my original
image-set work, I decided that
StyleCachedImageSet::computeIntrinsicDimensions() would compute
"intrinsic" dimensions, meaning that they would compute the dimensions
that the image resource was pretending to be rather than the actual
dimensions of the resource. I chose to do this because it made
background images work great without changing the call-site. But border
images need to know the actual intrinsic dimensions, so this design
decision (which was admittedly questionable from the start) won't
stick.

This patch makes StyleImage::computeIntrinsicDimensions() return
actual intrinsic dimensions. Then the border-image and background-
image code is very lightly patched to account for the image's scale
factor.

These functions no longer need the scale factor parameter.

  • loader/cache/CachedImage.cpp:

(WebCore::CachedImage::computeIntrinsicDimensions):

  • loader/cache/CachedImage.h:

(CachedImage):

  • platform/graphics/GeneratedImage.h:

(GeneratedImage):

  • platform/graphics/GeneratorGeneratedImage.cpp:

(WebCore::GeneratedImage::computeIntrinsicDimensions):

  • platform/graphics/Image.cpp:

(WebCore::Image::computeIntrinsicDimensions):

  • platform/graphics/Image.h:

(Image):

  • platform/graphics/cg/PDFDocumentImage.cpp:

(WebCore::PDFDocumentImage::computeIntrinsicDimensions):

  • platform/graphics/cg/PDFDocumentImage.h:

(PDFDocumentImage):

  • svg/graphics/SVGImage.cpp:

(WebCore::SVGImage::computeIntrinsicDimensions):

  • svg/graphics/SVGImage.h:

(SVGImage):

  • rendering/style/StyleCachedImageSet.cpp:

(WebCore::StyleCachedImageSet::computeIntrinsicDimensions):

New function on StyleImage returns the image's scale factor.

  • rendering/style/StyleCachedImageSet.h:

(WebCore::StyleCachedImageSet::imageScaleFactor):

  • rendering/style/StyleImage.h:

(WebCore::StyleImage::imageScaleFactor):

Scale the intrinsic size of the background image down by the scale
factor.

  • rendering/RenderBoxModelObject.cpp:

(WebCore::RenderBoxModelObject::calculateFillTileSize):

Slices should be multiplied by the image's scale factor since they are
always expected to the specified in the 1x image's coordinate space.
(WebCore::RenderBoxModelObject::paintNinePieceImage):

LayoutTests:

  • fast/hidpi/image-set-border-image-comparison.html: Added.
  • fast/hidpi/resources/Breakpoint-2x.png: Added.
  • fast/hidpi/resources/Breakpoint.png: Added.
  • platform/mac/fast/hidpi/image-set-border-image-comparison-expected.png: Added.
  • platform/mac/fast/hidpi/image-set-border-image-comparison-expected.txt: Added.
08:33 Changeset [115640] by pilgrim@chromium.org

[Chromium] Use new syntax to call callOnMainThread directly
https://bugs.webkit.org/show_bug.cgi?id=85190

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

  • src/ChromiumThreading.cpp:

(WTF::ChromiumThreading::callOnMainThread):

08:26 Changeset [115639] by mrowe@apple.com

<rdar://problem/11313710> Leaks under WebCore::CSSImageSetValue::cachedImageSet when running tests

There was a reference cycle between CSSImageSetValue and StyleCachedImageSet via
CSSImageSetValue::m_imageSet / StyleCachedImageSet::m_imageSetValue. Break the cycle
by having StyleCachedImageSet hold a weak reference to the CSSImageSetValue rather
than a strong reference.

Reviewed by Geoff Garen.

  • rendering/style/StyleCachedImageSet.cpp:

(WebCore::StyleCachedImageSet::StyleCachedImageSet):

  • rendering/style/StyleCachedImageSet.h:

(StyleCachedImageSet):

08:14 Changeset [115638] by arko@motorola.com

Remove custom bindings code in JSHTMLCollectionCustom.cpp for HTMLPropertiesCollection.
https://bugs.webkit.org/show_bug.cgi?id=85172

Reviewed by Kentaro Hara.

Use [JSGenerateToJSObject] in HTMLPropertiesCollection.idl, so that it can generate toJS()
in JSHTMLPropertiesCollection.cpp automatically.

  • bindings/js/JSHTMLCollectionCustom.cpp:

(WebCore::toJS):

  • html/HTMLPropertiesCollection.idl:
08:10 Changeset [115637] by carlosgc@webkit.org

Tagging the WebKitGTK+ 1.9.1 release

08:05 Changeset [115636] by kling@webkit.org

Rebaseline svg/zoom/page/zoom-svg-through-object-with-percentage-size.svg for Mac after Length changes.

  • platform/mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
07:58 Changeset [115635] by pilgrim@chromium.org

[Chromium] Use new syntax to call monotonicallyIncreasingTime directly
https://bugs.webkit.org/show_bug.cgi?id=85189

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

  • src/ChromiumCurrentTime.cpp:

(WTF::monotonicallyIncreasingTime):

07:56 Changeset [115634] by pilgrim@chromium.org

[Chromium] Use new syntax to call userAgent directly
https://bugs.webkit.org/show_bug.cgi?id=85188

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

  • src/FrameLoaderClientImpl.cpp:

(WebKit::FrameLoaderClientImpl::userAgent):

07:51 Changeset [115633] by pilgrim@chromium.org

[Chromium] Use new syntax to call currentTime directly
https://bugs.webkit.org/show_bug.cgi?id=85187

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

  • src/ChromiumCurrentTime.cpp:

(WTF::currentTime):

07:48 Changeset [115632] by pilgrim@chromium.org

[Chromium] Use new syntax to call currentThread directly
https://bugs.webkit.org/show_bug.cgi?id=85185

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

  • src/CCThreadImpl.cpp:

(WebKit::CCThreadImpl::CCThreadImpl):

  • src/WebCompositorImpl.cpp:

(WebKit::WebCompositorImpl::initialize):

07:43 Changeset [115631] by pilgrim@chromium.org

[Chromium] Use new syntax to call createThread directly
https://bugs.webkit.org/show_bug.cgi?id=85186

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

  • tests/CCLayerTreeHostTest.cpp:

(WTF::CCLayerTreeHostTest::runTest):

  • tests/Canvas2DLayerChromiumTest.cpp:

(Canvas2DLayerChromiumTest::fullLifecycleTest):

07:15 Changeset [115630] by pilgrim@chromium.org

[Chromium] Use new syntax to call createSocketStreamHandle directly
https://bugs.webkit.org/show_bug.cgi?id=85184

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

  • src/SocketStreamHandle.cpp:

(WebCore::SocketStreamHandleInternal::connect):

07:08 Changeset [115629] by noam.rosenthal@nokia.com

[Texmap] TextureMapperLayer uses intermediate surfaces too eagerly
https://bugs.webkit.org/show_bug.cgi?id=85103

Reviewed by Kenneth Rohde Christiansen.

Instead of automatically using an intermediate surface for layers with opacity and
children, we limit surface usage for layers with more than one child and for layers with
one child and contents of its own.

This prevents us from using intermediate surfaces in cases where a single layer with
opacity has a single descendant with content, in which case normal blending can be used.

Covered by existing compositing layout tests.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore):

  • platform/graphics/texmap/TextureMapperLayer.h:
06:53 WebKitGTK/WebKit2Roadmap edited by mario@webkit.org
(diff)
06:51 Changeset [115628] by yi.4.shen@nokia.com

Inserting a paragraph between quoted lines in editing/deleting/delete-4038408-fix.html doesn't work
https://bugs.webkit.org/show_bug.cgi?id=78193

Reviewed by Ryosuke Niwa.

When pasting a copied portion of a blockquote with a newline at the end into an unquoted area,
the newline is inserted after the blockquote since we don't want it also to be quoted. However,
this behavior has also applied when we insert a paragraph between quoted lines, which is incorrect.
To figure out the right place to insert a paragraph, we need providing more information to the
InsertParagraphSeparatorCommand by introducing a boolean parameter "pasteBlockqutoeIntoUnquotedArea".

Source/WebCore:

Tests: editing/inserting/insert-paragraph-separator-in-blockquote.html

editing/pasteboard/paste-wrapped-blockquote-into-nonblockquote.html

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::insertParagraphSeparator):

  • editing/CompositeEditCommand.h:

(CompositeEditCommand):

  • editing/InsertParagraphSeparatorCommand.cpp:

(WebCore::InsertParagraphSeparatorCommand::InsertParagraphSeparatorCommand):
(WebCore::InsertParagraphSeparatorCommand::doApply):

  • editing/InsertParagraphSeparatorCommand.h:

(WebCore::InsertParagraphSeparatorCommand::create):
(InsertParagraphSeparatorCommand):

  • editing/ReplaceSelectionCommand.cpp:

(WebCore::ReplaceSelectionCommand::doApply):

LayoutTests:

  • editing/inserting/insert-paragraph-separator-in-blockquote-expected.txt: Added.
  • editing/inserting/insert-paragraph-separator-in-blockquote.html: Added.
  • editing/pasteboard/paste-wrapped-blockquote-into-nonblockquote-expected.txt: Added.
  • editing/pasteboard/paste-wrapped-blockquote-into-nonblockquote.html: Added.
06:49 Changeset [115627] by mario@webkit.org

[GTK] Implement WebUIClient's runOpenPanel in WebKit2GTK+
https://bugs.webkit.org/show_bug.cgi?id=78491

Reviewed by Martin Robinson.

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.
  • UIProcess/API/gtk/WebKitFileChooserRequest.cpp: Added.

(_WebKitFileChooserRequestPrivate):
(webkit_file_chooser_request_init):
(webkitFileChooserRequestFinalize):
(webkitFileChooserRequestGetProperty):
(webkit_file_chooser_request_class_init):
(webkitFileChooserRequestCreate):
(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_file_chooser_request_cancel):

  • UIProcess/API/gtk/WebKitFileChooserRequest.h: Added.

(_WebKitFileChooserRequest):
(_WebKitFileChooserRequestClass):

  • UIProcess/API/gtk/WebKitFileChooserRequestPrivate.h: Added,

containing the prototype of webkitFileChooserRequestCreate.

Provide private API to make a file chooser request from the
WebView, and provide a default handler for it.

  • UIProcess/API/gtk/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.
(webkitWebViewRunFileChooser): 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.
(webkitWebViewRunFileChooserRequest):

  • UIProcess/API/gtk/WebKitWebView.h:

(_WebKitWebViewClass): Added prototype for the handler of the new
'run-file-chooser' signal.

  • UIProcess/API/gtk/WebKitWebViewPrivate.h: Added prototype for

private new function webkitWebViewRunFileChooserRequest.

Provide an implementation for runOpenPanel in WebKitUIClient.

  • UIProcess/API/gtk/WebKitUIClient.cpp:

(runOpenPanel): New, implements runOpenPanel by creating an
instance of WebKitFileChooserRequest and asking the WebView to
emit the 'run-file-chooser' signal with it.
(attachUIClientToView): Reference the new runOpenPanel function.

Added the new publich header to the main header.

  • UIProcess/API/gtk/webkit2.h: Added WebKitFileChooserRequest.h.

New unit tests for the new WebKitFileChooserRequest API. Also,
extended the WebViewTest class to allow simulating mouse clicks.

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

(checkMimeTypeForFilter): New, checks whether a GtkFileFilter
filters a given MIME type, as specified by RFC 2046.
(testWebViewFileChooserRequest): New unit test.
(beforeAll): Add the new unit test as an UIClientTest.

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

(WebViewTest::clickMouseButton): New public function to simulate a
mouse click through GdkEvents, as the combination of a 'press' and
a 'release' event. Used from the new unit test to simulate the
user pressing in the button rendered for a HTML Input element.
(WebViewTest::executeMouseButtonEvent): New private function to
simulate a mouse event through GdkEvents.

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

Updated documentation related files with the new API.

  • UIProcess/API/gtk/docs/webkit2gtk-sections.txt: Added new API.
  • UIProcess/API/gtk/docs/webkit2gtk-docs.sgml: Added new section.
  • UIProcess/API/gtk/docs/webkit2gtk.types: Added get_type function.
06:42 Changeset [115626] by jocelyn.turcotte@nokia.com

Unreviewed, move myself to reviewers

  • Scripts/webkitpy/common/config/committers.py:
05:55 Changeset [115625] by antti@apple.com

Protect current element in HTMLLinkElement::setCSSStyleSheet
https://bugs.webkit.org/show_bug.cgi?id=85166

Source/WebCore:

Reviewed by Andreas Kling.

Stylesheet loading can trigger script execution.

Test: fast/css/cached-sheet-restore-crash.html

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::setCSSStyleSheet):

LayoutTests:

Reviewed by Andreas Kling.

  • fast/css/cached-sheet-restore-crash-expected.txt: Added.
  • fast/css/cached-sheet-restore-crash.html: Added.
04:58 Changeset [115624] by carlosgc@webkit.org

[GTK] Update NEWS and configure.ac for 1.9.1 release
https://bugs.webkit.org/show_bug.cgi?id=85175

Reviewed by Philippe Normand.

.:

  • configure.ac: Bumped version number. Disable WebKit2 by default

for now, since we still don't use a different libtool version for
libwebkit2gtk. It will be enabled again after the release and the
library version will be reworked for the next release.

Source/WebKit/gtk:

  • NEWS: Added release notes for 1.9.1.
04:30 Changeset [115623] by pfeldman@chromium.org

Not reviewed: chromium expectations updated.

  • platform/chromium/test_expectations.txt:
04:18 Changeset [115622] by carlosgc@webkit.org

Unreviewed. Fix make distcheck.

.:

  • GNUmakefile.am: Add ALL_MOFILES declaration.

Source/JavaScriptCore:

  • GNUmakefile.list.am: Add missing header.

Source/ThirdParty:

  • gtest/GNUmakefile.am: Add source code files included by

gtest_all.cc to EXTRA_DIST.

Source/WebKit/gtk/po:

  • GNUmakefile.am: Use += for ALL_MOFILES variable to make sure all

.mo files are cleaned by distclean.

Tools:

  • TestWebKitAPI/GNUmakefile.am: Add missing headers to compilation

and resources to EXTRA_DIST.

04:02 Changeset [115621] by commit-queue@webkit.org

[GTK] DRT support for layoutTestController.removeOriginAccessWhitelistEntry
https://bugs.webkit.org/show_bug.cgi?id=85156

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-04-30
Reviewed by Martin Robinson.

Source/WebKit/gtk:

Add support for removeOriginAccessWhitelistEntry which allow
layout tests to remove origins whitelisting.

  • WebCoreSupport/DumpRenderTreeSupportGtk.cpp:

(DumpRenderTreeSupportGtk::removeWhiteListAccessFromOrigin):

  • WebCoreSupport/DumpRenderTreeSupportGtk.h:

(DumpRenderTreeSupportGtk):

Tools:

Add missing implementation removeOriginAccessWhitelistEntry to
GTK's LayoutTestController.

  • DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:

(LayoutTestController::removeOriginAccessWhitelistEntry):

LayoutTests:

Unskip http/tests/xmlhttprequest/origin-whitelisting-removal.html

  • platform/gtk/test_expectations.txt:
03:52 Changeset [115620] by pfeldman@chromium.org

Not reviewed: chromium expectations updated.

  • platform/chromium/test_expectations.txt:
02:24 Changeset [115619] by cevans@google.com

Merge 114209
BUG=122692
Review URL: https://chromiumcodereview.appspot.com/10270008

01:57 Changeset [115618] by cevans@google.com

Merge 113418
BUG=118374
Review URL: https://chromiumcodereview.appspot.com/10267006

01:45 Changeset [115617] by cevans@google.com

Merge 113581
BUG=120711
Review URL: https://chromiumcodereview.appspot.com/10261009

01:36 Changeset [115616] by cevans@google.com

Merge 113497
BUG=120711
Review URL: https://chromiumcodereview.appspot.com/10272008

01:25 Changeset [115615] by cevans@google.com

Merge 113252
BUG=120711
Review URL: https://chromiumcodereview.appspot.com/10264007

01:16 Changeset [115614] by cevans@google.com

Merge 113291
BUG=122014
Review URL: https://chromiumcodereview.appspot.com/10261008

01:14 Changeset [115613] by cevans@google.com

Merge 113759
BUG=122760
Review URL: https://chromiumcodereview.appspot.com/10274004

01:08 Changeset [115612] by cevans@google.com

Merge 113138
BUG=121223
Review URL: https://chromiumcodereview.appspot.com/10270006

00:59 Changeset [115611] by cevans@google.com

Merge 113887
BUG=118642
Review URL: https://chromiumcodereview.appspot.com/10265007

00:56 Changeset [115610] by cevans@google.com

Merge 113951
BUG=122585
Review URL: https://chromiumcodereview.appspot.com/10260009

00:46 Changeset [115609] by cevans@google.com

Merge 114666
BUG=123484
Review URL: https://chromiumcodereview.appspot.com/10262008

00:37 Changeset [115608] by cevans@google.com

Merge 115236
BUG=122573
Review URL: https://chromiumcodereview.appspot.com/10271004

00:32 Changeset [115607] by cevans@google.com

Merge 113852
BUG=121736
Review URL: https://chromiumcodereview.appspot.com/10269004

00:10 Changeset [115606] by kling@webkit.org

Add Mac expectation for fast/dom/Window/window-lookup-precedence.html.

Mac builds without ENABLE(DATALIST).

  • platform/mac/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
00:00 Changeset [115605] by kling@webkit.org

Skip the fast/performance/ directory on Mac since the bots don't build with ENABLE(WEB_TIMING).

  • platform/mac/Skipped:

04/29/12:

19:51 Changeset [115604] by fpizlo@apple.com

Predicted types should know about arguments
https://bugs.webkit.org/show_bug.cgi?id=85165

Reviewed by Oliver Hunt.

  • bytecode/PredictedType.cpp:

(JSC::predictionToString):
(JSC::predictionToAbbreviatedString):
(JSC::predictionFromClassInfo):

  • bytecode/PredictedType.h:

(JSC):
(JSC::isMyArgumentsPrediction):
(JSC::isArgumentsPrediction):

19:24 Changeset [115603] by keishi@webkit.org

Build fix for LocalizedDateMac.mm
https://bugs.webkit.org/show_bug.cgi?id=85164

Reviewed by Kent Tamura.

  • platform/text/mac/LocalizedDateMac.mm:

(WebCore::monthLabels):

18:28 Changeset [115602] by macpherson@chromium.org

Initialize member variables in CSSParser's constructor.
https://bugs.webkit.org/show_bug.cgi?id=84377

Reviewed by Kentaro Hara.

It is good practice not to leave member variables uninitialized. They make debugging more difficult by reducing
repeatability, and in some cases lead to the possibility of information leakage occuring. This patch simply adds
initialization of m_numParsedPropertiesBeforeMarginBox to CSSParser's constructor to INVALID_NUM_PARSED_PROPERTIES
so that the initial state is the same as the state after the properties are cleared.

No tests added because this is a code style fix, not an actual bug so long as the bison generated code calls
startDeclarationsForMarginBox() and endDeclarationsForMarginBox() symmetrically. The lack of initialization was
originally detected by coverity.

  • css/CSSParser.cpp:

(WebCore::CSSParser::CSSParser):

18:22 Changeset [115601] by mjs@apple.com

REGRESSION: On Lion, run-webkit-tests changes the display color profile even when not running pixel tests
https://bugs.webkit.org/show_bug.cgi?id=81729

Reviewed by Dan Bernstein.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._set_up_run): Only launch LayoutTestHelper when running pixel tests.

17:25 Changeset [115600] by tkent@chromium.org

[Mac] Add LocalizedDateMac
https://bugs.webkit.org/show_bug.cgi?id=85039

Reviewed by Kentaro Hara.

Source/WebCore:

A date shown <input type=date> should be formatted for user's OS
settings. Chromium-Mac used LocalizedDateICU.cpp to format/parse visible
date strings and it didn't reflect user-settings.

Test: covered by fast/forms/date/date-appearance.html

  • WebCore.gyp/WebCore.gyp:

Use LocalizedDateMac.mm for OS X instead of LocalizedDateICU.cpp.

  • WebCore.gypi: Add LocalizedDateMac.mm
  • platform/text/mac/LocalizedDateMac.mm: Added.

(WebCore::createShortDateFormatter):
Creates a NSDateFormatter with desired settings.
(WebCore::parseLocalizedDate): Impelment for tyep=date.
(WebCore::formatLocalizedDate): ditto.
(WebCore::isYearSymbol): A readability helper for format string parsing.
(WebCore::isMonthSymbol): ditto.
(WebCore::isDaySymbol): ditto.
(WebCore::localizeDateFormat):
Parse a format string, and replace symbols with user-friendly labels.
(WebCore::localizedDateFormatText):
Gets a format string, and apply localizeDateFormat().
(WebCore::monthLabels): Obtain month names from the system.
(WebCore::weekDayShortLabels): Obtain week day symbols from the system.
(WebCore::firstDayOfWeek): Obtain first day of week from the system.

  • platform/text/ICULocale.cpp:

(WebCore::createFallbackMonthLabels): Uses WTF::monthFullName.

Source/WTF:

  • wtf/DateMath.h:

(WTF): Add monthFullName[]. It is useful to make fallback month
names for calendar/date related features.

13:08 Changeset [115599] by commit-queue@webkit.org

Add support for the Blob constructor (Part 2)
https://bugs.webkit.org/show_bug.cgi?id=84555

Address additional feedback on Blob construction.

  • Add exception when the dictionary is not an object.
  • Ensure the proper ordering of dictionary access. Tested via throwing exceptions in toString, and ensuring correct one is fired first.
  • Changed type of exception throw for invalid enumeration to a TypeError.

Patch by Sam Weinig <sam@webkit.org> on 2012-04-29
Reviewed by Kentaro Hara.

Source/WebCore:

Updated fast/files/blob-constructor.html to be more comprehensive.

  • bindings/js/JSBlobCustom.cpp:

(WebCore::JSBlobConstructor::constructJSBlob):

  • bindings/v8/custom/V8BlobCustom.cpp:

(WebCore::V8Blob::constructorCallback):

LayoutTests:

  • fast/files/blob-constructor-expected.txt:
  • fast/files/script-tests/blob-constructor.js:
11:22 Changeset [115598] by tomz@codeaurora.org

PerfTestRunner.computeStatistics incorrectly calculates min, max and median
https://bugs.webkit.org/show_bug.cgi?id=85111

Reviewed by Ryosuke Niwa.

The sort of the data input was being done alphabetically.
So I provided a numeric compare function.

  • resources/runner.js:
08:25 Changeset [115597] by commit-queue@webkit.org

[GTK] DRT needs an implementation of layoutTestController.setDomainRelaxationForbiddenForURLScheme
https://bugs.webkit.org/show_bug.cgi?id=85131

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-04-29
Reviewed by Martin Robinson.

Source/WebKit/gtk:

Add support for setDomainRelaxationForbiddenForURLScheme which allow
disabling domain relaxation.

  • WebCoreSupport/DumpRenderTreeSupportGtk.cpp:

(DumpRenderTreeSupportGtk::setDomainRelaxationForbiddenForURLScheme):

  • WebCoreSupport/DumpRenderTreeSupportGtk.h:

(DumpRenderTreeSupportGtk):

Tools:

Add missing implementation setDomainRelaxationForbiddenForURLScheme to
GTK's LayoutTestController.

  • DumpRenderTree/gtk/LayoutTestControllerGtk.cpp:

(LayoutTestController::setDomainRelaxationForbiddenForURLScheme):

LayoutTests:

Unskip http/tests/security/setDomainRelaxationForbiddenForURLScheme.html

  • platform/gtk/test_expectations.txt:
08:20 Changeset [115596] by noam.rosenthal@nokia.com

[Texmap] Leaves demo: wrong geometry when opacity animation kicks in
https://bugs.webkit.org/show_bug.cgi?id=85096

Reviewed by Kenneth Rohde Christiansen.

We should use combined() instead of combinedForChildren() since we don't allow
intermediate surfaces for preserves-3d. Also, we should apply the offset before
multiplying the transforms, otherwise the transform-origin is incorrect.

Covered by existing compositing tests.

  • platform/graphics/texmap/TextureMapperLayer.cpp:

(WebCore::TextureMapperLayer::paintSelf):
(WebCore::TextureMapperLayer::paintRecursive):

01:58 Changeset [115595] by pilgrim@chromium.org

[Chromium] Call highUsageDeltaMB directly
https://bugs.webkit.org/show_bug.cgi?id=84844

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

Source/WebCore:

  • bindings/v8/V8GCController.cpp:

(WebCore::V8GCController::checkMemoryUsage):

  • platform/MemoryUsageSupport.cpp:

(WebCore):
(WebCore::MemoryUsageSupport::highUsageDeltaMB):

  • platform/MemoryUsageSupport.h:

(MemoryUsageSupport):

  • platform/chromium/MemoryUsageSupportChromium.cpp:

(WebCore::MemoryUsageSupport::highUsageDeltaMB):
(WebCore):

  • platform/chromium/PlatformSupport.h:

(PlatformSupport):

Source/WebKit/chromium:

  • src/PlatformSupport.cpp:

(WebCore):

01:07 Changeset [115594] by haraken@chromium.org

REGRESSION(r113086): onresize event handler can be deleted in popup window
https://bugs.webkit.org/show_bug.cgi?id=84908

Reviewed by Ojan Vafai.

In a nutshell, an onresize event handler in the popup window
can be non-deterministically deleted. For more details, please
look at Chromium issue 123642:
http://code.google.com/p/chromium/issues/detail?id=123642

I confirmed that this bug is the regression caused by r113086.

r113086 introduced the following code:

void V8LazyEventListener::prepareListenerObject(...) {

if (hasExistingListenerObject())

return;

...;
Since we only parse once, there's no need to keep data
used for parsing around anymore.
m_functionName = String();
m_code = String();
m_eventParameterName = String();
m_sourceURL = String();

setListenerObject(wrappedFunction);

}

This is not correct. The parsing can be done more than once,
and thus we cannot clear data. This patch removes the above code.

Consider the following situation:

(1) Assume '<body onresize="f()"></body>'.
(2) prepareListenerObject() runs.
(3) Since this is the first parsing, hasExistingListenerObject()
returns false. After the parsing, the listener object is set
by setListenerObject().
(4) GC runs. Since there is no strong reference to the listener
object, weakEventListenerCallback() is called back, and the listener
object is disposed.
(5) A resize event is triggered.
(6) prepareListenerObject() is called again. Since the listener object
is already disposed, hasExistingListenerObject() returns false,
and the second parsing starts.

In my investigation, the above situation is happening in the reported
Chromium bug. Anyway, I am sure that potentially the parsing can be
done more than once, and thus we must keep m_xxxx data.

However, this is just a temporary fix. We should fix the code so that
an alive event listener object is never reclaimed.
See https://bugs.webkit.org/show_bug.cgi?id=85152 for more details.

No tests: I tried hard to create a DRT test, but could not.
The bug depends on the behavior of GC, and thus the reported bug is
non-deterministic. For example, (as explained in the Chromium issue,)
the bug does not happen if we load an HTML from network because
the network latency hides the bug. Also the bug happens in the
popup window only. If we open the reported HTML in the main window,
we cannot reproduce the bug.

  • bindings/v8/V8LazyEventListener.cpp:

(WebCore::V8LazyEventListener::prepareListenerObject):

00:09 Changeset [115593] by zandobersek@gmail.com

Unreviewed, gardening after revisions 115573 and 115582.

  • platform/gtk/fast/dom/Window/window-properties-expected.txt:
  • platform/gtk/fast/dom/constructed-objects-prototypes-expected.txt:
  • platform/gtk/fast/forms/001-expected.txt:
  • platform/gtk/fast/html/details-position-expected.txt: Added.
  • platform/gtk/fast/replaced/width100percent-checkbox-expected.txt:
  • platform/gtk/fast/replaced/width100percent-radio-expected.txt:
  • platform/gtk/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Added.
  • platform/gtk/tables/mozilla/bugs/bug1318-expected.txt:
  • platform/gtk/tables/mozilla/bugs/bug4527-expected.txt:

04/28/12:

23:04 Changeset [115592] by ossy@webkit.org

[Qt] Unreviewed weekend gardening, update test results, skip new failing tests.

  • fast/files/workers/inline-worker-via-blob-url.html: Trivial typo fix after r115582.
  • platform/qt-4.8/fast/dom/Window/window-properties-expected.txt: Updated after r115582.
  • platform/qt-5.0-wk2/fast/dom/Window/window-properties-expected.txt: Updated after r115582.
  • platform/qt-5.0/fast/dom/Window/window-properties-expected.txt: Updated after r115582.
  • platform/qt/Skipped: Skip a new failing reftest after r115554.
  • platform/qt/fast/dom/constructed-objects-prototypes-expected.txt:
  • platform/qt/fast/html/details-position-expected.png: Updated after r115573.
  • platform/qt/fast/html/details-position-expected.txt: Updated after r115573.
  • platform/qt/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Updated after r115573.
18:53 Changeset [115591] by weinig@apple.com

Smooth scrolling needs a new key
<rdar://problem/11331632>

Reviewed by Dan Bernstein.

  • DumpRenderTree/mac/DumpRenderTree.mm:

(resetDefaultsToConsistentValues):

  • TestWebKitAPI/mac/InjectedBundleControllerMac.mm:

(TestWebKitAPI::InjectedBundleController::platformInitialize):

  • WebKitTestRunner/InjectedBundle/mac/InjectedBundleMac.mm:

(WTR::InjectedBundle::platformInitialize):
Update for new key.

18:44 Changeset [115590] by ggaren@apple.com

Factored threaded block allocation into a separate object
https://bugs.webkit.org/show_bug.cgi?id=85148

Reviewed by Sam Weinig.

99% of this patch just moves duplicated block allocation and
deallocation code into a new object named BlockAllocator, with these
exceptions:

  • heap/BlockAllocator.h: Added.

(BlockAllocator::BlockAllocator): The order of declarations here now
guards us against an unlikely race condition during startup.

  • heap/BlockAllocator.cpp:

JSC::BlockAllocator::blockFreeingThreadMain): Added a FIXME to
highlight a lack of clarity we have in our block deallocation routines.

18:32 Changeset [115589] by weinig@apple.com

Smooth scrolling needs a new key
<rdar://problem/11331632>

Reviewed by Geoffrey Garen.

  • platform/mac/ScrollAnimatorMac.mm:

(WebCore::scrollAnimationEnabledForSystem):
(WebCore::ScrollAnimatorMac::scroll):
Update for new key.

18:14 Changeset [115588] by commit-queue@webkit.org

MessagePort must set m_closed to be true at the end of MessagePort::close function
https://bugs.webkit.org/show_bug.cgi?id=85139

Source/WebCore:

In the function MessagePort::close, the "m_closed = true" must be executed at the end, not at the beginning.
Or, the m_entangledChannel->close() will not be executed.
And it resulted in the failure of MS bench mark messagechannel_close.htm.
http://samples.msdn.microsoft.com/ietestcenter/WebWorkers/messagechannel_close.htm

Patch by Li Yin <li.yin@intel.com> on 2012-04-28
Reviewed by Kentaro Hara.

Test: fast/events/message-port-close.html

  • dom/MessagePort.cpp:

(WebCore::MessagePort::close):

LayoutTests:

Test MessageChannel.port whether can receive message after it is closed.

Patch by Li Yin <li.yin@intel.com> on 2012-04-28
Reviewed by Kentaro Hara.

  • fast/events/message-port-close-expected.txt: Added.
  • fast/events/message-port-close.html: Added.
16:53 Changeset [115587] by fpizlo@apple.com

Bytecompiler should emit trivially fewer jumps in loops
https://bugs.webkit.org/show_bug.cgi?id=85144

Reviewed by Oliver Hunt.

1-2% across the board win.

  • bytecompiler/NodesCodegen.cpp:

(JSC::WhileNode::emitBytecode):
(JSC::ForNode::emitBytecode):

15:50 Changeset [115586] by weinig@apple.com

Try to fix the Qt build.

  • heap/Heap.cpp:

(JSC::Heap::lastChanceToFinalize):

15:45 Changeset [115585] by weinig@apple.com

And again.

  • bindings/v8/custom/V8BlobCustom.cpp:

(WebCore::V8Blob::constructorCallback):

15:39 Changeset [115584] by weinig@apple.com

Once again, try to make these puppies work.

  • bindings/v8/custom/V8BlobCustom.cpp:
15:33 Changeset [115583] by weinig@apple.com

Fix the Chromium build.

  • bindings/v8/custom/V8BlobCustom.cpp:

(WebCore::V8Blob::constructorCallback):

15:24 Changeset [115582] by weinig@apple.com

Add support for the Blob constructor
https://bugs.webkit.org/show_bug.cgi?id=84555

Reviewed by Maciej Stachowiak.

Source/WebCore:

Test: fast/files/blob-constructor.html

This adds an implementation of the Blob constructor that willfully
violates the W3C Editor’s Draft 29 February 2012 in the following ways:

  • bindings/js/JSBlobCustom.cpp:

(WebCore::JSBlobConstructor::constructJSBlob):
Implement blob constructor.

  • bindings/v8/custom/V8BlobCustom.cpp:

(WebCore::V8Blob::constructorCallback):
Implement blob constructor.

  • fileapi/Blob.idl:

Add constructor to IDL.

  • workers/WorkerContext.idl:

Add Blob constructor to the worker global object.

LayoutTests:

Switch tests that were not directly testing BlobBuilder over to
using the Blob constructor, to get test coverage of standard way
constructing blobs.

  • fast/files/blob-constructor.html: Added.
  • fast/files/blob-constructor-expected.txt: Added.
  • fast/files/script-tests/blob-constructor.js: Added.

New test.

  • fast/dom/HTMLAnchorElement/anchor-download-unset.html:
  • fast/dom/HTMLAnchorElement/anchor-download.html:
  • fast/dom/HTMLAnchorElement/anchor-nodownload-set.html:
  • fast/dom/HTMLAnchorElement/anchor-nodownload.html:
  • fast/dom/constructed-objects-prototypes-expected.txt:
  • fast/dom/window-domurl-crash.html:
  • fast/files/blob-slice-overflow.html:
  • fast/files/blob-slice-test.html:
  • fast/files/file-reader-fffd-expected.txt:
  • fast/files/file-reader-fffd.html:
  • fast/files/not-enough-arguments-expected.txt:
  • fast/files/not-enough-arguments.html:
  • fast/files/resources/read-blob-test-cases.js:
  • fast/files/resources/read-common.js:
  • fast/files/workers/inline-worker-via-blob-url.html:
  • fast/filesystem/resources/file-writer-abort-continue.js:
  • fast/filesystem/resources/file-writer-abort-depth.js:
  • fast/filesystem/resources/file-writer-abort.js:
  • fast/filesystem/resources/file-writer-events.js:
  • fast/filesystem/resources/file-writer-gc-blob.js:
  • fast/filesystem/resources/file-writer-sync-truncate-extend.js:
  • fast/filesystem/resources/file-writer-sync-write-overlapped.js:
  • fast/filesystem/resources/file-writer-utils.js:
  • http/tests/fileapi/create-blob-url-from-data-url.html:
  • http/tests/filesystem/no-cache-filesystem-url.html:
  • http/tests/local/blob/resources/hybrid-blob-util.js:
  • http/tests/security/resources/create-filesystem-file.html:
  • http/tests/websocket/tests/hixie76/send-object.html:
  • http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html:
  • http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:
  • http/tests/websocket/tests/hybi/send-blob.html:
  • http/tests/websocket/tests/hybi/send-file-blob-fail.html:
  • http/tests/websocket/tests/hybi/send-file-blob.html:
  • http/tests/websocket/tests/hybi/workers/resources/send-blob.js:
  • platform/mac/fast/dom/Window/window-properties-expected.txt:
  • storage/indexeddb/noblobs.html:
  • storage/indexeddb/structured-clone.html:
13:59 Changeset [115581] by igor.o@sisa.samsung.com

Move PropertyWrapper out of the AnimationBase
https://bugs.webkit.org/show_bug.cgi?id=84978

Reviewed by Dean Jackson.

AnimationBase is a complex class. It has a state machine and a bunch of
property handlers. This patch moves the property handlers to a separate
class making AnimationBase simpler.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • page/animation/AnimationBase.cpp:
  • page/animation/AnimationBase.h:

(AnimationBase):

  • page/animation/AnimationController.cpp:

(WebCore::AnimationController::supportsAcceleratedAnimationOfProperty):

  • page/animation/CSSPropertyAnimation.cpp: Added.

(WebCore):
(WebCore::blendFunc):
(WebCore::crossfadeBlend):
(AnimationPropertyWrapperBase):
(WebCore::AnimationPropertyWrapperBase::AnimationPropertyWrapperBase):
(WebCore::AnimationPropertyWrapperBase::~AnimationPropertyWrapperBase):
(WebCore::AnimationPropertyWrapperBase::isShorthandWrapper):
(WebCore::AnimationPropertyWrapperBase::property):
(WebCore::AnimationPropertyWrapperBase::animationIsAccelerated):
(WebCore::addPropertyWrapper):
(WebCore::wrapperForProperty):
(PropertyWrapperGetter):
(WebCore::PropertyWrapperGetter::PropertyWrapperGetter):
(WebCore::PropertyWrapperGetter::equals):
(PropertyWrapper):
(WebCore::PropertyWrapper::PropertyWrapper):
(WebCore::PropertyWrapper::blend):
(RefCountedPropertyWrapper):
(WebCore::RefCountedPropertyWrapper::RefCountedPropertyWrapper):
(WebCore::RefCountedPropertyWrapper::blend):
(StyleImagePropertyWrapper):
(WebCore::StyleImagePropertyWrapper::StyleImagePropertyWrapper):
(WebCore::StyleImagePropertyWrapper::equals):
(PropertyWrapperColor):
(WebCore::PropertyWrapperColor::PropertyWrapperColor):
(WebCore::PropertyWrapperColor::blend):
(PropertyWrapperAcceleratedOpacity):
(WebCore::PropertyWrapperAcceleratedOpacity::PropertyWrapperAcceleratedOpacity):
(WebCore::PropertyWrapperAcceleratedOpacity::animationIsAccelerated):
(WebCore::PropertyWrapperAcceleratedOpacity::blend):
(PropertyWrapperAcceleratedTransform):
(WebCore::PropertyWrapperAcceleratedTransform::PropertyWrapperAcceleratedTransform):
(WebCore::PropertyWrapperAcceleratedTransform::animationIsAccelerated):
(WebCore::PropertyWrapperAcceleratedTransform::blend):
(PropertyWrapperAcceleratedFilter):
(WebCore::PropertyWrapperAcceleratedFilter::PropertyWrapperAcceleratedFilter):
(WebCore::PropertyWrapperAcceleratedFilter::animationIsAccelerated):
(WebCore::PropertyWrapperAcceleratedFilter::blend):
(WebCore::shadowListLength):
(WebCore::shadowForBlending):
(PropertyWrapperShadow):
(WebCore::PropertyWrapperShadow::PropertyWrapperShadow):
(WebCore::PropertyWrapperShadow::equals):
(WebCore::PropertyWrapperShadow::blend):
(WebCore::PropertyWrapperShadow::blendSimpleOrMatchedShadowLists):
(WebCore::PropertyWrapperShadow::blendMismatchedShadowLists):
(PropertyWrapperMaybeInvalidColor):
(WebCore::PropertyWrapperMaybeInvalidColor::PropertyWrapperMaybeInvalidColor):
(WebCore::PropertyWrapperMaybeInvalidColor::equals):
(WebCore::PropertyWrapperMaybeInvalidColor::blend):
(PropertyWrapperVisitedAffectedColor):
(WebCore::PropertyWrapperVisitedAffectedColor::PropertyWrapperVisitedAffectedColor):
(WebCore::PropertyWrapperVisitedAffectedColor::equals):
(WebCore::PropertyWrapperVisitedAffectedColor::blend):
(FillLayerAnimationPropertyWrapperBase):
(WebCore::FillLayerAnimationPropertyWrapperBase::FillLayerAnimationPropertyWrapperBase):
(WebCore::FillLayerAnimationPropertyWrapperBase::~FillLayerAnimationPropertyWrapperBase):
(FillLayerPropertyWrapperGetter):
(WebCore::FillLayerPropertyWrapperGetter::FillLayerPropertyWrapperGetter):
(WebCore::FillLayerPropertyWrapperGetter::equals):
(FillLayerPropertyWrapper):
(WebCore::FillLayerPropertyWrapper::FillLayerPropertyWrapper):
(WebCore::FillLayerPropertyWrapper::blend):
(FillLayerRefCountedPropertyWrapper):
(WebCore::FillLayerRefCountedPropertyWrapper::FillLayerRefCountedPropertyWrapper):
(WebCore::FillLayerRefCountedPropertyWrapper::blend):
(FillLayerStyleImagePropertyWrapper):
(WebCore::FillLayerStyleImagePropertyWrapper::FillLayerStyleImagePropertyWrapper):
(WebCore::FillLayerStyleImagePropertyWrapper::equals):
(FillLayersPropertyWrapper):
(WebCore::FillLayersPropertyWrapper::FillLayersPropertyWrapper):
(WebCore::FillLayersPropertyWrapper::equals):
(WebCore::FillLayersPropertyWrapper::blend):
(ShorthandPropertyWrapper):
(WebCore::ShorthandPropertyWrapper::ShorthandPropertyWrapper):
(WebCore::ShorthandPropertyWrapper::isShorthandWrapper):
(WebCore::ShorthandPropertyWrapper::equals):
(WebCore::ShorthandPropertyWrapper::blend):
(WebCore::ShorthandPropertyWrapper::propertyWrappers):
(PropertyWrapperFlex):
(WebCore::PropertyWrapperFlex::PropertyWrapperFlex):
(WebCore::PropertyWrapperFlex::equals):
(WebCore::PropertyWrapperFlex::blend):
(PropertyWrapperSVGPaint):
(WebCore::PropertyWrapperSVGPaint::PropertyWrapperSVGPaint):
(WebCore::PropertyWrapperSVGPaint::equals):
(WebCore::PropertyWrapperSVGPaint::blend):
(WebCore::addShorthandProperties):
(WebCore::CSSPropertyAnimation::ensurePropertyMap):
(WebCore::gatherEnclosingShorthandProperties):
(WebCore::CSSPropertyAnimation::blendProperties):
(WebCore::CSSPropertyAnimation::animationOfPropertyIsAccelerated):
(WebCore::CSSPropertyAnimation::animatableShorthandsAffectingProperty):
(WebCore::CSSPropertyAnimation::propertiesEqual):
(WebCore::CSSPropertyAnimation::getPropertyAtIndex):
(WebCore::CSSPropertyAnimation::getNumProperties):

  • page/animation/CSSPropertyAnimation.h: Added.

(WebCore):
(CSSPropertyAnimation):

  • page/animation/CompositeAnimation.cpp:

(WebCore::CompositeAnimation::updateTransitions):
(WebCore::CompositeAnimation::pauseTransitionAtTime):

  • page/animation/ImplicitAnimation.cpp:

(WebCore::ImplicitAnimation::animate):
(WebCore::ImplicitAnimation::getAnimatedStyle):
(WebCore::ImplicitAnimation::isTargetPropertyEqual):
(WebCore::ImplicitAnimation::blendPropertyValueInStyle):
(WebCore::ImplicitAnimation::timeToNextService):

  • page/animation/KeyframeAnimation.cpp:

(WebCore::KeyframeAnimation::animate):
(WebCore::KeyframeAnimation::getAnimatedStyle):
(WebCore::KeyframeAnimation::timeToNextService):

  • rendering/style/RenderStyle.h:
13:58 Changeset [115580] by ggaren@apple.com

2012-04-28 Geoffrey Garen <ggaren@apple.com>

Try to fix the Windows build.

13:51 Changeset [115579] by ggaren@apple.com

Clarified JSGlobalData (JavaScript VM) lifetime
https://bugs.webkit.org/show_bug.cgi?id=85142

Reviewed by Anders Carlsson.

Source/JavaScriptCore:

This was so confusing that I didn't feel like I could reason about
memory lifetime in the heap without fixing it.

The rules are:

(1) JSGlobalData owns the virtual machine and all memory in it.

(2) Deleting a JSGlobalData frees the virtual machine and all memory
in it.

(Caveat emptor: if you delete the virtual machine while you're running
JIT code or accessing GC objects, you're gonna have a bad time.)

(I opted not to make arbitrary sub-objects keep the virtual machine
alive automatically because:

(a) doing that right would be complex and slow;

(b) in the case of an exiting thread or process, there's no
clear way to give the garbage collector a chance to try again
later;

(c) continuing to run the garbage collector after we've been
asked to shut down the virtual machine seems rude;

(d) we've never really supported that feature, anyway.)

(3) Normal ref-counting will do. No need to call a battery of
specialty functions to tear down a JSGlobalData. Its foibles
notwithstanding, C++ does in fact know how to execute destructors in
order.

  • API/JSContextRef.cpp:

(JSGlobalContextCreate): Removed compatibility shim for older
operating systems because it's no longer used.

(JSGlobalContextRelease): Now that we can rely on JSGlobalData to "do
the right thing", this code is much simpler. We still have one special
case to notify the garbage collector if we're removing the last
reference to the global object, since this can improve memory behavior.

  • heap/CopiedSpace.cpp:

(JSC::CopiedSpace::freeAllBlocks):

  • heap/CopiedSpace.h:

(CopiedSpace): Renamed "destroy" => "freeAllBlocks" because true
destruction-time behaviors should be limited to our C++ destructor.

  • heap/Heap.cpp:

(JSC::Heap::~Heap):
(JSC):
(JSC::Heap::lastChanceToFinalize):

  • heap/Heap.h:

(Heap):
(JSC::Heap::heap): Renamed "destroy" => "lastChanceToFinalize" because
true destruction-time behaviors should be limited to our C++
destructor.

Reorganized the code, putting code that must run before any objects
get torn down into lastChanceToFinalize, and code that just tears down
objects into our destructor.

  • heap/Local.h:

(JSC::LocalStack::LocalStack):
(JSC::LocalStack::push):
(LocalStack): See rule (2).

  • jsc.cpp:

(functionQuit):
(main):
(printUsageStatement):
(parseArguments):
(jscmain):

  • testRegExp.cpp:

(main):
(printUsageStatement):
(parseArguments):
(realMain): See rule (3).

I removed the feature of ensuring orderly tear-down when calling quit()
or running in --help mode because it didn't seem very useful and
making it work with Windows structured exception handling and
NO_RETURN didn't seem like a fun way to spend a Saturday.

  • runtime/JSGlobalData.h:
  • runtime/JSGlobalData.cpp:

(JSC::JSGlobalData::JSGlobalData): Moved heap to be the first data
member in JSGlobalData to ensure that it's destructed last, so other
objects that reference it destruct without crashing. This allowed me
to remove clearBuiltinStructures() altogether, and helped guarantee
rule (3).

(JSC::JSGlobalData::~JSGlobalData): Explicitly call
lastChanceToFinalize() at the head of our destructor to ensure that
all pending finalizers run while the virtual machine is still in a
valid state. Trying to resurrect (re-ref) the virtual machine at this
point is not valid, but all other operations are.

Changed a null to a 0xbbadbeef to clarify just how bad this beef is.

  • runtime/JSGlobalObject.cpp:

(JSC::JSGlobalObject::init):

  • runtime/JSGlobalObject.h:

(JSGlobalObject):
(JSC::JSGlobalObject::globalData): See rule (3).

Source/WebCore:

  • bindings/js/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::~WorkerScriptController): Slightly
simpler than before. We can't just rely on our default destructor
because we need to hold the JSLock when we tear down the VM.

  • bridge/NP_jsobject.cpp:

(_NPN_InvokeDefault):
(_NPN_Invoke):
(_NPN_Evaluate):
(_NPN_Construct): Don't RefPtr<> the JSGlobalData because it makes it
seem like you know something the rest of our code doesn't know. The
plugin JSGlobalData is immortal, anyway.

I also removed some timeout checker related code because that feature
doesn't work anymore, so it was effectively dead code.

Source/WebKit/mac:

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::invoke):
(WebKit::NetscapePluginInstanceProxy::invokeDefault):
(WebKit::NetscapePluginInstanceProxy::construct):

12:22 Changeset [115578] by zandobersek@gmail.com

Unreviewed, removing a Mac WebKit2-specific test result for
http/tests/xmlviewer/dumpAsText/frames.html that is not required
anymore after changes in r115572.

  • platform/mac-wk2/http/tests/xmlviewer: Removed.
  • platform/mac-wk2/http/tests/xmlviewer/dumpAsText: Removed.
  • platform/mac-wk2/http/tests/xmlviewer/dumpAsText/frames-expected.txt: Removed.
12:11 Changeset [115577] by loislo@chromium.org

Web Inspector: InspectorFrontendHost.append has to be implemented for saving heap snapshots.
https://bugs.webkit.org/show_bug.cgi?id=85137

We can save a file with help of InspectorFrontendHost.save method,
but it is suitable only for relatively small portions of data and
can't process the 6Gb heap snapshot.
These methods just pass the url and content into embedder.

Reviewed by Yury Semikhatsky.

Source/WebCore:

  • inspector/InspectorFrontendClient.h:

(InspectorFrontendClient):

  • inspector/InspectorFrontendClientLocal.h:

(WebCore::InspectorFrontendClientLocal::append):

  • inspector/InspectorFrontendHost.cpp:

(WebCore::InspectorFrontendHost::append):
(WebCore):

  • inspector/InspectorFrontendHost.h:

(InspectorFrontendHost):

  • inspector/InspectorFrontendHost.idl:

Source/WebKit/chromium:

  • public/WebDevToolsFrontendClient.h:

(WebKit::WebDevToolsFrontendClient::append):

  • src/InspectorFrontendClientImpl.cpp:

(WebKit::InspectorFrontendClientImpl::append):
(WebKit):

  • src/InspectorFrontendClientImpl.h:

(InspectorFrontendClientImpl):

11:53 Changeset [115576] by noam.rosenthal@nokia.com

[Qt][Texmap] Error of cross-compiling webkit with Qt 4.8.1
https://bugs.webkit.org/show_bug.cgi?id=84321

Speculative build-fix for Qt 4.8.
Use QGLContext for Qt 4.x instead of the platform-specific context.

Reviewed by Simon Hausmann.

No new tests, build fix.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(SharedGLData):
(WebCore::TextureMapperGLData::SharedGLData::getCurrentGLContext):

10:31 Changeset [115575] by eae@chromium.org

Unreviewed rebaseline for tests affected by Length change in r115573.

  • fast/borders/border-radius-huge-assert-expected.txt: Added.
  • fast/html/details-position-expected.txt: Added.
  • platform/chromium-mac-leopard/fast/forms/001-expected.png:
  • platform/chromium-mac-leopard/fast/replaced/width100percent-checkbox-expected.png:
  • platform/chromium-mac-leopard/fast/replaced/width100percent-radio-expected.png:
  • platform/chromium-mac-leopard/tables/mozilla/bugs/bug1318-expected.png:
  • platform/chromium-mac-leopard/tables/mozilla/bugs/bug4527-expected.png:
  • platform/chromium-mac-snowleopard/fast/forms/001-expected.png:
  • platform/chromium-mac-snowleopard/fast/replaced/width100percent-checkbox-expected.png:
  • platform/chromium-mac-snowleopard/fast/replaced/width100percent-radio-expected.png:
  • platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug1318-expected.png:
  • platform/chromium-mac-snowleopard/tables/mozilla/bugs/bug4527-expected.png:
  • platform/chromium-mac/fast/forms/001-expected.png:
  • platform/chromium-mac/fast/replaced/width100percent-checkbox-expected.png:
  • platform/chromium-mac/fast/replaced/width100percent-radio-expected.png:
  • platform/chromium-mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt: Added.
  • platform/chromium-mac/tables/mozilla/bugs/bug1318-expected.png:
  • platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.png:
  • platform/chromium-mac/tables/mozilla/bugs/bug4527-expected.txt:
  • platform/chromium-win/fast/borders/border-radius-huge-assert-expected.png:
  • platform/chromium-win/fast/html/details-position-expected.txt:
  • platform/chromium-win/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
  • platform/efl/fast/borders/border-radius-huge-assert-expected.txt: Removed.
  • platform/efl/fast/html/details-position-expected.txt: Removed.
  • platform/efl/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Removed.
  • platform/efl/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt: Removed.
  • platform/gtk/fast/borders/border-radius-huge-assert-expected.txt: Removed.
  • platform/gtk/fast/html/details-position-expected.txt: Removed.
  • platform/gtk/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Removed.
  • platform/gtk/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt: Removed.
  • svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt: Added.
  • svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt: Added.
10:26 Changeset [115574] by noam.rosenthal@nokia.com

[Texmap] Falling leaves demo missing opacity fade out animation
https://bugs.webkit.org/show_bug.cgi?id=83691

Reviewed by Martin Robinson.

The bug originated from clearing an intermediate surface with glClear while the scissor
state was wrong.
When using intermediate surfaces, maintain a clip-stack for each surface, rather than
a single clip-stack for the whole scene. When a surface is bound, its clip stack should
be applied.

Covered by existing compositing tests.

  • platform/graphics/texmap/TextureMapperGL.cpp:

(SharedGLData):
(WebCore::TextureMapperGL::ClipStack::push):
(WebCore):
(WebCore::TextureMapperGL::ClipStack::pop):
(WebCore::scissorClip):
(WebCore::TextureMapperGL::ClipStack::apply):
(WebCore::TextureMapperGL::clipStack):
(WebCore::TextureMapperGL::beginPainting):
(WebCore::TextureMapperGL::drawTexture):
(WebCore::BitmapTextureGL::didReset):
(WebCore::BitmapTextureGL::clearIfNeeded):
(WebCore::BitmapTextureGL::createFboIfNeeded):
(WebCore::BitmapTextureGL::bind):
(WebCore::TextureMapperGL::bindDefaultSurface):
(WebCore::TextureMapperGL::bindSurface):
(WebCore::TextureMapperGL::beginScissorClip):
(WebCore::TextureMapperGL::beginClip):
(WebCore::TextureMapperGL::endClip):

  • platform/graphics/texmap/TextureMapperGL.h:

(TextureMapperGL):
(ClipState):
(WebCore::TextureMapperGL::ClipState::ClipState):
(ClipStack):
(WebCore::TextureMapperGL::ClipStack::current):
(WebCore::TextureMapperGL::ClipStack::clear):
(BitmapTextureGL):
(WebCore::BitmapTextureGL::BitmapTextureGL):

09:27 Changeset [115573] by eae@chromium.org

Move Length and CSS length computation to float
https://bugs.webkit.org/show_bug.cgi?id=84801

Source/WebCore:

Patch by Emil A Eklund <eae@chromium.org> and Levi Weintraub <leviw@chromium.org> on 2012-04-26
Reviewed by Eric Seidel.

Change Length and CSS length computation to floating point. This gets us
closer to the goal of supporting subpixel layout and improves precision
for SVG which already uses floating point for its layout.

This change makes computedStyle return fractional values for pixel values
if a fraction is specified. It also changes the result of computations
where two or more values with fractional precision. Prior to this change
the result of Length(2.9) + Length(2.9) would be 4 as each value would be
floored. With this change the result is 5 as the addition is done with
floating point precision and then the result will be floored. Once we
enable subpixel layout the resulting value in this example would be 5.8.

Updated existing layout tests.

  • css/CSSComputedStyleDeclaration.cpp:

(WebCore::zoomAdjustedPixelValue):

  • css/CSSPrimitiveValue.cpp:

(WebCore::CSSPrimitiveValue::computeLength):

  • css/CSSPrimitiveValue.h:

(WebCore):
(WebCore::roundForImpreciseConversion):
Add specialized float version of roundForImpreciseConversion that matches
the int versions rounding logic.

If a value is sufficiently close to the next integer round it up to
ensure that a style rule such as "width: 4.999px" evaluates to 5px
instead of 4px. This is needed as, although Lengths are using floating
point, the layout system still uses integer precision and floors the
Length values.
This will change once we move to FractionalLayoutUnits but for now this
is needed to ensure compatibility with the existing system and tests.

Without this specialized rounding logic we fail a handful of tests
including acid3.

  • platform/Length.h:

(WebCore::Length::value):
(Length):
(WebCore::Length::intValue):

  • rendering/RenderTableCell.cpp:

(WebCore::RenderTableCell::styleOrColLogicalWidth):

LayoutTests:

Reviewed by Eric Seidel.

Change Length and CSS length computation to floating point. This gets us
closer to the goal of supporting subpixel layout and improves precision
for SVG which already uses floating point for its layout.

This change makes computedStyle return fractional values for pixel values
if a fraction is specified. It also changes the result of computations
where two or more values with fractional precision. Prior to this change
the result of Length(2.9) + Length(2.9) would be 4 as each value would be
floored. with this change the result is 5 as the addition is done with
floating point precision and then the result will be floored. Once we
enable subpixel layout the resulting value in this example would be 5.8.

  • fast/dom/length-attribute-mapping-expected.txt:
  • fast/dom/length-attribute-mapping.html:
  • platform/mac-snowleopard/fast/forms/001-expected.png:
  • platform/mac-snowleopard/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.png:
  • platform/mac/fast/forms/001-expected.txt:
  • platform/mac/fast/html/details-position-expected.png:
  • platform/mac/fast/html/details-position-expected.txt:
  • platform/mac/fast/replaced/width100percent-checkbox-expected.png:
  • platform/mac/fast/replaced/width100percent-checkbox-expected.txt:
  • platform/mac/fast/replaced/width100percent-radio-expected.png:
  • platform/mac/fast/replaced/width100percent-radio-expected.txt:
  • platform/mac/mathml/presentation/fractions-expected.png:
  • platform/mac/mathml/presentation/fractions-expected.txt:
  • platform/mac/mathml/presentation/fractions-vertical-alignment-expected.png:
  • platform/mac/mathml/presentation/fractions-vertical-alignment-expected.txt:
  • platform/mac/mathml/presentation/mo-stretch-expected.png:
  • platform/mac/mathml/presentation/mo-stretch-expected.txt:
  • platform/mac/mathml/presentation/subsup-expected.png:
  • platform/mac/mathml/presentation/subsup-expected.txt:
  • platform/mac/svg/zoom/page/zoom-replaced-intrinsic-ratio-001-expected.txt:
  • platform/mac/svg/zoom/page/zoom-svg-through-object-with-percentage-size-expected.txt:
  • platform/mac/tables/mozilla/bugs/bug1318-expected.png:
  • platform/mac/tables/mozilla/bugs/bug1318-expected.txt:
09:00 Changeset [115572] by zandobersek@gmail.com

[WK2] http/tests/navigation/anchor-frames-gbk.html fails
https://bugs.webkit.org/show_bug.cgi?id=76896

Reviewed by Darin Adler.

Tools:

Only dump as text if currently dumping render tree. This ensures that
calling dumpAsText in a test with dumpChildFramesAsText already being
called doesn't override the first decision, possibly making tests fail.

  • WebKitTestRunner/InjectedBundle/LayoutTestController.cpp:

(WTR::LayoutTestController::dumpAsText):

LayoutTests:

Unskip the now-passing test for Mac and Qt WK2 ports.

  • platform/mac-wk2/Skipped:
  • platform/qt-5.0-wk2/Skipped:
08:57 Changeset [115571] by zandobersek@gmail.com

Unreviewed, adding a Gtk-specific baseline for
fast/dom/Window/window-lookup-precedence.html.

  • platform/gtk/fast/dom/Window/window-lookup-precedence-expected.txt: Added.
08:42 Changeset [115570] by danw@gnome.org

watchlist: Add danw@gnome.org to SoupNetwork

  • Scripts/webkitpy/common/config/watchlist:
07:20 Changeset [115569] by apavlov@chromium.org

Web Inspector: Enable touch events feature fails touch feature detection
https://bugs.webkit.org/show_bug.cgi?id=84397

Source/WebCore:

Whenever the touch emulation is enabled, Inspector adds a script to evaluate on load,
that adds ontouch(start|end|move|cancel) properties to window.proto and document.proto.

Reviewed by Pavel Feldman.

  • inspector/front-end/DOMAgent.js:

(WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.get if):
(WebInspector.DOMAgent.prototype._emulateTouchEventsChanged.scriptAddedCallback):
(WebInspector.DOMAgent.prototype._emulateTouchEventsChanged):

  • inspector/front-end/inspector.js:

LayoutTests:

Reviewed by Pavel Feldman.

  • fast/events/touch/emulate-touch-events-expected.txt:
  • fast/events/touch/emulate-touch-events.html:
07:11 Changeset [115568] by commit-queue@webkit.org

Web Inspector: Shortcuts screen UI polish
https://bugs.webkit.org/show_bug.cgi?id=84708

1) remove inconsistent shadow;
2) reduce border radius;
3) vertically center the “X” button;
4) replace unreadable symbolic shortcuts with text;
5) gaps / colors / opacity adjustments;
6) section-to-column distribution algorithm is replaced with a fair one.

Patch by Eugene Klyuchnikov <eustas.bug@gmail.com> on 2012-04-28
Reviewed by Pavel Feldman.

This is a UI polising patch, so no new tests added.

  • English.lproj/localizedStrings.js: added keyboars arrow keys items
  • inspector/front-end/KeyboardShortcut.js: replace unreadable symbolic shortcuts with text
  • inspector/front-end/ShortcutsScreen.js:

(WebInspector.ShortcutsScreen):
(WebInspector.ShortcutsScreen.prototype.show): remove redundant parameter
(WebInspector.ShortcutsScreen.prototype._buildTable): change section distributing algorithm
(WebInspector.ShortcutsSection.prototype.renderSection): render colon with margins
(WebInspector.ShortcutsSection.prototype._renderHeader): apply classname to th elements

  • inspector/front-end/helpScreen.css:

(.help-window-main): reduce radius, remove shadow; tune color and opacity
(.help-window-caption): fix spacing; add ruler
(.help-window-title): fix spacing; remove ruler
(.help-content): fix spacing
(.help-close-button): fix spacing; adjust background color
(.help-column-table): fix spacing
(.help-table > tr > th): fix color
(.help-key): fix color
(.help-combine-keys, .help-key-delimiter): extract common style
(.help-combine-keys): remove dupe
(.help-section-title): add space between sections

05:47 Changeset [115567] by noel.gordon@gmail.com

Remove PlatformTouchPointQt.cpp PlatformTouchEventQt.cpp from the gyp projects
https://bugs.webkit.org/show_bug.cgi?id=85132

Unreviewed VS2010 gyp project generation fix.

PlatformTouchPointQt.cpp and PlatformTouchEventQt.cpp were removed in r115312,
so remove them from the gyp projects.

  • WebCore.gypi:
05:01 Changeset [115566] by zimmermann@webkit.org

<animateTransform type="scale"> should use '0' as effective from value not '1', if no base value is specified and from is not given
https://bugs.webkit.org/show_bug.cgi?id=85133

Source/WebCore:

It should start from scale=0. I had that fixed before, but it got lost during merging. Restore the fix.
See bug 85051, for more context why this is correct.

Tests: svg/animations/animateTransform-by-scale-1-expected.svg

svg/animations/animateTransform-by-scale-1.svg

  • svg/SVGAnimatedTransformList.cpp:

(WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):

LayoutTests:

Reviewed by Antti Koivisto.

  • svg/animations/animateTransform-by-scale-1-expected.svg: Added.
  • svg/animations/animateTransform-by-scale-1.svg: Added.
04:21 Changeset [115565] by noel.gordon@gmail.com

[chromium] http/tests/websocket/tests/hixie76/url-parsing.html is failing
https://bugs.webkit.org/show_bug.cgi?id=85130

Unreviewed test expectations update: fix expected text after r115533.

  • platform/chromium-mac/http/tests/websocket/tests/hixie76/url-parsing-expected.txt: Removed.
  • platform/chromium-win/http/tests/websocket/tests/hixie76/url-parsing-expected.txt: Removed.
  • platform/chromium/http/tests/websocket/tests/hixie76/url-parsing-expected.txt: Renamed from LayoutTests/platform/chromium-linux/http/tests/websocket/tests/hixie76/url-parsing-expected.txt.
04:03 Changeset [115564] by zimmermann@webkit.org

SVGAnimateColorElement doesn't support by/to animations properly
https://bugs.webkit.org/show_bug.cgi?id=36704

Reviewed by Antti Koivisto.

Source/WebCore:

Switch AnimatedColorAnimator to use the standard animateAdditiveNumber() method, taking progress & repeatCount into account.
This gives us accumulation/repeatCount support for free.

We just animate the four color components on their own now and clamp once at the end after addition/accumulation finished.
Import <animateColor> tests from Dr. Olaf Hoffmanns SVG Animation test suite, which all pass now.

While I was at it, remove the includeSMILProperties boolean from computeCSSPropertyValue - we always use the computed style
without SMIL effects included, whenever we want to retrieve the "base value", or handle "inherit/currentColor".

Tests: svg/animations/animateColor-additive-2a-expected.svg

svg/animations/animateColor-additive-2a.svg
svg/animations/animateColor-additive-2b-expected.svg
svg/animations/animateColor-additive-2b.svg
svg/animations/animateColor-additive-2c-expected.svg
svg/animations/animateColor-additive-2c.svg
svg/animations/animateColor-additive-2d-expected.svg
svg/animations/animateColor-additive-2d.svg

  • svg/ColorDistance.cpp:

(WebCore::ColorDistance::clampColor):
(WebCore::ColorDistance::addColors):
(WebCore::ColorDistance::addToColor):

  • svg/ColorDistance.h:

(ColorDistance):

  • svg/SVGAnimateElement.cpp:

(WebCore::SVGAnimateElement::resetToBaseValue):

  • svg/SVGAnimatedColor.cpp:

(WebCore::SVGAnimatedColorAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedColorAnimator::calculateAnimatedValue):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::computeCSSPropertyValue):
(WebCore::SVGAnimationElement::adjustForInheritance):

  • svg/SVGAnimationElement.h:

(SVGAnimationElement):

LayoutTests:

  • svg/animations/animateColor-additive-2a-expected.svg: Added.
  • svg/animations/animateColor-additive-2a.svg: Added.
  • svg/animations/animateColor-additive-2b-expected.svg: Added.
  • svg/animations/animateColor-additive-2b.svg: Added.
  • svg/animations/animateColor-additive-2c-expected.svg: Added.
  • svg/animations/animateColor-additive-2c.svg: Added.
  • svg/animations/animateColor-additive-2d-expected.svg: Added.
  • svg/animations/animateColor-additive-2d.svg: Added.
02:57 Changeset [115563] by caseq@chromium.org

[chromium] add frame boundaries instrumentation for the threaded compositor
https://bugs.webkit.org/show_bug.cgi?id=83926

  • call instrumentBeginFrame() in a callback invoked by CCThreadProxy to fix frame marks in WebInspector's timeline panel, currently broken for threaded compositor.
  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::willBeginFrame):

02:49 Changeset [115562] by yurys@chromium.org

Unreviewed. Gtk build fix after r115553.

  • Source/autotools/symbols.filter:
02:44 Changeset [115561] by zimmermann@webkit.org

2012-04-28 Nikolas Zimmermann <nzimmermann@rim.com>

Not reviewed. Fix Qt build -- I was too quick.

  • rendering/svg/SVGPathData.cpp: Add back Path.h include.
02:29 Changeset [115560] by zimmermann@webkit.org

Rename SVGPathParserFactory to SVGPathUtilities and remove the obsolete singleton
https://bugs.webkit.org/show_bug.cgi?id=85129

SVGPathParserFactory implements the singleton pattern, but stores no members.
Remove the singleton and move all functions to free-functions into SVGPathUtilities.h.

Makes the code easier to read - doesn't affect any tests.

  • CMakeLists.txt:
  • GNUmakefile.list.am:
  • Target.pri:
  • WebCore.gypi:
  • WebCore.vcproj/WebCore.vcproj:
  • WebCore.xcodeproj/project.pbxproj:
  • rendering/svg/SVGPathData.cpp:

(WebCore::updatePathFromPathElement):

  • rendering/svg/SVGRenderTreeAsText.cpp:

(WebCore::operator<<):

  • svg/SVGAllInOne.cpp:
  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::parseAttribute):

  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::constructFromString):
(WebCore::SVGAnimatedPathAnimator::startAnimValAnimation):
(WebCore::SVGAnimatedPathAnimator::resetAnimValToBaseVal):
(WebCore::SVGAnimatedPathAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedType.cpp:
  • svg/SVGGlyphElement.cpp:

(WebCore::SVGGlyphElement::buildGenericGlyphIdentifier):

  • svg/SVGPathBlender.cpp: Fix typo s/;;/;/
  • svg/SVGPathElement.cpp:

(WebCore::SVGPathElement::getTotalLength):
(WebCore::SVGPathElement::getPointAtLength):
(WebCore::SVGPathElement::getPathSegAtLength):
(WebCore::SVGPathElement::parseAttribute):
(WebCore::SVGPathElement::svgAttributeChanged):
(WebCore::SVGPathElement::lookupOrCreateDWrapper):
(WebCore::SVGPathElement::pathSegListChanged):

  • svg/SVGPathParserFactory.h: Removed.
  • svg/SVGPathSegList.cpp:

(WebCore::SVGPathSegList::valueAsString):

  • svg/SVGPathUtilities.cpp: Renamed from Source/WebCore/svg/SVGPathParserFactory.cpp.

(WebCore):
(WebCore::globalSVGPathBuilder):
(WebCore::globalSVGPathSegListBuilder):
(WebCore::globalSVGPathByteStreamBuilder):
(WebCore::globalSVGPathStringBuilder):
(WebCore::globalSVGPathTraversalStateBuilder):
(WebCore::globalSVGPathParser):
(WebCore::globalSVGPathBlender):
(WebCore::buildPathFromString):
(WebCore::buildSVGPathByteStreamFromSVGPathSegList):
(WebCore::buildPathFromByteStream):
(WebCore::buildSVGPathSegListFromByteStream):
(WebCore::buildStringFromByteStream):
(WebCore::buildStringFromSVGPathSegList):
(WebCore::buildSVGPathByteStreamFromString):
(WebCore::buildAnimatedSVGPathByteStream):
(WebCore::addToSVGPathByteStream):
(WebCore::getSVGPathSegAtLengthFromSVGPathByteStream):
(WebCore::getTotalLengthOfSVGPathByteStream):
(WebCore::getPointAtLengthOfSVGPathByteStream):

  • svg/SVGPathUtilities.h: Added.

(WebCore):

  • svg/properties/SVGAnimatedPathSegListPropertyTearOff.h:

(WebCore::SVGAnimatedPathSegListPropertyTearOff::animValDidChange):

02:20 Changeset [115559] by yurys@chromium.org

Unreviewed. Added new exported symbols after r115553.

  • win/WebKit2.def:
  • win/WebKit2CFLite.def:
02:16 Changeset [115558] by zimmermann@webkit.org

2012-04-28 Nikolas Zimmermann <nzimmermann@rim.com>

Fix repetitions & by animation support for path animations
https://bugs.webkit.org/show_bug.cgi?id=85071

Rubber-stamped by Antti Koivisto.

Cleanup SVGPathBlender, to make it more readable.

  • svg/SVGPathBlender.cpp: (WebCore::SVGPathBlender::blendLineToHorizontalSegment): (WebCore::SVGPathBlender::blendLineToVerticalSegment): (WebCore::SVGPathBlender::blendArcToSegment): (WebCore::SVGPathBlender::blendAnimatedPath):
02:07 Changeset [115557] by yurys@chromium.org

2012-04-28 Yury Semikhatsky <yurys@chromium.org>

Unreviewed. Qt build fix: added new exported symbols.

  • WebCore.exp.in:
01:49 Changeset [115556] by yurys@chromium.org

Unreviewed. Fix Qt minimal build after r115553.

  • inspector/InspectorConsoleAgent.h:
01:27 Changeset [115555] by zimmermann@webkit.org

Fix repetitions & by animation support for path animations
https://bugs.webkit.org/show_bug.cgi?id=85071

Reviewed by Antti Koivisto.

Source/WebCore:

Implement additive="sum" / by-animation support for path animations, eg.
<path d="M 10 10 L 10 100 Z">

<animate attributeName="d" begin="0s" dur="4s" by="M 0 0 L 90 0 Z"/>

<path>

animates the d attribute to "M 10 10 L 100 100 0 Z".

Now only <animateColor> and <animateMotion> are left to be fixed, all other types are working as expected now in all additive/accumulate/from-by/by/from-to animations.

Tests: svg/animations/path-animation-expected.svg

svg/animations/repeating-path-animation-expected.svg
svg/animations/repeating-path-animation.svg

  • svg/SVGAnimatedPath.cpp:

(WebCore::SVGAnimatedPathAnimator::addAnimatedTypes): Implemented, to support by-animations, instead of falling back to to-animations.
(WebCore::SVGAnimatedPathAnimator::calculateAnimatedValue): Handle repetitions, accumulation & addition.

  • svg/SVGPathBlender.cpp: Allow empty from source everywhere, use default values if no from value is specified, needed for by-animations.

(WebCore::SVGPathBlender::SVGPathBlender):
(WebCore::SVGPathBlender::blendAnimatedDimensonalFloat):
(WebCore::SVGPathBlender::blendAnimatedFloatPoint):
(WebCore::SVGPathBlender::blendMoveToSegment):
(WebCore::SVGPathBlender::blendLineToSegment):
(WebCore::SVGPathBlender::blendLineToHorizontalSegment):
(WebCore::SVGPathBlender::blendLineToVerticalSegment):
(WebCore::SVGPathBlender::blendCurveToCubicSegment):
(WebCore::SVGPathBlender::blendCurveToCubicSmoothSegment):
(WebCore::SVGPathBlender::blendCurveToQuadraticSegment):
(WebCore::SVGPathBlender::blendCurveToQuadraticSmoothSegment):
(WebCore::SVGPathBlender::blendArcToSegment):
(WebCore::SVGPathBlender::addAnimatedPath):
(WebCore::SVGPathBlender::blendAnimatedPath):

  • svg/SVGPathBlender.h: Add new addAnimatedPath function.

(SVGPathBlender):

  • svg/SVGPathByteStream.h:

(SVGPathByteStream): Make SVGPathByteStreams copyable, needed for SVGAnimatedPathAnimator.
(WebCore::SVGPathByteStream::size): Returns size of the SVGPathByteStream.

  • svg/SVGPathParserFactory.cpp:

(WebCore::SVGPathParserFactory::buildAnimatedSVGPathByteStream): Allow empty from streams, needed for by animations.
(WebCore::SVGPathParserFactory::addToSVGPathByteStream): Add 'byStream' 'repeatCount' times to 'toStream'. Both streams must match in size.

  • svg/SVGPathParserFactory.h: Add new addToSVGPathByteStream function.
  • svg/SVGPointList.cpp: Remove dead code.
  • svg/SVGPointList.h: Ditto.

(SVGPointList):

LayoutTests:

  • svg/animations/path-animation.svg: Added.
  • svg/animations/path-animation-expected.svg: Added.
  • svg/animations/repeating-path-animation-expected.svg: Added.
  • svg/animations/repeating-path-animation.svg: Added.
  • svg/animations/script-tests/svgpath-animation-1.js: Correct testcase, now that by animations are supported.

(sample2):
(sample3):
(executeTest):

  • svg/animations/svgpath-animation-1-expected.txt:
01:22 Changeset [115554] by zimmermann@webkit.org

SVGAnimateMotion does not handle accumulation
https://bugs.webkit.org/show_bug.cgi?id=18564

Reviewed by Antti Koivisto.

Source/WebCore:

Implement accumulation for <animateMotion>. Add lots of new
reftests, verifying additive/accumulate behavior is correct.

Tests: svg/animations/animateMotion-additive-1-expected.svg

svg/animations/animateMotion-additive-1.svg
svg/animations/animateMotion-additive-2a-expected.svg
svg/animations/animateMotion-additive-2a.svg
svg/animations/animateMotion-additive-2b-expected.svg
svg/animations/animateMotion-additive-2b.svg
svg/animations/animateMotion-additive-2c-expected.svg
svg/animations/animateMotion-additive-2c.svg
svg/animations/animateMotion-additive-2d-expected.svg
svg/animations/animateMotion-additive-2d.svg
svg/animations/mozilla/animateMotion-by-1-expected.svg
svg/animations/mozilla/animateMotion-by-1.svg
svg/animations/mozilla/animateMotion-from-to-1-expected.svg
svg/animations/mozilla/animateMotion-from-to-1.svg
svg/animations/mozilla/animateMotion-indefinite-to-1-expected.svg
svg/animations/mozilla/animateMotion-indefinite-to-1.svg
svg/animations/mozilla/animateMotion-indefinite-to-2-expected.svg
svg/animations/mozilla/animateMotion-indefinite-to-2.svg
svg/animations/mozilla/animateMotion-mpath-pathLength-1-expected.svg
svg/animations/mozilla/animateMotion-mpath-pathLength-1.svg
svg/animations/mozilla/animateMotion-mpath-targetChange-1-expected.svg
svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg
svg/animations/mozilla/animateMotion-to-overridden-1-expected.svg
svg/animations/mozilla/animateMotion-to-overridden-1.svg

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::SVGAnimateMotionElement):
(WebCore::SVGAnimateMotionElement::buildTransformForProgress):
(WebCore::SVGAnimateMotionElement::calculateAnimatedValue):

  • svg/SVGAnimateMotionElement.h:

LayoutTests:

Import mozilla <animateMotion> reftests, and two testscases from
Dr. Olaf Hoffmanns SVG test suite, covering all additive/accumulate modes
for <animateMotion>.

  • svg/animations/animateMotion-additive-1-expected.svg: Added.
  • svg/animations/animateMotion-additive-1.svg: Added.
  • svg/animations/animateMotion-additive-2a-expected.svg: Added.
  • svg/animations/animateMotion-additive-2a.svg: Added.
  • svg/animations/animateMotion-additive-2b-expected.svg: Added.
  • svg/animations/animateMotion-additive-2b.svg: Added.
  • svg/animations/animateMotion-additive-2c-expected.svg: Added.
  • svg/animations/animateMotion-additive-2c.svg: Added.
  • svg/animations/animateMotion-additive-2d-expected.svg: Added.
  • svg/animations/animateMotion-additive-2d.svg: Added.
  • svg/animations/mozilla/animateMotion-by-1-expected.svg: Added.
  • svg/animations/mozilla/animateMotion-by-1.svg: Added.
  • svg/animations/mozilla/animateMotion-from-to-1-expected.svg: Added.
  • svg/animations/mozilla/animateMotion-from-to-1.svg: Added.
  • svg/animations/mozilla/animateMotion-indefinite-to-1-expected.svg: Added.
  • svg/animations/mozilla/animateMotion-indefinite-to-1.svg: Added.
  • svg/animations/mozilla/animateMotion-indefinite-to-2-expected.svg: Added.
  • svg/animations/mozilla/animateMotion-indefinite-to-2.svg: Added.
  • svg/animations/mozilla/animateMotion-mpath-pathLength-1-expected.svg: Added.
  • svg/animations/mozilla/animateMotion-mpath-pathLength-1.svg: Added.
  • svg/animations/mozilla/animateMotion-mpath-targetChange-1-expected.svg: Added.
  • svg/animations/mozilla/animateMotion-mpath-targetChange-1.svg: Added.
  • svg/animations/mozilla/animateMotion-to-overridden-1-expected.svg: Added.
  • svg/animations/mozilla/animateMotion-to-overridden-1.svg: Added.
01:20 Changeset [115553] by yurys@chromium.org

ScriptStateProtectedPtr should not keep a strong reference to the context
https://bugs.webkit.org/show_bug.cgi?id=85009

Source/WebCore:

Delete console message arguments when DOMWindow where the messages were created
is reset on its frame.

Reviewed by Pavel Feldman.

Test: http/tests/inspector-enabled/console-clear-arguments-on-frame-navigation.html

  • inspector/ConsoleMessage.cpp:

(WebCore::ConsoleMessage::addToFrontend):
(WebCore::ConsoleMessage::windowCleared):
(WebCore::ConsoleMessage::argumentCount):
(WebCore):

  • inspector/ConsoleMessage.h:

(ConsoleMessage):

  • inspector/InspectorConsoleAgent.cpp:

(WebCore::InspectorConsoleAgent::consoleMessageArgumentCounts):
(WebCore):

  • inspector/InspectorConsoleAgent.h:

(InspectorConsoleAgent):

  • page/Frame.cpp:

(WebCore::Frame::clearDOMWindow):
(WebCore::Frame::setDOMWindow):

  • testing/Internals.cpp:

(WebCore):
(WebCore::Internals::consoleMessageArgumentCounts):

  • testing/Internals.h:

(Internals):

  • testing/Internals.idl:

LayoutTests:

Test that after frame navigation all arguments passed to the console messages
created in that frame will be discarded and not prevent the frame context from
being GC'ed.

Reviewed by Pavel Feldman.

  • http/tests/inspector-enabled/console-clear-arguments-on-frame-navigation-expected.txt: Added.
  • http/tests/inspector-enabled/console-clear-arguments-on-frame-navigation.html: Added.
  • http/tests/inspector-enabled/console-clear-arguments-on-frame-remove-expected.txt:
  • http/tests/inspector-enabled/console-clear-arguments-on-frame-remove.html:
  • http/tests/inspector-enabled/resources/console-clear-arguments-test.js: Added.

(print):
(dumpConsoleMessageArgumentCounts):

  • http/tests/inspector/console-test.js:

(initialize_ConsoleTest.InspectorTest.checkConsoleMessagesDontHaveParameters):
(initialize_ConsoleTest):

01:08 Changeset [115552] by ossy@webkit.org

[Qt] Unreviewed weekend gardening, skip new failing tests.

  • platform/qt/Skipped:
00:02 Changeset [115551] by noel.gordon@gmail.com

Layout Test fast/images/gif-large-checkerboard.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=85073

Unreviewed text expectations update. Test has been a solid PASS for past 12 hours
since the patch for bug 85077 rolled in.

  • platform/chromium/test_expectations.txt:

04/27/12:

23:32 Changeset [115550] by ossy@webkit.org

Unreviewed gardening, update expected files after r115446.

  • fast/dom/Window/window-lookup-precedence-expected.txt: Updated after r115446.
  • platform/qt-4.8/fast/dom/Window/window-properties-expected.txt: Updated after r115446.
  • platform/qt-5.0-wk2/fast/dom/Window/window-properties-expected.txt: Updated after r115446.
  • platform/qt-5.0-wk2/fast/dom/prototype-inheritance-2-expected.txt: Updated after r115446.
  • platform/qt-5.0/fast/dom/Window/window-properties-expected.txt: Updated after r115446.
  • platform/qt-5.0/fast/dom/prototype-inheritance-2-expected.txt: Updated after r115446.
  • platform/qt/fast/dom/prototype-inheritance-2-expected.txt: Updated after r115446.
  • platform/qt/fast/js/global-constructors-expected.txt: Updated after r115446.
23:28 Changeset [115549] by jochen@chromium.org

Ensure that there's always a provisional document loader if the frame loader is in provisional state
https://bugs.webkit.org/show_bug.cgi?id=83894

Reviewed by Nate Chapin.

We're still seeing crashes in the FrameLoader where the FrameLoader's
state is "provisional" but there is no provisional document loader. I
added code to update the FrameLoader's state everytime the provisional
document loader is cleared, and added checks that the FrameLoader's
state can't be set to provisional without a provisional loader.

If the crashes go away, or the newly added checks reveal the culprit,
we should relex the checks to use ASSERT() instead of CRASH().

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::init):
(WebCore::FrameLoader::setupForReplace):
(WebCore::FrameLoader::stopAllLoaders):
(WebCore::FrameLoader::clearProvisionalLoad):
(WebCore::FrameLoader::continueFragmentScrollAfterNavigationPolicy):
(WebCore::FrameLoader::continueLoadAfterNavigationPolicy):

23:06 Changeset [115548] by ggaren@apple.com

Try to fix the Windows build.

  • heap/WeakBlock.h:

(WeakBlock):

23:05 Changeset [115547] by zandobersek@gmail.com

Unreviewed, rebaselining after revisions 115446, 115510 and 115533.

  • fast/dom/Window/window-lookup-precedence-expected.txt:
  • http/tests/websocket/tests/hixie76/url-parsing-expected.txt:
  • http/tests/websocket/tests/hybi/url-parsing-expected.txt:
  • platform/gtk/media/video-colorspace-yuv420-expected.txt:
  • platform/gtk/media/video-colorspace-yuv422-expected.txt:
23:02 Changeset [115546] by ggaren@apple.com

Try to fix the Qt build.

  • bridge/qt/qt_runtime.cpp:

(JSC::Bindings::QtRuntimeMethod::finishCreation):

22:57 Changeset [115545] by ggaren@apple.com

Made WeakSet::allocate() static and removed its JSGlobalData argument
https://bugs.webkit.org/show_bug.cgi?id=85128

Reviewed by Anders Carlsson.

../JavaScriptCore:

This is a step toward faster finalization.

WeakSet::allocate() now deduces which WeakSet to allocate from based on
its JSCell* argument. (Currently, there's only one WeakSet, but soon
there will be many.)

This was a global replace of "globalData.heap.weakSet()->allocate" with
"WeakSet::allocate", plus by-hand removal of the JSGlobalData argument.

  • heap/WeakSetInlines.h: Copied from Source/JavaScriptCore/heap/WeakSet.h.

I had to split out WeakSet::allocate() in to a separate header to avoid
a cycle.

(JSC::WeakSet::allocate): We can mask the pointer we're passed to
figure out where to allocate our WeakImpl. (Soon, we'll use this to
associate the WeakImpl with the GC block it references.)

../WebCore:

Mechanically removed JSGlobalData arguments from PassWeak<T> and Weak<T> allocation.

  • bindings/js/JSDOMBinding.cpp:

(WebCore::jsStringSlowCase):

  • bindings/js/JSEventListener.h:

(WebCore::JSEventListener::setWrapper):

  • bindings/js/JSNodeFilterCondition.cpp:

(WebCore::JSNodeFilterCondition::JSNodeFilterCondition):

  • bindings/js/ScriptWrappable.h:

(WebCore::ScriptWrappable::setWrapper):

  • bridge/jsc/BridgeJSC.cpp:

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

  • bridge/qt/qt_runtime.cpp:

(JSC::Bindings::QtRuntimeMethod::finishCreation):

  • bridge/runtime_root.cpp:

(JSC::Bindings::RootObject::addRuntimeObject):

../WebKit2:

Mechanically removed JSGlobalData arguments from PassWeak<T> and Weak<T> allocation.

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:

(WebKit::NPRuntimeObjectMap::getOrCreateJSObject):

22:33 DeprecatingFeatures edited by dbates@webkit.org
Spelling corrections (diff)
22:31 Changeset [115544] by mrowe@apple.com

<rdar://problem/10346980> REGRESSION: Cannot enter text in Dashboard widget fields that have placeholder attribute

Remove a dashboard backwards compatibility quirk that was in place to support an old version
of the Stocks widget. It prevented the pointer-events property from being applied in Dashboard
widgets, which caused -webkit-input-placeholder elements to eat mouse clicks rather than giving
focus to the containing input elements. The offending widget has long since been fixed.

Reviewed by Dan Bernstein.

  • css/StyleResolver.cpp:

(WebCore::StyleResolver::collectMatchingRulesForList):

22:20 Changeset [115543] by mrowe@apple.com

Merge r115501.

22:19 Changeset [115542] by mrowe@apple.com

Versioning.

22:16 Changeset [115541] by mrowe@apple.com

New tag.

21:59 Changeset [115540] by dino@apple.com

Support reverse and alternate-reverse in CA animations
https://bugs.webkit.org/show_bug.cgi?id=78041

Reviewed by Beth Dakin.

Source/WebCore:

CoreAnimation does not natively support reverse and alternate-reverse
animation directions so we need to flip the animation values (keyframe
keys and timing functions) that we send to GraphicsLayerCA. Unfortunately
this code adds a lot of conditionals because it isn't as simple as
reversing the order of keys. You also now have a different alignment of
timing functions to the reversed list.

New tests to cover the two new directions, making sure the timing
functions are correctly inverted, and exercising fill modes.

Tests: animations/animation-direction-reverse-fill-mode-hardware.html

animations/animation-direction-reverse-fill-mode.html
animations/animation-direction-reverse-hardware-opacity.html
animations/animation-direction-reverse-hardware.html
animations/animation-direction-reverse-non-hardware.html
animations/animation-direction-reverse-timing-functions-hardware.html
animations/animation-direction-reverse-timing-functions.html

  • platform/graphics/ca/GraphicsLayerCA.cpp: Handle the previously unsupported animation directions, reversing the list of values and keytimes that would be used to create the CA Animation.

(WebCore::GraphicsLayerCA::addAnimation):

Do not create an animation if on Windows and using a reverse
direction.

(WebCore::GraphicsLayerCA::createFilterAnimationsFromKeyframes):
(WebCore::GraphicsLayerCA::setupAnimation):
(WebCore::GraphicsLayerCA::setAnimationEndpoints):
(WebCore::GraphicsLayerCA::setAnimationKeyframes):
(WebCore::GraphicsLayerCA::setTransformAnimationEndpoints):
(WebCore::GraphicsLayerCA::setTransformAnimationKeyframes):
(WebCore::GraphicsLayerCA::setFilterAnimationEndpoints):
(WebCore::GraphicsLayerCA::setFilterAnimationKeyframes):

  • platform/graphics/ca/PlatformCAAnimation.h:

(PlatformCAAnimation): Pass through a flag that tells the CA Animation
that it should invert the timing functions.

  • platform/graphics/ca/mac/PlatformCAAnimationMac.mm:

(toCAMediaTimingFunction): Add a parameter that will invert the timing
function coefficients if necessary.
(PlatformCAAnimation::setTimingFunction):
(PlatformCAAnimation::setTimingFunctions):

  • platform/graphics/ca/win/PlatformCAAnimationWin.cpp:

(toCACFTimingFunction):

New unused parameter.

LayoutTests:

Tests support for reverse and alternate-reverse animations on
CoreAnimation objects, as well as filling out some of the software
animator tests. There are three variables to exercise: reverse vs
forward direction animations, whether reversed timing functions are
inverted correctly, and that fill mode respects the direction of
animation.

Refactored the animation test helper class so we could reuse
property parsing and evaluation.

  • animations/animation-direction-reverse-fill-mode-expected.txt: Added.
  • animations/animation-direction-reverse-fill-mode-hardware-expected.txt: Added.
  • animations/animation-direction-reverse-fill-mode-hardware.html: Added.
  • animations/animation-direction-reverse-fill-mode.html: Added.
  • animations/animation-direction-reverse-hardware-expected.txt: Added.
  • animations/animation-direction-reverse-hardware-opacity-expected.txt: Added.
  • animations/animation-direction-reverse-hardware-opacity.html: Added.
  • animations/animation-direction-reverse-hardware.html: Added.
  • animations/animation-direction-reverse-non-hardware-expected.txt: Added.
  • animations/animation-direction-reverse-non-hardware.html: Added.
  • animations/animation-direction-reverse-timing-functions-expected.txt: Added.
  • animations/animation-direction-reverse-timing-functions-hardware-expected.txt: Added.
  • animations/animation-direction-reverse-timing-functions-hardware.html: Added.
  • animations/animation-direction-reverse-timing-functions.html: Added.
  • animations/resources/animation-test-helpers.js:

(checkExpectedValue):
(getPropertyValue):
(comparePropertyValue):

21:57 Changeset [115539] by commit-queue@webkit.org

Unreviewed, rolling out r115407.
http://trac.webkit.org/changeset/115407
https://bugs.webkit.org/show_bug.cgi?id=85126

Caused heap use after free (Requested by keishi_ on #webkit).

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

Source/WebCore:

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::HTMLFormControlElement):
(WebCore::HTMLFormControlElement::updateFieldSetAndLegendAncestor):
(WebCore::HTMLFormControlElement::insertedInto):
(WebCore::HTMLFormControlElement::removedFrom):
(WebCore::HTMLFormControlElement::disabled):
(WebCore::HTMLFormControlElement::recalcWillValidate):
(WebCore::HTMLFormControlElement::setNeedsWillValidateCheck):

  • html/HTMLFormControlElement.h:

(HTMLFormControlElement):

LayoutTests:

  • fast/forms/datalist/datalist-child-validation-expected.txt: Removed.
  • fast/forms/datalist/datalist-child-validation.html: Removed.
21:26 Changeset [115538] by ggaren@apple.com

Stop using aligned allocation for WeakBlock
https://bugs.webkit.org/show_bug.cgi?id=85124

Reviewed by Anders Carlsson.

We don't actually use the alignment for anything.

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::create):
(JSC::WeakBlock::WeakBlock): Switched from aligned allocation to regular
allocation.

  • heap/WeakBlock.h:

(WeakBlock): Don't use HeapBlock because HeapBlock requires aligned
allocation. This change required me to add some declarations that we used
to inherit from HeapBlock.

(WeakBlock::blockFor): Removed. This function relied on aligned allocation
but didn't do anything for us.

(WeakBlock::deallocate): Removed. WeakBlock doesn't own any of the deallocation
logic, so it shouldn't own the function.

  • heap/WeakSet.cpp:

(JSC::WeakSet::~WeakSet):
(JSC::WeakSet::finalizeAll):
(JSC::WeakSet::visitLiveWeakImpls):
(JSC::WeakSet::visitDeadWeakImpls):
(JSC::WeakSet::sweep):
(JSC::WeakSet::shrink):
(JSC::WeakSet::resetAllocator):
(JSC::WeakSet::tryFindAllocator):

  • heap/WeakSet.h:

(WeakSet): Updated declarations to reflect WeakBlock not inheriting from
HeapBlock. This allowed me to remove some casts, which was nice.

(JSC::WeakSet::deallocate): Directly set the deallocated flag instead of
asking WeakBlock to do it for us. We don't need to have a WeakBlock
pointer to set the flag, so stop asking for one.

21:16 Changeset [115537] by commit-queue@webkit.org

Unreviewed, rolling out r115529.
http://trac.webkit.org/changeset/115529
https://bugs.webkit.org/show_bug.cgi?id=85125

Broke Clang build (Requested by enne on #webkit).

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

  • WebKit.gypi:
  • src/WebMediaPlayerClientImpl.cpp:

(WebKit::WebMediaPlayerClientImpl::setVideoFrameProviderClient):

  • src/WebMediaPlayerClientImpl.h:

(WebMediaPlayerClientImpl):

  • tests/WebMediaPlayerClientImplTest.cpp: Removed.
20:58 Changeset [115536] by haraken@chromium.org

[JSC] Implement a helper method createNotEnoughArgumentsError()
https://bugs.webkit.org/show_bug.cgi?id=85102

Reviewed by Geoffrey Garen.

In bug 84787, kbr@ requested to avoid hard-coding
createTypeError(exec, "Not enough arguments") here and there.
This patch implements createNotEnoughArgumentsError(exec)
and uses it in JSC bindings.

c.f. a corresponding bug for V8 bindings is bug 85097.

Source/JavaScriptCore:

  • runtime/Error.cpp:

(JSC::createNotEnoughArgumentsError):
(JSC):

  • runtime/Error.h:

(JSC):

Source/WebCore:

Test: bindings/scripts/test/TestObj.idl

  • bindings/scripts/CodeGeneratorJS.pm: Modified as described above.

(GenerateArgumentsCountCheck):

  • bindings/js/JSDataViewCustom.cpp: Ditto.

(WebCore::getDataViewMember):
(WebCore::setDataViewMember):

  • bindings/js/JSDeprecatedPeerConnectionCustom.cpp:

(WebCore::JSDeprecatedPeerConnectionConstructor::constructJSDeprecatedPeerConnection):

  • bindings/js/JSDirectoryEntryCustom.cpp:

(WebCore::JSDirectoryEntry::getFile):
(WebCore::JSDirectoryEntry::getDirectory):

  • bindings/js/JSSharedWorkerCustom.cpp:

(WebCore::JSSharedWorkerConstructor::constructJSSharedWorker):

  • bindings/js/JSWebKitMutationObserverCustom.cpp:

(WebCore::JSWebKitMutationObserverConstructor::constructJSWebKitMutationObserver):
(WebCore::JSWebKitMutationObserver::observe):

  • bindings/js/JSWorkerCustom.cpp:

(WebCore::JSWorkerConstructor::constructJSWorker):

  • bindings/scripts/test/JS/JSFloat64Array.cpp: Updated run-bindings-tests.

(WebCore::jsFloat64ArrayPrototypeFunctionFoo):

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

(WebCore::jsTestActiveDOMObjectPrototypeFunctionExcitingFunction):
(WebCore::jsTestActiveDOMObjectPrototypeFunctionPostMessage):

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

(WebCore::jsTestCustomNamedGetterPrototypeFunctionAnotherFunction):

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

(WebCore::jsTestEventTargetPrototypeFunctionItem):
(WebCore::jsTestEventTargetPrototypeFunctionAddEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionRemoveEventListener):
(WebCore::jsTestEventTargetPrototypeFunctionDispatchEvent):

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

(WebCore::JSTestInterfaceConstructor::constructJSTestInterface):
(WebCore::jsTestInterfacePrototypeFunctionSupplementalMethod2):

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

(WebCore::jsTestMediaQueryListListenerPrototypeFunctionMethod):

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

(WebCore::JSTestNamedConstructorNamedConstructor::constructJSTestNamedConstructor):

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

(WebCore::JSTestObjConstructor::constructJSTestObj):
(WebCore::jsTestObjPrototypeFunctionVoidMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionIntMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionObjMethodWithArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithSequenceArg):
(WebCore::jsTestObjPrototypeFunctionMethodReturningSequence):
(WebCore::jsTestObjPrototypeFunctionMethodThatRequiresAllArgsAndThrows):
(WebCore::jsTestObjPrototypeFunctionSerializedValue):
(WebCore::jsTestObjPrototypeFunctionIdbKey):
(WebCore::jsTestObjPrototypeFunctionOptionsObject):
(WebCore::jsTestObjPrototypeFunctionAddEventListener):
(WebCore::jsTestObjPrototypeFunctionRemoveEventListener):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndOptionalArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonOptionalArgAndTwoOptionalArgs):
(WebCore::jsTestObjPrototypeFunctionMethodWithCallbackArg):
(WebCore::jsTestObjPrototypeFunctionMethodWithNonCallbackArgAndCallbackArg):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod1):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod2):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod3):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod4):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod5):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod6):
(WebCore::jsTestObjPrototypeFunctionOverloadedMethod7):
(WebCore::jsTestObjConstructorFunctionClassMethod2):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod11):
(WebCore::jsTestObjConstructorFunctionOverloadedMethod12):
(WebCore::jsTestObjPrototypeFunctionMethodWithUnsignedLongArray):
(WebCore::jsTestObjPrototypeFunctionConvert1):
(WebCore::jsTestObjPrototypeFunctionConvert2):
(WebCore::jsTestObjPrototypeFunctionConvert3):
(WebCore::jsTestObjPrototypeFunctionConvert4):
(WebCore::jsTestObjPrototypeFunctionConvert5):
(WebCore::jsTestObjPrototypeFunctionStrictFunction):

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

(WebCore::JSTestSerializedScriptValueInterfaceConstructor::constructJSTestSerializedScriptValueInterface):
(WebCore::jsTestSerializedScriptValueInterfacePrototypeFunctionAcceptTransferList):

20:56 Changeset [115535] by pilgrim@chromium.org

[Chromium] Call highMemoryUsageMB directly
https://bugs.webkit.org/show_bug.cgi?id=84841

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

Source/WebCore:

  • bindings/v8/V8GCController.cpp:

(WebCore::V8GCController::checkMemoryUsage):

  • platform/MemoryUsageSupport.cpp:

(WebCore::MemoryUsageSupport::highMemoryUsageMB):
(WebCore):

  • platform/MemoryUsageSupport.h:

(MemoryUsageSupport):

  • platform/chromium/MemoryUsageSupportChromium.cpp:

(WebCore::MemoryUsageSupport::highMemoryUsageMB):
(WebCore):

  • platform/chromium/PlatformSupport.h:

(PlatformSupport):

Source/WebKit/chromium:

  • src/PlatformSupport.cpp:

(WebCore):

20:43 Changeset [115534] by ggaren@apple.com

Only allow non-null pointers in the WeakSet
https://bugs.webkit.org/show_bug.cgi?id=85119

Reviewed by Darin Adler.

../JavaScriptCore:

This is a step toward more efficient finalization.

No clients put non-pointers (JSValues) into Weak<T> and PassWeak<T>.

Some clients put null pointers into Weak<T> and PassWeak<T>, but this is
more efficient and straight-forward to model with a null in the Weak<T>
or PassWeak<T> instead of allocating a WeakImpl just to hold null.

  • heap/PassWeak.h:

(JSC): Removed the Unknown (JSValue) type of weak pointer because it's
unused now.

(PassWeak): Don't provide a default initializer for our JSCell* argument.
This feature was only used in one place, and it was a bug.

(JSC::::get): Don't check for a null stored inside our WeakImpl: that's
not allowed anymore.

(JSC::PassWeak::PassWeak): Handle null as a null WeakImpl instead of
allocating a WeakImpl and storing null into it.

  • heap/Weak.h:

(Weak):
(JSC::::Weak): Same changes as in PassWeak<T>.

  • heap/WeakBlock.cpp:

(JSC::WeakBlock::visitLiveWeakImpls):
(JSC::WeakBlock::visitDeadWeakImpls): Only non-null cells are valid in
the WeakSet now, so no need to check for non-cells and null cell pointers.

  • heap/WeakImpl.h:

(JSC::WeakImpl::WeakImpl): Only non-null cells are valid in the WeakSet
now, so ASSERT that.

../WebCore:

  • bridge/jsc/BridgeJSC.cpp:

(JSC::Bindings::Instance::Instance): Don't allocate a WeakImpl just to
store null. This was needless, and is now a compile error. Instead,
rely on the default constructor, which will produce a cheap null.

20:30 Changeset [115533] by haraken@chromium.org

"Not enough arguments" error should be TypeError
https://bugs.webkit.org/show_bug.cgi?id=84628

Reviewed by Darin Adler.

Source/WebCore:

Currently, some custom bindings implement "Not enough arguments"
error as SyntaxError. The Web IDL spec requires that it should be
TypeError: http://www.w3.org/TR/WebIDL/#dfn-overload-resolution-algorithm
Thus, this patch changes SyntaxError to TypeError.

Tests: http/tests/websocket/tests/hixie76/url-parsing.html:

http/tests/websocket/tests/hybi/url-parsing.html:
http/tests/xmlhttprequest/exceptions.html:
svg/dom/SVGLength.html:
webaudio/audionode.html:

  • bindings/js/JSAudioContextCustom.cpp:

(WebCore::JSAudioContextConstructor::constructJSAudioContext):

  • bindings/js/JSSVGLengthCustom.cpp:

(WebCore::JSSVGLength::convertToSpecifiedUnits):

  • bindings/js/JSWebSocketCustom.cpp:

(WebCore::JSWebSocketConstructor::constructJSWebSocket):
(WebCore::JSWebSocket::send):

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::open):

  • bindings/v8/custom/V8AudioContextCustom.cpp:

(WebCore::V8AudioContext::constructorCallback):

  • bindings/v8/custom/V8SVGLengthCustom.cpp:

(WebCore::V8SVGLength::convertToSpecifiedUnitsCallback):

  • bindings/v8/custom/V8WebSocketCustom.cpp:

(WebCore::V8WebSocket::constructorCallback):
(WebCore::V8WebSocket::sendCallback):

  • bindings/v8/custom/V8XMLHttpRequestCustom.cpp:

(WebCore::V8XMLHttpRequest::openCallback):

LayoutTests:

Currently, some custom bindings implement "Not enough arguments"
error as SyntaxError. The Web IDL spec requires that it should be
TypeError: http://www.w3.org/TR/WebIDL/#dfn-overload-resolution-algorithm
Thus, this patch changes SyntaxError to TypeError, and adds test
cases for the exception.

  • http/tests/websocket/tests/hixie76/send-empty-expected.txt:
  • http/tests/websocket/tests/hixie76/url-parsing.html:
  • http/tests/websocket/tests/hybi/send-empty-expected.txt:
  • http/tests/websocket/tests/hybi/url-parsing.html:
  • http/tests/xmlhttprequest/exceptions-expected.txt:
  • http/tests/xmlhttprequest/exceptions.html:
  • platform/chromium-linux/http/tests/websocket/tests/hixie76/url-parsing-expected.txt:
  • platform/chromium/http/tests/websocket/tests/hybi/url-parsing-expected.txt:
  • svg/dom/SVGLength-expected.txt:
  • webaudio/audionode-expected.txt:
  • webaudio/audionode.html:
20:23 Changeset [115532] by kov@webkit.org

[GTK] jhbuild cloning is not following WEBKITOUTPUTDIR.
https://bugs.webkit.org/show_bug.cgi?id=76161

Reviewed by Martin Robinson.

  • Scripts/webkitdirs.pm:

(getJhbuildPath): New method to obtain the jhbuild base directory,
using the product base directory
(jhbuildConfigurationChanged): Use the new method
(buildAutotoolsProject): Ditto.

  • efl/jhbuildrc: Use WEBKITOUTPUTDIR when calculating the path.
  • gtk/jhbuildrc: Ditto.
  • jhbuild/jhbuild-wrapper: Ditto.
20:20 Changeset [115531] by kbr@google.com

Remove SHADER_COMPILER constant
https://bugs.webkit.org/show_bug.cgi?id=85115

Reviewed by Darin Adler.

Source/WebCore:

Removed constant which was previously removed from spec. Updated
layout test and expected results.

  • html/canvas/WebGLRenderingContext.idl:

LayoutTests:

  • fast/canvas/webgl/constants-expected.txt: Updated expected results.
  • fast/canvas/webgl/constants.html: Synced test with Khronos repository.
20:12 Changeset [115530] by commit-queue@webkit.org

[BlackBerry] Fixed background is scrolling in http://www.nieuwecode.nl
https://bugs.webkit.org/show_bug.cgi?id=85109

Patch by Arvid Nilsson <anilsson@rim.com> on 2012-04-27
Reviewed by Antonio Gomes.

Since the BlackBerry port uses very similar fixed position acceleration
as the Qt WebKit2 port, the same fix that worked for them in bug 83980
works for us.

Fixed by opting in to the FIXED_POSITION_CREATES_STACKING_CONTEXT
mechanism.

Covered by existing manual test fixed-position-no-z-index.html.

  • css/StyleResolver.cpp:
19:55 Changeset [115529] by enne@google.com

[chromium] Allow WebMediaPlayerClientImpl to switch clients
https://bugs.webkit.org/show_bug.cgi?id=85093

Reviewed by James Robinson.

WebVideoFrameProviderClient has a 1:1 relationship with a
WebVideoFrameProvider. The client here is CCVideoLayerImpl and the
provider is WebMediaPlayerClientImpl. If the provider gets a new
client, then the old client needs to be informed to stop using the
provider.

If this doesn't happen, then the old client will have an unsafe
pointer to the provider, will not get informed if the provider gets
deleted, and the client will crash when it dereferences the provider
pointer trying to tell the provider that its client is going away.

Test: WebMediaPlayerClientImplTest.InitialNullVideoClient

WebMediaPlayerClientImplTest.SetAndUnsetVideoClient
WebMediaPlayerClientImplTest.DestroyProvider
WebMediaPlayerClientImplTest.SetMultipleVideoClients

  • WebKit.gypi:
  • src/WebMediaPlayerClientImpl.cpp:

(WebKit::WebMediaPlayerClientImpl::setVideoFrameProviderClient):

  • src/WebMediaPlayerClientImpl.h:

(WebMediaPlayerClientImpl):

  • tests/WebMediaPlayerClientImplTest.cpp: Added.

(WebKit):
(FakeWebMediaPlayerClientImpl):
(WebKit::FakeWebMediaPlayerClientImpl::create):
(WebKit::FakeWebMediaPlayerClientImpl::FakeWebMediaPlayerClientImpl):
(FakeVideoFrameProviderClient):
(WebKit::FakeVideoFrameProviderClient::create):
(WebKit::FakeVideoFrameProviderClient::~FakeVideoFrameProviderClient):
(WebKit::FakeVideoFrameProviderClient::didReceiveFrame):
(WebKit::FakeVideoFrameProviderClient::didUpdateMatrix):
(WebKit::FakeVideoFrameProviderClient::stopUsingProvider):
(WebKit::FakeVideoFrameProviderClient::provider):
(WebKit::FakeVideoFrameProviderClient::FakeVideoFrameProviderClient):
(WebKit::TEST):

19:43 Changeset [115528] by commit-queue@webkit.org

[BlackBerry] Double tap zooming does nothing on table element on bustedtees.com
https://bugs.webkit.org/show_bug.cgi?id=85104

Patch by Jacky Jiang <zhajiang@rim.com> on 2012-04-27
Reviewed by George Staikos.

PR: 147006
This was caused by the incorrect fix master_33/SHA:612caec4.
Calculations like this "originalArea / pageArea" would always return 0
so that the incorrect node and blockRect were used by block zoom. This
patch takes care of it.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPagePrivate::blockZoomRectForNode):
(BlackBerry::WebKit::WebPage::blockZoom):

19:29 Changeset [115527] by tony@chromium.org

[chromium] Fix compiler warning in CCSchedulerTest.cpp with gcc 4.6.3
https://bugs.webkit.org/show_bug.cgi?id=85110

Reviewed by James Robinson.

Using gcc 4.6.3 (default on Precise), I get:
third_party/WebKit/Source/WebKit/chromium/tests/CCSchedulerTest.cpp:188:5: error: converting 'false' to pointer type
for argument 1 of 'char testing::internal::IsNullLiteralHelper(testing::internal::Secret*)' [-Werror=conversion-null]

  • tests/CCSchedulerTest.cpp:

(WebKitTests::TEST):

19:16 Changeset [115526] by commit-queue@webkit.org

fast/forms/listbox-clear-restore.html is failing
https://bugs.webkit.org/show_bug.cgi?id=82818

Patch by Joe Thomas <joethomas@motorola.com> on 2012-04-27
Reviewed by Darin Adler.

This testcase was flaky on the bot and from the screenshots it looks like the timer failed to fire.
Using document.body.offsetWidth to force a layout instead of timer.

  • fast/forms/listbox-clear-restore.html:
  • platform/mac/Skipped:
18:28 Changeset [115525] by nduca@chromium.org

Expose high-resolution on requestAnimationFrame callback
https://bugs.webkit.org/show_bug.cgi?id=66683

This changes requestAnimationFrame's animationStartTime argument
to be a high resolution DOM timestamp, per disucssion here:
http://lists.w3.org/Archives/Public/public-web-perf/2012Apr/0004.html

Reviewed by James Robinson.

Source/WebCore:

Covered by existing requestAnimationFrame tests.

  • dom/Document.cpp:

(WebCore::Document::serviceScriptedAnimations):

  • dom/Document.h:

(Document):

  • dom/ScriptedAnimationController.cpp:

(WebCore::ScriptedAnimationController::ScriptedAnimationController):
(WebCore::ScriptedAnimationController::serviceScriptedAnimations):
(WebCore):
(WebCore::ScriptedAnimationController::windowScreenDidChange):
(WebCore::ScriptedAnimationController::scheduleAnimation):
(WebCore::ScriptedAnimationController::animationTimerFired):
(WebCore::ScriptedAnimationController::displayRefreshFired):

  • dom/ScriptedAnimationController.h:

(ScriptedAnimationController):

  • page/FrameView.cpp:

(WebCore::FrameView::serviceScriptedAnimations):

  • page/FrameView.h:

(FrameView):

  • platform/graphics/DisplayRefreshMonitor.cpp:

(WebCore::DisplayRefreshMonitor::DisplayRefreshMonitor):
(WebCore::DisplayRefreshMonitor::notifyClients):

  • platform/graphics/DisplayRefreshMonitor.h:

(DisplayRefreshMonitor):

  • platform/graphics/blackberry/DisplayRefreshMonitorBlackBerry.cpp:

(WebCore::DisplayRefreshMonitor::displayLinkFired):

  • platform/graphics/mac/DisplayRefreshMonitorMac.cpp:

(WebCore):
(WebCore::DisplayRefreshMonitor::requestRefreshCallback):
(WebCore::DisplayRefreshMonitor::displayLinkFired):

Source/WebKit/chromium:

  • src/PageWidgetDelegate.cpp:

(WebKit::PageWidgetDelegate::animate):

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::updateAnimations):

18:26 Changeset [115524] by scherkus@chromium.org

[Chromium] Unreviewed, updating baselines for media/video-colorspace-yuv420/422.html due to r115510.

  • platform/chromium-linux/media/video-colorspace-yuv420-expected.png:
  • platform/chromium-linux/media/video-colorspace-yuv422-expected.png:
  • platform/chromium-mac-leopard/media/video-colorspace-yuv420-expected.png:
  • platform/chromium-mac-leopard/media/video-colorspace-yuv422-expected.png:
  • platform/chromium-mac-snowleopard/media/video-colorspace-yuv420-expected.png:
  • platform/chromium-mac-snowleopard/media/video-colorspace-yuv422-expected.png:
  • platform/chromium-mac/media/video-colorspace-yuv420-expected.png:
  • platform/chromium-mac/media/video-colorspace-yuv420-expected.txt:
  • platform/chromium-mac/media/video-colorspace-yuv422-expected.png:
  • platform/chromium-mac/media/video-colorspace-yuv422-expected.txt:
  • platform/chromium-win/media/video-colorspace-yuv420-expected.png:
  • platform/chromium-win/media/video-colorspace-yuv420-expected.txt:
  • platform/chromium-win/media/video-colorspace-yuv422-expected.png:
  • platform/chromium-win/media/video-colorspace-yuv422-expected.txt:
  • platform/chromium/test_expectations.txt:
18:02 Changeset [115523] by barraclough@apple.com

<rdar://problem/7909395> Math in JavaScript is inaccurate on iOS

By defalut IEEE754 denormal support is disabled on iOS;
turn it on.

Reviewed by Filip Pizlo.

  • jsc.cpp:

(main):

  • clear the appropriate bit in the fpscr.
18:00 Changeset [115522] by haraken@chromium.org

[V8] Implement a helper method V8Proxy::throwNotEnoughArgumentsError()
https://bugs.webkit.org/show_bug.cgi?id=85097

Reviewed by Kenneth Russell.

In bug 84787, kbr requested to avoid hard-coding
throwError("Not enough arguments", V8Proxy::TypeError) here and there.
This patch implements V8Proxy::throwNotEnoughArgumentsError()
and uses it in V8 bindings.

No tests. No change in behavior.

  • bindings/scripts/CodeGeneratorV8.pm:

(GenerateArgumentsCountCheck):
(GenerateEventConstructorCallback):

  • bindings/v8/V8Proxy.cpp:

(WebCore::V8Proxy::throwNotEnoughArgmentsError):
(WebCore):

  • bindings/v8/V8Proxy.h:

(V8Proxy):

  • bindings/v8/custom/V8DataViewCustom.cpp:

(WebCore::V8DataView::getInt8Callback):
(WebCore::V8DataView::getUint8Callback):
(WebCore::V8DataView::setInt8Callback):
(WebCore::V8DataView::setUint8Callback):

  • bindings/v8/custom/V8DirectoryEntryCustom.cpp:

(WebCore::V8DirectoryEntry::getDirectoryCallback):
(WebCore::V8DirectoryEntry::getFileCallback):

  • bindings/v8/custom/V8IntentConstructor.cpp:

(WebCore::V8Intent::constructorCallback):

  • bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:

(WebCore::V8WebKitMutationObserver::constructorCallback):
(WebCore::V8WebKitMutationObserver::observeCallback):

Test: bindings/scripts/test/TestObj.idl

  • bindings/scripts/CodeGeneratorV8.pm: Modified as described above.

(GenerateArgumentsCountCheck):
(GenerateEventConstructorCallback):

  • bindings/v8/V8Proxy.cpp: Ditto.

(WebCore::V8Proxy::throwNotEnoughArgumentsError):
(WebCore):

  • bindings/v8/V8Proxy.h:

(V8Proxy):

  • bindings/v8/custom/V8DataViewCustom.cpp:

(WebCore::V8DataView::getInt8Callback):
(WebCore::V8DataView::getUint8Callback):
(WebCore::V8DataView::setInt8Callback):
(WebCore::V8DataView::setUint8Callback):

  • bindings/v8/custom/V8DirectoryEntryCustom.cpp:

(WebCore::V8DirectoryEntry::getDirectoryCallback):
(WebCore::V8DirectoryEntry::getFileCallback):

  • bindings/v8/custom/V8IntentConstructor.cpp:

(WebCore::V8Intent::constructorCallback):

  • bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:

(WebCore::V8WebKitMutationObserver::constructorCallback):
(WebCore::V8WebKitMutationObserver::observeCallback):

  • bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests.

(WebCore::Float64ArrayV8Internal::fooCallback):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:

(WebCore::TestActiveDOMObjectV8Internal::excitingFunctionCallback):
(WebCore::TestActiveDOMObjectV8Internal::postMessageCallback):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:

(WebCore::TestCustomNamedGetterV8Internal::anotherFunctionCallback):

  • bindings/scripts/test/V8/V8TestEventConstructor.cpp:

(WebCore::V8TestEventConstructor::constructorCallback):

  • bindings/scripts/test/V8/V8TestEventTarget.cpp:

(WebCore::TestEventTargetV8Internal::itemCallback):
(WebCore::TestEventTargetV8Internal::dispatchEventCallback):

  • bindings/scripts/test/V8/V8TestInterface.cpp:

(WebCore::TestInterfaceV8Internal::supplementalMethod2Callback):
(WebCore::V8TestInterface::constructorCallback):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:

(WebCore::TestMediaQueryListListenerV8Internal::methodCallback):

  • bindings/scripts/test/V8/V8TestNamedConstructor.cpp:

(WebCore::V8TestNamedConstructorConstructorCallback):

  • bindings/scripts/test/V8/V8TestObj.cpp:

(WebCore::TestObjV8Internal::voidMethodWithArgsCallback):
(WebCore::TestObjV8Internal::intMethodWithArgsCallback):
(WebCore::TestObjV8Internal::objMethodWithArgsCallback):
(WebCore::TestObjV8Internal::methodWithSequenceArgCallback):
(WebCore::TestObjV8Internal::methodReturningSequenceCallback):
(WebCore::TestObjV8Internal::methodThatRequiresAllArgsAndThrowsCallback):
(WebCore::TestObjV8Internal::serializedValueCallback):
(WebCore::TestObjV8Internal::idbKeyCallback):
(WebCore::TestObjV8Internal::optionsObjectCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndOptionalArgCallback):
(WebCore::TestObjV8Internal::methodWithNonOptionalArgAndTwoOptionalArgsCallback):
(WebCore::TestObjV8Internal::methodWithCallbackArgCallback):
(WebCore::TestObjV8Internal::methodWithNonCallbackArgAndCallbackArgCallback):
(WebCore::TestObjV8Internal::overloadedMethod1Callback):
(WebCore::TestObjV8Internal::overloadedMethod2Callback):
(WebCore::TestObjV8Internal::overloadedMethod3Callback):
(WebCore::TestObjV8Internal::overloadedMethod4Callback):
(WebCore::TestObjV8Internal::overloadedMethod5Callback):
(WebCore::TestObjV8Internal::overloadedMethod6Callback):
(WebCore::TestObjV8Internal::overloadedMethod7Callback):
(WebCore::TestObjV8Internal::overloadedMethod11Callback):
(WebCore::TestObjV8Internal::overloadedMethod12Callback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod1Callback):
(WebCore::TestObjV8Internal::enabledAtRuntimeMethod2Callback):
(WebCore::TestObjV8Internal::convert1Callback):
(WebCore::TestObjV8Internal::convert2Callback):
(WebCore::TestObjV8Internal::convert3Callback):
(WebCore::TestObjV8Internal::convert4Callback):
(WebCore::TestObjV8Internal::convert5Callback):
(WebCore::TestObjV8Internal::strictFunctionCallback):
(WebCore::V8TestObj::constructorCallback):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:

(WebCore::TestSerializedScriptValueInterfaceV8Internal::acceptTransferListCallback):
(WebCore::V8TestSerializedScriptValueInterface::constructorCallback):

17:34 Changeset [115521] by pilgrim@chromium.org

[Chromium] Call lowMemoryUsageMB directly
https://bugs.webkit.org/show_bug.cgi?id=84840

Reviewed by Kentaro Hara.

Part of a refactoring series. See tracking bug 82948.

Source/WebCore:

  • bindings/v8/V8GCController.cpp:

(WebCore::V8GCController::checkMemoryUsage):

  • platform/MemoryUsageSupport.cpp:

(WebCore::MemoryUsageSupport::lowMemoryUsageMB):
(WebCore):

  • platform/MemoryUsageSupport.h:

(MemoryUsageSupport):

  • platform/chromium/MemoryUsageSupportChromium.cpp:

(WebCore::MemoryUsageSupport::lowMemoryUsageMB):
(WebCore):

  • platform/chromium/PlatformSupport.h:

(PlatformSupport):

Source/WebKit/chromium:

  • src/PlatformSupport.cpp:

(WebCore):

17:10 Changeset [115520] by yi.4.shen@nokia.com

REGRESSION(113723): Pressing enter in this list example deletes the whole list
https://bugs.webkit.org/show_bug.cgi?id=85016

Reviewed by Enrica Casucci.

The bug was caused by CompositeEditCommand::breakOutOfEmptyListItem, which calls isListItem
on the empty list's siblings to decide which part of the list should get removed. However,
the check fails when the empty list's sibling is a text node, or a list element (e.g. ul, ol).
Fixed it by skipping empty list's non-element sibling and calling isListElement to do further
check.

Source/WebCore:

Test: added new test cases in the existing test (break-out-of-empty-list-item.html)

  • editing/CompositeEditCommand.cpp:

(WebCore::CompositeEditCommand::breakOutOfEmptyListItem):

LayoutTests:

  • editing/execCommand/break-out-of-empty-list-item-expected.txt:
  • editing/execCommand/script-tests/break-out-of-empty-list-item.js:
17:07 Changeset [115519] by commit-queue@webkit.org

[chromium] Add pause and resume support for accelerated css animations.
https://bugs.webkit.org/show_bug.cgi?id=84601

Patch by Ian Vollick <vollick@chromium.org> on 2012-04-27
Reviewed by James Robinson.

Source/WebCore:

Tested in:
CCLayerAnimationControllerTest.syncPauseResume
CCActiveAnimationTest.TrimTimeTimeOffset
CCActiveAnimationTest.TrimTimeSuspendResume
CCActiveAnimationTest.IsFinishedNeedsSynchronizedStartTime
CCActiveAnimationTest.RunStateChangesIgnoredWhileSuspended

  • platform/graphics/chromium/GraphicsLayerChromium.cpp:

(WebCore::GraphicsLayerChromium::suspendAnimations):
(WebCore::GraphicsLayerChromium::resumeAnimations):

  • platform/graphics/chromium/GraphicsLayerChromium.h:

(GraphicsLayerChromium):

  • platform/graphics/chromium/LayerChromium.cpp:

(WebCore::LayerChromium::suspendAnimations):
(WebCore::LayerChromium::resumeAnimations):

  • platform/graphics/chromium/LayerChromium.h:

(LayerChromium):

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

(WebCore::CCActiveAnimation::CCActiveAnimation):
(WebCore::CCActiveAnimation::setRunState):
(WebCore::CCActiveAnimation::suspend):
(WebCore::CCActiveAnimation::resume):
(WebCore::CCActiveAnimation::isFinishedAt):
(WebCore::CCActiveAnimation::trimTimeToCurrentIteration):
(WebCore::CCActiveAnimation::cloneForImplThread):
(WebCore::CCActiveAnimation::pushPropertiesTo):

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

(CCActiveAnimation):
(WebCore::CCActiveAnimation::setStartTime):
(WebCore::CCActiveAnimation::timeOffset):
(WebCore::CCActiveAnimation::setTimeOffset):
(WebCore::CCActiveAnimation::isFinished):

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

(WebCore::CCLayerAnimationController::addAnimation):
(WebCore::CCLayerAnimationController::pauseAnimation):
(WebCore::CCLayerAnimationController::suspendAnimations):
(WebCore::CCLayerAnimationController::resumeAnimations):
(WebCore::CCLayerAnimationController::pushAnimationUpdatesTo):
(WebCore::CCLayerAnimationController::getActiveAnimation):
(WebCore::CCLayerAnimationController::pushNewAnimationsToImplThread):
(WebCore::CCLayerAnimationController::removeAnimationsCompletedOnMainThread):
(WebCore::CCLayerAnimationController::pushPropertiesToImplThread):
(WebCore):
(WebCore::CCLayerAnimationController::tickAnimations):

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

(CCLayerAnimationController):

Source/WebKit/chromium:

  • tests/CCActiveAnimationTest.cpp:

(WebCore::TEST):
(WebCore):

  • tests/CCLayerAnimationControllerTest.cpp:

(WebKitTests::TEST):
(WebKitTests):

17:04 Changeset [115518] by timothy_horton@apple.com

SMIL animation causes leak of the related Document (and many elements)
https://bugs.webkit.org/show_bug.cgi?id=83856
<rdar://problem/11216047>

Reviewed by Dean Jackson.

The SVGAnimatedProperty cache was previously holding a reference to the properties it contained;
said references were cleared in the SVGAnimatedProperty destructor (which was never called because
there was always one remaining reference from the cache).

The SVGAnimatedProperty cache now holds raw pointers instead of RefPtrs; the SVGAnimateElement now
owns its own SVGAnimatedProperties, both for itself and for any <use/> instances of itself. They're
cleared and destroyed within SVGAnimateElement::targetElementWillChange, at which time they're removed
from the cache.

SVGPropertyTearOffs now keep a reference to their SVGElement (m_contextElement) instead of their SVGAnimatedProperty;
this way, there is no reference cycle, but the animated property (owned by the element) and the element itself are
kept alive until the TearOff is garbage collected.

Add a few tests for different parts of this patch: smil-leak-elements tests that animated
elements are garbage collected properly after being removed from the page;

smil-leak-element-instances and its related smil-leak-element-instances-noBaseValRef test
that we don't leak instances after they're removed from the document while the original element is still alive;

smil-leak-dynamically-added-element-instances tests the same thing, but adds half of the instances
while the animation is in the middle of running;

svglength-element-removed-crash ensures that an animated element is not freed
if JavaScript code is holding a reference to an animated property wrapper.

File lists left off because they're very long.

16:56 Changeset [115517] by adamk@chromium.org

Remove misspelled, unused, unimplemented method from V8Proxy
https://bugs.webkit.org/show_bug.cgi?id=85091

Reviewed by Dimitri Glazkov.

  • bindings/v8/V8Proxy.h:

(V8Proxy):

16:51 Changeset [115516] by msaboff@apple.com

Memory wasted in JSString for non-rope strings
https://bugs.webkit.org/show_bug.cgi?id=84907

Reviewed by Geoffrey Garen.

Split JSString into two classes, JSString as a base class that does not
include the fibers of a Rope, and a subclass JSRopeString that has the
rope functionality. Both classes "share" the same ClassInfo. Added
a bool to JSString to indicate that the string was allocated as a JSRopeString
to properly handle visiting the fiber children when the rope is resolved and
the JSRopeString appears as a JSString. Didn't change the interface of JSString
to require any JIT changes.

As part of this change, removed "cellSize" from ClassInfo since both classes
share the same ClassInfo, but have different sizes. The only use I could find
for cellSize was an ASSERT in allocateCell().

This appears to be neutral on performance tests.

  • JavaScriptCore.vcproj/JavaScriptCore/JavaScriptCore.def: Changed JSString::resolveRope

to JSRopeString::resolveRope

  • runtime/ClassInfo.h:

(JSC):
(ClassInfo):

  • runtime/JSCell.h:

(JSC::allocateCell):

  • runtime/JSString.cpp:

(JSC::JSRopeString::RopeBuilder::expand):
(JSC::JSString::visitChildren):
(JSC):
(JSC::JSRopeString::visitFibers):
(JSC::JSRopeString::resolveRope):
(JSC::JSRopeString::resolveRopeSlowCase8):
(JSC::JSRopeString::resolveRopeSlowCase):
(JSC::JSRopeString::outOfMemory):
(JSC::JSRopeString::getIndexSlowCase):

  • runtime/JSString.h:

(JSC):
(JSString):
(JSC::JSString::finishCreation):
(JSC::JSString::create):
(JSC::JSString::isRope):
(JSC::JSString::is8Bit):
(JSRopeString):
(RopeBuilder):
(JSC::JSRopeString::RopeBuilder::RopeBuilder):
(JSC::JSRopeString::RopeBuilder::append):
(JSC::JSRopeString::RopeBuilder::release):
(JSC::JSRopeString::RopeBuilder::length):
(JSC::JSRopeString::JSRopeString):
(JSC::JSRopeString::finishCreation):
(JSC::JSRopeString::createNull):
(JSC::JSRopeString::create):
(JSC::JSString::value):
(JSC::JSString::tryGetValue):
(JSC::JSString::getIndex):
(JSC::jsStringBuilder):

  • runtime/Operations.h:

(JSC::jsString):
(JSC::jsStringFromArguments):

16:48 Changeset [115515] by yael.aharon@nokia.com

[Qt][WK2] Don't call syncRemoteContents from WebLayerTreeRenderer::paintToCurrentGLContext
https://bugs.webkit.org/show_bug.cgi?id=85088

Reviewed by Noam Rosenthal.

Remove the call to syncRemoteContents from WebLayerTreeRenderer::paintToCurrentGLContext,
since it was moved to QQuickWebPage::updatePaintNode.
To make sure that we always sync before painting, this patch also calls page->update()
when the viewport changes.

  • UIProcess/API/qt/qquickwebview.cpp:

(QQuickWebViewFlickablePrivate::_q_contentViewportChanged):

  • UIProcess/WebLayerTreeRenderer.cpp:

(WebKit::WebLayerTreeRenderer::paintToCurrentGLContext):

16:31 Changeset [115514] by dpranke@chromium.org

Mark tables/mozilla/other/slashlogo.html as SLOW
https://bugs.webkit.org/show_bug.cgi?id=85106

  • platform/chromium/test_expectations.txt:
16:28 EWS edited by gavinp@chromium.org
(diff)
16:27 Changeset [115513] by jpfau@apple.com

Disable RTF in JavaScript drag-and-drop
https://bugs.webkit.org/show_bug.cgi?id=76597

Reviewed by Maciej Stachowiak.

Source/WebCore:

Test: fast/events/drag-and-drop-subframe-dataTransfer.html

  • platform/mac/ClipboardMac.mm:

(WebCore::cocoaTypeFromHTMLClipboardType):

LayoutTests:

  • fast/events/drag-and-drop-subframe-dataTransfer-expected.txt: Added.
  • fast/events/drag-and-drop-subframe-dataTransfer.html: Added.
  • fast/events/resources/file-for-drag-and-drop-subframe-dataTransfer.html: Added.
16:26 Changeset [115512] by fpizlo@apple.com

DFG should have control flow graph simplification
https://bugs.webkit.org/show_bug.cgi?id=84553

Source/JavaScriptCore:

Reviewed by Oliver Hunt.

This change gives the DFG the ability to simplify the control flow graph
as part of an optimization fixpoint that includes CSE, CFA, and constant
folding. This required a number of interesting changes including:

  • Solidifying the set of invariants that the DFG obeys. For example, the head and tail of each basic block must advertise the set of live locals and the set of available locals, respectively. It must do so by referring to the first access to the local in the block (for head) and the last one (for tail). This patch introduces the start of a validation step that may be turned on even with asserts disabled. To ensure that these invariants are preserved, I had to remove the redundant phi elimination phase. For now I just remove the call, but in the future we will probably remove it entirely unless we find a use for it.


  • Making it easier to get the boolean version of a JSValue. This is a pure operation, but we previously did not treat it as such.


  • Fixing the merging and filtering of AbstractValues that correspond to concrete JSValues. This was previously broken and was limiting the effect of running constant folding. Fixing this meant that I had to change how constant folding eliminates GetLocal nodes, so as to ensure that the resulting graph still obeys DFG rules.


  • Introducing simplified getters for some of the things that DFG phases want to know about, like the Nth child of a node (now just graph.child(...) if you don't care about performance too much) or getting successors of a basic block.


The current CFG simplifier can handle almost all of the cases that it
ought to handle; the noteworthy one that is not yet handled is removing
basic blocks that just have jumps. To do this right we need to be able
to remove jump-only blocks that also perform keep-alive on some values.
To make this work, we need to be able to hoist the keep-alive into (or
just above) a Branch. This is not fundamentally difficult but I opted to
let this patch omit this optimization. We can handle this later.

This is a big win on programs that include inline functions that are
often called with constant arguments. Of course, SunSpider, V8, and
Kraken don't count. Those benchmarks are completely neutral with this
change.

  • API/JSValueRef.cpp:

(JSValueToBoolean):

(JSC::CodeBlock::dfgOSREntryDataForBytecodeIndex):

  • bytecode/Operands.h:

(JSC::Operands::setOperandFirstTime):
(Operands):

  • dfg/DFGAbstractState.cpp:

(JSC::DFG::AbstractState::initialize):
(JSC::DFG::AbstractState::execute):
(JSC::DFG::AbstractState::mergeStateAtTail):
(JSC::DFG::AbstractState::mergeToSuccessors):

  • dfg/DFGAbstractValue.h:

(JSC::DFG::AbstractValue::isClear):
(JSC::DFG::AbstractValue::operator!=):
(JSC::DFG::AbstractValue::merge):
(JSC::DFG::AbstractValue::filter):
(JSC::DFG::AbstractValue::validateIgnoringValue):
(AbstractValue):

  • dfg/DFGAdjacencyList.h:

(JSC::DFG::AdjacencyList::child):
(JSC::DFG::AdjacencyList::setChild):
(AdjacencyList):

  • dfg/DFGBasicBlock.h:

(JSC::DFG::BasicBlock::~BasicBlock):
(BasicBlock):
(JSC::DFG::BasicBlock::numNodes):
(JSC::DFG::BasicBlock::nodeIndex):
(JSC::DFG::BasicBlock::isPhiIndex):
(JSC::DFG::BasicBlock::isInPhis):
(JSC::DFG::BasicBlock::isInBlock):

  • dfg/DFGByteCodeParser.cpp:

(ByteCodeParser):
(DFG):
(JSC::DFG::ByteCodeParser::parse):

  • dfg/DFGCFAPhase.cpp:

(JSC::DFG::CFAPhase::run):
(JSC::DFG::CFAPhase::performBlockCFA):
(JSC::DFG::performCFA):

  • dfg/DFGCFAPhase.h:

(DFG):

  • dfg/DFGCFGSimplificationPhase.cpp: Added.

(DFG):
(CFGSimplificationPhase):
(JSC::DFG::CFGSimplificationPhase::CFGSimplificationPhase):
(JSC::DFG::CFGSimplificationPhase::run):
(JSC::DFG::CFGSimplificationPhase::killUnreachable):
(JSC::DFG::CFGSimplificationPhase::findOperandSource):
(JSC::DFG::CFGSimplificationPhase::keepOperandAlive):
(JSC::DFG::CFGSimplificationPhase::fixPossibleGetLocal):
(JSC::DFG::CFGSimplificationPhase::jettisonBlock):
(JSC::DFG::CFGSimplificationPhase::fixPhis):
(JSC::DFG::CFGSimplificationPhase::fixJettisonedPredecessors):
(JSC::DFG::CFGSimplificationPhase::removePotentiallyDeadPhiReference):
(JSC::DFG::CFGSimplificationPhase::OperandSubstitution::OperandSubstitution):
(OperandSubstitution):
(JSC::DFG::CFGSimplificationPhase::OperandSubstitution::dump):
(JSC::DFG::CFGSimplificationPhase::skipGetLocal):
(JSC::DFG::CFGSimplificationPhase::fixTailOperand):
(JSC::DFG::CFGSimplificationPhase::mergeBlocks):
(JSC::DFG::performCFGSimplification):

  • dfg/DFGCFGSimplificationPhase.h: Added.

(DFG):

  • dfg/DFGCSEPhase.cpp:

(JSC::DFG::CSEPhase::run):
(CSEPhase):
(JSC::DFG::CSEPhase::impureCSE):
(JSC::DFG::CSEPhase::globalVarLoadElimination):
(JSC::DFG::CSEPhase::getByValLoadElimination):
(JSC::DFG::CSEPhase::checkStructureLoadElimination):
(JSC::DFG::CSEPhase::getByOffsetLoadElimination):
(JSC::DFG::CSEPhase::getPropertyStorageLoadElimination):
(JSC::DFG::CSEPhase::getIndexedPropertyStorageLoadElimination):
(JSC::DFG::CSEPhase::performNodeCSE):
(JSC::DFG::CSEPhase::performBlockCSE):
(JSC::DFG::performCSE):

  • dfg/DFGCSEPhase.h:

(DFG):

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

(JSC::DFG::ConstantFoldingPhase::run):
(JSC::DFG::performConstantFolding):

  • dfg/DFGConstantFoldingPhase.h:

(DFG):

  • dfg/DFGDriver.cpp:

(JSC::DFG::compile):

  • dfg/DFGEdge.h:

(Edge):

  • dfg/DFGFixupPhase.cpp:

(JSC::DFG::FixupPhase::run):
(JSC::DFG::FixupPhase::fixupBlock):
(JSC::DFG::performFixup):

  • dfg/DFGFixupPhase.h:

(DFG):

  • dfg/DFGGraph.cpp:

(JSC::DFG::Graph::dump):
(JSC::DFG::Graph::handleSuccessor):
(DFG):
(JSC::DFG::Graph::determineReachability):
(JSC::DFG::Graph::resetReachability):

  • dfg/DFGGraph.h:

(JSC::DFG::Graph::deref):
(JSC::DFG::Graph::changeIndex):
(Graph):
(JSC::DFG::Graph::changeEdge):
(JSC::DFG::Graph::numSuccessors):
(JSC::DFG::Graph::successor):
(JSC::DFG::Graph::successorForCondition):
(JSC::DFG::Graph::isPredictedNumerical):
(JSC::DFG::Graph::byValIsPure):
(JSC::DFG::Graph::clobbersWorld):
(JSC::DFG::Graph::numChildren):
(JSC::DFG::Graph::child):

  • dfg/DFGNode.h:

(JSC::DFG::Node::convertToConstant):
(JSC::DFG::Node::numSuccessors):
(Node):
(JSC::DFG::Node::successor):
(JSC::DFG::Node::successorForCondition):

  • dfg/DFGNodeType.h:

(DFG):

  • dfg/DFGOSREntry.cpp:

(JSC::DFG::prepareOSREntry):

  • dfg/DFGOperations.cpp:
  • dfg/DFGPhase.cpp:

(JSC::DFG::Phase::endPhase):

  • dfg/DFGPhase.h:

(JSC::DFG::runPhase):

  • dfg/DFGPredictionPropagationPhase.cpp:

(JSC::DFG::PredictionPropagationPhase::run):
(JSC::DFG::performPredictionPropagation):

  • dfg/DFGPredictionPropagationPhase.h:

(DFG):

  • dfg/DFGRedundantPhiEliminationPhase.cpp:

(JSC::DFG::RedundantPhiEliminationPhase::run):
(JSC::DFG::performRedundantPhiElimination):

  • dfg/DFGRedundantPhiEliminationPhase.h:

(DFG):

  • dfg/DFGScoreBoard.h:

(JSC::DFG::ScoreBoard::use):
(ScoreBoard):
(JSC::DFG::ScoreBoard::useIfHasResult):

  • dfg/DFGSpeculativeJIT.cpp:

(JSC::DFG::SpeculativeJIT::compilePeepHoleObjectEquality):
(JSC::DFG::SpeculativeJIT::compilePeepHoleIntegerBranch):
(JSC::DFG::SpeculativeJIT::compile):
(JSC::DFG::SpeculativeJIT::createOSREntries):
(JSC::DFG::SpeculativeJIT::linkOSREntries):
(JSC::DFG::SpeculativeJIT::compileStrictEqForConstant):
(JSC::DFG::SpeculativeJIT::compileRegExpExec):

  • dfg/DFGSpeculativeJIT.h:

(JSC::DFG::SpeculativeJIT::nextBlock):
(SpeculativeJIT):
(JSC::DFG::SpeculativeJIT::use):
(JSC::DFG::SpeculativeJIT::jump):

  • dfg/DFGSpeculativeJIT32_64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGSpeculativeJIT64.cpp:

(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranchNull):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeBranch):
(JSC::DFG::SpeculativeJIT::nonSpeculativePeepholeStrictEq):
(JSC::DFG::SpeculativeJIT::emitBranch):
(JSC::DFG::SpeculativeJIT::compile):

  • dfg/DFGValidate.cpp: Added.

(DFG):
(Validate):
(JSC::DFG::Validate::Validate):
(JSC::DFG::Validate::validate):
(JSC::DFG::Validate::reportValidationContext):
(JSC::DFG::Validate::dumpData):
(JSC::DFG::Validate::dumpGraphIfAppropriate):
(JSC::DFG::validate):

  • dfg/DFGValidate.h: Added.

(DFG):
(JSC::DFG::validate):

  • dfg/DFGVirtualRegisterAllocationPhase.cpp:

(JSC::DFG::VirtualRegisterAllocationPhase::run):
(JSC::DFG::performVirtualRegisterAllocation):

  • dfg/DFGVirtualRegisterAllocationPhase.h:

(DFG):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::privateExecute):

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):

  • runtime/ArrayPrototype.cpp:

(JSC::arrayProtoFuncFilter):
(JSC::arrayProtoFuncEvery):
(JSC::arrayProtoFuncSome):

  • runtime/BooleanConstructor.cpp:

(JSC::constructBoolean):
(JSC::callBooleanConstructor):

  • runtime/JSCell.h:

(JSCell):

  • runtime/JSObject.cpp:

(JSC):

  • runtime/JSObject.h:
  • runtime/JSString.cpp:

(JSC::JSString::toBoolean):

  • runtime/JSString.h:

(JSString):
(JSC::JSCell::toBoolean):
(JSC::JSValue::toBoolean):

  • runtime/JSValue.h:
  • runtime/ObjectConstructor.cpp:

(JSC::toPropertyDescriptor):

  • runtime/RegExpConstructor.cpp:

(JSC::setRegExpConstructorMultiline):

  • runtime/RegExpPrototype.cpp:

(JSC::regExpProtoFuncToString):

Source/WebCore:

Reviewed by Oliver Hunt.

JSValue::toBoolean(ExecState*) -> JSValue::toBoolean()

No new tests, because no new behavior.

  • bindings/js/JSCustomSQLStatementErrorCallback.cpp:

(WebCore::JSSQLStatementErrorCallback::handleEvent):

  • bindings/js/JSDOMWindowCustom.cpp:

(WebCore::JSDOMWindow::addEventListener):
(WebCore::JSDOMWindow::removeEventListener):

  • bindings/js/JSDataViewCustom.cpp:

(WebCore::getDataViewMember):

  • bindings/js/JSDeviceMotionEventCustom.cpp:

(WebCore::JSDeviceMotionEvent::initDeviceMotionEvent):

  • bindings/js/JSDeviceOrientationEventCustom.cpp:

(WebCore::JSDeviceOrientationEvent::initDeviceOrientationEvent):

  • bindings/js/JSDictionary.cpp:

(WebCore::JSDictionary::convertValue):

  • bindings/js/JSDirectoryEntryCustom.cpp:

(WebCore::JSDirectoryEntry::getFile):
(WebCore::JSDirectoryEntry::getDirectory):

  • bindings/js/JSDirectoryEntrySyncCustom.cpp:

(WebCore::getFlags):

  • bindings/js/JSHTMLCanvasElementCustom.cpp:

(WebCore::JSHTMLCanvasElement::getContext):

  • bindings/js/JSInspectorFrontendHostCustom.cpp:

(WebCore::JSInspectorFrontendHost::showContextMenu):

  • bindings/js/JSMessageEventCustom.cpp:

(WebCore::handleInitMessageEvent):

  • bindings/js/JSWebGLRenderingContextCustom.cpp:

(WebCore::dataFunctionMatrix):

  • bindings/js/JSXMLHttpRequestCustom.cpp:

(WebCore::JSXMLHttpRequest::open):

  • bindings/js/ScriptDebugServer.cpp:

(WebCore::ScriptDebugServer::hasBreakpoint):

  • bindings/scripts/CodeGeneratorJS.pm:

(GenerateEventListenerCall):
(GenerateImplementation):
(JSValueToNative):

  • bridge/c/c_utility.cpp:

(JSC::Bindings::convertValueToNPVariant):

  • bridge/jni/jni_jsobject.mm:

(JavaJSObject::convertValueToJObject):

Source/WebKit/mac:

Reviewed by Oliver Hunt.

JSValue::toBoolean(ExecState*) -> JSValue::toBoolean()

  • Plugins/Hosted/NetscapePluginInstanceProxy.mm:

(WebKit::NetscapePluginInstanceProxy::addValueToArray):

Source/WebKit2:

Reviewed by Oliver Hunt.

JSValue::toBoolean(ExecState*) -> JSValue::toBoolean()

  • WebProcess/Plugins/Netscape/NPRuntimeObjectMap.cpp:

(WebKit::NPRuntimeObjectMap::convertJSValueToNPVariant):

16:23 Changeset [115511] by commit-queue@webkit.org

[EFL] [DRT] Unskip passing tests related to editing commands
https://bugs.webkit.org/show_bug.cgi?id=84944

Unreviewed, unskip passing editing commands tests.

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-04-27

  • platform/efl/Skipped:
16:18 Changeset [115510] by scherkus@chromium.org

Support video format yuv422p tests on different ports.
https://bugs.webkit.org/show_bug.cgi?id=82281

Patch by Shadi Khalek <shadi@chromium.org>
Reviewed by Eric Carlson.

  • media/content/test_yuv420.mp4: Added.
  • media/content/test_yuv420.ogv:
  • media/content/test_yuv422.mp4: Added.
  • media/content/test_yuv422.ogv:
  • media/video-colorspace-yuv420.html:
  • media/video-colorspace-yuv422.html:
16:15 Changeset [115509] by jamesr@google.com

[chromium] Separate IOSurface layer type from texture layers
https://bugs.webkit.org/show_bug.cgi?id=85030

Reviewed by Adrienne Walker.

Source/Platform:

Adds a new layer type for IOSurface backed layers, instead of sharing that functionality in
WebExternalTextureLayer. IOSurface backed layers do not share any other properties with external texture layers.

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

(WebExternalTextureLayer):

  • chromium/public/WebIOSurfaceLayer.h:

(WebCore):
(WebKit):
(WebIOSurfaceLayer):
(WebKit::WebIOSurfaceLayer::WebIOSurfaceLayer):
(WebKit::WebIOSurfaceLayer::~WebIOSurfaceLayer):

Source/WebCore:

Adds a new layer type for IOSurface layers and pipes through a separate path through to rendering. IOSurface
layers are very simple - they have an IOSurface id and size, nothing else. All IOSurface layers are "flipped" in
our terminology.

  • WebCore.gypi:
  • platform/graphics/chromium/IOSurfaceLayerChromium.cpp:

(WebCore):
(WebCore::IOSurfaceLayerChromium::create):
(WebCore::IOSurfaceLayerChromium::IOSurfaceLayerChromium):
(WebCore::IOSurfaceLayerChromium::~IOSurfaceLayerChromium):
(WebCore::IOSurfaceLayerChromium::setIOSurfaceProperties):
(WebCore::IOSurfaceLayerChromium::createCCLayerImpl):
(WebCore::IOSurfaceLayerChromium::drawsContent):
(WebCore::IOSurfaceLayerChromium::pushPropertiesTo):

  • platform/graphics/chromium/IOSurfaceLayerChromium.h:

(WebCore):
(IOSurfaceLayerChromium):

  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererChromium::drawIOSurfaceQuad):
(WebCore::LayerRendererChromium::cleanupSharedObjects):

  • platform/graphics/chromium/LayerRendererChromium.h:

(LayerRendererChromium):

  • platform/graphics/chromium/TextureLayerChromium.cpp:

(WebCore::TextureLayerChromium::TextureLayerChromium):
(WebCore::TextureLayerChromium::drawsContent):
(WebCore::TextureLayerChromium::pushPropertiesTo):

  • platform/graphics/chromium/TextureLayerChromium.h:

(TextureLayerChromium):

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

(WebCore::CCIOSurfaceDrawQuad::create):
(WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):

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

(CCIOSurfaceDrawQuad):

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

(WebCore):
(WebCore::CCIOSurfaceLayerImpl::CCIOSurfaceLayerImpl):
(WebCore::CCIOSurfaceLayerImpl::~CCIOSurfaceLayerImpl):
(WebCore::CCIOSurfaceLayerImpl::willDraw):
(WebCore::CCIOSurfaceLayerImpl::appendQuads):
(WebCore::CCIOSurfaceLayerImpl::dumpLayerProperties):
(WebCore::CCIOSurfaceLayerImpl::didLoseContext):
(WebCore::CCIOSurfaceLayerImpl::setIOSurfaceProperties):

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

(WebCore):
(CCIOSurfaceLayerImpl):
(WebCore::CCIOSurfaceLayerImpl::create):

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

(WebCore::CCTextureLayerImpl::CCTextureLayerImpl):
(WebCore::CCTextureLayerImpl::~CCTextureLayerImpl):
(WebCore::CCTextureLayerImpl::appendQuads):
(WebCore::CCTextureLayerImpl::didLoseContext):

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

(CCTextureLayerImpl):

Source/WebKit/chromium:

Update WebPluginContainerImpl to support having either a texture or IOSurface layer (but never both) depending
on the plugin's contents.

  • WebKit.gyp:
  • src/WebExternalTextureLayer.cpp:
  • src/WebIOSurfaceLayer.cpp:

(WebKit):
(WebKit::WebIOSurfaceLayer::create):
(WebKit::WebIOSurfaceLayer::setIOSurfaceProperties):
(WebKit::WebIOSurfaceLayer::WebIOSurfaceLayer):

  • src/WebPluginContainerImpl.cpp:

(WebKit::WebPluginContainerImpl::setBackingTextureId):
(WebKit::WebPluginContainerImpl::setBackingIOSurfaceId):
(WebKit::WebPluginContainerImpl::commitBackingTexture):
(WebKit::WebPluginContainerImpl::setOpaque):
(WebKit::WebPluginContainerImpl::platformLayer):
(WebKit::WebPluginContainerImpl::WebPluginContainerImpl):

  • src/WebPluginContainerImpl.h:

(WebPluginContainerImpl):

16:13 Changeset [115508] by dglazkov@chromium.org

[Chromium] fast/js/dfg-uint32array.html is a flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=85090

  • platform/chromium/test_expectations.txt: Added.
16:09 Changeset [115507] by dglazkov@chromium.org

Mark svg/as-image/svg-as-relative-image-with-explicit-size.html as flaky.
https://bugs.webkit.org/show_bug.cgi?id=85107

  • platform/chromium/test_expectations.txt: Registered flakiness.
16:08 Changeset [115506] by commit-queue@webkit.org

[BlackBerry] OpenGL related bug fixes
https://bugs.webkit.org/show_bug.cgi?id=84836

Patch by Arvid Nilsson <anilsson@rim.com> on 2012-04-27
Reviewed by Antonio Gomes.

PR147254, 148933, 149117, 149721, 150228

No new tests, covered by existing BlackBerry browser stress tests

  • platform/graphics/blackberry/CanvasLayerWebKitThread.cpp:

(WebCore::CanvasLayerWebKitThread::updateTextureContentsIfNeeded):

  • platform/graphics/blackberry/LayerCompositingThread.cpp:

(WebCore::LayerCompositingThread::drawTextures):

  • platform/graphics/blackberry/LayerRenderer.cpp:

(WebCore::LayerRenderer::~LayerRenderer):
(WebCore::LayerRenderer::drawLayers):
(WebCore::LayerRenderer::initializeSharedGLObjects):

16:06 Changeset [115505] by dglazkov@chromium.org

Mark tables/mozilla/other/slashlogo.html as flaky timeout.
https://bugs.webkit.org/show_bug.cgi?id=85106

  • platform/chromium/test_expectations.txt: Marked.
16:06 UsingGitWithWebKit edited by jamesr@google.com
Change "path/to/resolve-ChangeLogs" to "Tools/Scripts/resolve-ChangeLogs" … (diff)
16:03 Changeset [115504] by dglazkov@chromium.org

[Chromium] Remove remaining mentions of platform/mac-leopard.

  • platform/chromium/test_expectations.txt: Removed.
15:36 LayoutTestsSearchPath edited by tony@chromium.org
(diff)
15:34 Changeset [115503] by nduca@chromium.org

Source/WebCore: Implement high-resolution time via window.performance.webkitNow()
https://bugs.webkit.org/show_bug.cgi?id=66684

This implements the high resolution time spec from
http://www.w3.org/TR/hr-time/, giving javascript access to
sub-millisecond timestamps that increase over time instead of being
subject to skewing, for example when the host machine's clock changes.

Reviewed by Tony Gentilcore.

Test: fast/performance/performance-now-timestamps.html

  • page/Performance.cpp:

(WebCore::Performance::now):
(WebCore):

  • page/Performance.h:

(Performance):

  • page/Performance.idl:

LayoutTests: Implement high-resolution time via window.performance.now()
https://bugs.webkit.org/show_bug.cgi?id=66684

This implements the high resolution time spec from
http://www.w3.org/TR/hr-time/, giving javascript access to
sub-millisecond timestamps that increase over time instead of being
subject to skewing, for example when the host machine's clock changes.

Reviewed by Tony Gentilcore.

  • fast/dom/Window/window-properties-performance-expected.txt:
  • fast/performance/performance-now-timestamps-expected.txt: Added.
  • fast/performance/performance-now-timestamps.html: Added.
  • fast/performance/script-tests/TEMPLATE.html: Added.
  • fast/performance/script-tests/performance-now-timestamps.js: Added.

(busyWait):

  • platform/qt/fast/dom/Window/window-properties-performance-expected.txt:
15:30 Changeset [115502] by tony@chromium.org

remove LayoutTests/platform/mac-leopard
https://bugs.webkit.org/show_bug.cgi?id=84999

These results are no longer used by any ports.

  • platform/mac-leopard: Removed.
15:14 Changeset [115501] by mrowe@apple.com

<rdar://problem/11339645> WebKit projects should explicitly ask for dSYM files in production builds

Rubber-stamped by Dan Bernstein.

15:11 Changeset [115500] by commit-queue@webkit.org

[chromium] make case of npTestNetscapePlugIn.dll match case in copy rule
https://bugs.webkit.org/show_bug.cgi?id=85083

Patch by Scott Graham <scottmg@chromium.org> on 2012-04-27
Reviewed by Dirk Pranke.

Make output product_name for npTestNetscapePlugIn.dll match the case
of the copy_TestNetscapePlugIn rule. This is required for ninja, which
is more particular about case matching in rules than the VS build.

  • DumpRenderTree/DumpRenderTree.gyp/DumpRenderTree.gyp:
15:02 Changeset [115499] by commit-queue@webkit.org

[EFL] Several media layout tests need rebaselining
https://bugs.webkit.org/show_bug.cgi?id=84943

Unreviewed, rebaseline EFL media layout tests due to r114957.

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-04-27

  • platform/efl/media/media-controls-clone-expected.txt:
  • platform/efl/media/video-empty-source-expected.txt:
  • platform/efl/media/video-zoom-controls-expected.txt:
14:55 Changeset [115498] by fpizlo@apple.com

If you get a list of DOMWrapperWorld*'s and then plan to allocate in the heap, you should ref
the DOMWrapperWorld*'s
https://bugs.webkit.org/show_bug.cgi?id=85098
<rdar://problem/11318170>

Reviewed by Sam Weinig.

No new tests because this addresses hard-to-repro flaky behavior arising from GCs at inconvenient
times.

  • bindings/js/ScriptController.cpp:

(WebCore::ScriptController::getAllWorlds):

  • bindings/js/ScriptController.h:

(ScriptController):

  • bindings/js/WebCoreJSClientData.h:

(WebCore::WebCoreJSClientData::getAllWorlds):

  • bindings/v8/ScriptController.cpp:

(WebCore::ScriptController::getAllWorlds):

  • bindings/v8/ScriptController.h:

(ScriptController):

  • loader/FrameLoader.cpp:

(WebCore::FrameLoader::dispatchDidClearWindowObjectsInAllWorlds):
(WebCore::FrameLoader::dispatchGlobalObjectAvailableInAllWorlds):

14:47 Changeset [115497] by ggaren@apple.com

Fixed accidental ';' in ChangeLog

14:46 Changeset [115496] by ggaren@apple.com

;2012-04-27 Geoffrey Garen <ggaren@apple.com>

Removed the sole use of Weak<Unknown>
https://bugs.webkit.org/show_bug.cgi?id=85099

Reviewed by Sam Weinig.

The semantics and implementation of Weak<Unknown> are unclear because:

  • Should you call a finalizer for a non-GC thingy? If so, when?
  • Possible answer: No.
  • If WeakImpls for GC thingies live with the GC thingies in the heap, where do WeakImpls for non-GC thingies live?
  • Possible answer: Directly in the Weak<T>.

Since no clients actually want these behaviors, it's hard to tell if
they're the right behaviors, and it's not worth the implementation
complexity. If we come up with a client that wants these behaviors, we
can always revisit this.

  • bindings/js/JSNodeFilterCondition.cpp:

(WebCore::JSNodeFilterCondition::JSNodeFilterCondition): Just leave our
filter NULL if it's not an object -- that's a better way to indicate
"not a valid filter object".

(WebCore::JSNodeFilterCondition::acceptNode): Fixed up some naming to
clarify that the object we're working with is not necessarily a function.

  • bindings/js/JSNodeFilterCondition.h:

(JSNodeFilterCondition): Use Weak<JSObject>, since that more closely
matches what we're trying to do.

14:38 Changeset [115495] by haraken@chromium.org

[V8] Pass Isolate to getDOMXXXMap()
https://bugs.webkit.org/show_bug.cgi?id=85022

Reviewed by Nate Chapin.

The objective is to pass Isolate around in V8 bindings.
This patch passes Isolate to getDOMXXXMap().

Also this patch removes DOMMap::getDOMDataStore() and
DOMData::getDefalutStore(), since the indirection by the
methods is redundant. This is not for performance
optimization but just for refactoring.

No tests. No change in behavior.

  • bindings/v8/DOMData.cpp:

(WebCore::DOMData::getCurrentStore):

  • bindings/v8/DOMData.h:

(DOMData):

  • bindings/v8/V8DOMMap.cpp:

(WebCore::getDOMNodeMap):
(WebCore::getActiveDOMNodeMap):
(WebCore::getDOMObjectMap):
(WebCore::getActiveDOMObjectMap):
(WebCore::removeAllDOMObjects):

  • bindings/v8/V8DOMMap.h:

(WebCore):

14:36 Changeset [115494] by haraken@chromium.org

[V8] Pass Isolate to V8BindingPerIsolateData::current()
https://bugs.webkit.org/show_bug.cgi?id=85023

Reviewed by Nate Chapin.

The objective is to pass Isolate around in V8 bindings.
This patch passes Isolate to V8BindingPerIsolateData::current().

No tests. No change in behavior.

  • bindings/v8/V8Binding.h:

(WebCore::V8BindingPerIsolateData::current):
(WebCore::v8ExternalString):

14:16 Changeset [115493] by oliver@apple.com

Correct assertion.

14:08 Changeset [115492] by enne@google.com

Merge 114791 - [chromium] Clip TransparencyWin to prevent OOM from large Skia canvas
https://bugs.webkit.org/show_bug.cgi?id=84289

Reviewed by James Robinson.

Source/WebCore:

TransparencyWin will create a Skia canvas of whatever size is passed
in, even if the result will ultimately be clipped. Handle the clip
implicitly and try (in some cases) to create a smaller canvas. This
can happen due to RenderBox::paintBoxDecorations passing a paint rect
down of the entire element's size.

Modes with more complicated transforms (ScaleTransform, UnTransform)
are not handled yet.

Tests: TransparencyWin.ClippedKeepTransformNoLayer

TransparencyWin.ClippedKeepTransformOpaqueCompositeLayer
TransparencyWin.ClippedKeepTransformOpaqueWhiteLayer

  • platform/graphics/chromium/TransparencyWin.cpp:

(WebCore::TransparencyWin::computeLayerSize):

Source/WebKit/chromium:

Add a test that would OOM if the layer wasn't clipped. Also, verify
that clipping the canvas doesn't shift pixels around incorrectly.

  • tests/TransparencyWinTest.cpp:

(WebCore::testClippedLayerKeepTransform):
(WebCore):
(WebCore::TEST):

TBR=enne@google.com
Review URL: https://chromiumcodereview.appspot.com/10254020

14:07 Changeset [115491] by dglazkov@chromium.org

Unreviewed, rolling out r115484.
http://trac.webkit.org/changeset/115484
https://bugs.webkit.org/show_bug.cgi?id=84555

Broke Chromium compile.

Source/WebCore:

  • bindings/js/JSBlobCustom.cpp:
  • bindings/v8/custom/V8BlobCustom.cpp:
  • fileapi/Blob.cpp:
  • fileapi/Blob.h:

(Blob):

  • fileapi/Blob.idl:
  • workers/WorkerContext.idl:

LayoutTests:

  • fast/dom/HTMLAnchorElement/anchor-download-unset.html:
  • fast/dom/HTMLAnchorElement/anchor-download.html:
  • fast/dom/HTMLAnchorElement/anchor-nodownload-set.html:
  • fast/dom/HTMLAnchorElement/anchor-nodownload.html:
  • fast/dom/window-domurl-crash.html:
  • fast/files/blob-constructor-expected.txt: Removed.
  • fast/files/blob-constructor.html: Removed.
  • fast/files/blob-slice-overflow.html:
  • fast/files/blob-slice-test.html:
  • fast/files/file-reader-fffd.html:
  • fast/files/not-enough-arguments.html:
  • fast/files/resources/read-blob-test-cases.js:

(testReadingTripleSlicedHybridBlob):

  • fast/files/resources/read-common.js:

(buildBlob):

  • fast/files/script-tests/blob-constructor.js: Removed.
  • fast/files/workers/inline-worker-via-blob-url.html:
  • fast/filesystem/resources/file-writer-abort-continue.js:

(tenXBlob):
(startWrite):

  • fast/filesystem/resources/file-writer-abort-depth.js:
  • fast/filesystem/resources/file-writer-abort.js:

(tenXBlob):
(startWrite):

  • fast/filesystem/resources/file-writer-events.js:

(tenXBlob):
(startWrite):

  • fast/filesystem/resources/file-writer-gc-blob.js:

(tenXBlob):
(startWrite):

  • fast/filesystem/resources/file-writer-sync-truncate-extend.js:
  • fast/filesystem/resources/file-writer-sync-write-overlapped.js:
  • fast/filesystem/resources/file-writer-utils.js:
  • http/tests/fileapi/create-blob-url-from-data-url.html:
  • http/tests/filesystem/no-cache-filesystem-url.html:
  • http/tests/local/blob/resources/hybrid-blob-util.js:

(HybridBlobTestUtil.this.appendAndCreateBlob):
(HybridBlobTestUtil):

  • http/tests/security/resources/create-filesystem-file.html:
  • http/tests/websocket/tests/hixie76/send-object.html:
  • http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html:
  • http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:
  • http/tests/websocket/tests/hybi/send-blob.html:
  • http/tests/websocket/tests/hybi/send-file-blob-fail.html:
  • http/tests/websocket/tests/hybi/send-file-blob.html:
  • http/tests/websocket/tests/hybi/workers/resources/send-blob.js:

(createBlobContainingHelloWorld):
(createEmptyBlob):
(createBlobContainingAllDistinctBytes):

  • platform/mac/fast/dom/Window/window-properties-expected.txt:
  • storage/indexeddb/noblobs.html:
  • storage/indexeddb/structured-clone.html:
14:03 Changeset [115490] by dpranke@chromium.org

[chromium] use "drt-style" output, not "test-shell-style" output, on mac and linux DRT
https://bugs.webkit.org/show_bug.cgi?id=84917

Unreviewed, build fix.

Tools:

Reland the change in r115453 with a fix for chromium win.
The logic in ChromiumDriver was busted on windows, causing DRT
to get launched without the --test-shell flag.

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

(ChromiumDriver):
(ChromiumDriver.init):
(ChromiumDriver._wrapper_options):
(ChromiumDriver.cmd_line):
(ChromiumDriver._start):
(ChromiumDriver.has_crashed):
(ChromiumDriver.run_test):
(ChromiumDriver.stop):

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

(ChromiumDriverTest.setUp):
(ChromiumDriverTest.test_stop):
(ChromiumDriverTest.test_two_drivers.MockDriver.init):
(ChromiumDriverTest.test_two_drivers):

LayoutTests:

Reland the change in r115453 with a fix for chromium win.

  • platform/chromium/test_expectations.txt:
13:59 Changeset [115489] by peter@chromium.org

Add John Grabowski as a non-committer to committers.py
https://bugs.webkit.org/show_bug.cgi?id=85080

Reviewed by Dirk Pranke.

He's being CC'ed often enough because of his involvement in the Chromium
side of Chrome for Android upstreaming.

13:32 Changeset [115488] by eric.carlson@apple.com

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

Unreviewed, Mac test_expectations update.

  • platform/mac/test_expectations.txt: Skip http/tests/inspector/network/network-initiator.html.
13:30 Changeset [115487] by achicu@adobe.com

[CSS Shaders] Implement CSS Animations and Transitions for CSS Shaders
https://bugs.webkit.org/show_bug.cgi?id=71406

Reviewed by Dean Jackson.

Source/WebCore:

I've implemented the blend function for the CustomFilterOperation. This should enable animations for CSS Shaders.
Currently, just floats are implemented. If any of the filter attributes like shader, mesh size or box mode are different,
the fallback is to use the "to" part of the animation instead. If other shader parameters do not match, it will merge the parameter values
between the "from" and "to" states.

Test: css3/filters/custom/custom-filter-animation.html

  • platform/graphics/filters/CustomFilterNumberParameter.h:

(WebCore::CustomFilterNumberParameter::blend):
(CustomFilterNumberParameter):
(WebCore::CustomFilterNumberParameter::operator==):

  • platform/graphics/filters/CustomFilterOperation.cpp:

(WebCore::equalCustomFilterParameters):
(WebCore):
(WebCore::checkCustomFilterParametersOrder):
(WebCore::blendCustomFilterParameters):
(WebCore::CustomFilterOperation::CustomFilterOperation):
(WebCore::CustomFilterOperation::blend):

  • platform/graphics/filters/CustomFilterOperation.h:

(WebCore):
(CustomFilterOperation):
(WebCore::CustomFilterOperation::operator==):
(WebCore::CustomFilterOperation::operator!=):

  • platform/graphics/filters/CustomFilterParameter.h:

(CustomFilterParameter):
(WebCore::CustomFilterParameter::isSameType):
(WebCore::CustomFilterParameter::operator==):
(WebCore::CustomFilterParameter::operator!=):

  • platform/graphics/filters/CustomFilterProgram.h:
  • rendering/style/StyleCustomFilterProgram.h:

(StyleCustomFilterProgram):
(WebCore::StyleCustomFilterProgram::cachedVertexShader):
(WebCore::StyleCustomFilterProgram::cachedFragmentShader):
(WebCore::StyleCustomFilterProgram::operator==):

LayoutTests:

  • animations/resources/animation-test-helpers.js: Added a check for the "custom" function and used the parser in custom-filter-parser.js instead.

(getFilterParameters):
(filterParametersMatch):

  • css3/filters/custom/custom-filter-animation-expected.txt: Added.
  • css3/filters/custom/custom-filter-animation.html: Added.
  • css3/filters/resources/custom-filter-parser.js: Added a simple parser for the "custom" function, so that multiple types can be checked correctly.
13:29 Changeset [115486] by hans@chromium.org

Speech JavaScript API: Fix Vector use failure
https://bugs.webkit.org/show_bug.cgi?id=85069

Reviewed by Tony Gentilcore.

Fix think-o in code copying from WebVector to Vector.

  • src/SpeechRecognitionClientProxy.cpp:

(WebKit::SpeechRecognitionClientProxy::didReceiveResult):
(WebKit::SpeechRecognitionClientProxy::didDeleteResult):

  • src/WebSpeechRecognitionResult.cpp:

(WebKit::WebSpeechRecognitionResult::assign):

13:27 Changeset [115485] by crogers@google.com

Re-factor scheduling logic from AudioBufferSourceNode into AudioScheduledSourceNode
https://bugs.webkit.org/show_bug.cgi?id=84639

Reviewed by Eric Carlson.

Playback logic involving noteOn(), noteOff(), and playbackState were intertwined with
the AudioBufferSourceNode's buffer playback code. These are more general concepts and
may be implemented separately in another class called AudioScheduledSourceNode.

No new tests. Covered by existing layout tests.

  • GNUmakefile.list.am:

Add AudioScheduledSourceNode files to makefile.

  • Modules/webaudio/AudioBufferSourceNode.cpp:

(WebCore):
(WebCore::AudioBufferSourceNode::AudioBufferSourceNode):
Re-factor some member variables into new base class AudioScheduledSourceNode.

(WebCore::AudioBufferSourceNode::process):
Re-factor scheduling logic into AudioScheduledSourceNode.

  • Modules/webaudio/AudioBufferSourceNode.h:

(AudioBufferSourceNode):
Simplify by re-factoring scheduling logic into AudioScheduledSourceNode.

  • Modules/webaudio/AudioScheduledSourceNode.cpp: Added.

(WebCore):
(WebCore::AudioScheduledSourceNode::AudioScheduledSourceNode):
(WebCore::AudioScheduledSourceNode::updateSchedulingInfo):
Get frame information for the current time quantum.

  • Modules/webaudio/AudioScheduledSourceNode.h: Added.

(WebCore::AudioScheduledSourceNode::noteOn):
(WebCore::AudioScheduledSourceNode::noteOff):
(WebCore::AudioScheduledSourceNode::finish):
(WebCore::AudioScheduledSourceNode::playbackState):
(WebCore::AudioScheduledSourceNode::isPlayingOrScheduled):
(WebCore::AudioScheduledSourceNode::hasFinished):
Re-factored from AudioBufferSourceNode.

  • WebCore.gypi:
  • WebCore.xcodeproj/project.pbxproj:

Add AudioScheduledSourceNode files to makefiles.

13:23 Changeset [115484] by weinig@apple.com

Add support for the Blob constructor
https://bugs.webkit.org/show_bug.cgi?id=84555

Reviewed by Maciej Stachowiak.

Source/WebCore:

Test: fast/files/blob-constructor.html

This adds an implementation of the Blob constructor that willfully
violates the W3C Editor’s Draft 29 February 2012 in the following ways:

  • bindings/js/JSBlobCustom.cpp:

(WebCore::JSBlobConstructor::constructJSBlob):
Implement blob constructor.

  • bindings/v8/custom/V8BlobCustom.cpp:

(WebCore::V8Blob::constructorCallback):
Implement blob constructor.

  • fileapi/Blob.idl:

Add constructor to IDL.

  • workers/WorkerContext.idl:

Add Blob constructor to the worker global object.

LayoutTests:

Switch tests that were not directly testing BlobBuilder over to
using the Blob constructor, to get test coverage of standard way
constructing blobs.

  • fast/files/blob-constructor.html:
  • fast/files/blob-constructor-expected.txt:
  • fast/files/script-tests/blob-constructor.js:

New test.

  • fast/dom/HTMLAnchorElement/anchor-download-unset.html:
  • fast/dom/HTMLAnchorElement/anchor-download.html:
  • fast/dom/HTMLAnchorElement/anchor-nodownload-set.html:
  • fast/dom/HTMLAnchorElement/anchor-nodownload.html:
  • fast/dom/window-domurl-crash.html:
  • fast/files/blob-builder-crash-expected.txt: Removed.
  • fast/files/blob-builder-crash.html: Removed.
  • fast/files/blob-slice-overflow.html:
  • fast/files/blob-slice-test.html:
  • fast/files/file-reader-fffd.html:
  • fast/files/not-enough-arguments.html:
  • fast/files/resources/read-blob-test-cases.js:
  • fast/files/resources/read-common.js:
  • fast/files/workers/inline-worker-via-blob-url.html:
  • fast/filesystem/resources/file-writer-abort-continue.js:
  • fast/filesystem/resources/file-writer-abort-depth.js:
  • fast/filesystem/resources/file-writer-abort.js:
  • fast/filesystem/resources/file-writer-events.js:
  • fast/filesystem/resources/file-writer-gc-blob.js:
  • fast/filesystem/resources/file-writer-sync-truncate-extend.js:
  • fast/filesystem/resources/file-writer-sync-write-overlapped.js:
  • fast/filesystem/resources/file-writer-utils.js:
  • http/tests/fileapi/create-blob-url-from-data-url.html:
  • http/tests/filesystem/no-cache-filesystem-url.html:
  • http/tests/local/blob/resources/hybrid-blob-util.js:
  • http/tests/security/resources/create-filesystem-file.html:
  • http/tests/websocket/tests/hixie76/send-object.html:
  • http/tests/websocket/tests/hybi/bufferedAmount-after-close-in-busy.html:
  • http/tests/websocket/tests/hybi/bufferedAmount-after-close.html:
  • http/tests/websocket/tests/hybi/send-blob.html:
  • http/tests/websocket/tests/hybi/send-file-blob-fail.html:
  • http/tests/websocket/tests/hybi/send-file-blob.html:
  • http/tests/websocket/tests/hybi/workers/resources/send-blob.js:
  • platform/mac/fast/dom/Window/window-properties-expected.txt:
  • storage/indexeddb/noblobs.html:
  • storage/indexeddb/structured-clone.html:
13:19 Changeset [115483] by oliver@apple.com

Lazy link phase of baseline jit fails to propagate exception
https://bugs.webkit.org/show_bug.cgi?id=85092

Reviewed by Filip Pizlo.

Very simple patch, when linking produces an error we need to actually store
the exception prior to throwing it. I can't find any other examples of this,
but as we're already in the slow path when throwing an exception I've hardened
exception throwing against null exceptions.

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::throwException):

  • jit/JITStubs.cpp:

(JSC::lazyLinkFor):

13:18 Changeset [115482] by commit-queue@webkit.org

[Qt] Fix minimal build.
https://bugs.webkit.org/show_bug.cgi?id=85045

Patch by Allan Sandfeld Jensen <allan.jensen@nokia.com> on 2012-04-27
Reviewed by Tor Arne Vestbø.

Source/WebCore:

Compile LIBXML XML parser even if ENABLE_XSLT is not set.

  • Target.pri:

Tools:

Do not set conflicting values of ENABLE_XSLT.

  • qmake/mkspecs/features/features.prf:
13:18 Changeset [115481] by dglazkov@chromium.org

Remove passing test from expectations.

  • platform/chromium/test_expectations.txt: Another one bites the dust.
13:09 Changeset [115480] by dglazkov@chromium.org

[Chromium] Layout Tests fast/js/dfg-float64array.html, fast/js/dfg-uint16array.html, and fast/js/dfg-uint8array.html are flaky timeouts.
https://bugs.webkit.org/show_bug.cgi?id=85090

  • platform/chromium/test_expectations.txt: Marked as flakes.
13:07 Changeset [115479] by lforschler@apple.com

Merged r114792.

13:07 Changeset [115478] by commit-queue@webkit.org

[EFL][DRT] EFL should sanitize pulseaudio module configuration too
https://bugs.webkit.org/show_bug.cgi?id=85047

Patch by Dominik Röttsches <dominik.rottsches@linux.intel.com> on 2012-04-27
Reviewed by Dirk Pranke.

PulseAudio test setup sanitization shared between EFL and GTK.

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

(EflPort):
(EflPort.setup_test_run):
(EflPort.clean_up_test_run):

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

(GtkPort): Moving pulseaudio unload/restore out to shared class.

  • Scripts/webkitpy/layout_tests/port/pulseaudio_sanitizer.py: Added.

(PulseAudioSanitizer):
(PulseAudioSanitizer._unload_pulseaudio_module):
(PulseAudioSanitizer._restore_pulseaudio_module):

13:05 Changeset [115477] by lforschler@apple.com

Merged r114778.

13:02 Changeset [115476] by lforschler@apple.com

Versioning.

13:00 Changeset [115475] by lforschler@apple.com

New Tag.

13:00 Changeset [115474] by lforschler@apple.com

Remove Tag.

12:59 Changeset [115473] by lforschler@apple.com

New Tag.

12:44 Changeset [115472] by leandrogracia@chromium.org

Selectively retrieve text around a touched point.
https://bugs.webkit.org/show_bug.cgi?id=82460

Reviewed by Darin Fisher.

Implements an embedding API to WebCore's SurroundingText, adding also
the possibility of select and highlight the retrieved text range.

  • WebKit.gyp:
  • public/WebFrame.h:

(WebFrame):

  • public/WebHitTestResult.h: Added.

(WebCore):
(WebKit):
(WebHitTestResult):
(WebKit::WebHitTestResult::WebHitTestResult):
(WebKit::WebHitTestResult::~WebHitTestResult):

  • public/WebRange.h:

(WebKit):
(WebRange):

  • public/WebSurroundingText.h: Added.

(WebCore):
(WebKit):
(WebSurroundingText):
(WebKit::WebSurroundingText::WebSurroundingText):
(WebKit::WebSurroundingText::~WebSurroundingText):

  • public/WebView.h:

(WebKit):

  • src/WebFrameImpl.cpp:

(WebKit::WebFrameImpl::selectRange):
(WebKit):

  • src/WebFrameImpl.h:

(WebFrameImpl):

  • src/WebHitTestResult.cpp: Added.

(WebKit):
(WebKit::WebHitTestResult::node):
(WebKit::WebHitTestResult::localPoint):
(WebKit::WebHitTestResult::WebHitTestResult):
(WebKit::WebHitTestResult::operator=):
(WebKit::WebHitTestResult::operator HitTestResult):
(WebKit::WebHitTestResult::isNull):
(WebKit::WebHitTestResult::assign):
(WebKit::WebHitTestResult::reset):

  • src/WebRange.cpp:

(WebKit::WebRange::textQuads):
(WebKit):

  • src/WebSurroundingText.cpp: Added.

(WebKit):
(WebKit::WebSurroundingText::initialize):
(WebKit::WebSurroundingText::textContent):
(WebKit::WebSurroundingText::hitOffsetInTextContent):
(WebKit::WebSurroundingText::rangeFromContentOffsets):
(WebKit::WebSurroundingText::isNull):
(WebKit::WebSurroundingText::reset):

12:35 Changeset [115471] by shawnsingh@chromium.org

Infinite backgroundClipRect should not be scrolled.
https://bugs.webkit.org/show_bug.cgi?id=84979

Reviewed by Adrienne Walker.

Source/WebCore:

Test: compositing/iframes/scroll-fixed-transformed-element.html

By accidentally scrolling clipRects that should be considered
"infinite", they were no longer being considered infinite. This
caused a chain of un-intended code paths that caused fixed
position elements to stutter when scrolling in Chromium.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::backgroundClipRect):

LayoutTests:

  • compositing/iframes/resources/fixed-position-transformed-subframe.html: Added.
  • compositing/iframes/scroll-fixed-transformed-element-expected.png: Added.
  • compositing/iframes/scroll-fixed-transformed-element-expected.txt: Added.
  • compositing/iframes/scroll-fixed-transformed-element.html: Added.
12:31 Changeset [115470] by arv@chromium.org

Clean up tests in preparation for ES5.2 global scope fix
https://bugs.webkit.org/show_bug.cgi?id=85001

Reviewed by Gavin Barraclough.

  • fast/css/resize-value-compared.html:
  • fast/dom/resources/navigation-type-matches-querystring.html:
  • fast/dom/script-tests/webtiming-document-open.js:
  • fast/dom/script-tests/webtiming-navigate-within-document.js:
  • fast/dom/script-tests/webtiming.js:
  • http/tests/inspector/indexeddb/indexeddb-test.js:
  • http/tests/misc/resources/webtiming-cross-origin-and-back2.html:
  • http/tests/misc/resources/webtiming-cross-origin-redirect.html:
  • http/tests/misc/resources/webtiming-no-origin.html:
  • http/tests/misc/resources/webtiming-one-redirect.html:
  • http/tests/misc/resources/webtiming-ssl.html:
  • http/tests/misc/resources/webtiming-two-redirects.html:
  • http/tests/misc/webtiming-slow-load.php:
12:24 Changeset [115469] by dpranke@chromium.org

Unreviewed, revert r115453 - broke chromium win bots

Tools:

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

(ChromiumPort._path_to_image_diff):
(ChromiumDriver):
(ChromiumDriver.init):
(ChromiumDriver._wrapper_options):
(ChromiumDriver.cmd_line):
(ChromiumDriver.stop):

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

(ChromiumDriverTest.setUp):
(ChromiumDriverTest.test_stop):
(ChromiumDriverTest.test_two_drivers):
(ChromiumDriverTest.test_two_drivers.MockDriver.init):

LayoutTests:

  • platform/chromium/test_expectations.txt:
12:24 Changeset [115468] by lforschler@apple.com

rollout 113723.

12:24 Changeset [115467] by dglazkov@chromium.org

Unreviewed, rolling out r115463.
http://trac.webkit.org/changeset/115463
https://bugs.webkit.org/show_bug.cgi?id=82460

Broke Mac build.

  • WebKit.gyp:
  • public/WebFrame.h:

(WebFrame):

  • public/WebHitTestResult.h: Removed.
  • public/WebRange.h:

(WebRange):

  • public/WebSurroundingText.h: Removed.
  • public/WebView.h:

(WebKit):

  • src/WebFrameImpl.cpp:
  • src/WebFrameImpl.h:

(WebFrameImpl):

  • src/WebHitTestResult.cpp: Removed.
  • src/WebRange.cpp:
  • src/WebSurroundingText.cpp: Removed.
12:21 Changeset [115466] by rniwa@webkit.org

Chromium Windows Perf bots timeout due to not output
https://bugs.webkit.org/show_bug.cgi?id=84940

Reviewed by Dirk Pranke.

Dirk and I investigated the issue on the bot but we couldn't figure out what is going wrong.
Since we run-perf-tests don't need any of fancy feature printer provides, just use python's
built-in logging module instead. Printing out to stdout and stderr seem to work so hopefully
this will fix the issue on the bot.

  • Scripts/run-perf-tests:
  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest.run):
(PerfTest.run_failed):
(PerfTest.parse_output):
(PerfTest.output_statistics):
(ChromiumStylePerfTest.parse_output):
(PageLoadingPerfTest.run):

  • Scripts/webkitpy/performance_tests/perftest_unittest.py:

(MainTest.test_parse_output):
(MainTest.test_parse_output_with_failing_line):
(TestPageLoadingPerfTest):
(TestPageLoadingPerfTest.test_run):
(TestPageLoadingPerfTest.test_run_with_bad_output):

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner.init):
(PerfTestsRunner._parse_args):
(PerfTestsRunner.run):
(PerfTestsRunner._upload_json):
(PerfTestsRunner._print_status):
(PerfTestsRunner._run_tests_set):
(PerfTestsRunner._run_single_test):

  • Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:

(create_runner):
(test_run_test_set):
(test_run_test_set_kills_drt_per_run):
(test_run_test_pause_before_testing):
(test_run_test_set_for_parser_tests):
(test_run_test_set_with_json_output):
(test_run_test_set_with_json_source):
(test_run_test_set_with_multiple_repositories):
(test_upload_json):
(test_parse_args):

12:15 Changeset [115465] by benjamin@webkit.org

Generalize the single character optimization of numberProtoFuncToString
https://bugs.webkit.org/show_bug.cgi?id=85027

Reviewed by Geoffrey Garen.

The function numberProtoFuncToString() has an optimization to use SmallStrings::singleCharacterString()
when the radix is 36.

This patch generalize the optimization for any radix. Any positive number smaller than its radix
can be represented by a single character of radixDigits.

This makes numberProtoFuncToString() about twice as fast for this case of single digit conversion.

  • runtime/NumberPrototype.cpp:

(JSC::numberProtoFuncToString):

12:02 Changeset [115464] by commit-queue@webkit.org

Added a chromium webkit public header file to support different web print scaling options.
https://bugs.webkit.org/show_bug.cgi?id=84608

Patch by Kausalya Madhusudhanan <kmadhusu@chromium.org> on 2012-04-27
Reviewed by Darin Fisher.

  • WebKit.gyp:
  • public/WebPrintScalingOption.h: Added.

(WebKit):

11:56 Changeset [115463] by leandrogracia@chromium.org

Selectively retrieve text around a touched point.
https://bugs.webkit.org/show_bug.cgi?id=82460

Reviewed by Darin Fisher.

Implements an embedding API to WebCore's SurroundingText, adding also
the possibility of select and highlight the retrieved text range.

  • WebKit.gyp:
  • public/WebFrame.h:

(WebFrame):

  • public/WebHitTestResult.h: Added.

(WebCore):
(WebKit):
(WebHitTestResult):
(WebKit::WebHitTestResult::WebHitTestResult):
(WebKit::WebHitTestResult::~WebHitTestResult):

  • public/WebRange.h:

(WebKit):
(WebRange):

  • public/WebSurroundingText.h: Added.

(WebCore):
(WebKit):
(WebSurroundingText):
(WebKit::WebSurroundingText::WebSurroundingText):
(WebKit::WebSurroundingText::~WebSurroundingText):

  • public/WebView.h:

(WebKit):

  • src/WebFrameImpl.cpp:

(WebKit::WebFrameImpl::selectRange):
(WebKit):

  • src/WebFrameImpl.h:

(WebFrameImpl):

  • src/WebHitTestResult.cpp: Added.

(WebKit):
(WebKit::WebHitTestResult::node):
(WebKit::WebHitTestResult::localPoint):
(WebKit::WebHitTestResult::WebHitTestResult):
(WebKit::WebHitTestResult::operator=):
(WebKit::WebHitTestResult::operator HitTestResult):
(WebKit::WebHitTestResult::isNull):
(WebKit::WebHitTestResult::assign):
(WebKit::WebHitTestResult::reset):

  • src/WebRange.cpp:

(WebKit::WebRange::textQuads):
(WebKit):

  • src/WebSurroundingText.cpp: Added.

(WebKit):
(WebKit::WebSurroundingText::initialize):
(WebKit::WebSurroundingText::textContent):
(WebKit::WebSurroundingText::hitOffsetInTextContent):
(WebKit::WebSurroundingText::rangeFromContentOffsets):
(WebKit::WebSurroundingText::isNull):
(WebKit::WebSurroundingText::reset):

11:55 Changeset [115462] by dglazkov@chromium.org

Layout Test media/video-currentTime-set.html is still flaky
https://bugs.webkit.org/show_bug.cgi?id=85003

Reviewed by Eric Carlson.

  • media/video-currentTime-set.html: Removed extraneous timeout code.
11:53 Changeset [115461] by rniwa@webkit.org

FormatBlock crashes when body element is removed prior to the command execution
https://bugs.webkit.org/show_bug.cgi?id=84937

Reviewed by Tony Chang.

Source/WebCore:

The crash was because because DOM had been modified since the last time selection had been "validated",
and therefore frame selection's endpoints are no longer visible when we instantiated visibleStart
and visibleEnd from m_endingSelection of the edit command.

Fixed the bug by checking the nullity and orphanedness of visible start and visible end directly.
I suspect we have similar bugs in other commands. The fundamental problem is that the copy constructor
of VisibleSelection never validates so when a VisibleSelection is passed from one class to another
(e.g. FrameSelection to EditCommand), we may not adjust end points as needed.

Test: editing/execCommand/format-block-without-body-crash.html

  • editing/ApplyBlockElementCommand.cpp:

(WebCore::ApplyBlockElementCommand::doApply):

LayoutTests:

Add a regression test for executing FormatCommand immediately after removing
the body element thereby turning the selection end points to non-candidates.

  • editing/execCommand/format-block-without-body-crash-expected.txt: Added.
  • editing/execCommand/format-block-without-body-crash.html: Added.
11:51 Changeset [115460] by enrica@apple.com

REGRESSION(r96257): Deleting a large amount of text is very slow.
https://bugs.webkit.org/show_bug.cgi?id=83983
<rdar://problem/10826076>

Reviewed by Ryosuke Niwa.

The change in r96257 did not cause the performance regression per se,
but exposed a problem in the way we calculate the offset in container
node when the anchorType is PositionIsOffsetInAnchor.
The offset was computed as the minimum between the given offset and
lastOffsetInNode. If the container has a very large number of children,
we walk the entire list of child nodes in the container simply to find
out how many they are.
Looking through the entire editing code, I found other 2 cases (one
is only an ASSERT) where we could do a similar optimization.

No new tests. No behavior change, only performance optimization.

  • dom/Position.cpp:

(WebCore::Position::computeOffsetInContainerNode):

  • dom/Position.h:

(WebCore::minOffsetForNode):
(WebCore::offsetIsBeforeLastNodeOffset):

  • editing/ApplyStyleCommand.cpp:

(WebCore::ApplyStyleCommand::removeInlineStyle):
(WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):

11:49 Changeset [115459] by eae@chromium.org

Merge length changes into subpixel branch.

11:44 Changeset [115458] by jchaffraix@webkit.org

NULL-deref in RenderBox::clippedOverflowRectForRepaint
https://bugs.webkit.org/show_bug.cgi?id=84774

Reviewed by Tony Chang.

Source/WebCore:

Test: fast/inline/crash-new-continuation-with-outline.html

The bug comes from trying to repaint the :after content as part of updateBeforeAfterContent.
The repainting logic would query the yet-to-be-inserted continuation(). Then we would crash in
RenderBox::clippedOverflowRectForRepaint as we didn't have an enclosingLayer() (which any
RenderObject in the tree will have).

The fix is to check in RenderInline::clippedOverflowRectForRepaint that our continuation()
is properly inserted in the tree. We could check that it isRooted() but it's an overkill here.

  • rendering/RenderInline.cpp:

(WebCore::RenderInline::clippedOverflowRectForRepaint):

LayoutTests:

  • fast/inline/crash-new-continuation-with-outline-expected.txt: Added.
  • fast/inline/crash-new-continuation-with-outline.html: Added.
11:37 Changeset [115457] by lforschler@apple.com

Versioning.

11:34 Changeset [115456] by lforschler@apple.com

New Tag.

11:33 Changeset [115455] by leviw@chromium.org

Using minimumIntValueForLength instead of a static_cast.

11:26 Changeset [115454] by antti@apple.com

Memory cache pruning should be protected against reentering.
https://bugs.webkit.org/show_bug.cgi?id=85077

Reviewed by Alexey Proskuryakov.

MemoryCache::pruneDeadResourcesToSize() has some ad-hock protection against reentering.
This patch adds more complete protection.

  • loader/cache/MemoryCache.cpp:

(WebCore::MemoryCache::MemoryCache):
(WebCore::MemoryCache::pruneLiveResourcesToSize):

Protect live resource pruning too.

(WebCore::MemoryCache::pruneDeadResourcesToSize):

Remove the existing weak reentrancy handling in favor of full proctection.

  • loader/cache/MemoryCache.h:

(MemoryCache):

11:24 Changeset [115453] by dpranke@chromium.org

[chromium] use "drt-style" output, not "test-shell-style" output, on mac and linux DRT
https://bugs.webkit.org/show_bug.cgi?id=84917

Tools:

Reviewed by Ojan Vafai.

This change changes the chromium new-run-webkit-tests
implementation to use the code in WebKitDriver and ServerProcess
by default on Mac and Linux, instead of using the old-style
Chromium/test_shell style of output.

We will still use the test_shell style on Windows for now
and you can still get the old style of behavior with
new-run-webkit-tests --additional-drt-flag --test-shell

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

(ChromiumDriver):
(ChromiumDriver.init):
(ChromiumDriver._wrapper_options):
(ChromiumDriver.cmd_line):
(ChromiumDriver._start):
(ChromiumDriver.has_crashed):
(ChromiumDriver.run_test):
(ChromiumDriver.stop):

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

(ChromiumDriverTest.setUp):
(ChromiumDriverTest.test_stop):
(ChromiumDriverTest.test_two_drivers.MockDriver.init):
(ChromiumDriverTest.test_two_drivers):

LayoutTests:

Unreviewed, expectations change to accompany the new-run-webkit-tests change.

  • platform/chromium/test_expectations.txt
11:12 Changeset [115452] by dpranke@chromium.org

webkitpy: fix race in unit tests for manager_worker_broker
https://bugs.webkit.org/show_bug.cgi?id=84925

Reviewed by Ojan Vafai.

I have been intermittently seeing hangs when running
test-webkitpy on Mac SL; it appears that there's a bug (?) in
the multiprocessing module where queue references are getting
leaked or not cleaned up somehow. By explicitly closing the
queues, things seem to be happy, so this patch adds a cleanup()
method to the message broker and modifies the manager (and the
unit tests) to call it. This may get rid of the intermittent
error on shutdown on Linux I've seen as well.

  • Scripts/webkitpy/layout_tests/controllers/manager.py:

(Manager._run_tests):

  • Scripts/webkitpy/layout_tests/controllers/manager_worker_broker.py:

(_Broker.del):
(_Broker):
(_Broker.cleanup):
(_BrokerConnection.cleanup):

  • Scripts/webkitpy/layout_tests/controllers/manager_worker_broker_unittest.py:

(_TestsMixin.test_name):
(_TestsMixin.test_cancel):
(_TestsMixin.test_done):
(_TestsMixin.test_unknown_message):

11:05 Changeset [115451] by commit-queue@webkit.org

[EFL] ResourceError domain needs to be properly set in FrameLoaderClient
https://bugs.webkit.org/show_bug.cgi?id=84129

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-04-27
Reviewed by Nate Chapin.

Source/WebKit/efl:

Properly set ResourceError objects' domain instead of using a generic
one. This allows WebKit and NSURL errors to be distinguished, which is
required to properly print out information in EFL's DumpRenderTree
when dumpResourceLoadCallbacks() returns true.

  • WebCoreSupport/FrameLoaderClientEfl.cpp:

(WebCore::FrameLoaderClientEfl::cancelledError):
(WebCore::FrameLoaderClientEfl::blockedError):
(WebCore::FrameLoaderClientEfl::cannotShowURLError):
(WebCore::FrameLoaderClientEfl::interruptedForPolicyChangeError):
(WebCore::FrameLoaderClientEfl::cannotShowMIMETypeError):
(WebCore::FrameLoaderClientEfl::fileDoesNotExistError):
(WebCore::FrameLoaderClientEfl::pluginWillHandleLoadError):

LayoutTests:

Unskip the tests which require EFL's DumpRenderTree to support
LayoutTestController's dumpResourceLoadCallbacks() and print out
correctly information about resource loading errors.

  • platform/efl/Skipped:
11:03 Changeset [115450] by dglazkov@chromium.org

[Chromium] platform/chromium/media/video-capture-preview.html is a flaky crash.
https://bugs.webkit.org/show_bug.cgi?id=85082

  • platform/chromium/test_expectations.txt: Added expectation of flakiness.
11:01 Changeset [115449] by commit-queue@webkit.org

[EFL] tabsToLinks ewk_view setting
https://bugs.webkit.org/show_bug.cgi?id=84340

Exporting new ewk_view setting: tabsToLinks - enbles/disables tab key focusing of page elements.

Patch by Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> on 2012-04-27
Reviewed by Antonio Gomes.

  • WebCoreSupport/ChromeClientEfl.cpp:

(WebCore::ChromeClientEfl::keyboardUIMode):

  • ewk/ewk_view.cpp:

(_Ewk_View_Private_Data):
(_ewk_view_priv_new):
(ewk_view_setting_include_links_in_focus_chain_get):
(ewk_view_setting_include_links_in_focus_chain_set):

  • ewk/ewk_view.h:
10:37 Changeset [115448] by tonyg@chromium.org

Unreviewed, rolling out r115436.
http://trac.webkit.org/changeset/115436
https://bugs.webkit.org/show_bug.cgi?id=85079

"broke the build" (Requested by tonyg-cr on #webkit).

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

  • WebKit.gyp:
  • public/WebReferrerPolicy.h: Added.
10:32 Changeset [115447] by apavlov@chromium.org

Source/WebCore: Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
(re-landing r115417 with a test that should work on Windows.)
https://bugs.webkit.org/show_bug.cgi?id=84946

Reviewed by Yury Semikhatsky.

Test: inspector/debugger/disable-script.html

  • inspector/Inspector.json:
  • inspector/InspectorPageAgent.cpp:

(PageAgentState):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::getScriptExecutionStatus):
(WebCore):
(WebCore::InspectorPageAgent::setScriptExecutionDisabled):

  • inspector/InspectorPageAgent.h:
  • inspector/front-end/Settings.js:
  • inspector/front-end/SettingsScreen.js:

(WebInspector.SettingsScreen):
(WebInspector.SettingsScreen.prototype.get _updateScriptDisabledCheckbox):
(WebInspector.SettingsScreen.prototype._javaScriptDisabledChanged):

  • inspector/front-end/inspector.js:

LayoutTests: Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
https://bugs.webkit.org/show_bug.cgi?id=84946

Reviewed by Yury Semikhatsky.

  • inspector/debugger/disable-script-expected.txt: Added.
  • inspector/debugger/disable-script.html: Added.
09:56 Changeset [115446] by keishi@webkit.org

IETC HTML5: verify HTMLDataListElement - instanceof HTMLDataListElement fails.
https://bugs.webkit.org/show_bug.cgi?id=81196

Reviewed by Kent Tamura.

Source/WebCore:

Test: fast/dom/Window/window-properties.html, fast/dom/Window/window-lookup-precedence.html

HTMLDataListElement should be available on DOMWindow.

  • page/DOMWindow.idl: Added HTMLDataListElement.

LayoutTests:

  • fast/dom/Window/resources/window-properties.js: Added HTMLDataListElement to the list.
  • platform/chromium/fast/dom/Window/window-lookup-precedence-expected.txt:
09:53 Changeset [115445] by dglazkov@chromium.org

Unreviewed, rolling out r115417.
http://trac.webkit.org/changeset/115417
https://bugs.webkit.org/show_bug.cgi?id=84946

Added test is broken on windows.

Source/WebCore:

  • inspector/Inspector.json:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):

  • inspector/InspectorPageAgent.h:
  • inspector/front-end/Settings.js:
  • inspector/front-end/SettingsScreen.js:

(WebInspector.SettingsScreen):

  • inspector/front-end/inspector.js:

LayoutTests:

  • inspector/debugger/disable-script-expected.txt: Removed.
  • inspector/debugger/disable-script.html: Removed.
09:46 Changeset [115444] by dglazkov@chromium.org

[Chromium] fast/images/gif-large-checkerboard.html is a flaky crash
https://bugs.webkit.org/show_bug.cgi?id=85073

  • platform/chromium/test_expectations.txt: Marked flaky crash.
09:38 Changeset [115443] by gavinp@chromium.org

Add new ENABLE_LINK_PRERENDER define to control the Prerendering API
https://bugs.webkit.org/show_bug.cgi?id=84871

Reviewed by Adam Barth.

Source/JavaScriptCore:

Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
API separates it from prefetching. Having separate include guards lets ports enable prefetching,
a relatively easy change, without needing to build the infrastructure for prerendering, which
is considerably more complicated.

  • Configurations/FeatureDefines.xcconfig:

Source/WebCore:

Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
API separates it from prefetching. Having separate include guards lets ports enable prefetching,
a relatively easy change, without needing to build the infrastructure for prerendering, which
is considerably more complicated.

  • Configurations/FeatureDefines.xcconfig:

Source/WebKit/chromium:

Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
API separates it from prefetching. Having separate include guards lets ports enable prefetching,
a relatively easy change, without needing to build the infrastructure for prerendering, which
is considerably more complicated.

Source/WebKit/mac:

Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
API separates it from prefetching. Having separate include guards lets ports enable prefetching,
a relatively easy change, without needing to build the infrastructure for prerendering, which
is considerably more complicated.

Source/WebKit2:

Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
API separates it from prefetching. Having separate include guards lets ports enable prefetching,
a relatively easy change, without needing to build the infrastructure for prerendering, which
is considerably more complicated.

Tools:

Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
API separates it from prefetching. Having separate include guards lets ports enable prefetching,
a relatively easy change, without needing to build the infrastructure for prerendering, which
is considerably more complicated.

WebKitLibraries:

Prerendering is currently covered by the ENABLE_LINK_PREFETCH macro, but the new Prerendering
API separates it from prefetching. Having separate include guards lets ports enable prefetching,
a relatively easy change, without needing to build the infrastructure for prerendering, which
is considerably more complicated.

  • win/tools/vsprops/FeatureDefinesCairo.vsprops:
09:35 Changeset [115442] by zandobersek@gmail.com

[Gtk][DOM Bindings] Feature-protected properties are put under condition guards
https://bugs.webkit.org/show_bug.cgi?id=85068

Reviewed by Martin Robinson.

Generated feature-dependent properties are now present regardless of that
feature being enabled. On getting or setting that property's value a warning
is thrown if the feature is not enabled. Additionally, if the generated
interface is feature-dependant, when getting or setting any property's value
a warning is thrown if the feature is not enabled.

No new tests - covered by existing bindings tests.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateProperty):
(GenerateProperties):

  • bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Rebaseline.

(webkit_dom_test_interface_set_property):
(webkit_dom_test_interface_get_property):
(webkit_dom_test_interface_class_init):

  • bindings/scripts/test/GObject/WebKitDOMTestObj.cpp: Ditto.

(webkit_dom_test_obj_set_property):
(webkit_dom_test_obj_get_property):
(webkit_dom_test_obj_class_init):

  • bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: Ditto.

(webkit_dom_test_serialized_script_value_interface_get_property):

09:34 Changeset [115441] by dglazkov@chromium.org

Unreviewed, rolling out r115433.
http://trac.webkit.org/changeset/115433
https://bugs.webkit.org/show_bug.cgi?id=85052

Enable unit tests again.

  • tests/PopupMenuTest.cpp:

(WebKit::TEST_F):

09:32 Changeset [115440] by dglazkov@chromium.org

Unreviewed, rolling out r115421.
http://trac.webkit.org/changeset/115421
https://bugs.webkit.org/show_bug.cgi?id=85052

Enable unit tests again.

  • tests/PopupMenuTest.cpp:

(WebKit::TEST_F):

09:29 Changeset [115439] by dglazkov@chromium.org

Unreviewed, rolling out r115400.
http://trac.webkit.org/changeset/115400
https://bugs.webkit.org/show_bug.cgi?id=84420

Broke unit tests.

  • src/ChromeClientImpl.cpp:

(WebKit::ChromeClientImpl::popupOpened):

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::applyAutofillSuggestions):

09:27 Changeset [115438] by zandobersek@gmail.com

[Gtk][DOM Bindings] Conditional string in implementation file generated in wrong place after 113450
https://bugs.webkit.org/show_bug.cgi?id=85065

Reviewed by Martin Robinson.

Put the condition string in implementation file after the header inclusions. This ensures
that build errors do not occur when disabling the future that applies to the condition string
because of WebCore objects and methods that are still in use despite the feature being disabled.

No new tests - covered by bindings tests.

  • bindings/scripts/CodeGeneratorGObject.pm:

(WriteData):

  • bindings/scripts/test/GObject/WebKitDOMTestCallback.cpp: Rebaseline generated results.
  • bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Ditto.
  • bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: Ditto.
09:10 Changeset [115437] by commit-queue@webkit.org

[BlackBerry] Improve log output in InputHandler.cpp
https://bugs.webkit.org/show_bug.cgi?id=85007

Patch by Nima Ghanavatian <nghanavatian@rim.com> on 2012-04-27
Reviewed by Antonio Gomes.

PR 138292
Improving logging in InputHandler.
In setText we had an early return which wasn't being captured.
Also, cleaning up the output to make it more clear and descriptive.

Internally reviewed by Mike Fenton.

  • WebKitSupport/InputHandler.cpp:

(BlackBerry::WebKit::InputHandler::learnText):
(BlackBerry::WebKit::InputHandler::enableInputMode):
(BlackBerry::WebKit::InputHandler::setText):

08:57 Changeset [115436] by gavinp@chromium.org

[Chromium] Remove Webkit/chromium/public/WebReferrerPolicy.h thunk.
https://bugs.webkit.org/show_bug.cgi?id=84552

After http://codereview.chromium.org/10139023/ lands, this thunk is no
longer needed.

Reviewed by Adam Barth.

  • WebKit.gyp:
  • public/WebReferrerPolicy.h: Removed.
08:29 Changeset [115435] by commit-queue@webkit.org

[Blackberry] remove redundant returns
https://bugs.webkit.org/show_bug.cgi?id=85033

Patch by Chris Guan <chris.guan@torchmobile.com.cn> on 2012-04-27
Reviewed by Antonio Gomes.

Remove two redundant returns which were added by accident.

No new test cases, because no behaviour has changed.

  • Api/WebPage.cpp:

(BlackBerry::WebKit::WebPage::setSelection):
(BlackBerry::WebKit::WebPage::setCaretPosition):

08:27 Changeset [115434] by kling@webkit.org

Avoid mutating Element attribute storage in StepRange constructor.
<http://webkit.org/b/84797>

Reviewed by Antti Koivisto.

Source/WebCore:

Test: fast/selectors/querySelector-in-range-crash.html

  • dom/Attribute.h:

Add comment about the volatility of references returned by getters.

  • html/StepRange.cpp:

(WebCore::StepRange::StepRange):

Replace hasAttribute/getAttribute pair by a single fastGetAttribute.

  • html/HTMLInputElement.cpp:

(WebCore::HTMLInputElement::updateType):
(WebCore::HTMLInputElement::value):

Store the value attribute in an local variable before passing it to sanitizeValue().

LayoutTests:

  • fast/selectors/querySelector-in-range-crash-expected.txt: Added.
  • fast/selectors/querySelector-in-range-crash.html: Added.
08:14 Changeset [115433] by bulach@chromium.org

[chromium] Disables a few more webkit_unittests.
https://bugs.webkit.org/show_bug.cgi?id=85052

Unreviewed build fix.

Failing on Windows bots, probably due to r115400.

  • tests/PopupMenuTest.cpp:

(WebKit::TEST_F):

08:05 Changeset [115432] by rwlbuis@webkit.org

SVG inline style of 'marker-*' does not override
https://bugs.webkit.org/show_bug.cgi?id=84824

Source/WebCore:

Reviewed by Nikolas Zimmermann.

Properly handle CSSValueNone for clip-path, filter, mask and marker-* properties. Instead
of bailing out, set the none value explicitly, since an earlier match may have set it to
something other than none.

Tests: svg/custom/inline-style-overrides-clipPath-expected.svg

svg/custom/inline-style-overrides-clipPath.svg
svg/custom/inline-style-overrides-filter-expected.svg
svg/custom/inline-style-overrides-filter.svg
svg/custom/inline-style-overrides-markers-expected.svg
svg/custom/inline-style-overrides-markers.svg
svg/custom/inline-style-overrides-mask-expected.svg
svg/custom/inline-style-overrides-mask.svg

  • css/SVGCSSStyleSelector.cpp:

(WebCore::StyleResolver::applySVGProperty):

LayoutTests:

Add tests for clip-path, filter, mask and marker-* properties.

Reviewed by Nikolas Zimmermann.

  • svg/custom/inline-style-overrides-clipPath-expected.svg: Added.
  • svg/custom/inline-style-overrides-clipPath.svg: Added.
  • svg/custom/inline-style-overrides-filter-expected.svg: Added.
  • svg/custom/inline-style-overrides-filter.svg: Added.
  • svg/custom/inline-style-overrides-markers-expected.svg: Added.
  • svg/custom/inline-style-overrides-markers.svg: Added.
  • svg/custom/inline-style-overrides-mask-expected.svg: Added.
  • svg/custom/inline-style-overrides-mask.svg: Added.
08:05 Changeset [115431] by philn@webkit.org

Unreviewed, GTK gardening.

  • Scripts/run-gtk-tests:

(TestRunner): Skip flaky WebKit2 API test.

08:00 Changeset [115430] by commit-queue@webkit.org

[EFL] media/video-controls-rendering-toggle-display-none.html is failing
https://bugs.webkit.org/show_bug.cgi?id=84949

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-04-27
Reviewed by Antonio Gomes.

Fix volume slider rendering so that the
media/video-controls-rendering-toggle-display-none.html passes.

  • css/mediaControlsEfl.css:

(audio::-webkit-media-controls-mute-button, video::-webkit-media-controls-mute-button):
(audio::-webkit-media-controls-volume-slider-container, video::-webkit-media-controls-volume-slider-container):
(audio::-webkit-media-controls-volume-slider, video::-webkit-media-controls-volume-slider):

07:58 Changeset [115429] by zimmermann@webkit.org

Support values animation mode with just a single value
https://bugs.webkit.org/show_bug.cgi?id=85064

Reviewed by Antti Koivisto.

Source/WebCore:

values="a" is equal to <set to="a"> per SMIL specification.
We currently only support values animation if at least two values are given, fix that.

The reference animations in Dr. Olaf Hoffmanns SVG Animation test suite are mostly using
values animations, sometimes with only a single value given. Lots of the reference animations
are broken in trunk w/o this patch and now work as expected.

See http://hoffmann.bplaced.net/svgtest/index.php?s=en&in=start.

Test: svg/animations/single-values-animation.html

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::calculateKeyTimesForCalcModePaced):
(WebCore::SVGAnimationElement::currentValuesForValuesAnimation):
(WebCore::SVGAnimationElement::startedActiveInterval):

LayoutTests:

  • svg/animations/resources/single-values-animation.svg: Added.
  • svg/animations/script-tests/single-values-animation.js: Added.

(sample1):
(sample2):
(executeTest):

  • svg/animations/single-values-animation-expected.txt: Added.
  • svg/animations/single-values-animation.html: Added.
07:55 Changeset [115428] by bulach@chromium.org

[chromium] Update test expectation.
https://bugs.webkit.org/show_bug.cgi?id=85038

Unreviewed, chromium test_expectations update.

  • platform/chromium/test_expectations.txt:
07:17 Changeset [115427] by commit-queue@webkit.org

Web Inspector: Allow inspection of Web Socket Frames
https://bugs.webkit.org/show_bug.cgi?id=83282

Patch by Konrad Piascik <kpiascik@rim.com> on 2012-04-27
Reviewed by Pavel Feldman.

Source/WebCore:

Tests: http/tests/inspector/web-socket-frame-error.html

http/tests/inspector/web-socket-frame.html

  • English.lproj/localizedStrings.js: Added new Web Inspector front-end UI strings.
  • Modules/websockets/WebSocketChannel.cpp: Added InspectorInstrumentation calls to

the following methods.

(WebCore::WebSocketChannel::fail):
(WebCore::WebSocketChannel::processFrame):
(WebCore::WebSocketChannel::sendFrame):

  • WebCore.gypi: Added new Web Inspector resource file.
  • WebCore.vcproj/WebCore.vcproj: Added new Web Inspector resource file.
  • inspector/Inspector.json: Added new Web Inspector resource file.
  • inspector/InspectorInstrumentation.cpp: Added new methods for instrumenting a Web Socket frame or error.

(WebCore::InspectorInstrumentation::didReceiveWebSocketFrameImpl):
(WebCore::InspectorInstrumentation::didReceiveWebSocketFrameErrorImpl):
(WebCore::InspectorInstrumentation::didSendWebSocketFrameImpl):

  • inspector/InspectorInstrumentation.h:

(WebCore):
(InspectorInstrumentation):
(WebCore::InspectorInstrumentation::didReceiveWebSocketFrame):
(WebCore::InspectorInstrumentation::didReceiveWebSocketFrameError):
(WebCore::InspectorInstrumentation::didSendWebSocketFrame):

  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::didReceiveWebSocketFrame):
(WebCore):
(WebCore::InspectorResourceAgent::didSendWebSocketFrame):
(WebCore::InspectorResourceAgent::didReceiveWebSocketFrameError):

  • inspector/InspectorResourceAgent.h:

(WebCore):
(InspectorResourceAgent):

  • inspector/compile-front-end.py: Added new Web Inspector resource file.
  • inspector/front-end/NetworkItemView.js: Added a new View for inspecting Web Socket frames and errors.

(WebInspector.NetworkItemView):

  • inspector/front-end/NetworkManager.js: Implemented callback called by InspectorResourceAgent for

the new Web Socket frame and error calls.

(WebInspector.NetworkDispatcher.prototype.webSocketFrameReceived):
(WebInspector.NetworkDispatcher.prototype.webSocketFrameSent):
(WebInspector.NetworkDispatcher.prototype.webSocketFrameError):

  • inspector/front-end/NetworkRequest.js: Added a frames array to a Resource request along

with accessor and helper methods

(WebInspector.NetworkRequest):
(WebInspector.NetworkRequest.prototype.resource):
(WebInspector.NetworkRequest.prototype.hasFrames):
(WebInspector.NetworkRequest.prototype.frameLength):
(WebInspector.NetworkRequest.prototype.getFrame):
(WebInspector.NetworkRequest.prototype.addFrameError):
(WebInspector.NetworkRequest.prototype.addFrame):
(WebInspector.NetworkRequest.prototype._pushFrame):

  • inspector/front-end/ResourceWebSocketFrameView.js: Added to help display Web Socket frame and error data.

(WebInspector.ResourceWebSocketFrameView):

  • inspector/front-end/WebKit.qrc: Added new Web Inspector resource file.
  • inspector/front-end/inspector.html: Added new Web Inspector resource file.

LayoutTests:

  • http/tests/inspector/web-socket-frame-error-expected.txt: Added.
  • http/tests/inspector/web-socket-frame-error.html: Added.
  • http/tests/inspector/web-socket-frame-expected.txt: Added.
  • http/tests/inspector/web-socket-frame.html: Added.
07:12 Changeset [115426] by yael.aharon@nokia.com

[Qt][WK2] setVisibleContentsRect is not thread safe
https://bugs.webkit.org/show_bug.cgi?id=85060

Reviewed by Noam Rosenthal.

Don't call WebLayerTreeRenderer::setVisibleContentsRect directly. Use bind() instead.

  • UIProcess/LayerTreeHostProxy.cpp:

(WebKit::LayerTreeHostProxy::setVisibleContentsRect):

07:10 Changeset [115425] by zimmermann@webkit.org

Fix repetitions & by animation support for SVGAnimateTransformElement
https://bugs.webkit.org/show_bug.cgi?id=85051

Reviewed by Antti Koivisto.

Source/WebCore:

Repetitions are currently handled by adjusting percentage (percentage += repeatCount).
This doesn't work for <animateTransform> as each repetition has to be post-multiplied to the animated transform list. Fix that.

By-animations are equal to values="0;by" animations in SMIL. '0' is the neutral element of addition, which is the _zero_ matrix,
not the identity matrix for SVGTransform. Add a new construction mode to SVGTransform to be able to construct zero transforms.

Tests: svg/animations/animateTransform-accumulation-expected.svg

svg/animations/animateTransform-accumulation.svg
svg/animations/animateTransform-by-scale-expected.svg
svg/animations/animateTransform-by-scale.svg
svg/animations/animateTransform-from-by-from-to-comparision-expected.svg
svg/animations/animateTransform-from-by-from-to-comparision.svg
svg/animations/animateTransform-from-by-scale-additive-sum-expected.svg
svg/animations/animateTransform-from-by-scale-additive-sum.svg
svg/animations/animateTransform-from-by-scale-expected.svg
svg/animations/animateTransform-from-by-scale.svg
svg/animations/animateTransform-rotate-around-point-expected.svg
svg/animations/animateTransform-rotate-around-point.svg
svg/animations/animateTransform-skewX-expected.svg
svg/animations/animateTransform-skewX.svg
svg/animations/animateTransform-skewY-expected.svg
svg/animations/animateTransform-skewY.svg
svg/animations/animateTransform-translate-expected.svg
svg/animations/animateTransform-translate.svg
svg/animations/multiple-animateTransform-additive-sum-expected.svg
svg/animations/multiple-animateTransform-additive-sum.svg

  • svg/SVGAnimateTransformElement.cpp:

(WebCore::SVGAnimateTransformElement::parseAttribute):

  • svg/SVGAnimatedTransformList.cpp:

(WebCore::SVGAnimatedTransformListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedTransformListAnimator::calculateAnimatedValue):

  • svg/SVGAnimationElement.h:

(WebCore::SVGAnimationElement::adjustFromToListValues):

  • svg/SVGTransform.cpp:

(WebCore::SVGTransform::SVGTransform):

  • svg/SVGTransform.h:
  • svg/SVGTransformDistance.cpp:

(WebCore::SVGTransformDistance::SVGTransformDistance):
(WebCore::SVGTransformDistance::scaledDistance):
(WebCore::SVGTransformDistance::addSVGTransforms):
(WebCore::SVGTransformDistance::addToSVGTransform):
(WebCore::SVGTransformDistance::distance):

  • svg/SVGTransformDistance.h:

(SVGTransformDistance):

LayoutTests:

Enable <animateTransform> test in additive-type-by-animation, which was disabled as it triggered assertions before this patch.
Add lots of new <animateTransform> covering additive/accumulative animations using reftests, for all animateTransform types (translate/rotate/skewX/skewY/scale).

  • svg/animations/additive-type-by-animation-expected.txt:
  • svg/animations/animateTransform-accumulation-expected.svg: Added.
  • svg/animations/animateTransform-accumulation.svg: Added.
  • svg/animations/animateTransform-by-scale-expected.svg: Added.
  • svg/animations/animateTransform-by-scale.svg: Added.
  • svg/animations/animateTransform-from-by-from-to-comparision-expected.svg: Added.
  • svg/animations/animateTransform-from-by-from-to-comparision.svg: Added.
  • svg/animations/animateTransform-from-by-scale-additive-sum-expected.svg: Added.
  • svg/animations/animateTransform-from-by-scale-additive-sum.svg: Added.
  • svg/animations/animateTransform-from-by-scale-expected.svg: Added.
  • svg/animations/animateTransform-from-by-scale.svg: Added.
  • svg/animations/animateTransform-rotate-around-point-expected.svg: Added.
  • svg/animations/animateTransform-rotate-around-point.svg: Added.
  • svg/animations/animateTransform-skewX-expected.svg: Added.
  • svg/animations/animateTransform-skewX.svg: Added.
  • svg/animations/animateTransform-skewY-expected.svg: Added.
  • svg/animations/animateTransform-skewY.svg: Added.
  • svg/animations/animateTransform-translate-expected.svg: Added.
  • svg/animations/animateTransform-translate.svg: Added.
  • svg/animations/multiple-animateTransform-additive-sum-expected.svg: Added.
  • svg/animations/multiple-animateTransform-additive-sum.svg: Added.
  • svg/animations/resources/additive-type-by-animation.svg:
  • svg/animations/script-tests/additive-type-by-animation.js:

(checkBaseVal):
(sample1):
(sample2):
(sample3):

  • svg/animations/script-tests/svgtransform-animation-1.js:

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(sample6):
(sample7):
(executeTest):

  • svg/animations/script-tests/svgtransform-animation-discrete.js:

(sample1):
(sample2):
(sample3):
(executeTest):

  • svg/animations/svgtransform-animation-1-expected.txt:
  • svg/animations/svgtransform-animation-discrete-expected.txt:
06:52 Changeset [115424] by commit-queue@webkit.org

[BlackBerry] Find-in-page fails to deactivate the old active match when moving backwards
https://bugs.webkit.org/show_bug.cgi?id=84892

Patch by Andy Chen <andchen@rim.com> on 2012-04-27
Reviewed by Antonio Gomes.

Find in page fails to deactivate the old active match when moving backwards
because searchStartingPoint was incorrectly initialized.
Create a real range object instead of referencing other range object.
PR 152009

Internally reviewed by Yongxin Dai.

  • WebKitSupport/InPageSearchManager.cpp:

(BlackBerry::WebKit::InPageSearchManager::findNextString):

06:50 Changeset [115423] by zimmermann@webkit.org

SVG Animations update baseVal instead of animVal
https://bugs.webkit.org/show_bug.cgi?id=12437

Reviewed by Dirk Schulze.

Source/WebCore:

Cleanup animation code, remove last remaining crufts of the old setAttribute() animation model.
Now only two animation modes remain: animate SVG DOM animVal properties or CSS properties.

Stop caching base values per string in SMILTimeContainer, as it breaks additive="sum" for CSS
properties if the underlying base value is changed from the outside (eg. when calling
style.fontSize="20px", if font-size was 10px, and we're running an additive by-animation with 50px).

This requires us to cache the computed style of a SVGElement, without SMIL style property changes,
in SVGElementRareData, similar to how the computed style itself is cached in ElementRareData.
To be able to compute the base value for a CSS property at any time, we have to exclude any
previous animation effects residing in the SMIL animated style properties, per SMIL2/3 specs.

NOTE: This doesn't change or affect the way CSS Animations/Transitions are applied, we still

have some bugs in that area, but this patch doesn't address them. The idea is to only
remove the cache, to pave the way for future additive="sum" patches.

Tests: svg/animations/change-css-property-while-animating-fill-freeze.html

svg/animations/change-css-property-while-animating-fill-remove.html

  • dom/Element.cpp:

(WebCore::Element::recalcStyle):

  • dom/Node.h:
  • svg/SVGAnimateElement.cpp:

(WebCore::propertyTypesAreConsistent):
(WebCore::SVGAnimateElement::resetToBaseValue):
(WebCore::SVGAnimateElement::applyResultsToTarget):

  • svg/SVGAnimateElement.h:

(SVGAnimateElement):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::resetToBaseValue):

  • svg/SVGAnimateMotionElement.h:

(SVGAnimateMotionElement):

  • svg/SVGAnimationElement.cpp:

(WebCore::applyCSSPropertyToTarget):
(WebCore::SVGAnimationElement::setTargetAttributeAnimatedCSSValue):

  • svg/SVGAnimationElement.h:
  • svg/SVGElement.cpp:

(WebCore::SVGElement::SVGElement):
(WebCore::SVGElement::willRecalcStyle):
(WebCore):
(WebCore::SVGElement::rareSVGData):
(WebCore::SVGElement::ensureRareSVGData):
(WebCore::SVGElement::computedStyle):
(WebCore::SVGElement::isAnimatableAttribute):

  • svg/SVGElement.h:

(SVGElement):

  • svg/SVGElementRareData.h:

(WebCore::SVGElementRareData::SVGElementRareData):
(WebCore::SVGElementRareData::ensureAnimatedSMILStyleProperties):
(WebCore::SVGElementRareData::destroyAnimatedSMILStyleProperties):
(WebCore::SVGElementRareData::overrideComputedStyle):
(WebCore::SVGElementRareData::setUseOverrideComputedStyle):

  • svg/animation/SMILTimeContainer.cpp:

(WebCore::SMILTimeContainer::updateAnimations):

  • svg/animation/SMILTimeContainer.h:

(SMILTimeContainer):

  • svg/animation/SVGSMILElement.h:

(SVGSMILElement):

LayoutTests:

Add tests that change the CSS property while an animation is running, finally fixed now for both SVG DOM & CSS animations.

  • svg/animations/change-css-property-while-animating-fill-freeze-expected.txt: Added.
  • svg/animations/change-css-property-while-animating-fill-freeze.html: Added.
  • svg/animations/change-css-property-while-animating-fill-remove-expected.txt: Added.
  • svg/animations/change-css-property-while-animating-fill-remove.html: Added.
  • svg/animations/resources/change-css-property-while-animating-fill-freeze.svg: Added.
  • svg/animations/resources/change-css-property-while-animating-fill-remove.svg: Added.
  • svg/animations/script-tests/change-css-property-while-animating-fill-freeze.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(executeTest):

  • svg/animations/script-tests/change-css-property-while-animating-fill-remove.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(executeTest):

06:13 Changeset [115422] by philn@webkit.org

Unreviewed, GTK gardening.

  • Scripts/run-gtk-tests:

(TestRunner): Fix another typo. So easy to get confused by a Test
name and the actual name of the executable...

05:24 Changeset [115421] by bulach@chromium.org

[chromium] Disables a few webkit_unittests.
https://bugs.webkit.org/show_bug.cgi?id=85052

Unreviewed build fix.

  • tests/PopupMenuTest.cpp:

(WebKit::TEST_F):

05:02 Changeset [115420] by kkristof@inf.u-szeged.hu

Move WebKit1 specific conversion of touch-events to WebKit1
https://bugs.webkit.org/show_bug.cgi?id=84951

Patch by Allan Sandfeld Jensen <allan.jensen@nokia.com> on 2012-04-27
Reviewed by Kenneth Rohde Christiansen.

Fix compile when touch-events are disabled.

  • WebCoreSupport/WebEventConversion.cpp:

(WebCore):

  • WebCoreSupport/WebEventConversion.h:

(WebCore):

04:51 Changeset [115419] by philn@webkit.org

Unreviewed, GTK test_expectations update.

  • platform/gtk/test_expectations.txt: Mark another http/inspector

test as crashing.

04:42 Changeset [115418] by philn@webkit.org

Unreviewed, GTK gardening.

  • Scripts/run-gtk-tests:

(TestRunner): Skip failing WebKit2 API test.

03:07 Changeset [115417] by apavlov@chromium.org

Source/WebCore: Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
(re-landing r115323 with a fixed test.)
https://bugs.webkit.org/show_bug.cgi?id=84946

Based on user actions in the Inspector frontend, InspectorPageAgent invokes Settings::setScriptEnabled()
for the associated page to switch the script execution therein.

Reviewed by Yury Semikhatsky.

Test: inspector/debugger/disable-script.html

  • inspector/Inspector.json:
  • inspector/InspectorPageAgent.cpp:

(PageAgentState):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::getScriptExecutionStatus):
(WebCore):
(WebCore::InspectorPageAgent::setScriptExecutionDisabled):

  • inspector/InspectorPageAgent.h:
  • inspector/front-end/Settings.js:
  • inspector/front-end/SettingsScreen.js:

(WebInspector.SettingsScreen):
(WebInspector.SettingsScreen.prototype.get _updateScriptDisabledCheckbox):
(WebInspector.SettingsScreen.prototype._javaScriptDisabledChanged):

  • inspector/front-end/inspector.js:

LayoutTests: Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
https://bugs.webkit.org/show_bug.cgi?id=84946

Reviewed by Yury Semikhatsky.

  • inspector/debugger/disable-script-expected.txt: Added.
  • inspector/debugger/disable-script.html: Added.
02:59 Changeset [115416] by philn@webkit.org

Unreviewed, GTK test_expectations update.

  • platform/gtk/test_expectations.txt: Flag http test hitting an ASSERT.
02:47 Changeset [115415] by commit-queue@webkit.org

[EFL] DRT should support LayoutTestController's dumpResourceLoadCallbacks()
https://bugs.webkit.org/show_bug.cgi?id=81891

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-04-27
Reviewed by Philippe Normand.

Source/WebKit/efl:

New "load,resource,finished", "load,resource,failed", and
"resource,response,received" signals were added to notify about different
resource load events. These additional signals are needed for proper
support of LayoutTestController's dumpResourceLoadCallbacks() in EFL's
DumpRenderTree.

  • WebCoreSupport/FrameLoaderClientEfl.cpp:

(WebCore::FrameLoaderClientEfl::assignIdentifierToInitialRequest):
(WebCore::FrameLoaderClientEfl::dispatchDidReceiveResponse):
(WebCore::FrameLoaderClientEfl::dispatchDidFinishLoading):
(WebCore::FrameLoaderClientEfl::dispatchDidFailLoading):

  • ewk/ewk_frame.cpp:

(ewk_frame_response_received):
(ewk_frame_load_finished):
(ewk_frame_load_resource_finished):
(ewk_frame_load_resource_failed):
(ewk_frame_load_error):

  • ewk/ewk_frame.h:
  • ewk/ewk_private.h:
  • ewk/ewk_view.h:

Tools:

Implement support for LayoutTestController's
dumpResourceLoadCallbacks() in EFL's DumpRenderTree by catching new
ewk_view signals about resource loading and print out the expected
information. This allows for several test cases to be removed from the
skip list.

  • DumpRenderTree/efl/DumpRenderTreeChrome.cpp:

(DumpRenderTreeChrome::createView):
(descriptionSuitableForTestResult):
(DumpRenderTreeChrome::onResponseReceived):
(DumpRenderTreeChrome::onResourceLoadFinished):
(DumpRenderTreeChrome::onResourceLoadFailed):
(DumpRenderTreeChrome::onNewResourceRequest):

  • DumpRenderTree/efl/DumpRenderTreeChrome.h:

(DumpRenderTreeChrome):

LayoutTests:

Unskip tests which depend on EFL's DumpRenderTree support for
LayoutTestController's dumpResourceLoadCallbacks(), now that it is
implemented.

  • platform/efl/Skipped:
02:16 Changeset [115414] by philn@webkit.org

Unreviewed, GTK typo fix.

  • Scripts/run-gtk-tests:

(TestRunner): Fix-up skipped WebKit2 API test name TestWKConnection.

02:07 Changeset [115413] by bulach@chromium.org

[chromium] Update test expectation.
https://bugs.webkit.org/show_bug.cgi?id=85038

Unreviewed, chromium test_expectations update.

  • platform/chromium/test_expectations.txt:
01:42 PrefixedAPIs edited by sh4.seo@samsung.com
CSS Transitions (diff)
01:38 PrefixedAPIs edited by sh4.seo@samsung.com
CSS Animations (diff)
01:09 Changeset [115412] by philn@webkit.org

Unreviewed, GTK test_expectations update.

  • platform/gtk/test_expectations.txt: Fix expected results of

css2.1 results and remove non-existant fast/form test.

00:13 Changeset [115411] by carlosgc@webkit.org

[SOUP] Add a way to register custom uri schemes in WebKit2
https://bugs.webkit.org/show_bug.cgi?id=84130

Reviewed by Martin Robinson.

.:

  • GNUmakefile.am: Add BUILDING_SOUP macro to compilation.

Source/WebKit2:

  • GNUmakefile.am: Add new files to compilation.
  • Platform/CoreIPC/MessageID.h: Add

MessageClassWebSoupRequestManager and
MessageClassWebSoupRequestManagerProxy message types to identify
WebSoupRequestManager messages.

  • Shared/API/c/WKBase.h: Include WKBaseSoup.h when building with

soup network backend.

  • Shared/API/c/soup/WKBaseSoup.h: Added.
  • Shared/APIObject.h: Add SoupRequestManager type when using soup.
  • UIProcess/API/C/WKAPICast.h: Include WKAPICastSoup.h when

building with soup network backend.

  • UIProcess/API/C/soup/WKAPICastSoup.h: Added.

(WebKit): Map WKSoupRequestManagerRef to
WebSoupRequestManagerProxy.

  • UIProcess/API/C/soup/WKContextSoup.cpp: Added.

(WKContextGetSoupRequestManager): Return WKSoupRequestManagerRef
associated to the context.

  • UIProcess/API/C/soup/WKContextSoup.h: Added.
  • UIProcess/API/C/soup/WKSoupRequestManager.cpp: Added.

(WKSoupRequestManagerGetTypeID): Return the
WebSoupRequestManagerProxy API type.
(WKSoupRequestManagerSetClient): Set the WKSoupRequestManagerClient.
(WKSoupRequestManagerRegisterURIScheme): Call
WebSoupRequestManagerProxy::registerURIScheme().
(WKSoupRequestManagerHandleURIRequest): Call
WebSoupRequestManagerProxy::handleURIRequest().

  • UIProcess/API/C/soup/WKSoupRequestManager.h: Added.
  • UIProcess/WebContext.cpp:

(WebKit::WebContext::WebContext): Initialize
m_soupRequestManagerProxy when using soup.
(WebKit::WebContext::~WebContext): Invalidate and clear the
m_soupRequestManagerProxy when using soup.
(WebKit::WebContext::disconnectProcess): Invalidate the
m_soupRequestManagerProxy when using soup.
(WebKit::WebContext::didReceiveMessage): Forward the message to
m_soupRequestManagerProxy if it's a
MessageClassWebSoupRequestManagerProxy message.

  • UIProcess/WebContext.h:

(WebKit::WebContext::soupRequestManagerProxy): Return
m_soupRequestManagerProxy.

  • UIProcess/WebProcessProxy.cpp:

(WebKit::WebProcessProxy::didReceiveMessage): Forward message to
the web context if it's a MessageClassWebSoupRequestManagerProxy
message.

  • UIProcess/soup/WebSoupRequestManagerClient.cpp: Added.

(WebKit::WebSoupRequestManagerClient::didReceiveURIRequest): Call
didReceiveURIRequest callback if it has an implementation.

  • UIProcess/soup/WebSoupRequestManagerClient.h: Added.
  • UIProcess/soup/WebSoupRequestManagerProxy.cpp: Added.

(WebKit::WebSoupRequestManagerProxy::create): Create a new
WebSoupRequestManagerProxy.
(WebKit::WebSoupRequestManagerProxy::WebSoupRequestManagerProxy):
(WebKit::WebSoupRequestManagerProxy::~WebSoupRequestManagerProxy):
(WebKit::WebSoupRequestManagerProxy::invalidate):
(WebKit::WebSoupRequestManagerProxy::initializeClient):
(WebKit::WebSoupRequestManagerProxy::didReceiveMessage):
(WebKit::WebSoupRequestManagerProxy::registerURIScheme): Send
RegisterURIScheme message to the WebProcess to register the given
URI scheme.
(WebKit::WebSoupRequestManagerProxy::handleURIRequest): Send
HandleURIRequest message to the WebProcess with the given data and
data type.
(WebKit::WebSoupRequestManagerProxy::didReceiveURIRequest): Call
didReceiveURIRequest callback to allow the user to handle the
request.

  • UIProcess/soup/WebSoupRequestManagerProxy.h: Added.
  • UIProcess/soup/WebSoupRequestManagerProxy.messages.in: Added.
  • WebProcess/WebProcess.cpp:

(WebKit::WebProcess::WebProcess): Initialize m_soupRequestManager
when using soup.
(WebKit::WebProcess::didReceiveMessage): Forward the message to
m_soupRequestManager if it's a MessageClassWebSoupRequestManager
message.

  • WebProcess/WebProcess.h:

(WebKit::WebProcess::soupRequestManager): Return m_soupRequestManager.

  • WebProcess/soup/WebKitSoupRequestGeneric.cpp: Added.

(webkitSoupRequestGenericFinalize):
(webkit_soup_request_generic_init):
(webkitSoupRequestGenericSendAsync): Create a GSimpleAsyncResult
to handle the request and pass it to the WebSoupRequestManager.
(webkitSoupRequestGenericSendFinish): Finish the async operation
started by webkitSoupRequestGenericSendAsync() and return the
contents of the request as returned by WebSoupRequestManager.
(webkitSoupRequestGenericGetContentLength): Get the request
contents length.
(webkitSoupRequestGenericGetContentType): Get the request mime
type.
(webkit_soup_request_generic_class_init):
(webkitSoupRequestGenericSetContentLength): Set the request
contents length.
(webkitSoupRequestGenericSetContentType): Set the request mime
type.

  • WebProcess/soup/WebKitSoupRequestGeneric.h: Added.
  • WebProcess/soup/WebSoupRequestManager.cpp: Added.

(WebKit::generateSoupRequestID): Helper function to generate a
unique request identifier.
(WebKit::WebSoupRequestManager::WebSoupRequestManager):
(WebKit::WebSoupRequestManager::~WebSoupRequestManager):
(WebKit::WebSoupRequestManager::didReceiveMessage):
(WebKit::WebSoupRequestManager::registerURIScheme): Add the scheme
to the schemes array and add a new WebKitSoupRequestGeneric
feature with the new scheme list to the SoupRequester feature.
(WebKit::WebSoupRequestManager::handleURIRequest): Complete the
async operation by creating a GInputStream with the request data,
or setting an error in case of failure.
(WebKit::WebSoupRequestManager::send): Send DidReceiveURIRequest
message to the UI process.
(WebKit::WebSoupRequestManager::finish): Return the GInputStream
containing the request data.

  • WebProcess/soup/WebSoupRequestManager.h: Added.
  • WebProcess/soup/WebSoupRequestManager.messages.in: Added.

Source/WTF:

Add GPtrArray template to be able to use GRefPtr with GPtrArrays.

  • wtf/gobject/GRefPtr.cpp:

(WTF::refGPtr):
(WTF):
(WTF::derefGPtr):

  • wtf/gobject/GRefPtr.h:

(WTF):

  • wtf/gobject/GTypedefs.h:

Tools:

  • Scripts/webkitpy/style/checkers/cpp.py:

(check_identifier_name_in_declaration): Add webkit_soup prefix to
the list of exceptions to the underscores in identifiers rule.

00:05 Changeset [115410] by rniwa@webkit.org

Extract PerfTestFactory
https://bugs.webkit.org/show_bug.cgi?id=83944

Reviewed by Dirk Pranke.

Extracted PerfTestFactory out of PerfTest. This class creates appropriate PerfTest object given
a test name and a path. Also removed dirname from the constructors of PerfTest and its subclasses.

Also added simple test cases to sanity check PerfTestFactory.

  • Scripts/webkitpy/performance_tests/perftest.py:

(PerfTest.init):
(PerfTest.test_name):
(ChromiumStylePerfTest.init):
(PageLoadingPerfTest.init):
(PageLoadingPerfTest.run):
(PerfTestFactory):
(PerfTestFactory.create_perf_test):

  • Scripts/webkitpy/performance_tests/perftest_unittest.py:

(MainTest.test_parse_output):
(MainTest.test_parse_output_with_failing_line):
(TestPageLoadingPerfTest.test_run):
(TestPageLoadingPerfTest.test_run_with_bad_output):
(TestPerfTestFactory):
(TestPerfTestFactory.test_regular_test):
(TestPerfTestFactory.test_inspector_test):
(TestPerfTestFactory.test_page_loading_test):

  • Scripts/webkitpy/performance_tests/perftestsrunner.py:

(PerfTestsRunner):
(PerfTestsRunner._collect_tests):

  • Scripts/webkitpy/performance_tests/perftestsrunner_unittest.py:

(run_test):
(_tests_for_runner):

04/26/12:

23:45 Changeset [115409] by rniwa@webkit.org

REGRESSION (r94497): Pressing Command+A when inline (Marked Text) is not empty will clean whole content
https://bugs.webkit.org/show_bug.cgi?id=84501

Reviewed by Alexey Proskuryakov.

Source/WebCore:

The bug was caused by setComposition, which is called by cancelComposition, deleting the contents when
the passed text is empty. Fixed it by not deleting text when canceling compositions. This is okay because
as the comment above the line suggests, this particular call to TypingCommand::deleteSelection is only useful
when the confirmed text is empty and the composition text had previously been non-empty.

Test: editing/input/select-all-clear-input-method.html

  • editing/Editor.cpp:

(WebCore::Editor::setComposition):

LayoutTests:

Add a regression test for selecting all when there is a composition text.

  • editing/input/select-all-clear-input-method-expected.txt: Added.
  • editing/input/select-all-clear-input-method.html: Added.
23:11 Changeset [115408] by ossy@webkit.org

[Qt] Unreviewed morning gardening, skip a new failing test.

  • platform/qt/Skipped:
21:04 Changeset [115407] by keishi@webkit.org

datalist: Form control in a <datalist> should be barred from constraint validation
https://bugs.webkit.org/show_bug.cgi?id=84359

Source/WebCore:

http://www.whatwg.org/specs/web-apps/current-work/multipage/the-button-element.html#the-datalist-element
According to this, if an element has a datalist element ancestor, it is barred from constraint validation.

Reviewed by Kent Tamura.

Test: fast/forms/datalist/datalist-child-validation.html

  • html/HTMLFormControlElement.cpp:

(WebCore::HTMLFormControlElement::HTMLFormControlElement):
(WebCore::HTMLFormControlElement::updateAncestors): Updates the ancestor information.
(WebCore::HTMLFormControlElement::insertedInto): Invalidates the ancestor information and calls setNeedsWillValidateCheck
(WebCore::HTMLFormControlElement::removedFrom): Invalidates the ancestor information and calls setNeedsWillValidateCheck
(WebCore::HTMLFormControlElement::disabled):
(WebCore::HTMLFormControlElement::recalcWillValidate): Returns false if element has a datalist ancestor.
(WebCore::HTMLFormControlElement::setNeedsWillValidateCheck): Check if ancestor information is valid too.

  • html/HTMLFormControlElement.h:

(HTMLFormControlElement):

LayoutTests:

Reviewed by Kent Tamura.

  • fast/forms/datalist/datalist-child-validation-expected.txt: Added.
  • fast/forms/datalist/datalist-child-validation.html: Added. Tests that willValidate changes from false to true when we move the element out of the datalist.
20:51 Changeset [115406] by thakis@chromium.org

Don't define WTF_COMPILER_SUPPORTS_CXX_NULLPTR twice when building with clang on windows.
https://bugs.webkit.org/show_bug.cgi?id=85018

Reviewed by Anders Carlsson.

Clang sets _MSC_VER when compiling for a -pc-win32 target (just like it sets GNUC on unix).
As a result, WTF_COMPILER_SUPPORTS_CXX_NULLPTR gets currently set twice, once for clang and
once for _MSC_VER. Guard the second instance with !COMPILER(CLANG). This matches the gcc code
for WTF_COMPILER_SUPPORTS_CXX_NULLPTR in the same file.

  • wtf/Compiler.h:
20:35 Changeset [115405] by enne@google.com

[chromium] Remove unused CCLayerImpl::debugID()
https://bugs.webkit.org/show_bug.cgi?id=85019

Reviewed by James Robinson.

CCLayerSorter used debugID() but it was never set anywhere. Change
the CCLayerSorter LOG messages to use id(), which does get set.

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

(CCLayerImpl):

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

(WebCore::CCLayerSorter::createGraphNodes):
(WebCore::CCLayerSorter::createGraphEdges):
(WebCore::CCLayerSorter::sort):

20:32 Changeset [115404] by thakis@chromium.org

[chromium] Fix C++ language use.
https://bugs.webkit.org/show_bug.cgi?id=85015

Reviewed by James Robinson.

Even though MSVC allows it, a sizeof followed by a non-parenthesized
typename is not valid C++.

No functionality change.

  • rendering/RenderThemeChromiumWin.cpp:

(WebCore):
(WebCore::getNonClientMetrics):

20:22 Changeset [115403] by jamesr@google.com

[chromium] Move ProgramBinding definitions to LayerRendererChromium and normalize naming
https://bugs.webkit.org/show_bug.cgi?id=84808

Reviewed by Adrienne Walker.

Source/WebCore:

The GL programs used are logically part of LayerRendererChromium and not something specific to a layer type,
since a different renderer would want to use a different thing to render the same layer types. This moves all of
the ProgramBinding definitions into LayerRendererChromium and gives them consistent names. With the exception of
CCRenderSurface (noted by an inline comment), these programs are private to LRC.

This patch also deduplicates programs a bit:
1.) Video's NativeTexture and RGBA programs were the same thing, folded.
2.) The TexStretch and TexTransform shaders are basically the same thing, folded together.

  • platform/graphics/chromium/LayerChromium.h:

(LayerChromium):

  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererChromium::drawCheckerboardQuad):
(WebCore::LayerRendererChromium::drawDebugBorderQuad):
(WebCore::LayerRendererChromium::drawSolidColorQuad):
(WebCore::LayerRendererChromium::drawTileQuad):
(WebCore::LayerRendererChromium::drawYUV):
(WebCore::LayerRendererChromium::drawRGBA):
(WebCore::LayerRendererChromium::drawNativeTexture2D):
(WebCore::LayerRendererChromium::drawStreamTexture):
(WebCore::LayerRendererChromium::drawTextureQuad):
(WebCore::LayerRendererChromium::drawHeadsUpDisplay):
(WebCore::LayerRendererChromium::initializeSharedObjects):
(WebCore::LayerRendererChromium::tileCheckerboardProgram):
(WebCore::LayerRendererChromium::solidColorProgram):
(WebCore::LayerRendererChromium::headsUpDisplayProgram):
(WebCore::LayerRendererChromium::renderSurfaceProgram):
(WebCore::LayerRendererChromium::renderSurfaceProgramAA):
(WebCore::LayerRendererChromium::renderSurfaceMaskProgram):
(WebCore::LayerRendererChromium::renderSurfaceMaskProgramAA):
(WebCore::LayerRendererChromium::tileProgram):
(WebCore::LayerRendererChromium::tileProgramOpaque):
(WebCore::LayerRendererChromium::tileProgramAA):
(WebCore::LayerRendererChromium::tileProgramSwizzle):
(WebCore::LayerRendererChromium::tileProgramSwizzleOpaque):
(WebCore::LayerRendererChromium::tileProgramSwizzleAA):
(WebCore::LayerRendererChromium::textureProgramFlip):
(WebCore::LayerRendererChromium::textureTexRectProgram):
(WebCore::LayerRendererChromium::textureTexRectProgramFlip):
(WebCore::LayerRendererChromium::videoRGBAProgram):
(WebCore::LayerRendererChromium::videoYUVProgram):
(WebCore::LayerRendererChromium::videoStreamTextureProgram):
(WebCore::LayerRendererChromium::cleanupSharedObjects):

  • platform/graphics/chromium/LayerRendererChromium.h:

(WebCore):
(LayerRendererChromium):

  • platform/graphics/chromium/ShaderChromium.cpp:
  • platform/graphics/chromium/ShaderChromium.h:
  • platform/graphics/chromium/cc/CCHeadsUpDisplay.h:

(CCHeadsUpDisplay):

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

(WebCore):

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

(WebCore::CCRenderSurface::copyTextureToFramebuffer):
(WebCore::CCRenderSurface::drawLayer):

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

(CCRenderSurface):

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

(CCTextureLayerImpl):

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

(CCTiledLayerImpl):

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

(WebCore):
(CCVideoLayerImpl):

Source/WebKit/chromium:

Add some includes needed by this test that were previously picked up by upstream headers.

  • tests/CCLayerTreeHostImplTest.cpp:
20:16 Changeset [115402] by noam.rosenthal@nokia.com

[Qt][WK2] A GraphicsSurface instance is created with every update
https://bugs.webkit.org/show_bug.cgi?id=85014

Reviewed by Kenneth Rohde Christiansen.

Keep a copy of the GraphicsSurface in the UI process, and reuse it for
subsequent updates. This ensure that the texture and other data associated
with the GraphicsSurface does not need to be reconstructed.

  • Shared/ShareableSurface.h:

(Handle):
(WebKit::ShareableSurface::Handle::graphicsSurfaceToken):

  • UIProcess/LayerTreeHostProxy.cpp:

(WebKit::LayerTreeHostProxy::updateTileForLayer):

  • UIProcess/LayerTreeHostProxy.h:

(LayerTreeHostProxy):

20:08 Changeset [115401] by tonikitoo@webkit.org

Unreviewed amend to bug 84873 (r115345).

  • platform/ScrollView.cpp:

(WebCore::ScrollView::scrollSize):

19:44 Changeset [115400] by isherman@chromium.org

[Chromium] Security: Autofill info can be captured by innocuous social engineering
Prevent users from interacting with invisible popups rendered outside the main frame's contents view.
https://bugs.webkit.org/show_bug.cgi?id=84420
https://code.google.com/p/chromium/issues/detail?id=122925

Reviewed by Kent Tamura.

  • src/ChromeClientImpl.cpp:

(WebKit::ChromeClientImpl::popupOpened): Hide popups rendered outside the main frame's contents view.

  • src/WebViewImpl.cpp:

(WebKit::WebViewImpl::applyAutofillSuggestions): Fix up order of operations to support immediately hiding a popup if it would not be visible

19:38 Changeset [115399] by rniwa@webkit.org

Source/WebCore: Merge r115227, r115244, and r115302.

REGRESSION(r112177): listStyleType CSS property gets converted into listStyle
https://bugs.webkit.org/show_bug.cgi?id=83026

Reviewed by Darin Adler.

Fixed the bug by not using shorthand notations when some values are missing.

However, we still want to return a value when shorthand border property is explicitly
requested so extract borderPropertyValue with a flag to support both behaviors.

  • css/StylePropertySet.cpp:

(WebCore::borderPropertyValue): Extracted from getPropertyValue.
(WebCore::StylePropertySet::getPropertyValue):
(WebCore::StylePropertySet::get4Values): Don't return values when priority don't match.
(WebCore::StylePropertySet::getShorthandValue):
(WebCore::StylePropertySet::getCommonValue): Don't return null string for initial values
to disambiguate missing values and "initial" in getPropertyValue. Also check propriety.
(WebCore::StylePropertySet::asText): Support emitting border-width, border-style, and
border-color when border doesn't work but the former properties do.

LayoutTests: REGRESSION(r112177): listStyleType CSS property gets converted into listStyle
https://bugs.webkit.org/show_bug.cgi?id=83026

Reviewed by Darin Adler.

Added test cases to cssText-shorthand.html and rebaselined some tests.

  • fast/css/cssText-shorthand-expected.txt:
  • fast/css/cssText-shorthand.html: Added more test cases.
  • fast/css/remove-shorthand-expected.txt: Correctly adds both border-width and border-style

when border-color is missing.

  • printing/page-rule-css-text-expected.txt: Correctly uses border-width instead of border.
19:35 Changeset [115398] by jpfau@apple.com

Invalid cast in WebCore::HTMLCollection::isAcceptableElement
https://bugs.webkit.org/show_bug.cgi?id=84626

Reviewed by Darin Adler.

Source/WebCore:

Check if the object is an HTMLElement before casting.

Test: fast/dom/htmlcollection-non-html.html

  • html/HTMLCollection.cpp:

(WebCore::HTMLCollection::isAcceptableElement):

LayoutTests:

Add tests to make sure only HTML elements are present in most HTMLCollection objects.

  • fast/dom/htmlcollection-non-html-option-expected.txt: Added.
  • fast/dom/htmlcollection-non-html.html: Added.
19:17 Changeset [115397] by danakj@chromium.org

[chromium] Some background filters require inflating damage on the surface behind them
https://bugs.webkit.org/show_bug.cgi?id=84479

Reviewed by Adrienne Walker.

Source/WebCore:

A layer with a background blur will expand the damage from pixels in the
surface below it. We extend the damage tracker to expand damage in a
surface below such layers.

Unit test: CCDamageTrackerTest.verifyDamageForBackgroundBlurredChild

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

(WebCore::expandPixelOutsetsWithFilters):
(WebCore):
(WebCore::expandDamageRectInsideRectWithFilters):
(WebCore::expandDamageRectWithFilters):
(WebCore::CCDamageTracker::updateDamageTrackingState):
(WebCore::CCDamageTracker::trackDamageFromActiveLayers):

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

(CCDamageTracker):

Source/WebKit/chromium:

  • tests/CCDamageTrackerTest.cpp:

(WebKitTests::TEST_F):
(WebKitTests):

18:40 Changeset [115396] by simon.fraser@apple.com

Improve compositing logging output
https://bugs.webkit.org/show_bug.cgi?id=85010

Reviewed by Dean Jackson.

In the compositing log channel output, indent the layers
based on z-order tree depth. Tabulate the summary, and
show obligate and secondary backing store area separately.

  • rendering/RenderLayer.cpp:

(WebCore::RenderLayer::updateClipRects):

  • rendering/RenderLayerCompositor.cpp:

(WebCore::RenderLayerCompositor::RenderLayerCompositor):
(WebCore::RenderLayerCompositor::updateCompositingLayers):
(WebCore::RenderLayerCompositor::logLayerInfo):
(WebCore::RenderLayerCompositor::rebuildCompositingLayerTree):
(WebCore::RenderLayerCompositor::updateLayerTreeGeometry):
(WebCore::RenderLayerCompositor::reasonForCompositing):

  • rendering/RenderLayerCompositor.h:

(RenderLayerCompositor):

18:38 Changeset [115395] by andersca@apple.com

REGRESSION (r115163): Unable to scroll article body with trackpad on altdevblogaday.com blog post
https://bugs.webkit.org/show_bug.cgi?id=85024
<rdar://problem/11330758>

Reviewed by Sam Weinig.

Fix broken logic in canHaveScrollbars.

  • page/scrolling/ScrollingTreeNode.h:

(WebCore::ScrollingTreeNode::canHaveScrollbars):

18:24 Changeset [115394] by jamesr@google.com

[chromium] Use different CCDrawQuad types for textures vs IOSurfaces
https://bugs.webkit.org/show_bug.cgi?id=84811

Reviewed by Adrienne Walker.

IOSurface and texture backed layers share few properties (only the flipped bool), so it doesn't make a lot of
sense for them to use the same CCDrawQuad type for both. This splits IOSurfaces out to a dedicated quad type to
make it easier to understand which bits of state apply to each.

The logical next step after this is to split the layer type as well, but that will be awkward until bug 84808 is
resolved.

  • WebCore.gypi:
  • platform/graphics/chromium/LayerRendererChromium.cpp:

(WebCore::LayerRendererChromium::drawQuad):
(WebCore::LayerRendererChromium::drawTextureQuad):
(WebCore):
(WebCore::LayerRendererChromium::drawIOSurfaceQuad):

  • platform/graphics/chromium/LayerRendererChromium.h:

(LayerRendererChromium):

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

(WebCore::CCDrawQuad::toIOSurfaceDrawQuad):
(WebCore):

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

(WebCore):
(CCDrawQuad):

  • platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.cpp: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.cpp.

(WebCore):
(WebCore::CCIOSurfaceDrawQuad::create):
(WebCore::CCIOSurfaceDrawQuad::CCIOSurfaceDrawQuad):

  • platform/graphics/chromium/cc/CCIOSurfaceDrawQuad.h: Copied from Source/WebCore/platform/graphics/chromium/cc/CCTextureDrawQuad.h.

(WebCore):
(CCIOSurfaceDrawQuad):
(WebCore::CCIOSurfaceDrawQuad::flipped):
(WebCore::CCIOSurfaceDrawQuad::ioSurfaceSize):
(WebCore::CCIOSurfaceDrawQuad::ioSurfaceTextureId):

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

(WebCore::CCTextureDrawQuad::create):
(WebCore::CCTextureDrawQuad::CCTextureDrawQuad):

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

(CCTextureDrawQuad):

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

(WebCore::CCTextureLayerImpl::appendQuads):

18:06 Changeset [115393] by commit-queue@webkit.org

Cleanup WebMediaPlayer enum values that didn't match Chromium style guidelines
https://bugs.webkit.org/show_bug.cgi?id=84998

Patch by Aaron Colwell <acolwell@chromium.org> on 2012-04-26
Reviewed by Darin Fisher.

  • public/WebMediaPlayer.h:

(WebKit::WebMediaPlayer::generateKeyRequest):
(WebKit::WebMediaPlayer::addKey):
(WebKit::WebMediaPlayer::cancelKeyRequest):

18:03 Changeset [115392] by benjamin@webkit.org

Use WebKit types for the cache of ObjcClass::methodsNamed()
https://bugs.webkit.org/show_bug.cgi?id=85012

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-04-26
Reviewed by Geoffrey Garen.

This patch redefines the method cache ObjcClass to avoid memory allocations in the case of positive match.

Instead of using the converted name as the key, the original identifier string is used. This shortcuts
all the other operations when there is a match.

A side effect is a method can appear multiple times in the cache if it is invoked with different names using
the escape character "$". An attaquer could bloat the cache with a few hundreds strings.
In the common case, having each name mapped is an improvment.

  • bridge/objc/objc_class.h:

(ObjcClass):

  • bridge/objc/objc_class.mm:

(JSC::Bindings::ObjcClass::ObjcClass):
(JSC::Bindings::ObjcClass::methodsNamed):

17:51 Changeset [115391] by oliver@apple.com

Allocating WeakImpl should not trigger GC, as that makes the world very tricksy.
https://bugs.webkit.org/show_bug.cgi?id=85020

Reviewed by Gavin Barraclough.

Now in the event that we are unable to find an allocator for a new handle, just
add a new allocator rather than trying to recover "dead" handles through a GC.

Find allocator is now much simpler, and addAllocator directly reports the
increased memory usage to the heap without causing any GC to happen immediately.

  • heap/WeakSet.cpp:

(JSC::WeakSet::findAllocator):
(JSC::WeakSet::addAllocator):

17:49 Changeset [115390] by benjamin@webkit.org

Skip the new ObjC tests for WebKit2

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-04-26
Reviewed by Andreas Kling.

WebKitTestRunner doesn't have objCController, the new tests for
the Objective-C bindings should be skipped on WebKit2.

  • platform/wk2/Skipped:
17:48 Changeset [115389] by ojan@chromium.org

Delete dead code in Arena.h/cpp
https://bugs.webkit.org/show_bug.cgi?id=84997

Reviewed by Eric Seidel.

Also cleaned up some style issues. Renamed some single-letter variable names.
Avoided anything other than totally trivial style changes to be 100% sure
that there is no change in behavior.

No new tests. There's no non-style code changes except inlining CLEAR_UNUSED
and CLEAR_ARENA.

  • platform/Arena.cpp:

(WebCore):
(WebCore::CeilingLog2):
(WebCore::InitArenaPool):
(WebCore::ArenaAllocate):
(WebCore::FreeArenaList):
(WebCore::FinishArenaPool):

  • platform/Arena.h:

(WebCore):

17:07 Changeset [115388] by oliver@apple.com

Remove RegisterFile::end()/m_end
https://bugs.webkit.org/show_bug.cgi?id=85011

Reviewed by Gavin Barraclough.

Source/JavaScriptCore:

Get rid of end() and m_end from RegisterFile. From now on
we only care about the end of the committed region when calling
code. When re-entering the VM we now plant the new CallFrame
immediately after whatever the current topCallFrame is. This
required adding a routine to CallFrame to determine exactly what
we should be doing (in the absence of an existing CallFrame, we
can't reason about the frameExtent() so we check for that).

This also now means that the GC only marks the portion of the
RegisterFile that is actually in use, and that VM re-entry doesn't
exhaust the RegisterFile as rapidly.

  • dfg/DFGOperations.cpp:
  • heap/Heap.cpp:

(JSC::Heap::getConservativeRegisterRoots):
(JSC::Heap::markRoots):

  • interpreter/CallFrame.h:

(JSC::ExecState::init):
(JSC::ExecState::startOfReusableRegisterFile):
(ExecState):

  • interpreter/Interpreter.cpp:

(JSC::Interpreter::execute):
(JSC::Interpreter::executeCall):
(JSC::Interpreter::executeConstruct):
(JSC::Interpreter::prepareForRepeatCall):
(JSC::Interpreter::privateExecute):

  • interpreter/Interpreter.h:

(JSC::Interpreter::execute):

  • interpreter/RegisterFile.cpp:

(JSC::RegisterFile::growSlowCase):
(JSC::RegisterFile::gatherConservativeRoots):

  • interpreter/RegisterFile.h:

(JSC::RegisterFile::commitEnd):
(JSC::RegisterFile::addressOfEnd):
(RegisterFile):
(JSC::RegisterFile::RegisterFile):
(JSC::RegisterFile::shrink):
(JSC::RegisterFile::grow):

  • jit/JITStubs.cpp:

(JSC::DEFINE_STUB_FUNCTION):
(JSC::jitCompileFor):
(JSC::lazyLinkFor):

  • llint/LLIntSlowPaths.cpp:

(JSC::LLInt::LLINT_SLOW_PATH_DECL):
(JSC::LLInt::handleHostCall):

  • llint/LowLevelInterpreter.asm:
  • runtime/CommonSlowPaths.h:

(JSC::CommonSlowPaths::arityCheckFor):

LayoutTests:

Now that we recurse on the top of the used portion of the stack we
can provide an error message even when the stack is completely full.

Also made sure we were consistent in which callframe we used when
creating stack overflow errors.

  • fast/js/global-recursion-on-full-stack-expected.txt:
  • fast/js/stack-trace-expected.txt:
17:00 Changeset [115387] by leviw@chromium.org

Removing bounds checking in float case of roundForImpreciseConversion (numeric_limits<float>::min() is positive, and bounds checking isn't meaningful here).

17:00 Changeset [115386] by shawnsingh@chromium.org

Source/WebCore: Re-implement backFaceVisibility to avoid dealing with perspective w < 0 problem
https://bugs.webkit.org/show_bug.cgi?id=84059

Reviewed by Adrienne Walker.

Unit tests added to CCMathUtilTest.cpp.

This patch changes the implementation of backFaceIsVisible so that
it doesn't need to deal with the w < 0 problem from of perspective
projections. Instead, it is equally correct to simply use the
inverse-transpose of the matrix, and quickly check the third row,
third column element. Additionally, it was appropriate to move
this function into TransformationMatrix itself.

Making this change fixes some issues related to disappearing
layers in Chromium (where the compositor incorrectly thought that
the back face was visible, and skipped the layer).

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

(WebCore::calculateVisibleLayerRect):
(WebCore::layerShouldBeSkipped):

  • platform/graphics/transforms/TransformationMatrix.cpp:

(WebCore::TransformationMatrix::isBackFaceVisible):
(WebCore):

  • platform/graphics/transforms/TransformationMatrix.h:

(TransformationMatrix):

Source/WebKit/chromium: [chromium] re-implement backFaceVisibility to avoid dealing with perspective w<0 problem
https://bugs.webkit.org/show_bug.cgi?id=84059

Reviewed by Adrienne Walker.

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

(WebCore):
(WebCore::TEST):

16:03 Changeset [115385] by mrobinson@webkit.org

[Cairo] Wrap cairo surfaces in a class when storing native images
https://bugs.webkit.org/show_bug.cgi?id=83611

Reviewed by Alejandro G. Castro.

Source/WebCore:

No new tests. This is just a refactoring. This shouldn't change
functionality.

Added class that wraps Cairo images surfaces to serve as the "native image"
type for the Cairo platform. This will allow the addition of caching resampled
images as well as versions of the image for non-image Cairo backends. Also
split out BitmapImageCairo.cpp from ImageCairo.cpp since these classes are
defined in two headers.

  • GNUmakefile.list.am: Added new files.
  • platform/graphics/BitmapImage.h: Added a factory method that takes an image surface to

reduce code churn.

  • platform/graphics/ImageSource.h: NativeImagePtr is now NativeImageCairo*.

(WebCore):

  • platform/graphics/cairo/BitmapImageCairo.cpp: Copied from Source/WebCore/platform/graphics/cairo/ImageCairo.cpp.
  • platform/graphics/cairo/GraphicsContext3DCairo.cpp: Updated to reflect use of NativeImageCairo.
  • platform/graphics/cairo/ImageCairo.cpp: Ditto.
  • platform/graphics/cairo/NativeImageCairo.cpp: Added.
  • platform/graphics/cairo/NativeImageCairo.h: Added.
  • platform/graphics/cairo/PatternCairo.cpp: Updated to reflect use of NativeImageCairo.
  • platform/graphics/gtk/ImageGtk.cpp: Ditto.
  • platform/image-decoders/cairo/ImageDecoderCairo.cpp: Ditto.

Source/WebKit/efl:

  • ewk/ewk_history.cpp: Updated to reflect addition of NativeImageCario.
  • ewk/ewk_settings.cpp: Ditto.

Source/WebKit2:

  • Shared/gtk/ArgumentCodersGtk.cpp: Updated to reflect the addition of NativeImageCairo.
15:57 Changeset [115384] by leviw@chromium.org

Fixing roundForImpreciseConversion for the float case with template specialization.

15:53 Changeset [115383] by mhahnenberg@apple.com

[GTK] Massive media tests failures since r115288
https://bugs.webkit.org/show_bug.cgi?id=84950

Reviewed by Filip Pizlo.

No new tests.

Since the "cross-platform" WebCore timer is at too high of a level in terms of the layers
of WebKit for JSC to use, we are not currently able to use it in JSC, thus only those
platforms that support CoreFoundation can currently take advantage of the new and improved
GC activity timer. We've restored the old code paths for those platforms that don't have
CF so that they will at least have the same behavior as before when calling garbageCollectSoon.

  • bindings/js/GCController.cpp: Added back the old WebCore timer along with some

if-defs that do away with the WebCore timer on platforms that support CoreFoundation.
(WebCore::GCController::GCController):
(WebCore::GCController::garbageCollectSoon):
(WebCore):
(WebCore::GCController::gcTimerFired):

  • bindings/js/GCController.h: Ditto.

(GCController):

15:42 Changeset [115382] by tomz@codeaurora.org

Unreviewed gardening

  • platform/qt/test_expectations.txt:
15:36 Changeset [115381] by adamk@chromium.org

Don't include V8Proxy.h in ScriptValue.h when V8GCController is all that's required
https://bugs.webkit.org/show_bug.cgi?id=84986

Reviewed by Kentaro Hara.

This makes it easier to include ScriptValue.h since it greatly reduces
that header's dependencies.

  • bindings/v8/ScriptValue.h: Changed to include just V8GCController.h and

removed comment which is redundant with explicit V8GCController references nearby.

15:34 Changeset [115380] by commit-queue@webkit.org

Source/WebCore: Fix missing sourceState change on MEDIA_ERR_SOURCE_NOT_SUPPORTED error.
https://bugs.webkit.org/show_bug.cgi?id=84996

Patch by Aaron Colwell <acolwell@chromium.org> on 2012-04-26
Reviewed by Eric Carlson.

No new tests. http/tests/media/media-source/webm/video-media-source-errors.html was updated to verify that webkitSourceState is always SOURCE_CLOSED when the onerror event fires.

  • html/HTMLMediaElement.cpp:

(WebCore::HTMLMediaElement::noneSupported):

LayoutTests: Updating MediaSource layout test to verify that webkitSourceState is always
SOURCE_CLOSED when an error occurs.

Minor style fixes and informative console messages were also added.
https://bugs.webkit.org/show_bug.cgi?id=84996

Patch by Aaron Colwell <acolwell@chromium.org> on 2012-04-26
Reviewed by Eric Carlson.

  • http/tests/media/media-source/webm/video-media-source-errors-expected.txt:
  • http/tests/media/media-source/webm/video-media-source-errors.html:
15:26 Changeset [115379] by antti@apple.com

Cache parsed stylesheets
https://bugs.webkit.org/show_bug.cgi?id=85004

Reviewed by Andreas Kling.

CSS parsing is 1-2% of WebKit CPU usage on average pages, more on sites with large stylesheets.
We currently reparse all stylesheets from source text when they are encountered again. In many
browsing scenarios we can eliminate lot of this by caching the parsed stylesheets. For example
it is very common for subpages of a site to share the stylesheets.

This patch enables memory caching for stylesheet loaded using the <link> element. Only stylesheets
that have no import rules are cacheable for now.

Cached stylesheets are copied on restore so there is no sharing (and no memory wins) yet.
In the future we will also be able to share the actual data structures between pages for
significant memory savings.

After browsing around for a while <5% of the memory cache data was in parsed stylesheets so this
does not bloat the cache significantly.

  • css/CSSStyleSheet.cpp:

(WebCore):
(WebCore::StyleSheetInternal::estimatedSizeInBytes):

Estimate stylesheet size so we can handle decoded data pruning correctly.

  • css/CSSStyleSheet.h:

(StyleSheetInternal):

  • css/StylePropertySet.cpp:

(WebCore::StylePropertySet::averageSizeInBytes):
(WebCore):

  • css/StylePropertySet.h:

(StylePropertySet):

  • css/StyleRule.cpp:

(WebCore::StyleRule::averageSizeInBytes):
(WebCore):

  • css/StyleRule.h:

(StyleRule):

  • html/HTMLLinkElement.cpp:

(WebCore::HTMLLinkElement::setCSSStyleSheet):

Save and restore parsed stylesheet. The current CSS parse context must be identical to the cached
stylesheets. This ensures that the parsing results would be identical.

  • loader/cache/CachedCSSStyleSheet.cpp:

(WebCore):
(WebCore::CachedCSSStyleSheet::destroyDecodedData):
(WebCore::CachedCSSStyleSheet::restoreParsedStyleSheet):
(WebCore::CachedCSSStyleSheet::saveParsedStyleSheet):

  • loader/cache/CachedCSSStyleSheet.h:


The parsed stylesheet cache is considered decoded data, similar to the image bitmaps. It uses the
same mechanism for pruning.

(WebCore):
(CachedCSSStyleSheet):

15:25 Changeset [115378] by mrobinson@webkit.org

[Gtk] WebKitGTK+ 1.8.1 fails to build when disabling HTML Video feature
https://bugs.webkit.org/show_bug.cgi?id=84838

Patch by Zan Dobersek <zandobersek@gmail.com> on 2012-04-26
Reviewed by Martin Robinson.

Wrap WebCore objects and functions in GObject property setters and getters
with conditional guards (if present) to avoid compilation errors.

No new tests - changes covered by existing bindings tests.

  • bindings/scripts/CodeGeneratorGObject.pm:

(GenerateProperty):
(GenerateProperties):

  • bindings/scripts/test/GObject/WebKitDOMTestInterface.cpp: Rebaseline.

(webkit_dom_test_interface_set_property):
(webkit_dom_test_interface_get_property):

  • bindings/scripts/test/GObject/WebKitDOMTestSerializedScriptValueInterface.cpp: Ditto.

(webkit_dom_test_serialized_script_value_interface_get_property):

15:10 Changeset [115377] by dpranke@chromium.org

nrwt: clean up server process, webkit driver so chromium can use it
https://bugs.webkit.org/show_bug.cgi?id=84910

Reviewed by Ojan Vafai.

This change moves the "sample a process" logic out of
server_process.py and into a port-specific class (where really
only the mac has an implementation), and also preemptively kills
DRT when a test times out in WebKitDriver (rather than waiting through the
additional delays caused by calling stop() when we would want to
restart the driver generically in worker.py).

These changes will make it possible for the chromium port to
switch over to the stock WebKitDriver implementation, at least
on mac and linux.

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

(Port.sample_process):

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

(MacPort.sample_process):

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

(test_helper_fails_to_stop):
(test_sample_process):
(test_sample_process.logging_run_command):
(test_sample_process_throws_exception):
(test_sample_process_throws_exception.throwing_run_command):

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

(ServerProcess._log):
(ServerProcess._handle_timeout):
(ServerProcess.stop):
(ServerProcess):
(ServerProcess.kill): Here we add a method to immediately stop
the process rather than trying to shut it down cleanly.

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

(TestServerProcess.test_broken_pipe):

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

(WebKitDriver.run_test): Fix an issue where we weren't passing
along any per-test args (only needed for Chromium, but still).
Also, kill the driver immediately if we time out a test.

15:03 Changeset [115376] by andersca@apple.com

A TileCache should never outlive its WebTileCacheLayer
https://bugs.webkit.org/show_bug.cgi?id=85008
<rdar://problem/11141172>

Reviewed by Andreas Kling.

Since WebTileCacheLayer objects can be destroyed on the scrolling thread, make sure to delete the TileCache layer
when the PlatformCALayer is destroyed. This fixes a crash when the tile revalidation timer fires after the WebTileCacheLayer has
been destroyed, but before the TileCache itself has been destroyed.

  • platform/graphics/ca/mac/PlatformCALayerMac.mm:

(PlatformCALayer::~PlatformCALayer):

  • platform/graphics/ca/mac/WebTileCacheLayer.h:
  • platform/graphics/ca/mac/WebTileCacheLayer.mm:

(-[WebTileCacheLayer dealloc]):
(-[WebTileCacheLayer invalidate]):

14:56 Changeset [115375] by benjamin@webkit.org

Use String instead of RefPtr<StringImpl> for the cache of ObjcClass
https://bugs.webkit.org/show_bug.cgi?id=84932

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-04-26
Reviewed by Andreas Kling.

The cache with RefPtr<StringImpl*> was added with r115007.

This patch aims at making the code a little easier to read. By using String,
one would not need to know the Traits for StringImpl.

  • bridge/objc/objc_class.h:

(ObjcClass):

14:53 Changeset [115374] by haraken@chromium.org

[V8] Pass Isolate to wrap() in SerializedScriptValue.cpp
https://bugs.webkit.org/show_bug.cgi?id=84923

Reviewed by Nate Chapin.

The objective is to pass Isolate around in V8 bindings.
In this bug we pass Isolate to wrap() in SerializedScriptValue.cpp.

No tests. No change in behavior.

  • bindings/v8/SerializedScriptValue.cpp:
14:51 Changeset [115373] by commit-queue@webkit.org

[chromium] Complex text support for Android.
https://bugs.webkit.org/show_bug.cgi?id=84431

Complex text support is different on Android from other platforms.
There are 2 kinds of font on Android: system fonts and fallback fonts.
System fonts have a name, and are accessible in FontPlatformData.
Fallback fonts do not have specific names, so they are not accessible
from WebKit directly. There is one font for each script support.
To feed Harfbuzz, use a trick to get correct SkTypeface based on script.

Patch by Hao Zheng <zhenghao@chromium.org> on 2012-04-26
Reviewed by Tony Chang.

No new tests. Current tests are runnable on Android.

  • platform/graphics/FontCache.h:

(FontCache): Make ComplexTextController friend of FontCache on Android.

  • platform/graphics/chromium/FontCacheAndroid.cpp:

(WebCore::FontCache::createFontPlatformData):

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.cpp:

(WebCore::ComplexTextController::getComplexFontPlatformData):
(WebCore):
(WebCore::ComplexTextController::setupFontForScriptRun):

  • platform/graphics/harfbuzz/ComplexTextControllerHarfBuzz.h:

(ComplexTextController):

14:40 Changeset [115372] by haraken@chromium.org

[V8] Pass Isolate to wrap() (Part2)
https://bugs.webkit.org/show_bug.cgi?id=84922

Reviewed by Nate Chapin.

The objective is to pass Isolate around in V8 bindings.
This patch passes Isolate to wrap() in custom bindings.

No tests. No change in behavior.

  • bindings/v8/custom/V8LocationCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8NamedNodeMapCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8SVGPathSegCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8StyleSheetCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8Uint16ArrayCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8Uint32ArrayCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8Uint8ArrayCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8Uint8ClampedArrayCustom.cpp:

(WebCore::toV8):

14:37 Changeset [115371] by rniwa@webkit.org

Remove Chromium test expectation after r115244.

  • platform/chromium/test_expectations.txt:
14:36 Changeset [115370] by dgrogan@chromium.org

Merge 113818 - Notify observers of WorkerRunLoop stopping before the V8 isolate dies.
https://bugs.webkit.org/show_bug.cgi?id=83104

Source/WebCore:

PlatformSupport::didStopWorkerRunLoop ultimately causes
~V8AbstractEventListener to call
v8::Local<v8::Object>::New(m_listener) after the V8 isolate has been
disposed, which manifests as a crash in V8.

The current code in trunk runs this at shutdown:
1) removeAllDOMObjects()
2) dispose of V8
3) didStopWorkerRunLoop() <-- problem

This patch changes the order to be:
1) removeAllDOMObjects()
2) didStopWorkerRunLoop()
3) dispose of V8

We put didStopWorkerRunLoop after removeAllDOMObjects because we don't
want chromium code that runs on a webcore worker to run after it
receives the didStopWorkerRunLoop signal. The destructors of some IDB
objects are run by removeAllDOMObjects, so putting
didStopWorkerRunLoop before removeAllDOMObjects would violate that
constraint.

It's possible that there's a lower layer fix available in V8 or the
bindings.

Reviewed by David Levin.

Test: storage/indexeddb/pending-version-change-on-exit.html

  • bindings/v8/WorkerScriptController.cpp:

(WebCore::WorkerScriptController::~WorkerScriptController):
New location of didStopWorkerRunLoop. removeAllDOMObjects and V8
disposal are called here, to run something between them it also has
to go here.

  • workers/WorkerThread.cpp:

(WebCore::WorkerThread::workerThread): Old location of
didStopWorkerRunLoop.

LayoutTests:

Reviewed by David Levin.

  • storage/indexeddb/pending-version-change-on-exit-expected.txt: Added.
  • storage/indexeddb/pending-version-change-on-exit.html: Added.
  • storage/indexeddb/resources/pending-version-change-on-exit.js: Added.

(test.request.onsuccess.request.onblocked):
(test.request.onsuccess):
(test):

TBR=dgrogan@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10232019

14:35 Changeset [115369] by jonlee@apple.com

[WK2] AlternativeTextClient leaks when the page is destroyed
https://bugs.webkit.org/show_bug.cgi?id=84307
<rdar://problem/11328431>

Reviewed by Enrica Casucci.

Source/WebCore:

  • page/AlternativeTextClient.h: Add pageDestroyed() call, as in EditorClient.

(AlternativeTextClient):

  • page/Page.cpp:

(WebCore::Page::~Page): When the page is destroyed, notify the client if it exists.

Source/WebKit/mac:

  • WebCoreSupport/WebAlternativeTextClient.h: Implement pageDestroyed(), as in EditorClient.

(WebAlternativeTextClient):

  • WebCoreSupport/WebAlternativeTextClient.mm:

(WebAlternativeTextClient::pageDestroyed): Deletes itself.

Source/WebKit2:

  • WebProcess/WebCoreSupport/WebAlternativeTextClient.h: Implement pageDestroyed(), as in EditorClient.

(WebAlternativeTextClient):

  • WebProcess/WebCoreSupport/mac/WebAlternativeTextClient.cpp:

(WebKit::WebAlternativeTextClient::pageDestroyed): Deletes itself.

14:29 Changeset [115368] by jer.noble@apple.com

Full Screen mode does not preserve CALayer ordering after exiting.
https://bugs.webkit.org/show_bug.cgi?id=83931

Reviewed by Eric Carlson.

Further corrections to r114567. When swapping view for otherView, give the correct
relative view to -[NSView addSubview:positioned:relativeTo:].

Source/WebKit/mac:

  • WebView/WebFullScreenController.mm:

(-[WebFullScreenController _swapView:with:]):

Source/WebKit2:

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController _swapView:with:]):

14:27 Changeset [115367] by tomz@codeaurora.org

Integrate IETC CSS : multicolumn tests
https://bugs.webkit.org/show_bug.cgi?id=84784

Patch by Dave Tharp <dtharp@codeaurora.org> on 2012-04-26
Reviewed by Beth Dakin.

Adding IETC CSS Multicolumn tests along with corresponding reference tests.
Failures are noted in port-specific test_expectations.txt.

  • ietestcenter/css3/multicolumn/column-block-formatting-context-001-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-block-formatting-context-001.htm: Added.
  • ietestcenter/css3/multicolumn/column-containing-block-001-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-containing-block-001.htm: Added.
  • ietestcenter/css3/multicolumn/column-containing-block-002-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-containing-block-002.htm: Added.
  • ietestcenter/css3/multicolumn/column-containing-block-003-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-containing-block-003.htm: Added.
  • ietestcenter/css3/multicolumn/column-filling-001-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-filling-001.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-001-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-001.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-002-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-002.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-003-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-003.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-004-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-004.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-005-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-005.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-006-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-006.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-007-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-007.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-008-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-008.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-009-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-009.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-010-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-010.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-012-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-012.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-013-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-013.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-014-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-014.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-015-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-applies-to-015.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-negative-001-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-negative-001.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-percentage-001-expected.htm: Added.
  • ietestcenter/css3/multicolumn/column-width-percentage-001.htm: Added.
  • platform/chromium/test_expectations.txt:
  • platform/efl/test_expectations.txt:
  • platform/gtk/test_expectations.txt:
  • platform/mac/test_expectations.txt:
  • platform/qt/test_expectations.txt:
14:25 Changeset [115366] by haraken@chromium.org

[V8] Pass Isolate to wrap() (Part1)
https://bugs.webkit.org/show_bug.cgi?id=84921

Reviewed by Nate Chapin.

The objective is to pass Isolate around in V8 bindings.
This patch passes Isolate to wrap() in custom bindings.

No tests. No change in behavior.

  • bindings/v8/custom/V8BlobCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8CSSRuleCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8CSSStyleSheetCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8CSSValueCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8DOMStringMapCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8DOMTokenListCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8DataViewCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8EventCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8Float32ArrayCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8Float64ArrayCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8HTMLCollectionCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8ImageDataCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8Int16ArrayCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8Int32ArrayCustom.cpp:

(WebCore::toV8):

  • bindings/v8/custom/V8Int8ArrayCustom.cpp:

(WebCore::toV8):

14:24 Changeset [115365] by rakuco@webkit.org

[EFL] Unreviewed gardening.

Update expectations in security/ after r115294.

  • platform/efl/security/block-test-expected.txt:
  • platform/efl/security/block-test-no-port-expected.txt:
14:24 Changeset [115364] by leviw@chromium.org

Continuing to use roundForImpreciseConversion when subpixel-layout is disabled, but Lengths are still treated as floats.

14:21 Changeset [115363] by fpizlo@apple.com

DFG ARMv7 backend should optimize Float32 arrays
https://bugs.webkit.org/show_bug.cgi?id=85000
<rdar://problem/10652827>

Reviewed by Gavin Barraclough.

  • assembler/ARMv7Assembler.h:

(ARMv7Assembler):
(JSC::ARMv7Assembler::flds):
(JSC::ARMv7Assembler::fsts):
(JSC::ARMv7Assembler::vcvtds):
(JSC::ARMv7Assembler::vcvtsd):

  • assembler/MacroAssemblerARMv7.h:

(JSC::MacroAssemblerARMv7::loadFloat):
(MacroAssemblerARMv7):
(JSC::MacroAssemblerARMv7::storeFloat):
(JSC::MacroAssemblerARMv7::convertFloatToDouble):
(JSC::MacroAssemblerARMv7::convertDoubleToFloat):

  • bytecode/PredictedType.h:

(JSC::isActionableFloatMutableArrayPrediction):

  • dfg/DFGNode.h:

(JSC::DFG::Node::shouldSpeculateFloat32Array):

14:15 Changeset [115362] by dglazkov@chromium.org

[Chromium] Remove expectation of failure for a fixed test.

  • platform/chromium/test_expectations.txt: Now passing.
14:12 Changeset [115361] by eric.carlson@apple.com

Unreviewed gardening, remove tests that now pass from test_expectations.txt

  • platform/mac/test_expectations.txt:
14:10 Changeset [115360] by rniwa@webkit.org

Add a test for crash in DOMSelection::deleteFromDocument
https://bugs.webkit.org/show_bug.cgi?id=84991

Reviewed by Alexey Proskuryakov.

Add a test for the bug 44153 (fixed in r65587).

  • editing/selection/deleteFromDocument-after-document-open-crash-expected.txt: Added.
  • editing/selection/deleteFromDocument-after-document-open-crash.html: Added.
14:08 Changeset [115359] by lforschler@apple.com

Versioning.

14:07 Changeset [115358] by benjamin@webkit.org

ObjcClass::methodsNamed() can leak if buffer is dynamically allocated
https://bugs.webkit.org/show_bug.cgi?id=84668

Patch by Benjamin Poulain <bpoulain@apple.com> on 2012-04-26
Reviewed by Alexey Proskuryakov.

Source/WebCore:

Change ObjcClass::methodsNamed() to be based on a vector instead of managing
the memory manually.

Tests: platform/mac/plugins/bindings-objc-long-method-name.html

platform/mac/plugins/bindings-objc-method-name-conversion.html

  • bridge/objc/objc_class.mm:

(Bindings):
(JSC::Bindings::convertJSMethodNameToObjc):
(JSC::Bindings::ObjcClass::methodsNamed):

Tools:

Extend ObjCPlugin to support the new layout tests of the Objective-C bridge.

  • DumpRenderTree/mac/ObjCPlugin.m:

(+[ObjCPlugin isSelectorExcludedFromWebScript:]):
(+[ObjCPlugin webScriptNameForSelector:]):
(-[ObjCPlugin methodMappedToLongName]):
(-[ObjCPlugin testConversionColon:]):
(-[ObjCPlugin _:]):

LayoutTests:

Extend the test coverage to accessor with very long name. Add coverage for the
JavaScript to Objective-C method name conversion.

  • platform/mac/plugins/bindings-objc-long-method-name-expected.txt: Added.
  • platform/mac/plugins/bindings-objc-long-method-name.html: Added.
  • platform/mac/plugins/bindings-objc-method-name-conversion-expected.txt: Added.
  • platform/mac/plugins/bindings-objc-method-name-conversion.html: Added.
14:05 Changeset [115357] by lforschler@apple.com

New Tag.

14:01 Changeset [115356] by dglazkov@chromium.org

[Chromium] media/video-currentTime-set.html is flaky
https://bugs.webkit.org/show_bug.cgi?id=85003

  • platform/chromium/test_expectations.txt: Added expectation of flakiness.
13:58 Changeset [115355] by jamesr@google.com

[Chromium] Single buffered canvas layers with the threaded compositor
https://bugs.webkit.org/show_bug.cgi?id=80540

Patch by Justin Novosad <junov@chromium.org> on 2012-04-26
Reviewed by James Robinson.

Source/WebCore:

Tests:
CCLayerTreeHostTestWriteLayersRedraw
CCLayerTreeHostTestWriteLayersAfterVisible
Canvas2DLayerChromiumTest.testFullLifecycleSingleThreadDeferred
Canvas2DLayerChromiumTest.testFullLifecycleThreadDeferred
CCSchedulerTest.VisibilitySwitchWithTextureAcquisition
CCSchedulerTest.TextureAcquisitionCollision

Disable double buffering and rate limiting on accelerated canvas
when the threaded compositor and deferred canvas are enabled.
Concurrent access to the layer texture by the main renderer thread and
the compositor thread is avoided by enforcing a lock. The state of the
lock is maintained by CCSchedulerStateMachine. Write access by the main
thread is acquired through a signal round trip to the compositor thread,
which may block the main thread in the event that one or more committed
layers need to be protected until the compositor completes the requested
draw. Draws on the impl thread are cancelled if the main thread has
obtained write access to the texture. The write access is relinquished
by the main thread upon commit completion. The scheduler state machine
is responsible for preventing the texture lock from causing deadlocks by
detecting and resolving problematic states.

  • platform/graphics/chromium/Canvas2DLayerChromium.cpp:

(WebCore::Canvas2DLayerChromium::create):
(WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
(WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
(WebCore::Canvas2DLayerChromium::drawingIntoImplThreadTexture):
(WebCore):
(WebCore::Canvas2DLayerChromium::setTextureId):
(WebCore::Canvas2DLayerChromium::setNeedsDisplayRect):
(WebCore::Canvas2DLayerChromium::update):
(WebCore::Canvas2DLayerChromium::layerWillDraw):
(WebCore::Canvas2DLayerChromium::pushPropertiesTo):

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

(WebCore::CCLayerTreeHost::acquireLayerTextures):
(WebCore):

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

(CCLayerTreeHost):

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

(CCProxy):

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

(WebCore::CCScheduler::setMainThreadNeedsLayerTextures):
(WebCore):
(WebCore::CCScheduler::processScheduledActions):

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

(CCSchedulerClient):
(CCScheduler):

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

(WebCore::CCSchedulerStateMachine::CCSchedulerStateMachine):
(WebCore::CCSchedulerStateMachine::drawSuspendedUntilCommit):
(WebCore):
(WebCore::CCSchedulerStateMachine::scheduledToDraw):
(WebCore::CCSchedulerStateMachine::shouldDraw):
(WebCore::CCSchedulerStateMachine::shouldAcquireLayerTexturesForMainThread):
(WebCore::CCSchedulerStateMachine::nextAction):
(WebCore::CCSchedulerStateMachine::updateState):
(WebCore::CCSchedulerStateMachine::setMainThreadNeedsLayerTextures):

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

(CCSchedulerStateMachine):

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

(WebCore::CCThreadProxy::CCThreadProxy):
(WebCore::CCThreadProxy::beginFrame):
(WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
(WebCore):
(WebCore::CCThreadProxy::acquireLayerTextures):
(WebCore::CCThreadProxy::acquireLayerTexturesForMainThreadOnImplThread):
(WebCore::CCThreadProxy::scheduledActionAcquireLayerTexturesForMainThread):

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

(CCThreadProxy):

  • platform/graphics/skia/ImageBufferSkia.cpp:

(WebCore):
(WebCore::AcceleratedDeviceContext::AcceleratedDeviceContext):
(WebCore::AcceleratedDeviceContext::prepareForDraw):
(AcceleratedDeviceContext):
(WebCore::createAcceleratedCanvas):
(WebCore::ImageBuffer::context):

Source/WebKit/chromium:

  • tests/CCLayerTreeHostTest.cpp:

(WTF::CCLayerTreeHostTest::AcquireLayerTextures):
(CCLayerTreeHostTest):
(WTF::CCLayerTreeHostTest::dispatchAcquireLayerTextures):
(WTF::TEST_F):
(WTF):
(CCLayerTreeHostTestWriteLayersRedraw):
(WTF::CCLayerTreeHostTestWriteLayersRedraw::CCLayerTreeHostTestWriteLayersRedraw):
(WTF::CCLayerTreeHostTestWriteLayersRedraw::beginTest):
(WTF::CCLayerTreeHostTestWriteLayersRedraw::drawLayersOnCCThread):
(WTF::CCLayerTreeHostTestWriteLayersRedraw::commitCompleteOnCCThread):
(WTF::CCLayerTreeHostTestWriteLayersRedraw::afterTest):
(CCLayerTreeHostTestWriteLayersAfterVisible):
(WTF::CCLayerTreeHostTestWriteLayersAfterVisible::CCLayerTreeHostTestWriteLayersAfterVisible):
(WTF::CCLayerTreeHostTestWriteLayersAfterVisible::beginTest):
(WTF::CCLayerTreeHostTestWriteLayersAfterVisible::commitCompleteOnCCThread):
(WTF::CCLayerTreeHostTestWriteLayersAfterVisible::afterTest):

  • tests/CCSchedulerTest.cpp:

(WebKitTests::TEST):
(WebKitTests):

  • tests/Canvas2DLayerChromiumTest.cpp:

(Canvas2DLayerChromiumTest::fullLifecycleTest):

13:53 Changeset [115354] by robert@webkit.org

Unreviewed, rolling out r115342.
http://trac.webkit.org/changeset/115342

r115340 was rolled out

  • platform/qt/test_expectations.txt:
13:50 Changeset [115353] by dglazkov@chromium.org

Unreviewed, rolling out r115349.
http://trac.webkit.org/changeset/115349

Patch that required this change was reverted.

  • platform/chromium/test_expectations.txt:
13:47 Changeset [115352] by dglazkov@chromium.org

Unreviewed, rolling out r115340.
http://trac.webkit.org/changeset/115340
https://bugs.webkit.org/show_bug.cgi?id=83048

Does not work with Windows.

Tools:

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._run_reftest):

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(copy_file):

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

(Port._parse_reftest_list):
(Port.reference_files):
(Port._real_tests):

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

(PortTest.test_reference_files):

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

(ChromiumDriverTest.test_write_command_and_read_line):

LayoutTests:

  • css2.1/20110323/abspos-containing-block-initial-004-ref-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-004-ref-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-004a-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-004a-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-004b-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-004b-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-004c-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-004c-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-004d-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-004d-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-004e-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-004e-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-004f-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-004f-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-005-ref-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-005-ref-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-005a-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-005a-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-005b-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-005b-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-005c-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-005c-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-005d-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-005d-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-007-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-007-ref-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-009-ref-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-009-ref-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-009a-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-009a-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-009b-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-009b-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-009e-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-009e-expected.txt: Added.
  • css2.1/20110323/abspos-containing-block-initial-009f-expected.png: Added.
  • css2.1/20110323/abspos-containing-block-initial-009f-expected.txt: Added.
  • css2.1/20110323/abspos-non-replaced-width-margin-000-expected.txt: Added.
  • css2.1/20110323/abspos-replaced-width-margin-000-expected.txt: Added.
  • css2.1/20110323/background-016.htm: Removed.
  • css2.1/20110323/block-replaced-width-001.htm: Added.
  • css2.1/20110323/empty-inline-001.htm:
  • css2.1/20110323/reftest.list: Removed.
  • css2.1/reference/ref-filled-green-100px-square.htm: Removed.
  • css2.1/reference/ref-filled-green-100px-square.xht: Removed.
  • css2.1/reference/ref-if-there-is-no-red.htm: Removed.
  • css2.1/reference/ref-if-there-is-no-red.xht: Removed.
  • css2.1/reference/ref-nothing-below.htm: Removed.
  • css2.1/reference/ref-nothing-below.xht: Removed.
  • css2.1/reference/ref-this-text-should-be-green.htm: Removed.
  • css2.1/reference/ref-this-text-should-be-green.xht: Removed.
  • platform/chromium-linux/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Added.
  • platform/chromium-linux/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.png: Added.
  • platform/chromium-linux/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Added.
  • platform/chromium-linux/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.png: Added.
  • platform/chromium-linux/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Added.
  • platform/chromium-linux/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Added.
  • platform/chromium-linux/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Added.
  • platform/chromium-linux/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Added.
  • platform/chromium-linux/css2.1/20110323/empty-inline-001-expected.png: Added.
  • platform/chromium-mac-leopard/css2.1/20110323/block-replaced-width-001-expected.png: Added.
  • platform/chromium-mac-leopard/css2.1/20110323/empty-inline-001-expected.png: Added.
  • platform/chromium-mac-snowleopard/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Added.
  • platform/chromium-mac-snowleopard/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Added.
  • platform/chromium-mac-snowleopard/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Added.
  • platform/chromium-mac-snowleopard/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Added.
  • platform/chromium-mac-snowleopard/css2.1/20110323/block-replaced-width-001-expected.png: Added.
  • platform/chromium-mac-snowleopard/css2.1/20110323/empty-inline-001-expected.png: Added.
  • platform/chromium-mac/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Added.
  • platform/chromium-mac/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Added.
  • platform/chromium-mac/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Added.
  • platform/chromium-mac/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Added.
  • platform/chromium-mac/css2.1/20110323/block-replaced-width-001-expected.png: Added.
  • platform/chromium-mac/css2.1/20110323/empty-inline-001-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/empty-inline-001-expected.png: Added.
  • platform/chromium-win/css2.1/20110323/empty-inline-001-expected.txt: Added.
  • platform/chromium/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.png: Added.
  • platform/chromium/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.png: Added.
  • platform/efl/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Added.
  • platform/efl/css2.1/20110323/abspos-containing-block-initial-007-expected.txt: Added.
  • platform/efl/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.png: Added.
  • platform/efl/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.txt: Added.
  • platform/efl/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Added.
  • platform/efl/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.txt: Added.
  • platform/efl/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Added.
  • platform/efl/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.txt: Added.
  • platform/efl/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Added.
  • platform/efl/css2.1/20110323/abspos-replaced-width-margin-000-expected.txt: Added.
  • platform/efl/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Added.
  • platform/efl/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.txt: Added.
  • platform/efl/css2.1/20110323/block-replaced-width-001-expected.png: Added.
  • platform/efl/css2.1/20110323/block-replaced-width-001-expected.txt: Added.
  • platform/gtk/css2.1/20110323/abspos-containing-block-initial-001-expected.txt: Added.
  • platform/gtk/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.txt: Added.
  • platform/gtk/css2.1/20110323/abspos-containing-block-initial-007-expected.txt: Added.
  • platform/gtk/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Added.
  • platform/gtk/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.txt: Added.
  • platform/gtk/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Added.
  • platform/gtk/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.txt: Added.
  • platform/gtk/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Added.
  • platform/gtk/css2.1/20110323/abspos-replaced-width-margin-000-expected.txt: Added.
  • platform/gtk/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Added.
  • platform/gtk/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.txt: Added.
  • platform/gtk/css2.1/20110323/block-replaced-width-001-expected.png: Added.
  • platform/mac-snowleopard/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Added.
  • platform/mac-snowleopard/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Added.
  • platform/mac-snowleopard/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Added.
  • platform/mac/css2.1/20110323/abspos-containing-block-initial-001-expected.txt: Added.
  • platform/mac/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.txt: Added.
  • platform/mac/css2.1/20110323/abspos-containing-block-initial-007-expected.txt: Added.
  • platform/mac/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.txt: Added.
  • platform/mac/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Added.
  • platform/mac/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.txt: Added.
  • platform/mac/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Added.
  • platform/mac/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.txt: Added.
  • platform/mac/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Added.
  • platform/mac/css2.1/20110323/abspos-replaced-width-margin-000-expected.txt: Added.
  • platform/mac/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Added.
  • platform/mac/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.txt: Added.
  • platform/mac/css2.1/20110323/block-replaced-width-001-expected.png: Added.
  • platform/mac/css2.1/20110323/block-replaced-width-001-expected.txt: Added.
  • platform/mac/css2.1/20110323/empty-inline-001-expected.png: Added.
  • platform/mac/css2.1/20110323/empty-inline-001-expected.txt: Added.
  • platform/qt/css2.1/20110323/abspos-containing-block-initial-001-expected.txt: Added.
  • platform/qt/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.txt: Added.
  • platform/qt/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Added.
  • platform/qt/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Added.
  • platform/qt/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.txt: Added.
  • platform/qt/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Added.
  • platform/qt/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Added.
  • platform/qt/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.txt: Added.
  • platform/qt/css2.1/20110323/block-replaced-width-001-expected.png: Added.
  • platform/qt/css2.1/20110323/block-replaced-width-001-expected.txt: Added.
  • platform/qt/css2.1/20110323/empty-inline-001-expected.txt: Added.
13:41 Changeset [115351] by haraken@chromium.org

[V8] Pass Isolate to toV8() in SerializedScriptValue.cpp
https://bugs.webkit.org/show_bug.cgi?id=84918

Reviewed by Nate Chapin.

This is the last step to pass Isolate around in
SerializedScriptValue.cpp. This patch passes Isolate
to toV8().

No tests. No change in behavior.

  • bindings/v8/SerializedScriptValue.cpp:
13:34 Changeset [115350] by haraken@chromium.org

[V8] Pass Isolate to wrapSlow()
https://bugs.webkit.org/show_bug.cgi?id=84919

Reviewed by Nate Chapin.

The objective is to pass Isolate around in V8 bindings.
In this bug, we pass Isolate to wrapSlow().

Test: bindings/scripts/test/TestObj.idl etc

  • bindings/scripts/CodeGeneratorV8.pm: Modified as described above.

(GenerateHeader):
(GenerateToV8Converters):

  • bindings/scripts/test/V8/V8Float64Array.cpp: Updated run-bindings-tests.

(WebCore::V8Float64Array::wrapSlow):

  • bindings/scripts/test/V8/V8Float64Array.h:

(V8Float64Array):
(WebCore::V8Float64Array::wrap):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:

(WebCore::V8TestActiveDOMObject::wrapSlow):

  • bindings/scripts/test/V8/V8TestActiveDOMObject.h:

(V8TestActiveDOMObject):
(WebCore::V8TestActiveDOMObject::wrap):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:

(WebCore::V8TestCustomNamedGetter::wrapSlow):

  • bindings/scripts/test/V8/V8TestCustomNamedGetter.h:

(V8TestCustomNamedGetter):
(WebCore::V8TestCustomNamedGetter::wrap):

  • bindings/scripts/test/V8/V8TestEventConstructor.cpp:

(WebCore::V8TestEventConstructor::wrapSlow):

  • bindings/scripts/test/V8/V8TestEventConstructor.h:

(V8TestEventConstructor):
(WebCore::V8TestEventConstructor::wrap):

  • bindings/scripts/test/V8/V8TestEventTarget.cpp:

(WebCore::V8TestEventTarget::wrapSlow):

  • bindings/scripts/test/V8/V8TestEventTarget.h:

(V8TestEventTarget):
(WebCore::V8TestEventTarget::wrap):

  • bindings/scripts/test/V8/V8TestInterface.cpp:

(WebCore::V8TestInterface::wrapSlow):

  • bindings/scripts/test/V8/V8TestInterface.h:

(V8TestInterface):
(WebCore::V8TestInterface::wrap):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:

(WebCore::V8TestMediaQueryListListener::wrapSlow):

  • bindings/scripts/test/V8/V8TestMediaQueryListListener.h:

(V8TestMediaQueryListListener):
(WebCore::V8TestMediaQueryListListener::wrap):

  • bindings/scripts/test/V8/V8TestNamedConstructor.cpp:

(WebCore::V8TestNamedConstructor::wrapSlow):

  • bindings/scripts/test/V8/V8TestNamedConstructor.h:

(V8TestNamedConstructor):
(WebCore::V8TestNamedConstructor::wrap):

  • bindings/scripts/test/V8/V8TestNode.cpp:

(WebCore::V8TestNode::wrapSlow):

  • bindings/scripts/test/V8/V8TestNode.h:

(V8TestNode):
(WebCore::V8TestNode::wrap):

  • bindings/scripts/test/V8/V8TestObj.cpp:

(WebCore::V8TestObj::wrapSlow):

  • bindings/scripts/test/V8/V8TestObj.h:

(V8TestObj):
(WebCore::V8TestObj::wrap):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:

(WebCore::V8TestSerializedScriptValueInterface::wrapSlow):

  • bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.h:

(V8TestSerializedScriptValueInterface):
(WebCore::V8TestSerializedScriptValueInterface::wrap):

13:17 Changeset [115349] by dglazkov@chromium.org

[Chromium] Remove expectation of a test failure after the test itself was removed in r115340.

  • platform/chromium/test_expectations.txt: Removed failure expectation.
13:15 Changeset [115348] by tonikitoo@webkit.org

[BlackBerry] properly disable DRAG_SUPPORT
https://bugs.webkit.org/show_bug.cgi?id=84952

Reviewed by Daniel Bates.
Patch by Antonio Gomes <agomes@rim.com>

.:

Add CMake build options to toggle DRAG_SUPPORT on/off,
and set its value for BlackBerry port.

  • Source/cmake/OptionsBlackBerry.cmake: Set it OFF by default.
  • Source/cmake/OptionsEFL.cmake: Set it ON by default.
  • Source/cmake/OptionsWinCE.cmake: Set it OFF by default.
  • Source/cmake/OptionsWindows.cmake: Set it ON by default.
  • Source/cmakeconfig.h.cmake:

Source/WTF:

  • wtf/Platform.h: Remove the line that disables drag support from here.
13:15 Changeset [115347] by tonikitoo@webkit.org

Add ScrollAnimatorBlackBerry as an extension to ScrollAnimatorNone
https://bugs.webkit.org/show_bug.cgi?id=84625

Reviewed by Anders Carlsson.
Patch by Antonio Gomes <agomes@rim.com>

Patch adds ScrollAnimatorBlackBerry class as an extension to of
ScrollAnimatorNone. The main goal here is extending the later to allow
overscrolling while the animation runs.

Once the animation finishes, the flag gets reseted and
ScrollableArea::constrainsScrollingtoContentEdge is set back to the value
it had before, so this method has to be explicitly called anytime it is wanted.

  • CMakeLists.txt:
  • platform/ScrollAnimator.h:

(WebCore::ScrollAnimator::animationWillStart):
(WebCore::ScrollAnimator::animationDidFinish):
(ScrollAnimator):

  • platform/ScrollAnimatorNone.cpp:

(WebCore):
(WebCore::ScrollAnimatorNone::scroll):
(WebCore::ScrollAnimatorNone::animationTimerFired):

  • platform/blackberry/ScrollAnimatorBlackBerry.cpp: Added.

(WebCore):
(WebCore::ScrollAnimator::create):
(WebCore::ScrollAnimatorBlackBerry::ScrollAnimatorBlackBerry):
(WebCore::ScrollAnimatorBlackBerry::animationWillStart):
(WebCore::ScrollAnimatorBlackBerry::animationDidFinish):
(WebCore::ScrollAnimatorBlackBerry::setDisableConstrainsScrollingToContentEdgeWhileAnimating):

  • platform/blackberry/ScrollAnimatorBlackBerry.h: Added.

(WebCore):
(ScrollAnimatorBlackBerry):

13:14 Changeset [115346] by tonikitoo@webkit.org

[BlackBerry] Add smooth_scrolling options to CMAKE and enable it for Blackberry
https://bugs.webkit.org/show_bug.cgi?id=84954

Reviewed by Daniel Bates.
Patch by Antonio Gomes <agomes@rim.com>

.:

  • Source/cmakeconfig.h.cmake: Make it possible for CMake builds to toggle SMOOTH_SCROLLING on/off
  • Source/cmake/OptionsBlackBerry.cmake: ... and set it to ON by defualt for the Blackberry port.

Source/WebCore:

Add the default scroll animator to the build system (ScrollAnimatorNone.cpp)

  • CMakeLists.txt:
13:14 Changeset [115345] by tonikitoo@webkit.org

Make ScrollView::scrollSize scrollbar-independent
https://bugs.webkit.org/show_bug.cgi?id=84873

Reviewed by Anders Carlsson.
Patch by Antonio Gomes <agomes@rim.com>

For ports that disable scrollbars creation at FrameView creation time
ScrollView::scrollSize should still return the scrollable ammount of
content (if any) if scrolling is not prohibted.

No new test, but it makes ScrollAnimator work for the BlackBerry port.

  • platform/ScrollView.cpp:

(WebCore::ScrollView::scrollSize):

13:01 Changeset [115344] by andersca@apple.com

The tile cache should know if a frame view can ever have scrollbars
https://bugs.webkit.org/show_bug.cgi?id=84888

Reviewed by Andreas Kling.

If a frame view has overflow: hidden on its body element we know that the document will most
likely never be scrolled. The tile cache should know about this so we can optimize.

  • page/FrameView.cpp:

(WebCore::FrameView::performPostLayoutTasks):

  • platform/graphics/TiledBacking.h:

(TiledBacking):

  • platform/graphics/ca/mac/TileCache.h:

(TileCache):

  • platform/graphics/ca/mac/TileCache.mm:

(WebCore::TileCache::TileCache):
(WebCore::TileCache::setCanHaveScrollbars):
(WebCore):

  • rendering/RenderLayerBacking.cpp:

(WebCore::RenderLayerBacking::RenderLayerBacking):

12:59 Changeset [115343] by commit-queue@webkit.org

Crash from removal of line break object after layout
https://bugs.webkit.org/show_bug.cgi?id=75461

Source/WebCore:

Patch by Ken Buchanan <kenrb@chromium.org> on 2012-04-26
Reviewed by David Hyatt.

There is a condition where objects can get removed from underneath
inlines while they represent a line break object in a RootInlineBox
of an ancestor block. If an intermediary inline has already been
marked as needing layout, then the line box will not get dirtied
because dirtyLineFromChangedChild thinks it already has been.

This patch introduces a new set in RenderObject to indicate whether
an ancestral line box corresponding to the current line has been
marked dirty or not. dirtyLinesFromChangedChild() can use this set
rather than m_selfNeedsLayout, so it will not be confused if a
container was dirtied for some other reason that did not affect the
line box.

  • rendering/RenderLineBoxList.cpp:

(WebCore::RenderLineBoxList::dirtyLinesFromChangedChild): Use the new
set rather than m_selfNeedsLayout in the container to determine
whether to continue propagating upward.

  • rendering/RenderObject.cpp:

(WebCore::RenderObject::s_ancestorLineboxDirtySet): Instantiate the
static member.
(WebCore::RenderObject::willBeDestroyed): Clears the object from the
linebox set when it is being destroyed.

  • rendering/RenderObject.h:

(WebCore::RenderObject::s_ancestorLineboxDirtySet): Added static
member set.
(WebCore::RenderObject::setNeedsLayout): Clears the
object from the linebox set when layout bits are getting cleared.
(WebCore::RenderObject::ancestorLineBoxDirty): Added.
(WebCore::RenderObject::setAncestorLineBoxDirty): Added.

LayoutTests:

Patch by Ken Buchanan <kenrb@chromium.org> on 2012-04-25
Reviewed by David Hyatt.

Test exercising crashing condition in bug 75461.

  • fast/block/line-layout/line-break-obj-removal-crash-expected.txt: Added
  • fast/block/line-layout/line-break-obj-removal-crash.html: Added
12:54 Changeset [115342] by robert@webkit.org

Update Qt expectations after r115340

css2.1/20110323/abspos-replaced-width-margin-000.htm fails the reftest due to
scrollbar artefacts.

Unreviewed.

  • platform/qt/test_expectations.txt:
12:48 Changeset [115341] by commit-queue@webkit.org

[EFL] Enable VIDEO_TRACK feature
https://bugs.webkit.org/show_bug.cgi?id=84830

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-04-26
Reviewed by Gustavo Noronha Silva.

.:

Enable VIDEO_TRACK feature by default on EFL port.

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

Source/WebCore:

Enable support for VIDEO_TRACK feature by default for EFL port.

  • UseJSC.cmake:
  • bindings/generic/RuntimeEnabledFeatures.cpp:

(WebCore):

Source/WebKit:

Enable VIDEO_TRACK feature by default for EFL port.

  • PlatformEfl.cmake:

Source/WebKit/efl:

Add functions on the ewk_view to toggle runtime support for text
tracks in HTML5 video.

  • ewk/ewk_view.cpp:

(_Ewk_View_Private_Data):
(_ewk_view_priv_new):
(ewk_view_setting_should_display_subtitles_get):
(ewk_view_setting_should_display_subtitles_set):
(ewk_view_setting_should_display_captions_get):
(ewk_view_setting_should_display_captions_set):
(ewk_view_setting_should_display_text_descriptions_get):
(ewk_view_setting_should_display_text_descriptions_set):

  • ewk/ewk_view.h:

Tools:

Enable VIDEO_TRACK by default on EFL port whenever build-webkit is
used.

  • Scripts/build-webkit:

LayoutTests:

Unskip test cases which requires the VIDEO_TRACK feature now that it
is enabled by default for EFL port.

  • platform/efl/Skipped:
12:21 Changeset [115340] by robert@webkit.org

new-webkit-run-tests: handle ref tests from the CSS test suite
https://bugs.webkit.org/show_bug.cgi?id=83048

Reviewed by Ryosuke Niwa.

Tools:

This allows new-run-webkit-tests to run reference tests created for the CSS test suite. It removes a big swathe
of pixel and text results that are no longer required now that the reference results are used and adds in the support
files from the CSS test suite that allow the ref tests to run.

  • Scripts/webkitpy/layout_tests/controllers/single_test_runner.py:

(SingleTestRunner._run_reftest): Assert that the reference result exists. Previously the test would

run without it and report a pass!

  • Scripts/webkitpy/layout_tests/controllers/test_result_writer.py:

(copy_file): ensure the output directory exists, it may not if the reference test is

contained in a folder that contains nothing but reference tests.

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

(Port.available_reference_files): Add as a helper. Handle embedded relative paths, e.g: some/../path
(Port.reference_files): Only return reference results in the reftest list that actually exist on

disk. Also, don't ignore potential reference results on disk that are not in the reftest list, and
don't ignore them just because we have a reftest list for the test's directory.

(Port._real_tests): ignore anything that looks like a test in a 'support' directory, this semantic

is used by the CSS 2.1 test suite.

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

(PortTest.test_reference_files_when_reftestlist_and_reference_file_present): Ensure that a test with a reference result

on disk but no reference result listed in the directory's reftest list picks up its reference result.

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

(ChromiumDriverTest.test_strip_uri): Test that some/test.html and some/other/../test.html are treated

as the same file.

LayoutTests:

Add some of the reference infrastructure from the CSS 2.1 test suite.

  • css2.1/20110323/abspos-containing-block-initial-004-ref-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004-ref-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004a-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004a-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004b-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004b-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004c-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004c-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004d-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004d-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004e-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004e-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004f-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-004f-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005-ref-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005-ref-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005a-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005a-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005b-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005b-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005c-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005c-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005d-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-005d-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-007-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-007-ref-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009-ref-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009-ref-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009a-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009a-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009b-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009b-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009e-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009e-expected.txt: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009f-expected.png: Removed.
  • css2.1/20110323/abspos-containing-block-initial-009f-expected.txt: Removed.
  • css2.1/20110323/abspos-non-replaced-width-margin-000-expected.txt: Removed.
  • css2.1/20110323/abspos-replaced-width-margin-000-expected.txt: Removed. These results are superseded by the reference results.
  • css2.1/20110323/background-016.htm: Added to prove the CSS test suite reference results work.
  • css2.1/20110323/block-replaced-width-001.htm: Removed. This test does not pass its reference result. It regressed at some point.
  • css2.1/20110323/empty-inline-001.htm: The test has been updated from the CSS test suite.
  • css2.1/20110323/reftest.list: Added.
  • css2.1/reference/ref-filled-green-100px-square.htm: Added.
  • css2.1/reference/ref-filled-green-100px-square.xht: Added.
  • css2.1/reference/ref-if-there-is-no-red.htm: Added.
  • css2.1/reference/ref-if-there-is-no-red.xht: Added.
  • css2.1/reference/ref-nothing-below.htm: Added.
  • css2.1/reference/ref-nothing-below.xht: Added.
  • css2.1/reference/ref-this-text-should-be-green.htm: Added.
  • css2.1/reference/ref-this-text-should-be-green.xht: Added.

Ref test infrastructure from the CSS test suite.

  • platform/chromium-linux/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Removed.
  • platform/chromium-linux/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.png: Removed.
  • platform/chromium-linux/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Removed.
  • platform/chromium-linux/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.png: Removed.
  • platform/chromium-linux/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Removed.
  • platform/chromium-linux/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/chromium-linux/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Removed.
  • platform/chromium-linux/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/chromium-linux/css2.1/20110323/empty-inline-001-expected.png: Removed.
  • platform/chromium-mac-leopard/css2.1/20110323/block-replaced-width-001-expected.png: Removed.
  • platform/chromium-mac-leopard/css2.1/20110323/empty-inline-001-expected.png: Removed.
  • platform/chromium-mac-snowleopard/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Removed.
  • platform/chromium-mac-snowleopard/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Removed.
  • platform/chromium-mac-snowleopard/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Removed.
  • platform/chromium-mac-snowleopard/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Removed.
  • platform/chromium-mac-snowleopard/css2.1/20110323/block-replaced-width-001-expected.png: Removed.
  • platform/chromium-mac-snowleopard/css2.1/20110323/empty-inline-001-expected.png: Removed.
  • platform/chromium-mac/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Removed.
  • platform/chromium-mac/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Removed.
  • platform/chromium-mac/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Removed.
  • platform/chromium-mac/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Removed.
  • platform/chromium-mac/css2.1/20110323/block-replaced-width-001-expected.png: Removed.
  • platform/chromium-mac/css2.1/20110323/empty-inline-001-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/empty-inline-001-expected.png: Removed.
  • platform/chromium-win/css2.1/20110323/empty-inline-001-expected.txt: Removed.
  • platform/chromium/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.png: Removed.
  • platform/chromium/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.png: Removed.
  • platform/efl/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Removed.
  • platform/efl/css2.1/20110323/abspos-containing-block-initial-007-expected.txt: Removed.
  • platform/efl/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.png: Removed.
  • platform/efl/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.txt: Removed.
  • platform/efl/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Removed.
  • platform/efl/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.txt: Removed.
  • platform/efl/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/efl/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.txt: Removed.
  • platform/efl/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Removed.
  • platform/efl/css2.1/20110323/abspos-replaced-width-margin-000-expected.txt: Removed.
  • platform/efl/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/efl/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.txt: Removed.
  • platform/efl/css2.1/20110323/block-replaced-width-001-expected.png: Removed.
  • platform/efl/css2.1/20110323/block-replaced-width-001-expected.txt: Removed.
  • platform/gtk/css2.1/20110323/abspos-containing-block-initial-001-expected.txt: Removed.
  • platform/gtk/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.txt: Removed.
  • platform/gtk/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Removed.
  • platform/gtk/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/gtk/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.txt: Removed.
  • platform/gtk/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Removed.
  • platform/gtk/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/gtk/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.txt: Removed.
  • platform/gtk/css2.1/20110323/block-replaced-width-001-expected.png: Removed.
  • platform/gtk/css2.1/20110323/block-replaced-width-001-expected.txt: Removed.
  • platform/gtk/css2.1/20110323/empty-inline-001-expected.txt: Removed.
  • platform/mac-snowleopard/css2.1/20110323/abspos-containing-block-initial-001-expected.png: Removed.
  • platform/mac-snowleopard/css2.1/20110323/abspos-containing-block-initial-007-expected.png: Removed.
  • platform/mac-snowleopard/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Removed.
  • platform/mac/css2.1/20110323/abspos-containing-block-initial-001-expected.txt: Removed.
  • platform/mac/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.txt: Removed.
  • platform/mac/css2.1/20110323/abspos-containing-block-initial-007-expected.txt: Removed.
  • platform/mac/css2.1/20110323/abspos-containing-block-initial-007-ref-expected.txt: Removed.
  • platform/mac/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Removed.
  • platform/mac/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.txt: Removed.
  • platform/mac/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/mac/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.txt: Removed.
  • platform/mac/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Removed.
  • platform/mac/css2.1/20110323/abspos-replaced-width-margin-000-expected.txt: Removed.
  • platform/mac/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/mac/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.txt: Removed.
  • platform/mac/css2.1/20110323/block-replaced-width-001-expected.png: Removed.
  • platform/mac/css2.1/20110323/block-replaced-width-001-expected.txt: Removed.
  • platform/mac/css2.1/20110323/empty-inline-001-expected.png: Removed.
  • platform/mac/css2.1/20110323/empty-inline-001-expected.txt: Removed.
  • platform/qt/css2.1/20110323/abspos-containing-block-initial-001-expected.txt: Removed.
  • platform/qt/css2.1/20110323/abspos-containing-block-initial-001-ref-expected.txt: Removed.
  • platform/qt/css2.1/20110323/abspos-non-replaced-width-margin-000-expected.png: Removed.
  • platform/qt/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/qt/css2.1/20110323/abspos-non-replaced-width-margin-000-ref-expected.txt: Removed.
  • platform/qt/css2.1/20110323/abspos-replaced-width-margin-000-expected.png: Removed.
  • platform/qt/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.png: Removed.
  • platform/qt/css2.1/20110323/abspos-replaced-width-margin-000-ref-expected.txt: Removed.
  • platform/qt/css2.1/20110323/block-replaced-width-001-expected.png: Removed.
  • platform/qt/css2.1/20110323/block-replaced-width-001-expected.txt: Removed.
  • platform/qt/css2.1/20110323/empty-inline-001-expected.txt: Removed.

These results are superseded by the reference results.

12:19 Changeset [115339] by jsbell@chromium.org

[Chromium] IndexedDB: Use WebIDBKeyPath type for key paths in WebKit API
https://bugs.webkit.org/show_bug.cgi?id=84631

Reviewed by James Robinson.

WebIDBKeyPath was previously a utility class for parsing key paths into components,
but the API exposed key paths only as nullable strings. To support array-type keypaths,
WebIDBKeyPath becomes a value class with type flags. For landing, several legacy methods
are retained but will be cleaned up after all callers have been updated, tracked as
the bug: http://webkit.org/b/84207

  • public/WebIDBDatabase.h:

(WebKit::WebIDBDatabase::createObjectStore): Add WebIDBKeyPath overload; WebString overload delegates so implementers can switch.

  • public/WebIDBIndex.h:

(WebKit::WebIDBIndex::keyPath): Calls keyPathString if not overridden.
(WebKit::WebIDBIndex::keyPathString): Comment change.

  • public/WebIDBKeyPath.h:

(WebKit::WebIDBKeyPath::create): Overload added for creating array-type key paths.
(WebKit::WebIDBKeyPath::array): Accessor for array-type key paths.
(WebKit::WebIDBKeyPath::operator const WebString ): Temporary, for compatibility.

  • public/WebIDBObjectStore.h:

(WebKit::WebIDBObjectStore::keyPath): Calls keyPathString if not overridden.
(WebKit::WebIDBObjectStore::keyPathString): Comment change.
(WebKit::WebIDBObjectStore::createIndex): Add WebIDBKeyPath overload; WebString overload delegates so implementers can switch.

  • public/platform/WebKitPlatformSupport.h:

(WebKitPlatformSupport): WebIDBKeyPath overloads for these methods added, delegate to WebString version until implementers are updated.
(WebKit::WebKitPlatformSupport::createIDBKeysFromSerializedValuesAndKeyPath):
(WebKit::WebKitPlatformSupport::injectIDBKeyIntoSerializedValue):

  • src/IDBIndexBackendProxy.cpp:

(WebKit::IDBIndexBackendProxy::keyPath): Returns the string version until WebCore is updated.

  • src/IDBObjectStoreBackendProxy.cpp:

(WebKit::IDBObjectStoreBackendProxy::keyPath): Returns the string version until WebCore is updated.

  • src/WebIDBDatabaseImpl.h:

(WebIDBDatabaseImpl): Add createObjectStore overload for WebIDBKeyPath type, delegates to WebString version until callers are updated.

  • src/WebIDBIndexImpl.cpp:

(WebKit::WebIDBIndexImpl::keyPath): Implements the new WebIDBKeyPath return type.
(WebKit):

  • src/WebIDBIndexImpl.h:

(WebIDBIndexImpl): Implements the new WebIDBKeyPath return type.

  • src/WebIDBKeyPath.cpp:

(WebKit::WebIDBKeyPath::create): Support null key path types.
(WebKit::WebIDBKeyPath::createNull): New API.
(WebKit):
(WebKit::WebIDBKeyPath::isValid): New API.
(WebKit::WebIDBKeyPath::type): New API.
(WebKit::WebIDBKeyPath::string): New API (value accessor).
(WebKit::WebIDBKeyPath::WebIDBKeyPath):
(WebKit::WebIDBKeyPath::assign): This API will be removed.
(WebKit::WebIDBKeyPath::operator const WTF::Vector<WTF::String, 0>&): Ensure it is non-null - only used in copy constructor which guards against this.

  • src/WebIDBObjectStoreImpl.cpp:

(WebKit::WebIDBObjectStoreImpl::keyPath): Implement the new WebIDBKeyPath return type.
(WebKit):

  • src/WebIDBObjectStoreImpl.h:

(WebIDBObjectStoreImpl): Add createIndex overload for WebIDBKeyPath type, delegates to WebString version until callers are updated.

12:01 Changeset [115338] by carlosgc@webkit.org

Unreviewed. Fix GTK+ build after r115314.

For some reason it fails while bulding GtkVersioning for WTR, but
it didn't fail neither in EWS nor in my laptop. We don't really
need GtkVersioning in WTR since it already depends on GTK+3
unconditionally.

  • WebKitTestRunner/GNUmakefile.am: Remove GtkVersioning.c from

compilation.

  • WebKitTestRunner/gtk/EventSenderProxyGtk.cpp:

(WTR::EventSenderProxy::createMouseButtonEvent): Use GTK+ 3 API
directly instead of getDefaultGDKPointerDevice() helper.
(WTR::EventSenderProxy::keyDown): Ditto.
(WTR::EventSenderProxy::mouseMoveTo): Ditto.

11:47 Changeset [115337] by ojan@chromium.org

Show flakiness dashboard data in garden-o-matic
https://bugs.webkit.org/show_bug.cgi?id=83716

Reviewed by Dimitri Glazkov.

Put an iframe below the expected/actual results in the Results view.
Size the iframe to it's height.

  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/garden-o-matic.html:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/run-unittests.html:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui/results_unittests.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/scripts/ui_unittests.js:
  • BuildSlaveSupport/build.webkit.org-config/public_html/TestFailures/styles/results.css:
11:44 Changeset [115336] by antti@apple.com

Implement StyleSheetInternal copying
https://bugs.webkit.org/show_bug.cgi?id=84969

Reviewed by Andreas Kling.

We need to be able to copy stylesheets to cache them. Copying is already implement for
most of the stylesheet data types but StyleSheetInternal::copy() is still missing.

Preparation for stylesheet caching. The copying code is not used yet.

  • css/CSSNamespace.h:


Instead of making it copyable, remove CSSNamespace class.


  • css/CSSParser.cpp:

(WebCore::operator==):
(WebCore):
(WebCore::CSSParser::addNamespace):

Avoid ping-ponging to StyleSheetInternal and back to set the default namespace.

  • css/CSSParserMode.h:

(WebCore):
(WebCore::operator!=):

Add equality comparison operator to CSSParseMode. This will be needed to determine
if a cached copy can be used.


  • css/CSSStyleSheet.cpp:

(WebCore::StyleSheetInternal::StyleSheetInternal):
(WebCore):
(WebCore::StyleSheetInternal::isCacheable):
(WebCore::StyleSheetInternal::parserAddNamespace):
(WebCore::StyleSheetInternal::determineNamespace):

Use HashMap instead of iterating a linked list of CSSNamespaces.

(WebCore::StyleSheetInternal::styleSheetChanged):

Add mutation bit.

  • css/CSSStyleSheet.h:

(WebCore):
(StyleSheetInternal):
(WebCore::StyleSheetInternal::copy):

Copy constructor. It only usable for cacheable stylesheets.

11:24 Changeset [115335] by pdr@google.com

Fix Skia's SkPathContainsPoint to work with sub-pixel accuracy
https://bugs.webkit.org/show_bug.cgi?id=84117

Reviewed by Eric Seidel.

Source/WebCore:

Because we do hit testing in object-space (i.e., we may see a 0.1px*0.1px path) we
need to support sub-pixel hit testing in Skia. Skia does not provide analytical
path hit testing, so hit tests are done by rasterizing a path and checking if a
specific pixel is drawn. SkPathContainsPoint did not work with sub-pixel values
because this rasterization was sometimes very small which did not give enough
resolution to check if the hit test pixel was drawn.

This patch scales the path to a very large size during hit testing so that Skia's
raster-based hit testing will work properly. Because Skia avoids unnecessary
path rasterization, this is actually inexpensive.

Below is a summary of a performance test on simple and complex paths:

(before patch, after patch)

Skia/Chrome 10,000 hit tests on a simple path: (229ms, 238ms)
Skia/Chrome 10,000 hit tests on a complex path: (701ms, 704ms)
For comparison, CG/Safari takes 236ms on the simple path and 466ms on the complex path.

Therefore, this patch introduces small but measurable regression in hit testing
performance due to scaling the path.

Test: svg/hittest/svg-small-path.xhtml

  • platform/graphics/skia/SkiaUtils.cpp:

(WebCore::SkPathContainsPoint):

LayoutTests:

  • svg/hittest/svg-small-path-expected.txt: Added.
  • svg/hittest/svg-small-path.xhtml: Added.
11:20 Changeset [115334] by commit-queue@webkit.org

Unreviewed, rolling out r115323.
http://trac.webkit.org/changeset/115323
https://bugs.webkit.org/show_bug.cgi?id=84975

Bad test, breaks all builds (Requested by apavlov1 on
#webkit).

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

Source/WebCore:

  • inspector/Inspector.json:
  • inspector/InspectorPageAgent.cpp:

(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):

  • inspector/InspectorPageAgent.h:
  • inspector/front-end/Settings.js:
  • inspector/front-end/SettingsScreen.js:

(WebInspector.SettingsScreen):

  • inspector/front-end/inspector.js:

LayoutTests:

  • inspector/debugger/disable-script-expected.txt: Removed.
  • inspector/debugger/disable-script.html: Removed.
11:12 Changeset [115333] by commit-queue@webkit.org

IndexedDB: cursor does not correctly iterate over keys added and removed during iteration
https://bugs.webkit.org/show_bug.cgi?id=84467

Patch by Douglas Stockwell <dstockwell@chromium.org> on 2012-04-26
Reviewed by Ojan Vafai.

Source/WebCore:

Ensure that the iterator over the tree of cached adds/removes always points at
the current key, or if the db iterator is current, the next key:

  • When refreshing the tree iterator after a mutation, always seek unless the

tree iterator is current.

  • When handing conflicts and delete markers, only advance the tree iterator as

far as the db iterator.

Remove the expensive (and now redundant) logic that issued a get() to check
whether an item had been deleted.

Test: storage/indexeddb/cursor-added-bug.html

  • Modules/indexeddb/IDBLevelDBBackingStore.cpp:

(WebCore):

  • platform/leveldb/LevelDBTransaction.cpp:

(WebCore::LevelDBTransaction::TransactionIterator::refreshTreeIterator):
(WebCore::LevelDBTransaction::TransactionIterator::handleConflictsAndDeletes):

LayoutTests:

New test for keys added in reverse order during cursor iteration.

  • storage/indexeddb/cursor-added-bug-expected.txt: Added.
  • storage/indexeddb/cursor-added-bug.html: Added.
  • storage/indexeddb/resources/cursor-added-bug.js: Added.

(test):
(openSuccess):
(setVersionSuccess):
(openCursor):
(cursorSuccess):

11:09 Changeset [115332] by commit-queue@webkit.org

[EFL] [DRT] LayoutTestController needs implementation of setJavaScriptProfilingEnabled
https://bugs.webkit.org/show_bug.cgi?id=84576

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-04-26
Reviewed by Martin Robinson.

Source/WebKit/efl:

Add missing implementation setJavaScriptProfilingEnabled to EFL's
DumpRenderTreeSupport. This setting allows layout tests to start
JavaScript profiling.

  • WebCoreSupport/DumpRenderTreeSupportEfl.cpp:

(DumpRenderTreeSupportEfl::setJavaScriptProfilingEnabled):

  • WebCoreSupport/DumpRenderTreeSupportEfl.h:

Tools:

Add missing implementation setJavaScriptProfilingEnabled to EFL's
LayoutTestController in order to unskip tests rely on this setting.

  • DumpRenderTree/efl/DumpRenderTreeChrome.cpp:

(DumpRenderTreeChrome::resetDefaultsToConsistentValues):

  • DumpRenderTree/efl/LayoutTestControllerEfl.cpp:

(LayoutTestController::setJavaScriptProfilingEnabled):

LayoutTests:

Unskip test cases which rely on LayoutTestController's
setJavaScriptProfilingEnabled implementation.

  • platform/efl/Skipped:
11:07 Changeset [115331] by lforschler@apple.com

Merged r115253.

11:05 Changeset [115330] by lforschler@apple.com

Merged r115252.

11:02 Changeset [115329] by lforschler@apple.com

Merged r115096.

10:52 Changeset [115328] by wangxianzhu@chromium.org

Add Jing Zhao, Min Qin, Tien-Ren Chen and Hao Zheng into contributors list.

Not reviewed.

  • Scripts/webkitpy/common/config/committers.py:
10:27 Changeset [115327] by lforschler@apple.com

Versioning.

10:25 Changeset [115326] by lforschler@apple.com

New Tag.

10:22 HackingWebInspector edited by alex.bravo@nokia.com
(diff)
10:01 Changeset [115325] by dglazkov@chromium.org

[Chromium] webaudio/audioparam-exponentialRampToValueAtTime.html is occasionally crashing
https://bugs.webkit.org/show_bug.cgi?id=84972

  • platform/chromium/test_expectations.txt: Marked as flaky.
09:52 Changeset [115324] by jer.noble@apple.com

Placeholder view is immediately removed from hosting window upon entering full screen.
https://bugs.webkit.org/show_bug.cgi?id=84916

Reviewed by Darin Adler.

Correct a mistake added in r114567. When swapping view for otherView, add otherView and
remove view (rather than adding otherView and removing otherView).

Source/WebKit/mac:

  • WebView/WebFullScreenController.mm:

(-[WebFullScreenController _swapView:with:]):

Source/WebKit2:

  • UIProcess/mac/WKFullScreenWindowController.mm:

(-[WKFullScreenWindowController _swapView:with:]):

09:44 Changeset [115323] by apavlov@chromium.org

Web Inspector: Implement the "Disable JavaScript" option in the settings dialog
https://bugs.webkit.org/show_bug.cgi?id=84946

Source/WebCore:

Based on user actions in the Inspector frontend, InspectorPageAgent invokes Settings::setScriptEnabled()
for the associated page to switch the script execution therein.

Reviewed by Yury Semikhatsky.

Test: inspector/debugger/disable-script.html

  • inspector/Inspector.json:
  • inspector/InspectorPageAgent.cpp:

(PageAgentState):
(WebCore::InspectorPageAgent::enable):
(WebCore::InspectorPageAgent::disable):
(WebCore::InspectorPageAgent::getScriptExecutionStatus):
(WebCore):
(WebCore::InspectorPageAgent::setScriptExecutionDisabled):

  • inspector/InspectorPageAgent.h:
  • inspector/front-end/Settings.js:
  • inspector/front-end/SettingsScreen.js:

(WebInspector.SettingsScreen):
(WebInspector.SettingsScreen.prototype.get _updateScriptDisabledCheckbox):
(WebInspector.SettingsScreen.prototype._javaScriptDisabledChanged):

  • inspector/front-end/inspector.js:

LayoutTests:

Reviewed by Yury Semikhatsky.

  • inspector/debugger/disable-script-expected.txt: Added.
  • inspector/debugger/disable-script.html: Added.
09:19 Changeset [115322] by carlosgc@webkit.org

[GTK] Test TestWebKitAPI/WebKit2/TestNewFirstVisuallyNonEmptyLayout times out
https://bugs.webkit.org/show_bug.cgi?id=84957

Reviewed by Martin Robinson.

  • Scripts/run-gtk-tests:

(TestRunner): Unskip TestNewFirstVisuallyNonEmptyLayout and
TestNewFirstVisuallyNonEmptyLayoutForImages.

  • TestWebKitAPI/gtk/PlatformWebViewGtk.cpp:

(TestWebKitAPI::PlatformWebView::PlatformWebView): Show the
toplevel window containing the web view to make sure events are
received.

09:13 Changeset [115321] by commit-queue@webkit.org

[cairo] CairoGraphicsContext fillRect (with Color) overrides composite operator
https://bugs.webkit.org/show_bug.cgi?id=84848

Patch by Dominik Röttsches <dominik.rottsches@linux.intel.com> on 2012-04-26
Reviewed by Martin Robinson.

Source/WebCore:

FillRectWithColor used to be called fillRectSourceOver before r89314
where this operator still made sense. The way this function is used
these days doesn't expect the composite operator to be overridden anymore.

No new tests, covered by existing tests, e.g.
svg/filters/feDropShadow.svg

  • platform/graphics/cairo/GraphicsContextCairo.cpp:

(WebCore::fillRectWithColor):

LayoutTests:

Unskipping and baselining feDropShadow test,
now works because of composite operator fix.
Fixed png baseline result for drop shadow test on GTK.

  • platform/efl/svg/filters/feDropShadow-expected.png: Added.
  • platform/efl/svg/filters/feDropShadow-expected.txt: Added.
  • platform/efl/test_expectations.txt:
  • platform/gtk/svg/filters/feDropShadow-expected.png:
08:51 Changeset [115320] by zimmermann@webkit.org

Fix additive by animations for most SMIL list types
https://bugs.webkit.org/show_bug.cgi?id=84968

Reviewed by Antti Koivisto.

Source/WebCore:

Unify SMIL list animation code, to correctly respect the underlying from value for by-animations.
Add lots of new tests covering by-animations for all primitives (except AnimatedPath/TransformList).
AnimatedTransformList is not working correctly yet, and will be covered in a follow-up patch.
AnimatdPath by-animations are complex, and thus also handled in another follow-up patch.

Tests: svg/animations/additive-type-by-animation.html

svg/animations/length-list-animation-expected.svg
svg/animations/length-list-animation.svg
svg/animations/svglength-additive-by-1.html
svg/animations/svglength-additive-by-2.html
svg/animations/svglength-additive-by-3.html
svg/animations/svglength-additive-by-4.html
svg/animations/svglength-additive-by-5.html
svg/animations/svglength-additive-by-6.html
svg/animations/svglength-additive-from-by-1.html
svg/animations/svglength-additive-from-by-2.html
svg/animations/svglength-additive-from-by-3.html
svg/animations/svglength-additive-from-by-4.html

  • svg/SVGAnimatedLengthList.cpp:

(WebCore::SVGAnimatedLengthListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedNumberList.cpp:

(WebCore::SVGAnimatedNumberListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedPointList.cpp:

(WebCore::SVGAnimatedPointListAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedPointListAnimator::calculateAnimatedValue):

  • svg/SVGAnimationElement.h:

(WebCore::SVGAnimationElement::adjustFromToListValues):

LayoutTests:

Add lots of new tests covering SMIL by-animations on all primitives.

  • svg/animations/additive-type-by-animation-expected.txt: Added.
  • svg/animations/additive-type-by-animation.html: Added.
  • svg/animations/length-list-animation-expected.svg: Added.
  • svg/animations/length-list-animation.svg: Added.
  • svg/animations/non-additive-type-by-animation-expected.txt:
  • svg/animations/resources/additive-type-by-animation.svg: Added.
  • svg/animations/resources/non-additive-type-by-animation.svg:
  • svg/animations/resources/svglength-additive-by-1.svg: Added.
  • svg/animations/resources/svglength-additive-by-2.svg: Added.
  • svg/animations/resources/svglength-additive-by-3.svg: Added.
  • svg/animations/resources/svglength-additive-by-4.svg: Added.
  • svg/animations/resources/svglength-additive-by-5.svg: Added.
  • svg/animations/resources/svglength-additive-by-6.svg: Added.
  • svg/animations/resources/svglength-additive-from-by-1.svg: Added.
  • svg/animations/resources/svglength-additive-from-by-2.svg: Added.
  • svg/animations/resources/svglength-additive-from-by-3.svg: Added.
  • svg/animations/resources/svglength-additive-from-by-4.svg: Added.
  • svg/animations/script-tests/additive-type-by-animation.js: Added.

(checkBaseVal):
(sample1):
(sample2):
(sample3):
(executeTest):

  • svg/animations/script-tests/non-additive-type-by-animation.js:

(sample):

  • svg/animations/script-tests/svglength-additive-by-1.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(executeTest):

  • svg/animations/script-tests/svglength-additive-by-2.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(executeTest):

  • svg/animations/script-tests/svglength-additive-by-3.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(sample6):
(executeTest):

  • svg/animations/script-tests/svglength-additive-by-4.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(sample6):
(executeTest):

  • svg/animations/script-tests/svglength-additive-by-5.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(sample6):
(executeTest):

  • svg/animations/script-tests/svglength-additive-by-6.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(sample6):
(executeTest):

  • svg/animations/script-tests/svglength-additive-from-by-1.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(executeTest):

  • svg/animations/script-tests/svglength-additive-from-by-2.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(sample6):
(executeTest):

  • svg/animations/script-tests/svglength-additive-from-by-3.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(sample6):
(executeTest):

  • svg/animations/script-tests/svglength-additive-from-by-4.js: Added.

(sample1):
(sample2):
(sample3):
(sample4):
(sample5):
(sample6):
(executeTest):

  • svg/animations/svglength-additive-by-1-expected.txt: Added.
  • svg/animations/svglength-additive-by-1.html: Added.
  • svg/animations/svglength-additive-by-2-expected.txt: Added.
  • svg/animations/svglength-additive-by-2.html: Added.
  • svg/animations/svglength-additive-by-3-expected.txt: Added.
  • svg/animations/svglength-additive-by-3.html: Added.
  • svg/animations/svglength-additive-by-4-expected.txt: Added.
  • svg/animations/svglength-additive-by-4.html: Added.
  • svg/animations/svglength-additive-by-5-expected.txt: Added.
  • svg/animations/svglength-additive-by-5.html: Added.
  • svg/animations/svglength-additive-by-6-expected.txt: Added.
  • svg/animations/svglength-additive-by-6.html: Added.
  • svg/animations/svglength-additive-from-by-1-expected.txt: Added.
  • svg/animations/svglength-additive-from-by-1.html: Added.
  • svg/animations/svglength-additive-from-by-2-expected.txt: Added.
  • svg/animations/svglength-additive-from-by-2.html: Added.
  • svg/animations/svglength-additive-from-by-3-expected.txt: Added.
  • svg/animations/svglength-additive-from-by-3.html: Added.
  • svg/animations/svglength-additive-from-by-4-expected.txt: Added.
  • svg/animations/svglength-additive-from-by-4.html: Added.
08:43 Changeset [115319] by antti@apple.com

Add copy constructor to CSSSelector
https://bugs.webkit.org/show_bug.cgi?id=84956

Reviewed by Anders Carlsson.

To copy CSSSelectorLists correctly CSSSelector needs a copy constructor.

This will be needed to implement stylesheet caching. The code is not used yet.

  • css/CSSSelector.cpp:

(WebCore::CSSSelector::createRareData):

  • css/CSSSelector.h:

(CSSSelector):
(WebCore::CSSSelector::RareData::create):
(RareData):

Refcount RareData to make copying easier. This has no significant memory impact, rare data is rare.

(WebCore::CSSSelector::CSSSelector):
(WebCore):
(WebCore::CSSSelector::~CSSSelector):

  • css/CSSSelectorList.cpp:

(WebCore::CSSSelectorList::CSSSelectorList):

Use copy constructor instead of memcpy (which doesn't work).

08:28 WebKitGTK/1.8.x edited by mrobinson@webkit.org
Reflect the correct versions, added a section for 1.8.2 (diff)
08:15 Changeset [115318] by rakuco@webkit.org

[EFL] Fix the build with DRAG_SUPPORT disabled.
https://bugs.webkit.org/show_bug.cgi?id=84963

Reviewed by Antonio Gomes.

No new tests, build system-related change.

EventHandlerEfl.cpp always assumed DRAG_SUPPORT was enabled and lacked
the proper #if ENABLED() checks for some member variables and methods
conditionally defined in EventHandler.h.

  • page/efl/EventHandlerEfl.cpp:

(WebCore):

08:14 Changeset [115317] by pfeldman@chromium.org

Web Inspector: remove stackTrace property from requestWillBeSent - it is already a part of the initiator.
https://bugs.webkit.org/show_bug.cgi?id=84964

Reviewed by Yury Semikhatsky.

  • inspector/InspectorResourceAgent.cpp:

(WebCore::InspectorResourceAgent::willSendRequest):

  • inspector/front-end/ConsoleMessage.js:

(WebInspector.ConsoleMessageImpl.prototype._formatMessage):

  • inspector/front-end/NetworkManager.js:

(WebInspector.NetworkDispatcher.prototype.requestWillBeSent):
(WebInspector.NetworkDispatcher.prototype.requestServedFromMemoryCache):
(WebInspector.NetworkDispatcher.prototype._appendRedirect):
(WebInspector.NetworkDispatcher.prototype._createNetworkRequest):
(get WebInspector):

08:06 Changeset [115316] by schenney@chromium.org

SVG FEConvolveMatrix does not check for invalid property values
https://bugs.webkit.org/show_bug.cgi?id=84363

Reviewed by Dirk Schulze.

Source/WebCore:

Adding code to check for valid input values on SVG feConvolveMatrix properties.
And adding some of the first effective error reporting for SVG elements.

Tests: svg/filters/feConvolveMatrix-invalid-targetX-expected.svg

svg/filters/feConvolveMatrix-invalid-targetX.svg
svg/filters/feConvolveMatrix-invalid-targetY-expected.svg
svg/filters/feConvolveMatrix-invalid-targetY.svg
svg/filters/feConvolveMatrix-negative-kernelUnitLengthX-expected.svg
svg/filters/feConvolveMatrix-negative-kernelUnitLengthX.svg
svg/filters/feConvolveMatrix-negative-kernelUnitLengthY-expected.svg
svg/filters/feConvolveMatrix-negative-kernelUnitLengthY.svg
svg/filters/feConvolveMatrix-negative-orderX-expected.svg
svg/filters/feConvolveMatrix-negative-orderX.svg
svg/filters/feConvolveMatrix-negative-orderY-expected.svg
svg/filters/feConvolveMatrix-negative-orderY.svg
svg/filters/feConvolveMatrix-non-integral-order-expected.svg
svg/filters/feConvolveMatrix-non-integral-order.svg
svg/filters/feConvolveMatrix-zero-divisor-expected.svg
svg/filters/feConvolveMatrix-zero-divisor.svg

  • platform/graphics/filters/FEConvolveMatrix.cpp:

(WebCore::FEConvolveMatrix::FEConvolveMatrix):
(WebCore::FEConvolveMatrix::setKernelSize):
(WebCore::FEConvolveMatrix::setDivisor):
(WebCore::FEConvolveMatrix::setKernelUnitLength):

  • svg/SVGFEConvolveMatrixElement.cpp:

(WebCore::SVGFEConvolveMatrixElement::parseAttribute):
(WebCore::SVGFEConvolveMatrixElement::build):

LayoutTests:

Adding code to check for valid input values on SVG feConvolveMatrix properties.

  • platform/chromium-linux-x86/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
  • platform/chromium-linux/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
  • platform/chromium-win-vista/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
  • platform/chromium-win-xp/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
  • platform/chromium-win/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
  • platform/efl/svg/filters/feConvolveFilter-y-bounds-expected.txt:
  • platform/gtk/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
  • platform/gtk/svg/custom/convolution-crash-expected.txt:
  • platform/gtk/svg/filters/feConvolveFilter-y-bounds-expected.txt:
  • platform/mac/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
  • platform/mac/svg/custom/convolution-crash-expected.txt:
  • platform/mac/svg/filters/feConvolveFilter-y-bounds-expected.txt:
  • platform/qt/svg/W3C-SVG-1.1/filters-conv-01-f-expected.txt:
  • platform/qt/svg/custom/convolution-crash-expected.txt:
  • platform/qt/svg/filters/feConvolveFilter-y-bounds-expected.txt:
  • svg/filters/feConvolveMatrix-invalid-targetX-expected.svg: Added.
  • svg/filters/feConvolveMatrix-invalid-targetX.svg: Added.
  • svg/filters/feConvolveMatrix-invalid-targetY-expected.svg: Added.
  • svg/filters/feConvolveMatrix-invalid-targetY.svg: Added.
  • svg/filters/feConvolveMatrix-negative-kernelUnitLengthX-expected.svg: Added.
  • svg/filters/feConvolveMatrix-negative-kernelUnitLengthX.svg: Added.
  • svg/filters/feConvolveMatrix-negative-kernelUnitLengthY-expected.svg: Added.
  • svg/filters/feConvolveMatrix-negative-kernelUnitLengthY.svg: Added.
  • svg/filters/feConvolveMatrix-negative-orderX-expected.svg: Added.
  • svg/filters/feConvolveMatrix-negative-orderX.svg: Added.
  • svg/filters/feConvolveMatrix-negative-orderY-expected.svg: Added.
  • svg/filters/feConvolveMatrix-negative-orderY.svg: Added.
  • svg/filters/feConvolveMatrix-non-integral-order-expected.svg: Added.
  • svg/filters/feConvolveMatrix-non-integral-order.svg: Added.
  • svg/filters/feConvolveMatrix-zero-divisor-expected.svg: Added.
  • svg/filters/feConvolveMatrix-zero-divisor.svg: Added.
08:01 Changeset [115315] by carlosgc@webkit.org

Unreviewed. Add bug numbers to skipped tests.

  • Scripts/run-gtk-tests:

(TestRunner):

07:47 Changeset [115314] by carlosgc@webkit.org

[GTK] Build and run TestWebKitAPI WebKit2 unit tests
https://bugs.webkit.org/show_bug.cgi?id=84446

Reviewed by Philippe Normand.

Source/ThirdParty:

  • gtest/GNUmakefile.am: Do not build libgtestmain anymmore since

all tests use now a custom main to make sure WTF threads are
initialized.

Source/WebKit2:

  • UIProcess/API/C/WKNativeEvent.h: Define WKNativeEventPtr as

GdkEvent for the GTK+ port.

Tools:

  • Scripts/run-gtk-tests:

(TestRunner): Add TestWebKitAPI/WebKit2 to the list of directories
containing tests. Unskip FunctionalTest.RefCountedStorage, since
we are now using a custom main that initializes WTF threading.
(TestRunner._setup_testing_environment): Set environment variables
required to run WebKit2 tests.

  • TestWebKitAPI/GNUmakefile.am:
  • TestWebKitAPI/JavaScriptTest.cpp: Use

JavaScriptCore/JSContextRef.h instead of
JavaScriptCore/JavaScriptCore.h since it includes JSStringRefCF.h
unconditionally.

  • TestWebKitAPI/PlatformWebView.h: Define PlatformWKView and

PlatformWindow for GTK.

  • TestWebKitAPI/Tests/WebKit2/EvaluateJavaScript.cpp: Remove

unneded header that breaks the build of GTK port.

  • TestWebKitAPI/Tests/WebKit2/PreventEmptyUserAgent.cpp: Use

JavaScriptCore/JSContextRef.h instead of
JavaScriptCore/JavaScriptCore.h since it includes JSStringRefCF.h
unconditionally.

  • TestWebKitAPI/Tests/WebKit2/WKPreferences.cpp:

(TestWebKitAPI::TEST): Add expected values for GTK+ port.

  • TestWebKitAPI/gtk/InjectedBundleControllerGtk.cpp:

(TestWebKitAPI):
(TestWebKitAPI::InjectedBundleController::platformInitialize):

  • TestWebKitAPI/gtk/PlatformUtilitiesGtk.cpp: Added.

(TestWebKitAPI::Util::checkTestFinished):
(TestWebKitAPI::Util::run):
(TestWebKitAPI::Util::sleep):
(TestWebKitAPI::Util::getFilenameFromEnvironmentVariableAsUTF8):
(TestWebKitAPI::Util::createInjectedBundlePath):
(TestWebKitAPI::Util::createURLForResource):
(TestWebKitAPI::Util::URLForNonExistentResource):
(TestWebKitAPI::Util::isKeyDown):

  • TestWebKitAPI/gtk/PlatformWebViewGtk.cpp: Added.

(TestWebKitAPI::PlatformWebView::PlatformWebView):
(TestWebKitAPI::PlatformWebView::~PlatformWebView):
(TestWebKitAPI::PlatformWebView::page):
(TestWebKitAPI::PlatformWebView::resizeTo):
(TestWebKitAPI::doKeyStroke):
(TestWebKitAPI::PlatformWebView::simulateSpacebarKeyPress):
(TestWebKitAPI::PlatformWebView::simulateAltKeyPress):
(TestWebKitAPI::doMouseButtonEvent):
(TestWebKitAPI::PlatformWebView::simulateRightClick):
(TestWebKitAPI::PlatformWebView::simulateMouseMove):

  • TestWebKitAPI/gtk/main.cpp:

(main):

07:45 Changeset [115313] by carlosgc@webkit.org

[GTK] run-gtk-tests: Use a timeout per test instead of a global timeout
https://bugs.webkit.org/show_bug.cgi?id=84695

Reviewed by Philippe Normand.

It also adds a command line option to be able to pass a custom
timeout value, instead of hard-coding it. The default timeout is 10
seconds if no other value is passed to the script.

  • Scripts/run-gtk-tests:

(TestTimeout): Exception raised when a test times out.
(TestRunner._get_child_pid_from_test_output): Helper function to
get the pid of the running test from gtester output.
(TestRunner._kill_process): Helper funtion ot kill a process
ignoring exceptions if the process is already died.
(TestRunner._run_test_command): Run the test command raising
TestTimeout exception if the test doesn't finish before the given
timeout in seconds.
(TestRunner._run_test_command.alarm_handler): Alarm handler that
raises TestTimeout exception.
(TestRunner._run_test_glib): Use _run_test_command() to run the test.
(TestRunner._run_test_google): Ditto.
(TestRunner.run_tests): Add current test to the list of timed out
test if TestTimeout exception is raised. Show the list of timed
out test at the end.

07:30 Changeset [115312] by commit-queue@webkit.org

Move WebKit1 specific conversion of touch-events to WebKit1.
https://bugs.webkit.org/show_bug.cgi?id=84951

Patch by Allan Sandfeld Jensen <allan.jensen@nokia.com> on 2012-04-26
Reviewed by Kenneth Rohde Christiansen.

Source/WebCore:

No change in functionality. No new tests.

  • Target.pri:
  • platform/PlatformTouchEvent.h:

(PlatformTouchEvent):

  • platform/PlatformTouchPoint.h:

(PlatformTouchPoint):

  • platform/qt/PlatformTouchEventQt.cpp: Removed.
  • platform/qt/PlatformTouchPointQt.cpp: Removed.

Source/WebKit/qt:

  • Api/qwebpage.cpp:

(QWebPagePrivate::touchEvent):

  • WebCoreSupport/WebEventConversion.cpp:

(WebKitPlatformTouchEvent):
(WebKitPlatformTouchPoint):
(WebCore::WebKitPlatformTouchEvent::WebKitPlatformTouchEvent):
(WebCore::WebKitPlatformTouchPoint::WebKitPlatformTouchPoint):
(WebCore::convertTouchEvent):

  • WebCoreSupport/WebEventConversion.h:
07:11 Changeset [115311] by abecsi@webkit.org

[Qt][WK2] Tap highlight should have a delay not to interfere with panning
https://bugs.webkit.org/show_bug.cgi?id=84948

Reviewed by Kenneth Rohde Christiansen.

Start the tap highlight animation after a slight delay so that pan
gestures do not result in flashing highlight rects which slow down
flicking, especially during continuous pan gestures.

  • UIProcess/qt/QtTapGestureRecognizer.cpp:

(WebKit::QtTapGestureRecognizer::update):
(WebKit::QtTapGestureRecognizer::highlightTimeout):
(WebKit):
(WebKit::QtTapGestureRecognizer::reset):
(WebKit::QtTapGestureRecognizer::timerEvent):

  • UIProcess/qt/QtTapGestureRecognizer.h:

(QtTapGestureRecognizer):

  • UIProcess/qt/QtWebPageEventHandler.cpp:

(WebKit::QtWebPageEventHandler::doneWithTouchEvent):

07:08 April 2012 Keeping the bots green edited by aroben@webkit.org
Fix indentation, add real headings (diff)
07:06 Changeset [115310] by commit-queue@webkit.org

Make it possible to use accelerated compositing for page overlay fading
https://bugs.webkit.org/show_bug.cgi?id=82336

Patch by Lars Knudsen <lars.knudsen@nokia.com> on 2012-04-26
Reviewed by Noam Rosenthal.

Page overlay fading will use AC where possible. Otherwise, it will
fall back to the previous method of redrawing each frame in the animation.

  • WebProcess/WebPage/DrawingArea.h:

(WebKit::DrawingArea::setPageOverlayOpacity):
(DrawingArea):
(WebKit::DrawingArea::pageOverlayShouldApplyFadeWhenPainting):

  • WebProcess/WebPage/DrawingAreaImpl.cpp:

(WebKit::DrawingAreaImpl::setPageOverlayOpacity):
(WebKit):
(WebKit::DrawingAreaImpl::pageOverlayShouldApplyFadeWhenPainting):

  • WebProcess/WebPage/DrawingAreaImpl.h:

(DrawingAreaImpl):

  • WebProcess/WebPage/LayerTreeHost.h:

(WebKit::LayerTreeHost::setPageOverlayOpacity):
(WebKit::LayerTreeHost::pageOverlayShouldApplyFadeWhenPainting):

  • WebProcess/WebPage/PageOverlay.cpp:

(WebKit::PageOverlay::PageOverlay):
(WebKit::PageOverlay::setPage):
(WebKit::PageOverlay::fadeAnimationTimerFired):

  • WebProcess/WebPage/PageOverlay.h:
  • WebProcess/WebPage/TapHighlightController.cpp:

(WebKit::TapHighlightController::drawRect):

  • WebProcess/WebPage/qt/LayerTreeHostQt.cpp:

(WebKit::LayerTreeHostQt::setPageOverlayOpacity):
(WebKit):

  • WebProcess/WebPage/qt/LayerTreeHostQt.h:

(LayerTreeHostQt):
(WebKit::LayerTreeHostQt::pageOverlayShouldApplyFadeWhenPainting):

07:05 Changeset [115309] by commit-queue@webkit.org

[EFL][DRT] Unskip media tests that were already fixed in r113178
https://bugs.webkit.org/show_bug.cgi?id=84947

Unreviewed, EFL gardening.

Patch by Dominik Röttsches <dominik.rottsches@linux.intel.com> on 2012-04-26

  • platform/efl/Skipped: Removed a group of media tests.
06:55 Changeset [115308] by commit-queue@webkit.org

[BlackBerry] A quick fix to the previous patch r115245.
https://bugs.webkit.org/show_bug.cgi?id=84862

Patch by Yong Li <yoli@rim.com> on 2012-04-26
Reviewed by Antonio Gomes.

Fix an obvious bug in previous patch: DeferredTaskLoadManualScript
was using a wrong flag.

  • Api/WebPage.cpp:
  • Api/WebPage_p.h:

(WebPagePrivate):

06:43 Changeset [115307] by commit-queue@webkit.org

[EFL] [DRT] LayoutTestController needs implementation of addOriginAccessWhitelistEntry and removeOriginAccessWhitelistEntry
https://bugs.webkit.org/show_bug.cgi?id=83880

Patch by Sudarsana Nagineni <sudarsana.nagineni@linux.intel.com> on 2012-04-26
Reviewed by Antonio Gomes.

Tools:

Add missing implementation addOriginAccessWhitelistEntry and
removeOriginAccessWhitelistEntry to EFL's LayoutTestController
in order to unskip tests which rely on this.

  • DumpRenderTree/efl/DumpRenderTreeChrome.cpp:

(DumpRenderTreeChrome::resetDefaultsToConsistentValues):

  • DumpRenderTree/efl/LayoutTestControllerEfl.cpp:

(LayoutTestController::addOriginAccessWhitelistEntry):
(LayoutTestController::removeOriginAccessWhitelistEntry):

LayoutTests:

Unskip test cases which rely on LayoutTestController's addOriginAccessWhitelistEntry
and removeOriginAccessWhitelistEntry implementation.

  • platform/efl/Skipped:
06:34 Changeset [115306] by commit-queue@webkit.org

[EFL] WebGL support ewk_view setting
https://bugs.webkit.org/show_bug.cgi?id=84534

Patch by Mikhail Pozdnyakov <mikhail.pozdnyakov@intel.com> on 2012-04-26
Reviewed by Antonio Gomes.

Exporting new ewk_view setting: webGLEnabled - enbles/disables WebGL support.

  • ewk/ewk_view.cpp:

(_Ewk_View_Private_Data):
(_ewk_view_priv_new):
(ewk_view_setting_enable_webgl_get):
(ewk_view_setting_enable_webgl_set):

  • ewk/ewk_view.h:
06:14 Changeset [115305] by zimmermann@webkit.org

Share code used to animate numbers types between all animators
https://bugs.webkit.org/show_bug.cgi?id=84945

Reviewed by Antti Koivisto.

Refactor animateAdditiveNumber() from SVGAnimatedNumberAnimator into SVGAnimationElement,
to reuse it for all primitives. Converted most primitives to use the new code. Lists, paths,
colors are still todo.

Doesn't affect any tests.

  • svg/SVGAnimatedAngle.cpp:

(WebCore::SVGAnimatedAngleAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedInteger.cpp:

(WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedInteger):
(WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedInteger.h:

(SVGAnimatedIntegerAnimator):

  • svg/SVGAnimatedIntegerOptionalInteger.cpp:

(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedLength.cpp:

(WebCore::SVGAnimatedLengthAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedLengthList.cpp:

(WebCore::SVGAnimatedLengthListAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedNumber.cpp:

(WebCore::SVGAnimatedNumberAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedNumber.h:
  • svg/SVGAnimatedNumberList.cpp:

(WebCore::SVGAnimatedNumberListAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedNumberOptionalNumber.cpp:

(WebCore::SVGAnimatedNumberOptionalNumberAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedNumberOptionalNumber.h:
  • svg/SVGAnimatedRect.cpp:

(WebCore::SVGAnimatedRectAnimator::calculateAnimatedValue):

  • svg/SVGAnimationElement.h:

(WebCore::SVGAnimationElement::animateAdditiveNumber):
(SVGAnimationElement):

05:08 SettingUpDevelopmentEnvironmentForN9 edited by zarvai@inf.u-szeged.hu
(diff)
04:59 SettingUpDevelopmentEnvironmentForN9 edited by zarvai@inf.u-szeged.hu
(diff)
04:52 Changeset [115304] by ahf@0x90.dk

[Qt] r115300 broke the Qt build on Mac OS X.

This patch adds guards around the createPluginContainer and
windowedPluginGeometryDidChange member functions in WebPageProxy.

Unreviewed build fix.

  • UIProcess/qt/WebPageProxyQt.cpp:

(WebKit):

04:51 Changeset [115303] by apavlov@chromium.org

Web Inspector: [CRASH] WebViewImpl::setZoomLevel when emulating device metrics
https://bugs.webkit.org/show_bug.cgi?id=84938

Check for the presence of a live Frame/FrameView before invoking methods that depend on them.

Reviewed by Yury Semikhatsky.

  • src/WebDevToolsAgentImpl.cpp:

(WebKit::DeviceMetricsSupport::restore):

04:45 Changeset [115302] by rniwa@webkit.org

Forgotten build fix after r115227.

  • css/StylePropertySet.cpp:

(WebCore::StylePropertySet::get4Values):

04:42 SettingUpDevelopmentEnvironmentForN9 edited by zarvai@inf.u-szeged.hu
(diff)
04:01 Changeset [115301] by carlosgc@webkit.org

[GTK] Add downloads support to MiniBrowser
https://bugs.webkit.org/show_bug.cgi?id=73662

Reviewed by Philippe Normand.

  • MiniBrowser/gtk/BrowserDownloadsBar.c: Added.

(browserDownloadsBarChildRemoved): Close the downloads bar if
there aren't active downloads.
(browserDownloadsBarResponse): Destroy the downloads bar when
closed.
(browser_downloads_bar_init):
(browser_downloads_bar_class_init):
(browser_downloads_bar_new): Create a new downloads bar.
(actionButtonClicked): Cancel the download if cancel button was
clicked, or open the downloaded file if the download finished.
(browserDownloadFinalize):
(browser_download_init):
(browser_download_class_init):
(downloadReceivedResponse): Update download message using the
response URI.
(remainingTime): Helper function to get human readable remaining
time.
(downloadProgress): Update downloads progress.
(downloadReceivedData):
(downloadFinished): Update download message and turn download
button into open.
(downloadFailed): Show error message or destroy the download UI if
it was cancelled.
(browserDownloadNew): Create a new download widget for the given
WebKitDownload.
(browser_downloads_bar_add_download): Add download widget to the
downloads bar.

  • MiniBrowser/gtk/BrowserDownloadsBar.h: Added.
  • MiniBrowser/gtk/BrowserWindow.c:

(downloadStarted): Create a download widget and add it to the
downloads bar when a new download is started.
(browserWindowConstructed): Connect to
WebKitWebContext::download-started signal.

  • MiniBrowser/gtk/GNUmakefile.am: Add new files to compilation.
03:58 Changeset [115300] by carlosgc@webkit.org

[GTK][WebKit2] Initial windowed plugins implementation
https://bugs.webkit.org/show_bug.cgi?id=61065

Reviewed by Philippe Normand.

  • PluginProcess/PluginControllerProxy.cpp:

(WebKit::PluginControllerProxy::createPluginContainer):
(WebKit::PluginControllerProxy::windowedPluginGeometryDidChange):

  • PluginProcess/PluginControllerProxy.h:
  • UIProcess/API/gtk/WebKitWebViewBase.cpp:

(webkitWebViewBaseContainerAdd): Implement GtkContainer::add().
(webkitWebViewBaseContainerRemove): Implement GtkContainer::remove().
(webkitWebViewBaseContainerForall): Implement GtkContainer::forall().
(webkitWebViewBaseChildMoveResize): Set a new geometry for a child widget.
(webkitWebViewBaseChildAllocate): Allocate a child widget.
(resizeWebKitWebViewBaseFromAllocation): Allocate child widgets.
(webkit_web_view_base_class_init):

  • UIProcess/API/gtk/WebKitWebViewBasePrivate.h: Add webkitWebViewBaseSizeAllocate().
  • UIProcess/WebPageProxy.h:
  • UIProcess/WebPageProxy.messages.in: Add createPluginContainer

and windowedPluginGeometryDidChange messages.

  • UIProcess/gtk/WebPageProxyGtk.cpp:

(WebKit::pluginWindowMap):
(WebKit::pluginContainerPlugRemoved): Remove the socket from the
hash map when its plug is removed.
(WebKit::WebPageProxy::createPluginContainer): Create a GtkSocket
as container widget for windowed plugins.
(WebKit::WebPageProxy::windowedPluginGeometryDidChange): Call
webkitWebViewBaseSizeAllocate() to update the plugin widget
geometry.

  • UIProcess/qt/WebPageProxyQt.cpp:

(WebKit::WebPageProxy::createPluginContainer):
(WebKit::WebPageProxy::windowedPluginGeometryDidChange):

  • WebProcess/Plugins/Netscape/NetscapePlugin.cpp:

(WebKit::NetscapePlugin::NetscapePlugin):

  • WebProcess/Plugins/Netscape/NetscapePlugin.h:
  • WebProcess/Plugins/Netscape/x11/NetscapePluginX11.cpp:

(WebKit::socketPlugRemovedCallback): Return TRUE to avoid the
socket to be destroyed, since we need to reuse it.
(WebKit::NetscapePlugin::platformPostInitializeWindowed): Ask the
ui process to create a plugin container.
(WebKit::NetscapePlugin::platformPostInitializeWindowless):
(WebKit::NetscapePlugin::platformPostInitialize):
(WebKit::NetscapePlugin::platformGeometryDidChange): For windowed
plugins notify the ui process that the plugin geometry has
changed.
(WebKit::NetscapePlugin::platformPaint): Do nothing for windowed
plugins, the caller already calls callSetWindow().

  • WebProcess/Plugins/PluginController.h:
  • WebProcess/Plugins/PluginProxy.cpp:

(WebKit::PluginProxy::createPluginContainer):
(WebKit::PluginProxy::windowedPluginGeometryDidChange):

  • WebProcess/Plugins/PluginProxy.h:
  • WebProcess/Plugins/PluginProxy.messages.in:
  • WebProcess/Plugins/PluginView.cpp:

(WebKit::PluginView::createPluginContainer):
(WebKit::PluginView::windowedPluginGeometryDidChange):

  • WebProcess/Plugins/PluginView.h:
03:27 Changeset [115299] by commit-queue@webkit.org

http/tests/security/cross-frame-access-put.html is failing
https://bugs.webkit.org/show_bug.cgi?id=82751

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-04-26
Reviewed by Kentaro Hara.

  • http/tests/security/cross-frame-access-put-expected.txt: Correct

expected value for window.frameElement. It is now 'null' instead of
'undefined' when shouldAllowAccessToNode() check fails, since bug
80205 fix.

  • platform/gtk/http/tests/security/cross-frame-access-put-expected.txt: Removed.

It is now identifical to the global expectation.

  • platform/qt/http/tests/security/cross-frame-access-put-expected.txt: Removed. Ditto.
02:35 SettingUpDevelopmentEnvironmentForN9 edited by zarvai@inf.u-szeged.hu
(diff)
02:33 SettingUpDevelopmentEnvironmentForN9 edited by zarvai@inf.u-szeged.hu
(diff)
01:32 Changeset [115298] by carlosgc@webkit.org

Unreviewed. Skip unit test failing in debug bot.

  • Scripts/run-gtk-tests:

(TestRunner):

00:59 Changeset [115297] by mihnea@adobe.com

Crash when collecting svg symbol element in named flow.
https://bugs.webkit.org/show_bug.cgi?id=84493

Reviewed by David Hyatt.

Source/WebCore:

Test: fast/regions/symbol-in-named-flow-crash.svg

  • dom/Element.cpp:

(WebCore::Element::~Element):
Add an assert that an element that was collected into a named flow was already removed at this point
(when the document is not in the process of destruction)
(WebCore::Element::unregisterNamedFlowContentNode):
Created a new function for unregistering a content node. In the future, this function may be used for
content nodes from shadow dom.
(WebCore::Element::detach):

  • dom/Element.h:

(Element):

  • dom/NodeRenderingContext.cpp:

(WebCore::NodeRenderingContext::moveToFlowThreadIfNeeded):
Prevent elements that are part of shadow dom to be collected into a named flow.

LayoutTests:

  • fast/regions/symbol-in-named-flow-crash-expected.txt: Added.
  • fast/regions/symbol-in-named-flow-crash.svg: Added.
00:52 Changeset [115296] by zimmermann@webkit.org

Share code used to animate discrete types between all animators
https://bugs.webkit.org/show_bug.cgi?id=84853

Reviewed by Andreas Kling.

Source/WebCore:

Share by-animation handling for non-additive types in a central method in SVGAnimatedTypeAnimator,
to be reusable by SVGAnimatedBoolean/Enumeration/PreserveAspectRatio/String. Add a new test covering
these animations have no effect.

Test: svg/animations/non-additive-type-by-animation.html

  • svg/SVGAnimateElement.cpp:

(WebCore::SVGAnimateElement::calculateFromAndByValues):
(WebCore::SVGAnimateElement::isAdditive):

  • svg/SVGAnimateElement.h:

(SVGAnimateElement):

  • svg/SVGAnimateMotionElement.cpp:

(WebCore::SVGAnimateMotionElement::calculateFromAndByValues):

  • svg/SVGAnimatedBoolean.cpp:

(WebCore::isTrueString):
(WebCore::SVGAnimatedBooleanAnimator::constructFromString):
(WebCore::SVGAnimatedBooleanAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedBooleanAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedEnumeration.cpp:

(WebCore::SVGAnimatedEnumerationAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedEnumerationAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedPreserveAspectRatio.cpp:

(WebCore::SVGAnimatedPreserveAspectRatioAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedPreserveAspectRatioAnimator::calculateAnimatedValue):

  • svg/SVGAnimatedString.cpp:

(WebCore::SVGAnimatedStringAnimator::addAnimatedTypes):
(WebCore::SVGAnimatedStringAnimator::calculateAnimatedValue):

  • svg/SVGAnimationElement.cpp:

(WebCore::SVGAnimationElement::startedActiveInterval):

  • svg/SVGAnimationElement.h:

(SVGAnimationElement):
(WebCore::SVGAnimationElement::animateDiscreteType):

LayoutTests:

Add tests covering by-animation on non-additive types, which should have no effect.

  • svg/animations/non-additive-type-by-animation-expected.txt: Added.
  • svg/animations/non-additive-type-by-animation.html: Added.
  • svg/animations/resources/non-additive-type-by-animation.svg: Added.
  • svg/animations/script-tests/non-additive-type-by-animation.js: Added.

(sample):
(executeTest):

00:37 Changeset [115295] by cfleizach@apple.com

CrashTracer: [USER] 157 crashes in WebProcess at com.apple.WebCore: WebCore::AccessibilityRenderObject::isAttachment const + 29
https://bugs.webkit.org/show_bug.cgi?id=84463

Reviewed by Darin Adler.

Source/WebCore:

Accessibility was not being enabled when WK2 was asking only for the focused UI element.

No layout test could be written because the WKTestRunner mechanism works differently when asking for this.

  • accessibility/AXObjectCache.cpp:

(WebCore::AXObjectCache::focusedUIElementForPage):
(WebCore::AXObjectCache::rootObject):
(WebCore::AXObjectCache::rootObjectForFrame):

Source/WebKit2:

  • WebProcess/WebPage/mac/WKAccessibilityWebPageObject.mm:

(WebKit):

00:09 Changeset [115294] by commit-queue@webkit.org

[EFL][DRT] "resource,request,willsend" signal needs to provide more information
https://bugs.webkit.org/show_bug.cgi?id=84670

Patch by Christophe Dumez <christophe.dumez@intel.com> on 2012-04-26
Reviewed by Andreas Kling.

Source/WebKit/efl:

The "resource,request,willsend" signal now provides more information
about the network request as well as information about the possible
redirect response. This extra information will be needed to support
LayoutTestController's dumpResourceLoadCallbacks() in EFL's
DumpRenderTree.

  • WebCoreSupport/FrameLoaderClientEfl.cpp:

(WebCore::FrameLoaderClientEfl::dispatchWillSendRequest):
(WebCore::FrameLoaderClientEfl::assignIdentifierToInitialRequest):
(WebCore::FrameLoaderClientEfl::dispatchDecidePolicyForNavigationAction):

  • ewk/ewk_frame.cpp:

(ewk_frame_request_will_send):

  • ewk/ewk_frame.h:
  • ewk/ewk_private.h:
  • ewk/ewk_view.h:

Tools:

Handle in EFL's DumpRenderTree the new Ewk_Frame_Resource_Messages now
passed with the "resource,request,willsend" signal and dump
information about the network request and the possible network
response if LayoutTestController's dumpResourceLoadCallbacks() returns
true.

  • DumpRenderTree/efl/DumpRenderTreeChrome.cpp:

(pathSuitableForTestResult):
(urlSuitableForTestResult):
(descriptionSuitableForTestResult):
(DumpRenderTreeChrome::onWillSendRequest):

00:02 Changeset [115293] by ossy@webkit.org

[Qt][WK2] Unreviewed, rolling out r113703 because of crashing tests.
http://trac.webkit.org/changeset/113703
https://bugs.webkit.org/show_bug.cgi?id=83024

Tools:

  • DumpRenderTree/qt/TestNetscapePlugin/TestNetscapePlugin.pro:
  • Tools.pro:
  • qmake/mkspecs/features/features.prf:
  • qmake/mkspecs/features/functions.prf:

LayoutTests:

  • platform/qt-5.0-wk2/Skipped:
  • platform/qt-5.0-wk2/fast/dom/prototype-inheritance-2-expected.txt:
Note: See TracTimeline for information about the timeline view.