2010-02-01  Philippe Normand  <pnormand@igalia.com>

        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  <tkent@chromium.org>

        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  <skyul@company100.net>

        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  <tkent@chromium.org>

        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  <mitz@apple.com>

        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  <ojan@chromium.org>

        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  <oliver@apple.com>

        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  <krit@webkit.org>

        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  <pfeldman@chromium.org>

        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  <pfeldman@chromium.org>

        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  <benjamin.poulain@nokia.com>

        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  <yurys@chromium.org>

        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  <simon.fraser@apple.com>

        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  <simon.fraser@apple.com>

        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  <gns@gnome.org>

        Build fixes needed for make distcheck.

        * GNUmakefile.am:

2010-01-29  Mark Rowe  <mrowe@apple.com>

        Stop copying an IDL file in to the framework wrapper.

        * WebCore.xcodeproj/project.pbxproj:

2010-01-29  Mark Rowe  <mrowe@apple.com>

        Sort Xcode projects.

        * WebCore.xcodeproj/project.pbxproj:

== Rolled over to ChangeLog-2010-01-29 ==
