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 |