2010-02-02 Steve Block Reviewed by Adam Barth. Adds virtual destructors for AbstractWeakReferenceMap and AbstractWeakReferenceMap::Visitor https://bugs.webkit.org/show_bug.cgi?id=34434 No new tests, build fix only. * bindings/v8/V8DOMMap.h: Modified. (WebCore::AbstractWeakReferenceMap::~AbstractWeakReferenceMap): Added. (WebCore::AbstractWeakReferenceMap::Visitor::~Visitor): Added. 2010-02-01 Philippe Normand Rubber stamped by Xan Lopez. Fixed compilation warning about unsigned vs signed comparison. * plugins/gtk/PluginViewGtk.cpp: (WebCore::PluginView::paint): 2010-01-31 Kent Tamura Unreviewed. Revert r54112 and r54124 because of Windows build error. * Android.mk: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::scale): (WebCore::CanvasRenderingContext2D::rotate): (WebCore::CanvasRenderingContext2D::translate): (WebCore::CanvasRenderingContext2D::transform): (WebCore::CanvasRenderingContext2D::setTransform): (WebCore::CanvasRenderingContext2D::isPointInPath): (WebCore::CanvasRenderingContext2D::willDraw): * html/canvas/CanvasRenderingContext2D.h: * platform/graphics/GraphicsContext.h: * platform/graphics/Path.h: * platform/graphics/cairo/GraphicsContextCairo.cpp: * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: * platform/graphics/cairo/PathCairo.cpp: * platform/graphics/cairo/TransformationMatrixCairo.cpp: * platform/graphics/cg/GraphicsContextCG.cpp: * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: * platform/graphics/cg/PathCG.cpp: * platform/graphics/cg/TransformationMatrixCG.cpp: * platform/graphics/haiku/GraphicsContextHaiku.cpp: * platform/graphics/haiku/PathHaiku.cpp: * platform/graphics/qt/GraphicsContextQt.cpp: * platform/graphics/qt/PathQt.cpp: * platform/graphics/qt/TransformationMatrixQt.cpp: * platform/graphics/skia/GraphicsContextSkia.cpp: * platform/graphics/skia/PathSkia.cpp: * platform/graphics/skia/TransformationMatrixSkia.cpp: * platform/graphics/transforms/AffineTransform.cpp: Removed. * platform/graphics/transforms/AffineTransform.h: Removed. * platform/graphics/wince/GraphicsContextWince.cpp: * platform/graphics/wx/GraphicsContextWx.cpp: * platform/graphics/wx/PathWx.cpp: * platform/graphics/wx/TransformationMatrixWx.cpp: (WebCore::TransformationMatrix::operator wxGraphicsMatrix): 2010-01-31 Kwang Yul Seo Reviewed by Darin Adler. Limit the scope of packing alignment to avoid MSVC C4103 warning. https://bugs.webkit.org/show_bug.cgi?id=34390 Use pack(push, 16) and pack(pop) to limit the scope of packing alignment change. * bindings/js/JSSVGPODTypeWrapper.h: 2010-01-31 Kent Tamura Reviewed by Darin Adler. Fix valueAsNumber calculation for type=month. https://bugs.webkit.org/show_bug.cgi?id=34304 valueAsNumber calculation for type=month which was checked in as r53893 was the number of milliseconds since UNIX epoch, and it was wrong. The correct way is the number months since UNIX epoch. * html/DateComponents.cpp: (WebCore::DateComponents::setMonthsSinceEpoch): (WebCore::DateComponents::monthsSinceEpoch): * html/DateComponents.h: Declare setMonthsSinceEpoch() and monthsSinceEpoch(). * html/HTMLInputElement.cpp: (WebCore::HTMLInputElement::parseToDouble): Switch to monthsSinceEpoch() for type=MONTH. (WebCore::HTMLInputElement::valueAsDate): Add code with millisecondsSinceEpoch() for MONTH because parseToDouble() changed its behavior. (WebCore::HTMLInputElement::setValueAsNumber): Use setMonthsSinceEpoch() for MONTH. 2010-01-31 Dan Bernstein Reviewed by Timothy Hatcher. Web Inspector: REGRESSION: Numbers in bubbles are vertically off-center https://bugs.webkit.org/show_bug.cgi?id=34398 * inspector/front-end/inspector.css: Specify line-height: normal for ".console-message .bubble" and ".sidebar-tree-item .status .bubble". 2010-01-28 Ojan Vafai Reviewed by Darin Adler. Implement CSSOM Range.getClientRects for collapsed selections https://bugs.webkit.org/show_bug.cgi?id=34239 When getting the quads for a range on a text node, allow returning zero width quads. This leaves the case of collapsed selections inside elements still not fixed, but no worse. * rendering/InlineTextBox.cpp: (WebCore::InlineTextBox::selectionRect): * rendering/RenderText.cpp: (WebCore::RenderText::absoluteQuadsForRange): 2010-01-31 Oliver Hunt Reviewed by Simon Fraser. Animated scaling of background-image is too slow https://bugs.webkit.org/show_bug.cgi?id=33808 Implement a version of the RenderImage animated scaling optimisation for background images. Due to the possibility of arbitrary transforms being applied to containing elements we explicitly check the current CTM of the context for scaling or rotation. * platform/graphics/GraphicsContext.cpp: (WebCore::GraphicsContext::drawTiledImage): * platform/graphics/GraphicsContext.h: * platform/graphics/transforms/TransformationMatrix.h: (WebCore::TransformationMatrix::isIdentityOrTranslation): * rendering/RenderBoxModelObject.cpp: (WebCore::RenderBoxModelScaleData::RenderBoxModelScaleData): (WebCore::RenderBoxModelScaleData::~RenderBoxModelScaleData): (WebCore::RenderBoxModelScaleData::hiqhQualityRepaintTimer): (WebCore::RenderBoxModelScaleData::size): (WebCore::RenderBoxModelScaleData::setSize): (WebCore::RenderBoxModelScaleData::lastPaintTime): (WebCore::RenderBoxModelScaleData::setLastPaintTime): (WebCore::RenderBoxModelScaleData::useLowQualityScale): (WebCore::RenderBoxModelScaleData::transform): (WebCore::RenderBoxModelScaleData::setTransform): (WebCore::RenderBoxModelScaleData::setUseLowQualityScale): (WebCore::RenderBoxModelScaleObserver::boxModelObjectDestroyed): (WebCore::RenderBoxModelScaleObserver::highQualityRepaintTimerFired): (WebCore::RenderBoxModelScaleObserver::shouldPaintBackgroundAtLowQuality): (WebCore::RenderBoxModelObject::highQualityRepaintTimerFired): (WebCore::RenderBoxModelObject::~RenderBoxModelObject): (WebCore::RenderBoxModelObject::paintFillLayerExtended): * rendering/RenderBoxModelObject.h: 2010-01-31 Dirk Schulze Reviewed by Simon Fraser. Add back an AffineTransform class for use by SVG https://bugs.webkit.org/show_bug.cgi?id=33750 These are the first steps on reimplementing AffineTransform. Unlike the old affine code, this one is platform independent like TransformationMatrix. AffineTransform has the benefit, that it stores just 6 doubles instead of 16 in TransformationMatrix. The calculations of transformations are not that complex and can improve the memory usage and speed of SVG. AffineTransform can be used by HTML Canvas3D or SVG, since they are 2D related (at least for the moment). HTML Canvas is the first that makes use of the new AffineTransform. Next patches will introduce the affine code to SVG. No new tests. The new AffineTransformation code is tested by fast/canvas. * Android.mk: * GNUmakefile.am: * WebCore.gypi: * WebCore.pro: * WebCore.vcproj/WebCore.vcproj: * WebCore.xcodeproj/project.pbxproj: * html/canvas/CanvasRenderingContext2D.cpp: (WebCore::CanvasRenderingContext2D::scale): (WebCore::CanvasRenderingContext2D::rotate): (WebCore::CanvasRenderingContext2D::translate): (WebCore::CanvasRenderingContext2D::transform): (WebCore::CanvasRenderingContext2D::setTransform): (WebCore::CanvasRenderingContext2D::isPointInPath): (WebCore::CanvasRenderingContext2D::willDraw): * html/canvas/CanvasRenderingContext2D.h: * platform/graphics/GraphicsContext.h: * platform/graphics/Path.h: * platform/graphics/cairo/GraphicsContextCairo.cpp: (WebCore::GraphicsContext::getAffineCTM): (WebCore::GraphicsContext::concatCTM): * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h: (WebCore::GraphicsContextPlatformPrivate::concatCTM): * platform/graphics/cairo/PathCairo.cpp: (WebCore::Path::transform): * platform/graphics/cairo/TransformationMatrixCairo.cpp: (WebCore::AffineTransform::operator cairo_matrix_t): * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::concatCTM): (WebCore::GraphicsContext::getAffineCTM): * platform/graphics/cg/GraphicsContextPlatformPrivateCG.h: (WebCore::GraphicsContextPlatformPrivate::concatCTM): * platform/graphics/cg/PathCG.cpp: (WebCore::Path::transform): * platform/graphics/cg/TransformationMatrixCG.cpp: (WebCore::AffineTransform::operator CGAffineTransform): * platform/graphics/haiku/GraphicsContextHaiku.cpp: (WebCore::GraphicsContext::getAffineCTM): (WebCore::GraphicsContext::concatCTM): * platform/graphics/haiku/PathHaiku.cpp: (WebCore::Path::transform): * platform/graphics/qt/GraphicsContextQt.cpp: (WebCore::GraphicsContext::getAffineCTM): (WebCore::GraphicsContext::concatCTM): * platform/graphics/qt/PathQt.cpp: (WebCore::Path::transform): * platform/graphics/qt/TransformationMatrixQt.cpp: (WebCore::AffineTransform::operator QTransform): * platform/graphics/skia/GraphicsContextSkia.cpp: (WebCore::GraphicsContext::getAffineCTM): * platform/graphics/skia/PathSkia.cpp: (WebCore::Path::transform): * platform/graphics/skia/TransformationMatrixSkia.cpp: (WebCore::AffineTransform::operator SkMatrix): * platform/graphics/transforms/AffineTransform.cpp: Added. (WebCore::affineTransformDecompose): (WebCore::affineTransformCompose): (WebCore::AffineTransform::AffineTransform): (WebCore::AffineTransform::reset): (WebCore::AffineTransform::setMatrix): (WebCore::AffineTransform::isIdentity): (WebCore::AffineTransform::det): (WebCore::AffineTransform::isInvertible): (WebCore::AffineTransform::inverse): (WebCore::AffineTransform::multiply): (WebCore::AffineTransform::multLeft): (WebCore::AffineTransform::rotate): (WebCore::AffineTransform::scale): (WebCore::AffineTransform::translate): (WebCore::AffineTransform::scaleNonUniform): (WebCore::AffineTransform::rotateFromVector): (WebCore::AffineTransform::flipX): (WebCore::AffineTransform::flipY): (WebCore::AffineTransform::shear): (WebCore::AffineTransform::skew): (WebCore::AffineTransform::skewX): (WebCore::AffineTransform::skewY): (WebCore::makeMapBetweenRects): (WebCore::AffineTransform::map): (WebCore::AffineTransform::mapPoint): (WebCore::AffineTransform::mapRect): (WebCore::AffineTransform::blend): * platform/graphics/transforms/AffineTransform.h: Added. (WebCore::AffineTransform::a): (WebCore::AffineTransform::setA): (WebCore::AffineTransform::b): (WebCore::AffineTransform::setB): (WebCore::AffineTransform::c): (WebCore::AffineTransform::setC): (WebCore::AffineTransform::d): (WebCore::AffineTransform::setD): (WebCore::AffineTransform::e): (WebCore::AffineTransform::setE): (WebCore::AffineTransform::f): (WebCore::AffineTransform::setF): (WebCore::AffineTransform::operator== ): (WebCore::AffineTransform::operator!=): (WebCore::AffineTransform::operator*=): (WebCore::AffineTransform::operator*): (WebCore::AffineTransform::setMatrix): * platform/graphics/wince/GraphicsContextWince.cpp: (WebCore::GraphicsContext::concatCTM): (WebCore::GraphicsContext::getAffineCTM): * platform/graphics/wx/GraphicsContextWx.cpp: (WebCore::GraphicsContext::getAffineCTM): (WebCore::GraphicsContext::concatCTM): * platform/graphics/wx/PathWx.cpp: (WebCore::Path::transform): * platform/graphics/wx/TransformationMatrixWx.cpp: (WebCore::AffineTransform::operator wxGraphicsMatrix): 2010-01-31 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: [REGRESSION] Breakpoint source line is not displayed in the breakpoint manager. * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype._addBreakpointToSource): 2010-01-31 Pavel Feldman Reviewed by Timothy Hatcher. Web Inspector: Introduce NativeTextViewer. This change handles rendering highlighted text, using browser's selection/drag/drop/click logic. Breakpoint decorations and program counter is working. Todo: line numbers are painted 'under' the text when scrolling horizontally, search is not yet implemented. https://bugs.webkit.org/show_bug.cgi?id=34391 * WebCore.gypi: * WebCore.vcproj/WebCore.vcproj: * inspector/front-end/DivBasedTextViewer.js: Added. (WebInspector.DivBasedTextViewer): (WebInspector.DivBasedTextViewer.prototype._textChanged): (WebInspector.DivBasedTextViewer.prototype._createLineDivs): (WebInspector.DivBasedTextViewer.prototype._updatePreferredSize): (WebInspector.DivBasedTextViewer.prototype._scroll): (WebInspector.DivBasedTextViewer.prototype._registerMouseListeners): (WebInspector.DivBasedTextViewer.prototype._registerKeyboardListeners): (WebInspector.DivBasedTextViewer.prototype._registerClipboardListeners): (WebInspector.DivBasedTextViewer.prototype._paintSelection): (WebInspector.DivBasedTextViewer.prototype._positionDivDecoration): (WebInspector.DivBasedTextViewer.prototype._mouseDown): (WebInspector.DivBasedTextViewer.prototype._contextMenu): (WebInspector.DivBasedTextViewer.prototype._caretForMouseEvent): (WebInspector.DivBasedTextViewer.prototype._paintLine): (WebInspector.DivBasedTextViewer.prototype._createSpan): * inspector/front-end/Settings.js: * inspector/front-end/SourceFrame.js: (WebInspector.SourceFrame.prototype.clearMessages): (WebInspector.SourceFrame.prototype.sizeToFitContentHeight): (WebInspector.SourceFrame.prototype._createEditorIfNeeded): (WebInspector.SourceFrame.prototype._addMessageToSource): (WebInspector.SourceFrame.prototype.resize): * inspector/front-end/TextEditor.js: (WebInspector.TextEditor): (WebInspector.TextEditor.prototype.setDivDecoration): (WebInspector.TextEditor.prototype._registerMouseListeners): (WebInspector.TextEditor.prototype._registerKeyboardListeners): (WebInspector.TextEditor.prototype._registerClipboardListeners): (WebInspector.TextEditor.prototype.reveal): (WebInspector.TextEditor.prototype._textChanged): (WebInspector.TextEditor.prototype.revalidateDecorationsAndPaint): (WebInspector.TextEditor.prototype._updatePreferredSize): (WebInspector.TextEditor.prototype.resize): (WebInspector.TextEditor.prototype._paintLinesContinuation): (WebInspector.TextEditor.prototype._paintLine): (WebInspector.TextEditor.prototype._contextMenu): (WebInspector.TextEditor.prototype._caretForMouseEvent): (WebInspector.TextEditor.prototype._changeFont): * inspector/front-end/TextEditorHighlighter.js: (WebInspector.TextEditorHighlighter.prototype._lex): * inspector/front-end/WebKit.qrc: * inspector/front-end/inspector.html: * inspector/front-end/textEditor.css: 2010-01-31 Benjamin Poulain Reviewed by Eric Seidel. [Qt] Enable FAST_MOBILE_SCROLLING on Qt embedded platforms https://bugs.webkit.org/show_bug.cgi?id=34168 Enable FAST_MOBILE_SCROLLING for Qt on Maemo 5, Linux embedded and Symbian * WebCore.pro: 2010-01-31 Yury Semikhatsky Reviewed by Pavel Feldman. Make ScriptState destructor protected since all non-empty ScriptStates are managed by GC. Remove obsolete constructor. https://bugs.webkit.org/show_bug.cgi?id=34266 * bindings/v8/ScriptState.cpp: * bindings/v8/ScriptState.h: 2010-01-30 Simon Fraser Reviewed by Dan Bernstein. Use CGGradient on Leopard and later, since it's faster than CGShading https://bugs.webkit.org/show_bug.cgi?id=34384 Use CGGradient on Leopard and later, rather than CGShading, for performance. * platform/graphics/Gradient.h: * platform/graphics/Gradient.cpp: (WebCore::Gradient::sortStopsIfNecessary): Utility method to sort stops. Did not call this from getColor() to avoid overhead of a function call. * platform/graphics/cg/GradientCG.cpp: (WebCore::Gradient::platformDestroy): Use CGGradientRelease() post-Tiger. (WebCore::Gradient::platformGradient): Create and return a CGGradientRef post-Tiger. (WebCore::Gradient::fill): Call new paint() method. (WebCore::Gradient::paint): New convenence method that avoids testing isRadial() in a bunch of other places. * platform/graphics/cg/GraphicsContextCG.cpp: (WebCore::GraphicsContext::fillPath): Call the gradient's paint() method. (WebCore::GraphicsContext::strokePath): Ditto (WebCore::GraphicsContext::fillRect): Ditto (WebCore::GraphicsContext::strokeRect): Ditto 2010-01-30 Simon Fraser Reviewed by Adele Peterson. Do color animations on premultiplied colors https://bugs.webkit.org/show_bug.cgi?id=34383 Convert colors to premultiplied alpha before interpolating them, then convert the result back to non-premultiplied. This gives better results when animating from transparent colors. Test: transitions/color-transition-premultiplied.html * page/animation/AnimationBase.cpp: (WebCore::blendFunc): 2010-01-30 Gustavo Noronha Silva Build fixes needed for make distcheck. * GNUmakefile.am: 2010-01-29 Mark Rowe Stop copying an IDL file in to the framework wrapper. * WebCore.xcodeproj/project.pbxproj: 2010-01-29 Mark Rowe Sort Xcode projects. * WebCore.xcodeproj/project.pbxproj: == Rolled over to ChangeLog-2010-01-29 ==