Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(254)

Unified Diff: Source/WebCore/ChangeLog

Issue 9950004: Merge 112446 - [chromium] Scheduler should not tell FrameRateController to begin a frame when we do… (Closed) Base URL: http://svn.webkit.org/repository/webkit/branches/chromium/1084/
Patch Set: Created 8 years, 9 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
Download patch
« no previous file with comments | « no previous file | Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: Source/WebCore/ChangeLog
===================================================================
--- Source/WebCore/ChangeLog (revision 112607)
+++ Source/WebCore/ChangeLog (working copy)
@@ -1,3 +1,3719 @@
+2012-03-28 Nat Duca <nduca@chromium.org>
+
+ [chromium] Scheduler should not tell FrameRateController to begin a frame when we dont swap
+ https://bugs.webkit.org/show_bug.cgi?id=82516
+
+ Reviewed by James Robinson.
+
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::swapBuffers):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (LayerRendererChromium):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::swapBuffers):
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.h:
+ (CCLayerTreeHostImpl):
+ * platform/graphics/chromium/cc/CCScheduler.cpp:
+ (WebCore::CCScheduler::processScheduledActions):
+ * platform/graphics/chromium/cc/CCScheduler.h:
+ (WebCore::CCScheduledActionDrawAndSwapResult::CCScheduledActionDrawAndSwapResult):
+ (CCScheduledActionDrawAndSwapResult):
+ (WebCore):
+ (CCSchedulerClient):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::scheduledActionDrawAndSwapInternal):
+ (WebCore::CCThreadProxy::scheduledActionDrawAndSwapIfPossible):
+ (WebCore::CCThreadProxy::scheduledActionDrawAndSwapForced):
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+ (CCThreadProxy):
+
+2012-03-26 Eric Uhrhane <ericu@chromium.org>
+
+ FileWriter has two race conditions
+ https://bugs.webkit.org/show_bug.cgi?id=81861
+
+ Reviewed by David Levin.
+
+ Should make current tests less flaky.
+
+ * Modules/filesystem/FileWriter.h:
+ * Modules/filesystem/FileWriter.cpp:
+ Track the in-flight operation, whether it be an abort/write/truncate.
+ Whether an abort comes back as didWrite, didTruncate, or didFail, handle
+ it appropriately. Before this fix, the Chromium implementation would
+ assert in two cases:
+
+ If the user calls abort, then write, then abort before the backend
+ catches up, we'd send both aborts to the backend, even though it hadn't
+ received the write yet. Chromium's backend asserts if there's an abort
+ with no write in progress. We now record that we've sent an abort and
+ are waiting for the response.
+
+ If the user calls abort while a write/truncate is just finishing, on the
+ Chromium worker implementation, the completion message could be
+ thread-hopping back to WebCore at the
+ WorkerAsyncFileWriterCallbacksBridge while the abort is thread-hopping
+ in the other direction. Again, this leads to an abort call to the
+ backend with no write in progress, and an assert. We're now robust to
+ completions coming back when we're expecting an abort, and
+ https://chromiumcodereview.appspot.com/9764018/ will make the backend
+ robust to extra abort calls.
+
+2012-03-27 Ryosuke Niwa <rniwa@webkit.org>
+
+ Deleting a paragraph of text should not add elements for typing style
+ https://bugs.webkit.org/show_bug.cgi?id=82401
+
+ Reviewed by Enrica Casucci.
+
+ This behavior was explicitly supported by DeleteSelectionCommand but it doesn't match TextEdit or Firefox.
+ We're changing our behavior to match TextEdit and Firefox in this patch.
+
+ The behavior is tested by an existing test, which was renamed to deleting-text-rests-typing-style.html in this patch.
+
+ Test: editing/execCommand/deleting-text-rests-typing-style.html
+
+ * editing/DeleteSelectionCommand.cpp:
+ (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
+
+2012-03-28 Michal Mocny <mmocny@google.com>
+
+ [chromium] Add tracing events around CCLayerTreeHostImpl visibility.
+ https://bugs.webkit.org/show_bug.cgi?id=82501
+
+ Reviewed by James Robinson.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHostImpl.cpp:
+ (WebCore::CCLayerTreeHostImpl::CCLayerTreeHostImpl):
+ (WebCore::CCLayerTreeHostImpl::setVisible):
+
+2012-03-28 Florin Malita <fmalita@google.com>
+
+ Incorrect foreignObject hit test results when overlapping other SVG elements
+ https://bugs.webkit.org/show_bug.cgi?id=82059
+
+ Reviewed by Nikolas Zimmermann.
+
+ Test: svg/hittest/foreign-object-background.svg
+
+ Foreign content needs to be hit-tested atomically due to the (pseudo)
+ stacking context established by FOs.
+
+ * rendering/svg/RenderSVGForeignObject.cpp:
+ (WebCore::RenderSVGForeignObject::nodeAtFloatPoint):
+ Hit test all phases on FO HitTestForeground.
+
+2012-03-26 Shawn Singh <shawnsingh@chromium.org>
+
+ [chromium] layer->clipRect() is not initialized for layers that create a renderSurface.
+ https://bugs.webkit.org/show_bug.cgi?id=74147
+
+ Reviewed by Adrienne Walker.
+
+ Added 3 additional unit tests; Modified existing unit tests and layout tests.
+
+ The layer's clipRect and usesLayerClipping information was not
+ being initialized for layers that created a renderSurface. (It
+ was, however, being initialized for the renderSurface itself.)
+ This patch adds a unit test that reproduces that this is an error,
+ other unit tests to tightly test the value of clipRect being
+ initialized, and adds the logic to properly initialize the
+ clipRect.
+
+ Before this patch, this bug was causing flashing on tab-switch on
+ the apple iphone page. Even worse, with partial swap enabled, the
+ layers would simply disappear, because the first frame the
+ clipRect is uninitialized and the layer is not drawn, and the
+ second frame onwards, the damage tracker correctly things nothing
+ is damaged, so it doesn't draw that layer again until other damage
+ causes it to be redrawn.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::calculateDrawTransformsAndVisibilityInternal):
+
+2012-03-28 Anders Carlsson <andersca@apple.com>
+
+ "Sticky" or slow scrolling on some sites
+ https://bugs.webkit.org/show_bug.cgi?id=82512
+ <rdar://problem/11000372>
+
+ Reviewed by Andreas Kling.
+
+ When we're in the slow mode and have to update the scroll layer position on the main thread,
+ get it from the scrolling thread so we'll be in sync with the scrolling tree when the main thread is busy.
+
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::updateMainFrameScrollPositionAndScrollLayerPosition):
+ * page/scrolling/ScrollingCoordinator.h:
+ (ScrollingCoordinator):
+ * page/scrolling/ScrollingTree.cpp:
+ (WebCore::ScrollingTree::mainFrameScrollPosition):
+ (WebCore):
+ (WebCore::ScrollingTree::updateMainFrameScrollPositionAndScrollLayerPosition):
+ * page/scrolling/ScrollingTree.h:
+
+2012-03-28 Adrienne Walker <enne@google.com>
+
+ [chromium] Fix tiled layer assert for huge layers
+ https://bugs.webkit.org/show_bug.cgi?id=82486
+
+ Reviewed by James Robinson.
+
+ Test: TiledLayerChromiumTest.hugeLayerUpdateCrash
+
+ TilingData::numTiles() is calculated as the product of two ints and so
+ can potentially overflow, causing numTiles() to be incorrect. To avoid
+ calling code accidentally falling into this trap, remove this function
+ and all code that uses tile index from TilingData. This requires
+ fixing up a bunch of callers of TilingData and CCLayerTilingData.
+
+ Additionally, TilingData::numTiles() has long been a confusing
+ function name in some contexts, so rename to bool hasEmptyBounds().
+
+ Also, remove TilingData::intersectDrawQuad because there are no
+ clients of that function.
+
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::drawsContent):
+ (WebCore::TiledLayerChromium::reserveTextures):
+ (WebCore::TiledLayerChromium::prepareToUpdate):
+ (WebCore::TiledLayerChromium::prepareToUpdateIdle):
+ (WebCore::TiledLayerChromium::needsIdlePaint):
+ (WebCore::TiledLayerChromium::idlePaintRect):
+ * platform/graphics/chromium/cc/CCLayerTilingData.cpp:
+ (WebCore::CCLayerTilingData::tileRect):
+ * platform/graphics/chromium/cc/CCLayerTilingData.h:
+ (WebCore::CCLayerTilingData::hasEmptyBounds):
+ (WebCore::CCLayerTilingData::tileBounds):
+ (WebCore::CCLayerTilingData::isEmpty):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
+ (WebCore::CCTiledLayerImpl::bindContentsTexture):
+ (WebCore::CCTiledLayerImpl::appendQuads):
+ * platform/graphics/gpu/Texture.cpp:
+ (WebCore::Texture::create):
+ (WebCore::Texture::updateSubRect):
+ * platform/graphics/gpu/TilingData.cpp:
+ (WebCore::TilingData::tileBounds):
+ (WebCore::TilingData::tileBoundsWithBorder):
+ (WebCore::TilingData::tileBoundsNormalized):
+ * platform/graphics/gpu/TilingData.h:
+ (WebCore::TilingData::hasEmptyBounds):
+ (TilingData):
+ (WebCore::TilingData::assertTile):
+
+2012-03-28 Peter Rybin <peter.rybin@gmail.com>
+
+ Web Inspector: CodeGeneratorInspector.py: switch Runtime, Network and DOM domains to typed API
+ https://bugs.webkit.org/show_bug.cgi?id=81558
+
+ Reviewed by Pavel Feldman.
+
+ Client code is switched to typed API (all InspectorObject and InspectorArray types are
+ replaced with generated types from TypeBuilder according to Inspector.json).
+
+ Missing array of int specialization is added. Code generator now has a check against
+ misspelled (non-existing) domain names.
+
+ * inspector/CodeGeneratorInspector.py:
+ (Generator.go): check against misspelled domain names added.
+ * inspector/InjectedScript.cpp:
+ (WebCore::InjectedScript::evaluate):
+ (WebCore::InjectedScript::callFunctionOn):
+ (WebCore::InjectedScript::evaluateOnCallFrame):
+ (WebCore::InjectedScript::getProperties):
+ (WebCore::InjectedScript::wrapObject):
+ (WebCore::InjectedScript::wrapNode):
+ (WebCore::InjectedScript::wrapSerializedObject):
+ (WebCore::InjectedScript::makeEvalCall):
+ * inspector/InjectedScript.h:
+ (InjectedScript):
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::getDocument):
+ (WebCore::InspectorDOMAgent::pushChildNodesToFrontend):
+ (WebCore::InspectorDOMAgent::querySelectorAll):
+ (WebCore::InspectorDOMAgent::pushNodePathToFrontend):
+ (WebCore::InspectorDOMAgent::getEventListenersForNode):
+ (WebCore::InspectorDOMAgent::getSearchResults):
+ (WebCore::InspectorDOMAgent::resolveNode):
+ (WebCore::InspectorDOMAgent::getAttributes):
+ (WebCore::InspectorDOMAgent::buildObjectForNode):
+ (WebCore::InspectorDOMAgent::buildArrayForElementAttributes):
+ (WebCore::InspectorDOMAgent::buildArrayForContainerChildren):
+ (WebCore::InspectorDOMAgent::loadEventFired):
+ (WebCore::InspectorDOMAgent::didInsertDOMNode):
+ (WebCore::InspectorDOMAgent::styleAttributeInvalidated):
+ (WebCore::InspectorDOMAgent::pushNodeByPathToFrontend):
+ * inspector/InspectorDOMAgent.h:
+ (InspectorDOMAgent):
+ * inspector/InspectorPageAgent.cpp:
+ (WebCore::InspectorPageAgent::resourceTypeJson):
+ (WebCore::InspectorPageAgent::cachedResourceTypeJson):
+ (WebCore::InspectorPageAgent::buildObjectForFrameTree):
+ * inspector/InspectorPageAgent.h:
+ * inspector/InspectorResourceAgent.cpp:
+ (WebCore::buildObjectForResourceRequest):
+ (WebCore::buildObjectForResourceResponse):
+ (WebCore::buildObjectForCachedResource):
+ (WebCore::InspectorResourceAgent::willSendRequest):
+ (WebCore::InspectorResourceAgent::didReceiveResponse):
+ (WebCore::InspectorResourceAgent::didLoadResourceFromMemoryCache):
+ (WebCore::InspectorResourceAgent::buildInitiatorObject):
+ (WebCore::InspectorResourceAgent::willSendWebSocketHandshakeRequest):
+ (WebCore::InspectorResourceAgent::didReceiveWebSocketHandshakeResponse):
+ * inspector/InspectorResourceAgent.h:
+ (InspectorResourceAgent):
+ * inspector/InspectorRuntimeAgent.cpp:
+ (WebCore::InspectorRuntimeAgent::evaluate):
+ (WebCore::InspectorRuntimeAgent::callFunctionOn):
+ (WebCore::InspectorRuntimeAgent::getProperties):
+ * inspector/InspectorRuntimeAgent.h:
+ (InspectorRuntimeAgent):
+ * inspector/InspectorValues.h:
+ (InspectorArray):
+ (WebCore::InspectorArray::pushInt):
+ (WebCore):
+ * inspector/ScriptCallFrame.cpp:
+ (WebCore::ScriptCallFrame::buildInspectorObject):
+ * inspector/ScriptCallFrame.h:
+ (ScriptCallFrame):
+ * inspector/ScriptCallStack.cpp:
+ (WebCore::ScriptCallStack::buildInspectorArray):
+ * inspector/ScriptCallStack.h:
+ (ScriptCallStack):
+
+2012-03-28 Eric Seidel <eric@webkit.org>
+
+ setNeedsLayout(true, false) is super confusing to read and should use an enum instead
+ https://bugs.webkit.org/show_bug.cgi?id=82369
+
+ Reviewed by Julien Chaffraix.
+
+ I replaced all uses of the markParents bool with a MarkingBehavior
+ enum (which has two values: MarkContainingBlockChain and MarkOnlyThis).
+ I'm not sure the naming is perfect (as it's not clear to me if markParents is
+ used to mean the same thing in these 3 functions), but hopefully this code is more
+ clear. I welcome further suggested adjustment from layout experts.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::scheduleRelayout):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::layoutBlock):
+ (WebCore::RenderBlock::adjustPositionedBlock):
+ (WebCore::RenderBlock::layoutBlockChildren):
+ (WebCore::RenderBlock::layoutBlockChild):
+ (WebCore::RenderBlock::layoutPositionedObjects):
+ (WebCore::RenderBlock::markForPaginationRelayoutIfNeeded):
+ (WebCore::RenderBlock::removePositionedObjects):
+ (WebCore::RenderBlock::insertFloatingObject):
+ (WebCore::RenderBlock::positionNewFloats):
+ (WebCore::RenderBlock::markAllDescendantsWithFloatsForLayout):
+ (WebCore::RenderBlock::adjustBlockChildForPagination):
+ * rendering/RenderBlockLineLayout.cpp:
+ (WebCore::RenderBlock::layoutRunsAndFloats):
+ (WebCore::RenderBlock::layoutInlineChildren):
+ (WebCore::RenderBlock::positionNewFloatOnLine):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::positionLineBox):
+ * rendering/RenderDeprecatedFlexibleBox.cpp:
+ (WebCore::RenderDeprecatedFlexibleBox::layoutBlock):
+ (WebCore::gatherFlexChildrenInfo):
+ (WebCore::RenderDeprecatedFlexibleBox::layoutHorizontalBox):
+ (WebCore::RenderDeprecatedFlexibleBox::layoutVerticalBox):
+ (WebCore::RenderDeprecatedFlexibleBox::applyLineClamp):
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::prepareChildForPositionedLayout):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateScrollInfoAfterLayout):
+ * rendering/RenderMedia.cpp:
+ (WebCore::RenderMedia::layout):
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::setPreferredLogicalWidthsDirty):
+ * rendering/RenderObject.h:
+ (RenderObject):
+ (WebCore::RenderObject::setNeedsLayout):
+ (WebCore::RenderObject::setChildNeedsLayout):
+ * rendering/RenderRubyRun.cpp:
+ (WebCore::RenderRubyRun::layoutSpecialExcludedChild):
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::layout):
+ * rendering/RenderTableRow.cpp:
+ (WebCore::RenderTableRow::layout):
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::calcRowLogicalHeight):
+ (WebCore::RenderTableSection::layoutRows):
+ * rendering/RenderTextControl.cpp:
+ (WebCore::RenderTextControl::layoutSpecialExcludedChild):
+ * rendering/RenderTextControlSingleLine.cpp:
+ (WebCore::RenderTextControlSingleLine::layout):
+ * rendering/RenderView.cpp:
+ (WebCore::RenderView::RenderView):
+ (WebCore::RenderView::layout):
+ * rendering/mathml/RenderMathMLRoot.cpp:
+ (WebCore::RenderMathMLRoot::layout):
+ * rendering/mathml/RenderMathMLRow.cpp:
+ (WebCore::RenderMathMLRow::layout):
+ * rendering/mathml/RenderMathMLSubSup.cpp:
+ (WebCore::RenderMathMLSubSup::layout):
+ * rendering/svg/SVGRenderSupport.cpp:
+ (WebCore::SVGRenderSupport::layoutChildren):
+
+2012-03-28 Joseph Pecoraro <pecoraro@apple.com>
+
+ <http://webkit.org/b/82419> Web Inspector: Create -[DOMNode inspect] from IDL
+
+ Instead of manually creating the method in DOM.mm we can specify it in
+ Node.idl and autogenerate part of the interface.
+
+ Reviewed by Timothy Hatcher.
+
+ * bindings/objc/DOM.mm:
+ * bindings/objc/DOMPrivate.h:
+ Move the call to InspectorController::inspect from here ...
+
+ * dom/Node.h:
+ * dom/Node.idl: IDL only in an ObjC block.
+ * dom/Node.cpp:
+ (WebCore::Node::inspect):
+ ... to here.
+
+ * WebCore.xcodeproj/project.pbxproj:
+ Add the new generated file so we can Copy it in the build phase.
+
+2012-03-28 Tommy Widenflycht <tommyw@google.com>
+
+ [chromium] MediaStream API (JSEP): Introducing WebPeerConnection00Handler
+ https://bugs.webkit.org/show_bug.cgi?id=82450
+
+ Reviewed by Adam Barth.
+
+ This change removes the default PeerConnection00Handler.cpp from the Chromium build.
+
+ A major overhaul of the existing layout tests is forthcoming.
+
+ * WebCore.gypi:
+ * platform/mediastream/PeerConnection00Handler.h:
+ (WebCore):
+ (PeerConnection00Handler):
+
+2012-03-28 Robert Hogan <robert@webkit.org>
+
+ [REGRESSION] Web Inspector: column caption delimiters are misaligned in DataGrid
+ https://bugs.webkit.org/show_bug.cgi?id=82193
+
+ Reviewed by Yury Semikhatsky.
+
+ Since r111742 column width in fixed layout tables is set to the width of the cell plus its left padding plus its right padding
+ plus half its left border plus half its right border in the collapsing border model. The layout of the panel
+ headers in the inspector depended on pre-r111742 behaviour, so ended up misaligned with the content below. To cater for the
+ new method of calculating column width enforce a fixed width for the corner column by removing padding and borders (except collapsed
+ borders from adjacent cells) and specify the expected width (15px) minus the expected width of the collapsed borders (1px).
+
+ * inspector/front-end/dataGrid.css:
+ (.data-grid th.corner):
+
+2012-03-28 Alexis Menard <alexis.menard@openbossa.org>
+
+ Increase code sharing between CSSProperty and CSSPropertyLonghand.
+ https://bugs.webkit.org/show_bug.cgi?id=82479
+
+ Reviewed by Antti Koivisto.
+
+ Use longhands declarations from CSSPropertyLonghand in CSSProperty to avoid
+ code duplication.
+
+ No new tests : refactoring only, we shouldn't have any behavior difference.
+
+ * css/CSSProperty.cpp:
+ (WebCore::resolveToPhysicalProperty):
+ (WebCore::borderDirections):
+ (WebCore):
+ (WebCore::CSSProperty::resolveDirectionAwareProperty):
+
+2012-03-28 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Implement snippets renaming in scripts navigator.
+ https://bugs.webkit.org/show_bug.cgi?id=82477
+
+ Reviewed by Pavel Feldman.
+
+ Snippets renaming is implemented as editing of snippet name in scripts navigator.
+
+ * inspector/front-end/ScriptsNavigator.js:
+ (WebInspector.ScriptsNavigator.prototype._handleRenameSnippet):
+ (WebInspector.ScriptsNavigator.prototype._fileRenamed):
+ (WebInspector.ScriptsNavigator.prototype.rename.commitHandler):
+ (WebInspector.ScriptsNavigator.prototype.rename.cancelHandler):
+ (WebInspector.ScriptsNavigator.prototype.rename.afterEditing):
+ (WebInspector.BaseNavigatorTreeElement.prototype.set titleText):
+ * inspector/front-end/scriptsPanel.css:
+ (#scripts-navigator-tabbed-pane .navigator .base-navigator-tree-element-title.editing):
+
+2012-03-28 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Add context menu for snippets control.
+ https://bugs.webkit.org/show_bug.cgi?id=82475
+
+ Reviewed by Pavel Feldman.
+
+ This is a preliminary implementation of snippets control using context menu.
+ We might want to add a more discoverable one before taking snippets out of experiments.
+
+ * English.lproj/localizedStrings.js:
+ * inspector/front-end/ScriptsNavigator.js:
+ (WebInspector.ScriptsNavigator.prototype._showScriptFoldersSettingChanged):
+ (WebInspector.ScriptsNavigator.prototype._createSnippetsTree):
+ (WebInspector.ScriptsNavigator.prototype._handleSnippetContextMenuEvent):
+ (WebInspector.ScriptsNavigator.prototype._showSnippetContextMenu):
+ (WebInspector.ScriptsNavigator.prototype._handleEvaluateSnippet):
+ (WebInspector.ScriptsNavigator.prototype._handleRenameSnippet):
+ (WebInspector.ScriptsNavigator.prototype._handleRemoveSnippet):
+ (WebInspector.ScriptsNavigator.prototype._handleCreateSnippet):
+ (WebInspector.NavigatorScriptTreeElement.prototype.get navigator):
+ (WebInspector.NavigatorScriptTreeElement.prototype.onattach):
+ (WebInspector.NavigatorScriptTreeElement.prototype.onenter):
+ (WebInspector.NavigatorScriptTreeElement.prototype._handleContextMenuEvent):
+
+2012-03-28 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: ScriptsNavigator should save scroll position when switching tabs.
+ https://bugs.webkit.org/show_bug.cgi?id=82472
+
+ Reviewed by Pavel Feldman.
+
+ WebInspector.View provides save/restore scroll position capabilities.
+ This patch makes them used in ScriptsNavigator.
+
+ * inspector/front-end/ScriptsNavigator.js:
+ (WebInspector.ScriptsNavigator):
+ (WebInspector.ScriptsNavigator.prototype._createSnippetsTree):
+ * inspector/front-end/scriptsPanel.css:
+ (#scripts-navigator-tabbed-pane .tabbed-pane-content):
+ (#scripts-navigator-tabbed-pane .navigator-container):
+
+2012-03-28 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: only update Timeline overview when really needed
+ https://bugs.webkit.org/show_bug.cgi?id=81909
+
+ Reviewed by Pavel Feldman.
+
+ Switch timeline overview to using raw records, thus removing dependency on instance members of
+ TimelinePresentationModel. This requires moving record styles/categories to static getters.
+
+ * inspector/front-end/TimelineModel.js:
+ (WebInspector.TimelineModel):
+ (WebInspector.TimelineModel.startTime):
+ (WebInspector.TimelineModel.endTime):
+ (WebInspector.TimelineModel.duration):
+ (WebInspector.TimelineModel.prototype._addRecord):
+ (WebInspector.TimelineModel.prototype.reset):
+ (WebInspector.TimelineModel.prototype.minimumRecordTime):
+ (WebInspector.TimelineModel.prototype.maximumRecordTime):
+ (WebInspector.TimelineModel.prototype._updateBoundaries):
+ * inspector/front-end/TimelineOverviewPane.js:
+ (WebInspector.TimelineOverviewPane):
+ (WebInspector.TimelineOverviewPane.prototype._showTimelines):
+ (WebInspector.TimelineOverviewPane.prototype._showMemoryGraph):
+ (WebInspector.TimelineOverviewPane.prototype._setVerticalOverview):
+ (WebInspector.TimelineOverviewPane.prototype._onCategoryVisibilityChanged):
+ (WebInspector.TimelineOverviewPane.prototype._update):
+ (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips.markPercentagesForRecord):
+ (WebInspector.TimelineOverviewPane.prototype._updateCategoryStrips):
+ (WebInspector.TimelineOverviewPane.prototype.windowStartTime):
+ (WebInspector.TimelineOverviewPane.prototype.windowEndTime):
+ (WebInspector.TimelineOverviewPane.prototype._onWindowChanged):
+ (WebInspector.TimelineOverviewPane.prototype.setShowShortEvents):
+ (WebInspector.TimelineOverviewPane.prototype._scheduleRefresh):
+ (WebInspector.TimelineOverviewCalculator.prototype.computeBarGraphPercentages):
+ (WebInspector.TimelineOverviewCalculator.prototype.setWindow):
+ (WebInspector.TimelineOverviewCalculator.prototype.reset):
+ (WebInspector.HeapGraph):
+ (WebInspector.HeapGraph.prototype.update):
+ (WebInspector.TimelineVerticalOverview):
+ (WebInspector.TimelineVerticalOverview.prototype.reset):
+ (WebInspector.TimelineVerticalOverview.prototype.update):
+ (WebInspector.TimelineVerticalOverview.prototype.wasShown):
+ (WebInspector.TimelineVerticalOverview.prototype.willHide):
+ (WebInspector.TimelineVerticalOverview.prototype._aggregateFrameStatistics):
+ (WebInspector.TimelineVerticalOverview.prototype._aggregateRecords):
+ (WebInspector.TimelineVerticalOverview.prototype.getWindowTimes):
+ (WebInspector.TimelineVerticalOverview.prototype._onRecordAdded):
+ (WebInspector.TimelineAggregatedRecord):
+ (WebInspector.TimelineAggregatedRecord.prototype._aggregateStatistics):
+ * inspector/front-end/TimelinePanel.js:
+ (WebInspector.TimelinePanel):
+ (WebInspector.TimelinePanel.prototype._createStatusbarButtons):
+ (WebInspector.TimelinePanel.prototype._toggleFilterButtonClicked):
+ (WebInspector.TimelinePanel.prototype._resetPanel):
+ (WebInspector.TimelinePanel.prototype._refresh):
+ (WebInspector.TimelineCalculator):
+ (WebInspector.TimelineCalculator.prototype.formatTime):
+ * inspector/front-end/TimelinePresentationModel.js:
+ (WebInspector.TimelinePresentationModel):
+ (WebInspector.TimelinePresentationModel.categories):
+ (WebInspector.TimelinePresentationModel.recordStyle):
+ (WebInspector.TimelinePresentationModel.categoryForRecord):
+ (WebInspector.TimelinePresentationModel.prototype.reset):
+ (WebInspector.TimelinePresentationModel.prototype.addRecord):
+ (WebInspector.TimelinePresentationModel.Record):
+ (WebInspector.TimelinePresentationModel.Record.prototype.generatePopupContent):
+
+2012-03-28 Arvid Nilsson <anilsson@rim.com>
+
+ [BlackBerry] Plumb through GraphicsLayer::contentsOpaque() to LayerTiler
+ https://bugs.webkit.org/show_bug.cgi?id=82457
+
+ Reviewed by Rob Buis.
+
+ The LayerTiler already knows not to turn on GL_BLEND for opaque layers.
+ However, it only ever sets the opaque flag for image layers and color
+ layers, never for content layers.
+
+ This was no big deal, because contentsOpaque() is currently false for
+ all layers except the root layer, which we always drew using the
+ BlackBerry::WebKit::BackingStore anyway.
+
+ When we start using RenderLayerBacking::m_usingTiledCacheLayer=true on
+ the root layer in situations where the BackingStore is unavailable, we
+ can speed up rendering of the root layer by honouring the opaque flag.
+
+ Fixed by plumbing through the GraphicsLayer::contentsOpaque() flag all
+ the way to LayerTiler and on to Texture.
+
+ * platform/graphics/blackberry/LayerData.h:
+ (WebCore::LayerData::LayerData):
+ (WebCore::LayerData::isOpaque):
+ (LayerData):
+ * platform/graphics/blackberry/LayerTile.cpp:
+ (WebCore::LayerTile::updateContents):
+ * platform/graphics/blackberry/LayerTile.h:
+ (LayerTile):
+ * platform/graphics/blackberry/LayerTiler.cpp:
+ (WebCore::LayerTiler::updateTextureContentsIfNeeded):
+ (WebCore::LayerTiler::performTileJob):
+ * platform/graphics/blackberry/LayerTiler.h:
+ (WebCore::LayerTiler::TextureJob::TextureJob):
+ (WebCore::LayerTiler::TextureJob::updateContents):
+ * platform/graphics/blackberry/LayerWebKitThread.h:
+ (WebCore::LayerWebKitThread::setOpaque):
+ * platform/graphics/blackberry/Texture.h:
+ (Texture):
+ * platform/graphics/blackberry/TextureCacheCompositingThread.cpp:
+ (WebCore::TextureCacheCompositingThread::updateContents):
+ * platform/graphics/blackberry/TextureCacheCompositingThread.h:
+ (TextureCacheCompositingThread):
+
+2012-03-28 Andrey Kosyakov <caseq@chromium.org>
+
+ Web Inspector: nuke HeapGraph.setSize(), do it automagically on update
+ https://bugs.webkit.org/show_bug.cgi?id=82471
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/TimelineOverviewPane.js:
+ (WebInspector.TimelineOverviewPane.prototype.update):
+ (WebInspector.HeapGraph.prototype.update):
+
+2012-03-28 Pavel Podivilov <podivilov@chromium.org>
+
+ Web Inspector: dispatch console-message-added and console-messages-cleared events on UISourceCode.
+ https://bugs.webkit.org/show_bug.cgi?id=82463
+
+ Reviewed by Vsevolod Vlasov.
+
+ Those events are related to specific UISourceCode. See bug 82224 for more details.
+
+ * inspector/front-end/DebuggerPresentationModel.js:
+ (WebInspector.DebuggerPresentationModel):
+ (WebInspector.DebuggerPresentationModel.prototype._addConsoleMessageToScript):
+ (WebInspector.DebuggerPresentationModel.prototype._consoleCleared):
+ (WebInspector.DebuggerPresentationModel.prototype._debuggerReset):
+ (WebInspector.UISourceCodeImpl):
+ (WebInspector.UISourceCodeImpl.prototype.consoleMessages):
+ (WebInspector.UISourceCodeImpl.prototype.consoleMessageAdded):
+ (WebInspector.UISourceCodeImpl.prototype.consoleMessagesCleared):
+ * inspector/front-end/JavaScriptSourceFrame.js:
+ (WebInspector.JavaScriptSourceFrame):
+ (WebInspector.JavaScriptSourceFrame.prototype.beforeTextChanged):
+ (WebInspector.JavaScriptSourceFrame.prototype._consoleMessageAdded):
+ (WebInspector.JavaScriptSourceFrame.prototype._consoleMessagesCleared):
+ (WebInspector.JavaScriptSourceFrame.prototype._onTextViewerContentLoaded):
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._sourceFrameLoaded):
+ * inspector/front-end/UISourceCode.js:
+ (WebInspector.UISourceCode.prototype.breakpoints):
+ (WebInspector.UISourceCode.prototype.consoleMessages):
+
+2012-03-28 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [GTK] Implement PlatformStrategies
+ https://bugs.webkit.org/show_bug.cgi?id=82454
+
+ Reviewed by Xan Lopez.
+
+ * GNUmakefile.list.am: Remove PluginDataGtk.cpp. The same
+ functionality is now implemented using platform strategies.
+ * plugins/gtk/PluginDataGtk.cpp: Removed.
+
+2012-03-28 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: [Regression] TabIndex is not correctly restored after editing.
+ https://bugs.webkit.org/show_bug.cgi?id=82464
+
+ Reviewed by Pavel Feldman.
+
+ This fixes incorrect usage of isNaN that returns false for null value.
+ Drive-by javascript compilation fix.
+
+ * inspector/front-end/CompilerScriptMapping.js:
+ (WebInspector.CompilerScriptMapping.prototype.addScript): compilation fix.
+ * inspector/front-end/ResourceScriptMapping.js:
+ (WebInspector.ResourceScriptMapping.prototype._uiSourceCodeChanged): compilation fix.
+ * inspector/front-end/SnippetsModel.js:
+ (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript): compilation fix.
+ * inspector/front-end/UIUtils.js:
+ (WebInspector.startEditing.cleanUpAfterEditing): incorrect usage of isNaN fix.
+
+2012-03-28 Yi Shen <yi.4.shen@nokia.com>
+
+ An extra line break is inserted when pasting into a font element.
+ https://bugs.webkit.org/show_bug.cgi?id=71207
+
+ Reviewed by Ryosuke Niwa.
+
+ Fix an editing bug where inserting text into a font element would
+ create an extra div element in the dom tree. The
+ WebCore::positionAvoidingPrecedingNodes() tries to set the correct
+ destination position by checking the next visible position, however,
+ it causes the position moves into the child element in somecase.
+ Instead, we should only check the position in parent after node.
+
+ Test: editing/inserting/insert-text-into-font.html
+
+ * editing/ReplaceSelectionCommand.cpp:
+ (WebCore::positionAvoidingPrecedingNodes):
+
+2012-03-28 Sergio Villar Senin <svillar@igalia.com>
+
+ [Soup] DNS prefetching spams resolver, shoots self in the foot
+ https://bugs.webkit.org/show_bug.cgi?id=41630
+
+ Reviewed by Martin Robinson.
+
+ Added generic DNSResolveQueue class to throttle DNS
+ prefetches. It's an abstract refactoring of CFNET's
+ DNSResolveQueue. Platform specific methods implemented for soup
+ and CFNET backends.
+
+ No new tests required as we're just refactoring existing code to
+ be used by two different ports.
+
+ * CMakeLists.txt: added new file.
+ * GNUmakefile.list.am: ditto.
+ * WebCore.vcproj/WebCore.vcproj: ditto.
+ * WebCore.xcodeproj/project.pbxproj: ditto.
+ * platform/network/DNSResolveQueue.cpp: Added.
+ (WebCore):
+ (WebCore::DNSResolveQueue::add): adds a new host to be prefetched.
+ (WebCore::DNSResolveQueue::fired): by using a delay we coalesce
+ several prefetch requests and try to resolve them all here.
+ * platform/network/DNSResolveQueue.h: Added.
+ (WebCore):
+ (DNSResolveQueue): class that implements DNS prefetch
+ throttling using a template pattern.
+ (WebCore::DNSResolveQueue::shared):
+ (WebCore::DNSResolveQueue::decrementRequestCount):
+ * platform/network/cf/DNSCFNet.cpp:
+ (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
+ (WebCore::DNSResolveQueue::platformResolve):
+ * platform/network/soup/DNSSoup.cpp:
+ (WebCore):
+ (WebCore::DNSResolveQueue::platformProxyIsEnabledInSystemPreferences):
+ (WebCore::resolvedCallback):
+ (WebCore::DNSResolveQueue::platformResolve):
+ (WebCore::prefetchDNS):
+
+2012-03-28 Eugene Girard <girard@chromium.org>
+
+ window.scrollBy() scrolls incorrectly when zoomed in/out
+ https://bugs.webkit.org/show_bug.cgi?id=45228
+
+ Reviewed by Simon Fraser.
+
+ scrollBy now uses layout (not CSS) units. (As scrollTo does.)
+
+ Test: fast/dom/zoom-scroll-page-test.html
+
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::scrollBy):
+
+2012-03-28 Stephen Chenney <schenney@chromium.org>
+
+ Null dereference in SVGTextElement::animatedLocalTransform()
+ https://bugs.webkit.org/show_bug.cgi?id=82375
+
+ Reviewed by Nikolas Zimmermann.
+
+ A poorly structured SVG file with a text element inside an
+ animatedTransform element leaves the text element placed outside of
+ the SVG root and it has no renderer(). Later attempts to use the
+ renderer in animatedLocalTransform fail.
+
+ Test: svg/custom/get-text-element-transform-crash.html
+
+ * svg/SVGTextElement.cpp:
+ (WebCore::SVGTextElement::animatedLocalTransform): Added a check for null renderer, and do not check
+ for style transform if there is no renderer.
+
+2012-03-27 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Enable animVal support for SVGAnimatedPreserveAspectRatio
+ https://bugs.webkit.org/show_bug.cgi?id=82326
+
+ Reviewed by Zoltan Herczeg.
+
+ Enable animVal support for SVGAnimatedPreserveAspectRatio. Very simple now that everything is prepared.
+ All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedPreserveAspectRatioAnimator.
+
+ Modernize SVGPreserveAspectRatio, align parsing this object from String, with the other SVG DOM primitives,
+ who supply a "void parse(const String&)" method, for this task.
+
+ Extended existing tests to cover this.
+
+ * svg/SVGAnimatedPreserveAspectRatio.cpp:
+ (WebCore::SVGAnimatedPreserveAspectRatioAnimator::constructFromString):
+ (WebCore::SVGAnimatedPreserveAspectRatioAnimator::startAnimValAnimation):
+ (WebCore::SVGAnimatedPreserveAspectRatioAnimator::stopAnimValAnimation):
+ (WebCore::SVGAnimatedPreserveAspectRatioAnimator::resetAnimValToBaseVal):
+ (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValWillChange):
+ (WebCore::SVGAnimatedPreserveAspectRatioAnimator::animValDidChange):
+ * svg/SVGAnimatedPreserveAspectRatio.h:
+ (SVGAnimatedPreserveAspectRatioAnimator):
+ * svg/SVGAnimatedType.cpp:
+ (WebCore::SVGAnimatedType::valueAsString):
+ (WebCore::SVGAnimatedType::setValueAsString):
+ (WebCore::SVGAnimatedType::supportsAnimVal):
+ * svg/SVGFEImageElement.cpp:
+ (WebCore::SVGFEImageElement::parseAttribute):
+ * svg/SVGFitToViewBox.cpp:
+ (WebCore::SVGFitToViewBox::parseAttribute):
+ * svg/SVGImageElement.cpp:
+ (WebCore::SVGImageElement::parseAttribute):
+ * svg/SVGPreserveAspectRatio.cpp:
+ (WebCore::SVGPreserveAspectRatio::parse):
+ (WebCore):
+ * svg/SVGPreserveAspectRatio.h:
+ (SVGPreserveAspectRatio):
+ * svg/SVGViewSpec.cpp:
+ (WebCore::SVGViewSpec::setPreserveAspectRatioString):
+ (WebCore::SVGViewSpec::parseViewSpec):
+
+2012-03-28 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: [v8] inspection of CanvasPixelArray is slow.
+ https://bugs.webkit.org/show_bug.cgi?id=82455
+
+ Reviewed by Vsevolod Vlasov.
+
+ Added CanvasPixelArray to the list of classes that we consider
+ arrays.
+
+ * bindings/v8/custom/V8InjectedScriptHostCustom.cpp:
+ (WebCore::V8InjectedScriptHost::typeCallback):
+
+2012-03-28 Leandro Gracia Gil <leandrogracia@chromium.org>
+
+ Selectively retrieve text content around a given position.
+ https://bugs.webkit.org/show_bug.cgi?id=78361
+
+ Reviewed by Ryosuke Niwa.
+
+ Tests: a new layout test will be introduced once the required WebKit API code is ready.
+
+ Introduce the DOMTextContentWalker class to selectively retrieve content
+ around a given VisiblePosition into a string in such a way that a text
+ Range can be extracted later from a pair of the string's positions.
+
+ A new boolean called m_shouldStop is also introduced in the TextIterator to force
+ it advancing under certain conditions. Although this is usually done by setting
+ m_positionNode to zero, it can't be applied in this case since by doing so the
+ iterator's range is lost.
+
+ * WebCore.gypi:
+ * editing/SurroundingText.cpp: Added.
+ (WebCore):
+ (WebCore::SurroundingText::SurroundingText):
+ (WebCore::SurroundingText::rangeFromContentOffsets):
+ (WebCore::SurroundingText::content):
+ (WebCore::SurroundingText::positionOffsetInContent):
+ * editing/SurroundingText.h: Added.
+ (WebCore):
+ (SurroundingText):
+ * editing/TextIterator.cpp:
+ (WebCore::TextIterator::TextIterator):
+ (WebCore::TextIterator::advance):
+ (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
+ (WebCore::SimplifiedBackwardsTextIterator::advance):
+ * editing/TextIterator.h:
+ (WebCore::TextIterator::atEnd):
+ (TextIterator):
+ (WebCore::SimplifiedBackwardsTextIterator::atEnd):
+ (SimplifiedBackwardsTextIterator):
+ * html/HTMLFormControlElement.cpp:
+ (WebCore::HTMLFormControlElement::enclosingFormControlElement):
+ (WebCore):
+ * html/HTMLFormControlElement.h:
+ (HTMLFormControlElement):
+
+2012-03-28 Alexis Menard <alexis.menard@openbossa.org>
+
+ Speed up updates of existing CSS properties from JS.
+ https://bugs.webkit.org/show_bug.cgi?id=82235
+
+ Reviewed by Andreas Kling.
+
+ Improve the way we handle updating an existing CSS property by replacing its value
+ by the new one rather than removing the old value and then adding the new one. This
+ speed up by 35% PerformanceTests/CSS/CSSPropertyUpdateValue.html.
+
+ No new tests : Updating existing tests that were relying on the order of the properties
+ after modification. Each updated property is not appended to the list of properties of the
+ style therefore the cssText value is slightly different. It matches Firefox behavior but not
+ Opera.
+
+ * css/StylePropertySet.cpp:
+ (WebCore::StylePropertySet::addParsedProperty):
+
+2012-03-28 Leo Yang <leo.yang@torchmobile.com.cn>
+
+ [BlackBerry] Remove PlatformMouseEvent::setClickCount for BlackBerry
+ https://bugs.webkit.org/show_bug.cgi?id=82422
+
+ Reviewed by Rob Buis.
+
+ PlatformMouseEvent::setClickCount() is never used by BlackBerry.
+ The declaration was added in PlatformMouseEvent.h internally for
+ BlackBerry porting, but it has not been upstreamed yet.
+
+ * platform/blackberry/PlatformMouseEventBlackBerry.cpp:
+
+2012-03-27 Antti Koivisto <antti@apple.com>
+
+ Separate @import rules from other rules in CSSStyleSheet
+ https://bugs.webkit.org/show_bug.cgi?id=82384
+
+ Reviewed by Andreas Kling.
+
+ Import rules always come before all other rules (except @charset). They currently live
+ in the generic child rule vector. They can be moved to a vector of their own for stronger
+ typing and more focused traversal. This will also make future refactoring easier.
+
+ - @import rules go to m_importRules
+ - the rest go to m_childRules
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::collectMatchingRulesForList):
+ * css/CSSStyleSheet.cpp:
+ (WebCore::CSSStyleSheet::parserAppendRule):
+ (WebCore::CSSStyleSheet::length):
+ (WebCore::CSSStyleSheet::item):
+ (WebCore::CSSStyleSheet::clearRules):
+ (WebCore::CSSStyleSheet::rules):
+ (WebCore::CSSStyleSheet::insertRule):
+ (WebCore::CSSStyleSheet::deleteRule):
+ (WebCore::CSSStyleSheet::isLoading):
+ (WebCore::CSSStyleSheet::addSubresourceStyleURLs):
+ * css/CSSStyleSheet.h:
+ (WebCore):
+ (CSSStyleSheet):
+ (WebCore::CSSStyleSheet::childRules):
+ (WebCore::CSSStyleSheet::importRules):
+
+2012-03-28 Pavel Feldman <pfeldman@chromium.org>
+
+ Web Inspector: REGRESSION: Stack overflow on the page with > 100kloc
+ https://bugs.webkit.org/show_bug.cgi?id=82436
+
+ Reviewed by Yury Semikhatsky.
+
+ This change migrates to manual splice implementation that uses additional
+ information about the range being inserted to make it work faster / allocate
+ less memory.
+
+ * inspector/front-end/TextEditorModel.js:
+ (WebInspector.TextEditorModel.endsWithBracketRegex.):
+
+2012-03-28 Pavel Podivilov <podivilov@chromium.org>
+
+ Web Inspector: breakpoints are not shown in sidebar pane after reload.
+ https://bugs.webkit.org/show_bug.cgi?id=82351
+
+ Reviewed by Pavel Feldman.
+
+ When UISourceCode is added to ScriptsPanel, it could already have breakpoints.
+ We should iterate over existing breakpoints and add them to sidebar pane.
+
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
+
+2012-03-28 Li Yin <li.yin@intel.com>
+
+ [WebSocket]The Sec-WebSocket-Protocol must not appear more than once in an HTTP response
+ https://bugs.webkit.org/show_bug.cgi?id=82432
+
+ Reviewed by Kent Tamura.
+
+ From RFC6455: http://tools.ietf.org/html/rfc6455#section-11.3.4
+ The |Sec-WebSocket-Protocol| header field must not appear
+ more than once in an HTTP response.
+
+ Test: http/tests/websocket/tests/hybi/handshake-fail-by-more-protocol-header.html
+
+ * Modules/websockets/WebSocketHandshake.cpp:
+ (WebCore::WebSocketHandshake::readHTTPHeaders):
+
+2012-03-27 James Robinson <jamesr@chromium.org>
+
+ [chromium] Transfer wheel fling via WebCompositorInputHandlerClient
+ https://bugs.webkit.org/show_bug.cgi?id=81740
+
+ Reviewed by Adrienne Walker.
+
+ Adds the ability to construct an in-progress PlatformGestureAnimation.
+
+ * platform/ActivePlatformGestureAnimation.cpp:
+ (WebCore::ActivePlatformGestureAnimation::create):
+ (WebCore):
+ (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
+ * platform/ActivePlatformGestureAnimation.h:
+ (ActivePlatformGestureAnimation):
+ * platform/TouchpadFlingPlatformGestureCurve.cpp:
+ (WebCore::TouchpadFlingPlatformGestureCurve::create):
+ (WebCore::TouchpadFlingPlatformGestureCurve::TouchpadFlingPlatformGestureCurve):
+ * platform/TouchpadFlingPlatformGestureCurve.h:
+ (TouchpadFlingPlatformGestureCurve):
+
+2012-03-27 Nat Duca <nduca@chromium.org>
+
+ [chromium] Route monotonic clock up from compositor
+ https://bugs.webkit.org/show_bug.cgi?id=82154
+
+ Reviewed by James Robinson.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::updateAnimations):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (CCLayerTreeHost):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::scheduledActionBeginFrame):
+ (WebCore::CCThreadProxy::beginFrame):
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+ (WebCore::CCThreadProxy::BeginFrameAndCommitState::BeginFrameAndCommitState):
+ (BeginFrameAndCommitState):
+
+2012-03-27 Robin Cao <robin.cao@torchmobile.com.cn>
+
+ [BlackBerry] Upstream LayerAnimation.{cpp, h}
+ https://bugs.webkit.org/show_bug.cgi?id=80123
+
+ Reviewed by Rob Buis.
+
+ Initial upstream, no new tests.
+
+ * platform/graphics/blackberry/LayerAnimation.cpp: Added.
+ (WebCore):
+ (WebCore::solveEpsilon):
+ (WebCore::solveCubicBezierFunction):
+ (WebCore::solveStepsFunction):
+ (WebCore::timingFunctionForAnimationValue):
+ (WebCore::progress):
+ (WebCore::fetchIntervalEndpoints):
+ (WebCore::LayerAnimation::apply):
+ (WebCore::LayerAnimation::blendTransform):
+ (WebCore::LayerAnimation::blendOpacity):
+ (WebCore::LayerAnimation::validateTransformLists):
+ * platform/graphics/blackberry/LayerAnimation.h: Added.
+ (WebCore):
+ (LayerAnimation):
+ (WebCore::LayerAnimation::create):
+ (WebCore::LayerAnimation::clone):
+ (WebCore::LayerAnimation::~LayerAnimation):
+ (WebCore::LayerAnimation::name):
+ (WebCore::LayerAnimation::setStartTime):
+ (WebCore::LayerAnimation::idFromAnimation):
+ (WebCore::LayerAnimation::isEqualToAnimation):
+ (WebCore::LayerAnimation::id):
+ (WebCore::LayerAnimation::property):
+ (WebCore::LayerAnimation::boxSize):
+ (WebCore::LayerAnimation::timeOffset):
+ (WebCore::LayerAnimation::startTime):
+ (WebCore::LayerAnimation::valueCount):
+ (WebCore::LayerAnimation::timingFunction):
+ (WebCore::LayerAnimation::duration):
+ (WebCore::LayerAnimation::iterationCount):
+ (WebCore::LayerAnimation::direction):
+ (WebCore::LayerAnimation::valueAt):
+ (WebCore::LayerAnimation::LayerAnimation):
+
+2012-03-27 Kenichi Ishibashi <bashi@chromium.org>
+
+ [Chromium] Uninitialized access in SimpleFontDataSkia::platformInit
+ https://bugs.webkit.org/show_bug.cgi?id=82411
+
+ Reviewed by Kent Tamura.
+
+ SimpleFontDataSkia::platformInit() could call widthForGlyph(), which
+ accesses m_zeroWidthSpaceGlyph. This causes a valgrind memcheck error
+ because m_zeroWidthSpaceGlyph isn't initialized at this point.
+ Initialize m_zeroWidthSpaceGlyph with zero so that widthForGlyph() can
+ return appropriate value(The value zero here means "unknown glyph").
+
+ No new tests. I manually confirmed this change fixes the valgrind
+ memcheck error.
+
+ * platform/graphics/skia/SimpleFontDataSkia.cpp:
+ (WebCore::SimpleFontData::platformInit):
+
+2012-03-27 YoungTaeck Song <youngtaeck.song@samsung.com>
+
+ [EFL][WK2] Add RunLoopEfl and WorkQueueEfl
+ https://bugs.webkit.org/show_bug.cgi?id=62777
+
+ Reviewed by Hajime Morita.
+
+ Add initial version RunLoopEfl for WebKit2 Efl.
+
+ * platform/RunLoop.h:
+ (TimerBase):
+ (RunLoop):
+ * platform/efl/RunLoopEfl.cpp:
+ (WebCore::RunLoop::RunLoop):
+ (WebCore::RunLoop::~RunLoop):
+ (WebCore):
+ (WebCore::RunLoop::run):
+ (WebCore::RunLoop::stop):
+ (WebCore::RunLoop::wakeUpEvent):
+ (WebCore::RunLoop::wakeUp):
+ (WebCore::RunLoop::TimerBase::TimerBase):
+ (WebCore::RunLoop::TimerBase::~TimerBase):
+ (WebCore::RunLoop::TimerBase::timerFired):
+ (WebCore::RunLoop::TimerBase::start):
+ (WebCore::RunLoop::TimerBase::stop):
+ (WebCore::RunLoop::TimerBase::isActive):
+
+2012-03-27 Benjamin Poulain <bpoulain@apple.com>
+
+ Reinforce Geolocation to prevent accidental leak of the user position
+ https://bugs.webkit.org/show_bug.cgi?id=82396
+
+ Reviewed by Adam Barth.
+
+ It is very important not to provide the position of the user to a page
+ unless the user authorize it.
+
+ The code used to make it easy to cause such problems, because any part
+ of the Geolocation object could invoke the success callback directly.
+
+ This patch add encapsulation for all the attributes of GeoNotifier,
+ and add extra guards for the two callbacks.
+
+ In the case of the success callback, we do one extra check before sending
+ the value to the bindings.
+
+ * Modules/geolocation/Geolocation.cpp:
+ (WebCore::Geolocation::GeoNotifier::runSuccessCallback):
+ (WebCore::Geolocation::GeoNotifier::runErrorCallback):
+ (WebCore):
+ (WebCore::Geolocation::GeoNotifier::stopTimer):
+ (WebCore::Geolocation::GeoNotifier::timerFired):
+ (WebCore::Geolocation::startRequest):
+ (WebCore::Geolocation::sendError):
+ (WebCore::Geolocation::sendPosition):
+ (WebCore::Geolocation::stopTimer):
+ (WebCore::Geolocation::extractNotifiersWithCachedPosition):
+ (WebCore::Geolocation::startUpdating):
+ * Modules/geolocation/Geolocation.h:
+ (WebCore::Geolocation::isAllowed):
+ (Geolocation):
+ (GeoNotifier):
+ (WebCore::Geolocation::GeoNotifier::options):
+ (WebCore::Geolocation::GeoNotifier::useCachedPosition):
+
+2012-03-27 Kausalya Madhusudhanan <kmadhusu@chromium.org>
+
+ [Coverity] Address some uninitialized constructor values.
+ https://bugs.webkit.org/show_bug.cgi?id=82376
+
+ Reviewed by James Robinson.
+
+ New tests are not required since I did not modify any code behavior.
+
+ * html/shadow/MediaControlRootElementChromium.cpp:
+ (WebCore::MediaControlRootElementChromium::MediaControlRootElementChromium):
+ * inspector/InspectorIndexedDBAgent.h:
+ (InspectorIndexedDBAgent):
+ * inspector/InspectorTimelineAgent.cpp:
+ (WebCore::InspectorTimelineAgent::InspectorTimelineAgent):
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::ScrollingCoordinator::ScrollingCoordinator):
+ * platform/ScrollAnimatorNone.cpp:
+ (WebCore::ScrollAnimatorNone::ScrollAnimatorNone):
+ * platform/chromium/DataTransferItemChromium.cpp:
+ (WebCore::DataTransferItemChromium::DataTransferItemChromium):
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+ (WebCore::ImageBuffer::ImageBuffer):
+ * storage/StorageTask.cpp:
+ (WebCore::StorageTask::StorageTask):
+
+2012-03-27 Alexis Menard <alexis.menard@openbossa.org>
+
+ Simplify CSSPropertyBorderSpacing parsing.
+ https://bugs.webkit.org/show_bug.cgi?id=82397
+
+ Reviewed by Benjamin Poulain.
+
+ Remove the local array of longhand properties as it doesn't really
+ bring much in this simple parsing algorithm.
+
+ No new tests, no functionality change intended.
+
+ * css/CSSParser.cpp:
+ (WebCore::CSSParser::parseValue):
+
+2012-03-27 Anders Carlsson <andersca@apple.com>
+
+ Fix race condition when initializing the scrolling thread
+ https://bugs.webkit.org/show_bug.cgi?id=82398
+ <rdar://problem/11002166>
+
+ Reviewed by Sam Weinig.
+
+ Lock m_initializeRunLoopConditionMutex when assigning m_threadIdentifier since we're
+ asserting that it's not null in the scrolling thread.
+
+ * page/scrolling/ScrollingThread.cpp:
+ (WebCore::ScrollingThread::createThreadIfNeeded):
+
+2012-03-27 Luke Macpherson <macpherson@chromium.org>
+
+ Add assertions to valueForLength() and RenderBox::computeLogicalWidthInRegionUsing() to help with debugging.
+ https://bugs.webkit.org/show_bug.cgi?id=82393
+
+ Reviewed by Eric Seidel.
+
+ No new tests / adding assetions only.
+
+ * css/LengthFunctions.cpp:
+ (WebCore::valueForLength):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
+
+2012-03-27 Tony Chang <tony@chromium.org>
+
+ use the correct size when computing flex-pack space
+ https://bugs.webkit.org/show_bug.cgi?id=82378
+
+ Reviewed by Ojan Vafai.
+
+ Fix 2 bugs:
+ - We weren't properly updating available space before computing
+ packing space. If a min/max is not hit, we still need to adjust
+ the available free space.
+ - For flex-pack:end, we need to put the overflow in the start edge.
+
+ New test cases in css3/flexbox/flex-pack.html
+
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
+ (WebCore::initialPackingOffset):
+
+2012-03-27 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Unknown transforms should be treated as non-axis aligned on main thread
+ https://bugs.webkit.org/show_bug.cgi?id=82370
+
+ Reviewed by Adrienne Walker.
+
+ On main thread, animating transforms have "unknown" values as they are changing
+ out of sync on the impl thread. So treat them as non-axis-aligned since they
+ may be, when deciding to create a render surface.
+
+ In addition, since surfaces are cheap on main thread, create one for all layers
+ with animating transforms and a drawing descendant, as this allows paint culling
+ within the layer's subtree (the animated transform won't affect drawTransforms
+ inside the subtree).
+
+ Also renamed the layerIsInAnimatingSubtreeFor* to animatingTransformTo*.
+ The old name made me pause and think what it meant and I'm the one who
+ created it. Hopefully this is more clear.
+
+ Unit test: CCLayerTreeHostCommonTest.verifyAnimationsForRenderSurfaceHierarchy
+
+ * platform/graphics/chromium/cc/CCLayerTreeHostCommon.cpp:
+ (WebCore::transformToParentIsKnown):
+ (WebCore):
+ (WebCore::subtreeShouldRenderToSeparateSurface):
+ (WebCore::calculateDrawTransformsAndVisibilityInternal):
+
+2012-03-27 Dirk Pranke <dpranke@chromium.org>
+
+ Re-land r112277; reverting it doesn't seem to have fixed anything.
+
+ Unreviewed, build fix.
+
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::insertedIntoDocument):
+ (WebCore::SVGUseElement::svgAttributeChanged):
+ (WebCore::SVGUseElement::willRecalcStyle):
+ (WebCore::SVGUseElement::finishParsingChildren):
+ * xml/XMLErrors.cpp:
+ (WebCore::XMLErrors::insertErrorMessageBlock):
+
+2012-03-27 Dana Jansens <danakj@chromium.org>
+
+ [chromium] Rename opaqueContentsRegion() to visibleContentOpaqueRegion()
+ https://bugs.webkit.org/show_bug.cgi?id=81689
+
+ Reviewed by Adrienne Walker.
+
+ The return value from this function is a region of opaque pixels in the
+ layer's content space that intersect with its visible rect. Rather than
+ adding a comment to this effect, renaming the method to make it clear.
+
+ * platform/graphics/chromium/LayerChromium.h:
+ (WebCore::LayerChromium::visibleContentOpaqueRegion):
+ * platform/graphics/chromium/TiledLayerChromium.cpp:
+ (WebCore::TiledLayerChromium::visibleContentOpaqueRegion):
+ * platform/graphics/chromium/TiledLayerChromium.h:
+ * platform/graphics/chromium/cc/CCLayerImpl.h:
+ (WebCore::CCLayerImpl::visibleContentOpaqueRegion):
+ * platform/graphics/chromium/cc/CCOcclusionTracker.cpp:
+ (WebCore::computeOcclusionBehindLayer):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.cpp:
+ (WebCore::CCTiledLayerImpl::visibleContentOpaqueRegion):
+ * platform/graphics/chromium/cc/CCTiledLayerImpl.h:
+ (CCTiledLayerImpl):
+
+2012-03-27 James Robinson <jamesr@chromium.org>
+
+ Scrollable plugins not registered properly in ScrollingCoordinator
+ https://bugs.webkit.org/show_bug.cgi?id=82163
+
+ Reviewed by Anders Carlsson.
+
+ Whenever a ScrollableArea is added or removed from a FrameView's ScrollableAreaSet, we have to recalculate the
+ nonFastScrollableRegion. This can happen for certain types of plugins that are scrollable.
+
+ This also reverts 112142 which was a not quite right way to handle these plugins.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::addScrollableArea):
+ (WebCore::FrameView::removeScrollableArea):
+ * page/scrolling/ScrollingCoordinator.cpp:
+ (WebCore::computeNonFastScrollableRegion):
+ (WebCore::ScrollingCoordinator::frameViewScrollableAreasDidChange):
+ (WebCore):
+ * page/scrolling/ScrollingCoordinator.h:
+ (ScrollingCoordinator):
+ * plugins/PluginViewBase.h:
+
+2012-03-27 Adam Klein <adamk@chromium.org>
+
+ Hold a reference to refChild in insertBefore before calling collectChildrenAndRemoveFromOldParent
+ https://bugs.webkit.org/show_bug.cgi?id=82377
+
+ Reviewed by Ryosuke Niwa.
+
+ This fixes a regression from r111925.
+
+ Test: fast/dom/insertBefore-refChild-crash.html
+
+ * dom/ContainerNode.cpp:
+ (WebCore::ContainerNode::insertBefore): Move the 'next' RefPtr above the call to
+ collectChildrenAndRemoveFromOldParent and rename refChildPreviousSibling
+ to 'prev' (matching appendChild and replaceChild).
+
+2012-03-27 Ryosuke Niwa <rniwa@webkit.org>
+
+ cssText should not generate literal 'initial' in shorthand properties
+ https://bugs.webkit.org/show_bug.cgi?id=82364
+
+ Reviewed by Antti Koivisto.
+
+ Fixed the bug by treating initial value as if the value is not set.
+ While this is incorrect for properties that inherits by default,
+ it's strictly better than generating unparsable value as we do today.
+
+ The proper fix is for CSSInitialValue::cssText to fetch the respective
+ default value from what's currently in CSSStyleSelector code but that requires
+ a considerable amount of refactoring and work.
+
+ * css/StylePropertySet.cpp:
+ (WebCore::StylePropertySet::getShorthandValue):
+ (WebCore::StylePropertySet::getCommonValue):
+
+2012-03-26 Adam Klein <adamk@chromium.org>
+
+ Always set V8 wrappers via V8DOMWrapper::setJSWrapperFor* instead of WeakReferenceMap::set()
+ https://bugs.webkit.org/show_bug.cgi?id=82256
+
+ Reviewed by Adam Barth.
+
+ This moves leakRef() calls out of generated code, centralizing them in
+ V8DOMWrapper implementation. Ideally, WeakReferenceMap::set would take
+ PassRefPtrs, but that's tricky given that some WeakReferenceMap's KeyType is 'void'
+ (which clearly can't be wrapped in a PassRefPtr).
+
+ Updated binding tests to reflect changes in CodeGeneratorV8.pm, no change in behavior.
+
+ Relanding r112207 with setJSWrapperForDOMSVGElementInstance defined
+ out-of-line to avoid SVG header dependencies.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateConstructorCallback): Use GetDomMapFunction instead of custom logic.
+ (GenerateNamedConstructorCallback): ditto.
+ (GenerateToV8Converters): Call V8DOMWrapper::setJSWrapper* method
+ instead of directly accessing the wrapper maps and calling set.
+ (GetDomMapFunction): Refactored to call new GetDomWrapperMapName function.
+ (GetDomWrapperMapName): Helper pulled out of GetDomMapFunction.
+ * bindings/scripts/test/V8/V8Float64Array.cpp:
+ (WebCore::V8Float64Array::wrapSlow):
+ * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
+ (WebCore::V8TestActiveDOMObject::wrapSlow):
+ * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
+ (WebCore::V8TestCustomNamedGetter::wrapSlow):
+ * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
+ (WebCore::V8TestEventConstructor::wrapSlow):
+ * bindings/scripts/test/V8/V8TestEventTarget.cpp:
+ (WebCore::V8TestEventTarget::wrapSlow):
+ * bindings/scripts/test/V8/V8TestInterface.cpp:
+ (WebCore::V8TestInterface::wrapSlow):
+ * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
+ (WebCore::V8TestMediaQueryListListener::wrapSlow):
+ * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
+ (WebCore::V8TestNamedConstructor::wrapSlow):
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::V8TestObj::wrapSlow):
+ * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
+ (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
+ * bindings/v8/V8DOMWrapper.cpp: Moved setJSWrapperForDOMNode method to header to inline it.
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMSVGElementInstance): New helper method for SVGElementInstances.
+ Not inline to avoid header dependency on SVGElementInstance.h.
+ * bindings/v8/V8DOMWrapper.h:
+ (V8DOMWrapper):
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): Made inline.
+ (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): ditto.
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): Refactored into two methods;
+ this one handles non-active Nodes.
+ (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode): Pulled out of previouse
+ DOMNode method, now handles only active Nodes.
+
+2012-03-27 Levi Weintraub <leviw@chromium.org>
+
+ Correct LayoutUnit usage in virtual function layoutBlock in RenderFlexibleBox
+ https://bugs.webkit.org/show_bug.cgi?id=82344
+
+ Reviewed by Eric Seidel.
+
+ Correcting the signature of RenderFlexibleBox::layoutBlock to use a LayoutUnit
+ for the page height, and avoiding assigning the renderer's size to an IntSize.
+
+ No new tests. No change in behavior.
+
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::layoutBlock):
+ * rendering/RenderFlexibleBox.h:
+ (RenderFlexibleBox):
+
+2012-03-27 Timothy Hatcher <timothy@apple.com>
+
+ Make WebKit properly load a staged framework when soft linking.
+
+ https://webkit.org/b/82371
+ rdar://problem/11125989
+
+ Reviewed by Dan Bernstein.
+
+ * platform/mac/SoftLinking.h: Replaced SOFT_LINK_PRIVATE_FRAMEWORK_OPTIONAL with
+ SOFT_LINK_STAGED_FRAMEWORK_OPTIONAL and made it use the StagedFrameworks path
+ if the first dlopen failed.
+
+2012-03-26 Dirk Schulze <krit@webkit.org>
+
+ Use enumeration for CSS parser mode
+ https://bugs.webkit.org/show_bug.cgi?id=82056
+
+ Reviewed by Antti Koivisto.
+
+ Introduce a new CSSParserMode enum to differ between strict / quirks and SVG presentation
+ attribute parsing modes.
+ The followup patch will make use of the enum in all other classes.
+ After that it will be easier possible to reuse the CSS parser in SVG as much as possible and
+ introduce SVG specific functionality.
+
+ No new tests. No change on functionality yet. This is just a refactoring to use the enumeration.
+
+ * GNUmakefile.list.am: Added new file CSSParserMode.h with the new enum, which can be used by any caller of CSSParser, CSSStyleSheet and others.
+ * Target.pri: Ditto.
+ * WebCore.gypi: Ditto.
+ * WebCore.vcproj/WebCore.vcproj: Ditto.
+ * WebCore.xcodeproj/project.pbxproj: Ditto.
+ * css/CSSGrammar.y: Make use of the new enumeration.
+ * css/CSSParser.cpp: Replaced boolean by enumeration. No change of functionality at this point of time.
+ (WebCore::CSSParser::inStrictMode): Helper function.
+ (WebCore):
+ (WebCore::CSSParser::inQuirksMode): Helper function.
+ (WebCore::CSSParser::CSSParser):
+ (WebCore::CSSParser::validUnit):
+ (WebCore::CSSParser::checkForOrphanedUnits):
+ (WebCore::CSSParser::parseValue):
+ (WebCore::CSSParser::parseSizeParameter):
+ (WebCore::CSSParser::parseBackgroundColor):
+ (WebCore::CSSParser::parseFillPositionX):
+ (WebCore::CSSParser::parseFillPositionY):
+ (WebCore::CSSParser::parseFillPositionComponent):
+ (WebCore::CSSParser::parseFillSize):
+ (WebCore::CSSParser::parseAnimationDelay):
+ (WebCore::CSSParser::parseAnimationDuration):
+ (WebCore::CSSParser::parseAnimationIterationCount):
+ (WebCore::CSSParser::parseTransformOriginShorthand):
+ (WebCore::CSSParser::parseCubicBezierTimingFunctionValue):
+ (WebCore::CSSParser::parseAnimationTimingFunction):
+ (WebCore::CSSParser::parseGridTrackList):
+ (WebCore::CSSParser::parseDashboardRegions):
+ (WebCore::CSSParser::parseShape):
+ (WebCore::CSSParser::parseWrapShapeRect):
+ (WebCore::CSSParser::parseWrapShapeCircle):
+ (WebCore::CSSParser::parseWrapShapeEllipse):
+ (WebCore::CSSParser::parseWrapShapePolygon):
+ (WebCore::CSSParser::parseFont):
+ (WebCore::CSSParser::parseFontWeight):
+ (WebCore::CSSParser::parseColorParameters):
+ (WebCore::CSSParser::parseHSLParameters):
+ (WebCore::CSSParser::parseColorFromValue):
+ (WebCore::CSSParser::parseShadow):
+ (WebCore::CSSParser::parseReflect):
+ (WebCore::CSSParser::parseFlex):
+ (WebCore::CSSParser::parseBorderImageSlice):
+ (WebCore::CSSParser::parseBorderImageQuad):
+ (WebCore::CSSParser::parseBorderRadius):
+ (WebCore::CSSParser::parseAspectRatio):
+ (WebCore::CSSParser::parseLinearGradient):
+ (WebCore::CSSParser::parseRadialGradient):
+ (WebCore::CSSParser::parseGradientColorStops):
+ (WebCore::CSSParser::parseTransform):
+ (WebCore::CSSParser::parseCustomFilter):
+ (WebCore::CSSParser::parseBuiltinFilterArguments):
+ (WebCore::CSSParser::parseTransformOrigin):
+ (WebCore::CSSParser::createStyleRule):
+ (WebCore::CSSParser::createFontFaceRule):
+ (WebCore::CSSParser::createPageRule):
+ (WebCore::CSSParser::createKeyframeRule):
+ * css/CSSParser.h:
+ (CSSParser):
+ * css/CSSParserMode.h: Added. New enumeration CSSParserMode.
+ * css/SVGCSSParser.cpp: Use new SVGAttributeMode CSS parsing mode.
+ (WebCore::CSSParser::parseSVGValue):
+ (WebCore::CSSParser::parseSVGStrokeDasharray):
+
+2012-03-27 Nate Chapin <japhet@chromium.org>
+
+ Don't manually set an identifier for main resource
+ loads in FrameLoader. ResourceLoader::willSendRequest()
+ will set an identifier for the request if one isn't found,
+ so this code appears to be unnecessary duplication.
+ https://bugs.webkit.org/show_bug.cgi?id=82248
+
+ Reviewed by Adam Barth.
+
+ No new tests, no functionality change intended.
+
+ * loader/DocumentLoader.cpp:
+ (WebCore::DocumentLoader::startLoadingMainResource): Mark navigation start
+ here, since it's conceptually part of starting the main resource load.
+ * loader/DocumentLoader.h:
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::continueLoadAfterWillSubmitForm): Remove duplicate identifier
+ logic, and move navigation timing call to startLoadingMainResource, since
+ it fits better logically there.
+ * loader/ResourceLoader.h: No callers of setIdentifier() remain, so delete it.
+
+2012-03-27 Dirk Pranke <dpranke@chromium.org>
+
+ Unreviewed, rolling out r112277.
+ http://trac.webkit.org/changeset/112277
+ https://bugs.webkit.org/show_bug.cgi?id=81985
+
+ possibly causing crashes?
+
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::insertedIntoDocument):
+ (WebCore::SVGUseElement::svgAttributeChanged):
+ (WebCore::SVGUseElement::willRecalcStyle):
+ (WebCore::SVGUseElement::finishParsingChildren):
+ * xml/XMLErrors.cpp:
+ (WebCore::XMLErrors::insertErrorMessageBlock):
+
+2012-03-27 Joseph Pecoraro <pecoraro@apple.com>
+
+ <http://webkit.org/b/82362> Web Inspector: Provide private -[DOMNode inspect]
+
+ Reviewed by Timothy Hatcher.
+
+ No new tests, this is only an ObjC SPI.
+
+ * bindings/objc/DOM.mm:
+ * bindings/objc/DOMPrivate.h:
+ (-[DOMNode inspect]):
+ Call through to InspectorController inspect for the node.
+
+ * inspector/InspectorDOMAgent.cpp:
+ (WebCore::InspectorDOMAgent::handleMousePress):
+ (WebCore::InspectorDOMAgent::inspect):
+ Whenever we inspect an element, clear the node search.
+ The frontend already takes this approach.
+
+2012-03-27 Joe Mason <jmason@rim.com>
+
+ [BlackBerry] fix confusing destruction sequence in LayerCompositingThread
+ https://bugs.webkit.org/show_bug.cgi?id=81706
+
+ Reviewed by Rob Buis.
+
+ LayerCompositingThread has a destructor that does a synchronous
+ dispatch to the compositing thread and then does the actual cleanup
+ from a helper function. This is confusing.It should be the
+ opposite: the helper function dispatches to the compositing thread,
+ which calls delete.
+
+ No new tests since the existing animation tests will exercise this
+ code.
+
+ * platform/graphics/blackberry/LayerCompositingThread.cpp:
+ (WebCore::LayerCompositingThread::destroyOnCompositingThread):
+ (WebCore):
+ (WebCore::LayerCompositingThread::~LayerCompositingThread):
+ * platform/graphics/blackberry/LayerCompositingThread.h:
+ (LayerCompositingThread):
+ (WTF):
+ (WTF::::deref):
+
+2012-03-27 Alexey Proskuryakov <ap@apple.com>
+
+ [Mac] Stop using NSMapTable in FormDataStreamMac.mm
+ https://bugs.webkit.org/show_bug.cgi?id=82358
+
+ Reviewed by Darin Adler.
+
+ * platform/network/mac/FormDataStreamMac.mm: Use WTF::HashMap, as we always do. All accesses
+ are protected with a mutex anyway.
+
+2012-03-27 Joe Thomas <joethomas@motorola.com>
+
+ Implement vw/vh/vmin (viewport sizes) from CSS3 Values and Units
+ https://bugs.webkit.org/show_bug.cgi?id=27160
+
+ Reviewed by Antti Koivisto.
+
+ vw/vh/vmin are implemented as primitive length units. Added the parsing logic for these new units.
+ New Length types such as ViewportRelativeWidth, ViewportRelativeHeight and ViewportRelativeMin are added for these length units
+ and included the support for fetching the value of these relative units based on the current viewport size.
+
+ The specification related to this implementation is http://dev.w3.org/csswg/css3-values/#viewport-relative-lengths.
+
+ Tests: css3/viewport-relative-lengths/css3-viewport-relative-lengths-getStyle.html
+ css3/viewport-relative-lengths/css3-viewport-relative-lengths-vh-absolute.html
+ css3/viewport-relative-lengths/css3-viewport-relative-lengths-vh.html
+ css3/viewport-relative-lengths/css3-viewport-relative-lengths-vmin-absolute.html
+ css3/viewport-relative-lengths/css3-viewport-relative-lengths-vmin.html
+ css3/viewport-relative-lengths/css3-viewport-relative-lengths-vw-absolute.html
+ css3/viewport-relative-lengths/css3-viewport-relative-lengths-vw.html
+
+ * accessibility/gtk/WebKitAccessibleInterfaceText.cpp: Modified to support viewport relative Length types.
+ (getAttributeSetForAccessibilityObject):
+ * css/CSSComputedStyleDeclaration.cpp: Ditto.
+ (WebCore::getPositionOffsetValue):
+ (WebCore::getBorderRadiusCornerValues):
+ (WebCore::getBorderRadiusCornerValue):
+ (WebCore::getBorderRadiusShorthandValue):
+ (WebCore::lineHeightFromStyle):
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+ * css/CSSGrammar.y: Added vw/vh/vmin support.
+ * css/CSSParser.cpp: Parsing of relative units and creation of CSSPrimitiveValue.
+ (WebCore::CSSParser::validUnit): Added vw/vh/vmin to the valid units.
+ (WebCore::CSSParser::createPrimitiveNumericValue): Added vw/vh/vmin as valid primitive units.
+ (WebCore::unitFromString):
+ (WebCore::CSSParser::parseValidPrimitive): Creation of CSSPrimitiveValue for vw/vh/vmin.
+ (WebCore::CSSParser::detectNumberToken): Parsing the vw/vh/vmin tokens.
+ * css/CSSPrimitiveValue.cpp:
+ (WebCore::isValidCSSUnitTypeForDoubleConversion): Added support for vw/vh/vmin.
+ (WebCore::unitCategory): Ditto.
+ (WebCore::CSSPrimitiveValue::CSSPrimitiveValue):
+ (WebCore::CSSPrimitiveValue::canonicalUnitTypeForCategory): Added support for vw/vh/vmin.
+ (WebCore::CSSPrimitiveValue::customCssText): Ditto.
+ (WebCore::CSSPrimitiveValue::viewportRelativeLength): Function to create the Length structure for the viewport-relative unit types.
+ (WebCore):
+ * css/CSSPrimitiveValue.h:
+ (WebCore::CSSPrimitiveValue::isViewportRelativeLength): Checks whether the primitive value is ViewportRelative Lengths.
+ (CSSPrimitiveValue):
+ * css/CSSPrimitiveValue.idl: Added support for vw/vh/vmin.
+ * css/CSSPrimitiveValueMappings.h:
+ (WebCore::CSSPrimitiveValue::convertToLength): Ditto.
+ * css/CSSStyleApplyProperty.cpp: Applying relative viewport length units to the specific CSS property.
+ (WebCore::ApplyPropertyLength::applyValue):
+ (WebCore::ApplyPropertyBorderRadius::applyValue):
+ (WebCore::ApplyPropertyFontSize::applyValue):
+ (WebCore::ApplyPropertyLineHeight::applyValue):
+ (WebCore::ApplyPropertyVerticalAlign::applyValue):
+ * css/CSSStyleSelector.cpp: Added support for viewport relative units.
+ * css/LengthFunctions.cpp: Calcuation of length value based on the current viewport size.
+ (WebCore::miminumValueForLength):
+ (WebCore::valueForLength):
+ (WebCore::floatValueForLength):
+ * css/LengthFunctions.h: Added new RenderView argument.
+ (WebCore):
+ * dom/Document.cpp:
+ (WebCore::Document::pageSizeAndMarginsInPixels): Modified to support viewport relative Length types.
+ (WebCore::Document::viewportSize): New function to fetch the current viewport size.
+ (WebCore):
+ * dom/Document.h: Ditto.
+ (Document):
+ * html/HTMLAreaElement.cpp: Modified to support viewport relative Length types.
+ (WebCore::HTMLAreaElement::getRegion):
+ * platform/Length.h:
+ (WebCore::Length::isViewportRelative): To check the Length is of type ViewportRelative.
+ (WebCore::Length::viewportRelativeLength): To get the relative value.
+ * rendering/RenderBR.cpp: Modified to support viewport relative Length types.
+ (WebCore::RenderBR::lineHeight):
+ * rendering/RenderBlock.cpp: Ditto.
+ (WebCore::RenderBlock::textIndentOffset):
+ (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
+ (WebCore::RenderBlock::lineHeight):
+ * rendering/RenderBox.cpp: Ditto.
+ (WebCore::RenderBox::reflectionOffset):
+ (WebCore::RenderBox::paintBoxDecorations):
+ (WebCore::RenderBox::clipRect):
+ (WebCore::RenderBox::computeLogicalWidthInRegion):
+ (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
+ (WebCore::RenderBox::computeInlineDirectionMargins):
+ (WebCore::RenderBox::computeContentLogicalHeightUsing):
+ (WebCore::RenderBox::computeReplacedLogicalHeightUsing):
+ (WebCore::RenderBox::computeBlockDirectionMargins):
+ (WebCore::RenderBox::computePositionedLogicalWidthUsing):
+ (WebCore::RenderBox::computePositionedLogicalHeightUsing):
+ (WebCore::RenderBox::computePositionedLogicalWidthReplaced):
+ (WebCore::RenderBox::computePositionedLogicalHeightReplaced):
+ * rendering/RenderBoxModelObject.cpp: Ditto.
+ (WebCore::RenderBoxModelObject::relativePositionOffsetX):
+ (WebCore::RenderBoxModelObject::relativePositionOffsetY):
+ (WebCore::RenderBoxModelObject::paddingTop):
+ (WebCore::RenderBoxModelObject::paddingBottom):
+ (WebCore::RenderBoxModelObject::paddingLeft):
+ (WebCore::RenderBoxModelObject::paddingRight):
+ (WebCore::RenderBoxModelObject::paddingBefore):
+ (WebCore::RenderBoxModelObject::paddingAfter):
+ (WebCore::RenderBoxModelObject::paddingStart):
+ (WebCore::RenderBoxModelObject::paddingEnd):
+ (WebCore::RenderBoxModelObject::getBackgroundRoundedRect):
+ (WebCore::RenderBoxModelObject::calculateFillTileSize):
+ (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
+ (WebCore::computeBorderImageSide):
+ (WebCore::RenderBoxModelObject::paintNinePieceImage):
+ (WebCore::RenderBoxModelObject::paintBorder):
+ (WebCore::RenderBoxModelObject::paintBoxShadow):
+ * rendering/RenderFlexibleBox.cpp: Ditto.
+ (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
+ (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
+ (WebCore::RenderFlexibleBox::resolveFlexibleLengths):
+ * rendering/RenderInline.cpp: Ditto.
+ (WebCore::computeMargin):
+ (WebCore::RenderInline::lineHeight):
+ * rendering/RenderMenuList.cpp: Ditto.
+ (WebCore::RenderMenuList::updateOptionsWidth):
+ * rendering/RenderObject.cpp: Ditto.
+ (WebCore::RenderObject::repaintAfterLayoutIfNeeded):
+ * rendering/RenderReplaced.cpp: Ditto.
+ (WebCore::RenderReplaced::paint):
+ * rendering/RenderScrollbarPart.cpp: Ditto.
+ (WebCore::calcScrollbarThicknessUsing):
+ (WebCore::RenderScrollbarPart::computeScrollbarWidth):
+ (WebCore::RenderScrollbarPart::computeScrollbarHeight):
+ * rendering/RenderTable.cpp: Ditto.
+ (WebCore::RenderTable::computeLogicalWidth):
+ (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
+ * rendering/RenderTableCell.cpp: Ditto.
+ (WebCore::RenderTableCell::logicalHeightForRowSizing):
+ * rendering/RenderTableSection.cpp: Ditto.
+ (WebCore::RenderTableSection::calcRowLogicalHeight):
+ * rendering/RenderText.h: Ditto.
+ (WebCore::RenderText::marginLeft):
+ (WebCore::RenderText::marginRight):
+ * rendering/RenderThemeMac.mm: Ditto.
+ (WebCore::RenderThemeMac::paintMenuListButtonGradients):
+ * rendering/RenderView.h:
+ (WebCore::RenderView::viewportSize):
+ * rendering/RenderWidget.cpp: Ditto.
+ (WebCore::RenderWidget::paint):
+ * rendering/RootInlineBox.cpp: Ditto.
+ (WebCore::RootInlineBox::verticalPositionForBox):
+ * rendering/style/RenderStyle.cpp: Ditto.
+ (WebCore::calcRadiiFor):
+ (WebCore::RenderStyle::getRoundedBorderFor):
+ * rendering/style/RenderStyle.h: Ditto.
+ * rendering/svg/RenderSVGRoot.cpp: Ditto.
+ (WebCore::resolveLengthAttributeForSVG):
+ (WebCore::RenderSVGRoot::computeReplacedLogicalWidth):
+ (WebCore::RenderSVGRoot::computeReplacedLogicalHeight):
+
+2012-03-27 Gao Chun <chun.gao@intel.com>
+
+ Remove deprecated LowPass2FilterNode and HighPass2FilterNode
+ https://bugs.webkit.org/show_bug.cgi?id=82296
+
+ Reviewed by Chris Rogers.
+
+ * CMakeLists.txt:
+ * DerivedSources.make:
+ * DerivedSources.pri:
+ * GNUmakefile.list.am:
+ * Modules/webaudio/AudioContext.cpp:
+ * Modules/webaudio/AudioContext.h:
+ (WebCore):
+ (AudioContext):
+ * Modules/webaudio/AudioContext.idl:
+ * Modules/webaudio/AudioNode.h:
+ * Modules/webaudio/BiquadFilterNode.cpp:
+ (WebCore::BiquadFilterNode::BiquadFilterNode):
+ * Modules/webaudio/BiquadProcessor.cpp:
+ * Modules/webaudio/BiquadProcessor.h:
+ * Modules/webaudio/HighPass2FilterNode.cpp: Removed.
+ * Modules/webaudio/HighPass2FilterNode.h: Removed.
+ * Modules/webaudio/HighPass2FilterNode.idl: Removed.
+ * Modules/webaudio/LowPass2FilterNode.cpp: Removed.
+ * Modules/webaudio/LowPass2FilterNode.h: Removed.
+ * Modules/webaudio/LowPass2FilterNode.idl: Removed.
+ * WebCore.gypi:
+ * WebCore.xcodeproj/project.pbxproj:
+
+2012-03-27 Sami Kyostila <skyostil@chromium.org>
+
+ [chromium] Add TextureCopier for copying texture contents
+ https://bugs.webkit.org/show_bug.cgi?id=80870
+
+ Reviewed by Stephen White.
+
+ This patch introduces a TextureCopier class whose job is to copy the
+ contents from one GL texture to another using the most efficient means
+ for the current GPU. This version uses render-to-texture to do the copy,
+ but a path based on EXT_framebuffer_blit can be added later.
+
+ The class is intended to replace the use of image path operations such
+ as glCopyTex{Sub}Image2D for duplicating texture contents. The reason is
+ that such functions may not be very well optimized in some -- mainly
+ mobile -- GPU drivers.
+
+ With this patch the new copier is used just for Canvas2D layer
+ presentation, but another potential use is for WebGL layer presentation.
+
+ Test: webkit_unit_tests: TextureCopierTest
+
+ * WebCore.gypi:
+ * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
+ (WebCore::Canvas2DLayerChromium::Canvas2DLayerChromium):
+ (WebCore::Canvas2DLayerChromium::~Canvas2DLayerChromium):
+ (WebCore::Canvas2DLayerChromium::updateCompositorResources):
+ * platform/graphics/chromium/Canvas2DLayerChromium.h:
+ (Canvas2DLayerChromium):
+ * platform/graphics/chromium/LayerRendererChromium.cpp:
+ (WebCore::LayerRendererChromium::initializeSharedObjects):
+ * platform/graphics/chromium/LayerRendererChromium.h:
+ (WebCore):
+ (WebCore::LayerRendererChromium::textureCopier):
+ (LayerRendererChromium):
+ * platform/graphics/chromium/ShaderChromium.cpp:
+ (WebCore::VertexShaderPosTexIdentity::getShaderString):
+ (WebCore):
+ (WebCore::FragmentShaderRGBATexCopy::getShaderString):
+ * platform/graphics/chromium/ShaderChromium.h:
+ (VertexShaderPosTexIdentity):
+ (WebCore::VertexShaderPosTexIdentity::init):
+ (WebCore):
+ (FragmentShaderRGBATexCopy):
+ * platform/graphics/chromium/TextureCopier.cpp: Added.
+ (WebCore):
+ (WebCore::AcceleratedTextureCopier::AcceleratedTextureCopier):
+ (WebCore::AcceleratedTextureCopier::~AcceleratedTextureCopier):
+ (WebCore::AcceleratedTextureCopier::copyTexture):
+ * platform/graphics/chromium/TextureCopier.h: Added.
+ (WebCore):
+ (TextureCopier):
+ (WebCore::TextureCopier::~TextureCopier):
+ (AcceleratedTextureCopier):
+ (WebCore::AcceleratedTextureCopier::create):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::doCommit):
+ * platform/graphics/chromium/cc/CCTextureUpdater.cpp:
+ (WebCore::CCTextureUpdater::CCTextureUpdater):
+ * platform/graphics/chromium/cc/CCTextureUpdater.h:
+ (WebCore):
+ (CCTextureUpdater):
+ (WebCore::CCTextureUpdater::copier):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::beginFrameCompleteOnImplThread):
+
+2012-03-27 Levi Weintraub <leviw@chromium.org>
+
+ Correct SVG paint functions that are still using IntPoints
+ https://bugs.webkit.org/show_bug.cgi?id=82343
+
+ Reviewed by Eric Seidel.
+
+ Two small corrections to SVG paint functions that should use LayoutPoint instead
+ of IntPoint.
+
+ No new tests. No change in behavior.
+
+ * rendering/svg/RenderSVGShape.cpp:
+ (WebCore::RenderSVGShape::paint):
+ * rendering/svg/RenderSVGText.cpp:
+ (WebCore::RenderSVGText::paint):
+
+2012-03-27 Zalan Bujtas <zbujtas@gmail.com>
+
+ Frame flattening: childframe in FrameView::layout() needs protector.
+ https://bugs.webkit.org/show_bug.cgi?id=82345
+
+ Reviewed by Kenneth Rohde Christiansen.
+
+ RefPtr<FrameView> protector(this) is supposed to protect the current frameview in
+ FrameView::layout() from being destroyed by recalcStyle().
+ However, when frame flattening is on and a child frame is re-starting layout from
+ the topmost parent, the protection is missing and parent's recalcStyle()
+ can destroy the child frame.
+ Moving the protector before the layout re-starting is initiated makes the child frame
+ safe.
+
+ No new tests. Unable to create a test case, where this scenario is reproducible.
+
+ * page/FrameView.cpp:
+ (WebCore::FrameView::layout):
+
+2012-03-27 Antti Koivisto <antti@apple.com>
+
+ Construct CSSCharsetRule on CSSOM API access only
+ https://bugs.webkit.org/show_bug.cgi?id=82332
+
+ Reviewed by Andreas Kling.
+
+ Charset is just a string. There is usually no need to construct CSSCharsetRule at all.
+
+ - Make CSS parser to return encoding string instead of CSSCharsetRule object. This
+ string is used for constructing CSSCharsetRule if it is needed (and nothing else,
+ @charset has no effect after string decoding).
+ - Remove internal interface for adding and removing rules. It has no clients.
+
+ * css/CSSGrammar.y:
+ * css/CSSParser.cpp:
+ (WebCore):
+ * css/CSSParser.h:
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::collectMatchingRulesForList):
+ * css/CSSStyleSheet.cpp:
+ (WebCore::CSSStyleSheet::~CSSStyleSheet):
+ (WebCore::CSSStyleSheet::parserAppendRule):
+ (WebCore::CSSStyleSheet::ensureCharsetRule):
+ (WebCore):
+ (WebCore::CSSStyleSheet::length):
+ (WebCore::CSSStyleSheet::item):
+ (WebCore::CSSStyleSheet::clearCharsetRule):
+ (WebCore::CSSStyleSheet::clearRules):
+ (WebCore::CSSStyleSheet::parserSetEncodingFromCharsetRule):
+ (WebCore::CSSStyleSheet::rules):
+ (WebCore::CSSStyleSheet::insertRule):
+ (WebCore::CSSStyleSheet::addRule):
+ (WebCore::CSSStyleSheet::deleteRule):
+ * css/CSSStyleSheet.h:
+ (WebCore):
+ (CSSStyleSheet):
+ (WebCore::CSSStyleSheet::ruleVector):
+ (WebCore::CSSStyleSheet::hasCharsetRule):
+ * inspector/InspectorStyleSheet.cpp:
+ (WebCore::InspectorStyleSheet::reparseStyleSheet):
+
+2012-03-27 Stephen White <senorblanco@chromium.org>
+
+ [chromium] Fix filter context creation to be more conservative.
+ https://bugs.webkit.org/show_bug.cgi?id=82349
+
+ Reviewed by James Robinson.
+
+ Covered by webkit_unit_tests, and css3/filters layout tests.
+
+ * platform/graphics/chromium/LayerChromium.cpp:
+ (WebCore::LayerChromium::setFilters):
+ Only request a filter context if the filter lists is non-empty.
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (WebCore::CCLayerTreeHost::setNeedsFilterContext):
+ Add a bool param, so tests can cancel a request for filter contexts.
+
+2012-03-27 Stephen Chenney <schenney@chromium.org>
+
+ <svg:use> elements in the parser can create elements not marked as created by the parser
+ https://bugs.webkit.org/show_bug.cgi?id=81985
+
+ Reviewed by Adam Barth.
+
+ The SVGUseElement was creating its shadow tree immediately upon
+ demand. This resulted in nodes being created that were not marked as
+ "createdByParser", even during parsing. As it happens, there is
+ already code in there to track "createdByParser" in the SVGUseElement,
+ it was just being ignored all the time. This may even have been
+ inefficient. Now we delay creating the shadow dom tree until children
+ are finished, which is the standard time to handle the createdByParser
+ flag.
+
+ I also verified that other SVG classes that derived from core DOM
+ classes that use the createdByParser flag do correctly pass this flag
+ on.
+
+ No new tests as this is covered by existing tests and does not have new behavior.
+
+ * svg/SVGUseElement.cpp:
+ (WebCore::SVGUseElement::insertedIntoDocument):
+ (WebCore::SVGUseElement::svgAttributeChanged):
+ (WebCore::SVGUseElement::willRecalcStyle):
+ (WebCore::SVGUseElement::finishParsingChildren):
+ * xml/XMLErrors.cpp:
+ (WebCore::XMLErrors::insertErrorMessageBlock):
+
+2012-03-27 Ming Xie <mxie@rim.com>
+
+ [BlackBerry] Disable DisallowCType.h usage
+ https://bugs.webkit.org/show_bug.cgi?id=82211
+
+ Reviewed by Rob Buis.
+
+ Build fix: QNX port does use ctype.h, so we should not
+ include <wtf/DisallowCType.h> in WebCore/config.h
+
+ No new tests - Build Fix
+
+ * config.h:
+
+2012-03-27 Hao Zheng <zhenghao@chromium.org>
+
+ Change default position attribute of media control panel to relative for Android.
+ https://bugs.webkit.org/show_bug.cgi?id=82303
+
+ Reviewed by Eric Carlson.
+
+ Follow up https://bugs.webkit.org/show_bug.cgi?id=79746 .
+
+ * css/mediaControlsChromiumAndroid.css:
+ (audio::-webkit-media-controls-panel, video::-webkit-media-controls-panel):
+
+2012-03-27 Alexei Filippov <alexeif@chromium.org>
+
+ Web Inspector: Speed up snapshot parsing.
+ https://bugs.webkit.org/show_bug.cgi?id=82325
+
+ Replacing the iterators with raw nodes/edges access speeds up
+ some phases phasses up to 10 times, taking down the whole init
+ time to less than 6 sec.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/HeapSnapshot.js:
+ (WebInspector.HeapSnapshot.prototype._buildNodeIndex):
+ (WebInspector.HeapSnapshot.prototype._buildDominatedNodes):
+ (WebInspector.HeapSnapshot.prototype._markQueriableHeapObjects):
+
+2012-03-27 Antti Koivisto <antti@apple.com>
+
+ Assertion failure in acid2.
+
+ Rubber-stamped by Andreas Kling.
+
+ Remove assert added in http://trac.webkit.org/changeset/112258. It seems insertedInto/removedFromDocument
+ don't always pair.
+
+ * svg/SVGDocumentExtensions.cpp:
+ (WebCore::SVGDocumentExtensions::~SVGDocumentExtensions):
+
+2012-03-27 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: simplify heap profiler front-end
+ https://bugs.webkit.org/show_bug.cgi?id=82338
+
+ Simplify constructors of WebInspector.HeapSnapshotArraySlice and
+ WebInspector.HeapSnapshotEdgesProvider.
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/front-end/HeapSnapshot.js:
+ (WebInspector.HeapSnapshotArraySlice):
+ (WebInspector.HeapSnapshotArraySlice.prototype.item):
+ (WebInspector.HeapSnapshotArraySlice.prototype.slice):
+ (WebInspector.HeapSnapshotNode.prototype.get rawEdges):
+ (WebInspector.HeapSnapshot.prototype._retainersForNode):
+ (WebInspector.HeapSnapshot.prototype._dominatedNodesOfNode):
+ (WebInspector.HeapSnapshot.prototype.createEdgesProvider):
+ (WebInspector.HeapSnapshotEdgesProvider):
+
+2012-03-27 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Tabbed pane should set focus on its contents on tab click.
+ https://bugs.webkit.org/show_bug.cgi?id=82323
+
+ Reviewed by Pavel Feldman.
+
+ Otherwise selected tab does not have focus.
+ Also added tabIndex on tabElements to prevent pasting on closing middle click.
+
+ * inspector/front-end/TabbedPane.js:
+ (WebInspector.TabbedPane):
+ (WebInspector.TabbedPane.prototype.focus):
+ (WebInspector.TabbedPane.prototype.selectTab):
+ (WebInspector.TabbedPaneTab.prototype._createTabElement):
+ (WebInspector.TabbedPaneTab.prototype._tabClicked):
+
+2012-03-27 Pavel Podivilov <podivilov@chromium.org>
+
+ Web Inspector: dispatch breakpoint-added and breakpoint-removed events on UISourceCode.
+ https://bugs.webkit.org/show_bug.cgi?id=82318
+
+ Reviewed by Vsevolod Vlasov.
+
+ Breakpoint-added and breakpoint-removed events are always related to specific UISourceCode.
+ See bug 82224 for more details.
+
+ * inspector/front-end/BreakpointManager.js:
+ (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
+ (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
+ * inspector/front-end/DebuggerPresentationModel.js:
+ (WebInspector.DebuggerPresentationModel):
+ (WebInspector.UISourceCodeImpl.prototype.breakpointAdded):
+ (WebInspector.UISourceCodeImpl.prototype.breakpointRemoved):
+ * inspector/front-end/ScriptsPanel.js:
+ (WebInspector.ScriptsPanel.prototype._uiSourceCodeAdded):
+ (WebInspector.ScriptsPanel.prototype._uiSourceCodeRemoved):
+ (WebInspector.ScriptsPanel.prototype._addBreakpointListeners):
+ (WebInspector.ScriptsPanel.prototype._removeBreakpointListeners):
+ (WebInspector.ScriptsPanel.prototype._uiSourceCodeReplaced):
+ * inspector/front-end/UISourceCode.js:
+
+2012-03-27 Jason Liu <jason.liu@torchmobile.com.cn>
+
+ [BlackBerry]Cleanup WTF string in platform/network/blackberry
+ https://bugs.webkit.org/show_bug.cgi?id=82005
+
+ Reviewed by Rob Buis.
+
+ No new tests. Just replace WTF::String with String.
+
+ * platform/network/blackberry/NetworkJob.cpp:
+ (WebCore::NetworkJob::handleNotifyDataReceived):
+
+2012-03-27 Alexander Pavlov <apavlov@chromium.org>
+
+ Web Inspector: Enable "number" parameters in the web inspector protocol methods
+ https://bugs.webkit.org/show_bug.cgi?id=82334
+
+ The generated protocol dispatcher does not understand protocol method parameters of type "number"
+ (mapped to "double" in the native code.)
+
+ Reviewed by Vsevolod Vlasov.
+
+ * inspector/CodeGeneratorInspector.py:
+ (RawTypes.Number.get_getter_name):
+ (RawTypes.Number.get_c_initializer):
+ (RawTypes.Number.get_js_bind_type):
+ (RawTypes.Number.get_validate_method_params.ValidateMethodParams):
+ (RawTypes.Number.get_validate_method_params):
+
+2012-03-27 Alexei Filippov <alexeif@chromium.org>
+
+ Web Inspector: Fix missing objects in the dominators view.
+ https://bugs.webkit.org/show_bug.cgi?id=82194
+
+ Due to the nature of dominators tree it is not possible to hide internal
+ objects there because they may happen to contain user objects that can't
+ be hidden.
+ Besides that it fixes a small bug in HeapSnapshotArraySlice.slice
+ function.
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/DetailedHeapshotGridNodes.js:
+ (WebInspector.HeapSnapshotDominatorObjectNode.prototype._createProvider):
+ * inspector/front-end/HeapSnapshot.js:
+ (WebInspector.HeapSnapshotArraySlice.prototype.slice):
+
+2012-03-27 Antti Koivisto <antti@apple.com>
+
+ Remove Document::mappedElementSheet()
+ https://bugs.webkit.org/show_bug.cgi?id=82242
+
+ Reviewed by Andreas Kling and Nikolas Zimmermann.
+
+ The only thing this is used for anymore is SVGFontFaceElement. That can be handled without
+ the confusing extra stylesheet.
+
+ * css/CSSStyleSelector.cpp:
+ (WebCore::CSSStyleSelector::CSSStyleSelector):
+ * css/CSSStyleSelector.h:
+ (CSSStyleSelector):
+
+ - Add font face rules from registered SVGFontFaceElements.
+ - Simplify the constructor signature. Stylesheets are part of the document.
+
+ * dom/Document.cpp:
+ (WebCore::Document::~Document):
+ (WebCore::Document::createStyleSelector):
+ (WebCore):
+ (WebCore::Document::updateBaseURL):
+ * dom/Document.h:
+ (WebCore):
+ (WebCore::Document::documentUserSheets):
+ (Document):
+
+ - Remove mappedElementSheet
+ - Adapt to the CSSStyleSelector constructor signature changes.
+
+ * svg/SVGDocumentExtensions.cpp:
+ (WebCore::SVGDocumentExtensions::svgFontFaceElements):
+ (WebCore):
+ (WebCore::SVGDocumentExtensions::registerSVGFontFaceElement):
+ (WebCore::SVGDocumentExtensions::unregisterSVGFontFaceElement):
+ * svg/SVGDocumentExtensions.h:
+ (WebCore):
+ (SVGDocumentExtensions):
+
+ - Add map for SVGFontFaceElements
+
+ * svg/SVGFontFaceElement.cpp:
+ (WebCore::SVGFontFaceElement::insertedIntoDocument):
+ (WebCore::SVGFontFaceElement::removedFromDocument):
+ (WebCore):
+ * svg/SVGFontFaceElement.h:
+ (SVGFontFaceElement):
+ (WebCore::SVGFontFaceElement::fontFaceRule):
+
+ - Switch to updating svgFontFaceElements map.
+ - Use elementSheet as the parent sheet (nothing is ever added to the elementSheet, it is used for
+ resolving relative URLs only).
+
+2012-03-27 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: startEditing should remove tabIndex attribute from the element if it was not set before.
+ https://bugs.webkit.org/show_bug.cgi?id=82322
+
+ Reviewed by Pavel Feldman.
+
+ This patch removes tabIndex attribute from the element after editing if it was not present before.
+ Otherwise tabIndex becomes set unexpectedly after exiting edit mode.
+
+ * inspector/front-end/UIUtils.js:
+ (WebInspector.startEditing.cleanUpAfterEditing):
+
+2012-03-27 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Tree outline should not start search on key press if it is being edited.
+ https://bugs.webkit.org/show_bug.cgi?id=82327
+
+ Reviewed by Pavel Feldman.
+
+ This is needed for snippet renaming support.
+
+ * inspector/front-end/treeoutline.js:
+ (TreeOutline):
+ (TreeOutline.prototype._treeKeyPress):
+
+2012-03-27 Levi Weintraub <leviw@chromium.org>
+
+ Revert RenderApplet::intrinsicSize to integers
+ https://bugs.webkit.org/show_bug.cgi?id=82206
+
+ Reviewed by Eric Seidel.
+
+ Intrinsic sizes originate either outside of WebCore, or from their initial values,
+ which are always integers. Reverting RenderApplet::intrinsicSize to integers, the
+ last spot improperly using LayoutUnits
+
+ No new tests. No change in behavior.
+
+ * rendering/RenderApplet.cpp:
+ (WebCore::RenderApplet::intrinsicSize):
+ * rendering/RenderApplet.h:
+ (RenderApplet):
+
+
+2012-03-27 Alexis Menard <alexis.menard@openbossa.org>
+
+ Increase code sharing between CSSComputedStyleDeclaration and CSSPropertyLonghand.
+ https://bugs.webkit.org/show_bug.cgi?id=82261
+
+ Reviewed by Ryosuke Niwa.
+
+ Use longhands declaration from CSSPropertyLonghand in CSSComputedStyleDeclaration to avoid
+ code duplication.
+
+ No new tests : refactoring only, we shouldn't have any behavior difference.
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+ (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForShorthandProperties):
+ (WebCore::CSSComputedStyleDeclaration::getCSSPropertyValuesForSidesShorthand):
+ * css/CSSComputedStyleDeclaration.h:
+ (WebCore):
+ (CSSComputedStyleDeclaration):
+ * css/CSSPropertyLonghand.cpp:
+ (WebCore::outlineLonghand):
+ Re-order to match the spec default order and also remove outline-offset as it is not part
+ of the shorthand (http://www.w3.org/TR/css3-ui/#outline). Luckily this was cover by a layout test.
+
+2012-03-27 Vsevolod Vlasov <vsevik@chromium.org>
+
+ Web Inspector: Editable TextViewer should show cursor when it is focused.
+ https://bugs.webkit.org/show_bug.cgi?id=82320
+
+ Reviewed by Pavel Feldman.
+
+ TextViewer now focuses editable inner container unless read-only flag is set.
+
+ * inspector/front-end/TextViewer.js:
+ (WebInspector.TextViewer.prototype.focus):
+ (WebInspector.TextEditorMainPanel):
+ (WebInspector.TextEditorMainPanel.prototype._handleElementFocus):
+ (WebInspector.TextEditorMainPanel.prototype.focus):
+
+2012-03-26 Levi Weintraub <leviw@chromium.org>
+
+ Unreviewed. Removing change markers from ChangeLog.
+
+2012-03-26 Levi Weintraub <leviw@chromium.org>
+
+ Convert RenderSelectionInfo::rect to LayoutUnits
+ https://bugs.webkit.org/show_bug.cgi?id=82213
+
+ Reviewed by Eric Seidel.
+
+ RenderSelectionInfoBase stores a cached repaint rect in local coordinates. Coordinates local to
+ renderers should be stored in LayoutUnits.
+
+ No new tests. No change in behavior.
+
+ * rendering/RenderSelectionInfo.h:
+ (WebCore::RenderSelectionInfo::rect):
+ (RenderSelectionInfo):
+
+2012-03-26 Levi Weintraub <leviw@chromium.org>
+
+ Convert RenderSelectionInfo::rect to LayoutUnits
+ https://bugs.webkit.org/show_bug.cgi?id=82213
+
+ Reviewed by Eric Seidel.
+
+ RenderSelectionInfoBase stores a cached repaint rect in local coordinates. Coordinates
+ local to renderers should be stored in LayoutUnits as described in
+ http://trac.webkit.org/wiki/LayoutUnit
+
+ No new tests. No change in behavior.
+
+ * rendering/RenderSelectionInfo.h:
+ (WebCore::RenderSelectionInfo::rect):
+ (RenderSelectionInfo):
+
+2012-03-27 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Enable animVal support for SVGAnimatedRect
+ https://bugs.webkit.org/show_bug.cgi?id=82317
+
+ Reviewed by Zoltan Herczeg.
+
+ Enable animVal support for SVGAnimatedRect. Very simple now that everything is prepared.
+ All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedRectAnimator.
+
+ Extended existing tests to cover this.
+
+ * svg/SVGAnimatedRect.cpp:
+ (WebCore::SVGAnimatedRectAnimator::startAnimValAnimation):
+ (WebCore::SVGAnimatedRectAnimator::stopAnimValAnimation):
+ (WebCore::SVGAnimatedRectAnimator::resetAnimValToBaseVal):
+ (WebCore::SVGAnimatedRectAnimator::animValWillChange):
+ (WebCore::SVGAnimatedRectAnimator::animValDidChange):
+ * svg/SVGAnimatedRect.h:
+ (SVGAnimatedRectAnimator):
+ * svg/SVGAnimatedType.cpp:
+ (WebCore::SVGAnimatedType::supportsAnimVal):
+
+2012-03-27 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r112201.
+ http://trac.webkit.org/changeset/112201
+ https://bugs.webkit.org/show_bug.cgi?id=82302
+
+ Breaks chromium's WebPageSerializerTest.HTMLNodes test
+ (Requested by pfeldman on #webkit).
+
+ * loader/cache/CachedCSSStyleSheet.cpp:
+ (WebCore::CachedCSSStyleSheet::error):
+ (WebCore):
+ * loader/cache/CachedCSSStyleSheet.h:
+ (CachedCSSStyleSheet):
+ * loader/cache/CachedFont.cpp:
+ (WebCore):
+ (WebCore::CachedFont::error):
+ * loader/cache/CachedFont.h:
+ (CachedFont):
+ * loader/cache/CachedImage.cpp:
+ (WebCore::CachedImage::error):
+ * loader/cache/CachedResource.h:
+ (CachedResource):
+ * loader/cache/CachedScript.cpp:
+ (WebCore::CachedScript::error):
+ (WebCore):
+ * loader/cache/CachedScript.h:
+ (CachedScript):
+ * loader/cache/CachedXSLStyleSheet.cpp:
+ (WebCore::CachedXSLStyleSheet::error):
+ (WebCore):
+ * loader/cache/CachedXSLStyleSheet.h:
+ (CachedXSLStyleSheet):
+
+2012-03-27 Levi Weintraub <leviw@chromium.org>
+
+ LayoutRepainter: Remove unused constructor parameter and update to LayoutUnits
+ https://bugs.webkit.org/show_bug.cgi?id=82185
+
+ Reviewed by Eric Seidel.
+
+ Removing an optional parameter for old bounds in LayoutRepainter's constructor that
+ is no longer used. The old bounds are instead always gleaned from the renderer's
+ clippedOverflowRectForRepaint.
+
+ The renderer's bounds and outline rect also are stored in LayoutUnits to properly
+ detect sub-pixel changes during layout. Eventually, we'll pixel snap these values
+ when telling the embedder to invalidate. Adding a comment to that effect.
+
+ No new tests. No change in behavior.
+
+ * rendering/LayoutRepainter.cpp:
+ (WebCore::LayoutRepainter::LayoutRepainter):
+ * rendering/LayoutRepainter.h:
+ (LayoutRepainter):
+
+2012-03-27 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Enable animVal support for SVGAnimatedString
+ https://bugs.webkit.org/show_bug.cgi?id=82316
+
+ Reviewed by Zoltan Herczeg.
+
+ Enable animVal support for SVGAnimatedString. Very simple now that everything is prepared.
+ All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedStringAnimator.
+
+ Test: svg/animations/svgstring-animation-1.html
+
+ * svg/SVGAnimatedString.cpp:
+ (WebCore::SVGAnimatedStringAnimator::startAnimValAnimation):
+ (WebCore::SVGAnimatedStringAnimator::stopAnimValAnimation):
+ (WebCore::SVGAnimatedStringAnimator::resetAnimValToBaseVal):
+ (WebCore::SVGAnimatedStringAnimator::animValWillChange):
+ (WebCore::SVGAnimatedStringAnimator::animValDidChange):
+ * svg/SVGAnimatedString.h:
+ (SVGAnimatedStringAnimator):
+ * svg/SVGAnimatedType.cpp:
+ (WebCore::SVGAnimatedType::supportsAnimVal):
+
+2012-03-27 Levi Weintraub <leviw@chromium.org>
+
+ Update usage of LayoutUnits in RenderListMarker
+ https://bugs.webkit.org/show_bug.cgi?id=81921
+
+ Reviewed by Eric Seidel.
+
+ Implementing proper pixel snapping in list marker painting, and correcting usage of integers
+ for local coordinates/margins that should be sub-pixel.
+
+ No new tests. No change in behavior.
+
+ * rendering/RenderListMarker.cpp:
+ (WebCore::RenderListMarker::localSelectionRect): Changed to LayoutUnits since this represents
+ a rect in local coordinates.
+ (WebCore::RenderListMarker::paint): Doing proper pixel snapping, and using integers for
+ results from text measurement.
+ (WebCore::RenderListMarker::computePreferredLogicalWidths): Using integers for results
+ from text measurement.
+ (WebCore::RenderListMarker::updateMargins): Fixing to be LayoutUnits.
+ * rendering/RenderListMarker.h:
+ (RenderListMarker):
+
+2012-03-27 Levi Weintraub <leviw@chromium.org>
+
+ Revert linesBoundingBox to integers
+ https://bugs.webkit.org/show_bug.cgi?id=82182
+
+ Reviewed by Eric Seidel.
+
+ LayoutRects are intended to be pixel snapped to determine the ultimate screen
+ coordinates, but the Inline Box tree is laid out using floats, and pixel snapping
+ the resulting box from linesBoundingBox would produce a potentially incorrect
+ rectangle. Keeping this using enclosingIntRect retains the previous accuracy and
+ prevents misuse.
+
+ No new tests. No change in behavior.
+
+ * rendering/RenderInline.cpp:
+ (WebCore::RenderInline::linesBoundingBox):
+ * rendering/RenderInline.h:
+ (RenderInline):
+ * rendering/RenderLayer.cpp:
+ (WebCore::RenderLayer::updateLayerPosition):
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::linesBoundingBox):
+ * rendering/svg/RenderSVGInlineText.cpp:
+ (WebCore::RenderSVGInlineText::linesBoundingBox):
+ * rendering/svg/RenderSVGInlineText.h:
+ (RenderSVGInlineText):
+
+2012-03-26 Pavel Podivilov <podivilov@chromium.org>
+
+ Web Inspector: store UIBreakpoints on UISourceCode.
+ https://bugs.webkit.org/show_bug.cgi?id=82214
+
+ This change will allow us to make breakpoint-added and breakpoint-removed events a part of UISourceCode interface.
+ See bug 82224 for more details.
+
+ Reviewed by Vsevolod Vlasov.
+
+ * inspector/front-end/BreakpointManager.js:
+ (WebInspector.BreakpointManager.prototype.uiSourceCodeRemoved):
+ (WebInspector.BreakpointManager.prototype.setBreakpoint):
+ (WebInspector.BreakpointManager.prototype.removeBreakpoint):
+ (WebInspector.BreakpointManager.prototype._addBreakpointToUI):
+ (WebInspector.BreakpointManager.prototype._removeBreakpointFromUI):
+ (WebInspector.BreakpointManager.prototype.debuggerReset):
+ * inspector/front-end/CompilerScriptMapping.js:
+ (WebInspector.CompilerScriptMapping.prototype.addScript):
+ * inspector/front-end/DebuggerPresentationModel.js:
+ (WebInspector.DebuggerPresentationModel.prototype._updateBreakpointsAfterLiveEdit):
+ (WebInspector.DebuggerPresentationModel.prototype.breakpointsForUISourceCode):
+ (WebInspector.DebuggerPresentationModel.prototype.findBreakpoint):
+ (WebInspector.UISourceCodeImpl):
+ (WebInspector.UISourceCodeImpl.prototype.breakpoints):
+ (WebInspector.UISourceCodeImpl.prototype.breakpointAdded):
+ (WebInspector.UISourceCodeImpl.prototype.breakpointRemoved):
+ * inspector/front-end/RawSourceCode.js:
+ (WebInspector.RawSourceCode.prototype._createUISourceCode):
+ * inspector/front-end/SnippetsModel.js:
+ (WebInspector.SnippetsScriptMapping.prototype._snippetAdded):
+ (WebInspector.SnippetsScriptMapping.prototype._createUISourceCodeForScript):
+ * inspector/front-end/UISourceCode.js:
+ (WebInspector.UISourceCode.prototype.get domain):
+ (WebInspector.UISourceCode.prototype.get folderName):
+ (WebInspector.UISourceCode.prototype.get fileName):
+ (WebInspector.UISourceCode.prototype.get displayName):
+ (WebInspector.UISourceCode.prototype._parseURL):
+ (WebInspector.UISourceCode.prototype._didRequestContent):
+ (WebInspector.UISourceCode.prototype.breakpoints):
+ * inspector/front-end/inspector.html:
+
+2012-03-27 Nat Duca <nduca@chromium.org>
+
+ [chromium] Fix crash with fling with tracing enabled
+ https://bugs.webkit.org/show_bug.cgi?id=82306
+
+ The TRACE_EVENT_START instrumentation was deferencing a PassOwnPtr
+ after it had been passed into another OwnPtr. This caused frequent
+ crashes when tracing was enabled.
+
+ Reviewed by Adam Barth.
+
+ * platform/ActivePlatformGestureAnimation.cpp:
+ (WebCore::ActivePlatformGestureAnimation::ActivePlatformGestureAnimation):
+ * platform/graphics/chromium/cc/CCActiveGestureAnimation.cpp:
+ (WebCore::CCActiveGestureAnimation::CCActiveGestureAnimation):
+
+2012-03-27 Carlos Garcia Campos <cgarcia@igalia.com>
+
+ [SOUP] Implement missing methods in CookieJarSoup
+ https://bugs.webkit.org/show_bug.cgi?id=82082
+
+ Reviewed by Martin Robinson.
+
+ * platform/network/soup/CookieJarSoup.cpp:
+ (WebCore::defaultCookieJar): Return a global GRefPtr to store the
+ default cookie jar.
+ (WebCore::soupCookieJar): Return the current cookie jar or create
+ a new one.
+ (WebCore::setSoupCookieJar): Set the current cookie jar.
+ (WebCore::setCookies): Fix coding style.
+ (WebCore::cookiesForDocument): Helper function to get the list of
+ cookies as a string.
+ (WebCore::cookies): Use cookiesForDocument().
+ (WebCore::cookieRequestHeaderFieldValue): Ditto.
+ (WebCore::getRawCookies): Get the list of cookies for the given
+ document and url.
+ (WebCore::deleteCookie): Delete the given cookie.
+ (WebCore::getHostnamesWithCookies): Use GOwnPtr.
+ (WebCore::deleteCookiesForHostname): Use GOwnPtr and
+ soup_cookie_domain_matches() instead of comparing the domain
+ directly with the given hostname.
+ (WebCore::deleteAllCookies): Use GOwnPtr.
+ * platform/network/soup/CookieJarSoup.h:
+ * platform/network/soup/GOwnPtrSoup.cpp:
+ (WTF::SoupCookie): Add GOwnPtr template for SoupCookie.
+ * platform/network/soup/GOwnPtrSoup.h:
+ * platform/network/soup/ResourceHandleSoup.cpp:
+ (WebCore::ensureSessionIsInitialized): Use soupCookieJar() instead
+ of defaultCookieJar().
+
+2012-03-27 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Enable animVal support for SVGAnimatedBoolean
+ https://bugs.webkit.org/show_bug.cgi?id=82311
+
+ Reviewed by Antti Koivisto.
+
+ Enable animVal support for SVGAnimatedBoolean. Very simple now that everything is prepared.
+ All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedBooleanAnimator.
+
+ Extended existing tests to cover this.
+
+ * svg/SVGAnimatedBoolean.cpp:
+ (WebCore::SVGAnimatedBooleanAnimator::startAnimValAnimation):
+ (WebCore::SVGAnimatedBooleanAnimator::stopAnimValAnimation):
+ (WebCore::SVGAnimatedBooleanAnimator::resetAnimValToBaseVal):
+ (WebCore::SVGAnimatedBooleanAnimator::animValWillChange):
+ (WebCore::SVGAnimatedBooleanAnimator::animValDidChange):
+ * svg/SVGAnimatedBoolean.h:
+ (SVGAnimatedBooleanAnimator):
+ * svg/SVGAnimatedType.cpp:
+ (WebCore::SVGAnimatedType::setValueAsString):
+ (WebCore::SVGAnimatedType::supportsAnimVal):
+
+2012-03-27 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ <img style='width: 100%' src='foo.svg'> gets pixellated when stretched
+ https://bugs.webkit.org/show_bug.cgi?id=81631
+
+ Reviewed by Antti Koivisto.
+
+ Final cleanup of RenderReplaced after the intrinsic size negotiation patch series from some weeks/months ago.
+ Stop tracking whether a RenderReplaced has an intrinsic size or not with an extra-bool, instead assume each
+ RenderReplaced derived class has an intrinsic size. If not, the class should override
+ computeIntrinsicRatioInformation() for any custom logic - currently only done by RenderImage.
+
+ Remove all logic depending on m_hasIntrinsicSize from computeReplacedLogicalWidth/Height, which was used
+ to support different sizing models depending on if the replaced element is a RenderImage or a RenderPart.
+ Unify all of this in computeIntrinsicRatioInformation right in RenderReplaced. This allows to remove
+ a hack from RenderImage::computeReplacedLogicalWidth(), which forced the synchroniziation of the intrinsicSize()
+ before calling the base classes RenderReplaced::computeReplacedLogicalWidth().
+ Now RenderImage just overrides the layout() method, calls RenderReplaced::layout() and then sets the container
+ size of the image resources to [contentWidth(), contentHeight()] - reflecting the actual result of the layout.
+ Furthermore this now allows us to unify CachedImage::imageSizeForRenderer() again for both SVG and non-SVG images.
+
+ Propagating the right container size to the image resource fixes the actual bug, that the SVGImage got pixellated.
+ Adding new tests covering percentage width or height set on an <img> embedding an external SVG, no more pixelation.
+
+ Tests: svg/as-image/img-relative-height-expected.html
+ svg/as-image/img-relative-height.html
+ svg/as-image/img-relative-width-expected.html
+ svg/as-image/img-relative-width.html
+
+ * loader/cache/CachedImage.cpp:
+ (WebCore::CachedImage::imageSizeForRenderer):
+ * rendering/RenderEmbeddedObject.cpp:
+ (WebCore::RenderEmbeddedObject::RenderEmbeddedObject):
+ * rendering/RenderImage.cpp:
+ (WebCore::RenderImage::layout):
+ (WebCore::RenderImage::computeIntrinsicRatioInformation):
+ * rendering/RenderImage.h:
+ (RenderImage):
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::RenderReplaced):
+ (WebCore::rendererHasAspectRatio):
+ (WebCore):
+ (WebCore::RenderReplaced::computeIntrinsicRatioInformationForRenderBox):
+ (WebCore::RenderReplaced::computeIntrinsicRatioInformation):
+ (WebCore::RenderReplaced::computeReplacedLogicalWidth):
+ (WebCore::RenderReplaced::computeReplacedLogicalHeight):
+ * rendering/RenderReplaced.h:
+ (WebCore::RenderReplaced::intrinsicSize):
+ (RenderReplaced):
+ (WebCore::RenderReplaced::setIntrinsicSize):
+ * svg/graphics/SVGImage.cpp:
+ (WebCore::SVGImage::setContainerSize):
+ * svg/graphics/SVGImage.h:
+ (WebCore::SVGImage::usesContainerSize):
+
+2012-03-27 Ilya Tikhonovsky <loislo@chromium.org>
+
+ Web Inspector: HeapSnapshot: speed-up distanceToWindow calculation.
+ https://bugs.webkit.org/show_bug.cgi?id=82305
+
+ Reviewed by Yury Semikhatsky.
+
+ * inspector/front-end/HeapSnapshot.js:
+ (WebInspector.HeapSnapshot.prototype._bfs):
+
+2012-03-27 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ SVGAnimatedType should support SVGAnimatedIntegerOptionalInteger animation
+ https://bugs.webkit.org/show_bug.cgi?id=67563
+
+ Reviewed by Dirk Schulze.
+
+ Add SVGAnimatedIntegerOptionalInteger type handling animation of pair<int, int> objects
+ as used for the SVG properties 'filterRes' and 'order'. They're currently animated as
+ SVGAnimatedNumberOptionalNumber - but that won't work for animVal support. Fix that
+ and enable animVal support for SVGAnimatedInteger(OptionalInteger).
+
+ Use 'int' as datatype for SVGAnimatedInteger instead of 'long' for consistency, and
+ move SVGAnimatedEnumeration from 'int' to 'unsigned short', to make them distinguishable.
+
+ Test: svg/animations/svginteger-animation-2.html
+
+ * CMakeLists.txt:
+ * GNUmakefile.list.am:
+ * Target.pri:
+ * WebCore.gypi:
+ * WebCore.vcproj/WebCore.vcproj:
+ * WebCore.xcodeproj/project.pbxproj:
+ * svg/SVGAllInOne.cpp:
+ * svg/SVGAnimatedEnumeration.h:
+ (WebCore):
+ * svg/SVGAnimatedInteger.cpp:
+ (WebCore::SVGAnimatedIntegerAnimator::startAnimValAnimation):
+ (WebCore):
+ (WebCore::SVGAnimatedIntegerAnimator::stopAnimValAnimation):
+ (WebCore::SVGAnimatedIntegerAnimator::resetAnimValToBaseVal):
+ (WebCore::SVGAnimatedIntegerAnimator::animValWillChange):
+ (WebCore::SVGAnimatedIntegerAnimator::animValDidChange):
+ (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedInteger):
+ (WebCore::SVGAnimatedIntegerAnimator::calculateAnimatedValue):
+ * svg/SVGAnimatedInteger.h:
+ (WebCore):
+ (SVGAnimatedIntegerAnimator):
+ * svg/SVGAnimatedIntegerOptionalInteger.cpp: Added.
+ (WebCore):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::SVGAnimatedIntegerOptionalIntegerAnimator):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::constructFromString):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::startAnimValAnimation):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::stopAnimValAnimation):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::resetAnimValToBaseVal):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValWillChange):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::animValDidChange):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateFromAndToValues):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateFromAndByValues):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateAnimatedValue):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::calculateDistance):
+ * svg/SVGAnimatedIntegerOptionalInteger.h: Copied from Source/WebCore/svg/SVGAnimatedInteger.h.
+ (WebCore):
+ (SVGAnimatedIntegerOptionalIntegerAnimator):
+ (WebCore::SVGAnimatedIntegerOptionalIntegerAnimator::~SVGAnimatedIntegerOptionalIntegerAnimator):
+ * svg/SVGAnimatedNumberOptionalNumber.cpp:
+ (WebCore::SVGAnimatedNumberOptionalNumberAnimator::calculateAnimatedValue):
+ * svg/SVGAnimatedType.cpp:
+ (WebCore::SVGAnimatedType::~SVGAnimatedType):
+ (WebCore::SVGAnimatedType::createIntegerOptionalInteger):
+ (WebCore):
+ (WebCore::SVGAnimatedType::integerOptionalInteger):
+ (WebCore::SVGAnimatedType::valueAsString):
+ (WebCore::SVGAnimatedType::setValueAsString):
+ (WebCore::SVGAnimatedType::supportsAnimVal):
+ * svg/SVGAnimatedType.h:
+ (SVGAnimatedType):
+ * svg/SVGAnimatorFactory.h:
+ (WebCore::SVGAnimatorFactory::create):
+ * svg/SVGFilterElement.cpp:
+ (WebCore::SVGFilterElement::setFilterRes):
+ * svg/SVGFilterElement.h:
+ (SVGFilterElement):
+ * svg/SVGPathElement.cpp:
+ (WebCore::SVGPathElement::getPathSegAtLength):
+ * svg/SVGPathElement.h:
+ (SVGPathElement):
+ * svg/SVGPathParserFactory.cpp:
+ (WebCore::SVGPathParserFactory::getSVGPathSegAtLengthFromSVGPathByteStream):
+ * svg/SVGPathParserFactory.h:
+ (SVGPathParserFactory):
+ * svg/SVGPathTraversalStateBuilder.cpp:
+ (WebCore::SVGPathTraversalStateBuilder::pathSegmentIndex):
+ * svg/SVGPathTraversalStateBuilder.h:
+ (SVGPathTraversalStateBuilder):
+ * svg/properties/SVGAnimatedEnumerationPropertyTearOff.h:
+ (WebCore::SVGAnimatedEnumerationPropertyTearOff::setBaseVal):
+ (WebCore::SVGAnimatedEnumerationPropertyTearOff::create):
+ (WebCore::SVGAnimatedEnumerationPropertyTearOff::currentAnimatedValue):
+ (WebCore::SVGAnimatedEnumerationPropertyTearOff::SVGAnimatedEnumerationPropertyTearOff):
+ * svg/properties/SVGPropertyInfo.h:
+ * svg/properties/SVGPropertyTraits.h:
+
+2012-03-25 Nikolas Zimmermann <nzimmermann@rim.com>
+
+ Enable animVal support for SVGAngle
+ https://bugs.webkit.org/show_bug.cgi?id=82144
+
+ Reviewed by Rob Buis.
+
+ Enable animVal support for SVGAnimatedAngle. Very simple now that everything is prepared.
+ All we have to do is add startAnimValAnimation/etc. methods to SVGAnimatedAngleAnimator.
+
+ Extended existing tests to cover this.
+
+ * svg/SVGAnimatedAngle.cpp:
+ (WebCore::sharedSVGAngle):
+ (WebCore::SVGAnimatedAngleAnimator::constructFromString):
+ (WebCore::SVGAnimatedAngleAnimator::startAnimValAnimation):
+ (WebCore::SVGAnimatedAngleAnimator::stopAnimValAnimation):
+ (WebCore::SVGAnimatedAngleAnimator::resetAnimValToBaseVal):
+ (WebCore::SVGAnimatedAngleAnimator::animValWillChange):
+ (WebCore::SVGAnimatedAngleAnimator::animValDidChange):
+ (WebCore::SVGAnimatedAngleAnimator::calculateDistance):
+ * svg/SVGAnimatedAngle.h:
+ (SVGAnimatedAngleAnimator):
+ * svg/SVGAnimatedType.cpp:
+ (WebCore::SVGAnimatedType::supportsAnimVal):
+
+2012-03-27 Yury Semikhatsky <yurys@chromium.org>
+
+ Web Inspector: remove remains of path finder in heap profiler front-end
+ https://bugs.webkit.org/show_bug.cgi?id=82304
+
+ Removed remainders of heap path finder as this code is not used anymore.
+
+ Reviewed by Pavel Feldman.
+
+ * inspector/front-end/HeapSnapshot.js:
+ * inspector/front-end/HeapSnapshotProxy.js:
+
+2012-03-27 Dan Bernstein <mitz@apple.com>
+
+ Reverted r112214, since it was not the right fix for the build.
+
+ * css/StylePropertySet.cpp:
+ (WebCore::StylePropertySet::asText):
+
+2012-03-27 Kentaro Hara <haraken@chromium.org>
+
+ [V8][Performance] Optimize createTextNode(), createElement(), cloneNode(), etc
+ https://bugs.webkit.org/show_bug.cgi?id=82201
+
+ Reviewed by Adam Barth.
+
+ This patch improves performance of createTextNode() by 13%, createElement() by 14%,
+ and cloneNode() by 16%. Similar performance improvement will be observed in
+ DOM methods that create a new object every time.
+
+ Performance test: https://bugs.webkit.org/attachment.cgi?id=133799
+
+ The performance test results are as follows. Since the performance of V8's GC is
+ really unstable, the average of measured times makes no sense in Chromium.
+ Instead, let us focus on the median. I believe that this performance
+ improvement has impact on Dromaeo, but we cannot observe the improvement
+ due to the unsteadiness of V8's GC, as shown below.
+
+ Chromium/V8/Linux (without the patch):
+ createTextNode : median=277ms (mean=460.88ms, min=270ms, max=3381ms)
+ createElement : median=379ms (mean=637.52ms, min=372ms, max=3022ms)
+ cloneNode : median=369ms (mean=581.72ms, min=363ms, max=3050ms)
+ Dromaeo/dom-modify/createElement: 439.17runs/s +-31.60% (<--- pretty noisy)
+ Dromaeo/dom-modify/createTextNode: 287.71runs/s +-28.39% (<--- pretty noisy)
+ Dromaeo/dom-modify/cloneNode: 174.62runs/s +-25.68% (<--- pretty noisy)
+
+ Chromium/V8/Linux (with the patch):
+ createTextNode : median=240ms (mean=411.12ms, min=237ms, max=2965ms)
+ createElement : median=325ms (mean=585.30ms, min=317ms, max=2984ms)
+ cloneNode : median=310ms (mean=522.48ms, min=302ms, max=2988ms)
+ Dromaeo/dom-modify/createElement: 507.15runs/s +-36.00% (<--- pretty noisy)
+ Dromaeo/dom-modify/createTextNode: 251.01runs/s +-6.57%
+ Dromaeo/dom-modify/cloneNode: 177.85runs/s +-28.74% (<--- pretty noisy)
+
+ Chromium/V8/Mac (without the patch):
+ createTextNode : median=317ms (mean=439.08ms, min=303ms, max=3126ms)
+ createElement : median=403ms (mean=695.70ms, min=398ms, max=5615ms)
+ cloneNode : median=384ms (mean=577.96ms, min=372ms, max=5313ms)
+ Dromaeo/dom-modify/createElement: 493.89runs/s +-28.32% (<--- pretty noisy)
+ Dromaeo/dom-modify/createTextNode: 279.66runs/s +-1.91%
+ Dromaeo/dom-modify/cloneNode: 173.06runs/s +-24.41% (<--- pretty noisy)
+
+ Chromium/V8/Mac (with the patch):
+ createTextNode : median=277ms (mean=460.88ms, min=270ms, max=3381ms)
+ createElement : median=379ms (mean=637.52ms, min=372ms, max=3022ms)
+ cloneNode : median=369ms (mean=581.72ms, min=363ms, max=3050ms)
+ Dromaeo/dom-modify/createElement: 510.47runs/s +-28.13% (<--- pretty noisy)
+ Dromaeo/dom-modify/createTextNode: 215.80runs/s +-20.99% (<--- pretty noisy)
+ Dromaeo/dom-modify/cloneNode: 174.41runs/s +-24.85% (<--- pretty noisy)
+
+ Safari/JavaScriptCore/Mac:
+ createTextNode : median=142ms (mean=141.04ms, min=110ms, max=168ms)
+ createElement : median=234ms (mean=245.74ms, min=219ms, max=305ms)
+ cloneNode : median=210ms (mean=213.36ms, min=204ms, max=284ms)
+ Dromaeo/dom-modify/createElement: 822.49runs/s +-1.69%
+ Dromaeo/dom-modify/createTextNode: 735.57runs/s +-0.91%
+ Dromaeo/dom-modify/cloneNode: 135.20runs/s +-4.13%
+
+ This patch makes the following two optimizations:
+
+ [1] If the currently running context is equal to the context that we are about to enter,
+ we do not call context->Enter().
+ [2] We do not create a Local handle of the context until we really need to enter the context.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateToV8Converters):
+ * bindings/v8/V8Proxy.cpp:
+ (WebCore::V8Proxy::persistentContext):
+ (WebCore):
+ * bindings/v8/V8Proxy.h:
+ (V8Proxy):
+
+ * WebCore/bindings/scripts/test/V8/V8TestActiveDOMObject.cpp: Updated run-bindings-tests results.
+
+2012-03-27 Bill Budge <bbudge@chromium.org>
+
+ cross-origin XMLHttpRequest doesn't work with redirect
+ https://bugs.webkit.org/show_bug.cgi?id=57600
+
+ Reviewed by Adam Barth.
+
+ Changes DocumentThreadableLoader to follow the CORS redirect steps when
+ asynchronously loading a cross origin request with access control. Synchronous
+ loads should not be affected. Also adds methods to ResourceRequestBase to
+ clear special request headers that aren't allowed when using access control.
+ Follows the CORS spec as described in the Latest Editor Draft at:
+ http://www.w3.org/TR/cors/
+
+ Test: http/tests/xmlhttprequest/access-control-and-redirects-async.html
+
+ * loader/DocumentThreadableLoader.cpp:
+ * loader/DocumentThreadableLoader.h:
+ * platform/network/ResourceRequestBase.cpp:
+ * platform/network/ResourceRequestBase.h:
+
+2012-03-27 Adam Barth <abarth@webkit.org>
+
+ ImageLoader::m_firedLoadEvent is a confusing name
+ https://bugs.webkit.org/show_bug.cgi?id=82283
+
+ Reviewed by Kentaro Hara.
+
+ This patch renames m_firedLoadEvent (and friends) to
+ m_hasPendingLoadEvent (and negates the value). That name more
+ accurately reflects the semantics of this piece of state. For example,
+ we now initialize m_hasPendingLoadEvent to false, which makes sense as
+ there is no pending load event, whereas before we initialized
+ m_firedLoadEvent to true, which made less sense since we hadn't yet
+ actually fired the load event.
+
+ * bindings/v8/V8GCController.cpp:
+ (WebCore::calculateGroupId):
+ * html/HTMLImageElement.cpp:
+ (WebCore::HTMLImageElement::attach):
+ * html/HTMLImageElement.h:
+ (HTMLImageElement):
+ (WebCore::HTMLImageElement::hasPendingLoadEvent):
+ (WebCore::HTMLImageElement::hasPendingActivity):
+ * html/ImageInputType.cpp:
+ (WebCore::ImageInputType::attach):
+ * loader/ImageLoader.cpp:
+ (WebCore::ImageLoader::ImageLoader):
+ (WebCore::ImageLoader::~ImageLoader):
+ (WebCore::ImageLoader::setImage):
+ (WebCore::ImageLoader::updateFromElement):
+ (WebCore::ImageLoader::notifyFinished):
+ (WebCore::ImageLoader::dispatchPendingBeforeLoadEvent):
+ (WebCore::ImageLoader::dispatchPendingLoadEvent):
+ (WebCore::ImageLoader::dispatchPendingErrorEvent):
+ * loader/ImageLoader.h:
+ (WebCore::ImageLoader::hasPendingBeforeLoadEvent):
+ (WebCore::ImageLoader::hasPendingLoadEvent):
+ (ImageLoader):
+ * svg/SVGImageElement.cpp:
+ (WebCore::SVGImageElement::haveLoadedRequiredResources):
+
+2012-03-27 Dan Bernstein <mitz@apple.com>
+
+ Tried to fix 32-bit builds.
+
+ * css/StylePropertySet.cpp:
+ (WebCore::StylePropertySet::asText):
+
+2012-03-26 Sheriff Bot <webkit.review.bot@gmail.com>
+
+ Unreviewed, rolling out r112199.
+ http://trac.webkit.org/changeset/112199
+ https://bugs.webkit.org/show_bug.cgi?id=82295
+
+ Breaks Chromium Win compilation (Requested by pfeldman on
+ #webkit).
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateConstructorCallback):
+ (GenerateNamedConstructorCallback):
+ (GenerateToV8Converters):
+ (GetDomMapFunction):
+ * bindings/scripts/test/V8/V8Float64Array.cpp:
+ (WebCore::V8Float64Array::wrapSlow):
+ * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
+ (WebCore::V8TestActiveDOMObject::wrapSlow):
+ * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
+ (WebCore::V8TestCustomNamedGetter::wrapSlow):
+ * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
+ (WebCore::V8TestEventConstructor::wrapSlow):
+ * bindings/scripts/test/V8/V8TestEventTarget.cpp:
+ (WebCore::V8TestEventTarget::wrapSlow):
+ * bindings/scripts/test/V8/V8TestInterface.cpp:
+ (WebCore::V8TestInterface::wrapSlow):
+ * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
+ (WebCore::V8TestMediaQueryListListener::wrapSlow):
+ * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
+ (WebCore::V8TestNamedConstructor::wrapSlow):
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::V8TestObj::wrapSlow):
+ * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
+ (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
+ * bindings/v8/V8DOMWrapper.cpp:
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMNode):
+ (WebCore):
+ * bindings/v8/V8DOMWrapper.h:
+ (WebCore):
+ (V8DOMWrapper):
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMObject):
+ (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject):
+
+2012-03-26 David Kilzer <ddkilzer@apple.com>
+
+ Build system prep work for upstreaming iOS changes
+ <http://webkit.org/b/82267>
+
+ Reviewed by Mark Rowe.
+
+ * DerivedSources.make: Move 'bison' into a variable and use
+ xcrun to find it on Mac OS X.
+ * bindings/scripts/preprocessor.pm:
+ (applyPreprocessor): Add local @args variable. On iOS, the
+ compiler needs additional "-isysroot $(SDKROOT)" arguments when
+ invoked, so it's easier to add them to an array, especially if
+ $SDKROOT contains a space in the path. Remove now-redundant
+ $gccLocation variable.
+
+2012-03-26 Nate Chapin <japhet@chromium.org>
+
+ Remove duplicate error() impls in CachedResource subclasses
+ https://bugs.webkit.org/show_bug.cgi?id=81161
+
+ Reviewed by Alexey Proskuryakov.
+
+ No new tests, refactor only.
+
+ * loader/cache/CachedCSSStyleSheet.cpp:
+ * loader/cache/CachedCSSStyleSheet.h:
+ * loader/cache/CachedFont.cpp:
+ * loader/cache/CachedFont.h:
+ * loader/cache/CachedImage.cpp:
+ * loader/cache/CachedResource.h: Make checkNotify()
+ virtual, so the right checkNotify() gets called in error().
+ * loader/cache/CachedScript.cpp:
+ * loader/cache/CachedScript.h:
+ * loader/cache/CachedXSLStyleSheet.cpp:
+ * loader/cache/CachedXSLStyleSheet.h:
+
+2012-03-26 Ken Buchanan <kenrb@chromium.org>
+
+ Assert failure from capitalized RenderTextFragment
+ https://bugs.webkit.org/show_bug.cgi?id=82096
+
+ Reviewed by Ryosuke Niwa.
+
+ The cause of this bug was the call to RenderTextFragment::setTextInternal
+ resulting from a style change from RenderObject::addChild. The idea here
+ is to better separate the code path for transforming existing text from
+ the code path for replacing the underlying text of a node. For
+ RenderTextFragment this has to be clear because only in the latter case
+ does the first-letter get reset.
+
+ * rendering/RenderObject.cpp:
+ (WebCore::RenderObject::addChild): Added call to transformText
+ * rendering/RenderText.cpp:
+ (WebCore::RenderText::styleDidChange): Added call to transformText
+ (WebCore::RenderText::transformText): Added
+ * rendering/RenderText.h:
+ (WebCore::RenderText::setText): Changed to virtual so RenderTextFragment can override
+ (WebCore::RenderText::transformText): Added
+ * rendering/RenderTextFragment.cpp:
+ (WebCore::RenderTextFragment::styleDidChange): Removed references to
+ m_allowFragmentReset which was the previous approach to separating the
+ code paths
+ (WebCore::RenderTextFragment::setTextInternal): Deleted
+ (WebCore::RenderTextFragment::setText): Added with most of logic that was
+ previously in setTextInternal
+ (WebCore::RenderTextFragment::transformText): Added
+ * rendering/RenderTextFragment.h:
+ (WebCore::RenderTextFragment::setText): Added
+ (WebCore::RenderTextFragment::transformText): Added
+ (WebCore::RenderTextFragment::setTextInternal): Deleted
+
+2012-03-26 Adam Klein <adamk@chromium.org>
+
+ Always set V8 wrappers via V8DOMWrapper::setJSWrapperFor* instead of WeakReferenceMap::set()
+ https://bugs.webkit.org/show_bug.cgi?id=82256
+
+ Reviewed by Adam Barth.
+
+ This moves leakRef() calls out of generated code, centralizing them in
+ V8DOMWrapper implementation. Ideally, WeakReferenceMap::set would take
+ PassRefPtrs, but that's tricky given that some WeakReferenceMap's KeyType is 'void'
+ (which clearly can't be wrapped in a PassRefPtr).
+
+ Updated binding tests to reflect changes in CodeGeneratorV8.pm, no change in behavior.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateConstructorCallback): Use GetDomMapFunction instead of custom logic.
+ (GenerateNamedConstructorCallback): ditto.
+ (GenerateToV8Converters): Call V8DOMWrapper::setJSWrapper* method
+ instead of directly accessing the wrapper maps and calling set.
+ (GetDomMapFunction): Refactored to call new GetDomWrapperMapName function.
+ (GetDomWrapperMapName): Helper pulled out of GetDomMapFunction.
+ * bindings/scripts/test/V8/V8Float64Array.cpp:
+ (WebCore::V8Float64Array::wrapSlow):
+ * bindings/scripts/test/V8/V8TestActiveDOMObject.cpp:
+ (WebCore::V8TestActiveDOMObject::wrapSlow):
+ * bindings/scripts/test/V8/V8TestCustomNamedGetter.cpp:
+ (WebCore::V8TestCustomNamedGetter::wrapSlow):
+ * bindings/scripts/test/V8/V8TestEventConstructor.cpp:
+ (WebCore::V8TestEventConstructor::wrapSlow):
+ * bindings/scripts/test/V8/V8TestEventTarget.cpp:
+ (WebCore::V8TestEventTarget::wrapSlow):
+ * bindings/scripts/test/V8/V8TestInterface.cpp:
+ (WebCore::V8TestInterface::wrapSlow):
+ * bindings/scripts/test/V8/V8TestMediaQueryListListener.cpp:
+ (WebCore::V8TestMediaQueryListListener::wrapSlow):
+ * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
+ (WebCore::V8TestNamedConstructor::wrapSlow):
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::V8TestObj::wrapSlow):
+ * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
+ (WebCore::V8TestSerializedScriptValueInterface::wrapSlow):
+ * bindings/v8/V8DOMWrapper.cpp: Moved setJSWrapperForDOMNode method to header to inline it.
+ * bindings/v8/V8DOMWrapper.h:
+ (WebCore): Forward decls.
+ (V8DOMWrapper):
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): Made inline.
+ (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): ditto.
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): Refactored into two methods;
+ this one handles non-active Nodes.
+ (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMNode): Pulled out of previouse
+ DOMNode method, now handles only active Nodes.
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMSVGElementInstance): New helper method for SVGElementInstances.
+
+2012-03-26 Pratik Solanki <psolanki@apple.com>
+
+ Fix typo in method name - WebCore::miminumValueForLength should be WebCore::minimumValueForLength
+ https://bugs.webkit.org/show_bug.cgi?id=82254
+
+ Reviewed by Benjamin Poulain.
+
+ No new tests because no functional changes.
+
+ * css/CSSComputedStyleDeclaration.cpp:
+ (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue):
+ * css/LengthFunctions.cpp:
+ (WebCore::minimumValueForLength):
+ (WebCore::valueForLength):
+ * css/LengthFunctions.h:
+ (WebCore):
+ * html/HTMLAreaElement.cpp:
+ (WebCore::HTMLAreaElement::getRegion):
+ * platform/win/PopupMenuWin.cpp:
+ (WebCore::PopupMenuWin::paint):
+ * rendering/AutoTableLayout.cpp:
+ (WebCore::AutoTableLayout::layout):
+ * rendering/RenderBlock.cpp:
+ (WebCore::RenderBlock::textIndentOffset):
+ (WebCore::RenderBlock::computeInlinePreferredLogicalWidths):
+ * rendering/RenderBox.cpp:
+ (WebCore::RenderBox::computeLogicalWidthInRegion):
+ (WebCore::RenderBox::computeLogicalWidthInRegionUsing):
+ (WebCore::RenderBox::computeInlineDirectionMargins):
+ (WebCore::RenderBox::computeReplacedLogicalWidthUsing):
+ (WebCore::RenderBox::computeBlockDirectionMargins):
+ (WebCore::RenderBox::computePositionedLogicalWidthUsing):
+ (WebCore::RenderBox::computePositionedLogicalHeightUsing):
+ * rendering/RenderBoxModelObject.cpp:
+ (WebCore::RenderBoxModelObject::paddingTop):
+ (WebCore::RenderBoxModelObject::paddingBottom):
+ (WebCore::RenderBoxModelObject::paddingLeft):
+ (WebCore::RenderBoxModelObject::paddingRight):
+ (WebCore::RenderBoxModelObject::paddingBefore):
+ (WebCore::RenderBoxModelObject::paddingAfter):
+ (WebCore::RenderBoxModelObject::paddingStart):
+ (WebCore::RenderBoxModelObject::paddingEnd):
+ (WebCore::RenderBoxModelObject::calculateBackgroundImageGeometry):
+ * rendering/RenderFlexibleBox.cpp:
+ (WebCore::RenderFlexibleBox::preferredMainAxisContentExtentForChild):
+ (WebCore::RenderFlexibleBox::computeMainAxisPreferredSizes):
+ * rendering/RenderInline.cpp:
+ (WebCore::computeMargin):
+ * rendering/RenderMenuList.cpp:
+ (WebCore::RenderMenuList::updateOptionsWidth):
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::computeReplacedLogicalWidth):
+ * rendering/RenderScrollbarPart.cpp:
+ (WebCore::calcScrollbarThicknessUsing):
+ (WebCore::RenderScrollbarPart::computeScrollbarWidth):
+ (WebCore::RenderScrollbarPart::computeScrollbarHeight):
+ * rendering/RenderTable.cpp:
+ (WebCore::RenderTable::computeLogicalWidth):
+ (WebCore::RenderTable::convertStyleLogicalWidthToComputedWidth):
+ * rendering/RenderTableSection.cpp:
+ (WebCore::RenderTableSection::calcRowLogicalHeight):
+ * rendering/RenderText.h:
+ (WebCore::RenderText::marginLeft):
+ (WebCore::RenderText::marginRight):
+ * rendering/style/RenderStyle.h:
+
+2012-03-26 Shinya Kawanaka <shinyak@chromium.org>
+
+ Triggers assertion if dragging from outside of <meter> in a shadow tree to inside of it.
+ https://bugs.webkit.org/show_bug.cgi?id=82177
+
+ Reviewed by Dimitri Glazkov.
+
+ VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries has moved the start position or
+ the end position to the invalid position, i.e. position after (before) the non-existing node.
+
+ This patch fixes the problem, and adds assertion that the selection does not cross shadow boundaries.
+
+ Test: fast/dom/shadow/drag-to-meter-in-shadow-crash.html
+
+ * editing/VisibleSelection.cpp:
+ (WebCore::VisibleSelection::adjustSelectionToAvoidCrossingShadowBoundaries):
+
+2012-03-26 Scott Byer <scottbyer@chromium.org>
+
+ Enable layout testing of the scroll animator.
+ https://bugs.webkit.org/show_bug.cgi?id=81858
+ Add a call to the InternalSettings that layout tests can use to
+ turn on scroll animation. Enable animation updates for the
+ Chromium platform DRT when scroll animation has been turned on in
+ a test. This should be a no-op for all current layout tests.
+
+ Reviewed by James Robinson.
+
+ No new tests. Layout test results should be unchanged.
+
+ * testing/InternalSettings.cpp:
+ (WebCore::InternalSettings::setEnableScrollAnimator):
+ (WebCore):
+ (WebCore::InternalSettings::scrollAnimatorEnabled):
+ * testing/InternalSettings.h:
+ (InternalSettings):
+ * testing/InternalSettings.idl:
+
+2012-03-26 Charles Wei <charles.wei@torchmobile.com.cn>
+
+ Fix minor spell error in DocumentLoader.h
+ https://bugs.webkit.org/show_bug.cgi?id=82141
+
+ Reviewed by Nate Chapin.
+
+ Just fix spell error, no new tests.
+
+ * loader/DocumentLoader.h:
+ (WebCore::DocumentLoader::setClientRedirectSourceForHistory):
+
+2012-03-26 Brian Salomon <bsalomon@google.com>
+
+ [Skia] Remove use of deprecated Skia constant and struct field names
+ https://bugs.webkit.org/show_bug.cgi?id=81034
+
+ Reviewed by James Robinson.
+
+ No behavior change, so no tests. The modified code is executed by many existing tests.
+
+ * platform/graphics/chromium/FrameBufferSkPictureCanvasLayerTextureUpdater.cpp:
+ (WebCore::createAcceleratedCanvas):
+ * platform/graphics/chromium/cc/CCRenderSurfaceFilters.cpp:
+ (WebCore::CCRenderSurfaceFilters::apply):
+ * platform/graphics/skia/ImageBufferSkia.cpp:
+ (WebCore::createAcceleratedCanvas):
+
+2012-03-26 Nat Duca <nduca@chromium.org>
+
+ [chromium] Add isInputThrottled/didBecomeReadyForAdditionalInput to WebWidget
+ https://bugs.webkit.org/show_bug.cgi?id=82265
+
+ In threaded compositing mode, the WebWidget is self-scheduled,
+ receiving damage and processing it without forwarding that damage
+ up to the embedding WebWidgetClient. In Chromium's case, the
+ client uses the presence of damage to perform input flow
+ control. This patch exposes the need for input flow control to the
+ embedder, while keeping the actual logic about what exactly
+ warrants input flow control inside the implementation.
+
+ Reviewed by James Robinson.
+
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore::CCLayerTreeHost::commitComplete):
+ (WebCore::CCLayerTreeHost::commitRequested):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (CCLayerTreeHostClient):
+ (CCLayerTreeHost):
+ * platform/graphics/chromium/cc/CCProxy.h:
+ (CCProxy):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.cpp:
+ (WebCore::CCSingleThreadProxy::commitRequested):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCSingleThreadProxy.h:
+ (CCSingleThreadProxy):
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::commitRequested):
+ (WebCore):
+ * platform/graphics/chromium/cc/CCThreadProxy.h:
+ (CCThreadProxy):
+
+2012-03-26 Adam Barth <abarth@webkit.org>
+
+ When <img crossorigin> fails the CORS check, we should fire the error event
+ https://bugs.webkit.org/show_bug.cgi?id=81998
+
+ Reviewed by Nate Chapin.
+
+ The spec says we're supposed to fire the error event when the CORS
+ check fails, but we haven't been. This patch is larger than it might
+ otherwise be because we're firing the event asynchronously, but that
+ seems like the right thing to do.
+
+ Tests: http/tests/security/img-with-failed-cors-check-fails-to-load.html
+
+ * dom/Document.cpp:
+ (WebCore::Document::implicitClose):
+ * loader/ImageLoader.cpp:
+ (WebCore::errorEventSender):
+ (WebCore):
+ (WebCore::ImageLoader::ImageLoader):
+ (WebCore::ImageLoader::~ImageLoader):
+ (WebCore::ImageLoader::setImage):
+ (WebCore::ImageLoader::updateFromElement):
+ (WebCore::ImageLoader::notifyFinished):
+ (WebCore::ImageLoader::dispatchPendingEvent):
+ (WebCore::ImageLoader::dispatchPendingErrorEvent):
+ (WebCore::ImageLoader::dispatchPendingErrorEvents):
+ * loader/ImageLoader.h:
+ (ImageLoader):
+
+2012-03-26 Stephen White <senorblanco@chromium.org>
+
+ Make filters and the threaded compositor play well together.
+ https://bugs.webkit.org/show_bug.cgi?id=78139
+
+ Use a dedicated GraphicsContext3D instance for all filters calls in
+ the threaded case. Clone all FilterOperations for thread safety
+ in the threaded case.
+
+ Reviewed by James Robinson.
+
+ Covered by tests in LayoutTests/css3/filters.
+
+ * platform/graphics/chromium/LayerChromium.cpp:
+ (WebCore::LayerChromium::setFilters):
+ Set a global flag if we've seen content with filters, so we know
+ we need to create the filter context.
+ (WebCore::LayerChromium::pushPropertiesTo):
+ Clone all filter operations if we're in the threaded case.
+ * platform/graphics/chromium/cc/CCLayerTreeHost.cpp:
+ (WebCore):
+ * platform/graphics/chromium/cc/CCLayerTreeHost.h:
+ (WebCore::CCLayerTreeHost::needsFilterContext):
+ (WebCore::CCLayerTreeHost::setNeedsFilterContext):
+ (CCLayerTreeHost):
+ Add flag and accessors for needsFilterContext.
+ * platform/graphics/chromium/cc/CCRenderSurface.cpp:
+ (WebCore::CCRenderSurface::applyFilters):
+ Pick up the appropriate context from SharedGraphicsContext3D,
+ depending if we're in the threaded case or not.
+ * platform/graphics/chromium/cc/CCThreadProxy.cpp:
+ (WebCore::CCThreadProxy::recreateContext):
+ For the threaded compositor re-create the filter context
+ alongside the main compositor context on lost context, if requested.
+ (WebCore::CCThreadProxy::beginFrame):
+ Create the filter context in beginFrame, if it was resquested and is
+ NULL. This handles the first-use case.
+ * platform/graphics/filters/CustomFilterOperation.h:
+ (WebCore::CustomFilterOperation::clone):
+ Assert if trying to clone the custom filter operation (it has
+ non-threadsafe members).
+ * platform/graphics/filters/FilterOperation.h:
+ (WebCore::DefaultFilterOperation::clone):
+ (WebCore::PassthroughFilterOperation::clone):
+ (WebCore::ReferenceFilterOperation::clone):
+ (WebCore::BasicColorMatrixFilterOperation::clone):
+ (WebCore::BasicComponentTransferFilterOperation::clone):
+ (WebCore::GammaFilterOperation::clone):
+ (WebCore::BlurFilterOperation::clone):
+ (WebCore::DropShadowFilterOperation::clone):
+ Add clone methods for all FilterOperations.
+ * platform/graphics/gpu/SharedGraphicsContext3D.cpp:
+ (WebCore::SharedGraphicsContext3DImpl::getOrCreateContext):
+ (WebCore::SharedGraphicsContext3DImpl::getContext):
+ (WebCore::SharedGraphicsContext3DImpl::createContext):
+ (WebCore::SharedGraphicsContext3D::get):
+ (WebCore::getOrCreateContextForImplThread):
+ (WebCore::SharedGraphicsContext3D::getForImplThread):
+ (WebCore::SharedGraphicsContext3D::haveForImplThread):
+ (WebCore::SharedGraphicsContext3D::createForImplThread):
+ Split out context creation, lost context recovery, and retrieval
+ into separate functions, so the impl thread can use only the parts
+ it wants on the threads it wants (create and have on main, get on impl).
+ Add asserts to ensure that's how they're called.
+ * platform/graphics/gpu/SharedGraphicsContext3D.h:
+ (SharedGraphicsContext3D):
+ Reuse the SharedGraphicsContext infrastructure to create a new
+ context singleton for filter use in the threaded compositor.
+
+2012-03-26 Adam Barth <abarth@webkit.org>
+
+ FrameLoader::shouldAllowNavigation uses Frame for context rather than Document
+ https://bugs.webkit.org/show_bug.cgi?id=81020
+
+ Reviewed by Eric Seidel.
+
+ The vast majority of security checks in the browser should use a
+ ScriptExecutionContext (aka a Document) to designate "who" is
+ attempting to perform a given action. Unfortunately,
+ shouldAllowNavigation was using a Frame to designate "who" is
+ attempting the navigation.
+
+ In cases when the executing script is "inactive" (i.e., belongs to a
+ document that is not currently displayed in a Frame), using the Frame
+ can cause us to grant the script the privileges of the document that's
+ currently displayed in the Frame rather than the one that contains the
+ script.
+
+ This patch moves shouldAllowNavigation from FrameLoader to Document
+ (and renames it to canNavigate), effectively change the context object
+ from a Frame to a Document.
+
+ Test: http/tests/security/frameNavigation/inactive-function-in-popup-navigate-child.html
+
+ * bindings/generic/BindingSecurity.h:
+ (BindingSecurity):
+ (WebCore):
+ * bindings/v8/V8Utilities.cpp:
+ (WebCore):
+ * bindings/v8/V8Utilities.h:
+ (WebCore):
+ - Deletes unused code.
+ * dom/Document.cpp:
+ (WebCore::canAccessAncestor):
+ (WebCore):
+ (WebCore::Document::canNavigate):
+ - canNavigate is copied from FrameLoader::shouldAllowNavigation.
+ I've added a null-check bailout if the document is inactive.
+ * dom/Document.h:
+ (Document):
+ * loader/FormState.cpp:
+ (WebCore::FormState::FormState):
+ (WebCore::FormState::create):
+ * loader/FormState.h:
+ (WebCore):
+ (FormState):
+ (WebCore::FormState::sourceDocument):
+ * loader/FormSubmission.cpp:
+ (WebCore::FormSubmission::create):
+ - Changes the context object from Frame to Document.
+ * loader/FrameLoader.cpp:
+ (WebCore::FrameLoader::submitForm):
+ (WebCore::FrameLoader::loadFrameRequest):
+ (WebCore):
+ (WebCore::FrameLoader::findFrameForNavigation):
+ - FrameLoader::findFrameForNavigation still incorrectly uses Frame
+ as the context object, but that's a bug for another patch.
+ (WebCore::createWindow):
+ * loader/FrameLoader.h:
+ (FrameLoader):
+ * loader/NavigationScheduler.cpp:
+ (WebCore::ScheduledFormSubmission::fire):
+ * page/DOMWindow.cpp:
+ (WebCore::DOMWindow::close):
+ (WebCore::DOMWindow::setLocation):
+ (WebCore::DOMWindow::open):
+ * page/History.cpp:
+ (WebCore::History::go):
+
+2012-03-26 Vangelis Kokkevis <vangelis@chromium.org>
+
+ [chromium] Simplify and fix CCLayerSorter
+ https://bugs.webkit.org/show_bug.cgi?id=82114
+
+ A significant cleanup, simplification and improvement of the CCLayerSorter code.
+ Simplified the LayerShape structure to use WebCore's FloatQuad for all overlap tests.
+ By treating every layer as two triangles, the old overlap code did a lot of redundant work
+ including testing two of the vertices of the layer and its diagonal twice. The new overlap
+ tests check:
+ 1. The four corners of each of the two layers against the other layer.
+ 2. The four edges of each layer against the edges of the other layer.
+ Unlike the old code, the new code has no early-outs in the overlap tests as those where causing
+ us to miss legitimate overlaps.
+ A new technique for breaking dependency cycles introduced by intersecting layers is implemented.
+ Instead of arbitrarily breaking cycles by choosing the node in the graph with the smallest number of
+ incoming edges (i.e. layers that need to be drawn before it) we chose the one with the smallest sum
+ of graph edge weights (defined as the max depth difference between two layers). Layers that intersect
+ have their respective graph edge weight set to zero, making them more likely to be picked for breaking
+ the cycles (it's not a perfect solution but it seems to perform much better than the previous one).
+
+ In addition to being overly complex and doing reduntant work, the old code was missing a
+ perspective divide when computing the coordinates of the layer's corners in the projected plane
+ which was the source of a lot of mis-sorted results.
+
+ In all, these improvements, fix a lot of outstanding issues with layer sorting, on pages such as:
+ http://www.keithclark.co.uk/labs/3dcss/demo/
+ http://2012.beercamp.com
+ https://developer.mozilla.org/fr/demos/detail/the-box/launch
+
+ Tests: CCLayerSorter unit tests.
+
+ Reviewed by Kenneth Russell.
+
+ * platform/graphics/chromium/cc/CCLayerSorter.cpp:
+ (WebCore):
+ (WebCore::perpProduct):
+ (WebCore::edgeEdgeTest):
+ (WebCore::CCLayerSorter::checkOverlap):
+ (WebCore::CCLayerSorter::LayerShape::LayerShape):
+ (WebCore::CCLayerSorter::LayerShape::layerZFromProjectedPoint):
+ (WebCore::CCLayerSorter::createGraphNodes):
+ (WebCore::CCLayerSorter::createGraphEdges):
+ (WebCore::CCLayerSorter::sort):
+ * platform/graphics/chromium/cc/CCLayerSorter.h:
+ (WebCore::CCLayerSorter::CCLayerSorter):
+ (CCLayerSorter):
+ (LayerShape):
+ (WebCore::CCLayerSorter::GraphNode::GraphNode):
+ (GraphNode):
+ (WebCore::CCLayerSorter::GraphEdge::GraphEdge):
+ (GraphEdge):
+
+2012-03-26 Fady Samuel <fsamuel@chromium.org>
+
+ [Chromium] Using WebViewPlugins with --force-compositing-mode causes an ASSERT to fail
+ https://bugs.webkit.org/show_bug.cgi?id=81954
+
+ Reviewed by James Robinson.
+
+ A static variable s_inPaintContents is set when painting, and it ensures
+ that we don't delete GraphicsLayers or create GraphicsLayers while painting.
+
+ However, because this variable is static, it does not permit the existence
+ of multiple WebViews in different stages (one laying out and one painting).
+
+ This manifests itself if one attempts to use the --force-compositing-mode
+ in Chromium and attempts to navigate to a page with a missing or old plugin
+ or a browser plugin (which uses a WebViewPlugin as a placeholder until it's
+ done loading).
+
+ The solution to simplify debugging is to make this flag per-Page.
+ We can access Page from RenderLayerBacking which is a GraphicsLayerClient.
+ We add a new method GraphicsLayerClient::verifyNotPainting with a default
+ (do nothing) implementation and override it in RenderLayerBacking to
+ test the flag set in Page.
+
+ * page/Page.cpp:
+ (WebCore::Page::Page):
+ * page/Page.h:
+ (Page):
+ (WebCore::Page::setIsPainting):
+ (WebCore::Page::isPainting):
+ * platform/graphics/GraphicsLayer.cpp:
+ (WebCore::GraphicsLayer::GraphicsLayer):
+ (WebCore::GraphicsLayer::~GraphicsLayer):
+ (WebCore::GraphicsLayer::paintGraphicsLayerContents):
+ * platform/graphics/GraphicsLayerClient.h:
+ (GraphicsLayerClient):
+ (WebCore::GraphicsLayerClient::verifyNotPainting):
+ * rendering/RenderLayerBacking.cpp:
+ (WebCore::RenderLayerBacking::paintContents):
+ (WebCore):
+ (WebCore::RenderLayerBacking::verifyNotPainting):
+ * rendering/RenderLayerBacking.h:
+ (RenderLayerBacking):
+
+2012-03-23 Ryosuke Niwa <rniwa@webkit.org>
+
+ cssText should use shorthand notations
+ https://bugs.webkit.org/show_bug.cgi?id=81737
+
+ Reviewed by Enrica Casucci.
+
+ Use shorthand properties to serialize style properties for cssText.
+
+ The overall algorithm is to look for any property that has a shorthand, and then check if
+ the shorthand value could be obtained (the condition is quite complicated for border properties).
+ If it could, then append that value to the string builder, and set the corresponding entries in
+ shorthandPropertyAppeared and shorthandPropertyUsed. If not, only turn on the bit in
+ shorthandPropertyAppeared on to avoid calling getPropertyValue again for longhand properties
+ that use the same shorthand property when we cannot use the shorthand.
+
+ Test: fast/css/cssText-shorthand.html
+
+ * css/StylePropertySet.cpp:
+ (WebCore::StylePropertySet::asText):
+
+2012-03-26 Bolin Hsu <bhsu@google.com>
+
+ [Chromium] Add Android keycodes
+ https://bugs.webkit.org/show_bug.cgi?id=81950
+
+ Add the missing Android keycodes listed in the bug.
+
+ Reviewed by Adam Barth.
+
+ * platform/chromium/KeyCodeConversionAndroid.cpp:
+ (WebCore::windowsKeyCodeForKeyEvent):
+ * platform/chromium/KeyboardCodes.h:
+
+2012-03-26 Levi Weintraub <leviw@chromium.org>
+
+ Switch ColumnInfo::addForcedBreak to LayoutUnits
+ https://bugs.webkit.org/show_bug.cgi?id=82210
+
+ Reviewed by Eric Seidel.
+
+ Forced breaks are added by local offsets, which should be in LayoutUnits.
+
+ No new tests. No change in behavior.
+
+ * rendering/ColumnInfo.h:
+ (WebCore::ColumnInfo::addForcedBreak):
+
+2012-03-26 Levi Weintraub <leviw@chromium.org>
+
+ Update LayoutUnit usage in ContainerNode, Element, and ElementRareData
+ https://bugs.webkit.org/show_bug.cgi?id=82219
+
+ Reviewed by Eric Seidel.
+
+ No new tests. No change in behavior.
+
+ * dom/ContainerNode.cpp:
+ (WebCore::ContainerNode::getLowerRightCorner): linesBoundingBox returns the enclosing IntRect
+ of the contained lines. Inline's aren't bounded in LayoutUnits nor pixel snapped.
+ * dom/Element.cpp:
+ (WebCore::Element::boundsInRootViewSpace): Coordinates in root view space are akin to absolute
+ coordinates, which are always expressed in integers.
+ * dom/Element.h:
+ (Element):
+ * dom/ElementRareData.h:
+ (WebCore::defaultMinimumSizeForResizing): Using numeric_limits<LayoutUnit>::max instead of
+ INT_MAX to avoid overflowing when LayoutUnits are sub-pixel.
+
+2012-03-26 Adam Klein <adamk@chromium.org>
+
+ Update binding test output for V8 after r112163.
+
+ * bindings/scripts/test/V8/V8TestInterface.cpp:
+ (WebCore::V8TestInterface::constructorCallback):
+ * bindings/scripts/test/V8/V8TestNamedConstructor.cpp:
+ (WebCore::V8TestNamedConstructorConstructorCallback):
+ * bindings/scripts/test/V8/V8TestObj.cpp:
+ (WebCore::V8TestObj::constructorCallback):
+ * bindings/scripts/test/V8/V8TestSerializedScriptValueInterface.cpp:
+ (WebCore::V8TestSerializedScriptValueInterface::constructorCallback):
+
+2012-03-26 Levi Weintraub <leviw@chromium.org>
+
+ Update localSelectionRect to return a LayoutRect
+ https://bugs.webkit.org/show_bug.cgi?id=82183
+
+ Reviewed by Eric Seidel.
+
+ localSelectionRect returns a rectangle in the coordinate space of its renderer,
+ and therefor should remain LayoutUnits until being promoted to absolute
+ coordinates or painted. Also fixing an incorrect conversion of startPos and
+ endPos in selectionRectForRepaint.
+
+ No new tests. No change in behavior.
+
+ * rendering/InlineTextBox.cpp:
+ (WebCore::InlineTextBox::localSelectionRect): Continuing to use enclosingIntRect
+ for the value being returned from the font engine since these floating point
+ values should not be pixel snapped.
+ * rendering/InlineTextBox.h:
+ (InlineTextBox):
+ * rendering/RenderReplaced.cpp:
+ (WebCore::RenderReplaced::localSelectionRect):
+ * rendering/RenderReplaced.h:
+ (RenderReplaced):
+ * rendering/RenderText.cpp:
+ (WebCore::localQuadForTextBox):
+ (WebCore::RenderText::absoluteRectsForRange):
+ (WebCore::RenderText::absoluteQuadsForRange):
+ (WebCore::RenderText::selectionRectForRepaint): Fixing an incorrect conversion of
+ start/endPos to LayoutUnits. These values represent a range of selected characters,
+ not layout values!
+ * rendering/svg/RenderSVGInlineText.cpp:
+ (WebCore::RenderSVGInlineText::localCaretRect):
+ * rendering/svg/SVGInlineTextBox.cpp:
+ (WebCore::SVGInlineTextBox::localSelectionRect):
+ * rendering/svg/SVGInlineTextBox.h:
+ (SVGInlineTextBox):
+
+2012-03-26 Justin Novosad <junov@chromium.org>
+
+ [Chromium] Crash in Canvas2DLayerChromium::pushPropertiesTo
+ https://bugs.webkit.org/show_bug.cgi?id=82243
+
+ Reviewed by James Robinson.
+
+ Adding null pointer check to prevent crash and texture object
+ validity check to prevent potential graphics glitch
+
+ * platform/graphics/chromium/Canvas2DLayerChromium.cpp:
+ (WebCore::Canvas2DLayerChromium::pushPropertiesTo):
+
+2012-03-26 Adam Klein <adamk@chromium.org>
+
+ Use PassRefPtr in V8DOMWrapper interface to avoid explicit ref() calls
+ https://bugs.webkit.org/show_bug.cgi?id=82238
+
+ Reviewed by Adam Barth.
+
+ The setJSWrapper* methods previously featured a comment that asked
+ callers to ref the objects before passing them in. This change makes
+ that contract explicit (and allows the removal of the comment).
+
+ In addition, for ConstructorCallbacks, this change slightly reduces
+ refcount churn by passing on the initial ref via RefPtr::release().
+
+ No new tests, no change in behavior.
+
+ * bindings/scripts/CodeGeneratorV8.pm:
+ (GenerateConstructorCallback): Use RefPtr::release() to avoid refcount churn and remove explicit ref() call.
+ (GenerateNamedConstructorCallback): ditto.
+ * bindings/v8/V8DOMWindowShell.cpp:
+ (WebCore::V8DOMWindowShell::installDOMWindow): Cast to a PassRefPtr and remove explicit ref call.
+ * bindings/v8/V8DOMWrapper.cpp:
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMNode): Pass leaked refs into the DOMNodeMaps.
+ * bindings/v8/V8DOMWrapper.h:
+ (V8DOMWrapper): Make the setJSWrapperFor* methods take PassRefPtr<T>.
+ (WebCore::V8DOMWrapper::setJSWrapperForDOMObject): Pass leaked ref into the DOMObjectMap.
+ (WebCore::V8DOMWrapper::setJSWrapperForActiveDOMObject): Pass leaked ref into the ActiveDOMObjectMap.
+ * bindings/v8/V8Proxy.h:
+ (WebCore::toV8): Remove explicit ref.
+ * bindings/v8/WorkerContextExecutionProxy.cpp:
+ (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): Cast to a PassRefPTr and remove explicit ref call.
+ * bindings/v8/custom/V8HTMLImageElementConstructor.cpp:
+ (WebCore::v8HTMLImageElementConstructorCallback): Use RefPtr::release() to avoid refcount churn and remove explicit ref.
+ * bindings/v8/custom/V8WebKitMutationObserverCustom.cpp:
+ (WebCore::V8WebKitMutationObserver::constructorCallback): ditto.
+ * bindings/v8/custom/V8WebSocketCustom.cpp:
+ (WebCore::V8WebSocket::constructorCallback): ditto.
+ * bindings/v8/custom/V8XMLHttpRequestConstructor.cpp:
+ (WebCore::V8XMLHttpRequest::constructorCallback): ditto.
+
2012-03-26 Alexey Proskuryakov <ap@apple.com>
Remove obsolete FormDataStreamMac code
« no previous file with comments | « no previous file | Source/WebCore/platform/graphics/chromium/LayerRendererChromium.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698