2010-12-07 Sergio Villar Senin <svillar@igalia.com>
[WebKit-https.git] / WebCore / ChangeLog
index fbba963..7591ee2 100644 (file)
@@ -1,3 +1,905 @@
+2010-12-07  Sergio Villar Senin  <svillar@igalia.com>
+
+        Reviewed by Xan Lopez.
+
+        [GTK] WebKitSoupCache fails to load resources when cache contents are externally removed
+        https://bugs.webkit.org/show_bug.cgi?id=50577
+
+        Try to download cached resources again if they are no longer
+        accesible by the cache.
+
+        * platform/network/soup/cache/soup-request-http.c:
+        (send_async_cb):
+        (webkit_soup_request_http_send_async):
+
+2010-12-06  MORITA Hajime  <morrita@google.com>
+
+        Reviewed by Dimitri Glazkov.
+
+        RenderIndicator subclasses should not change the render tree during layout.
+        https://bugs.webkit.org/show_bug.cgi?id=50026
+
+        The old code created shadow elements during a layout computation,
+        that makes the layout state inconsisntent and cause an assertion failure. 
+        This change created shadow elements before the layout to avoid  
+        state inconsistencies.
+        
+        Instead of creating shadows on demand, RenderMeter and
+        RenderProgress now create all necessary shadows before layouts,
+        and change its visibilities during the layout: Changing
+        visibilities doesn't trigger relayout and keep the state
+        consistent.
+        
+        RenderMeter uses new HidablePartElement for shadow elements,
+        which can toggle visibiliby between hidden and original value.
+
+        Test: fast/dom/HTMLMeterElement/meter-element-crash.html
+
+        * html/HTMLMeterElement.cpp:
+        (WebCore::HTMLMeterElement::attach): Calling updateFromElement()
+        * html/HTMLMeterElement.h:
+        * html/HTMLProgressElement.cpp:
+        (WebCore::HTMLProgressElement::attach): Calling updateFromElement()
+        * html/HTMLProgressElement.h:
+        * rendering/RenderIndicator.cpp:
+        * rendering/RenderIndicator.h:
+        * rendering/RenderMeter.cpp:
+        (WebCore::MeterPartElement::MeterPartElement): Added to hold a restorable visibility.
+        (WebCore::MeterPartElement::createForPart):
+        (WebCore::MeterPartElement::hide):
+        (WebCore::MeterPartElement::restoreVisibility):
+        (WebCore::MeterPartElement::updateStyleForPart):
+        (WebCore::MeterPartElement::saveVisibility):
+        (WebCore::RenderMeter::~RenderMeter):
+        (WebCore::RenderMeter::createPart): Extracted
+        (WebCore::RenderMeter::updateFromElement): Had a shadow generation.
+        (WebCore::RenderMeter::layoutParts): Removed shadow generation code.
+        (WebCore::RenderMeter::shouldHaveParts):
+        (WebCore::RenderMeter::valuePartRect): Adopted orientation.
+        (WebCore::RenderMeter::orientation): Morphed from isHorizontal()
+        (WebCore::RenderMeter::valuePseudoId): Adoptedn orientation
+        (WebCore::RenderMeter::barPseudoId): Adopted orientation.
+        * rendering/RenderMeter.h:
+        (WebCore::RenderMeter::shadowAttached):
+        * rendering/RenderProgress.cpp:
+        (WebCore::RenderProgress::updateFromElement): Had a shadow generation.
+        (WebCore::RenderProgress::layoutParts):
+        * rendering/RenderProgress.h:
+        * rendering/ShadowElement.cpp:
+        (WebCore::ShadowBlockElement::createForPart): Extracted initAsPart().
+        (WebCore::ShadowBlockElement::initAsPart): Extracted from createForPart().
+        * rendering/ShadowElement.h:
+
+2010-11-29  Mihai Parparita  <mihaip@chromium.org>
+
+        Reviewed by Adam Barth.
+
+        returning to a POST result within a frame does a GET instead of a POST
+        https://bugs.webkit.org/show_bug.cgi?id=10199
+        
+        FrameLoader::loadURLIntoChildFrame had a check for whether a frame
+        had a HistoryItem, and if so used that item's URL. However, that did
+        not handle the case where the HistoryItem had FormData and thus was the
+        result of a POST request. FrameLoader::navigateToDifferentDocument (now
+        renamed to loadDifferentDocumentItem) does all that, so just switch to
+        using it instead.
+        
+        Besides the bug fix, the only difference in behavior is that we use the
+        HistoryItem's URL instead of original URL when restoring it in a child
+        frame. This seems desirable too (for consistency with other browsers, and
+        so that we can avoid form double-submits for forms that that do
+        POST-then-redirect), and is tested by
+        fast/history/history-back-initial-vs-final-url.html.
+        
+        Tests: fast/history/history-back-initial-vs-final-url.html
+               http/tests/navigation/post-frames-goback1.html
+               http/tests/navigation/postredirect-frames-goback1.html
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::loadURLIntoChildFrame): Switch to using
+            loadDifferentDocumentItem. Also cleaned up ordering slightly (if
+            on the archive path, there's no need to do any of the other checks).
+        (WebCore::FrameLoader::loadDifferentDocumentItem): Renamed from
+            navigateToDifferentDocument so that calling it from loadItem and
+            loadURLIntoChildFrame flows more easily.
+        (WebCore::FrameLoader::loadSameDocumentItem): Similarly, renamed from
+            navigateWithinDocument.
+        (WebCore::FrameLoader::loadItem): Update callsites to the above methods.
+        * loader/FrameLoader.h:
+
+2010-12-07  Dan Bernstein  <mitz@apple.com>
+
+        Reviewed by Darin Adler.
+
+        Made tables repaint correctly in all writing modes
+        Part of: Make tables work with vertical text
+        https://bugs.webkit.org/show_bug.cgi?id=46417
+
+        Tests: fast/repaint/table-writing-modes-h.html
+               fast/repaint/table-writing-modes-v.html
+
+        * rendering/RenderTableSection.cpp:
+        (WebCore::RenderTableSection::paintObject): Compute the ranges of rows and
+        columns to repaint based on the logical extent of the repaint rect.
+
+2010-12-07  Alexey Marinichev  <amarinichev@chromium.org>
+
+        Reviewed by James Robinson.
+
+        [chromium] compositor lost context recovery fix
+        https://bugs.webkit.org/show_bug.cgi?id=50614
+
+        To test, load a page that triggers the compositor, kill the GPU
+        process and hover over a link to redraw and thus restart the GPU
+        process.  Without this patch it will assert in
+        ContentLayerChromium::updateTextureRect; with this patch it will not.
+
+        * platform/graphics/chromium/LayerChromium.cpp:
+        (WebCore::LayerChromium::setNeedsDisplay):
+
+2010-12-07  Anders Carlsson  <andersca@apple.com>
+
+        Fix the last clang++ build error.
+
+        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+        (PlatformCALayer::animationForKey):
+        Cast the returned animation to the correct type.
+
+2010-12-07  Anders Carlsson  <andersca@apple.com>
+
+        Fix some clang++ build errors.
+
+        * platform/graphics/ca/GraphicsLayerCA.cpp:
+        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
+        Remove unused variable.
+
+        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
+        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+        Fix constness of pointers.
+
+2010-12-07  Simon Fraser  <simon.fraser@apple.com>
+
+        Reviewed by Chris Marrin.
+
+        Fix the Color -> CGColorRef conversions for the debug colors
+        used for compositing layers.
+
+        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+        (PlatformCALayer::setBackgroundColor):
+        (PlatformCALayer::setBorderColor):
+
+2010-12-07  Brian Weinstein  <bweinstein@apple.com>
+
+        Reviewed by John Sullivan.
+
+        Part of Layering Violation in ContextMenu
+        https://bugs.webkit.org/show_bug.cgi?id=50586
+        
+        ContextMenuMac.mm had a WebCoreMenuTarget class, which was responsible for wrapping
+        a ContextMenuItem, and calling through to the ContextMenuController to validate it
+        and call a function when it was selected.
+        
+        It was a layering violation to have this class here, because ContextMenu can't know
+        about ContextMenuController.
+        
+        This patch moves the class that wraps the ContextMenuItems to WebKit/mac/WebHTMLView.mm,
+        and sets up the menu targets there.
+
+        No change in behavior, no new tests.
+
+        * WebCore.exp.in: Added function that needs to be exported.
+        * platform/mac/ContextMenuMac.mm:
+        (WebCore::ContextMenu::ContextMenu): Don't set the sharedMenuTarget anymore.
+        (WebCore::ContextMenu::appendItem): Don't call setMenuItemTarget (this is done in WebKit now).
+        (WebCore::ContextMenu::insertItem): Ditto.
+
+2010-12-07  Simon Fraser  <simon.fraser@apple.com>
+
+        Reviewed by Dan Bernstein.
+
+        -webkit-transition Fails on Multiple text-shadow Shadows
+        https://bugs.webkit.org/show_bug.cgi?id=42281
+        
+        When transitioning multiple shadows, the blend function for
+        ShadowData dropped all but the first and last shadow because
+        of a failure to append to the end of the list. Fixed.
+
+        Test: transitions/multiple-text-shadow-transition.html
+
+        * page/animation/AnimationBase.cpp:
+        (WebCore::PropertyWrapperShadow::blend):
+
+2010-12-07  Simon Fraser  <simon.fraser@apple.com>
+
+        Reviewed by Beth Dakin.
+
+        CSS animation doesn't work for border-radius
+        https://bugs.webkit.org/show_bug.cgi?id=48340
+        
+        Include CSSPropertyBorderRadius in the list of shorthand
+        properties, so that the individual border-radius properties
+        get animated.
+
+        Test: transitions/border-radius-transition.html
+
+        * page/animation/AnimationBase.cpp:
+        (WebCore::addShorthandProperties):
+
+2010-12-07  Maciej Stachowiak  <mjs@apple.com>
+
+        Reviewed by Kent Tamura.
+
+        Implement HTML5 hidden attribute
+        https://bugs.webkit.org/show_bug.cgi?id=40511
+
+        Test: fast/html/hidden-attr.html
+
+        * html/HTMLElement.cpp:
+        (WebCore::HTMLElement::mapToEntry): Pick up hidden as a global mapped attribute.
+        (WebCore::HTMLElement::parseMappedAttribute): Map hidden attribute to display: none.
+
+2010-12-07  Kenneth Russell  <kbr@google.com>
+
+        Reviewed by David Levin.
+
+        Fix compilation of core web audio files on Windows
+        https://bugs.webkit.org/show_bug.cgi?id=50603
+
+        Changed a few constructs using C99 features of math.h to use
+        wtf/MathExtras.h instead. Changed inline definitions of a couple of
+        const static doubles in classes to out-of-line. Built Chrome with
+        web audio enabled on Windows and Mac OS X to test these changes.
+
+        No new tests since audio API is not yet implemented.
+
+        * WebCore.gypi:
+        * platform/audio/AudioResampler.cpp:
+        * platform/audio/Biquad.cpp:
+        (WebCore::Biquad::setLowpassParams):
+        (WebCore::Biquad::setHighpassParams):
+        (WebCore::Biquad::setLowShelfParams):
+        * platform/audio/Cone.cpp:
+        (WebCore::ConeEffect::gain):
+        * platform/audio/EqualPowerPanner.cpp:
+        (WebCore::EqualPowerPanner::pan):
+        * platform/audio/FFTFrame.cpp:
+        (WebCore::FFTFrame::interpolateFrequencyComponents):
+        (WebCore::FFTFrame::extractAverageGroupDelay):
+        (WebCore::FFTFrame::addConstantGroupDelay):
+        * platform/audio/HRTFKernel.cpp:
+        * platform/audio/HRTFPanner.cpp:
+        * webaudio/AudioBufferSourceNode.cpp:
+        (WebCore::AudioBufferSourceNode::readFromBufferWithGrainEnvelope):
+        * webaudio/AudioPannerNode.cpp:
+        (WebCore::AudioPannerNode::getAzimuthElevation):
+        * webaudio/AudioParam.cpp: Added.
+        (AudioParam::setValue):
+        (AudioParam::smooth):
+        * webaudio/AudioParam.h:
+        * webaudio/RealtimeAnalyser.cpp:
+
+2010-11-25  Philippe Normand  <pnormand@igalia.com>
+
+        Reviewed by Martin Robinson.
+
+        [GStreamer] faster elements linking
+        https://bugs.webkit.org/show_bug.cgi?id=50067
+
+        Perform less checks during GStreamer elements linking if building
+        against GStreamer >= 0.10.30.
+
+        * platform/graphics/gstreamer/GStreamerGWorld.cpp:
+        (WebCore::GStreamerGWorld::enterFullscreen):
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+        (WebCore::MediaPlayerPrivateGStreamer::createGSTPlayBin):
+
+2010-12-07  Philippe Normand  <pnormand@igalia.com>
+
+        Reviewed by Gustavo Noronha Silva.
+
+        [GStreamer] ::buffered() should return multiple ranges in some cases
+        https://bugs.webkit.org/show_bug.cgi?id=45101
+
+        Improved the ::buffered() method thanks to the new buffering query
+        support that landed in GStreamer 0.10.31. The method now
+        queries the media buffered-ranges on the pipeline and queue2
+        handles it if it's buffering the media to disk.
+
+        The webkitwebsrc element also gained BYTES duration query
+        support. This is needed in the rare cases where uridecodebin
+        configures its queue before the HTTP server returns the media
+        Content-Length.
+
+        Test: http/tests/media/video-buffered.html
+
+        * platform/graphics/gstreamer/MediaPlayerPrivateGStreamer.cpp:
+        (WebCore::MediaPlayerPrivateGStreamer::buffered):
+        * platform/graphics/gstreamer/WebKitWebSourceGStreamer.cpp:
+        (webkit_web_src_init):
+        (webKitWebSrcQuery): Make webkitwebsrc handle the duration queries
+        if it's aware of the media content-length.
+        * platform/gtk/RenderThemeGtk.cpp:
+        (WebCore::RenderThemeGtk::paintMediaSliderTrack): Fix position of
+        the second and next buffered ranges.
+
+2010-12-07  Yael Aharon  <yael.aharon@nokia.com>
+
+        Reviewed by Antonio Gomes.
+
+        Spatial navigation not Working for Map and Area Tags
+        https://bugs.webkit.org/show_bug.cgi?id=47142
+
+        Give area elements special treatment in spatial navigation algorithm by getting the
+        rect of the area from the associated image. Since area elements are likely to overlap
+        if they are not rects, or if authors are not careful, we flatten the rect of area elements.
+
+        Tests: fast/spatial-navigation/snav-imagemap-area-not-focusable.html
+               fast/spatial-navigation/snav-imagemap-area-without-image.html
+               fast/spatial-navigation/snav-imagemap-overlapped-areas.html
+               fast/spatial-navigation/snav-imagemap-simple.html
+
+        * page/FocusController.cpp:
+        (WebCore::FocusController::findFocusCandidateInContainer):
+        (WebCore::FocusController::advanceFocusDirectionallyInContainer):
+        (WebCore::FocusController::advanceFocusDirectionally):
+        * page/SpatialNavigation.cpp:
+        (WebCore::FocusCandidate::FocusCandidate):
+        (WebCore::virtualRectForDirection):
+        (WebCore::virtualRectForAreaElementAndDirection):
+        * page/SpatialNavigation.h:
+        (WebCore::FocusCandidate::FocusCandidate):
+
+2010-12-07  Darin Adler  <darin@apple.com>
+
+        Try to fix V8 build.
+
+        * bindings/generic/BindingDOMWindow.h:
+        (WebCore::BindingDOMWindow::createWindow): Pass security origin.
+
+2010-12-07  Darin Adler  <darin@apple.com>
+
+        Another build fix.
+
+        * loader/CrossOriginAccessControl.cpp: Added a missing include.
+
+2010-12-07  Darin Adler  <darin@apple.com>
+
+        Try to fix build.
+
+        * plugins/PluginView.cpp:
+        (WebCore::PluginView::start): Pass security origin.
+        (WebCore::PluginView::getURLNotify): Ditto.
+        (WebCore::PluginView::getURL): Ditto.
+        (WebCore::PluginView::handlePost): Ditto.
+
+2010-12-06  Darin Adler  <darin@apple.com>
+
+        Reviewed by Sam Weinig.
+
+        Pass security origin to make local file decision correctly
+        https://bugs.webkit.org/show_bug.cgi?id=48603
+
+        * bindings/generic/BindingDOMWindow.h:
+        (WebCore::BindingDOMWindow::createWindow): Pass security origin.
+        (WebCore::BindingDOMWindow::open): Ditto.
+        * bindings/generic/BindingFrame.h:
+        (WebCore::BindingFrame::navigateIfAllowed): Ditto.
+
+        * bindings/js/JSDOMWindowCustom.cpp:
+        (WebCore::JSDOMWindow::setLocation): Pass security origin.
+        (WebCore::createWindow): Ditto.
+        (WebCore::JSDOMWindow::open): Ditto.
+
+        * bindings/js/JSDocumentCustom.cpp:
+        (WebCore::JSDocument::setLocation): Pass security origin.
+
+        * dom/Document.cpp:
+        (WebCore::Document::processHttpEquiv): Pass security origin.
+
+        * inspector/InspectorController.cpp:
+        (WebCore::InspectorController::openInInspectedWindow):
+        Pass security origin.
+
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::changeLocation): Added a security origin
+        argument, passed through to urlSelected.
+        (WebCore::FrameLoader::urlSelected): Replaced the resource request
+        and frame name arguments with a frame load request arguments in one
+        overload, and changed the other overload to pass in the current
+        frame's document for the security origin.
+        (WebCore::FrameLoader::loadFrameRequest): Moved the canDisplay
+        check before the referrer computation because it no longer needs
+        to look at the referrer. Replaced the call to canDisplay that
+        used the target frame's security origin and the call to
+        deprecatedCanDisplay with a single call to canDisplay that uses
+        the requester security origin.
+
+        * loader/FrameLoader.h: Updated for argument changes above.
+
+        * loader/NavigationScheduler.cpp:
+        (WebCore::ScheduledURLNavigation::ScheduledURLNavigation): Added
+        a security origin.
+        (WebCore::ScheduledURLNavigation::fire): Pass the security origin
+        in to FrameLoader::changeLocation.
+        (WebCore::ScheduledURLNavigation::securityOrigin): Added.
+        (WebCore::ScheduledRedirect::ScheduledRedirect): Added a security
+        origin argument.
+        (WebCore::ScheduledLocationChange::ScheduledLocationChange): Ditto.
+        (WebCore::ScheduledRefresh::ScheduledRefresh): Ditto.
+        (WebCore::ScheduledRefresh::fire): Pass the security origin in to
+        FrameLoader::changeLocation.
+        (WebCore::ScheduledFormSubmission::fire): Include the security
+        origin when constructing form submission.
+        (WebCore::NavigationScheduler::scheduleRedirect): Include the security
+        origin when creating the scheduled navigation object.
+        (WebCore::NavigationScheduler::scheduleLocationChange): Ditto.
+        (WebCore::NavigationScheduler::scheduleRefresh): Ditto.
+
+        * loader/NavigationScheduler.h: Added the security origin argument
+        to scheduleLocationChange.
+
+        * loader/SubframeLoader.cpp:
+        (WebCore::SubframeLoader::loadOrRedirectSubframe): Pass in the security
+        origin when calling scheduleLocationChange.
+        * loader/appcache/ApplicationCacheGroup.cpp:
+        (WebCore::ApplicationCacheGroup::selectCache): Ditto.
+
+        * page/ContextMenuController.cpp:
+        (WebCore::openNewWindow): Pass in the security origin.
+        (WebCore::ContextMenuController::contextMenuItemSelected): Ditto.
+
+        * page/FrameLoadRequest.h: Added a security origin called the requester
+        to all FrameLoadRequest objects.
+
+        * page/XSSAuditor.cpp:
+        (WebCore::XSSAuditor::findInRequest): Added the security origin.
+
+2010-12-07  Yury Semikhatsky  <yurys@chromium.org>
+
+        Reviewed by Pavel Feldman.
+
+        Web Inspector: avoid initializing Context on when creating attaching listener to ScriptDebugServer
+        https://bugs.webkit.org/show_bug.cgi?id=50627
+
+        * bindings/v8/ScriptDebugServer.cpp:
+        (WebCore::ScriptDebugServer::addListener): don't try to collect already parsed scripts if context has
+        not been initialized yet.
+
+2010-12-07  Csaba Osztrogon√°c  <ossy@webkit.org>
+
+        Unreviewed. Rolling out r73421, because it made transitions/color-transition-all.html flakey.
+
+        * page/animation/AnimationBase.cpp:
+        (WebCore::addShorthandProperties):
+
+2010-12-07  Martin Robinson  <mrobinson@igalia.com>
+
+        Unreviewed, rolling out r73392.
+        http://trac.webkit.org/changeset/73392
+        https://bugs.webkit.org/show_bug.cgi?id=50489
+
+        This commit caused crashes on the GTK+ bots
+
+        * bindings/ScriptControllerBase.cpp:
+        (WebCore::ScriptController::executeIfJavaScriptURL):
+        * dom/Document.cpp:
+        (WebCore::Document::Document):
+        (WebCore::Document::close):
+        (WebCore::Document::lastModified):
+        (WebCore::Document::finishedParsing):
+        (WebCore::Document::initSecurityContext):
+        (WebCore::Document::updateURLForPushOrReplaceState):
+        * dom/Document.h:
+        * dom/ProcessingInstruction.cpp:
+        (WebCore::ProcessingInstruction::checkStyleSheet):
+        * dom/ScriptElement.cpp:
+        (WebCore::ScriptElement::scriptCharset):
+        * html/HTMLLinkElement.cpp:
+        (WebCore::HTMLLinkElement::process):
+        * html/MediaDocument.cpp:
+        (WebCore::MediaDocument::replaceMediaElementTimerFired):
+        * html/PluginDocument.cpp:
+        (WebCore::PluginDocumentParser::createDocumentStructure):
+        * loader/DocumentLoader.cpp:
+        (WebCore::DocumentLoader::DocumentLoader):
+        (WebCore::DocumentLoader::finishedLoading):
+        (WebCore::DocumentLoader::commitData):
+        (WebCore::DocumentLoader::setupForReplaceByMIMEType):
+        (WebCore::DocumentLoader::setFrame):
+        * loader/DocumentLoader.h:
+        * loader/DocumentWriter.cpp:
+        (WebCore::DocumentWriter::begin):
+        * loader/DocumentWriter.h:
+        * loader/FrameLoader.cpp:
+        (WebCore::FrameLoader::FrameLoader):
+        (WebCore::FrameLoader::init):
+        (WebCore::FrameLoader::clear):
+        (WebCore::FrameLoader::receivedFirstData):
+        (WebCore::FrameLoader::transitionToCommitted):
+        (WebCore::FrameLoader::open):
+        (WebCore::FrameLoader::finishedLoadingDocument):
+        (WebCore::FrameLoader::addExtraFieldsToRequest):
+        * loader/FrameLoader.h:
+        (WebCore::FrameLoader::writer):
+        * loader/cache/CachedResourceLoader.cpp:
+        (WebCore::CachedResourceLoader::requestPreload):
+        * platform/network/FormDataBuilder.cpp:
+        (WebCore::FormDataBuilder::encodingFromAcceptCharset):
+        * svg/graphics/SVGImage.cpp:
+        (WebCore::SVGImage::dataChanged):
+
+2010-12-07  Patrick Gansterer  <paroga@webkit.org>
+
+        Reviewed by Andreas Kling.
+
+        [CMake] Remove WebKitGenerators
+        https://bugs.webkit.org/show_bug.cgi?id=50445
+
+        Move remaining logic into main CMakeLists.txt.
+
+        * CMakeLists.txt:
+
+2010-12-07  Justin Schuh  <jschuh@chromium.org>
+
+        Reviewed by Nikolas Zimmermann.
+
+        Clear old SVG cursor entry before adding a new one
+        https://bugs.webkit.org/show_bug.cgi?id=50549
+
+        Test: svg/css/cursor-replace.svg
+
+        * css/CSSCursorImageValue.cpp:
+        (WebCore::CSSCursorImageValue::~CSSCursorImageValue):
+        * svg/SVGCursorElement.cpp:
+        (WebCore::SVGCursorElement::~SVGCursorElement):
+        (WebCore::SVGCursorElement::removeClient):
+        (WebCore::SVGCursorElement::removeReferencedElement):
+        * svg/SVGCursorElement.h:
+        * svg/SVGElement.cpp:
+        (WebCore::SVGElement::setCursorElement):
+        (WebCore::SVGElement::cursorElementRemoved):
+        (WebCore::SVGElement::setCursorImageValue):
+        (WebCore::SVGElement::cursorImageElementRemoved):
+        * svg/SVGElement.h:
+
+2010-12-07  Kenichi Ishibashi  <bashi@google.com>
+
+        Reviewed by Kent Tamura.
+
+        Let HTMLObjectElement be a form associated element
+        https://bugs.webkit.org/show_bug.cgi?id=48821
+
+        Introduces FormAssociatedElement class which would be a super class
+        of form assocated elements. Some of member functions and variables of
+        HTMLFormControlElement are migrated into this class.
+        Following the HTML5 spec, HTMLFormControlElement class and
+        HTMLObjectElement class are subclasses of it for now.
+
+        Test: fast/forms/form-collection-elements-order.html
+
+        * Android.mk: Added FormAssociatedElement.cpp
+        * CMakeLists.txt: Ditto.
+        * GNUmakefile.am: Added FormAssociatedElement.{cpp,h}
+        * WebCore.exp.in: Added the symbol for toHTMLElement(FormAssociatedElement*)
+        * WebCore.gypi: Added FormAssociatedElement.{cpp,h}
+        * WebCore.pro: Ditto.
+        * WebCore.vcproj/WebCore.vcproj: Ditto.
+        * WebCore.xcodeproj/project.pbxproj: Ditto.
+        * dom/CheckedRadioButtons.h: Fixed class forward declaration order.
+        * dom/Document.cpp:
+        (WebCore::Document::registerFormElementWithFormAttribute): Modified to
+        use FormAssociatedElement instead of HTMLFormControlElement
+        (WebCore::Document::unregisterFormElementWithFormAttribute): Ditto.
+        (WebCore::Document::resetFormElementsOwner):
+        * dom/Document.h: Ditto.
+        * html/DOMFormData.cpp: Ditto.
+        (WebCore::DOMFormData::DOMFormData):
+        * html/FormAssociatedElement.cpp: Copied and renamed from WebCore/html/HTMLFormControlElement.cpp.
+        (WebCore::FormAssociatedElement::FormAssociatedElement):
+        (WebCore::FormAssociatedElement::~FormAssociatedElement):
+        (WebCore::FormAssociatedElement::validity):
+        (WebCore::FormAssociatedElement::insertedIntoTree):
+        (WebCore::FormAssociatedElement::removedFromTree):
+        (WebCore::FormAssociatedElement::removeFromForm):
+        (WebCore::FormAssociatedElement::resetFormOwner):
+        (WebCore::FormAssociatedElement::formAttributeChanged):
+        (WebCore::toHTMLElement):
+        * html/FormAssociatedElement.h: Ditto.
+        (WebCore::FormAssociatedElement::ref):
+        (WebCore::FormAssociatedElement::deref):
+        (WebCore::FormAssociatedElement::formDestroyed):
+        (WebCore::FormAssociatedElement::setForm):
+        * html/HTMLElement.h: Changed the access level of findFormAncestor().
+        * html/HTMLFormCollection.cpp:
+        (WebCore::HTMLFormCollection::item): Modified to use FormAssociatedElement
+        instead of HTMLFormControlElement.
+        (WebCore::HTMLFormCollection::getNamedFormItem): Ditto.
+        (WebCore::HTMLFormCollection::updateNameCache): Ditto.
+        * html/HTMLFormControlElement.cpp: Modified regarding with the change of class
+        hierarchy.
+        (WebCore::HTMLFormControlElement::HTMLFormControlElement):
+        (WebCore::HTMLFormControlElement::~HTMLFormControlElement):
+        (WebCore::HTMLFormControlElement::insertedIntoTree):
+        (WebCore::HTMLFormControlElement::removedFromTree):
+        (WebCore::HTMLFormControlElement::supportsFocus):
+        (WebCore::HTMLFormControlElement::checkValidity):
+        (WebCore::HTMLFormControlElement::virtualForm):
+        (WebCore::HTMLFormControlElement::isDefaultButtonForForm):
+        (WebCore::HTMLFormControlElement::attributeChanged):
+        * html/HTMLFormControlElement.h: Ditto.
+        (WebCore::HTMLFormControlElement::form):
+        (WebCore::HTMLFormControlElement::disabled):
+        (WebCore::HTMLFormControlElement::type):
+        (WebCore::HTMLFormControlElement::refFormAssociatedElement):
+        (WebCore::HTMLFormControlElement::derefFormAssociatedElement):
+        * html/HTMLFormElement.cpp: Modified to use FormAssociatedElement
+        instead of HTMLFormControlElement.
+        (WebCore::HTMLFormElement::submitImplicitly):
+        (WebCore::HTMLFormElement::validateInteractively):
+        (WebCore::HTMLFormElement::submit):
+        (WebCore::HTMLFormElement::reset):
+        (WebCore::HTMLFormElement::formElementIndexWithFormAttribute):
+        (WebCore::HTMLFormElement::formElementIndex):
+        (WebCore::HTMLFormElement::registerFormElement):
+        (WebCore::HTMLFormElement::removeFormElement):
+        (WebCore::HTMLFormElement::defaultButton):
+        (WebCore::HTMLFormElement::checkValidity):
+        (WebCore::HTMLFormElement::collectUnhandledInvalidControls):
+        (WebCore::HTMLFormElement::documentDidBecomeActive):
+        * html/HTMLFormElement.h: Ditto.
+        (WebCore::HTMLFormElement::associatedElements):
+        * html/HTMLInputElement.cpp: Ditto.
+        (WebCore::HTMLInputElement::updateCheckedRadioButtons):
+        * html/HTMLObjectElement.cpp: Modified regarding with the change of class
+        hierarchy.
+        (WebCore::HTMLObjectElement::HTMLObjectElement):
+        (WebCore::HTMLObjectElement::~HTMLObjectElement):
+        (WebCore::HTMLObjectElement::create):
+        (WebCore::HTMLObjectElement::attributeChanged):
+        (WebCore::HTMLObjectElement::insertedIntoTree):
+        (WebCore::HTMLObjectElement::removedFromTree):
+        (WebCore::HTMLObjectElement::appendFormData):
+        (WebCore::HTMLObjectElement::formControlName):
+        * html/HTMLObjectElement.h: Ditto.
+        (WebCore::HTMLObjectElement::form):
+        (WebCore::HTMLObjectElement::isFormControlElement):
+        (WebCore::HTMLObjectElement::isEnumeratable):
+        (WebCore::HTMLObjectElement::refFormAssociatedElement):
+        (WebCore::HTMLObjectElement::derefFormAssociatedElement):
+        * html/HTMLTagNames.in: Added constructorNeedsFormElement to object tag.
+        * html/ValidationMessage.cpp: Modified to use FormAssociatedElement
+        instead of HTMLFormControlElement.
+        (WebCore::ValidationMessage::ValidationMessage):
+        (WebCore::ValidationMessage::create):
+        * html/ValidationMessage.h: Ditto.
+        * html/ValidityState.cpp: Ditto.
+        (WebCore::ValidityState::validationMessage):
+        (WebCore::ValidityState::setCustomErrorMessage):
+        (WebCore::ValidityState::valueMissing):
+        (WebCore::ValidityState::typeMismatch):
+        (WebCore::ValidityState::patternMismatch):
+        (WebCore::ValidityState::tooLong):
+        (WebCore::ValidityState::rangeUnderflow):
+        (WebCore::ValidityState::rangeOverflow):
+        (WebCore::ValidityState::stepMismatch):
+        * html/ValidityState.h: Ditto.
+        (WebCore::ValidityState::create):
+        (WebCore::ValidityState::ValidityState):
+        * loader/FormSubmission.cpp: Ditto.
+        (WebCore::FormSubmission::create):
+
+2010-12-06  Pavel Feldman  <pfeldman@chromium.org>
+
+        Not reviewed. Rolling out r72988 for breaking iframes.
+
+        * css/CSSImportRule.cpp:
+        (WebCore::CSSImportRule::insertedIntoParent):
+
+2010-12-06  Hironori Bono  <hbono@chromium.org>
+
+        Reviewed by David Levin.
+
+        [Chromium] Refactor FontCacheChromiumWin.cpp
+        https://bugs.webkit.org/show_bug.cgi?id=50611
+        
+        This change just moved the helper functions for the WebCore::FontCache class to the beginning of ths file.
+
+        No new tests are added since this is a refactoring.
+
+        * platform/graphics/chromium/FontCacheChromiumWin.cpp:
+        (WebCore::fontDataFromDescriptionAndLogFont): Moved to the beginning of the file.
+        (WebCore::toGDIFontWeight): Moved to the beginning of the file.
+        (WebCore::FillLogFont): Moved to the beginning of the file.
+        (WebCore::TraitsInFamilyProcData::TraitsInFamilyProcData): Moved to the beginning of the file.
+        (WebCore::traitsInFamilyEnumProc): Moved to the beginning of the file.
+        (WebCore::FontCache::platformInit): Moved after the static functions.
+
+2010-12-06  Alexey Marinichev  <amarinichev@chromium.org>
+
+        Reviewed by Kenneth Russell.
+
+        Throw webglcontextlost and webglcontextrestored events when a WebGL context is lost and restored.
+        https://bugs.webkit.org/show_bug.cgi?id=50364
+
+        No new tests since there is currently no way to force a context lost event.
+
+        * html/canvas/WebGLRenderingContext.cpp:
+        (WebCore::WebGLRenderingContext::WebGLRenderingContextRestoreTimer::fired):
+        (WebCore::WebGLRenderingContext::create):
+        (WebCore::WebGLRenderingContext::WebGLRenderingContext):
+        (WebCore::WebGLRenderingContext::isContextLost):
+        (WebCore::WebGLRenderingContext::loseContext):
+        (WebCore::WebGLRenderingContext::restoreContext):
+        * html/canvas/WebGLRenderingContext.h:
+        (WebCore::WebGLRenderingContext::WebGLRenderingContextRestoreTimer::WebGLRenderingContextRestoreTimer):
+
+2010-12-06  David Hyatt  <hyatt@apple.com>
+
+        Reviewed by Simon Fraser.
+
+        https://bugs.webkit.org/show_bug.cgi?id=50593
+        
+        Fix background canvas painting for documents with left/top overflow.  The math from the original RTL patch was incorrect.
+        
+        Just use the RenderView's document dimensions always.
+
+        * rendering/RenderBox.cpp:
+        (WebCore::RenderBox::paintRootBoxDecorations):
+
+2010-12-06  Simon Fraser  <simon.fraser@apple.com>
+
+        Reviewed by Beth Dakin.
+
+        CSS animation doesn't work for border-radius
+        https://bugs.webkit.org/show_bug.cgi?id=48340
+        
+        Include CSSPropertyBorderRadius in the list of shorthand
+        properties, so that the individual border-radius properties
+        get animated.
+
+        Test: transitions/border-radius-transition.html
+
+        * page/animation/AnimationBase.cpp:
+        (WebCore::addShorthandProperties):
+
+2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Reviewed by Tony Chang.
+
+        ApplyStyleCommand should take EditingStyle instead of CSSStyleDeclaration
+        https://bugs.webkit.org/show_bug.cgi?id=49938
+
+        Modified ApplyStyleCommand::ApplyStyleCommand and ApplyStyleCommand::create to take EditingStyle*
+        instead of CSSStyleDeclaration*. Also replaced much of code in Editor::computeAndSetTypingStyle
+        by calls to EditingStyle's member functions and extracted EditingStyle::overrideWith and
+        EditingStyle::extractAndRemoveBlockProperties.
+
+        No new tests are added since this is a refactoring.
+
+        * WebCore.exp.in: Added SelectionController::copyTypingStyle and EditingStyle::~EditingStyle.
+        * css/CSSMutableStyleDeclaration.cpp: Made CSSMutableStyleDeclaration* in the argument list const.
+        (WebCore::CSSMutableStyleDeclaration::merge):
+        * css/CSSMutableStyleDeclaration.h:
+        * editing/ApplyStyleCommand.cpp:
+        (WebCore::ApplyStyleCommand::ApplyStyleCommand): Takes EditingStyle* instead of CSSStyleDeclaration*.
+        (WebCore::ApplyStyleCommand::doApply): Uses EditingStyle.
+        * editing/ApplyStyleCommand.h: m_style is now a ref-pointer to EditingStyle instead of CSSMutableStyleDeclaration.
+        (WebCore::ApplyStyleCommand::create): Takes EditingStyle* instead of CSSStyleDeclaration*.
+        * editing/CompositeEditCommand.cpp:
+        (WebCore::CompositeEditCommand::applyStyle): Ditto.
+        (WebCore::CompositeEditCommand::moveParagraphs): Calls applyStyle.
+        (WebCore::CompositeEditCommand::breakOutOfEmptyListItem): Ditto.
+        * editing/CompositeEditCommand.h:
+        * editing/DeleteSelectionCommand.cpp:
+        (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete): Ditto.
+        * editing/EditCommand.cpp:
+        * editing/EditCommand.h:
+        * editing/EditingStyle.cpp:
+        (WebCore::EditingStyle::~EditingStyle): Added.
+        (WebCore::EditingStyle::overrideWithStyle): Extracted from Editor::calculateTypingStyleAfterDelete.
+        (WebCore::EditingStyle::copy): Added.
+        (WebCore::EditingStyle::extractAndRemoveBlockProperties): Extracted from Editor::calculateTypingStyleAfterDelete.
+        * editing/EditingStyle.h:
+        * editing/Editor.cpp:
+        (WebCore::Editor::applyStyle): Calls ApplyStyleCommand::create.
+        (WebCore::Editor::applyParagraphStyle): Ditto.
+        (WebCore::Editor::computeAndSetTypingStyle): Ditto.
+        * editing/InsertLineBreakCommand.cpp:
+        (WebCore::InsertLineBreakCommand::doApply): Calls applyStyle.
+        * editing/InsertParagraphSeparatorCommand.cpp:
+        (WebCore::InsertParagraphSeparatorCommand::applyStyleAfterInsertion): Ditto.
+        * editing/InsertTextCommand.cpp:
+        (WebCore::InsertTextCommand::input): Ditto.
+        * editing/RemoveFormatCommand.cpp:
+        (WebCore::RemoveFormatCommand::doApply): Calls ApplyStyleCommand::create.
+        * editing/ReplaceSelectionCommand.cpp:
+        (WebCore::ReplaceSelectionCommand::completeHTMLReplacement): Calls applyStyle.
+        * editing/SelectionController.cpp:
+        (WebCore::SelectionController::copyTypingStyle): Moved from SelectionController.h
+        * editing/SelectionController.h:
+
+2010-12-05  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Reviewed by Tony Chang.
+
+        Executing FormatBlock on multiple paragraphs inside pre does not remove the outer pre
+        https://bugs.webkit.org/show_bug.cgi?id=47300
+
+        The bug was caused by FormatBlockCommand::formatRange's not removing refNode when the refNode
+        contains more than one paragraphs even when the refNode is fully selected.
+
+        Fixed the bug by modifying FormatBlockCommand::formatRange to correctly remove the node in
+        such a situation.
+
+        Also fixed a bug in ApplyBlockElementCommand::formatSelection that the end of selection
+        is not properly updated when the end of selection resides in the node split by
+        rangeForParagraphSplittingTextNodesIfNeeded or endOfNextParagrahSplittingTextNodesIfNeeded.
+
+        Test: editing/execCommand/format-block-multiple-paragraphs-in-pre.html
+
+        * editing/ApplyBlockElementCommand.cpp:
+        (WebCore::ApplyBlockElementCommand::formatSelection): Calls formatRange with m_endOfLastParagraph.
+        (WebCore::ApplyBlockElementCommand::rangeForParagraphSplittingTextNodesIfNeeded): Updates
+        m_endOfLastParagraph when the position points to the node split by this function.
+        (WebCore::ApplyBlockElementCommand::endOfNextParagrahSplittingTextNodesIfNeeded): Ditto.
+        * editing/ApplyBlockElementCommand.h: Added m_endOfLastParagraph as a member variable.
+        * editing/FormatBlockCommand.cpp:
+        (WebCore::FormatBlockCommand::formatRange): See above.
+        * editing/FormatBlockCommand.h:
+        * editing/IndentOutdentCommand.cpp:
+        (WebCore::IndentOutdentCommand::formatRange): Ignores the end of selection.
+        * editing/IndentOutdentCommand.h:
+
+2010-12-03  Zhenyao Mo  <zmo@google.com>
+
+        Reviewed by Kenneth Russell.
+
+        Postpone gl delete* calls until shaders/programs are no longer attached
+        https://bugs.webkit.org/show_bug.cgi?id=50501
+
+        * html/canvas/WebGLBuffer.cpp:
+        (WebCore::WebGLBuffer::deleteObjectImpl): Simply delete GL resource.
+        * html/canvas/WebGLFramebuffer.cpp:
+        (WebCore::WebGLFramebuffer::deleteObjectImpl): Ditto.
+        * html/canvas/WebGLObject.cpp:
+        (WebCore::WebGLObject::deleteObject): Tracking whether deleteObjectImpl should be called or not.
+        * html/canvas/WebGLObject.h:
+        (WebCore::WebGLObject::detachContext): Set attachmentCount to 0 to ensure OpenGL resource deletion.
+        (WebCore::WebGLObject::onDetached): No need to track attachmentCount here as we track it in deleteObject.
+        (WebCore::WebGLObject::isDeleted): Make this public.
+        * html/canvas/WebGLProgram.cpp:
+        (WebCore::WebGLProgram::deleteObjectImpl): Simply delete GL resource.
+        * html/canvas/WebGLRenderbuffer.cpp:
+        (WebCore::WebGLRenderbuffer::deleteObjectImpl): Ditto.
+        * html/canvas/WebGLRenderingContext.cpp:
+        (WebCore::WebGLRenderingContext::getProgramParameter): intercept DELETE_STATUS.
+        (WebCore::WebGLRenderingContext::getShaderParameter): Ditto.
+        * html/canvas/WebGLShader.cpp:
+        (WebCore::WebGLShader::deleteObjectImpl): Simply delete GL resource.
+        * html/canvas/WebGLTexture.cpp:
+        (WebCore::WebGLTexture::deleteObjectImpl): Simply delete GL resource.
+
+2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
+
+        Yet unreviewed another Leopard build fix for r73380.
+
+        * platform/graphics/ca/mac/PlatformCAAnimationMac.mm:
+        (PlatformCAAnimation::setKeyTimes):
+        * platform/graphics/ca/mac/PlatformCALayerMac.mm:
+        (PlatformCALayer::platformCALayer):
+
+2010-12-06  Andy Estes  <aestes@apple.com>
+
+        Reviewed by Darin Adler.
+
+        Marquee elements do not stop animating when scrollAmount is set to 0.
+        https://bugs.webkit.org/show_bug.cgi?id=50434
+
+        Test: fast/html/marquee-scrollamount.html
+
+        * rendering/RenderMarquee.cpp:
+        (WebCore::RenderMarquee::timerFired): Allow increment to be 0.
+
 2010-12-06  Ryosuke Niwa  <rniwa@webkit.org>
 
         Unreviewed Leopard buildfix for r73380.