ChangeLog-2009-06-16   [plain text]


2009-06-15  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        Fix for <rdar://problem/6907228> Pasting a paragraph as quotation leaves you typing in blue instead of black; repros

        * editing/InsertParagraphSeparatorCommand.cpp: (WebCore::InsertParagraphSeparatorCommand::doApply):
        When inserting a newline after the blockquote, we don't want to apply the original style after the insertion.

2009-06-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Remove outdated comment.

        * bindings/js/JSDOMWindowBase.h:

2009-06-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Bring CustomGetPropertyNames more inline with the other
        extended attributes prefixed with Custom, by making it 
        require a complete implementation.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::getPropertyNames):
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::getPropertyNames):
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getPropertyNames):
        * bindings/js/JSStorageCustom.cpp:
        (WebCore::JSStorage::getPropertyNames):
        * bindings/scripts/CodeGeneratorJS.pm:

2009-06-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Remove commented out ondataunavailable attribute event listener which
        has now been removed from HTML 5.

        * page/DOMWindow.idl:

2009-06-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Move entire custom implementation of getOwnPropertySlot and put
        for JSDOMWindow into JSDOMWindowCustom, eliminating the bit in
        JSDOMWindowBase.

        * bindings/js/JSDOMWindowBase.cpp:
        * bindings/js/JSDOMWindowBase.h:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::nonCachingStaticFunctionGetter):
        (WebCore::childFrameGetter):
        (WebCore::indexGetter):
        (WebCore::namedItemGetter):
        (WebCore::JSDOMWindow::getOwnPropertySlot):
        (WebCore::JSDOMWindow::put):
        (WebCore::JSDOMWindow::getPropertyAttributes):
        * bindings/js/JSDOMWindowCustom.h:
        * page/DOMWindow.idl:

2009-06-15  Jeremy Orlow (jorlow@chromium.org)

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=26356
        Define the functions in V8CustomBindings.h.  "Forgot" this in my
        earlier patch since it wasn't fully upstreamed when I wrote the
        patch.

        * bindings/v8/custom/V8CustomBinding.h:

2009-06-15  Andre Boule  <aboule@apple.com>

        Reviewed by Cameron Zwarich and Dan Bernstein.

        - fix <rdar://problem/6967975> crash with NSString drawAtPoint

        No test possible because this crash can only occur if the client uses
        WebKit text drawing without ever using WebCore text, and DumpRenderTree
        cannot do either.

        * platform/graphics/FontCache.cpp:
        (WebCore::FontCache::purgeInactiveFontData): Null-check
            gFontPlatformDataCache.

2009-06-15  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/6974857>
        
        Define ENABLE_3D_RENDERING when building on 10.6, and move ENABLE_3D_RENDERING
        switch from config.h to wtf/Platform.h.

        * Configurations/FeatureDefines.xcconfig:
        * config.h:

2009-06-15  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Make WebInspector's console evaluation/completion asynchronous.
        This way of evaluation allows serializing calls between 
        InspectorController and its frontend.
        
        https://bugs.webkit.org/show_bug.cgi?id=26350

        * inspector/front-end/Console.js:
        (WebInspector.Console.prototype.completions):
        (WebInspector.Console.prototype._reportCompletions):
        (WebInspector.Console.prototype._evalInInspectedWindow):
        (WebInspector.Console.prototype._enterKeyPressed.printResult):
        (WebInspector.Console.prototype._enterKeyPressed):
        * inspector/front-end/DatabaseQueryView.js:
        * inspector/front-end/ObjectPropertiesSection.js:
        (WebInspector.ObjectPropertyTreeElement.prototype.evaluateExpression):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.evaluateInSelectedCallFrame):
        * inspector/front-end/TextPrompt.js:
        (WebInspector.TextPrompt.prototype.complete):
        (WebInspector.TextPrompt.prototype._completionsReady):

2009-06-15  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Tim Hatcher.

        Reverted previous change as the old behavior was correct for heavy view.

        * inspector/front-end/BottomUpProfileDataGridTree.js:
        (WebInspector.BottomUpProfileDataGridNode.prototype._populate):

2009-06-15  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Tim Hatcher.

        <rdar://problem/6968125> Profiler 'Call' count is incorrect in Heavy
        view (26418)

        - Removed code that copied call and time data from it's ancestor.

        * inspector/front-end/BottomUpProfileDataGridTree.js:
        (WebInspector.BottomUpProfileDataGridNode.prototype._populate):

2009-06-15  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser  <simon.fraser@apple.com>.

        https://bugs.webkit.org/show_bug.cgi?id=26163

        Added logic to updateTransitions similar to that in updateKeyframeAnimations
        which detects and removes stale transitions.

        Test: transitions/cancel-transition.html

        * page/animation/CompositeAnimation.cpp:
        (WebCore::CompositeAnimation::updateTransitions):
        * page/animation/ImplicitAnimation.cpp:
        (WebCore::ImplicitAnimation::ImplicitAnimation):
        * page/animation/ImplicitAnimation.h:
        (WebCore::ImplicitAnimation::active):
        (WebCore::ImplicitAnimation::setActive):

2009-06-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by Tim Hatcher.

        - allow the source code font in the Web Inspector to be customized

        * css/view-source.css: Use the default monospace font family and size
            for source code.
        * inspector/front-end/inspector.css: Use the default monospace font
            family and size for console I/O.

2009-06-15  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by and done with Tor Arne Vestbø.

        Fix initialization of uninitialized members in FontFallbackListQt, leading
        to random crashes when rendering text.

        * platform/graphics/qt/FontFallbackListQt.cpp:
        (WebCore::FontFallbackList::FontFallbackList):
        (WebCore::FontFallbackList::invalidate):

2009-06-15  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=25895
        [Gtk] Segfault when deleting the last/only character in an entry if a11y is enabled

        Use computeOffsetInContainerNode instead of the inline
        offsetInContainerNode to return the caret offset, since the former
        can handle all types of anchoring. Otherwise we'll hit an ASSERT
        in some situations in debug builds, and crash.

        * editing/gtk/SelectionControllerGtk.cpp:
        (WebCore::SelectionController::notifyAccessibilityForSelectionChange):

2009-06-15  Joe Ligman  <joseph.ligman@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Fix build break
        Rename JSONObject to InspectorJSONObject

        https://bugs.webkit.org/show_bug.cgi?id=26340

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::addToConsole):
        * inspector/InspectorDOMStorageResource.cpp:
        (WebCore::InspectorDOMStorageResource::bind):
        * inspector/InspectorDatabaseResource.cpp:
        (WebCore::InspectorDatabaseResource::bind):
        * inspector/InspectorFrontend.cpp:
        (WebCore::InspectorFrontend::newInspectorJSONObject):
        (WebCore::InspectorFrontend::addMessageToConsole):
        (WebCore::InspectorFrontend::addResource):
        (WebCore::InspectorFrontend::updateResource):
        (WebCore::InspectorFrontend::addDatabase):
        (WebCore::InspectorFrontend::addDOMStorage):
        * inspector/InspectorFrontend.h:
        * inspector/InspectorJSONObject.cpp: Copied from WebCore/inspector/JSONObject.cpp.
        (WebCore::InspectorJSONObject::InspectorJSONObject):
        (WebCore::InspectorJSONObject::set):
        (WebCore::InspectorJSONObject::scriptObject):
        (WebCore::InspectorJSONObject::createNew):
        * inspector/InspectorJSONObject.h: Copied from WebCore/inspector/JSONObject.h.
        * inspector/InspectorResource.cpp:
        (WebCore::populateHeadersObject):
        (WebCore::InspectorResource::createScriptObject):
        (WebCore::InspectorResource::updateScriptObject):
        * inspector/JSONObject.cpp: Removed.
        * inspector/JSONObject.h: Removed.

2009-06-12  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        Refactor handling of options in the build-webkit script
        
        Options are now defined in one place, and then reused when creating
        the usage help text, the arguments to GetOptions(), and when passing
        the options on to the underlying port-dependent build systems.
        
        This allows the Qt port to read the defaults for the options from the
        pro file (dynamically), and to pass the options on to qmake at build.

        * WebCore.pro:

2009-06-14  chris fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 26399: REGRESSION: java applet accessibility broken
        https://bugs.webkit.org/show_bug.cgi?id=26399
 
        Accessibility could not access the elements in a java applet 
        when going down the AX hierarchy.

        Test: DRT does not allow java applets so add a manual test:
              manual-tests/accessibility/java-applet.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
        * accessibility/mac/AccessibilityObjectMac.mm:
        (WebCore::AccessibilityObject::accessibilityIgnoreAttachment):
        * accessibility/mac/AccessibilityObjectWrapper.mm:
        (-[AccessibilityObjectWrapper attachmentView]):
        * manual-tests/accessibility: Added.
        * manual-tests/accessibility/java-applet.html: Added.
        * manual-tests/accessibility/resources: Added.
        * manual-tests/accessibility/resources/AppletTest.class: Added.
        * manual-tests/accessibility/resources/AppletTest.java: Added.
        (AppletTest):
        (AppletTest.init):

2009-06-14  Sam Weinig  <sam@webkit.org>

        Reviewed by Cameron Zwarich.

        Rename the CustomGetOwnPropertySlot and CustomPutFunction extended attributes
        to DelegatingGetOwnPropertySlot and DelegatingPutFunction to more clearly describe
        their functionality (customGetOwnPropertySlot and customPut member functions have
        been renamed getOwnPropertySlotDelegate and putDelegate).  CustomGetOwnPropertySlot 
        and CustomPutFunction have been repurposed to mean a complete custom implementation
        of the function which is inline with other extended attributes prefixed with Custom.

        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::JSCSSStyleDeclaration::putDelegate):
        * bindings/js/JSDOMWindowCustom.h:
        (WebCore::JSDOMWindow::getOwnPropertySlotDelegate):
        (WebCore::JSDOMWindow::putDelegate):
        * bindings/js/JSHTMLAppletElementCustom.cpp:
        (WebCore::JSHTMLAppletElement::getOwnPropertySlotDelegate):
        (WebCore::JSHTMLAppletElement::putDelegate):
        * bindings/js/JSHTMLEmbedElementCustom.cpp:
        (WebCore::JSHTMLEmbedElement::getOwnPropertySlotDelegate):
        (WebCore::JSHTMLEmbedElement::putDelegate):
        * bindings/js/JSHTMLObjectElementCustom.cpp:
        (WebCore::JSHTMLObjectElement::getOwnPropertySlotDelegate):
        (WebCore::JSHTMLObjectElement::putDelegate):
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::JSHistory::getOwnPropertySlotDelegate):
        (WebCore::JSHistory::putDelegate):
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::getOwnPropertySlotDelegate):
        (WebCore::JSLocation::putDelegate):
        (WebCore::JSLocationPrototype::putDelegate):
        * bindings/js/JSStorageCustom.cpp:
        (WebCore::JSStorage::putDelegate):
        * bindings/js/JSWorkerContextCustom.cpp:
        (WebCore::JSWorkerContext::getOwnPropertySlotDelegate):
        * bindings/scripts/CodeGeneratorJS.pm:
        * css/CSSStyleDeclaration.idl:
        * html/HTMLAppletElement.idl:
        * html/HTMLEmbedElement.idl:
        * html/HTMLObjectElement.idl:
        * page/DOMWindow.idl:
        * page/History.idl:
        * page/Location.idl:
        * storage/Storage.idl:
        * workers/WorkerContext.idl:

2009-06-14  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix https://bugs.webkit.org/show_bug.cgi?id=26395
          <rdar://problem/6971333> REGRESSION (r40813-r40884): No caret after
          going back/forward to page with focused text field

        No test, since the back/forward cache is disabled in DumpRenderTree

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::open): Added a call to CachedPage::restore(),
        which was removed in r40870.

2009-06-14  Darin Adler  <darin@apple.com>

        * editing/TextIterator.cpp:
        (WebCore::BitStack::push): Use named constant instead of hardcoded numbers.
        (WebCore::BitStack::top): Ditto.

2009-06-14  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Bug 26364: Search can find text that's hidden by overflow:hidden
        https://bugs.webkit.org/show_bug.cgi?id=26364
        <rdar://problem/6952081>

        Test: fast/text/find-hidden-text.html

        * editing/TextIterator.cpp:
        (WebCore::BitStack::BitStack): Added.
        (WebCore::BitStack::push): Added.
        (WebCore::BitStack::pop): Added.
        (WebCore::BitStack::top): Added.
        (WebCore::BitStack::size): Added.
        (WebCore::parentOrShadowParent): Added. Helper function for walking up
        the parent node chain, crossing shadow tree boundaries.
        (WebCore::depthCrossingShadowBoundaries): Added for use in assertions.
        Counts the depth of a node using the parentOrShadowParent function.
        (WebCore::fullyClipsContents): Added. Returns true for an element that
        fully clips its contents, currently defined as a box that has zero width
        or height and hides overflow. We can add other cases here later.
        (WebCore::ignoresContainerClip): Added. Returns true for an element that
        ignores its container clip, currently defined as an element with absolute
        or fixed positioning.
        (WebCore::pushFullyClippedState): Added. Pushes a bit on the stack indicating
        if the node in question fully clips its contents.
        (WebCore::setUpFullyClippedStack): Added. Pushes a bit for each ancestor of
        a node. Used when creating an iterator.
        (WebCore::TextIterator::TextIterator): Removed code to initialize
        m_inShadowContent. Call setUpFullyClippedStack.
        (WebCore::TextIterator::advance): Use parentOrShadowParent. Call pop when moving
        up to a parent node, and also one extra time when moving to a sibling node.
        Call pushFullyClippedState when moving to a child node, or when moving to a
        sibling node after the aforementioned call to pop.
        (WebCore::TextIterator::handleTextNode): Return early if the node is fully clipped.
        (WebCore::TextIterator::handleReplacedElement): Ditto.
        (WebCore::SimplifiedBackwardsTextIterator::SimplifiedBackwardsTextIterator):
        Call setUpFullyClippedStack.
        (WebCore::SimplifiedBackwardsTextIterator::advance): Same changes as
        TextIterator::advance above.

        * editing/TextIterator.h: Added BitStack class and added m_fullyClippedStack to both
        TextIterator and SimplifiedBackwardsTextIterator. Removed unneeded m_inShadowContent.

2009-06-14  David Hyatt  <hyatt@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=26362

        Back out Simon's fix and replace it with a better one that doesn't needlessly destroy RenderObjects.
        Use NoInherit rather than Detach for child index changes, and don't worry about other pseudo-class state
        changes, since they were handled already with setNeedsStyleRecalcs on the affected objects themselves.

        * dom/Element.cpp:
        (WebCore::Element::recalcStyle):
        * dom/Node.cpp:
        (WebCore::Node::diff):
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::setChildIndex):

2009-06-14  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.

        Move all of the mutable member variables from Font into the refcounted FontFallbackList.  This makes
        copying of Fonts more efficient and also effectively makes all of the mutations of a Font object happen
        inside the FontFallbackList.

        * WebCore.base.exp:
        * platform/graphics/Font.cpp:
        (WebCore::Font::Font):
        (WebCore::Font::operator=):
        (WebCore::Font::primaryFont):
        (WebCore::Font::update):
        * platform/graphics/Font.h:
        (WebCore::Font::setWordSpacing):
        (WebCore::Font::setLetterSpacing):
        * platform/graphics/FontFallbackList.cpp:
        (WebCore::FontFallbackList::FontFallbackList):
        (WebCore::FontFallbackList::invalidate):
        (WebCore::FontFallbackList::determinePitch):
        * platform/graphics/FontFallbackList.h:
        (WebCore::FontFallbackList::primarySimpleFontData):
        (WebCore::FontFallbackList::primaryFontData):
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::glyphDataForCharacter):

2009-06-14  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler
        
        https://bugs.webkit.org/show_bug.cgi?id=26362
        
        Fix an issue noted on quirksmode.com where dynamically adding siblings does not
        update :nth-child style correctly.

        Test: fast/css/nth-child-dynamic.html

        * dom/Node.h:
        Change diff() to take const RenderStyle*
        * dom/Node.cpp:
        (WebCore::Node::diff):
        When comparing styles to decide whether to detach and reattach, we
        need to look at whether the pseudoclass-related data in the style
        changed (since RenderStyle::diff doesn't check this).
        
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::getCachedPseudoStyle):
        (WebCore::RenderStyle::inheritedNotEqual):
        Make these methods const.
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::styleType):
        (WebCore::InheritedFlags::pseudoClassStateEquivalent):
        Make methods const.
        Add new method that compares the pseudoclass-related members.

2009-06-13  Peter Kasting  <pkasting@google.com>

        Reviewed by Kevin Ollivier.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part eleven
        Write a wx implementation so the wx port can compile.  For now this is
        mostly a copy of the Cairo port, but in the future it can be changed to
        use a wxBitmap as the storage type everywhere (just as Cairo can
        probably be changed).
        
        Also ASSERT for any other ports who call getAddr() (I don't think there
        are any, and besides, they probably won't link, but this doesn't hurt).
        
        Also fixes a dumb Cairo build bustage typo introduced in part ten.

        * platform/graphics/wx/ImageSourceWx.cpp:
        (WebCore::ImageSource::createFrameAtIndex):
        * platform/image-decoders/ImageDecoder.h:
        (WebCore::RGBA32Buffer::getAddr):
        * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
        (WebCore::RGBA32Buffer::setStatus):
        * platform/image-decoders/wx: Added.
        * platform/image-decoders/wx/ImageDecoderWx.cpp: Added.
        (WebCore::RGBA32Buffer::RGBA32Buffer):
        (WebCore::RGBA32Buffer::clear):
        (WebCore::RGBA32Buffer::zeroFill):
        (WebCore::RGBA32Buffer::copyBitmapData):
        (WebCore::RGBA32Buffer::setSize):
        (WebCore::RGBA32Buffer::asNewNativeImage):
        (WebCore::RGBA32Buffer::hasAlpha):
        (WebCore::RGBA32Buffer::setHasAlpha):
        (WebCore::RGBA32Buffer::setStatus):
        (WebCore::RGBA32Buffer::operator=):
        (WebCore::RGBA32Buffer::width):
        (WebCore::RGBA32Buffer::height):
        * webcore-wx.bkl:

2009-06-13  Stephen White  <senorblanco@chromium.org>

        Reviewed by Dimitri Glazkov.  Landed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=26320

        Some minor code cleanup for chromium/skia port.  Removed #ifdef's
        around skia API changes, since the new version seems solid and we
        don't need to go back.  Added some comments to
        TransparencyWin.h, as requested by Brett in
        https://bugs.webkit.org/show_bug.cgi?id=24584.

        * platform/graphics/chromium/FontCacheLinux.cpp:
        (WebCore::FontCache::createFontPlatformData):
        * platform/graphics/chromium/TransparencyWin.h:
        * platform/graphics/skia/PathSkia.cpp:
        (WebCore::Path::boundingRect):
        (WebCore::boundingBoxForCurrentStroke):
        * platform/graphics/skia/SkiaUtils.cpp:
        (WebCore::SkPathContainsPoint):

2009-06-13  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=24492

        Moved registerURLSchemeAsLocal and registerURLSchemeAsNoAccess from
        FrameLoader to SecurityOrigin.

        * WebCore.base.exp:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadFrameRequest):
        (WebCore::FrameLoader::canLoad):
        * loader/FrameLoader.h:
        * page/SecurityOrigin.cpp:
        (WebCore::localSchemes):
        (WebCore::noAccessSchemes):
        (WebCore::SecurityOrigin::SecurityOrigin):
        (WebCore::SecurityOrigin::isLocal):
        (WebCore::SecurityOrigin::registerURLSchemeAsLocal):
        (WebCore::SecurityOrigin::shouldTreatURLAsLocal):
        (WebCore::SecurityOrigin::shouldTreatURLSchemeAsLocal):
        (WebCore::SecurityOrigin::registerURLSchemeAsNoAccess):
        (WebCore::SecurityOrigin::shouldTreatURLSchemeAsNoAccess):
        * page/SecurityOrigin.h:

2009-06-13  Ben Murdoch  <benm@google.com>

        Reviewed by David Kilzer.  Landed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=26189

        This patch changes the way PageGroups create their localStorage
        objects. Rather than creating a local storage object for the page group
        when a page is added to the group, the local storage object is now
        created lazily when the local storage object is requested by the
        DOMWindow.

        * page/PageGroup.cpp:
        (WebCore::PageGroup::closeLocalStorage): Before attempting to close a local storage object for a page group, ensure one has been created.
        (WebCore::PageGroup::addPage): Do not automatically try to create a local storage object when a page is added to the group.
        (WebCore::PageGroup::localStorage): Create a local storage object if one does not exist and return it.
        * page/PageGroup.h: Add private hasLocalStorage method to PageGroup.


2009-06-13  Ben Murdoch  <benm@google.com>

        Reviewed by Eric Seidel.  Landed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=26189

        Add ENABLE(DOM_STORAGE) guards to the dom storage source files.

        * storage/LocalStorage.cpp: Add ENABLE(DOM_STORAGE) guards to the file.
        * storage/LocalStorage.h: Ditto
        * storage/LocalStorageArea.cpp: Ditto
        * storage/LocalStorageArea.h: Ditto
        * storage/LocalStorageTask.cpp: Ditto
        * storage/LocalStorageTask.h: Ditto
        * storage/LocalStorageThread.cpp: Ditto
        * storage/LocalStorageThread.h: Ditto
        * storage/SessionStorage.cpp: Ditto
        * storage/SessionStorage.h: Ditto
        * storage/SessionStorageArea.cpp: Ditto
        * storage/SessionStorageArea.h: Ditto
        * storage/Storage.cpp: Ditto
        * storage/Storage.h: Ditto
        * storage/StorageArea.cpp: Ditto
        * storage/StorageArea.h: Ditto
        * storage/StorageEvent.cpp: Ditto
        * storage/StorageEvent.h: Ditto
        * storage/StorageMap.cpp: Ditto
        * storage/StorageMap.h: Ditto
        * storage/StorageEvent.idl: Add Conditional=DOM_STORAGE attribute.
        * storage/Storage.idl: Ditto

2009-06-13  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part ten
        Make Skia use the root directory ImageDecoder.h and factor out most
        Skia-specific bits into skia/ImageDecoderSkia.cpp.  Also fix a pair of
        style violations in ImageDecoderCairo.cpp.  This is the last patch for
        this bug, everything beyond this is an enhancement rather than
        unforking.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::RGBA32Buffer::getAddr):
        * platform/image-decoders/cairo/ImageDecoderCairo.cpp:
        (WebCore::RGBA32Buffer::hasAlpha):
        (WebCore::RGBA32Buffer::setHasAlpha):
        (WebCore::setStatus):
        * platform/image-decoders/skia/ImageDecoder.h: Removed.
        * platform/image-decoders/skia/ImageDecoderSkia.cpp: Added.
        (WebCore::RGBA32Buffer::RGBA32Buffer):
        (WebCore::RGBA32Buffer::clear):
        (WebCore::RGBA32Buffer::zeroFill):
        (WebCore::RGBA32Buffer::copyBitmapData):
        (WebCore::RGBA32Buffer::setSize):
        (WebCore::RGBA32Buffer::asNewNativeImage):
        (WebCore::RGBA32Buffer::hasAlpha):
        (WebCore::RGBA32Buffer::setHasAlpha):
        (WebCore::RGBA32Buffer::setStatus):
        (WebCore::RGBA32Buffer::operator=):
        (WebCore::RGBA32Buffer::width):
        (WebCore::RGBA32Buffer::height):

2009-06-13  Victor Wang <victorw@chromium.org>

        Reviewed by Eric Seidel.  Landed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=26333
        Alert during a dragenter event handler will crash the renderer
        
        This crash is casued by calling NULL pointer m_documentUnderMouse in
        DragController::tryDocumentDrag()

        tryDHTMLDrag fires dragenter event. The event listener that listens
        to this event may create a nested message loop (open a modal dialog),
        which could process dragleave event and reset m_documentUnderMouse in
        dragExited.

        Fix the crash by checking m_documentUnderMouse after tryDHTMLDrag and
        do not continue if the pointer has been set to NULL.

        Test: DRT does not show alerts so add a manual test:
              manual-tests/drag-enter-alert.html

        * manual-tests/drag-enter-alert.html: Added.
        * manual-tests/resources/drag-image.png: Added.
        * page/DragController.cpp:
        (WebCore::DragController::tryDocumentDrag):

2009-06-13  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.  Landed by Adam Barth.

        Moved V8 Bindings for V8CustomXPathNSResolver to svn.webkit.org.

        https://bugs.webkit.org/show_bug.cgi?id=26227

        * bindings/v8/custom/V8CustomXPathNSResolver.cpp: Added.
        (WebCore::V8CustomXPathNSResolver::V8CustomXPathNSResolver): Moved from src.chromium.org.
        (WebCore::V8CustomXPathNSResolver::~V8CustomXPathNSResolver): Moved from src.chromium.org.
        (WebCore::V8CustomXPathNSResolver::lookupNamespaceURI): Moved from src.chromium.org.
        * bindings/v8/custom/V8CustomXPathNSResolver.h: Added.
        * bindings/v8/custom/V8DocumentCustom.cpp: Updated includes.
        (WebCore::CALLBACK_FUNC_DECL): Updated class name.

2009-06-13  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Mark Rowe.  Landed by Adam Barth.

        Remove obsolete declarations for old Symbian port
        https://bugs.webkit.org/show_bug.cgi?id=26339

        * platform/graphics/FloatPoint.h: Remove declarations for native SYMBIAN adaptation.
        * platform/graphics/FloatRect.h: Ditto.
        * platform/graphics/IntPoint.h: Ditto.
        * platform/graphics/IntRect.h: Ditto.
        * platform/graphics/IntSize.h: Ditto.

2009-06-13  Dirk Schulze  <krit@webkit.org>

        Reviewed by Eric Seidel.

        Added subRegion calculation to SVG filter. Every filter effect is
        clipped to the filter region (according to the spec). This makes
        ImageBuffers for filter effects smaller and we just need to take
        care about big filter regions.
        SVGFEImage needed a correction, to avoid an ASSERT. The two filter
        effects feOffset and feFlood help to test the new subRegion code.

        Tests: svg/filters/subRegion-one-effect.svg
               svg/filters/subRegion-two-effects.svg

        * platform/graphics/filters/FEBlend.h:
        (WebCore::FEBlend::uniteChildEffectSubregions):
        * platform/graphics/filters/FEColorMatrix.h:
        (WebCore::FEColorMatrix::uniteChildEffectSubregions):
        * platform/graphics/filters/FEComponentTransfer.h:
        (WebCore::FEComponentTransfer::uniteChildEffectSubregions):
        * platform/graphics/filters/FEComposite.h:
        (WebCore::FEComposite::uniteChildEffectSubregions):
        * platform/graphics/filters/Filter.h:
        (WebCore::Filter::setSourceImage):
        (WebCore::Filter::sourceImage):
        * platform/graphics/filters/FilterEffect.cpp:
        (WebCore::FilterEffect::FilterEffect):
        (WebCore::FilterEffect::calculateUnionOfChildEffectSubregions):
        (WebCore::FilterEffect::calculateEffectRect):
        * platform/graphics/filters/FilterEffect.h:
        (WebCore::FilterEffect::setUnionOfChildEffectSubregions):
        (WebCore::FilterEffect::unionOfChildEffectSubregions):
        (WebCore::FilterEffect::hasX):
        (WebCore::FilterEffect::setHasX):
        (WebCore::FilterEffect::hasY):
        (WebCore::FilterEffect::setHasY):
        (WebCore::FilterEffect::hasWidth):
        (WebCore::FilterEffect::setHasWidth):
        (WebCore::FilterEffect::hasHeight):
        (WebCore::FilterEffect::setHasHeight):
        (WebCore::FilterEffect::setEffectBuffer):
        (WebCore::FilterEffect::uniteChildEffectSubregions):
        * platform/graphics/filters/SourceAlpha.h:
        (WebCore::SourceAlpha::calculateEffectRect):
        * platform/graphics/filters/SourceGraphic.cpp:
        (WebCore::SourceGraphic::calculateEffectRect):
        (WebCore::SourceGraphic::apply):
        * platform/graphics/filters/SourceGraphic.h:
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::prepareToRenderSVGContent):
        (WebCore::SVGRenderBase::finishRenderSVGContent):
        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
        (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
        * svg/graphics/SVGResourceFilter.cpp:
        (WebCore::SVGResourceFilter::prepareFilter):
        (WebCore::SVGResourceFilter::applyFilter):
        * svg/graphics/SVGResourceFilter.h:
        * svg/graphics/filters/SVGFEConvolveMatrix.h:
        (WebCore::FEConvolveMatrix::uniteChildEffectSubregions):
        * svg/graphics/filters/SVGFEDiffuseLighting.h:
        (WebCore::FEDiffuseLighting::uniteChildEffectSubregions):
        * svg/graphics/filters/SVGFEDisplacementMap.h:
        (WebCore::FEDisplacementMap::uniteChildEffectSubregions):
        * svg/graphics/filters/SVGFEFlood.cpp:
        (WebCore::FEFlood::apply):
        * svg/graphics/filters/SVGFEGaussianBlur.h:
        (WebCore::FEGaussianBlur::uniteChildEffectSubregions):
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::FEImage):
        * svg/graphics/filters/SVGFEImage.h:
        * svg/graphics/filters/SVGFEMerge.cpp:
        (WebCore::FEMerge::uniteEffectRect):
        * svg/graphics/filters/SVGFEMerge.h:
        * svg/graphics/filters/SVGFEMorphology.h:
        (WebCore::FEMorphology::uniteChildEffectSubregions):
        * svg/graphics/filters/SVGFEOffset.cpp:
        (WebCore::FEOffset::apply):
        * svg/graphics/filters/SVGFEOffset.h:
        (WebCore::FEOffset::uniteChildEffectSubregions):
        * svg/graphics/filters/SVGFESpecularLighting.h:
        (WebCore::FESpecularLighting::uniteEffectRect):
        * svg/graphics/filters/SVGFETile.cpp:
        (WebCore::FETile::uniteChildEffectSubregions):
        * svg/graphics/filters/SVGFETile.h:
        * svg/graphics/filters/SVGFilter.cpp:
        (WebCore::SVGFilter::calculateEffectSubRegion):
        * svg/graphics/filters/SVGFilter.h:
        (WebCore::SVGFilter::effectBoundingBoxMode):
        (WebCore::SVGFilter::filterRegion):
        (WebCore::SVGFilter::sourceImageRect):

2009-06-13  Peter Kasting  <pkasting@google.com>

        Bustage: Fix broken GIFs on Cairo due to subtle typo.  Fix a warning.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::RGBA32Buffer::copyRowNTimes):
        * platform/image-decoders/bmp/BMPImageReader.cpp:
        (WebCore::BMPImageReader::processBitmasks):

2009-06-13  Peter Kasting  <pkasting@google.com>

        GTK bustage fix.  "inline" is handled differently by different compilers.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::RGBA32Buffer::getAddr):
        * platform/image-decoders/cairo/ImageDecoderCairo.cpp:

2009-06-13  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part nine
        Factor Cairo-specific implementation out of ImageDecoder.h into
        ImageDecoderCairo.cpp.  Add some comments to functions declared
        in ImageDecoder.h.

        * GNUmakefile.am:
        * WebCore.vcproj/WebCore.vcproj:
        * platform/image-decoders/ImageDecoder.h:
        * platform/image-decoders/cairo: Added.
        * platform/image-decoders/cairo/ImageDecoderCairo.cpp: Added.
        (WebCore::RGBA32Buffer::RGBA32Buffer):
        (WebCore::RGBA32Buffer::clear):
        (WebCore::RGBA32Buffer::zeroFill):
        (WebCore::RGBA32Buffer::copyBitmapData):
        (WebCore::RGBA32Buffer::setSize):
        (WebCore::RGBA32Buffer::asNewNativeImage):
        (WebCore::RGBA32Buffer::hasAlpha):
        (WebCore::RGBA32Buffer::setHasAlpha):
        (WebCore::RGBA32Buffer::operator=):
        (WebCore::RGBA32Buffer::width):
        (WebCore::RGBA32Buffer::height):
        (WebCore::RGBA32Buffer::getAddr):

2009-06-13  David Hyatt  <hyatt@apple.com>

        Reviewed by Darin Adler.

        Cleanup of the new MidpointState class.  Turn it into a struct instead.  Fix a mistaken
        assertion removal and some unintentional whitespace changes.

        * platform/text/BidiResolver.h:
        (WebCore::MidpointState::reset):
        * rendering/RenderBlock.h:
        * rendering/bidi.cpp:
        (WebCore::BidiRun::operator delete):
        (WebCore::chopMidpointsAt):
        (WebCore::checkMidpoints):
        (WebCore::addMidpoint):
        (WebCore::appendRunsForObject):
        (WebCore::RenderBlock::findNextLineBreak):

2009-06-12  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=26367

        Remove the global variables in bidi.cpp.  Make a new struct, MidpointState, that holds all of the
        midpoint information.  Add the remaining global variables as arguments passed down through functions
        as needed.

        * platform/text/BidiResolver.h:
        (WebCore::MidpointState::MidpointState):
        (WebCore::MidpointState::reset):
        (WebCore::BidiResolver::midpointState):
        * rendering/RenderBlock.h:
        * rendering/bidi.cpp:
        (WebCore::BidiRun::operator delete):
        (WebCore::chopMidpointsAt):
        (WebCore::checkMidpoints):
        (WebCore::addMidpoint):
        (WebCore::appendRunsForObject):
        (WebCore::RenderBlock::bidiReorderLine):
        (WebCore::RenderBlock::layoutInlineChildren):
        (WebCore::RenderBlock::determineStartPosition):
        (WebCore::skipNonBreakingSpace):
        (WebCore::shouldCollapseWhiteSpace):
        (WebCore::requiresLineBox):
        (WebCore::RenderBlock::generatesLineBoxesForInlineChild):
        (WebCore::RenderBlock::skipTrailingWhitespace):
        (WebCore::RenderBlock::skipLeadingWhitespace):
        (WebCore::shouldSkipWhitespaceAfterStartObject):
        (WebCore::RenderBlock::findNextLineBreak):

2009-06-12  Holger Hans Peter Freyther  <zecke@selfish.org>

        Build fix for Qt. After recent ImageDeocder.h changes. I want
        the original change to be backed out as the whole Skia merging
        is going in the wrong direction. The discussion will happen in
        the bugtracker.

        https://bugs.webkit.org/show_bug.cgi?id=25709.

        * platform/image-decoders/ImageDecoder.h:

2009-06-12  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Gtk build fix: include cstdio so we can use sscanf

        Gtk/Win Cairo build fix: use isASCIISpace instead of isspace
        Suggested by Brent Fulgham

        * platform/image-decoders/xbm/XBMImageDecoder.cpp:
        (WebCore::XBMImageDecoder::decodeDatum):

2009-06-12  Peter Kasting  <pkasting@google.com>

        Yet another Skia bustage fix.

        * platform/image-decoders/skia/ImageDecoder.h:
        (WebCore::RGBA32Buffer::setSize): Avoid symbol name clash.  The better fix is to take an IntSize(); I'll do that later.

2009-06-12  Peter Kasting  <pkasting@google.com>

        Fix remaining Cairo build bustage from
        https://bugs.webkit.org/show_bug.cgi?id=25709 changes.  Use
        Vector<char> in place of std::string.

        * platform/image-decoders/xbm/XBMImageDecoder.cpp:
        (WebCore::XBMImageDecoder::setData):
        (WebCore::XBMImageDecoder::decodeHeader):
        (WebCore::XBMImageDecoder::decodeDatum):
        * platform/image-decoders/xbm/XBMImageDecoder.h:

2009-06-12  David Levin  <levin@chromium.org>

        Reviewed by Darin Adler.

        UString shouldn't create sharedBuffer for SmallStrings.
        https://bugs.webkit.org/show_bug.cgi?id=26347

        Change the call to use the method UString::Rep::sharedBuffer due
        to changes in UString.

        No noticable change in behavior, so no test.

        * platform/text/StringImpl.cpp:
        (WebCore::StringImpl::create):

2009-06-12  Peter Kasting  <pkasting@google.com>

        Fix Chromium and some of Cairo build bustage, fallout from
        https://bugs.webkit.org/show_bug.cgi?id=25709 changes.

        * WebCore.vcproj/WebCore.vcproj: Add missing XBM decoder files.
        * platform/image-decoders/skia/ImageDecoder.h:
        (WebCore::RGBA32Buffer::copyRowNTimes): Fix typo that broke Skia GIF decoding.

2009-06-12  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein

        https://bugs.webkit.org/show_bug.cgi?id=26095
        
        Fix crash when a renderer for an anonymous node is composited
        by null-checking renderer()->node().
        
        Test: compositing/generated-content.html

        * rendering/RenderLayerBacking.cpp:
        (WebCore::RenderLayerBacking::createGraphicsLayer):
        (WebCore::RenderLayerBacking::rendererHasBackground):
        (WebCore::RenderLayerBacking::rendererBackgroundColor):
        (WebCore::RenderLayerBacking::isSimpleContainerCompositingLayer):
        (WebCore::RenderLayerBacking::paintIntoLayer):

2009-06-12  Simon Fraser  <simon.fraser@apple.com>

        Fix build when ACCELERATED_COMPOSITING is defined.

        * loader/EmptyClients.h:
        (WebCore::EmptyChromeClient::attachRootGraphicsLayer):
        (WebCore::EmptyChromeClient::setNeedsOneShotDrawingSynchronization):
        (WebCore::EmptyChromeClient::scheduleViewUpdate):
        Add stubs for the compositing-related ChromeClient methods.
        
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::updateRootLayerPosition):
        (WebCore::RenderLayerCompositor::ensureRootPlatformLayer):
        docWidth()/docHeight() became private. Use overflowWidth()/overflowHeight() instead, which
        matches what is used to size the WebHTMLView.

2009-06-12  jorlow  <jorlow@chromium.org>

        Reviewed by David Levin.

        https://bugs.webkit.org/show_bug.cgi?id=26356
        http://crbug.com/14006
        Create custom bindings for v8.  The rest of these files are still
        forked (so the review is happening on the chromium review site).
        These bindings have been tested on a hacked up Chromium instance
        (also running --single-process) and Android.

        * bindings/v8/custom/V8StorageCustom.cpp: Added.

2009-06-12  Dmitry Titov  <dimich@chromium.org>

        Reviewed by David Levin.

        https://bugs.webkit.org/show_bug.cgi?id=26359
        [v8] Add XMLHttpRequest to WorkerContextExecutionProxy.

        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::ToV8Object): Add type == V8ClassIndex::XMLHTTPREQUEST to the convertable types.
        (WebCore::WorkerContextExecutionProxy::EventTargetToV8Object): same.
        * bindings/v8/WorkerContextExecutionProxy.h: fix typo in the comment.

2009-06-12  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part eight
        Replace placeholder Cairo BMP, ICO, XBM decoders with real ones.  Remove
        all the decoders from skia/ since they are now just mirrors of the Cairo
        ones.

        * GNUmakefile.am:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCoreSources.bkl:
        * platform/graphics/cairo/ImageSourceCairo.cpp:
        (WebCore::createDecoder): Pass IntSize() to ICOImageDecoder() so it will always decode the largest icon.  Enable XBM decoding on Windows.
        * platform/graphics/skia/ImageSourceSkia.cpp:
        * platform/graphics/wx/ImageSourceWx.cpp:
        (WebCore::createDecoder): Pass IntSize() to ICOImageDecoder() so it will always decode the largest icon.
        * platform/image-decoders/bmp/BMPImageDecoder.cpp: Replaced with WebCore/platform/image-decoders/skia/BMPImageDecoder.cpp.
        * platform/image-decoders/bmp/BMPImageDecoder.h: Replaced with WebCore/platform/image-decoders/skia/BMPImageDecoder.h.
        * platform/image-decoders/bmp/BMPImageReader.cpp: Copied from WebCore/platform/image-decoders/skia/BMPImageReader.cpp.
        * platform/image-decoders/bmp/BMPImageReader.h: Copied from WebCore/platform/image-decoders/skia/BMPImageReader.h.
        * platform/image-decoders/ico/ICOImageDecoder.cpp: Replaced with WebCore/platform/image-decoders/skia/ICOImageDecoder.cpp.
        * platform/image-decoders/ico/ICOImageDecoder.h: Replaced with WebCore/platform/image-decoders/skia/ICOImageDecoder.h.
        * platform/image-decoders/skia/BMPImageDecoder.cpp: Removed.
        * platform/image-decoders/skia/BMPImageDecoder.h: Removed.
        * platform/image-decoders/skia/BMPImageReader.cpp: Removed.
        * platform/image-decoders/skia/BMPImageReader.h: Removed.
        * platform/image-decoders/skia/GIFImageDecoder.cpp: Removed.
        * platform/image-decoders/skia/GIFImageDecoder.h: Removed.
        * platform/image-decoders/skia/GIFImageReader.cpp: Removed.
        * platform/image-decoders/skia/GIFImageReader.h: Removed.
        * platform/image-decoders/skia/ICOImageDecoder.cpp: Removed.
        * platform/image-decoders/skia/ICOImageDecoder.h: Removed.
        * platform/image-decoders/skia/JPEGImageDecoder.cpp: Removed.
        * platform/image-decoders/skia/JPEGImageDecoder.h: Removed.
        * platform/image-decoders/skia/PNGImageDecoder.cpp: Removed.
        * platform/image-decoders/skia/PNGImageDecoder.h: Removed.
        * platform/image-decoders/skia/XBMImageDecoder.cpp: Removed.
        * platform/image-decoders/skia/XBMImageDecoder.h: Removed.
        * platform/image-decoders/xbm/XBMImageDecoder.cpp: Replaced with WebCore/platform/image-decoders/skia/XBMImageDecoder.cpp.
        * platform/image-decoders/xbm/XBMImageDecoder.h: Replaced with WebCore/platform/image-decoders/skia/XBMImageDecoder.h.

2009-06-11  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part seven
        Update Skia's ImageDecoder.h with a few changes designed to reduce the
        delta between specific implementations of ImageDecoder.h.  Update
        Cairo's ImageDecoder.h to sync up with the API changes in the Skia
        version in the last two chage sets.  Update Cairo's PNG/JPEG/GIF
        decoders to use the APIs as well.  All the Cairo image decoder changes
        are direct copies of the Skia versions except ImageDecoder.h, which is
        modified in the necessary ways for the differences between Cairo and
        Skia.

        * platform/graphics/cairo/ImageSourceCairo.cpp:
        (WebCore::ImageSource::createFrameAtIndex): Use new RGBA32Buffer::asNewNativeImage() API.
        * platform/image-decoders/ImageDecoder.h: Sync up with Skia version.
        (WebCore::RGBA32Buffer::):
        (WebCore::RGBA32Buffer::RGBA32Buffer):
        (WebCore::RGBA32Buffer::clear):
        (WebCore::RGBA32Buffer::zeroFill):
        (WebCore::RGBA32Buffer::copyBitmapData):
        (WebCore::RGBA32Buffer::copyRowNTimes):
        (WebCore::RGBA32Buffer::setSize):
        (WebCore::RGBA32Buffer::asNewNativeImage):
        (WebCore::RGBA32Buffer::hasAlpha):
        (WebCore::RGBA32Buffer::disposalMethod):
        (WebCore::RGBA32Buffer::setHasAlpha):
        (WebCore::RGBA32Buffer::setDisposalMethod):
        (WebCore::RGBA32Buffer::setRGBA):
        (WebCore::RGBA32Buffer::operator=):
        (WebCore::RGBA32Buffer::width):
        (WebCore::RGBA32Buffer::height):
        (WebCore::RGBA32Buffer::getAddr):
        * platform/image-decoders/gif/GIFImageDecoder.cpp: Sync up with Skia version.
        (WebCore::GIFImageDecoder::initFrameBuffer):
        (WebCore::GIFImageDecoder::haveDecodedRow):
        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Sync up with Skia version.
        (WebCore::JPEGImageDecoder::outputScanlines):
        * platform/image-decoders/png/PNGImageDecoder.cpp: Sync up with Skia version.
        (WebCore::PNGImageDecoder::rowAvailable):
        * platform/image-decoders/skia/ImageDecoder.h: Add various typedefs or helper functions to minimize differences with Cairo version.  Reorder functions slightly to match reordering of Cairo's m_hasAlpha variable, which I moved to increase readability.
        (WebCore::RGBA32Buffer::):
        (WebCore::RGBA32Buffer::copyRowNTimes):
        (WebCore::RGBA32Buffer::setSize):
        (WebCore::RGBA32Buffer::asNewNativeImage):
        (WebCore::RGBA32Buffer::hasAlpha):
        (WebCore::RGBA32Buffer::disposalMethod):
        (WebCore::RGBA32Buffer::setHasAlpha):
        (WebCore::RGBA32Buffer::setStatus):
        (WebCore::RGBA32Buffer::setDisposalMethod):
        (WebCore::RGBA32Buffer::setRGBA):
        (WebCore::RGBA32Buffer::operator=):
        (WebCore::RGBA32Buffer::width):
        (WebCore::RGBA32Buffer::height):
        (WebCore::RGBA32Buffer::getAddr):
        * platform/image-decoders/skia/JPEGImageDecoder.cpp: Add #include needed by JPEG headers on some platforms, plus comment.

2009-06-12  Brent Fulgham  <bfulgham@webkit.org>

        Unreviewed build correction.

        Revert accidental configuration checkin.  Was not meant to
        be part of the last changeset.

        * config.h:

2009-06-12  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=26353
        Corrects handling of Cairo fonts that were getting out of
        sync due to default copy construction.  Also refactors
        some incorrect platform font destruction code that belongs
        in the font object's destructor.

        * platform/graphics/win/FontPlatformData.h:
        * platform/graphics/win/FontPlatformDataCGWin.cpp:
        (WebCore::FontPlatformData::~FontPlatformData):
        * platform/graphics/win/FontPlatformDataCairoWin.cpp:
        (WebCore::FontPlatformData::platformDataInit):
        (WebCore::FontPlatformData::FontPlatformData):
        (WebCore::FontPlatformData::setFont):
        (WebCore::FontPlatformData::~FontPlatformData):
        * platform/graphics/win/FontPlatformDataWin.cpp:
        * platform/graphics/win/SimpleFontDataCGWin.cpp:
        * platform/graphics/win/SimpleFontDataCairoWin.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        * platform/graphics/win/SimpleFontDataWin.cpp:

2009-06-12  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        * ChangeLog-2007-10-14: Update my email address.
        * ChangeLog-2008-08-10: Update my email address.

2009-06-12  Nate Chapin  <japhet@google.com>

        Reviewed by David Levin.

        Upstream V8Helpers.

        https://bugs.webkit.org/show_bug.cgi?id=26332

        * bindings/v8/V8Helpers.cpp: Added.
        (wrapNPObject): Moved from v8_helpers.cpp.
        (toV8Context): Moved from v8_helpers.cpp.
        (toV8Proxy): Moved from v8_helpers.cpp.
        * bindings/v8/V8Helpers.h: Added.

2009-06-12  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=24792
        rdar://problem/6933055

        Changes the radius in which cursor movement around the 4 arrow icon
        while pan-scrolling does not cause scrolling from around 10 pixels to
        15 pixels, similar to what is found in IE and Firefox.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::setPanScrollCursor):
        Factor out the no-pan-scroll radius.
        * platform/ScrollView.h:
        Create a constant for the no-pan-scroll radius.
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::panScrollFromPoint):
        Factor out the no-pan-scroll radius.

2009-06-12  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25609
        [GTK] Implement support for get_selection and get_n_selections

        Only use the VisibleSelection object if it actually belongs to the
        object we are using.

        This is pretty hacky-ish, but I can't seem to find a direct API to
        get the VisibleSelection for a given object, only the global one.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (selectionBelongsToObject):
        (webkit_accessible_text_get_n_selections):
        (webkit_accessible_text_get_selection):

2009-06-03  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        Crash at Node::nodeIndex()
        https://bugs.webkit.org/show_bug.cgi?id=26044

        This crash seems to be caused by calling nodeIndex() on
        and invalid Node pointer.  As far as I can tell, the most likely
        explanation is that the Range holding the node is actually
        deleted already (thus the memory is junk).  Looking at the code
        Range changes m_start.container() in its destructor to tell if
        the range is detached or not.  If somehow m_start.container() was
        cleared, the range will never be detached and the Document will end
        up with pointers to deleted ranges.  I don't know how to reproduce this
        any reproduction I could think of would hit ASSERTS in Debug mode.
        One reproduction I tried, did not crash in Release mode, even though it
        did in Debug mode.

        I'm making a speculative fix by always detaching the Range from the document
        during ~Range.  This is safer, and all we lose is an ASSERT to prevent double-detach.
        
        Another solution would be to instead store an m_attached bool on the Range object, or
        expose a Document::isRangeAttached(range) call.  Either of those solutions
        could affect performance, so I went with this solution for now.

        I also removed the RangeBoundaryPoint default constructor
        as it is not used anywhere (and is more likely to cause confusion).

        Since I can't reproduce the crash, no test.

        * dom/Document.cpp:
        (WebCore::Document::detachRange):
        * dom/Range.cpp:
        (WebCore::Range::~Range):
        (WebCore::Range::detach):
        * dom/RangeBoundaryPoint.h:
        (WebCore::RangeBoundaryPoint::RangeBoundaryPoint):
          RangeBoundaryPoints always have an m_containerNode, ASSERT that.
        (WebCore::RangeBoundaryPoint::set):
          ASSERT(container) to match all the other functions.
          All callers already ASSERT(container).  Since we only
          have reports if this crash from Release mode, I can only
          assume that those ASSERTs would have been hit in a Debug reproduction.

2009-06-11  Shinichiro Hamaji  <hamaji@chromium.org>

        Reviewed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=25512
        Handle texts after unfinished special tags (i.e., script, style, textarea,
        title, xmp, and iframe) as the text node under the tags in view-source mode.
        Before this change, all texts in unfinished special tags cannot be seen even in view-source mode.

        This was already done only for title. This change allows other special tags to be handled as well.

        Test: fast/frames/viewsource-unfinished-tags.html

        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::parseNonHTMLText):
        (WebCore::HTMLTokenizer::parseTag):
        (WebCore::HTMLTokenizer::write):
        * html/HTMLTokenizer.h:
        (WebCore::HTMLTokenizer::State::inAnyNonHTMLText):

2009-06-11  Yongjun Zhang  <yongjun.zhang@nokia.com>

        Reviewed by Ariya Hidayat.

        https://bugs.webkit.org/show_bug.cgi?id=26291

        [Qt] build break in ImageDecoderQt.cpp.

        * platform/graphics/qt/ImageDecoderQt.cpp:
        (WebCore::ImageDecoderQt::reset):
        (WebCore::ImageDecoderQt::setData):
        (WebCore::ImageDecoderQt::isSizeAvailable):
        * platform/image-decoders/ImageDecoder.h:
        (WebCore::ImageDecoder::setSize):

2009-06-11  Simon Hausmann  <simon.hausmann@nokia.com>

        Rubber-stamped by Ariya Hidayat.

        Removed obsolete and unmaintained files from the old Symbian port.

        * platform/symbian/FloatPointSymbian.cpp: Removed.
        * platform/symbian/FloatRectSymbian.cpp: Removed.
        * platform/symbian/IntPointSymbian.cpp: Removed.
        * platform/symbian/IntRectSymbian.cpp: Removed.
        * platform/symbian/IntSizeSymbian.cpp: Removed.
        * platform/text/symbian/StringImplSymbian.cpp: Removed.
        * platform/text/symbian/StringSymbian.cpp: Removed.

2009-06-10  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part six
        Miscellaneous tiny changes.  The important bits here are the ANSI C++
        compliance fix in skia/ImageDecoders.h (needed to compile this file on
        non-MSVC) and some behavioral fixes for the XBM decoder that Chromium
        unit tests partly exposed.  Other changes are mostly cosmetic.

        * platform/image-decoders/ImageDecoder.h: Make some variables private again.  This will break QTWebKit but those guys have agreed to wait on my finishing the ImageDecoder changes.
        * platform/image-decoders/gif/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::initFrameBuffer): Use IntPoint() instead of the redundant IntPoint(0, 0).
        (WebCore::GIFImageDecoder::frameComplete): Use IntPoint() instead of the redundant IntPoint(0, 0).
        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageDecoder::outputScanlines): Remove obvious comments.
        * platform/image-decoders/png/PNGImageDecoder.cpp:
        (WebCore::PNGImageDecoder::rowAvailable): Remove obvious comments.
        * platform/image-decoders/skia/BMPImageReader.cpp:
        (WebCore::BMPImageReader::decodeBMP): Make more in line with other decoders' comments and structure, use a ref to decrease verbosity.
        (WebCore::BMPImageReader::processRLEData): Use a ref to decrease verbosity.
        (WebCore::BMPImageReader::processNonRLEData): Use a ref to decrease verbosity.
        * platform/image-decoders/skia/GIFImageDecoder.cpp: Use IntPoint() instead of the redundant IntPoint(0, 0).
        (WebCore::GIFImageDecoder::initFrameBuffer): Use IntPoint() instead of the redundant IntPoint(0, 0).
        (WebCore::GIFImageDecoder::frameComplete): Use IntPoint() instead of the redundant IntPoint(0, 0).
        * platform/image-decoders/skia/ImageDecoder.h:
        (WebCore::RGBA32Buffer::copyRowNTimes): Fix ANSI violation that MSVC let me compile (!).
        * platform/image-decoders/skia/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageDecoder::outputScanlines): Remove obvious comments.
        * platform/image-decoders/skia/PNGImageDecoder.cpp:
        (WebCore::PNGImageDecoder::rowAvailable): Remove obvious comments.
        * platform/image-decoders/skia/XBMImageDecoder.cpp:
        (WebCore::XBMImageDecoder::frameBufferAtIndex): Return 0 for non-zero indexes, don't try to decode unnecessarily after failure or when the size couldn't be computed, make more in line with other decoders' comments and structure, call RGBA32Buffer::setRect() appropriately.

2009-06-10  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Eric Seidel.

        The shadow node inside empty textareas gets collapsed in disabled
        textareas. This is a regression from moving the overflow from
        the shadow node to it's parent. The fix is to return true in
        RenderBlock::hasLineIfEmpty for textarea shadow nodes as we 
        currently do for input shadow nodes.
        
        https://bugs.webkit.org/show_bug.cgi?id=26296
        
        Test: fast/forms/empty-textarea-toggle-disabled.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::hasLineIfEmpty):

2009-06-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25609
        [GTK] Implement support for get_selection and get_n_selections

        Implement atk_text_get_n_selections.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_text_get_n_selections):

2009-06-10  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - fix <rdar://problem/6958664> REGRESSION (r42665): When I drag to pan a
          Google map in iPhoto Places, it drags a map tile instead

        Calling stopLoadRequest() from notifyFinished() removed the
        ScriptElementData from the CachedScript's client set, which could make
        it eligible for purging. The fix is to call removeClient() only after
        executing the script, which protects it from being purged while it is
        in the document's queue of scripts to execute soon.

        * dom/ScriptElement.cpp:
        (WebCore::ScriptElementData::execute): Call removeClient() here.
        (WebCore::ScriptElementData::notifyFinished): Instead of calling
        stopLoadRequest(), which calls removeClient(), just reset
        m_cachedScript.

2009-06-10  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Mark Rowe and Eric Seidel.

        Update WebInspector localizedStrings.js with new resource tracking strings
        https://bugs.webkit.org/show_bug.cgi?id=26247

        * English.lproj/localizedStrings.js:

2009-06-10  Feng Qian  <feng@chromium.org>

        Reviewed by Eric Seidel.

        Add Android specific files.
        https://bugs.webkit.org/show_bug.cgi?id=26280

        * platform/text/android: Added.
        * platform/text/android/TextBreakIteratorInternalICU.cpp: Added.

2009-06-10  Feng Qian  <feng@chromium.org>

        Reviewed by Eric Seidel.

        Add Android specific file to WebCore/platform/android (part 9).
        https://bugs.webkit.org/show_bug.cgi?id=26266

        * platform/android/TemporaryLinkStubs.cpp: Added.

2009-06-10  Feng Qian  <feng@chromium.org>

        Reviewed by Eric Seidel.

        Add Android platform specific files.
        https://bugs.webkit/org/show_bug.cgi?id=26265 (part 8).

        * platform/android/SystemTimeAndroid.cpp: Added.
        * platform/android/WidgetAndroid.cpp: Added.

2009-06-10  Feng Qian  <feng@chromium.org>

        Reviewed by Eric Seidel.

        Add Android port files to WebCore/platform. (part 6).
        https://bugs.webkit.org/show_bug.cgi?id=26264

        * platform/android/RenderThemeAndroid.cpp: Added.
        * platform/android/RenderThemeAndroid.h: Added.

2009-06-10  Feng Qian  <feng@chromium.org>

        Reviewed by Eric Seidel.

        Add Android port files to WebCore/platform (part 7).
        https://bugs.webkit.org/show_bug.cgi?id=23296

        * platform/android/ScreenAndroid.cpp: Added.
        * platform/android/ScrollViewAndroid.cpp: Added.
        * platform/android/SearchPopupMenuAndroid.cpp: Added.

2009-06-10  Feng Qian  <feng@chromium.org>

        Reviewed by Eric Seidel.

        Add Android port files to WebCore/platform (part 5).
        https://bugs.webkit.org/show_bug.cgi?id=23296

        * platform/android/LocalizedStringsAndroid.cpp: Added.
        * platform/android/PopupMenuAndroid.cpp: Added.

2009-06-10  Feng Qian  <feng@chromium.org>

        Reviewed by Eric Seidel.

        Add Android port files to WebCore/platform (part 4).
        https://bugs.webkit.org/show_bug.cgi?id=23296

        * platform/android/KeyEventAndroid.cpp: Added.
        * platform/android/KeyboardCodes.h: Added.

2009-06-10  Feng Qian  <feng@chromium.org>

        Reviewed by Eric Seidel.

        Add Android port files to WebCore/platform (part 3).
        https://bugs.webkit.org/show_bug.cgi?id=23296

        * platform/android/FileChooserAndroid.cpp: Added.
        * platform/android/FileSystemAndroid.cpp: Added.

2009-06-10  Feng Qian  <feng@chromium.org>

        Reviewed by Eric Seidel.

        Add Android port files to WebCore/platform (part 2).
        https://bugs.webkit.org/show_bug.cgi?id=23296

        * platform/android/CursorAndroid.cpp: Added.
        * platform/android/DragDataAndroid.cpp: Added.
        * platform/android/EventLoopAndroid.cpp: Added.

2009-06-10  Nate Chapin  <japhet@google.com>

        Reviewed by David Levin.

        Finish moving V8Custom from src.chromium.org to svn.webkit.org.

        https://bugs.webkit.org/show_bug.cgi?id=26258

        * bindings/v8/custom/V8CustomBinding.cpp: Finished upstreaming.
        (WebCore::ACCESSOR_GETTER): Moved from v8_custom.cpp.
        (WebCore::INDEXED_ACCESS_CHECK): Moved from v8_custom.cpp.
        (WebCore::NAMED_ACCESS_CHECK): Moved from v8_custom.cpp.
        (WebCore::V8Custom::GetTargetFrame): Moved from v8_custom.cpp.
        (WebCore::V8Custom::DowncastSVGPathSeg): Moved from v8_custom.cpp.
        * bindings/v8/custom/V8CustomBinding.h: Finished upstreaming.
        * bindings/v8/custom/V8DatabaseCustom.cpp: Updated includes.
        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp: Updated includes.
        * bindings/v8/custom/V8SQLTransactionCustom.cpp: Updated includes.
        * bindings/v8/custom/V8WebKitPointConstructor.cpp: Added.
        (WebCore::CALLBACK_FUNC_DECL): Moved from v8_custom.cpp.

2009-06-10  Takeshi Yoshino  <tyoshino@google.com>

        Reviewed by Justin Garcia.

        Bug 26214: RenderTextControl: Remove ASSERT for checking that visiblePositionForIndex()'s return is not null.
        https://bugs.webkit.org/show_bug.cgi?id=26214

        visiblePositionForIndex can return an instance that returns true for
        isNotNull(). One of common case is when the corresponding input element has
        "-webkit-user-select: none" style attribute. We should allow the case instead
        of putting ASSERT.

        Test: fast/forms/input-select-webkit-user-select-none.html

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::setSelectionRange):

2009-06-10  Roland Steiner <rolandsteiner@google.com>

        Reviewed by Eric Seidel.

        Bug 26197: Incorrect variable initialization in PlatformContextSkia.cpp
        https://bugs.webkit.org/show_bug.cgi?id=26197

        The PlatformContextSkia constructor does a (very likely) wrong size
        initialization for its m_stateStack member:

            m_stateStack(sizeof(State))

        The intended initialization is probably rather

            m_stateStack(1)

        However, since this doesn't buy much (see also comment #4),
        I removed the initialization completely.

        * platform/graphics/skia/PlatformContextSkia.cpp:
        (PlatformContextSkia::PlatformContextSkia): remove member initialization

2009-06-10  Dean McNamee  <deanm@chromium.org>

        Reviewed by Eric Seidel.

        When there is no backing bitmap, return a transparent pattern.
        https://bugs.webkit.org/show_bug.cgi?id=26061

        Test: fast/canvas/canvas-empty-image-pattern.html

        * platform/graphics/skia/PatternSkia.cpp:
        (WebCore::Pattern::createPlatformPattern):

2009-06-10  Dean McNamee  <deanm@chromium.org>

        Reviewed by Eric Seidel.

        Fix a crash for radial gradients with a zero radius.
        https://bugs.webkit.org/show_bug.cgi?id=26059

        Test: fast/gradients/crash-on-zero-radius.html

        * platform/graphics/skia/GradientSkia.cpp:
        (WebCore::Gradient::platformGradient):

2009-06-10  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part five
        Rewrite users of ImageDecoder.h to use "safe" API calls, Skia side.
        This tweaks the RGBA32Buffer interfaces to be implementable by Cairo as
        well and modifies Skia's usage of those interfaces accordingly.  Once a
        similar change lands on the Cairo side, the Skia and Cairo decoders
        should be identical except for the implementation of RGBA32Buffer.

        * platform/graphics/skia/ImageSourceSkia.cpp:
        (WebCore::ImageSource::createFrameAtIndex): Use new RGBA32Buffer::asNewNativeImage() function.
        * platform/image-decoders/skia/BMPImageReader.cpp:
        (WebCore::BMPImageReader::processNonRLEData): Use new RGBA32Buffer::zeroFill() function.
        * platform/image-decoders/skia/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::haveDecodedRow): Rewrite to use RGBA32Buffer::setRGBA(x, y, ...) calls as well as other RGBA32Buffer interface calls instead of knowing the underlying types inside the buffer; also try and add clarity.
        * platform/image-decoders/skia/ImageDecoder.h: Removed bitmap(), width(), and height().
        (WebCore::RGBA32Buffer::zeroFill): Added.
        (WebCore::RGBA32Buffer::copyBitmapData): Avoid using bitmap(), which is going away.
        (WebCore::RGBA32Buffer::copyRowNTimes): Added.
        (WebCore::RGBA32Buffer::setSize): Use new zeroFill() function.
        (WebCore::RGBA32Buffer::asNewNativeImage): Added.
        (WebCore::RGBA32Buffer::setRGBA): Condensed two versions into one that takes coordinates instead of a raw pointer.

2009-06-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25671
        [GTK] Implement support for set_caret_offset

        Make an implementation that actually works.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_text_set_caret_offset):

2009-06-10  Darin Fisher  <darin@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=26294

        Make sure all member variables are initialized so that the default
        assignment operator and copy constructors do not read uninitialized
        memory.

        * platform/network/ResourceResponseBase.cpp:

2009-06-10  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Timothy Hatcher.

        Update main resource meta-data when resource tracking is disabled.

        https://bugs.webkit.org/show_bug.cgi?id=26253

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::getTrackedResource):
        (WebCore::InspectorController::willSendRequest):
        (WebCore::InspectorController::didReceiveResponse):
        (WebCore::InspectorController::didReceiveContentLength):
        (WebCore::InspectorController::didFinishLoading):
        (WebCore::InspectorController::didFailLoading):
        * inspector/InspectorController.h:

2009-06-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25609
        [GTK] Implement support for get_selection and get_n_selections

        Implement atk_text_get_selection.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_text_get_selection):

2009-06-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Do not check if our parent class has the finalize method, it's
        guaranteed to be there.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_finalize):

2009-06-10  Brent Fulgham  <bfulgham@webkit.org>

        Build correct for Windows Cairo targets.

        * WebCore.vcproj/WebCore.vcproj: Disable warning 4611 (interaction
          between '_setjmp' and C++ object destruction is non-portable) for
          the two Cairo targets.  This used to be disabled in a #pragma,
          but recent refactoring removed these lines.

2009-06-10  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        Fix the build of PluginView on Qt with 64-bit where we disable plugins
        at compile time.

        Use the FooNone.cpp files at compile-time.

        * plugins/PluginPackageNone.cpp:
        * plugins/mac/PluginPackageMac.cpp:
        * plugins/mac/PluginViewMac.cpp:

2009-06-10  Simon Hausmann  <simon.hausmann@nokia.com>

        Fix the Qt build.

        ImageDecoderQt needs m_size and m_sizeAvailable to be protected.

        * platform/image-decoders/ImageDecoder.h:

2009-06-10  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Use absolute path for install_name on Mac

        * WebCore.pro:

2009-06-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo.

        https://bugs.webkit.org/show_bug.cgi?id=25415
        [GTK][ATK] Please implement support for get_text_at_offset

        Reduce duplicated code to access the text of a AtkText
        object. doAXStringForRange calls text() internally, so we are
        doing exactly the same after the change.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (getGailTextUtilForAtk):
        (getPangoLayoutForAtk):

2009-06-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo.

        https://bugs.webkit.org/show_bug.cgi?id=25415
        [GTK][ATK] Please implement support for get_text_at_offset

        Pass a PangoLayout to the GailTextUtil function calls.

        It's needed for LINE boundary calls to work correctly.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (updateLayout):
        (getPangoLayoutForAtk):
        (webkit_accessible_text_get_text_after_offset):
        (webkit_accessible_text_get_text_at_offset):

2009-06-10  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo.

        https://bugs.webkit.org/show_bug.cgi?id=25415
        [GTK][ATK] Please implement support for get_text_at_offset

        Use GailUtilText instead of my crappy partial reimplementation of
        it. This should add support for LINE boundaries too, although it's
        mostly untested for now.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (getGailTextUtilForAtk):
        (webkit_accessible_text_get_text_after_offset):
        (webkit_accessible_text_get_text_at_offset):

2009-06-10  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Gtk build fix: include <stdio.h> as it is required in jpeglib.h

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

2009-06-09  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part four
        Most of the remaining Cairo changes needed before merging Skia/Cairo
        image decoders.  Most of these involve plumbing more error detection and
        handling (or, in some cases, merely the capability to detect errors, as
        e.g. Skia detects and handles image allocation failure while Cairo
        currently doesn't).  There is also some general cleanup and
        simplification; RGBA32Buffer::m_height and all associated functions have
        been removed (set but never used) and some places now rely on superclass
        implementations.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::RGBA32Buffer::RGBA32Buffer): Remove m_height, ensureHeight() and associated stuff
        (WebCore::RGBA32Buffer::copyBitmapData): Add API function so refcounted backing stores (like Skia uses) can be used with GIFs
        (WebCore::RGBA32Buffer::setSize): Zero-fill image to avoid garbage
        (WebCore::RGBA32Buffer::height): Remove
        (WebCore::RGBA32Buffer::ensureHeight): Remove
        (WebCore::ImageDecoder::ImageDecoder): Keep member initialization in order, force subclasses to go through size() instead of accessing m_size directly
        (WebCore::ImageDecoder::isSizeAvailable): Check that decoding hasn't failed
        (WebCore::ImageDecoder::size): Check that decoding hasn't failed
        (WebCore::ImageDecoder::setSize): Protect against integer overflow
        (WebCore::ImageDecoder::isOverSize): Protect against integer overflow
        * platform/image-decoders/gif/GIFImageDecoder.cpp: Remove prepEmptyFrameBuffer()
        (WebCore::GIFImageDecoder::isSizeAvailable): Rely on superclass isSizeAvailable() for better failure handling
        (WebCore::GIFImageDecoder::sizeNowAvailable): Add return values for better failure handling, rely on superclass setSize() for overflow protection
        (WebCore::GIFImageDecoder::initFrameBuffer): Add return values for better failure handling, remove prepEmptyFrameBuffer(), use RGBA32Buffer::setSize() to handle potential allocation failures (won't happen with Cairo port, can in Skia), use RGBA32Buffer::copyBitmapData() so backing store can be refcounted internally (Cairo won't be, Skia is), rely on superclass size() for better failure handling
        (WebCore::GIFImageDecoder::haveDecodedRow): Fix style violation, remove RGBA32Buffer::ensureHeight()
        (WebCore::GIFImageDecoder::frameComplete): Remove RGBA32Buffer::ensureHeight()
        * platform/image-decoders/gif/GIFImageDecoder.h: Remove prepEmptyFrameBuffer(), add return values for better failure handling
        * platform/image-decoders/gif/GIFImageReader.cpp:
        (GIFImageReader::do_lzw): Protect against array overflow, add comments
        (GIFImageReader::read): Protect against array overflow, be more tolerant of bad data, better failure handling
        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Remove MSVC-specific warning disable (bfulgham will move into build files)
        (WebCore::JPEGImageReader::decode): Better failure handling
        (WebCore::JPEGImageDecoder::isSizeAvailable): Rely on superclass isSizeAvailable() for better failure handling
        (WebCore::JPEGImageDecoder::outputScanlines): Use RGBA32Buffer::setSize() to handle potential allocation failures (won't happen with Cairo port, can in Skia), rely on superclass size() for better failure handling, remove RGBA32Buffer::ensureHeight()
        * platform/image-decoders/jpeg/JPEGImageDecoder.h: Rely on superclass setSize() for overflow protection
        * platform/image-decoders/png/PNGImageDecoder.cpp: Remove MSVC-specific warning disable (bfulgham will move into build files)
        (WebCore::PNGImageDecoder::PNGImageDecoder): Don't allocate a slot in the framebuffer cache until it's needed
        (WebCore::PNGImageDecoder::isSizeAvailable): Rely on superclass isSizeAvailable() for better failure handling
        (WebCore::PNGImageDecoder::frameBufferAtIndex): Don't allocate a slot in the framebuffer cache until it's needed
        (WebCore::PNGImageDecoder::decode): Don't allocate a slot in the framebuffer cache until it's needed
        (WebCore::PNGImageDecoder::decodingFailed): Fix style violation
        (WebCore::PNGImageDecoder::headerAvailable): Rely on superclass isSizeAvailable() and setSize() for overflow protection and better failure handling
        (WebCore::PNGImageDecoder::rowAvailable): Don't allocate a slot in the framebuffer cache until it's needed, use RGBA32Buffer::setSize() to handle potential allocation failures (won't happen with Cairo port, can in Skia), remove RGBA32Buffer::ensureHeight()
        (WebCore::PNGImageDecoder::pngComplete): Don't allocate a slot in the framebuffer cache until it's needed

2009-06-09  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix, adding JSCore/assembler to the list of include dirs, and
        adding editing/ReplaceNodeSpanCommand.cpp to the build.
        
        * WebCoreSources.bkl:
        * webcore-base.bkl:

2009-06-09  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Timothy Hatcher.

        When checking if the loader is the main resource loader make sure that the loader's frame is the main frame. 

        https://bugs.webkit.org/show_bug.cgi?id=26218

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::didLoadResourceFromMemoryCache):
        (WebCore::InspectorController::identifierForInitialRequest):
        (WebCore::InspectorController::isMainResourceLoader):
        * inspector/InspectorController.h:

2009-06-09  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=26190

        Test: media/controls-css-overload.html

        * rendering/RenderMedia.cpp:
        (WebCore::RenderMedia::updateControls): Prevent NULL dereference in case containers gets hidden.

2009-06-08  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part three
        Various minor cleanups to the Skia files.  Mostly non-functional, except
        for two specific changes:
        * JPEGs and PNGs were always marked as transparent; now they are only
          marked as transparent when they actually are.  I doubt this has much
          of an effect but in theory it could be used to optimize their display.
        * Instead of arbitrarily disallowing images over 32 * 1024 * 1024 px^2,
          only disallow images which are so large they will cause overflow in
          other parts of the code.  This should fix the testcase on
          http://code.google.com/p/chromium/issues/detail?id=3643.

        * platform/image-decoders/skia/BMPImageReader.h:
        (WebCore::BMPImageReader::setRGBA): Use simpler non-static setRGBA() form
        * platform/image-decoders/skia/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::initFrameBuffer): Remove unneeded code, use more readable setRGBA() form
        (WebCore::GIFImageDecoder::haveDecodedRow): Fix style violation
        * platform/image-decoders/skia/GIFImageDecoder.h: Remove unneeded code
        * platform/image-decoders/skia/ImageDecoder.h:
        (WebCore::RGBA32Buffer::setSize): setSize() should just setStatus() when it fails since all callers were doing it
        (WebCore::ImageDecoder::isOverSize): Ease "oversized" image constraints to allow any image that won't overflow
        * platform/image-decoders/skia/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageDecoder::outputScanlines): Remove unneeded code, mark JPEGs as non-transparent
        * platform/image-decoders/skia/PNGImageDecoder.cpp:
        (WebCore::PNGImageDecoder::decodingFailed): Fix style violation
        (WebCore::PNGImageDecoder::rowAvailable): Mark un-decoded PNGs as non-transparent (this will get reset later as needed)
        * platform/image-decoders/skia/XBMImageDecoder.cpp:
        (WebCore::XBMImageDecoder::frameBufferAtIndex): Remove unneeded code

2009-06-09  Darin Fisher  <darin@chromium.org>

        Fix Chromium build bustage.
        
        CachedResource.cpp no longer compiles if USE(JSC) is not defined.  The
        problem is that this file is using a macro from StdLibExtras.h without
        including that file.  It just happenes to get that file via a JSC
        specific include.

        * loader/CachedResource.cpp:

2009-06-09  Dean McNamee  <deanm@chromium.org>

        Reviewed by Oliver Hunt.

        Make sure the graphics backends are in sync with the canvas lineWidth state.
        https://bugs.webkit.org/show_bug.cgi?id=26187

        Test: fast/canvas/canvas-line-width.html

        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::CanvasRenderingContext2D):

2009-06-09  Michael Nordman  <michaeln@google.com>

        Reviewed by Eric Seidel.

        Proactively cancel pending requests at DocLoader dtor time,
        otherwise crashes can occur. 

        https://bugs.webkit.org/show_bug.cgi?id=26230
        http://code.google.com/p/chromium/issues/detail?id=12161

        Test: fast/frames/javascript-url-as-framesrc-crash.html

        * loader/DocLoader.cpp:
        (WebCore::DocLoader::~DocLoader):

2009-06-09  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        Fix ASSERT seen in shadow tree testing
        https://bugs.webkit.org/show_bug.cgi?id=25092

        Test: svg/custom/use-mutation-event-crash.svg

        * svg/SVGUseElement.cpp:
        (WebCore::SVGUseElement::instanceForShadowTreeElement):

2009-06-09  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Eric Seidel.

        Fixes https://bugs.webkit.org/show_bug.cgi?id=22891
        Scrolling in Windows Cairo Broken if no background color set.

        * platform/graphics/cairo/GradientCairo.cpp:
        (WebCore::Gradient::fill):  Use the GraphicsContext save and restore
          methods (rather than the Cairo-only functions) so that the Windows
          device context is kept in sync.
        * platform/graphics/cairo/GraphicsContextCairo.cpp:
        (WebCore::GraphicsContext::GraphicsContext): Add new constructor call
          to sync Windows HDC with Cairo surface.
        * platform/graphics/cairo/GraphicsContextPlatformPrivateCairo.h:
        (WebCore::GraphicsContextPlatformPrivate::syncContext): Provide
          declaration for Windows HDC sync method (and stub for non-Windows
          Cairo implementations).
        * platform/graphics/cairo/ImageCairo.cpp:
        (WebCore::BitmapImage::draw): Use GraphicsContext save and restore
          methods (rather than the Cairo-only functions) so that the Windows
          device context is kept in sync.
        * platform/graphics/win/GraphicsContextCairoWin.cpp:
        (WebCore::CairoContextWithHDC): New method to create a valid Cairo
          context for a given HDC.
        (WebCore::GraphicsContext::GraphicsContext): Modify constructor to
          use new CairoContextWithHDC call.
        (WebCore::GraphicsContext::getWindowsContext): Revise to match
          behavior of CG implementation.
        (WebCore::GraphicsContext::releaseWindowsContext): Revise to match
          behavior of CG implementation.
        (WebCore::GraphicsContextPlatformPrivate::concatCTM): Get rid of
          incorrect new HDC, and use object's HDC member for dealing with
          concatCTM operations.
        (WebCore::GraphicsContextPlatformPrivate::syncContext): New method
          to sync Windows HDC with Cairo context.
        * platform/graphics/win/ImageCairoWin.cpp:
        (WebCore::BitmapImage::getHBITMAPOfSize): Revise implementation to
          match CG behavior.

2009-06-09  Jian Li  <jianli@chromium.org>

        Reviewed by David Levin.

        Bug 26196: Fix the problem that worker's importScripts fails if the
        script URL is redirected from different origin.
        https://bugs.webkit.org/show_bug.cgi?id=26196

        Test: http/tests/workers/worker-importScripts.html

        The fix is to pass an additional enum parameter to the loader in
        order to tell it to perform the redirect origin check or not.

        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::create):
        (WebCore::DocumentThreadableLoader::DocumentThreadableLoader):
        (WebCore::DocumentThreadableLoader::willSendRequest):
        * loader/DocumentThreadableLoader.h:
        * loader/ThreadableLoader.cpp:
        (WebCore::ThreadableLoader::create):
        (WebCore::ThreadableLoader::loadResourceSynchronously):
        * loader/ThreadableLoader.h:
        (WebCore::):
        * loader/WorkerThreadableLoader.cpp:
        (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
        (WebCore::WorkerThreadableLoader::loadResourceSynchronously):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
        * loader/WorkerThreadableLoader.h:
        (WebCore::WorkerThreadableLoader::create):
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::importScripts):
        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::loadRequestAsynchronously):

2009-06-09  Anand K. Mistry  <amistry@google.com>

        Reviewed by Dimitri Glazkov.

        Paint bitmaps with the alpha channel in Skia.
        https://bugs.webkit.org/show_bug.cgi?id=26037

        Test: fast/canvas/drawImage-with-globalAlpha.html

        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::paintSkBitmap):
        * platform/graphics/skia/PlatformContextSkia.cpp:
        (PlatformContextSkia::getAlpha):
        * platform/graphics/skia/PlatformContextSkia.h:

2009-06-09  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        https://bugs.webkit.org/show_bug.cgi?id=26104
        [GTK] Make NetworkRequest a proper GObject and expose SoupMessage

        Refactor how SoupMessage is handled, so that our ResourceRequest
        object doesn't have to store it as a member, which complicates
        managing ResourceRequest's lifetime.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::startHttp):
        * platform/network/soup/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest):
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        * platform/network/soup/ResourceRequestSoup.cpp:
        (WebCore::ResourceRequest::toSoupMessage):
        (WebCore::ResourceRequest::updateFromSoupMessage):

2009-06-09  Simon Hausmann  <simon.hausmann@nokia.com>

        Fix the Qt build, the time functions moved into the WTF namespace.

        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::convertValueToQVariant):
        (JSC::Bindings::convertQVariantToValue):

2009-06-08  Brady Eidson  <beidson@apple.com>

        Reviewed by Antti Koivisto

        <rdar://problem/6727495> Repro crash in WebCore::Loader::Host::servePendingRequests() and dupes.

        Test: http/tests/loading/deleted-host-in-resource-load-delegate-callback.html

        Loader::Host objects were manually managed via new/delete.
        There's a variety of circumstances where a Host might've been deleted while it was still in the middle
        of a resource load delegate callback.
        Changing them to be RefCounted then adding protectors in the callbacks makes this possibility disappear.

        At the same time, remove ProcessingResource which was an earlier fix for this same problem that wasn't
        fully implemented.

        * loader/loader.cpp:
        (WebCore::Loader::Loader):
        (WebCore::Loader::load):
        (WebCore::Loader::servePendingRequests):
        (WebCore::Loader::resumePendingRequests):
        (WebCore::Loader::cancelRequests):
        (WebCore::Loader::Host::didFinishLoading):
        (WebCore::Loader::Host::didFail):
        (WebCore::Loader::Host::didReceiveResponse):
        (WebCore::Loader::Host::didReceiveData):
        * loader/loader.h:
        (WebCore::Loader::Host::create):

2009-06-08  Dmitry Titov  <dimich@chromium.org>

        Reviewed by David Levin.

        https://bugs.webkit.org/show_bug.cgi?id=26126
        Refactor methods of WorkerMessagingProxy used to talk to main-thread loader into new interface.

        Split a couple of methods used to schedule cross-thread tasks between worker thread and loader thread
        implemented on WorkerMessagingProxy into a separate interface so the loading can be implemented in
        Chromium's workers.

        No changes in functionality so no tests added.

        * GNUmakefile.am:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        Added WorkerLoaderProxy.h to the bulid.

        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate): WorkerThread::workerObjectProxy() now returns & instead of *
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate): same.
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::~WorkerContext): same.
        (WebCore::WorkerContext::reportException): same.
        (WebCore::WorkerContext::addMessage): same.
        (WebCore::WorkerContext::postMessage): same.

        * loader/WorkerThreadableLoader.cpp:
        (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::destroy):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::cancel):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::didSendData):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveResponse):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveData):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::didFinishLoading):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::didFail):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::didFailRedirectCheck):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::didReceiveAuthenticationCancellation):
        Use WorkerLoaderProxy instead of WorkerMessagingProxy for the MainThreadBridge.
        Mostly rename.

        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
        In addition to using WorkerLoaderProxy instead of WorkerMessagingProxy, the check for
        AskedToTerminate is removed. It seems to be an optimization for a very small number of cases
        when worker termination is requested a very short time before the request to load something
        (XHR or importScript) was dispatched on the main thread.

        * loader/WorkerThreadableLoader.h:
        Now keeps a pointer to WorkerLoaderProxy rather then to a WorkerMessagingProxy. This allows
        to implement WorkerThreadableLoader for Chromium.

        * workers/WorkerLoaderProxy.h: Added.
        (WebCore::WorkerLoaderProxy::~WorkerLoaderProxy):

        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::startWorkerContext):
        (WebCore::WorkerMessagingProxy::postTaskToLoader): Added ASSERT since this needs to be implemented for nested workers.
        * workers/WorkerMessagingProxy.h:
        Derived from WorkerLoaderProxy, the methods for posting tasks cross-thread are now virtual.
        Removed unused postTaskToWorkerContext() method.

        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::create):
        (WebCore::WorkerThread::WorkerThread):
        * workers/WorkerThread.h:
        (WebCore::WorkerThread::workerLoaderProxy):
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::create):
        (WebCore::WorkerThread::WorkerThread):
        (WebCore::WorkerThread::workerThread):
        * workers/WorkerThread.h:
        (WebCore::WorkerThread::workerLoaderProxy):
        (WebCore::WorkerThread::workerObjectProxy):
        WorkerThread gets a new member of type WorkerLoaderProxy&, and accessor.
        Also, existing WorkerObjectProxy* member is now WorkerObjectProxy& because it can't be null.

2009-06-08  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=26238
        Add parseDate helper to HTTPParsers, which uses WTF::parseDateFromNullTerminatedCharacters.

        * ForwardingHeaders/runtime/DateMath.h: Removed.
        * ForwardingHeaders/wtf/DateMath.h: Copied from WebCore/ForwardingHeaders/runtime/DateMath.h.
        * platform/network/HTTPParsers.cpp:
        (WebCore::parseDate): Added.
        * platform/network/HTTPParsers.h:
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::parseDateValueInHeader): Changed to use the new helper.

2009-06-08  Adam Langley  <agl@google.com>

        Reviewed by Eric Siedel.

        Chromium Linux ignored the background color on <select>s. Rather
        than encode magic colours, we start with a base color (specified
        via CSS) and derive the other colors from it. Thus, setting the
        CSS background-color now correctly changes the colour of the
        control.

        This should not change the appearence controls without
        background-colors. However, <select>s with a background-color
        will now renderer correctly, which may require rebaselining
        pixel tests in the Chromium tree.

        https://bugs.webkit.org/show_bug.cgi?id=26030
        http://code.google.com/p/chromium/issues/detail?id=12596

        * platform/graphics/Color.cpp:
        (WebCore::Color::getHSL): new member
        * platform/graphics/Color.h:
        * rendering/RenderThemeChromiumLinux.cpp:
        (WebCore::RenderThemeChromiumLinux::systemColor):
        (WebCore::brightenColor):
        (WebCore::paintButtonLike):

2009-06-08  Victor Wang <victorw@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=26087
        Bug 26087: Removing element in JS crashes Chrome tab if it fired the change event

        Fix tab crash caused by destroying the popup list that fired the change event on abandon.

        If a popup list is abandoned (press a key to jump to an item
        and then use tab or mouse to get away from the select box),
        the current code fires a change event in PopupListBox::updateFromElemt().
        The JS that listens to this event may destroy the object and cause the
        rest of popup list code crashes.

        The updateFromElement() is called before abandon() and this causes
        the selected index to be discarded after updateFromElement(). From
        the code comments, this appears to be the reason why valueChanged is
        called in updateFromElement.

        Fix the issue by removing the valueChanged call in updateFromElement,
        saving the selected index that we should accept on abandon and pass
        it to the valueChange in abandon().

        A manual test has been added.

        * manual-tests/chromium: Added.
        * manual-tests/chromium/onchange-reload-popup.html: Added.
        * platform/chromium/PopupMenuChromium.cpp:
        (WebCore::PopupListBox::PopupListBox):
        (WebCore::PopupListBox::handleKeyEvent):
        (WebCore::PopupListBox::abandon):
        (WebCore::PopupListBox::updateFromElement):

2009-06-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Disable a few warnings on Windows

        * WebCore.pro:

2009-06-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Don't enable ENABLE_PLUGIN_PACKAGE_SIMPLE_HASH on Windows
        
        This define was brought in after refactoring some code from
        PluginPackage(Qt|Gtk).cpp into the shared PluginPackage.cpp.

        * WebCore.pro:

2009-06-08  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Use $QMAKE_PATH_SEP instead of hardcoded / to fix Windows build

        * WebCore.pro:

2009-06-08  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Ariya Hidayat.

        [Qt] Build fix when NETSCAPE_PLUGIN_API support is turned off
        https://bugs.webkit.org/show_bug.cgi?id=26244

        * WebCore.pro: Define PLUGIN_PACKAGE_SIMPLE_HASH only if
        NETSCAPE_PLUGIN_API is turned on
        * plugins/PluginPackage.cpp: Guard initializeBrowserFuncs()
        * plugins/PluginViewNone.cpp: Match guards with PluginView.h

2009-06-07  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - fix <rdar://problem/6931661> -[WebView _selectionIsAll] returns YES
          when the selection is inside a text field.

        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::isAll): Return false if the selection is in
        a shadow tree.

2009-06-07  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=26106
        [GTK] Crashes when you keep a combo open during a page transition, then close it

        Hide the combo popup and disconnect from its signals during
        PopupMenu destruction to handle this exceptional case with no
        crash.

        * platform/gtk/PopupMenuGtk.cpp:
        (WebCore::PopupMenu::~PopupMenu):
        (WebCore::PopupMenu::menuUnmapped):

2009-06-06  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Fix for <rdar://problem/6930540>
        REGRESSION (r43797): Serif and fantasy font-family names are wrong in result of getComputedStyle

        Test: fast/css/font-family-builtins.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::identifierForFamily): Fix typo. Fantasy family should be
        -webkit-fantasy not, -webkit-serif.

2009-06-06  Sam Weinig  <sam@webkit.org>

        Reviewed by Brady Eidson.

        Fix for <rdar://problem/6936235>
        Need to support StorageEvent.storageArea to meet the Web Storage spec

        * storage/LocalStorageArea.cpp:
        (WebCore::LocalStorageArea::dispatchStorageEvent): Pass the localStorage for
        the frame being dispatched to.
        * storage/SessionStorageArea.cpp:
        (WebCore::SessionStorageArea::dispatchStorageEvent): Ditto, only for sessionStorage.

        * storage/StorageEvent.cpp:
        (WebCore::StorageEvent::StorageEvent):
        (WebCore::StorageEvent::initStorageEvent):
        * storage/StorageEvent.h:
        (WebCore::StorageEvent::create):
        (WebCore::StorageEvent::storageArea):
        * storage/StorageEvent.idl:
        Add storageArea member.

2009-06-05  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Anders Carlsson.

        Fix WMLInputElement initialization code. Don't call initialize() on attach(), let
        WMLCardElement handle initialization once, after the document has been parsed.

        To keep layout tests working introduce a new function in Document.idl: initializeWMLPageState().
        WMLTestCase.js (the wml/ layout test framework) will use it to simulate a regular WML document,
        whose variable state gets initialized on WMLDocument::finishedParsing(). Force initialization
        of the WML variable state, right after the dynamically created elements have been inserted into the tree.

        * dom/Document.cpp:
        (WebCore::Document::initializeWMLPageState):
        * dom/Document.h:
        * dom/Document.idl:
        * wml/WMLCardElement.cpp:
        (WebCore::WMLCardElement::handleIntrinsicEventIfNeeded):
        * wml/WMLDocument.cpp:
        (WebCore::WMLDocument::finishedParsing):
        (WebCore::WMLDocument::initialize):
        * wml/WMLDocument.h:
        * wml/WMLInputElement.cpp:
        (WebCore::WMLInputElement::initialize):
        * wml/WMLInputElement.h:

2009-06-05  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Add ononline and onoffline attributes for the <body> element. 

        * html/HTMLAttributeNames.in: Added ononlineAttr and onofflineAttr.
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::parseMappedAttribute): Map ononlineAttr
        and onofflineAttr to window event listeners.

2009-06-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Add missing includes of config.h

        * platform/qt/QWebPopup.cpp:
        * platform/text/qt/TextBreakIteratorQt.cpp:

2009-06-05  Fumitoshi Ukai  <ukai@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=26215
        Try to fix the Chromium build.

        * platform/graphics/chromium/GlyphPageTreeNodeChromiumWin.cpp:
        (WebCore::fillBMPGlyphs):
        (WebCore::fillNonBMPGlyphs):

2009-06-05  Shinichiro Hamaji  <hamaji@chromium.org>

        Bug 26160: Compile fails in MacOSX when GNU fileutils are installed

        <https://bugs.webkit.org/show_bug.cgi?id=26160>

        Reviewed by Alexey Proskuryakov.

        Use /bin/ln instead of ln for cases where this command is used with -h option.
        As this option is not supported by GNU fileutils, this change helps users 
        who have GNU fileutils in their PATH.

        * WebCore.xcodeproj/project.pbxproj:

2009-06-03  Ben Murdoch  <benm@google.com>

        <https://bugs.webkit.org/show_bug.cgi?id=25710> HTML5 Database stops executing transactions if the URL hash changes while a transaction is open and an XHR is in progress.

        Reviewed by Alexey Proskuryakov.

        Fix a bug that causes database transactions to fail if a history navigation to a hash fragment of the same document is made while resources (e.g. an XHR) are loading

        Test: storage/hash-change-with-xhr.html

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::stopLoading):
        * loader/DocumentLoader.h:
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading):
        (WebCore::FrameLoader::stopAllLoaders):
        * loader/FrameLoader.h:
        * loader/FrameLoaderTypes.h:
        (WebCore::):
        * page/Page.cpp:
        (WebCore::Page::goToItem):
        * WebCore.base.exp:

2009-06-03  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Make sure the correct config.h is included when shadowbuilding

        * WebCore.pro:

2009-06-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        Fix Qt build after r44452

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::sendResponseIfNeeded):

2009-06-05  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Remove some dead code (MenuEventProxy)

        * WebCore.pro:
        * platform/ContextMenu.h:
        * platform/qt/ContextMenuQt.cpp:
        * platform/qt/MenuEventProxy.h: Removed.

2009-06-05  Xan Lopez  <xlopez@igalia.com>

        More build fixes.

        * platform/graphics/gtk/GlyphPageTreeNodePango.cpp:
        (WebCore::GlyphPage::fill):

2009-06-05  Xan Lopez  <xlopez@igalia.com>

        Fix the GTK+ build.

        * GNUmakefile.am:
        * platform/graphics/gtk/FontCacheGtk.cpp:
        (WebCore::FontCache::getFontDataForCharacters):
        * platform/graphics/gtk/GlyphPageTreeNodeGtk.cpp:
        (WebCore::GlyphPage::fill):

2009-06-05  Antti Koivisto  <antti@apple.com>

        Try to fix Windows (and possibly other platforms) build.

        Restore ResourceResponseBase::lastModifiedDate() and setLastModifiedDate() removed in previous commit.
        for now since PluginStream used on some platforms expects them and calculations differ from plain 
        Last-modified header value.
        
        Also include <wtf/MathExtras.h> to get isfinite().

        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::adopt):
        (WebCore::ResourceResponseBase::copyData):
        (WebCore::ResourceResponseBase::setLastModifiedDate):
        (WebCore::ResourceResponseBase::lastModifiedDate):
        * platform/network/ResourceResponseBase.h:
        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::platformLazyInit):

2009-06-03  Antti Koivisto  <antti@apple.com>

        Reviewed by Dave Kilzer.

        https://bugs.webkit.org/show_bug.cgi?id=13128
        Safari not obeying cache header
        
        Implement RFC 2616 cache expiration calculations in WebKit instead of
        relying on the networking layer.

        * ForwardingHeaders/runtime/DateMath.h: Added.
        * WebCore.base.exp:
        * loader/Cache.cpp:
        (WebCore::Cache::revalidationSucceeded):
        * loader/CachedResource.cpp:
        (WebCore::CachedResource::CachedResource):
        (WebCore::CachedResource::isExpired):
        (WebCore::CachedResource::currentAge):
        (WebCore::CachedResource::freshnessLifetime):
        (WebCore::CachedResource::setResponse):
        (WebCore::CachedResource::updateResponseAfterRevalidation):
        (WebCore::CachedResource::mustRevalidate):
        * loader/CachedResource.h:
        * platform/network/ResourceResponseBase.cpp:
        (WebCore::ResourceResponseBase::ResourceResponseBase):
        (WebCore::ResourceResponseBase::adopt):
        (WebCore::ResourceResponseBase::copyData):
        (WebCore::ResourceResponseBase::setHTTPHeaderField):
        (WebCore::ResourceResponseBase::parseCacheControlDirectives):
        (WebCore::ResourceResponseBase::cacheControlContainsNoCache):
        (WebCore::ResourceResponseBase::cacheControlContainsMustRevalidate):
        (WebCore::ResourceResponseBase::cacheControlMaxAge):
        (WebCore::parseDateValueInHeader):
        (WebCore::ResourceResponseBase::date):
        (WebCore::ResourceResponseBase::age):
        (WebCore::ResourceResponseBase::expires):
        (WebCore::ResourceResponseBase::lastModified):
        (WebCore::ResourceResponseBase::isAttachment):
        (WebCore::ResourceResponseBase::compare):
        * platform/network/ResourceResponseBase.h:
        * platform/network/cf/ResourceResponseCFNet.cpp:
        (WebCore::ResourceResponse::platformLazyInit):
        * platform/network/mac/ResourceResponseMac.mm:
        (WebCore::ResourceResponse::platformLazyInit):

2009-06-04  Roland Steiner <rolandsteiner@google.com>

        Reviewed by Eric Seidel.

        Bug 26201: Remove superfluous 'if' statements in RenderTable::addChild
        https://bugs.webkit.org/show_bug.cgi?id=26201

        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild): remove superfluous 'if' statements
       

2009-06-04  Roland Steiner <rolandsteiner@google.com>

        Reviewed by Eric Seidel.

        Bug 26202: add macros for primitive values to simplify CSSStyleSelector::applyProperty
        https://bugs.webkit.org/show_bug.cgi?id=26202

        * css/CSSStyleSelector.cpp: add HANDLE_INHERIT_AND_INITIAL_AND_PRIMITIVE[_WITH_VALUE] macros
        (WebCore::CSSStyleSelector::applyProperty): use new macros

2009-06-04  Roland Steiner <rolandsteiner@google.com>

        Reviewed by Eric Seidel

        Bug 26203: Move parsing of 'attr(X)' values to own method
        https://bugs.webkit.org/show_bug.cgi?id=26203

        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseAttr): new method
        (WebCore::CSSParser::parseContent): use new parseAttr method
        * css/CSSParser.h:
        (WebCore::CSSParser::parseAttr): new method

2009-06-04  Roland Steiner <rolandsteiner@google.com>

        Reviewed by Eric Seidel.

        Bug 26205: RenderTableSection::addChild : correct comment
        https://bugs.webkit.org/show_bug.cgi?id=26205

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addChild): correct comment

2009-06-04  Roland Steiner <rolandsteiner@google.com>

        Reviewed by Eric Seidel.

        Bug 26204: RenderBlock : simplify handleSpecialChild, comment correction
        https://bugs.webkit.org/show_bug.cgi?id=26204

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::handleSpecialChild): simplify usage
        (WebCore::RenderBlock::handlePositionedChild): simplify usage
        (WebCore::RenderBlock::handleFloatingChild): simplify usage
        (WebCore::RenderBlock::handleRunInChild): simplify usage
        (WebCore::RenderBlock::layoutBlock): correct comment
        (WebCore::RenderBlock::layoutBlockChildren): simplify loop, change call to handleSpecialChild
        * rendering/RenderBlock.h: 
        (WebCore::RenderBlock::handleSpecialChild): change signature
        (WebCore::RenderBlock::handlePositionedChild): change signature
        (WebCore::RenderBlock::handleFloatingChild): change signature
        (WebCore::RenderBlock::handleRunInChild): change signature

2009-06-04  Dan Bernstein  <mitz@apple.com>

        - retry to fix the Tiger build

        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::initFontData):

2009-06-04  Dan Bernstein  <mitz@apple.com>

        - try to fix the Tiger build

        * platform/graphics/SimpleFontData.h:

2009-06-04  Dan Bernstein  <mitz@apple.com>

        - try to fix the Leopard and Tiger builds

        * platform/graphics/SimpleFontData.h:

2009-06-04  Dan Bernstein  <mitz@apple.com>

        - try to fix the Windows build

        * platform/graphics/win/UniscribeController.cpp:
        (WebCore::UniscribeController::shapeAndPlaceItem):

2009-06-04  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - make SimpleFontData's data members private
        - rename SimpleFontData's m_font member to m_platformData

        * platform/graphics/Font.h:
        (WebCore::Font::spaceWidth):
        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData):
        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::platformData):
        (WebCore::SimpleFontData::spaceWidth):
        (WebCore::SimpleFontData::adjustedSpaceWidth):
        (WebCore::SimpleFontData::syntheticBoldOffset):
        (WebCore::SimpleFontData::spaceGlyph):
        (WebCore::SimpleFontData::getNSFont):
        (WebCore::SimpleFontData::getQtFont):
        (WebCore::SimpleFontData::getWxFont):
        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::advance):
        * platform/graphics/cairo/FontCairo.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::smallCapsFontData):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        * platform/graphics/chromium/SimpleFontDataLinux.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::smallCapsFontData):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        * platform/graphics/gtk/FontGtk.cpp:
        (WebCore::setPangoAttributes):
        * platform/graphics/gtk/SimpleFontDataGtk.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        (WebCore::SimpleFontData::setFont):
        * platform/graphics/gtk/SimpleFontDataPango.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        (WebCore::SimpleFontData::setFont):
        * platform/graphics/mac/CoreTextController.cpp:
        (WebCore::CoreTextController::adjustGlyphsAndAdvances):
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/mac/FontMacATSUI.mm:
        (WebCore::initializeATSUStyle):
        (WebCore::overrideLayoutOperation):
        (WebCore::ATSULayoutParameters::initialize):
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::initFontData):
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformCharWidthInit):
        (WebCore::SimpleFontData::smallCapsFontData):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        (WebCore::SimpleFontData::checkShapesArabic):
        (WebCore::SimpleFontData::getCTFont):
        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/win/FontCGWin.cpp:
        (WebCore::drawGDIGlyphs):
        (WebCore::Font::drawGlyphs):
        * platform/graphics/win/SimpleFontDataCGWin.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformCharWidthInit):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        * platform/graphics/win/SimpleFontDataCairoWin.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformDestroy):
        (WebCore::SimpleFontData::platformWidthForGlyph):
        (WebCore::SimpleFontData::setFont):
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::initGDIFont):
        (WebCore::SimpleFontData::smallCapsFontData):
        (WebCore::SimpleFontData::containsCharacters):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::widthForGDIGlyph):
        (WebCore::SimpleFontData::scriptFontProperties):
        * platform/graphics/wx/SimpleFontDataWx.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::determinePitch):
        (WebCore::SimpleFontData::platformWidthForGlyph):

2009-06-04  Paul Godavari  <paul@chromium.org>

        Reviewed by Eric Seidel.

        Initialize the width of PopupMenuListBox properly for Mac Chromium.

        Added a test that works only with this patch applied. The test is
        a manual one, since the hit testing infrastructure in the layout
        tests sends keyboard and mouse events to the main window and not
        the cocoa control that implements the popup up, which means we can't
        select items from the popup up.

        https://bugs.webkit.org/show_bug.cgi?id=25904


        * manual-tests/select-narrow-width.html: Added.
        * platform/chromium/PopupMenuChromium.cpp:
        (WebCore::PopupListBox::PopupListBox):
        (WebCore::PopupContainer::showExternal):

2009-06-04  Brent Fulgham  <bfulgham@webkit.org>

        Unreviewed Windows build correction.

        * WebCore.vcproj/WebCore.vcproj: Add missing 'ReplaceNodeWithSpanCommand.cpp'
          and 'ReplaceNodeWithSpanCommand.h'

2009-02-03  Eric Seidel  <eric@webkit.org>

        Reviewed by Justin Garcia.

        Make sure execCommand("bold") on <b style="text-decoration: underline">test</b>
        only removes the bold and not the underline.
        https://bugs.webkit.org/show_bug.cgi?id=23496

        Test: editing/execCommand/convert-style-elements-to-spans.html

        * WebCore.xcodeproj/project.pbxproj:
        * css/CSSStyleDeclaration.h:
        (WebCore::CSSStyleDeclaration::isEmpty):
        * dom/NamedAttrMap.h:
        (WebCore::NamedAttrMap::isEmpty):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::isUnstyledStyleSpan):
        (WebCore::isSpanWithoutAttributesOrUnstyleStyleSpan):
        (WebCore::ApplyStyleCommand::applyBlockStyle):
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::implicitlyStyledElementShouldBeRemovedWhenApplyingStyle):
        (WebCore::ApplyStyleCommand::replaceWithSpanOrRemoveIfWithoutAttributes):
        (WebCore::ApplyStyleCommand::removeCSSStyle):
        (WebCore::ApplyStyleCommand::applyTextDecorationStyle):
        (WebCore::ApplyStyleCommand::removeInlineStyle):
        (WebCore::ApplyStyleCommand::addInlineStyleIfNeeded):
        * editing/ApplyStyleCommand.h:
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::replaceNodeWithSpanPreservingChildrenAndAttributes):
        * editing/CompositeEditCommand.h:
        * editing/RemoveNodePreservingChildrenCommand.cpp:
        (WebCore::RemoveNodePreservingChildrenCommand::RemoveNodePreservingChildrenCommand):
        * editing/ReplaceNodeWithSpanCommand.cpp: Added.
        (WebCore::ReplaceNodeWithSpanCommand::ReplaceNodeWithSpanCommand):
        (WebCore::swapInNodePreservingAttributesAndChildren):
        (WebCore::ReplaceNodeWithSpanCommand::doApply):
        (WebCore::ReplaceNodeWithSpanCommand::doUnapply):
        * editing/ReplaceNodeWithSpanCommand.h: Added.
        (WebCore::ReplaceNodeWithSpanCommand::create):

2009-06-04  Brent Fulgham  <bfulgham@webkit.org>

        Unreviewed build fix for Windows Cairo target.

        Add missing post-build command to copy history/cf contents
        to output directory.

        * WebCore.vcproj/WebCore.vcproj: Update Debug_Cairo and Release_Cairo
          target post-build steps with copy commands.

2009-06-04  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/6854695> Movie controller thumb fails to scale with full page zoom
        
        Account for zoom level when drawing media controller thumb on Windows.

        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::adjustMediaSliderThumbSize):

2009-06-04  David Hyatt  <hyatt@apple.com>

        Reviewed by Sam Weinig.

        Move DOM window focus/blur out of SelectionController and into FocusController.  Make sure it
        fires on the focused frame when the page activation state changes also.  This is covered by an existing
        layout test (albeit badly).  I have modified the test to be correct.

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::setFocused):
        * page/FocusController.cpp:
        (WebCore::FocusController::setFocusedFrame):
        (WebCore::FocusController::setActive):

2009-06-04  Albert J. Wong  <ajwong@chromium.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=26148
        Adding in empty files to stage the extract of RenderThemeChromiumSkia
        from RenderThemeChromiumLinux and RenderThemeChromiumWindows.

        * rendering/RenderThemeChromiumSkia.cpp: Added.
        * rendering/RenderThemeChromiumSkia.h: Added.

2009-06-04  Andrei Popescu <andreip@google.com>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=25562
        Potential crash after ApplicationCacheStorage::storeNewestCache() fails

              Fix the crash by checking the return value of cacheStorage().storeNewestCache(this)
              in WebCore::ApplicationCacheGroup::checkIfLoadIsComplete. If storeNewestCache failed,
              we run the cache failure steps:

        1. Fire the error events to all pending master entries, as well any other cache hosts
           currently associated with a cache in this group.
        2. Disassociate the pending master entries from the failed new cache.
        3. Reinstate the old "newest cache", if there was one.

        We also introduce two other changes:

        1. a mechanism to rollback storageID changes to the in-memory resource
           objects when the storing of an ApplicationCache object fails.

        2. defer removing the pending master entries from the list of pending master entries
           until the entire load is complete. This matches the HTML 5 spec better. To track
           if the load is complete we now introduce a counter for those pending master entries
           that haven't yet finshed downloading.

        * loader/appcache/ApplicationCacheGroup.cpp:
        (WebCore::ApplicationCacheGroup::ApplicationCacheGroup): initializes the new counter to 0
        (WebCore::ApplicationCacheGroup::selectCache): increments the counter when a new pending
        master entry is added.
        (WebCore::ApplicationCacheGroup::finishedLoadingMainResource): decrements the counter
        instead of removing the pending master entry.
        (WebCore::ApplicationCacheGroup::failedLoadingMainResource): decrements the counter
        instead of removing the pending master entry.
        (WebCore::ApplicationCacheGroup::setNewestCache): removes an assertion that no longer
        holds true. In particular, the newest cache is not necessarily new anymore. We can
        set an old cache as the new cache. This can happen if we failed to store a newly
        downloaded cache to the database and we are now reinstating the former newest cache.
        (WebCore::ApplicationCacheGroup::manifestNotFound): resets the counter to 0.
        (WebCore::ApplicationCacheGroup::checkIfLoadIsComplete): check if the loading is complete
        based on the counter instead of the list of pending master entries. Empty the list of
        master entries if the load is complete.
        * loader/appcache/ApplicationCacheGroup.h: add the new counter.
        * loader/appcache/ApplicationCacheStorage.cpp: introduce the journaling mechanism for
        in-memory resource objects.
        (WebCore::ResourceStorageIDJournal::~ResourceStorageIDJournal):
        (WebCore::ResourceStorageIDJournal::add):
        (WebCore::ResourceStorageIDJournal::commit):
        (WebCore::ResourceStorageIDJournal::Record::Record):
        (WebCore::ResourceStorageIDJournal::Record::restore):
        (WebCore::ApplicationCacheStorage::store): log the changes to the in-memory resource
        objects.
        (WebCore::ApplicationCacheStorage::storeNewestCache): create the journal object.
        * loader/appcache/ApplicationCacheStorage.h:  modify the signature of
        bool store(ApplicationCache*) to add a pointer to the logger object used to
        trace the changes to the storageID of the resource objects.

2009-06-04  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=26154
        Allow underscores in the hostnames we parse out of databaseIdentifiers.
        This code is used for HTML 5 database support.

        * page/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::createFromDatabaseIdentifier):

2009-06-04  Mihnea Ovidenie  <mihnea@adobe.com>

        Reviewed by Darin Adler.

        Bug 26084: Multiple missing images in webkit-mask-image prevent rendering
        https://bugs.webkit.org/show_bug.cgi?id=26084

        When painting multiple images, make sure that at least one image is valid before pushing a transparency layer.

        Added a manual test.

        * manual-tests/mask-composite-missing-images.html: Added.
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::paintMaskImages):

2009-06-04  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=26180
        Add a fast path for SecurityOrigin::equal. If "other == this" (where
        other is the other security origin), then we really don't need to do
        all the other (expensive) comparisons. We know it's equal.

        * page/SecurityOrigin.cpp:
        (WebCore::SecurityOrigin::equal):

2009-06-03  David Hyatt  <hyatt@apple.com>

        Reviewed by Sam Weinig.

        Improvements in how selection behaves with focus/activation and a reversion back to using isActive
        in the scrollbar theme code to remove a Chromium ifdef.

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::SelectionController):
        Make the controller set its focused state correctly upon initial creation.

        (WebCore::SelectionController::setSelection):
        Make selection willing to shift the focus node if the selection is focused even if the
        selection is not active.  Whether or not the Page is active is irrelevant to focus changes.

        (WebCore::SelectionController::setFocused):
        * editing/SelectionController.h:
        (WebCore::SelectionController::isFocused):
        Add a new isFocused() method so that code can check if the Selection is focused without caring
        about the active state.

        * page/Frame.cpp:
        (WebCore::Frame::setFocusedNodeIfNeeded):
        Allow focus shifts even when the selection is not active.

        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::paint):
        Revert Dan's change to directly talk to AppKit for checking active state.  Now that the WebCore isActive
        method works, ditch the Chromium-specific #ifdef and go back to the original code.

2009-06-04  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Darin Adler.

        Test: media/before-load-member-access.html
        
        https://bugs.webkit.org/show_bug.cgi?id=26081

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::played): Ensure that if m_playedTimeRanges,
        is not initialized we return a valid range, and don't attempt to use it.

2009-06-03  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Simon Hausmann.

        Implement a way to invalidate the FontCache used by the Qt port.

        * platform/graphics/qt/FontCacheQt.cpp:
        (WebCore::FontCache::invalidate):

2009-06-04  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Ariya Hidayat.

        https://bugs.webkit.org/show_bug.cgi?id=26015

        [Qt] Single-threaded QtWebKit configuration

        Turn off Database, DOM storage, icon database and Web Workers support
        when ENABLE_SINGLE_THREADED is turned on.

        Set SQLITE_THREADSAFE to false to turn off SQLite mutexes
        when ENABLE_SINGLE_THREADED is turned on.

        * WebCore.pro:

2009-06-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - add some assertions that Font methods are used on the main thread

        * platform/graphics/Font.cpp:
        (WebCore::Font::setShouldUseSmoothing):
        * platform/graphics/Font.h:
        (WebCore::Font::primaryFont):
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::glyphDataForCharacter):

2009-06-03  Dan Bernstein  <mitz@apple.com>

        - Windows build fix

        Rolled out apparently-accidental changes to config.h from r44398. These
        were not part of the patch as reviewed.

        * config.h:

2009-06-03  Dmitry Titov  <dimich@chromium.org>

        Not reviewed, Chromium build fix.

        https://bugs.webkit.org/show_bug.cgi?id=26177
        Reverting 'private' to 'protected' on 2 classes.
        Chromium glue layer (not yet in Webkit tree) relies on ability to derive
        Chromium-specific platform classes and access the data members.
        See bug for more details.

        * platform/PlatformMouseEvent.h:
        * platform/PlatformWheelEvent.h:

2009-06-03  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser <simonfr@apple.com>.

        Fixed https://bugs.webkit.org/show_bug.cgi?id=26162

        This corrects an error when destroying an animation
        or transition where endAnimation was never getting
        called and therefore the hardware animation was never
        getting removed.

        This includes a manual-test since it's really impossible
        to make a meaningful automatic test for an animation
        bug like this.

        This has no effect unless accelerated compositing is 
        enabled.

        * manual-tests/interrupted-compound-transform.html: Added.
        * page/animation/ImplicitAnimation.cpp:
        (WebCore::ImplicitAnimation::~ImplicitAnimation):
        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::~KeyframeAnimation):

2009-06-03  Adam Langley  <agl@google.com>

        Reviewed by Eric Seidel.

        Make the scrollbar thumb size twice the width for Chromium Linux. This
        matches Firefox on Linux.

        This will need layout test pixel results to be rebaselined in the
        Chromium tree.

        http://code.google.com/p/chromium/issues/detail?id=12602
        https://bugs.webkit.org/show_bug.cgi?id=26176

        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
        (WebCore::ScrollbarThemeChromiumLinux::minimumThumbLength):
        * platform/chromium/ScrollbarThemeChromiumLinux.h:

2009-06-03  Adam Langley  <agl@google.com>

        Reviewed by Eric Seidel.

        Change Chromium scrollbar theme code to use different classes on
        Windows and Linux rather than suppling symbols. The ScrollbarTheme
        class is already using virtual dispatch, so there's no reason not to.

        This should not affect any layout tests.

        https://bugs.webkit.org/show_bug.cgi?id=26174

        * platform/chromium/ScrollbarThemeChromium.cpp:
        * platform/chromium/ScrollbarThemeChromium.h:
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
        (WebCore::ScrollbarTheme::nativeTheme):
        (WebCore::ScrollbarThemeChromiumLinux::scrollbarThickness):
        (WebCore::ScrollbarThemeChromiumLinux::paintTrackPiece):
        (WebCore::ScrollbarThemeChromiumLinux::paintButton):
        (WebCore::ScrollbarThemeChromiumLinux::paintThumb):
        (WebCore::ScrollbarThemeChromiumLinux::buttonSize):
        * platform/chromium/ScrollbarThemeChromiumLinux.h: Added.
        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
        (WebCore::ScrollbarTheme::nativeTheme):
        (WebCore::ScrollbarThemeChromiumWin::scrollbarThickness):
        (WebCore::ScrollbarThemeChromiumWin::invalidateOnMouseEnterExit):
        (WebCore::ScrollbarThemeChromiumWin::shouldSnapBackToDragOrigin):
        (WebCore::ScrollbarThemeChromiumWin::paintTrackPiece):
        (WebCore::ScrollbarThemeChromiumWin::paintButton):
        (WebCore::ScrollbarThemeChromiumWin::paintThumb):
        (WebCore::ScrollbarThemeChromiumWin::getThemeState):
        (WebCore::ScrollbarThemeChromiumWin::getThemeArrowState):
        (WebCore::ScrollbarThemeChromiumWin::getClassicThemeState):
        (WebCore::ScrollbarThemeChromiumWin::buttonSize):
        * platform/chromium/ScrollbarThemeChromiumWin.h: Added.

2009-06-03  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Enabling debugger requires that Scripts panel is already attached to the
        render tree. The reason is that recompile events result in script sources
        being added into the source frames. Prior to the global options introduced,
        debugger was enabled from the Scripts panel, so that it was guaranteed to
        exist. The InspectorController::enableDebugger API calls with no inspector
        frontend showing were failing though.

        https://bugs.webkit.org/show_bug.cgi?id=26145

        * WebCore.base.exp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::setWindowVisible):
        (WebCore::InspectorController::scriptObjectReady):
        (WebCore::InspectorController::enableDebuggerFromFrontend):
        (WebCore::InspectorController::enableDebugger):
        * inspector/InspectorController.h:
        * inspector/InspectorController.idl:
        * inspector/InspectorFrontend.cpp:
        (WebCore::InspectorFrontend::attachDebuggerWhenShown):
        * inspector/InspectorFrontend.h:
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.show):
        (WebInspector.ScriptsPanel.prototype.attachDebuggerWhenShown):
        * inspector/front-end/inspector.js:
        (WebInspector.attachDebuggerWhenShown):

2009-06-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - fix a regression from the previous patch

        * platform/graphics/Font.cpp: Initialize shouldUseFontSmoothing to true.

2009-06-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - eliminate WebCoreTextRenderer

        * WebCore.base.exp: Updated.
        * WebCore.xcodeproj/project.pbxproj: Removed WebCoreTextRenderer.{h,mm}
            and promoted WebFontCache.h to private.
        * platform/graphics/Font.cpp:
        (WebCore::Font::setShouldUseSmoothing): Added this static setter for
            a new file-static boolean.
        (WebCore::Font::shouldUseSmoothing): Added this static getter.
        * platform/graphics/Font.h: Decleared setShouldUseSmoothing() and
            shouldUseSmoothing().
        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::drawGlyphs): Use Font::shouldUseSmoothing() instead of
        WebCoreShouldUseFontSmoothing().
        * platform/graphics/mac/WebLayer.mm: Removed unneeded #import.
        * platform/mac/WebCoreTextRenderer.h: Removed.
        * platform/mac/WebCoreTextRenderer.mm: Removed.

2009-06-03  David Levin  <levin@chromium.org>

        Reviewed by Dimitri Glazkov.

        v8's ScriptController::evaluate should protect the Frame like the jsc version.
        https://bugs.webkit.org/show_bug.cgi?id=26172

        This change is simply copying protections done for Frame in the method
        WebCore::ScriptController::evaluate in the file js/ScriptController.cpp.

        * bindings/v8/ScriptController.cpp:
        (WebCore::ScriptController::evaluate):

2009-06-03  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - fix <rdar://problem/6841120> Use CTFontManager notifications instead
          of ATS notifications

        * platform/graphics/FontCache.h: Made it an error to destroy a
        FontCache instance.
        * platform/graphics/mac/FontCacheMac.mm:
        (WebCore::fontCacheRegisteredFontsChangedNotificationCallback): Added
        this notification callback for the
        kCTFontManagerRegisteredFontsChangedNotification, which calls
        invalidate().
        (WebCore::FontCache::platformInit): Register for
        kCTFontManagerRegisteredFontsChangedNotification.

2009-06-03  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        Use CGContextShowGlyphsWithAdvances to get more accurate text rendering on Mac.
        
        https://bugs.webkit.org/show_bug.cgi?id=26161

        * platform/wx/wxcode/mac/carbon/non-kerned-drawing.cpp:
        (WebCore::drawTextWithSpacing):

2009-06-03  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Reorder ResourcesPanel components initialization to unfreeze resource list scroller.

        https://bugs.webkit.org/show_bug.cgi?id=26159

        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel):

2009-06-03  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        - Fix for crash (preceded by assertion) in InspectorController::didCommitLoad
          when reloading or navigating with the Inspector open.
        - Fix for Inspector's Elements panel being empty when Inspector first appears.

        https://bugs.webkit.org/show_bug.cgi?id=26134
        https://bugs.webkit.org/show_bug.cgi?id=26135

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::scriptObjectReady):
        (WebCore::InspectorController::didLoadResourceFromMemoryCache):
        (WebCore::InspectorController::identifierForInitialRequest):
        (WebCore::InspectorController::ensureResourceTrackingSettingsLoaded):
        * inspector/InspectorController.h:

2009-06-03  Adam Roben  <aroben@apple.com>

        Windows build fix after r44379

        * svg/graphics/SVGImage.cpp: Move EmptyClients.h back down below the
        other #includes to fix a compiler warning on Windows.

2009-06-02  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Simon Hausmann.

        Add workaround for crash in Linux Flash Player when hosted by
        another toolkit than GTK+. Bug fixed at the Flash Player bugzilla,
        issue (FP-2140).

        * plugins/qt/PluginViewQt.cpp:
        (WebCore::PluginView::setNPWindowIfNeeded):

2009-06-01  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Simon Hausmann.

        Refactor the Qt plugin code to use NPP_SetWindow correctly,
        to make resizing of plugins work.

        Attention was paid to make sure that the windowed plugins scroll
        synchronized with the page view. A manual test has been added.

        * manual-tests/qt/plugin-iframe.html: Added.
        * plugins/PluginView.cpp:
        (WebCore::PluginView::setFrameRect):
        (WebCore::PluginView::frameRectsChanged):
        * plugins/PluginView.h:
        * plugins/qt/PluginContainerQt.cpp:
        (PluginContainerQt::PluginContainerQt):
        * plugins/qt/PluginContainerQt.h:
        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::load):
        * plugins/qt/PluginViewQt.cpp:
        (WebCore::PluginView::updatePluginWidget):
        (WebCore::PluginView::paint):
        (WebCore::PluginView::setParent):
        (WebCore::PluginView::setNPWindowRect):
        (WebCore::PluginView::setNPWindowIfNeeded):
        (WebCore::PluginView::handlePostReadFile):
        (WebCore::PluginView::getValue):
        (WebCore::PluginView::invalidateRect):
        (WebCore::PluginView::init):

2009-06-02  Darin Adler  <darin@apple.com>

        Reviewed by David Hyatt.

        Bug 26112: viewless WebKit -- make events work
        https://bugs.webkit.org/show_bug.cgi?id=26112

        The main fix here is to make mouse and wheel event coordinates in the coordinate
        system of the top level NSView rather than the NSWindow when in the viewless mode.
        This is the design Hyatt chose, but the event part of it wasn't done yet.

        Also fix FrameView to do normal reference counting instead of a strange model with
        an explicit deref near creation time.

        * WebCore.base.exp: Updated.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::eventLoopHandleMouseUp): Moved this function into the file
        to reduce conditionals in the header.
        (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto.

        * page/EventHandler.h: Reduced includes. Fixed formatting of Objective-C types.
        Made currentNSEvent a static member function. Added sendContextMenuEvent and
        eventMayStartDrag functions that takes NSEvent * so the conversion to PlatformMouseEvent
        can be done here rather than in WebKit. Reduced #if by making eventLoopHandleMouseUp and
        eventLoopHandleMouseDragged unconditional.

        * page/Frame.cpp:
        (WebCore::Frame::setView): Made this take a PassRefPtr since it takes ownership.
        (WebCore::Frame::createView): Changed to use RefPtr and FrameView::create and remove
        the explicit deref.

        * page/Frame.h: Changed setView to take a PassRefPtr.

        * page/FrameTree.cpp: Added newly-needed include.

        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView): Got rid of one of the two constructors, and removed
        the initialization of m_refCount and call to show from the reamining one.
        (WebCore::FrameView::create): Added two create functions that do what the two
        constructors did before, except that they return a PassRefPtr to make sure the
        reference counting is handled correctly.
        (WebCore::FrameView::~FrameView): Removed assertion from when FrameView implemented
        its own reference counting.

        * page/FrameView.h: Inherit from RefCounted for reference counting. Made the
        constructor private and added create functions. Got rid of the hand-implemented
        reference counting in this class.

        * page/mac/EventHandlerMac.mm:
        (WebCore::currentNSEventSlot): Renamed currentEvent to currentNSEventSlot to
        make it more clear how it relates to currentNSEvent.
        (WebCore::EventHandler::currentNSEvent): Updated.
        (WebCore::CurrentEventScope::CurrentEventScope): Added. Use to set/reset the
        current event in a foolproof way.
        (WebCore::CurrentEventScope::~CurrentEventScope): Ditto.
        (WebCore::EventHandler::wheelEvent): Use CurrentEventScope. Pass the platform
        window in when constructing the PlatformWheelEvent.
        (WebCore::EventHandler::keyEvent): Use CurrentEventScope.
        (WebCore::lastEventIsMouseUp): Use currentNSEvent.
        (WebCore::EventHandler::passMouseDownEventToWidget): Ditto.
        (WebCore::EventHandler::eventLoopHandleMouseDragged): Ditto.
        (WebCore::EventHandler::eventLoopHandleMouseUp): Ditto.
        (WebCore::EventHandler::passSubframeEventToSubframe): Use
        currentPlatformMouseEvent to get a mouse event that has the appropriate
        platform window passed to create it.
        (WebCore::EventHandler::passWheelEventToWidget): Ditto.
        (WebCore::EventHandler::mouseDown): Ditto.
        (WebCore::EventHandler::mouseDragged): Ditto.
        (WebCore::EventHandler::mouseUp): Ditto.
        (WebCore::EventHandler::mouseMoved): Ditto.
        (WebCore::EventHandler::currentPlatformMouseEvent): Added. Passes the
        platform window that's now needed to create a PlatformMouseEvent.
        (WebCore::EventHandler::sendContextMenuEvent): Added.
        (WebCore::EventHandler::eventMayStartDrag): Added.

        * platform/HostWindow.h: Removed unneeded includes and constructor definition.

        * platform/PlatformMouseEvent.h: Sorted things in alphabetical order.
        Changed Mac constructor to take a windowView as well as the event. This is
        needed in viewless mode, since the "window" is actually an NSView, so the
        event has to know which view to compute the coordinates with. Made the
        same change to pointForEvent.
        * platform/PlatformWheelEvent.h: Ditto.

        * platform/mac/PlatformMouseEventMac.mm:
        (WebCore::pointForEvent): Convert point from window coordinates to view
        coordinates if a windowView is passed in. This is used in viewless mode.
        (WebCore::PlatformMouseEvent::PlatformMouseEvent): Ditto.
        * platform/mac/WheelEventMac.mm:
        (WebCore::PlatformWheelEvent::PlatformWheelEvent): Ditto.

        * platform/mac/WidgetMac.mm:
        (WebCore::Widget::convertFromContainingWindow): Fixed case where there
        is no platform widget and no parent. Before it would yield unpredictable
        results because of dispatching to a nil object and returning a structure.
        Now it returns the point without changing coordinates at all, which is what
        we need for this case in viewless mode.

        * rendering/RenderApplet.cpp: Removed unneeded includes.
        (WebCore::RenderApplet::intrinsicSize): Use widget function.
        (WebCore::RenderApplet::createWidgetIfNecessary): Ditto.

        * rendering/RenderApplet.h: Make more things private. Get rid of unneeded
        explicit destructor.

        * rendering/RenderFrame.cpp: Removed unneeded includes.
        (WebCore::RenderFrame::edgeInfo): Updated to use node function so header
        doesn't have to define element function.
        (WebCore::RenderFrame::viewCleared): Ditto. Also changed to use widget
        function.

        * rendering/RenderFrame.h: Removed unneeded includes. Made some things
        private. Got rid of element function.

        * rendering/RenderPart.cpp: Removed unneeded includes.
        (WebCore::RenderPart::~RenderPart): Changed to use clearWidget function.
        (WebCore::RenderPart::setWidget): Changed to use widget function.
        (WebCore::RenderPart::deleteWidget): Changed to use passed-in widget.
        This is now only called by the clearWidget function.

        * rendering/RenderPart.h: Removed unneeded forward declarations.
        Made more functions private. Updated deleteWidget to take widget argument.

        * rendering/RenderPartObject.cpp:
        (WebCore::RenderPartObject::~RenderPartObject): use frameView function
        instead of getting at m_view directly.
        (WebCore::RenderPartObject::updateWidget): Ditto.
        (WebCore::RenderPartObject::layout): Ditto. Same for widget and m_widget.
        (WebCore::RenderPartObject::viewCleared): Ditto.

        * rendering/RenderPartObject.h: Made some functions private.

        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::RenderWidget): Initialize m_frameView with
        construction syntax instead of assignment.
        (WebCore::RenderWidget::destroy): Updated for name change of m_view
        to m_frameView.
        (WebCore::RenderWidget::~RenderWidget): Use clearWidget to delete
        the widget.
        (WebCore::RenderWidget::setWidget): Use clearWidget.
        (WebCore::RenderWidget::paint): Updated for name change of m_view
        to m_frameView.
        (WebCore::RenderWidget::deleteWidget): Changed to use passed-in widget.

        * rendering/RenderWidget.h: Made many functions protected, others
        private and made all data members private.

        * svg/animation/SMILTime.h: Removed unhelpful max and min functions. These
        just do what std::max and std::min will already do automatically for this
        type, so they are not helpful.

        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::SVGImage): Removed unneeded initial values for types
        that initialize to zero without anything explicit.
        (WebCore::SVGImage::~SVGImage): Update since m_frame and m_frameView are
        no longer stored.
        (WebCore::SVGImage::setContainerSize): Ditto.
        (WebCore::SVGImage::usesContainerSize): Ditto.
        (WebCore::SVGImage::size): Ditto.
        (WebCore::SVGImage::hasRelativeWidth): Ditto.
        (WebCore::SVGImage::hasRelativeHeight): Ditto.
        (WebCore::SVGImage::draw): Ditto.
        (WebCore::SVGImage::nativeImageForCurrentFrame): Ditto.
        (WebCore::SVGImage::dataChanged): Ditto.

        * svg/graphics/SVGImage.h: Removed unneeded includes and unneeded data
        members m_document, m_frame, m_frameView, and m_minSize.

2009-06-02  Adam Langley  <agl@google.com>

        Reviewed by Eric Seidel.

        The previous code was assuming that we'll be painting buttons on the scrollbar
        which isn't true on Linux. To reproduce, resize a page with scrollbars until
        they are less than two widths high.

        This will need pixel test baselines to be updated in the Chromium tree.

        * platform/chromium/ScrollbarThemeChromium.cpp: move this function...
        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
        (WebCore::ScrollbarThemeChromium::trackRect): ... to here
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
        (WebCore::ScrollbarThemeChromium::trackRect): add an alternative which
        doesn't remove the track when the scrollbar is less than two widths
        high.

2009-06-02  Mark Rowe  <mrowe@apple.com>

        Reviewed by Anders Carlsson.

        Remove workaround that was added to address <rdar://problem/5488678> as it no longer affects our Tiger builds.

        * Configurations/Base.xcconfig:

2009-06-02  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej Stachowiak.

        Insert*List on an stand-alone image in a content editable region ASSERTS
        ASSERTION FAILED: isStartOfParagraph(startOfParagraphToMove)
        https://bugs.webkit.org/show_bug.cgi?id=19066

        Attempt to fix this by noticing that we inserted the list inside
        the selection which includes the image, and re-adjust the selection
        to not include the list before trying to move the image into
        the list item.
        
        Test: editing/execCommand/list-wrapping-image-crash.html

        * editing/InsertListCommand.cpp:
        (WebCore::InsertListCommand::doApply):

2009-06-02  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        Rename PositionIterator members in hope of further clarity
        https://bugs.webkit.org/show_bug.cgi?id=24854

        Rename m_parent to m_anchorNode (since although it's always the parent
        of the previous m_child member, it is not always the parent of the effective position)
        Rename m_child to m_nodeAfterPositionInAnchor to make clear that it's the node
        directly following the position.  This member is often NULL, but is always
        a child of m_parent, now m_anchorNode if set.
        Rename m_offset to m_offsetInAnchor (since it's interpreted relative to m_anchorNode)

        * dom/PositionIterator.cpp:
        (WebCore::PositionIterator::operator Position):
        (WebCore::PositionIterator::increment):
        (WebCore::PositionIterator::decrement):
        (WebCore::PositionIterator::atStart):
        (WebCore::PositionIterator::atEnd):
        (WebCore::PositionIterator::atStartOfNode):
        (WebCore::PositionIterator::atEndOfNode):
        (WebCore::PositionIterator::isCandidate):
        * dom/PositionIterator.h:
        (WebCore::PositionIterator::PositionIterator):
        (WebCore::PositionIterator::node):
        (WebCore::PositionIterator::offsetInLeafNode):

2009-06-02  Julien Chaffraix  <jchaffraix@webkit.org>

        Reviewed by Eric Seidel.

        Bug 17167: Failures in fast/dom/Node/initial-values.html

        This partly solve a compatibility issue with other browsers. It will also
        make us more consistent while handling XHTML element.

        The issue is that when we create an XHTML element inside an HTML document
        (as it is the case when calling createElementNS), we default to the HTML
        behaviour in nodeName. As we cannot test if an HTMLElement is an XHTML
        element, our fix is to check whether it has a prefix and then default
        to XML behaviour for nodeName.

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::nodeName): Add a prefix check before
        returning the uppercase tagName (HTML behaviour).

2009-06-02  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej Stachowiak.

        Add a compareBoundaryPoints which takes RangeBoundaryPoints
        https://bugs.webkit.org/show_bug.cgi?id=25500

        I noticed the need for this function when removing compareBoundaryPoints(Position, Position)
        This patch is almost entirely minus lines.

        No functional changes, thus no tests.

        * dom/Range.cpp:
        (WebCore::Range::setStart):
        (WebCore::Range::setEnd):
        (WebCore::Range::compareBoundaryPoints):
        (WebCore::Range::boundaryPointsValid):
        * dom/Range.h:

2009-06-02  Eric Seidel  <eric@webkit.org>

        Reviewed by Maciej Stachowiak.

        Remove Range::compareBoundaryPoints(Position, Position) per Darin's suggestion in bug 25056
        https://bugs.webkit.org/show_bug.cgi?id=25500

        Darin indicated the Range should deal only with primitive DOM node/offset
        pairs, and that Position (which is a more robust editing construct) should have
        its own comparison functions and that Range.h should not mention Position at all.

        Turns out that Position already has a comparePositions() function (which knows
        how to additionally handled positions in shadow trees).  So I've just changed
        all callers of compareBoundaryPoints(Position, Position) to use the existing
        comparePositions() function.  I've also added a comparePositions which takes
        VisiblePositions for convenience.

        * dom/Range.cpp:
        * dom/Range.h:
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::updateStartEnd):
        (WebCore::ApplyStyleCommand::applyBlockStyle):
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::applyInlineStyle):
        (WebCore::ApplyStyleCommand::applyInlineStyleToRange):
        (WebCore::ApplyStyleCommand::removeInlineStyle):
        (WebCore::ApplyStyleCommand::nodeFullySelected):
        (WebCore::ApplyStyleCommand::nodeFullyUnselected):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::deleteInsignificantText):
        (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary):
        (WebCore::CompositeEditCommand::moveParagraphs):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::initializeStartEnd):
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        (WebCore::DeleteSelectionCommand::mergeParagraphs):
        * editing/SelectionController.cpp:
        (WebCore::SelectionController::nodeWillBeRemoved):
        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::toNormalizedRange):
        * editing/htmlediting.cpp:
        (WebCore::comparePositions):
        * editing/htmlediting.h:
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEventSingleClick):

2009-06-02  Albert J. Wong  <ajwong@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=26122
        Upstream v8_utility.h functions into V8Utilities.h.  This patch has
        some transitional code to make upstreaming easier.  This code will
        be deleted in a few days.

        * bindings/v8/ScriptFunctionCall.cpp:
        (WebCore::ScriptFunctionCall::construct): NewInstance -> newInstance.
        * bindings/v8/V8Utilities.h:
        (WebCore::AllowAllocation::AllowAllocation): Function added.
        (WebCore::AllowAllocation::~AllowAllocation): Function added.
        (WebCore::SafeAllocation::NewInstance): Function added.
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
        NewInstance -> newInstance.
        (WebCore::WorkerContextExecutionProxy::toV8): NewInstance ->
        newInstance.

2009-06-02  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - fix <rdar://problem/6940747> Search field’s focus ring is outset

        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::adjustSearchFieldStyle): Set the focused
        search field outline offset to -2.

2009-06-02  Sam Weinig  <sam@webkit.org>

        Reviewed by Alexey Proskuryakov.

        Add list of unimplemented event handlers to DOMWindow.

        * page/DOMWindow.idl:

2009-06-02  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=26133
        Adapt and import py-dom-xpath tests

        Tests: fast/xpath/py-dom-xpath/abbreviations.html
               fast/xpath/py-dom-xpath/axes.html
               fast/xpath/py-dom-xpath/data.html
               fast/xpath/py-dom-xpath/expressions.html
               fast/xpath/py-dom-xpath/functions.html
               fast/xpath/py-dom-xpath/nodetests.html
               fast/xpath/py-dom-xpath/paths.html
               fast/xpath/py-dom-xpath/predicates.html

        Fix bugs found with this test suite:
        - name and local-name were incorrect for processing instructions (XPath expanded-name
        doesn't match DOM exactly);
        - name, local-name and namespace functions should crash on attribute nodes;
        - attemps to make node sets from other types were not detected as errors.

        No performance impact.

        * xml/XPathExpressionNode.h: Track type conversion errors that happen during evaluation.
        An error won't stop evaluation, but an exception will be raised afterwards. We could also
        detect conversion errors at compile time, but not if we're going to support XPath variables
        (which is unnecessary for XPathEvaluator, but will be necessary if we decide to make our own
        XSLT one day).

        * xml/XPathExpression.cpp: (WebCore::XPathExpression::evaluate): Check whether a type
        conversion exception occurred during evaluation, and raise an excpetion if it did.

        * xml/XPathFunctions.cpp:
        (WebCore::XPath::expandedNameLocalPart):
        (WebCore::XPath::expandedName):
        XPath name(), local-name() and namespace-uri() functions are defined in terms of expanded-name,
        which doesn't match anything available via DOM exactly. Calculate the expanded name properly.
        (WebCore::XPath::FunNamespaceURI::evaluate): This function could crash if used with an
        attribute node, because it released what was possibly the only reference to attribute node
        before using it. Changed the function to avoid such situation.
        (WebCore::XPath::FunLocalName::evaluate): Ditto. Also, used the new expandedNameLocalPart()
        to work properly with processing instruction nodes.
        (WebCore::XPath::FunName::evaluate): Ditto (using expandedName()).
        (WebCore::XPath::FunCount::evaluate): Signal an error if the argument is not a node-set
        (by using toNodeSet unconditionally, which will raise an error, and return an empty set).

        * xml/XPathPath.cpp: (WebCore::XPath::Filter::evaluate): Signal an error if the expression
        evaluation result is not a node-set.

        * xml/XPathPath.h: (WebCore::XPath::Filter::resultType): A Filter's result is actually
        always a node-set (this is not so for FilterExpr production in the spec, but is for us,
        because we don't naively map BNF productions to classes).

        * xml/XPathPredicate.cpp: (WebCore::XPath::Union::evaluate): Signal an error if either side
        is not a node-set.

        * xml/XPathStep.cpp: Removed an unnecesary include.

        * xml/XPathValue.cpp:
        (WebCore::XPath::Value::toNodeSet): Signal an error if conversion fails.
        (WebCore::XPath::Value::modifiableNodeSet): Ditto.
        (WebCore::XPath::Value::toNumber): Don't allow inputs that don't match XPath Number production
        (in particular, those using exponential notation).

2009-06-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Brady Eidson.

        Part of https://bugs.webkit.org/show_bug.cgi?id=26100
        Add missing event handler properties to the DOMWindow

        Added oncontextmenu, oninput, and onmessage event handlers to
        the DOMWindow. Aditionally, the onloadstart, onprogress, onstalled,
        and onsuspend event handlers were implemented but not added to
        DOMWindow.idl.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::oninput):
        (WebCore::DOMWindow::setOninput):
        (WebCore::DOMWindow::onmessage):
        (WebCore::DOMWindow::setOnmessage):
        (WebCore::DOMWindow::oncontextmenu):
        (WebCore::DOMWindow::setOncontextmenu):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2009-06-01  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Darin Adler.  Landed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=26123

        Remove a redundant checkEncodedString call when constructing a
        KURL object from a string.

        * platform/KURL.cpp:
        (WebCore::KURL::KURL):

2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        Reposition platform guard, improperly placed by http://trac.webkit.org/changeset/44340
        Bad Dimitri.

        * platform/KeyboardCodes.h: Repositioned the guard to avoid nested
            WebCore namespace declarations.

2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        * platform/KeyboardCodes.h: Integrated contents of platform/chromium/KeyboardCodes.h
            with a stern FIXME.
        * platform/chromium/KeyboardCodes.h: Removed.

2009-06-01  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric Seidel.

        Fix assertion error in --filters enabled debug builds.
        Instead of using RefPtr<AtomicStringImpl> as keys for the hash maps in SVGFilterBuilder, just use AtomicString objects.

        * svg/graphics/filters/SVGFilterBuilder.cpp:
        (WebCore::SVGFilterBuilder::SVGFilterBuilder):
        (WebCore::SVGFilterBuilder::add):
        (WebCore::SVGFilterBuilder::getEffectById):
        * svg/graphics/filters/SVGFilterBuilder.h:

2009-06-01  Nikolas Zimmermann  <zimmermann@kde.org>

        Reviewed by Eric Seidel.

        Fix --filters enabled build on Mac.
        Remove unnecessary 'boundingBox' parameter from finishRenderSVGContent() method.
        Kill several warnings, to make build pass.

        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::paint):
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::paint):
        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::paint):
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::paint):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::finishRenderSVGContent):
        * rendering/SVGRenderSupport.h:
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
        * svg/SVGFEGaussianBlurElement.cpp:
        (WebCore::SVGFEGaussianBlurElement::setStdDeviation):
        * svg/graphics/filters/SVGFEFlood.cpp:
        (WebCore::FEFlood::FEFlood):

2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Dave Hyatt.

        Fix Chromium build by adding an #ifdef, restoring the code path to that
        before http://trac.webkit.org/changeset/44287.

        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::paint): Added an #ifdef.

2009-06-01  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Remove last pieces of the old SVG filter system. They are not
        usable with our current filter system. The new filter effects
        will replace the functionality step by step.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * svg/graphics/cairo: Removed.
        * svg/graphics/cairo/SVGResourceFilterCairo.cpp: Removed.
        * svg/graphics/cg: Removed.
        * svg/graphics/cg/SVGResourceFilterCg.cpp: Removed.
        * svg/graphics/cg/SVGResourceFilterCg.mm: Removed.
        * svg/graphics/filters/SVGFilterEffect.cpp: Removed.
        * svg/graphics/filters/SVGFilterEffect.h: Removed.
        * svg/graphics/filters/cg: Removed.
        * svg/graphics/filters/cg/SVGFEHelpersCg.h: Removed.
        * svg/graphics/filters/cg/SVGFEHelpersCg.mm: Removed.
        * svg/graphics/filters/cg/SVGFilterEffectCg.mm: Removed.
        * svg/graphics/filters/cg/WKArithmeticFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKArithmeticFilter.h: Removed.
        * svg/graphics/filters/cg/WKArithmeticFilter.m: Removed.
        * svg/graphics/filters/cg/WKComponentMergeFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKComponentMergeFilter.h: Removed.
        * svg/graphics/filters/cg/WKComponentMergeFilter.m: Removed.
        * svg/graphics/filters/cg/WKDiffuseLightingFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKDiffuseLightingFilter.h: Removed.
        * svg/graphics/filters/cg/WKDiffuseLightingFilter.m: Removed.
        * svg/graphics/filters/cg/WKDiscreteTransferFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKDiscreteTransferFilter.h: Removed.
        * svg/graphics/filters/cg/WKDiscreteTransferFilter.m: Removed.
        * svg/graphics/filters/cg/WKDisplacementMapFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKDisplacementMapFilter.h: Removed.
        * svg/graphics/filters/cg/WKDisplacementMapFilter.m: Removed.
        * svg/graphics/filters/cg/WKDistantLightFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKDistantLightFilter.h: Removed.
        * svg/graphics/filters/cg/WKDistantLightFilter.m: Removed.
        * svg/graphics/filters/cg/WKGammaTransferFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKGammaTransferFilter.h: Removed.
        * svg/graphics/filters/cg/WKGammaTransferFilter.m: Removed.
        * svg/graphics/filters/cg/WKIdentityTransferFilter.h: Removed.
        * svg/graphics/filters/cg/WKIdentityTransferFilter.m: Removed.
        * svg/graphics/filters/cg/WKLinearTransferFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKLinearTransferFilter.h: Removed.
        * svg/graphics/filters/cg/WKLinearTransferFilter.m: Removed.
        * svg/graphics/filters/cg/WKNormalMapFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKNormalMapFilter.h: Removed.
        * svg/graphics/filters/cg/WKNormalMapFilter.m: Removed.
        * svg/graphics/filters/cg/WKPointLightFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKPointLightFilter.h: Removed.
        * svg/graphics/filters/cg/WKPointLightFilter.m: Removed.
        * svg/graphics/filters/cg/WKSpecularLightingFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKSpecularLightingFilter.h: Removed.
        * svg/graphics/filters/cg/WKSpecularLightingFilter.m: Removed.
        * svg/graphics/filters/cg/WKSpotLightFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKSpotLightFilter.h: Removed.
        * svg/graphics/filters/cg/WKSpotLightFilter.m: Removed.
        * svg/graphics/filters/cg/WKTableTransferFilter.cikernel: Removed.
        * svg/graphics/filters/cg/WKTableTransferFilter.h: Removed.
        * svg/graphics/filters/cg/WKTableTransferFilter.m: Removed.
        * svg/graphics/mac: Removed.
        * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h: Removed.
        * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm: Removed.
        * svg/graphics/qt: Removed.
        * svg/graphics/qt/SVGResourceFilterQt.cpp: Removed.
        * svg/graphics/skia: Removed.
        * svg/graphics/skia/SVGResourceFilterSkia.cpp: Removed.

2009-06-01  Dmitry Titov  <dimich@chromium.org>

        Fix the previous checkin (ttp://trac.webkit.org/changeset/44327).
        This adds a comment suggested during review.

        * platform/ThreadGlobalData.cpp:
        (WebCore::ThreadGlobalData::~ThreadGlobalData): Add comment clarifying the change.

2009-06-01  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25973
        Avoid calling CurrentThread() in thread-specific destructors in OSX Chromium.
        Pthreads invoke thread-specific destructors after WTF::detachThread() is called and ThreadIdentifier
        for the thread removed from the WTF thread map. Calling CurrentThread() in such destructor causes
        the ThreadIdentifier to be re-created and inserted into the map again. Since Pthreads on OSX reuse
        the pthread_t between threads, the next created thread will have the same pthread_t and cause an assert
        in establishIdentifierForPthreadHandle() since the id is already in the map.

        The behavior is covered by existing test LayoutTests/fast/workers/worker-terminate.html, which currently fails
        on OSX Chromium and will stop failing after this change.

        * platform/ThreadGlobalData.h:
        * platform/ThreadGlobalData.cpp:
        (WebCore::ThreadGlobalData::~ThreadGlobalData):
        Store the result of "isMainThread()" in a member variable during construction of thread-specific data
        to avoid calling IsMainThread() in destructor, since the latter calls CurrentThread() in OSX Chromium.

2009-06-01  David Levin  <levin@chromium.org>

        Reviewed by Darin Alder and Maciej Stachowiak.

        Bug 26057: StringImpl should share buffers with UString.
        https://bugs.webkit.org/show_bug.cgi?id=26057

        This change results in the following performance improvements:
        On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/001.html
        the time went from 78ms to 40ms for append (other times remained constant).

        On http://www.hixie.ch/tests/adhoc/perf/dom/artificial/core/002.html,
        the time went from 3900ms to 2600ms.

        For http://dromaeo.com/?dom, the time for DomModification improved by ~6%.
        Other tests in dom seemed to be faster across several runs but within the
        margin of error (except DOM Attributes which was slightly ~1.5% worse).

        Existing tests cover this code and there is no new functionality
        that is exposed to test.

        * platform/text/AtomicString.cpp:
        (WebCore::AtomicString::add):
        * platform/text/String.cpp:
        (WebCore::String::String):
        (WebCore::String::operator UString):
        * platform/text/StringImpl.cpp:
        (WebCore::StringImpl::StringImpl):
        (WebCore::StringImpl::~StringImpl):
        (WebCore::StringImpl::create): Consumes a shared buffer.
        (WebCore::StringImpl::ustring): Shares the StringImpl's buffer with the UString.
        (WebCore::StringImpl::sharedBuffer): Exposes the buffer that may be shared.
        * platform/text/StringImpl.h:
        (WebCore::StringImpl::hasTerminatingNullCharacter):
        (WebCore::StringImpl::inTable):
        (WebCore::StringImpl::setInTable): Converted the bools to be inside of PtrAndFlags
        to avoid growing StringImpl in size.

2009-06-01  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        V8 bindings follow-up to to DOMWindow-related cleanup:
        http://trac.webkit.org/changeset/44215

        * bindings/v8/ScriptController.cpp: Removed disconnectFrame(), relocated
            its body to destructor.
        * bindings/v8/ScriptController.h: Removed disconnectFrame() decl.

2009-05-28  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        - Add panel enabler to the resources panel.
        - Add session / always options into the panel enabler.
        - Make enabled status for three panels sticky (globally).
        - Persist enabled status using InspectorController::Settings
        - Make InspectorController produce no network-related overhead when
          resources panel is not enabled.

        https://bugs.webkit.org/show_bug.cgi?id=26046

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::InspectorController):
        (WebCore::InspectorController::setWindowVisible):
        (WebCore::InspectorController::populateScriptObjects):
        (WebCore::InspectorController::identifierForInitialRequest):
        (WebCore::InspectorController::willSendRequest):
        (WebCore::InspectorController::didReceiveResponse):
        (WebCore::InspectorController::didReceiveContentLength):
        (WebCore::InspectorController::didFinishLoading):
        (WebCore::InspectorController::didFailLoading):
        (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
        (WebCore::InspectorController::scriptImported):
        (WebCore::InspectorController::enableResourceTracking):
        (WebCore::InspectorController::disableResourceTracking):
        (WebCore::InspectorController::startUserInitiatedProfiling):
        (WebCore::InspectorController::enableProfiler):
        (WebCore::InspectorController::disableProfiler):
        (WebCore::InspectorController::enableDebugger):
        (WebCore::InspectorController::disableDebugger):
        * inspector/InspectorController.h:
        (WebCore::InspectorController::Setting::Setting):
        (WebCore::InspectorController::resourceTrackingEnabled):
        * inspector/InspectorController.idl:
        * inspector/InspectorFrontend.cpp:
        (WebCore::InspectorFrontend::resourceTrackingWasEnabled):
        (WebCore::InspectorFrontend::resourceTrackingWasDisabled):
        * inspector/InspectorFrontend.h:
        * inspector/front-end/PanelEnablerView.js:
        (WebInspector.PanelEnablerView.enableOption):
        (WebInspector.PanelEnablerView):
        (WebInspector.PanelEnablerView.prototype._windowResized):
        (WebInspector.PanelEnablerView.prototype.alwaysWasChosen):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype._enableProfiling):
        (WebInspector.ProfilesPanel.prototype._toggleProfiling):
        * inspector/front-end/ResourcesPanel.js:
        (WebInspector.ResourcesPanel):
        (WebInspector.ResourcesPanel.prototype.get statusBarItems):
        (WebInspector.ResourcesPanel.prototype.resourceTrackingWasEnabled):
        (WebInspector.ResourcesPanel.prototype.resourceTrackingWasDisabled):
        (WebInspector.ResourcesPanel.prototype.reset):
        (WebInspector.ResourcesPanel.prototype._updateSidebarWidth):
        (WebInspector.ResourcesPanel.prototype._enableResourceTracking):
        (WebInspector.ResourcesPanel.prototype._toggleResourceTracking):
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._enableDebugging):
        (WebInspector.ScriptsPanel.prototype._toggleDebugging):
        * inspector/front-end/inspector.css:
        * inspector/front-end/inspector.js:
        (WebInspector.resourceTrackingWasEnabled):
        (WebInspector.resourceTrackingWasDisabled):

2009-06-01  Drew Wilson  <atwilson@google.com>

        Reviewed by Darin Adler.  Landed (and tweaked) by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=25902

        Added WorkerContext.close()

        Test: fast/workers/worker-close.html

        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::close):
        * workers/WorkerContext.h:
        * workers/WorkerContext.idl:
        * workers/WorkerMessagingProxy.cpp:
        (WebCore::WorkerMessagingProxy::workerContextDestroyedInternal):

2009-06-01  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=12471
        XPathResult not invalidated for documents retrieved via XMLHttpRequest

        Test: fast/xpath/detached-subtree-invalidate-iterator.html and existing tests in dom/svg/level3/xpath.

        Use DOM tree version instead of DOMSubtreeModified events to invalidate, which is more
        reliable and much faster.

        * xml/XPathExpression.cpp:
        (WebCore::XPathExpression::evaluate):
        * xml/XPathResult.cpp:
        (WebCore::XPathResult::XPathResult):
        (WebCore::XPathResult::~XPathResult):
        (WebCore::XPathResult::invalidIteratorState):
        (WebCore::XPathResult::iterateNext):
        * xml/XPathResult.h:
        (WebCore::XPathResult::create):

2009-06-01  Brett Wilson  <brettw@chromium.org>

        Reviewed by Darin Adler.  Landed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=25750

        Test: fast/transforms/bounding-rect-zoom.html

        Make getClientRects and getBoundingClientRect account for ther zoom
        factor.

        * dom/Element.cpp:
        (WebCore::adjustFloatPointForAbsoluteZoom):
        (WebCore::adjustFloatQuadForAbsoluteZoom):
        (WebCore::adjustIntRectForAbsoluteZoom):
        (WebCore::Element::getClientRects):
        (WebCore::Element::getBoundingClientRect):

2009-06-01  Tony Chang  <tony@chromium.org>

        Reviewed by Dimitri Glazkov.  Landed by Adam Barth.

        https://bugs.webkit.org/show_bug.cgi?id=26026

        Fix an infinite loop when using the keyboard in Chromium select
        popups.

        Not testable since it involves sending a keyboard event to
        the popup, which is not possible (eventSender sends the key
        events through webview, we want to go through the webwidget).

        * platform/chromium/PopupMenuChromium.cpp:

2009-06-01  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.  Landed by Adam Barth.

        If a url with an anchor is being loaded, ensure that the anchor remains locked in view until the page
        has finished loading compeltely or the user has manually scrolled.  Refreshing an anchor url after
        scrolling to a new location on the page will still result in jumping to the new location.
        
        https://bugs.webkit.org/show_bug.cgi?id=26034

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::gotoAnchor): Set anchor lock after navigating to anchor.
        (WebCore::FrameLoader::completed): Release anchor lock.
        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView): Ensure anchor lock starts unset.
        (WebCore::FrameView::reset): Ensure anchor lock starts unset.
        (WebCore::FrameView::layout): If anchor lock is set, force a gotoAnchor() after layout.
        (WebCore::FrameView::scrollRectIntoViewRecursively): Release anchor lock if a programmatic scroll begins.
        (WebCore::FrameView::setWasScrolledByUser): Release anchor lock if user manually scrolls.
        (WebCore::FrameView::setScrollPosition): Release anchor lock if a programmatic scroll begins.
        * page/FrameView.h:
        (WebCore::FrameView::lockedToAnchor): Added.
        (WebCore::FrameView::setLockedToAnchor): Added.

2009-05-31  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        WebKit needs cross-platform filter system
        [https://bugs.webkit.org/show_bug.cgi?id=19991]

        A short clean-up. FilterBuilder is SVG specific. Move it
        to svg/graphics/filters and rename it to SVGFilterBuilder. 

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.xcodeproj/project.pbxproj:
        * svg/FilterBuilder.cpp: Removed.
        * svg/FilterBuilder.h: Removed.
        * svg/SVGFilterElement.cpp:
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        * svg/graphics/SVGResourceFilter.cpp:
        (WebCore::SVGResourceFilter::SVGResourceFilter):
        * svg/graphics/SVGResourceFilter.h:
        (WebCore::SVGResourceFilter::builder):
        * svg/graphics/filters/SVGFilterBuilder.cpp: Added.
        (WebCore::SVGFilterBuilder::SVGFilterBuilder):
        (WebCore::SVGFilterBuilder::add):
        (WebCore::SVGFilterBuilder::getEffectById):
        (WebCore::SVGFilterBuilder::clearEffects):
        * svg/graphics/filters/SVGFilterBuilder.h: Added.
        (WebCore::SVGFilterBuilder::lastEffect):

2009-05-31  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=13233
        Need to implement an optimizing XPath evaluator

        Avoid sorting results of hierarchical paths that are naturally sorted. On a flat data structure
        with 128K nodes and a simple XPath expression, this changes evaluation time from 1.5 minutes
        to 33 ms.

        * xml/XPathNodeSet.h: Keep track of whether subtrees rooted at nodes in set are disjoint,
        which is useful for optimization.
        (WebCore::XPath::NodeSet::NodeSet): Removed, it was identical to compiler generated one.
        (WebCore::XPath::NodeSet::operator=): Ditto.
        (WebCore::XPath::NodeSet::swap): Ditto.
        (WebCore::XPath::NodeSet::isSorted): Single element sets are always sorted, even if sort()
        was never called.
        (WebCore::XPath::NodeSet::markSubtreesDisjoint): Just like being sorted, the new flag is
        maintained by callers.
        (WebCore::XPath::NodeSet::subtreesAreDisjoint): A single element set only has one subtree.
        Currently, the only way for a set to gain this flag is to be produced from a single element
        set with a hierarchical location path.

        * xml/XPathPath.cpp: (WebCore::XPath::LocationPath::evaluate): Use the new flag to avoid
        maintaining a set of unique nodes, and to avoid sorting the result.

2009-05-31  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=13233
        Need to implement an optimizing XPath evaluator

        This patch adds some infrastructure and simple optimizations. Namely,
        - we now avoid building a full NodeSet just to evaluate a predicate in some cases;
        - "/descendant-or-self::node()/child::" is optimized to iterate the tree once when possible;

        * xml/XPathExpressionNode.cpp:
        (WebCore::XPath::Expression::Expression):
        * xml/XPathExpressionNode.h:
        (WebCore::XPath::Expression::addSubExpression):
        (WebCore::XPath::Expression::isContextNodeSensitive):
        (WebCore::XPath::Expression::isContextPositionSensitive):
        (WebCore::XPath::Expression::isContextSizeSensitive):
        (WebCore::XPath::Expression::setIsContextNodeSensitive):
        (WebCore::XPath::Expression::setIsContextPositionSensitive):
        (WebCore::XPath::Expression::setIsContextSizeSensitive):
        XPath expression now knows its result type, and whether evaluation depends on context.

        * xml/XPathFunctions.cpp:
        (WebCore::XPath::FunLast::resultType):
        (WebCore::XPath::FunLast::FunLast):
        (WebCore::XPath::FunPosition::resultType):
        (WebCore::XPath::FunPosition::FunPosition):
        (WebCore::XPath::FunCount::resultType):
        (WebCore::XPath::FunId::resultType):
        (WebCore::XPath::FunLocalName::resultType):
        (WebCore::XPath::FunLocalName::FunLocalName):
        (WebCore::XPath::FunNamespaceURI::resultType):
        (WebCore::XPath::FunNamespaceURI::FunNamespaceURI):
        (WebCore::XPath::FunName::resultType):
        (WebCore::XPath::FunName::FunName):
        (WebCore::XPath::FunString::resultType):
        (WebCore::XPath::FunString::FunString):
        (WebCore::XPath::FunConcat::resultType):
        (WebCore::XPath::FunStartsWith::resultType):
        (WebCore::XPath::FunContains::resultType):
        (WebCore::XPath::FunSubstringBefore::resultType):
        (WebCore::XPath::FunSubstringAfter::resultType):
        (WebCore::XPath::FunSubstring::resultType):
        (WebCore::XPath::FunStringLength::resultType):
        (WebCore::XPath::FunStringLength::FunStringLength):
        (WebCore::XPath::FunNormalizeSpace::resultType):
        (WebCore::XPath::FunNormalizeSpace::FunNormalizeSpace):
        (WebCore::XPath::FunTranslate::resultType):
        (WebCore::XPath::FunBoolean::resultType):
        (WebCore::XPath::FunNot::resultType):
        (WebCore::XPath::FunTrue::resultType):
        (WebCore::XPath::FunFalse::resultType):
        (WebCore::XPath::FunLang::resultType):
        (WebCore::XPath::FunLang::FunLang):
        (WebCore::XPath::FunNumber::resultType):
        (WebCore::XPath::FunNumber::FunNumber):
        (WebCore::XPath::FunSum::resultType):
        (WebCore::XPath::FunFloor::resultType):
        (WebCore::XPath::FunCeiling::resultType):
        (WebCore::XPath::FunRound::resultType):
        (WebCore::XPath::Function::setArguments):
        Set optimization details for the expression. Normally, a function does not introduce context
        node set dependency, but some use context node as default argument, or otherwise use the context.

        * xml/XPathFunctions.h: Tweaked style.

        * xml/XPathPath.cpp:
        (WebCore::XPath::Filter::Filter): A filter is as context node set sensitive as its expression is.
        (WebCore::XPath::LocationPath::LocationPath): A location path can only be context node sensitive,
        and only if the path relative.
        (WebCore::XPath::LocationPath::appendStep): Invoke compile-time Step optimizations.
        (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
        (WebCore::XPath::Path::Path): A path is as context node set sensitive as its filter is.

        * xml/XPathPath.h:
        (WebCore::XPath::Filter::resultType): Result type of a filter is the same as of its expression
        (useful filters return NodeSets, of course).
        (WebCore::XPath::LocationPath::setAbsolute): An absolute location path if context node set
        insensitive.
        (WebCore::XPath::LocationPath::resultType): A path's result is always a node set.
        (WebCore::XPath::Path::resultType): Ditto.

        * xml/XPathPredicate.h:
        (WebCore::XPath::Number::resultType): Return a proper result type.
        (WebCore::XPath::StringExpression::resultType): Ditto.
        (WebCore::XPath::Negative::resultType): Ditto.
        (WebCore::XPath::NumericOp::resultType): Ditto.
        (WebCore::XPath::EqTestOp::resultType): Ditto.
        (WebCore::XPath::LogicalOp::resultType): Ditto.
        (WebCore::XPath::Union::resultType): Ditto.
        (WebCore::XPath::Predicate::isContextPositionSensitive): A predicate can be context position
        sensitive even if its expression is not, because e.g. [5] is a shortcut for [position()=5].
        (WebCore::XPath::Predicate::isContextSizeSensitive): This matches expression result.

        * xml/XPathStep.h:
        (WebCore::XPath::Step::NodeTest::Kind): Removed unused ElementNodeTest, which was previously
        borrowed from XPath 2.0 to express some optimizations.
        (WebCore::XPath::Step::NodeTest::mergedPredicates): To avoid building a huge node set and
        filtering it with predicates, we now try to apply predicates while enumerating an axis.
        (WebCore::XPath::Step::nodeTest): Expose m_nodeTest.

        * xml/XPathStep.cpp:
        (WebCore::XPath::Step::~Step): The step owns NodeTest merged predicates, so it is still
        possible to copy NodeTests.
        (WebCore::XPath::Step::optimize): Merge predicates into NodeTest if possible.
        (WebCore::XPath::optimizeStepPair): Optimize some expressions containing "//".
        (WebCore::XPath::Step::predicatesAreContextListInsensitive): The above optimization is only
        possible if there are no context sensitive predicates for "//".
        (WebCore::XPath::Step::evaluate): Track context position for the first merged predicate.
        (WebCore::XPath::nodeMatchesBasicTest): Check whether the node matches node test, ignoring
        merged predicates.
        (WebCore::XPath::nodeMatches): Additionally check merged predicates, and update position.
        (WebCore::XPath::Step::nodesInAxis): Check merged predicates in optimized attribute code
        path.

        * xml/XPathVariableReference.h: (WebCore::XPath::VariableReference::resultType): Variable
        references are not used with XPathEvaluator, so we'll only need them if we decide to
        reimplement XSLT. The type of variable reference is not known at compile time.

2009-05-31  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Dan Bernstein.

        Remove unused JSEventTargetBase.h

        * GNUmakefile.am:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSEventTargetBase.h: Removed.

2009-05-31  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Part of https://bugs.webkit.org/show_bug.cgi?id=26100
        Add missing event handler properties to the DOMWindow

        Add missing oncanplay, oncanplaythrough, ondurationchange, onemptied,
        onended, onloadeddata, onloadedmetadata, onpause, onplay, onplaying,
        onratechange, onseeked, onseeking, ontimeupdate, onvolumechange,
        onwaiting, onloadstart, onprogress, onstalled, onsuspend, ondrag,
        ondragend, ondragenter, ondragleave, ondragover, ondragstart and 
        ondrop event handlers to the DOMWindow.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::ondrag):
        (WebCore::DOMWindow::setOndrag):
        (WebCore::DOMWindow::ondragend):
        (WebCore::DOMWindow::setOndragend):
        (WebCore::DOMWindow::ondragenter):
        (WebCore::DOMWindow::setOndragenter):
        (WebCore::DOMWindow::ondragleave):
        (WebCore::DOMWindow::setOndragleave):
        (WebCore::DOMWindow::ondragover):
        (WebCore::DOMWindow::setOndragover):
        (WebCore::DOMWindow::ondragstart):
        (WebCore::DOMWindow::setOndragstart):
        (WebCore::DOMWindow::ondrop):
        (WebCore::DOMWindow::setOndrop):
        (WebCore::DOMWindow::oncanplay):
        (WebCore::DOMWindow::setOncanplay):
        (WebCore::DOMWindow::oncanplaythrough):
        (WebCore::DOMWindow::setOncanplaythrough):
        (WebCore::DOMWindow::ondurationchange):
        (WebCore::DOMWindow::setOndurationchange):
        (WebCore::DOMWindow::onemptied):
        (WebCore::DOMWindow::setOnemptied):
        (WebCore::DOMWindow::onended):
        (WebCore::DOMWindow::setOnended):
        (WebCore::DOMWindow::onloadeddata):
        (WebCore::DOMWindow::setOnloadeddata):
        (WebCore::DOMWindow::onloadedmetadata):
        (WebCore::DOMWindow::setOnloadedmetadata):
        (WebCore::DOMWindow::onpause):
        (WebCore::DOMWindow::setOnpause):
        (WebCore::DOMWindow::onplay):
        (WebCore::DOMWindow::setOnplay):
        (WebCore::DOMWindow::onplaying):
        (WebCore::DOMWindow::setOnplaying):
        (WebCore::DOMWindow::onratechange):
        (WebCore::DOMWindow::setOnratechange):
        (WebCore::DOMWindow::onseeked):
        (WebCore::DOMWindow::setOnseeked):
        (WebCore::DOMWindow::onseeking):
        (WebCore::DOMWindow::setOnseeking):
        (WebCore::DOMWindow::ontimeupdate):
        (WebCore::DOMWindow::setOntimeupdate):
        (WebCore::DOMWindow::onvolumechange):
        (WebCore::DOMWindow::setOnvolumechange):
        (WebCore::DOMWindow::onwaiting):
        (WebCore::DOMWindow::setOnwaiting):
        (WebCore::DOMWindow::onloadstart):
        (WebCore::DOMWindow::setOnloadstart):
        (WebCore::DOMWindow::onprogress):
        (WebCore::DOMWindow::setOnprogress):
        (WebCore::DOMWindow::onstalled):
        (WebCore::DOMWindow::setOnstalled):
        (WebCore::DOMWindow::onsuspend):
        (WebCore::DOMWindow::setOnsuspend):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2009-05-31  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Part of https://bugs.webkit.org/show_bug.cgi?id=26100
        Add missing event handler properties to the DOMWindow

        Add missing onstorage event handler to the DOMWindow.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::onstorage):
        (WebCore::DOMWindow::setOnstorage):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2009-05-30  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=26110
        Update online/offline events to match the current spec.
        - Also adds window.ononline and window.onoffline event handler
          properties.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::onoffline):
        (WebCore::DOMWindow::setOnoffline):
        (WebCore::DOMWindow::ononline):
        (WebCore::DOMWindow::setOnonline):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:
        * page/Page.cpp:
        (WebCore::networkStateChanged):

2009-05-31  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        WebKit needs cross-platform filter system
        [https://bugs.webkit.org/show_bug.cgi?id=19991]

        Make use of the new filter system in WebCore for SVG. Deleted Mac bindings
        and replace it by a platform independent code. Calculation of subRegions
        is missing but needed for a first filter effect.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/filters/Filter.h:
        (WebCore::Filter::~Filter):
        (WebCore::Filter::setSourceImage):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::prepareToRenderSVGContent):
        (WebCore::SVGRenderBase::finishRenderSVGContent):
        * svg/FilterBuilder.h:
        (WebCore::FilterBuilder::lastEffect):
        * svg/SVGFEBlendElement.cpp:
        (WebCore::SVGFEBlendElement::SVGFEBlendElement):
        (WebCore::SVGFEBlendElement::build):
        * svg/SVGFEBlendElement.h:
        * svg/SVGFEColorMatrixElement.cpp:
        (WebCore::SVGFEColorMatrixElement::SVGFEColorMatrixElement):
        (WebCore::SVGFEColorMatrixElement::build):
        * svg/SVGFEColorMatrixElement.h:
        * svg/SVGFEComponentTransferElement.cpp:
        (WebCore::SVGFEComponentTransferElement::SVGFEComponentTransferElement):
        (WebCore::SVGFEComponentTransferElement::build):
        * svg/SVGFEComponentTransferElement.h:
        * svg/SVGFECompositeElement.cpp:
        (WebCore::SVGFECompositeElement::SVGFECompositeElement):
        (WebCore::SVGFECompositeElement::build):
        * svg/SVGFECompositeElement.h:
        * svg/SVGFEDiffuseLightingElement.cpp:
        (WebCore::SVGFEDiffuseLightingElement::SVGFEDiffuseLightingElement):
        (WebCore::SVGFEDiffuseLightingElement::build):
        * svg/SVGFEDiffuseLightingElement.h:
        * svg/SVGFEDisplacementMapElement.cpp:
        (WebCore::SVGFEDisplacementMapElement::SVGFEDisplacementMapElement):
        (WebCore::SVGFEDisplacementMapElement::build):
        * svg/SVGFEDisplacementMapElement.h:
        * svg/SVGFEFloodElement.cpp:
        (WebCore::SVGFEFloodElement::SVGFEFloodElement):
        (WebCore::SVGFEFloodElement::build):
        * svg/SVGFEFloodElement.h:
        * svg/SVGFEGaussianBlurElement.cpp:
        (WebCore::SVGFEGaussianBlurElement::SVGFEGaussianBlurElement):
        (WebCore::SVGFEGaussianBlurElement::build):
        * svg/SVGFEGaussianBlurElement.h:
        * svg/SVGFEImageElement.cpp:
        (WebCore::SVGFEImageElement::SVGFEImageElement):
        (WebCore::SVGFEImageElement::notifyFinished):
        (WebCore::SVGFEImageElement::build):
        * svg/SVGFEImageElement.h:
        * svg/SVGFEMergeElement.cpp:
        (WebCore::SVGFEMergeElement::SVGFEMergeElement):
        (WebCore::SVGFEMergeElement::build):
        * svg/SVGFEMergeElement.h:
        * svg/SVGFEOffsetElement.cpp:
        (WebCore::SVGFEOffsetElement::SVGFEOffsetElement):
        (WebCore::SVGFEOffsetElement::build):
        * svg/SVGFEOffsetElement.h:
        * svg/SVGFESpecularLightingElement.cpp:
        (WebCore::SVGFESpecularLightingElement::SVGFESpecularLightingElement):
        (WebCore::SVGFESpecularLightingElement::build):
        * svg/SVGFESpecularLightingElement.h:
        * svg/SVGFETileElement.cpp:
        (WebCore::SVGFETileElement::SVGFETileElement):
        (WebCore::SVGFETileElement::build):
        * svg/SVGFETileElement.h:
        * svg/SVGFETurbulenceElement.cpp:
        (WebCore::SVGFETurbulenceElement::SVGFETurbulenceElement):
        (WebCore::SVGFETurbulenceElement::build):
        * svg/SVGFETurbulenceElement.h:
        * svg/SVGFilterElement.cpp:
        (WebCore::SVGFilterElement::canvasResource):
        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
        (WebCore::SVGFilterPrimitiveStandardAttributes::setStandardAttributes):
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        (WebCore::SVGFilterPrimitiveStandardAttributes::contextElement):
        * svg/graphics/SVGResourceFilter.cpp:
        (WebCore::SVGResourceFilter::SVGResourceFilter):
        (WebCore::SVGResourceFilter::addFilterEffect):
        (WebCore::SVGResourceFilter::filterBBoxForItemBBox):
        (WebCore::SVGResourceFilter::prepareFilter):
        (WebCore::SVGResourceFilter::applyFilter):
        (WebCore::SVGResourceFilter::externalRepresentation):
        * svg/graphics/SVGResourceFilter.h:
        (WebCore::SVGResourceFilter::filterBoundingBox):
        (WebCore::SVGResourceFilter::setFilterBoundingBox):
        (WebCore::SVGResourceFilter::itemBoundingBox):
        (WebCore::SVGResourceFilter::setItemBoundingBox):
        (WebCore::SVGResourceFilter::builder):

2009-05-31  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        WebKit needs cross-platform filter system
        [https://bugs.webkit.org/show_bug.cgi?id=19991]

        Adding 'in1' attribute support for <feFlood>, as specified in SVG 1.1.
        This change helps creating test cases, once filters are activated.

        * svg/SVGFEFloodElement.cpp:
        (WebCore::SVGFEFloodElement::SVGFEFloodElement):
        (WebCore::SVGFEFloodElement::parseMappedAttribute):
        (WebCore::SVGFEFloodElement::build):
        * svg/SVGFEFloodElement.h:
        * svg/SVGFEFloodElement.idl:
        * svg/graphics/filters/SVGFEFlood.cpp:
        (WebCore::FEFlood::FEFlood):
        (WebCore::FEFlood::create):
        * svg/graphics/filters/SVGFEFlood.h:

2009-05-31  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        WebKit needs cross-platform filter system
        [https://bugs.webkit.org/show_bug.cgi?id=19991]

        Replace all occurrences of SVGResourceFilter by Filter. This is the last 
        step for a SVG independent filter system. Every other part of WebCore can
        use the filter system by creating a new Filter object.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/filters/FEBlend.cpp:
        (WebCore::FEBlend::apply):
        * platform/graphics/filters/FEBlend.h:
        * platform/graphics/filters/FEColorMatrix.cpp:
        (WebCore::FEColorMatrix::apply):
        * platform/graphics/filters/FEColorMatrix.h:
        * platform/graphics/filters/FEComponentTransfer.cpp:
        (WebCore::FEComponentTransfer::apply):
        * platform/graphics/filters/FEComponentTransfer.h:
        * platform/graphics/filters/FEComposite.cpp:
        (WebCore::FEComposite::apply):
        * platform/graphics/filters/FEComposite.h:
        * platform/graphics/filters/Filter.h: Added.
        (WebCore::Filter::setSourceImage):
        (WebCore::Filter::sourceImage):
        * platform/graphics/filters/FilterEffect.h:
        * platform/graphics/filters/SourceAlpha.cpp:
        (WebCore::SourceAlpha::apply):
        * platform/graphics/filters/SourceAlpha.h:
        * platform/graphics/filters/SourceGraphic.cpp:
        (WebCore::SourceGraphic::apply):
        * platform/graphics/filters/SourceGraphic.h:
        * svg/Filter.cpp: Removed.
        * svg/Filter.h: Removed.
        * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
        (WebCore::FEConvolveMatrix::apply):
        * svg/graphics/filters/SVGFEConvolveMatrix.h:
        * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
        (WebCore::FEDiffuseLighting::apply):
        * svg/graphics/filters/SVGFEDiffuseLighting.h:
        * svg/graphics/filters/SVGFEDisplacementMap.cpp:
        (WebCore::FEDisplacementMap::apply):
        * svg/graphics/filters/SVGFEDisplacementMap.h:
        * svg/graphics/filters/SVGFEFlood.cpp:
        (WebCore::FEFlood::apply):
        * svg/graphics/filters/SVGFEFlood.h:
        * svg/graphics/filters/SVGFEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::apply):
        * svg/graphics/filters/SVGFEGaussianBlur.h:
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::apply):
        * svg/graphics/filters/SVGFEImage.h:
        * svg/graphics/filters/SVGFEMerge.cpp:
        (WebCore::FEMerge::apply):
        * svg/graphics/filters/SVGFEMerge.h:
        * svg/graphics/filters/SVGFEMorphology.cpp:
        (WebCore::FEMorphology::apply):
        * svg/graphics/filters/SVGFEMorphology.h:
        * svg/graphics/filters/SVGFEOffset.cpp:
        (WebCore::FEOffset::apply):
        * svg/graphics/filters/SVGFEOffset.h:
        * svg/graphics/filters/SVGFESpecularLighting.cpp:
        (WebCore::FESpecularLighting::apply):
        * svg/graphics/filters/SVGFESpecularLighting.h:
        * svg/graphics/filters/SVGFETile.cpp:
        (WebCore::FETile::apply):
        * svg/graphics/filters/SVGFETile.h:
        * svg/graphics/filters/SVGFETurbulence.cpp:
        (WebCore::FETurbulence::apply):
        * svg/graphics/filters/SVGFETurbulence.h:
        * svg/graphics/filters/SVGFilter.cpp: Added.
        (WebCore::SVGFilter::SVGFilter):
        (WebCore::SVGFilter::calculateEffectSubRegion):
        (WebCore::SVGFilter::create):
        * svg/graphics/filters/SVGFilter.h: Added.

2009-05-30  Kevin Ollivier  <kevino@theolliviers.com>

        Build fix for platforms without plugins support.

        * plugins/PluginViewNone.cpp:
        (WebCore::PluginView::userAgentStatic):
        (WebCore::PluginView::getValueStatic):

2009-05-30  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Darin Adler.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=25979

        Fix regression, local WML files won't load anymore, as the mimetype isn't correctly detected.    
        Bug filed at <rdar://problem/6917571> to cover this CFNetwork limitation.

        * platform/network/mac/ResourceHandleMac.mm:
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):

2009-05-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=26091
        Make storage events match the current spec.
        - Storage event listeners are added to the window.
        - Storage events are dispatched to the window.

        Updated existing tests.

        * dom/Document.cpp:
        (WebCore::Document::dispatchWindowEvent):
        * dom/Document.h:
        * dom/Node.cpp:
        * dom/Node.h:
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::parseMappedAttribute):
        * storage/LocalStorageArea.cpp:
        (WebCore::LocalStorageArea::dispatchStorageEvent):
        * storage/SessionStorageArea.cpp:
        (WebCore::SessionStorageArea::dispatchStorageEvent):

2009-05-30  Darin Adler  <darin@apple.com>

        Reviewed by Adele Peterson.

        Bug 26097: REGRESSION (r44283): Tab key doesn't work when focus is on a <select> element

        Test: fast/forms/focus-control-to-page.html

        * dom/SelectElement.h: Made destructor protected. Tweaked a bit.

        * html/HTMLSelectElement.cpp: Removed unneeded includes.
        (WebCore::HTMLSelectElement::remove): Removed unneeded range check of the
        result of optionToListIndex.
        (WebCore::HTMLSelectElement::parseMappedAttribute): Removed code to set the
        unused attribute, m_minwidth.
        (WebCore::HTMLSelectElement::defaultEventHandler): The actual bug fix.
        Call through to the base class defaultEventHandler if the event hasn't
        been handled yet.

        * html/HTMLSelectElement.h: Removed unneeded includes. Made a lot more functions
        private. Removed unused minWidth function and m_minwidth data member.

2009-05-30  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Holger Freyther.

        The two KeyboardCodes.h files are basically identical and the
        qt one is properly #ifdef-ed for different win32 systems. Share
        them between Qt and Gtk implementations.

        * GNUmakefile.am:
        * platform/KeyboardCodes.h: Copied from WebCore/platform/qt/KeyboardCodes.h.
        * platform/gtk/KeyboardCodes.h: Removed.
        * platform/qt/KeyboardCodes.h: Removed.

2009-05-30  Jeremy Orlow  <jorlow@chromium.org>

        Reviewed by Sam Weinig.

        LocalStorage and SessionStorage's implicit setters do not correctly 
        handle null.  The custom JS bindings should convert to strings
        unconditionally and not try to handle null specially.
        https://bugs.webkit.org/show_bug.cgi?id=25970

        Tests: storage/domstorage/localstorage/string-conversion.html
               storage/domstorage/sessionstorage/string-conversion.html

        * bindings/js/JSStorageCustom.cpp:
        (WebCore::JSStorage::customPut):

2009-05-30  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/6935192> REGRESSION (Safari 3-TOT): Scroll
          bars in key window draw as inactive if the WebView is not active

        Test: platform/mac/scrollbars/key-window-not-first-responder.html

        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::paint): Use the window's key state instead
        of the WebView's first responder state to switch between active and
        inactive state.

2009-05-30  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        - fix https://bugs.webkit.org/show_bug.cgi?id=18445
          <rdar://problem/5931174> Assertion failure in CSSGradientValue::image
          with -webkit-gradient as body's background

        Test: fast/backgrounds/body-generated-image-propagated-to-root.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Check if this
        is the root element painting a background layer propagated from the
        body, and if it is, use the body's renderer as the client to
        StyleImage::image().

2009-05-30  Holger Hans Peter Freyther  <zecke@selfish.org>

        Unreviewed build fix for AXObjectCache.

        For !HAVE(ACCESSIBILITY) postNotification was defined twice. Move
        that into the #ifdef.

        * accessibility/AXObjectCache.cpp:

2009-05-29  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=26072

        Add support for the last missing WML element: <select>. This patch adds WMLSelectElement, providing
        the same functionality HTMLSelectElement has. The WML specific features will follow soon.
    
        Add simple testcase covering <select> element rendering: fast/wml/select.wml

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/OptionElement.cpp:
        (WebCore::OptionElement::optionIndex):
        (WebCore::isOptionElement):
        * dom/OptionElement.h:
        * dom/OptionGroupElement.cpp:
        (WebCore::isOptionGroupElement):
        * dom/OptionGroupElement.h:
        * dom/SelectElement.cpp:
        (WebCore::SelectElement::accessKeySetSelectedIndex):
        (WebCore::toSelectElement):
        * dom/SelectElement.h:
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::index):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::accessKeySetSelectedIndex):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::paintItemForeground):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::itemIsEnabled):
        (WebCore::RenderMenuList::itemIsLabel):
        * wml/WMLFormControlElement.cpp:
        (WebCore::WMLFormControlElement::attach):
        (WebCore::WMLFormControlElement::recalcStyle):
        * wml/WMLFormControlElement.h:
        * wml/WMLInputElement.cpp:
        (WebCore::WMLInputElement::attach):
        * wml/WMLOptGroupElement.cpp:
        (WebCore::WMLOptGroupElement::insertBefore):
        (WebCore::WMLOptGroupElement::replaceChild):
        (WebCore::WMLOptGroupElement::removeChild):
        (WebCore::WMLOptGroupElement::appendChild):
        (WebCore::WMLOptGroupElement::removeChildren):
        (WebCore::ownerSelectElement):
        (WebCore::WMLOptGroupElement::accessKeyAction):
        (WebCore::WMLOptGroupElement::childrenChanged):
        (WebCore::WMLOptGroupElement::parseMappedAttribute):
        (WebCore::WMLOptGroupElement::attach):
        (WebCore::WMLOptGroupElement::detach):
        (WebCore::WMLOptGroupElement::recalcSelectOptions):
        * wml/WMLOptionElement.cpp:
        (WebCore::ownerSelectElement):
        (WebCore::WMLOptionElement::accessKeyAction):
        (WebCore::WMLOptionElement::childrenChanged):
        (WebCore::WMLOptionElement::parseMappedAttribute):
        (WebCore::WMLOptionElement::attach):
        (WebCore::WMLOptionElement::detach):
        (WebCore::WMLOptionElement::insertedIntoDocument):
        * wml/WMLSelectElement.cpp: Added.
        (WebCore::WMLSelectElement::WMLSelectElement):
        (WebCore::WMLSelectElement::~WMLSelectElement):
        (WebCore::WMLSelectElement::formControlType):
        (WebCore::WMLSelectElement::isKeyboardFocusable):
        (WebCore::WMLSelectElement::isMouseFocusable):
        (WebCore::WMLSelectElement::selectAll):
        (WebCore::WMLSelectElement::recalcStyle):
        (WebCore::WMLSelectElement::dispatchFocusEvent):
        (WebCore::WMLSelectElement::dispatchBlurEvent):
        (WebCore::WMLSelectElement::selectedIndex):
        (WebCore::WMLSelectElement::setSelectedIndex):
        (WebCore::WMLSelectElement::saveFormControlState):
        (WebCore::WMLSelectElement::restoreFormControlState):
        (WebCore::WMLSelectElement::childrenChanged):
        (WebCore::WMLSelectElement::parseMappedAttribute):
        (WebCore::WMLSelectElement::createRenderer):
        (WebCore::WMLSelectElement::appendFormData):
        (WebCore::WMLSelectElement::optionToListIndex):
        (WebCore::WMLSelectElement::listToOptionIndex):
        (WebCore::WMLSelectElement::reset):
        (WebCore::WMLSelectElement::defaultEventHandler):
        (WebCore::WMLSelectElement::accessKeyAction):
        (WebCore::WMLSelectElement::setActiveSelectionAnchorIndex):
        (WebCore::WMLSelectElement::setActiveSelectionEndIndex):
        (WebCore::WMLSelectElement::updateListBoxSelection):
        (WebCore::WMLSelectElement::listBoxOnChange):
        (WebCore::WMLSelectElement::menuListOnChange):
        (WebCore::WMLSelectElement::activeSelectionStartListIndex):
        (WebCore::WMLSelectElement::activeSelectionEndListIndex):
        (WebCore::WMLSelectElement::accessKeySetSelectedIndex):
        (WebCore::WMLSelectElement::setRecalcListItems):
        (WebCore::WMLSelectElement::scrollToSelection):
        (WebCore::WMLSelectElement::insertedIntoTree):
        * wml/WMLSelectElement.h: Added.
        (WebCore::WMLSelectElement::canSelectAll):
        (WebCore::WMLSelectElement::canStartSelection):
        (WebCore::WMLSelectElement::size):
        (WebCore::WMLSelectElement::multiple):
        (WebCore::WMLSelectElement::listItems):
        * wml/WMLTagNames.in:

2009-05-29  David Levin  <levin@chromium.org>

        Reviewed by NOBODY (build fix for windows).

        http://trac.webkit.org/changeset/44279 left in a "Vector<WCHAR> localeNameBuf"
        that it was trying to replace.  Resulting in this variable being defined twice (and
        the second time incorrectly).

        * platform/win/Language.cpp:
        (WebCore::localeInfo):

2009-05-29  Takeshi Yoshino  <tyoshino@google.com>

        Reviewed by Darin Alder.

        https://bugs.webkit.org/show_bug.cgi?id=26018

        Fix behavior of the Element View of the Web Inspector for double
        clicking the element outline tree.

        Double clicking the element outline tree should
        1) on attribute: enter attribute editing mode
        2) on text: enter text editing mode
        3) otherwise: change root node to the parent element of double clicked
           element.

        Now, 3) is broken. For example, clicking <html> clears the element
        outline view.

        rootDOMNode should be updated to this.representedObject.parentNode, not
        this.parent.representedObject which is parent inside the element
        outline tree itself.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype.ondblclick):

2009-05-29  David Moore  <davemoore@google.com>

        Reviewed by Darin Alder.

        https://bugs.webkit.org/show_bug.cgi?id=26001
        Change many of the uses of String::adopt() to String::createUninitialized().
        This allows those strings to use an inlined buffer for their characters.

        * dom/StyleElement.cpp:
        Loop over nodes to precompute length of string and then
        write the characters into the allocated inline buffer
        (WebCore::StyleElement::process):
        * dom/Text.cpp:
        Loop over nodes to precompute length of string and then
        write the characters into the allocated inline buffer
        (WebCore::Text::wholeText):
        (WebCore::Text::rendererIsNeeded):
        (WebCore::Text::createRenderer):
        (WebCore::Text::createWithLengthLimit):
        (WebCore::Text::formatForDebugger):
        * platform/text/String.cpp:
        (WebCore::String::append):
        (WebCore::String::insert):
        (WebCore::String::truncate):
        (WebCore::String::remove):
        * platform/text/StringBuilder.cpp:
        (WebCore::StringBuilder::toString):
        * platform/text/StringImpl.cpp:
        (WebCore::StringImpl::lower):
        (WebCore::StringImpl::upper):
        (WebCore::StringImpl::secure):
        (WebCore::StringImpl::foldCase):
        (WebCore::StringImpl::replace):
        * platform/text/TextCodecLatin1.cpp:
        (WebCore::TextCodecLatin1::decode):
        * platform/text/TextCodecUserDefined.cpp:
        (WebCore::TextCodecUserDefined::decode):
        * platform/win/Language.cpp:
        (WebCore::localeInfo):

2009-05-29  Takeshi Yoshino  <tyoshino@google.com>

        Reviewed by Darin Alder.

        Bug 25911: Apply href in base elements to anchors shown on the source viewer
        https://bugs.webkit.org/show_bug.cgi?id=25911

        In rendering HTML sources, parse base elements to apply the base URI to
        anchors shown on the source viewer.

        This issue was originally reported to the Chromium issue tracker.
        http://code.google.com/p/chromium/issues/detail?id=2418

        Test: fast/frames/viewsource-link-on-href-value.html

        * html/HTMLViewSourceDocument.cpp:
        (WebCore::HTMLViewSourceDocument::addViewSourceToken):

2009-05-29  Rob Buis  <rwlbuis@gmail.com>

        Reviewed by David Hyatt.

        https://bugs.webkit.org/show_bug.cgi?id=22429
        document.styleSheets collection ignores media=presentation

        Ensure that stylesheets though <link> show up in document.styleSheets regardless of media attribute.

        Test: fast/css/sheet-collection-link.html

        * html/HTMLLinkElement.cpp:
        (WebCore::HTMLLinkElement::process):

2009-05-29  Jian Li  <jianli@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=26069
        Fix a crash in custom V8 bindings code for XMLHttpRequest.

        Test: fast/xmlhttprequest/xmlhttprequest-open-after-iframe-onload-remove-self.html

        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::CALLBACK_FUNC_DECL):

2009-05-29  David Levin  <levin@chromium.org>

        Reviewed by Darin Adler.

        Bug 26074: SQLTransaction::executeSQL does an unnecessary call to String::copy.
        https://bugs.webkit.org/show_bug.cgi?id=26074

        The constructor for SQLStatement already does a copy for this string.

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::executeSQL):

2009-05-29  Darin Adler  <darin@apple.com>

        Fix build; the new Cairo code compiled on Windows only.

        * platform/graphics/gtk/FontPlatformData.h: Added syntheticBold
        and syntheticOblique functions as in the Windows version to make it
        easier to use this cross-platform. Later we can make data members
        private as in the Windows version.
        * platform/graphics/mac/FontPlatformData.h: Ditto.

2009-05-29  Alexander Macdonald  <alexmac@adobe.com>

        Reviewed by Darin Adler.

        Added support for synthetic bold/oblique font rendering
        on platforms that use cairo.

        * platform/graphics/SimpleFontData.h:
        * platform/graphics/cairo/FontCairo.cpp:
        (WebCore::Font::drawGlyphs):
        * platform/graphics/gtk/SimpleFontDataGtk.cpp:
        (WebCore::SimpleFontData::platformInit):
        * platform/graphics/gtk/SimpleFontDataPango.cpp:
        (WebCore::SimpleFontData::platformInit):
        * platform/graphics/win/SimpleFontDataCairoWin.cpp:
        (WebCore::SimpleFontData::platformInit):

2009-05-29  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Bug 26024: AX: possible to fail assertion because AXPostNotification calls accessibilityIsIgnored
        https://bugs.webkit.org/show_bug.cgi?id=26024

        AX notifications are posted after a one shot timer so that notifications are not performed mid-layout.
        Consolidated postNotification and postNotificationToElement into one method.

        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::AXObjectCache):
        (WebCore::AXObjectCache::notificationPostTimerFired):
        (WebCore::AXObjectCache::postNotification):
        (WebCore::AXObjectCache::selectedChildrenChanged):
        * accessibility/AXObjectCache.h:
        (WebCore::AXObjectCache::postNotification):
        (WebCore::AXObjectCache::postPlatformNotification):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::handleActiveDescendantChanged):
        * accessibility/chromium/AXObjectCacheChromium.cpp:
        (WebCore::AXObjectCache::postPlatformNotification):
        * accessibility/gtk/AXObjectCacheAtk.cpp:
        (WebCore::AXObjectCache::postPlatformNotification):
        * accessibility/mac/AXObjectCacheMac.mm:
        (WebCore::AXObjectCache::postPlatformNotification):
        * accessibility/win/AXObjectCacheWin.cpp:
        (WebCore::AXObjectCache::postPlatformNotification):
        * dom/Document.cpp:
        (WebCore::Document::implicitClose):
        * editing/Editor.cpp:
        (WebCore::Editor::respondToChangedContents):
        * editing/mac/SelectionControllerMac.mm:
        (WebCore::SelectionController::notifyAccessibilityForSelectionChange):
        * page/FrameView.cpp:
        (WebCore::FrameView::layout):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::setInnerTextValue):

2009-05-29  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Adam Roben.

        Build fix for Windows Cairo target.
        https://bugs.webkit.org/show_bug.cgi?id=25972

        Compiler mistakenly selects SMILTime min/max instead of STL version,
        resulting in a build error.  This change makes the meaning of the
        min/max explicit and avoids the problem.

        * html/TimeRanges.h:
        (WebCore::TimeRanges::Range::unionWithOverlappingOrContiguousRange):

2009-05-29  Gustavo Noronha Silva  <gns@gnome.org>

        Reviewed by Jan Alonzo.

        Make SoupMessage a member of ResourceRequest, instead of creating
        it in startHttp. Implement updating of ResourceRequest from
        SoupMessage, and vice versa.

        * GNUmakefile.am:
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::~ResourceHandle):
        (WebCore::gotHeadersCallback):
        (WebCore::ResourceHandle::startHttp):
        * platform/network/soup/ResourceRequest.h:
        (WebCore::ResourceRequest::ResourceRequest):
        (WebCore::ResourceRequest::~ResourceRequest):
        * platform/network/soup/ResourceRequestSoup.cpp: Added.
        (WTF::SoupURI):
        (WebCore::ResourceRequest::soupMessage):
        (WebCore::ResourceRequest::ResourceRequest):
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        (WebCore::ResourceRequest::doUpdatePlatformRequest):

2009-05-28  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=26068
        V8: Remove the remaining b8::Locker usage in worker code.
        This completes the fix for https://bugs.webkit.org/show_bug.cgi?id=25944,
        since the patches for enabling timers and that bug have "crossed in the queue".
        Existing LayoutTests/fast/workers/worker-timeout.html covers this fix (will start work in Chromium).

        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):

2009-05-28  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        Simplify the Accept-Encoding header we are sending out, for it
        seems some servers do not enjoy parsing the full, explicit
        version.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::startHttp):

2009-05-28  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Added a new build flag --filters. This replaces the old --svg-filters and enables
        other parts of WebKit to use some basic filters of platform/graphics/filters if needed.
        This patch also fixes a bug in dom/DOMImplementation.cpp where we used SVG_FILTER. This flag
        doesn't exist and was replaced by FILTERS as well as all SVG_FILTERS occurrences.
        Filters are not working yet. This patch is just a preperation. Filters are deactivated by
        default. 

        * Configurations/FeatureDefines.xcconfig:
        * DerivedSources.make:
        * GNUmakefile.am:
        * WebCore.pro:
        * bindings/objc/DOM.mm:
        (WebCore::createElementClassMap):
        * dom/DOMImplementation.cpp:
        (WebCore::isSVG10Feature):
        (WebCore::isSVG11Feature):
        * page/DOMWindow.idl:
        * platform/graphics/filters/FEBlend.cpp:
        * platform/graphics/filters/FEBlend.h:
        * platform/graphics/filters/FEColorMatrix.cpp:
        * platform/graphics/filters/FEColorMatrix.h:
        * platform/graphics/filters/FEComponentTransfer.cpp:
        * platform/graphics/filters/FEComponentTransfer.h:
        * platform/graphics/filters/FEComposite.cpp:
        * platform/graphics/filters/FEComposite.h:
        * platform/graphics/filters/FilterEffect.cpp:
        * platform/graphics/filters/FilterEffect.h:
        * platform/graphics/filters/SourceAlpha.cpp:
        * platform/graphics/filters/SourceAlpha.h:
        * platform/graphics/filters/SourceGraphic.cpp:
        * platform/graphics/filters/SourceGraphic.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::selfWillPaint):
        * rendering/RenderSVGModelObject.cpp:
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::selfWillPaint):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::prepareToRenderSVGContent):
        (WebCore::SVGRenderBase::finishRenderSVGContent):
        (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
        * svg/Filter.cpp:
        * svg/Filter.h:
        * svg/FilterBuilder.cpp:
        * svg/FilterBuilder.h:
        * svg/SVGComponentTransferFunctionElement.cpp:
        * svg/SVGComponentTransferFunctionElement.h:
        * svg/SVGComponentTransferFunctionElement.idl:
        * svg/SVGFEBlendElement.cpp:
        * svg/SVGFEBlendElement.h:
        * svg/SVGFEBlendElement.idl:
        * svg/SVGFEColorMatrixElement.cpp:
        * svg/SVGFEColorMatrixElement.h:
        * svg/SVGFEColorMatrixElement.idl:
        * svg/SVGFEComponentTransferElement.cpp:
        * svg/SVGFEComponentTransferElement.h:
        * svg/SVGFEComponentTransferElement.idl:
        * svg/SVGFECompositeElement.cpp:
        * svg/SVGFECompositeElement.h:
        * svg/SVGFECompositeElement.idl:
        * svg/SVGFEDiffuseLightingElement.cpp:
        * svg/SVGFEDiffuseLightingElement.h:
        * svg/SVGFEDiffuseLightingElement.idl:
        * svg/SVGFEDisplacementMapElement.cpp:
        * svg/SVGFEDisplacementMapElement.h:
        * svg/SVGFEDisplacementMapElement.idl:
        * svg/SVGFEDistantLightElement.cpp:
        * svg/SVGFEDistantLightElement.h:
        * svg/SVGFEDistantLightElement.idl:
        * svg/SVGFEFloodElement.cpp:
        * svg/SVGFEFloodElement.h:
        * svg/SVGFEFloodElement.idl:
        * svg/SVGFEFuncAElement.cpp:
        * svg/SVGFEFuncAElement.h:
        * svg/SVGFEFuncAElement.idl:
        * svg/SVGFEFuncBElement.cpp:
        * svg/SVGFEFuncBElement.h:
        * svg/SVGFEFuncBElement.idl:
        * svg/SVGFEFuncGElement.cpp:
        * svg/SVGFEFuncGElement.h:
        * svg/SVGFEFuncGElement.idl:
        * svg/SVGFEFuncRElement.cpp:
        * svg/SVGFEFuncRElement.h:
        * svg/SVGFEFuncRElement.idl:
        * svg/SVGFEGaussianBlurElement.cpp:
        * svg/SVGFEGaussianBlurElement.h:
        * svg/SVGFEGaussianBlurElement.idl:
        * svg/SVGFEImageElement.cpp:
        * svg/SVGFEImageElement.h:
        * svg/SVGFEImageElement.idl:
        * svg/SVGFELightElement.cpp:
        * svg/SVGFELightElement.h:
        * svg/SVGFEMergeElement.cpp:
        * svg/SVGFEMergeElement.h:
        * svg/SVGFEMergeElement.idl:
        * svg/SVGFEMergeNodeElement.cpp:
        * svg/SVGFEMergeNodeElement.h:
        * svg/SVGFEMergeNodeElement.idl:
        * svg/SVGFEOffsetElement.cpp:
        * svg/SVGFEOffsetElement.h:
        * svg/SVGFEOffsetElement.idl:
        * svg/SVGFEPointLightElement.cpp:
        * svg/SVGFEPointLightElement.h:
        * svg/SVGFEPointLightElement.idl:
        * svg/SVGFESpecularLightingElement.cpp:
        * svg/SVGFESpecularLightingElement.h:
        * svg/SVGFESpecularLightingElement.idl:
        * svg/SVGFESpotLightElement.cpp:
        * svg/SVGFESpotLightElement.h:
        * svg/SVGFESpotLightElement.idl:
        * svg/SVGFETileElement.cpp:
        * svg/SVGFETileElement.h:
        * svg/SVGFETileElement.idl:
        * svg/SVGFETurbulenceElement.cpp:
        * svg/SVGFETurbulenceElement.h:
        * svg/SVGFETurbulenceElement.idl:
        * svg/SVGFilterElement.cpp:
        * svg/SVGFilterElement.h:
        * svg/SVGFilterElement.idl:
        * svg/SVGFilterPrimitiveStandardAttributes.cpp:
        * svg/SVGFilterPrimitiveStandardAttributes.h:
        * svg/graphics/SVGResourceFilter.cpp:
        * svg/graphics/SVGResourceFilter.h:
        * svg/graphics/cairo/SVGResourceFilterCairo.cpp:
        * svg/graphics/cg/SVGResourceFilterCg.cpp:
        * svg/graphics/cg/SVGResourceFilterCg.mm:
        * svg/graphics/filters/SVGDistantLightSource.h:
        * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
        * svg/graphics/filters/SVGFEConvolveMatrix.h:
        * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
        * svg/graphics/filters/SVGFEDiffuseLighting.h:
        * svg/graphics/filters/SVGFEDisplacementMap.cpp:
        * svg/graphics/filters/SVGFEDisplacementMap.h:
        * svg/graphics/filters/SVGFEFlood.cpp:
        * svg/graphics/filters/SVGFEFlood.h:
        * svg/graphics/filters/SVGFEGaussianBlur.cpp:
        * svg/graphics/filters/SVGFEGaussianBlur.h:
        * svg/graphics/filters/SVGFEImage.cpp:
        * svg/graphics/filters/SVGFEImage.h:
        * svg/graphics/filters/SVGFEMerge.cpp:
        * svg/graphics/filters/SVGFEMerge.h:
        * svg/graphics/filters/SVGFEMorphology.cpp:
        * svg/graphics/filters/SVGFEMorphology.h:
        * svg/graphics/filters/SVGFEOffset.cpp:
        * svg/graphics/filters/SVGFEOffset.h:
        * svg/graphics/filters/SVGFESpecularLighting.cpp:
        * svg/graphics/filters/SVGFESpecularLighting.h:
        * svg/graphics/filters/SVGFETile.cpp:
        * svg/graphics/filters/SVGFETile.h:
        * svg/graphics/filters/SVGFETurbulence.cpp:
        * svg/graphics/filters/SVGFETurbulence.h:
        * svg/graphics/filters/SVGFilterEffect.cpp:
        * svg/graphics/filters/SVGFilterEffect.h:
        * svg/graphics/filters/SVGLightSource.cpp:
        * svg/graphics/filters/SVGLightSource.h:
        * svg/graphics/filters/SVGPointLightSource.h:
        * svg/graphics/filters/SVGSpotLightSource.h:
        * svg/graphics/filters/cg/SVGFEHelpersCg.h:
        * svg/graphics/filters/cg/SVGFEHelpersCg.mm:
        * svg/graphics/filters/cg/SVGFilterEffectCg.mm:
        * svg/graphics/filters/cg/WKArithmeticFilter.h:
        * svg/graphics/filters/cg/WKArithmeticFilter.m:
        * svg/graphics/filters/cg/WKComponentMergeFilter.h:
        * svg/graphics/filters/cg/WKComponentMergeFilter.m:
        * svg/graphics/filters/cg/WKDiffuseLightingFilter.h:
        * svg/graphics/filters/cg/WKDiffuseLightingFilter.m:
        * svg/graphics/filters/cg/WKDiscreteTransferFilter.h:
        * svg/graphics/filters/cg/WKDiscreteTransferFilter.m:
        * svg/graphics/filters/cg/WKDisplacementMapFilter.h:
        * svg/graphics/filters/cg/WKDisplacementMapFilter.m:
        * svg/graphics/filters/cg/WKDistantLightFilter.h:
        * svg/graphics/filters/cg/WKDistantLightFilter.m:
        * svg/graphics/filters/cg/WKGammaTransferFilter.h:
        * svg/graphics/filters/cg/WKGammaTransferFilter.m:
        * svg/graphics/filters/cg/WKIdentityTransferFilter.h:
        * svg/graphics/filters/cg/WKIdentityTransferFilter.m:
        * svg/graphics/filters/cg/WKLinearTransferFilter.h:
        * svg/graphics/filters/cg/WKLinearTransferFilter.m:
        * svg/graphics/filters/cg/WKNormalMapFilter.h:
        * svg/graphics/filters/cg/WKNormalMapFilter.m:
        * svg/graphics/filters/cg/WKPointLightFilter.h:
        * svg/graphics/filters/cg/WKPointLightFilter.m:
        * svg/graphics/filters/cg/WKSpecularLightingFilter.h:
        * svg/graphics/filters/cg/WKSpecularLightingFilter.m:
        * svg/graphics/filters/cg/WKSpotLightFilter.h:
        * svg/graphics/filters/cg/WKSpotLightFilter.m:
        * svg/graphics/filters/cg/WKTableTransferFilter.h:
        * svg/graphics/filters/cg/WKTableTransferFilter.m:
        * svg/graphics/mac/SVGResourceFilterPlatformDataMac.h:
        * svg/graphics/mac/SVGResourceFilterPlatformDataMac.mm:
        * svg/graphics/qt/SVGResourceFilterQt.cpp:
        * svg/graphics/skia/SVGResourceFilterSkia.cpp:
        * svg/svgtags.in:

2009-05-28  Brett Wilson  <brettw@chromium.org>

        Unreviewed, build fix.

        https://bugs.webkit.org/show_bug.cgi?id=26067

        Add casts for scale function to make more explicit what is happening
        and fix a compiler warning.

        * platform/graphics/IntSize.h:
        (WebCore::IntSize::scale):

2009-05-28  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Remove the returnValueSlot concept from JSDOMWindowBase. Now that windows
        are not cleared on navigation it is no longer necessary.

        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::JSDOMWindowBaseData::JSDOMWindowBaseData):
        (WebCore::JSDOMWindowBase::willRemoveFromWindowShell):
        * bindings/js/JSDOMWindowBase.h:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::showModalDialog):

2009-05-19  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo and Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25415
        [GTK][ATK] Please implement support for get_text_at_offset

        Implement atk_text_get_text_{at,after,before}_offset.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-05-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Rubber-stamped by Darin Adler.

        Remove unnecessary destructor from InputElementData/OptionElementData.

        * dom/InputElement.cpp:
        * dom/InputElement.h:
        * dom/OptionElement.cpp:
        * dom/OptionElement.h:

2009-05-28  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Darin Adler.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=26062

        Refactor code from all virtual methods in HTMLSelectElement (that are also needed for WMLSelectElement)
        in the recently introduced SelectElement abstract base class. Follow the same design sheme that InputElement uses.

        A follow-up patch can now easily add WMLSelectElement.

        * dom/OptionElement.h:
        * dom/SelectElement.cpp:
        (WebCore::SelectElement::selectAll):
        (WebCore::SelectElement::saveLastSelection):
        (WebCore::isOptionElement):
        (WebCore::isOptionGroupElement):
        (WebCore::SelectElement::nextSelectableListIndex):
        (WebCore::SelectElement::previousSelectableListIndex):
        (WebCore::SelectElement::setActiveSelectionAnchorIndex):
        (WebCore::SelectElement::setActiveSelectionEndIndex):
        (WebCore::SelectElement::updateListBoxSelection):
        (WebCore::SelectElement::listBoxOnChange):
        (WebCore::SelectElement::menuListOnChange):
        (WebCore::SelectElement::scrollToSelection):
        (WebCore::SelectElement::recalcStyle):
        (WebCore::SelectElement::setRecalcListItems):
        (WebCore::SelectElement::recalcListItems):
        (WebCore::SelectElement::selectedIndex):
        (WebCore::SelectElement::setSelectedIndex):
        (WebCore::SelectElement::optionToListIndex):
        (WebCore::SelectElement::listToOptionIndex):
        (WebCore::SelectElement::dispatchFocusEvent):
        (WebCore::SelectElement::dispatchBlurEvent):
        (WebCore::SelectElement::deselectItems):
        (WebCore::SelectElement::saveFormControlState):
        (WebCore::SelectElement::restoreFormControlState):
        (WebCore::SelectElement::parseMultipleAttribute):
        (WebCore::SelectElement::appendFormData):
        (WebCore::SelectElement::reset):
        (WebCore::SelectElement::menuListDefaultEventHandler):
        (WebCore::SelectElement::listBoxDefaultEventHandler):
        (WebCore::SelectElement::defaultEventHandler):
        (WebCore::SelectElement::lastSelectedListIndex):
        (WebCore::stripLeadingWhiteSpace):
        (WebCore::SelectElement::typeAheadFind):
        (WebCore::SelectElement::insertedIntoTree):
        (WebCore::SelectElementData::SelectElementData):
        (WebCore::SelectElementData::checkListItems):
        (WebCore::SelectElementData::listItems):
        * dom/SelectElement.h:
        (WebCore::SelectElementData::multiple):
        (WebCore::SelectElementData::setMultiple):
        (WebCore::SelectElementData::size):
        (WebCore::SelectElementData::setSize):
        (WebCore::SelectElementData::usesMenuList):
        (WebCore::SelectElementData::lastOnChangeIndex):
        (WebCore::SelectElementData::setLastOnChangeIndex):
        (WebCore::SelectElementData::lastOnChangeSelection):
        (WebCore::SelectElementData::activeSelectionState):
        (WebCore::SelectElementData::setActiveSelectionState):
        (WebCore::SelectElementData::activeSelectionAnchorIndex):
        (WebCore::SelectElementData::setActiveSelectionAnchorIndex):
        (WebCore::SelectElementData::activeSelectionEndIndex):
        (WebCore::SelectElementData::setActiveSelectionEndIndex):
        (WebCore::SelectElementData::cachedStateForActiveSelection):
        (WebCore::SelectElementData::shouldRecalcListItems):
        (WebCore::SelectElementData::setShouldRecalcListItems):
        (WebCore::SelectElementData::rawListItems):
        (WebCore::SelectElementData::repeatingChar):
        (WebCore::SelectElementData::setRepeatingChar):
        (WebCore::SelectElementData::lastCharTime):
        (WebCore::SelectElementData::setLastCharTime):
        (WebCore::SelectElementData::typedString):
        (WebCore::SelectElementData::setTypedString):
        * html/HTMLOptionElement.h:
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::HTMLSelectElement):
        (WebCore::HTMLSelectElement::recalcStyle):
        (WebCore::HTMLSelectElement::formControlType):
        (WebCore::HTMLSelectElement::selectedIndex):
        (WebCore::HTMLSelectElement::deselectItems):
        (WebCore::HTMLSelectElement::setSelectedIndex):
        (WebCore::HTMLSelectElement::activeSelectionStartListIndex):
        (WebCore::HTMLSelectElement::activeSelectionEndListIndex):
        (WebCore::HTMLSelectElement::saveFormControlState):
        (WebCore::HTMLSelectElement::restoreFormControlState):
        (WebCore::HTMLSelectElement::parseMappedAttribute):
        (WebCore::HTMLSelectElement::canSelectAll):
        (WebCore::HTMLSelectElement::selectAll):
        (WebCore::HTMLSelectElement::createRenderer):
        (WebCore::HTMLSelectElement::appendFormData):
        (WebCore::HTMLSelectElement::optionToListIndex):
        (WebCore::HTMLSelectElement::listToOptionIndex):
        (WebCore::HTMLSelectElement::recalcListItems):
        (WebCore::HTMLSelectElement::setRecalcListItems):
        (WebCore::HTMLSelectElement::reset):
        (WebCore::HTMLSelectElement::dispatchFocusEvent):
        (WebCore::HTMLSelectElement::dispatchBlurEvent):
        (WebCore::HTMLSelectElement::defaultEventHandler):
        (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
        (WebCore::HTMLSelectElement::setActiveSelectionEndIndex):
        (WebCore::HTMLSelectElement::updateListBoxSelection):
        (WebCore::HTMLSelectElement::menuListOnChange):
        (WebCore::HTMLSelectElement::listBoxOnChange):
        (WebCore::HTMLSelectElement::saveLastSelection):
        (WebCore::HTMLSelectElement::setOption):
        (WebCore::HTMLSelectElement::scrollToSelection):
        (WebCore::HTMLSelectElement::insertedIntoTree):
        * html/HTMLSelectElement.h:
        (WebCore::HTMLSelectElement::size):
        (WebCore::HTMLSelectElement::multiple):
        (WebCore::HTMLSelectElement::listItems):
        * wml/WMLOptionElement.cpp:
        (WebCore::WMLOptionElement::text):
        * wml/WMLOptionElement.h:


        * dom/OptionElement.h:
        * dom/SelectElement.cpp:
        (WebCore::SelectElement::selectAll):
        (WebCore::SelectElement::saveLastSelection):
        (WebCore::isOptionElement):
        (WebCore::isOptionGroupElement):
        (WebCore::SelectElement::nextSelectableListIndex):
        (WebCore::SelectElement::previousSelectableListIndex):
        (WebCore::SelectElement::setActiveSelectionAnchorIndex):
        (WebCore::SelectElement::setActiveSelectionEndIndex):
        (WebCore::SelectElement::updateListBoxSelection):
        (WebCore::SelectElement::listBoxOnChange):
        (WebCore::SelectElement::menuListOnChange):
        (WebCore::SelectElement::scrollToSelection):
        (WebCore::SelectElement::recalcStyle):
        (WebCore::SelectElement::setRecalcListItems):
        (WebCore::SelectElement::recalcListItems):
        (WebCore::SelectElement::selectedIndex):
        (WebCore::SelectElement::setSelectedIndex):
        (WebCore::SelectElement::optionToListIndex):
        (WebCore::SelectElement::listToOptionIndex):
        (WebCore::SelectElement::dispatchFocusEvent):
        (WebCore::SelectElement::dispatchBlurEvent):
        (WebCore::SelectElement::deselectItems):
        (WebCore::SelectElement::saveFormControlState):
        (WebCore::SelectElement::restoreFormControlState):
        (WebCore::SelectElement::parseMultipleAttribute):
        (WebCore::SelectElement::appendFormData):
        (WebCore::SelectElement::reset):
        (WebCore::SelectElement::menuListDefaultEventHandler):
        (WebCore::SelectElement::listBoxDefaultEventHandler):
        (WebCore::SelectElement::defaultEventHandler):
        (WebCore::SelectElement::lastSelectedListIndex):
        (WebCore::stripLeadingWhiteSpace):
        (WebCore::SelectElement::typeAheadFind):
        (WebCore::SelectElement::insertedIntoTree):
        (WebCore::SelectElementData::SelectElementData):
        (WebCore::SelectElementData::~SelectElementData):
        (WebCore::SelectElementData::checkListItems):
        (WebCore::SelectElementData::listItems):
        * dom/SelectElement.h:
        (WebCore::SelectElementData::multiple):
        (WebCore::SelectElementData::setMultiple):
        (WebCore::SelectElementData::size):
        (WebCore::SelectElementData::setSize):
        (WebCore::SelectElementData::usesMenuList):
        (WebCore::SelectElementData::lastOnChangeIndex):
        (WebCore::SelectElementData::setLastOnChangeIndex):
        (WebCore::SelectElementData::lastOnChangeSelection):
        (WebCore::SelectElementData::activeSelectionState):
        (WebCore::SelectElementData::setActiveSelectionState):
        (WebCore::SelectElementData::activeSelectionAnchorIndex):
        (WebCore::SelectElementData::setActiveSelectionAnchorIndex):
        (WebCore::SelectElementData::activeSelectionEndIndex):
        (WebCore::SelectElementData::setActiveSelectionEndIndex):
        (WebCore::SelectElementData::cachedStateForActiveSelection):
        (WebCore::SelectElementData::shouldRecalcListItems):
        (WebCore::SelectElementData::setShouldRecalcListItems):
        (WebCore::SelectElementData::rawListItems):
        (WebCore::SelectElementData::repeatingChar):
        (WebCore::SelectElementData::setRepeatingChar):
        (WebCore::SelectElementData::lastCharTime):
        (WebCore::SelectElementData::setLastCharTime):
        (WebCore::SelectElementData::typedString):
        (WebCore::SelectElementData::setTypedString):
        * html/HTMLOptionElement.h:
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::HTMLSelectElement):
        (WebCore::HTMLSelectElement::recalcStyle):
        (WebCore::HTMLSelectElement::formControlType):
        (WebCore::HTMLSelectElement::selectedIndex):
        (WebCore::HTMLSelectElement::deselectItems):
        (WebCore::HTMLSelectElement::setSelectedIndex):
        (WebCore::HTMLSelectElement::activeSelectionStartListIndex):
        (WebCore::HTMLSelectElement::activeSelectionEndListIndex):
        (WebCore::HTMLSelectElement::saveFormControlState):
        (WebCore::HTMLSelectElement::restoreFormControlState):
        (WebCore::HTMLSelectElement::parseMappedAttribute):
        (WebCore::HTMLSelectElement::canSelectAll):
        (WebCore::HTMLSelectElement::selectAll):
        (WebCore::HTMLSelectElement::createRenderer):
        (WebCore::HTMLSelectElement::appendFormData):
        (WebCore::HTMLSelectElement::optionToListIndex):
        (WebCore::HTMLSelectElement::listToOptionIndex):
        (WebCore::HTMLSelectElement::recalcListItems):
        (WebCore::HTMLSelectElement::setRecalcListItems):
        (WebCore::HTMLSelectElement::reset):
        (WebCore::HTMLSelectElement::dispatchFocusEvent):
        (WebCore::HTMLSelectElement::dispatchBlurEvent):
        (WebCore::HTMLSelectElement::defaultEventHandler):
        (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
        (WebCore::HTMLSelectElement::setActiveSelectionEndIndex):
        (WebCore::HTMLSelectElement::updateListBoxSelection):
        (WebCore::HTMLSelectElement::menuListOnChange):
        (WebCore::HTMLSelectElement::listBoxOnChange):
        (WebCore::HTMLSelectElement::saveLastSelection):
        (WebCore::HTMLSelectElement::setOption):
        (WebCore::HTMLSelectElement::scrollToSelection):
        (WebCore::HTMLSelectElement::insertedIntoTree):
        * html/HTMLSelectElement.h:
        (WebCore::HTMLSelectElement::size):
        (WebCore::HTMLSelectElement::multiple):
        (WebCore::HTMLSelectElement::listItems):
        * wml/WMLOptionElement.cpp:
        (WebCore::WMLOptionElement::text):
        * wml/WMLOptionElement.h:

2009-05-28  Adam Roben  <aroben@apple.com>

        Don't try to use the new combobox parts on Vista in Classic mode

        Fixes:
        <rdar://problem/6929277> REGRESSION (r42289+r42350): Windows Classic
        theme: drop down lists in Preferences get a line/square
        <rdar://problem/6929298> REGRESSION (r42289): Windows Classic: drop
        down lists are black with a circle on many sites

        Reviewed by Steve Falkenburg.

        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::paintMenuList): Only use the new combobox
        parts when we have a theme (i.e., when we're not in Classic mode).
        When we don't have a theme, fall back to the pre-r42289 code.

2009-05-27  Peter Kasting  <pkasting@google.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=25659
        Avoid calling frameCount() unnecessarily (which could lead to extra
        GIF decoding).

        * platform/graphics/BitmapImage.cpp:
        (WebCore::BitmapImage::destroyDecodedDataIfNecessary):

2009-05-28  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Oliver Hunt.
        
        https://bugs.webkit.org/show_bug.cgi?id=8736

        Tests: fast/borders/border-radius-constraints.html
               fast/borders/border-radius-split-inline.html
               
        When the sum of the corner radii on a side exceed the length of the side,
        reduce the radii according to CSS 3 rules.
        
        Add RenderStyle::getBorderRadiiForRect() to fetch corner radii, applying
        the constraints. Use that for painting borders, box-shadow, clipping replaced
        elements

        * platform/graphics/IntSize.h:
        (WebCore::IntSize::scale):
        Add a scale method that scales by a float (using C rounding rules, like IntRect::scale()).

        * platform/graphics/Path.cpp:
        Make the QUARTER const static.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::pushContentsClip):
        Use getBorderRadiiForRect to fetch border radii.

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):
        Use getBorderRadiiForRect to fetch border radii.

        (WebCore::RenderBoxModelObject::paintBorder):
        Use getBorderRadiiForRect to fetch border radii, and fix a bug when drawing
        borders for split inlines, which used to apply the radii for each segment,
        and no longer does.

        (WebCore::RenderBoxModelObject::paintBoxShadow):
        Use getBorderRadiiForRect to fetch border radii.

        * rendering/RenderReplaced.cpp:
        (WebCore::RenderReplaced::paint):
        Use getBorderRadiiForRect to fetch border radii for clipping.

        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::paint):
        Use getBorderRadiiForRect to fetch border radii for clipping.

        * rendering/style/RenderStyle.h:
        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::getBorderRadiiForRect):
        New bottleneck method to fetch corner radiil given a rect, applying the constraint
        rules.

2009-05-28  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=26005
        Optimization for XPath //* does not preserve context size

        Test: fast/xpath/position.html

        Fixed the bug by removing the incorrect optimization, and made enough micro-optimizations to
        get a performance progression on my tests.

        * xml/XPathPath.h: Removed broken optimizeStepPair().

        * xml/XPathPath.cpp:
        (WebCore::XPath::LocationPath::evaluate): Style fix.
        (WebCore::XPath::LocationPath::appendStep): Don't call optimizeStepPair().
        (WebCore::XPath::LocationPath::insertFirstStep): Ditto.
        (WebCore::XPath::Path::Path): Style fix.

        * xml/XPathStep.cpp:
        (WebCore::XPath::primaryNodeType): Turned this member function into a static inline helper.
        (WebCore::XPath::nodeMatches): Ditto. Don't check for namespace axis, which is unsupported
        (and might never be).
        (WebCore::XPath::Step::nodesInAxis): Updated for the new nodeMatches() signature.

        * xml/XPathStep.h:
        (WebCore::XPath::Step::NodeTest::data):
        (WebCore::XPath::Step::NodeTest::namespaceURI):
        Made these data members AtomicString to avoid repeated conversions. This is the biggest
        performance win here.

        * xml/XPathUtil.cpp: (WebCore::XPath::stringValue): Reserve some capacity upfront.

2009-05-28  Stephen White  <senorblanco@chromium.org>

        Reviewed by Dimitri Glazkov.

        When creating a linear or radial gradient with a single stop
        at offset 1.0, the Skia layer was allocating 3 stops, but only
        filling 2, leaving one uninitialized.  Only 2 stops are necessary
        in this case, at offsets (0.0, 1.0).

        http://bugs.webkit.org/show_bug.cgi?id=26063

        Covered by: LayoutTests/svg/W3C-SVG-1.1/pservers-grad-16-b.svg
                    LayoutTests/svg/custom/gradient-stop-corner-cases.svg
                    LayoutTests/svg/custom/js-late-gradient-and-object-creation.svg

        * platform/graphics/skia/GradientSkia.cpp:
        (WebCore::totalStopsNeeded):

2009-05-28  Yury Semikhatsky  <yurys@chromium.org>

        Reviewed by Timothy Hatcher.

        https://bugs.webkit.org/show_bug.cgi?id=26041
        Allow adding resource source to WebInspector.SourceFrame asynchronously.

        Provide common implementation for InspectorController::addResourceSourceToFrame and
        InspectorController::addSourceToFrame methods.

        * bindings/js/JSInspectorControllerCustom.cpp:
        * bindings/v8/custom/V8InspectorControllerCustom.cpp:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::addResourceSourceToFrame):
        * inspector/InspectorController.h:
        * inspector/InspectorController.idl:
        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame.prototype.revealLine):
        (WebInspector.SourceFrame.prototype.highlightLine):
        (WebInspector.SourceFrame.prototype._loaded):
        (WebInspector.SourceFrame.prototype._isContentLoaded):
        * inspector/front-end/SourceView.js:
        (WebInspector.SourceView.prototype.setupSourceFrameIfNeeded):
        (WebInspector.SourceView.prototype._contentLoaded):

2009-05-28  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Xan Lopez.

        After r44177 we had a problem when increasing the size
        of the window the scrollbars stayed and were not hidden.
        This was due WebCore giving up on the Scrollbar as it became
        unnecessary but the GtkAdjustment remained unchanged.
        So from the point of view of the GtkScrolledWindow scrolling
        was still necessary and the GtkScrollbar kept being displayed.

        Solve the issue by resetting the GtkAdjustment in the
        destructor of ScrollbarGtk.

        * platform/gtk/ScrollbarGtk.cpp:
        (ScrollbarGtk::~ScrollbarGtk):

2009-05-28  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Adler.

        Clean up window.open()'s use of lexical and dynamic scope.

        (Added one unreviewed tweak: use dynamicFrame instead of lexicalFrame
        for DOMWindow::allowPopUp.)

        Test: http/tests/security/frameNavigation/context-for-window-open.html

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::toDynamicFrame):
        (WebCore::processingUserGesture):
        (WebCore::completeURL):
        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::createWindow):
        (WebCore::JSDOMWindow::open):
        (WebCore::JSDOMWindow::showModalDialog):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::CALLBACK_FUNC_DECL):
        (WebCore::createWindow):

2009-05-27  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=26056
        XPath string() function can be very slow

        * xml/XPathUtil.cpp: (WebCore::XPath::stringValue): Use an intermediate Vector when appending.

2009-05-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - fix <rdar://problem/6927761> <isindex> placeholder text is unstylable
          and initially not visible

        Test: fast/forms/isindex-placeholder.html

        * css/html4.css: Added a default style for <isindex> placeholder text.
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseMappedAttribute): Changed to call
        the new protected function updatePlaceholderVisibility().
        * html/HTMLInputElement.h:
        (WebCore::HTMLInputElement::updatePlaceholderVisibility): Added this
        protected function to allow HTMLIsIndexElement::parseMappedAttribute()
        to invoke InputElement::updatePlaceholderVisibility().
        * html/HTMLIsIndexElement.cpp:
        (WebCore::HTMLIsIndexElement::parseMappedAttribute): Call
        updatePlaceholderVisibility() when parsing the placeholder attribute.
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::createInnerTextStyle): If there
        is no placeholder pseudo-element style, use the normal style.

2009-05-27  Sam Weinig  <sam@webkit.org>

        Reviewed by Maciej Stachowiak.

        More cleanup of DOMWindow related functions.

        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::willRemoveFromWindowShell): Renamed from JSDOMWindowBase::clear()
        * bindings/js/JSDOMWindowBase.h:

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::showModalDialog): Update Comment.

        * bindings/js/JSDOMWindowShell.cpp:
        * bindings/js/JSDOMWindowShell.h:
        Remove JSDOMWindowShell::clear().  It was unused.

        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::clearWindowShell):

2009-05-27  Sam Weinig  <sam@webkit.org>

        Reviewed by David Hyatt.

        Miscellaneous cleanup of DOMWindow related functions.

        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject): Fix poorly named variables.
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::supportsProfiling): Don't jump through hoops
        checking for null frames if the build does not support profiling.
        (WebCore::JSDOMWindowBase::clear): Use setCurrentEvent(0) instead of calling
        clearHelperObjectProperties().  It is clearer.
        * bindings/js/JSDOMWindowBase.h:
        Removed now unused clearHelperObjectProperties() function, empty disconnectFrame()
        function, and the empty destructor.
        * bindings/js/JSDOMWindowShell.cpp:
        * bindings/js/JSDOMWindowShell.h:
        Remove disconnectFrame() which only called JSDOMWindowBase::disconnectFrame(), which
        is a no-op.
        * page/Frame.cpp:
        (WebCore::Frame::~Frame):
        (WebCore::Frame::pageDestroyed):
        Remove calls to JSDOMWindowShell::disconnectFrame() which only called
        JSDOMWindowBase::disconnectFrame(), which is a no-op.

2009-05-27  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        https://bugs.webkit.org/show_bug.cgi?id=25974
        Remove extra qualifiers from the ScheduledAction decl.

        * bindings/v8/ScheduledAction.h: Removed extraneous class qualifiers.

2009-05-27  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed make distcheck fix. One more missing file.

        * GNUmakefile.am:

2009-05-27  Antonio Gomes   <antonio.gomes@openbossa.org>

        Reviewed by Simon Hausmann.

        [Qt] Fixed trunk build on Linux after r44126.

        * WebCore.pro:

2009-05-27  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Oliver Hunt.

        <rdar://problem/6926046> REGRESSION (r43972): http://www.youtube.com/html5 crashes on open

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::load): Don't look for a media engine based on an empty MIME type.

2009-05-27  David Levin  <levin@chromium.org>

        Reviewed by Maciej Stachowiak.

        Bug 26029: FrameLoader::canLoad should allow calls with just a security origin
        https://bugs.webkit.org/show_bug.cgi?id=26029

        No functional changes, so no tests.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::canLoad):
        * loader/FrameLoader.h:

2009-05-27  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed build fix.

        Remove file that does not exist from the build.

        * GNUmakefile.am:

2009-05-27  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Darin Adler.

        Remove two unneeded protected constructors, these classes have pure-virtual functions, and can't be constructed anyway.

        * dom/InputElement.h:
        * dom/OptionGroupElement.h:

2009-05-27  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=17725
        XPath should be case insensitive for HTML

        Test: fast/xpath/node-name-case-sensitivity.html

        * xml/XPathStep.cpp: (WebCore::XPath::Step::nodeMatches): Made node name check case insensitive
        for HTML elements in HTML documents.

2009-05-27  John Sullivan  <sullivan@apple.com>

        fixed <rdar://problem/6925482> repro crash in WebCore::DragController::dragExited dropping 
        bookmarks (at least) over Top Sites (at least)

        Reviewed by Kevin Decker

        * page/DragController.cpp:
        (WebCore::DragController::dragExited):
        nil check m_documentUnderMouse and take the "local file" case if it's nil

2009-05-27  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Gustavo Noronha.

        When building on window, consider Windows specific files.

        * GNUmakefile.am:

2009-05-27  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=26031

        InputElementData is too heavy, save storing two pointers by passing them
        directly to the static helper functions (the only place which needs them). 

        * dom/InputElement.cpp:
        (WebCore::InputElement::dispatchFocusEvent):
        (WebCore::InputElement::dispatchBlurEvent):
        (WebCore::InputElement::updatePlaceholderVisibility):
        (WebCore::InputElement::updateFocusAppearance):
        (WebCore::InputElement::updateSelectionRange):
        (WebCore::InputElement::aboutToUnload):
        (WebCore::InputElement::setValueFromRenderer):
        (WebCore::InputElement::constrainValue):
        (WebCore::InputElement::handleBeforeTextInsertedEvent):
        (WebCore::InputElement::parseSizeAttribute):
        (WebCore::InputElement::parseMaxLengthAttribute):
        (WebCore::InputElement::updateValueIfNeeded):
        (WebCore::InputElement::notifyFormStateChanged):
        (WebCore::InputElementData::InputElementData):
        * dom/InputElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::HTMLInputElement):
        (WebCore::HTMLInputElement::updateFocusAppearance):
        (WebCore::HTMLInputElement::aboutToUnload):
        (WebCore::HTMLInputElement::dispatchFocusEvent):
        (WebCore::HTMLInputElement::dispatchBlurEvent):
        (WebCore::HTMLInputElement::setInputType):
        (WebCore::HTMLInputElement::setSelectionRange):
        (WebCore::HTMLInputElement::parseMappedAttribute):
        (WebCore::HTMLInputElement::setValue):
        (WebCore::HTMLInputElement::setValueFromRenderer):
        (WebCore::HTMLInputElement::setFileListFromRenderer):
        (WebCore::HTMLInputElement::defaultEventHandler):
        (WebCore::HTMLInputElement::constrainValue):
        * wml/WMLInputElement.cpp:
        (WebCore::WMLInputElement::WMLInputElement):
        (WebCore::WMLInputElement::dispatchFocusEvent):
        (WebCore::WMLInputElement::dispatchBlurEvent):
        (WebCore::WMLInputElement::updateFocusAppearance):
        (WebCore::WMLInputElement::aboutToUnload):
        (WebCore::WMLInputElement::setValue):
        (WebCore::WMLInputElement::setValueFromRenderer):
        (WebCore::WMLInputElement::parseMappedAttribute):
        (WebCore::WMLInputElement::defaultEventHandler):
        (WebCore::WMLInputElement::constrainValue):

2009-05-27  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=26033

        OptionElementData saves an Element pointer, which is unnessary.
        Just pass it to the static function calls directly.

        * dom/OptionElement.cpp:
        (WebCore::OptionElement::setSelectedState):
        (WebCore::OptionElement::collectOptionText):
        (WebCore::OptionElement::collectOptionTextRespectingGroupLabel):
        (WebCore::OptionElement::collectOptionValue):
        (WebCore::OptionElementData::OptionElementData):
        * dom/OptionElement.h:
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::HTMLOptionElement):
        (WebCore::HTMLOptionElement::text):
        (WebCore::HTMLOptionElement::value):
        (WebCore::HTMLOptionElement::setSelected):
        (WebCore::HTMLOptionElement::setSelectedState):
        (WebCore::HTMLOptionElement::textIndentedToRespectGroupLabel):
        * wml/WMLOptionElement.cpp:
        (WebCore::WMLOptionElement::WMLOptionElement):
        (WebCore::WMLOptionElement::setSelectedState):
        (WebCore::WMLOptionElement::value):
        (WebCore::WMLOptionElement::textIndentedToRespectGroupLabel):

2009-05-27  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Maciej Stachowiak.

        When building with MinGW, don't use the __declspec(dl{import,export})
        decorations and rely on the linker to use its nifty auto-import feature.
        It is extremely hard to get the decorations right with MinGW in general
        and impossible in WebKit, where the resulting shared library is linking 
        together some static libraries.

        * config.h:

2009-05-26  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Xan Lopez.

        https://bugs.webkit.org/show_bug.cgi?id=25613

        Add a WebCore::Widget that can embed GtkWidget with and
        without a GdkWindow. This can be used to embed any GtkWidget.

        Some bits are directly copied from the Scrollbar implementation
        but can not be easily shared here.

        * GNUmakefile.am:
        * platform/gtk/GtkPluginWidget.cpp: Added.
        (WebCore::GtkPluginWidget::GtkPluginWidget):
        (WebCore::GtkPluginWidget::invalidateRect):
        (WebCore::GtkPluginWidget::frameRectsChanged):
        (WebCore::GtkPluginWidget::paint):
        * platform/gtk/GtkPluginWidget.h: Added.

2009-05-26  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25613.

        Implement Widget::setIsSelected for Gtk+ by searching
        for a property of the name "webkit-widget-is-selected" and if
        such property exists we are going to set it. We expect
        the property to take a boolean.

        * platform/gtk/WidgetGtk.cpp:
        (WebCore::Widget::setIsSelected):

2009-05-26  Sam Weinig  <sam@webkit.org>

        Reviewed by Brady Eidson.

        Fix for <rdar://problem/6916371>
        iWeb 'Announce' button does nothing after publishing to MobileMe

        Add ability to force content sniffing for all urls (including file: urls)

        * WebCore.base.exp:
        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::shouldContentSniffURL):
        (WebCore::ResourceHandle::forceContentSniffing):
        * platform/network/ResourceHandle.h:

2009-05-26  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=25996

        [Qt] Dead-code stripping for unix

        * WebCore.pro: Turn on GCC dead-code stripping flags for Unix

2009-05-10  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Dave Hyatt.

        https://bugs.webkit.org/show_bug.cgi?id=25646

        [GTK] Send onscroll events for the main FrameView

        WebKit/GTK+ is currently not sending any onscroll
        events for a frame with external adjustments. This is
        due the fact that the value-changed signal of the GtkAdjustment
        is handled by WebCore::ScrollView directly and is not going through
        the WebCore::Scrollbar -> WebCore::ScrollbarClient ->
        WebCore::FrameView::valueChanged -> WebCore::ScrollView::valueChanged
        path.

        Fix the above problem by wrapping the GtkAdjustment we get
        assigned from GTK+ in a ScrollbarGtk that will not have any
        visual appearance. Remove code from ScrollView that knows
        about adjustments and create a special case for
        WebCore::ScrollView::createScrollbar that will create such
        a special WebCore::ScrollbarGtk.

        * platform/ScrollView.cpp: Remove adjustment code
        (WebCore::ScrollView::setHasHorizontalScrollbar):
        (WebCore::ScrollView::setHasVerticalScrollbar):
        (WebCore::ScrollView::updateScrollbars):
        (WebCore::ScrollView::wheelEvent):
        * platform/ScrollView.h: Remove adjustment code
        * platform/gtk/ScrollViewGtk.cpp:
        (WebCore::ScrollView::platformDestroy):
        (WebCore::ScrollView::createScrollbar):
        (WebCore::ScrollView::setGtkAdjustments):
        * platform/gtk/ScrollbarGtk.cpp:
        (ScrollbarGtk::createScrollbar): Special case.
        (ScrollbarGtk::ScrollbarGtk):  New ctor and work on the adjustment
        (ScrollbarGtk::~ScrollbarGtk): Disconnect signal
        (ScrollbarGtk::frameRectsChanged): Do nothing when we lack a platformWidget
        * platform/gtk/ScrollbarGtk.h:

2009-05-26  Cameron Zwarich  <zwarich@apple.com>

        Reviewed by Maciej Stachowiak.

        Bug 26035: Make ImageSource::frameHasAlphaAtIndex() return false for JPEGs with CG
        <https://bugs.webkit.org/show_bug.cgi?id=26035>
        <rdar://problem/6924087>

        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::frameHasAlphaAtIndex): return false if the image
        is JPEG, there is no image type, or m_decoder is null.

2009-05-26  Holger Hans Peter Freyther  <zecke@selfish.org>

        Unreviewed build fix for the JPEGImageDecoder.

        Revision 44167 removed stdio.h from the included headers and
        this will lead to an error that FILE is not known inside the
        jpeglib.h Put back the stdio.h include.

        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp:

2009-05-26  Yichao Yin  <yichao.yin@torchmobile.com.cn>

        Reviewed by Maciej Stachowiak.

        Fix the crash issue while running layout tests after enalbed XHTMLMP
        https://bugs.webkit.org/show_bug.cgi?id=26017

        * dom/Document.cpp:
        (WebCore::Document::isXHTMLMPDocument):

2009-05-26  Anders Carlsson  <andersca@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6901751> 
        REGRESSION (r35515): Tiger crash painting the selection on registration page of car2go.com
        
        Don't use the WKCGContextIsSafeToClip function; it wasn't working correctly. Instead, just disable
        the improved selection drawing on Tiger.
        
        * WebCore.Tiger.exp:
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::fillPath):
        (WebCore::GraphicsContext::strokePath):
        (WebCore::GraphicsContext::fillRect):
        (WebCore::GraphicsContext::clip):
        (WebCore::GraphicsContext::clipOut):
        (WebCore::GraphicsContext::clipOutEllipseInRect):
        (WebCore::GraphicsContext::clipPath):
        (WebCore::GraphicsContext::addInnerRoundedRectClip):
        (WebCore::GraphicsContext::strokeRect):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::fillSelectionGaps):

2009-05-26  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part two
        Mostly cosmetic changes, mainly to get image decoders for Cairo build to
        comply with WebKit style guidelines:
        * Fix header guard names
        * Fix initializer list wrapping
        * Fix class/function "{" wrapping
        * Fix wrapping of long boolean expressions
        * Fix whitespace around operators
        * Eliminate whitespace on otherwise-blank lines
        * No {} on single-line conditional arms
        * Use 0 instead of NULL
        * Don't #include "config.h" in headers

        Also a few non-cosmetic changes:
        * Remove unneeded #ifdef protecting the contents of these files.  The
          platforms listed don't match who uses these files anymore (even
          without considering Skia), and platforms which don't use them at all
          (like CG) aren't harmed by the files, since they don't have
          equivalently-named classes.  It's simpler to just ditch these.
        * Convert a use of Vector<>& into SharedBuffer*, since that's how the
          data is really stored anyway.
        * Use size() instead of m_size, for consistency with Skia code, and
          future-proofing (if a particular decoder wants to specialize this).
        * Move an ASSERT that was slightly more aggressive than necessary.
        * Change variable names/types for clarity/accuracy and to match Skia.
        * Remove unnecessary macro magic to work around a problem which no
          longer exists in the third-party JPEG headers.
        * Stop silencing a portability warning about setjmp (the vcproj/vsprops
          are the right place for this)
        * In Skia code, don't explicitly check |m_failed| before calling
          isSizeAvailable(), which itself checks |m_failed|.

        * platform/image-decoders/ImageDecoder.h: Fix header guards, "{" wrapping.
        (WebCore::RGBA32Buffer::):
        (WebCore::RGBA32Buffer::RGBA32Buffer): Fix initializer list wrapping.
        (WebCore::ImageDecoder::ImageDecoder): Fix initializer list wrapping.
        * platform/image-decoders/bmp/BMPImageDecoder.cpp: Remove unneeded #ifdef.
        * platform/image-decoders/bmp/BMPImageDecoder.h: Fix header guards, "{" wrapping.
        * platform/image-decoders/gif/GIFImageDecoder.cpp: Remove unneeded #ifdef, fix "{" wrapping.
        (WebCore::GIFImageDecoderPrivate::GIFImageDecoderPrivate): Use an initializer instead of a block-level statement.
        (WebCore::GIFImageDecoderPrivate::decode): Expect a SharedBuffer.
        (WebCore::GIFImageDecoderPrivate::getColorMap):
        (WebCore::GIFImageDecoder::GIFImageDecoder): Fix initializer list wrapping.
        (WebCore::GIFImageDecoder::frameCount): Add comment.
        (WebCore::GIFImageDecoder::frameBufferAtIndex): Explicitly cast, fix whitespace around operators.
        (WebCore::GIFImageDecoder::decode): Pass a SharedBuffer.
        (WebCore::GIFImageDecoder::initFrameBuffer): Use size() instead of m_size, move ASSERT, fix boolean wrapping, fix indenting.
        (WebCore::GIFImageDecoder::prepEmptyFrameBuffer): Use size() instead of m_size.
        (WebCore::GIFImageDecoder::haveDecodedRow): Use size() instead of m_size, eliminate unneeded whitespace, change variable name.
        (WebCore::GIFImageDecoder::frameComplete): Use size() instead of m_size, no {} on single-line conditional arms, fix boolean wrapping.
        * platform/image-decoders/gif/GIFImageDecoder.h: Fix header guards, "{" wrapping.
        * platform/image-decoders/gif/GIFImageReader.cpp: Remove unneeded #ifdef.
        (GIFImageReader::read):
        * platform/image-decoders/gif/GIFImageReader.h: Fix header guards, change variable type.
        * platform/image-decoders/ico/ICOImageDecoder.cpp: Remove unneeded #ifdef.
        * platform/image-decoders/ico/ICOImageDecoder.h: Fix header guards, "{" wrapping.
        * platform/image-decoders/jpeg/JPEGImageDecoder.cpp: Remove unneeded #ifdef, macro magic, silencing of warning.
        (WebCore::JPEGImageDecoder::outputScanlines): Use size() instead of m_size, change variable name.
        * platform/image-decoders/jpeg/JPEGImageDecoder.h: Fix header guards, "{" wrapping.
        * platform/image-decoders/png/PNGImageDecoder.cpp: Remove unneeded #ifdef, silencing of warning, change variable type.
        (WebCore::PNGImageReader::PNGImageReader): Fix initializer list wrapping.
        (WebCore::PNGImageReader::close): Add comment, zero another member for consistency.
        (WebCore::PNGImageDecoder::PNGImageDecoder): Fix indenting.
        (WebCore::PNGImageDecoder::decodingFailed): Define in .cpp, not .h.
        (WebCore::PNGImageDecoder::rowAvailable):
        * platform/image-decoders/png/PNGImageDecoder.h: Fix header guards, "{" wrapping.
        * platform/image-decoders/skia/GIFImageDecoder.cpp:
        (WebCore::GIFImageDecoder::isSizeAvailable): Don't check m_failed unnecessarily.
        (WebCore::GIFImageDecoder::frameBufferAtIndex): Fix whitespace around operators.
        * platform/image-decoders/skia/GIFImageReader.h: "unsigned" is sufficient to convey "unsigned int".
        * platform/image-decoders/skia/ImageDecoder.h: Remove unnecessary #includes.
        (WebCore::ImageDecoder::ImageDecoder): Fix initializer list wrapping.
        * platform/image-decoders/skia/JPEGImageDecoder.cpp:
        (WebCore::JPEGImageReader::JPEGImageReader): Use 0 instead of NULL.
        (WebCore::JPEGImageDecoder::isSizeAvailable): Don't check m_failed unnecessarily.
        * platform/image-decoders/skia/PNGImageDecoder.cpp:
        (WebCore::PNGImageReader::PNGImageReader): Fix initializer list wrapping.
        (WebCore::PNGImageDecoder::PNGImageDecoder): Fix indenting.
        (WebCore::PNGImageDecoder::isSizeAvailable): Don't check m_failed unnecessarily.
        (WebCore::rowAvailable):
        * platform/image-decoders/skia/XBMImageDecoder.h: Don't #include config.h.
        * platform/image-decoders/xbm/XBMImageDecoder.cpp: Remove unneeded #ifdef.
        * platform/image-decoders/xbm/XBMImageDecoder.h: Fix header guards, "{" wrapping.

2009-05-26  Jian Li  <jianli@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25944
        Remove the uses of V8 Locker in worker execution code. No additional test is needed.
        The normal WebKit layout tests should cover it. However, layout tests that start
        multiple workers will fail to pass due to test shell limitation in Chromium. To cover
        this, UI tests will be added (http://code.google.com/p/chromium/issues/detail?id=12554).

        * bindings/v8/V8WorkerContextEventListener.cpp:
        (WebCore::V8WorkerContextEventListener::handleEvent):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::dispose):
        (WebCore::WorkerContextExecutionProxy::initV8IfNeeded):
        (WebCore::WorkerContextExecutionProxy::evaluate):
        (WebCore::WorkerContextExecutionProxy::findOrCreateEventListenerHelper):
        (WebCore::WorkerContextExecutionProxy::RemoveEventListener):

2009-05-26  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25974
        Enable timers in Chromuim workers.

        * bindings/v8/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute): Added function which can execute a callback using WorkerContext.
        * bindings/v8/ScheduledAction.h:
        (WebCore::ScheduledAction::ScheduledAction): added url parameter to capture the worker's location.
        * bindings/v8/custom/V8WorkerContextCustom.cpp:
        (WebCore::SetTimeoutOrInterval): replaced NotImplemented with code to create ScheduledAction and DOMTimer.
        Also, removed declarations for clearTimeout/clearInterval callbacks since they are now directly generated from IDL.

2009-05-26  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        https://bugs.webkit.org/show_bug.cgi?id=23649
        Update V8 bindings to match SQLTransactionErrorCallback change.

        * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp:
        (WebCore::V8CustomSQLTransactionErrorCallback::handleEvent): Changed to return void.
        * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h: Ditto.

2009-05-26  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        Move FilterEffect to platform/graphics/filters. First step to get an
        SVG independent filter system.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/filters/FilterEffect.cpp: Added.
        (WebCore::FilterEffect::FilterEffect):
        (WebCore::FilterEffect::~FilterEffect):
        (WebCore::FilterEffect::externalRepresentation):
        * platform/graphics/filters/FilterEffect.h: Added.
        (WebCore::FilterEffect::xBoundingBoxMode):
        (WebCore::FilterEffect::setXBoundingBoxMode):
        (WebCore::FilterEffect::yBoundingBoxMode):
        (WebCore::FilterEffect::setYBoundingBoxMode):
        (WebCore::FilterEffect::widthBoundingBoxMode):
        (WebCore::FilterEffect::setWidthBoundingBoxMode):
        (WebCore::FilterEffect::heightBoundingBoxMode):
        (WebCore::FilterEffect::setHeightBoundingBoxMode):
        (WebCore::FilterEffect::subRegion):
        (WebCore::FilterEffect::setSubRegion):
        (WebCore::FilterEffect::resultImage):
        (WebCore::FilterEffect::setEffectBuffer):
        * svg/FilterEffect.cpp: Removed.
        * svg/FilterEffect.h: Removed.

2009-05-26  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=23649
        Update SQLTransactionErrorCallback to not return a value per changes in
        HTML5 spec.

        Test: storage/transaction-error-callback.html

        * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
        (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionErrorCallback.h:
        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::SQLTransaction):
        (WebCore::SQLTransaction::postflightAndCommit):
        (WebCore::SQLTransaction::handleTransactionError):
        (WebCore::SQLTransaction::deliverTransactionErrorCallback):
        (WebCore::SQLTransaction::cleanupAfterTransactionErrorCallback):
        * storage/SQLTransaction.h:
        * storage/SQLTransactionErrorCallback.h:

2009-05-26  David Hyatt  <hyatt@apple.com>

        Reviewed by Darin Adler.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=25969

        Detect the case where we can fit without scrollbars when the view shrinks, so that we don't mistakenly
        continue to show scrollbars.

        Added two tests in fast/dynamic.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars):

2009-05-26  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Mark Rowe.

        Bug 25801: change AccessibilityAria -> AccessibilityARIA
        https://bugs.webkit.org/show_bug.cgi?id=25801

        * GNUmakefile.am:
        * WebCore.order:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * accessibility/AXObjectCache.cpp:
        (WebCore::AXObjectCache::getOrCreate):
        * accessibility/AccessibilityARIAGrid.cpp: Copied from WebCore/accessibility/AccessibilityAriaGrid.cpp.
        (WebCore::AccessibilityARIAGrid::AccessibilityARIAGrid):
        (WebCore::AccessibilityARIAGrid::~AccessibilityARIAGrid):
        (WebCore::AccessibilityARIAGrid::create):
        (WebCore::AccessibilityARIAGrid::addChild):
        (WebCore::AccessibilityARIAGrid::addChildren):
        (WebCore::AccessibilityARIAGrid::cellForColumnAndRow):
        * accessibility/AccessibilityARIAGrid.h: Copied from WebCore/accessibility/AccessibilityAriaGrid.h.
        * accessibility/AccessibilityARIAGridCell.cpp: Copied from WebCore/accessibility/AccessibilityAriaGridCell.cpp.
        (WebCore::AccessibilityARIAGridCell::AccessibilityARIAGridCell):
        (WebCore::AccessibilityARIAGridCell::~AccessibilityARIAGridCell):
        (WebCore::AccessibilityARIAGridCell::create):
        (WebCore::AccessibilityARIAGridCell::parentTable):
        (WebCore::AccessibilityARIAGridCell::rowIndexRange):
        (WebCore::AccessibilityARIAGridCell::columnIndexRange):
        * accessibility/AccessibilityARIAGridCell.h: Copied from WebCore/accessibility/AccessibilityAriaGridCell.h.
        * accessibility/AccessibilityARIAGridRow.cpp: Copied from WebCore/accessibility/AccessibilityAriaGridRow.cpp.
        (WebCore::AccessibilityARIAGridRow::AccessibilityARIAGridRow):
        (WebCore::AccessibilityARIAGridRow::~AccessibilityARIAGridRow):
        (WebCore::AccessibilityARIAGridRow::create):
        (WebCore::AccessibilityARIAGridRow::parentTable):
        (WebCore::AccessibilityARIAGridRow::headerObject):
        * accessibility/AccessibilityARIAGridRow.h: Copied from WebCore/accessibility/AccessibilityAriaGridRow.h.
        * accessibility/AccessibilityAriaGrid.cpp: Removed.
        * accessibility/AccessibilityAriaGrid.h: Removed.
        * accessibility/AccessibilityAriaGridCell.cpp: Removed.
        * accessibility/AccessibilityAriaGridCell.h: Removed.
        * accessibility/AccessibilityAriaGridRow.cpp: Removed.
        * accessibility/AccessibilityAriaGridRow.h: Removed.

2009-05-26  Stephen White  <senorblanco@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=26012

        Fix the Skia path to normalize the given source rect when
        drawing patterns, so it accepts negative width/height (as CG does).
        Fixes Chromium bug http://www.crbug.com/6167.
        * platform/graphics/skia/ImageSkia.cpp:
        (WebCore::Image::drawPattern):

2009-05-26  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Serialize calls to WebInspector. This is the first step where method 
        calls are being serialized to arrays (not yet JSON stringified ones) and 
        are being dispatched on the client. This change also allows client to override 
        InspectorFrontend, so that the serialized calls can be made on a given object
        instead of in-process WebInspector global. This will be the main control flow
        when InspectorController is decoupled from the in-process frontend.

        https://bugs.webkit.org/show_bug.cgi?id=26010

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::scriptObjectReady):
        (WebCore::InspectorController::overrideFrontendObject):
        (WebCore::InspectorController::show):
        (WebCore::InspectorController::populateScriptObjects):
        * inspector/InspectorController.h:
        * inspector/InspectorFrontend.cpp:
        (WebCore::InspectorFrontend::addMessageToConsole):
        (WebCore::InspectorFrontend::addResource):
        (WebCore::InspectorFrontend::updateResource):
        (WebCore::InspectorFrontend::removeResource):
        (WebCore::InspectorFrontend::updateFocusedNode):
        (WebCore::InspectorFrontend::setAttachedWindow):
        (WebCore::InspectorFrontend::inspectedWindowScriptObjectCleared):
        (WebCore::InspectorFrontend::showPanel):
        (WebCore::InspectorFrontend::populateInterface):
        (WebCore::InspectorFrontend::reset):
        (WebCore::InspectorFrontend::debuggerWasEnabled):
        (WebCore::InspectorFrontend::debuggerWasDisabled):
        (WebCore::InspectorFrontend::profilerWasEnabled):
        (WebCore::InspectorFrontend::profilerWasDisabled):
        (WebCore::InspectorFrontend::parsedScriptSource):
        (WebCore::InspectorFrontend::failedToParseScriptSource):
        (WebCore::InspectorFrontend::addProfile):
        (WebCore::InspectorFrontend::setRecordingProfile):
        (WebCore::InspectorFrontend::pausedScript):
        (WebCore::InspectorFrontend::resumedScript):
        (WebCore::InspectorFrontend::addDatabase):
        (WebCore::InspectorFrontend::addDOMStorage):
        (WebCore::InspectorFrontend::newFunctionCall):
        (WebCore::InspectorFrontend::callSimpleFunction):
        * inspector/InspectorFrontend.h:
        * inspector/front-end/inspector.js:
        (WebInspector.dispatch):

2009-05-25  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        <rdar://problem/6918671> REGRESSION (r41700): Crashes in debug DumpRenderTree at RefCountedBase::ref().

        * dom/QualifiedName.cpp: (WebCore::QualifiedName::QualifiedName):
        * dom/QualifiedName.h: (WebCore::QualifiedName::QualifiedNameImpl::QualifiedNameImpl):
        Adjust empty namespace before QNameComponentsTranslator black magic, not after.

2009-05-25  David Levin  <levin@chromium.org>

        Reviewed by Maciej Stachowiak and Oliver Hunt.

        Added forwarding headers.

        * ForwardingHeaders/wtf/CrossThreadRefCounted.h: Added.
        * ForwardingHeaders/wtf/OwnFastMallocPtr.h: Added.

2009-05-25  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        - WebCore side of <rdar://problem/6914001>.

        Add a new m_allowPopupsFromPlugin flag.
        
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::ScriptController):
        (WebCore::ScriptController::processingUserGesture):
        * bindings/js/ScriptController.h:
        (WebCore::ScriptController::setAllowPopupsFromPlugin):
        (WebCore::ScriptController::allowPopupsFromPlugin):

2009-05-25  Adam Barth  <abarth@webkit.org>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=26006

        Sort out our use of dynamicGlobalObject and lexicalGlobalObject for
        window.location.  The correct use appears to be as follows:

        1) Use dynamicGlobalObject to find the user gesture.
        2) Use dynamicGlobalObject to complete URLs.
        3) Use lexicalGlobalObject to find the referrer.
        4) Use lexicalGlobalObject for the frame navigation checks.
        5) Use lexicalGlobalObject for the XSS checks.

        Tests: http/tests/security/frameNavigation/context-for-location-assign.html
               http/tests/security/frameNavigation/context-for-location-href.html
               http/tests/security/frameNavigation/context-for-location.html

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::shouldAllowNavigation):
        (WebCore::toLexicalFrame):
        (WebCore::processingUserGesture):
        (WebCore::completeURL):
        * bindings/js/JSDOMBinding.h:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::setLocation):
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::navigateIfAllowed):
        (WebCore::JSLocation::setHref):
        (WebCore::JSLocation::replace):
        (WebCore::JSLocation::reload):
        (WebCore::JSLocation::assign):
        (WebCore::JSLocation::toString):
        (WebCore::JSLocationPrototype::customPut):
        * bindings/v8/V8Utilities.cpp:
        (WebCore::processingUserGesture):
        (WebCore::shouldAllowNavigation):
        (WebCore::completeURL):
        (WebCore::navigateIfAllowed):
        * bindings/v8/V8Utilities.h:
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8Custom::WindowSetLocation):
        * bindings/v8/custom/V8LocationCustom.cpp:
        (WebCore::ACCESSOR_SETTER):
        (WebCore::CALLBACK_FUNC_DECL):

2009-05-25  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Maciej Stachowiak.

        With Windows compilers older then MSVC 2005, the functions
        gmtime_s and localtime_s don't exist. The gmtime and localtime are
        on Windows always thread safe. So use them in the cases where
        gmtime_s and localtime_s are not present.

        * loader/FTPDirectoryDocument.cpp:
        * loader/FTPDirectoryParser.cpp:

2009-05-25  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Simon Hausmann.

        Follow up on r44120. PluginPackageMac.cpp is used
        by Qt on Mac and contained a copy of the m_browserFunc
        assignments and ::equal, ::hash and ::compareFileVersion.
        Change it to use the ones from PluginPackage.cpp as well.

        * plugins/mac/PluginPackageMac.cpp:
        (WebCore::PluginPackage::load):

2009-05-25  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Tor Arne Vestbø.

        https://bugs.webkit.org/show_bug.cgi?id=25612

        Support conditionals in the tag factories, by placing
        feature #ifdefs around the individual factory functions
        and the registration.

        Made the Audio and Video elements conditional in the tag factories

        * html/HTMLTagNames.in:
        * dom/make_names.pl:

2009-05-25  Simon Hausmann  <simon.hausmann@nokia.com>

        Fix the Gtk build when video is disabled.

        * GNUmakefile.am: Always generate and compile the IDL files for the media
        elements. They contain proper feature #ifdefs.

2009-05-25  Simon Hausmann  <simon.hausmann@nokia.com>

        Fix the Qt build when video is disabled.

        * WebCore.pro: Always generate the IDL files for the media elements. They
        contain proper ENABLE(VIDEO) #ifdefs.

2009-05-25  Adam Barth  <abarth@webkit.org>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=26004

        The origin for postMessage should follow lexical scope, not dynamic
        scope.  Yes, this is a super-obscure corner case.

        Test: http/tests/security/postMessage/origin-follows-lexical-scope.html

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::postMessage):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::CALLBACK_FUNC_DECL):

2009-05-24  Darin Fisher  <darin@chromium.org>

        Reviewed by Mark Rowe.

        Fix build bustage related to PassOwnPtr changes.

        https://bugs.webkit.org/show_bug.cgi?id=25999

        * platform/graphics/chromium/TransparencyWin.cpp:

2009-05-24  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=25988

        Minor cleanup in PluginPackage::hash. Let the compiler
        figure out the size of the array. Do not have it in the
        definition and specially not the in the call to
        StringImpl::hash.

        * plugins/PluginPackage.cpp:
        (WebCore::PluginPackage::hash):

2009-05-24  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=25988

        Move ::hash, ::equal and ::compareFileVersion from
        the duplicated copies in PluginPackageQt.cpp and
        PluginPackageGtk to PluginPackage.cpp. We need to #ifdef
        this for the PluginPackageWin version. Use the new style
        ENABLE() for this feature/policy and enable it in the Gtk+
        and Qt buildsystem.

        * GNUmakefile.am:
        * WebCore.pro:
        * plugins/PluginPackage.cpp:
        (WebCore::PluginPackage::hash):
        (WebCore::PluginPackage::equal):
        (WebCore::PluginPackage::compareFileVersion):
        * plugins/gtk/PluginPackageGtk.cpp:
        * plugins/qt/PluginPackageQt.cpp:

2009-05-24  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=25988

        So far the initialization of the browserfuncs struct
        is done in PluginPackageQt, PluginPackageGtk and
        PluginPackageWin there is no need for this duplication.

        The PluginPackageWin version got copied to PluginPackage

        * plugins/PluginPackage.cpp:
        (WebCore::PluginPackage::initializeBrowserFuncs):
        * plugins/PluginPackage.h:
        * plugins/gtk/PluginPackageGtk.cpp:
        (WebCore::PluginPackage::load):
        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::load):
        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackage::load):

2009-05-24  Dirk Schulze  <krit@webkit.org>

        Reviewed by Nikolas Zimmermann.

        WebKit needs cross-platform filter system
        [https://bugs.webkit.org/show_bug.cgi?id=19991]

        Added standard input for filter system.

        No testcases were added. Filter system is still off.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.xcodeproj/project.pbxproj:
        * platform/graphics/filters/SourceAlpha.cpp: Added.
        (WebCore::SourceAlpha::create):
        (WebCore::SourceAlpha::effectName):
        (WebCore::SourceAlpha::apply):
        (WebCore::SourceAlpha::dump):
        * platform/graphics/filters/SourceAlpha.h: Added.
        (WebCore::SourceAlpha::SourceAlpha):
        * platform/graphics/filters/SourceGraphic.cpp: Added.
        (WebCore::SourceGraphic::create):
        (WebCore::SourceGraphic::effectName):
        (WebCore::SourceGraphic::apply):
        (WebCore::SourceGraphic::dump):
        * platform/graphics/filters/SourceGraphic.h: Added.
        (WebCore::SourceGraphic::SourceGraphic):
        * svg/FilterBuilder.cpp: Added.
        (WebCore::FilterBuilder::FilterBuilder):
        (WebCore::FilterBuilder::add):
        (WebCore::FilterBuilder::getEffectById):
        (WebCore::FilterBuilder::clearEffects):
        * svg/FilterBuilder.h:

2009-05-24  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=25612

        Add support conditionals in the JSC bindings generator code for attributes,
        by placing feature #ifdefs around the setters/getters.

        Made the audio and video element specific DOM attributes conditional
        in the generated code, by moving the #ifdefs from the IDL files into
        the generated code. This allows for re-using the same generated code
        with or without ENABLE(VIDEO).

        * page/DOMWindow.idl:
        * bindings/scripts/CodeGeneratorJS.pm:

2009-05-23  Holger Hans Peter Freyther  <zecke@selfish.org>

        Unreviewed build fix for Qt. Change signature to have PassOwnPtr.

        * platform/text/qt/TextCodecQt.cpp:
        (WebCore::newTextCodecQt):

2009-05-23  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - clean up ColorMac a little

        * platform/graphics/mac/ColorMac.h: Whitespace change.
        * platform/graphics/mac/ColorMac.mm: Removed redundant #import
        statements and sorted the remaining ones.
        (WebCore::makeRGBAFromNSColor): Replaced four Objective-C method calls
        with a single call and removed redundant casts to int.
        (WebCore::nsColor): Removed ".0f" from number literals used as CGFloats.
        In one case, this avoids an intermediate conversion to float before
        conversion to double on 64-bit.
        (WebCore::CGColorFromNSColor): Replaced four Objective-C method calls
        with a single call.
        (WebCore::focusRingColor):
        (+[WebCoreControlTintObserver controlTintDidChange]): Whitespace change.

2009-05-23  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [Gtk] ROLE_ROW_HEADER should not be used for list item bullets/numbers
        https://bugs.webkit.org/show_bug.cgi?id=25900

        Use ATK_ROLE_TEXT for ListMarkerRole.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (atkRole):

2009-05-23  David Kilzer  <ddkilzer@apple.com>

        Reformat WebCore::requiresContextForWordBoundary()

        * platform/text/TextBoundaries.h:
        (WebCore::requiresContextForWordBoundary):

2009-05-23  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Not reviewed. Roll out ResourceHandle patch, that I accidently included in my last commit.

        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::shouldContentSniffURL):

2009-05-23  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Darin Adler.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=23808

        After a long journey, add the last missing ABC to share form control element support with HTMLSelectElement.
        RenderListBox/RenderMenuList operates on SelectElement instead of HTMLSelectElement now, querying selected index etc.
        This makes it possible to use these render objects for ie. WML, as it's done before for input & option elements.

        WMLSelectElement will be created soon, in a follow-up patch, adding more methods to SelectElement, sharing code between
        HTMLSelectElement/WMLSelectElement.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * accessibility/AccessibilityListBox.cpp:
        (WebCore::AccessibilityListBox::addChildren):
        (WebCore::AccessibilityListBox::doAccessibilityHitTest):
        * accessibility/AccessibilityListBoxOption.cpp:
        (WebCore::AccessibilityListBoxOption::listBoxOptionIndex):
        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::actionElement):
        * dom/Element.h:
        (WebCore::Element::isFormControlElement):
        (WebCore::Element::dispatchFormControlChangeEvent):
        * dom/SelectElement.cpp: Added.
        (WebCore::toSelectElement):
        * dom/SelectElement.h: Added.
        (WebCore::SelectElement::~SelectElement):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::dispatchFormControlChangeEvent):
        * html/HTMLFormControlElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setChecked):
        (WebCore::HTMLInputElement::defaultEventHandler):
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::index):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::selectedIndex):
        (WebCore::HTMLSelectElement::lastSelectedListIndex):
        (WebCore::HTMLSelectElement::deselectItems):
        (WebCore::HTMLSelectElement::setSelectedIndex):
        (WebCore::HTMLSelectElement::length):
        (WebCore::HTMLSelectElement::remove):
        (WebCore::HTMLSelectElement::value):
        (WebCore::HTMLSelectElement::setValue):
        (WebCore::HTMLSelectElement::saveFormControlState):
        (WebCore::HTMLSelectElement::restoreFormControlState):
        (WebCore::HTMLSelectElement::selectAll):
        (WebCore::HTMLSelectElement::appendFormData):
        (WebCore::HTMLSelectElement::optionToListIndex):
        (WebCore::HTMLSelectElement::listToOptionIndex):
        (WebCore::HTMLSelectElement::recalcListItems):
        (WebCore::HTMLSelectElement::reset):
        (WebCore::HTMLSelectElement::dispatchFocusEvent):
        (WebCore::HTMLSelectElement::dispatchBlurEvent):
        (WebCore::HTMLSelectElement::menuListDefaultEventHandler):
        (WebCore::HTMLSelectElement::listBoxDefaultEventHandler):
        (WebCore::HTMLSelectElement::setActiveSelectionAnchorIndex):
        (WebCore::HTMLSelectElement::updateListBoxSelection):
        (WebCore::HTMLSelectElement::menuListOnChange):
        (WebCore::HTMLSelectElement::listBoxOnChange):
        (WebCore::HTMLSelectElement::saveLastSelection):
        (WebCore::HTMLSelectElement::typeAheadFind):
        (WebCore::HTMLSelectElement::nextSelectableListIndex):
        (WebCore::HTMLSelectElement::previousSelectableListIndex):
        (WebCore::HTMLSelectElement::setLength):
        (WebCore::HTMLSelectElement::checkListItems):
        * html/HTMLSelectElement.h:
        (WebCore::HTMLSelectElement::size):
        (WebCore::HTMLSelectElement::multiple):
        (WebCore::HTMLSelectElement::listItems):
        (WebCore::HTMLSelectElement::setActiveSelectionEndIndex):
        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::shouldContentSniffURL):
        * rendering/RenderFileUploadControl.cpp:
        (WebCore::RenderFileUploadControl::valueChanged):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::RenderListBox):
        (WebCore::RenderListBox::updateFromElement):
        (WebCore::RenderListBox::scrollToRevealSelection):
        (WebCore::RenderListBox::size):
        (WebCore::RenderListBox::numItems):
        (WebCore::RenderListBox::paintItemForeground):
        (WebCore::RenderListBox::paintItemBackground):
        (WebCore::RenderListBox::panScroll):
        (WebCore::RenderListBox::autoscroll):
        (WebCore::RenderListBox::stopAutoscroll):
        (WebCore::RenderListBox::valueChanged):
        (WebCore::RenderListBox::nodeAtPoint):
        * rendering/RenderListBox.h:
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::RenderMenuList):
        (WebCore::RenderMenuList::updateOptionsWidth):
        (WebCore::RenderMenuList::updateFromElement):
        (WebCore::RenderMenuList::setTextFromOption):
        (WebCore::RenderMenuList::showPopup):
        (WebCore::RenderMenuList::valueChanged):
        (WebCore::RenderMenuList::itemText):
        (WebCore::RenderMenuList::itemIsEnabled):
        (WebCore::RenderMenuList::itemStyle):
        (WebCore::RenderMenuList::itemBackgroundColor):
        (WebCore::RenderMenuList::listSize):
        (WebCore::RenderMenuList::selectedIndex):
        (WebCore::RenderMenuList::itemIsSeparator):
        (WebCore::RenderMenuList::itemIsLabel):
        (WebCore::RenderMenuList::itemIsSelected):
        (WebCore::RenderMenuList::setTextFromItem):
        * rendering/RenderMenuList.h:
        * rendering/RenderSlider.cpp:
        (WebCore::RenderSlider::setValueForPosition):

2009-05-23  David Kilzer  <ddkilzer@apple.com>

        Fix Gtk/Qt builds for PassOwnPtr

        * platform/graphics/cairo/ImageCairo.cpp:
        (WebCore::Image::drawPattern): Use an OwnPtr<ImageBuffer>
        instead of an std::auto_ptr<ImageBuffer> to store the result of
        ImageBuffer::create() now that it returns a
        PassOwnPtr<ImageBuffer>.
        * platform/graphics/qt/PathQt.cpp:
        (WebCore::Path::strokeContains): Ditto.
        (WebCore::Path::strokeBoundingRect): Ditto.

2009-05-23  David Kilzer  <ddkilzer@apple.com>

        Part 2 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr

        <https://bugs.webkit.org/show_bug.cgi?id=25495>

        Reviewed by Oliver Hunt.

        No test cases added since there is no change in behavior.

        * WebCore.base.exp: Updated export for
        HistoryItem::setRedirectURLs() which now takes a PassOwnPtr.
        * dom/Node.cpp:
        (WebCore::Node::childNodes): Use NodeListsNodeData::create()
        instead of new NodeListsNodeData.
        (WebCore::Node::registerDynamicNodeList): Ditto.
        (WebCore::Node::getElementsByTagNameNS): Ditto.
        (WebCore::Node::getElementsByName): Ditto.
        (WebCore::Node::getElementsByClassName): Ditto.
        * dom/NodeRareData.h:
        (WebCore::NodeListsNodeData::create): Added.  Implements
        create() pattern popularized by RefCounted classes.
        (WebCore::NodeListsNodeData::NodeListsNodeData): Declared
        private constructor.
        (WebCore::NodeRareData::setNodeLists): Now takes a PassOwnPtr<>
        instead of an auto_ptr<>.
        * history/HistoryItem.cpp:
        (WebCore::HistoryItem::setRedirectURLs): Ditto.
        * history/HistoryItem.h:
        (WebCore::HistoryItem::setRedirectURLs): Ditto.
        * html/CanvasRenderingContext2D.cpp:
        (WebCore::CanvasRenderingContext2D::drawTextInternal): Use
        OwnPtr<> instead of auto_ptr<> for stack variable.
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::createImageBuffer): Updated to use
        assignment operator now that ImageBuffer::create() returns a
        PassOwnPtr<>.
        * loader/EmptyClients.h:
        (WebCore::EmptyChromeClient::createHTMLParserQuirks): Return a
        PassOwnPtr<> instead of a raw HTMLParserQuirks pointer.
        * page/ChromeClient.h:
        (WebCore::ChromeClient::createHTMLParserQuirks): Ditto.
        * platform/graphics/GeneratedImage.cpp:
        (WebCore::GeneratedImage::drawPattern): Use OwnPtr<> instead of
        auto_ptr<> for stack variable.
        * platform/graphics/ImageBuffer.h:
        (WebCore::ImageBuffer::create): Return PassOwnPtr<> instead of
        auto_ptr<>.  Use OwnPtr<> instead of auto_ptr<> for stack
        variable.
        * platform/mac/ScrollbarThemeMac.mm:
        (WebCore::ScrollbarThemeMac::paint): Use OwnPtr<> instead of
        auto_ptr<> for stack variable.
        * platform/text/TextCodec.h:
        (WebCore::NewTextCodecFunction): Return PassOwnPtr<> instead of
        auto_ptr<>.
        * platform/text/TextCodecICU.cpp:
        (WebCore::newTextCodecICU): Ditto.
        * platform/text/TextCodecLatin1.cpp:
        (WebCore::newStreamingTextDecoderWindowsLatin1): Ditto.
        * platform/text/TextCodecUTF16.cpp:
        (WebCore::newStreamingTextDecoderUTF16LE): Ditto.
        (WebCore::newStreamingTextDecoderUTF16BE): Ditto.
        * platform/text/TextCodecUserDefined.cpp:
        (WebCore::newStreamingTextDecoderUserDefined): Ditto.
        * platform/text/TextEncodingRegistry.cpp:
        (WebCore::newTextCodec): Ditto.
        * platform/text/TextEncodingRegistry.h:
        (WebCore::newTextCodec): Ditto.
        * platform/text/mac/TextCodecMac.cpp:
        (WebCore::newTextCodecMac): Ditto.
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Use
        OwnPtr<> instead of auto_ptr<> for stack variable.
        * svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::drawMaskerContent): Ditto.  Return
        OwnPtr<> instead of auto_ptr<>.
        * svg/SVGMaskElement.h:
        (WebCore::SVGMaskElement::drawMaskerContent): Return OwnPtr<>
        instead of auto_ptr<>.
        * svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern): Use OwnPtr<> instead
        of auto_ptr<> for stack variable.
        * svg/graphics/SVGImage.cpp:
        (WebCore::SVGImage::nativeImageForCurrentFrame): Updated to use
        assignment operator now that ImageBuffer::create() returns a
        PassOwnPtr<>.
        * svg/graphics/SVGPaintServerGradient.cpp:
        (WebCore::createMaskAndSwapContextForTextGradient): Use OwnPtr<>
        instead of auto_ptr<> for stack variable.
        * svg/graphics/SVGPaintServerPattern.cpp:
        (WebCore::SVGPaintServerPattern::setTile): Updated to take a
        PassOwnPtr<> instead of an auto_ptr<>.
        (WebCore::SVGPaintServerPattern::setup): Use OwnPtr<> instead of
        auto_ptr<> for stack variable.
        * svg/graphics/SVGPaintServerPattern.h:
        (WebCore::SVGPaintServerPattern::setTile): Updated to take a
        PassOwnPtr<> instead of an auto_ptr<>.
        * svg/graphics/SVGResourceMasker.cpp:
        (WebCore::SVGResourceMasker::applyMask): Updated to use
        assignment operator now that SVGMaskElement::drawMaskerContent()
        returns a PassOwnPtr<>.  Use OwnPtr<> instead of auto_ptr<> for
        stack variable.

2009-05-23  David Kilzer  <ddkilzer@apple.com>

        Part 1 of 2: Bug 25495: Implement PassOwnPtr and replace uses of std::auto_ptr

        <https://bugs.webkit.org/show_bug.cgi?id=25495>

        Reviewed by Oliver Hunt.

        * ForwardingHeaders/wtf/OwnPtrCommon.h: Added.
        * ForwardingHeaders/wtf/PassOwnPtr.h: Added.
        * WebCore.vcproj/WebCore.vcproj: Added OwnPtrCommon.h and
        PassOwnPtr.h.

2009-05-23  David Kilzer  <ddkilzer@apple.com>

        Fix Mac builds by backing out r44093

        * bindings/js/JSCustomPositionCallback.cpp:
        * bindings/js/JSCustomPositionCallback.h:
        * bindings/js/JSCustomPositionErrorCallback.cpp:
        * bindings/js/JSCustomPositionErrorCallback.h:
        * bindings/js/JSGeolocationCustom.cpp:
        * page/Geolocation.cpp:
        * page/Geolocation.idl:
        * page/Geoposition.cpp:
        * page/Geoposition.h:
        * page/Geoposition.idl:
        * page/Navigator.cpp:
        (WebCore::Navigator::disconnectFrame):
        (WebCore::Navigator::geolocation):
        * page/PositionError.idl:
        * platform/GeolocationService.cpp:
        (WebCore::GeolocationService::create):

2009-05-23  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Eric Seidel.

        Add GEOLOCATION guards around Geolocation API code
        https://bugs.webkit.org/show_bug.cgi?id=25756

        * bindings/js/JSCustomPositionCallback.cpp:
        * bindings/js/JSCustomPositionCallback.h:
        * bindings/js/JSCustomPositionErrorCallback.cpp:
        * bindings/js/JSCustomPositionErrorCallback.h:
        * bindings/js/JSGeolocationCustom.cpp:
        * page/Geolocation.cpp:
        * page/Geolocation.idl:
        * page/Geoposition.cpp:
        * page/Geoposition.h:
        * page/Geoposition.idl:
        * page/Navigator.cpp:
        (WebCore::Navigator::disconnectFrame):
        (WebCore::Navigator::geolocation):
        * page/PositionError.idl:
        * platform/GeolocationService.cpp:

2009-05-23  David Kilzer  <ddkilzer@apple.com>

        Rename startupdateStyleIfNeededDispatcher to startUpdateStyleIfNeededDispatcher

        In r42377, startUpdateRenderingDispatcher() was renamed to
        startupdateStyleIfNeededDispatcher(), but the camelCase "U" was
        dropped.  This change restores it.

        * WebCore.order:
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::startUpdateStyleIfNeededDispatcher):
        (WebCore::AnimationControllerPrivate::addEventToDispatch):
        (WebCore::AnimationControllerPrivate::addNodeChangeToDispatch):
        (WebCore::AnimationControllerPrivate::pauseAnimationAtTime):
        (WebCore::AnimationControllerPrivate::pauseTransitionAtTime):
        * page/animation/AnimationControllerPrivate.h:

2009-05-23  Holger Hans Peter Freyther  <zecke@selfish.org>

        Unreviewed build-fix for Qt. Disable SVG Filters.

        SVG Filters can not be built right now and Qt should not have
        them enabled anyway as they do not carry out any filtering.

        * WebCore.pro:

2009-05-23  Dirk Schulze  <krit@webkit.org>

        Unreviewed build-fix for gtk. Remove source input files
        for SVG filter system from the build for the moment and
        add them later again.

        * GNUmakefile.am:

2009-05-23  Dirk Schulze  <krit@webkit.org>

        Reviewed by Eric Seidel.

        WebKit needs cross-platform filter system
        [https://bugs.webkit.org/show_bug.cgi?id=19991]

        Preparing Filter primitves for the new filter system.

        No testcases were added. SVG filters are off by default.

        * GNUmakefile.am:
        * platform/graphics/filters/FEBlend.cpp:
        (WebCore::FEBlend::apply):
        * platform/graphics/filters/FEBlend.h:
        * platform/graphics/filters/FEColorMatrix.cpp:
        (WebCore::FEColorMatrix::apply):
        * platform/graphics/filters/FEColorMatrix.h:
        * platform/graphics/filters/FEComponentTransfer.cpp:
        (WebCore::FEComponentTransfer::apply):
        * platform/graphics/filters/FEComponentTransfer.h:
        * platform/graphics/filters/FEComposite.cpp:
        (WebCore::FEComposite::apply):
        * platform/graphics/filters/FEComposite.h:
        * svg/Filter.h:
        * svg/FilterBuilder.h:
        (WebCore::FilterBuilder::lastFilter):
        * svg/FilterEffect.cpp:
        (WebCore::FilterEffect::FilterEffect):
        * svg/FilterEffect.h:
        (WebCore::FilterEffect::xBoundingBoxMode):
        (WebCore::FilterEffect::setXBoundingBoxMode):
        (WebCore::FilterEffect::yBoundingBoxMode):
        (WebCore::FilterEffect::setYBoundingBoxMode):
        (WebCore::FilterEffect::widthBoundingBoxMode):
        (WebCore::FilterEffect::setWidthBoundingBoxMode):
        (WebCore::FilterEffect::heightBoundingBoxMode):
        (WebCore::FilterEffect::setHeightBoundingBoxMode):
        (WebCore::FilterEffect::subRegion):
        (WebCore::FilterEffect::setSubRegion):
        (WebCore::FilterEffect::resultImage):
        (WebCore::FilterEffect::setEffectBuffer):
        * svg/graphics/filters/SVGFEConvolveMatrix.cpp:
        (WebCore::FEConvolveMatrix::apply):
        * svg/graphics/filters/SVGFEConvolveMatrix.h:
        * svg/graphics/filters/SVGFEDiffuseLighting.cpp:
        (WebCore::FEDiffuseLighting::apply):
        * svg/graphics/filters/SVGFEDiffuseLighting.h:
        * svg/graphics/filters/SVGFEDisplacementMap.cpp:
        (WebCore::FEDisplacementMap::apply):
        * svg/graphics/filters/SVGFEDisplacementMap.h:
        * svg/graphics/filters/SVGFEFlood.cpp:
        (WebCore::FEFlood::apply):
        * svg/graphics/filters/SVGFEFlood.h:
        * svg/graphics/filters/SVGFEGaussianBlur.cpp:
        (WebCore::FEGaussianBlur::apply):
        * svg/graphics/filters/SVGFEGaussianBlur.h:
        * svg/graphics/filters/SVGFEImage.cpp:
        (WebCore::FEImage::apply):
        * svg/graphics/filters/SVGFEImage.h:
        * svg/graphics/filters/SVGFEMerge.cpp:
        (WebCore::FEMerge::apply):
        * svg/graphics/filters/SVGFEMerge.h:
        * svg/graphics/filters/SVGFEMorphology.cpp:
        (WebCore::FEMorphology::apply):
        * svg/graphics/filters/SVGFEMorphology.h:
        * svg/graphics/filters/SVGFEOffset.cpp:
        (WebCore::FEOffset::apply):
        * svg/graphics/filters/SVGFEOffset.h:
        * svg/graphics/filters/SVGFESpecularLighting.cpp:
        (WebCore::FESpecularLighting::apply):
        * svg/graphics/filters/SVGFESpecularLighting.h:
        * svg/graphics/filters/SVGFETile.cpp:
        (WebCore::FETile::apply):
        * svg/graphics/filters/SVGFETile.h:
        * svg/graphics/filters/SVGFETurbulence.cpp:
        (WebCore::FETurbulence::apply):
        * svg/graphics/filters/SVGFETurbulence.h:

2009-05-22  Dirk Schulze  <krit@webkit.org>

        Unreviewed build-fix for gtk. Breakage caused by a wrong call of ImageBuffer.

        * platform/graphics/cairo/ImageCairo.cpp:
        (WebCore::Image::drawPattern):

2009-05-22  Dirk Schulze  <vbs85@gmx.de>

        Reviewed by Eric Seidel.

        Added the use of tileRect() for a correct drawing of
        border-images.

        Testcases for border-image are in fast/borders like
        border-image-01.html and will be activated for cairo, once
        gtk supports pixel tests.

        https://bugs.webkit.org/show_bug.cgi?id=19652
        [CAIRO] wrong drawing of border-image

        * platform/graphics/cairo/ImageCairo.cpp:
        (WebCore::Image::drawPattern):

2009-05-22  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=25684

        Ask the Scrollbar for the orientation.

        Use Scrollbar::orientation to figure out the
        direction of scrolling.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::valueChanged):

2009-05-22  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6916082> Incorrect handling of % as CSS value.

        Test: fast/css/percent-character-as-value.html

        * css/CSSGrammar.y: Make a stray % character reliably cause
        CSS parsing to succeed, but the CSS value to be ignored because
        of incorrect type. A type of 0 has this effect.

2009-05-22  Brent Fulgham  <bfulgham@webkit.org>

        Reviewed by Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=25971
        Correct a handful of build errors in the Windows Cairo variant
        due to missing VIDEO support.

        * WebCore.vcproj/WebCore.vcproj: Exclude RenderMediaControls for
          the Cairo-based Windows target.
        * rendering/RenderThemeWin.cpp: Avoid #include of RenderMediaControls
          for non-VIDEO builds.

2009-05-22  David Kilzer  <ddkilzer@apple.com>

        One <limits> is enough

        * html/HTMLMediaElement.cpp: Removed duplicate #include <limits>.

2009-05-22  Jon Honeycutt  <jhoneycutt@apple.com>

        <rdar://problem/6915957> REGRESSION: Hang when leaving page with VLC
        plug-in

        Reviewed by Steve Falkenburg.

        * plugins/win/PluginPackageWin.cpp:
        (WebCore::PluginPackage::determineQuirks):
        Look for the VLC plug-in's new name.

2009-05-22  Adam Barth  <abarth@webkit.org>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=25966

        Remove redudant member from Chromium's ResourceRequest.  We already
        have this data in the cross-platform ResourceRequestBase.  Also, rename
        ChromiumBridge parameter to be consistant with the new name for this
        piece of data.

        * platform/chromium/ChromiumBridge.h:
        * platform/network/chromium/ResourceRequest.h:

2009-05-22  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        Only account for overhang for multi-character strings.
        
        https://bugs.webkit.org/show_bug.cgi?id=25961

        * platform/wx/wxcode/win/fontprops.cpp:
        (GetTextExtent):

2009-05-22  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix. Switch to CURL cookies so we can benefit from API updates.

        * platform/wx/TemporaryLinkStubs.cpp:
        * webcore-wx.bkl:

2009-05-22  Peter Kasting  <pkasting@google.com>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=25709 part one
        Indent contents of namespaces in header files, to comply with the
        style guide.  No functional change.

        * platform/image-decoders/ImageDecoder.h:
        (WebCore::RGBA32Buffer::):
        (WebCore::RGBA32Buffer::RGBA32Buffer):
        (WebCore::RGBA32Buffer::clear):
        (WebCore::RGBA32Buffer::bytes):
        (WebCore::RGBA32Buffer::rect):
        (WebCore::RGBA32Buffer::height):
        (WebCore::RGBA32Buffer::status):
        (WebCore::RGBA32Buffer::duration):
        (WebCore::RGBA32Buffer::disposalMethod):
        (WebCore::RGBA32Buffer::hasAlpha):
        (WebCore::RGBA32Buffer::setRect):
        (WebCore::RGBA32Buffer::ensureHeight):
        (WebCore::RGBA32Buffer::setStatus):
        (WebCore::RGBA32Buffer::setDuration):
        (WebCore::RGBA32Buffer::setDisposalMethod):
        (WebCore::RGBA32Buffer::setHasAlpha):
        (WebCore::RGBA32Buffer::setRGBA):
        (WebCore::ImageDecoder::m_failed):
        (WebCore::ImageDecoder::~ImageDecoder):
        (WebCore::ImageDecoder::setData):
        (WebCore::ImageDecoder::size):
        (WebCore::ImageDecoder::frameCount):
        (WebCore::ImageDecoder::repetitionCount):
        (WebCore::ImageDecoder::supportsAlpha):
        (WebCore::ImageDecoder::failed):
        (WebCore::ImageDecoder::setFailed):
        (WebCore::ImageDecoder::clearFrameBufferCache):
        * platform/image-decoders/bmp/BMPImageDecoder.h:
        (WebCore::BMPImageDecoder::filenameExtension):
        * platform/image-decoders/gif/GIFImageDecoder.h:
        (WebCore::GIFImageDecoder::filenameExtension):
        (WebCore::GIFImageDecoder::frameDurationAtIndex):
        (WebCore::GIFImageDecoder::):
        * platform/image-decoders/ico/ICOImageDecoder.h:
        (WebCore::ICOImageDecoder::filenameExtension):
        * platform/image-decoders/jpeg/JPEGImageDecoder.h:
        (WebCore::JPEGImageDecoder::filenameExtension):
        (WebCore::JPEGImageDecoder::supportsAlpha):
        (WebCore::JPEGImageDecoder::reader):
        (WebCore::JPEGImageDecoder::setSize):
        * platform/image-decoders/png/PNGImageDecoder.h:
        (WebCore::PNGImageDecoder::filenameExtension):
        (WebCore::PNGImageDecoder::reader):
        (WebCore::PNGImageDecoder::decodingFailed):
        * platform/image-decoders/xbm/XBMImageDecoder.h:
        (WebCore::XBMImageDecoder::filenameExtension):

2009-05-22  Dominik Röttsches  <dominik.roettsches@access-company.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=15914
        [GTK] Implement Unicode functionality using GLib

        Minor changes that allow building a hybrid version of WebKit
        that has WTF Unicode backend based on GLib functions while
        text codecs and TextBreakIterator remain based on ICU.

        Fixed some includes that were assuming a WTF ICU backend and
        introduced temporary usage of WTF_USE_GLIB_ICU_UNICODE_HYBRID
        macro.

        * platform/ThreadGlobalData.cpp:
        (WebCore::ThreadGlobalData::ThreadGlobalData):
        (WebCore::ThreadGlobalData::~ThreadGlobalData):
        * platform/ThreadGlobalData.h:
        * platform/text/TextBoundariesICU.cpp:
        * platform/text/TextCodecICU.h:
        * platform/text/TextEncoding.cpp:
        (WebCore::TextEncoding::encode):
        * platform/text/TextEncodingRegistry.cpp:
        (WebCore::buildBaseTextCodecMaps):
        (WebCore::extendTextCodecMaps):

2009-05-22  Adam Barth  <abarth@webkit.org>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=25955

        Remove the policyBaseURL parameter from setCookie.  This parameter is
        redundant with the document parameter.

        * WebCore.base.exp:
        * WebCore.order:
        * dom/Document.cpp:
        (WebCore::Document::setCookie):
        * platform/CookieJar.h:
        * platform/mac/CookieJar.mm:
        (WebCore::setCookies):
        * platform/network/chromium/CookieJarChromium.cpp:
        (WebCore::setCookies):
        * platform/network/curl/CookieJarCurl.cpp:
        (WebCore::setCookies):
        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::setCookies):
        * platform/network/win/CookieJarCFNetWin.cpp:
        (WebCore::setCookies):
        * platform/network/win/CookieJarWin.cpp:
        (WebCore::setCookies):
        * platform/qt/CookieJarQt.cpp:
        (WebCore::setCookies):

2009-05-22  Adam Barth  <abarth@webkit.org>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=25955

        Rename policyBaseURL and mainDocumentURL to firstPartyForCookies.  The
        previous names were confusing and inaccurate.

        * WebCore.order:
        * dom/Document.cpp:
        (WebCore::Document::setCookie):
        * dom/Document.h:
        (WebCore::Document::firstPartyForCookies):
        (WebCore::Document::setFirstPartyForCookies):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::begin):
        (WebCore::FrameLoader::updateFirstPartyForCookies):
        (WebCore::FrameLoader::setFirstPartyForCookies):
        (WebCore::FrameLoader::open):
        (WebCore::FrameLoader::addExtraFieldsToRequest):
        (WebCore::FrameLoader::loadResourceSynchronously):
        * loader/FrameLoader.h:
        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::willSendRequest):
        (WebCore::ResourceRequestBase::adopt):
        (WebCore::ResourceRequestBase::copyData):
        (WebCore::ResourceRequestBase::firstPartyForCookies):
        (WebCore::ResourceRequestBase::setFirstPartyForCookies):
        (WebCore::equalIgnoringHeaderFields):
        * platform/network/ResourceRequestBase.h:
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        * platform/network/chromium/CookieJarChromium.cpp:
        (WebCore::setCookies):
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::ResourceRequest::doUpdateResourceRequest):
        (WebCore::ResourceRequest::doUpdatePlatformRequest):
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::firstPartyForCookies):
        (WebCore::ResourceRequestBase::setFirstPartyForCookies):
        * platform/network/chromium/CookieJarChromium.cpp:
        (WebCore::setCookies):
        * platform/network/curl/CookieJarCurl.cpp:
        (WebCore::setCookies):
        * platform/network/soup/CookieJarSoup.cpp:
        (WebCore::setCookies):
        * platform/network/win/CookieJarCFNetWin.cpp:
        (WebCore::setCookies):
        * platform/network/win/CookieJarWin.cpp:
        (WebCore::setCookies):
        * platform/qt/CookieJarQt.cpp:
        (WebCore::setCookies):

2009-05-22  Pavel Feldman  <pfeldman@chromium.org>

        Fix the call to editingCancelled to be this._editingCancelled, since
        editingCancelled doesn't exist and throws an exception.

        <https://bugs.webkit.org/show_bug.cgi?id=24881>

        Reviewed by Timothy Hatcher.

        * inspector/front-end/ElementsTreeOutline.js:
        (WebInspector.ElementsTreeElement.prototype._attributeEditingCommitted):

2009-05-22  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25928
        Several errors detected by cppcheck

        Fix all (the only one) problem in cross-platform code found by the tool. Port maintainers
        should take a look at other reports.

        * css/CSSParser.cpp: (WebCore::CSSParser::addProperty): Don't leak the property even if there
        are billions of those.

2009-05-22  Shinichiro Hamaji  <hamaji@google.com>

        Reviewed by Oliver Hunt.

        Remove optimization path alpha=0 case from GraphicContext(CG|Skia).
        This optimization doesn't make sense for some composite mode (e.g., 'copy' operation).

        https://bugs.webkit.org/show_bug.cgi?id=25956

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::GraphicsContext::drawRect):
        (WebCore::GraphicsContext::drawLine):
        (WebCore::GraphicsContext::strokeArc):
        (WebCore::GraphicsContext::drawConvexPolygon):
        (WebCore::GraphicsContext::fillPath):
        (WebCore::GraphicsContext::strokePath):
        (WebCore::GraphicsContext::fillRect):
        (WebCore::GraphicsContext::fillRoundedRect):
        (WebCore::GraphicsContext::strokeRect):
        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::drawConvexPolygon):
        (WebCore::GraphicsContext::drawEllipse):
        (WebCore::GraphicsContext::fillPath):
        (WebCore::GraphicsContext::fillRect):
        (WebCore::GraphicsContext::strokePath):
        (WebCore::GraphicsContext::strokeRect):

2009-05-22  Xan Lopez  <xlopez@igalia.com>

        Unreviewed build fix.

        Revert the whole thing, since we can't figure out a way to make it
        work in all platforms.

        * rendering/SVGInlineTextBox.cpp:
        (WebCore::pathForDecoration):
        * svg/SVGLength.cpp:
        (WebCore::SVGLength::PercentageOfViewport):

2009-05-22  Xan Lopez  <xlopez@igalia.com>

        Try to fix Windows build.

        Apparently it can't tell if '1.0f' is float or double, so cast to
        float.

        * rendering/SVGInlineTextBox.cpp:
        (WebCore::pathForDecoration):

2009-05-22  Xan Lopez  <xlopez@igalia.com>

        Try to fix breakage from the previous patch.

        * rendering/SVGInlineTextBox.cpp:
        (WebCore::pathForDecoration):
        * svg/SVGLength.cpp:
        (WebCore::SVGLength::PercentageOfViewport):

2009-05-15  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Maciej Stachowiak.

        https://bugs.webkit.org/show_bug.cgi?id=25805
        In debug build, mingw win32 build has problems with powf

        Change C-style calls to powf and sqrtf to C++-style calls to
        overloaded pow and sqrt. This solves also a problem with mingw
        compiler during the debug build.

        * rendering/SVGInlineTextBox.cpp:
        (WebCore::pathForDecoration):
        * svg/SVGLength.cpp:
        (WebCore::SVGLength::PercentageOfViewport):

2009-05-21  Stephanie Lewis  <slewis@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/6913680> Update image caching options.
        Disable extra ImageIO cache because we already handle caching decoded image data.

        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::imageSourceOptions):

2009-05-21  Albert J. Wong  <ajwong@chromium.org>

        Reviewed by Eric Seidel.

        Bug 25903: Create a default UI theme for media controls in Chromium.
        https://bugs.webkit.org/show_bug.cgi?id=25903

        Implement a default UI for chromium.  Add a style sheet for Chromium
        media controls with good defaults and implemented basic draw functions
        for play/pause & mute buttons.

        * css/mediaControlsChromium.css: Added.
        * rendering/RenderThemeChromiumLinux.cpp:
        (WebCore::RenderThemeChromiumWin::extraMediaControlsStyleSheet): Export
        our custom media controls style sheet.
        (WebCore::RenderThemeChromiumLinux::paintMediaButtonInternal): Paint
        buttons respecting chromium media controls color scheme.
        (WebCore::RenderThemeChromiumLinux::paintMediaPlayButton): Paint logic
        specific to play/pause button.
        (WebCore::RenderThemeChromiumLinux::paintMediaMuteButton): Paint
        specific to mute button.
        * rendering/RenderThemeChromiumLinux.h: Appropriate header changes.
        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore::RenderThemeChromiumWin::extraMediaControlsStyleSheet): Export
        our custom media controls style sheet.
        (WebCore::RenderThemeChromiumWin::paintMediaButtonInternal): Paint
        buttons respecting chromium media controls color scheme.
        (WebCore::RenderThemeChromiumWin::paintMediaPlayButton): Paint logic
        specific to play/pause button.
        (WebCore::RenderThemeChromiumWin::paintMediaMuteButton): Paint specific
        to mute button.
        (WebCore::RenderThemeChromiumWin::setDefaultFontSize): Appropriate
        header changes.
        * rendering/RenderThemeChromiumWin.h:

2009-05-21  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        When stripping the query from a file:// URL, do not leave a trailing question mark.
        
        https://bugs.webkit.org/show_bug.cgi?id=25940

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::initializeHandle):

2009-05-21  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        Notify ImageObserver::didDraw to help the cache purge alive resources.

        https://bugs.webkit.org/show_bug.cgi?id=25942

        * platform/graphics/wx/ImageWx.cpp:
        (WebCore::BitmapImage::draw):
        (WebCore::BitmapImage::drawPattern):

2009-05-21  Evan Martin  <evan@chromium.org>

        Reviewed by Eric Seidel.

        Flesh out font fallback for Chromium's Skia port.
        getLastResortFallbackFont should fall back on well-known fonts.
        https://bugs.webkit.org/show_bug.cgi?id=25860

        * platform/graphics/chromium/FontCacheLinux.cpp:
        (WebCore::FontCache::getLastResortFallbackFont): try known font names.

2009-05-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - speculative fix for <rdar://problem/6890716> crash at
          FontCache::purgeInactiveFontData + 199

        * platform/graphics/FontCache.cpp:
        (WebCore::FontCache::purgeInactiveFontData): Deleting a SimpleFontData
        can cause releaseFontData() to be called, which modifies
        gInactiveFontData. Therefore, avoid deleting SimpleFontData instances
        while iterating over gInactiveFontData and delete them afterwards.

2009-05-21  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.
        
        Test for <rdar://problem/6910832> | https://bugs.webkit.org/show_bug.cgi?id=25907
        Incorrect URL returned to the DOM while the user drags a file

        * page/DragController.cpp:
        (WebCore::DragController::dragExited):
        (WebCore::DragController::tryDHTMLDrag): Don't base our decision on KURL,
        since that only looks at the text of the document's URL. Do base our
        decision on the securityOrigin(), which knows more about the document's
        actual origin.

2009-05-21  Dan Bernstein  <mitz@apple.com>

        Rubber-stamped by Mark Rowe.

        - fix https://bugs.webkit.org/show_bug.cgi?id=25947
          Assertion failure in FrameLoader::transitionToCommitted on launch in
          Safari with r43985

        Rolled out r43979.

        * platform/MIMETypeRegistry.cpp:
        (WebCore::initializeSupportedNonImageMimeTypes):
        (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType):

2009-05-21  Sam Weinig  <sam@webkit.org>

        Reviewed by Brady Eidson and Mark Rowe.

        Fix for <rdar://problem/6901522>
        REGRESSION: Office 2008: Preview with browser is not shown, and Finder window is in the front of Safari

        If the NSURLRequest is annotated with a "ForceHTMLMIMEType" property, force
        the MIME type to be text/html.

        * platform/network/mac/ResourceHandleMac.mm:
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):

2009-05-21  Kevin Ollivier  <kevino@theolliviers.com>

        Blind windows fix after last commit.

        * platform/Logging.cpp:
        (WebCore::getChannelFromName):

2009-05-21  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        Use an environment variable to control which logs are on and off.
        Also, make a generic function for translating channel name to its log.
        
        https://bugs.webkit.org/show_bug.cgi?id=25936

        * platform/Logging.cpp:
        (WebCore::getChannelFromName):
        * platform/Logging.h:
        * platform/wx/LoggingWx.cpp:
        (WebCore::InitializeLoggingChannelsIfNecessary):

2009-05-21  David Levin  <levin@chromium.org>

        Reviewed by Darin Fisher.

        Bug 25946: Chromium needs MIMETypeRegistry::getMediaMIMETypeForExtension implementation.
        https://bugs.webkit.org/show_bug.cgi?id=25946

        A very simple implementation to keep it working.  A bug has been filed in the chromium db
        (http://code.google.com/p/chromium/issues/detail?id=12441) to investigate doing something more
        complete.

        * platform/chromium/MimeTypeRegistryChromium.cpp:
        (WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension):

2009-05-20  Siddhartha Chattopadhyaya  <sidchat@google.com>

        Reviewed by Justin Garcia.
        
        Add automatic spell correction support in WebKit

        https://bugs.webkit.org/show_bug.cgi?id=24953

        * editing/Editor.cpp:
        (WebCore::findFirstMisspellingInRange):
        (WebCore::Editor::advanceToNextMisspelling):
        (WebCore::Editor::markMisspellingsAfterTypingToPosition):
        (WebCore::markAllMisspellingsInRange):
        (WebCore::markMisspellingsOrBadGrammar):
        (WebCore::Editor::markMisspellings):
        (WebCore::Editor::markBadGrammar):
        (WebCore::Editor::markMisspellingsAndBadGrammar):
        * editing/Editor.h:
        * loader/EmptyClients.h:
        (WebCore::EmptyEditorClient::getAutoCorrectSuggestionForMisspelledWord):
        * page/EditorClient.h:

2009-05-21  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Darin Adler.

        Text files which have sub MIME types are treated as not displayable
        http://bugs.webkit.org/show_bug.cgi?id=24903

        * platform/MIMETypeRegistry.cpp:
        (WebCore::initializeSupportedNonImageMimeTypes):
        (WebCore::MIMETypeRegistry::isSupportedNonImageMIMEType): Regard any
        MIME type beginning with "text/" as supported and remove all "text/"
        types from the list.

2009-05-21  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by David Kilzer.

        https://bugs.webkit.org/show_bug.cgi?id=25890
        Implement Network logging channel on Mac

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::~ResourceHandle):
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::cancel):
        (WebCore::ResourceHandle::setDefersLoading):
        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]):
        (-[WebCoreResourceHandleAsDelegate connectionShouldUseCredentialStorage:]):
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]):
        (-[WebCoreResourceHandleAsDelegate connection:didCancelAuthenticationChallenge:]):
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]):
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveData:lengthReceived:]):
        (-[WebCoreResourceHandleAsDelegate connection:willStopBufferingData:]):
        (-[WebCoreResourceHandleAsDelegate connection:didSendBodyData:totalBytesWritten:totalBytesExpectedToWrite:]):
        (-[WebCoreResourceHandleAsDelegate connectionDidFinishLoading:]):
        (-[WebCoreResourceHandleAsDelegate connection:didFailWithError:]):
        (-[WebCoreResourceHandleAsDelegate connection:willCacheResponse:]):
        Added logging for async requests (as these are most interesting).

2009-05-21  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by David Kilzer.

        <rdar://problem/6902197> WebCore doesn't know about all of the MIME types supported by QTKit
        
        Add a static table to map from some common file extensions to their MIME types so it
        is possible to detect support even when the platform mapping is incomplete. Use the
        table to lookup types not found by UTI on the OSX, and when looking for a media engine
        with a generic or missing type.

        * platform/MIMETypeRegistry.cpp:
        (WebCore::initializeMediaTypeMaps): New, initialize the mediaMIMETypeForExtensionMap.
        (WebCore::MIMETypeRegistry::getMediaMIMETypeForExtension): New. Look for the specified
        MIME type in the static mapping table if the platform specific getMIMETypeForExtension
        doesn't find a match.
        * platform/MIMETypeRegistry.h: Declare getMediaMIMETypeForExtension.

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::load): When the type passed is empty, "application/octet-stream", or
        "text/plain", try to look it up based on the file extension with getMediaMIMETypeForExtension.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::addFileTypesToCache): See if getMediaMIMETypeForExtension can map from file extension
        to MIME type if UTI fails.

2009-05-21  Eric Seidel  <eric@webkit.org>

        Reviewed by Alexey Proskuryakov.

        Clean up DragController
        https://bugs.webkit.org/show_bug.cgi?id=25926

        I renamed m_document to m_documentUnderMouse to better document what it does
        I could call it m_lastDocumentUnderMouse to be most-accurate, but this seemed
        long enough.

        I also saw copy/paste code involving clearing the selection when moving out of
        one document and into another.  I moved that code into a function called
        mouseMovedIntoDocument.

        I also got rid of a couple needless null-checks after confirming via source
        inspection they were not ever possible.
        In Mac WebKit it's not possible to have a Page that doesn't have a mainFrame()
        I left an ASSERT(m_page->mainFrame()) in case some other port ever violates this.
        It's also not possible to return a document from documentAtPoint that is not
        in a frame (as such a document would not be rendered).

        No functional changes, thus no tests.

        * page/DragController.cpp:
        (WebCore::DragController::DragController):
        (WebCore::DragController::dragIsMove):
        (WebCore::DragController::dragExited):
        (WebCore::DragController::performDrag):
        (WebCore::DragController::mouseMovedIntoDocument):
        (WebCore::DragController::dragEnteredOrUpdated):
        (WebCore::DragController::tryDocumentDrag):
        (WebCore::DragController::operationForLoad):
        (WebCore::DragController::concludeEditDrag):
        (WebCore::DragController::canProcessDrag):
        (WebCore::DragController::tryDHTMLDrag):
        (WebCore::DragController::placeDragCaret):
        * page/DragController.h:
        (WebCore::DragController::documentUnderMouse):

2009-05-21  Eric Seidel  <eric@webkit.org>

        Reviewed by Alexey Proskuryakov.

        Rename DragController::dragOperation() to sourceDragOperation() for clarity
        Remove unused setDragOperation()

        There are two times DragOperation is used.  The source specifies
        what drag operations it supports (in a mask) and the destination
        picks a subset of those as DragOperations it supports if a drop were
        to occur.  I was confused when I first saw this accessor as to which
        it meant.  It turns out that this is only used when WebKit starts a
        drag, and we keep it around so that we can provide this information
        to other Mac OS X applications when they ask.  I've renamed the method
        for clarity so the next person in this code will be less confused.

        No functional changes, thus no tests.

        * page/DragController.h:
        (WebCore::DragController::sourceDragOperation):

2009-05-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - WebCore part of <rdar://problem/6901751> REGRESSION (r35515): Tiger
          crash painting the selection on registration page of car2go.com

        A bug in old versions of Core Graphics causes memory corruption to occur
        when clipping under certain conditions. Make the clipping functions
        fail silently under those conditions.

        Test: fast/block/float/selection-gap-clip-out-tiger-crash.html

        * WebCore.Tiger.exp: Added wkCGContextIsSafeToClip
        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::safeCGContextClip): Added a wrapper around CGContextClip that,
        on Tiger, bails out if wkCGContextIsSafeToClip() returns false.
        (WebCore::safeCGContextEOClip): Ditto for CGContextEOClip.
        (WebCore::safeCGContextClipToRect): Ditto for CGContextClipToRect.
        (WebCore::GraphicsContext::fillPath): Changed to call the safe variants
        of CGContextClip, CGContextEOClip and CGContextClipToRect.
        (WebCore::GraphicsContext::strokePath): Ditto.
        (WebCore::GraphicsContext::fillRect): Ditto.
        (WebCore::GraphicsContext::clip): Ditto.
        (WebCore::GraphicsContext::clipOut): Ditto.
        (WebCore::GraphicsContext::clipOutEllipseInRect): Ditto.
        (WebCore::GraphicsContext::clipPath): Ditto.
        (WebCore::GraphicsContext::addInnerRoundedRectClip): Ditto.
        (WebCore::GraphicsContext::strokeRect): Ditto.
        * platform/mac/WebCoreSystemInterface.h: Added wkCGContextIsSafeToClip.
        * platform/mac/WebCoreSystemInterface.mm: Added wkCGContextIsSafeToClip.

2009-05-21  Xan Lopez  <xlopez@igalia.com>

        Unreviewed build fix.

        https://bugs.webkit.org/show_bug.cgi?id=25910
        WebkitGTK r43960 cannot compile

        Do not include local copy of guriescape header, which was
        removed. We now use the copy in glib.

        * platform/gtk/FileSystemGtk.cpp:

2009-05-20  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25706

        It turns out the CurrentContext wasn't currect either because it gave
        us the frame for the write() function itself.  We actually want the
        *calling* context.

        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::CALLBACK_FUNC_DECL):

2009-05-20  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Gustavo Noronha.

        [GTK] Implement Image::loadPlatformResource.

        Install the four resources we are using. For the icons
        where an icon name is specified by freedeskop.org try to
        map the WebCore name to that name and fallback to the
        internal icon. For everything else use the internal icon
        name. Remove the temporary link stub as this is not
        required any more.

        * GNUmakefile.am: Install the png files, set DATA_DIR again
        * Resources/panIcon.png: Copied from WebKit/win/WebKit.vcproj/panIcon.png.
        * platform/graphics/gtk/ImageGtk.cpp:
        (WTF::GtkIconInfo): Add template specialization for GtkIconInfo
        (WebCore::getIconFileNameOrFallback): Use GtkIconTheme to get the icon
        (WebCore::loadResourceIntoSharedBuffer):
        (WebCore::Image::loadPlatformResource): Implement
        * platform/gtk/TemporaryLinkStubs.cpp: Remove link stub

2009-05-20  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=19357

        [GTK] The Gtk+ port wants to have a themable
        urlIcon too.

        * loader/icon/IconDatabase.cpp:

2009-05-20  Stephanie Lewis  <slewis@apple.com>

        Update the order files.  <rdar://problem/6881750> Generate new order files.

        * WebCore.order:

2009-05-20  Mark Rowe  <mrowe@apple.com>

        Reviewed by Gavin Barraclough.

        Fix some assertion failures in plug-in tests on the Windows debug build bot.

        * plugins/PluginStream.cpp:
        (WebCore::PluginStream::startStream): Switch to using protocolIsJavaScript.
        * plugins/PluginView.cpp:
        (WebCore::scriptStringIfJavaScriptURL): Ditto.

2009-05-20  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        More protocolInHTTPFamily() cleanup.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::send):

2009-05-20  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Fix for <rdar://problem/6905475>
        Office 2008: Entourage: Crash when you switch to "My Day" view

        The host function callback callObjCFallbackObject was not annotated
        with JSC_HOST_CALL which meant that when it was called by the JIT, which
        expects the JSC_HOST_CALL calling convention, the arguments are not in the
        expected places.

        * bridge/objc/objc_runtime.mm:
        (JSC::Bindings::callObjCFallbackObject): Added missing JSC_HOST_CALL
        annotation on callObjCFallbackObject.

2009-05-20  David Levin  <levin@chromium.org>

        Not Reviewed, build fix.

        Need to disable this assert while the chormium code is fixed for it.

        * platform/KURLGoogle.cpp:
        (WebCore::KURL::protocolIs):

2009-05-20  David Levin  <levin@chromium.org>

        Not Reviewed, build fix.

        Change KURLGoogle.cpp to mirror the KURL.cpp changes done in
        http://trac.webkit.org/changeset/43929.  Fix assert placement.

        * platform/KURLGoogle.cpp:
        (WebCore::KURL::protocolIs):
        (WebCore::protocolIs):

2009-05-20  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.

        Upstream V8 bindings for V8DomWindow.
        https://bugs.webkit.org/show_bug.cgi?id=25869

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8Custom::WindowSetTimeoutImpl): Moved from v8_custom.cpp.
        (WebCore::isAscii): Moved from v8_custom.cpp.
        (WebCore::convertBase64): Moved from v8_custom.cpp.
        (WebCore::CALLBACK_FUNC_DECL): Moved from v8_custom.cpp.
        (WebCore::eventNameFromAttributeName): Moved from v8_custom.cpp.
        (WebCore::ACCESSOR_SETTER): Moved from v8_custom.cpp.
        (WebCore::ACCESSOR_GETTER): Moved from v8_custom.cpp.
        (WebCore::NAMED_ACCESS_CHECK): Moved from v8_custom.cpp.
        (WebCore::INDEXED_ACCESS_CHECK): Moved from v8_custom.cpp.

2009-05-21  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Jan Alonzo.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::parseDataUrl): Always use Glib Base64 decoding.

2009-05-21  Christian Dywan  <christian@twotoasts.de>

        Rubberstamped by Gustavo Noronha.

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::parseDataUrl): Remove Gtk/ Glib Base64 decoding.

2009-05-20  Christian Dywan  <christian@twotoasts.de>

        Reviewed by Gustavo Noronha.

        * GNUmakefile.am:
        * platform/gtk/guriescape.c:
        * platform/gtk/guriescape.h: Remove copies of g_uri_escape_string and
        g_uri_unescape_string now that we require Glib 2.16.

2009-05-20  David Levin  <levin@chromium.org>

        Not Reviewed, build fix.

        Change KURLGoogle.cpp to mirror the KURL.cpp changes done in
        http://trac.webkit.org/changeset/43929.

        * platform/KURLGoogle.cpp:
        (WebCore::protocolIsJavaScript):
        (WebCore::protocolIs):

2009-05-20  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Sam Weinig

        At all call sites that check if a KURL has either the http or https protocol,
        use the KURL::protocolInHTTPFamily() accessor, instead.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::iconURL):
        (WebCore::FrameLoader::didOpenURL):
        (WebCore::FrameLoader::open):

        * loader/appcache/ApplicationCache.cpp:
        (WebCore::ApplicationCache::requestIsHTTPOrHTTPSGet):

        * loader/loader.cpp:
        (WebCore::Loader::load):

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::send):

2009-05-20  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Fix <rdar://problem/6904941> and https://bugs.webkit.org/show_bug.cgi?id=25300

        KURL parsing changes back in r30243 and r30815 made javascript urls that use the form
        "javascript://" be detected as invalid hierarchical URLs.  When a KURL is marked as
        invalid, you can no longer ask it a question such as "is your protocol javascript?"
        Therefore FrameLoader wouldn't recognize them as javascript URLs and instead try to
        navigate to them.

        URL parsing rules aside, such URLs are in use in the wild (Microsoft's Virtual Earth 
        being a high profile example) and actually represent valid javascript.

        Whenever checking for javascript urls, the new protocolIsJavaScript() should be used
        as it functions on a String which doesn't have to pass KURLs parsing rules. 

        Test: fast/loader/javascript-url-hierarchical-execution.html

        * bindings/js/JSAttrCustom.cpp:
        (WebCore::JSAttr::setValue): Use protocolIsJavaScript().
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::setLocation): Ditto.
        (WebCore::createWindow): Ditto.
        (WebCore::JSDOMWindow::open): Ditto.
        * bindings/js/JSElementCustom.cpp:
        (WebCore::allowSettingSrcToJavascriptURL): Ditto.
        * bindings/js/JSHTMLFrameElementCustom.cpp:
        (WebCore::allowSettingJavascriptURL): Ditto.
        * bindings/js/JSHTMLIFrameElementCustom.cpp:
        (WebCore::JSHTMLIFrameElement::setSrc): Ditto.
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::navigateIfAllowed): Ditto.
        (WebCore::JSLocation::reload): Ditto.
        * editing/markup.cpp:
        (WebCore::appendQuotedURLAttributeValue): Ditto.
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseMappedAttribute): Ditto.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::requestFrame): Ditto.
        (WebCore::FrameLoader::submitForm): Ditto.
        (WebCore::FrameLoader::executeIfJavaScriptURL): Ditto.
        
        * platform/KURL.cpp:
        (WebCore::KURL::init): Use protocolIsJavaScript().
        (WebCore::KURL::protocolIs): ASSERT that the protocol being asked about is not javascript.
           Such checks should go through protocolIsJavaScript() instead.
        (WebCore::encodeRelativeString): Use protocolIsJavaScript().
        (WebCore::protocolIsJavaScript):
        * platform/KURL.h:

2009-05-20  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Anders Carlsson.

        https://bugs.webkit.org/show_bug.cgi?id=24510

        Fix a bug where the browserfuncs were not properly assigned,
        make hasproperty use _NP_HasProperty and hasmethod _NP_HasMethod.

        Test: plugins/netscape-invoke-browserfuncs.html

        * plugins/gtk/PluginPackageGtk.cpp:
        (WebCore::PluginPackage::load): Fix assignment
        * plugins/qt/PluginPackageQt.cpp:
        (WebCore::PluginPackage::load): Fix assignment

2009-05-20  Sam Weinig  <sam@webkit.org>

        Reviewed by Timothy Hatcher.

        Make absoluteRectsForRange and absoluteQuadsForRange non-virtual
        and only exist on RenderText.

        * dom/Range.cpp:
        (WebCore::Range::textRects):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::drawNodeHighlight): Use absoluteQuads instead
        of absoluteQuadsForRange since no range is being specifiec.
        * rendering/RenderObject.cpp:
        * rendering/RenderObject.h:
        * rendering/RenderText.h:

2009-05-20  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Implement AtkObject::focus-event and
        AtkObject::state-changed:focused signal emission.

        Adds a new handleFocusedUIElementChangedWithRenderers, only in the
        GTK port, called at the same point than
        handleFocusedUIElementChanged but with two parameters, the old and
        the newly focused RenderObjects. We need this, since the ATK
        signals require us to pass the objects involved in the focus
        change as arguments.

        * accessibility/AXObjectCache.h:
        * accessibility/gtk/AXObjectCacheAtk.cpp:
        (WebCore::AXObjectCache::handleFocusedUIElementChangedWithRenderers):
        * dom/Document.cpp:
        (WebCore::Document::setFocusedNode):

2009-05-20  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25834

        Make ChromeClient a interface again

        With recent additions to ChromeClient.h empty defaults were
        added. This is bad for porters as these changes go unnoticed
        and at runtime no notImplemented warning is logged and grepping
        for notImplemented will not show anything. Change this Client
        to be like the other Clients again and always have pure virtuals
        (but for stuff inside #ifdef PLATFORM(MAC)).

        Update the various WebKit/* implementations to compile again.

        * loader/EmptyClients.h: Add empty defaults
        (WebCore::EmptyChromeClient::setCursor):
        (WebCore::EmptyChromeClient::scrollRectIntoView):
        (WebCore::EmptyChromeClient::requestGeolocationPermissionForFrame):
        * page/ChromeClient.h: Make methods pure virtual

2009-05-19  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Simon Hausmann.

        Fix a bug where a non visible plugin would show it self in a
        sibling frame. The problem was due to our clipping. In Qt,
        if setMask is set with an empty QRegion, no clipping will
        be performed, so in that case we hide the PluginContainer

        Added manual test.

        * plugins/qt/PluginContainerQt.cpp:
        (PluginContainerQt::adjustGeometry):
        * manual-tests/qt/plugin-sibling-frame-include.html
        * manual-tests/qt/plugin-sibling-frame.html

2009-05-19  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Simon Hausmann.

        Do not call the parent implementation (Widget::) in show() and hide()
        of the PluginViewQt, as it always changes the visible state of the
        platformWidget (equal to the platformPluginWidget in the Qt port),
        thus ignoring the isParentVisible() test.

        * plugins/qt/PluginViewQt.cpp:
        (WebCore::PluginView::show):
        (WebCore::PluginView::hide):

2009-05-20  Yichao Yin  <yichao.yin@torchmobile.com.cn>

        Reviewed by George Staikos.

        https://bugs.webkit.org/show_bug.cgi?id=23452
        Change the implementation of HTMLNoScriptElement to avoid the pain of 
        adding virtual function for XHTMLMP support

        Includes changes suggested by Simon Fraser.

        * dom/Node.cpp:
        (WebCore::Node::styleForRenderer):
        * dom/Node.h:
        * html/HTMLNoScriptElement.cpp:
        * html/HTMLNoScriptElement.h:

2009-05-20  Kevin Ollivier  <kevino@theolliviers.com>

        CURL backend build fix. Make sure URL is always set.
        
        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::downloadTimerCallback):

2009-05-20  Yongjun Zhang  <yongjun.zhang@nokia.com>

        Reviewed by George Staikos.

        Fix Qt WebKit build break in Mac OS.

        * platform/FileSystem.h:

2009-05-20  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Rubber-stamped by Eric Seidel.

        Enable code that was commented out waiting for a way to get a
        GdkPixbuf from an image, effectively enabling copying images to
        the clipboard.

        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::writeImage):

2009-05-20  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo.

        https://bugs.webkit.org/show_bug.cgi?id=25414
        [GTK] ROLE_PANEL should not be used for paragraphs and list items.

        Implement Atk list item role for list items.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_get_role):

2009-05-20  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Jan Alonzo.

        https://bugs.webkit.org/show_bug.cgi?id=25414
        [GTK] ROLE_PANEL should not be used for paragraphs and list items.

        Implement Atk paragraph role for paragraph elements.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:
        (webkit_accessible_get_role):

2009-05-20  Eric Seidel  <eric@webkit.org>

        Fix bug URL in ChangeLogs in r43903.
        https://bugs.webkit.org/show_bug.cgi?id=25742

2009-05-20  Takeshi Yoshino <tyoshino@google.com>

        Reviewed by Eric Seidel.

        Bug 24539: Fix RenderThemeChromiumWin::paintTextFieldInternal() not to hide background image.
        https://bugs.webkit.org/show_bug.cgi?id=25742

        Fix RenderThemeChromiumWin::paintTextFieldInternal().

        We shouldn't paint the content area of text fields when o->style() has
        background image or transparent background color. paintTextFieldInternal() is
        used for painting inner area of HTML option elements by Chromium.

        When we pass fillContentArea = true to ChromiumBridge::paintTextField, it hides
        the background image rendered by RenderBoxModelObject. So, we should set
        fillContentArea = false in such case.

        Besides, when background-color:transparent is specified for CSS property,
        o->style().backgroundColor returns black color with alpha channel == 0. But
        since ThemeEngine for Windows behind ChromiumBridge::paintTextField cannot
        recognize alpha channel, it fills the rect with black. I made workaround to set
        fillContentArea = false when alpha channel == 0 to avoid this.

        And more, I'd like to fallback the color passed to ChromiumBridge to white when
        o->style()->backgroundColor() is invalid.

        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore::RenderThemeChromiumWin::paintTextFieldInternal):

2009-05-20  Shinichiro Hamaji  <hamaji@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25417
        Map CompositeCopy to Skia's kSrc_Mode composite operation.

        Test: fast/canvas/canvas-composite-alpha.html

        * platform/graphics/skia/SkiaUtils.cpp:
        (WebCore::):

2009-05-20  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Rubber-stamped by Xan Lopez.

        Remove misplaced extern "C"

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-05-20  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [GTK] Expose password field with role of PASSWORD_TEXT
        https://bugs.webkit.org/show_bug.cgi?id=25682

        Check if input type is a password field and return
        ATK_ROLE_PASSWORD_TEXT if it is.

        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-05-20  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by George Staikos.

        BUG 25845: [Qt] Fix QtWebKit pkgconfig dependencies
        <https://bugs.webkit.org/show_bug.cgi?id=25845>

        * WebCore.pro: Remove QtDBus; remove QtXml if Qt >= 4.4

2009-05-20  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by George Staikos.

        BUG 25843: [Qt] Remove qt-port build flag
        <https://bugs.webkit.org/show_bug.cgi?id=25843>

        * bridge/testbindings.pro:

2009-05-20  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by George Staikos.

        https://bugs.webkit.org/show_bug.cgi?id=25824

        [Qt] Cleanup - move files exclusive to JAVASCRIPT_DEBUGGER
        and WORKERS under the appropriate build section

        * WebCore.pro:

2009-05-20  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Unreviewed Qt build fix, after r43892.

        * platform/graphics/qt/ImageQt.cpp: included ImageObservser.h

2009-05-20  Yongjun Zhang  <yongjun.zhang@nokia.com>

        Reviewed by Simon Hausmann.

        https://bugs.webkit.org/show_bug.cgi?id=25856
        [Qt] notify an image has been drawn, to help Cache purge alive decoded data.

        * platform/graphics/qt/ImageQt.cpp:
        (WebCore::Image::drawPattern):
        (WebCore::BitmapImage::draw):

2009-05-20  David Levin  <levin@chromium.org>

        Reviewed by NOBODY, layout tests fix.

        https://bugs.webkit.org/show_bug.cgi?id=23727
        This reverts commit r43888.

        Once that change was checked in many of the fast/flexbox0*.html        
        tests (and others) started failing.

        * WebCore.pro:
        * css/CSSParser.cpp:
        (WebCore::CSSParser::parseValue):
        * css/CSSPropertyNames.in:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::applyProperty):
        * css/CSSValueKeywords.in:
        * rendering/RenderMarquee.cpp:
        (WebCore::RenderMarquee::updateMarqueePosition):
        (WebCore::RenderMarquee::timerFired):

2009-05-19  Yichao Yin <yichao.yin@torchmobile.com.cn>

        Reviewed by George Staikos.

        Add XHTMLMP support to Webkit
        Update the configure files for building XHTMLMP-enabled WebKit on different platform
        https://bugs.webkit.org/show_bug.cgi?id=23452

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCoreSources.bkl:

2009-05-19  Antti Koivisto  <antti@apple.com>

        I can't figure out how to make this not timing dependent, making it manual test instead.

        * manual-tests/preload-scanner-entities.html: Added.

2009-05-19  Brady Eidson  <beidson@apple.com>

        Reviewed by Antti Koivisto. 

        <rdar://problem/6886382> REGRESSION (Safari 4PB -> ToT): HTTP cache revalidation broken.

        This was caused in http://trac.webkit.org/changeset/41425, which fixed an image caching bug
        in QuickLooks (rdar://problem/6619630).

        We need to respect the DocumentLoader's request cache policy when deciding the cache policy
        for subresources, but the check (originally removed in r39304 and added back in in the same
        place in r41424) needs to be tweaked and relocated a bit.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::subresourceCachePolicy): Renamed from cachePolicy().  Move checking
          the DocumentLoader's request to a more appropriate place. Add code to handle the recently 
          added FIXME regarding POSTs. Add a new FIXME describing a great way to make this code 
          cleaner in the future.
        * loader/FrameLoader.h:

        * loader/DocLoader.cpp:
        (WebCore::DocLoader::cachePolicy): Calls the newly renamed subresourceCachePolicy().

2009-05-19  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Bug 25872: aria-labeledby appends all siblings instead of all children to aria name
        https://bugs.webkit.org/show_bug.cgi?id=25872

        When setting the aria-labeledby text it should stay within the element identified by the id
        when searching through the sibling list.
  
        This also removes an outdated assert in getDocumentLinks. Its possible for the document to
        think an element is a link, but accessibility can treat it differently (eg. its ARIA role is different).

        Test: accessibility/aria-labelledby-stay-within.html

        * accessibility/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::ariaAccessiblityName):
        (WebCore::AccessibilityRenderObject::getDocumentLinks):

2009-05-19  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin Adler).
        
        <rdar://problem/6902674> REGRESSION: Query parameters are sometimes incorrect in URL (23135)
        
        Push characters back in correct order when entity parsing fails after 3 characters.

        Test: fast/tokenizer/preload-scanner-entities.html

        * html/PreloadScanner.cpp:
        (WebCore::PreloadScanner::consumeEntity):

2009-05-19  Paul Godavari  <paul@chromium.org>

        Reviewed by Dimitri Glazkov.

        Fix a crash in Mac Chromium when displaying an HTML select element
        with no items.
        https://bugs.webkit.org/show_bug.cgi?id=25874

        * platform/chromium/PopupMenuChromium.cpp:
        (WebCore::PopupContainer::showExternal):

2009-05-19  Nate Chapin  <japhet@google.com>

        Reviewed by Darin Fisher.

        Upstream V8 bindings for CanvasRenderingContext2D.
        https://bugs.webkit.org/show_bug.cgi?id=25858

        * bindings/v8/custom/V8CanvasRenderingContext2DCustom.cpp: Moved bindings from v8_custom.cpp.

2009-05-19  Jessie Berlin  <jberlin@apple.com>

        Reviewed by Mark Rowe.

        Windows Build Fix.

        * WebCore.vcproj/WebCore.vcproj: Copy accessibility headers from WebCore.

2009-05-19  Timothy Hatcher  <timothy@apple.com>

        <rdar://problem/6889218> REGRESSION: Some iChat transcript resources are not
        loaded because willSendRequest doesn't happen immediately

        Reviewed by Antti Koivisto.

        * WebCore.base.exp: Export Loader::servePendingRequests().

2009-05-19  David Levin  <levin@chromium.org>

        Reviewed by Dimitri Glazkov.

        Bug 25859: Need to upstream ScriptController.* for v8.
        https://bugs.webkit.org/show_bug.cgi?id=25859

        Fixing the header file (which I accidentally made identical to the cpp file).

        * bindings/v8/ScriptController.h:

2009-05-19  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler and Brady Eidson.

        <rdar://problem/6900582> REGRESSION (r42446?): UA Profiler in http://stevesouders.com/ua/ stalls

        The problem was that Document::removeAllEventListeners() was called for a wrong document
        when a CachedFrame was destroyed.

        Cannot be tested automatically, because DRT doesn't have a b/f cache.

        * dom/Document.cpp: (WebCore::Document::domWindow): Make sure that this doesn't return an
        unrelated window even if document's m_frame pointer is stale.

        * history/CachedFrame.cpp: (WebCore::CachedFrame::clear): Added a FIXME about strange behavior.

2009-05-19  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Split InspectorController into InspectorController and InspectorFrontend. Latter encapsulates all frontend interaction and is the only entity allowed to make ScriptFunctionCalls. The further plan is to serialize these script function calls.

        https://bugs.webkit.org/show_bug.cgi?id=25419

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::addToConsole):
        * inspector/ConsoleMessage.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::~InspectorController):
        (WebCore::InspectorController::inspect):
        (WebCore::InspectorController::focusNode):
        (WebCore::InspectorController::setWindowVisible):
        (WebCore::InspectorController::addConsoleMessage):
        (WebCore::InspectorController::setAttachedWindow):
        (WebCore::InspectorController::inspectedWindowScriptObjectCleared):
        (WebCore::InspectorController::scriptObjectReady):
        (WebCore::InspectorController::showPanel):
        (WebCore::InspectorController::close):
        (WebCore::InspectorController::populateScriptObjects):
        (WebCore::InspectorController::resetScriptObjects):
        (WebCore::InspectorController::pruneResources):
        (WebCore::InspectorController::didCommitLoad):
        (WebCore::InspectorController::didLoadResourceFromMemoryCache):
        (WebCore::InspectorController::identifierForInitialRequest):
        (WebCore::InspectorController::willSendRequest):
        (WebCore::InspectorController::didReceiveResponse):
        (WebCore::InspectorController::didReceiveContentLength):
        (WebCore::InspectorController::didFinishLoading):
        (WebCore::InspectorController::didFailLoading):
        (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
        (WebCore::InspectorController::scriptImported):
        (WebCore::InspectorController::didOpenDatabase):
        (WebCore::InspectorController::didUseDOMStorage):
        (WebCore::InspectorController::addScriptProfile):
        (WebCore::InspectorController::toggleRecordButton):
        (WebCore::InspectorController::enableProfiler):
        (WebCore::InspectorController::disableProfiler):
        (WebCore::InspectorController::enableDebugger):
        (WebCore::InspectorController::disableDebugger):
        (WebCore::InspectorController::didParseSource):
        (WebCore::InspectorController::failedToParseSource):
        (WebCore::InspectorController::didPause):
        (WebCore::InspectorController::didContinue):
        * inspector/InspectorController.h:
        * inspector/InspectorDOMStorageResource.cpp:
        (WebCore::InspectorDOMStorageResource::bind):
        * inspector/InspectorDOMStorageResource.h:
        * inspector/InspectorDatabaseResource.cpp:
        (WebCore::InspectorDatabaseResource::bind):
        * inspector/InspectorDatabaseResource.h:
        * inspector/InspectorFrontend.cpp: Added.
        (WebCore::callSimpleFunction):
        (WebCore::InspectorFrontend::InspectorFrontend):
        (WebCore::InspectorFrontend::~InspectorFrontend):
        (WebCore::InspectorFrontend::newJSONObject):
        (WebCore::InspectorFrontend::addMessageToConsole):
        (WebCore::InspectorFrontend::addResource):
        (WebCore::InspectorFrontend::updateResource):
        (WebCore::InspectorFrontend::removeResource):
        (WebCore::InspectorFrontend::updateFocusedNode):
        (WebCore::InspectorFrontend::setAttachedWindow):
        (WebCore::InspectorFrontend::inspectedWindowScriptObjectCleared):
        (WebCore::InspectorFrontend::showPanel):
        (WebCore::InspectorFrontend::populateInterface):
        (WebCore::InspectorFrontend::reset):
        (WebCore::InspectorFrontend::debuggerWasEnabled):
        (WebCore::InspectorFrontend::debuggerWasDisabled):
        (WebCore::InspectorFrontend::profilerWasEnabled):
        (WebCore::InspectorFrontend::profilerWasDisabled):
        (WebCore::InspectorFrontend::parsedScriptSource):
        (WebCore::InspectorFrontend::failedToParseScriptSource):
        (WebCore::InspectorFrontend::addProfile):
        (WebCore::InspectorFrontend::setRecordingProfile):
        (WebCore::InspectorFrontend::pausedScript):
        (WebCore::InspectorFrontend::resumedScript):
        (WebCore::InspectorFrontend::addDatabase):
        (WebCore::InspectorFrontend::addDOMStorage):
        * inspector/InspectorFrontend.h: Added.
        * inspector/InspectorResource.cpp:
        (WebCore::InspectorResource::createScriptObject):
        (WebCore::InspectorResource::updateScriptObject):
        (WebCore::InspectorResource::releaseScriptObject):
        * inspector/InspectorResource.h:

2009-05-19  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Introduce JSONObject that wraps ScriptObject and ScriptState* for further serialization

        https://bugs.webkit.org/show_bug.cgi?id=25419

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::addToConsole):
        * inspector/InspectorDOMStorageResource.cpp:
        (WebCore::InspectorDOMStorageResource::bind):
        * inspector/InspectorDatabaseResource.cpp:
        (WebCore::InspectorDatabaseResource::bind):
        * inspector/InspectorResource.cpp:
        (WebCore::populateHeadersObject):
        (WebCore::InspectorResource::createScriptObject):
        (WebCore::InspectorResource::updateScriptObject):
        * inspector/JSONObject.cpp: Added.
        (WebCore::JSONObject::JSONObject):
        (WebCore::JSONObject::set):
        (WebCore::JSONObject::scriptObject):
        (WebCore::JSONObject::createNew):
        * inspector/JSONObject.h: Added.

2009-05-19  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Refactor InpectorController so that it does not instantiate resource/console/database/domresource javascript objects. Move instantiation into the javascript.

        https://bugs.webkit.org/show_bug.cgi?id=25419

        * inspector/ConsoleMessage.cpp:
        (WebCore::ConsoleMessage::addToConsole):
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::didReceiveResponse):
        (WebCore::InspectorController::didReceiveContentLength):
        (WebCore::InspectorController::didFinishLoading):
        (WebCore::InspectorController::didFailLoading):
        (WebCore::InspectorController::resourceRetrievedByXMLHttpRequest):
        (WebCore::InspectorController::scriptImported):
        * inspector/InspectorDOMStorageResource.cpp:
        (WebCore::InspectorDOMStorageResource::InspectorDOMStorageResource):
        (WebCore::InspectorDOMStorageResource::bind):
        (WebCore::InspectorDOMStorageResource::unbind):
        * inspector/InspectorDOMStorageResource.h:
        * inspector/InspectorDatabaseResource.cpp:
        (WebCore::InspectorDatabaseResource::InspectorDatabaseResource):
        (WebCore::InspectorDatabaseResource::bind):
        (WebCore::InspectorDatabaseResource::unbind):
        * inspector/InspectorDatabaseResource.h:
        * inspector/InspectorResource.cpp:
        (WebCore::InspectorResource::InspectorResource):
        (WebCore::populateHeadersObject):
        (WebCore::InspectorResource::createScriptObject):
        (WebCore::InspectorResource::updateScriptObject):
        (WebCore::InspectorResource::releaseScriptObject):
        * inspector/InspectorResource.h:
        * inspector/front-end/Console.js:
        (WebInspector.ConsoleMessage):
        * inspector/front-end/inspector.js:
        (WebInspector.addResource):
        (WebInspector.updateResource):
        (WebInspector.removeResource):
        (WebInspector.addDatabase):
        (WebInspector.addDOMStorage):
        (WebInspector.reset):
        (WebInspector.addMessageToConsole):

2009-05-19  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Ariya Hidayat.

        The Qt port has code that disables scrolling optimizations
        when the root contains native windows, such as windowed plugins.

        This code broke when detaching iframes containing windowed
        plugins.

        Each ScrollView now knows how many native windows it and its
        children contain, and when it is detached, that number is
        substracted from its old parents.

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::scrollContents):
        (WebCore::ScrollView::setParent):
        * platform/ScrollView.h:
        * platform/qt/ScrollViewQt.cpp:
        (WebCore::ScrollView::adjustWidgetsPreventingBlittingCount):
        (WebCore::ScrollView::platformAddChild):
        (WebCore::ScrollView::platformRemoveChild):

2009-05-18  David Kilzer  <ddkilzer@apple.com>

        Tiger build fix for r43850

        * platform/mac/ClipboardMac.mm: Added typedef for NSUinteger
        when building on Tiger.

2009-05-18  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        ClipboardMac cleanup
        https://bugs.webkit.org/show_bug.cgi?id=25847

        I'm mostly just moving code, however there are 3 changes I made while moving, detailed below.

        No functional changes, so no tests.

        * platform/mac/ClipboardMac.mm:
        (WebCore::ClipboardMac::clearData):
        (WebCore::absoluteURLsFromPasteboardFilenames):
          Broke out logic for filenames into its own function to make the caller more readable.
        (WebCore::absoluteURLsFromPasteboard):
          Broke out logic from getData into absoluteURLsFromPasteboard. This returns an NSArray
          so that we can use -[NSArray componentsJoinedByString] in the caller (which is
          cleaner than the manual "\n" addition before).
          This also access to the full list of file urls for future callers.
        (WebCore::ClipboardMac::getData):
          unsigned count = (type == "URL") ? 1 : [fileList count]; is now an
          explicit check for "URL", before it was a check for != "text/uri-list" which
          was much more confusing in my opinion.  text/uri-list and URL are the only
          two types which map to NSURLPboardType in cocoaTypeFromMIMEType().
        (WebCore::ClipboardMac::types):
          I removed an extra if (!types) check, right before [types count].  In Obj-C
          messaging nil will return 0 (size of a pointer), so it's safe to message nil
          here and expect it to return 0.

2009-05-18  David Levin  <levin@chromium.org>

        Reviewed by Darin Fisher.

        Bug 25859: Need to upstream ScriptController.* for v8.
        https://bugs.webkit.org/show_bug.cgi?id=25859

        * bindings/v8/ScriptController.cpp: Added.
        * bindings/v8/ScriptController.h: Added.

2009-05-18  Yichao Yin  <yichao.yin@torchmobile.com.cn>

        Reviewed by George Staikos.

        Change ScriptElement to support XHTMLMP in a better way
        https://bugs.webkit.org/show_bug.cgi?id=23452

        * dom/ScriptElement.h:
        * html/HTMLScriptElement.h:
        * svg/SVGScriptElement.h:
        (WebCore::SVGScriptElement::shouldExecuteAsJavaScript):

2009-05-18  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix, finish up changes after the accessibility dir split.

        * webcore-base.bkl:

2009-05-18  Yichao Yin  <yichao.yin@torchmobile.com.cn>

        Reviewed by George Staikos (and others).

        Add XHTMLMP support to Webkit
        https://bugs.webkit.org/show_bug.cgi?id=23452
        XHTMLMP is a strict subset of XHTML 1.1. It extends XHTML Basic and add enhanced
        functionality. Most of the functionalities have already been implemented by Webkit.
        
        The changes include:
        1) Adding <noscript> support
        2) Document conformance validation
        3) User Agent conformance validation
 
        refer to the specification: OMA-WAP-XHTMLMP-V1_1-20061020-A.pdf

        Tests: fast/xhtmlmp/check-doctype-declaration.xhtml
               fast/xhtmlmp/check-rootelement.xhtml
               fast/xhtmlmp/noscript-in-multiscripts.xhtml
               fast/xhtmlmp/noscript-nested.xhtml
               fast/xhtmlmp/noscript.xhtml

        * dom/DOMImplementation.cpp:
        (WebCore::DOMImplementation::createDocument):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::isXHTMLMPDocument):
        * dom/Document.h:
        (WebCore::Document::shouldProcessNoscriptElement):
        (WebCore::Document::setShouldProcessNoscriptElement):
        * dom/Node.cpp:
        (WebCore::Node::createRendererIfNeeded):
        * dom/Node.h:
        * dom/XMLTokenizer.h:
        (WebCore::XMLTokenizer::setIsXHTMLMPDocument):
        (WebCore::XMLTokenizer::isXHTMLMPDocument):
        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::XMLTokenizer::XMLTokenizer):
        (WebCore::XMLTokenizer::startElementNs):
        (WebCore::XMLTokenizer::endElementNs):
        (WebCore::XMLTokenizer::endDocument):
        (WebCore::XMLTokenizer::internalSubset):
        (WebCore::getEntityHandler):
        (WebCore::externalSubsetHandler):
        * dom/XMLTokenizerQt.cpp:
        (WebCore::XMLTokenizer::XMLTokenizer):
        (WebCore::XMLTokenizer::parse):
        (WebCore::XMLTokenizer::parseStartElement):
        (WebCore::XMLTokenizer::parseEndElement):
        (WebCore::):
        * dom/make_names.pl:
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::rendererIsNeeded):
        * html/HTMLNoScriptElement.cpp: Added.
        (WebCore::HTMLNoScriptElement::HTMLNoScriptElement):
        (WebCore::HTMLNoScriptElement::~HTMLNoScriptElement):
        (WebCore::HTMLNoScriptElement::checkDTD):
        (WebCore::HTMLNoScriptElement::attach):
        (WebCore::HTMLNoScriptElement::recalcStyle):
        (WebCore::HTMLNoScriptElement::childShouldCreateRenderer):
        (WebCore::HTMLNoScriptElement::styleForRenderer):
        * html/HTMLNoScriptElement.h: Added.
        (WebCore::HTMLNoScriptElement::rendererIsNeeded):
        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::getNode):
        (WebCore::HTMLParser::isInline):
        * html/HTMLTagNames.in:
        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::scriptHandler):
        (WebCore::HTMLTokenizer::notifyFinished):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::addExtraFieldsToRequest):
        * platform/MIMETypeRegistry.cpp:
        (WebCore::initializeSupportedNonImageMimeTypes):

2009-05-18  Mark Rowe  <mrowe@apple.com>

        Fix the build.

        * WebCore.xcodeproj/project.pbxproj:

2009-05-18  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Rubber-stamped by Gustavo Noronha.

        Fixed build for the Qt port by adding the WebCore/accessibility
        directory to the includepath.

        * WebCore.pro:

2009-05-18  Chris Fleizach  <cfleizach@apple.com>

        Bug 25776: accessibility should have its own folder in WebCore project
        https://bugs.webkit.org/show_bug.cgi?id=25776
   
        Speculative fix for windows build failure.

        * WebCore.vcproj/WebCoreCommon.vsprops:

2009-05-18  David Kilzer  <ddkilzer@apple.com>

        Bug 20652: WebKit doesn't display favicons with MIME type image/vnd.microsoft.icon

        <https://bugs.webkit.org/show_bug.cgi?id=20652>

        Reviewed by Darin Adler.

        Test: http/tests/misc/favicon-as-image.html

        * inspector/front-end/inspector.js: Added
        image/vnd.microsoft.icon to WebInspector.MIMETypes.
        * platform/MIMETypeRegistry.cpp:
        (WebCore::initializeSupportedImageMIMETypes): Added
        image/vnd.microsoft.icon to list of supported image and image
        resource MIME types.

2009-05-18  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Sam Weinig.

        Bug 25776: accessibility should have its own folder in WebCore project
        https://bugs.webkit.org/show_bug.cgi?id=25776

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * accessibility: Added.
        * accessibility/AXObjectCache.cpp: Copied from WebCore/page/AXObjectCache.cpp.
        * accessibility/AXObjectCache.h: Copied from WebCore/page/AXObjectCache.h.
        * accessibility/AccessibilityAriaGrid.cpp: Copied from WebCore/page/AccessibilityAriaGrid.cpp.
        * accessibility/AccessibilityAriaGrid.h: Copied from WebCore/page/AccessibilityAriaGrid.h.
        * accessibility/AccessibilityAriaGridCell.cpp: Copied from WebCore/page/AccessibilityAriaGridCell.cpp.
        * accessibility/AccessibilityAriaGridCell.h: Copied from WebCore/page/AccessibilityAriaGridCell.h.
        * accessibility/AccessibilityAriaGridRow.cpp: Copied from WebCore/page/AccessibilityAriaGridRow.cpp.
        * accessibility/AccessibilityAriaGridRow.h: Copied from WebCore/page/AccessibilityAriaGridRow.h.
        * accessibility/AccessibilityImageMapLink.cpp: Copied from WebCore/page/AccessibilityImageMapLink.cpp.
        * accessibility/AccessibilityImageMapLink.h: Copied from WebCore/page/AccessibilityImageMapLink.h.
        * accessibility/AccessibilityList.cpp: Copied from WebCore/page/AccessibilityList.cpp.
        * accessibility/AccessibilityList.h: Copied from WebCore/page/AccessibilityList.h.
        * accessibility/AccessibilityListBox.cpp: Copied from WebCore/page/AccessibilityListBox.cpp.
        * accessibility/AccessibilityListBox.h: Copied from WebCore/page/AccessibilityListBox.h.
        * accessibility/AccessibilityListBoxOption.cpp: Copied from WebCore/page/AccessibilityListBoxOption.cpp.
        * accessibility/AccessibilityListBoxOption.h: Copied from WebCore/page/AccessibilityListBoxOption.h.
        * accessibility/AccessibilityObject.cpp: Copied from WebCore/page/AccessibilityObject.cpp.
        * accessibility/AccessibilityObject.h: Copied from WebCore/page/AccessibilityObject.h.
        * accessibility/AccessibilityRenderObject.cpp: Copied from WebCore/page/AccessibilityRenderObject.cpp.
        * accessibility/AccessibilityRenderObject.h: Copied from WebCore/page/AccessibilityRenderObject.h.
        * accessibility/AccessibilityTable.cpp: Copied from WebCore/page/AccessibilityTable.cpp.
        * accessibility/AccessibilityTable.h: Copied from WebCore/page/AccessibilityTable.h.
        * accessibility/AccessibilityTableCell.cpp: Copied from WebCore/page/AccessibilityTableCell.cpp.
        * accessibility/AccessibilityTableCell.h: Copied from WebCore/page/AccessibilityTableCell.h.
        * accessibility/AccessibilityTableColumn.cpp: Copied from WebCore/page/AccessibilityTableColumn.cpp.
        * accessibility/AccessibilityTableColumn.h: Copied from WebCore/page/AccessibilityTableColumn.h.
        * accessibility/AccessibilityTableHeaderContainer.cpp: Copied from WebCore/page/AccessibilityTableHeaderContainer.cpp.
        * accessibility/AccessibilityTableHeaderContainer.h: Copied from WebCore/page/AccessibilityTableHeaderContainer.h.
        * accessibility/AccessibilityTableRow.cpp: Copied from WebCore/page/AccessibilityTableRow.cpp.
        * accessibility/AccessibilityTableRow.h: Copied from WebCore/page/AccessibilityTableRow.h.
        * accessibility/chromium: Added.
        * accessibility/chromium/AXObjectCacheChromium.cpp: Copied from WebCore/page/chromium/AXObjectCacheChromium.cpp.
        * accessibility/chromium/AccessibilityObjectChromium.cpp: Copied from WebCore/page/chromium/AccessibilityObjectChromium.cpp.
        * accessibility/chromium/AccessibilityObjectWrapper.h: Copied from WebCore/page/chromium/AccessibilityObjectWrapper.h.
        * accessibility/gtk: Added.
        * accessibility/gtk/AXObjectCacheAtk.cpp: Copied from WebCore/page/gtk/AXObjectCacheAtk.cpp.
        * accessibility/gtk/AccessibilityObjectAtk.cpp: Copied from WebCore/page/gtk/AccessibilityObjectAtk.cpp.
        * accessibility/gtk/AccessibilityObjectWrapperAtk.cpp: Copied from WebCore/page/gtk/AccessibilityObjectWrapperAtk.cpp.
        * accessibility/gtk/AccessibilityObjectWrapperAtk.h: Copied from WebCore/page/gtk/AccessibilityObjectWrapperAtk.h.
        * accessibility/mac: Added.
        * accessibility/mac/AXObjectCacheMac.mm: Copied from WebCore/page/mac/AXObjectCacheMac.mm.
        * accessibility/mac/AccessibilityObjectMac.mm: Copied from WebCore/page/mac/AccessibilityObjectMac.mm.
        * accessibility/mac/AccessibilityObjectWrapper.h: Copied from WebCore/page/mac/AccessibilityObjectWrapper.h.
        * accessibility/mac/AccessibilityObjectWrapper.mm: Copied from WebCore/page/mac/AccessibilityObjectWrapper.mm.
        * accessibility/qt: Added.
        * accessibility/qt/AccessibilityObjectQt.cpp: Copied from WebCore/page/qt/AccessibilityObjectQt.cpp.
        * accessibility/win: Added.
        * accessibility/win/AXObjectCacheWin.cpp: Copied from WebCore/page/win/AXObjectCacheWin.cpp.
        * accessibility/win/AccessibilityObjectWin.cpp: Copied from WebCore/page/win/AccessibilityObjectWin.cpp.
        * accessibility/win/AccessibilityObjectWrapperWin.h: Copied from WebCore/page/win/AccessibilityObjectWrapperWin.h.
        * accessibility/wx: Added.
        * accessibility/wx/AccessibilityObjectWx.cpp: Copied from WebCore/page/wx/AccessibilityObjectWx.cpp.
        * page/AXObjectCache.cpp: Removed.
        * page/AXObjectCache.h: Removed.
        * page/AccessibilityAriaGrid.cpp: Removed.
        * page/AccessibilityAriaGrid.h: Removed.
        * page/AccessibilityAriaGridCell.cpp: Removed.
        * page/AccessibilityAriaGridCell.h: Removed.
        * page/AccessibilityAriaGridRow.cpp: Removed.
        * page/AccessibilityAriaGridRow.h: Removed.
        * page/AccessibilityImageMapLink.cpp: Removed.
        * page/AccessibilityImageMapLink.h: Removed.
        * page/AccessibilityList.cpp: Removed.
        * page/AccessibilityList.h: Removed.
        * page/AccessibilityListBox.cpp: Removed.
        * page/AccessibilityListBox.h: Removed.
        * page/AccessibilityListBoxOption.cpp: Removed.
        * page/AccessibilityListBoxOption.h: Removed.
        * page/AccessibilityObject.cpp: Removed.
        * page/AccessibilityObject.h: Removed.
        * page/AccessibilityRenderObject.cpp: Removed.
        * page/AccessibilityRenderObject.h: Removed.
        * page/AccessibilityTable.cpp: Removed.
        * page/AccessibilityTable.h: Removed.
        * page/AccessibilityTableCell.cpp: Removed.
        * page/AccessibilityTableCell.h: Removed.
        * page/AccessibilityTableColumn.cpp: Removed.
        * page/AccessibilityTableColumn.h: Removed.
        * page/AccessibilityTableHeaderContainer.cpp: Removed.
        * page/AccessibilityTableHeaderContainer.h: Removed.
        * page/AccessibilityTableRow.cpp: Removed.
        * page/AccessibilityTableRow.h: Removed.
        * page/chromium/AXObjectCacheChromium.cpp: Removed.
        * page/chromium/AccessibilityObjectChromium.cpp: Removed.
        * page/chromium/AccessibilityObjectWrapper.h: Removed.
        * page/gtk/AXObjectCacheAtk.cpp: Removed.
        * page/gtk/AccessibilityObjectAtk.cpp: Removed.
        * page/gtk/AccessibilityObjectWrapperAtk.cpp: Removed.
        * page/gtk/AccessibilityObjectWrapperAtk.h: Removed.
        * page/mac/AXObjectCacheMac.mm: Removed.
        * page/mac/AccessibilityObjectMac.mm: Removed.
        * page/mac/AccessibilityObjectWrapper.h: Removed.
        * page/mac/AccessibilityObjectWrapper.mm: Removed.
        * page/qt/AccessibilityObjectQt.cpp: Removed.
        * page/win/AXObjectCacheWin.cpp: Removed.
        * page/win/AccessibilityObjectWin.cpp: Removed.
        * page/win/AccessibilityObjectWrapperWin.h: Removed.
        * page/wx/AccessibilityObjectWx.cpp: Removed.

2009-05-18  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Jan Alonzo.

        https://bugs.webkit.org/show_bug.cgi?id=25854
        [GTK] Should tell servers we only support identity as content encoding

        Let servers know we only support identity as content
        encoding. We will implement this in libsoup.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::startHttp):

2009-05-18  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        <rdar://problem/6881160> REGRESSION (r41425): Unable to create battle.net account due to
        CAPTCHA failure.

        The problem was that after loading and displaying a CAPTCHA image, it was loaded from
        the server again due to preloading. So, the server expected the last loaded (invisible)
        CAPTCHA text to be typed and posted back.

        I don't know how to make tests for preloading.

        * loader/DocLoader.cpp: (WebCore::DocLoader::checkForPendingPreloads): There is never a reason
        to preload after loading for real - and if cache policy is CachePolicyReload, that actually
        results in another load from network layer.

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::cachePolicy): It's not good for cachePolicy()
        to lie, but I don't know how to re-do r41425 properly. Added a FIXME.

2009-05-18  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Simon Hausmann.

        Done together with Balazs Kelemen  <kelemen.balazs@stud.u-szeged.hu>.

        https://bugs.webkit.org/show_bug.cgi?id=24551

        [Qt] Reuse FontPlatformData for the same FontDescription.
        This effectively prevents growing heap usage for loading every web page.

        * platform/graphics/qt/FontCacheQt.cpp:
        (WebCore::qHash): Necessary for FontPlatformDataCache.
        (WebCore::FontCache::getCachedFontPlatformData): Reuse the instance if
        it exists, otherwise create a new one and insert it in the cache.

2009-05-18  Balazs Kelemen  <kelemen.balazs@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        https://bugs.webkit.org/show_bug.cgi?id=24551

        [Qt] Fix the leak in FontFallbackList::fontDataAt() function.
        When creating a new instance of SimpleFontData, put it in the font list
        so that it can deleted later on.

        * platform/graphics/qt/FontFallbackListQt.cpp:
        (WebCore::FontFallbackList::invalidate):
        (WebCore::FontFallbackList::releaseFontData):
        (WebCore::FontFallbackList::fontDataAt):

2009-05-15  Jan Michael Alonzo  <jmalonzo@webkit.org>

         Reviewed by Xan Lopez.

         [Gtk] Various autotools build refactoring and fixes
         https://bugs.webkit.org/show_bug.cgi?id=25286

         Style fixes

         * GNUmakefile.am:

2009-05-17  George Staikos  <george.staikos@torchmobile.com>

        Not reviewed - build fix.

        Fix typo: constr -> const.

        * wml/WMLInputElement.h:
        (WebCore::WMLInputElement::setPlaceholder):

2009-05-17  Darin Adler  <darin@apple.com>

        Fix done by Simon Fraser (reviewed by me).

        <rdar://problem/6893775> Page with screen-only stylesheet with overflow and height
        transitions has bad layout and overlapping garbled text when printing

        * manual-tests/print-with-height-transition-in-screen-stylesheet.html: Added.

        * page/animation/AnimationController.cpp:
        (WebCore::AnimationController::updateAnimations): Don't run transitions when printing.

2009-05-17  Darin Adler  <darin@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/6870241> REGRESSION: Programmatically selected popup menu item not shown

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::setSelectedIndex): Added a call to updateFromElement and
        also a type check on the selected index to avoid a bad cast to HTMLOptionElement.

        * manual-tests/select-option-in-onload.html: Added.

2009-05-17  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Anders Carlsson

        Rename local variables for readability.
        
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintBorder):

2009-05-17  Darin Adler  <darin@apple.com>

        Reviewed by Mark Rowe.

        Bug 25840: fix some warnings seen on the GTK bot
        https://bugs.webkit.org/show_bug.cgi?id=25840

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::platformScrollbarModes): Initialize results here.
        This is really just to quiet warnings. I think this code is unreachable.
        Someone could put ASSERT_NOT_REACHED() in here too at some point.

        * plugins/PluginStream.cpp:
        (WebCore::PluginStream::startStream): Use proper printf format for int
        here, %d, not %lu. This could cause a real problem when compiled 64-bit,
        so it's good to fix.

        * rendering/RenderTextControl.cpp:
        (WebCore::getNextSoftBreak): Initialize breakOffset to 0 here. This is
        really just to quiet the warning, but still seems like a good idea.

2009-05-17  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 25769: Fix accessibility warnings on GTK
        https://bugs.webkit.org/show_bug.cgi?id=25769

        * page/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::columnCount): Get rid of excess const.
        (WebCore::AccessibilityTable::rowCount): Ditto.
        * page/AccessibilityTable.h: Ditto.

2009-05-17  Kai Brüning  <kai@granus.net>

        Reviewed by Darin Adler.

        bug 25822: DOM normalize does not remove empty text node between element nodes
        https://bugs.webkit.org/show_bug.cgi?id=25822

        Test: fast/dom/Node/normalize.html

        * dom/Node.cpp:
        (WebCore::Node::normalize): Changed to remove any empty text nodes.

2009-05-16  Dave Moore  <davemoore@google.com>

        Reviewed by Darin Adler.

        Allow Strings to be created with one malloc node with no copying
        https://bugs.webkit.org/show_bug.cgi?id=25779

        Add new methods to String and StringImpl, refactoring existing
        methods in StringImpl to use new createUninitialized() method.

        * platform/text/PlatformString.h:
        (WebCore::String::createUninitialized):
        * platform/text/StringImpl.cpp:
        (WebCore::StringImpl::createUninitialized):
        (WebCore::StringImpl::create):
        * platform/text/StringImpl.h:

2009-05-16  Mark Rowe  <mrowe@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6827041> WebCore should stop throwing away the CGImageSourceRef to
        dramatically improve animated GIF decoding performance

        Recent versions of ImageIO discard previously decoded image frames if the client
        application no longer holds references to them, so there's no need to throw away
        the decoder unless we're explicitly asked to destroy all of the frames.

        This drops peak CPU usage when displaying <http://www.aintitcool.com/files/HoD2.gif>
        from over 90% to below 3%.

        * platform/graphics/cg/ImageSourceCG.cpp:
        (WebCore::ImageSource::clear):

2009-05-16  Dan Bernstein  <mitz@apple.com>

        Reviewed by Alexey Proskuryakov.

        - fix <rdar://problem/6873305> Two distinct characters are not displayed
          correctly with 2 of the font selections from the stickies widget

        Test: platform/mac/editing/pasteboard/text-precomposed.html

        Ensure that "text/plain" data retrieved from the clipboard is always
        precomposed. This makes Clipboard::getData() and
        Pasteboard::documentFragment() consistent with Pasteboard::plainText()
        and -[WebHTMLView _documentFragmentFromPasteboard:forType:inContext:subresources:].

        * platform/mac/ClipboardMac.mm:
        (WebCore::ClipboardMac::getData):
        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::documentFragment):

2009-05-16  Mark Rowe  <mrowe@apple.com>

        Build fix.

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::valueForFamily): Declare valueForFamily as static.

2009-05-15  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6883872> REGRESSION (r43243): computed style for font-family is returning
        only the generic font, if any generic font is in the family list

        Test: fast/css/getComputedStyle/computed-style-font-family.html

        * css/CSSComputedStyleDeclaration.cpp:
        Sorted computedProperties alphabetically. Added CSSPropertyClip and CSSPropertyWordBreak.
        (WebCore::identifierForFamily): Added. Maps internal font family names to identifiers.
        (WebCore::valueForFamily): Added. Creates either an identifier or a string as appropriate.
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): Implemented the font-family
        property as specified in the CSS standard. Fixed clip to return "auto" when there is no
        clip set instead of nothing at all. Gave inheritableProperties and numInheritableProperties
        internal linkage since there was no reason for them to have external linkage.

2009-05-15  Adam Barth  <abarth@webkit.org>

        Reviewed by Oliver Hunt.

        https://bugs.webkit.org/show_bug.cgi?id=25741

        Append instead of throwing when insertItemBefore gets an out-of-bound
        index.

        Test: svg/dom/svglist-insertItemBefore-appends.html

        * svg/SVGList.h:
        (WebCore::SVGList::insertItemBefore):

2009-05-15  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler
        
        https://bugs.webkit.org/show_bug.cgi?id=25829
        
        Fix -webkit-background-clip:text when the renderer had a non (0,0) x, y offset.

        Test: fast/backgrounds/background-clip-text.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended):

2009-05-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - fix <rdar://problem/6888244> REGRESSION: Using the Up or Down keyboard
          arrows, I can't navigate caret between To Do items in a Note message

        Test: editing/selection/move-by-line-004.html

        * editing/visible_units.cpp:
        (WebCore::enclosingNodeWithNonInlineRenderer): Added this helper
        function.
        (WebCore::previousLinePosition): When advancing to the next candidate
        node, stop when leaving the closest ancestor of the original node that
        is not an inline. The code, incorrectly, was trying to exit the closest
        ancestor of that type which was editable, and therefore missing other
        blocks in the same editable root.
        (WebCore::nextLinePosition): Ditto.

2009-05-15  Fridrich Strba  <fridrich.strba@bluewin.ch>

        Reviewed by Jan Alonzo.

        Converting filename to uri by concatenating strings is broken
        on Windows. So, don't do it for that platform.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::startGio):

2009-05-15  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.

        Upstream V8 bindings for HTMLOptionsCollection and HTMLSelectElementCollection.
        https://bugs.webkit.org/show_bug.cgi?id=25739

        * bindings/v8/V8Collection.cpp: Added.
        (WebCore::toOptionsCollectionSetter): Moved from v8_custom.cpp.
        * bindings/v8/V8Collection.h: Added prototype for toOptionsCollectionSetter().
        * bindings/v8/custom/V8HTMLOptionsCollectionCustom.cpp:
        (WebCore::INDEXED_PROPERTY_SETTER): Moved from v8_custom.cpp.
        * bindings/v8/custom/V8HTMLSelectElementCollectionCustom.cpp: Added.
        (WebCore::NAMED_PROPERTY_GETTER):  Moved from v8_custom.cpp.
        (WebCore::INDEXED_PROPERTY_SETTER):  Moved from v8_custom.cpp.

2009-05-15  David Kilzer  <ddkilzer@apple.com>

        <rdar://problem/6649936> Add *.exp export files to WebCore Xcode project

        Reviewed by Darin Adler and Timothy Hatcher.

        * WebCore.xcodeproj/project.pbxproj: Added Exports group, moved
        WebCore.base.exp into the group, and added 10 other *.exp files
        in WebCore.

2009-05-15  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        https://bugs.webkit.org/show_bug.cgi?id=25826
        Change type to only have custom getter in JCS.

        * html/HTMLInputElement.idl: Changed CustomGetter attribute to JSCCustomGetter.

2009-05-15  Antti Koivisto  <antti@apple.com>

        Reviewed by Dave Kilzer.

        Add a settings entry to en/disable web font support
        https://bugs.webkit.org/show_bug.cgi?id=25239

        * css/CSSFontSelector.cpp:
        (WebCore::CSSFontSelector::addFontFaceRule):

2009-05-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Steve Falkenburg.

        Remove dead youtube site specific hack that was commented out.

        * bindings/js/JSNavigatorCustom.cpp:
        * page/Navigator.idl:

2009-05-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Beth Dakin.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=25826
        <rdar://problem/6884742> 
        REGRESSION: In Gmail's Edit Link dialog, I can't type in the Link To: field (due to <input type=url> support)

        Added a site specific quirk for mail.google.com which returns "text" when getting the type of an <input type=url>

        * bindings/js/JSHTMLInputElementCustom.cpp:
        (WebCore::needsGmailQuirk):
        (WebCore::JSHTMLInputElement::type):
        * html/HTMLInputElement.idl:

2009-05-14  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25810
        Upstream V8 DOM Wrapper map declarations.

        No behavior change, so no tests.

        * bindings/v8/V8DOMMap.h:
        (WebCore::WeakReferenceMap::WeakReferenceMap): Added.
        (WebCore::WeakReferenceMap::~WeakReferenceMap): Added.
        (WebCore::WeakReferenceMap::get): Added.
        (WebCore::WeakReferenceMap::set): Added.
        (WebCore::WeakReferenceMap::forget): Added.
        (WebCore::WeakReferenceMap::contains): Added.
        (WebCore::WeakReferenceMap::impl): Added.
        (WebCore::DOMWrapperMap::DOMWrapperMap): Added.

2009-05-15  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt
        
        https://bugs.webkit.org/show_bug.cgi?id=25773
        
        Rename GraphicsLayer::graphicsContextsFlipped() to 
        GraphicsLayer::compositingCoordinatesOrientation() in order to clarify the usage.

        Clean up code around the GraphicsLayer "contents" layer that makes use of this
        flag, by removing the setHasContentsLayer() method, and just using setContentsLayer(),
        which can then always do the flipping if necessary.

        Only affects ACCELERATED_COMPOSITING builds.
        
        * platform/graphics/GraphicsLayer.h:
        (WebCore::GraphicsLayer::):
        * platform/graphics/mac/GraphicsLayerCA.h:
        (WebCore::GraphicsLayerCA::contentsLayer):
        * platform/graphics/mac/GraphicsLayerCA.mm:
        (WebCore::GraphicsLayer::compositingCoordinatesOrientation):
        (WebCore::GraphicsLayerCA::setBackgroundColor):
        (WebCore::GraphicsLayerCA::clearBackgroundColor):
        (WebCore::GraphicsLayerCA::setContentsToImage):
        (WebCore::GraphicsLayerCA::clearContents):
        (WebCore::GraphicsLayerCA::swapFromOrToTiledLayer):
        (WebCore::GraphicsLayerCA::setContentsLayer):
        * rendering/RenderLayerCompositor.cpp:
        (WebCore::RenderLayerCompositor::ensureRootPlatformLayer):

2009-05-15  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=25765

        Avoid calling setNeedsStyleRecalc() when we are
        putting an animated page in the cache. This avoids
        the assert and subsequent problems with a dirty 
        page going into the cache.

        * page/animation/KeyframeAnimation.cpp:
        (WebCore::KeyframeAnimation::endAnimation):

2009-05-15  Francisco Tolmasky  <francisco@280north.com>

        BUG 25467: JavaScript debugger should use function.displayName as the function's name in the call stack
        <https://bugs.webkit.org/show_bug.cgi?id=25467>
        
        Reviewed by Adam Roben.

        * inspector/JavaScriptCallFrame.cpp:
        (WebCore::JavaScriptCallFrame::functionName): Use calculatedFunctionName which takes into account displayName
        * inspector/front-end/CallStackSidebarPane.js: Remove "|| anonymous function" since it is handled internally just like in profiles
        (WebInspector.CallStackSidebarPane.prototype.update):

2009-05-15  Alexey Proskuryakov  <ap@webkit.org>

        Windows build fix (and a matching Mac change, to avoid unnecessarily diverging the implementations).

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::start):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::start):
        Check strings with isEmpty(), not relying on any implicit conversions.

2009-05-15  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler, Brady Eidson and Eric Carlson.

        <rdar://problem/6875643> REGRESSION: Unable to download file with FTP URL that includes
        username and password (Lightwave 9.6 for Mac from Newtek site)

        CFNetwork only invokes didReceiveAuthenticationChallenge for HTTP requests. Credentials
        for other protocols (including FTP) should be included as part of the URL.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::start):
        (WebCore::WebCoreSynchronousLoader::load):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::start):
        (+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]):
        Put credentials in URL for non-HTTP requests.

        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::makeSimpleCrossOriginAccessRequest):
        Bail out quickly if the URL is non-HTTP. Cross-origin requests require specific HTTP
        headers to be received, so they cannot work with other protocols.

2009-05-15  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Holger Freyther.

        [Qt] In the image decoder, remove the raw image data represented as QImage
        once the image is converted to QPixmap and inserted in the pixmap cache.
        This effectively reduces the heap usage when running on graphics system
        other than raster (i.e the case where QImage != QPixmap).

        * platform/graphics/qt/ImageDecoderQt.cpp:
        (WebCore::ImageDecoderQt::imageAtIndex): Nullified the image on purpose.
        * platform/graphics/qt/ImageDecoderQt.h: Made m_imageList mutable.

2009-05-15  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Holger Freyther.

        [Qt] Refactor alpha channel detection the image decoder.
        Sets the boolean flag as soon as the image is being read.

        * platform/graphics/qt/ImageDecoderQt.cpp:
        (WebCore::ImageDecoderQt::ImageDecoderQt): Initialized m_hasAlphaChannel.
        (WebCore::ImageDecoderQt::setData): Set the flag when appropriate.
        (WebCore::ImageDecoderQt::supportsAlpha): Simplified.
        (WebCore::ImageDecoderQt::reset): Resetted the flag.
        * platform/graphics/qt/ImageDecoderQt.h: Added m_hasAlphaChannel.

2009-05-15  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Darin Adler.

        Finish support for disabling the JavaScript Debugger and Profiler 
        at compile time in WebCore
        https://bugs.webkit.org/show_bug.cgi?id=24917

        * bindings/js/JSInspectorControllerCustom.cpp: ENABLE_JAVASCRIPT_DEBUGGER guard
        * bindings/js/JSJavaScriptCallFrameCustom.cpp: Ditto.
        * inspector/JavaScriptCallFrame.cpp: Ditto.
        * inspector/JavaScriptCallFrame.h: Ditto.
        * inspector/JavaScriptCallFrame.idl: Ditto.
        * inspector/JavaScriptDebugListener.h: Ditto.
        * inspector/JavaScriptDebugServer.cpp: Ditto.
        * inspector/JavaScriptDebugServer.h: Ditto.
        * inspector/JavaScriptProfile.cpp: Ditto.
        * inspector/JavaScriptProfile.h: Ditto.
        * inspector/JavaScriptProfileNode.cpp: Ditto.
        * inspector/JavaScriptProfileNode.h: Ditto.
        * page/Console.cpp: Use guard ENABLE(JAVASCRIPT_DEBUGGER) instead of USE(JSC)
        * page/Console.h: Ditto.
        * page/Console.idl: Use guard ENABLE(JAVASCRIPT_DEBUGGER) instead of !defined(V8_BINDING)

2009-05-15  Jungshik Shin  <jshin@chromium.org>

        Reviewed by Dimitri Glazkov

        http://bugs.webkit.org/show_bug.cgi?id=25464

        Improve the font fallback for characters belonging to 'common' scripts
        in ChromiumWin port. Make characters like Danda, Double Danda (punctuation
        marks in North Indian scripts) and currency signs (e.g. Thai Baht)
        rendered correctly in Chromium on Win. 

        Tests: fast/text/international/danda-space.html
               fast/text/international/thai-baht-space.html

        * platform/graphics/chromium/FontUtilsChromiumWin.cpp:
        (WebCore::FontMap::getScriptBasedOnUnicodeBlock):
        (WebCore::FontMap::getScript):
        (WebCore::getFallbackFamily):

2009-05-15  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=25731
        [Qt] Cleanup - move files exclusive to XPATH and XSLT under the
        appropriate build section

        * WebCore.pro:

2009-05-14  Evan Martin  <evan@chromium.org>

        Reviewed by Eric Seidel and Darin Fisher.

        Fix a font-related leak in Chromium's Skia backend found by Valgrind.
        https://bugs.webkit.org/show_bug.cgi?id=25760

        * platform/graphics/chromium/FontCacheLinux.cpp:
        (WebCore::FontCache::getFontDataForCharacters):
        Use caches instead of "new" on every call.

2009-05-14  Rahul Kuchhal  <kuchhal@chromium.org>

        Reviewed by Eric Seidel.

        Initialize m_spreadMethod in the second constructor too. Not sure if
        a test case can be written, so no test case.
        https://bugs.webkit.org/show_bug.cgi?id=25814

        No test possible: spreadMethod() is only used by SVG, doesn't seem possible to hit
        this case, since several other SVG tests already should be calling
        spreadMethod().

        * platform/graphics/Gradient.cpp:
        (WebCore::Gradient::Gradient):

2009-05-14  Simon Fraser  <simon.fraser@apple.com>

        No review.

        Fix Windows build after renaming MediaControlElements to MediaControlElementType.

        * rendering/RenderMediaControls.cpp:
        (WebCore::RenderMediaControls::paintMediaControlsPart):
        * rendering/RenderMediaControls.h:

2009-05-14  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler
        
        <rdar://problem/6739671> Movie controller’s play button does not change into a pause
        button

        Fix a controls repaint issue when the playing state of a video changes by
        educating the MediaControlInputElements about the state they are currently
        displaying, and making them repaint when that state changes. This applies
        to the play/pause and mute/unmute buttons, which both have two states.
        
        * rendering/MediaControlElements.cpp:
        (WebCore::MediaControlInputElement::MediaControlInputElement):
        (WebCore::MediaControlSeekButtonElement::MediaControlSeekButtonElement):
        (WebCore::MediaControlTimelineElement::MediaControlTimelineElement):
        (WebCore::MediaControlFullscreenButtonElement::MediaControlFullscreenButtonElement):
        Pass in and initialize the MediaControlElementType.
        
        (WebCore::MediaControlInputElement::update):
        Update the display type too
        
        (WebCore::MediaControlInputElement::setDisplayType):
        (WebCore::MediaControlMuteButtonElement::MediaControlMuteButtonElement):
        (WebCore::MediaControlMuteButtonElement::updateDisplayType):
        Choose muted vs. unmuted display.
        
        (WebCore::MediaControlPlayButtonElement::MediaControlPlayButtonElement):
        (WebCore::MediaControlPlayButtonElement::updateDisplayType):
        Choose play vs. paused display.

        * rendering/MediaControlElements.h:
        Renamed the MediaControlElements enum to MediaControlElementType.
        (WebCore::MediaControlInputElement::updateDisplayType):
        Add a MediaControlElementType member variable with a setter to allow
        the element to know what type it is displaying.

2009-05-14  Dean Jackson  <dino@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=25197

        Add support for aspect-ratio and orientation
        media queries.

        Tests: fast/media/mq-aspect-ratio.html
               fast/media/mq-orientation.html

        * css/MediaFeatureNames.h:
        * css/MediaQueryEvaluator.cpp:
        (WebCore::orientationMediaFeatureEval):
        (WebCore::aspect_ratioMediaFeatureEval):
        (WebCore::min_aspect_ratioMediaFeatureEval):
        (WebCore::max_aspect_ratioMediaFeatureEval):
        * css/MediaQueryExp.h:
        (WebCore::MediaQueryExp::isViewportDependent):

2009-05-14  Kevin McCullough  <kmccullough@apple.com>

        - Resubmitting previous patch, correctly this time.

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::splitTreeToNode):
        * editing/IndentOutdentCommand.cpp:
        (WebCore::IndentOutdentCommand::outdentParagraph):

2009-05-14  Kevin McCullough  <kmccullough@apple.com>

        - Rolling out to fix a bug and the build

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::splitTreeToNode):
        * editing/IndentOutdentCommand.cpp:
        (WebCore::IndentOutdentCommand::outdentParagraph):

2009-05-14  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6510362> In some situations message content is messed up
        when indentation is decreased

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::splitTreeToNode): Calling recursively
        here served to do nothing because this function will return if the
        second argument is the parent of the first.  Not only does this now work
        as intended, but is necessary for the rest of this fix.
        * editing/IndentOutdentCommand.cpp:
        (WebCore::IndentOutdentCommand::outdentParagraph): To determine if we 
        are the last node in a <blockquote>, and can therefore remove the
        <blockquote> we need the endOfEnclosingBlock to extend to the end of
        the <blockquote> not just the next block, which could be a <div>, for
        example. 
        - Also If a <blockquote> is removed, but it's the child of another
        <blockquote> then its children are now children of the top <blockquote>.
        In this case we want to split the parent <blockquote> because the next
        paragraph assumes that it is the first node in its <blockquote> and if
        that is not true, various bugs arise.

2009-05-14  Brady Eidson  <beidson@apple.com>

        Build fix.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::setDefaultMIMEType):

2009-05-14  Brady Eidson  <beidson@apple.com>

        Reviewed by Adam Roben.

        Fix http/tests/xmlhttprequest/cache-override.html on Windows

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::setDefaultMIMEType): Modify the previous response so it maintains all of its data.
        (WebCore::didReceiveResponse): Call setDefaultMIMEType() when needed.
        (WebCore::WebCoreSynchronousLoader::load): Ditto.

2009-05-14  Paul Godavari  <paul@chromium.org>

        Reviewed by Dimitri Glazkov.

        Bug: Mac Chromium popup menus are not positioned correctly
        on scrolled pages:
        https://bugs.webkit.org/show_bug.cgi?id=25772

        Fix Mac Chromium popup menu placement by taking into
        account any scrolling in the current window. This mirrors
        the positioning done in PopupContainer::show(), which is
        used on Chromium Windows and linux.

        Also fixed indenting for this method.

        * platform/chromium/PopupMenuChromium.cpp:
        (WebCore::PopupContainer::showExternal):

2009-05-14  Drew Wilson  <atwilson@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25774
        Upstream V8MessagePortCustom.cpp from the chromium repository.

        * bindings/v8/custom/V8MessagePortCustom.cpp: Added.
        (WebCore::ACCESSOR_GETTER):
        (WebCore::ACCESSOR_SETTER):
        (WebCore::CALLBACK_FUNC_DECL):

2009-05-14  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler

        https://bugs.webkit.org/show_bug.cgi?id=25777
        
        StyleGeneratedImage::imageSize() needs to take zooming into account for
        fixed-size images (i.e. canvas) so that canvas-as-image-background
        renders correctly with zooming.

        Test: fast/canvas/canvas-bg-zoom.html

        * rendering/style/StyleGeneratedImage.cpp:
        (WebCore::StyleGeneratedImage::imageSize):

2009-05-14  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        Patch originally by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25796
        <rdar://problem/6886654> Shouldn't set referer and origin in Loader::Host::servePendingRequests().

        Test: http/tests/security/credentials-in-referer.html

        * loader/loader.cpp: (WebCore::Loader::Host::servePendingRequests): This will be done in
        SubresourceLoader::create() anyway.

2009-05-14  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 25797: Pages with image maps are not properly read with Voiceover
        https://bugs.webkit.org/show_bug.cgi?id=25797

        * page/AccessibilityImageMapLink.h:
        (WebCore::AccessibilityImageMapLink::isEnabled):

2009-05-14  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6887762> and https://bugs.webkit.org/show_bug.cgi?id=25790 

        Nuke the bogus ASSERT and add a legitimate ASSERT with a little help from a new accessor.

        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::shouldContentSniff):
        * platform/network/ResourceHandle.h:

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::createCFURLResponseWithDefaultMIMEType):
        (WebCore::didReceiveResponse):

2009-05-14  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25791
        Bug 25791: HTMLMediaElement: implement 'startTime' attribute
        
        Support the recently added HTMLMediaElement 'startTime' attribute. This is a read-only 
        value that only the media engine can know, so we just need to add the attribute 
        to HTMLMediaElement and add methods to MediaPlayer and MediaPlayerPrivateInterface so 
        the engine can make it available.

        Test: media/media-startTime.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::startTime): New.
        * html/HTMLMediaElement.h:
        * html/HTMLMediaElement.idl:

        * platform/graphics/MediaPlayer.cpp:
        (WebCore::MediaPlayer::startTime): New.
        * platform/graphics/MediaPlayer.h:

        * platform/graphics/MediaPlayerPrivate.h:
        (WebCore::MediaPlayerPrivateInterface::startTime): New.

2009-05-14  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Ariya Hidayat.

        Only create a QWidget wrapper for the plugin in the case it is not
        in the Qt window mapper, and thus receiving events from the Qt
        event system. Native Qt based plugins running in process, will
        already be in the window mapper, and thus creating a wrapper,
        stops them from getting events from Qt, as they are redirected
        to the wrapper.

        * plugins/qt/PluginContainerQt.cpp:
        (PluginContainerQt::on_clientIsEmbedded):

2009-05-14  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25784
        Leaks seen on HTTP tests

        We should change ResourceHandleMac.mm to use smart pointers some day, but this is a minimal fix.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::loadResourceSynchronously): Release mutable request copy made for
        disabling content sniffing, matching the normal code path.
        (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Release m_user
        and m_pass before overwriting.
        (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Ditto.

2009-05-14  Yury Semikhatsky <yurys@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25418
        Remove new lines from event handler wrapper to make line numbers
        in the wrapped script conside with the lines in the original script.

        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::getListenerFunction):
        (WebCore::V8LazyEventListener::getWrappedListenerFunction):

2009-05-14  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Alexey Proskuryakov.

        Remove a JSC-specific include that is already added by including
        ScriptController.

        No change in behavior, so no tests.

        * dom/Document.cpp: Removed JSDOMBinding include.

2009-05-14  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Brady Eidson.

        <rdar://problem/4072827> Downloaded non-ASCII file name becomes garbled

        Hopefully, a final stroke. When updating ResourceRequest from a platform request, a wrong
        CFString function was used, so a user-friendly name was stored in encoding fallback array.

        * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdateResourceRequest):
        * platform/network/mac/ResourceRequestMac.mm: (WebCore::ResourceRequest::doUpdateResourceRequest):

2009-05-14  Ben Murdoch  <benm@google.com>

        Reviewed by Darin Adler.

        Add more ENABLE_DATABASE guards.
        https://bugs.webkit.org/show_bug.cgi?id=25616

        See also https://bugs.webkit.org/show_bug.cgi?id=24776 (original set of guards)

        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        * bindings/v8/custom/V8CustomSQLStatementCallback.cpp:
        * bindings/v8/custom/V8CustomSQLStatementCallback.h:
        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.cpp:
        * bindings/v8/custom/V8CustomSQLStatementErrorCallback.h:
        * bindings/v8/custom/V8CustomSQLTransactionCallback.cpp:
        * bindings/v8/custom/V8CustomSQLTransactionCallback.h:
        * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.cpp:
        * bindings/v8/custom/V8CustomSQLTransactionErrorCallback.h:
        * bindings/v8/custom/V8DatabaseCustom.cpp:
        * bindings/v8/custom/V8SQLResultSetRowListCustom.cpp:
        * bindings/v8/custom/V8SQLTransactionCustom.cpp:
        * storage/Database.cpp:
        * storage/DatabaseDetails.h:
        * storage/OriginUsageRecord.cpp:
        * storage/OriginUsageRecord.h:
        * storage/SQLError.h:
        * storage/SQLError.idl:
        * storage/SQLResultSet.cpp:
        * storage/SQLResultSet.h:
        * storage/SQLResultSet.idl:
        * storage/SQLResultSetRowList.cpp:
        * storage/SQLResultSetRowList.h:
        * storage/SQLResultSetRowList.idl:
        * storage/SQLStatementCallback.h:
        * storage/SQLStatementErrorCallback.h:
        * storage/SQLTransactionCallback.h:
        * storage/SQLTransactionErrorCallback.h:

2009-05-11  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25787

        Gtk was the last platform to not unregister plugins when
        the plugin is stopped. Catch up with r43550.

        * plugins/gtk/PluginViewGtk.cpp:
        (WebCore::PluginView::stop):

2009-05-14  Adam Roben  <aroben@apple.com>

        Make WebCore.vcproj's pre-build event work again

        * WebCore.vcproj/WebCore.vcproj: Removed empty override of the
        pre-build event that was accidentally left in when the pre-build event
        was moved to WebCoreCommon.vsprops.

2009-05-14  Darin Adler  <darin@apple.com>

        * manual-tests/right-click-crash.html: Added.

2009-05-14  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Darin Adler.

        <rdar://problem/6681868> When building with Xcode 3.1.3 should be using gcc 4.2

        The meaning of XCODE_VERSION_ACTUAL is more sensible in newer versions of Xcode.
        Update our logic to select the compiler version to use the more appropriate XCODE_VERSION_MINOR
        if the version of Xcode supports it, and fall back to XCODE_VERSION_ACTUAL if not.

        * Configurations/Base.xcconfig:

2009-05-13  Anders Carlsson  <andersca@apple.com>

        Fix build.

        * WebCore.NPAPI.exp:

2009-05-13  Eric Seidel  <eric@webkit.org>

        Reviewed by Oliver Hunt.

        Fix invalid memory write seen in HTMLCanvasElement by Valgrind
        https://bugs.webkit.org/show_bug.cgi?id=25759

        I can't think of any way to catch this with a layout test, so no test.

        * css/CSSCanvasValue.cpp:
        (WebCore::CSSCanvasValue::canvasDestroyed):
        * css/CSSCanvasValue.h:
        * html/HTMLCanvasElement.cpp:
        (WebCore::HTMLCanvasElement::~HTMLCanvasElement):
        * html/HTMLCanvasElement.h:

2009-05-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Anders Carlsson.

        - fix <rdar://problem/5483015> Replies in Mail are drawn first without
          the user style sheet and then redrawn with the style sheet

        Test: platform/mac/fast/loader/user-stylesheet-fast-path.html

        * page/mac/FrameMac.mm:
        (WebCore::Frame::setUserStyleSheetLocation): For data URLs with
        base64-encoded UTF-8 data, just decode the style sheet here an apply
        it synchronously instead of invoking an asynchronous loader.

2009-05-13  Chris Fleizach  <cfleizach@apple.com>

        Bug 25755: Implement ARIA grid role
        https://bugs.webkit.org/show_bug.cgi?id=25755

        Fix build bustage from last checkin.

        * page/AccessibilityAriaGrid.cpp:
        (WebCore::AccessibilityAriaGrid::addChild):

2009-05-13  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Bug 25755: Implement ARIA grid role
        https://bugs.webkit.org/show_bug.cgi?id=25755

        Test: accessibility/aria-tables.html

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * page/AXObjectCache.cpp:
        (WebCore::AXObjectCache::nodeIsAriaType):
        (WebCore::AXObjectCache::getOrCreate):
        * page/AXObjectCache.h:
        * page/AccessibilityAriaGrid.cpp: Added.
        (WebCore::AccessibilityAriaGrid::AccessibilityAriaGrid):
        (WebCore::AccessibilityAriaGrid::~AccessibilityAriaGrid):
        (WebCore::AccessibilityAriaGrid::create):
        (WebCore::AccessibilityAriaGrid::addChild):
        (WebCore::AccessibilityAriaGrid::addChildren):
        (WebCore::AccessibilityAriaGrid::cellForColumnAndRow):
        * page/AccessibilityAriaGrid.h: Added.
        (WebCore::AccessibilityAriaGrid::isAriaTable):
        * page/AccessibilityAriaGridCell.cpp: Added.
        (WebCore::AccessibilityAriaGridCell::AccessibilityAriaGridCell):
        (WebCore::AccessibilityAriaGridCell::~AccessibilityAriaGridCell):
        (WebCore::AccessibilityAriaGridCell::create):
        (WebCore::AccessibilityAriaGridCell::parentTable):
        (WebCore::AccessibilityAriaGridCell::rowIndexRange):
        (WebCore::AccessibilityAriaGridCell::columnIndexRange):
        * page/AccessibilityAriaGridCell.h: Added.
        * page/AccessibilityAriaGridRow.cpp: Added.
        (WebCore::AccessibilityAriaGridRow::AccessibilityAriaGridRow):
        (WebCore::AccessibilityAriaGridRow::~AccessibilityAriaGridRow):
        (WebCore::AccessibilityAriaGridRow::create):
        (WebCore::AccessibilityAriaGridRow::parentTable):
        (WebCore::AccessibilityAriaGridRow::headerObject):
        * page/AccessibilityAriaGridRow.h: Added.
        * page/AccessibilityList.cpp:
        (WebCore::AccessibilityList::accessibilityIsIgnored):
        * page/AccessibilityList.h:
        * page/AccessibilityObject.h:
        (WebCore::):
        * page/AccessibilityRenderObject.cpp:
        (WebCore::RoleEntry::):
        * page/AccessibilityTable.cpp:
        (WebCore::AccessibilityTable::AccessibilityTable):
        (WebCore::AccessibilityTable::isTableExposableThroughAccessibility):
        * page/AccessibilityTable.h:
        (WebCore::AccessibilityTable::isAriaTable):
        * page/AccessibilityTableCell.cpp:
        (WebCore::AccessibilityTableCell::parentTable):
        (WebCore::AccessibilityTableCell::isTableCell):
        (WebCore::AccessibilityTableCell::titleUIElement):
        * page/AccessibilityTableCell.h:
        * page/AccessibilityTableColumn.cpp:
        (WebCore::AccessibilityTableColumn::setParentTable):
        (WebCore::AccessibilityTableColumn::headerObject):
        * page/AccessibilityTableRow.cpp:
        (WebCore::AccessibilityTableRow::isTableRow):
        (WebCore::AccessibilityTableRow::parentTable):
        * page/AccessibilityTableRow.h:
        * page/mac/AccessibilityObjectWrapper.mm:
        (RoleEntry::):

2009-05-13  David Levin  <levin@chromium.org>

        Reviewed by Dimitri Glazkov.

        Bug 25763: Need to move v8 custom binding to the custom directory.
        https://bugs.webkit.org/show_bug.cgi?id=25763

        No test due to no change in behavior.

        * bindings/v8/custom/V8CanvasPixelArrayCustom.cpp: Renamed from WebCore/bindings/v8/V8CanvasPixelArrayCustom.cpp.

2009-05-13  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.

        Fix LayoutTests/fast/dom/Element/attr-param-typechecking.html crashing with V8.
        https://bugs.webkit.org/show_bug.cgi?id=25758

        * bindings/v8/custom/V8ElementCustom.cpp:
        (WebCore::CALLBACK_FUNC_DECL): return the result of throwError() if it is called.

2009-05-13  Jeremy Moskovich  <jeremy@chromium.org>

        Reviewed by Dave Hyatt.

        Fix a number of bugs relating to RTL and text-overflow:ellipsis.
        Also refactor the relevant code to make it a little clearer.

        This CL fixes 3 fundamental issues:
        - Corrects behavior if the truncated InlineTextBox's directionality is
          different from the overall flow direction - bug 25135.
        - Make decoration drawing in InlineFlowbox RTL-aware - bug 24206.
        - Full truncation on InlineBoxes in RTL flow - bug 24186
        - Add tests for the above + reorder/cleanup tests for easier
          interpretation of outcome.

        The code for placing ellipsis has been refactored to use
        left/right notation rather than a single variable whose meaning
        could differ based on flow directionality.

        To support differing inline directionality vs flow directionality,
        different variables are now used in InlineTextBox::placeEllipsisBox to
        track the two.

        The drawing mode for underlines in standards mode now correctly handles
        RTL truncation and relevant test where added.

        https://bugs.webkit.org/show_bug.cgi?id=24186
        https://bugs.webkit.org/show_bug.cgi?id=25135
        https://bugs.webkit.org/show_bug.cgi?id=24206

        Tests: fast/css/text-overflow-ellipsis-bidi.html
               fast/css/text-overflow-ellipsis-strict.html

        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::placeEllipsisBox):
        * rendering/InlineBox.h:
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::paintTextDecorations):
        (WebCore::InlineFlowBox::placeEllipsisBox):
        * rendering/InlineFlowBox.h:
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::placeEllipsisBox):
        (WebCore::InlineTextBox::paint):
        * rendering/InlineTextBox.h:
        * rendering/RenderFlexibleBox.cpp:
        (WebCore::RenderFlexibleBox::layoutVerticalBox):
        * rendering/RootInlineBox.cpp:
        (WebCore::RootInlineBox::placeEllipsis):
        (WebCore::RootInlineBox::placeEllipsisBox):
        * rendering/RootInlineBox.h:
        * rendering/bidi.cpp:
        (WebCore::RenderBlock::checkLinesForTextOverflow):

2009-05-13  Dmitry Titov  <dimich@chromium.org>

        Rubber-stamped by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=25746
        Revert http://trac.webkit.org/changeset/43507 which caused crash in PPC nightlies with Safari 4.

        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::matchFunc):
        (WebCore::openFunc):
        (WebCore::createStringParser):
        (WebCore::createMemoryParser):
        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::open):
        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::SQLiteDatabase):
        (WebCore::SQLiteDatabase::close):
        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::DatabaseThread):
        (WebCore::DatabaseThread::start):
        (WebCore::DatabaseThread::databaseThread):
        * storage/LocalStorageThread.cpp:
        (WebCore::LocalStorageThread::LocalStorageThread):
        (WebCore::LocalStorageThread::start):
        (WebCore::LocalStorageThread::localStorageThread):
        (WebCore::LocalStorageThread::scheduleImport):
        (WebCore::LocalStorageThread::scheduleSync):
        (WebCore::LocalStorageThread::terminate):
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::WorkerThread):
        (WebCore::WorkerThread::start):

2009-05-13  David Hyatt  <hyatt@apple.com>

        Reviewed by Beth Dakin.

        Fix for <rdar://problem/6872894> REGRESSION (r41896-42143): First letter cut off in styled select menus
        
        Make sure to do rounded clipping for overflow and controls relative to the border box and not to the overflow/control clip rect
        (which is typically clipped to the padding or content box).  Doing so was causing rounded clips to be incorrectly applied to padding and
        content.
    
        Added fast/overflow/border-radius-clipping.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::pushContentsClip):

2009-05-13  Darin Adler  <darin@apple.com>

        Revert the parser arena change. It was a slowdown, not a speedup.
        Better luck next time (I'll break it up into pieces).

2009-05-13  David Hyatt  <hyatt@apple.com>

        Reviewed by Beth Dakin and Darin Adler.

        Fix for <rdar://problem/6869687> REGRESSION (r41203): Facebook friend suggestions disappear on update.
        
        Make sure that renderers are marked for layout if a style change causes them to switch from having a self-painting layer
        to a non-self-painting layer (and vice versa).
        
        Move misplaced layer repainting code that was in RenderBox up into RenderBoxModelObject so that inlines with layers
        repaint properly on opacity changes, etc.

        Added fast/repaint/opacity-change-on-overflow-float.html.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::styleWillChange):
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::styleWillChange):
        (WebCore::RenderBoxModelObject::styleDidChange):
        * rendering/RenderBoxModelObject.h:

2009-05-13  Dimitri Glazkov  <dglazkov@chromium.org>

        Not reviewed, build fix.

        Move an include, needed by Debugger under the corresponding guard.

        * inspector/InspectorController.cpp: Moved parser/SourceCode under JAVASCRIPT_DEBUGGER
            guard.

2009-05-13  David Levin  <levin@chromium.org>

        Reviewed by Darin Adler.

        Bug 25394: REGRESSION: crash in DocumentLoader::addResponse due to bad |this| pointer
        https://bugs.webkit.org/show_bug.cgi?id=25394

        Test: http/tests/xmlhttprequest/frame-unload-abort-crash.html

        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::create):
        Add another check to subresource loader to avoid doing any loads in frames
        when the loaders are being stopped.

2009-05-13  Stephan Haller  <nomad@froevel.de>

        Reviewed by Gustavo Noronha.

        Wrong handling of file upload if no file selected
        https://bugs.webkit.org/show_bug.cgi?id=25649

        Fixed returned path if path is empty

        * WebCore/platform/gtk/FileSystemGtk.cpp:

2009-05-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/6805567> REGRESSION (r42348): Notes flicker white
          when loading

        Tests: fast/frames/content-opacity-1.html
               fast/frames/content-opacity-2.html

        * page/FrameView.cpp:
        (WebCore::FrameView::reset): Reset m_contentIsOpaque to false.
        (WebCore::FrameView::useSlowRepaints): Use slow repaints if the content
        is not known to be opaque.
        (WebCore::FrameView::setContentIsOpaque): Added. Sets m_contentIsOpaque
        and enables or disables fast repaints accordingly.
        * page/FrameView.h:
        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::paintFillLayerExtended): Removed the
        document()->haveStylesheetsLoaded() condition in determining whether the
        root is opaque. This is what was causing the bug, as iframes were
        considered to be opaque, and thus painted an opaque white background,
        whenever they were pending a style sheet load.
        Changed to call FrameView::setContentIsOpaqe() instead of
        setUseSlowRepaints(), which allows the frame to go back to fast repaints
        if the content becomes opaque.
        Corrected the check for background color opacity: any alpha value other
        than 255--not just zero--is not opaque.

2009-05-13  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Sam Weinig.

        [Qt] Fix "lighther" composition mode.
        QPainter::CompositionMode_Plus is the right match.

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::toQtCompositionMode):

2009-05-13  Darin Adler  <darin@apple.com>

        Reviewed by Cameron Zwarich.

        Bug 25674: syntax tree nodes should use arena allocation
        https://bugs.webkit.org/show_bug.cgi?id=25674

        * bindings/js/JSDOMBinding.h: Removed include of JSFunction.h.
        We don't want the entire DOM binding to depend on that file.

        * bindings/js/JSAudioConstructor.cpp: Added include of Error.h.
        Before we inherited this automatically because JDDOMBinding.h
        included JSFunction.h, but that was excessive.
        * bindings/js/JSDOMWindowCustom.cpp: Ditto.
        * bindings/js/JSHTMLInputElementCustom.cpp: Ditto.
        * bindings/js/JSImageConstructor.cpp: Ditto.
        * bindings/js/JSLazyEventListener.cpp: Ditto, but for JSFunction.h.
        * bindings/js/JSMessageChannelConstructor.cpp: Ditto.
        * bindings/js/JSOptionConstructor.cpp: Ditto.
        * bindings/js/JSWorkerConstructor.cpp: Ditto.
        * bindings/js/JSXMLHttpRequestConstructor.cpp: Ditto.
        * bridge/jni/jni_jsobject.mm: Ditto, but for SourceCode.h.
        * inspector/InspectorController.cpp: Ditto.

        * inspector/JavaScriptDebugServer.cpp:
        (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):
        Moved mose of this function into the base class in JavaScriptCore,
        so the details of compilation don't have to be exposed.

2009-05-13  Douglas R. Davidson  <ddavidso@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6879145>
        Generate a contextual menu item allowing autocorrections to
        easily be changed back.  Refrain from re-correcting items
        that have already been autocorrected once.

        * dom/DocumentMarker.h:
        * editing/Editor.cpp:
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
        (WebCore::Editor::changeBackToReplacedString):
        * editing/Editor.h:
        * page/ContextMenuController.cpp:
        (WebCore::ContextMenuController::contextMenuItemSelected):
        * page/mac/WebCoreViewFactory.h:
        * platform/ContextMenu.cpp:
        (WebCore::ContextMenu::populate):
        (WebCore::ContextMenu::checkOrEnableIfNeeded):
        * platform/ContextMenuItem.h:
        * platform/LocalizedStrings.h:
        * platform/mac/LocalizedStringsMac.mm:
        (WebCore::contextMenuItemTagChangeBack):
        * rendering/HitTestResult.cpp:
        (WebCore::HitTestResult::replacedString):
        * rendering/HitTestResult.h:
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::computeRectForReplacementMarker):
        (WebCore::InlineTextBox::paintDocumentMarkers):
        * rendering/InlineTextBox.h:

2009-05-13  Holger Hans Peter Freyther  <zecke@selfish.org>

        Rubber Stamped by Oliver Hunt.

        [GTK] Fix Gtk+/X11 build on OSX

        Including the CoreFoundation header here and X11 headers
        later will result in different definitions of Boolean. The
        CoreFoundation include does not seem to be necessary here
        and my mac build was successfull without it. I will remove
        it for now. If the build bots disagree this will be replaced
        by a #if PLATFORM(CF).

        * platform/FileSystem.h:

2009-05-13  Holger Hans Peter Freyther  <zecke@selfish.org>

        Rubber Stamped by Gustavo Noronha.

        [GTK] Move the #ifdef around for a buildfix for Gtk+ on OSX

        When building Gtk+ on OSX we ended up declaring
        setNPWindowIfNeeded twice. Fix that by moving
        the #if PLATFORM(GTK) up and using elif instead of
        else.

        * plugins/PluginView.h:

2009-05-13  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Xan Lopez.

        https://bugs.webkit.org/show_bug.cgi?id=25685
        [GTK] Middle click paste form the pasteboard

        The kit wants to paste from at least two different
        clipboards. By introducing getCurrentTarget to the
        PasteboardHelper interface we can make this decision
        in the kit.
        Use the new method in PasteboardGtk to get the right
        GdkClipboard for the paste operation.

        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::documentFragment):
        (WebCore::Pasteboard::plainText):
        * platform/gtk/PasteboardHelper.h:

2009-05-13  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6438177> QTMoviePreferredTransformAttribute only supported on SnowLeopard
        <rdar://problem/6872468> QTMovieOpenForPlaybackAttribute only supported on SnowLeopard

        QTMoviePreferredTransformAttribute and QTMovieOpenForPlaybackAttribute are not supported
        on Tiger or Leopard.

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::setNetworkState): Remove invalid ASSERT.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::createQTMovie): Only request QTMoviePreferredTransformAttribute
        when !BUILDING_ON_TIGER and !BUILDING_ON_LEOPARD.
        (WebCore::MediaPlayerPrivate::cacheMovieScale): Only ask for QTMovieOpenForPlaybackAttribute 
        when !BUILDING_ON_TIGER and !BUILDING_ON_LEOPARD,

2009-05-12  Roland Steiner <rolandsteiner@google.com>

        Reviewed by Eric Seidel.

        Bug 25738: Skia: CSS border style not cleared for SVG object
        https://bugs.webkit.org/show_bug.cgi?id=25738

        If no dashing is set, this change reverts to solid stroke
        (previously the code bailed and left the old setting, whatever it was)

        Test case listed in above bug entry.
        (Additional complications due to each platform rendering dotted lines differently -
        c.f. https://bugs.webkit.org/show_bug.cgi?id=25737)

        * platform/graphics/skia/GraphicsContextSkia.cpp:
        (WebCore::GraphicsContext::setLineDash):

2009-05-11  Erik Arvidsson  <arv@chromium.org>

        Reviewed by Eric Seidel.

        Bug 21903: Adds DOM bindings for the placeholder property of the
        HTMLInputElement.
        https://bugs.webkit.org/show_bug.cgi?id=21903

        Test: fast/forms/placeholder-dom-property.html

        * dom/InputElement.cpp:
        (WebCore::InputElement::updatePlaceholderVisibility):
        * dom/InputElement.h:
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::placeholder):
        (WebCore::HTMLInputElement::setPlaceholder):
        * html/HTMLInputElement.h:
        * html/HTMLInputElement.idl:
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::updateFromElement):
        * wml/WMLInputElement.h:
        (WebCore::WMLInputElement::placeholder):
        (WebCore::WMLInputElement::setPlaceholder):

2009-05-12  Adam Barth  <abarth@webkit.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25706

        Change V8 bindings to match JSC bindings with respect to using
        the lexical or dynamic global object.

        Tests: http/tests/security/aboutBlank/security-context-grandchildren-lexical.html
               http/tests/security/aboutBlank/security-context-grandchildren-write-lexical.html
               http/tests/security/aboutBlank/security-context-grandchildren-writeln-lexical.html

        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::CALLBACK_FUNC_DECL):

2009-03-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6702386> Incorrect bound check in SVGList::insertItemBefore

        SVGList::insertItemBefore would not perform a bounds check on the
        index it was provided, potentially leading to a buffer overflow. 

        Test: svg/dom/svglist-exception-on-out-bounds-error.html

        * svg/SVGList.h:
        (WebCore::SVGList::insertItemBefore):

2009-05-12  Paul Godavari  <paul@chromium.org>

        Reviewed by Dimitri Glazkov.

        Bug 25708: Cannot choose menu items in popups with many entries in Chromium
        https://bugs.webkit.org/show_bug.cgi?id=25708

        This change sets the window size for popups on Mac to include all items
        in the menu. This is required for hit testing on Mac, where we use native
        controls to manage the popups and don't want to artificially limit the
        valid hit testing region to a limited scroll window.

        * platform/chromium/PopupMenuChromium.cpp:
        (WebCore::PopupListBox::layout):

2009-05-12  Stephen White  <senorblanco@chromium.org>

        Reviewed by Dimitri Glazkov.

        Fixes to build with latest skia:  SkTypeface::Create() is now
        SkTypeface::CreateFromName(); computeBounds() has been reworked
        as getBounds().  The changes are placed behind an #ifdef for now,
        so that we can roll back the skia version in Chromium if necessary
        without having to roll back this change.

        https://bugs.webkit.org/show_bug.cgi?id=25705

        * platform/graphics/chromium/FontCacheLinux.cpp:
        (WebCore::FontCache::createFontPlatformData):
        * platform/graphics/skia/PathSkia.cpp:
        (WebCore::Path::boundingRect):
        (WebCore::boundingBoxForCurrentStroke):
        * platform/graphics/skia/SkiaUtils.cpp:
        (WebCore::SkPathContainsPoint):

2009-05-12  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25732
        Update V8ElementCustom.cpp to match the current API of V8Proxy.

        (WebCore::ACCESSOR_SETTER): Change retrieveActiveFrame() to retrieveFrameForEnteredContext().

2009-05-12  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25694
        HTMLParser::createHead() ASSERT: Creating an element, calling  document.open() and writing
        to the document NULL ptr

        Test: fast/parser/implicit-head-in-fragment-crash.html

        * html/HTMLParser.cpp: (WebCore::HTMLParser::bodyCreateErrorCheck): Do not try to implicitly
        create <head> when parsing a fragment.

2009-05-12  Soren Gjesse  <sgjesse@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25687
        Missing check for valid function in V8 bindings for toString function for event listeners.

        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::getWrappedListenerFunction): Added empty handle checks.

2009-05-11  Yael Aharon  <yael.aharon@nokia.com>

        Reviewed by Holger Freyther.

        Change Qt port to match the mac and windows ports, and unregister plugins when plugins are stopped.
        Not doing that can cause assersion failure.
        https://bugs.webkit.org/show_bug.cgi?id=25702

        * plugins/qt/PluginViewQt.cpp:
        (WebCore::PluginView::stop):

2009-05-11  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Holger Freyther.

        Bug 25714: [Qt] Decouple HTML5 Database support from the
        SQLite/generic database support in the Qt port

        <https://bugs.webkit.org/show_bug.cgi?id=25714>

        * WebCore.pro:

2009-05-11  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Bug 25713: AX: Control Elements not identified in HTML content
        https://bugs.webkit.org/show_bug.cgi?id=25713

        Test: accessibility/onclick-handlers.html

        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::mouseButtonListener):

2009-05-11  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6276843> REGRESSION: TextIterator generates
        an extra newline for ranges that start outside of body

        * editing/TextIterator.cpp:
        (WebCore::TextIterator::shouldRepresentNodeOffsetZero):
        Check startPos for null, not just currPos.

2009-05-11  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 25700: Regression:WebKit:cmd-left and cmd-right use to go to the beginning and end of a line in Mail
        https://bugs.webkit.org/show_bug.cgi?id=25700

        Keyboard selection movement handlers need to also watch for the Cmd key when Accessibility is enabled.
        Note: This code is only used when accessibility is enabled.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleKeyboardSelectionMovement):

2009-05-11  David Kilzer  <ddkilzer@apple.com>

        Bug 25087: Test for ENABLE_FOO macros consistently in IDL files

        <https://bugs.webkit.org/show_bug.cgi?id=25087>

        Reviewed by Timothy Hatcher.

        Change tests for ENABLE macros to check for both existence and
        value:

        - Negative:  #if !defined(ENABLE_FOO) || !ENABLE_FOO
        - Positive:  #if defined(ENABLE_FOO) && ENABLE_FOO

        * css/CSSCharsetRule.idl:
        * css/CSSPrimitiveValue.idl:
        * css/RGBColor.idl:
        * dom/Attr.idl:
        * dom/DOMCoreException.idl:
        * dom/DOMImplementation.idl:
        * dom/Document.idl:
        * dom/Element.idl:
        * dom/Event.idl:
        * dom/EventException.idl:
        * dom/KeyboardEvent.idl:
        * dom/MessagePort.idl:
        * dom/MouseEvent.idl:
        * dom/Node.idl:
        * dom/ProcessingInstruction.idl:
        * dom/Range.idl:
        * dom/RangeException.idl:
        * dom/WheelEvent.idl:
        * html/CanvasPixelArray.idl:
        * html/HTMLAnchorElement.idl:
        * html/HTMLAppletElement.idl:
        * html/HTMLAreaElement.idl:
        * html/HTMLBaseFontElement.idl:
        * html/HTMLCanvasElement.idl:
        * html/HTMLDocument.idl:
        * html/HTMLElement.idl:
        * html/HTMLEmbedElement.idl:
        * html/HTMLFrameElement.idl:
        * html/HTMLIFrameElement.idl:
        * html/HTMLImageElement.idl:
        * html/HTMLInputElement.idl:
        * html/HTMLLinkElement.idl:
        * html/HTMLObjectElement.idl:
        * html/HTMLOptionElement.idl:
        * html/HTMLOptionsCollection.idl:
        * html/HTMLSelectElement.idl:
        * html/HTMLStyleElement.idl:
        * html/ImageData.idl:
        * inspector/InspectorController.idl:
        * loader/appcache/DOMApplicationCache.idl:
        * page/Console.idl:
        * page/Coordinates.idl:
        * page/DOMSelection.idl:
        * page/DOMWindow.idl:
        * page/Geoposition.idl:
        * page/History.idl:
        * page/Location.idl:
        * page/Navigator.idl:
        * svg/SVGElementInstance.idl:
        * svg/SVGException.idl:
        * workers/WorkerContext.idl:
        * xml/XMLHttpRequestException.idl:
        * xml/XPathException.idl:

2009-05-11  Norbert Leser  <norbert.leser@nokia.com>

        Reviewed by Darin Adler.

        Bug 24538: class/struct mixup in forward declarations
        https://bugs.webkit.org/show_bug.cgi?id=24538

        * inspector/InspectorResource.h:
        * loader/CachedFont.h:
        * loader/appcache/ApplicationCache.h:
        * rendering/RenderBlock.h:
        * rendering/RootInlineBox.h:
        * rendering/SVGInlineTextBox.h:
        * svg/SVGGlyphElement.h:
        * svg/SVGHKernElement.h:

2009-05-11  Norbert Leser  <norbert.leser@nokia.com>

        Reviewed by Darin Adler.

        Bug 24539: Unresolved CSSMutableStyleDeclaration
        https://bugs.webkit.org/show_bug.cgi?id=24539

        The Symbian tools can't compile and link this without this include.
        It's not clear why this is different from other toolsets or why it affects
        only this header file, but adding the include for now.

        * editing/RemoveCSSPropertyCommand.h: Added include of CSSMutableStyleDeclaration.h.

2009-05-11  Alice Liu  <alice.liu@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=25701
        REGRESSION(r38788 & r42020): styled searchfields look wrong on Windows, affects Facebook

        Test: fast/forms/search-styled.html

        * css/themeWin.css:
        Remove the overriding of -webkit-appearance for searchfields. This will cause background
        images to not be honored when styling searchfields

        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::adjustSearchFieldStyle):
        * rendering/RenderThemeWin.h:
        Re-instate final adjustments to searchfield styling that were removed in r42020

2009-05-11  Brady Eidson  <beidson@apple.com>

        Fix Windows build

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::createCFURLResponseWithDefaultMIMEType):

2009-05-11  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25626
        Update V8ElementCustom.cpp to match the current API of Node.

        * bindings/v8/custom/V8ElementCustom.cpp:
        (WebCore::ACCESSOR_SETTER): Changed a couple of method names to match current names.
        (WebCore::ACCESSOR_GETTER): Changed a method name to match current name.

2009-05-11  Brady Eidson  <beidson@apple.com>

        Fix Windows build

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::createCFURLResponseWithDefaultMIMEType):
        (WebCore::WebCoreSynchronousLoader::load):

2009-05-11  Brady Eidson  <beidson@apple.com>

        Fix Windows build

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::createCFURLResponseWithDefaultMIMEType):

2009-05-11  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.

        V8CustomBinding.cpp is missing a header file

        https://bugs.webkit.org/show_bug.cgi?id=25644

        * bindings/v8/custom/V8CustomBinding.cpp: Added #include "V8Proxy.h".

2009-05-11  Aaron Boodman  <aa@chromium.org>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=25634
        Change V8Proxy::retrieveActiveFrame() call sites to V8Proxy::retrieveFrameForEnteredContext().

        Also, change instances of ScriptController::retrieveActiveFrame() to
        V8::retrieveFrameForEnteredContext() for consistency.


        See http://codereview.chromium.org/113085 for the corresponding Chromium change.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::V8Custom::WindowSetLocation):
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:
        (WebCore::CALLBACK_FUNC_DECL):
        * bindings/v8/custom/V8LocationCustom.cpp:
        (WebCore::navigateIfAllowed):
        (WebCore::ACCESSOR_SETTER):
        (WebCore::CALLBACK_FUNC_DECL):

2009-05-11  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/5972751> Local image files (BMP, ico) can be misidentified as HTML.

        First part of the fix - Disable content sniffing for file resources which never should've been happening anyways.
        Second part of the fix - If the networking layer doesn't give us back a MIME type default to "application/octet-stream".

        * platform/MIMETypeRegistry.cpp:
        (WebCore::defaultMIMEType): "application/octet-stream"
        * platform/MIMETypeRegistry.h:

        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::create): If content sniffing is true, double check with "shouldContentSniffRequest()" which
          might override it to false.
        (WebCore::ResourceHandle::shouldContentSniffURL): Return false for file:// urls, true for everything else.
        * platform/network/ResourceHandle.h:

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::createCFURLResponseWithDefaultMIMEType): Create a copy of the CFURLRequest with the default MIME type instead
          of null.
        (WebCore::didReceiveResponse): If the MIME type for the response is null, create a copy with the default MIME type.
        (WebCore::WebCoreSynchronousLoader::load): Use shouldContentSniffRequest() to make synchronous loads have the same 
          sniffing policy as asynchronous loads.  Also, correct a null MIME type by creating a copy with the default type.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::loadResourceSynchronously): Use shouldContentSniffRequest() to make synchronous loads have the
          same sniffing policy as asynchronous loads.
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveResponse:]): Set up the [NSURLResponse MIMEType] swizzling if
          it hasn't been set up yet.
        (_web_NSURLResponse_MIMEType): Either return the actual MIME type of the response, or the default MIME type if it's nil.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::loadRequestAsynchronously): Remove the workaround added in r29370 as it will now be covered by
          the new mechanism.

2009-05-11  David Kilzer  <ddkilzer@apple.com>

        Fix typo "APPLICATION_CAHE_DYNAMIC_ENTRIES" to "APPLICATION_CACHE_DYNAMIC_ENTRIES"

        This was added in r39816 to disable dynamic entries.  They are
        still disabled after fixing the typo since this feature define
        is never set anywhere.

        * bindings/js/JSDOMApplicationCacheCustom.cpp:
        * loader/appcache/DOMApplicationCache.idl:

2009-05-11  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Alexey Proskuryakov and Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=25348
        Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap.

        Most of the change is in WTF.
        Unless noted, all the following files changed to use the new ThreadIdentifier::isValid()
        method instead of just doing 'if(m_threadID)' kind of checks, since ThreadIdentifier
        is now a class rather then an integer.
        Also, there is no need to initialize threadID in constructors to 0 now.

        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::libxmlLoaderThread): use DEFINE_STATIC_LOCAL and accessor function for static thread id,
        since now ThreadIdentifier needs construction and we avoid having global initializers.
        (WebCore::matchFunc): use the new accessor function.
        (WebCore::openFunc): ditto.
        (WebCore::createStringParser): ditto.
        (WebCore::createMemoryParser): ditto.
        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::open):
        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::SQLiteDatabase):
        (WebCore::SQLiteDatabase::close):
        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::start):
        (WebCore::DatabaseThread::databaseThread): remove m_threadID from debug output.
        * storage/LocalStorageThread.cpp:
        (WebCore::LocalStorageThread::start):
        (WebCore::LocalStorageThread::scheduleImport):
        (WebCore::LocalStorageThread::scheduleSync):
        (WebCore::LocalStorageThread::terminate):
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::start):
        (WebCore::WorkerThread::WorkerThread):
        (WebCore::WorkerThread::start):

2009-05-11  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        Remove unused header that declared one function which was never defined anywhere.

        * WebCore.vcproj/WebCore.vcproj:
        * platform/network/cf/ResourceResponseCFNet.cpp: Change to include ResourceResponse.h (which really means
          platform/network/cf/ResourceResponse.h)
        * platform/network/cf/ResourceResponseCFNet.h: Removed.

2009-05-11  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Timothy Hatcher.

        https://bugs.webkit.org/show_bug.cgi?id=25213
        Fix assert during Inspector destruction.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::inspectedPageDestroyed): Moved closing
            inspector above removing InspectorController object to fix JS errors,
            added clearing inspector page ptr.

2009-05-11  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Holger Freyther.

        [Qt] Make sure that public APIs are properly exported on all Qt platforms
        https://bugs.webkit.org/show_bug.cgi?id=25601

        * WebCore.pro: Define QT_MAKEDLL for all non-static builds, not just for win

2009-05-11  Csaba Osztrogonac  <oszi@inf.u-szeged.hu>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=24284

        * WebCore.pro: duplicated values removed from INCLUDEPATH

2009-05-11  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Eric Seidel.

        Build fix Symbian; clean Up WebKit/Qt if ENABLE_NETSCAPE_PLUGIN_API=0
        https://bugs.webkit.org/show_bug.cgi?id=24688

        * WebCore.pro: Use platform independent plugin stubs if ENABLE_NETSCAPE_PLUGIN_API=0
        * platform/qt/TemporaryLinkStubs.cpp: Remove stub functions for plugins

2009-05-10  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix a crash when deactivating a document that had adopted a <form>
          element

        Test: fast/dom/HTMLFormElement/document-deactivation-callback-crash.html

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Corrected the
        logic here: <form> elements should be registered for document activation
        callbacks if and only if autocomplete is off.

2009-05-10  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Dan Bernstein.

        <rdar://problem/6867598> REGRESSION (r42483): Have to enter credentials twice when trying
        to view protected MobileMe video

        Add a temporary workaround.

        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        Added an m_useSiteSpecificQuirks boolean (Mac-only). A Frame pointer is only available when
        starting a request, so we need to store this data for later use.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::start): Initialize m_useSiteSpecificQuirks.
        (WebCore::ResourceHandle::receivedCredential): Use per-session credentials with gallery.me.com.

2009-05-10  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Dan Bernstein.

        <rdar://problem/6870383> Have to enter credentials twice when downloading from a protected page

        * platform/network/cf/AuthenticationCF.cpp:
        * platform/network/cf/AuthenticationCF.h:
        (WebCore::WebCoreCredentialStorage::set):
        (WebCore::WebCoreCredentialStorage::get):
        * platform/network/cf/ResourceHandleCFNet.cpp:
        Move WebCore credential storage to AuthenticationCF, so that WebKit could use it (macthing
        an earlier Mac change).

2009-05-10  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Dan Bernstein.

        Match newer XMLHttpRequest draft and make withCredential setter raise an exception when
        called at a wrong time.

        No test, because we are waiting for a newer version of system frameworks to test the attribute.

        * xml/XMLHttpRequest.cpp: (WebCore::XMLHttpRequest::setWithCredentials):
        * xml/XMLHttpRequest.h:
        * xml/XMLHttpRequest.idl:
        Raise INVALID_STATE_ERR if the state is not OPENED, or if the send() flag is true.

2009-05-10  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Kilzer.

        - fix https://bugs.webkit.org/show_bug.cgi?id=25602
          REGRESSION: fast/overflow/overflow-focus-ring.html seems double-drawn
          on ToT

        Test: fast/layers/self-painting-outline.html

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer): Paint the layer's own outline only
        if it is a self-painting layer.

2009-05-09  Dan Bernstein  <mitz@apple.com>

        Reviewed by Geoffrey Garen and Mark Rowe.

        - fix https://bugs.webkit.org/show_bug.cgi?id=25666
          Assertion failure in Node::setDocument()
          (willMoveToNewOwnerDocumentWasCalled) when adopting a <form> element

        Test: fast/dom/HTMLFormElement/adopt-assertion.html

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::willMoveToNewOwnerDocument): Overrides of
        this method are required to call the base class implementation. Do it.
        (WebCore::HTMLFormElement::didMoveToNewOwnerDocument): Ditto.

2009-03-29  Kevin Ollivier  <kevino@theolliviers.com>

        Reviewed by Maciej Stachowiak.

        WebCore::DocumentLoader::mainReceivedError now asserts if error.isNull(), so
        make sure CURL does not create empty ResourceError() objects.
        
        https://bugs.webkit.org/show_bug.cgi?id=24927

        * platform/network/curl/ResourceHandleManager.cpp:
        (WebCore::ResourceHandleManager::downloadTimerCallback):

2009-05-09  Gustavo Noronha Silva  <gns@gnome.org>

        Build fix, adding missing files to make dist.

        * GNUmakefile.am:

2009-05-08  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein
        
        https://bugs.webkit.org/show_bug.cgi?id=25656
        
        Reduce the inline capacity of CSSParserValueList's m_values
        vector to reduce the size of CSSParserValueList from 544 to 160 bytes in 64-bit.

        * css/CSSParserValues.h:

2009-05-08  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Not reviewed. Used sort-Xcode-project-file to sort the XCode project file - it hasn't been done for a while.

        * WebCore.xcodeproj/project.pbxproj:

2009-05-08  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/6864786> REGRESSION: Crash below
          ApplyStyleCommand::applyInlineStyleToRange when reviewing a patch in
          Bugzilla

        Test: editing/style/apply-through-end-of-document.html

        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyInlineStyleToRange): Added a null
        check for the case of a range extending through the end of the document,
        in which pastEndNode is 0.

2009-05-08  Douglas R. Davidson  <ddavidso@apple.com>

        Reviewed by Beth Dakin.

        <rdar://problem/6857446> REGRESSION (Safari 3-4): Contraction base 
        marked as misspelled even though contraction is a word
        Make sure spelling underline does not persist on words like 
        <doesn't>.  

        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::typingAddedToOpenCommand):

2009-05-08  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        Make sure the path's refdata isn't deleted before we're done with the object.
        
        https://bugs.webkit.org/show_bug.cgi?id=25652

        * platform/graphics/wx/PathWx.cpp:
        (WebCore::Path::~Path):
        (WebCore::Path::Path):
        (WebCore::Path::translate):

2009-05-08  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Darin Adler.

        Fix for memory leak on Mac.
        
        https://bugs.webkit.org/show_bug.cgi?id=25650

        * platform/wx/wxcode/mac/carbon/fontprops.cpp:
        (wxFontProperties::wxFontProperties):

2009-05-08  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6857446> REGRESSION (r37591): Cannot print or 
        preview from maps.yandex.ru

        We need to fall into the stretchesToViewHeight() quirk when we are 
        printing and we are the root and the root has percentage height OR 
        when we are the body and the root has percentage height. Otherwise 
        we have a height of 0 and can run into painting troubles.

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calcHeight):

2009-05-08  Douglas Davidson  <ddavidso@apple.com>

        Reviewed by Darin Adler.

        Fixes for <rdar://problem/6852771>.
        Prevent text checking replacement immediately after an apostrophe
        and automatic link addition except immediately after typing.

        * editing/Editor.cpp:
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):

2009-05-08  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler.
        
        https://bugs.webkit.org/show_bug.cgi?id=25627
        Bug 25627: HTMLMediaElement: some errors should fire on <source> elements

        Update for HTML5 spec change to fire 'error' events on <source> element
        when there is a failure while processing/loading a <source>.

        Test: media/video-source-error.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::enqueueEvent): Remove white-space.
        (WebCore::HTMLMediaElement::loadInternal): Call cancelPendingEventsAndCallbacks instead
        of just calling m_pendingEvents.clear() as we now also need to cancel pending errors on
        all <source> element. 
        (WebCore::HTMLMediaElement::selectMediaResource): Call isSafeToLoadURL() here instead of in
        loadResource() as we need to report errors differently depending on the type of failure. Use
        KURL instead of String.
        (WebCore::HTMLMediaElement::loadNextSourceChild): nextSourceChild -> selectNextSourceChild.
        Fail silently when there are no more <source> canditates because that is what spec mandates.
        Keep url as KURL instead of converting to String.
        (WebCore::HTMLMediaElement::loadResource): ASSERT that the URL is safe to load as we now 
        assume the safety check now done before this function. Takes KURL instead of String.
        (WebCore::HTMLMediaElement::isSafeToLoadURL): New, checks to see if a url is safe to load, logs
        failure if not.
        (WebCore::HTMLMediaElement::noneSupported): MEDIA_ERR_NONE_SUPPORTED -> MEDIA_ERR_SRC_NOT_SUPPORTED
        (WebCore::HTMLMediaElement::cancelPendingEventsAndCallbacks): New, clear all events pending on
        the media and all source elements.
        (WebCore::HTMLMediaElement::setNetworkState): Fire an error on the source element when the 
        the failure happened while processing one. Only call nonSupported() when the failure happened
        while processing media element 'src' attribute.
        (WebCore::HTMLMediaElement::havePotentialSourceChild): nextSourceChild -> selectNextSourceChild.
        Deal with selectNextSourceChild returning a KURL instead of a String.
        (WebCore::HTMLMediaElement::selectNextSourceChild): Renamed from nextSourceChild, add optional
        param to control whether or not errors are fired on a source element when it will not be used.
        Check safety of url here instead of waiting until loadResource(). Return a KURL instead of a
        String.
        (WebCore::HTMLMediaElement::initialURL): nextSourceChild -> selectNextSourceChild. Keep url as
        a KURL instead of a String.
        * html/HTMLMediaElement.h:
        (WebCore::HTMLMediaElement::):

        * html/HTMLSourceElement.cpp:
        (WebCore::HTMLSourceElement::HTMLSourceElement): Initialize timer related variables.
        (WebCore::HTMLSourceElement::scheduleErrorEvent): New, start one-shot timer to fire an error
        event ASAP.
        (WebCore::HTMLSourceElement::cancelPendingErrorEvent): New, cancel pending error event.
        (WebCore::HTMLSourceElement::errorEventTimerFired): New, fire error event if it has not been
        cancelled.
        * html/HTMLSourceElement.h:

        * html/MediaError.h: 
        (WebCore::MediaError::): MEDIA_ERR_NONE_SUPPORTED -> MEDIA_ERR_SRC_NOT_SUPPORTED
        * html/MediaError.idl: Ditto

2009-05-08  Dan Bernstein  <mitz@apple.com>

        Reviewed by Maciej Stachowiak.

        - fix <rdar://problem/6859955> Undoing typed text after selecting all
          leaves non-text areas highlighted

        Test: fast/repaint/selection-clear.html

        When RenderView::clearSelection() is called from
        SelectionController::nodeWillBeRemoved(), selected renderers may already
        be marked for layout, which means that they can no longer compute
        their selection repaint info. Instead, an empty IntRect (or GapRects) is
        returned, leading to incomplete repaint.

        The fix is not to rely on individual renderers when clearing the
        selection, but instead, cache the bounding rectangle of the selected
        blocks' GapRects when setting the selection, and invalidate that
        entire rectangle when clearing it.

        * rendering/RenderView.cpp:
        (WebCore::RenderView::setSelection): Added a parameter saying whether
        the repainting of selected blocks should include both
        previously-selected areas and newly-selected areas or only
        newly-selected areas. The default is both. Also compute
        m_cachedSelectionBounds to be the bounding rectangle of the
        new selection's BlockSelectionInfos' GapRects.
        (WebCore::RenderView::clearSelection): Repaint m_cachedSelectionBounds,
        and tell setSelection() that it should not paint areas that were in
        the old selection's BlockSelectionInfos' GapRects.
        * rendering/RenderView.h:
        (WebCore::RenderView::):

2009-05-08  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Maciej Stachowiak.

        <rdar://problem/6868773> NPN_GetAuthenticationInfo does not work with non-permanent credentials

        * WebCore.base.exp:
        * platform/network/mac/AuthenticationMac.h:
        (WebCore::WebCoreCredentialStorage::set):
        (WebCore::WebCoreCredentialStorage::get):
        * platform/network/mac/AuthenticationMac.mm:
        * platform/network/mac/ResourceHandleMac.mm:
        Moved WebCoreCredentialStorage to AuthenticationMac, so that it could be used from WebKit.

2009-05-08  Jedrzej Nowacki  <jedrzej.nowacki@nokia.com>

        Reviewed by Simon Hausmann.

        Fix the Qt build, add missing JSC_HOST_CALL macros to the runtime
        call methods.

        * bridge/qt/qt_runtime.h:

2009-05-08  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Mark Rowe.

        Add missing strings to localizedStrings.js
        https://bugs.webkit.org/show_bug.cgi?id=25635

        Add the strings "Delete", "Key", "Refresh" and "Value".

        * English.lproj/localizedStrings.js:

2009-05-08  Robert Hogan  <robert@roberthogan.net>

        Reviewed, tweaked and landed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=24992
        [Qt] crash at http://browserspy.dk/browser.php

        This cannot be easily tested in DRT, because it relies on interaction with QApplication,
        but the added assertions guard against re-introducing this issue.

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::didOpenURL): Don't make client calls
        while the frame is being constructed, because the intermediate state without a document
        is something we don't want to expose.

        * page/Frame.cpp:
        (WebCore::Frame::setJSStatusBarText): Assert that the frame has a document, which is an
        approximation of it being in a consistent state for client calls.
        (WebCore::Frame::setJSDefaultStatusBarText): Ditto.

2009-05-07  Mark Rowe  <mrowe@apple.com>

        Rubber-stamped by Oliver Hunt.

        Fix <https://bugs.webkit.org/show_bug.cgi?id=25640>.
        Bug 25640: Crash on quit in r43384 nightly build on Leopard w/ Safari 4 beta installed
        
        Roll out r43366 as it removed symbols that Safari 4 Beta uses.

        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::matchFunc):
        (WebCore::openFunc):
        (WebCore::createStringParser):
        (WebCore::createMemoryParser):
        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::open):
        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::SQLiteDatabase):
        (WebCore::SQLiteDatabase::close):
        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::DatabaseThread):
        (WebCore::DatabaseThread::start):
        (WebCore::DatabaseThread::databaseThread):
        * storage/LocalStorageThread.cpp:
        (WebCore::LocalStorageThread::LocalStorageThread):
        (WebCore::LocalStorageThread::start):
        (WebCore::LocalStorageThread::localStorageThread):
        (WebCore::LocalStorageThread::scheduleImport):
        (WebCore::LocalStorageThread::scheduleSync):
        (WebCore::LocalStorageThread::terminate):
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::WorkerThread):
        (WebCore::WorkerThread::start):

2009-05-08  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        Unify scrolling code via adjustments and keys. Use the WebCore
        defined constants, since that's what people are most used to at
        this point.

        * platform/gtk/ScrollViewGtk.cpp:
        (WebCore::ScrollView::platformHandleHorizontalAdjustment):
        (WebCore::ScrollView::platformHandleVerticalAdjustment):

2009-05-07  David Levin  <levin@chromium.org>

        Reviewed by NOBODY.
        Suggested by Oliver Hunt.

        Rolling back http://trac.webkit.org/changeset/43385
        because we have to use mac artwork for the underline on OSX.

        * platform/graphics/cg/GraphicsContextCG.cpp:
        * platform/graphics/mac/GraphicsContextMac.mm:
        (WebCore::createPatternColor):
        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
        * platform/graphics/win/GraphicsContextCGWin.cpp:
        (WebCore::setCGStrokeColor):
        (WebCore::spellingPatternColor):
        (WebCore::grammarPatternColor):
        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):

2009-05-07  John Grabowski  <jrg@chromium.org>

        Reviewed by Simon Fraser.
  
        https://bugs.webkit.org/show_bug.cgi?id=25573
        Unify use of CG-common routine for drawLineForMisspellingOrBadGrammar.
        Cleanup for WebKit, but required for Chromium happiness.

        * platform/graphics/cg/GraphicsContextCG.cpp:
        (WebCore::spellingPatternColor):
        (WebCore::grammarPatternColor):
        (WebCore::GraphicsContext::drawLineForMisspellingOrBadGrammar):
        * platform/graphics/mac/GraphicsContextMac.mm:
        * platform/graphics/win/GraphicsContextCGWin.cpp:

2009-05-07  Darin Adler  <darin@apple.com>

        Reviewed by Simon Fraser.

        Bug 25575: Registered mutation event listener crashes HTMLMediaElement
        https://bugs.webkit.org/show_bug.cgi?id=25575

        Test: fast/media/video-controls-with-mutation-event-handler.html

        * rendering/MediaControlElements.cpp:
        (WebCore::MediaControlTimelineElement::MediaControlTimelineElement): Don't call setAttribute.
        * rendering/RenderMedia.cpp:
        (WebCore::RenderMedia::createTimeline): Call setAttribute here.

2009-05-07  Simon Fraser  <simon.fraser@apple.com>

        Rubber Stamped by Dave Hyatt
        
        Shuffle the data members to minimize padding.

        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::RenderTableSection):
        * rendering/RenderTableSection.h:

2009-05-07  Simon Fraser  <simon.fraser@apple.com>

        Rubber Stamped by Dave Hyatt
        
        Shuffle the data members to make Events 8 bytes smaller in 64-bit.

        * dom/Event.cpp:
        (WebCore::Event::Event):
        * dom/Event.h:

2009-05-07  Eric Seidel  <eric@webkit.org>

        Reviewed by Beth Dakin.

        Fix regression caused by r41469, add test case to prevent it from 
        happening again.
        https://bugs.webkit.org/show_bug.cgi?id=25252
  
        hasLayer() was true during removeOnlyThisLayer()/
        updateLayerPositions()
        which caused updateLayerPosition()'s walk up the render tree to 
        include offsets from the layer we were about to remove.
  
        I'm not 100% convinced that this wasn't a bug in 
        updateLayerPosition() or in RenderBoxModelObject::styleDidChange, 
        because the layer in question is not the containing block for the 
        block which gets laid out wrong. But this restores the previous 
        behavior and adds a test.  So the next time someone is in here re-
        factoring, they will at least know if they break something.
  
        Test: fast/layers/remove-only-this-layer-update.html

        * rendering/RenderBoxModelObject.cpp:
        (WebCore::RenderBoxModelObject::destroyLayer):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::removeOnlyThisLayer):
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::destroy):
        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::destroy):

2009-05-07  Dmitry Titov  <dimich@chromium.org>

        Attempt to fix GTK build.

        * platform/graphics/GlyphPageTreeNode.h: add #include <string.h> to ensure memcpy and memset are defined.

2009-05-07  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Improve native call performance

        Add calling convention declarations where necessary, and update bindings
        script to generate them as well.

        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::callHTMLCollection):
        * bindings/js/JSNodeListCustom.cpp:
        (WebCore::callNodeList):
        * bindings/js/JSPluginElementFunctions.cpp:
        (WebCore::callPlugin):
        * bindings/js/JSQuarantinedObjectWrapper.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        * bridge/runtime_method.cpp:
        (JSC::callRuntimeMethod):
        * bridge/runtime_object.cpp:
        (JSC::callRuntimeObject):

2009-05-07  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by Dave Hyatt.

        Fixes: https://bugs.webkit.org/show_bug.cgi?id=25617

        Fix memory/performance regression because of too much form control related abstraction just for WMLs sake.

        Remove FormControlElement and FormControlElementWithState base classes, as the overhead is too high for the
        gain. HTML has no benefit of that kind of abstraction, so we're going to move the functionality to Element directly.

        The functions now living in FormControlElement(WithState) lived in Node/Element/HTMLFormControlElement before.
        This patches moves all of them in a central place in Element.h, as virtual functions with an inline default implementation.
        To avoid confusion like isEnabled() living on Node, before the creation of the FormControlElement abstraction layer, all
        methods are renamed to clarify where they belong to. All renames are listed here:

        From FormControlElement:
        - isEnabled() -> isEnabledFormControl()
        - isReadOnly() -> isReadOnlyFormControl()
        - isTextControl() -> isTextFormControl()
        - valueMatchesRenderer() -> formControlValueMatchesRenderer()
        - setValueMatchesRenderer() -> setFormControlValueMatchesRenderer()
        - name() -> formControlName()
        - type() -> formControlType()

        From FormControlElementWithState:
        - saveState() -> saveFormControlState()
        - restoreState() -> restoreFormControlState()

        A lot of Element -> FormControlElement(WithState) casting is gone again, so it's not only a memory, but also a performance progression.

        No testcases affected, no new tests needed.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::canShareStyleWithElement):
        (WebCore::CSSStyleSelector::SelectorChecker::checkOneSelector):
        * dom/Document.cpp:
        (WebCore::Document::formElementsState):
        * dom/Document.h:
        (WebCore::Document::registerFormElementWithState):
        (WebCore::Document::unregisterFormElementWithState):
        * dom/Element.h:
        (WebCore::Element::isFormControlElement):
        (WebCore::Element::isEnabledFormControl):
        (WebCore::Element::isReadOnlyFormControl):
        (WebCore::Element::isTextFormControl):
        (WebCore::Element::formControlValueMatchesRenderer):
        (WebCore::Element::setFormControlValueMatchesRenderer):
        (WebCore::Element::formControlName):
        (WebCore::Element::formControlType):
        (WebCore::Element::saveFormControlState):
        (WebCore::Element::restoreFormControlState):
        * dom/FormControlElement.cpp: Removed.
        * dom/FormControlElement.h: Removed.
        * dom/FormControlElementWithState.cpp: Removed.
        * dom/FormControlElementWithState.h: Removed.
        * dom/InputElement.cpp:
        (WebCore::InputElement::setValueFromRenderer):
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::formControlType):
        * html/HTMLButtonElement.h:
        * html/HTMLFieldSetElement.cpp:
        (WebCore::HTMLFieldSetElement::formControlType):
        * html/HTMLFieldSetElement.h:
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::attach):
        (WebCore::HTMLFormControlElement::formControlName):
        (WebCore::HTMLFormControlElement::willValidate):
        (WebCore::HTMLFormControlElementWithState::HTMLFormControlElementWithState):
        (WebCore::HTMLFormControlElementWithState::~HTMLFormControlElementWithState):
        (WebCore::HTMLFormControlElementWithState::willMoveToNewOwnerDocument):
        (WebCore::HTMLFormControlElementWithState::didMoveToNewOwnerDocument):
        (WebCore::HTMLFormControlElementWithState::finishParsingChildren):
        * html/HTMLFormControlElement.h:
        (WebCore::HTMLFormControlElement::isTextFormControl):
        (WebCore::HTMLFormControlElement::isEnabledFormControl):
        (WebCore::HTMLFormControlElement::formControlValueMatchesRenderer):
        (WebCore::HTMLFormControlElement::setFormControlValueMatchesRenderer):
        (WebCore::HTMLFormControlElement::isReadOnlyFormControl):
        (WebCore::HTMLFormControlElement::type):
        (WebCore::HTMLFormControlElement::name):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::formControlName):
        (WebCore::HTMLInputElement::formControlType):
        (WebCore::HTMLInputElement::saveFormControlState):
        (WebCore::HTMLInputElement::restoreFormControlState):
        (WebCore::HTMLInputElement::parseMappedAttribute):
        (WebCore::HTMLInputElement::detach):
        (WebCore::HTMLInputElement::setValue):
        (WebCore::HTMLInputElement::setFileListFromRenderer):
        * html/HTMLInputElement.h:
        (WebCore::HTMLInputElement::readOnly):
        (WebCore::HTMLInputElement::isTextFormControl):
        * html/HTMLKeygenElement.cpp:
        (WebCore::HTMLKeygenElement::formControlType):
        * html/HTMLKeygenElement.h:
        * html/HTMLLegendElement.cpp:
        (WebCore::HTMLLegendElement::formControlType):
        * html/HTMLLegendElement.h:
        * html/HTMLOptGroupElement.cpp:
        (WebCore::HTMLOptGroupElement::formControlType):
        * html/HTMLOptGroupElement.h:
        * html/HTMLOptionElement.cpp:
        (WebCore::HTMLOptionElement::formControlType):
        * html/HTMLOptionElement.h:
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::formControlType):
        (WebCore::HTMLSelectElement::saveFormControlState):
        (WebCore::HTMLSelectElement::restoreFormControlState):
        * html/HTMLSelectElement.h:
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::HTMLTextAreaElement):
        (WebCore::HTMLTextAreaElement::formControlType):
        (WebCore::HTMLTextAreaElement::saveFormControlState):
        (WebCore::HTMLTextAreaElement::restoreFormControlState):
        (WebCore::HTMLTextAreaElement::updateValue):
        (WebCore::HTMLTextAreaElement::setValue):
        * html/HTMLTextAreaElement.h:
        (WebCore::HTMLTextAreaElement::readOnly):
        (WebCore::HTMLTextAreaElement::isTextFormControl):
        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::isEnabled):
        (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
        * page/DragController.cpp:
        (WebCore::DragController::concludeEditDrag):
        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::itemIsEnabled):
        * rendering/RenderTextControl.cpp:
        (WebCore::updateUserModifyProperty):
        (WebCore::RenderTextControl::setInnerTextValue):
        * rendering/RenderTextControl.h:
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::subtreeHasChanged):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::updateFromElement):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::isEnabled):
        (WebCore::RenderTheme::isReadOnlyControl):
        * rendering/RenderThemeChromiumMac.mm:
        (WebCore::RenderThemeChromiumMac::adjustMenuListStyle):
        * rendering/RenderThemeMac.mm:
        (WebCore::RenderThemeMac::adjustMenuListStyle):
        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::adjustMenuListStyle):
        * wml/WMLFormControlElement.cpp:
        * wml/WMLFormControlElement.h:
        (WebCore::WMLFormControlElement::isReadOnlyFormControl):
        (WebCore::WMLFormControlElement::isTextFormControl):
        (WebCore::WMLFormControlElement::formControlValueMatchesRenderer):
        (WebCore::WMLFormControlElement::setFormControlValueMatchesRenderer):
        * wml/WMLInputElement.cpp:
        (WebCore::WMLInputElement::WMLInputElement):
        (WebCore::WMLInputElement::isKeyboardFocusable):
        (WebCore::WMLInputElement::isMouseFocusable):
        (WebCore::WMLInputElement::dispatchBlurEvent):
        (WebCore::WMLInputElement::formControlType):
        (WebCore::WMLInputElement::formControlName):
        (WebCore::WMLInputElement::setValue):
        (WebCore::WMLInputElement::saveFormControlState):
        (WebCore::WMLInputElement::restoreFormControlState):
        (WebCore::WMLInputElement::parseMappedAttribute):
        (WebCore::WMLInputElement::detach):
        (WebCore::WMLInputElement::appendFormData):
        (WebCore::WMLInputElement::init):
        * wml/WMLInputElement.h:
        (WebCore::WMLInputElement::isTextFormControl):
        * wml/WMLOptGroupElement.cpp:
        (WebCore::WMLOptGroupElement::formControlType):
        * wml/WMLOptGroupElement.h:
        * wml/WMLOptionElement.cpp:
        (WebCore::WMLOptionElement::formControlType):
        * wml/WMLOptionElement.h:

2009-05-07  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Alexey Proskuryakov and Adam Roben.

        https://bugs.webkit.org/show_bug.cgi?id=25348
        Change WTF::ThreadIdentifier to be an actual (but wrapped) thread id, remove ThreadMap.

        Most of the change is in WTF.
        Unless noted, all the following files changed to use the new ThreadIdentifier::isValid()
        method instead of just doing 'if(m_threadID)' kind of checks, since ThreadIdentifier
        is now a class rather then an integer.
        Also, there is no need to initialize threadID in constructors to 0 now.

        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::libxmlLoaderThread): use DEFINE_STATIC_LOCAL and accessor function for static thread id,
        since now ThreadIdentifier needs construction and we avoid having global initializers.
        (WebCore::matchFunc): use the new accessor function.
        (WebCore::openFunc): ditto.
        (WebCore::createStringParser): ditto.
        (WebCore::createMemoryParser): ditto.
        * loader/icon/IconDatabase.cpp:
        (WebCore::IconDatabase::open):
        * platform/sql/SQLiteDatabase.cpp:
        (WebCore::SQLiteDatabase::SQLiteDatabase):
        (WebCore::SQLiteDatabase::close):
        * storage/DatabaseThread.cpp:
        (WebCore::DatabaseThread::start):
        (WebCore::DatabaseThread::databaseThread): remove m_threadID from debug output.
        * storage/LocalStorageThread.cpp:
        (WebCore::LocalStorageThread::start):
        (WebCore::LocalStorageThread::scheduleImport):
        (WebCore::LocalStorageThread::scheduleSync):
        (WebCore::LocalStorageThread::terminate):
        * workers/WorkerThread.cpp:
        (WebCore::WorkerThread::start):
        (WebCore::WorkerThread::WorkerThread):
        (WebCore::WorkerThread::start):

2009-05-07  Simon Fraser  <simon.fraser@apple.com>

        Rubber Stamped by Dave Hyatt
        
        Shuffle the data members to minimize padding.

        * dom/ClassNames.h:

2009-05-07  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler

        <rdar://problem/6864062> Shrink GlyphPage from 4112 to 2576 bytes in 64-bit
        https://bugs.webkit.org/show_bug.cgi?id=25605

        Shrink GlyphPage by splitting the array of GlyphData, which has lots
        of padding, into separate Glyph and SimpleFontData* arrays.

        * platform/graphics/Font.h:
        glyphDataForCharacter has to return a GlyphData by value now.
        
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::glyphDataForCharacter):
        Return GlyphData by value.
        
        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        Better encapsulation of GlyphPage, using the new methods.

        * platform/graphics/Font.h:
        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::glyphDataForCharacter):
        * platform/graphics/GlyphPageTreeNode.cpp:
        (WebCore::GlyphPageTreeNode::initializePage):
        * platform/graphics/GlyphPageTreeNode.h:
        (WebCore::GlyphData::GlyphData):
        (WebCore::GlyphPage::indexForCharacter):
        (WebCore::GlyphPage::glyphDataForCharacter):
        (WebCore::GlyphPage::glyphDataForIndex):
        (WebCore::GlyphPage::glyphAt):
        (WebCore::GlyphPage::fontDataForCharacter):
        (WebCore::GlyphPage::setGlyphDataForCharacter):
        (WebCore::GlyphPage::setGlyphDataForIndex):
        (WebCore::GlyphPage::copyFrom):
        (WebCore::GlyphPage::clear):

2009-05-07  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=25625
        Implement Image/Option constructors in V8 bindings.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::NAMED_PROPERTY_GETTER): Removed old JS-based code.
        * bindings/v8/custom/V8HTMLImageElementConstructor.cpp: Added.
        * bindings/v8/custom/V8HTMLOptionElementConstructor.cpp: Added.

2009-05-07  Brady Eidson  <beidson@apple.com>

        I hate myself for doing this, but need to fix that ChangeLog entry.

        * ChangeLog:

2009-05-07  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Darin Adler

        * html/HTMLParser.cpp: Use the correct style of BUILDING_ON_* for WebCore.
        * html/HTMLParser.h: Ditto

2009-05-07  David Hyatt  <hyatt@apple.com>

        Restore intrinsic margins to all form controls on Mac and Windows.  Some of this regressed in 43007
        when textareas were given explicit margins.  Some of it had already regressed earlier whenever intrinsic
        margins were turned off in themeWin.css.

        Reviewed by Beth Dakin.

        * css/html4.css:
        * css/themeWin.css:

2009-05-07  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler and Alexey Proskuryakov.

        <rdar://problem/6863795> Exception occurs in Mail when attempting to create signatures due to <head> element creation

        * dom/Document.cpp:
        (WebCore::Document::implicitClose): Check shouldCreateImplicitHead() before creating it.

        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::handleError): Check shouldCreateImplicitHead() before creating it.
        (WebCore::HTMLParser::bodyCreateErrorCheck): Ditto.
        (WebCore::shouldCreateImplicitHead): For Tiger/Leopard when running under Mail, the implicit <head> shouldn't be created.
        * html/HTMLParser.h:
        (WebCore::shouldCreateImplicitHead): Inline implementation for non-Tiger/Leopard platforms

2009-05-07  Antony Sargent  <asargent@chromium.org>

        Reviewed by Darin Fisher.

        Fix a memory leak in V8EventListenerList::remove.

        https://bugs.webkit.org/show_bug.cgi?id=25618

        No new functionality so no new tests. 

        * bindings/v8/V8EventListenerList.cpp:
        (WebCore::V8EventListenerList::remove):

2009-05-07  Darin Fisher  <darin@chromium.org>

        Fix Chromium build bustage.

        * bindings/v8/custom/V8HTMLFormElementCustom.cpp: Add missing
        HTMLCollection.h include.

2009-05-07  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Bug 25598: AX: if a radio button has a label and a title, the label is not exposed
        https://bugs.webkit.org/show_bug.cgi?id=25598

        Test: accessibility/radio-button-title-label.html

        * page/AccessibilityObject.h:
        (WebCore::AccessibilityObject::exposesTitleUIElement):
        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::exposesTitleUIElement):
        (WebCore::AccessibilityRenderObject::titleUIElement):
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
        * page/AccessibilityRenderObject.h:

2009-05-07  Darin Fisher  <darin@chromium.org>

        Fix Chromium build bustage.

        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
        (WebCore::INDEXED_PROPERTY_GETTER): ":" should be "::"

2009-05-07  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25610
        [GTK] text.caretOffset is reportedly always 0

        Use the right function to get the caret offset in an
        element. selectionStart() would only work for text
        controls (there's even an ASSERT when calculating the selected
        text range). Instead just get the selection and get the offset of
        the start position.

        * page/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-05-07  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Fix support for antialiased CSS border-radius
        
        WebKit implements border-radius by drawing a double-size border,
        and then letting the clip constrain the border to the right width
        and position. This requires support for antialiased clipping, as
        well as painting, to get a nice smooth border.
        
        Qt only does antialiased clipping if the anti-alias flag is set
        at the time of clipping, so we have to enable this in the method
        addInnerRoundedRectClip(), as well as when we draw the border.
        
        Currently the raster-engine is the only Qt paint engine to support
        anti-aliased clipping, but the OpenGL and Mac paint engines could
        potentially support this in the future.

        * platform/graphics/qt/GraphicsContextQt.cpp:
        (WebCore::GraphicsContext::strokeArc):
        (WebCore::GraphicsContext::addInnerRoundedRectClip):

2009-05-07  Adam Langley  <agl@google.com>

        Reviewed by Eric Seidel.

        Render empty optgroup elements.

        https://bugs.webkit.org/show_bug.cgi?id=24900

        Currently, optgroup elements which are empty are not rendered. The
        HTML specification gives no guidance on this situation.

        However, the test for being empty is that they have no children, thus
        this will not render:
          <optgroup label="test"></optgroup>
        while this /will/ render (because of the text node child):
          <optgroup label="test"> </optgroup>

        This patch will cause both cases to render which matches IE's and
        Firefox's behaviour.

        The difference only appears when opening the select element and does
        not appear in the render tree. Thus, a manual layout-test is required.

        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::recalcListItems):
        * manual-tests/optgroup-empty-and-nested.html: Added.

2009-05-06  Julie Parent  <jparent@google.com>

        Reviewed by Eric Seidel.

        Bug 25608: Unused m_frame in ChromiumClipboard.
        https://bugs.webkit.org/show_bug.cgi?id=25608

        * platform/chromium/ClipboardChromium.h:
        
        No tests added as this is only removing dead code, no functional changes.

2009-05-06  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser and Justin Garcia.

        - fix another part of <rdar://problem/6703873> Triple-click quoted line
          and type Return creates an extra quoted blank line

        Test: editing/inserting/6703873-2.html

        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply): Corrected the logic for
        determining the first node that should go into the new blockquote
        given the split position: if it is at the end of a container, use the
        next node after the container. Otherwise, use the child at the
        position's offset.

2009-05-06  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix, fixes for wx trunk builds.

        * platform/graphics/wx/ImageWx.cpp:
        (WebCore::BitmapImage::draw):
        * platform/wx/RenderThemeWx.cpp:
        * platform/wx/wxcode/mac/carbon/fontprops.cpp:
        (wxFontProperties::wxFontProperties):

2009-05-06  Albert J. Wong  <ajwong@chromium.org>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=25597
        Fix API drift compile errors that occurred while this was ifdef-ed out.
        The two big issues were that RenderObject::element() became
        RenderObject::node() and some of the wk* drawing functions had
        an extra theme parameter added to the argument list.

        * rendering/RenderThemeChromiumMac.mm:
        (WebCore::RenderThemeChromiumMac::paintMediaFullscreenButton):
        (WebCore::RenderThemeChromiumMac::paintMediaMuteButton):
        (WebCore::RenderThemeChromiumMac::paintMediaPlayButton):
        (WebCore::RenderThemeChromiumMac::paintMediaSeekBackButton):
        (WebCore::RenderThemeChromiumMac::paintMediaSeekForwardButton):
        (WebCore::RenderThemeChromiumMac::paintMediaSliderTrack):
        (WebCore::RenderThemeChromiumMac::paintMediaSliderThumb):

2009-05-06  Jian Li  <jianli@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25385
        Upstream changes to V8 bindings for supporting nested workers.

        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::ToV8Object):
        (WebCore::WorkerContextExecutionProxy::EventTargetToV8Object):
        * bindings/v8/custom/V8WorkerCustom.cpp:
        (WebCore::getEventListener):
        (WebCore::ACCESSOR_SETTER WorkerOnmessage):
        (WebCore::CALLBACK_FUNC_DECL WorkerAddEventListener):

2009-05-06  Dave Moore  <davemoore@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25513
        The V8 bindings convert every javascript property to its associated css style
        name. It then calls functions that convert that name to an id. This makes
        getting or setting css styles on elements slow.
        
        The patch fixes this by caching the results of the transformation, mapping a
        javascript property name to its css property id. It then calls the already
        public webkit methods that take the id in place of the string property names.

        * bindings/v8/custom/V8CSSStyleDeclarationCustom.cpp:

2009-05-06  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25591
        Upstream V8HTMLFormElement from the Chromium repository.

        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
        (WebCore::INDEXED_PROPERTY_GETTER HTMLFormElement): Upstreamed from Chromium repository
        (WebCore::NAMED_PROPERTY_GETTER HTMLFormElement): Changed empty element return case to return notHandledByInterceptor();
        (WebCore::CALLBACK_FUNC_DECL HTMLFormElementSubmit): Upstreamed from Chromium repository

2009-05-06  Albert J. Wong  <ajwong@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25595
        Upstream V8CanvasPixelArrayCustom from chromium port tree.

        * bindings/v8/V8CanvasPixelArrayCustom.cpp: Added.

2009-05-06  Simon Fraser  <simon.fraser@apple.com>

        Rubber-stampted by Eric Seidel

        Add braces to clarify logic flow in RenderObject::adjustStyleDifference.
        Only affects ACCELERATED_COMPOSITING builds.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::adjustStyleDifference):

2009-05-06  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein

        <rdar://problem/6862550> Reduce size of RenderText in 64-bit
        
        Rearrange data members of RenderText so that an int comes
        first, to minimize padding.

        * rendering/RenderText.cpp:
        (WebCore::RenderText::RenderText):
        * rendering/RenderText.h:

2009-05-06  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dan Bernstein

        <rdar://problem/6862823> Reduce size of RenderStyle in 64-bit
        
        Rearrange data members of RenderStyle to minimize padding
        when building for 64-bit.

        * rendering/style/RenderStyle.cpp:
        (WebCore::RenderStyle::RenderStyle):
        * rendering/style/RenderStyle.h:
        (WebCore::):

2009-05-06  Darin Fisher  <darin@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25596

        Fixes Chromium build bustage caused by r43317 (making
        RefCountedBase::m_refCount private)

        * page/chromium/AccessibilityObjectWrapper.h:
        (WebCore::AccessibilityObjectWrapper::AccessibilityObjectWrapper):

2009-05-06  Hin-Chung Lam  <hclam@chromium.org>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=25593

        Refactor for MediaPlayerPrivate for Chromium port. Remove
        the implementation of MediaPlayerPrivateInferface from it.

        * platform\graphics\chromium\MediaPlayerPrivateChromium.h:

2009-05-06  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Dave Hyatt, Dan Bernstein
        
        <rdar://problem/6860197> Reduce the size of FontFallbackList in 64-bit

        Re-order the data members of FontFallbackList to save 8 bytes when building 64-bit.

        * platform/graphics/FontFallbackList.cpp:
        (WebCore::FontFallbackList::FontFallbackList):
        * platform/graphics/FontFallbackList.h:

2009-05-06  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler, Dan Bernstein

        <rdar://problem/6860068> Reduce size of InlineBox in 64-bit

        Re-order the data members of InlineBox to save 8 bytes when building 64-bit.

        * rendering/InlineBox.h:
        (WebCore::InlineBox::InlineBox):

2009-05-06  David Levin  <levin@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25588
        Adding the custom v8 bindings Document.location.

        * bindings/v8/custom/V8DocumentLocationCustom.cpp: Added.

2009-05-06  Kevin McCullough  <kmccullough@apple.com>

        -Clarified a comment

        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):

2009-05-06  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Not reviewed. Fix WML enabled builds by including "MappedAttribute.h" in several places.

        * wml/WMLAElement.cpp:
        * wml/WMLAccessElement.cpp:
        * wml/WMLBRElement.cpp:
        * wml/WMLCardElement.cpp:
        * wml/WMLDoElement.cpp:
        * wml/WMLElement.cpp:
        * wml/WMLFieldSetElement.cpp:
        * wml/WMLGoElement.cpp:
        * wml/WMLImageElement.cpp:
        * wml/WMLInputElement.cpp:
        * wml/WMLMetaElement.cpp:
        * wml/WMLOnEventElement.cpp:
        * wml/WMLOptGroupElement.cpp:
        * wml/WMLOptionElement.cpp:
        * wml/WMLPElement.cpp:
        * wml/WMLPostfieldElement.cpp:
        * wml/WMLSetvarElement.cpp:
        * wml/WMLTableElement.cpp:
        * wml/WMLTemplateElement.cpp:
        * wml/WMLTimerElement.cpp:

2009-05-06  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25526
        [Gtk] Additional support is needed for caret browsing

        Emit AtkText::text-selection-changed when the selection changes
        and the current selection is of Range (ie, the start and end
        positions are different) type. This seems to match what Gecko
        does.

        * editing/gtk/SelectionControllerGtk.cpp:
        (WebCore::SelectionController::notifyAccessibilityForSelectionChange):

2009-05-05  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=25526
        [Gtk] Additional support is needed for caret browsing

        Emit AtkText::text-caret-moved when selection changes.

        * GNUmakefile.am:
        * editing/SelectionController.h:
        * editing/gtk/SelectionController.cpp: Added.
        (WebCore::SelectionController::notifyAccessibilityForSelectionChange):

2009-05-06  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Gustavo Noronha.

        Use mozilla cursors for the previously not implemented
        cursors. The manual-tests/cursor.html is looking complete
        now.

        * platform/gtk/CursorGtk.cpp:
        (WebCore::cellCursor):
        (WebCore::noDropCursor):
        (WebCore::progressCursor):
        (WebCore::noneCursor):
        (WebCore::notAllowedCursor):
        (WebCore::grabCursor):
        (WebCore::grabbingCursor):
        * platform/gtk/CursorGtk.h:

2009-05-06  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Xan Lopez.

        Properly indent the header file.

        * platform/gtk/CursorGtk.h:

2009-05-06  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Gustavo Noronha.

        Use the mozilla copyright header. Use MPL1.1/GPL2.0
        and LGPL2.1 as the license compared to LGPL2.0.

        * platform/gtk/CursorGtk.h:

2009-05-06  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Gustavo Noronha.

        Move PluginView::invalidateRegion from the
        TemporaryLinkStubs to PluginViewGtk.cpp and implement
        it with a call to Widget::invalidate() just like
        mac is doing. Optimisations would have to be window
        system specific.

        * platform/gtk/TemporaryLinkStubs.cpp:
        * plugins/gtk/PluginViewGtk.cpp:
        (WebCore::PluginView::invalidateRegion):

2009-05-06  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Holger Freyther.

        Misc fixes to InspectorClientGtk.

        * GNUmakefile.am: Add localizedStrings.js to webinspector_DATA.
        This prevents copious amounts "Localized string not found" errors
        in the console

2009-05-06  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        Fix the Qt build on Windows.

        * platform/graphics/GraphicsContext.h:
        (WebCore::GraphicsContext::shouldIncludeChildWindows): Implemented dummy accessor.

2009-05-06  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Tor Arne Vestbø.

        Tweak WebCore.pro for being able to override the generated sources dir for the
        generated_files target.

        * WebCore.pro:

2009-05-06  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Holger Freyther.

        Fix the Qt/Windows build, use iface instead of interface to avoid conflict
        with VS2005 headers.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState):

2009-05-06  Joerg Bornemann  <joerg.bornemann@trolltech.com>

        Reviewed by Simon Hausmann.

        We need to include StringExtras.h on Windows CE to access the strdup function.

        * plugins/PluginStream.cpp:

2009-05-06  Soren Gjesse  <sgjesse@chromium.org>

        Reviewed by Eric Seidel.

        Changed the toString behaviour for non document dom node event handlers in the V8 bindings.
        https://bugs.webkit.org/show_bug.cgi?id=25544

        In the V8 bindings non document dom node event handlers are wrapped in a number of with blocks and uses an inner
        function. This causes the default toString on such a handler to return all this wrapper code. As some web sites
        use the source of an event handler to create new functions this wrapper code causes compatibility problems.

        Create a specific toString function for these handlers which will return a function source compatible with the
        source returned by the JSC bindings and other browsers.

        Test: fast/events/event-function-toString.html

        * bindings/v8/ScriptEventListener.cpp:
        (WebCore::createAttributeEventListener):
        * bindings/v8/V8LazyEventListener.cpp:
        (WebCore::V8LazyEventListener::V8LazyEventListener):
        (WebCore::V8LazyEventListener::getListenerFunction):
        (WebCore::V8LazyEventListenerToString):
        (WebCore::V8LazyEventListener::getWrappedListenerFunction):
        * bindings/v8/V8LazyEventListener.h:
        (WebCore::V8LazyEventListener::create):

2009-05-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        Build QtWebKit as a framework on Mac

        This implies both debug and release build by default, unless
        one of the --debug or --release config options are passed to
        the build-webkit script.

        Frameworks can be disabled by passing CONFIG+=webkit_no_framework
        to the build-webkit script.

        To be able to build both debug and release targets in parallel
        we have to use separate output directories for the generated
        sources, which is not optimal, but required to avoid race conditions.

        An optimization would be to only require this spit-up on Mac.

        * WebCore.pro:

2009-05-06  Tor Arne Vestbø  <tor.arne.vestbo@nokia.com>

        Reviewed by Simon Hausmann.

        [Qt] Use $$GENERATED_SOURCES_DIR as output when running bison

        A couple of the generators left the bison output file in the source
        tree, and then moved it into $$GENERATED_SOURCES_DIR, which did not
        work well when building release and debug configurations in parallel.

        * WebCore.pro:

2009-05-06  Dan Bernstein  <mitz@apple.com>

        Reviewed by Justin Garcia.

        - fix an assertion failure in RemoveNodeCommand() when deleting a <br>
          between a block and a mail blockquote

        Test: editing/deleting/removeNodeCommand-assert.html

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::mergeParagraphs): Pass the start block
        to prune() instead of passing m_upstreamStart.node(), because the latter
        may have been removed already.

2009-05-05  Eric Seidel  <eric@webkit.org>

        No review, roll out only.

        Roll out r23072 since it broke layout tests

        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):

2009-05-05  Ben Murdoch  <benm@google.com>

        Reviewed by Eric Seidel.
        
        Add #if ENABLE(DATABASE) guards around database code so toggling ENABLE_DATABASE off does not break builds.
        https://bugs.webkit.org/show_bug.cgi?id=24776

        No functional changes, thus no tests.

        * bindings/js/JSCustomSQLStatementCallback.cpp:
        * bindings/js/JSCustomSQLStatementCallback.h:
        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
        * bindings/js/JSCustomSQLStatementErrorCallback.h:
        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        * bindings/js/JSCustomSQLTransactionCallback.h:
        * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
        * bindings/js/JSCustomSQLTransactionErrorCallback.h:
        * bindings/js/JSDatabaseCustom.cpp:
        * bindings/js/JSSQLTransactionCustom.cpp:
        * loader/EmptyClients.h:
        * page/ChromeClient.h:
        * storage/ChangeVersionWrapper.cpp:
        * storage/ChangeVersionWrapper.h:
        * storage/Database.cpp:
        (WebCore::Database::databaseInfoTableName):
        * storage/Database.h:
        * storage/Database.idl:
        * storage/DatabaseTask.cpp:
        * storage/DatabaseTask.h:
        * storage/DatabaseThread.cpp:
        * storage/DatabaseThread.h:
        * storage/DatabaseTracker.cpp:
        * storage/DatabaseTracker.h:
        * storage/DatabaseTrackerClient.h:
        * storage/OriginQuotaManager.cpp:
        * storage/OriginQuotaManager.h:
        * storage/SQLStatement.cpp:
        * storage/SQLStatement.h:
        * storage/SQLTransaction.cpp:
        * storage/SQLTransaction.h:
        * storage/SQLTransaction.idl:

2009-05-05  Jeremy Moskovich  <jeremy@chromium.org>

        Reviewed by Eric Seidel.

        Add some documentation to InlineBox::x(),y().
        https://bugs.webkit.org/show_bug.cgi?id=25378

        * rendering/InlineBox.h:

2009-05-05  Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Eric Seidel.

        Disable all the SVG features for WebKit/Qt if ENABLE_SVG=0 
        https://bugs.webkit.org/show_bug.cgi?id=24693

        * WebCore.pro:

2009-05-05  Sankar Aditya Tanguturi  <sankaraditya@gmail.com>

        Reviewed by Eric Seidel.

        Anonymous blocks should not be exposed in accessibility tree.
        Part of https://bugs.webkit.org/show_bug.cgi?id=23072

        Tests: accessibility/ignore-anonymous-block.html
               platform/win/accessibility/document-role.html

        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):Return
        true for Anonymous blocks. Matching Firefox 2.0.0.14

2009-05-05  Jungshik Shin  <jshin@chromium.org>

        Reviewed by Alexey Proskuryakov.

        http://bugs.webkit.org/show_bug.cgi?id=25487

        For euc-kr and other 8bit Korean encodings
        (similar to euc-kr/windows-949), make document.charset return
        EUC-KR instead of windows-949. The latter is not recognized by
        Korean web servers.

        Add domName method to TextEncoding to deal with cases where
        our internal encoding name does not match what's widely recognized
        by web servers. Currently, the only case is 'windows-949' (internal
        name) vs 'EUC-KR'.

        Test: fast/encoding/euckr-name.html

        * dom/Document.cpp:
        (WebCore::Document::encoding): Call TextEncoding.domName() instead
        of TextEncoding.name().
        * platform/text/TextEncoding.cpp:
        (WebCore::TextEncoding::domName): For the canonical name 'windows-949',
        return 'EUC-KR'. Otherwise, just return the canonical name.
        * platform/text/TextEncoding.h:

2009-05-05  Adam Langley  <agl@google.com>

        Reviewed by Darin Adler.

        Rendering fix for <select> elements.
        https://bugs.webkit.org/show_bug.cgi?id=25558

        When switching a <select> element from display:none to default
        display, we would fail to invalidate the parent's pref widths in some
        situations:

        When attaching the element, RenderMenuList::updateOptionsWidth would
        call setNeedsLayoutAndPrefWidthsRecalc before the parent pointer was
        set. This would mark the pref widths as dirty, but not for any parent
        objects.

        When RenderObjectChildList::appendChildNode later calls
        setNeedsLayoutAndPrefWidthsRecalc again, with a valid parent pointer,
        nothing would be done because the pref widths were already dirty for.
        the RenderMenuList.

        * rendering/RenderMenuList.cpp:
        (WebCore::RenderMenuList::updateOptionsWidth):

2009-05-05  Antony Sargent  <asargent@chromium.org>

        Reviewed by Dimitri Glazkov.

        Switch V8EventListenerList to use HashTable<T>.
        https://bugs.webkit.org/show_bug.cgi?id=25496
        
        This avoids some tricky issues with event listener removal in the 
        current implementation and has slightly better performance.

        No new functionality so no new tests.

        * bindings/v8/V8EventListenerList.cpp: Added V8EventListenerListIterator.
        * bindings/v8/V8EventListenerList.h:
        (WebCore::V8EventListenerList::size):
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):

2009-05-05  Darin Fisher  <darin@chromium.org>

        Fixing build bustage.

        Add some missing includes to fix the Chromium build.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        * bindings/v8/custom/V8HTMLDocumentCustom.cpp:

2009-05-05  Darin Fisher  <darin@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25570

        history.{back,forward,go} should always be dispatched asynchronously,
        even when the history navigation would just result in scrolling the
        page.  This matches the behavior of other browsers like IE and FF.

        Test: fast/history/back-forward-is-asynchronous.html

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::scheduleHistoryNavigation):

2009-05-05  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Add an ASSERT(useTransforms) to mapLocalToContainer implementations in SVG.
        https://bugs.webkit.org/show_bug.cgi?id=25532
        https://bugs.webkit.org/show_bug.cgi?id=25568

        Adding this ASSERT exposed a bug in SVGPaintServerPattern::setup
        which was causing transformed SVG text when filled/stroked with a
        pattern using patternUnits=objectBoundingBox to draw incorrectly.

        I fixed the incorrect drawing (by removing the broken code) and added
        two test cases to test the fix:
        * svg/transforms/text-with-pattern-inside-transformed-html.xhtml
        * svg/transforms/text-with-pattern-with-svg-transform.svg

        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::mapLocalToContainer):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::mapLocalToContainer):
        * svg/graphics/SVGPaintServerPattern.cpp:
        (WebCore::SVGPaintServerPattern::setup):

2009-05-05  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=25554
        
        Support HTML5 text control input types: email, number, tel, url

        Test: fast/html/text-field-input-types.html

        * bindings/objc/DOMHTML.mm:
        (-[DOMHTMLInputElement _isTextField]): Call HTMLInputElement::isTextField directly.
        * html/HTMLInputElement.cpp: Use the new types where appropriate.
        (WebCore::HTMLInputElement::setInputType):
        (WebCore::HTMLInputElement::type):
        (WebCore::HTMLInputElement::saveState):
        (WebCore::HTMLInputElement::restoreState):
        (WebCore::HTMLInputElement::accessKeyAction):
        (WebCore::HTMLInputElement::rendererIsNeeded):
        (WebCore::HTMLInputElement::createRenderer):
        (WebCore::HTMLInputElement::appendFormData):
        (WebCore::HTMLInputElement::valueWithDefault):
        (WebCore::HTMLInputElement::storesValueSeparateFromAttribute):
        (WebCore::HTMLInputElement::defaultEventHandler):
        * html/HTMLInputElement.h: Ditto.
        (WebCore::HTMLInputElement::):
        (WebCore::HTMLInputElement::isTextField):

2009-04-01  miggilin  <mr.diggilin@gmail.com>

        Reviewed by Kevin Ollivier.

        Mouse wheel scrolling and keyboard shortcut support for wx.
        
        https://bugs.webkit.org/show_bug.cgi?id=24797

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::wheelEvent):
        * platform/wx/KeyboardEventWx.cpp:
        (WebCore::windowsKeyCodeForKeyEvent):
        (WebCore::PlatformKeyboardEvent::PlatformKeyboardEvent):
        * platform/wx/ScrollViewWx.cpp:
        (WebCore::ScrollView::platformSetScrollPosition):

2009-05-05  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix for Windows, add missing include.
        
        https://bugs.webkit.org/show_bug.cgi?id=24798

        * platform/wx/wxcode/win/non-kerned-drawing.cpp:

2009-05-05  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Bug 25574: AXImageMap children links don't respond properly to accessibilityHitTest:
        https://bugs.webkit.org/show_bug.cgi?id=25574

        Enable accessibility hit-testing for image map links. 
        Allow image map links to return AXURLs and AXAccessKey information.

        Test: platform/mac/accessibility/imagemap-hittest.html

        * page/AccessibilityImageMapLink.cpp:
        (WebCore::AccessibilityImageMapLink::url):
        * page/AccessibilityImageMapLink.h:
        * page/AccessibilityObject.h:
        (WebCore::AccessibilityObject::minValueForRange):
        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityParentForImageMap):
        (WebCore::AccessibilityRenderObject::accessibilityImageMapHitTest):
        (WebCore::AccessibilityRenderObject::doAccessibilityHitTest):
        * page/AccessibilityRenderObject.h:
        * page/mac/AccessibilityObjectWrapper.mm:
        (-[AccessibilityObjectWrapper accessibilityAttributeNames]):

2009-05-05  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6552129> Select a quote line and paste elsewhere, you
        get that line and an extra quoted blank line
        <rdar://problem/6609308> Triple-click a quoted header line, copy, paste
        onto an empty line makes an extra quoted line

        - When pasting a blockquote with a newline, make sure we put the newline
        outside of the blockquote so that it is not quoted.

        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):

2009-05-05  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        Call moz_gtk_shutdown on RenderThemeGtk destruction.

        * platform/gtk/RenderThemeGtk.cpp:
        (WebCore::RenderThemeGtk::~RenderThemeGtk):
        * platform/gtk/RenderThemeGtk.h:

2009-05-05  Darin Adler  <darin@apple.com>

        Reviewed by Steve Falkenburg.

        <rdar://problem/6858340> REGRESSION: can't drag local HTML files into Safari because CFURLCreateWithFileSystemPath inserts "localhost"

        * platform/win/ClipboardUtilitiesWin.cpp: (WebCore::urlFromPath): Remove localhost.

2009-05-05  Peter Kasting  <pkasting@google.com>

        Reviewed by Brady Eidson.

        Safety-check m_documentLoader before dereferencing.  While it seems
        unlikely this could fail (as Safari 3 shipped without this),
        technically almost any call can change or reset m_documentLoader.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::receivedFirstData):

2009-05-05  Dan Bernstein  <mitz@apple.com>

        - Tiger build fix

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::toCSSIdentifier):

2009-05-05  Peter Kasting  <pkasting@google.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25303
        No need to ref the internal buffer inside the Skia ImageDecoder.

        * platform/image-decoders/skia/ImageDecoder.h:
        (WebCore::RGBA32Buffer::RGBA32Buffer):
        (WebCore::RGBA32Buffer::operator=):
        (WebCore::RGBA32Buffer::clear):
        (WebCore::RGBA32Buffer::copyBitmapData):
        (WebCore::RGBA32Buffer::bitmap):
        (WebCore::RGBA32Buffer::setSize):
        (WebCore::RGBA32Buffer::width):
        (WebCore::RGBA32Buffer::height):
        (WebCore::RGBA32Buffer::hasAlpha):
        (WebCore::RGBA32Buffer::setStatus):
        (WebCore::RGBA32Buffer::setHasAlpha):
        (WebCore::RGBA32Buffer::setRGBA):

2009-05-05  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix https://bugs.webkit.org/show_bug.cgi?id=24192
          <rdar://problem/5760774> Replying to a Mail message that contains
          fixed width text can change the size of the text

        Covered by existing tests: editing/pasteboard/5027857.html
                                   editing/pasteboard/paste-pre-002.html

        * css/CSSComputedStyleDeclaration.cpp:
        (WebCore::CSSComputedStyleDeclaration::getFontSizeCSSValuePreferringKeyword):
        Added. If the font-size is keyword-based, returns the keyword value
        instead of the pixel size.
        (WebCore::CSSComputedStyleDeclaration::getPropertyCSSValue): If
        font-family is a generic family, return the generic family instead of
        the the internal string -webkit-[serif|sans-serif|cursive|fantasy
        |monospace].
        (WebCore::CSSComputedStyleDeclaration::copyInheritableProperties):
        For the font-size property, prefer a keyword value over a pixel size.
        * css/CSSComputedStyleDeclaration.h:
        * editing/ApplyStyleCommand.cpp:
        (WebCore::StyleChange::currentlyHasStyle): For the font-size property,
        call getFontSizeCSSValuePreferringKeyword().
        * platform/graphics/FontDescription.h:
        (WebCore::FontDescription::keywordSize): Changed the return type to
        unsigned.
        (WebCore::FontDescription::setKeywordSize): Changed the parameter type
        to unsigned.
        (WebCore::FontDescription::m_keywordSize): Changed the type of this
        4-bit field to unsigned, because it takes values as high as 8.

2009-05-05  Oliver Hunt  <oliver@apple.com>

        Reviewed by Maciej Stachowiak.

        Fix http/tests/misc/DOMContentLoaded-event.html

        The native call performance improvement removed a few places where we
        unintentionally performed a toThisObject conversion.  This patch updates
        the bindings codegen to not rely on this bug.

        * bindings/scripts/CodeGeneratorJS.pm:

2009-05-05  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Xan Lopez and Gustavo Noronha.

        Implement WebCore::directoryName for Gtk+.

        * platform/gtk/FileSystemGtk.cpp:
        (WebCore::directoryName):

2009-05-05  Eric Seidel  <eric@webkit.org>

        Reviewed by Adam Roben.

        Fix mappedAttributes() access without NULL check
        https://bugs.webkit.org/show_bug.cgi?id=25553

        SVGStyledElement::getPresentationAttribute was using mappedAttributes()
        without checking for NULL.

        HTMLInputElement::setInputType also doesn't NULL check, but I was not
        able to get it to crash with a test case so I just added an ASSERT.

        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::setInputType):
        * svg/SVGStyledElement.cpp:
        (WebCore::SVGStyledElement::getPresentationAttribute):

2009-05-05  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Xan Lopez.

        Implement WebCore::imageTitle for Gtk+.

        * platform/gtk/LocalizedStringsGtk.cpp:
        (WebCore::imageTitle):

2009-05-05  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Bug 25559: Improve native function call performance
        <https://bugs.webkit.org/show_bug.cgi?id=25559>

        Add forwarding header necessary for compilation, and fix debugger
        to correctly account for change in JSFunction behaviour.

        * ForwardingHeaders/jit/JITCode.h: Added.
        * inspector/JavaScriptDebugServer.cpp:
        (WebCore::JavaScriptDebugServer::recompileAllJSFunctions):

2009-05-05  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        Make convertValueToQVariant more robust against null JSValues.

        Don't require the caller to do the null check.

        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::convertValueToQVariant):

2009-05-05  Eric Seidel  <eric@webkit.org>

        No review, just a revert.

        Roll out http://trac.webkit.org/changeset/43213 as it caused 4 tests to crash.

        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::mapLocalToContainer):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::mapLocalToContainer):

2009-05-04  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Dave Hyatt.

        <rdar://problem/6576889> REGRESSION (r35185): Cannot watch Flash movies on omg.yahoo.com

        The problem was caused by missing <head> element - we used to create it when moving a
        misplaced <style> element, but we now handle those in place. Other browsers always create
        a <head> element.

        There is no guarantee that a <head> element always exists - first, it can be removed with
        removeChild or innerHTML, and also, we don't currently create it for frameset documents, or
        for manually created ones (e.g. ImageDocument).

        Test: fast/parser/head-element-for-yahoo-player.html

        * dom/Document.cpp: (WebCore::Document::implicitClose): Create a <head> element for about:blank.
        A removed comment talked about rdar://3758785, but that problem doesn't re-occur even if this
        code is removed completely.

        * html/HTMLHtmlElement.cpp: (WebCore::HTMLHtmlElement::checkDTD): No longer allow <script>
        elements as children of <html>. This isn't directly related to this bug, but it was easier
        to fix both at once (IE and Firefox both don't allow such mispositioned <script> elements).

        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::handleError): Move <script> to <head> if <body> hasn't been created yet.
        Create a <head> it a <body> is created implicitly to contain some other element.
        (WebCore::HTMLParser::bodyCreateErrorCheck): Ensure that a <head> exists when <body> is
        explicitly present in source.
        (WebCore::HTMLParser::createHead): Do the work even if <html> element hasn't been created yet.

2009-05-04  Jakub Wieczorek  <faw217@gmail.com>

        Reviewed by Simon Hausmann.

        As Qtish implementation of MIMETypeRegistry::getMIMETypeForExtension()
        returns the application/octet-stream mimetype when it can't associate
        extension with any mimetype, it can happen that the application/octet-stream
        mimetype will hit the list of supported image formats. For instance,
        it is possible when QImageReader or QImageWriter support an extension
        that is not in the extensions map.

        Make sure that this mimetype is not treated as displayable image type.

        * platform/MIMETypeRegistry.cpp:
        (WebCore::initializeSupportedImageMIMETypes):
        (WebCore::initializeSupportedImageMIMETypesForEncoding):

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        ASSERT(useTransforms) in SVG mapLocalToContainer implementations
        https://bugs.webkit.org/show_bug.cgi?id=25532

        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::mapLocalToContainer):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::mapLocalToContainer):

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Remove m_absoluteBounds hack from RenderSVGText
        https://bugs.webkit.org/show_bug.cgi?id=25532

        No functional changes (SVGs inside CSS transformed HTML should theoretically repaint better)

        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::layout):
        * rendering/RenderSVGText.h:

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Remove the vestigial calculateLocalTransform()
        https://bugs.webkit.org/show_bug.cgi?id=25532

        RenderSVGContainer is now the only render which needs this
        function, but it no longer returns the unused bool.

        calculateLocalTransform() previously was called by the DOM before
        transform updates were part of layout().

        * rendering/RenderForeignObject.cpp:
        (WebCore::RenderForeignObject::layout):
        * rendering/RenderForeignObject.h:
        (WebCore::RenderForeignObject::localTransform):
        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::layout):
        * rendering/RenderPath.h:
        * rendering/RenderSVGContainer.cpp:
        * rendering/RenderSVGContainer.h:
        (WebCore::RenderSVGContainer::calculateLocalTransform):
        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::layout):
        * rendering/RenderSVGImage.h:
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::layout):
        * rendering/RenderSVGText.h:
        * rendering/RenderSVGTransformableContainer.cpp:
        (WebCore::RenderSVGTransformableContainer::calculateLocalTransform):
        * rendering/RenderSVGTransformableContainer.h:

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Move more code into SVGRenderBase
        https://bugs.webkit.org/show_bug.cgi?id=25532

        clippedOverflowRectForRepaint, computeRectForRepaint and mapLocalToContainer
        are now all shared via SVGRenderBase.

        RenderForeignObject should also be sharing this code, but I've left it
        alone for now, as changing that would likely cause test changes.

        No test changes.  It's possible that transformed <svg:image> elements will
        now show up with better metrics in the inspector.

        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGImage::computeRectForRepaint):
        (WebCore::RenderSVGImage::mapLocalToContainer):
        * rendering/RenderSVGImage.h:
        * rendering/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGModelObject::computeRectForRepaint):
        (WebCore::RenderSVGModelObject::mapLocalToContainer):
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGText::computeRectForRepaint):
        (WebCore::RenderSVGText::mapLocalToContainer):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::clippedOverflowRectForRepaint):
        (WebCore::SVGRenderBase::computeRectForRepaint):
        (WebCore::SVGRenderBase::mapLocalToContainer):
        * rendering/SVGRenderSupport.h:

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Add SVGRenderBase to share logic between SVG renderers
        https://bugs.webkit.org/show_bug.cgi?id=25532

        I've added an SVGRenderBase base class which is shared by
        all of the SVG renders now.  This patch is just moving code
        there are no functional changes in this patch.

        Currently I've left these functions in SVGRenderSupport.h
        In a later patch I will rename SVGRenderSupport.* to SVGRenderBase.*

        clampImageBufferSizeToViewport now takes a FrameView* which makes some code easier to read.

        * rendering/RenderSVGBlock.h:
        * rendering/RenderSVGImage.h:
        * rendering/RenderSVGModelObject.h:
        * rendering/RenderSVGRoot.h:
        * rendering/SVGRenderSupport.cpp:
        (WebCore::SVGRenderBase::prepareToRenderSVGContent):
        (WebCore::SVGRenderBase::finishRenderSVGContent):
        (WebCore::clampImageBufferSizeToViewport):
        (WebCore::SVGRenderBase::computeContainerBoundingBox):
        (WebCore::SVGRenderBase::filterBoundingBoxForRenderer):
        * rendering/SVGRenderSupport.h:
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
        (WebCore::SVGRootInlineBoxPaintWalker::chunkEndCallback):
        (WebCore::SVGRootInlineBox::paint):
        * svg/SVGMaskElement.cpp:
        (WebCore::SVGMaskElement::drawMaskerContent):
        * svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern):
        * svg/graphics/SVGPaintServerGradient.cpp:
        (WebCore::createMaskAndSwapContextForTextGradient):
        (WebCore::clipToTextMask):

2009-05-05  Simon Hausmann  <simon.hausmann@nokia.com>

        Unreviewed SVG build fix.

        Include MappedAttribute.h after r43187.

        * svg/SVGComponentTransferFunctionElement.cpp:
        * svg/SVGFEBlendElement.cpp:
        * svg/SVGFEColorMatrixElement.cpp:
        * svg/SVGFEComponentTransferElement.cpp:
        * svg/SVGFECompositeElement.cpp:
        * svg/SVGFEDiffuseLightingElement.cpp:
        * svg/SVGFEDisplacementMapElement.cpp:
        * svg/SVGFEGaussianBlurElement.cpp:
        * svg/SVGFEImageElement.cpp:
        * svg/SVGFELightElement.cpp:
        * svg/SVGFEMergeNodeElement.cpp:
        * svg/SVGFEOffsetElement.cpp:
        * svg/SVGFESpecularLightingElement.cpp:
        * svg/SVGFETileElement.cpp:
        * svg/SVGFETurbulenceElement.cpp:
        * svg/SVGFilterElement.cpp:
        * svg/SVGFilterPrimitiveStandardAttributes.cpp:

2009-05-04  Brady Eidson  <beidson@apple.com>

        Reviewed by Sam 'The Belly' Weinig

        <rdar://problem/6828894> - Facebook photo uploader applet broken on Leopard only

        In r41568 we started adding a default codebase attribute to <applet> tags if they didn't specify one
        themselves.  Leopard's Java plug-in mishandles this case and fails to load code for the applet.

        The spirit of r41568 can be maintained by removing the "default codebase" piece and only performing
        the canLoad() check if a codebase was actually set on the applet tag.

        * html/HTMLAppletElement.cpp:
        (WebCore::HTMLAppletElement::createRenderer): Don't create a default codebase attribute.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::createJavaAppletWidget): Only perform the canLoad() check if the codebase was set.

2009-05-04  Adam Roben  <aroben@apple.com>

        Windows build fix

        * html/HTMLCollection.h:
        * html/HTMLFormElement.h:
        Declare CollectionCache as a struct, not a class, to match its
        definition.

2009-05-04  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin, Oliver Hunt.

        Bug 25557: REGRESSION: Canvas elements are ignored instead of being exposed as AXImage
        https://bugs.webkit.org/show_bug.cgi?id=25557

        Test: accessibility/canvas.html

        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):
        (WebCore::AccessibilityRenderObject::roleValue):

2009-05-04  Brady Eidson  <beidson@apple.com>

        Fix an ancient Changelog entry where Sam Weinig flat out lied and confused my exploration of a bug.

        * ChangeLog

2009-05-04  Kai Brüning  <kai@granus.net>

        Reviewed by Eric Seidel.
        
        https://bugs.webkit.org/show_bug.cgi?id=24883
        24883: Bad success test in parseXMLDocumentFragment in XMLTokenizerLibxml2.cpp
        
        Fixed test whether all the chunk has been processed to correctly count utf8 bytes.

        Test: fast/innerHTML/innerHTML-nbsp.xhtml

        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::parseXMLDocumentFragment):

2009-05-04  Darin Adler  <darin@apple.com>

        Reviewed by Eric Seidel.

        Bug 24924: remove Document.h include of Attr.h and HTMLCollection.h,
        and NamedMappedAttrMap.h include of MappedAttribute.h
        https://bugs.webkit.org/show_bug.cgi?id=24924

        Make compiles faster, and debugging info smaller.

        * GNUmakefile.am: Added new source files.
        * WebCore.pro: Ditto.
        * WebCore.scons: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * WebCoreSources.bkl: Ditto.

        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::toJS): Updated for new collection type names.

        * dom/Document.cpp:
        (WebCore::Document::createAttribute): Added. No longer inline.
        (WebCore::Document::images): Updated for new collection type names.
        (WebCore::Document::applets): Ditto.
        (WebCore::Document::embeds): Ditto.
        (WebCore::Document::plugins): Ditto.
        (WebCore::Document::objects): Ditto.
        (WebCore::Document::scripts): Ditto.
        (WebCore::Document::links): Ditto.
        (WebCore::Document::forms): Ditto.
        (WebCore::Document::anchors): Ditto.
        (WebCore::Document::all): Ditto.
        (WebCore::Document::windowNamedItems): Ditto.
        (WebCore::Document::documentNamedItems): Ditto.
        (WebCore::Document::nameCollectionInfo): Ditto.

        * dom/Document.h: Changed around includes and forward declarations.
        Updated for changes to collection types.

        * dom/NamedMappedAttrMap.h: Removed include of MappedAttribute.h.

        * html/CollectionCache.cpp: Copied from WebCore/html/HTMLCollection.cpp.
        Contains the class that used to be HTMLCollection::CollectionInfo.
        * html/CollectionCache.h: Copied from WebCore/html/HTMLCollection.h.
        Ditto.

        * html/CollectionType.h: Copied from WebCore/html/HTMLCollection.h.
        Has the enum that used to be HTMLCollection::Type.

        * html/HTMLCollection.cpp:
        (WebCore::HTMLCollection::HTMLCollection): Update for collection type change.
        (WebCore::HTMLCollection::create): Ditto.
        (WebCore::HTMLCollection::resetCollectionInfo): Ditto.
        (WebCore::HTMLCollection::itemAfter): Ditto.
        * html/HTMLCollection.h: Ditto.

        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::children): Updated for new collection type names.
        * html/HTMLFormCollection.cpp:
        (WebCore::HTMLFormCollection::formCollectionInfo): Ditto.
        (WebCore::HTMLFormCollection::HTMLFormCollection): Ditto.
        * html/HTMLFormCollection.h: Ditto.
        * html/HTMLFormElement.h: Ditto.
        * html/HTMLMapElement.cpp:
        (WebCore::HTMLMapElement::areas): Ditto.
        * html/HTMLNameCollection.cpp:
        (WebCore::HTMLNameCollection::HTMLNameCollection): Ditto.
        * html/HTMLNameCollection.h:
        (WebCore::HTMLNameCollection::create): Ditto.
        * html/HTMLSelectElement.h:
        (WebCore::HTMLSelectElement::collectionInfo): Ditto.
        * html/HTMLTableElement.cpp:
        (WebCore::HTMLTableElement::tBodies):Ditto.
        * html/HTMLTableRowElement.cpp:
        (WebCore::HTMLTableRowElement::cells):Ditto.
        * html/HTMLTableRowsCollection.cpp:
        (WebCore::HTMLTableRowsCollection::HTMLTableRowsCollection): Ditto.
        * html/HTMLTableSectionElement.cpp:
        (WebCore::HTMLTableSectionElement::rows): Ditto.

        * bindings/js/JSDOMWindowBase.cpp: Added newly-needed includes.
        * bindings/js/JSHTMLFrameSetElementCustom.cpp: Ditto.
        * css/CSSStyleSelector.cpp: Ditto.
        * dom/Element.cpp: Ditto.
        * dom/InputElement.cpp: Ditto.
        * dom/NamedAttrMap.cpp: Ditto.
        * dom/NamedMappedAttrMap.cpp: Ditto.
        * dom/Node.cpp: Ditto.
        * dom/StyledElement.cpp: Ditto.
        * dom/StyledElement.h: Ditto.
        * editing/ApplyStyleCommand.cpp: Ditto.
        * editing/DeleteSelectionCommand.cpp: Ditto.
        * editing/Editor.cpp: Ditto.
        * editing/EditorCommand.cpp: Ditto.
        * editing/InsertParagraphSeparatorCommand.cpp: Ditto.
        * editing/ReplaceSelectionCommand.cpp: Ditto.
        * editing/markup.cpp: Ditto.
        * html/CanvasRenderingContext2D.cpp: Ditto.
        * html/HTMLAnchorElement.cpp: Ditto.
        * html/HTMLAppletElement.cpp: Ditto.
        * html/HTMLAreaElement.cpp: Ditto.
        * html/HTMLBRElement.cpp: Ditto.
        * html/HTMLBaseElement.cpp: Ditto.
        * html/HTMLBodyElement.cpp: Ditto.
        * html/HTMLButtonElement.cpp: Ditto.
        * html/HTMLCanvasElement.cpp: Ditto.
        * html/HTMLDivElement.cpp: Ditto.
        * html/HTMLEmbedElement.cpp: Ditto.
        * html/HTMLFontElement.cpp: Ditto.
        * html/HTMLFormControlElement.cpp: Ditto.
        * html/HTMLFormElement.cpp: Ditto.
        * html/HTMLFrameElement.cpp: Ditto.
        * html/HTMLFrameElementBase.cpp: Ditto.
        * html/HTMLFrameSetElement.cpp: Ditto.
        * html/HTMLHRElement.cpp: Ditto.
        * html/HTMLIFrameElement.cpp: Ditto.
        * html/HTMLImageElement.cpp: Ditto.
        * html/HTMLInputElement.cpp: Ditto.
        * html/HTMLIsIndexElement.cpp: Ditto.
        * html/HTMLKeygenElement.cpp: Ditto.
        * html/HTMLLIElement.cpp: Ditto.
        * html/HTMLLinkElement.cpp: Ditto.
        * html/HTMLMarqueeElement.cpp: Ditto.
        * html/HTMLMetaElement.cpp: Ditto.
        * html/HTMLOListElement.cpp: Ditto.
        * html/HTMLObjectElement.cpp: Ditto.
        * html/HTMLOptionElement.cpp: Ditto.
        * html/HTMLParagraphElement.cpp: Ditto.
        * html/HTMLParamElement.cpp: Ditto.
        * html/HTMLPlugInElement.cpp: Ditto.
        * html/HTMLPreElement.cpp: Ditto.
        * html/HTMLScriptElement.cpp: Ditto.
        * html/HTMLSelectElement.cpp: Ditto.
        * html/HTMLStyleElement.cpp: Ditto.
        * html/HTMLTableCaptionElement.cpp: Ditto.
        * html/HTMLTableCellElement.cpp: Ditto.
        * html/HTMLTableColElement.cpp: Ditto.
        * html/HTMLTablePartElement.cpp: Ditto.
        * html/HTMLTextAreaElement.cpp: Ditto.
        * html/HTMLTokenizer.cpp: Ditto.
        * html/HTMLUListElement.cpp: Ditto.
        * html/HTMLVideoElement.cpp: Ditto.
        * html/HTMLViewSourceDocument.cpp: Ditto.
        * loader/ImageDocument.cpp: Ditto.
        * page/Frame.cpp: Ditto.
        * rendering/RenderTreeAsText.cpp: Ditto.
        * svg/SVGAElement.cpp: Ditto.
        * svg/SVGAnimateMotionElement.cpp: Ditto.
        * svg/SVGAnimateTransformElement.cpp: Ditto.
        * svg/SVGAnimationElement.cpp: Ditto.
        * svg/SVGCircleElement.cpp: Ditto.
        * svg/SVGClipPathElement.cpp: Ditto.
        * svg/SVGCursorElement.cpp: Ditto.
        * svg/SVGElement.cpp: Ditto.
        * svg/SVGEllipseElement.cpp: Ditto.
        * svg/SVGExternalResourcesRequired.cpp: Ditto.
        * svg/SVGFitToViewBox.cpp: Ditto.
        * svg/SVGFontFaceElement.cpp: Ditto.
        * svg/SVGFontFaceUriElement.cpp: Ditto.
        * svg/SVGForeignObjectElement.cpp: Ditto.
        * svg/SVGGlyphElement.cpp: Ditto.
        * svg/SVGGradientElement.cpp: Ditto.
        * svg/SVGImageElement.cpp: Ditto.
        * svg/SVGLangSpace.cpp: Ditto.
        * svg/SVGLineElement.cpp: Ditto.
        * svg/SVGLinearGradientElement.cpp: Ditto.
        * svg/SVGMarkerElement.cpp: Ditto.
        * svg/SVGMaskElement.cpp: Ditto.
        * svg/SVGPathElement.cpp: Ditto.
        * svg/SVGPatternElement.cpp: Ditto.
        * svg/SVGPolyElement.cpp: Ditto.
        * svg/SVGRadialGradientElement.cpp: Ditto.
        * svg/SVGRectElement.cpp: Ditto.
        * svg/SVGSVGElement.cpp: Ditto.
        * svg/SVGScriptElement.cpp: Ditto.
        * svg/SVGStopElement.cpp: Ditto.
        * svg/SVGStyleElement.cpp: Ditto.
        * svg/SVGStyledElement.cpp: Ditto.
        * svg/SVGStyledTransformableElement.cpp: Ditto.
        * svg/SVGTests.cpp: Ditto.
        * svg/SVGTextContentElement.cpp: Ditto.
        * svg/SVGTextElement.cpp: Ditto.
        * svg/SVGTextPathElement.cpp: Ditto.
        * svg/SVGTextPositioningElement.cpp: Ditto.
        * svg/SVGURIReference.cpp: Ditto.
        * svg/SVGUseElement.cpp: Ditto.
        * svg/SVGViewElement.cpp: Ditto.
        * svg/animation/SVGSMILElement.cpp: Ditto.
        * xml/XPathStep.cpp: Ditto.

2009-05-04  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Do not instantiate hidden WebInspector panels. Otherwise they are hitting unimplemented InspectorController methods.
        https://bugs.webkit.org/show_bug.cgi?id=25520

        * inspector/front-end/inspector.js:
        (WebInspector.loaded):

2009-05-04  Brady Eidson <beidson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6839881> With "Mail Contents of This Page" in Safari images don't appear in the Tiger Mail compose window

        DocumentLoader::subresource() is the implementation for the WebKit API [WebDataSource subresourceForURL:] and has 
        particularly sticky behavior.  

        If the DocumentLoader represents a WebArchive, this method should return ArchiveResources from that archive.  However, we 
        prefer CachedResources over ArchiveResources because they might represent fresher data than what was originally loaded 
        from the WebArchive.

        In some instances, CachedResources are created and associated with the DocumentLoader but not immediately run through the 
        loading delegate machinery.  This was always a possibility, but the Preload Scanner made this significantly more likely.

        When this happens and someone asks the WebDataSource for a subresource, it would prefer the CachedResource over an 
        ArchiveResource it has even if the CachedResource hasn't been loaded yet.  The CachedResource has nil data, so no
        WebResource is returned, and the client thinks the subresource doesn't exist even though it does.

        This broke Tiger Mail and probably various other WebKit applications but has a fairly straightforward fix.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::subresource): If there is a CachedResource but it hasn't been loaded yet, fallback to the
          ArchiveResource.

2009-05-04  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Adam Roben.
        
        https://bugs.webkit.org/show_bug.cgi?id=25545
        Bug 25545: HTMLMediaElement: display anamorphic video correctly
        
        Tell QuickTime to use clean aperture mode so movies with non-square pixels are sized
        and displayed correctly.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::createQTMovie): Ask QuickTime to use clean aperture mode.
        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWin::load): Ditto. Add ASSERT to ensure that static movie property array isn't 
        filled beyond capacity.

2009-05-03  Mark Rowe  <mrowe@apple.com>

        Reviewed by Darin Adler.

        Fix <https://bugs.webkit.org/show_bug.cgi?id=25332>.
        Bug 25332: Plug-in inserted in to DOM of PluginDocument fails to load

        Only the first plug-in in a PluginDocument can use the main resource data.  For all
        subsequent plug-ins, such as the plug-in that ClickToFlash inserts when swapping itself
        out for the real Flash plug-in, we need to load the resource data in the same manner
        as for other embedded plug-ins.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadPlugin):

2009-05-04  Simon Hausmann  <simon.hausmann@nokia.com>

        Rubber-stamped by Ariya Hidayat.

        Update the qrc file for the Web Inspector in the Qt build
        with missing files.

        * inspector/front-end/WebKit.qrc:

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by George Staikos.

        Move absoluteRects and absoluteQuads into RenderSVGInline and remove absoluteTransform() usage
        https://bugs.webkit.org/show_bug.cgi?id=25532

        * rendering/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::absoluteRects):
        (WebCore::RenderSVGInline::absoluteQuads):
        * rendering/RenderSVGInline.h:
        * rendering/RenderSVGTSpan.cpp:
        * rendering/RenderSVGTSpan.h:
        * rendering/RenderSVGTextPath.cpp:
        * rendering/RenderSVGTextPath.h:

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by George Staikos.

        Move RenderSVGText off of localToAbsolute()
        https://bugs.webkit.org/show_bug.cgi?id=25532

        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::absoluteRects):
        (WebCore::RenderSVGText::absoluteQuads):

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by George Staikos.

        Remove broken absoluteTransform() code from RenderSVGInlineText
        https://bugs.webkit.org/show_bug.cgi?id=25532

        This improved SVG text focus rings.
        This also improved SVG.getScreenCTM() results.

        SVGSVGElement::getScreenCTM was passing "true" for the second argument in
        localToAbsolute, which is "fixed" it meant to pass "true" for the
        third argument (useTransforms).  That change alone caused no layout test changes, however
        before I fixed this, it was hitting ASSERT(!fixed) in RenderSVGRoot::mapLocalToContainer

        mapLocalToContainer implementations really should be shared,
        but I'll do that in a later patch.

        * rendering/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::styleDidChange):
        (WebCore::RenderSVGInlineText::absoluteQuads):
        (WebCore::RenderSVGInlineText::computeRepaintRectForRange):
        (WebCore::RenderSVGInlineText::computeRepaintQuadForRange):
        * rendering/RenderSVGInlineText.h:
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::mapLocalToContainer):
        * rendering/RenderSVGRoot.h:
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::mapLocalToContainer):
        * rendering/RenderSVGText.h:
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::getScreenCTM):

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by George Staikos.

        Remove dead code from RenderPath
        https://bugs.webkit.org/show_bug.cgi?id=25532

        * rendering/RenderPath.cpp:
        * rendering/RenderPath.h:

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by George Staikos.

        Share layout code between RenderSVGViewportContainer and RenderSVGContainer
        https://bugs.webkit.org/show_bug.cgi?id=25532

        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        * rendering/RenderSVGContainer.h:
        (WebCore::RenderSVGContainer::calcViewport):
        * rendering/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::applyViewportClip):
        * rendering/RenderSVGViewportContainer.h:

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by George Staikos.

        Remove redundant disableLayoutState() calls
        https://bugs.webkit.org/show_bug.cgi?id=25532

        * rendering/RenderForeignObject.cpp:
        (WebCore::RenderForeignObject::layout):
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        * rendering/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::layout):

2009-05-03  Eric Seidel  <eric@webkit.org>

        Reviewed by George Staikos.

        Simplify RenderForeignObject::paint and fix a repaint bug.
        Paint now calls applyTransformToPaintInfo which correctly transforms the damage rect.
        https://bugs.webkit.org/show_bug.cgi?id=16939

        * rendering/RenderForeignObject.cpp:
        (WebCore::RenderForeignObject::paint):

2009-05-03  Hironori Bono  <hbono@chromium.org>

        Reviewed by Eric Seidel.

        Test: editing/spelling/spellcheck-attribute.html

        Bug 14552: Add a way to disable spell checking for specific element
        https://bugs.webkit.org/show_bug.cgi?id=14552

        For compatibility with Firefox, this code ascends the DOM tree when an element does
        not have its "spellcheck" attribute.

        * editing/Editor.cpp:
        (WebCore::markMisspellingsOrBadGrammar): Retrieve the value of the "spellcheck"
        attribute of an element before calling a spell checker or a grammar checker.
        * html/HTMLAttributeNames.in: Add a "spellcheck" attribute.

2009-05-03  Sam Weinig  <sam@webkit.org>

        Roll JSC API number marshaling back in one last time (I hope).

2009-05-03  Sam Weinig  <sam@webkit.org>

        Roll JSC API number marshaling back out. It still breaks windows.

2009-05-03  Sam Weinig  <sam@webkit.org>

        Roll JSC API number marshaling back in.

2009-05-02  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - another fix for <rdar://problem/6617298> Typing delete on an unquoted
          blank line unquotes the preceding, quoted blank line

        Test: editing/deleting/type-delete-after-quote-2.html

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::DeleteSelectionCommand): Initialize
        m_startsAtEmptyLine.
        (WebCore::DeleteSelectionCommand::handleSpecialCaseBRDelete): When the
        selection starts at an empty line, do not prevent the merging of blocks.
        This is what allows the text after the line break to be merged into the
        block containing the line break. Also set m_startsAtEmptyLine to true.
        (WebCore::DeleteSelectionCommand::mergeParagraphs): If
        m_startsAtEmptyLine is true, create a placeholder BR to serve as the
        merge destination.
        * editing/DeleteSelectionCommand.h:

2009-05-02  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Simplified null-ish JSValues.
        
        Replaced calls to noValue() with calls to JSValue() (which is what
        noValue() returned). Removed noValue().
        
        Removed "JSValue()" initialiazers, since default construction happens...
        by default.

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::setDOMException):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::open):
        (WebCore::JSDOMWindow::showModalDialog):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
        (WebCore::JSJavaScriptCallFrame::evaluate):
        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        (WebCore::JSSQLResultSetRowList::item):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::evaluate):
        * bindings/js/ScriptValue.h:
        (WebCore::ScriptValue::ScriptValue):
        (WebCore::ScriptValue::hasNoValue):
        * bindings/js/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::evaluate):
        * bridge/jni/jni_instance.cpp:
        (JavaInstance::invokeMethod):
        * bridge/jni/jni_runtime.cpp:
        (JavaField::dispatchValueFromInstance):
        (JavaField::dispatchSetValueToInstance):
        * bridge/runtime.h:
        (JSC::Bindings::Instance::invokeConstruct):

2009-05-02  Antti Koivisto  <antti@apple.com>

        Reviewed by Dan Bernstein.

        <rdar://problem/6631735> Crash in WebCore::CSSStyleSelector::applyProperty(int, WebCore::CSSValue*) (RenderStyle.h:454)
        
        Avoid re-entering style selector from load delegates by not issuing resource loads synchronously during attach().

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::suspendPostAttachCallbacks):
        (WebCore::ContainerNode::resumePostAttachCallbacks):
        (WebCore::ContainerNode::attach):
        * dom/Element.cpp:
        (WebCore::Element::attach):
        * loader/loader.cpp:
        (WebCore::Loader::Loader):
        (WebCore::Loader::servePendingRequests):
        (WebCore::Loader::suspendPendingRequests):
        (WebCore::Loader::resumePendingRequests):
        (WebCore::Loader::Host::servePendingRequests):
        * loader/loader.h:
        (WebCore::Loader::isSuspendingPendingRequests):

2009-05-02  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Bug 25352: REGRESSION(r42322): style isn't applied at bmwusa.com
        https://bugs.webkit.org/show_bug.cgi?id=25352
        rdar://problem/6823239

        Test: http/tests/mime/standard-mode-loads-stylesheet-with-text-css-and-invalid-type.html

        * platform/network/HTTPParsers.cpp:
        (WebCore::extractMIMETypeFromMediaType): Allow comma as a separator.

2009-05-02  Darin Adler  <darin@apple.com>

        Reviewed by Brady Eidson.

        Bug 25491: WebFrame leak when a subframe removes itself
        https://bugs.webkit.org/show_bug.cgi?id=25491
        rdar://problem/6833859

        Test: fast/loading/subframe-removes-itself.html

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::checkLoadCompleteForThisFrame): When isStopping is true,
        treat load as complete, even if isLoadingInAPISense is still returning true.

2009-05-01  Sam Weinig  <sam@webkit.org>

        Roll out JavaScriptCore API number marshaling.

        * bindings/js/ScriptValue.cpp:
        (WebCore::ScriptValue::isEqual):
        * inspector/JavaScriptProfile.cpp:
        (WebCore::getHeadCallback):
        * inspector/JavaScriptProfileNode.cpp:
        (WebCore::getChildren):
        (WebCore::getParent):
        (WebCore::getHead):

2009-05-01  Sam Weinig  <sam@webkit.org>

        Fix build.

        * workers/WorkerContext.idl:

2009-05-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Cleanup workers code a bit.

        * bindings/js/JSWorkerContextBase.cpp:
        (WebCore::toJS):
        * bindings/js/JSWorkerContextBase.h:
        * bindings/js/JSWorkerContextCustom.cpp:
        (WebCore::JSWorkerContext::customGetOwnPropertySlot):
        * workers/WorkerContext.h:
        (WebCore::WorkerContext::toWorkerContext):
        (WebCore::WorkerContext::self):
        (WebCore::WorkerContext::setOnmessage):
        (WebCore::WorkerContext::onmessage):
        * workers/WorkerContext.idl:

2009-05-01  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        A little clean up.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::createJavaAppletWidget):

2009-05-01  Sam Weinig  <sam@webkit.org>

        Fix the build.

        * bindings/js/ScriptValue.cpp:
        (WebCore::ScriptValue::isEqual):
        * inspector/JavaScriptProfile.cpp:
        (WebCore::getHeadCallback):
        * inspector/JavaScriptProfileNode.cpp:
        (WebCore::getChildren):
        (WebCore::getParent):
        (WebCore::getHead):

2009-05-01  Brady Eidson  <beidson@apple.com>

        Reviewed by Oliver Hunt and Sam "Jon 'The Belly' Honeycutt" Weinig

        Fix <rdar://problem/6848867> Addition of DOCTYPE node breaks Tiger Mail

        * bindings/objc/DOMHTML.mm:
        (-[DOMHTMLDocument firstChild]): Add a Tiger Mail version of this method that skips DOCTYPE nodes.

2009-05-01  Geoffrey Garen  <ggaren@apple.com>

        Rubber Stamped by Sam Weinig.
        
        Renamed JSValuePtr => JSValue.

        * bindings/js/JSAttrCustom.cpp:
        (WebCore::JSAttr::setValue):
        * bindings/js/JSCDATASectionCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSCSSRuleCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSCSSStyleDeclarationCustom.cpp:
        (WebCore::JSCSSStyleDeclaration::nameGetter):
        (WebCore::JSCSSStyleDeclaration::customPut):
        * bindings/js/JSCSSValueCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
        (WebCore::toJS):
        (WebCore::toHTMLCanvasStyle):
        (WebCore::JSCanvasRenderingContext2D::strokeStyle):
        (WebCore::JSCanvasRenderingContext2D::setStrokeStyle):
        (WebCore::JSCanvasRenderingContext2D::fillStyle):
        (WebCore::JSCanvasRenderingContext2D::setFillStyle):
        (WebCore::JSCanvasRenderingContext2D::setFillColor):
        (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
        (WebCore::JSCanvasRenderingContext2D::strokeRect):
        (WebCore::JSCanvasRenderingContext2D::drawImage):
        (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
        (WebCore::JSCanvasRenderingContext2D::setShadow):
        (WebCore::JSCanvasRenderingContext2D::createPattern):
        (WebCore::JSCanvasRenderingContext2D::putImageData):
        (WebCore::JSCanvasRenderingContext2D::fillText):
        (WebCore::JSCanvasRenderingContext2D::strokeText):
        * bindings/js/JSClipboardCustom.cpp:
        (WebCore::JSClipboard::types):
        (WebCore::JSClipboard::clearData):
        (WebCore::JSClipboard::getData):
        (WebCore::JSClipboard::setData):
        (WebCore::JSClipboard::setDragImage):
        * bindings/js/JSConsoleCustom.cpp:
        (WebCore::JSConsole::profiles):
        * bindings/js/JSCoordinatesCustom.cpp:
        (WebCore::JSCoordinates::altitude):
        (WebCore::JSCoordinates::altitudeAccuracy):
        (WebCore::JSCoordinates::heading):
        (WebCore::JSCoordinates::speed):
        * bindings/js/JSCustomPositionCallback.cpp:
        (WebCore::JSCustomPositionCallback::handleEvent):
        * bindings/js/JSCustomPositionErrorCallback.cpp:
        (WebCore::JSCustomPositionErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementCallback.cpp:
        (WebCore::JSCustomSQLStatementCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
        (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        (WebCore::JSCustomSQLTransactionCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
        (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
        * bindings/js/JSCustomVoidCallback.cpp:
        (WebCore::JSCustomVoidCallback::handleEvent):
        (WebCore::toVoidCallback):
        * bindings/js/JSCustomVoidCallback.h:
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::create):
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/js/JSCustomXPathNSResolver.h:
        * bindings/js/JSDOMApplicationCacheCustom.cpp:
        (WebCore::JSDOMApplicationCache::hasItem):
        (WebCore::JSDOMApplicationCache::add):
        (WebCore::JSDOMApplicationCache::remove):
        (WebCore::JSDOMApplicationCache::addEventListener):
        (WebCore::JSDOMApplicationCache::removeEventListener):
        * bindings/js/JSDOMBinding.cpp:
        (WebCore::jsStringOrNull):
        (WebCore::jsOwnedStringOrNull):
        (WebCore::jsStringOrUndefined):
        (WebCore::jsStringOrFalse):
        (WebCore::valueToStringWithNullCheck):
        (WebCore::valueToStringWithUndefinedOrNullCheck):
        (WebCore::reportException):
        (WebCore::reportCurrentException):
        (WebCore::setDOMException):
        (WebCore::objectToStringFunctionGetter):
        * bindings/js/JSDOMBinding.h:
        (WebCore::getDOMObjectWrapper):
        (WebCore::getDOMNodeWrapper):
        (WebCore::toJS):
        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::findJSEventListener):
        (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
        (WebCore::JSDOMGlobalObject::createJSAttributeEventListener):
        * bindings/js/JSDOMGlobalObject.h:
        * bindings/js/JSDOMStringListCustom.cpp:
        (WebCore::JSDOMStringList::getByIndex):
        (WebCore::JSDOMStringList::item):
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::JSDOMWindowBase::childFrameGetter):
        (WebCore::JSDOMWindowBase::indexGetter):
        (WebCore::JSDOMWindowBase::namedItemGetter):
        (WebCore::JSDOMWindowBase::getOwnPropertySlot):
        (WebCore::JSDOMWindowBase::put):
        (WebCore::JSDOMWindowBase::setReturnValueSlot):
        (WebCore::toJS):
        (WebCore::toJSDOMWindow):
        * bindings/js/JSDOMWindowBase.h:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::lookupGetter):
        (WebCore::JSDOMWindow::lookupSetter):
        (WebCore::JSDOMWindow::history):
        (WebCore::JSDOMWindow::location):
        (WebCore::JSDOMWindow::setLocation):
        (WebCore::JSDOMWindow::crypto):
        (WebCore::JSDOMWindow::event):
        (WebCore::JSDOMWindow::image):
        (WebCore::JSDOMWindow::option):
        (WebCore::JSDOMWindow::audio):
        (WebCore::JSDOMWindow::webKitPoint):
        (WebCore::JSDOMWindow::webKitCSSMatrix):
        (WebCore::JSDOMWindow::xmlHttpRequest):
        (WebCore::JSDOMWindow::xsltProcessor):
        (WebCore::JSDOMWindow::messageChannel):
        (WebCore::JSDOMWindow::worker):
        (WebCore::createWindow):
        (WebCore::JSDOMWindow::open):
        (WebCore::JSDOMWindow::showModalDialog):
        (WebCore::JSDOMWindow::postMessage):
        (WebCore::JSDOMWindow::setTimeout):
        (WebCore::JSDOMWindow::setInterval):
        (WebCore::JSDOMWindow::atob):
        (WebCore::JSDOMWindow::btoa):
        (WebCore::JSDOMWindow::addEventListener):
        (WebCore::JSDOMWindow::removeEventListener):
        (WebCore::toDOMWindow):
        * bindings/js/JSDOMWindowCustom.h:
        (WebCore::nonCachingStaticFunctionGetter):
        (WebCore::JSDOMWindow::customPut):
        * bindings/js/JSDOMWindowShell.cpp:
        (WebCore::JSDOMWindowShell::put):
        (WebCore::JSDOMWindowShell::putWithAttributes):
        (WebCore::JSDOMWindowShell::lookupGetter):
        (WebCore::JSDOMWindowShell::lookupSetter):
        (WebCore::toJS):
        * bindings/js/JSDOMWindowShell.h:
        (WebCore::JSDOMWindowShell::createStructure):
        * bindings/js/JSDatabaseCustom.cpp:
        (WebCore::JSDatabase::changeVersion):
        (WebCore::JSDatabase::transaction):
        * bindings/js/JSDocumentCustom.cpp:
        (WebCore::JSDocument::location):
        (WebCore::JSDocument::setLocation):
        (WebCore::toJS):
        * bindings/js/JSElementCustom.cpp:
        (WebCore::JSElement::setAttribute):
        (WebCore::JSElement::setAttributeNode):
        (WebCore::JSElement::setAttributeNS):
        (WebCore::JSElement::setAttributeNodeNS):
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSEventCustom.cpp:
        (WebCore::JSEvent::clipboardData):
        (WebCore::toJS):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * bindings/js/JSEventTarget.cpp:
        (WebCore::toJS):
        (WebCore::toEventTarget):
        * bindings/js/JSEventTarget.h:
        * bindings/js/JSEventTargetBase.h:
        * bindings/js/JSGeolocationCustom.cpp:
        (WebCore::createPositionOptions):
        (WebCore::JSGeolocation::getCurrentPosition):
        (WebCore::JSGeolocation::watchPosition):
        * bindings/js/JSHTMLAllCollection.h:
        (WebCore::JSHTMLAllCollection::createStructure):
        * bindings/js/JSHTMLAppletElementCustom.cpp:
        (WebCore::JSHTMLAppletElement::customPut):
        (WebCore::JSHTMLAppletElement::nameGetter):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::getNamedItems):
        (WebCore::callHTMLCollection):
        (WebCore::JSHTMLCollection::nameGetter):
        (WebCore::JSHTMLCollection::item):
        (WebCore::JSHTMLCollection::namedItem):
        (WebCore::toJS):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::JSHTMLDocument::nameGetter):
        (WebCore::JSHTMLDocument::all):
        (WebCore::JSHTMLDocument::setAll):
        (WebCore::JSHTMLDocument::open):
        (WebCore::JSHTMLDocument::write):
        (WebCore::JSHTMLDocument::writeln):
        * bindings/js/JSHTMLEmbedElementCustom.cpp:
        (WebCore::JSHTMLEmbedElement::customPut):
        (WebCore::JSHTMLEmbedElement::nameGetter):
        * bindings/js/JSHTMLFormElementCustom.cpp:
        (WebCore::JSHTMLFormElement::nameGetter):
        (WebCore::JSHTMLFormElement::submit):
        * bindings/js/JSHTMLFrameElementCustom.cpp:
        (WebCore::JSHTMLFrameElement::setSrc):
        (WebCore::JSHTMLFrameElement::setLocation):
        * bindings/js/JSHTMLFrameSetElementCustom.cpp:
        (WebCore::JSHTMLFrameSetElement::nameGetter):
        * bindings/js/JSHTMLIFrameElementCustom.cpp:
        (WebCore::JSHTMLIFrameElement::setSrc):
        * bindings/js/JSHTMLInputElementCustom.cpp:
        (WebCore::JSHTMLInputElement::selectionStart):
        (WebCore::JSHTMLInputElement::setSelectionStart):
        (WebCore::JSHTMLInputElement::selectionEnd):
        (WebCore::JSHTMLInputElement::setSelectionEnd):
        (WebCore::JSHTMLInputElement::setSelectionRange):
        * bindings/js/JSHTMLObjectElementCustom.cpp:
        (WebCore::JSHTMLObjectElement::customPut):
        (WebCore::JSHTMLObjectElement::nameGetter):
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::length):
        (WebCore::JSHTMLOptionsCollection::setLength):
        (WebCore::JSHTMLOptionsCollection::indexSetter):
        (WebCore::JSHTMLOptionsCollection::add):
        (WebCore::JSHTMLOptionsCollection::remove):
        * bindings/js/JSHTMLSelectElementCustom.cpp:
        (WebCore::JSHTMLSelectElement::remove):
        (WebCore::selectIndexSetter):
        (WebCore::JSHTMLSelectElement::indexSetter):
        * bindings/js/JSHTMLSelectElementCustom.h:
        * bindings/js/JSHistoryCustom.cpp:
        (WebCore::nonCachingStaticBackFunctionGetter):
        (WebCore::nonCachingStaticForwardFunctionGetter):
        (WebCore::nonCachingStaticGoFunctionGetter):
        (WebCore::JSHistory::customPut):
        * bindings/js/JSImageDataCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSInspectedObjectWrapper.cpp:
        (WebCore::JSInspectedObjectWrapper::wrap):
        (WebCore::JSInspectedObjectWrapper::prepareIncomingValue):
        * bindings/js/JSInspectedObjectWrapper.h:
        (WebCore::JSInspectedObjectWrapper::wrapOutgoingValue):
        * bindings/js/JSInspectorCallbackWrapper.cpp:
        (WebCore::JSInspectorCallbackWrapper::wrap):
        (WebCore::JSInspectorCallbackWrapper::prepareIncomingValue):
        * bindings/js/JSInspectorCallbackWrapper.h:
        (WebCore::JSInspectorCallbackWrapper::wrapOutgoingValue):
        * bindings/js/JSInspectorControllerCustom.cpp:
        (WebCore::JSInspectorController::highlightDOMNode):
        (WebCore::JSInspectorController::addResourceSourceToFrame):
        (WebCore::JSInspectorController::addSourceToFrame):
        (WebCore::JSInspectorController::getResourceDocumentNode):
        (WebCore::JSInspectorController::search):
        (WebCore::JSInspectorController::databaseTableNames):
        (WebCore::JSInspectorController::inspectedWindow):
        (WebCore::JSInspectorController::setting):
        (WebCore::JSInspectorController::setSetting):
        (WebCore::JSInspectorController::wrapCallback):
        (WebCore::JSInspectorController::currentCallFrame):
        (WebCore::JSInspectorController::profiles):
        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
        (WebCore::JSJavaScriptCallFrame::evaluate):
        (WebCore::JSJavaScriptCallFrame::thisObject):
        (WebCore::JSJavaScriptCallFrame::type):
        (WebCore::JSJavaScriptCallFrame::scopeChain):
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::JSLazyEventListener::parseCode):
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::nonCachingStaticReplaceFunctionGetter):
        (WebCore::nonCachingStaticReloadFunctionGetter):
        (WebCore::nonCachingStaticAssignFunctionGetter):
        (WebCore::JSLocation::customPut):
        (WebCore::JSLocation::setHref):
        (WebCore::JSLocation::setProtocol):
        (WebCore::JSLocation::setHost):
        (WebCore::JSLocation::setHostname):
        (WebCore::JSLocation::setPort):
        (WebCore::JSLocation::setPathname):
        (WebCore::JSLocation::setSearch):
        (WebCore::JSLocation::setHash):
        (WebCore::JSLocation::replace):
        (WebCore::JSLocation::reload):
        (WebCore::JSLocation::assign):
        (WebCore::JSLocation::toString):
        (WebCore::JSLocationPrototype::customPut):
        * bindings/js/JSMessagePortCustom.cpp:
        (WebCore::JSMessagePort::startConversation):
        (WebCore::JSMessagePort::addEventListener):
        (WebCore::JSMessagePort::removeEventListener):
        * bindings/js/JSMimeTypeArrayCustom.cpp:
        (WebCore::JSMimeTypeArray::nameGetter):
        * bindings/js/JSNamedNodeMapCustom.cpp:
        (WebCore::JSNamedNodeMap::nameGetter):
        * bindings/js/JSNamedNodesCollection.cpp:
        (WebCore::JSNamedNodesCollection::lengthGetter):
        (WebCore::JSNamedNodesCollection::indexGetter):
        * bindings/js/JSNamedNodesCollection.h:
        (WebCore::JSNamedNodesCollection::createStructure):
        * bindings/js/JSNavigatorCustom.cpp:
        (WebCore::needsYouTubeQuirk):
        (WebCore::JSNavigator::appVersion):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::JSNode::insertBefore):
        (WebCore::JSNode::replaceChild):
        (WebCore::JSNode::removeChild):
        (WebCore::JSNode::appendChild):
        (WebCore::JSNode::addEventListener):
        (WebCore::JSNode::removeEventListener):
        (WebCore::createWrapper):
        (WebCore::toJSNewlyCreated):
        (WebCore::toJS):
        * bindings/js/JSNodeFilterCondition.cpp:
        (WebCore::JSNodeFilterCondition::JSNodeFilterCondition):
        (WebCore::JSNodeFilterCondition::acceptNode):
        * bindings/js/JSNodeFilterCondition.h:
        (WebCore::JSNodeFilterCondition::create):
        * bindings/js/JSNodeFilterCustom.cpp:
        (WebCore::JSNodeFilter::acceptNode):
        (WebCore::toNodeFilter):
        * bindings/js/JSNodeIteratorCustom.cpp:
        (WebCore::JSNodeIterator::nextNode):
        (WebCore::JSNodeIterator::previousNode):
        * bindings/js/JSNodeListCustom.cpp:
        (WebCore::callNodeList):
        (WebCore::JSNodeList::nameGetter):
        * bindings/js/JSPluginArrayCustom.cpp:
        (WebCore::JSPluginArray::nameGetter):
        * bindings/js/JSPluginCustom.cpp:
        (WebCore::JSPlugin::nameGetter):
        * bindings/js/JSPluginElementFunctions.cpp:
        (WebCore::runtimeObjectGetter):
        (WebCore::runtimeObjectPropertyGetter):
        (WebCore::runtimeObjectCustomPut):
        (WebCore::callPlugin):
        * bindings/js/JSPluginElementFunctions.h:
        * bindings/js/JSQuarantinedObjectWrapper.cpp:
        (WebCore::JSQuarantinedObjectWrapper::asWrapper):
        (WebCore::JSQuarantinedObjectWrapper::cachedValueGetter):
        (WebCore::JSQuarantinedObjectWrapper::transferExceptionToExecState):
        (WebCore::JSQuarantinedObjectWrapper::getOwnPropertySlot):
        (WebCore::JSQuarantinedObjectWrapper::put):
        (WebCore::JSQuarantinedObjectWrapper::construct):
        (WebCore::JSQuarantinedObjectWrapper::hasInstance):
        (WebCore::JSQuarantinedObjectWrapper::call):
        * bindings/js/JSQuarantinedObjectWrapper.h:
        (WebCore::JSQuarantinedObjectWrapper::createStructure):
        * bindings/js/JSRGBColor.cpp:
        (WebCore::getJSRGBColor):
        (jsRGBColorRed):
        (jsRGBColorGreen):
        (jsRGBColorBlue):
        * bindings/js/JSRGBColor.h:
        (WebCore::JSRGBColor::createStructure):
        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        (WebCore::JSSQLResultSetRowList::item):
        * bindings/js/JSSQLTransactionCustom.cpp:
        (WebCore::JSSQLTransaction::executeSql):
        * bindings/js/JSSVGElementInstanceCustom.cpp:
        (WebCore::JSSVGElementInstance::addEventListener):
        (WebCore::JSSVGElementInstance::removeEventListener):
        (WebCore::toJS):
        * bindings/js/JSSVGLengthCustom.cpp:
        (WebCore::JSSVGLength::value):
        (WebCore::JSSVGLength::convertToSpecifiedUnits):
        * bindings/js/JSSVGMatrixCustom.cpp:
        (WebCore::JSSVGMatrix::inverse):
        (WebCore::JSSVGMatrix::rotateFromVector):
        * bindings/js/JSSVGPathSegCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSSVGPathSegListCustom.cpp:
        (WebCore::JSSVGPathSegList::clear):
        (WebCore::JSSVGPathSegList::initialize):
        (WebCore::JSSVGPathSegList::getItem):
        (WebCore::JSSVGPathSegList::insertItemBefore):
        (WebCore::JSSVGPathSegList::replaceItem):
        (WebCore::JSSVGPathSegList::removeItem):
        (WebCore::JSSVGPathSegList::appendItem):
        * bindings/js/JSSVGPointListCustom.cpp:
        (WebCore::finishGetter):
        (WebCore::finishSetter):
        (WebCore::finishSetterReadOnlyResult):
        (WebCore::JSSVGPointList::clear):
        (WebCore::JSSVGPointList::initialize):
        (WebCore::JSSVGPointList::getItem):
        (WebCore::JSSVGPointList::insertItemBefore):
        (WebCore::JSSVGPointList::replaceItem):
        (WebCore::JSSVGPointList::removeItem):
        (WebCore::JSSVGPointList::appendItem):
        * bindings/js/JSSVGTransformListCustom.cpp:
        (WebCore::finishGetter):
        (WebCore::finishSetter):
        (WebCore::finishSetterReadOnlyResult):
        (WebCore::JSSVGTransformList::clear):
        (WebCore::JSSVGTransformList::initialize):
        (WebCore::JSSVGTransformList::getItem):
        (WebCore::JSSVGTransformList::insertItemBefore):
        (WebCore::JSSVGTransformList::replaceItem):
        (WebCore::JSSVGTransformList::removeItem):
        (WebCore::JSSVGTransformList::appendItem):
        * bindings/js/JSStorageCustom.cpp:
        (WebCore::JSStorage::nameGetter):
        (WebCore::JSStorage::deleteProperty):
        (WebCore::JSStorage::customPut):
        * bindings/js/JSStyleSheetCustom.cpp:
        (WebCore::toJS):
        * bindings/js/JSStyleSheetListCustom.cpp:
        (WebCore::JSStyleSheetList::nameGetter):
        * bindings/js/JSTextCustom.cpp:
        (WebCore::toJSNewlyCreated):
        * bindings/js/JSTreeWalkerCustom.cpp:
        (WebCore::JSTreeWalker::parentNode):
        (WebCore::JSTreeWalker::firstChild):
        (WebCore::JSTreeWalker::lastChild):
        (WebCore::JSTreeWalker::nextSibling):
        (WebCore::JSTreeWalker::previousSibling):
        (WebCore::JSTreeWalker::previousNode):
        (WebCore::JSTreeWalker::nextNode):
        * bindings/js/JSWorkerContextCustom.cpp:
        (WebCore::JSWorkerContext::self):
        (WebCore::JSWorkerContext::setSelf):
        (WebCore::JSWorkerContext::xmlHttpRequest):
        (WebCore::JSWorkerContext::importScripts):
        (WebCore::JSWorkerContext::addEventListener):
        (WebCore::JSWorkerContext::removeEventListener):
        (WebCore::JSWorkerContext::setTimeout):
        (WebCore::JSWorkerContext::setInterval):
        * bindings/js/JSWorkerCustom.cpp:
        (WebCore::JSWorker::addEventListener):
        (WebCore::JSWorker::removeEventListener):
        * bindings/js/JSXMLHttpRequestCustom.cpp:
        (WebCore::JSXMLHttpRequest::open):
        (WebCore::JSXMLHttpRequest::setRequestHeader):
        (WebCore::JSXMLHttpRequest::send):
        (WebCore::JSXMLHttpRequest::getResponseHeader):
        (WebCore::JSXMLHttpRequest::overrideMimeType):
        (WebCore::JSXMLHttpRequest::addEventListener):
        (WebCore::JSXMLHttpRequest::removeEventListener):
        (WebCore::JSXMLHttpRequest::responseText):
        * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
        (WebCore::JSXMLHttpRequestUpload::addEventListener):
        (WebCore::JSXMLHttpRequestUpload::removeEventListener):
        * bindings/js/JSXSLTProcessorCustom.cpp:
        (WebCore::JSXSLTProcessor::importStylesheet):
        (WebCore::JSXSLTProcessor::transformToFragment):
        (WebCore::JSXSLTProcessor::transformToDocument):
        (WebCore::JSXSLTProcessor::setParameter):
        (WebCore::JSXSLTProcessor::getParameter):
        (WebCore::JSXSLTProcessor::removeParameter):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::create):
        (WebCore::ScheduledAction::ScheduledAction):
        (WebCore::ScheduledAction::executeFunctionInContext):
        * bindings/js/ScheduledAction.h:
        * bindings/js/ScriptCallStack.cpp:
        (WebCore::ScriptCallStack::ScriptCallStack):
        (WebCore::ScriptCallStack::initialize):
        * bindings/js/ScriptCallStack.h:
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::jsObjectForPluginElement):
        * bindings/js/ScriptFunctionCall.cpp:
        (WebCore::ScriptFunctionCall::appendArgument):
        (WebCore::ScriptFunctionCall::call):
        (WebCore::ScriptFunctionCall::construct):
        * bindings/js/ScriptFunctionCall.h:
        * bindings/js/ScriptObject.cpp:
        (WebCore::ScriptGlobalObject::get):
        * bindings/js/ScriptValue.h:
        (WebCore::ScriptValue::ScriptValue):
        (WebCore::ScriptValue::jsValue):
        * bindings/objc/WebScriptObject.mm:
        (-[WebScriptObject callWebScriptMethod:withArguments:]):
        (-[WebScriptObject evaluateWebScript:]):
        (-[WebScriptObject valueForKey:]):
        (-[WebScriptObject webScriptValueAtIndex:]):
        (+[WebScriptObject _convertValueToObjcValue:originRootObject:rootObject:]):
        * bindings/objc/WebScriptObjectPrivate.h:
        * bridge/NP_jsobject.cpp:
        (_NPN_InvokeDefault):
        (_NPN_Invoke):
        (_NPN_Evaluate):
        (_NPN_GetProperty):
        (_NPN_HasMethod):
        (_NPN_Construct):
        * bridge/c/c_instance.cpp:
        (JSC::Bindings::CInstance::invokeMethod):
        (JSC::Bindings::CInstance::invokeDefaultMethod):
        (JSC::Bindings::CInstance::invokeConstruct):
        (JSC::Bindings::CInstance::defaultValue):
        (JSC::Bindings::CInstance::stringValue):
        (JSC::Bindings::CInstance::numberValue):
        (JSC::Bindings::CInstance::booleanValue):
        (JSC::Bindings::CInstance::valueOf):
        * bridge/c/c_instance.h:
        * bridge/c/c_runtime.cpp:
        (JSC::Bindings::CField::valueFromInstance):
        (JSC::Bindings::CField::setValueToInstance):
        * bridge/c/c_runtime.h:
        * bridge/c/c_utility.cpp:
        (JSC::Bindings::convertValueToNPVariant):
        (JSC::Bindings::convertNPVariantToValue):
        * bridge/c/c_utility.h:
        * bridge/jni/jni_instance.cpp:
        (JavaInstance::stringValue):
        (JavaInstance::numberValue):
        (JavaInstance::booleanValue):
        (JavaInstance::invokeMethod):
        (JavaInstance::defaultValue):
        (JavaInstance::valueOf):
        * bridge/jni/jni_instance.h:
        * bridge/jni/jni_jsobject.h:
        * bridge/jni/jni_jsobject.mm:
        (JavaJSObject::call):
        (JavaJSObject::eval):
        (JavaJSObject::getMember):
        (JavaJSObject::getSlot):
        (JavaJSObject::convertValueToJObject):
        (JavaJSObject::convertJObjectToValue):
        * bridge/jni/jni_objc.mm:
        (JSC::Bindings::dispatchJNICall):
        * bridge/jni/jni_runtime.cpp:
        (JavaArray::convertJObjectToArray):
        (JavaField::dispatchValueFromInstance):
        (JavaField::valueFromInstance):
        (JavaField::dispatchSetValueToInstance):
        (JavaField::setValueToInstance):
        (JavaArray::setValueAt):
        (JavaArray::valueAt):
        * bridge/jni/jni_runtime.h:
        * bridge/jni/jni_utility.cpp:
        (JSC::Bindings::convertArrayInstanceToJavaArray):
        (JSC::Bindings::convertValueToJValue):
        * bridge/jni/jni_utility.h:
        * bridge/objc/WebScriptObject.h:
        * bridge/objc/objc_class.h:
        * bridge/objc/objc_class.mm:
        (JSC::Bindings::ObjcClass::fallbackObject):
        * bridge/objc/objc_instance.h:
        * bridge/objc/objc_instance.mm:
        (ObjcInstance::invokeMethod):
        (ObjcInstance::invokeDefaultMethod):
        (ObjcInstance::setValueOfUndefinedField):
        (ObjcInstance::getValueOfUndefinedField):
        (ObjcInstance::defaultValue):
        (ObjcInstance::stringValue):
        (ObjcInstance::numberValue):
        (ObjcInstance::booleanValue):
        (ObjcInstance::valueOf):
        * bridge/objc/objc_runtime.h:
        (JSC::Bindings::ObjcFallbackObjectImp::createStructure):
        * bridge/objc/objc_runtime.mm:
        (JSC::Bindings::ObjcField::valueFromInstance):
        (JSC::Bindings::convertValueToObjcObject):
        (JSC::Bindings::ObjcField::setValueToInstance):
        (JSC::Bindings::ObjcArray::setValueAt):
        (JSC::Bindings::ObjcArray::valueAt):
        (JSC::Bindings::ObjcFallbackObjectImp::put):
        (JSC::Bindings::callObjCFallbackObject):
        (JSC::Bindings::ObjcFallbackObjectImp::defaultValue):
        * bridge/objc/objc_utility.h:
        * bridge/objc/objc_utility.mm:
        (JSC::Bindings::convertValueToObjcValue):
        (JSC::Bindings::convertNSStringToString):
        (JSC::Bindings::convertObjcValueToValue):
        * bridge/runtime.h:
        (JSC::Bindings::Class::fallbackObject):
        (JSC::Bindings::Instance::setValueOfUndefinedField):
        (JSC::Bindings::Instance::invokeDefaultMethod):
        (JSC::Bindings::Instance::invokeConstruct):
        (JSC::Bindings::Instance::put):
        * bridge/runtime_array.cpp:
        (JSC::RuntimeArray::lengthGetter):
        (JSC::RuntimeArray::indexGetter):
        (JSC::RuntimeArray::put):
        * bridge/runtime_array.h:
        (JSC::RuntimeArray::createStructure):
        * bridge/runtime_method.cpp:
        (JSC::RuntimeMethod::lengthGetter):
        (JSC::callRuntimeMethod):
        * bridge/runtime_method.h:
        (JSC::RuntimeMethod::createStructure):
        * bridge/runtime_object.cpp:
        (JSC::RuntimeObjectImp::fallbackObjectGetter):
        (JSC::RuntimeObjectImp::fieldGetter):
        (JSC::RuntimeObjectImp::methodGetter):
        (JSC::RuntimeObjectImp::put):
        (JSC::RuntimeObjectImp::defaultValue):
        (JSC::callRuntimeObject):
        (JSC::callRuntimeConstructor):
        * bridge/runtime_object.h:
        (JSC::RuntimeObjectImp::createStructure):
        * inspector/JavaScriptCallFrame.cpp:
        (WebCore::JavaScriptCallFrame::evaluate):
        * inspector/JavaScriptCallFrame.h:
        * inspector/JavaScriptProfile.cpp:
        (WebCore::toJS):
        * inspector/JavaScriptProfile.h:
        * inspector/JavaScriptProfileNode.cpp:
        (WebCore::toJS):
        * inspector/JavaScriptProfileNode.h:

2009-05-01  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25485
        Only use visitedURL in Qt. This is a follow-up change to http://trac.webkit.org/changeset/43052,
        which broke Chromium build.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState): Moved guards around to
            provide separate code paths for Qt and non-Qt ports. Also restored original
            order of execution.

2009-05-01  Anders Carlsson  <andersca@apple.com>

        Reviewed by Adele Peterson.

        <rdar://problem/6839222>
        CrashTracer: Lots of crashes in Safari in hash table remove function inside DocumentLoader::removeSubresourceLoader
        
        After calling m_client->didFail(), check if the subresource loader has reached its terminal state. If that's the case,
        return early to avoid calling removeSubresourceLoader on a null document loader. I don't think this is allowed to happen
        which is why I've added the ASSERT.
        
        * loader/SubresourceLoader.cpp:
        (WebCore::SubresourceLoader::didCancel):

2009-05-01  Timothy Hatcher  <timothy@apple.com>

        Disallow the deletion UI for elements that have any overflow clipping.
        Also disallow the UI for the body element it isn't practical to delete,
        and the deletion UI would be clipped.

        <rdar://problem/6840161> Deletion UI can be clipped by some
        elements (with overflow: hidden)

        Reviewed by Darin Adler.

        * editing/DeleteButtonController.cpp:
        (WebCore::isDeletableElement):

2009-05-01  Timothy Hatcher  <timothy@apple.com>

        Decrease the minimum height for deleteable elements to 16px, and increase the
        minimum width to 48px. This allows deleting shorter items like navigation bars.

        <rdar://problem/6840735> Deletion UI does not show up for short
        elements (22px or less)

        Reviewed by Adele Peterson.

        * editing/DeleteButtonController.cpp:
        (WebCore::isDeletableElement):

2009-05-01  Timothy Hatcher  <timothy@apple.com>

        Clean up the comments and logic in the code for picking a
        deleteable element for the deletion UI.

        Reviewed by Adele Peterson.

        * editing/DeleteButtonController.cpp:
        (WebCore::isDeletableElement):

2009-05-01  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Adele Peterson and Darin Adler.

        <rdar://problem/4815598> Stuck in double spacing mode after pasting a
        paragraph with padding/margin (or table mode !)

        A lot of the issues in this bug were resolved on Mail's side by using
        WebKit to convert to plain text.  This is the final issue, that floating
        style stays on copied nodes causing them to float when they are pasted
        which is not what the user intended.

        * editing/markup.cpp:
        (WebCore::removeExteriorStyles):
        (WebCore::):
        (WebCore::appendStartMarkup):
        (WebCore::getStartMarkup):
        (WebCore::createMarkup):

2009-05-01  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Add a FrameLoaderClient callback for the ResourceRetrievedByXMLHttpRequest.
        This is the only resource-related information that is available in InspectorController
        and is missing in the FrameLoaderClient.

        https://bugs.webkit.org/show_bug.cgi?id=25347

        * WebCore.xcodeproj/project.pbxproj: Made ScriptSource private.
        * dom/Document.cpp: Made a call to a client along with the call to the InspectorController.
        (WebCore::Document::resourceRetrievedByXMLHttpRequest):
        * loader/EmptyClients.h: Added stub implementation.
        (WebCore::EmptyFrameLoaderClient::dispatchDidLoadResourceByXMLHttpRequest):
        * loader/FrameLoader.cpp: Call initiating dispatches.
        (WebCore::FrameLoader::resourceRetrievedByXMLHttpRequest):
        * loader/FrameLoader.h:
        * loader/FrameLoaderClient.h:

2009-04-30  Beth Dakin  <bdakin@apple.com>

        Reviewed by Oliver Hunt.

        Fix for <rdar://problem/6841106> REGRESSION: Crash drag selecting 
        To Do's in a Mail note (excessive recursion in mouse drag tracking)

        Oliver's recent change to dragging seems to have revealed a long-
        time bug in passSubframeEventToSubframe where we did not set 
        m_sendingEventToSubview to true before calling 
        handleMouseMoveEvent() in the NSMouseMoved case. This patch fixes 
        that and adds ASSERTions around all of the places where 
        m_sendingEventToSubview is set to true and then false to make sure 
        we are not trampling its state.

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::eventLoopHandleMouseDragged):
        (WebCore::EventHandler::eventLoopHandleMouseUp):
        (WebCore::EventHandler::passSubframeEventToSubframe):
        (WebCore::EventHandler::passWheelEventToWidget):

2009-04-30  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.
        
        MediaDocument falls back to plug-in unnecessarily
        https://bugs.webkit.org/show_bug.cgi?id=25504
        <rdar://problem/6844702>
        
        Don't allow harmless media types to cause a MediaDocument to fall
        back to PluginDocument.

        Test: media/video-document-types.html

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::disableUnsupportedTracks): add timecode, timecode 64,
        odsm, and sdsm to allowed track types.

        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWin::disableUnsupportedTracks): Ditto.

2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Eric Seidel.

        Add CHROMIUM guard to unfork Document.cpp

        * dom/Document.cpp:
        (WebCore::Document::setFocusedNode): Added guard.

2009-04-30  David Kilzer  <ddkilzer@apple.com>

        Use OwnPtr<HTMLParserQuirks> for m_parserQuirks

        Reviewed by Geoff Garen.

        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::~HTMLParser): Removed unneeded code.
        * html/HTMLParser.h: Made m_parserQuirks an OwnPtr.

2009-04-30  David Kilzer  <ddkilzer@apple.com>

        Provide a mechanism to create a quirks delegate for HTMLParser

        Reviewed by David Hyatt.

        No tests since there is no change in behavior.

        HTMLParserQuirks.h defines an abstract base class that may be
        extended as needed.  The ChromeClient::createHTMLParserQuirks()
        factory method should be used to return an HTMLParserQuirks
        subclassed object when needed.

        * WebCore.xcodeproj/project.pbxproj: Added HTMLParserQuirks.h.
        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::HTMLParser): Initialize m_parserQuirks
        using ChromeClient::createHTMLParserQuirks().
        (WebCore::HTMLParser::~HTMLParser): Delete m_parserQuirks if
        set.
        (WebCore::HTMLParser::reset): Call HTMLParserQuirks::reset() if
        m_parserQuirks is set.
        (WebCore::HTMLParser::insertNode): Call
        HTMLParserQuirks::shouldInsertNode() if m_parserQuirks is set,
        and return early if it returns false.
        (WebCore::HTMLParser::popBlock): Call
        HTMLParserQuirks::shouldPopBlock() if m_parserQuirks is set, and
        return early if it returns false.
        * html/HTMLParser.h: Added m_parserQuirks.
        * html/HTMLParserQuirks.h: Added.
        (WebCore::HTMLParserQuirks::HTMLParserQuirks):
        (WebCore::HTMLParserQuirks::~HTMLParserQuirks):
        * loader/EmptyClients.h:
        (WebCore::EmptyChromeClient::createHTMLParserQuirks): Added.
        * page/ChromeClient.h:
        (WebCore::ChromeClient::createHTMLParserQuirks): Added.

2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25492
        Add JSC guards around node wrapper cache calls. These are not used by V8.

        Also, remove JSDOMBinding include, which is brought in by ScriptController.

        * dom/Document.cpp:
        (WebCore::Document::~Document): Added JSC guard.
        * dom/Node.cpp:
        (WebCore::Node::setDocument): Ditto and removed JSDOMBinding include.

2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25493
        Remove debugger/profiler custom method stubs, catching V8 bindings up to
        http://trac.webkit.org/changeset/43072.

        * bindings/v8/custom/V8InspectorControllerCustom.cpp: Removed method stubs.

2009-04-30  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler

        <rdar://problem/6839338> VoiceOver does not take into account transforms when drawing outlines
        
        Use transform-aware quad methods when computing the boundingBoxRect for
        an AccessibilityRenderObject. The code follows RenderObject::absoluteBoundingBoxRect().

        Test: accessibility/transformed-element.html

        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::boundingBoxRect):

2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, Chromium build fix.

        Catch up to ScriptObject changes from http://trac.webkit.org/changeset/42512.

        * bindings/v8/ScriptObject.cpp:
        (WebCore::ScriptGlobalObject::get): Renamed from getObject.
        (WebCore::ScriptGlobalObject::remove): Added.
        * bindings/v8/ScriptObject.h: Ditto.

2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        https://bugs.webkit.org/show_bug.cgi?id=25470
        Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler.

        * WebCore.pro: Fix copy-paste error.

2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        https://bugs.webkit.org/show_bug.cgi?id=25470
        Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler.

        * GNUmakefile.am: Add ENABLE_JAVASCRIPT_DEBUGGER definitions.
        * WebCore.pro: Ditto.

2009-04-02  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        Change Position to pre-compute the AnchorType and store it.
        Also store a "legacy editing mode" bit on the Position.
        https://bugs.webkit.org/show_bug.cgi?id=24763

        The old Postion(node, offset) constructor creates legacy positions
        but there are new constructors to create explicitly anchored positions
        which the next patch will use.

        Once we fix all the "position-fixup" functions (like rangeCompliantEquivalent) to
        only affect legacy positions, we will be able to distinguish
        between [table, 1] and [table, after] in the code correctly!

        * WebCore.base.exp:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/Position.cpp:
        (WebCore::Position::Position):
        (WebCore::Position::moveToPosition):
        (WebCore::Position::moveToOffset):
        (WebCore::Position::anchorTypeForLegacyEditingPosition):
        (WebCore::Position::element):
        * dom/Position.h:
        (WebCore::Position::):
        (WebCore::Position::Position):
        (WebCore::Position::anchorType):
        (WebCore::Position::deprecatedEditingOffset):

2009-04-30  Sam Weinig  <sam@webkit.org>

        Reviewed by Alexey Proskuryakov.

        Fix bug where the WorkerLocation and WorkerNavigator wrappers would be
        collected even if the WorkerContext is still alive.

        Test: fast/workers/worker-context-gc.html

        * bindings/js/JSWorkerContextCustom.cpp:
        (WebCore::JSWorkerContext::mark):
        * workers/WorkerContext.cpp:
        (WebCore::WorkerContext::WorkerContext):
        (WebCore::WorkerContext::completeURL):
        (WebCore::WorkerContext::location):
        * workers/WorkerContext.h:
        (WebCore::WorkerContext::optionalNavigator):
        (WebCore::WorkerContext::optionalLocation):

2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Timothy Hatcher.

        https://bugs.webkit.org/show_bug.cgi?id=25470
        Extend the cover of ENABLE_JAVASCRIPT_DEBUGGER to profiler.

        * Configurations/FeatureDefines.xcconfig: Added ENABLE_JAVASCRIPT_DEBUGGER.
        * WebCore.vcproj/build-generated-files.sh: Ditto.
        * bindings/js/JSConsoleCustom.cpp: Added ENABLE(JAVASCRIPT_DEBUGGER) guard.
        * bindings/js/JSDOMWindowBase.cpp: Ditto.
        * bindings/js/JSInspectorControllerCustom.cpp: Ditto.
        * inspector/InspectorController.cpp: Moved profiler/debugger methods under
            ENABLE(JAVASCRIPT_DEBUGGER) flag.
        * inspector/InspectorController.h: Ditto.
        * inspector/InspectorController.idl: Added ENABLE(JAVASCRIPT_DEBUGGER) guard.
        * page/Console.cpp: Replaced USE(JSC) with ENABLE(JAVASCRIPT_DEBUGGER) guard.

2009-04-30  Dimitri Glazkov  <dglazkov@chromium.org>

        Unreviewed, build fix.

        https://bugs.webkit.org/show_bug.cgi?id=25275
        This patch snuck in a re-definition of a local.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::NAMED_PROPERTY_GETTER): Removed re-definition.

2009-04-30  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Fix a leak introduced yesterday.  Don't allocate a ScheduledAction
        if the toString()ing throws an exception.

        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::create):

2009-04-30  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25379
        <rdar://problem/6809460> REGRESSION (r41772): Selecting a bank in American Express Pay Bill fails

        Test: fast/forms/multiple-selected-options-innerHTML.html

        This problem was caused by an inconsistency at when Node::instertedIntoTree() is called.
        For normal HTML parsing, it is called immediately after an element is inserted, but for
        innerHTML, it is only called after the whole subtree is inserted into a document.

        It may make sense to harmonize these cases one day, but for now, I only made the minimal
        changes necessary to fix the bug.

        * html/HTMLSelectElement.cpp: (WebCore::HTMLSelectElement::insertedIntoTree):
        * html/HTMLSelectElement.h:
        Recalculate list items when a SELECT element is inserted. OPTION elements cannot decide
        which one to keep selected themselves, because their logic assumes normal parsing, with
        insertedIntoTree() called after each element is inserted.

2009-04-30  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25342
        Add MessageSource and MessageLevel parameters to the ChromeClient::addMessageToConsole.

        Chromium async/out-of-process version of WebInspector is currently not based on
        InspectorController. The reason was that we did not want to interfere with
        the unforking effort, yet wanted to experiment. So we came up with these
        agents concept that basically mimic InspectorController, but separating 'agent'
        nature from the 'transport'. Now that InspectorController is unforked, I am
        planning to bring these concepts into the WebKit land and use what we have in
        Chromium as a proof of concept / experimental playground.

        * loader/EmptyClients.h: added MessageSource and MessageLevel parameters.
        (WebCore::EmptyChromeClient::addMessageToConsole): ditto
        * page/ChromeClient.h: ditto
        * page/Console.cpp: Used new method signature.
        (WebCore::Console::addMessage): ditto

2009-04-30  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        - fix https://bugs.webkit.org/show_bug.cgi?id=25476
          <rdar://problem/6841919> REGRESSION (r42987): Welcome to Safari 4
          animation is jittery

        Reverted r42987.

        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::BitmapImage::draw):

2009-04-30  Brady Eidson  <beidson@apple.com>

        Reviewed by Maciej Stachowiak

        <rdar://problem/3785248> http://www.greekembassy.org/ gets in an infinite reload loop
        https://bugs.webkit.org/show_bug.cgi?id=21193

        Some websites use for attributes in script elements to specify events that the script 
        should be run for.  One example is greekembassy.org which has the following in their <head>:

        <script for=window event=onresize>
            location.reload(false);
        </script>

        Since we don't support the full for attribute syntax, we would just blissfully ignore the
        condition and execute the code unconditionally.  This caused breakage on multiple real-world 
        sites besides greekembassy.org.

        https://bugs.webkit.org/show_bug.cgi?id=16915 and <rdar://problem/4471751> track adding full 
        support for the for attribute in scripts.  In the meantime it's best to not execute them
        unconditionally.

        Test: fast/dom/HTMLScriptElement/script-for-attribute-unexpected-execution.html

        * dom/ScriptElement.cpp:
        (WebCore::ScriptElementData::shouldExecuteAsJavaScript): After all other checks have
          passed, only return true if there is no for attribute in the script element.
        * dom/ScriptElement.h:

        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::forAttributeValue): Return the attribute value, if any.
        * html/HTMLScriptElement.h:

        * svg/SVGScriptElement.cpp:
        (WebCore::SVGScriptElement::forAttributeValue): Return an empty string (like the other
          attribute getters do for SVGScriptElement)
        * svg/SVGScriptElement.h:

2009-04-30  Holger Hans Peter Freyther  <zecke@selfish.org>

        Reviewed by Darin Adler.

        The Qt API exposes a global history patch CSSStyleSelector to make API consumers work again

        https://bugs.webkit.org/show_bug.cgi?id=20952

        The QtWebKit port made the mistake of exposing a global history. This broke
        with the addition of PageGroup and LinkHash. This needs to be repaired
        for Qt4.5.

        Add a function to LinkHash.cpp that is resolving a URL. Use this
        function from within CSSStyleSelector to forward the url to the
        QWebHistoryInterface API.

        It is sad that there is a path within visitedLinkHash which is now
        doing a memcpy, it is sad to add a PLATFORM(QT) define to CSSStyleSelector
        and using QtWebKit types within WebCore is a layering violation as well.

        PageGroup::setShouldTrackVisitedLinks is currently not enabled. For
        Qt4.6 a second version of the QWebHistoryInterface is going to be
        added which will fix things up.

        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::SelectorChecker::checkPseudoState):
        * platform/LinkHash.cpp:
        (WebCore::visitedURL):
        (WebCore::visitedLinkHash):
        * platform/LinkHash.h:

2009-04-30  Simon Hausmann  <simon.hausmann@nokia.com>

        Fix the Qt build.

        * platform/graphics/SimpleFontData.cpp: Don't use initCharWidths() for the Qt build.
        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit): Instead initialize the average and
        max char widths from QFontMetrics.

2009-04-30  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Unreview build fix after r43037.

        Use MarkedArgumentBuffer instead of ArgList.

        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::QtConnectionObject::execute):

2009-04-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=25440
        setTimeout should stringify non-string/non-function first arguments

        Test: fast/dom/Window/setTimeout-string-argument.html

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::setTimeout):
        (WebCore::JSDOMWindow::setInterval):
        * bindings/js/JSWorkerContextCustom.cpp:
        (WebCore::JSWorkerContext::setTimeout):
        (WebCore::JSWorkerContext::setInterval):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::create):
        * bindings/js/ScheduledAction.h:

2009-04-29  Dan Bernstein  <mitz@apple.com>

        Reviewed by Simon Fraser.

        - WebCore part of <rdar://problem/6609509> Select All and then Delete
          should put Mail editing back into the same state as a new message

        Test: editing/deleting/in-visibly-empty-root.html

        * WebCore.base.exp: Exported VisibleSelection::isAll(bool).
        * editing/SelectionController.h:
        (WebCore::SelectionController::isAll): Added. Calls through to
        VisibleSelection.
        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::makeEditableRootEmpty): Added. Removes all children
        of the root editable element the selection is in, other than a
        placeholder. Returns true iff it did anything.
        (WebCore::TypingCommand::deleteKeyPressed): When there is only a single
        visible position in the root editable element, but it has children other
        than a placeholder, remove those children.
        * editing/TypingCommand.h:
        * editing/VisiblePosition.h:
        Added a StayInEditableContent enum and a FIXME.
        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::isAll): Added. Returns whether the
        selection encompasses all visible positions, either in the document or
        in the editable root.
        * editing/VisibleSelection.h:

2009-04-29  Sam Weinig  <sam@webkit.org>

        Fix style nit.

        * editing/visible_units.cpp:
        (WebCore::getLeafBoxesInLogicalOrder):

2009-04-29  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.

        For now just drop the deferred layout on the floor, since it causes an infinite hang in mail.  Even
        trying to schedule a relayout for later leaves you in a state where you hit the needsLayout painting
        assertions.

        Basically what Mail is doing is crazy, and we can't support it other than to just drop the last layout
        and not do it (which is basically what was happening before).

        * page/FrameView.cpp:
        (WebCore::FrameView::setContentsSize):
        (WebCore::FrameView::needsLayout):

2009-04-29  Douglas Davidson  <ddavidso@apple.com>

        Reviewed by Justin Garcia.

        <rdar://problem/6836921> Mail exhibits issues with text checking, e.g. menu items not always validated correctly
        
        Updates to the text checking code to enable text checking even if spellchecking is turned off 
        and fix an off-by-one error in selection handling.

        * editing/Editor.cpp:
        (WebCore::Editor::markMisspellingsAfterTypingToPosition):
        (WebCore::Editor::markAllMisspellingsAndBadGrammarInRanges):
        (WebCore::Editor::markMisspellingsAndBadGrammar):
        * editing/Editor.h:
        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::markMisspellingsAfterTyping):

2009-04-29  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        Clean up ArgList to be a trivial type

        Start using MarkedArgumentBuffer to create argument lists for function calls

        * bindings/js/JSClipboardCustom.cpp:
        (WebCore::JSClipboard::types):
        * bindings/js/JSConsoleCustom.cpp:
        (WebCore::JSConsole::profiles):
        * bindings/js/JSCustomPositionCallback.cpp:
        (WebCore::JSCustomPositionCallback::handleEvent):
        * bindings/js/JSCustomPositionErrorCallback.cpp:
        (WebCore::JSCustomPositionErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementCallback.cpp:
        (WebCore::JSCustomSQLStatementCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
        (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        (WebCore::JSCustomSQLTransactionCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
        (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
        * bindings/js/JSCustomVoidCallback.cpp:
        (WebCore::JSCustomVoidCallback::handleEvent):
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::handleEvent):
        * bindings/js/JSInspectorControllerCustom.cpp:
        (WebCore::JSInspectorController::profiles):
        (WebCore::JSInspectorController::search):
        (WebCore::JSInspectorController::databaseTableNames):
        (WebCore::JSInspectorController::setting):
        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
        (WebCore::JSJavaScriptCallFrame::scopeChain):
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::JSLazyEventListener::parseCode):
        * bindings/js/JSNodeFilterCondition.cpp:
        (WebCore::JSNodeFilterCondition::acceptNode):
        * bindings/js/JSQuarantinedObjectWrapper.cpp:
        (WebCore::JSQuarantinedObjectWrapper::construct):
        (WebCore::JSQuarantinedObjectWrapper::call):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::ScheduledAction):
        (WebCore::ScheduledAction::executeFunctionInContext):
        * bindings/js/ScriptFunctionCall.h:
        * bindings/objc/WebScriptObject.mm:
        (getListFromNSArray):
        (-[WebScriptObject callWebScriptMethod:withArguments:]):
        * bridge/NP_jsobject.cpp:
        (getListFromVariantArgs):
        (_NPN_InvokeDefault):
        (_NPN_Invoke):
        (_NPN_Construct):
        * bridge/jni/jni_jsobject.h:
        * bridge/jni/jni_jsobject.mm:
        (JavaJSObject::call):
        (JavaJSObject::getListFromJArray):

2009-04-29  Eric Seidel  <eric@webkit.org>

        No review, build fix only.

        Fix m_offset uses added while I wasn't looking.

        * editing/visible_units.cpp:
        (WebCore::logicalStartPositionForLine):
        (WebCore::logicalEndPositionForLine):

2009-04-29  Xiaomei Ji  <xji@chromium.org>

        Reviewed by Dan Bernstein.

        Fix https://bugs.webkit.org/show_bug.cgi?id=24168
        RTL: Home/End key does not behave correctly in mixed bidi text in RTL document

        Test: editing/selection/home-end.html

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::modifyExtendingForward): Change calling endOfLine()
        to logicalEndOfLine() when granularity is LineBoundary.
        (WebCore::SelectionController::modifyMovingForward): Change calling endOfLine()
        to logicalEndOfLine() when granularity is LineBoundary
        (WebCore::SelectionController::modifyExtendingBackward): Change calling 
        startOfLine() to logicalStartOfLine() when granularity is LineBoundary.
        (WebCore::SelectionController::modifyMovingBackward): Change calling startOfLine() 
        to logicalStartOfLine() when granularity is LineBoundary.
        * editing/visible_units.cpp:
        (WebCore::getLeafBoxesInLogicalOrder): Added. Reconstruct leaf boxes in logical order.
        (WebCore::getLogicalStartBoxAndNode): Added.
        (WebCore::getLogicalEndBoxAndNode): Added.
        (WebCore::logicalStartPositionForLine): Added. Similar to startPositionForLine.
        (WebCore::logicalStartOfLine): Added. Similar to startOfLine.
        (WebCore::logicalEndPositionForLine): Added. Similar to endPositionForLine.
        (WebCore::inSameLogicalLine): Added.
        (WebCore::logicalEndOfLine): Added. Similar to endOfLine.
        * editing/visible_units.h:

2009-04-29  Eric Seidel  <eric@webkit.org>

        Reviewed by Darin Adler.

        Make m_offset private and change all callers to use deprecatedEditingOffset().
        https://bugs.webkit.org/show_bug.cgi?id=25472

        Per Darin's suggestion, this was just a simple search replace
        of .m_offset with .deprecatedEditingOffset().

        There was one change in InsertParagraphSeparatorCommand::doApply to use
        Position::moveToOffset(0) instead of .m_offset = 0;

        * dom/Position.cpp:
        (WebCore::Position::rendersInDifferentPosition):
        (WebCore::Position::leadingWhitespacePosition):
        * dom/Position.h:
        (WebCore::Position::deprecatedEditingOffset):
        (WebCore::Position::moveToOffset):
        (WebCore::operator==):
        * dom/PositionIterator.h:
        (WebCore::PositionIterator::PositionIterator):
        * dom/Range.cpp:
        (WebCore::Range::create):
        (WebCore::Range::compareBoundaryPoints):
        * editing/ApplyStyleCommand.cpp:
        (WebCore::ApplyStyleCommand::applyRelativeFontStyleChange):
        (WebCore::ApplyStyleCommand::applyInlineStyleToRange):
        (WebCore::ApplyStyleCommand::removeInlineStyle):
        (WebCore::ApplyStyleCommand::nodeFullySelected):
        (WebCore::ApplyStyleCommand::nodeFullyUnselected):
        (WebCore::ApplyStyleCommand::splitTextAtStartIfNeeded):
        (WebCore::ApplyStyleCommand::splitTextAtEndIfNeeded):
        (WebCore::ApplyStyleCommand::splitTextElementAtStartIfNeeded):
        (WebCore::ApplyStyleCommand::splitTextElementAtEndIfNeeded):
        (WebCore::ApplyStyleCommand::mergeStartWithPreviousIfIdentical):
        (WebCore::ApplyStyleCommand::mergeEndWithNextIfIdentical):
        (WebCore::ApplyStyleCommand::joinChildTextNodes):
        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::insertNodeAt):
        (WebCore::CompositeEditCommand::positionOutsideTabSpan):
        (WebCore::CompositeEditCommand::rebalanceWhitespaceAt):
        (WebCore::CompositeEditCommand::prepareWhitespaceAtPositionForSplit):
        (WebCore::CompositeEditCommand::deleteInsignificantText):
        (WebCore::CompositeEditCommand::moveParagraphs):
        (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::updatePositionForNodeRemoval):
        (WebCore::updatePositionForTextRemoval):
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        (WebCore::DeleteSelectionCommand::fixupWhitespace):
        * editing/Editor.cpp:
        (WebCore::Editor::setComposition):
        (WebCore::Editor::advanceToNextMisspelling):
        (WebCore::Editor::getCompositionSelection):
        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::doApply):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/InsertTextCommand.cpp:
        (WebCore::InsertTextCommand::performTrivialReplace):
        (WebCore::InsertTextCommand::input):
        (WebCore::InsertTextCommand::insertTab):
        * editing/MoveSelectionCommand.cpp:
        (WebCore::MoveSelectionCommand::doApply):
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::doApply):
        * editing/SelectionController.cpp:
        (WebCore::SelectionController::debugRenderer):
        * editing/TextIterator.cpp:
        (WebCore::TextIterator::rangeFromLocationAndLength):
        * editing/TypingCommand.cpp:
        (WebCore::TypingCommand::deleteKeyPressed):
        (WebCore::TypingCommand::forwardDeleteKeyPressed):
        * editing/VisiblePosition.cpp:
        (WebCore::VisiblePosition::characterAfter):
        (WebCore::VisiblePosition::debugPosition):
        (WebCore::makeRange):
        (WebCore::setStart):
        (WebCore::setEnd):
        * editing/VisibleSelection.cpp:
        (WebCore::VisibleSelection::toNormalizedRange):
        (WebCore::makeSearchRange):
        (WebCore::VisibleSelection::debugPosition):
        (WebCore::VisibleSelection::showTreeForThis):
        * editing/htmlediting.cpp:
        (WebCore::comparePositions):
        (WebCore::rangeCompliantEquivalent):
        * editing/visible_units.cpp:
        (WebCore::previousBoundary):
        (WebCore::nextBoundary):
        (WebCore::startPositionForLine):
        (WebCore::startOfLine):
        (WebCore::endPositionForLine):
        (WebCore::nextLinePosition):
        (WebCore::startOfParagraph):
        (WebCore::endOfParagraph):
        (WebCore::logicalStartPositionForLine):
        (WebCore::logicalEndPositionForLine):
        * page/AccessibilityObject.cpp:
        (WebCore::updateAXLineStartForVisiblePosition):
        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::indexForVisiblePosition):
        * page/DOMSelection.cpp:
        (WebCore::DOMSelection::anchorOffset):
        (WebCore::DOMSelection::focusOffset):
        (WebCore::DOMSelection::baseOffset):
        (WebCore::DOMSelection::extentOffset):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMousePressEventSingleClick):
        * page/Frame.cpp:
        (WebCore::Frame::selectionLayoutChanged):
        * page/mac/AccessibilityObjectWrapper.mm:
        (textMarkerForVisiblePosition):
        (visiblePositionForTextMarker):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::indexForVisiblePosition):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::writeSelection):

2009-04-29  Eric Seidel  <eric@webkit.org>

        No review, rolling out a patch.

        Revert http://trac.webkit.org/changeset/43019

        New tests failed because I removed the tabs from them
        when landing (since we avoid tabs in WebKit files).
        I couldn't tell if the new results were correct with
        spaces or not.

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::modifyExtendingForward):
        (WebCore::SelectionController::modifyMovingForward):
        (WebCore::SelectionController::modifyExtendingBackward):
        (WebCore::SelectionController::modifyMovingBackward):
        * editing/visible_units.cpp:
        * editing/visible_units.h:

2009-04-29  David Hyatt  <hyatt@apple.com>

        Reviewed by Dan Bernstein.

        Fix for <rdar://problem/6828164>, Mail hits the !root->needsLayout() assert because it re-marks the FrameView for layout
        when the FrameView is resized.  This bug was exposed by the elimination of the separate WebKit layout
        flag on Mac.  
        
        FrameView now defers setNeedsLayouts during size changes.  Once all of the size changes are finished (including re-entrant ones
        from WebDynamicScrollbarsView and ScrollView::updateScrollbars) we then do a layout if necessary.

        * page/FrameView.cpp:
        (WebCore::FrameView::FrameView):
        (WebCore::FrameView::setContentsSize):
        (WebCore::FrameView::layout):
        (WebCore::FrameView::needsLayout):
        (WebCore::FrameView::setNeedsLayout):
        * page/FrameView.h:

2009-04-29  Eric Seidel  <eric@webkit.org>

        No review, rolling out a patch.

        Revert 43020 as it caused accessibility/lists.html to fail
        and no one is around to tell me if it's a progression or not.

        * page/AccessibilityObject.h:
        (WebCore::):
        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::roleValue):
        (WebCore::AccessibilityRenderObject::canSetFocusAttribute):
        * page/mac/AccessibilityObjectWrapper.mm:
        (RoleEntry::):

2009-04-29  Sankar Aditya Tanguturi  <sankaraditya@gmail.com>

        Reviewed by Jon Honeycutt.

        Add a new accessibility role for list items. Part of
        http://bugs.webkit.org/show_id.cgi?id=20013

        Tests: platform/win/accessibility/listitem-role.html

        * page/AccessibilityObject.h:
        (WebCore::):  Add ListItemRole to accessibilityRole enum.
        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::roleValue):Return
        listItemRole when rendered object is a list item.
        (WebCore::AccessibilityRenderObject::canSetFocusAttribute): Return
        true for ListItemRole, matching firefox.
        * page/mac/AccessibilityObjectWrapper.mm:
        (RoleEntry::): Map ListItemRole with NSAccessibilityGroupRole in
        MAC.

2009-04-29  Xiaomei Ji  <xji@chromium.org>

        Reviewed by Dan Bernstein.

        Fix https://bugs.webkit.org/show_bug.cgi?id=24168
        RTL: Home/End key does not behave correctly in mixed bidi text in RTL document

        Test: editing/selection/home-end.html

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::modifyExtendingForward): Change calling endOfLine()
        to logicalEndOfLine() when granularity is LineBoundary.
        (WebCore::SelectionController::modifyMovingForward): Change calling endOfLine()
        to logicalEndOfLine() when granularity is LineBoundary
        (WebCore::SelectionController::modifyExtendingBackward): Change calling 
        startOfLine() to logicalStartOfLine() when granularity is LineBoundary.
        (WebCore::SelectionController::modifyMovingBackward): Change calling startOfLine() 
        to logicalStartOfLine() when granularity is LineBoundary.
        * editing/visible_units.cpp:
        (WebCore::getLeafBoxesInLogicalOrder): Added. Reconstruct leaf boxes in logical order.
        (WebCore::getLogicalStartBoxAndNode): Added.
        (WebCore::getLogicalEndBoxAndNode): Added.
        (WebCore::logicalStartPositionForLine): Added. Similar to startPositionForLine.
        (WebCore::logicalStartOfLine): Added. Similar to startOfLine.
        (WebCore::logicalEndPositionForLine): Added. Similar to endPositionForLine.
        (WebCore::inSameLogicalLine): Added.
        (WebCore::logicalEndOfLine): Added. Similar to endOfLine.
        * editing/visible_units.h:

2009-04-29  Mike Belshe  <mike@belshe.com>

        Reviewed by Eric Seidel.

        Update location while page is loading.
        https://bugs.webkit.org/show_bug.cgi?id=21597

        Tested by:
        - fast/dom/location-new-window-no-crash
        - fast/dom/Window/window-open-pending-url

        * page/Location.cpp:

2009-04-29  Feng Qian  <feng@chromium.org>

        Reviewed by Darin Adler.

        Add Android port files to WebCore/platform.
        https://bugs.webkit.org/show_bug.cgi?id=23296

        * platform/android: Added.
        * platform/android/ClipboardAndroid.cpp: Added.
        * platform/android/ClipboardAndroid.h: Added.

2009-04-29  Feng Qian  <feng@chromium.org>

        Reviewed by Darin Adler.

        Add Android-specific files to the WebCore/page directory.
        https://bugs.webkit.org/show_bug.cgi?id=23295

        * page/android: Added.
        * page/android/DragControllerAndroid.cpp: Added.
        * page/android/EventHandlerAndroid.cpp: Added.
        * page/android/InspectorControllerAndroid.cpp: Added.

2009-04-29  Pavel Feldman  <pfeldman@chromium.org>

        Reviewed by Timothy Hatcher.

        Extract PageGroupLoadDeferrer from Chrome.cpp

        * GNUmakefile.am: added PageGroupLoadDeferrer
        * WebCore.pro: ditto
        * WebCore.scons: ditto
        * WebCore.vcproj/WebCore.vcproj: ditto
        * WebCore.xcodeproj/project.pbxproj: ditto
        * WebCoreSources.bkl: ditto
        * page/Chrome.cpp: PageGroupLoadDeferrer impl moved to a separate class.
        * page/PageGroupLoadDeferrer.cpp: Added.
        (WebCore::PageGroupLoadDeferrer::PageGroupLoadDeferrer):
        (WebCore::PageGroupLoadDeferrer::~PageGroupLoadDeferrer):
        * page/PageGroupLoadDeferrer.h: Added.

2009-04-24  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Dan Bernstein.

        Make textarea and text input metrics more closely match IEs.

        This involves:
        -set text input width to size*avgCharWidth + maxCharWidth - avgCharWidth
        -set textarea width to cols*avgCharWidth
        -Make default CSS match IEs
        -Correctly initializing m_avgCharWidth and m_maxCharWidth for each platform and SVG.

        Those values for textarea and inputs were derived by doing a ton of manual
        testing of IE's width values for various textareas and fonts. On Windows we match
        IE exactly except for a couple fonts of the ~12 tested.

        To get the average and max character width of a font, we do the following
        for each platform:
        -Win: TextMetrics expose avgCharWidth and maxCharWidth
        -SVG: avgCharWidth = width of an '0', fallback on width of a space glyph, then m_xHeight
            maxCharWidth = width of a 'W' for roman fonts, fallback on m_ascent
        -Linux: avgCharWidth = width of an '0', fallback on m_xHeight
            maxCharWidth = max of avgCharWidth and m_ascent
        -Mac: Calculate the avgCharWidth and grab the maxCharWidth off the font.
            If either one is non-positive, then calculate the value using the Linux approach.

        Tests: fast/forms/text-control-intrinsic-widths.html
               fast/forms/textarea-metrics.html
               svg/custom/svg-fonts-in-text-controls.html

        * css/html4.css:
        * css/themeWin.css:
        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData):
        (WebCore::SimpleFontData::initCharWidths):
        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::maxCharWidth):
        (WebCore::SimpleFontData::avgCharWidth):
        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/chromium/SimpleFontDataLinux.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/gtk/SimpleFontDataGtk.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/gtk/SimpleFontDataPango.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/win/SimpleFontDataCGWin.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/win/SimpleFontDataCairoWin.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::initGDIFont):
        * platform/graphics/wx/SimpleFontDataWx.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::calcPrefWidths):
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::preferredContentWidth):

2009-04-29  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        * bindings/objc/DOMCSS.mm:
        (kitClass):  Added CSS_INITIAL to the switch statement, and changed to use the WebCore
          type and not the binding type.

2009-04-29  John Abd-El-Malek  <jam@google.com>

        Reviewed by Dimitri Glazkov.

        Reverted my previous change to add resetChromiumPluginCache().
        https://bugs.webkit.org/show_bug.cgi?id=25318

        * plugins/chromium/PluginDataChromium.cpp:

2009-04-29  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6573742> - Problem dragging standalone images from Safari to Mail

        Roll out trac.webkit.org/changeset/35867 which fixed <rdar://problem/6153432>

        Cloned <rdar://problem/6153432> to <rdar://problem/6839881> to find a better fix for that Tiger Mail bug.

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::subresource): Remove the preload referenced check.

2009-04-29  Alpha Lam  <hclam@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25430

        Provide style sheet for UI controls of media elements for Chromium port.

        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore::RenderThemeChromiumWin::extraMediaControlsStyleSheet):

2009-04-29  John Abd-El-Malek  <jam@chromium.org>

        Reviewed by Darin Adler.

        Expose sudden termination to Chromium port.
        https://bugs.webkit.org/show_bug.cgi?id=25457

        * platform/SuddenTermination.h:
        * platform/chromium/ChromiumBridge.h:
        * platform/chromium/SuddenTerminationChromium.cpp: Added.
        (WebCore::disableSuddenTermination):
        (WebCore::enableSuddenTermination):

2009-04-29  Sam Weinig  <sam@webkit.org>

        Reviewed by Dimitri Glazkov.

        Remove unused EventListeners.

        * page/DOMWindow.idl:

2009-04-29  Yury Semikhatsky  <yurys@chromium.org>

        Reveal current execution line once SourceFrame content is loaded. 

        https://bugs.webkit.org/show_bug.cgi?id=25448

        Reviewed by Timothy Hatcher.

        * inspector/front-end/SourceFrame.js:
        (WebInspector.SourceFrame.prototype._loaded):

2009-04-29  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Simon Fraser.

        [Qt] Initialize GraphicsContext's and ImageBuffer's QPainter to match
        the default values of canvas attributes.

        * platform/graphics/qt/ImageBufferQt.cpp:
        (WebCore::ImageBufferData::ImageBufferData):

2009-04-28  Simon Hausmann  <simon.hausmann@nokia.com>

        Fix the Qt build.

        * bridge/qt/qt_runtime.cpp:
        (JSC::Bindings::findMethodIndex): Removed exec param from at() call.
        (JSC::Bindings::QtRuntimeConnectionMethod::call): Ditto.

2009-04-28  Geoffrey Garen  <ggaren@apple.com>

        Rubber stamped by Beth Dakin.
        
        Missed one.

        * bindings/scripts/CodeGeneratorJS.pm:

2009-04-28  Geoffrey Garen  <ggaren@apple.com>

        Rubber stamped by Beth Dakin.
        
        Removed scaffolding supporting dynamically converting between 32bit and
        64bit value representations. 

        * bindings/js/JSAudioConstructor.cpp:
        (WebCore::constructAudio):
        * bindings/js/JSCanvasRenderingContext2DCustom.cpp:
        (WebCore::JSCanvasRenderingContext2D::setFillColor):
        (WebCore::JSCanvasRenderingContext2D::setStrokeColor):
        (WebCore::JSCanvasRenderingContext2D::strokeRect):
        (WebCore::JSCanvasRenderingContext2D::drawImage):
        (WebCore::JSCanvasRenderingContext2D::drawImageFromRect):
        (WebCore::JSCanvasRenderingContext2D::setShadow):
        (WebCore::JSCanvasRenderingContext2D::createPattern):
        (WebCore::JSCanvasRenderingContext2D::putImageData):
        (WebCore::JSCanvasRenderingContext2D::fillText):
        (WebCore::JSCanvasRenderingContext2D::strokeText):
        * bindings/js/JSClipboardCustom.cpp:
        (WebCore::JSClipboard::clearData):
        (WebCore::JSClipboard::getData):
        (WebCore::JSClipboard::setData):
        (WebCore::JSClipboard::setDragImage):
        * bindings/js/JSDOMApplicationCacheCustom.cpp:
        (WebCore::JSDOMApplicationCache::hasItem):
        (WebCore::JSDOMApplicationCache::add):
        (WebCore::JSDOMApplicationCache::remove):
        (WebCore::JSDOMApplicationCache::addEventListener):
        (WebCore::JSDOMApplicationCache::removeEventListener):
        * bindings/js/JSDOMStringListCustom.cpp:
        (WebCore::JSDOMStringList::item):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::open):
        (WebCore::JSDOMWindow::showModalDialog):
        (WebCore::JSDOMWindow::postMessage):
        (WebCore::JSDOMWindow::setTimeout):
        (WebCore::JSDOMWindow::setInterval):
        (WebCore::JSDOMWindow::atob):
        (WebCore::JSDOMWindow::btoa):
        (WebCore::JSDOMWindow::addEventListener):
        (WebCore::JSDOMWindow::removeEventListener):
        * bindings/js/JSDatabaseCustom.cpp:
        (WebCore::JSDatabase::changeVersion):
        (WebCore::JSDatabase::transaction):
        * bindings/js/JSElementCustom.cpp:
        (WebCore::JSElement::setAttribute):
        (WebCore::JSElement::setAttributeNode):
        (WebCore::JSElement::setAttributeNS):
        (WebCore::JSElement::setAttributeNodeNS):
        * bindings/js/JSGeolocationCustom.cpp:
        (WebCore::JSGeolocation::getCurrentPosition):
        (WebCore::JSGeolocation::watchPosition):
        * bindings/js/JSHTMLCollectionCustom.cpp:
        (WebCore::callHTMLCollection):
        (WebCore::JSHTMLCollection::item):
        (WebCore::JSHTMLCollection::namedItem):
        * bindings/js/JSHTMLDocumentCustom.cpp:
        (WebCore::documentWrite):
        * bindings/js/JSHTMLInputElementCustom.cpp:
        (WebCore::JSHTMLInputElement::setSelectionRange):
        * bindings/js/JSHTMLOptionsCollectionCustom.cpp:
        (WebCore::JSHTMLOptionsCollection::add):
        * bindings/js/JSHTMLSelectElementCustom.cpp:
        (WebCore::JSHTMLSelectElement::remove):
        * bindings/js/JSImageConstructor.cpp:
        (WebCore::constructImage):
        * bindings/js/JSInspectorControllerCustom.cpp:
        (WebCore::JSInspectorController::highlightDOMNode):
        (WebCore::JSInspectorController::addResourceSourceToFrame):
        (WebCore::JSInspectorController::addSourceToFrame):
        (WebCore::JSInspectorController::getResourceDocumentNode):
        (WebCore::JSInspectorController::search):
        (WebCore::JSInspectorController::databaseTableNames):
        (WebCore::JSInspectorController::setting):
        (WebCore::JSInspectorController::setSetting):
        (WebCore::JSInspectorController::wrapCallback):
        * bindings/js/JSJavaScriptCallFrameCustom.cpp:
        (WebCore::JSJavaScriptCallFrame::evaluate):
        * bindings/js/JSLocationCustom.cpp:
        (WebCore::JSLocation::replace):
        (WebCore::JSLocation::assign):
        * bindings/js/JSMessagePortCustom.cpp:
        (WebCore::JSMessagePort::startConversation):
        (WebCore::JSMessagePort::addEventListener):
        (WebCore::JSMessagePort::removeEventListener):
        * bindings/js/JSNodeCustom.cpp:
        (WebCore::JSNode::insertBefore):
        (WebCore::JSNode::replaceChild):
        (WebCore::JSNode::removeChild):
        (WebCore::JSNode::appendChild):
        (WebCore::JSNode::addEventListener):
        (WebCore::JSNode::removeEventListener):
        * bindings/js/JSNodeFilterCustom.cpp:
        (WebCore::JSNodeFilter::acceptNode):
        * bindings/js/JSNodeListCustom.cpp:
        (WebCore::callNodeList):
        * bindings/js/JSOptionConstructor.cpp:
        (WebCore::constructHTMLOptionElement):
        * bindings/js/JSQuarantinedObjectWrapper.cpp:
        (WebCore::JSQuarantinedObjectWrapper::construct):
        (WebCore::JSQuarantinedObjectWrapper::call):
        * bindings/js/JSSQLResultSetRowListCustom.cpp:
        (WebCore::JSSQLResultSetRowList::item):
        * bindings/js/JSSQLTransactionCustom.cpp:
        (WebCore::JSSQLTransaction::executeSql):
        * bindings/js/JSSVGElementInstanceCustom.cpp:
        (WebCore::JSSVGElementInstance::addEventListener):
        (WebCore::JSSVGElementInstance::removeEventListener):
        * bindings/js/JSSVGLengthCustom.cpp:
        (WebCore::JSSVGLength::convertToSpecifiedUnits):
        * bindings/js/JSSVGMatrixCustom.cpp:
        (WebCore::JSSVGMatrix::rotateFromVector):
        * bindings/js/JSSVGPathSegListCustom.cpp:
        (WebCore::JSSVGPathSegList::initialize):
        (WebCore::JSSVGPathSegList::getItem):
        (WebCore::JSSVGPathSegList::insertItemBefore):
        (WebCore::JSSVGPathSegList::replaceItem):
        (WebCore::JSSVGPathSegList::removeItem):
        (WebCore::JSSVGPathSegList::appendItem):
        * bindings/js/JSSVGPointListCustom.cpp:
        (WebCore::JSSVGPointList::initialize):
        (WebCore::JSSVGPointList::getItem):
        (WebCore::JSSVGPointList::insertItemBefore):
        (WebCore::JSSVGPointList::replaceItem):
        (WebCore::JSSVGPointList::removeItem):
        (WebCore::JSSVGPointList::appendItem):
        * bindings/js/JSSVGTransformListCustom.cpp:
        (WebCore::JSSVGTransformList::initialize):
        (WebCore::JSSVGTransformList::getItem):
        (WebCore::JSSVGTransformList::insertItemBefore):
        (WebCore::JSSVGTransformList::replaceItem):
        (WebCore::JSSVGTransformList::removeItem):
        (WebCore::JSSVGTransformList::appendItem):
        * bindings/js/JSWebKitCSSMatrixConstructor.cpp:
        (WebCore::constructWebKitCSSMatrix):
        * bindings/js/JSWebKitPointConstructor.cpp:
        (WebCore::constructWebKitPoint):
        * bindings/js/JSWorkerConstructor.cpp:
        (WebCore::constructWorker):
        * bindings/js/JSWorkerContextCustom.cpp:
        (WebCore::JSWorkerContext::importScripts):
        (WebCore::JSWorkerContext::addEventListener):
        (WebCore::JSWorkerContext::removeEventListener):
        (WebCore::JSWorkerContext::setTimeout):
        (WebCore::JSWorkerContext::setInterval):
        * bindings/js/JSWorkerCustom.cpp:
        (WebCore::JSWorker::addEventListener):
        (WebCore::JSWorker::removeEventListener):
        * bindings/js/JSXMLHttpRequestCustom.cpp:
        (WebCore::JSXMLHttpRequest::open):
        (WebCore::JSXMLHttpRequest::setRequestHeader):
        (WebCore::JSXMLHttpRequest::send):
        (WebCore::JSXMLHttpRequest::getResponseHeader):
        (WebCore::JSXMLHttpRequest::overrideMimeType):
        (WebCore::JSXMLHttpRequest::addEventListener):
        (WebCore::JSXMLHttpRequest::removeEventListener):
        * bindings/js/JSXMLHttpRequestUploadCustom.cpp:
        (WebCore::JSXMLHttpRequestUpload::addEventListener):
        (WebCore::JSXMLHttpRequestUpload::removeEventListener):
        * bindings/js/JSXSLTProcessorCustom.cpp:
        (WebCore::JSXSLTProcessor::importStylesheet):
        (WebCore::JSXSLTProcessor::transformToFragment):
        (WebCore::JSXSLTProcessor::transformToDocument):
        (WebCore::JSXSLTProcessor::setParameter):
        (WebCore::JSXSLTProcessor::getParameter):
        (WebCore::JSXSLTProcessor::removeParameter):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::create):
        (WebCore::ScheduledAction::ScheduledAction):
        * bindings/js/ScheduledAction.h:
        * bindings/js/ScriptCallFrame.cpp:
        (WebCore::ScriptCallFrame::ScriptCallFrame):
        * bindings/js/ScriptCallFrame.h:
        * bindings/js/ScriptCallStack.cpp:
        (WebCore::ScriptCallStack::ScriptCallStack):
        (WebCore::ScriptCallStack::initialize):
        * bridge/c/c_instance.cpp:
        (JSC::Bindings::CInstance::invokeMethod):
        (JSC::Bindings::CInstance::invokeDefaultMethod):
        (JSC::Bindings::CInstance::invokeConstruct):
        * bridge/jni/jni_instance.cpp:
        (JavaInstance::invokeMethod):
        * bridge/objc/objc_instance.mm:
        (ObjcInstance::invokeMethod):
        (ObjcInstance::invokeDefaultMethod):

2009-04-28  David Carson  <dacarson@apple.com>

        Reviewed by David Hyatt.

        Restore alignment to device pixel boundaries.
        https://bugs.webkit.org/show_bug.cgi?id=25458

        Adjust the adjusted destination rect to be device pixel aligned.

        * platform/graphics/cg/ImageCG.cpp:
        (WebCore::BitmapImage::draw):

2009-04-28  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Move unimplemented captureEvents and releaseEvents from JSDOMWindow
        to DOMWindow.

        * bindings/js/JSDOMWindowCustom.cpp:
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::captureEvents):
        (WebCore::DOMWindow::releaseEvents):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2009-04-28  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25420
        <rdar://problem/6829570> REGRESSION: XMLHttpRequest allows loading from another origin

        Test: http/tests/xmlhttprequest/detaching-frame-2.html

        This was caused by faulty DOMWindow::document(), which could return a new document from
        the window's frame after navigation.

        * bindings/js/JSDOMWindowCustom.h: (WebCore::JSDOMWindowBase::allowsAccessFromPrivate):
        Removed an obsolete check that allowed access when document was null. Contrary to what a
        comment said, that can happen for a window that is no longer in frame, not to one whose
        document is not constructed yet.

        * bindings/js/JSXMLHttpRequestConstructor.cpp: (WebCore::constructXMLHttpRequest): Bail
        out if context was not found. This currently happens due to a shortcoming in
        DOMWindow::document() - when it is fixed, the XMLHttpRequest object in included regression
        test will be constructed successfully, but won't be sent, because its context will be
        frameless.

        * page/DOMWindow.cpp: (WebCore::DOMWindow::document): Check that the window in frame hasn't
        been replaced yet. Added FIXME comments about how this may be better fixed in the future.

        * bindings/js/JSAudioConstructor.cpp:
        (WebCore::JSAudioConstructor::document):
        (WebCore::constructAudio):
        * bindings/js/JSImageConstructor.cpp:
        (WebCore::JSImageConstructor::document):
        (WebCore::constructImage):
        * bindings/js/JSMessageChannelConstructor.cpp:
        (WebCore::JSMessageChannelConstructor::construct):
        * bindings/js/JSOptionConstructor.cpp:
        (WebCore::JSOptionConstructor::document):
        (WebCore::constructHTMLOptionElement):
        Make matching changes to other constructors that hold a reference to global object.

2009-04-28  Kevin Ollivier <kevino@theolliviers.com>

        wxMSW build fix. Switch JSCore build back to static.

        * config.h:

2009-04-28  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/6834830>

        Make sure we cover the two possible values reported by event.total that are playback engine
        specific.

        * media/progress-event-total-expected.txt: Match the new test.
        * media/progress-event-total.html: Test the two values.

2009-04-28  Timothy Hatcher  <timothy@apple.com>

        Rename -[DOMRange lineBoxRects] to -[DOMRange textRects] and change how it
        collects the individual rects, making sure to only include RenderText.

        <rdar://problem/6810061>

        Reviewed by Sam Weinig.

        * bindings/objc/DOM.mm:
        (-[DOMNode textRects]): Added. Make a Range and call textRects.
        (-[DOMNode lineBoxRects]): Call textRects method.
        (-[DOMRange textRects]): Call Range::textRects.
        (-[DOMRange lineBoxRects]): Call textRects method.
        * bindings/objc/DOMPrivate.h: Add the new methods and a comment
        about lineBoxRects being deprecated.
        * dom/Range.cpp:
        (WebCore::Range::boundingBox): Call textRects (renamed from addLineBoxRects).
        (WebCore::Range::textRects): Renamed from addLineBoxRects. Iterate over the
        nodes instead of the RenderObjects to correctly account for offsets. Also
        only call absoluteRectsForRange on RenderText.
        * dom/Range.h: Renamed addLineBoxRects to textRects.
        * page/Frame.cpp:
        (WebCore::Frame::selectionTextRects): Call textRects (renamed from addLineBoxRects).
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::absoluteRectsForRange): Remove if conditions that made this
        function very specific for the lineBoxRects API. These functions are still used
        by the InspectorController, and this change improves what the Inspector shows.
        (WebCore::RenderObject::absoluteQuadsForRange): Ditto.

2009-04-28  Timothy Hatcher  <timothy@apple.com>

        Remove the topLevel boolean argument from absolute{Rects,Quads}.
        This argument was default to true and no one ever passed false.

        Reviewed by Sam Weinig.

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::absoluteRects):
        (WebCore::RenderBlock::absoluteQuads):
        * rendering/RenderBlock.h:
        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::absoluteRects):
        (WebCore::RenderBox::absoluteQuads):
        * rendering/RenderBox.h:
        * rendering/RenderInline.cpp:
        (WebCore::RenderInline::absoluteRects):
        (WebCore::RenderInline::absoluteQuads):
        * rendering/RenderInline.h:
        * rendering/RenderObject.h:
        (WebCore::RenderObject::absoluteRects):
        (WebCore::RenderObject::absoluteQuads):
        * rendering/RenderSVGHiddenContainer.cpp:
        (WebCore::RenderSVGHiddenContainer::absoluteRects):
        (WebCore::RenderSVGHiddenContainer::absoluteQuads):
        * rendering/RenderSVGHiddenContainer.h:
        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::absoluteRects):
        (WebCore::RenderSVGImage::absoluteQuads):
        * rendering/RenderSVGImage.h:
        * rendering/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::absoluteRects):
        (WebCore::RenderSVGInlineText::absoluteQuads):
        * rendering/RenderSVGInlineText.h:
        * rendering/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::absoluteRects):
        (WebCore::RenderSVGModelObject::absoluteQuads):
        * rendering/RenderSVGModelObject.h:
        * rendering/RenderSVGTSpan.cpp:
        (WebCore::RenderSVGTSpan::absoluteRects):
        (WebCore::RenderSVGTSpan::absoluteQuads):
        * rendering/RenderSVGTSpan.h:
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::absoluteRects):
        (WebCore::RenderSVGText::absoluteQuads):
        * rendering/RenderSVGText.h:
        * rendering/RenderSVGTextPath.cpp:
        (WebCore::RenderSVGTextPath::absoluteQuads):
        * rendering/RenderSVGTextPath.h:
        * rendering/RenderText.cpp:
        (WebCore::RenderText::absoluteRects):
        * rendering/RenderText.h:
        * rendering/RenderView.cpp:
        (WebCore::RenderView::absoluteRects):
        (WebCore::RenderView::absoluteQuads):
        * rendering/RenderView.h:

2009-04-28  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Simon Fraser.

        <rdar://problem/6794691> Media documents and <video controls> never show controls on Windows

        RenderThemeWin doesn't implement the media element controller rendering methods, so media
        controls stopped rendering when we switched from RenderThemeSafari. Rather than having copies
        of the code in both places, the logic is in a new class that is called from both.

        * WebCore.vcproj/WebCore.vcproj: Add RenderMediaControls.cpp.

        * rendering/RenderMediaControls.cpp: Added.
        (WebCore::determineState): Translate renderer state to ThemeControlState.
        (WebCore::RenderMediaControls::adjustMediaSliderThumbSize): Adjust slider thumb.
        (WebCore::parentMediaElement): Return the HTMLMediaElement parent of a controller element.
        (WebCore::RenderMediaControls::paintMediaControlsPart): Paint a media controller part.
        * rendering/RenderMediaControls.h: Added.

        * rendering/RenderThemeSafari.cpp:
        (WebCore::RenderThemeSafari::paintSliderTrack): Remove the MediaSliderPart case, it is never
        called for the media slider.
        (WebCore::RenderThemeSafari::adjustSliderThumbSize): Call RenderMediaControls function.
        (WebCore::RenderThemeSafari::paintMediaFullscreenButton): Ditto.
        (WebCore::RenderThemeSafari::paintMediaMuteButton): Ditto.
        (WebCore::RenderThemeSafari::paintMediaPlayButton): Ditto.
        (WebCore::RenderThemeSafari::paintMediaSeekBackButton): Ditto.
        (WebCore::RenderThemeSafari::paintMediaSeekForwardButton): Ditto.
        (WebCore::RenderThemeSafari::paintMediaSliderTrack): Ditto.
        (WebCore::RenderThemeSafari::paintMediaSliderThumb): Ditto.

        * rendering/RenderThemeWin.cpp:
        (WebCore::RenderThemeWin::adjustSliderThumbSize): Ditto.
        (WebCore::RenderThemeWin::paintMediaFullscreenButton): Ditto.
        (WebCore::RenderThemeWin::paintMediaMuteButton): Ditto.
        (WebCore::RenderThemeWin::paintMediaPlayButton): Ditto.
        (WebCore::RenderThemeWin::paintMediaSeekBackButton): Ditto.
        (WebCore::RenderThemeWin::paintMediaSeekForwardButton): Ditto.
        (WebCore::RenderThemeWin::paintMediaSliderTrack): Ditto.
        (WebCore::RenderThemeWin::paintMediaSliderThumb): Ditto.
        * rendering/RenderThemeWin.h:

2009-04-28  Beth Dakin  <bdakin@apple.com>

        Reviewed by Sam Weinig.

        Fix for <rdar://problem/6419515> REGRESSION (r31037): Positioned 
        images with % height are collapsed when printing

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calcHeight): Make sure we don't ignore 
        printing here!

2009-04-28  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        Fix for <rdar://problem/6617298> Typing delete on an unquoted blank line unquotes the preceding, quoted blank line

        Test: editing/deleting/type-delete-after-quote.html

        When a selection is deleted that contains a whole number paragraphs plus a line break, we refrain from merging paragraphs after the delete,
        since it is unclear to most users that such a selection actually ends at the start of the next paragraph.  However, when a user hits delete 
        with a caret selection, they actually do expect the start of that paragraph to be merged into the paragraph before it.  We can tell that 
        we're in this state because the TypingCommand creates the selection to delete but it doesn't change the endingSelection.  So we can tell
        that if we started with a caret selection, then we're not in this special case where we have to protect the user from unexpected behavior 
        from deleting a range they selected.

        * editing/DeleteSelectionCommand.cpp: (WebCore::DeleteSelectionCommand::initializePositionData):

2009-04-28  Xan Lopez  <xlopez@igalia.com>

        Unreviewed: fix distcheck build, add missing header to file list.

        * GNUmakefile.am:

2009-04-27  Eric Seidel  <eric@webkit.org>

        Reviewed by Sam Weinig.

        Fix foreignObject transform order
        https://bugs.webkit.org/show_bug.cgi?id=25433

        Transforms were being applied in the wrong order.
        When mapping from local to parent, first apply the viewport transform
        then map from the viewport box to the parent box.

        * rendering/RenderForeignObject.cpp:
        (WebCore::RenderForeignObject::localToParentTransform):

2009-04-27  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Simplify nodeAtPoint for SVG
        https://bugs.webkit.org/show_bug.cgi?id=25432

        Added a new nodeAtFloatPoint method which takes a FloatPoint
        instead of the *super confusing* x/y tx/ty pairs that HTML uses.
        Mostly this is just lots of minus-lines as the new code is *much* simpler.

        I made all the SVG renderers use the new nodeAtFloatPoint and ASSERT_NOT_REACHED
        for the nodeAtPoint HTML/CSS int x/y version.

        Eventually the rest of CSS/HTML render objects will follow suit
        and move to nodeAtFloatPoint (possibly renamed back to nodeAtPoint), but changing them
        over was well outside the scope of this change.

        SVG hit testing is not actually floating point precise yet, since its still
        passed in an integer x/y.  Certain transform hit-test edge cases are likely fixed
        by moving to FloatPoint here, but I didn't try to find one.

        This should not cause functional changes for common-case hit testing, thus
        no tests changed, nor should new tests be needed.

        * rendering/RenderForeignObject.cpp:
        (WebCore::RenderForeignObject::translationForAttributes):
        (WebCore::RenderForeignObject::paint):
        (WebCore::RenderForeignObject::computeRectForRepaint):
        (WebCore::RenderForeignObject::localToParentTransform):
        (WebCore::RenderForeignObject::layout):
        (WebCore::RenderForeignObject::nodeAtFloatPoint):
        * rendering/RenderForeignObject.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::nodeAtFloatPoint):
        * rendering/RenderObject.h:
        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::nodeAtFloatPoint):
        * rendering/RenderPath.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::nodeAtFloatPoint):
        * rendering/RenderSVGContainer.h:
        (WebCore::RenderSVGContainer::pointIsInsideViewportClip):
        * rendering/RenderSVGHiddenContainer.cpp:
        (WebCore::RenderSVGHiddenContainer::nodeAtFloatPoint):
        * rendering/RenderSVGHiddenContainer.h:
        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::paint):
        (WebCore::RenderSVGImage::nodeAtFloatPoint):
        * rendering/RenderSVGImage.h:
        (WebCore::RenderSVGImage::localToParentTransform):
        (WebCore::RenderSVGImage::localTransform):
        * rendering/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::nodeAtFloatPoint):
        * rendering/RenderSVGModelObject.h:
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::nodeAtFloatPoint):
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::nodeAtFloatPoint):
        * rendering/RenderSVGText.h:
        * rendering/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::pointIsInsideViewportClip):
        * rendering/RenderSVGViewportContainer.h:

2009-04-28  Eric Carlson  <eric.carlson@apple.com>

        - fix the Tiger build

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::cacheMovieScale):

2009-04-28  Sam Weinig  <sam@webkit.org>

        Reviewed by Beth Dakin.

        Consolidate ScheduleAction creation into ScheduledAction::create.
        Autogenerate JSWorkerContext.clearTimeout and clearInterval.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::setTimeout):
        (WebCore::JSDOMWindow::setInterval):
        * bindings/js/JSWorkerContextCustom.cpp:
        (WebCore::JSWorkerContext::setTimeout):
        (WebCore::JSWorkerContext::setInterval):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::create):
        (WebCore::ScheduledAction::ScheduledAction):
        (WebCore::ScheduledAction::execute):
        * bindings/js/ScheduledAction.h:
        * workers/WorkerContext.cpp:
        (WebCore::DOMWindow::setTimeout):
        (WebCore::DOMWindow::clearTimeout):
        (WebCore::DOMWindow::setInterval):
        (WebCore::DOMWindow::clearInterval):
        * workers/WorkerContext.h:
        * workers/WorkerContext.idl:

2009-04-28  Brady Eidson  <beidson@apple.com>

        Reviewed by Darin Adler

        <rdar://problem/6643219> Crashes after moving nodes between documents with Safari 4 Beta installed

        When moving Nodes between documents we weren't properly updating style declarations.  Certain operations, such
        as creating webarchives, would tickle this bug.

        Tests: webarchive/adopt-attribute-styled-body-webarchive.html
               webarchive/adopt-attribute-styled-node-webarchive.html
               webarchive/adopt-inline-styled-node-webarchive.html

        * dom/Node.cpp:  Add a debug-only mechanism to insure that anyone who overrides (did/will)MoveToNewOwnerDocument
          calls their parent-class implementation after they've done their own work.
        (WebCore::setWillMoveToNewOwnerDocumentWasCalled): 
        (WebCore::setDidMoveToNewOwnerDocumentWasCalled):
        (WebCore::Node::setDocument):
        (WebCore::Node::willMoveToNewOwnerDocument):
        (WebCore::Node::didMoveToNewOwnerDocument):

        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged): Add a comment explaining why we don't need to walk the nameAttrMap
          to update style declarations.
        (WebCore::StyledElement::didMoveToNewOwnerDocument): Update the parent pointer for the inline style declaration.
        * dom/StyledElement.h:

        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::didMoveToNewOwnerDocument): Update the parent pointer for the link declaration.
        * html/HTMLBodyElement.h:

2009-04-28  Eric Carlson  <eric.carlson@apple.com>

         Reviewed by Darin Adler.
        
        <rdar://problem/6834876> Don't use BlockExceptions macros until QTKit supports 
        QTMoviePreferredTransformAttribute

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::cacheMovieScale): use @try and @catch instead of 
        BEGIN_BLOCK_OBJC_EXCEPTIONS and END_BLOCK_OBJC_EXCEPTIONS for builds of QTKit 
        that throw an exception on QTMovieCurrentSizeAttribute but don't support 
        QTMoviePreferredTransformAttribute

2009-04-28  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        * rendering/RenderText.cpp:
        (WebCore::RenderText::RenderText): Streamline code path to avoid a bit of reference count
        churn and remove a strange unneeeded PassRefPtr typecast. Also added a comment.
        (WebCore::RenderText::setTextInternal): Ditto.

2009-04-27  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Simplify how SVG containers paint
        https://bugs.webkit.org/show_bug.cgi?id=25431

        Moved filterBoundingBox() from RenderSVGModelObject to SVGRenderSupport to share with other classes.
        Gave RenderSVGText a modern clippedOverflowRectForRepaint and computeRectForRepaint.
        RenderSVGText now applies transforms at paint() time instead of during chunk draw time
        this should be much more efficient.

        Fixed the order in which RenderSVGViewportContainer applied
        transforms and clips.  We now clip to the viewport first and apply
        all transforms at once.  Also since the viewport logic is now only
        inside RenderSVGViewportContainer (instead of inside RenderSVGContainer)
        we always know we have a viewport.  We now use only viewportSize instead of
        viewport() since RenderSVGViewportContainers can't have x/y offsets.

        We now correctly transform the PaintInfo::rect (damage rect) when applying transforms.
        This allowed us to apply the transform during text paint() instead of at chunk paint
        time. Previously we had to apply the transform during chunk paint time because
        RenderBlock (superclass of RenderSVGBlock) would check intersection with the damageRect
        before telling any of the inlines to draw.  Now that we adjust the damage rect correctly
        we pass the intersection check correctly!  (This probably fixed some <text> redraw bugs
        but since I still have a bunch of those to fix, I've not tried to write additional tests
        to cover these potential fixes yet.)

        SVGRootInlineBox no longer needs to deal with transforms at chunk paint time, yay!

        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::repaintRectInLocalCoordinates):
        (WebCore::RenderPath::paint):
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::paint):
        (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
        * rendering/RenderSVGContainer.h:
        (WebCore::RenderSVGContainer::applyViewportClip):
        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::layout):
        (WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
        (WebCore::RenderSVGImage::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGImage::computeRectForRepaint):
        * rendering/RenderSVGImage.h:
        * rendering/RenderSVGModelObject.cpp:
        * rendering/RenderSVGModelObject.h:
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::layout):
        (WebCore::RenderSVGRoot::selfWillPaint):
        (WebCore::RenderSVGRoot::paint):
        (WebCore::RenderSVGRoot::viewportSize):
        (WebCore::RenderSVGRoot::calcViewport):
        (WebCore::RenderSVGRoot::localToBorderBoxTransform):
        (WebCore::RenderSVGRoot::parentOriginToBorderBox):
        (WebCore::RenderSVGRoot::borderOriginToContentBox):
        (WebCore::RenderSVGRoot::localToRepaintContainerTransform):
        (WebCore::RenderSVGRoot::localToParentTransform):
        (WebCore::RenderSVGRoot::computeRectForRepaint):
        (WebCore::RenderSVGRoot::nodeAtPoint):
        * rendering/RenderSVGRoot.h:
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGText::computeRectForRepaint):
        (WebCore::RenderSVGText::paint):
        (WebCore::RenderSVGText::repaintRectInLocalCoordinates):
        * rendering/RenderSVGText.h:
        (WebCore::RenderSVGText::localToParentTransform):
        (WebCore::RenderSVGText::localTransform):
        * rendering/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::applyViewportClip):
        * rendering/RenderSVGViewportContainer.h:
        * rendering/SVGRenderSupport.cpp:
        (WebCore::filterBoundingBoxForRenderer):
        (WebCore::applyTransformToPaintInfo):
        * rendering/SVGRenderSupport.h:
        * rendering/SVGRootInlineBox.cpp:
        (WebCore::SVGRootInlineBoxPaintWalker::chunkStartCallback):
        (WebCore::SVGRootInlineBox::paint):

2009-04-28  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 25453: AX: fall back to PLACEHOLDER attr if form element is not labeled
        https://bugs.webkit.org/show_bug.cgi?id=25453

        Test: accessibility/placeholder.html

        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::title):

2009-04-28  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 25452: AX: Don't create addition space AXStaticText element for every bold or link tag
        https://bugs.webkit.org/show_bug.cgi?id=25452

        Test: accessibility/ignore-spacer-elements.html

        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityIsIgnored):

2009-04-28  Mark Rowe  <mrowe@apple.com>

        Reviewed by Sam Weinig.

        Work around <rdar://problem/6833240> by relying on static initialization to zero the entire struct.
        This removes the need for us to explicitly initialize all of the members, which have a tendency
        to change in meaning and number between versions of libxml2.

        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::):
        (WebCore::sharedXHTMLEntity):
        (WebCore::getXHTMLEntity):

2009-04-28  Steve Falkenburg  <sfalken@apple.com>

        Fix linker warning by specifying /NODEFAULTLIB:LIBCMT for QTMovieWin.
        
        Reviewed by Mark Rowe.

        * WebCore.vcproj/QTMovieWin.vcproj:

2009-04-28  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 25449: AX: Respect the alt tag of ARIA button as AXDescription
        https://bugs.webkit.org/show_bug.cgi?id=25449

        Test: accessibility/img-aria-button-alt-tag.html

        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::accessibilityDescription):

2009-04-28  Dan Bernstein  <mitz@apple.com>

        Reviewed by John Sullivan.

        - formatting cleanup

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::calcHeight): Corrected indentation and added braces
        around a multi-line "else" clause.

2009-04-28  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Adam Roben
        
        <rdar://problem/6769968> media/video-size-intrinsic-scale.html fails on Windows
        https://bugs.webkit.org/show_bug.cgi?id=25094
        
        Display movies saved with a non-identity matrix at the correct size.

        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWinPrivate::QTMovieWinPrivate): Initialize m_widthScaleFactor and m_heightScaleFactor.
        (QTMovieWinPrivate::cacheMovieScale): New, calculate difference between initial
        size and natural size so naturalSize() accounts for non-identity movie matrix.
        (QTMovieWinPrivate::task):Call cacheMovieScale when load state reaches
        kMovieLoadStateLoaded for the first time. kMovieLoadState -> QTMovieLoadState.
        (QTMovieWinPrivate::drawingComplete): kMovieLoadState -> QTMovieLoadState.
        (QTMovieWinPrivate::createGWorld): Don't bother creating gworld until load state reaches
        kMovieLoadStateLoaded because we do not try to draw it before that point.
        (QTMovieWinPrivate::setSize): Do not change movie box before reaching kMovieLoadStateLoaded
        because we need to get the movie's initial size in cacheMovieScale.
        (QTMovieWin::getNaturalSize): Multiply width and height by initial scale.

2009-04-28  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Move timer code from JSDOMWindow to DOMWindow. clearTimeout and
        clearInterval can now be autogenerated.

        * bindings/js/JSDOMWindowBase.cpp:
        * bindings/js/JSDOMWindowBase.h:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::createScheduledAction):
        (WebCore::JSDOMWindow::setTimeout):
        (WebCore::JSDOMWindow::setInterval):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::setTimeout):
        (WebCore::DOMWindow::clearTimeout):
        (WebCore::DOMWindow::setInterval):
        (WebCore::DOMWindow::clearInterval):
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2009-04-28  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        Small optimization, don't get the widget's handle twice in one method.
        
        https://bugs.webkit.org/show_bug.cgi?id=25446

        * platform/wx/WidgetWx.cpp:
        (WebCore::Widget::setFocus):
        (WebCore::Widget::show):
        (WebCore::Widget::hide):
        (WebCore::Widget::frameRect):
        (WebCore::Widget::setFrameRect):
        (WebCore::Widget::invalidateRect):
        (WebCore::Widget::paint):

2009-04-28  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        ScrollView copy and paste typo fix.
        
        https://bugs.webkit.org/show_bug.cgi?id=25445

        * platform/wx/ScrollViewWx.cpp:
        (WebCore::ScrollView::platformSetScrollbarModes):

2009-04-28  John Sullivan  <sullivan@apple.com>

        <rdar://problem/6820221> REGRESSION: 2-byte character names of images are displayed as %-encoded ASCII

        Reviewed by Adam Roben

        * loader/ImageDocument.cpp:
        (WebCore::ImageTokenizer::finish):
        decode the filename before processing it as part of the image name that's passed to the client

2009-04-28  Maciej Stachowiak  <mjs@apple.com>

        Not reviewed, build fix.

        - fix initialization order to match declaration order to fix release build

        * page/Settings.cpp:
        (WebCore::Settings::Settings):

2009-04-28  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Justin Garcia.

        https://bugs.webkit.org/show_bug.cgi?id=16135
        [GTK] Support caret browsing

        Based on a patch by Alp Toker.

        Implement basic support for caret browsing, active only when the
        corresponding setting is enabled.

        * page/EventHandler.cpp:
        (WebCore::EventHandler::handleMouseReleaseEvent):
        * page/FocusController.cpp:
        (WebCore::FocusController::advanceFocus):
        (WebCore::clearSelectionIfNeeded):
        (WebCore::FocusController::setFocusedNode):
        * page/Frame.cpp:
        (WebCore::Frame::setFocusedNodeIfNeeded):
        (WebCore::Frame::setSelectionFromNone):
        (WebCore::Frame::respondToChangedSelection):
        * page/Settings.cpp:
        (WebCore::Settings::Settings):
        * page/Settings.h:
        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::paintCaret):

2009-04-27  Eric Roman  <eroman@chromium.org>

        Reviewed by Darin Fisher.

        Fix a compile breakage.
        <https://bugs.webkit.org/show_bug.cgi?id=25384>

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::CALLBACK_FUNC_DECL):

2009-04-27  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6822344> Use of QTMovieCurrentSizeAttribute generates exception and will crash

        QTMovieCurrentSizeAttribute generates an exception with some versions of QTKit, so calculate a 
        multiplier to scale from natural size to current size when a movie is opened and use that to 
        return the correct value from the naturalSize() method.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.h:
        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_scaleFactor.
        (WebCore::MediaPlayerPrivate::naturalSize): Return naturalSize transformed by initial scale.
        (WebCore::MediaPlayerPrivate::cacheMovieScale): New, calculate difference between initial
        size and natural size so naturalSize() accounts for non-identity movie matrix.
        (WebCore::MediaPlayerPrivate::updateStates): Call cacheMovieScale when load state reaches
        QTMovieLoadStateLoaded for the first time.

2009-04-27  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dave Hyatt.

        Fix for <rdar://problem/6709057> REGRESSION (4PB-TOT): http://www.winway.com/main3/support/faq.aspx selector doesn't look right or work

        The problem here is that we had a self-painting layer nested inside 
        a non-self-painting layer. We ended up ignoring the self-painting 
        layer both during painting and hit-testing. This patch corrects 
        that. 

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paintLayer):
        (WebCore::RenderLayer::hitTestLayer):

2009-04-27  Ada Chan  <adachan@apple.com>

        If it has been set to allow any HTTPS certificates for this host, set 
        kCFStreamSSLAllowsExpiredCertificates to true to allow expired 
        certificate, and set kCFStreamSSLValidatesCertificateChain false to skip
        certificate chain validation. (<rdar://problem/6382059>)

        Reviewed by John Sullivan.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::makeFinalRequest):

2009-04-27  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Adele Peterson
        
        <rdar://problem/6822225> Full page zooming of <video> element in the browser window doesn't work well
        
        Fix a 'size changed' notification thrash that caused standalone video elements
        to continually resize after full page zooming, by using the movie's natual size (which is independent
        of zooming), rather than its current size (which is not).
        
        Note that this regresses <https://bugs.webkit.org/show_bug.cgi?id=25029>, so we have to
        disable the media/video-size-intrinsic-scale.html test. However, we have to stop using
        QTMovieCurrentSizeAttribute anyway; this will be addressed, and the test re-enabled via
        <rdar://problem/6822344>.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::naturalSize):

2009-04-27  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler

        <rdar://problem/6642221> REGRESSION: With the Movie widget, movie trailer fails to
        load if movie had been previously viewed
        
        Fix the Dashboard quirk for display:none plug-ins by moving the code from HTMLObjectElement
        to HTMLEmebedElement. It has to be in HTMLEmbedElement because the content we care about uses <embed>.

        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::rendererIsNeeded):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::rendererIsNeeded):

2009-04-27  Sam Weinig  <sam@webkit.org>

        Reviewed by Geoffrey Garen.

        Move more window event related code into DOMWindow.

        * dom/Document.cpp:
        (WebCore::Document::implicitClose):
        (WebCore::Document::setWindowAttributeEventListener):
        (WebCore::Document::dispatchWindowEvent):
        (WebCore::Document::dispatchLoadEvent):
        * dom/Document.h:
        * dom/Element.cpp:
        * dom/Element.h:
        * dom/Node.cpp:
        * dom/Node.h:
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::parseMappedAttribute):
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::parseMappedAttribute):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::dispatchAllPendingUnloadEvents):
        (WebCore::DOMWindow::postMessageTimerFired):
        (WebCore::DOMWindow::dispatchEvent):
        (WebCore::DOMWindow::dispatchEventWithDocumentAsTarget):
        (WebCore::DOMWindow::dispatchLoadEvent):
        (WebCore::DOMWindow::dispatchUnloadEvent):
        (WebCore::DOMWindow::dispatchBeforeUnloadEvent):
        * page/DOMWindow.h:
        * page/Frame.cpp:
        (WebCore::Frame::shouldClose):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::parseMappedAttribute):

2009-04-27  Douglas R. Davidson  <ddavidso@apple.com>

        Implement the editing mechanisms and add context menu items for
        <rdar://problem/6724106> WebViews need to implement text checking

        Reviewed by Justin Garcia.

        * editing/Editor.cpp:
        * editing/Editor.h:
        * editing/TypingCommand.cpp:
        * loader/EmptyClients.h:
        * page/ContextMenuController.cpp:
        * page/EditorClient.h:
        * page/mac/WebCoreViewFactory.h:
        * platform/ContextMenu.cpp:
        * platform/ContextMenuItem.h:
        * platform/LocalizedStrings.h:
        * platform/mac/LocalizedStringsMac.mm:

2009-04-27  Sam Weinig  <sam@webkit.org>

        Reviewed by Geoffrey Garen.

        Fix for <rdar://problem/6772944> REGRESSION (r42223): PLT 2% slower, i-Bench 3% slower

        Be slightly less eager in collecting after page close/navigation by increasing
        the time before collection from 0 seconds to .5 seconds.

        3% speedup on the PLT.

        * bindings/js/GCController.cpp:
        (WebCore::GCController::garbageCollectSoon):

2009-04-27  David Kilzer  <ddkilzer@apple.com>

        Consolidate runtime application checks for Apple Mail and Safari

        Reviewed by Mark Rowe and Darin Adler.

        * WebCore.base.exp: Added exports.
        * WebCore.xcodeproj/project.pbxproj: Added
        RuntimeApplicationChecks.{h|mm} source files to the project.
        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::needsKeyboardEventDisambiguationQuirks):
        Removed local checkedSafari and isSafari variables and switched
        to use applicationIsSafari().
        * platform/mac/RuntimeApplicationChecks.h: Added.
        * platform/mac/RuntimeApplicationChecks.mm: Added.
        (WebCore::applicationIsAppleMail): Runtime application check for
        Apple Mail.
        (WebCore::applicationIsSafari): Runtime application check for
        Safari.

2009-04-27  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 25374: AX: No AXValue change sent when text is auto-inserted
        https://bugs.webkit.org/show_bug.cgi?id=25374

        First patch caused some regression tests to fail. 

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::setInnerTextValue):

2009-04-16  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=21546
        [GTK] ATK accessibility enhancements

        Based on a patch by Alp Toker.

        Cover more WebCore role -> ATK role conversions.

        * page/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-04-18  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=21546
        [GTK] ATK accessibility enhancements

        Do not call ATK setters in the getters, just return the
        value. Among other things calling the setter will emit the notify
        signal, which is wrong.

        * page/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-04-16  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=21546
        [GTK] ATK accessibility enhancements

        Based on a patch by Alp Toker.

        Implement AtkImage interface.

        * page/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-04-27  Gustavo Noronha Silva  <gns@gnome.org>

        Unreviewed debug build fix.

        * platform/gtk/gtk2drawing.c:
        (moz_gtk_toggle_paint):

2009-04-27  Dimitri Glazkov  <dglazkov@chromium.org>

        Build fix.

        https://bugs.webkit.org/show_bug.cgi?id=25382
        Remove direct reference to CallFrame.h include to pacify Win build.

        * bindings/js/JSDOMBinding.h: Removed ScriptState.h include.
        * bindings/js/ScriptState.h: Replaced CallFrame.h with JSDOMBinding.h

2009-04-27  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Bug 25374: AX: No AXValue change sent when text is auto-inserted
        https://bugs.webkit.org/show_bug.cgi?id=25374

        When an input's text value is changed through the DOM, no AXValueChange notification is being sent.

        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::setInnerTextValue):

2009-04-27  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25382
        Move scriptStateFromNode to ScriptState.

        * bindings/js/JSDOMBinding.cpp: Moved scriptStateFromNode to ScriptState.
        * bindings/js/JSDOMBinding.h: Ditto.
        * bindings/js/ScriptState.cpp:
        (WebCore::scriptStateFromNode): Added.
        * bindings/js/ScriptState.h: Ditto.
        * bindings/v8/ScriptState.cpp:
        (WebCore::scriptStateFromNode): Added.
        * bindings/v8/ScriptState.h: Ditto.
        * dom/NodeFilter.h: Removed JSDOMBinding header include.
        * dom/NodeIterator.h: Ditto.
        * dom/TreeWalker.h: Ditto.

2009-04-27  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Beth Dakin.

        Bug 25428: 5 crashes in DumpRenderTree at com.apple.WebCore • -[AccessibilityObjectWrapper accessibilityAttributeValue:] + 830
        https://bugs.webkit.org/show_bug.cgi?id=25428

        When marking children as changed in accessibility, we cannot rely on the accessibility parent chain existing.
        Instead, the render chain needs to be consulted.

        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::childrenChanged):

2009-04-27  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25399
        <rdar://problem/6633943> REGRESSION: Many crashes reported accessing Lexis/Nexis database,
        beneath WebCore::Cache::evict

        The crash happened because a cached resource handle was removed from a document's cached
        resources map twice recursively, so a destructor was called for a value in a deleted bucket.
        The first call was from Cache::evict, and when destroying CachedResourceHandle destroyed
        CachedResource, DocLoader::removeCachedResource() was called again, with HashMap being in
        an inconsistent state.

        I couldn't fully reconstruct the loading sequence to make a test.

        * loader/Cache.cpp:
        (WebCore::Cache::revalidateResource): Assert that the resource being revalidated is in cache
        (it makes no sense to revalidate one that isn't).
        (WebCore::Cache::evict): Don't remove the resource from document's map. Removing a resource
        from the cache in no way implies that documents no longer use the old version. This fixes the
        crash, and also fixes many cases of resource content being unavailable in Web Inspector.

        * loader/CachedResource.h:
        (WebCore::CachedResource::setInCache): When bringing a revalidated resource back to cache,
        reset m_isBeingRevalidated to maintain the invariant of resources being revalidated never
        being in cache. This fixes another assertion I saw on LexisNexis search: in rare cases,
        switchClientsToRevalidatedResource() results in the same resource being requested again,
        but we were only enforcing CachedResource invariants after calling this function.
        (WebCore::CachedResource::unregisterHandle): Assert that the counter doesn't underflow.

        * loader/DocLoader.cpp: (WebCore::DocLoader::removeCachedResource): Assert that the passed
        resource is removed, not some other resource that happens to have the same URL (this used to
        fail on LexisNexis search before this patch).

        * loader/ImageDocument.cpp: (WebCore::ImageTokenizer::write): Replaced ASSERT_NOT_REACHED
        with notImplemented(). This method can be legally called via document.write(), and should
        work. LexisNexis takes this code path, but apparently has a fallback for Safari, so it
        doesn't affect site functionality.

        * loader/CachedResource.cpp:
        (WebCore::CachedResource::clearResourceToRevalidate): Don't assert that m_resourceToRevalidate
        is being revalidated - this may no longer be true, because we now reset this member in
        CachedResource::setInCache().

2009-04-27  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - make BidiContext a RefCounted class, starting with a refcount of 1,
          and share the root BidiContexts.

        * platform/graphics/GraphicsContext.cpp:
        (WebCore::GraphicsContext::drawBidiText): Use BidiContext::create().
        * platform/text/BidiContext.cpp:
        (WebCore::BidiContext::create): Added. For the four "root" contexts,
        returns a reference to a shared static BidiContext.
        * platform/text/BidiContext.h:
        (WebCore::BidiContext::BidiContext):
        * platform/text/BidiResolver.h:
        (WebCore::::commitExplicitEmbedding): Use BidiContext::create().
        * rendering/bidi.cpp:
        (WebCore::RenderBlock::determineStartPosition): Ditto.

2009-04-27  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Rubber-stamped by Gustavo Noronha.

        Build fix for r42893: change GDK_exclaim to GDK_exclam

        * platform/chromium/KeyCodeConversionGtk.cpp:
        (WebCore::windowsKeyCodeForKeyEvent):
        * platform/gtk/KeyEventGtk.cpp:
        (WebCore::windowsKeyCodeForKeyEvent):

2009-04-27  Fumitoshi Ukai  <ukai@google.com>

        Reviewed by Xan Lopez.

        Fix wrong key code conversion.

        Missing conversion for GDK_exlaim ('!').
        Parens are opposite: GDK_parenleft is open paren '('
        and GDK_parenright is close paren ')'.
        https://bugs.webkit.org/show_bug.cgi?id=25367

        * platform/chromium/KeyCodeConversionGtk.cpp:
        (WebCore::windowsKeyCodeForKeyEvent):
        * platform/gtk/KeyEventGtk.cpp:
        (WebCore::windowsKeyCodeForKeyEvent):

2009-04-27  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Gustavo Noronha.

        [Gtk] gtkdrawing update
        https://bugs.webkit.org/show_bug.cgi?id=25408

        Update to the 25 Apr 2009 version of gtk2drawing.c and
        gtkdrawing.h from Mozilla (http://hg.mozilla.org/mozilla-central)

        * platform/gtk/gtk2drawing.c:
        (setup_widget_prototype):
        (moz_gtk_get_combo_box_entry_arrow):
        (ensure_toolbar_widget):
        (ensure_tree_header_cell_widget):
        (moz_gtk_init):
        (moz_gtk_button_get_inner_border):
        (moz_gtk_toggle_paint):
        (moz_gtk_caret_paint):
        (moz_gtk_entry_paint):
        (moz_gtk_tree_header_cell_paint):
        (moz_gtk_combo_box_paint):
        (moz_gtk_toolbar_separator_paint):
        (moz_gtk_menu_separator_paint):
        (moz_gtk_get_widget_border):
        (moz_gtk_get_tab_scroll_arrow_size):
        (moz_gtk_get_toolbar_separator_width):
        (moz_gtk_get_menu_separator_height):
        (moz_gtk_widget_paint):
        (moz_gtk_shutdown):
        * platform/gtk/gtkdrawing.h:

2009-04-27  Ariya Hidayat  <ariya.hidayat@nokia.com>

        Reviewed by Tor Arne Vestbø.

        https://bugs.webkit.org/show_bug.cgi?id=18475

        [Qt] Widget painting should follow the layout direction (LTR, RTL)
        of the element style, not the application layout direction.

        * platform/qt/RenderThemeQt.cpp:
        (WebCore::RenderThemeQt::applyTheme):

2009-04-26  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=25412
        The Window object should be an EventTarget

        Test: fast/dom/Window/dispatchEvent.html

        * bindings/js/JSEventTarget.cpp:
        (WebCore::toJS): Add DOMWindow case.
        (WebCore::toEventTarget): Ditto.

        * dom/EventTarget.cpp:
        (WebCore::EventTarget::toDOMWindow): Added.
        * dom/EventTarget.h:

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::scriptExecutionContext): Added. Returns the document.
        (WebCore::DOMWindow::dispatchEvent): Added.
        * page/DOMWindow.h:
        (WebCore::DOMWindow::toDOMWindow):
        (WebCore::DOMWindow::refEventTarget):
        (WebCore::DOMWindow::derefEventTarget):
        * page/DOMWindow.idl:

2009-04-26  Sam Weinig  <sam@webkit.org>

        Reviewed by Eric Seidel.

        Remove scons-based build system.

        * WebCore.scons: Removed.

2009-04-26  Darin Adler  <darin@apple.com>

        Suggested by Darin Fisher.

        Improve the fix for bug 25355: Crash when Creating New Tab or New Window when set to open Same Page
        https://bugs.webkit.org/show_bug.cgi?id=25355
        rdar://problem/6823543

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadItem): Allow shouldScroll to be true even if m_currentHistoryItem is 0.
        Not sure if when this case can really arise in practice, but it's good to match the original
        logic more closely.

2009-04-25  Dirk Schulze  <krit@webkit.org>

        Reviewed by Oliver Hunt.

        A width or height of zero for the destination or source rect of an
        image causes a not invertible pattern matrix.
        This crahes newer versions of Cairo and give some graphic gliches in
        Canvas.
        With this patch we check if there is something to draw and return if not.

        * platform/graphics/cairo/ImageCairo.cpp:
        (WebCore::BitmapImage::draw):

2009-04-25  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler
        
        https://bugs.webkit.org/show_bug.cgi?id=25390
        
        Fix point mapping and hit testing through transforms and perspective
        with ENABLE_3D_RENDERING. Previously the code did the more efficient
        move(), rather than getTransformFromContainer(), when the object had
        no transform. However, this skipped the application of perspective
        when the immediate child of the perspective element had no transform
        itself.

        Test: transforms/3d/point-mapping/3d-point-mapping-3.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::mapLocalToContainer):
        (WebCore::RenderBox::mapAbsoluteToLocalPoint):
        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::createLocalTransformState):
        Call shouldUseTransformFromContainer() to determine if we need to
        go through the more expensive getTransformFromContainer() code
        path.

        * rendering/RenderObject.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::shouldUseTransformFromContainer):
        New method that indicates whether we need use getTransformFromContainer()
        when mapping points through renderers, and hit testing.

2009-04-25  Adele Peterson  <adele@apple.com>

        Reviewed by Oliver Hunt.

        Fix for <rdar://problem/6712771> REGRESSION(34681): Text is no longer underlined after delete
        https://bugs.webkit.org/show_bug.cgi?id=25396

        Test: editing/deleting/delete-br-013.html

        * editing/CompositeEditCommand.cpp: (WebCore::CompositeEditCommand::moveParagraphs):
         Only preserve an empty paragraph's style when moving paragraphs around if the selection is still 
         in an empty paragraph after the move occurs.  This was causing the empty paragraph's style to overwrite
         the previous paragraph's style during a delete of an empty paragraph.

2009-04-25  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6808171> REGRESSION (3-4): Standalone media documents don't 
        properly display non-linear media

        If a media engine claims it can support the MIME type, WebCore now creates a <video>
        element for document mode media files instead of an <embed> element. Because WebCore's 
        QuickTime backed media players do not support every kind of media the QuickTime plug-in
        supports, and because it is not always possible to tell what type of media is in a file 
        without opening and parsing it, some types of media that used to be displayed properly
        by a plug-in are no longer supported properly. To fix this, if the media engine
        sees that it can not completely support a media file it now informs the media 
        document, which replaces the <video> element with an <embed>.
        
        r42301 landed support for OSX. This patch modifies those changes slighly and adds support
        for Windows.

        * loader/MediaDocument.cpp:
        (WebCore::MediaDocument::MediaDocument): Initialize m_replaceMediaElementTimer.
        (WebCore::MediaDocument::mediaElementSawUnsupportedTracks): Don't replace the <video> 
        element immediately.
        (WebCore::MediaDocument::replaceMediaElementTimerFired): Renamed from replaceVideoWithEmbed.
        Set body margin-width and margin-height to 0 as that is what a PluginDocument uses.
        * loader/MediaDocument.h:

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::loadStateChanged): Don't do anything if m_hasUnsupportedTracks.
        (WebCore::MediaPlayerPrivate::rateChanged): Ditto.
        (WebCore::MediaPlayerPrivate::timeChanged): Ditto.
        (WebCore::MediaPlayerPrivate::didEnd): Ditto.
        (WebCore::MediaPlayerPrivate::repaint): Ditto.
        (WebCore::MediaPlayerPrivate::paint): Ditto.
        (WebCore::MediaPlayerPrivate::sawUnsupportedTracks): Set m_hasUnsupportedTracks before callback.

        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.cpp:
        (WebCore::MediaPlayerPrivate::MediaPlayerPrivate): Initialize m_totalTrackCount and m_hasUnsupportedTracks.
        (WebCore::MediaPlayerPrivate::updateStates): Call sawUnsupportedTracks if the movie has unsupported
        media type(s) or if it fails completely.
        (WebCore::MediaPlayerPrivate::sawUnsupportedTracks): New, disable the movie object and tell the
        media player client we won't play this movie correctly.
        (WebCore::MediaPlayerPrivate::didEnd): Don't do anything if m_hasUnsupportedTracks.
        (WebCore::MediaPlayerPrivate::setSize): Ditto.
        (WebCore::MediaPlayerPrivate::setVisible): Ditto.
        (WebCore::MediaPlayerPrivate::paint): Ditto.
        (WebCore::MediaPlayerPrivate::movieEnded): Ditto.
        (WebCore::MediaPlayerPrivate::movieLoadStateChanged): Ditto.
        (WebCore::MediaPlayerPrivate::movieTimeChanged): Ditto.
        (WebCore::MediaPlayerPrivate::movieNewImageAvailable): Ditto.
        * platform/graphics/win/MediaPlayerPrivateQuickTimeWin.h:

        * platform/graphics/win/QTMovieWin.cpp:
        (QTMovieWinPrivate::task): Stop the task timer if we were disabled during the load state
        change callback.
        (QTMovieWinPrivate::drawingComplete): Don't do anything if disabled.
        (QTMovieWin::QTMovieWin): Initialize m_disabled.
        (QTMovieWin::disableUnsupportedTracks): Return total number of tracks.
        (QTMovieWin::setDisabled): New, set m_disabled flag.
        * platform/graphics/win/QTMovieWin.h:

2009-04-25  Jan Michael Alonzo  <jmalonzo@webkit.org>

        Reviewed by Xan Lopez.

        [GTK] Error reporting
        https://bugs.webkit.org/show_bug.cgi?id=18344

        Fix the SOUP resource handle to report SOUP_HTTP_ERROR for Soup
        errors and G_IO_ERROR for gio errors.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::finishedCallback):
        (WebCore::ResourceHandle::startHttp):
        (WebCore::ResourceHandle::start):
        (WebCore::readCallback):
        (WebCore::openCallback):
        (WebCore::queryInfoCallback):
        (WebCore::ResourceHandle::startGio):

2009-04-25  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Mark Rowe.

        Only set the new URL once for the request. Doing it a second time
        after the call to willSendRequest was causing crashes when
        redirected requests got cancelled.

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::restartedCallback):

2009-04-24  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix. Adding ScriptEventListener.cpp.

        * WebCoreSources.bkl:

2009-04-24  Sergio García-Cuevas  <sergio_gcg@telefonica.net>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=17267
        [GTK] Primary selection/clipboard support

        Copy the link location to the primary selection as well as the
        clipboard selection when using the "copy link selection" context
        menu entry.

        * platform/gtk/PasteboardGtk.cpp:
        (WebCore::Pasteboard::writeURL):
        * platform/gtk/PasteboardHelper.h:

2009-04-24  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=25383
        Changing SVG size via JS does not update CSS width/height

        Add an ugly hack to fix CSS width/height updates from JS.

        We can't easily call setAttribute when width/height changes
        as that would cause infinite recursion (as we'd try to set
        the animation storage from the attributes)

        For now, when we get notification that JS changed width/height
        we copy what parseMappedAttribute does and update the CSS values as well.

        A better fix for this would be:
        https://bugs.webkit.org/show_bug.cgi?id=25383

        * svg/SVGSVGElement.cpp:
        (WebCore::updateCSSForAttribute):
        (WebCore::SVGSVGElement::svgAttributeChanged):

2009-04-24  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Dan Bernstein.

        We should not show the deletion UI for blockquotes in mail but they do 
        show now that we only check for one visible border.

        * editing/DeleteButtonController.cpp:
        (WebCore::isDeletableElement):

2009-04-24  Dan Bernstein  <mitz@apple.com>

        - address Hyatt's review comments on the last patch

        * rendering/RenderLayer.cpp:
        (WebCore::performOverlapTests):
        (WebCore::RenderLayer::paintLayer):

2009-04-24  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix https://bugs.webkit.org/show_bug.cgi?id=5909
          <rdar://problem/5863349> overlapping element leaves trail when
          scrolling iframe

        * WebCore.xcodeproj/project.pbxproj: Added OverlapTestRequestClient.h.

        * page/FrameView.cpp:
        (WebCore::FrameView::reset): Initialize m_isOverlapped.
        (WebCore::FrameView::useSlowRepaints): Also check m_isOverlapped.
        (WebCore::FrameView::removeSlowRepaintObject): Use useSlowRepaints()
        so overlapping is taken into account.
        (WebCore::FrameView::setIsOverlapped): Added. Sets m_isOverlapped and
        enables or disables copy-on-scroll accordingly.

        * page/FrameView.h:
        Added setIsOverlapped() and m_isOverlapped.

        * rendering/OverlapTestRequestClient.h: Added. During foreground painting,
        an OverlapTestRequestClient can make a request to test if any subsequently-
        painted layers overlap a rect. The test result is delivered to the
        requestClient via setOverlapTestResult().
        (WebCore::OverlapTestRequestClient::~OverlapTestRequestClient):

        * rendering/RenderLayer.cpp:
        (WebCore::RenderLayer::paint): Pass an OverlapTestRequestMap to
        paintLayer(). When done painting, inform any remaining requestClients that
        they are not overlapped.

        (WebCore::RenderLayer::paintLayer): Take an OverlapTestRequestMap and
        pass it down to child and reflection layers. Inform requestClients if this
        layer overlaps their requested rects.

        * rendering/RenderLayer.h:

        * rendering/RenderObject.h:
        (WebCore::RenderObject::PaintInfo::PaintInfo): Added an
        OverlapTestRequestMap member.

        * rendering/RenderReplica.cpp:
        (WebCore::RenderReplica::paint): For now, pass a 0 OverlapTestRequestMap
        to paintLayer().

        * rendering/RenderWidget.cpp:
        (WebCore::RenderWidget::paint): For FrameViews, request an overlap test
        with the frame.
        (WebCore::RenderWidget::setOverlapTestResult): Call
        FrameView::setIsOverlapped() with the result of the overlap test.

        * rendering/RenderWidget.h: Made RenderWidget an OverlapTestRequestClient.

2009-04-24  David Hyatt  <hyatt@apple.com>

        Reviewed by Simon Fraser, Dan Bernstein.

        Speed up the PLT by devirtualizing the height() function on InlineBox.  virtualizing it in order to make the height() computation dynamic caused
        a ~0.5% slowdown.  This patch does the following to get the speed back:
        
        (a) Devirtualizes isText and forces inline box creators to set the bit as needed.  This actually resulted in simplified code, since ListMarkerBox could
        then be removed.
        (b) Reduces the height() call count.  In some cases the code was repeatedly calling height(), which used to be fine when the function was just an inline
        member variable access.  The call sites have been patched to cut down on extra height() calls now that it is more expensive.
        (c) Devirtualize height() except on SVG boxes.  For all non-SVG, the height() function on InlineBox handles the computation.  For SVG boxes, a new bit has
        been set on InlineBoxes (isSVG()) that indicates that the virtual svgBoxHeight() function should be called to retrieve the height instead.

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * WebCoreSources.bkl:
        * rendering/InlineBox.cpp:
        (WebCore::InlineBox::height):
        * rendering/InlineBox.h:
        (WebCore::InlineBox::InlineBox):
        (WebCore::InlineBox::isSVG):
        (WebCore::InlineBox::setIsSVG):
        (WebCore::InlineBox::isText):
        (WebCore::InlineBox::setIsText):
        (WebCore::InlineBox::svgBoxHeight):
        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::placeBoxesVertically):
        (WebCore::InlineFlowBox::paintBoxDecorations):
        (WebCore::InlineFlowBox::paintMask):
        * rendering/InlineFlowBox.h:
        * rendering/InlineTextBox.cpp:
        * rendering/InlineTextBox.h:
        * rendering/ListMarkerBox.cpp: Removed.
        * rendering/ListMarkerBox.h: Removed.
        * rendering/RenderListMarker.cpp:
        (WebCore::RenderListMarker::createInlineBox):
        * rendering/RenderSVGInline.cpp:
        (WebCore::RenderSVGInline::createFlowBox):
        * rendering/RenderSVGInlineText.cpp:
        (WebCore::RenderSVGInlineText::createTextBox):
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::createRootBox):
        * rendering/RenderText.cpp:
        (WebCore::RenderText::createInlineTextBox):
        * rendering/RootInlineBox.cpp:
        * rendering/RootInlineBox.h:
        * rendering/SVGInlineFlowBox.h:
        (WebCore::SVGInlineFlowBox::svgBoxHeight):
        * rendering/SVGInlineTextBox.h:
        (WebCore::SVGInlineTextBox::svgBoxHeight):
        * rendering/SVGRootInlineBox.h:
        (WebCore::SVGRootInlineBox::svgBoxHeight):

2009-04-24  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25370
        Introduce ScriptEventListener to refactor away direct references to
        JSLazyEventListener in WebCore code.

        * GNUmakefile.am: Added ScriptEventListener to project.
        * WebCore.pro: Ditto.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/js/JSDOMGlobalObject.cpp: Removed unused JSLazyEventListener include.
        * bindings/js/JSLazyEventListener.cpp: Moved createAttributeEventListener helpers
            to ScriptEventListener.
        * bindings/js/JSLazyEventListener.h: Ditto.
        * bindings/js/ScriptController.cpp: Removed unused JSLazyEventListener include.
        * bindings/js/ScriptEventListener.cpp: Added.
        * bindings/js/ScriptEventListener.h: Added.
        * bindings/v8/ScriptEventListener.cpp: Added.
        * bindings/v8/ScriptEventListener.h: Added.
        * dom/Document.cpp: Renamed JSLazyEventListener include to ScriptEventListener.
        * html/HTMLBodyElement.cpp: Ditto.
        * html/HTMLButtonElement.cpp: Ditto.
        * html/HTMLElement.cpp: Ditto.
        * html/HTMLFormElement.cpp: Ditto.
        * html/HTMLFrameElementBase.cpp: Ditto.
        * html/HTMLFrameSetElement.cpp: Ditto.
        * html/HTMLImageElement.cpp: Ditto.
        * html/HTMLInputElement.cpp: Ditto.
        * html/HTMLObjectElement.cpp: Ditto.
        * html/HTMLScriptElement.cpp: Ditto.
        * html/HTMLSelectElement.cpp: Ditto.
        * html/HTMLTextAreaElement.cpp: Ditto.
        * svg/SVGElement.cpp: Ditto.
        * svg/SVGSVGElement.cpp: Ditto.

2009-04-24  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        Bug 25355: Crash when Creating New Tab or New Window when set to open Same Page
        https://bugs.webkit.org/show_bug.cgi?id=25355
        rdar://problem/6823543

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadItem): Added a null check.

2009-04-24  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Fix RenderSVGImage to dump with full bounds and style information.
        https://bugs.webkit.org/show_bug.cgi?id=25377
        
        No functional changes, we're just now including more info in render tree dumps.

        * rendering/RenderObject.h:
        (WebCore::RenderObject::isSVGImage):
        * rendering/RenderSVGImage.h:
        (WebCore::RenderSVGImage::isSVGImage):
        * rendering/RenderTreeAsText.cpp:
        (WebCore::write):
        * rendering/SVGRenderTreeAsText.cpp:
        (WebCore::operator<<):
        (WebCore::write):
        * rendering/SVGRenderTreeAsText.h:

2009-04-24  David Levin  <levin@chromium.org>

        Reviewed by NOBODY (chromium build fix).

        Rename "isInline" => "isAttribute" in v8 bindings (jsc was done in r42699).

        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::V8AbstractEventListener):
        (WebCore::V8AbstractEventListener::invokeEventHandler):
        * bindings/v8/V8AbstractEventListener.h:
        * bindings/v8/V8EventListenerList.cpp:
        (WebCore::V8EventListenerList::add):
        (WebCore::V8EventListenerList::remove):
        (WebCore::V8EventListenerList::clear):
        * bindings/v8/V8LazyEventListener.h:
        (WebCore::V8LazyEventListener::virtualisAttribute):
        * bindings/v8/custom/V8CustomEventListener.cpp:
        (WebCore::V8EventListener::V8EventListener):
        * bindings/v8/custom/V8CustomEventListener.h:
        (WebCore::V8EventListener::create):
        (WebCore::V8EventListener::virtualisAttribute):

2009-04-24  Nate Chapin  <japhet@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25343
        Fix Chromium/Skia bug where -webkit-box-shadow with 0,0 offset 
        ignores blur.

        * WebCore\platform\graphics\skia\GraphicsContextSkia.cpp
         (WebCore::GraphicsContext::setPlatformShadow): Add check against
         blur before clearing looper.

2009-04-24  Eric Roman  <eroman@chromium.org>

        Reviewed by Darin Adler.

        Initialize TextIterator::m_textLength to 0.

        This assures that TextIterator::length() will return 0 for cases when TextIterator's constructor returns early (because there is nothing to iterate over in the range).

        <https://bugs.webkit.org/show_bug.cgi?id=25335>

        Test: editing/selection/doubleclick-whitespace-img-crash.html

        * editing/TextIterator.cpp:
        (WebCore::TextIterator::TextIterator):

2009-04-24  Fumitoshi Ukai  <ukai@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25329
        Add indexed access method in v8 binding of ClientRectList.

        * bindings/v8/custom/V8ClientRectListCustom.cpp: Added.

2009-04-24  Fumitoshi Ukai  <ukai@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25257
        Use null for unspecified event listener attributes of XMLHttpRequest
        and XMLHttpRequestUpload in v8 binding.

        cf. http://www.whatwg.org/specs/web-apps/current-work/#event-handler-attributes
        An event handler attribute, unless otherwise specified, can either
        have the value null or be set to a Function object.
        Initially, an event handler attribute must be set to null.

        Test: fast/xmlhttprequest/xmlhttprequest-default-attributes.html

        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::ACCESSOR_GETTER): Changed to use v8::Null().
        * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
        (WebCore::ACCESSOR_GETTER): Ditto.

2009-04-24  Darin Adler  <darin@apple.com>

        Reviewed by Adam Roben.

        <rdar://problem/6663836> CrashTracer: crashes in Safari at com.apple.WebCore • WebCore::reportException + 1513

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::reportException): Added a null check.

2009-04-24  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Darin Adler
        
        https://bugs.webkit.org/show_bug.cgi?id=23219

        Add support for transtions and animations of background-position, -webkit-background-size,
        -webkit-mask-position and -webkit-mask-size.

        Tests: transitions/background-transitions.html
               transitions/mask-transitions.html

        * page/animation/AnimationBase.cpp:
        (WebCore::blendFunc):
        Add a blend func for LengthSize.
        
        (WebCore::ensurePropertyMap):
        Add wrappers for the new properties.
        
        (WebCore::addShorthandProperties):
        Add a shorthand property for CSSPropertyBackgroundPosition to map to
        CSSPropertyBackgroundPositionX and CSSPropertyBackgroundPositionY, 
        add CSSPropertyWebkitMask for CSSPropertyWebkitMaskPosition, and add
        CSSPropertyWebkitMaskPosition for CSSPropertyWebkitMaskPositionX and
        CSSPropertyWebkitMaskPositionY.
        
        * rendering/style/RenderStyle.h:
        (WebCore::InheritedFlags::setBackgroundXPosition):
        (WebCore::InheritedFlags::setBackgroundYPosition):
        (WebCore::InheritedFlags::setBackgroundSize):
        (WebCore::InheritedFlags::setMaskXPosition):
        (WebCore::InheritedFlags::setMaskYPosition):
        (WebCore::InheritedFlags::setMaskSize):
        Add setters for the properties that can be animated now.

2009-04-24  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        Fix for <rdar://problem/5089327> Newline gets stripped when pasting whole lines in certain markup

        Test: editing/pasteboard/paste-blockquote-after-blockquote.html

        When we have matching quote levels, its ok to merge the starts of the inserted and existing blocks more frequently.
        But we should only merge here if the selection start was inside a mail blockquote.  This prevents against removing a 
        blockquote from newly pasted quoted content that was pasted into an unquoted position.  If that unquoted position happens 
        to be right after another blockquote, we don't want to merge and risk stripping a valid block (and newline) from the pasted content.

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::shouldMergeStart): Also added an early return to always return false when we're already moving paragraphs.
        (WebCore::ReplaceSelectionCommand::doApply): Removed redundant check for when we're moving paragraphs.
        * editing/ReplaceSelectionCommand.h:

2009-04-23  Francisco Tolmasky  <francisco@280north.com>

        BUG 24604: WebKit profiler reports incorrect total times
        <https://bugs.webkit.org/show_bug.cgi?id=24604>

        Reviewed by Timothy Hatcher and Kevin McCullough.

        Made it so that most of the profiler functions now match the behavior of Shark. Most notably, in the
        heavy view, child nodes now represent the statistics of the root node. Each root node of heavy view
        displays flattened statistics for a particular function that ran during the profile, and each child
        of these root nodes represents a callpath that lead to it. Thus, the statistics for each of these child
        nodes should show how much of the root nodes values came from it. For example, if you had the following to
        stacks take place during the profile:

        A ->calls 1 times-> B ->calls 2 times-> C
        D ->calls 4 times-> C

        The tree for the C root node would look like this:

        C -> B -> A
          -> D

        The number of calls values would look like this:

        C (6) -> B (2) -> A(2)
              -> D (4)

        What this means is that "2 of the total 6 C calls came from B", "2 of the total C calls came from A", and
        "4 of the total C calls came from D".  Notice that the "A ->calls 2 time->" is completely ignored. This becomes
        particularly tricky during recursive calls, because each child note can represent multiple possible paths. This
        is the reason that we would get things like 40000% previously with recursion.

        This is also the way gprof works, and as close as we can get to Shark's behavior (Shark is not instrumented so it
        can't know exactly how many calls came from where, etc).

        * English.lproj/localizedStrings.js: Added "Average" for average times in the profile.
        * inspector/JavaScriptProfile.cpp:
        (WebCore::ProfileClass):
        * inspector/JavaScriptProfileNode.cpp:
        (WebCore::getParent):
        (WebCore::getHead):
        (WebCore::getCallUID):
        (WebCore::ProfileNodeClass):
        * inspector/front-end/BottomUpProfileDataGridTree.js: Added.
        (WebInspector.BottomUpProfileDataGridTree):
        (WebInspector.BottomUpProfileDataGridTree.prototype.focus):
        (WebInspector.BottomUpProfileDataGridNode):
        (WebInspector.BottomUpProfileDataGridNode.prototype._takePropertiesFromProfileDataGridNode):
        (WebInspector.BottomUpProfileDataGridNode.prototype._keepOnlyChild):
        (WebInspector.BottomUpProfileDataGridNode.prototype._exclude):
        (WebInspector.BottomUpProfileDataGridNode.prototype._merge):
        (WebInspector.BottomUpProfileDataGridNode.prototype._populate):
        * inspector/front-end/DataGrid.js:
        (WebInspector.DataGrid.prototype.insertChild):
        (WebInspector.DataGrid.prototype.removeChild):
        (WebInspector.DataGrid.prototype.removeChildren):
        (WebInspector.DataGridNode.prototype.set hasChildren):
        (WebInspector.DataGridNode.prototype.get hasChildren):
        * inspector/front-end/ProfileDataGridTree.js: Added.
        (WebInspector.ProfileDataGridNode):
        (WebInspector.ProfileDataGridNode.prototype.get data.formatMilliseconds):
        (WebInspector.ProfileDataGridNode.prototype.get data):
        (WebInspector.ProfileDataGridNode.prototype.createCell):
        (WebInspector.ProfileDataGridNode.prototype.select):
        (WebInspector.ProfileDataGridNode.prototype.deselect):
        (WebInspector.ProfileDataGridNode.prototype.expand):
        (WebInspector.ProfileDataGridNode.prototype.insertChild):
        (WebInspector.ProfileDataGridNode.prototype.removeChild):
        (WebInspector.ProfileDataGridNode.prototype.removeChildren):
        (WebInspector.ProfileDataGridNode.prototype.findChild):
        (WebInspector.ProfileDataGridNode.prototype.get averageTime):
        (WebInspector.ProfileDataGridNode.prototype.get averagePercent):
        (WebInspector.ProfileDataGridNode.prototype.get selfPercent):
        (WebInspector.ProfileDataGridNode.prototype.get totalPercent):
        (WebInspector.ProfileDataGridNode.prototype._save):
        (WebInspector.ProfileDataGridNode.prototype._restore):
        (WebInspector.ProfileDataGridNode.prototype._merge):
        (WebInspector.ProfileDataGridTree):
        (WebInspector.ProfileDataGridTree.prototype.get expanded):
        (WebInspector.ProfileDataGridTree.prototype.appendChild):
        (WebInspector.ProfileDataGridTree.prototype.insertChild):
        (WebInspector.ProfileDataGridTree.prototype.removeChildren):
        (WebInspector.ProfileDataGridTree.prototype.findChild.WebInspector.ProfileDataGridNode.prototype.findChild.sort.WebInspector.ProfileDataGridNode.prototype.sort._save):
        (WebInspector.ProfileDataGridTree.propertyComparator.comparator):
        (WebInspector.ProfileDataGridTree.propertyComparator.else.comparator):
        (WebInspector.ProfileDataGridTree.propertyComparator):
        * inspector/front-end/ProfileView.js:
        (WebInspector.ProfileView):
        (WebInspector.ProfileView.prototype.set profile):
        (WebInspector.ProfileView.prototype.get bottomUpProfileDataGridTree):
        (WebInspector.ProfileView.prototype.get topDownProfileDataGridTree):
        (WebInspector.ProfileView.prototype.get currentTree):
        (WebInspector.ProfileView.prototype.set currentTree):
        (WebInspector.ProfileView.prototype.get topDownTree):
        (WebInspector.ProfileView.prototype.get bottomUpTree):
        (WebInspector.ProfileView.prototype.refresh):
        (WebInspector.ProfileView.prototype.refreshVisibleData):
        (WebInspector.ProfileView.prototype.refreshShowAsPercents):
        (WebInspector.ProfileView.prototype.performSearch.matchesQuery):
        (WebInspector.ProfileView.prototype.performSearch):
        (WebInspector.ProfileView.prototype._changeView):
        (WebInspector.ProfileView.prototype._focusClicked):
        (WebInspector.ProfileView.prototype._excludeClicked):
        (WebInspector.ProfileView.prototype._resetClicked):
        (WebInspector.ProfileView.prototype._sortProfile):
        * inspector/front-end/ProfilesPanel.js:
        (WebInspector.ProfilesPanel.prototype.showProfile):
        (WebInspector.ProfilesPanel.prototype.showView):
        (WebInspector.ProfilesPanel.prototype.searchMatchFound):
        * inspector/front-end/TopDownProfileDataGridTree.js: Added.
        (WebInspector.TopDownProfileDataGridNode):
        (WebInspector.TopDownProfileDataGridNode.prototype._populate):
        (WebInspector.TopDownProfileDataGridNode.prototype._exclude):
        (WebInspector.TopDownProfileDataGridTree):
        (WebInspector.TopDownProfileDataGridTree.prototype.focus):
        (WebInspector.TopDownProfileDataGridTree.prototype.exclude):
        * inspector/front-end/WebKit.qrc:
        * inspector/front-end/inspector.css:
        * inspector/front-end/inspector.html:

2009-04-23  Eric Seidel  <eric@webkit.org>

        Reviewed by Sam Weinig.

        Use static functions (and a couple templates)
        to further reduce the amount of copy/paste code in SVGRenderTreeAsText

        No test changes, only code cleanup.

        * rendering/SVGRenderTreeAsText.cpp:
        (WebCore::writeNameValuePair):
        (WebCore::writeNameAndQuotedValue):
        (WebCore::writeIfNotEmpty):
        (WebCore::writeIfNotDefault):
        (WebCore::writeStyle):
        (WebCore::writePositionAndStyle):
        (WebCore::operator<<):

2009-04-23  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        SVGRenderTreeAsText cleanup/code sharing.

        No test changes, only code cleanup.

        * rendering/RenderText.cpp:
        (WebCore::RenderText::firstRunOrigin):
        * rendering/RenderText.h:
        * rendering/SVGRenderTreeAsText.cpp:
        (WebCore::writeStandardPrefix):
        (WebCore::writeChildren):
        (WebCore::write):
        (WebCore::writeRenderResources):

2009-04-23  Beth Dakin  <bdakin@apple.com>

        Reviewed by Darin Adler.

        WebCore part of fix for <rdar://problem/6333461> REGRESSION 
        (r36864-r36869): Dragging stocks widget scrollbar drags the whole 
        widget

        * platform/Scrollbar.h:
        (WebCore::Scrollbar::isScrollbar):
        * platform/Widget.h:
        (WebCore::Widget::isScrollbar):

2009-04-23  Kevin McCullough  <kmccullough@apple.com>

        Reviewed by Adam Roben.

        <rdar://problem/6808109> "Deletion UI" is not available for many
        portions of HTML content

        This patch makes the deletion UI show up in some new situations:
        1) If a block's background color is different from its parent's
        2) If a block has a background image.
        3) If a block has a single visible border.
        However the block must now not only be at least a minimum width and
        height, but also exceed a minimum area.  In practice this has led to
        much better element selection. 

        * editing/DeleteButtonController.cpp:
        (WebCore::isDeletableElement):

2009-04-23  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix. Adding XMLTokenizerScope.cpp to the build.

        * WebCoreSources.bkl:

2009-04-23  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        Fix for <rdar://problem/6788905> REGRESSION (41928?): hang in Position::upstream
        https://bugs.webkit.org/show_bug.cgi?id=25312

        I was unable to reproduce the problem, but I'm pretty sure this will fix it.

        * rendering/RenderObject.cpp: (WebCore::RenderObject::createVisiblePosition):
        Since VisiblePosition doesn't ensure the offset is good, we shouldn't pass max int as an offset.

2009-04-23  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25313
        Missing scroll bars in GMail.

        Test: fast/overflow/overflow-y-scroll.html

        * platform/ScrollView.cpp:
        (WebCore::ScrollView::updateScrollbars): Added check for the ScrollbarAlwaysOn
        scroll mode.

2009-04-23  Dan Bernstein  <mitz@apple.com>

        Reviewed by Justin Garcia.

        - fix <rdar://problem/6081309> Mail crash when pressing down arrow in
          some messages in WebCore::canHaveChildrenForEditing

        Test: editing/selection/extend-by-line-anonymous-content-crash.html

        * editing/visible_units.cpp:
        (WebCore::previousLinePosition): Null-check node. If p is not an
        editable position, then closestLeafChildForXPos() may have returned a
        non-editable box, and in particular one belonging to anonymous content.
        If node is 0, fall back on RenderObject::positionForPoint, which
        finds the closest position in non-anonymous content.
        (WebCore::nextLinePosition): Ditto.
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::createVisiblePosition): Fixed a typo.

2009-04-23  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Adele Peterson.

        <rdar://problem/6791439> REGRESSION: Get an error page instead of login page navigating back in gmail

        Test: http/tests/history/back-to-post.php

        * platform/network/cf/ResourceRequestCFNet.cpp: (WebCore::ResourceRequest::doUpdatePlatformRequest):
        Apply a new cache policy if it changed after the platform request was first created.
        While at it, also made sure to update timeout.

2009-04-23  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Gustavo Noronha.

        When creating a new drawable object, collect system's
        information about the best depth it can provide and use it
        in a new colormap that the new drawable requires.

        * platform/graphics/gtk/ImageGtk.cpp:
        (WebCore::BitmapImage::getGdkPixbuf):

2009-04-23  Zan Dobersek  <zandobersek@gmail.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=15654
        GdkPixbuf support for ImageCairo

        Add support for converting a Cairo surface to a GdkPixbuf.

        * platform/graphics/BitmapImage.h:
        * platform/graphics/Image.h:
        (WebCore::Image::getGdkPixbuf):
        * platform/graphics/gtk/ImageGtk.cpp:
        (WebCore::BitmapImage::getGdkPixbuf):

2009-04-23  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Simon Hausmann.

        Make windowed plugins (on X11, Qt) behave nicer with wheel scrolling.

        Basically, what we want is to send wheel events to the plugin *only*
        when it has focus, or else send it to the parent frame.

        This is a work around, and basically what we do, is to steal the
        wheel events from the plugin, modify the window ID, and put the
        event back into the Qt event loop.

        * plugins/qt/PluginContainerQt.cpp:
        (PluginClientWrapper::PluginClientWrapper):
        (PluginClientWrapper::~PluginClientWrapper):
        (PluginClientWrapper::x11Event):
        (PluginContainerQt::PluginContainerQt):
        (PluginContainerQt::~PluginContainerQt):
        (PluginContainerQt::on_clientClosed):
        (PluginContainerQt::on_clientIsEmbedded):
        (PluginContainerQt::redirectWheelEventsToParent):
        (PluginContainerQt::x11Event):
        (PluginContainerQt::focusInEvent):
        * plugins/qt/PluginContainerQt.h:

2009-04-22  Brady Eidson  <beidson@apple.com>

        Reviewed by Maciej Stachowiak

        <rdar://problem/6786961> - "Are you sure you want to resubmit this form?" nag displays twice.

        For most loads, we were consulting the navigation policy delegate twice.  Once from FrameLoader before
        the load started and once from MainResourceLoader in its willSendRequest callback.

        In the past we tried removing MainResourceLoader's call altogether.  This caused a regression where urls 
        that redirect to a url handled by an external application would no longer work in Safari.  It probably 
        also broke other WebKit apps in subtle ways.

        Changing MainResourceLoader to make the check only on redirects fixes both bugs.  We now only call the 
        policy delegate once for most standard loads, but we do correctly call it a second time for redirects.

        Tests: http/tests/misc/policy-delegate-called-twice.html
               http/tests/misc/redirect-to-external-url.html

        * loader/MainResourceLoader.cpp:
        (WebCore::MainResourceLoader::willSendRequest): Call the navigation policy delegate only for redirects.

2009-04-22  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Fix for <rdar://problem/6800695>

        Add a hack to only allow navigating (via a link from a http page)
        to feed: urls (same for feeds: and feedsearch:) that map to http:
        or https: via their nested protocol. This includes both feed://example.com
        and feed:http://example.com.

        * loader/FrameLoader.cpp:
        (WebCore::isFeedWithNestedProtocolInHTTPFamily):
        (WebCore::FrameLoader::loadFrameRequest):

2009-04-22  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Autogenerate the XMLHttpRequest constructor getter/setter for the
        WorkerContext and remove the now no longer needed JSWorkerContextBase.lut.h
        file.

        * DerivedSources.make: Remove JSWorkerContextBase.lut.h
        * WebCore.xcodeproj/project.pbxproj: Ditto.

        * bindings/js/JSWorkerContextBase.cpp:
        * bindings/js/JSWorkerContextBase.h: Remove code to support hand written
        code for XMLHttpRequest constructor lookup and shadowing.

        * bindings/js/JSWorkerContextCustom.cpp:
        (WebCore::JSWorkerContext::customGetOwnPropertySlot): Remove JSC prefixes.
        (WebCore::JSWorkerContext::xmlHttpRequest): Added. Custom implementation of
        cached constructor lookup.
        * workers/WorkerContext.idl: Make the XMLHttpRequestConstructor accessor not
        V8 specific.

2009-04-22  Darin Adler  <darin@apple.com>

        * page/Navigator.idl: Touch this file to fix build since Geolocation
        configuration was recently turned off.

2009-04-22  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25322
        Can't delete empty paragraph after a block image
        
        Empty paragraph removal would have been handled by mergeParagraphs, but we stopped short
        because of some code that avoided problems that would arise from Positions that would go
        bad during deletion.  
        
        We have several checks that prevent us from using bad Positions, this one in particular
        was added to avoid bad Positions that result from text removal.  So, I removed the check
        and started correctly updating m_downstreamEnd during text removal so that it doesn't go
        bad.  m_upstreamStart doesn't need to be updated during text removal, since only text
        after it will ever be removed.

        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::deleteTextFromNode):
        (WebCore::DeleteSelectionCommand::handleGeneralDelete):
        (WebCore::DeleteSelectionCommand::mergeParagraphs):

2009-04-22  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6757346> SAP: Prevent default on mouseDown does not stop iframe from capturing subsequent mouse moves

        Make mouseUp target the correct frame when the original
        mousedown made the drag non-capturing.

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::passSubframeEventToSubframe):

2009-04-22  Oliver Hunt  <oliver@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6757346> SAP: Prevent default on mouseDown does not stop iframe from capturing subsequent mouse moves

        This is the first step of allowing drag events to match the behaviour
        of mouse move events when the default action of the initial mouse down
        is prevented.  Remaining issue is that the final mouse up event still
        targets the original root frame.

        Test: fast/events/mouse-drag-from-frame-to-other-frame.html

        * page/mac/EventHandlerMac.mm:
        (WebCore::EventHandler::passSubframeEventToSubframe):

2009-04-22  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Adele Peterson
        
        <rdar://problem/6702882> QT movie's video fails to be displayed after switching between tabs
        <rdar://problem/6754957> Resizing Web browser window and hitting play will cause video blocks and artifacting

        When in a media document, MediaPlayerPrivateQTKit uses a QTMovieView which may get
        layer backing under some circumstances. However, drawing the view via
        displayRectIgnoringOpacity:inContext: bypasses any layer setup that AppKit normally performs.
        So when in the media document, we draw via displayRectIgnoringOpacity:.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::paint):

2009-04-22  Timothy Hatcher  <timothy@apple.com>

        Fix a crash in Mail when forwarding a specific HTML email.
        Caused by the fix for <rdar://problem/6512520> (r42096).
        Unable to create a test case that works outside of Mail.

        <rdar://problem/6796069>

        Reviewed by Ada Chan.

        * editing/markup.cpp:
        (WebCore::createMarkup): Null check pastEnd before trying to
        call Range::compareBoundaryPoints.

2009-04-22  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Darin Adler.

        Fix for <rdar://problem/6816957>
        Turn off Geolocation by default

        * Configurations/FeatureDefines.xcconfig:

2009-04-22  Eric Seidel  <eric@webkit.org>

        Rubber-stamped by David Hyatt.

        Change RenderSVGImage to dump as RenderSVGImage instead of RenderImage

        * rendering/RenderSVGImage.h:
        (WebCore::RenderSVGImage::renderName):

2009-04-21  Timothy Hatcher  <timothy@apple.com>

        Fix a crash on Gmail when they remove a "before unload" event listener when
        it was never added to the pending map in the first place.

        <rdar://problem/6814144>

        Reviewed by Darin Adler.

        * page/DOMWindow.cpp:
        (WebCore::allowsPendingBeforeUnloadListeners): Renamed from shouldAddPendingBeforeUnloadListener.
        (WebCore::DOMWindow::addEventListener): Call allowsPendingBeforeUnloadListeners now.
        (WebCore::DOMWindow::removeEventListener): Call allowsPendingBeforeUnloadListeners before
        removing the before unload listener.
        (WebCore::DOMWindow::clearAttributeEventListener): Ditto.

2009-04-22  Kenneth Rohde Christiansen  <kenneth.christiansen@openbossa.org>

        Reviewed by Ariya Hidayat.

        Made windowed plugins move/resize synchronized with the painting, so
        that windowed plugins are not moved before the rest of the parent
        frame during scrolling.

        * plugins/qt/PluginContainerQt.cpp:
        (PluginContainerQt::PluginContainerQt):
        (PluginContainerQt::requestGeometry):
        (PluginContainerQt::adjustGeometry):
        * plugins/qt/PluginContainerQt.h:
        * plugins/qt/PluginViewQt.cpp:
        (WebCore::PluginView::updatePluginWidget):
        (WebCore::PluginView::paint):

2009-04-22  Simon Hausmann  <simon.hausmann@nokia.com>

        Reviewed by Ariya Hidayat.

        Fix various bugs in the X11 Qt plugin focus handling.

        Notify the focus controller on activation/deactivation of the plugin and
        set focus on the plugin's element when it receives the window system
        focus.

        * WebCore.pro: Added PluginContainerQt to the Qt build.
        * plugins/PluginView.cpp:
        (WebCore::PluginView::focusPluginElement): New helper function, moved from PluginViewWin.
        * plugins/PluginView.h:
        (WebCore::PluginView::parentFrame): Added parent frame accessor.
        * plugins/qt/PluginContainerQt.cpp: Added.
        (PluginContainerQt::PluginContainerQt):
        (PluginContainerQt::focusInEvent): Set the focus controller active on focus in events.
        (PluginContainerQt::focusOutEvent): Deactivate the focus controller when loosing the focus.
        * plugins/qt/PluginContainerQt.h: Added.
        * plugins/qt/PluginViewQt.cpp:
        (WebCore::PluginView::init): Allocate a PluginContainerQt instead of QX11EmbedContainer.
        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginView::handleMouseEvent): Moved the code to set focus on the plugin element
        to PluginView::focusPluginElement.

2009-04-22  Tamas Szirbucz  <szirbucz.tamas@stud.u-szeged.hu>

        Reviewed by Ariya Hidayat.

        https://bugs.webkit.org/show_bug.cgi?id=25023
        Delete reply in QNetworkReplyHandler::abort() to avoid leak.

        * platform/network/qt/QNetworkReplyHandler.cpp:
        (WebCore::QNetworkReplyHandler::abort):

2009-04-21  Jon Honeycutt  <jhoneycutt@apple.com>

        Allow the UI delegate to control cursor-setting.

        Reviewed by Ada Chan.

        * page/Chrome.cpp:
        (WebCore::Chrome::setCursor):
        Pass the call to the client.

        * page/Chrome.h:

        * page/ChromeClient.h:
        (WebCore::ChromeClient::setCursor):
        Stubbed; returns false.

        * platform/Cursor.h:
        Define PlatformCursorHandle for each platform.

        * platform/win/WidgetWin.cpp:
        Reordered some includes. Added an include of Page.h.
        (WebCore::Widget::setCursor):
        Fixed a typo in the comment about ignoreNextSetCursor. Get the Page, and
        call its Chrome's setCursor() method with the passed cursor. Fall back
        to SetCursor() if the Page is not available.

        * plugins/win/PluginViewWin.cpp:
        (WebCore::PluginView::handleMouseEvent):
        Remove an unused variable. Cleaned up some whitespace.

2009-04-21  John Abd-El-Malek  <jam@google.com>

        Reviewed by Dimitri Glazkov.

        Add a method to purge the Chromium plugin list cache.
        https://bugs.webkit.org/show_bug.cgi?id=25318

        * plugins/chromium/PluginDataChromium.cpp:
        (WebCore::resetChromiumPluginCache):

2009-04-21  Mark Rowe  <mrowe@apple.com>

        Reviewed by Darin Adler.

        Fix <https://bugs.webkit.org/show_bug.cgi?id=25164> / <rdar://problem/6786319>.

        We need to ensure that XMLTokenizer sets the current DocLoader before calling in to
        any libxml2 methods that may trigger a load.  The presence of a DocLoader indicates
        that the load was originated by WebCore's use of libxml2 and that we should enforce
        the same-origin policy on it.  XMLTokenizer::initializeParserContext,
        XMLTokenizer::doWrite and XMLTokenizer::doEnd were three methods that were not setting
        the current DocLoader when they should have.

        The XMLTokenizerScope class is introduced to simplify the pattern of saving, setting and
        restoring the current DocLoader and libxml2 error handlers.  The DocLoader and error handlers
        are saved and set when the scope is allocated, and restored to their previous values when
        the scope is exited.

        Test: http/tests/security/xss-DENIED-xml-external-entity.xhtml

        * GNUmakefile.am:
        * WebCore.pro:
        * WebCore.scons:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * dom/XMLTokenizer.cpp:
        * dom/XMLTokenizer.h:
        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::matchFunc):
        (WebCore::shouldAllowExternalLoad):
        (WebCore::openFunc):
        (WebCore::XMLTokenizer::doWrite):
        (WebCore::XMLTokenizer::initializeParserContext):
        (WebCore::XMLTokenizer::doEnd):
        (WebCore::xmlDocPtrForString):
        * dom/XMLTokenizerScope.cpp:
        (WebCore::XMLTokenizerScope::XMLTokenizerScope):
        (WebCore::XMLTokenizerScope::~XMLTokenizerScope):
        * dom/XMLTokenizerScope.h:
        * xml/XSLStyleSheet.cpp:
        (WebCore::XSLStyleSheet::parseString):
        * xml/XSLTProcessor.cpp:

2009-04-21  Sam Weinig  <sam@webkit.org>

        Reviewed by Dan Bernstein.

        Fix for <rdar://problem/5874009>
        Add port 3659 (apple-sasl / PasswordServer) to the list of blocked ports.

        * platform/network/ResourceHandle.cpp:
        (WebCore::portAllowed):

2009-04-21  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=25320
        Crash when changing block styles in a root that contains no visible content (but contains nodes with renderers)

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): If the enclosing block is the 
        root editable element and it contains no visible content, create a new block but don't try and move 
        content into it, since there's nothing for moveParagraphs to move.
        

2009-04-21  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Bug 25162: REGRESSION (r41176-r41242): Drag-selection above/below the line does not select to beginning/end
        https://bugs.webkit.org/show_bug.cgi?id=25162
        rdar://problem/6764354

        * page/Settings.cpp:
        (WebCore::Settings::Settings): Initialize editing behavior to Mac-style for PLATFORM(MAC).
        Later we may want to change this default to encompass other versions running on Mac.

        * page/Settings.h: Added EditingBehavior, setEditingBehavior, editingBehavior, and
        m_editingBehavior. Also moved m_maximumDecodedImageSize out of the middle of all
        the bit fields.

        * platform/graphics/IntPoint.h: Added a constructor to turn an IntSize into an IntPoint.
        I'm not sure the distinction here is serving us well at the moment. When converting from
        global to local coordinates you want to do IntPoint - IntPoint and have the result be
        another IntPoint, not an IntSize. And so on.

        * rendering/RenderBlock.cpp:
        (WebCore::positionForPointRespectingEditingBoundaries): Changed to use pointers more and
        separate coordinates less.
        (WebCore::RenderBlock::positionForPointWithInlineChildren): Turned into a member function.
        Added separate cases to support the Mac and Windows behavior.
        (WebCore::RenderBlock::positionForPoint): Updated for the change above. Also moved the
        computation of pointInContents closer to the place it's used.

        * rendering/RenderBlock.h: Updated for the new private member function.

2009-04-17  Timothy Hatcher  <timothy@apple.com>

        Change pending unload and beforeunload counts to store the listeners
        in a single data structure that can be quickly iterated for dispatch.

        <rdar://problem/6383352&6383379&6383940>

        Reviewed by Darin Adler.

        * WebCore.base.exp: Change what symbols are exported.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading): Remove count updating code
        and move an if inside a block already checking m_frame->document().
        * page/Chrome.cpp: Remove disableSuddenTermination/enableSuddenTermination.
        * page/Chrome.h: Ditto.
        * page/ChromeClient.h: Ditto.
        * page/DOMWindow.cpp:
        (WebCore::pendingUnloadEventListenerMap): Create a static map.
        (WebCore::pendingBeforeUnloadEventListenerMap): Ditto.
        (WebCore::addPendingEventListener): Add the event listener to the map.
        (WebCore::removePendingEventListener): Remove the event listener from the map.
        (WebCore::removePendingEventListeners): Remove all listeners for the window.
        (WebCore::dispatchWindowEventToListeners): Dispatch the event to the given listeners.
        (WebCore::DOMWindow::dispatchAllPendingBeforeUnloadEvents): Send the beforeunload event.
        (WebCore::DOMWindow::pendingUnloadEventListeners): Return a count of pending listeners.
        (WebCore::DOMWindow::dispatchAllPendingUnloadEvents): Send the unload event.
        (WebCore::DOMWindow::~DOMWindow): Remove the window from both event listener maps.
        (WebCore::DOMWindow::addEventListener): Call addPendingEventListener when needed.
        (WebCore::DOMWindow::removeEventListener): Call removePendingEventListener when needed.
        (WebCore::DOMWindow::removeAllEventListeners): Call removePendingEventListeners.
        (WebCore::DOMWindow::removeInlineEventListenerForType): Call removePendingEventListener when needed.
        * page/DOMWindow.h:
        (WebCore::DOMWindow::frame): Changed to be const.
        * page/EventHandler.cpp:
        (WebCore::EventHandler::EventHandler): Remove count tracking code.
        * page/EventHandler.h: Ditto.
        * page/Page.cpp:
        (WebCore::Page::Page): Ditto.
        * page/Page.h: Ditto.

2009-04-21  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=19644
        Text copied with Select All pastes with a indent but shouldn't
        <rdar://problem/6102483> 
        Pasting the content of an HTML message in Mail causes addition nested <div> elements to be added
        
        To improve selectall/copy/paste fidelity of certain pages, we began wrapping copied content with
        a div that held properties and attributes from the fully selected body.  To fix the above issues, 
        only do this if if the body has certain properties or attributes.  We'll begin adding to this list as 
        necessary.  For now it's just background colors and images.  Tested copy/paste of nytimes, wired,
        arstechnica, and several others.
        
        Massive nesting can still happen, it will just be much less common.

        * editing/markup.cpp:
        (WebCore::createMarkup): 

2009-04-21  Peter Kasting  <pkasting@google.com>

        Reviewed by David Hyatt.

        https://bugs.webkit.org/show_bug.cgi?id=25250
        Allow platforms to snap the scroll thumb back to the drag origin
        during a drag.  Implement functions for Safari/Win and Chromium/Win
        to do this snapping at distances approximating the native ones.

        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::Scrollbar):
        (WebCore::Scrollbar::setValue):
        (WebCore::Scrollbar::scroll):
        (WebCore::Scrollbar::moveThumb):
        (WebCore::Scrollbar::setCurrentPos):
        (WebCore::Scrollbar::mouseMoved):
        (WebCore::Scrollbar::mouseDown):
        * platform/Scrollbar.h:
        * platform/ScrollbarTheme.h:
        (WebCore::ScrollbarTheme::shouldSnapBackToDragOrigin):
        * platform/chromium/ScrollbarThemeChromium.h:
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
        (WebCore::ScrollbarThemeChromium::shouldSnapBackToDragOrigin):
        * platform/chromium/ScrollbarThemeChromiumWin.cpp:
        (WebCore::ScrollbarThemeChromium::shouldSnapBackToDragOrigin):
        * platform/win/ScrollbarThemeWin.cpp:
        (WebCore::ScrollbarThemeWin::shouldCenterOnThumb):
        (WebCore::ScrollbarThemeWin::shouldSnapBackToDragOrigin):
        * platform/win/ScrollbarThemeWin.h:

2009-04-21  Adam Roben  <aroben@apple.com>

        Windows build fix

        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::eventParameterName): Remove unreachable code when SVG is
        enabled.

2009-04-21  Kevin Ollivier  <kevino@theolliviers.com>

        !ENABLE(SVG) build fix.
        
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::eventParameterName):

2009-04-21  Dave Moore  <davemoore@google.com>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25309
        Better use AtomicStrings when calling from the V8
        bindings into WebCore code.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        * bindings/v8/custom/V8HTMLCollectionCustom.cpp:
        * bindings/v8/custom/V8HTMLFormElementCustom.cpp:
        * bindings/v8/custom/V8HTMLFrameSetElementCustom.cpp:

2009-04-21  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.
 
        Bug 25304: AX: Safari not identifying a secure text field
        https://bugs.webkit.org/show_bug.cgi?id=25304

        Secure text fields need to be able to return AXTitleUIElements.

        Test: accessibility/secure-textfield-title-ui.html

        * page/mac/AccessibilityObjectWrapper.mm:
        (-[AccessibilityObjectWrapper accessibilityAttributeNames]):

2009-04-21  Dan Bernstein  <mitz@apple.com>

        - fix the Tiger build

        * page/mac/EventHandlerMac.mm:
        (method_setImplementation):

2009-04-21   Laszlo Gombos  <laszlo.1.gombos@nokia.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=25271

        Fix the build with disabled DOM storage or disabled database support.

        * bindings/js/ScriptObjectQuarantine.cpp:
        * bindings/js/ScriptObjectQuarantine.h:

2009-04-21  Holger Hans Peter Freyther  <zecke@selfish.org>

        Unreviewed build fix.

        Compile fix for r42633. const qualifier does not work
        on a static method.

        * dom/Document.h:
        (WebCore::Document::isSVGDocument):

2009-04-21  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler and John Sullivan.

        - fix <rdar://problem/5914146> Crash at -[NSScrollView scrollWheel:]

        -[NSScrollView scrollWheel:] runs a nested event-tracking run loop
        in a mode that allows WebCore timers to fire and NSURLConnection
        callbacks to be dispatched, which can release the NSScrollView and
        cause it to be deallocated (one example is a DOM timer callback that
        removes a subframe from the document). This leads to a crash in
        -scrollView:.

        The fix is to replace the implementation of -[NSScrollView scrollWheel:]
        with one that optionally retains the receiver for the duration of the
        call.

        * page/mac/EventHandlerMac.mm:
        (WebCore::nsScrollViewScrollWheelShouldRetainSelf): Added.
        (WebCore::setNSScrollViewScrollWheelShouldRetainSelf): Added. Replaces
        the implementation of -[NSScrollView scrollWheel:] with the
        self-retaining one, and sets a static boolean that tells it whether to
        retain the receiver around the call to the original implementation.
        (WebCore::selfRetainingNSScrollViewScrollWheel): Added. If
        setNSScrollViewScrollWheelShouldRetainSelf(true) was called and this
        function is executing on the main thread, it retains the NSScrollView,
        invokes the original -[NSScrollView scrollWheel:], then releases the
        view. Otherwise it just calls through to the original implementation.
        (WebCore::EventHandler::passWheelEventToWidget): Added calls to
        setNSScrollViewScrollWheelShouldRetainSelf() around the call to
        -scrollWheel:.

2009-04-21  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Mark Rowe.

        Tiger crash fix: Put VM tags in their own header file, and fixed up the
        #ifdefs so they're not used on Tiger.

        * ForwardingHeaders/wtf/VMTags.h: Copied from WebCore/ForwardingHeaders/wtf/HashTraits.h.

2009-04-21  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=21546
        [GTK] ATK accessibility enhancements

        Based on a patch by Alp Toker.

        Implement AtkComponent interface.

        * page/gtk/AccessibilityObjectWrapperAtk.cpp:
        (core):

2009-04-21  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Gustavo Noronha.

        https://bugs.webkit.org/show_bug.cgi?id=21546
        [GTK] ATK accessibility enhancements

        Only implement AtkAction interface if we actually have an action.

        * page/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-04-20  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25290
        REGRESSION(r41732): Crash when constructing XMLHttpRequest in a detached document

        Test: fast/dom/xmlhttprequest-constructor-in-detached-document.html

        * bindings/js/JSAudioConstructor.cpp:
        (WebCore::JSAudioConstructor::JSAudioConstructor):
        * bindings/js/JSAudioConstructor.h:
        * bindings/js/JSDOMGlobalObject.h:
        (WebCore::getDOMConstructor):
        * bindings/js/JSImageConstructor.cpp:
        (WebCore::JSImageConstructor::JSImageConstructor):
        * bindings/js/JSImageConstructor.h:
        * bindings/js/JSMessageChannelConstructor.cpp:
        (WebCore::JSMessageChannelConstructor::JSMessageChannelConstructor):
        * bindings/js/JSMessageChannelConstructor.h:
        * bindings/js/JSOptionConstructor.cpp:
        (WebCore::JSOptionConstructor::JSOptionConstructor):
        * bindings/js/JSOptionConstructor.h:
        * bindings/js/JSXMLHttpRequestConstructor.cpp:
        (WebCore::JSXMLHttpRequestConstructor::JSXMLHttpRequestConstructor):
        * bindings/js/JSXMLHttpRequestConstructor.h:
        Avoid accessing JSDOMGlobalObject via ScriptExecutionContext, since it may not
        work during frame teardown.

2009-04-20  Geoffrey Garen  <ggaren@apple.com>

        Rubber stamped by Darin Adler and Sam Weinig.

        Renamed "*InlineEventListener*" => "*AttributeEventListener*", and
        "isInline" => "isAttribute".

        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::createJSAttributeEventListener):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::JSEventListener):
        (WebCore::JSEventListener::~JSEventListener):
        (WebCore::JSEventListener::handleEvent):
        (WebCore::JSEventListener::virtualisAttribute):
        * bindings/js/JSEventListener.h:
        (WebCore::JSEventListener::create):
        (WebCore::JSEventListener::isAttribute):
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::createAttributeEventListener):
        * bindings/js/JSLazyEventListener.h:
        * bindings/scripts/CodeGeneratorJS.pm:
        * dom/Element.cpp:
        (WebCore::Element::setWindowAttributeEventListener):
        * dom/Element.h:
        * dom/EventListener.h:
        (WebCore::EventListener::isAttribute):
        (WebCore::EventListener::virtualisAttribute):
        * dom/Node.cpp:
        (WebCore::Node::clearAttributeEventListener):
        (WebCore::Node::setAttributeEventListener):
        (WebCore::Node::getAttributeEventListener):
        (WebCore::Node::onabort):
        (WebCore::Node::setOnabort):
        (WebCore::Node::onblur):
        (WebCore::Node::setOnblur):
        (WebCore::Node::onchange):
        (WebCore::Node::setOnchange):
        (WebCore::Node::onclick):
        (WebCore::Node::setOnclick):
        (WebCore::Node::oncontextmenu):
        (WebCore::Node::setOncontextmenu):
        (WebCore::Node::ondblclick):
        (WebCore::Node::setOndblclick):
        (WebCore::Node::onerror):
        (WebCore::Node::setOnerror):
        (WebCore::Node::onfocus):
        (WebCore::Node::setOnfocus):
        (WebCore::Node::oninput):
        (WebCore::Node::setOninput):
        (WebCore::Node::onkeydown):
        (WebCore::Node::setOnkeydown):
        (WebCore::Node::onkeypress):
        (WebCore::Node::setOnkeypress):
        (WebCore::Node::onkeyup):
        (WebCore::Node::setOnkeyup):
        (WebCore::Node::onload):
        (WebCore::Node::setOnload):
        (WebCore::Node::onmousedown):
        (WebCore::Node::setOnmousedown):
        (WebCore::Node::onmousemove):
        (WebCore::Node::setOnmousemove):
        (WebCore::Node::onmouseout):
        (WebCore::Node::setOnmouseout):
        (WebCore::Node::onmouseover):
        (WebCore::Node::setOnmouseover):
        (WebCore::Node::onmouseup):
        (WebCore::Node::setOnmouseup):
        (WebCore::Node::onmousewheel):
        (WebCore::Node::setOnmousewheel):
        (WebCore::Node::onbeforecut):
        (WebCore::Node::setOnbeforecut):
        (WebCore::Node::oncut):
        (WebCore::Node::setOncut):
        (WebCore::Node::onbeforecopy):
        (WebCore::Node::setOnbeforecopy):
        (WebCore::Node::oncopy):
        (WebCore::Node::setOncopy):
        (WebCore::Node::onbeforepaste):
        (WebCore::Node::setOnbeforepaste):
        (WebCore::Node::onpaste):
        (WebCore::Node::setOnpaste):
        (WebCore::Node::ondragenter):
        (WebCore::Node::setOndragenter):
        (WebCore::Node::ondragover):
        (WebCore::Node::setOndragover):
        (WebCore::Node::ondragleave):
        (WebCore::Node::setOndragleave):
        (WebCore::Node::ondrop):
        (WebCore::Node::setOndrop):
        (WebCore::Node::ondragstart):
        (WebCore::Node::setOndragstart):
        (WebCore::Node::ondrag):
        (WebCore::Node::setOndrag):
        (WebCore::Node::ondragend):
        (WebCore::Node::setOndragend):
        (WebCore::Node::onreset):
        (WebCore::Node::setOnreset):
        (WebCore::Node::onresize):
        (WebCore::Node::setOnresize):
        (WebCore::Node::onscroll):
        (WebCore::Node::setOnscroll):
        (WebCore::Node::onsearch):
        (WebCore::Node::setOnsearch):
        (WebCore::Node::onselect):
        (WebCore::Node::setOnselect):
        (WebCore::Node::onselectstart):
        (WebCore::Node::setOnselectstart):
        (WebCore::Node::onsubmit):
        (WebCore::Node::setOnsubmit):
        (WebCore::Node::onunload):
        (WebCore::Node::setOnunload):
        * dom/Node.h:
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::ReplacementFragment):
        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::parseMappedAttribute):
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::parseMappedAttribute):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseMappedAttribute):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::parseMappedAttribute):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::parseMappedAttribute):
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::parseMappedAttribute):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseMappedAttribute):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::parseMappedAttribute):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::parseMappedAttribute):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::parseMappedAttribute):
        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::mouseButtonListener):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::setAttributeEventListener):
        (WebCore::DOMWindow::clearAttributeEventListener):
        (WebCore::DOMWindow::getAttributeEventListener):
        (WebCore::DOMWindow::onabort):
        (WebCore::DOMWindow::setOnabort):
        (WebCore::DOMWindow::onblur):
        (WebCore::DOMWindow::setOnblur):
        (WebCore::DOMWindow::onchange):
        (WebCore::DOMWindow::setOnchange):
        (WebCore::DOMWindow::onclick):
        (WebCore::DOMWindow::setOnclick):
        (WebCore::DOMWindow::ondblclick):
        (WebCore::DOMWindow::setOndblclick):
        (WebCore::DOMWindow::onerror):
        (WebCore::DOMWindow::setOnerror):
        (WebCore::DOMWindow::onfocus):
        (WebCore::DOMWindow::setOnfocus):
        (WebCore::DOMWindow::onkeydown):
        (WebCore::DOMWindow::setOnkeydown):
        (WebCore::DOMWindow::onkeypress):
        (WebCore::DOMWindow::setOnkeypress):
        (WebCore::DOMWindow::onkeyup):
        (WebCore::DOMWindow::setOnkeyup):
        (WebCore::DOMWindow::onload):
        (WebCore::DOMWindow::setOnload):
        (WebCore::DOMWindow::onmousedown):
        (WebCore::DOMWindow::setOnmousedown):
        (WebCore::DOMWindow::onmousemove):
        (WebCore::DOMWindow::setOnmousemove):
        (WebCore::DOMWindow::onmouseout):
        (WebCore::DOMWindow::setOnmouseout):
        (WebCore::DOMWindow::onmouseover):
        (WebCore::DOMWindow::setOnmouseover):
        (WebCore::DOMWindow::onmouseup):
        (WebCore::DOMWindow::setOnmouseup):
        (WebCore::DOMWindow::onmousewheel):
        (WebCore::DOMWindow::setOnmousewheel):
        (WebCore::DOMWindow::onreset):
        (WebCore::DOMWindow::setOnreset):
        (WebCore::DOMWindow::onresize):
        (WebCore::DOMWindow::setOnresize):
        (WebCore::DOMWindow::onscroll):
        (WebCore::DOMWindow::setOnscroll):
        (WebCore::DOMWindow::onsearch):
        (WebCore::DOMWindow::setOnsearch):
        (WebCore::DOMWindow::onselect):
        (WebCore::DOMWindow::setOnselect):
        (WebCore::DOMWindow::onsubmit):
        (WebCore::DOMWindow::setOnsubmit):
        (WebCore::DOMWindow::onunload):
        (WebCore::DOMWindow::setOnunload):
        (WebCore::DOMWindow::onbeforeunload):
        (WebCore::DOMWindow::setOnbeforeunload):
        (WebCore::DOMWindow::onwebkitanimationstart):
        (WebCore::DOMWindow::setOnwebkitanimationstart):
        (WebCore::DOMWindow::onwebkitanimationiteration):
        (WebCore::DOMWindow::setOnwebkitanimationiteration):
        (WebCore::DOMWindow::onwebkitanimationend):
        (WebCore::DOMWindow::setOnwebkitanimationend):
        (WebCore::DOMWindow::onwebkittransitionend):
        (WebCore::DOMWindow::setOnwebkittransitionend):
        * page/DOMWindow.h:
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::parseMappedAttribute):
        * svg/SVGElementInstance.cpp:
        (WebCore::SVGElementInstance::onabort):
        (WebCore::SVGElementInstance::setOnabort):
        (WebCore::SVGElementInstance::onblur):
        (WebCore::SVGElementInstance::setOnblur):
        (WebCore::SVGElementInstance::onchange):
        (WebCore::SVGElementInstance::setOnchange):
        (WebCore::SVGElementInstance::onclick):
        (WebCore::SVGElementInstance::setOnclick):
        (WebCore::SVGElementInstance::oncontextmenu):
        (WebCore::SVGElementInstance::setOncontextmenu):
        (WebCore::SVGElementInstance::ondblclick):
        (WebCore::SVGElementInstance::setOndblclick):
        (WebCore::SVGElementInstance::onerror):
        (WebCore::SVGElementInstance::setOnerror):
        (WebCore::SVGElementInstance::onfocus):
        (WebCore::SVGElementInstance::setOnfocus):
        (WebCore::SVGElementInstance::oninput):
        (WebCore::SVGElementInstance::setOninput):
        (WebCore::SVGElementInstance::onkeydown):
        (WebCore::SVGElementInstance::setOnkeydown):
        (WebCore::SVGElementInstance::onkeypress):
        (WebCore::SVGElementInstance::setOnkeypress):
        (WebCore::SVGElementInstance::onkeyup):
        (WebCore::SVGElementInstance::setOnkeyup):
        (WebCore::SVGElementInstance::onload):
        (WebCore::SVGElementInstance::setOnload):
        (WebCore::SVGElementInstance::onmousedown):
        (WebCore::SVGElementInstance::setOnmousedown):
        (WebCore::SVGElementInstance::onmousemove):
        (WebCore::SVGElementInstance::setOnmousemove):
        (WebCore::SVGElementInstance::onmouseout):
        (WebCore::SVGElementInstance::setOnmouseout):
        (WebCore::SVGElementInstance::onmouseover):
        (WebCore::SVGElementInstance::setOnmouseover):
        (WebCore::SVGElementInstance::onmouseup):
        (WebCore::SVGElementInstance::setOnmouseup):
        (WebCore::SVGElementInstance::onmousewheel):
        (WebCore::SVGElementInstance::setOnmousewheel):
        (WebCore::SVGElementInstance::onbeforecut):
        (WebCore::SVGElementInstance::setOnbeforecut):
        (WebCore::SVGElementInstance::oncut):
        (WebCore::SVGElementInstance::setOncut):
        (WebCore::SVGElementInstance::onbeforecopy):
        (WebCore::SVGElementInstance::setOnbeforecopy):
        (WebCore::SVGElementInstance::oncopy):
        (WebCore::SVGElementInstance::setOncopy):
        (WebCore::SVGElementInstance::onbeforepaste):
        (WebCore::SVGElementInstance::setOnbeforepaste):
        (WebCore::SVGElementInstance::onpaste):
        (WebCore::SVGElementInstance::setOnpaste):
        (WebCore::SVGElementInstance::ondragenter):
        (WebCore::SVGElementInstance::setOndragenter):
        (WebCore::SVGElementInstance::ondragover):
        (WebCore::SVGElementInstance::setOndragover):
        (WebCore::SVGElementInstance::ondragleave):
        (WebCore::SVGElementInstance::setOndragleave):
        (WebCore::SVGElementInstance::ondrop):
        (WebCore::SVGElementInstance::setOndrop):
        (WebCore::SVGElementInstance::ondragstart):
        (WebCore::SVGElementInstance::setOndragstart):
        (WebCore::SVGElementInstance::ondrag):
        (WebCore::SVGElementInstance::setOndrag):
        (WebCore::SVGElementInstance::ondragend):
        (WebCore::SVGElementInstance::setOndragend):
        (WebCore::SVGElementInstance::onreset):
        (WebCore::SVGElementInstance::setOnreset):
        (WebCore::SVGElementInstance::onresize):
        (WebCore::SVGElementInstance::setOnresize):
        (WebCore::SVGElementInstance::onscroll):
        (WebCore::SVGElementInstance::setOnscroll):
        (WebCore::SVGElementInstance::onsearch):
        (WebCore::SVGElementInstance::setOnsearch):
        (WebCore::SVGElementInstance::onselect):
        (WebCore::SVGElementInstance::setOnselect):
        (WebCore::SVGElementInstance::onselectstart):
        (WebCore::SVGElementInstance::setOnselectstart):
        (WebCore::SVGElementInstance::onsubmit):
        (WebCore::SVGElementInstance::setOnsubmit):
        (WebCore::SVGElementInstance::onunload):
        (WebCore::SVGElementInstance::setOnunload):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::parseMappedAttribute):

2009-04-20  Geoffrey Garen  <ggaren@apple.com>

        Approved by Mark Rowe, Cameron Zwarich, Oliver Hunt, and Ojan Vafai.
        
        Used svn merge to roll out revisions 42678, 42690, 42694, 42697 because
        they broke the Tiger and Windows buildbots.

        * css/html4.css:
        * css/themeWin.css:
        * platform/graphics/SimpleFontData.cpp:
        * platform/graphics/SimpleFontData.h:
        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
        * platform/graphics/chromium/SimpleFontDataLinux.cpp:
        * platform/graphics/gtk/SimpleFontDataGtk.cpp:
        * platform/graphics/gtk/SimpleFontDataPango.cpp:
        * platform/graphics/mac/SimpleFontDataMac.mm:
        * platform/graphics/qt/SimpleFontDataQt.cpp:
        * platform/graphics/win/SimpleFontDataCGWin.cpp:
        * platform/graphics/win/SimpleFontDataCairoWin.cpp:
        * platform/graphics/win/SimpleFontDataWin.cpp:
        * platform/graphics/wx/SimpleFontDataWx.cpp:
        * rendering/RenderTextControl.cpp:
        * rendering/RenderTextControlMultiLine.cpp:
        * rendering/RenderTextControlSingleLine.cpp:

2009-04-20  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Adam Roben.

        One last loose end, discovered using COLLECT_ON_EVERY_ALLOCATION, for
        https://bugs.webkit.org/show_bug.cgi?id=21260
        Unbounded memory growth when churning elements with anonymous event handler functions
        
        * bindings/js/JSSVGElementInstanceCustom.cpp:
        (WebCore::JSSVGElementInstance::mark): Don't ASSERT that an ElementInstance's
        correspondingElement has a JS wrapper. If a GC falls exactly between the
        allocation of the ElementInstance wrapper and the correspondingElement
        wrapper, the correspondingElement won't have a wrapper at the time we
        mark the ElementInstance's wrapper.

2009-04-20  Brady Eidson  <beidson@apple.com>

        Rubberstamped by Mark Rowe

        Clean builds are broken on case-sensitive filesystems.  Let's fix, shall we?

        * platform/graphics/SimpleFontData.cpp: Remove "String.h" include.  Ojan probably intended to include
          "PlatformString.h" which was unnecessary because it is pulled in through other headers.  This wasn't a 
          build failure on case-insensitive file systems because those systems would find the system <string.h>, averting
          the warning.

2009-04-20  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Darin Adler.

        Last patch for https://bugs.webkit.org/show_bug.cgi?id=21260
        Unbounded memory growth when churning elements with anonymous event handler functions
        
        Converted "lazy" event listeners to be unprotected, just like all the others.

        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::JSEventListener):
        (WebCore::JSEventListener::~JSEventListener):
        (WebCore::JSEventListener::jsFunction):
        (WebCore::JSEventListener::markJSFunction):
        (WebCore::JSEventListener::handleEvent):
        (WebCore::JSEventListener::virtualIsInline):
        * bindings/js/JSEventListener.h:
        (WebCore::JSEventListener::isInline): Merged JSAbstractEventListener
        into JSEventListener. Now that the only difference between JSEventListener
        and JSLazyEventListener is that JSLazyEventListener compiles lazily,
        there's no need for an abstract base class.

        * bindings/js/JSLazyEventListener.cpp: Converted JSLazyEventListener to
        inherit from JSEventListener and match its un-GC-protected behavior.
        (WebCore::JSLazyEventListener::JSLazyEventListener): ditto
        (WebCore::JSLazyEventListener::parseCode): ditto
        (WebCore::createInlineEventListener): When creating a lazy event listener,
        ensure that the related node has a JS wrapper to mark the listener. Since
        the parser makes these listeners, it's possible that no JS reference has
        been made to the node yet.
        * bindings/js/JSLazyEventListener.h: ditto

        * dom/EventListener.h:
        (WebCore::EventListener::clearJSFunction): Removed an usused function.

2009-04-20  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=25299
        Don't bound caret to root line box if it is still inside its containing block
        
        Can't yet write tests for behavior of non-standard caret widths.

        * rendering/RenderText.cpp:
        (WebCore::RenderText::localCaretRect):

2009-04-20  Steve Falkenburg  <sfalken@apple.com>

        Separate JavaScriptCore.dll from WebKit.dll.
        Slight performance improvement or no change on benchmarks.
        
        Allows us to break a circular dependency between CFNetwork and WebKit on Windows,
        and simplifies standalone JavaScriptCore builds.

        Reviewed by Oliver Hunt.

        * config.h: Specify __declspec(dllexport/dllimport) appropriately when exporting data.

2009-04-20  Anders Carlsson  <andersca@apple.com>

        Reviewed by Sam Weinig.

        <rdar://problem/6722845> In the Cocoa event model, NPWindow's window field should be null

        * bridge/npapi.h:
        (_NPCocoaEvent::):
        Add a CGContextRef member to the draw struct. Add an NPCoordinateSpace enum.
        
        * plugins/npfunctions.h:
        Add a prototype for NPN_ConvertPoint.

2009-04-10  Ojan Vafai  <ojan@chromium.org>

        Reviewed by Dan Bernstein.

        Make textarea and text input metrics more closely match IEs.
        https://bugs.webkit.org/show_bug.cgi?id=15312

        This involves:
        -set text input width to size*avgCharWidth + maxCharWidth - avgCharWidth
        -set textarea width to cols*avgCharWidth
        -Make default CSS match IEs
        -Correctly initializing m_avgCharWidth and m_maxCharWidth for each platform and SVG.

        Those values for textarea and inputs were derived by doing a ton of manual
        testing of IE's width values for various textareas and fonts.

        To get the average and max character width of a font, we do the following
        for each platform:
        -Win: TextMetrics expose avgCharWidth and maxCharWidth
        -SVG: avgCharWidth = width of an '0', fallback on width of a space glyph, then m_xHeight
            maxCharWidth = width of a 'W' for roman fonts, fallback on m_ascent
        -Linux: avgCharWidth = width of an '0', fallback on m_xHeight
            maxCharWidth = max of avgCharWidth and m_ascent
        -Mac: look in the OS/2 table for avgCharWidth and grab the maxCharWidth off the font.
            If either one is not there, then calculate the value using the Linux approach.

        Linux ports could probably dig into the OS/2 table as well, but I'll leave
        that up to them to implement.

        Tests: fast/forms/text-control-intrinsic-widths.html
               fast/forms/textarea-metrics.html
               svg/custom/svg-fonts-in-text-controls.html

        * css/html4.css:
        * css/themeWin.css:
        * platform/graphics/SimpleFontData.cpp:
        (WebCore::SimpleFontData::SimpleFontData):
        (WebCore::SimpleFontData::initCharWidths):
        * platform/graphics/SimpleFontData.h:
        (WebCore::SimpleFontData::maxCharWidth):
        (WebCore::SimpleFontData::avgCharWidth):
        * platform/graphics/chromium/SimpleFontDataChromiumWin.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/chromium/SimpleFontDataLinux.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/gtk/SimpleFontDataGtk.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/gtk/SimpleFontDataPango.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/mac/SimpleFontDataMac.mm:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/qt/SimpleFontDataQt.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/win/SimpleFontDataCGWin.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/win/SimpleFontDataCairoWin.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformCharWidthInit):
        * platform/graphics/win/SimpleFontDataWin.cpp:
        (WebCore::SimpleFontData::initGDIFont):
        * platform/graphics/wx/SimpleFontDataWx.cpp:
        (WebCore::SimpleFontData::platformCharWidthInit):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::calcPrefWidths):
        * rendering/RenderTextControlMultiLine.cpp:
        (WebCore::RenderTextControlMultiLine::createInnerTextStyle):
        * rendering/RenderTextControlSingleLine.cpp:
        (WebCore::RenderTextControlSingleLine::preferredContentWidth):

2009-04-17  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Remove m_absoluteBounds hack from SVG renderers and move outlineBoundsForRepaint into RenderSVGModelObject
        https://bugs.webkit.org/show_bug.cgi?id=25276

        This also exposed a buggy paint check in RenderSVGContainer::layout()
        we should repaint if we are self painting OR if our kids changed, not AND.

        Writing real outlineBoundsForRepaint required writing a mapLocalToContainer() function

        No functional changes, thus no tests.

        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::localToParentTransform):
        (WebCore::RenderPath::layout):
        * rendering/RenderPath.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        * rendering/RenderSVGContainer.h:
        * rendering/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::mapLocalToContainer):
        (WebCore::RenderSVGModelObject::outlineBoundsForRepaint):
        * rendering/RenderSVGModelObject.h:
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::layout):
        (WebCore::RenderSVGRoot::paint):
        (WebCore::RenderSVGRoot::localToParentTransformWithoutCSSParentOffset):
        (WebCore::RenderSVGRoot::localToParentTransform):
        (WebCore::RenderSVGRoot::computeRectForRepaint):
        * rendering/RenderSVGRoot.h:
        * rendering/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::layout):

2009-04-20  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Eric Seidel

        https://bugs.webkit.org/show_bug.cgi?id=25282
        
        outlineBoundsForRepaint() should compute a quad relative to the
        repaintContainer. This fixes the repaint issues originally fixed in
        https://bugs.webkit.org/show_bug.cgi?id=12885 for elements in compositing layers.
        Failure was only apparent when building with ACCELERATED_COMPOSITING enabled.

        Tests: compositing/repaint/content-into-overflow.html
               compositing/repaint/overflow-into-content.html

        * rendering/RenderBox.cpp:
        (WebCore::RenderBox::outlineBoundsForRepaint):

2009-04-20  Sam Weinig  <sam@webkit.org>

        Rubber-stamped by Tim Hatcher.

        Add licenses for xcconfig files.

        * Configurations/Base.xcconfig:
        * Configurations/DebugRelease.xcconfig:
        * Configurations/FeatureDefines.xcconfig:
        * Configurations/Version.xcconfig:
        * Configurations/WebCore.xcconfig:

2009-04-20  Eric Roman  <eroman@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25261
        Implement the V8 binding for DOMWindow.event similarly to JSC, by using
        the custom getter boilerplate from the IDL file. 
        Also, stub out DOMWindow.crypto which is defined by the idl.

        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::invokeEventHandler):
        * bindings/v8/custom/V8DOMWindowCustom.cpp:
        (WebCore::ACCESSOR_GETTER):

2009-04-20  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by Xan Lopez.

        https://bugs.webkit.org/show_bug.cgi?id=25243
        Crash when data:// loads are cancelled

        Properly handle cancellation of the load for data:// loads. This
        fixes crashing in the followin test:

        plugins/return-error-from-new-stream-callback-in-full-frame-plugin.html

        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::parseDataUrl):

2009-04-19  Dan Bernstein  <mitz@apple.com>

        - maybe fix release builds

        * dom/ScriptElement.cpp:
        (WebCore::ScriptElementData::notifyFinished):

2009-04-19  Dan Bernstein  <mitz@apple.com>

        - not fix release builds

        * dom/Document.cpp:
        (WebCore::Document::executeScriptSoonTimerFired):

2009-04-19  Dan Bernstein  <mitz@apple.com>

        Reviewed by Mark Rowe.

        - fix <rdar://problem/6734365> REGRESSION eBay "Save this search" link
          does nothing the second time search results are opened

        Test: fast/dom/HTMLScriptElement/nested-execution.html

        Instead of executing scripts as soon as they finish loading, which may
        happen synchronously during execution of another script, defer their
        execution until the next run loop iteration, using a queue that is
        similar to the HTML5 notion of the "list of scripts that will execute as
        soon as possible", and in my testing was consistent with how Firefox
        behaved.

        * dom/Document.cpp:
        (WebCore::Document::Document): Initialize m_executeScriptSoonTimer.
        (WebCore::Document::~Document): deref() script elements in
        m_scriptsToExecuteSoon.
        (WebCore::Document::executeScriptSoonTimerFired): Added. Executes the
        scripts in m_scriptsToExecuteSoon and deref()s them.
        (WebCore::Document::executeScriptSoon): Added. Appends to
        m_scriptsToExecuteSoon and ref()s the script element, which keeps the
        ScriptElementData alive as well.
        * dom/Document.h:
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElementData::ScriptElementData): Initialize m_requested.
        (WebCore::ScriptElementData::requestScript): Set m_requested to true, to
        prevent further load requests.
        (WebCore::ScriptElementData::execute): Added. Moved the code from
        notifyFinished() which should not execute synchronously here, to be
        called by the Document on a 0-interval timer.
        (WebCore::ScriptElementData::notifyFinished): Moved the code to
        dispatch events and evaluate the script, which should not execute
        synchronously, out of here.
        (WebCore::ScriptElementData::ignoresLoadRequest): Changed to test for
        m_requested instead of m_cachedScript, because the latter is cleared
        before the script is evaluated.
        * dom/ScriptElement.h:

2009-04-19  Oliver Hunt  <oliver@apple.com>

        Reviewed by Antti Koivisto and Darin Adler.

        <rdar://problem/6127705> Excessive memory consumption on image load failure

        When we fail to decode an image we clear most of the image data, but not the
        input data itself, which can be backed by a CFData object that itself holds onto
        a few hundred Kbs of memory.  This patch merely ensures that this buffer gets
        cleared.

        * loader/CachedImage.cpp:
        (WebCore::CachedImage::error):

2009-04-19  Darin Adler  <darin@apple.com>

        Reviewed by Sam Weinig.

        Add hooks so sudden termination will not cause loss of icons or local storage.
        rdar://problem/5951701

        * loader/icon/IconDatabase.cpp: Marked various constants static to give them
        internal linkage.
        (WebCore::IconDatabase::IconDatabase): Added initial value for m_syncTimer.
        Removed unneeded initial value for m_defaultIconRecord. Changed assertion to
        work cross-platform.
        (WebCore::IconDatabase::wakeSyncThread): Added disableSuddenTermination, so
        we won't terminate until the sync thread has done its thing.
        (WebCore::IconDatabase::scheduleOrDeferSyncTimer): Added disableSuddenTermination,
        so we won't terminate if we have an outstanding sync timer.
        (WebCore::IconDatabase::syncTimerFired): Added enableSuddenTermination, to
        balance the one in scheduleOrDeferSyncTimer.
        (WebCore::IconDatabase::syncThreadMainLoop): Added enableSuddenTermination, to
        balance the one in wakeSyncThread.
        (WebCore::IconDatabase::deleteAllPreparedStatements): Use clear() instead of set(0).

        * loader/icon/IconDatabase.h: Use a Timer instead of an OwnPtr<Timer>.

        * storage/LocalStorageArea.cpp:
        (WebCore::LocalStorageArea::scheduleFinalSync): Added disableSuddenTermination.
        (WebCore::LocalStorageArea::scheduleItemForSync): Ditto.
        (WebCore::LocalStorageArea::scheduleClear): Ditto.
        (WebCore::LocalStorageArea::syncTimerFired): Added a disableSuddenTermination if
        we schedule a performSync callback for later and an unconditional
        enableSuddenTermination to balance the ones in the schedule calls above.
        (WebCore::LocalStorageArea::sync): Factored out the work of the sync function so it
        can continue to use early return idiom.
        (WebCore::LocalStorageArea::performSync): Added a call to enableSuddenTermination.

        * storage/LocalStorageArea.h: Added declaration of the sync function.

2009-04-19  David Kilzer  <ddkilzer@apple.com>

        Make FEATURE_DEFINES completely dynamic

        Reviewed by Darin Adler.

        Make FEATURE_DEFINES depend on individual ENABLE_FEATURE_NAME
        variables for each feature, making it possible to remove all
        knowledge of FEATURE_DEFINES from build-webkit.

        * Configurations/FeatureDefines.xcconfig: Extract a variable
        from FEATURE_DEFINES for each feature setting.

2009-04-18  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Alexey Proskuryakov.

        More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
        Unbounded memory growth when churning elements with anonymous event handler functions
        
        Removed a little more complexity from event handler creation and destruction.
        
        Removed the jsProtectedEventListeners, jsProtectedInlineEventListeners,
        and jsInlineEventListeners maps, and all the code for managing them.
        
        ProtectedEventListeners don't exist anymore, so they're easy to nix.
        
        Inline EventListeners do still exist, but there's no reason to track
        them in a map. The map exists to enable 'removeEventListener' to associate
        a unique JSEventListener with a given JavaScript function. But the
        'removeEventListener' API only works with non-inline event listeners!
        
        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
        (WebCore::JSDOMGlobalObject::findJSEventListener):
        (WebCore::JSDOMGlobalObject::findOrCreateJSEventListener):
        (WebCore::JSDOMGlobalObject::createJSInlineEventListener):
        * bindings/js/JSDOMGlobalObject.h:
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::JSEventListener):
        (WebCore::JSEventListener::clearJSFunctionInline):
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::JSLazyEventListener::~JSLazyEventListener):
        (WebCore::JSLazyEventListener::parseCode):
        * bindings/scripts/CodeGeneratorJS.pm:

2009-04-18  Dan Bernstein  <mitz@apple.com>

        - try to fix the Windows build

        * editing/VisiblePosition.cpp:
        (WebCore::VisiblePosition::characterAfter):

2009-04-18  Dan Bernstein  <mitz@apple.com>

        - revert the previous change, which was to a file that the Windows
          port does not even use

        * icu/unicode/utf16.h:

2009-04-18  Dan Bernstein  <mitz@apple.com>

        Reviewed by Geoffrey Garen.

        - try to fix the Windows build

        * icu/unicode/utf16.h:

2009-04-18  Simon Fraser  <simon.fraser@apple.com>

        Reviewed by Antti Koivisto.
        
        https://bugs.webkit.org/show_bug.cgi?id=25066
        
        When a <video> element gained a RenderLayer via opacity, reflection etc., the
        layer hierarchy was not correctly updated because RenderMedia skipped a level
        when asked for its children; it skipped m_controlsShadowRoot's renderer, which
        actually has a layer.

        Test: fast/layers/video-layer.html

        * rendering/MediaControlElements.cpp:
        (WebCore::MediaControlShadowRootElement::MediaControlShadowRootElement):
        Don't manually call setParent() on the renderer. It will happen later
        as a result of addChild().
        
        * rendering/RenderMedia.cpp:
        (WebCore::RenderMedia::createControlsShadowRoot):
        Add m_controlsShadowRoot's renderer as a child. 

        * rendering/RenderMedia.h:
        (WebCore::RenderMedia::children):
        Now maintain a RenderObjectChildList, m_children, and remove the unneeded
        removeChild() method. Make the two children() methods inline.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::moveLayers):
        Assert if moveLayers() is called with an oldParent that is not the
        layer's actual parent (which would have revealed this bug).

2009-04-18  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Cameron Zwarich.

        Fixed a layout test failure, caused by my last check-in
        (fast/dom/script-element-gc.html).

        * bindings/js/JSDOMBinding.cpp:
        (WebCore::isObservableThroughDOM):
        * html/HTMLScriptElement.h:
        (WebCore::HTMLScriptElement::haveFiredLoadEvent): Treat script elements
        just like image elements: if a script element is loading, mark its JS
        wrapper, even if the element is not in the document.

2009-04-18  Jian Li  <jianli@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25170
        Upstream V8WorkerCustom.cpp and V8WorkerContextCustom.cpp for V8 bindings.

        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::findOrCreateEventListener):
        * bindings/v8/WorkerContextExecutionProxy.h:
        * bindings/v8/custom/V8WorkerContextCustom.cpp: Added.
        * bindings/v8/custom/V8WorkerCustom.cpp: Added.

2009-04-18  Jian Li  <jianli@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/post_bug.cg://bugs.webkit.org/show_bug.cgi?id=25167 
        Change createHiddenXHRDependency and removeHiddenXHRDependency so that they can be used by other custom code in V8 bindings.

        * bindings/v8/V8Utilities.cpp: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.cpp.
        (WebCore::createHiddenDependency):
        (WebCore::removeHiddenDependency):
        * bindings/v8/V8Utilities.h: Renamed from WebCore/bindings/v8/V8XMLHttpRequestUtilities.h.
        * bindings/v8/custom/V8XMLHttpRequestCustom.cpp:
        (WebCore::ACCESSOR_SETTER):
        (WebCore::CALLBACK_FUNC_DECL):
        * bindings/v8/custom/V8XMLHttpRequestUploadCustom.cpp:
        (WebCore::ACCESSOR_SETTER):
        (WebCore::CALLBACK_FUNC_DECL):

2009-04-18  Drew Wilson  <amw@apple.com>

        <rdar://problem/6781407> VisiblePosition.characterAfter should return UChar32

        Reviewed by Dan Bernstein.

        No test case since there is no change in behavior.

        * editing/VisiblePosition.cpp:
        (WebCore::VisiblePosition::characterAfter): Now handles surrogate
        pairs correctly and returns a UChar32.
        * editing/VisiblePosition.h:
        (WebCore::VisiblePosition::characterBefore): Now returns a UChar32.
        * editing/visible_units.cpp:
        (WebCore::endOfFirstWordBoundaryContext): Renamed
        firstNonComplexContextLineBreak() to this. Changed it to use the
        generic requiresContextForWordBoundary() instead of
        hasLineBreakingPropertyComplexContext().
        (WebCore::startOfLastWordBoundaryContext): Replaces
        lastNonComplexContextLineBreak(), but returns the offset of
        the character after the last character that does not require
        context for word breaking. Also changed to use
        requiresContextForWordBoundary().
        (WebCore::previousBoundary): Updated for the above changes in
        names and semantics, and changed to use
        requiresContextForWordBoundary().
        (WebCore::nextBoundary): Ditto.
        (WebCore::startWordBoundary): Ditto.
        (WebCore::endWordBoundary): Ditto.
        (WebCore::previousWordPositionBoundary): Ditto.
        (WebCore::nextWordPositionBoundary): Ditto.
        * platform/text/TextBoundaries.h:
        (WebCore::requiresContextForWordBoundary): Added.
        * platform/text/mac/TextBoundaries.mm:

2009-04-18  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Cameron Zwarich.

        Fixed <rdar://problem/6797442> | https://bugs.webkit.org/show_bug.cgi?id=25285
        REGRESSION (r42569): Profiles cannot be selected in inspector profiler
        
        EventListeners are shared; RegisteredEventListeners are not. Therefore,
        when a node wrapper needs to invalidate the node's JS event listeners,
        it should invalidate its RegisteredEventListeners, not its EventListeners.
        Otherwise, it might invalidate an EventListener shared by another node.

        * dom/RegisteredEventListener.h:
        (WebCore::invalidateEventListeners): ditto

2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Mark Rowe.

        <rdar://problem/6781295> video.buffered and video.seekable are not
        the same. video.buffered should return only what is buffered and
        not what is seekable

        * WebCore.base.exp: Added wkQTMovieMaxTimeSeekable.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::maxTimeSeekable): Return wkQTMovieMaxTimeSeekable.

        * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeSeekable.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2009-04-18  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Adele Peterson.

        <rdar://problem/6747241> work around QTKit no longer reaching
        QTMovieLoadStateComplete

        * WebCore.base.exp: Export wkQTMovieMaxTimeLoadedChangeNotification.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::createQTMovie): observe QTMovieMaxTimeLoadedChangeNotification.
        (WebCore::MediaPlayerPrivate::updateStates): compare duuration() with maxTimeLoaded() instead of
        using QTMovieLoadStateComplete to determine if a movie are fully loaded.

        * platform/mac/WebCoreSystemInterface.h: Add wkQTMovieMaxTimeLoadedChangeNotification.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2009-04-18  Nikolas Zimmermann  <nikolas.zimmermann@torchmobile.com>

        Reviewed by George Staikos.

        Make WML work again, most regressions test were failing.

        * dom/Document.cpp: Be sure to create WML elements in WML namespace. Otherwhise hasTagName() comparisions fail.
        (WebCore::Document::createElement):
        * wml/WMLCardElement.cpp: Add ASSERT(hasTagName(cardTag)) to catch errors like this in future.
        (WebCore::WMLCardElement::WMLCardElement):
        * wml/WMLTagNames.in: Wrap comment in #if 0/#endif blocks, to silence the generation script.

2009-04-17  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=25277
        If there is no line wrapping, a caret can leave its containing block but it shouldn't leave its root line box
        
        Also added code to handle a caret wider than one pixel.
        
        Added fast/inline/25277.html and fast/inline/25277-2.html

        * rendering/RenderText.cpp:
        (WebCore::RenderText::localCaretRect): Distribute a caret's width to either side of the offset,
        so that a caret between two characters doesn't hang over one character more than the other.
        If there is no wrapping, the caret can leave its containing block, but not its root line box.

2009-04-17  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Oliver Hunt.

        More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
        Unbounded memory growth when churning elements with anonymous event handler functions
        
        Some refactoring of "inline" event listeners.
        
        Renames:
            dispatchEventForType => dispatchEvent
            setWindowInlineEventListenerForTypeAndAttribute => setWindowInlineEventListener
            removeInlineEventListenerForType => clearInlineEventListener
            setInlineEventListenerForType => setInlineEventListener
            inlineEventListenerForType => getInlineEventListener

        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::eventParameterName):
        (WebCore::JSLazyEventListener::JSLazyEventListener):
        (WebCore::createInlineEventListener):
        * bindings/js/JSLazyEventListener.h: Added two helper functions for
        creating "inline" event listeners. These replace Document::createEventListener,
        and abstract the creation of JS event listeners for DOM attributes out
        of the DOM. Removed legacy JSProtectedEventListener constructor code for
        adding the event listener's function to a map, since lazy event listeners
        don't have functions at construction time.

        * dom/Document.cpp:
        (WebCore::Document::setFocusedNode):
        * dom/Document.h:
        (WebCore::Document::isSVGDocument):
        * dom/Element.cpp:
        (WebCore::Element::setWindowInlineEventListener):
        * dom/Element.h: Updated for renames. Nixed Document::createEventListener,
        mentioned above. Moved setWindowInlineEventListenerForTypeAndAttribute
        to Element, for simplicity.

        * dom/InputElement.cpp:
        (WebCore::InputElement::setValueFromRenderer):
        * dom/Node.cpp:
        (WebCore::Node::dispatchFocusEvent):
        (WebCore::Node::dispatchBlurEvent):
        (WebCore::Node::dispatchEvent):
        (WebCore::Node::clearInlineEventListener):
        (WebCore::Node::setInlineEventListener):
        (WebCore::Node::getInlineEventListener):
        (WebCore::Node::onabort):
        (WebCore::Node::setOnabort):
        (WebCore::Node::etc.):
        * dom/Node.h: Updated for renames.
        
        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplacementFragment::ReplacementFragment): Updated for renames.
        
        Updated these files for renames, and to use the new createInlineEventListener
        helper function:

        * html/HTMLBodyElement.cpp:
        (WebCore::HTMLBodyElement::parseMappedAttribute):
        * html/HTMLButtonElement.cpp:
        (WebCore::HTMLButtonElement::parseMappedAttribute):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::parseMappedAttribute):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::onChange):
        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::prepareSubmit):
        (WebCore::HTMLFormElement::reset):
        (WebCore::HTMLFormElement::parseMappedAttribute):
        * html/HTMLFrameElementBase.cpp:
        (WebCore::HTMLFrameElementBase::parseMappedAttribute):
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::parseMappedAttribute):
        * html/HTMLImageElement.cpp:
        (WebCore::HTMLImageElement::parseMappedAttribute):
        * html/HTMLImageLoader.cpp:
        (WebCore::HTMLImageLoader::dispatchLoadEvent):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseMappedAttribute):
        (WebCore::HTMLInputElement::onSearch):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::loadInternal):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::parseMappedAttribute):
        * html/HTMLScriptElement.cpp:
        (WebCore::HTMLScriptElement::parseMappedAttribute):
        (WebCore::HTMLScriptElement::dispatchLoadEvent):
        (WebCore::HTMLScriptElement::dispatchErrorEvent):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::parseMappedAttribute):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::parseMappedAttribute):
        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::notifyFinished):
        * page/AccessibilityRenderObject.cpp:
        (WebCore::AccessibilityRenderObject::mouseButtonListener):
        * page/DOMWindow.cpp:
        * page/DOMWindow.h:
        (WebCore::DOMWindow::eventListeners):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::canMouseDownStartSelect):
        (WebCore::EventHandler::canMouseDragExtendSelect):
        (WebCore::EventHandler::sendScrollEvent):
        * page/Page.cpp:
        (WebCore::networkStateChanged):
        * rendering/RenderListBox.cpp:
        (WebCore::RenderListBox::valueChanged):
        * rendering/RenderTextControl.cpp:
        (WebCore::RenderTextControl::selectionChanged):
        * svg/SVGElement.cpp:
        (WebCore::SVGElement::parseMappedAttribute):
        * svg/SVGElementInstance.cpp:
        * svg/SVGImageLoader.cpp:
        (WebCore::SVGImageLoader::dispatchLoadEvent):
        * svg/SVGSVGElement.cpp:
        (WebCore::SVGSVGElement::parseMappedAttribute):
        * svg/SVGScriptElement.cpp:
        (WebCore::SVGScriptElement::dispatchErrorEvent):
        * wml/WMLInputElement.cpp:
        (WebCore::WMLInputElement::defaultEventHandler):

2009-04-17  David Kilzer  <ddkilzer@apple.com>

        Simplify FEATURE_DEFINES definition

        Reviewed by Darin Adler.

        This moves FEATURE_DEFINES and its related ENABLE_FEATURE_NAME
        variables to their own FeatureDefines.xcconfig file.  It also
        extracts a new ENABLE_GEOLOCATION variable so that
        FEATURE_DEFINES only needs to be defined once.

        * Configurations/FeatureDefines.xcconfig: Added.
        * Configurations/WebCore.xcconfig: Removed definition of
        ENABLE_SVG_DOM_OBJC_BINDINGS and FEATURE_DEFINES.  Added include
        of FeatureDefines.xcconfig.
        * WebCore.xcodeproj/project.pbxproj: Added
        FeatureDefines.xcconfig file.
        * bindings/scripts/CodeGeneratorObjC.pm: When creating a list of
        command-line macro definitions, split on one-or-more spaces
        instead of a single space since the FEATURE_DEFINES macro may
        now contain more than one space between macros if some macros
        aren't defined.

2009-04-17  Brady Eidson  <beidson@apple.com>

        Reviewed by Mark Rowe

        <rdar://problem/6786999> Tiger WebKit shouldn't try to POST on back/forward without nagging.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::willLoadFromCache):

2009-04-17  Darin Adler  <darin@apple.com>

        Reviewed by Timothy Hatcher.

        Added sudden termination functions that can be called without involving
        the page or client.

        * GNUmakefile.am: Added SuddenTermination.h.
        * WebCore.vcproj/WebCore.vcproj: Ditto.
        * WebCore.xcodeproj/project.pbxproj: Ditto. Also added SuddenTermination.mm.

        * platform/SuddenTermination.h: Added.
        * platform/mac/SuddenTermination.mm: Added.

2009-04-17  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Move more code into RenderSVGModelObject

        needsLayer() already returns false from RenderSVGModelObject
        lineHeight and baselinePosition are from days of RenderPath having RenderBox parents.

        I also added comments to explain how focus rings work (now that I understand)
        I got rid of two more uses of m_absoluteBounds (nearly dead!)

        * rendering/RenderPath.cpp:
        * rendering/RenderPath.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::paint):
        (WebCore::RenderSVGContainer::addFocusRingRects):
        * rendering/RenderSVGContainer.h:
        * rendering/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::absoluteRects):
        (WebCore::RenderSVGModelObject::absoluteQuads):
        * rendering/RenderSVGModelObject.h:

2009-04-16  Peter Kasting  <pkasting@google.com>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=25238
        Invalidate the hovered scrollbar part when resetting the pressed part,
        since once there is no pressed part we can draw a hovered state.

        * platform/Scrollbar.cpp:
        (WebCore::Scrollbar::setHoveredPart):
        (WebCore::Scrollbar::setPressedPart):

2009-04-16  Darin Fisher  <darin@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25223
        REGRESSION: Back button after form submission to the same URL fails to navigate.

        Test: http/tests/navigation/post-goback-same-url.html

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::loadItem): Check if the page we are leaving has
        FormData.

2009-04-17  Nikolas Zimmermann  <nikolas.zimmerman@torchmobile.com>

        Not reviewed. Fix WML enabled builds.

        * rendering/RenderTableRow.cpp: Remove dead code, which is no longer necessary.
        (WebCore::RenderTableRow::addChild):
        * wml/WMLInputElement.cpp: Apply same fix HTMLInputElement received. Covert RenderObject's to RenderTextControl where needed.
        (WebCore::WMLInputElement::defaultEventHandler):

2009-04-17  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.
        
        https://bugs.webkit.org/show_bug.cgi?id=24849

        Add support for the media element 'played' attribute.
        This involves support of "normalized TimeRanges" as described by
        the spec.

        Test: media/video-played.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::HTMLMediaElement): Renamed 
        m_currentTimeDuringSeek->m_lastSeekTime. Added m_playing and m_playedTimeRanges.
        (WebCore::HTMLMediaElement::loadInternal): Reset m_playing, m_lastSeekTime, and
        m_playedTimeRanges
        (WebCore::HTMLMediaElement::seek): Set current time to m_playedTimeRanges
        (WebCore::HTMLMediaElement::currentTime): m_currentTimeDuringSeek -> m_lastSeekTime
        (WebCore::HTMLMediaElement::played): Returns m_playedTimeRanges.
        (WebCore::HTMLMediaElement::updatePlayState): Add the new played time ranges when pausing. 
        Set the m_playing flag.
        * html/HTMLMediaElement.h:

        * html/TimeRanges.cpp:
        (TimeRanges::add): Merge range(s) if overlap.
        * html/TimeRanges.h: Add various helpers (below).
        (WebCore::TimeRanges::Range::isPointInRange): Added.
        (WebCore::TimeRanges::Range::isOverlappingRange): Ditto.
        (WebCore::TimeRanges::Range::unionWithOverlappingRange): Ditto.
        (WebCore::TimeRanges::Range::isBeforeRange): Ditto.

2009-04-17  Darin Adler  <darin@apple.com>

        Reviewed by Antti Koivisto.

        Bug 25210: don't use ObjC methods to wrap/unwrap DOM objects with ObjC
        https://bugs.webkit.org/show_bug.cgi?id=25210

        * WebCore.base.exp: Export the core and kit function overloads that are used
        in WebKit. Also resorted this file.

        * WebCore.xcodeproj/project.pbxproj: Re-added DOMHTMLCanvasElement.h to fix
        a strange problem with the file type.

        * bindings/objc/DOM.mm: Removed the many extraneous includes. Added new includes
        so we can use and implement the new core and kit functions. Import DOMInternal.h
        first so it can do its public/private magic.
        (-[DOMNode _rootObject]): Changed to use early-return style.
        (kitClass): Added. Tells the wrapper generator what kind of node class to create
        to wrap DOM nodes. This has the code that used to be in the _wrapNode method.
        (kit): Added. Takes an EventTarget and makes the appropriate type of wrapper,
        dpending on whether it's a Node or an SVGElementInstance. This replace methods
        that used to be on both of those classes.
        (-[DOMNode boundingBox]): Changed to use early return, and the core function.
        (-[DOMNode lineBoxRects]): Ditto.
        (-[DOMNode renderedImage]): Ditto.
        (-[DOMRange boundingBox]): Ditto.
        (-[DOMRange lineBoxRects]): Ditto.
        (-[DOMElement image]): Ditto.
        (-[DOMElement _font]): Ditto.
        (-[DOMElement _imageTIFFRepresentation]): Ditto.
        (-[DOMElement _getURLAttribute:]): Ditto.
        (-[DOMElement isFocused]): Ditto.
        (kit): Hand-wrote the version of this for NodeFilter, since it's a protocol,
        not a class in the binding.
        (core): Ditto.
        (-[DOMNodeFilter acceptNode:]): Use core.

        * bindings/objc/DOMAbstractView.mm:
        (-[DOMAbstractView document]): Use kit.
        (-[DOMAbstractView _disconnectFrame]): Call removeDOMWrapper, which is no longer
        in the WebCore namespace, since it's headed for WebKit in the future.
        (core): Hand-wrote the version of this for DOMAbstractView.mm, since we store
        a pointer to the Frame, not the DMWindow.
        (kit): Ditto.

        * bindings/objc/DOMCSS.mm:
        (kitClass): Added. Tells the wrapper generator what kind of node class to create
        to wrap CSS objects. This has the code that used to be in the _wrapStyleSheet,
        _wrapCSSRule, and _wrapCSSValue methods.

        * bindings/objc/DOMEvents.mm:
        (kitClass): Added. Tells the wrapper generator what kind of node class to create
        to wrap event objects. This has the code that used to be in the _wrapEvent methods.

        * bindings/objc/DOMHTML.mm:
        (-[DOMHTMLDocument createDocumentFragmentWithMarkupString:baseURL:]): Use kit and core.
        (-[DOMHTMLDocument createDocumentFragmentWithText:]): Ditto.
        (-[DOMHTMLDocument _createDocumentFragmentWithMarkupString:baseURLString:]): Ditto.
        (-[DOMHTMLInputElement _rectOnScreen]): Ditto.
        (-[DOMHTMLInputElement _replaceCharactersInRange:withString:selectingFromIndex:]): Ditto.
        (-[DOMHTMLInputElement _selectedRange]): Ditto.
        (-[DOMHTMLInputElement _setAutofilled:]): Ditto.
        (-[DOMHTMLSelectElement _activateItemAtIndex:]): Ditto.
        (-[DOMHTMLInputElement _isEdited]): Ditto.
        (-[DOMHTMLTextAreaElement _isEdited]): Ditto.
        (kitClass): Added. Gives HTMLOptionCollection objects an appropriate wrapper.

        * bindings/objc/DOMInternal.h: Removed most of the imports. There's no reason
        to have this header include all the other internal DOM headers. Removed unneeded
        interfaces, including the redeclaration of _init in DOMObject, since it's already
        inherited from WebScriptObject. Moved all the functions out of the WebCore
        namespace since this code is destined for WebKit, which doesn't use a namespace.
        Added kit and core functions for the two classes that live in this header.

        * bindings/objc/DOMInternal.mm:
        (-[WebScriptObject _initializeScriptDOMNodeImp]): Use core.

        * bindings/objc/DOMObject.h: Made the _internal field be private instead of
        protected. This also allows the "#define private public" trick to be used to
        make the field accessible inside the bindings code.

        * bindings/objc/DOMObject.mm:
        (-[DOMObject dealloc]): Updated for namespace change.
        (-[DOMObject sheet]): Use core and kit functions.

        * bindings/objc/DOMRGBColor.mm:
        (-[DOMRGBColor dealloc]): Updated for namespace change.
        (-[DOMRGBColor red]): Use kit function.
        (-[DOMRGBColor green]): Ditto.
        (-[DOMRGBColor blue]): Ditto.
        (-[DOMRGBColor alpha]): Ditto.
        (core): Added. Replaces the _RGBColor method.
        (kit): Added. Replaces the _wrapRGBColor method.

        * bindings/objc/DOMSVGPathSegInternal.mm:
        (kitClass): Added. Replaces the _wrapSVGPathSeg method.

        * bindings/objc/DOMUtility.mm:
        (JSC::createDOMWrapper): Use kit function.
        (createDOMWrapper): Ditto.

        * bindings/objc/DOMXPath.mm:
        (core): Added. Replaces the _xpathNSResolver method.
        (kit): Added. Replaces the _wrapXPathNSResolver method.

        * bindings/objc/ObjCEventListener.mm:
        (WebCore::ObjCEventListener::find): Changed to use early return.
        (WebCore::ObjCEventListener::handleEvent): Use kit function.

        * bindings/objc/ObjCNodeFilterCondition.mm:
        (WebCore::ObjCNodeFilterCondition::acceptNode): Use kit function.

        * bindings/objc/WebScriptObject.mm:
        (+[WebScriptObject scriptObjectForJSObject:originRootObject:rootObject:]):
        Updated for namespace change.

        * bindings/scripts/CodeGeneratorObjC.pm: Changed spelling of "license"
        to U.S. spelling. Removed GetObjCTypeMaker, GetObjCTypeGetterName,
        GetInternalTypeGetterSignature, and GetInternalTypeMakerSignature.
        Changed includes to conform to new scheme. Generate core and kit
        functions instead of methods and calls to those functions. Added a new
        attribute, Polymorphic, to indicate classes that have derived subclasses.
        Removed the old ObjCCustomInternalImpl attribute.

        * css/CSSRule.idl: Use Polymorphic attribute, so core and kit functions
        will be generated, with kit calling kitClass. This requires less hand-
        written code than the old ObjCCustomInternalImpl.
        * css/CSSValue.idl: Ditto.
        * css/StyleSheet.idl: Ditto.
        * dom/Event.idl: Ditto.
        * dom/Node.idl: Ditto.
        * html/HTMLCollection.idl: Ditto.
        * svg/SVGPathSeg.idl: Ditto.

        * editing/TextAffinity.h: Moved kit and core functions out of the
        WebCore namespace since this code is destined for WebKit, which
        doesn't use a namespace

        * platform/mac/ClipboardMac.mm:
        (WebCore::ClipboardMac::declareAndWriteDragImage): Use kit function.

        * platform/mac/DragDataMac.mm:
        (WebCore::DragData::asFragment): Use core function.

        * platform/mac/PasteboardMac.mm:
        (WebCore::Pasteboard::writeSelection): Use kit function.

        * svg/SVGElementInstance.idl: Removed now-unneeded ObjCCustomInternalImpl
        function. This can be generated in a standard way now.
        * svg/SVGViewSpec.idl: Ditto.

2009-04-17  Brady Eidson  <beidson@apple.com>

        Reviewed by Maciej Stachowiak

        <rdar://problem/5753299> "Private Browsing" doesn't affect HTML 5 Database storage

        If the Page is in private browsing mode when a statement is queued up, flag that 
        statement as read-only.

        It would be better to set the read-only flag on the database thread when it actually
        executes, but that would either require making Settings access a lock-protected operation
        or involve a synchronous callback to the WebCore thread, neither of which seem worth it.
        If it becomes an issue in practice, we can revisit this later.

        Test: storage/private-browsing-readonly.html

        * storage/Database.cpp:
        (WebCore::Database::setAuthorizerReadOnly):
        * storage/Database.h:

        * storage/DatabaseAuthorizer.cpp:  For all action types that would alter the database,
          deny when in read-only mode.
        (WebCore::DatabaseAuthorizer::reset):
        (WebCore::DatabaseAuthorizer::createTable):
        (WebCore::DatabaseAuthorizer::dropTable):
        (WebCore::DatabaseAuthorizer::allowAlterTable):
        (WebCore::DatabaseAuthorizer::createIndex):
        (WebCore::DatabaseAuthorizer::dropIndex):
        (WebCore::DatabaseAuthorizer::createTrigger):
        (WebCore::DatabaseAuthorizer::dropTrigger):
        (WebCore::DatabaseAuthorizer::createVTable):
        (WebCore::DatabaseAuthorizer::dropVTable):
        (WebCore::DatabaseAuthorizer::allowDelete):
        (WebCore::DatabaseAuthorizer::allowInsert):
        (WebCore::DatabaseAuthorizer::allowUpdate):
        (WebCore::DatabaseAuthorizer::setReadOnly):
        * storage/DatabaseAuthorizer.h:

        * storage/SQLStatement.cpp:
        (WebCore::SQLStatement::create): Add a m_readOnly flag.
        (WebCore::SQLStatement::SQLStatement): Ditto.
        (WebCore::SQLStatement::execute): If m_readOnly is set, tell the authorizer to change
          to read-only mode.
        * storage/SQLStatement.h:

        * storage/SQLTransaction.cpp:
        (WebCore::SQLTransaction::executeSQL): Flag the statement as read-only if the Page is
          currently in private browsing mode.

2009-04-17  Eric Seidel  <eric@webkit.org>

        Reviewed by Antti Koivisto.

        Move RenderPath and RenderSVGContainer onto a unified clippedOverflowRectForRepaint
        https://bugs.webkit.org/show_bug.cgi?id=25268

        Lots of minus lines.  Now we're sharing more sane code
        (which will respect -webkit-transforms! and scroll offsets correctly)

        Which means this fixes:
        https://bugs.webkit.org/show_bug.cgi?id=20769 and
        https://bugs.webkit.org/show_bug.cgi?id=21968 too!

        We're no longer expanding the paint rect "for anti-aliasing", since
        I can't find a case where that's required.  If it is, repaintRectInLocalCoordinates()
        should be fixed to handle those cases instead of here.

        This fixes svg/custom/scroll-hit-test (now that we respect scroll offsets when repainting)
        as well as improves our focus ring drawing seen in svg/custom/focus-ring
        focus rings are now closer to transformed content by a couple pixels (they were needlessly outset by the antialiasing hack)
        Also, it fixes the dumped rects for markers, causing a progression in svg/custom/marker-overflow-clip

        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::repaintRectInLocalCoordinates):
        (WebCore::RenderPath::setPath):
        * rendering/RenderPath.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
        * rendering/RenderSVGContainer.h:
        * rendering/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGModelObject::computeRectForRepaint):
        * rendering/RenderSVGModelObject.h:
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::computeRectForRepaint):
        * rendering/RenderSVGRoot.h:

2009-04-17  Chris Fleizach  <cfleizach@apple.com>

        Reviewed by Darin Adler.

        Bug 25259: AX: VoiceOver cmd-cntl-space does not follow the google.com->more link
        https://bugs.webkit.org/show_bug.cgi?id=25259
  
        When a node becomes visible or hidden, accessibility needs to be told to update.

        Test: accessibility/visible-elements.html

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::styleWillChange):

2009-04-17  Kevin Ollivier  <kevino@theolliviers.com>

        wx build fix, added missing header.

        * platform/graphics/wx/TransformationMatrixWx.cpp:

2009-04-17  Simon Hausmann  <simon.hausmann@nokia.com>

        Unreviewed build fix.

        Fix the build with enabled SVG filters

        * rendering/RenderSVGModelObject.cpp: Include SVGResourceFilter.h.

2009-04-16  Eric Roman  <eroman@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25196
        Add a missing V8DOMMap include.

        * bindings/v8/WorkerScriptController.cpp: Included V8DOMMap.h.

2009-04-16  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=25260
        Finish V8 custom bindings for InspectorController.

        * bindings/v8/custom/V8InspectorControllerCustom.cpp:
        (WebCore::CALLBACK_FUNC_DECL): Added.

2009-04-16  Kevin Watters  <kevinwatters@gmail.com>

        Reviewed by Kevin Ollivier.

        Switch to wxGraphicsBitmap when using wxGraphicsContext so that we're not doing
        unnecessary conversions internally when drawing bitmaps.
        
        https://bugs.webkit.org/show_bug.cgi?id=25248

        * platform/graphics/ImageSource.h:
        * platform/graphics/wx/ImageSourceWx.cpp:
        (WebCore::ImageSource::createFrameAtIndex):
        * platform/graphics/wx/ImageWx.cpp:
        (WebCore::BitmapImage::draw):
        (WebCore::BitmapImage::drawPattern):

2009-04-16  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Dan Bernstein.

        Performing a block style change in an editable root that contains only a br adds a newline
        https://bugs.webkit.org/show_bug.cgi?id=25256

        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::moveParagraphContentsToNewBlockIfNecessary): Fix a bad check for an root
        block that didn't handle a root that contained a placeholder.

2009-04-16  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Fix computeContainerBoundingBox to respect viewport translations
        https://bugs.webkit.org/show_bug.cgi?id=25254

        Previously computeContainerBoundingBox was just adding the viewportTranslation.
        Which, although it has a confusing name, only contains the scale and translation
        for the viewBox/preserveAspectRatio adjustment.  It does not contain the
        translation for the x/y offset of the viewport.
        localToParentTransform() does contain this offset, so we use that instead
        of the previous hacky code.

        * rendering/RenderSVGContainer.h:
        * rendering/RenderSVGViewportContainer.h:
        * rendering/SVGRenderSupport.cpp:
        (WebCore::computeContainerBoundingBox):

2009-04-16  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Add a localToParentTransform() method which includes the
        full transform between local and parent local coordinates.
        https://bugs.webkit.org/show_bug.cgi?id=25226

        Moved m_localTransform up into RenderSVGTransformableContainer
        and added a comment to RenderSVGViewportContainer to make it more
        clear that it does not have a localTransform().

        This patch reveals two more failed design decisions:
        1.  Use of RenderBox::absoluteTransform() to mean "absoluteTransform()
            including only my localTransform()" callers are probably using it
            incorrectly anyway and are just masking bugs in the confused code.
        2.  computeContainerBoundingBox does not include viewport translations in
            its computed bounding box, so bounding boxes will be off for parents of
            inner <svg> elements.  I'll fix this an updated the results in a separate change.

        No functional changes, thus no tests.

        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::localToParentTransform):
        (WebCore::RenderObject::absoluteTransform):
        * rendering/RenderObject.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::layout):
        * rendering/RenderSVGContainer.h:
        (WebCore::RenderSVGContainer::viewportTransform):
        * rendering/RenderSVGHiddenContainer.cpp:
        * rendering/RenderSVGHiddenContainer.h:
        (WebCore::RenderSVGHiddenContainer::absoluteTransform):
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::localToParentTransform):
        (WebCore::RenderSVGRoot::absoluteTransform):
        * rendering/RenderSVGRoot.h:
        * rendering/RenderSVGTransformableContainer.cpp:
        (WebCore::RenderSVGTransformableContainer::localToParentTransform):
        (WebCore::RenderSVGTransformableContainer::localTransform):
        * rendering/RenderSVGTransformableContainer.h:
        * rendering/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::localToParentTransform):
        (WebCore::RenderSVGViewportContainer::absoluteTransform):
        * rendering/RenderSVGViewportContainer.h:
        * rendering/SVGRenderSupport.cpp:
        (WebCore::computeContainerBoundingBox):

2009-04-16  Adam Langley  <agl@google.com>

        Reviewed by Darin Fisher.

        Fix Chromium's rendering of <option> elements inside of <optgroups>.

        https://bugs.webkit.org/show_bug.cgi?id=25244

        Test (will included as a manual test by https://bugs.webkit.org/show_bug.cgi?id=24900):

        <select>
          <optgroup label="Should be bold">
            <option>Should not be bold</option>
          </optgroup>
        </select>

        * css/themeWin.css: adding comments
        * platform/chromium/PopupMenuChromium.cpp:
        (WebCore::PopupListBox::getRowFont): use menuStyle() rather than the item's style

2009-04-16  Eric Roman  <eroman@chromium.org>

        Reviewed by Alexey Proskuryakov.

        https://bugs.webkit.org/show_bug.cgi?id=25218

        Make DOMWindow::inlineEventListenerForType not have the "inline"
        keyword. As this method gets used outside of DOMWindow.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::inlineEventListenerForType):

2009-04-16  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Antti Koivisto.

        Fix <rdar://problem/6766969>
        
        When deferred repaints are enabled and being reset and there is a active
        timer, stop the timer and do the deferred repaints immediately.

        * page/FrameView.cpp:
        (WebCore::FrameView::resetDeferredRepaintDelay):

2009-04-16  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=25241
        Remove superfluous NotImplemented.h includes.

        * html/CanvasRenderingContext2D.cpp:
        * html/CanvasStyle.cpp:
        * page/AccessibilityRenderObject.cpp:
        * platform/chromium/ScrollbarThemeChromiumLinux.cpp:
        * platform/graphics/GraphicsContext.cpp:
        * platform/graphics/cairo/ImageBufferCairo.cpp:
        * platform/graphics/cairo/PathCairo.cpp:
        * platform/graphics/chromium/SimpleFontDataLinux.cpp:
        * platform/graphics/gtk/FontGtk.cpp:
        * platform/graphics/gtk/IconGtk.cpp:
        * platform/graphics/qt/IconQt.cpp:
        * platform/graphics/qt/ImageQt.cpp:
        * platform/graphics/qt/ImageSourceQt.cpp:
        * platform/graphics/skia/ImageBufferSkia.cpp:
        * platform/graphics/skia/ImageSkia.cpp:
        * platform/graphics/win/ColorSafari.cpp:
        * platform/graphics/win/FontWin.cpp:
        * platform/graphics/win/GraphicsContextCGWin.cpp:
        * platform/graphics/win/GraphicsContextCairoWin.cpp:
        * platform/graphics/win/SimpleFontDataCairoWin.cpp:
        * platform/graphics/wx/ImageWx.cpp:
        * platform/graphics/wx/TransformationMatrixWx.cpp:
        * platform/gtk/PlatformScreenGtk.cpp:
        * platform/gtk/PopupMenuGtk.cpp:
        * platform/gtk/ScrollViewGtk.cpp:
        * platform/gtk/ScrollbarGtk.cpp:
        * platform/network/cf/ResourceHandleCFNet.cpp:
        * platform/posix/FileSystemPOSIX.cpp:
        * platform/qt/DragDataQt.cpp:
        * platform/qt/FileSystemQt.cpp:
        * platform/qt/Localizations.cpp:
        * platform/qt/PopupMenuQt.cpp:
        * platform/win/EditorWin.cpp:
        * platform/win/PasteboardWin.cpp:
        * platform/wx/KeyboardEventWx.cpp:
        * platform/wx/PopupMenuWx.cpp:
        * platform/wx/SharedTimerWx.cpp:
        * plugins/gtk/PluginViewGtk.cpp:
        * plugins/mac/PluginPackageMac.cpp:
        * plugins/qt/PluginPackageQt.cpp:
        * plugins/win/PluginViewWin.cpp:
        * rendering/RenderThemeChromiumLinux.cpp:
        * svg/graphics/SVGImage.cpp:

2009-04-16  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
        Unbounded memory growth when churning elements with anonymous event handler functions
        
        Some cleanup in event handling code.

        * bindings/js/JSDOMGlobalObject.cpp:
        * bindings/js/JSDOMGlobalObject.h: Removed findJSProtectedEventListener
        and findJSProtectedEventListener because they are now unused.

        * bindings/js/JSEventListener.cpp:
        * bindings/js/JSEventListener.h:
        (WebCore::JSEventListener::clearGlobalObject):
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::JSLazyEventListener::JSLazyEventListener):
        (WebCore::JSLazyEventListener::~JSLazyEventListener):
        (WebCore::JSLazyEventListener::globalObject):
        * bindings/js/JSLazyEventListener.h:
        (WebCore::JSLazyEventListener::clearGlobalObject): Nixed JSProtectedEventListener,
        and merged it with JSLazyEventListener, the only remaining event listener
        that still GC-protects its function and global object.

        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::ScriptController):
        * bindings/js/ScriptController.h:
        (WebCore::ScriptController::setEventHandlerLineNumber):
        (WebCore::ScriptController::eventHandlerLineNumber): Renamed handlerLineno =>
        handlerLineNumber, because anything less would be uncivilized. Removed
        createInlineEventListener because it mostly did irrelevent work, so it
        just got in the way of understanding how event handler creation works.

        * dom/Document.cpp:
        (WebCore::Document::createEventListener):
        * dom/XMLTokenizerLibxml2.cpp:
        (WebCore::XMLTokenizer::startElementNs):
        * html/HTMLTokenizer.cpp:
        (WebCore::HTMLTokenizer::processToken): Ditto.

2009-04-16  Beth Dakin  <bdakin@apple.com>

        Reviewed by Dave Hyatt.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=20765 Website 
        crashes on load due to messy HTML in search form
        -and corresponding-
        <rdar://problem/6210633>

        Before this patch, <form>s were allowed to sit inside tables 
        without being wrapped by anonymous table parts. There was also a 
        concept that such a form could be "demoted" and would not be 
        allowed to have any children. This patch has the HTML parser mark 
        form elements that have been demoted as such, and then the demoted 
        forms are not given renderers. I also removed the code that allowed 
        forms to sit in tables without anonymous table sections. So now any 
        forms that do manage to get a renderer inside a table will also be 
        wrapped with appropriate table parts.

        * html/HTMLFormElement.cpp:
        (WebCore::HTMLFormElement::HTMLFormElement):
        (WebCore::HTMLFormElement::rendererIsNeeded):
        * html/HTMLFormElement.h:
        (WebCore::HTMLFormElement::setDemoted):
        (WebCore::HTMLFormElement::isDemoted):
        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::insertNode):
        * rendering/RenderTable.cpp:
        (WebCore::RenderTable::addChild):
        * rendering/RenderTableRow.cpp:
        (WebCore::RenderTableRow::addChild):
        * rendering/RenderTableSection.cpp:
        (WebCore::RenderTableSection::addChild):

2009-04-16  Xiaomei Ji  <xji@chromium.org>

        Reviewed by Simon Fraser.

        Fix https://bugs.webkit.org/show_bug.cgi?id=24527
        caret does not paint the first time you focus on a 0px right padding RTL div

        Test: fast/forms/caret-rtl.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::localCaretRect): When calculating x-axis if 
        alignment is alignRight, we need to subtract the caretWidth so that the
        caret at IntRect(x, y, caretWidth, height) is inside the block.

2009-04-16  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=25228
        SelectionController::absoluteCaretBounds returns an inflated caret (the caret repaint rect)
        
        Return the bounds of the transformed caret, not the transformed repaint rect for the caret (which is inflated).

        * editing/SelectionController.cpp:
        (WebCore::SelectionController::localCaretRect):
        (WebCore::SelectionController::absoluteBoundsForLocalRect):
        (WebCore::SelectionController::caretRepaintRect):
        (WebCore::SelectionController::recomputeCaretRect):
        * editing/SelectionController.h:

2009-04-16  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Simon Fraser.

        https://bugs.webkit.org/show_bug.cgi?id=25187
        Bug 25187: <video> may not be rendered upon certain racy conditions

        Always create the video renderer when the load state reaches QTMovieLoadStateLoaded and
        the element is visible, not just when the movie has just been opened.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::updateStates): Make sure we do not make false
        assumption on the state changes order. Create the renderer if none is present,
        when movie is loaded instead.

2009-04-16  Eric Seidel  <eric@webkit.org>

        Reviewed by Geoffrey Garen.

        Add filterBoundingBox() to RenderSVGModelObject to share a tiny bit of code

        RenderSVGModelObject has much more interesting code it can share,
        but I'm just trying to get the commits out of my local branch and into
        the repository in any order I can. :)  This one was small.

        This will be used by the unified RenderSVGModelObject
        clippedOverflowRectForRepaint patch coming soon.

        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::clippedOverflowRectForRepaint):
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::clippedOverflowRectForRepaint):
        * rendering/RenderSVGModelObject.cpp:
        (WebCore::RenderSVGModelObject::filterBoundingBox):
        * rendering/RenderSVGModelObject.h:

2009-04-16  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Eric Seidel and Adam Roben.

        More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
        Unbounded memory growth when churning elements with anonymous event handler functions
        
        Simplified some EventHandler creation code.
        
        Removed a pile of code whose sole purpose was to allow SVG event handlers
        to supply a parameter named "evt" instead of the normal "event", and
        replaced it with a single parameter to JSLazyEventListener's constructor
        specifying the parameter name to use.

        * bindings/js/JSDOMWindowBase.h:
        * bindings/js/JSLazyEventListener.cpp:
        (WebCore::JSLazyEventListener::JSLazyEventListener):
        (WebCore::JSLazyEventListener::parseCode):
        * bindings/js/JSLazyEventListener.h:
        (WebCore::JSLazyEventListener::create):
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::createInlineEventListener):
        * bindings/js/ScriptController.h:
        * dom/Document.cpp:
        (WebCore::Document::createEventListener):

2009-04-15  Eric Seidel  <eric@webkit.org>

        Reviewed by David Hyatt.

        Split out objectBoundingBox and repaintRectInLocalCoordinates from relativeBBox
        in preparation for simplifying (and fixing) repaint logic in the SVG rendering tree.
        https://bugs.webkit.org/show_bug.cgi?id=25224

        objectBoundingBox() matches the SVG 1.1 concept of a "bounding box"

        repaintRectInLocalCoordinates() should return the a rect covering all painted content.
        However, repaintRectInLocalCoordinates() still only returns the "stroke bounding box"
        in this patch.  In a future patch, repaintRectInLocalCoordinates will be fixed to return
        a rect covering all painted content.  In order to avoid changing several hundred layout test results, I've left
        the behavior as-is for now.  The returned rect is used by various repaintRectInLocalCoordinates
        implementations and sometimes adjusted to include all painted content, but not always, and
        the places where the adjustments are made are sometimes wrong.  Again, will be fixed in
        an upcoming patch.

        This patch discovered a bug in Font::drawTextUsingSVGFont, which is probably causing
        bounding-box relative gradients on SVGFont glyphs to not paint correctly.
        I chose not to try and fix the bug in this patch and instead left a FIXME.

        This patch also discovered that at least tspan.getBBox() is broken.  This
        along with the foreignObject.getBBox() change will be tested (and fixed) in a
        later patch.  https://bugs.webkit.org/show_bug.cgi?id=25225

        No change in behavior (besides the above mentioned foreignObject.getBBox()), thus no tests.

        * rendering/RenderForeignObject.cpp:
        (WebCore::RenderForeignObject::objectBoundingBox): this is a behavior improvement for getBBox() test case coming in a later patch
        (WebCore::RenderForeignObject::repaintRectInLocalCoordinates): only really used for layout test results, might some day be used for repaint.
        * rendering/RenderForeignObject.h:
        * rendering/RenderObject.cpp:
        (WebCore::RenderObject::objectBoundingBox): new methods, ASSERT if used but not implemented.
        (WebCore::RenderObject::repaintRectInLocalCoordinates):
        * rendering/RenderObject.h:
        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::objectBoundingBox):
        (WebCore::RenderPath::repaintRectInLocalCoordinates):
        (WebCore::RenderPath::clippedOverflowRectForRepaint):
        (WebCore::RenderPath::lineHeight):
        (WebCore::RenderPath::baselinePosition):
        (WebCore::RenderPath::paint):
        (WebCore::RenderPath::addFocusRingRects):
        * rendering/RenderPath.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::paint):
        (WebCore::RenderSVGContainer::objectBoundingBox):
        (WebCore::RenderSVGContainer::repaintRectInLocalCoordinates):
        * rendering/RenderSVGContainer.h:
        * rendering/RenderSVGGradientStop.h:
        (WebCore::RenderSVGGradientStop::objectBoundingBox):
        (WebCore::RenderSVGGradientStop::repaintRectInLocalCoordinates):
        * rendering/RenderSVGHiddenContainer.cpp:
        (WebCore::RenderSVGHiddenContainer::objectBoundingBox):
        (WebCore::RenderSVGHiddenContainer::repaintRectInLocalCoordinates):
        * rendering/RenderSVGHiddenContainer.h:
        * rendering/RenderSVGImage.cpp:
        (WebCore::RenderSVGImage::objectBoundingBox):
        (WebCore::RenderSVGImage::repaintRectInLocalCoordinates):
        (WebCore::RenderSVGImage::calculateAbsoluteBounds):
        (WebCore::RenderSVGImage::addFocusRingRects):
        * rendering/RenderSVGImage.h:
        * rendering/RenderSVGRoot.cpp:
        (WebCore::RenderSVGRoot::paint):
        (WebCore::RenderSVGRoot::objectBoundingBox):
        (WebCore::RenderSVGRoot::repaintRectInLocalCoordinates):
        * rendering/RenderSVGRoot.h:
        * rendering/RenderSVGTSpan.h:
        (WebCore::RenderSVGTSpan::objectBoundingBox):
        (WebCore::RenderSVGTSpan::repaintRectInLocalCoordinates):
        * rendering/RenderSVGText.cpp:
        (WebCore::RenderSVGText::clippedOverflowRectForRepaint):
        (WebCore::RenderSVGText::absoluteRects):
        (WebCore::RenderSVGText::absoluteQuads):
        (WebCore::RenderSVGText::objectBoundingBox):
        (WebCore::RenderSVGText::repaintRectInLocalCoordinates):
        * rendering/RenderSVGText.h:
        * rendering/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::viewportTransform):
        * rendering/SVGRenderSupport.cpp:
        (WebCore::computeContainerBoundingBox):
        * rendering/SVGRenderSupport.h:
        * rendering/SVGRenderTreeAsText.cpp:
        (WebCore::operator<<):
        * svg/SVGFont.cpp:
        (WebCore::Font::drawTextUsingSVGFont):
        * svg/SVGLocatable.cpp:
        (WebCore::SVGLocatable::getBBox):
        * svg/SVGPatternElement.cpp:
        (WebCore::SVGPatternElement::buildPattern):
        * svg/graphics/SVGPaintServerGradient.cpp:
        (WebCore::createMaskAndSwapContextForTextGradient):
        (WebCore::clipToTextMask):
        (WebCore::SVGPaintServerGradient::setup):
        * svg/graphics/SVGPaintServerPattern.cpp:
        (WebCore::SVGPaintServerPattern::setup):

2009-04-16  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/6032139> Table cell widths calculated
          incorrectly on table that uses table-layout:fixed, colspans, and a mix
          of percentage and pixel widths

        Test: fast/table/fixed-granular-cols.html

        The incorrect widths resulted from incorrect handling of the case where
        the <col> elements are more granular than the table cells.

        * rendering/FixedTableLayout.cpp:
        (WebCore::FixedTableLayout::calcWidthArray): When processing <col>
        elements, append effective columns or split existing effective columns
        as needed.

2009-04-16  Alexey Proskuryakov  <ap@webkit.org>

        <rdar://problem/6795285> Infinite recursion in ResourceHandle::receivedRequestToContinueWithoutCredential

        Rolled out <http://trac.webkit.org/projects/webkit/changeset/42536> - the two instances of
        authentication challenge are different, after all. Added a FIXME comment about a possible
        future improvement.

        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::clearAuthentication):
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
        (WebCore::ResourceHandle::receivedCredential):
        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
        (WebCore::ResourceHandle::receivedCancellation):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
        (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
        (WebCore::ResourceHandle::receivedCredential):
        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
        (WebCore::ResourceHandle::receivedCancellation):

2009-04-15  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.
        
        More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
        Unbounded memory growth when churning elements with anonymous event handler functions

        Also fixed <rdar://problem/6792909> WebInspector crashes when reloading
        a page with breakpoints set
        
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSEventListener::clearJSFunctionInline):
        (WebCore::JSEventListener::markJSFunction):
        * bindings/js/JSEventListener.h: Actually clear our function and global
        object pointers when our client instructs us to. (Oops!) Also, mark
        our global object while we still intend to use it.

        * bindings/js/JSSVGElementInstanceCustom.cpp:
        (WebCore::JSSVGElementInstance::mark):
        (WebCore::toJS):
        * bindings/scripts/CodeGeneratorJS.pm:
        * svg/SVGElementInstance.idl: For every SVGElementInstance wrapper, ensure
        that the corresponding element also has a wrapper, to keep its event
        listeners alive.

2009-04-15  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=25201
        Add ScriptFunctionCall/ScriptObject for V8.

        * bindings/v8/ScriptFunctionCall.cpp: Added.
        * bindings/v8/ScriptFunctionCall.h: Added.
        * bindings/v8/ScriptObject.cpp: Added.
        * bindings/v8/ScriptObject.h: Added.
        * bindings/v8/ScriptObjectQuarantine.cpp: Added.
        * bindings/v8/ScriptObjectQuarantine.h: Added.
        * bindings/v8/ScriptScope.cpp: Added.
        * bindings/v8/ScriptScope.h: Added.
        * bindings/v8/ScriptState.h:
        (WebCore::ScriptState::ScriptState): Added new constructors.
        (WebCore::ScriptState::frame): Added Frame ptr accessor.
        * bindings/v8/ScriptString.h:
        (WebCore::ScriptString::ScriptString): Added default constructor.
        * bindings/v8/ScriptValue.h:
        (WebCore::ScriptValue::isEqual): Added.

2009-04-15  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Unreviewed build fix. Add RenderSVGModelObject.* to GTK+'s build.

        * GNUmakefile.am:

2009-04-15  Steve Falkenburg  <sfalken@apple.com>

        <rdar://problem/6785760> WebCore should use a maximum of 6 connections per host, not 4

        Reviewed by Adam Roben.

        * platform/network/ResourceRequestBase.cpp:
        * platform/network/cf/ResourceRequestCFNet.cpp:
        (WebCore::initializeMaximumHTTPConnectionCountPerHost):

2009-04-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Add special casing to bindings generator so that custom functions
        starting with xml or xslt conform to WebKit style guidelines.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::xmlHttpRequest):
        (WebCore::JSDOMWindow::xsltProcessor):
        * bindings/scripts/CodeGenerator.pm:

2009-04-15  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Add minimal RenderSVGModelObject and make RenderPath and RenderSVGContainer use it.
        https://bugs.webkit.org/show_bug.cgi?id=25221
        
        RenderSVGModelObject is the base rendering class for things which live
        in the SVG rendering tree.  Not all SVG renders are RenderSVGModelObjects yet.
        
        More patches coming.  This is just adding the class, future patches
        will pull more logic out of RenderPath and RenderSVGContainer into RenderSVGModelObject.

        * WebCore.pro:
        * WebCore.scons:
        * WebCore.vcproj/WebCore.vcproj:
        * WebCore.xcodeproj/project.pbxproj:
        * rendering/RenderPath.cpp:
        (WebCore::RenderPath::RenderPath):
        * rendering/RenderPath.h:
        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::RenderSVGContainer):
        * rendering/RenderSVGContainer.h:
        * rendering/RenderSVGModelObject.cpp: Added.
        (WebCore::RenderSVGModelObject::RenderSVGModelObject):
        * rendering/RenderSVGModelObject.h: Added.
        (WebCore::RenderSVGModelObject::requiresLayer):
        * rendering/RenderTreeAsText.cpp:
        * rendering/SVGRenderTreeAsText.cpp:

2009-04-15  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Remove more dead code from RenderSVGHiddenContainer.

        lineHeight and baselinePosition used to be on RenderSVGContainer
        (of which this is a subclass) because RenderSVGContainer used
        to be a RenderBox and always the renderer for <svg>
        Now <svg> uses RenderSVGRoot when needing a RenderBox (inside HTML)
        and RenderSVGViewportContainer (when inside SVG content)
        so there is no need for RenderSVGHiddenContainer to have these HTML-specific methods.

        * rendering/RenderSVGHiddenContainer.cpp:
        * rendering/RenderSVGHiddenContainer.h:

2009-04-15  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser.

        Remove unneeded (broken) code from SVG renderers
        https://bugs.webkit.org/show_bug.cgi?id=25214

        Mostly due to my historical confusions about the render tree
        and some methods not being removed after classes were split.

        RenderSVGRoot is an RenderBox and should just use all the
        standard RenderBox methods for inspector and repaint rects.

        RenderSVGContainer is *not* a RenderBox (any more) and thus
        doesn't need lineHeight or width/height or calcBounds.

        RenderSVGViewportContainer had some broken code which tried
        to see if the click was inside the container at all, but it
        was using width/height metrics based off of the containing
        block (from calcWidth) which is wrong (since its real
        width/height are from its containing viewport not containing block).

        * rendering/RenderSVGContainer.cpp:
        (WebCore::RenderSVGContainer::RenderSVGContainer):
        (WebCore::RenderSVGContainer::layout):
        * rendering/RenderSVGContainer.h:
        * rendering/RenderSVGRoot.cpp:
        * rendering/RenderSVGRoot.h:
        * rendering/RenderSVGViewportContainer.cpp:
        (WebCore::RenderSVGViewportContainer::layout):
        (WebCore::RenderSVGViewportContainer::nodeAtPoint):

2009-04-15  Eric Seidel  <eric@webkit.org>

        Reviewed by Simon Fraser and Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=25217
        Simplify nearestViewportElement and farthestViewportElement using isViewportElement and a for loop
        Add ASSERT(element) to all these functions since they should never be passed a null element.

        * svg/SVGLocatable.cpp:
        (WebCore::isViewportElement):
        (WebCore::SVGLocatable::nearestViewportElement):
        (WebCore::SVGLocatable::farthestViewportElement):
        (WebCore::SVGLocatable::getBBox):
        (WebCore::SVGLocatable::getCTM):
        (WebCore::SVGLocatable::getScreenCTM):

2009-04-15  Sam Weinig  <sam@webkit.org>

        Reviewed by Anders Carlsson.

        Remove support for the ObjCIvar extended attribute from the Objective-C
        bindings generator.  It is not used anymore.

        * bindings/scripts/CodeGeneratorObjC.pm:

2009-04-15  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=25204
        Create a fast path for ReplaceSelectionCommand that merges text nodes
        
        During simple pastes, where we're just pasting a text node into a run of text, we would split the current
        text and insert the new node in between.  This is slow and we hit this bug:

        https://bugs.webkit.org/show_bug.cgi?id=6148

        in the layout and rendering code where adjacent text nodes don't shape correctly in Arabic.
        
        This change creates a fast path for ReplaceSelectionCommand that inserts text directly into the
        text node that holds the selection (very similar to the fast path we wrote for InsertTextCommand).

        * editing/ReplaceSelectionCommand.cpp:
        (WebCore::ReplaceSelectionCommand::doApply):
        (WebCore::ReplaceSelectionCommand::performTrivialReplace):
        * editing/ReplaceSelectionCommand.h:
        * editing/TextIterator.cpp:

2009-04-15  Adam Langley  <agl@google.com>

        Reviewed by Darin Fisher.

        Move VDMX parsing into the Chromium Linux port.

        https://bugs.webkit.org/show_bug.cgi?id=25116

        VDMX tables are optional tables in TrueType fonts which contain the
        exact pixel height of a given font at a given pel size. In order to
        match Windows font metrics we have to use these numbers.

        Previously, the parsing was performed in Skia. As part of the merge
        with upstream Skia, an interface for getting table data from a font
        has been added to Skia and we're moving the parsing into WebKit.

        This does not change any layout tests.

        * platform/graphics/chromium/FontPlatformDataLinux.cpp:
        (WebCore::FontPlatformData::uniqueID):
        * platform/graphics/chromium/FontPlatformDataLinux.h:
        * platform/graphics/chromium/FontTrueTypeLinux.cpp: Added.
        * platform/graphics/chromium/FontTrueTypeLinux.h: Added.
        * platform/graphics/chromium/SimpleFontDataLinux.cpp:
        (WebCore::SimpleFontData::platformInit):
        (WebCore::SimpleFontData::platformWidthForGlyph):

2009-04-15  Stephen White  <senorblanco@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25180

        Restore stroked outlines to PlatformContextSkia::drawRect().
        These were removed inadvertently in r41805, aka
        https://bugs.webkit.org/show_bug.cgi?id=24662.
        SkRect is { left, top, right, bottom }, not { left, top, width, height }.

        * platform/graphics/skia/PlatformContextSkia.cpp:
        (PlatformContextSkia::drawRect):

2009-04-15  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/6777374> Generated content with display: run-in
          causes a crash

        Test: fast/runin/generated.html

        * rendering/RenderBlock.cpp:
        (WebCore::RenderBlock::handleRunInChild): Check if the run-in block is
        generated, and if so, make the RenderInline anonymous instead of passing
        a 0 node to the RenderInline constructor. If the run-in itself is
        generated, do move :before and :after children from the block into the
        inline, as they will not be regenerated. Changed nested ifs into early
        returns.

2009-04-15  Eric Roman  <eroman@chromium.org>

        Reviewed by Geoffrey Garen.

        https://bugs.webkit.org/show_bug.cgi?id=25192

        Expose DOMWindow::removeInlineEventListenerForType and
        DOMWindow::inlineEventListenerForType as public.

        * page/DOMWindow.h:

2009-04-14  Eric Roman  <eroman@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25198

        Wrap RegisteredEventListener's markEventListeners and invalidateEventListeners
        in a USE(JSC), since it doesn't compile with V8 bindings.

        * dom/RegisteredEventListener.h:

2009-04-15  Eric Roman  <eroman@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25194

        Fix a caller of Settings::javaScriptCanOpenWindowsAutomatically() to
        use the new name.

        * bindings/v8/custom/V8DOMWindowCustom.cpp:

2009-04-14  Alexey Proskuryakov  <ap@webkit.org>

        Rubber-stamped by Darin Adler.

        Don't keep platform objects for authentication challenge in ResourceHandleInternal.
        We already have a copy in AuthenticationChallenge object.

        * platform/network/ResourceHandle.cpp:
        (WebCore::ResourceHandle::clearAuthentication):
        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal):
        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
        (WebCore::ResourceHandle::receivedCredential):
        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
        (WebCore::ResourceHandle::receivedCancellation):
        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
        (WebCore::ResourceHandle::didCancelAuthenticationChallenge):
        (WebCore::ResourceHandle::receivedCredential):
        (WebCore::ResourceHandle::receivedRequestToContinueWithoutCredential):
        (WebCore::ResourceHandle::receivedCancellation):

2009-04-14  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Nixed some now-defunct autogeneration code.

        * bindings/scripts/CodeGeneratorJS.pm:

2009-04-14  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Alexey Proskuryakov.
        
        Fix <rdar://problem/6755724> <audio> and <video> elements can reference local 
        file:/// URLs from remote in Safari

        Tests: http/tests/security/local-video-poster-from-remote.html
               http/tests/security/local-video-source-from-remote.html
               http/tests/security/local-video-src-from-remote.html

        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::loadResource): Don't pass url to media engine unless loader->canLoad()
        says it is OK.

2009-04-14  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Part of <rdar://problem/6150868>
        Fix incorrect handling of content that needs to go into the head element
        once the head element has been removed.

        Test: fast/parser/head-content-after-head-removal.html

        * html/HTMLParser.cpp:
        (WebCore::HTMLParser::HTMLParser): Remove unneeded initializer of m_head.
        (WebCore::HTMLParser::handleError): Update since m_head is now a RefPtr.
        (WebCore::HTMLParser::createHead): Ditto.
        * html/HTMLParser.h: Make m_head a RefPtr.

2009-04-14  Geoffrey Garen  <ggaren@apple.com>

        Used svn merge -r42529:42528 to roll out my last patch because it broke
        the build.

        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
        (WebCore::JSDOMGlobalObject::findJSProtectedEventListener):
        (WebCore::JSDOMGlobalObject::findOrCreateJSProtectedEventListener):
        (WebCore::JSDOMGlobalObject::jsProtectedEventListeners):
        (WebCore::JSDOMGlobalObject::jsProtectedInlineEventListeners):
        * bindings/js/JSDOMGlobalObject.h:

2009-04-14  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Nixed some now-dead code related to protected event listeners.

        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::~JSDOMGlobalObject):
        * bindings/js/JSDOMGlobalObject.h:

2009-04-14  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
        Unbounded memory growth when churning elements with anonymous event handler functions

        Stop using protected event listeners on SVGElementInstance.

        * bindings/js/JSSVGElementInstanceCustom.cpp:
        (WebCore::JSSVGElementInstance::mark): Mark our event listeners, since
        they're not protected anymore.

        (WebCore::JSSVGElementInstance::addEventListener):
        (WebCore::JSSVGElementInstance::removeEventListener): Make unprotected
        event listeners, since we mark them now.

        * bindings/scripts/CodeGeneratorJS.pm: Autogenerate event listener
        invalidation for SVGElementInstance.

        * svg/SVGElementInstance.h:
        (WebCore::SVGElementInstance::eventListeners): Added an accessor, for
        the sake of autogenerated code.

        * svg/SVGElementInstance.idl: Removed the ProtectedEventListener attribute
        from event listener properties. Added a CustomMarkFunction attribute,
        since we need to mark our event listeners.

2009-04-14  Steve Falkenburg  <sfalken@apple.com>

        Windows build fix.

        * WebCore.vcproj/WebCore.vcproj:

2009-04-14  Steve Falkenburg  <sfalken@apple.com>

        Add header guards to WebCore forwarding headers.
        
        Speeds up WebCore debug build on Windows by 12% on my system,
        since Visual Studio appears to not optimize for standard header
        guards in included files.
        
        Rubber stamped by Ada Chan.

        * ForwardingHeaders/debugger/Debugger.h:
        * ForwardingHeaders/debugger/DebuggerActivation.h:
        * ForwardingHeaders/debugger/DebuggerCallFrame.h:
        * ForwardingHeaders/interpreter/CallFrame.h:
        * ForwardingHeaders/interpreter/Interpreter.h:
        * ForwardingHeaders/masm/X86Assembler.h:
        * ForwardingHeaders/parser/Parser.h:
        * ForwardingHeaders/parser/SourceCode.h:
        * ForwardingHeaders/parser/SourceProvider.h:
        * ForwardingHeaders/pcre/pcre.h:
        * ForwardingHeaders/profiler/Profile.h:
        * ForwardingHeaders/profiler/ProfileNode.h:
        * ForwardingHeaders/profiler/Profiler.h:
        * ForwardingHeaders/runtime/ArgList.h:
        * ForwardingHeaders/runtime/ArrayPrototype.h:
        * ForwardingHeaders/runtime/BooleanObject.h:
        * ForwardingHeaders/runtime/CallData.h:
        * ForwardingHeaders/runtime/Collector.h:
        * ForwardingHeaders/runtime/CollectorHeapIterator.h:
        * ForwardingHeaders/runtime/Completion.h:
        * ForwardingHeaders/runtime/ConstructData.h:
        * ForwardingHeaders/runtime/DateInstance.h:
        * ForwardingHeaders/runtime/Error.h:
        * ForwardingHeaders/runtime/FunctionConstructor.h:
        * ForwardingHeaders/runtime/FunctionPrototype.h:
        * ForwardingHeaders/runtime/Identifier.h:
        * ForwardingHeaders/runtime/InitializeThreading.h:
        * ForwardingHeaders/runtime/InternalFunction.h:
        * ForwardingHeaders/runtime/JSArray.h:
        * ForwardingHeaders/runtime/JSByteArray.h:
        * ForwardingHeaders/runtime/JSFunction.h:
        * ForwardingHeaders/runtime/JSGlobalData.h:
        * ForwardingHeaders/runtime/JSGlobalObject.h:
        * ForwardingHeaders/runtime/JSLock.h:
        * ForwardingHeaders/runtime/JSNumberCell.h:
        * ForwardingHeaders/runtime/JSObject.h:
        * ForwardingHeaders/runtime/JSString.h:
        * ForwardingHeaders/runtime/JSValue.h:
        * ForwardingHeaders/runtime/Lookup.h:
        * ForwardingHeaders/runtime/ObjectPrototype.h:
        * ForwardingHeaders/runtime/Operations.h:
        * ForwardingHeaders/runtime/PropertyMap.h:
        * ForwardingHeaders/runtime/PropertyNameArray.h:
        * ForwardingHeaders/runtime/Protect.h:
        * ForwardingHeaders/runtime/PrototypeFunction.h:
        * ForwardingHeaders/runtime/StringObject.h:
        * ForwardingHeaders/runtime/StringObjectThatMasqueradesAsUndefined.h:
        * ForwardingHeaders/runtime/StringPrototype.h:
        * ForwardingHeaders/runtime/Structure.h:
        * ForwardingHeaders/runtime/SymbolTable.h:
        * ForwardingHeaders/runtime/UString.h:
        * ForwardingHeaders/wrec/WREC.h:
        * ForwardingHeaders/wtf/ASCIICType.h:
        * ForwardingHeaders/wtf/AlwaysInline.h:
        * ForwardingHeaders/wtf/Assertions.h:
        * ForwardingHeaders/wtf/ByteArray.h:
        * ForwardingHeaders/wtf/CurrentTime.h:
        * ForwardingHeaders/wtf/Deque.h:
        * ForwardingHeaders/wtf/DisallowCType.h:
        * ForwardingHeaders/wtf/FastMalloc.h:
        * ForwardingHeaders/wtf/Forward.h:
        * ForwardingHeaders/wtf/GetPtr.h:
        * ForwardingHeaders/wtf/HashCountedSet.h:
        * ForwardingHeaders/wtf/HashFunctions.h:
        * ForwardingHeaders/wtf/HashMap.h:
        * ForwardingHeaders/wtf/HashSet.h:
        * ForwardingHeaders/wtf/HashTable.h:
        * ForwardingHeaders/wtf/HashTraits.h:
        * ForwardingHeaders/wtf/ListHashSet.h:
        * ForwardingHeaders/wtf/ListRefPtr.h:
        * ForwardingHeaders/wtf/Locker.h:
        * ForwardingHeaders/wtf/MainThread.h:
        * ForwardingHeaders/wtf/MathExtras.h:
        * ForwardingHeaders/wtf/MessageQueue.h:
        * ForwardingHeaders/wtf/Noncopyable.h:
        * ForwardingHeaders/wtf/NotFound.h:
        * ForwardingHeaders/wtf/OwnArrayPtr.h:
        * ForwardingHeaders/wtf/OwnPtr.h:
        * ForwardingHeaders/wtf/PassRefPtr.h:
        * ForwardingHeaders/wtf/Platform.h:
        * ForwardingHeaders/wtf/PtrAndFlags.h:
        * ForwardingHeaders/wtf/RandomNumber.h:
        * ForwardingHeaders/wtf/RefCounted.h:
        * ForwardingHeaders/wtf/RefCountedLeakCounter.h:
        * ForwardingHeaders/wtf/RefPtr.h:
        * ForwardingHeaders/wtf/RetainPtr.h:
        * ForwardingHeaders/wtf/StdLibExtras.h:
        * ForwardingHeaders/wtf/StringExtras.h:
        * ForwardingHeaders/wtf/ThreadSpecific.h:
        * ForwardingHeaders/wtf/Threading.h:
        * ForwardingHeaders/wtf/TypeTraits.h:
        * ForwardingHeaders/wtf/UnusedParam.h:
        * ForwardingHeaders/wtf/Vector.h:
        * ForwardingHeaders/wtf/VectorTraits.h:
        * ForwardingHeaders/wtf/dtoa.h:
        * ForwardingHeaders/wtf/unicode/Collator.h:
        * ForwardingHeaders/wtf/unicode/UTF8.h:
        * ForwardingHeaders/wtf/unicode/Unicode.h:
        * ForwardingHeaders/wtf/unicode/icu/UnicodeIcu.h:

2009-04-14  Sam Weinig  <sam@webkit.org>

        Reviewed by Adele Peterson.

        Use a template function to generalize the way we create non-caching
        JS function getters.

        * bindings/js/JSDOMWindowCustom.cpp:
        * bindings/js/JSDOMWindowCustom.h:
        (WebCore::nonCachingStaticFunctionGetter):
        (WebCore::JSDOMWindow::customGetOwnPropertySlot):

2009-04-14  Benjamin C Meyer  <benjamin.meyer@torchmobile.com>

        Reviewed by George Staikos.

        https://bugs.webkit.org/show_bug.cgi?id=25099

        When creating a QNetworkRequest make sure to populate the
        CacheLoadControlAttribute with the value set by the ResourceRequest::cachePolicy() so that the cache will be used as WebKit expects.

        * WebKit/qt/tests/qwebpage/tst_qwebpage.cpp:
        (tst_QWebPage::requestCache):

        * platform/network/qt/ResourceRequestQt.cpp:
        (WebCore::ResourceRequest::toNetworkRequest):

2009-04-14  Timothy Hatcher  <timothy@apple.com>

        Fix a world leak caused by opening the Web Inspector. This was
        a regression caused by the InspectorController becoming refcounted.

        <rdar://problem/6782944>

        Reviewed by Darin Adler.

        * bindings/js/ScriptObject.cpp:
        (WebCore::ScriptGlobalObject::get): Renamed to better match the
        other functions.
        (WebCore::ScriptGlobalObject::remove): Added. Deletes the property.
        * bindings/js/ScriptObject.h:
        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::~InspectorController): Do less work
        at destruction time since the object lifetime is tied to JS GC.
        Assert that inspectedPageDestroyed cleared everything needed.
        (WebCore::InspectorController::inspectedPageDestroyed): Do most
        of the work that ~InspectorController was doing.
        (WebCore::InspectorController::scriptObjectReady): Renamed getObject.

2009-04-14  Antony Sargent  <asargent@chromium.org>

        Reviewed by Dimitri Glazkov.

        This is some cleanup motivated by the crash in http://crbug.com/9775 , which 
        happens because of calling window.open inside a window.onload handler. 

        These changes are just part of the fix, along with some asserts to help prevent
        breakage on future changes. 

        https://bugs.webkit.org/show_bug.cgi?id=25132

        * bindings/v8/V8EventListenerList.cpp:
        (WebCore::V8EventListenerList::add):
        (WebCore::V8EventListenerList::remove):
        (WebCore::V8EventListenerList::clear):
        * bindings/v8/V8EventListenerList.h:
        (WebCore::V8EventListenerList::size):

2009-04-14  Evan Martin  <evan@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25142
        Fix a race that can occur between flex and the perl script that parses
        its output.

        * css/maketokenizer: Consume all input.

2009-04-14  Rohit Rao  <rohitrao@google.com>

        Reviewed by Dan Bernstein.

        https://bugs.webkit.org/show_bug.cgi?id=25184
        Do not change the text color for selected text in Mac Chromium.

        * rendering/RenderThemeChromiumMac.h:
        (WebCore::RenderThemeChromiumMac::supportsSelectionForegroundColors):
        Now returns false, matching the behavior of Safari on Mac.

2009-04-14  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Eric Seidel.

        https://bugs.webkit.org/show_bug.cgi?id=25172
        Extra partial layout during the first keypress in an empty block
        
        Determining if a placeholder needs to be removed requires the creation of a VisiblePosition 
        which was triggering layout before we were finished modifying the DOM for the insert operation.
        
        Find out if we need to remove a placeholder near the start of the operation, and if we do remember 
        where it's located.  Then, later, remove it along with all of the other DOM operations we perform.
        
        Renamed lineBreakExistsAtPosition to lineBreakExistsAtVisiblePosition and added a lineBreakExistsAtPosition
        that takes in a Position.  In InsertTextCommand, we can use the latter, since we normalize manually.
        
        removePlaceholderAt now takes in a Position that it assumes has already been checked for a placeholder.
        
        No test added as this only effects performance.

        * editing/BreakBlockquoteCommand.cpp:
        (WebCore::BreakBlockquoteCommand::doApply):
        * editing/CompositeEditCommand.cpp:
        (WebCore::CompositeEditCommand::removePlaceholderAt):
        (WebCore::CompositeEditCommand::moveParagraphs):
        (WebCore::CompositeEditCommand::breakOutOfEmptyMailBlockquotedParagraph):
        (WebCore::CompositeEditCommand::positionAvoidingSpecialElementBoundary):
        * editing/CompositeEditCommand.h:
        * editing/DeleteSelectionCommand.cpp:
        (WebCore::DeleteSelectionCommand::calculateTypingStyleAfterDelete):
        (WebCore::DeleteSelectionCommand::doApply):
        * editing/FormatBlockCommand.cpp:
        (WebCore::FormatBlockCommand::doApply):
        * editing/InsertLineBreakCommand.cpp:
        (WebCore::InsertLineBreakCommand::doApply):
        * editing/InsertParagraphSeparatorCommand.cpp:
        (WebCore::InsertParagraphSeparatorCommand::doApply):
        * editing/InsertTextCommand.cpp:
        (WebCore::InsertTextCommand::input):
        * editing/htmlediting.cpp:
        (WebCore::lineBreakExistsAtVisiblePosition):
        (WebCore::lineBreakExistsAtPosition):
        * editing/htmlediting.h:

2009-04-14  Adam Roben  <aroben@apple.com>

        Remove support for profile-guided optimization on Windows

        Rubber-stamped by Steve Falkenburg.

        * WebCore.vcproj/WebCore.vcproj: Removed the Release_PGO
        configuration.

2009-04-14  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Dimitri Glazkov.

        https://bugs.webkit.org/show_bug.cgi?id=25163
        Upstream fix for releasing v8 objects on worker thread termination in Chromium.

        * bindings/v8/V8DOMMap.cpp:
        (WebCore::domDataList): Now uses Vector instead of HashMap.
        (WebCore::domDataListMutex):
        (WebCore::ThreadSpecificDOMData::ThreadSpecificDOMData):  remove usage of currentThread();
        (WebCore::ThreadSpecificDOMData::~ThreadSpecificDOMData): ditto.
        (WebCore::NonMainThreadSpecificDOMData::~NonMainThreadSpecificDOMData): moved call to removeAllDOMObjectsInCurrentThread() to ~WorkerScriptController.
        (WebCore::handleWeakObjectInOwningThread):
        (WebCore::derefDelayedObjects):
        (WebCore::removeAllDOMObjectsInCurrentThread): not static anymore.
        * bindings/v8/V8DOMMap.h:
        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::WorkerContextExecutionProxy::dispose): removed code that avoided dual-dereference of WorkerContext.
        (WebCore::WorkerContextExecutionProxy::initContextIfNeeded): this ref() is countered in removeAllDOMObjectsInCurrentThread(), when the WorkerContext is removed from the v8 map.
        * bindings/v8/WorkerScriptController.cpp:
        (WebCore::WorkerScriptController::~WorkerScriptController):

2009-04-14  Adam Roben  <aroben@apple.com>

        Fix Bug 25183: Split up WebCore.vcproj's settings into vsprops files

        <https://bugs.webkit.org/show_bug.cgi?id=25183>

        WebCore.vcproj now uses a set of .vsprops files to store most of its
        settings.

        Reviewed by Darin Adler.

        * WebCore.vcproj/WebCore.vcproj: Moved settings from here into the new
        .vsprops files.

        * WebCore.vcproj/WebCoreCFNetwork.vsprops: Added. Contains settings
        for ports that build against CFNetwork.
        * WebCore.vcproj/WebCoreCG.vsprops: Added. Contains settings for ports
        that build against CoreGraphics.
        * WebCore.vcproj/WebCoreCURL.vsprops: Added. Contains settings for
        ports that build against libcurl.
        * WebCore.vcproj/WebCoreCairo.vsprops: Added. Contains settings for
        ports that build against Cairo.
        * WebCore.vcproj/WebCoreCommon.vsprops: Added. Contains settings
        shared by all ports.
        * WebCore.vcproj/WebCoreMediaQT.vsprops: Added. Contains settings for
        ports that use QTMovieWin to implement the MediaPlayerPrivate
        interface.
        * WebCore.vcproj/WebCorePthreads.vsprops: Added. Contains settings for
        ports that build against pthreads.

2009-04-14  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Darin Adler.

        http/tests/xmlhttprequest/basic-auth.html fails on Tiger.

        Turns out that NSURLCredentialPersistenceNone doesn't work on Tiger, so we have to use
        session persistence.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Route the credential through
        receivedCredential(), ensuring that the Tiger-specific need to use session credentials
        is honored.
        (WebCore::ResourceHandle::receivedCredential): On Tiger, change PersistenceNone to
        PersistenceForSession, because the former doesn't work.

2009-04-14  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        Fix for <rdar://problem/6703873> Triple-click quoted line and type Return creates an extra quoted blank line

        Test: editing/inserting/6703873.html

        * editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply):
        If the startNode's original parent is now empty, we can remove it.  Its already been cloned and copied with the startNode,
        so we only need to keep it around if it actually holds some original content, otherwise it will look like an extra empty 
        container in the document.

2009-04-14  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=21546
        [GTK] ATK accessibility enhancements

        Add a proper implementation of AtkText::get_text and
        AtkText::get_character_count, which takes into account non
        TextControl text. With this the 'Text' field in Accerciser's
        Interface Viewer is filled correctly.

        * page/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-04-14  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=21546
        [GTK] ATK accessibility enhancements

        Remove some dead code and g_return_if_fail from static functions.

        * page/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-04-14  Xan Lopez  <xlopez@igalia.com>

        Reviewed by Holger Freyther.

        https://bugs.webkit.org/show_bug.cgi?id=21546
        [GTK] ATK accessibility enhancements

        Also implement text interface for StaticTextRole, which covers
        most of the text in web pages.

        * page/gtk/AccessibilityObjectWrapperAtk.cpp:

2009-04-14  Alexey Proskuryakov  <ap@webkit.org>

        Another Windows build fix.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::WebCoreSynchronousLoader::load):

2009-04-14  Alexey Proskuryakov  <ap@webkit.org>

        Windows build fix.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::WebCoreSynchronousLoader::willSendRequest):
        (WebCore::WebCoreSynchronousLoader::didReceiveChallenge):

2009-04-13  Alexey Proskuryakov  <ap@webkit.org>

        Reviewed by Sam Weinig.

        <rdar://problem/6698851> Implement XMLHttpRequest withCredentials attribute

        * WebCore.xcodeproj/project.pbxproj: Made ThreadableLoader.h private, as enum definitions
        from it are now used in otehr private headers.

        * xml/XMLHttpRequest.h:
        * xml/XMLHttpRequest.idl:
        Added withCredentials attribute. When it is false (default), neither credentials nor cookies
        are sent with cross origin requests, When it is true, those are sent, but the server needs
        to allow handling results via Access-Control-Allow-Credentials header. It was always possible
        to send a cross-site request with credentials via IFRAME or IMG, so this just adds a way to
        read results, as long as the server reports that it's allowed.
        Having the default set to false ensures that requests won't fail unexpectedly because of
        stored credentials and cookies for other resources in the target protection space.

        * xml/XMLHttpRequest.cpp:
        (WebCore::XMLHttpRequest::loadRequestSynchronously): Allow stored credentials for same origin
        requests, and for cross origin ones that have withCredentials attribute set. Such code already
        existed for cookies (but it's simpler, because we could just set a ResourceRequest flag).
        (WebCore::XMLHttpRequest::loadRequestAsynchronously): Ditto.

        * platform/network/ResourceHandle.h: Added willSendRequest() - just like for other callbacks,
        is is easier to have code in the class. Also, loadResourceSynchronously() now takes a
        StoredCredentials option, matching async case.

        * platform/network/ResourceHandleClient.h:
        (WebCore::ResourceHandleClient::receivedCredential): Removed. This method could never be
        called, and no client used it.
        (WebCore::ResourceHandleClient::receivedRequestToContinueWithoutCredential): Ditto.

        * platform/network/ResourceHandleInternal.h:
        (WebCore::ResourceHandleInternal::ResourceHandleInternal): Split username and password out
        of request URL. We want to always get a callback for credentials to manage them in WebCore,
        so network back-end shouldn't see them too early.

        * platform/network/ResourceRequestBase.cpp:
        (WebCore::ResourceRequestBase::removeCredentials):
        * platform/network/ResourceRequestBase.h:
        Added a removeCredentials() method that removes login and password parts from request URL.

        * platform/network/mac/ResourceHandleMac.mm:
        (WebCoreCredentialStorage): Added a simple storage class for per-session credentials.
        (WebCore::ResourceHandle::loadResourceSynchronously): Pass allowStoredCredentials through.
        (WebCore::ResourceHandle::willSendRequest): On a redirect, credentials should be replaced.
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge): Try credentials from the URL
        and per-session credentials. Code was partially moved from Obj-C callback.
        (WebCore::ResourceHandle::receivedCredential): Intercept per-session credentials and store
        them in WebCore storage.
        (-[WebCoreResourceHandleAsDelegate connection:willSendRequest:redirectResponse:]): Don't
        store the redirected URL - we only needed credentials, which are now stored separately.
        (-[WebCoreResourceHandleAsDelegate connection:didReceiveAuthenticationChallenge:]): Removed
        code that was setting credentials from URL. First, the code is now in ResourceHandle, and
        also, it wasn't actually needed in Leopard release before this patch, see <rdar://problem/5298142>.
        (-[WebCoreSynchronousLoader dealloc]): Release credentials. Note that unlike ResourceHandle,
        this class still needs to track URL for checking whether a redirect is allowed. This is
        not a great solution, and we should unify client code to use the same checks in sync and
        async cases.
        (-[WebCoreSynchronousLoader connection:willSendRequest:redirectResponse:]): Just like in
        async case, put credentials aside to ensure that network back-end asks for them.
        (-[WebCoreSynchronousLoader connection:didReceiveAuthenticationChallenge:]): Use credentials
        from URL, or from WebCore storage.
        (-[WebCoreSynchronousLoader connectionShouldUseCredentialStorage:]): Don't use stored
        credentials when not allowed to.
        (+[WebCoreSynchronousLoader loadRequest:allowStoredCredentials:returningResponse:error:]):
        Put credentials aside to ensure that network back-end asks for them.

        * platform/network/cf/ResourceHandleCFNet.cpp:
        (WebCore::WebCoreCredentialStorage::set):
        (WebCore::WebCoreCredentialStorage::get):
        (WebCore::willSendRequest):
        (WebCore::ResourceHandle::start):
        (WebCore::ResourceHandle::willSendRequest):
        (WebCore::ResourceHandle::didReceiveAuthenticationChallenge):
        (WebCore::ResourceHandle::receivedCredential):
        (WebCore::ResourceHandle::loadResourceSynchronously):
        (WebCore::WebCoreSynchronousLoader::willSendRequest):
        (WebCore::WebCoreSynchronousLoader::didReceiveChallenge):
        (WebCore::WebCoreSynchronousLoader::shouldUseCredentialStorage):
        (WebCore::WebCoreSynchronousLoader::load):
        Same changes as in Mac case.

        * platform/network/curl/ResourceHandleCurl.cpp:
        (WebCore::ResourceHandle::loadResourceSynchronously):
        * platform/network/qt/ResourceHandleQt.cpp:
        (WebCore::ResourceHandle::loadResourceSynchronously):
        * platform/network/soup/ResourceHandleSoup.cpp:
        (WebCore::ResourceHandle::loadResourceSynchronously):
        Trying not to break the build.

        * dom/XMLTokenizerLibxml2.cpp: (WebCore::openFunc):
        * xml/XSLTProcessor.cpp: (WebCore::docLoaderFunc):
        Unconditionally allow stored credentials for these, as they only support same origin loads.

        * workers/WorkerContext.cpp: (WebCore::WorkerContext::importScripts):
        WorkerContext.importScripts() can be cross-origin, but sending credentials with it is no worse
        than sending them with <script src=...>, so this is also unconditionally allowed.

        * loader/DocumentThreadableLoader.cpp:
        (WebCore::DocumentThreadableLoader::loadResourceSynchronously): Pass through storedCredentials.
        (WebCore::DocumentThreadableLoader::create): Ditto.
        (WebCore::DocumentThreadableLoader::DocumentThreadableLoader): Save storedCredentials and
        sameOrigin flags foruse in callbacks.
        (WebCore::DocumentThreadableLoader::willSendRequest): Assert that loaders aren't all confused.
        (WebCore::DocumentThreadableLoader::didSendData): Ditto.
        (WebCore::DocumentThreadableLoader::didReceiveResponse): Ditto.
        (WebCore::DocumentThreadableLoader::didReceiveData): Ditto.
        (WebCore::DocumentThreadableLoader::didFinishLoading): Ditto.
        (WebCore::DocumentThreadableLoader::didFail): Ditto.
        (WebCore::DocumentThreadableLoader::getShouldUseCredentialStorage): Don't use credential
        storage if that's not allowed by the code that invoked DocumentThreadableLoader.
        (WebCore::DocumentThreadableLoader::didReceiveAuthenticationChallenge): Simulate a failure
        and cancel the request if we are about to ask the user for credentials for a cross-origin
        request, which is forbidden by CORS (and would have been very confusing if allowed).
        (WebCore::DocumentThreadableLoader::receivedCancellation): Assert that loaders aren't all confused.

        * loader/DocumentThreadableLoader.h: Updated for the new flags (storedCredentials and
        sameOrigin) that affect the loader. Eventually, we need to move all CORS logic from XHR here.

        * loader/ThreadableLoader.h: (StoredCredentials): Added another flag that affects loader
        behavior. We should combine all of these into a structure, and use it for sync requests, too.

        * loader/FrameLoader.cpp: (WebCore::FrameLoader::loadResourceSynchronously):
        * loader/FrameLoader.h:
        * loader/ThreadableLoader.cpp:
        (WebCore::ThreadableLoader::create):
        (WebCore::ThreadableLoader::loadResourceSynchronously):
        * loader/WorkerThreadableLoader.cpp:
        (WebCore::WorkerThreadableLoader::WorkerThreadableLoader):
        (WebCore::WorkerThreadableLoader::loadResourceSynchronously):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::MainThreadBridge):
        (WebCore::WorkerThreadableLoader::MainThreadBridge::mainThreadCreateLoader):
        * loader/WorkerThreadableLoader.h:
        (WebCore::WorkerThreadableLoader::create):
        Pass through storedCredentials.

2009-04-13  David Hyatt  <hyatt@apple.com>

        Reviewed by Cameron Zwarich.

        Remove an outdated comment in ScrollView.h

        * platform/ScrollView.h:

2009-04-13  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Mark Rowe.

        https://bugs.webkit.org/show_bug.cgi?id=25177

        QTTrack's -media method always return NULL in 64-bit QTKit, so
        MediaPlayerPrivate::disableUnsupportedTracks should use 
        QTTrackMediaTypeAttribute to get a track's type.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::disableUnsupportedTracks):

2009-04-13  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Cameron Zwarich.

        More fix for https://bugs.webkit.org/show_bug.cgi?id=21260
        Unbounded memory growth when churning elements with anonymous event handler functions

        Stop using protected event listeners on the window object.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::mark): Mark our event listeners, since they're
        no longer protected.

        (WebCore::JSDOMWindow::addEventListener):
        (WebCore::JSDOMWindow::removeEventListener): Create unprotected event
        listeners, since we mark them now.

        * bindings/js/JSEventListener.h: Made some functions public so
        DOMWindow could call them.

        * bindings/js/JSNodeCustom.cpp: Moved markEventListeners to a header,
        so it could be shared.

        * bindings/scripts/CodeGeneratorJS.pm: Generate event listener marking
        and invalidating code for the DOMWindow.

        * dom/RegisteredEventListener.h:
        (WebCore::markEventListeners):
        (WebCore::invalidateEventListeners): Added helper functions.

        * page/DOMWindow.idl: Make the window's event listener attributes not
        protected.

2009-04-13  Eric Carlson  <eric.carlson@apple.com>

        Reviewed by Mark Rowe.
        
        https://bugs.webkit.org/show_bug.cgi?id=25155

        OS X standalone media documents should not switch from <video> to <embed> when 
        QTKit load state is QTMovieLoadStateLoading as that happens frequently when a loading
        with a slow network connection or when a movie is not saved fast-start.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::MediaPlayerPrivate::updateStates): Don't open movie with plug-in when QTKit's
        loadstate is QTMovieLoadStateLoading, wait until it drops below QTMovieLoadStateError.

2009-04-13  Dmitry Titov  <dimich@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=24453
        REGRESSION: If setTimeout is called on a iframe's window, the DOM changes to
        the main document that timer callback makes are not flushed.

        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        Use Document::updateStyleForAllDocuments() instead of document->updateStyleIfNeeded()
        since timers may affect documents other then their own.

2009-04-13  Gustavo Noronha Silva  <gustavo.noronha@collabora.co.uk>

        Reviewed by David Hyatt.

        Check document for nullity to avoid crashing on GTK+, when
        creating the WebView.

        * page/FrameView.cpp:
        (WebCore::FrameView::needsLayout):

2009-04-13  Ada Chan  <adachan@apple.com>

        Forgot to capitalize the "US".

        * platform/text/win/TextBreakIteratorInternalICUWin.cpp:
        (WebCore::currentTextBreakLocaleID):

2009-04-13  Ada Chan  <adachan@apple.com>

        <rdar://problem/6564956> URL field double-click selects entire domain, rather than single word or entire URL
        Revert back to the old word breaking behavior by using en_US_POSIX locale.        

        Reviewed by Steve Falkenburg.

        * platform/text/win/TextBreakIteratorInternalICUWin.cpp:
        (WebCore::currentTextBreakLocaleID):

2009-04-13  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        * platform/cf/BinaryPropertyList.cpp: Added comment.
        * platform/cf/BinaryPropertyList.h: Fixed mistakes in comments.

2009-04-13  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Bug 25158: hit testing doesn't work right in some cases involving anonymous blocks
        https://bugs.webkit.org/show_bug.cgi?id=25158
        rdar://problem/6769693

        Test: editing/selection/click-after-nested-block.html

        * rendering/RenderBlock.cpp:
        (WebCore::isChildHitTestCandidate): Added. Helper so the two loops in positionForPoint
        can share code.
        (WebCore::RenderBlock::positionForPoint): Removed unneeded special case for first
        child box. Changed special case for last child box to propertly handle the various
        types of child box that are not hit test candidates (the same ones already handled
        by the hit test loop below), adding in a loop so we find the last candidate.

2009-04-13  David Hyatt  <hyatt@apple.com>

        Reviewed by Sam Weinig.

        Fix for https://bugs.webkit.org/show_bug.cgi?id=25125.  Rework scrolling so that a layout happens first when
        it's already needed so that the code doesn't end up making bad decisions based off invalid document sizes.

        * WebCore.base.exp:
        * page/FrameView.h:
        (WebCore::FrameView::visibleContentsResized):
        * platform/ScrollView.cpp:
        (WebCore::ScrollView::ScrollView):
        (WebCore::ScrollView::updateScrollbars):
        * platform/ScrollView.h:

2009-04-13  Adam Roben  <aroben@apple.com>

        Add SharedBuffer::wrapCFData

        This is the CF-equivalent of wrapNSData.

        Reviewed by Brady Eidson.

        * platform/SharedBuffer.h:
        * platform/cf/SharedBufferCF.cpp:
        (WebCore::SharedBuffer::wrapCFData):

2009-04-13  Dan Bernstein  <mitz@apple.com>

        - build fix

        * page/EventHandler.cpp:
        (WebCore::documentPointForWindowPoint):

2009-04-13  Antti Koivisto  <antti@apple.com>

        Reviewed by Darin Adler.

        <rdar://problem/6740294> Increase the connection count per host
        
        Try to use six connections per host if possible.

        * WebCore.base.exp:
        * loader/loader.cpp:
        (WebCore::Loader::Loader):
        * platform/mac/WebCoreSystemInterface.h:
        * platform/mac/WebCoreSystemInterface.mm:
        * platform/network/ResourceRequestBase.cpp:
        (WebCore::initMaximumHTTPConnectionCountPerHost):
        * platform/network/ResourceRequestBase.h:
        * platform/network/mac/ResourceRequestMac.mm:
        (WebCore::initMaximumHTTPConnectionCountPerHost):

2009-04-13  Justin Garcia  <justin.garcia@apple.com>

        Reviewed by Adele Peterson.

        https://bugs.webkit.org/show_bug.cgi?id=25153
        Can't place the caret into text field that scrolls the window on focus
        
        We refetch the target node in the shadow node case, and when we do so the window coordinate for the mouse event may
        be invalid because of scrolling that the focus handler did.  Cache the document point (that we derived from the window
        coordinate) and use that any time we refetch.

        * page/EventHandler.cpp:
        (WebCore::documentPointForWindowPoint):
        (WebCore::EventHandler::handleMousePressEvent):
        (WebCore::EventHandler::prepareMouseEvent):

2009-04-13  Sam Weinig  <sam@webkit.org>

        Reviewed by Geoffrey Garen.

        Rename JavaScriptCanOpenWindowsAutomatically to javaScriptCanOpenWindowsAutomatically
        to conform to our style guidelines.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::allowPopUp):
        * page/Settings.h:
        (WebCore::Settings::javaScriptCanOpenWindowsAutomatically):

2009-04-13  Geoffrey Garen  <ggaren@apple.com>

        Mac build fix: Made another header private.

        * WebCore.xcodeproj/project.pbxproj:

2009-04-13  Jian Li  <jianli@chromium.org>

        Reviewed by Darin Fisher.

        https://bugs.webkit.org/show_bug.cgi?id=25121
        Upstream changes to handle error messages from V8 when running worker script.

        * bindings/v8/WorkerContextExecutionProxy.cpp:
        (WebCore::reportFatalErrorInV8):
        (WebCore::handleConsoleMessage):
        (WebCore::WorkerContextExecutionProxy::WorkerContextExecutionProxy):
        (WebCore::WorkerContextExecutionProxy::dispose):
        (WebCore::WorkerContextExecutionProxy::initV8IfNeeded):
        (WebCore::WorkerContextExecutionProxy::initContextIfNeeded):
        (WebCore::WorkerContextExecutionProxy::evaluate):
        * bindings/v8/WorkerContextExecutionProxy.h:

2009-04-13  Geoffrey Garen  <ggaren@apple.com>

        Build fix: Made setInlineEventListenerForType not inline, since Document
        calls it now. Made RegisteredEventListener.h a private header on Mac,
        so WebKit can use it.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::setInlineEventListenerForType):

2009-04-13  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - fix <rdar://problem/6404439> REGRESSION: Overlapping text and other
          layout issues in View Sample feature of MYOB FIrstEdge v3

        * page/Navigator.cpp:
        (WebCore::shouldHideFourDot): Added "tdqm_loader.js" to the list of
        JavaScript files this quirk applies to.

2009-04-13  Sam Weinig  <sam@webkit.org>

        Reviewed by Oliver Hunt.

        Move open and showModalDialog functions out of JSDOMWindowBase
        and into JSDOMWindow by partially generating them.

        This slightly changes the behavior of getting window.showModalDialog
        when the embedding app does not support it to return undefined regardless
        of shadowing.  This should not be an issue in a practice, but will be addressed
        when we add a generic way to handle runtime specialization of property
        access.

        * DerivedSources.make: Remove JSDOMWindowBase.lut.h
        * WebCore.xcodeproj/project.pbxproj: Ditto.
        * bindings/js/JSDOMWindowBase.cpp:
        (WebCore::):
        (WebCore::JSDOMWindowBase::getOwnPropertySlot): Move canShowModalDialog check from
        here to JSDOMWindow::customGetOwnPropertySlot.
        (WebCore::JSDOMWindowBase::put): Remove dead code.
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::createWindow):
        (WebCore::JSDOMWindow::open):
        (WebCore::JSDOMWindow::showModalDialog):
        * bindings/js/JSDOMWindowCustom.h:
        (WebCore::JSDOMWindow::customGetOwnPropertySlot):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::parseModalDialogFeatures): Move from JSDOMWindowBase.
        (WebCore::DOMWindow::allowPopUp): Ditto.
        (WebCore::DOMWindow::canShowModalDialog): Ditto.
        (WebCore::DOMWindow::canShowModalDialogNow): Ditto.
        * page/DOMWindow.h:
        * page/DOMWindow.idl:

2009-04-13  Geoffrey Garen  <ggaren@apple.com>

        Reviewed by Sam Weinig.

        Moved storage for window event listeners into the window object.

        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::addEventListener):
        (WebCore::JSDOMWindow::removeEventListener): Add / remove window event
        listeners to / from the window object.

        * dom/Document.cpp:
        (WebCore::Document::removeAllEventListeners):
        (WebCore::Document::clear):
        (WebCore::Document::setWindowInlineEventListenerForTypeAndAttribute): Moved
        a bunch of code to the DOMWindow class, and left behind a few calls through
        to DOMWindow, to support legacy clients. (Eventually, these will go away, too.)

        * dom/Document.h: ditto.

        * dom/Node.cpp:
        (WebCore::Node::dispatchGenericEvent):
        (WebCore::Node::dispatchWindowEvent): Dipatch window events on the window
        object, not the document.

        * dom/Node.h:
        * dom/RegisteredEventListener.h: Moved RegisteredEventListenerVector
        declaration, since it's required in more places now.

        * history/CachedFrame.cpp:
        (WebCore::CachedFrame::clear): Updated for rename. Also, remove event
        listeners before detaching and clearing the document's window pointer,
        since the the document needs its window pointer in order to tell the window
        to clear its event listeners.

        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading):
        (WebCore::FrameLoader::canCachePageContainingThisFrame):
        (WebCore::FrameLoader::logCanCacheFrameDecision): Updated for rename, and
        movement of window event listeners into the window.

        * loader/ImageDocument.cpp:
        (WebCore::ImageDocument::createDocumentStructure): Updated for movement
        of window event listeners into the window.

        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::handleEvent):
        (WebCore::DOMWindow::addEventListener):
        (WebCore::DOMWindow::removeEventListener):
        (WebCore::DOMWindow::removeAllEventListeners):
        (WebCore::DOMWindow::hasEventListener):
        (WebCore::DOMWindow::setInlineEventListenerForType):
        (WebCore::DOMWindow::removeInlineEventListenerForType):
        (WebCore::DOMWindow::inlineEventListenerForType):
        (WebCore::DOMWindow::addPendingFrameUnloadEventCount):
        (WebCore::DOMWindow::removePendingFrameUnloadEventCount):
        (WebCore::DOMWindow::addPendingFrameBeforeUnloadEventCount):
        (WebCore::DOMWindow::removePendingFrameBeforeUnloadEventCount):
        * page/DOMWindow.h: Moved a bunch of code to the DOMWindow class, from the Document.

        * page/Frame.cpp:
        (WebCore::Frame::shouldClose): Updated for movement of window event listeners into the window.

2009-04-13  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Sam Weinig.

        https://bugs.webkit.org/show_bug.cgi?id=25149

        The Geolocation timer needs to start after the UA has granted permission.

        * bindings/js/JSGeolocationCustom.cpp: Use PassRefPtr<PositionOptions>
        (WebCore::JSGeolocation::getCurrentPosition):
        (WebCore::JSGeolocation::watchPosition):
        * page/Geolocation.cpp: Add a RefPtr<PositionOptions> so it can be used
        later when the timer is started. Change PositionOptions* to PassRefPtr<PositionOptions>
        where needed.
        (WebCore::Geolocation::GeoNotifier::GeoNotifier):
        (WebCore::Geolocation::GeoNotifier::startTimer):
        (WebCore::Geolocation::getCurrentPosition):
        (WebCore::Geolocation::watchPosition):
        (WebCore::Geolocation::setIsAllowed): Start the timer is the UA allows
        (WebCore::Geolocation::startTimer):
        (WebCore::Geolocation::startTimersForOneShots):
        (WebCore::Geolocation::startTimersForWatchers):
        (WebCore::Geolocation::startTimers):
        * page/Geolocation.h:
        (WebCore::Geolocation::GeoNotifier::create):

2009-04-13  Pamela Greene  <pam@chromium.org>

        Reviewed by Darin Fisher.

        Fix Chromium (V8) build by renaming methods to match changes
        in http://trac.webkit.org/changeset/42377.

        https://bugs.webkit.org/show_bug.cgi?id=25141

        * bindings/v8/ScheduledAction.cpp:
     (WebCore::ScheduledAction::execute): updateRendering() -> updateStyleIfNeeded()
        * bindings/v8/V8AbstractEventListener.cpp:
        (WebCore::V8AbstractEventListener::handleEvent): updateDocumentsRendering() -> updateStyleForAllDocuments()

2009-04-13  Darin Fisher  <darin@chromium.org>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=25136
        CRASH in DocumentLoader::removeSubresourceLoader due to null m_frame

        Test: fast/frames/frame-unload-crash.html

        * loader/DocumentLoader.cpp:
        (WebCore::DocumentLoader::updateLoading): Added null check of m_frame.

2009-04-13  Sam Weinig  <sam@webkit.org>

        Reviewed by Tim Hatcher.

        Put the MessagePort constructor back in ENABLE_CHANNEL_MESSAGING.

        * page/DOMWindow.idl:

2009-04-13  Greg Bolsinga  <bolsinga@apple.com>

        Fix GTK build break.

        * platform/gtk/GeolocationServiceGtk.cpp:
        (WebCore::GeolocationServiceGtk::updatePosition):

2009-04-13  David Hyatt  <hyatt@apple.com>

        Reviewed by Darin Adler and Dan Bernstein.

        Assertion in updateStyleForAllDocuments.  Make sure to unscheduleStyleRecalc when an object goes into
        the page cache.  Disallow scheduling of style recalcs on a document that is already in the page cache.
        Schedule a style recalc if needed when an object comes out of the page cache.

        * dom/Document.cpp:
        (WebCore::Document::scheduleStyleRecalc):
        (WebCore::Document::setInPageCache):

2009-04-13  Timothy Hatcher  <timothy@apple.com>

        Correctly sort (program) scripts in the Scripts panel popup menu.

        Reviewed by Ada Chan.

        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype._addScriptToFilesMenu): Refactor the code
        and sort "(program)" options by the sourceID to maintain some order.
        * inspector/front-end/utilities.js:
        (indexOfObjectInListSortedByFunction): Fix a bug where identical objects would cause
        an incorrect return value that confuses insertionIndexForObjectInListSortedByFunction.
        Just set 'first' and break so the correct result will be returned.

2009-04-13  Greg Bolsinga  <bolsinga@apple.com>

        Reviewed by Darin Adler.

        https://bugs.webkit.org/show_bug.cgi?id=24770
        
        Add custom code for Coordinates that returns null when required by the
        Geolocation spec.
        
        http://dev.w3.org/geo/api/spec-source.html#coordinates

        * WebCore.xcodeproj/project.pbxproj:
        * bindings/js/JSCoordinatesCustom.cpp: Added.
        (WebCore::JSCoordinates::altitude): returns null if the value cannot be provided.
        (WebCore::JSCoordinates::altitudeAccuracy): Ditto
        (WebCore::JSCoordinates::heading): Ditto
        (WebCore::JSCoordinates::speed): Ditto
        * page/Coordinates.h:
        (WebCore::Coordinates::create): Add 'canProvide' parameters and values
        (WebCore::Coordinates::canProvideAltitude):
        (WebCore::Coordinates::canProvideAltitudeAccuracy):
        (WebCore::Coordinates::canProvideHeading):
        (WebCore::Coordinates::canProvideSpeed):
        (WebCore::Coordinates::Coordinates):
        * page/Coordinates.idl: specify custom getters
        * platform/mac/GeolocationServiceMac.mm: Set the values correctly if they cannot be provided.
        (-[WebCoreCoreLocationObserver locationManager:didUpdateToLocation:fromLocation:]):

2009-04-13  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        Fix for <rdar://problem/5510537> Typing return at start of block quote yields empty quoted line

        Test: editing/inserting/5510537.html

        * editing/BreakBlockquoteCommand.cpp: (WebCore::BreakBlockquoteCommand::doApply): If the break insertion position
        is at the beginning of the topmost quote, then just insert the <br> before the blockquote.  Otherwise, if the break
        insertion position is at the beginning of any quote, adjust the position so the break comes before the current quote level
        so we don't end up with an empty line in that quote in addition to the new line we're adding with the <br>.

2009-04-11  Darin Adler  <darin@apple.com>

        Reviewed by Dan Bernstein.

        Fix problem when encoding history files with duplicate integer arrays near the end of the file.
        This results in an assertion failure, and if assertions are turned off, corrupted output.

        When writing an integer array it's important not to add an object reference to the
        aggregate buffer. The writing of the array does not depend on the aggregate buffer. But,
        more importantly, it's possible this instance integer array is a duplicate and won't be
        written out. If so, there's no guarantee there's enough space in the aggregate buffer to
        store the object references (the references will be ignored). In some cases the aggregate
        buffer can then overrun the data being written; normally this is prevented by the fact that
        the data being written will include a copy of the aggregate buffer.

        Also removed a bit of unneeded dead code to handle the integer -1.

        * platform/cf/BinaryPropertyList.cpp:
        (WebCore::BinaryPropertyListPlan::BinaryPropertyListPlan): Removed unneeded
        m_integerNegativeOneObjectReference, since property lists support only non-negative integers.
        (WebCore::BinaryPropertyListPlan::writeInteger): Removed support for
        m_integerNegativeOneObjectReference.
        (WebCore::BinaryPropertyListPlan::integerObjectReference): Ditto.
        (WebCore::BinaryPropertyListSerializer::writeIntegerWithoutAddingAggregateObjectReference):
        Added. Factored out most of writeInteger, for use in writeIntegerArray, without calling
        addAggregateObjectReference.
        (WebCore::BinaryPropertyListSerializer::writeInteger): Changed to call the new
        writeIntegerWithoutAddingAggregateObjectReference function.
        (WebCore::BinaryPropertyListSerializer::writeIntegerArray): Call the new
        writeIntegerWithoutAddingAggregateObjectReference function and therefore remove the
        code to save and restore m_currentAggregateBufferByte, which is no longer needed.

2009-04-13  Holger Hans Peter Freyther  <zecke@selfish.org>

        Unreviewed Qt build fix.

        * platform/graphics/qt/FontQt.cpp:
        (WebCore::Font::floatWidthForComplexText):

2009-04-12  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Move the event and crypto attributes and the captureEvents and releaseEvents
        functions out of JSDOMWindowBase by partially generating them.

        * bindings/js/JSDOMGlobalObject.cpp:
        (WebCore::JSDOMGlobalObject::currentEvent): Make const.
        * bindings/js/JSDOMGlobalObject.h:
        * bindings/js/JSDOMWindowBase.cpp:
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::crypto): Not implemented.
        (WebCore::JSDOMWindow::event):
        (WebCore::JSDOMWindow::captureEvents): Not implemented.
        (WebCore::JSDOMWindow::releaseEvents): Ditto.
        * page/DOMWindow.idl:

2009-04-12  Sam Weinig  <sam@webkit.org>

        Reviewed by Mark Rowe.

        Move more attributes out of JSDOMWindowBase by
        partially generating them.

        - Expose the MessagePort constructor.

        * bindings/js/JSDOMGlobalObject.h:
        (WebCore::getDOMConstructor):
        * bindings/js/JSDOMWindowBase.cpp:
        (setJSDOMWindowBaseEvent):
        * bindings/js/JSDOMWindowCustom.cpp:
        (WebCore::JSDOMWindow::image):
        (WebCore::JSDOMWindow::option):
        (WebCore::JSDOMWindow::audio):
        (WebCore::JSDOMWindow::webKitPoint):
        (WebCore::JSDOMWindow::webKitCSSMatrix):
        (WebCore::JSDOMWindow::xMLHttpRequest):
        (WebCore::JSDOMWindow::xSLTProcessor):
        (WebCore::JSDOMWindow::messageChannel):
        (WebCore::JSDOMWindow::worker):
        * page/DOMWindow.idl:

2009-04-12  Timothy Hatcher  <timothy@apple.com>

        A resource's filename is not correct after a redirect in the Inspector.

        Reviewed by Dan Bernstein.

        * inspector/InspectorResource.cpp:
        (WebCore::InspectorResource::updateScriptObject): Fix a typo in the
        lastPathComponent property name.

2009-04-12  Adele Peterson  <adele@apple.com>

        Reviewed by Darin Adler.

        Test: editing/inserting/6609479-1.html

        Follow-up to <rdar://problem/6609479>.

        Before my last change, a Mail blockquote would've been broken up earlier, and you would've been guaranteed that the inserted content
        was at the start of a paragraph.  Now we need to check for that explicitly, and only merge the start of the inserted content if it is 
        at the start of a paragraph.

        * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::shouldMergeStart):

2009-04-11  Adele Peterson  <adele@apple.com>

        Reviewed by Dan Bernstein.

        Fix for <rdar://problem/6609479> Pressing return inside a table cell that's inside quoted content will split the table

        Test: editing/inserting/6609479.html

        Don't break a blockquote if pasting or inserting into a table.

        * editing/ReplaceSelectionCommand.cpp: (WebCore::ReplaceSelectionCommand::doApply):
        * editing/TypingCommand.cpp: (WebCore::TypingCommand::insertParagraphSeparatorInQuotedContent):

2009-04-11  Dan Bernstein  <mitz@apple.com>

        Reviewed by Darin Adler.

        - fix <rdar://problem/6643103> Unscaled values from body.scrollHeight

        Test: fast/css/zoom-body-scroll.html

        Adjust scroll{Left,Top,Width,Height} values for zoom in getters and
        setters.

        * html/HTMLBodyElement.cpp:
        (WebCore::adjustForZoom):
        (WebCore::HTMLBodyElement::scrollLeft):
        (WebCore::HTMLBodyElement::setScrollLeft):
        (WebCore::HTMLBodyElement::scrollTop):
        (WebCore::HTMLBodyElement::setScrollTop):
        (WebCore::HTMLBodyElement::scrollHeight):
        (WebCore::HTMLBodyElement::scrollWidth):

2009-04-10  Timothy Hatcher  <timothy@apple.com>

        Allow page navigation and reload while stopped at a breakpoint.

        <rdar://problem/6781108> Having a breakpoint active prevents page reload

        Reviewed by Darin Adler.

        * inspector/InspectorController.cpp:
        (WebCore::InspectorController::didContinue): Call the resumedScript function.
        * inspector/InspectorController.h: Added didContinue.
        * inspector/JavaScriptDebugListener.h: Ditto.
        * inspector/JavaScriptDebugServer.cpp:
        (WebCore::JavaScriptDebugServer::pauseIfNeeded): Call didContinue on the listeners.
        * inspector/front-end/ScriptsPanel.js:
        (WebInspector.ScriptsPanel.prototype.debuggerResumed): Update the interface and state.
        * inspector/front-end/inspector.js:
        (WebInspector.resumedScript): Call ScriptsPanel.debuggerResumed.
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::continueLoadAfterNavigationPolicy): Call resumeDebugger.

2009-04-10  Sam Weinig  <sam@webkit.org>

        Reviewed by Adele Peterson.

        Remove unused include for JSLock.

        * page/mac/FrameMac.mm:

2009-04-10  Sam Weinig  <sam@webkit.org>

        Reviewed by Darin Adler.

        Add back the keepAlive timer for after the script execution to
        protect the callers of evaluate, as was part of the original intent
        of timer.

        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::evaluate):
        * page/mac/FrameMac.mm:

2009-04-10  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        Fixed https://bugs.webkit.org/show_bug.cgi?id=25137

        If we reload, the animation controller sticks around and has
        a stale animation time. So the needed delay is computed wrong.
        I added a reset of the animation timer on load.

        I did not do a test case because this only happens on reload so I
        couldn't make an automated test. I tried using an iframe and using
        reload() but that doesn't tickle the bug.

        * dom/Document.cpp:
        (WebCore::Document::implicitOpen):

2009-04-10  Grace Kloba  <klobag@gmail.com>

        Reviewed by Darin Adler.

        Move WORKERS header files inside ENABLE(WORKERS).
        So if WORKERS is not enabled and the generated files are not generated, the build is still working.

        * bindings/js/JSDOMGlobalObject.cpp:
        * bindings/js/JSMessageChannelConstructor.cpp:
        * bindings/js/ScheduledAction.cpp:

2009-04-10  Darin Adler  <darin@apple.com>

        Reviewed by Brady Eidson.

        <rdar://problem/6773515> crash in push_heap inside WebCore when printing

        The crash was due to manipulating a timer on a different thread than the one it was created on.
        This adds some diagnostics so we'll catch that kind of mistake immediately.

        * platform/Timer.cpp:
        (WebCore::TimerBase::TimerBase): Store the thread identifier in debug versions.
        (WebCore::TimerBase::start): Assert it's the same thread the timer was created on.
        (WebCore::TimerBase::stop): Ditto.
        (WebCore::TimerBase::isActive): Ditto.
        (WebCore::TimerBase::setNextFireTime): Ditto.

        * platform/Timer.h: Added the thread identifier data member.

2009-04-10  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Dan Bernstein

        https://bugs.webkit.org/show_bug.cgi?id=25108

        If you remove a class with a transition while that transition is running
        the animation timer will continue to fire after the transition is finished.
        This has no visual indication, but it does drain the processor. And in some
        cases it might even cause a glitch in future animations. Unfortunately there
        is no way to test this without putting in printfs.

        This happens because the animation logic is never traversed after a transition
        is removed, so we never get a chance to cleanup. So I added cleanup in the logic
        that fires the dispatch of the last style change when the animation finishes.

        Test: transitions/remove-transition-style.html

        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
        * page/animation/CompositeAnimation.cpp:
        (WebCore::CompositeAnimation::updateTransitions):
        (WebCore::CompositeAnimation::animate):
        (WebCore::CompositeAnimation::cleanupFinishedAnimations):
        * page/animation/CompositeAnimation.h:

2009-04-10  Sam Weinig  <sam@webkit.org>

        Reviewed by Geoffrey Garen.

        Fix for <rdar://problem/6648858>
        CrashTracer: [REGRESSION(Safari 4)] 60 crashes in Safari at com.apple.WebCore • WebCore::ScriptController::evaluate + 241

        The Frame (and therefore ScriptController) were being destroyed
        during JavaScript execution causing the JSDOMWindowShell to become
        null.

        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::evaluate): Use a RefPtr to protect the Frame
        instead of the keep-alive timer, since a nested event loop used from with-in 
        JavaScript execution could cause the timer to fire before returning.

2009-04-10  Dimitri Glazkov  <dglazkov@chromium.org>

        Reviewed by Timothy Hatcher.

        https://bugs.webkit.org/show_bug.cgi?id=25133
        Fix an error in InspectorController's bindings, clean up a few header
        includes, make empty object construction in ScriptObject less ambiguous.

        * bindings/js/JSInspectorControllerCustom.cpp:
        (WebCore::JSInspectorController::setSetting): Send correct argument from
            the bindings.
        * bindings/js/ScriptObject.cpp:
        (WebCore::ScriptObject::createNew): Added.
        * bindings/js/ScriptObject.h: Removed constructor, added decl for createNew.
        * inspector/ConsoleMessage.cpp: Remove unused header.
        * inspector/ConsoleMessage.h: Ditto.
        * inspector/InspectorResource.cpp:
        (WebCore::createHeadersObject): Changed to use ScriptObject::createNew.

2009-04-10  Chris Marrin  <cmarrin@apple.com>

        Reviewed by Simon Fraser.

        Fixed https://bugs.webkit.org/show_bug.cgi?id=25134

        This both fixes a bug where I was not sending in the right time
        to continue the animation and was not recomputing current time
        when coming out of suspend.

        * page/animation/AnimationBase.cpp:
        (WebCore::AnimationBase::updateStateMachine):
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::suspendAnimations):
        (WebCore::AnimationControllerPrivate::resumeAnimations):

2009-04-10  Adam Roben  <aroben@apple.com>

        Give Windows's <select> popup menus drop shadows

        Rubber-stamped by Steve Falkenburg.

        No test possible.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::registerPopup): Use the CS_DROPSHADOW window class style.

2009-04-10  Timothy Hatcher  <timothy@apple.com>

        Fix a bug in the Web Inspector where it would show scripts
        from previous pages when toggling the debugger off and back on.

        https://bugs.webkit.org/show_bug.cgi?id=25095
        rdar://problem/6769970

        Reviewed by John Sullivan.

        * bindings/js/ScriptCachedFrameData.cpp:
        (WebCore::ScriptCachedFrameData::ScriptCachedFrameData): Null out the
        debugger for the scriptController. This balances the attachDebugger
        that was already in ScriptCachedFrameData::restore.
        (WebCore::ScriptCachedFrameData::restore): Clean up an if statement.
        * bindings/js/ScriptController.cpp:
        (WebCore::ScriptController::clearWindowShell): Clear the debugger from
        the current window before setting the new window.
        * inspector/JavaScriptDebugServer.cpp:
        (WebCore::JavaScriptDebugServer::recompileAllJSFunctions): Only accumulate
        source providers for code associated this as the debugger.

2009-04-10  Pierre d'Herbemont  <pdherbemont@apple.com>

        Reviewed by Adele Peterson.

        <rdar://problem/6646998> Avoid starting QTKitServer if possible
        When possible avoid asking QTKit for the MIME types that require QTKitServer
        when running 64-bit.

        * WebCore.base.exp: Added new entry point.

        * platform/graphics/mac/MediaPlayerPrivateQTKit.mm:
        (WebCore::addFileTypesToCache): Add an NSArray of types to the cache.
        (WebCore::mimeCommonTypesCache): Add all "common" QTKit types to the cache.
        (WebCore::mimeModernTypesCache): Add only "modern" QTKit types to the cache (this list does 
        not start QTKitServer if it is not already running).
        (WebCore::MediaPlayerPrivate::getSupportedTypes): Refactored.
        (WebCore::MediaPlayerPrivate::supportsType): Look in list of "modern" types first to avoid
        starting QTKitServer if possible.

        * platform/mac/WebCoreSystemInterface.h: Add wkQTIncludeOnlyModernMediaFileTypes.
        * platform/mac/WebCoreSystemInterface.mm: Ditto.

2009-04-10  Adam Roben  <aroben@apple.com>

        Turn on window animations for <select> popup menus

        We turned these off back when <select> popup menus were partially
        transparent. Now that they're opaque, there's no reason not to
        animate them.

        Reviewed by Steve Falkenburg.

        No test possible.

        * platform/win/PopupMenuWin.cpp:
        (WebCore::PopupMenu::show): Remove the #ifdef that was disabling the
        window animation.

2009-04-10  Dan Bernstein  <mitz@apple.com>

        Reviewed by Sam Weinig.

        - fix a regression from r42379 which made zero-width characters affect
          line height

        Test: fixes fast/text/wide-zero-width-space.html

        * platform/graphics/mac/FontMacATSUI.mm:
        (WebCore::overrideLayoutOperation): Add to the fallback font list set
        here, and only if the glyph is not zero-width...
        (WebCore::ATSULayoutParameters::initialize): ...instead of doing it
        here. This matches WidthIterator's behavior.

2009-04-10  Darin Fisher  <darin@chromium.org>

        Fixing build bustage caused by warnings being treated as errors.
        1- A local variable was only be used inside a debug assertion, which
           caused grief for the release build.
        2- Missing initializer for member 'DocumentMarker::activeMatch'

        * dom/Document.cpp:
        (WebCore::Document::addMarker):
        (WebCore::Document::setMarkersActive):

2009-04-10  Finnur Thorarinsson  <finnur.webkit@gmail.com>

        Reviewed by John Sullivan.

        Fixing: https://bugs.webkit.org/show_bug.cgi?id=25117
        (TextMatches don't have a concept of active match)

        For the ports that use the DocumentMarker as highlighting for FindInPage it is
        useful to have a flag that specifies which marker is active, so it can be drawn
        in a different color.

        This allows me to remove the hack to use the SelectionController to highlight
        the active match (in the ChromiumWin port).

        * dom/Document.cpp:
        (WebCore::Document::setMarkersActive):
        * dom/Document.h:
        * dom/DocumentMarker.h:
        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::paintTextMatchMarker):
        * rendering/RenderTheme.cpp:
        (WebCore::RenderTheme::platformActiveTextSearchHighlightColor):
        (WebCore::RenderTheme::platformInactiveTextSearchHighlightColor):
        * rendering/RenderTheme.h:
        * rendering/RenderThemeChromiumWin.cpp:
        (WebCore::RenderThemeChromiumWin::platformActiveSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumWin::platformInactiveSelectionBackgroundColor):
        (WebCore::RenderThemeChromiumWin::platformActiveTextSearchHighlightColor):
        (WebCore::RenderThemeChromiumWin::platformInactiveTextSearchHighlightColor):
        * rendering/RenderThemeChromiumWin.h:

2009-04-10  Pamela Greene  <pam@chromium.org>

        Reviewed by Dimitri Glazkov.

        Build fix for Chromium.
        https://bugs.webkit.org/show_bug.cgi?id=12440

        * page/chromium/FrameChromium.cpp:
        (WebCore::computePageRectsForFrame): change docWidth() to overflowWidth()

2009-04-09  David Hyatt  <hyatt@apple.com>

        Reviewed by Oliver Hunt

        Add a timer for style recalc (similar to the one used for scheduling layouts).  For now in order
        to reduce the risk of regressions, I have left in all the synchronous machinery for updating style
        following DOM events and JavaScript timeouts.  Eventually these calls will be removed.

        Where the timer will really kick in and be useful is for clients that do style changes from
        Objective-C DOM bindings or that execute JavaScript to manipulate style from the JavaScriptCore C API.

        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::insertBefore):
        (WebCore::ContainerNode::replaceChild):
        (WebCore::ContainerNode::removeChild):
        (WebCore::ContainerNode::appendChild):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document):
        (WebCore::Document::scheduleStyleRecalc):
        (WebCore::Document::unscheduleStyleRecalc):
        (WebCore::Document::styleRecalcTimerFired):
        (WebCore::Document::updateStyleForAllDocuments):
        (WebCore::Document::detach):
        * dom/Document.h:
        * dom/Node.cpp:
        (WebCore::Node::setNeedsStyleRecalc):
        (WebCore::Node::lazyAttach):

2009-04-09  Oliver Hunt  <oliver@apple.com>

        Reviewed by Gavin Barraclough.

        <rdar://problem/6586787> JS debugger does not work in 64-bit

        Don't truncate the source id in JSCallFrame

        * inspector/JavaScriptCallFrame.h:

2009-04-09  Adam Roben  <aroben@apple.com>

        Start compiling HistoryPropertyList on Windows

        Reviewed by Darin Adler.

        * WebCore.vcproj/WebCore.vcproj: Added HistoryPropertyList and its
        dependencies to the project. Copy headers from history/cf to
        $WebKitOutputDir.
        * history/cf/HistoryPropertyList.cpp: Added StringExtras.h so that
        this file will compile on Windows.

2009-04-09  Dan Bernstein  <mitz@apple.com>

        Reviewed by Dave Hyatt.

        - fix <rdar://problem/6166612> Text boxes' metrics should be based on
          the actual fonts used in them, not just the primary font

        Covered by many existing layout tests

        * platform/graphics/Font.cpp:
        (WebCore::Font::floatWidth): Added a fallbackFonts parameter. If the
        platform supports collecting fallback fonts in its complex font path
        and fallbackFonts is not null, all fallback fonts used for the text run
        will be added to it.

        * platform/graphics/Font.h:
        (WebCore::Font::width): Ditto.

        * platform/graphics/FontFastPath.cpp:
        (WebCore::Font::glyphDataForCharacter): Removed an unnecessary namespace
        qualifier.
        (WebCore::Font::floatWidthForSimpleText): Added a fallbackFonts
        parameter, which is passed down to WidthIterator.

        * platform/graphics/WidthIterator.cpp:
        (WebCore::WidthIterator::WidthIterator): Added a fallbackFonts parameter
        and used it to initialize the m_fallbackFonts member.
        (WebCore::WidthIterator::advance): Track the fonts being used and add
        any fallback fonts to the m_fallbackFonts set. Make sure to only add
        non-small-caps fonts.

        * platform/graphics/WidthIterator.h:

        * platform/graphics/chromium/FontChromiumWin.cpp:
        (WebCore::Font::canReturnFallbackFontsForComplexText): Added an
        implementation that returns false, meaning this platform's
        implementation of floatWidthForComplexText() does not populate the
        fallbackFonts set.
        (WebCore::Font::floatWidthForComplexText): Updated for the new
        prototype.

        * platform/graphics/chromium/FontLinux.cpp: Ditto.

        * platform/graphics/gtk/FontGtk.cpp: Ditto.

        * platform/graphics/mac/CoreTextController.cpp:
        (WebCore::CoreTextController::CoreTextController): Added a fallbackFonts
        parameter and used it to initialize the m_fallbackFonts member.
        (WebCore::CoreTextController::collectCoreTextRunsForCharacters): Add
        fallback fonts to m_fallbackFonts.

        * platform/graphics/mac/CoreTextController.h:

        * platform/graphics/mac/FontMac.mm:
        (WebCore::Font::canReturnFallbackFontsForComplexText): Added an
        implementation that returns true, indicating that the Mac
        implementations of floatWidthForComplexText() populate the fallbackFonts
        set.
        * platform/graphics/mac/FontMacATSUI.mm:
        (WebCore::ATSULayoutParameters::ATSULayoutParameters): Added a
        fallbackFonts parameter and used it to initialize the m_fallbackFonts
        member.
        (WebCore::ATSULayoutParameters::initialize): Add fallback fonts to
        m_fallbackFonts.
        (WebCore::Font::floatWidthForComplexText): Added a fallbackFonts
        parameter, which is passed down to ATSULayoutParameters.

        * platform/graphics/mac/FontMacCoreText.cpp:
        (WebCore::Font::floatWidthForComplexText): Added a fallbackFonts
        parameter, which is passed down to CoreTextController.

        * platform/graphics/win/FontWin.cpp:
        (WebCore::Font::canReturnFallbackFontsForComplexText): Added an
        implementation that returns true, indicating that the
        UniscribeController-based implementations of floatWidthForComplexText()
        populate the fallbackFonts set.
        (WebCore::Font::floatWidthForComplexText): Added a fallbackFonts
        parameter, which is passed down to UniscribeController.

        * platform/graphics/win/UniscribeController.cpp:
        (WebCore::UniscribeController::UniscribeController): Added a
        fallbackfonts parameter and used it to initialize m_fallbackFonts.
        (WebCore::UniscribeController::advance): Add fallback fonts to
        m_fallbackFonts.

        * platform/graphics/win/UniscribeController.h:
        
        * platform/graphics/wx/FontWx.cpp:
        (WebCore::Font::canReturnFallbackFontsForComplexText): Added an
        implementation that returns false, meaning this platform's
        implementation of floatWidthForComplexText() does not populate the
        fallbackFonts set.
        (WebCore::Font::floatWidthForComplexText): Updated for the new
        prototype.

        * rendering/InlineFlowBox.cpp:
        (WebCore::InlineFlowBox::computeLogicalBoxHeights): For an InlineTextBox
        with multiple fonts, compute a common baseline and line height by
        considering all fonts' ascents and descents (and line spacing, if
        applicable).

        * rendering/InlineTextBox.cpp:
        (WebCore::InlineTextBox::setFallbackFonts): Added. Temporarily stores
        the set of fallback fonts in a vector.
        (WebCore::InlineTextBox::takeFallbackFonts): Added. Returns the fallback
        fonts previously stored and removes them from storage.

        * rendering/InlineTextBox.h:

        * rendering/RenderText.cpp:
        (WebCore::RenderText::RenderText): Initialized the
        m_knownNotToUseFallbackFonts to false.
        (WebCore::RenderText::styleDidChange): Reset
        m_knownNotToUseFallbackFonts to false if the style difference is such that
        affects layout.
        (WebCore::RenderText::widthFromCache): Added a fallbackFonts parameter,
        which is passed down to Font::width().
        (WebCore::RenderText::trimmedPrefWidths): Updated for the change to
        widthFromCache().
        (WebCore::RenderText::calcPrefWidths): Made this call a private version
        of calcPrefWidths() that takes a fallbackFonts parameter and set the
        m_knownNotToUseFallbackFonts to true if the set comes back empty.
        The private version passes the fallbackFonts set to widthFromCache().
        (WebCore::RenderText::setText): Reset m_knownNotToUseFallbackFonts to
        false.
        (WebCore::RenderText::createFallbackFontMetricsBox): Added.
        (WebCore::RenderText::width): Added a fallbackFonts parameter, which is
        passed down to calcPrefWidths(), widthFromCache() and Font::width().
        Set m_knownNotToUseFallbackFonts to true when appropriate.

        * rendering/RenderText.h:

        * rendering/bidi.cpp:
        (WebCore::RenderBlock::constructLine): Added an assertion and a continue
        statement to remove one level of indentation.
        (WebCore::RenderBlock::computeHorizontalPositionsForLine): Temporarily
        store the set of fallback fonts in the InlineTextBox.
        (WebCore::RenderBlock::computeVerticalPositionsForLine): Added an
        assertion.

2009-04-09  David Hyatt  <hyatt@apple.com>

        Reviewed by Adam Roben

        Rename all of the changed()/setChanged()/setDocumentChanged() methods to mention style recalc
        explicitly instead.

        * bindings/js/JSCustomPositionCallback.cpp:
        (WebCore::JSCustomPositionCallback::handleEvent):
        * bindings/js/JSCustomPositionErrorCallback.cpp:
        (WebCore::JSCustomPositionErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementCallback.cpp:
        (WebCore::JSCustomSQLStatementCallback::handleEvent):
        * bindings/js/JSCustomSQLStatementErrorCallback.cpp:
        (WebCore::JSCustomSQLStatementErrorCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionCallback.cpp:
        (WebCore::JSCustomSQLTransactionCallback::handleEvent):
        * bindings/js/JSCustomSQLTransactionErrorCallback.cpp:
        (WebCore::JSCustomSQLTransactionErrorCallback::handleEvent):
        * bindings/js/JSCustomVoidCallback.cpp:
        (WebCore::JSCustomVoidCallback::handleEvent):
        * bindings/js/JSCustomXPathNSResolver.cpp:
        (WebCore::JSCustomXPathNSResolver::lookupNamespaceURI):
        * bindings/js/JSEventListener.cpp:
        (WebCore::JSAbstractEventListener::handleEvent):
        * bindings/js/ScheduledAction.cpp:
        (WebCore::ScheduledAction::execute):
        * bindings/js/ScriptControllerMac.mm:
        (WebCore::updateStyleIfNeededForBindings):
        (WebCore::ScriptController::initJavaJSBindings):
        * css/CSSMutableStyleDeclaration.cpp:
        (WebCore::CSSMutableStyleDeclaration::removeProperty):
        (WebCore::CSSMutableStyleDeclaration::setNeedsStyleRecalc):
        (WebCore::CSSMutableStyleDeclaration::setProperty):
        (WebCore::CSSMutableStyleDeclaration::setStringProperty):
        (WebCore::CSSMutableStyleDeclaration::setImageProperty):
        (WebCore::CSSMutableStyleDeclaration::parseDeclaration):
        (WebCore::CSSMutableStyleDeclaration::addParsedProperties):
        (WebCore::CSSMutableStyleDeclaration::setCssText):
        (WebCore::CSSMutableStyleDeclaration::merge):
        (WebCore::CSSMutableStyleDeclaration::removePropertiesInSet):
        * css/CSSMutableStyleDeclaration.h:
        * css/CSSStyleSelector.cpp:
        (WebCore::CSSStyleSelector::SelectorChecker::allVisitedStateChanged):
        (WebCore::CSSStyleSelector::SelectorChecker::visitedStateChanged):
        * css/CSSVariablesDeclaration.cpp:
        (WebCore::CSSVariablesDeclaration::removeVariable):
        (WebCore::CSSVariablesDeclaration::setVariable):
        (WebCore::CSSVariablesDeclaration::setNeedsStyleRecalc):
        * css/CSSVariablesDeclaration.h:
        * dom/ContainerNode.cpp:
        (WebCore::ContainerNode::insertBefore):
        (WebCore::ContainerNode::replaceChild):
        (WebCore::ContainerNode::removeChild):
        (WebCore::ContainerNode::appendChild):
        (WebCore::ContainerNode::detach):
        (WebCore::ContainerNode::setFocus):
        (WebCore::ContainerNode::setActive):
        (WebCore::ContainerNode::setHovered):
        * dom/Document.cpp:
        (WebCore::Document::Document):
        (WebCore::Document::~Document):
        (WebCore::Document::scheduleStyleRecalc):
        (WebCore::Document::unscheduleStyleRecalc):
        (WebCore::Document::recalcStyle):
        (WebCore::Document::updateStyleIfNeeded):
        (WebCore::Document::updateStyleForAllDocuments):
        (WebCore::Document::updateLayout):
        (WebCore::Document::implicitClose):
        (WebCore::Document::prepareMouseEvent):
        (WebCore::Document::setFocusedNode):
        (WebCore::Document::setCSSTarget):
        * dom/Document.h:
        * dom/Element.cpp:
        (WebCore::Element::recalcStyle):
        (WebCore::checkForSiblingStyleChanges):
        * dom/InputElement.cpp:
        (WebCore::InputElement::parseMaxLengthAttribute):
        * dom/MouseRelatedEvent.cpp:
        (WebCore::MouseRelatedEvent::receivedTarget):
        * dom/Node.cpp:
        (WebCore::Node::Node):
        (WebCore::Node::setNeedsStyleRecalc):
        (WebCore::Node::lazyAttach):
        (WebCore::Node::dispatchGenericEvent):
        * dom/Node.h:
        (WebCore::Node::needsStyleRecalc):
        (WebCore::Node::childNeedsStyleRecalc):
        (WebCore::Node::setChildNeedsStyleRecalc):
        * dom/OptionElement.cpp:
        (WebCore::OptionElement::setSelectedState):
        * dom/ScriptElement.cpp:
        (WebCore::ScriptElementData::evaluateScript):
        * dom/StyledElement.cpp:
        (WebCore::StyledElement::attributeChanged):
        (WebCore::StyledElement::classAttributeChanged):
        (WebCore::StyledElement::parseMappedAttribute):
        * dom/Text.cpp:
        (WebCore::Text::recalcStyle):
        * dom/XMLTokenizer.cpp:
        (WebCore::XMLTokenizer::insertErrorMessageBlock):
        * editing/DeleteButtonController.cpp:
        (WebCore::DeleteButtonController::enable):
        * editing/Editor.cpp:
        (WebCore::Editor::setBaseWritingDirection):
        * editing/SelectionController.cpp:
        (WebCore::SelectionController::nodeWillBeRemoved):
        (WebCore::SelectionController::layout):
        (WebCore::SelectionController::focusedOrActiveStateChanged):
        * html/HTMLAnchorElement.cpp:
        (WebCore::HTMLAnchorElement::parseMappedAttribute):
        * html/HTMLElement.cpp:
        (WebCore::HTMLElement::setInnerText):
        (WebCore::HTMLElement::isContentEditable):
        (WebCore::HTMLElement::isContentRichlyEditable):
        (WebCore::HTMLElement::contentEditable):
        * html/HTMLEmbedElement.cpp:
        (WebCore::HTMLEmbedElement::updateWidget):
        * html/HTMLFormControlElement.cpp:
        (WebCore::HTMLFormControlElement::parseMappedAttribute):
        * html/HTMLFrameSetElement.cpp:
        (WebCore::HTMLFrameSetElement::parseMappedAttribute):
        (WebCore::HTMLFrameSetElement::recalcStyle):
        * html/HTMLInputElement.cpp:
        (WebCore::HTMLInputElement::parseMappedAttribute):
        (WebCore::HTMLInputElement::setChecked):
        (WebCore::HTMLInputElement::setIndeterminate):
        (WebCore::HTMLInputElement::setValue):
        (WebCore::HTMLInputElement::setAutofilled):
        * html/HTMLMediaElement.cpp:
        (WebCore::HTMLMediaElement::finishParsingChildren):
        * html/HTMLObjectElement.cpp:
        (WebCore::HTMLObjectElement::updateWidget):
        (WebCore::HTMLObjectElement::finishParsingChildren):
        (WebCore::HTMLObjectElement::childrenChanged):
        * html/HTMLSelectElement.cpp:
        (WebCore::HTMLSelectElement::recalcStyle):
        (WebCore::HTMLSelectElement::restoreState):
        (WebCore::HTMLSelectElement::setRecalcListItems):
        (WebCore::HTMLSelectElement::reset):
        (WebCore::HTMLSelectElement::typeAheadFind):
        * html/HTMLTableElement.cpp:
        (WebCore::setTableCellsChanged):
        (WebCore::HTMLTableElement::parseMappedAttribute):
        * html/HTMLTextAreaElement.cpp:
        (WebCore::HTMLTextAreaElement::setValue):
        * loader/FrameLoader.cpp:
        (WebCore::FrameLoader::stopLoading):
        (WebCore::FrameLoader::executeScript):
        (WebCore::FrameLoader::gotoAnchor):
        * page/DOMWindow.cpp:
        (WebCore::DOMWindow::alert):
        (WebCore::DOMWindow::confirm):
        (WebCore::DOMWindow::prompt):
        * page/EventHandler.cpp:
        (WebCore::EventHandler::hoverTimerFired):
        * page/FrameView.cpp:
        (WebCore::FrameView::layout):
        (WebCore::FrameView::needsLayout):
        * page/animation/AnimationBase.cpp:
        (WebCore::AnimationBase::setNeedsStyleRecalc):
        (WebCore::AnimationBase::updateStateMachine):
        * page/animation/AnimationBase.h:
        * page/animation/AnimationController.cpp:
        (WebCore::AnimationControllerPrivate::AnimationControllerPrivate):
        (WebCore::AnimationControllerPrivate::clear):
        (WebCore::AnimationControllerPrivate::updateAnimationTimer):
        (WebCore::AnimationControllerPrivate::updateStyleIfNeededDispatcherFired):
        (WebCore::AnimationControllerPrivate::startupdateStyleIfNeededDispatcher):
        (WebCore::AnimationControllerPrivat